From 3cb3e79a3e76048d6c422b6d18973dc7b270b058 Mon Sep 17 00:00:00 2001 From: huweiqiang Date: Fri, 29 Dec 2023 16:53:58 +0800 Subject: [PATCH 01/10] bugfix(import coco): fix import coco prediction --- deepdataspace/plugins/coco2017/importer.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/deepdataspace/plugins/coco2017/importer.py b/deepdataspace/plugins/coco2017/importer.py index c300d57..f50393e 100644 --- a/deepdataspace/plugins/coco2017/importer.py +++ b/deepdataspace/plugins/coco2017/importer.py @@ -8,6 +8,7 @@ from typing import Dict from typing import List from typing import Tuple +import traceback from deepdataspace.constants import DatasetFileType from deepdataspace.constants import DatasetType @@ -94,8 +95,11 @@ def parse_meta(meta_path: str): try: info = COCO2017Importer._parse_meta(meta_path) except Exception as err: + logger.error(traceback.format_exc()) logger.error(f"Failed to parse meta file {meta_path}: {err}") return None + + logger.info(f"Successfully parsed meta file {meta_path}: {info}") return info def load_ground_truth(self): @@ -118,7 +122,7 @@ def load_ground_truth(self): def load_predictions(self): for file_tag, file_path in self.dataset.files.items(): - if not file_tag.startswith("PRED/"): + if not file_tag.startswith(f"{DatasetFileType.Prediction}/"): continue pred_name = file_tag.split("/", 1)[-1] From db5dccc501d57bc17e452b6a8eefafb330a1570d Mon Sep 17 00:00:00 2001 From: huweiqiang Date: Fri, 29 Dec 2023 16:54:41 +0800 Subject: [PATCH 02/10] feature(batch caption): support add caption in batch_add_annotation function --- build_doc.sh | 0 deepdataspace/model/image.py | 8 ++++++-- 2 files changed, 6 insertions(+), 2 deletions(-) mode change 100644 => 100755 build_doc.sh diff --git a/build_doc.sh b/build_doc.sh old mode 100644 new mode 100755 diff --git a/deepdataspace/model/image.py b/deepdataspace/model/image.py index d742636..24e5466 100644 --- a/deepdataspace/model/image.py +++ b/deepdataspace/model/image.py @@ -326,6 +326,7 @@ def _add_annotation(self, keypoint_colors: List[int] = None, keypoint_skeleton: List[int] = None, keypoint_names: List[str] = None, + caption: str = None, confirm_type: int = 0, ): if bbox: @@ -341,7 +342,7 @@ def _add_annotation(self, 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, + 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) @@ -361,6 +362,7 @@ def add_annotation(self, keypoint_colors: List[int] = None, keypoint_skeleton: List[int] = None, keypoint_names: List[str] = None, + caption: str = None, confirm_type: int = 0, ): """ @@ -380,13 +382,14 @@ def add_annotation(self, :param keypoint_names: the key point names, ["nose", "left_eye", ...]. :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, - confirm_type) + caption, confirm_type) self.save() self._update_dataset(bbox, segmentation, alpha_uri, keypoints) @@ -434,6 +437,7 @@ def batch_add_annotation(self, :param keypoint_names: the key point names, ["nose", "left_eye", ...]. :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 """ From 88689037a94c2e21a2a7960cbb2c6b1ccaeb8a19 Mon Sep 17 00:00:00 2001 From: huweiqiang Date: Tue, 2 Jan 2024 10:24:43 +0800 Subject: [PATCH 03/10] bugfix(runtime_dir): fix error of not reading runtime_dir from configfile --- deepdataspace/services/dds.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deepdataspace/services/dds.py b/deepdataspace/services/dds.py index e968f11..2390e24 100644 --- a/deepdataspace/services/dds.py +++ b/deepdataspace/services/dds.py @@ -79,7 +79,7 @@ def __init__(self, home_dir = os.path.expanduser("~") runtime_dir = os.path.join(home_dir, ".deepdataspace") - self.runtime_dir = self.argument_or_config("runtime_dir", runtime_dir, None) + self.runtime_dir = self.argument_or_config("runtime_dir", None, runtime_dir) self.configfile = configfile self.from_cmdline = from_cmdline @@ -97,11 +97,11 @@ def __init__(self, self.dl_prefix = "https://deepdataspace.oss-accelerate.aliyuncs.com/install_files" self.distro = PLATFORM if PLATFORM != Platforms.Linux else f"ubuntu{get_ubuntu_version()}" - def argument_or_config(self, key, value, default): - if value is not None: - return value + def argument_or_config(self, config_key, arg_value, default): + if arg_value is not None: + return arg_value else: - return self.config_data.get(key, default) + return self.config_data.get(config_key, default) def exit_or_raise(self, msg: str): if self.from_cmdline is True: From 302d7734aead9a5aef315285f864df06f8e044c4 Mon Sep 17 00:00:00 2001 From: imhuwq Date: Tue, 2 Jan 2024 15:09:26 +0800 Subject: [PATCH 04/10] bugfix(config yaml): fix parsing verbose_log and quickstart configs --- deepdataspace/scripts/start.py | 2 +- deepdataspace/services/dds.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/deepdataspace/scripts/start.py b/deepdataspace/scripts/start.py index 39c539c..788323b 100644 --- a/deepdataspace/scripts/start.py +++ b/deepdataspace/scripts/start.py @@ -44,7 +44,7 @@ help="Set the http service port, default 8765.") @click.option("--reload", is_flag=True, default=None, help="Auto reload service on code change, for development only.") -@click.option("--configfile", +@click.option("--configfile", "-C", help="Load the target yaml file to initialize more configurations. " "The command line options take precedence of the config file.") def start_dds(data_dir, quickstart, verbose, public, host, port, reload, configfile): diff --git a/deepdataspace/services/dds.py b/deepdataspace/services/dds.py index 2390e24..e48d13a 100644 --- a/deepdataspace/services/dds.py +++ b/deepdataspace/services/dds.py @@ -66,10 +66,11 @@ def __init__(self, for key, val in config_data.items(): if val is not None: self.config_data[key] = val + print(f"reading config, {key} = {val}") self.data_dir = self.argument_or_config("data_dir", data_dir, None) - self.quickstart = self.argument_or_config("quickstart", quickstart, False) - self.verbose = self.argument_or_config("verbose", verbose, False) + self.quickstart = self.argument_or_config("quick_start", quickstart, False) + self.verbose = self.argument_or_config("verbose_log", verbose, False) self.public = public or False if host is None and public: host = get_output_ip_address() From 004d5395373c447bbdcf12fa066ad286b090c279 Mon Sep 17 00:00:00 2001 From: fredzhu Date: Tue, 26 Dec 2023 16:25:15 +0800 Subject: [PATCH 05/10] feat(annotator): update annotator component --- packages/app/src/models/dataset/common.tsx | 153 ++-- packages/app/src/pages/Annotator/index.tsx | 4 +- packages/app/src/pages/Dataset/index.tsx | 9 +- packages/app/src/pages/Lab/FlagTool/index.tsx | 9 +- .../app/src/pages/Project/Workspace/index.tsx | 9 +- .../app/src/pages/Project/models/workspace.ts | 10 + packages/app/src/types/dataset.ts | 2 + .../src/Annotator/assets/add-prompt.svg | 11 + .../src/Annotator/assets/attribute.svg | 6 + .../components/src/Annotator/assets/brush.svg | 1 - .../src/Annotator/assets/delete_all.svg | 2 +- .../components/src/Annotator/assets/docs.svg | 10 + .../components/src/Annotator/assets/drag.svg | 2 +- .../components/src/Annotator/assets/house.svg | 10 + .../src/Annotator/assets/keyboard-down.svg | 5 + .../components/src/Annotator/assets/label.svg | 12 + .../components/src/Annotator/assets/layer.svg | 11 + .../components/src/Annotator/assets/logo.svg | 10 + .../src/Annotator/assets/mask-ai.svg | 12 + .../components/src/Annotator/assets/mask.svg | 14 + .../src/Annotator/assets/play-next.svg | 6 + .../src/Annotator/assets/play-pre.svg | 6 + .../src/Annotator/assets/play-stop.svg | 10 + .../components/src/Annotator/assets/play.svg | 10 + .../components/src/Annotator/assets/point.svg | 13 +- .../src/Annotator/assets/polygon-ai.svg | 11 + .../src/Annotator/assets/polygon.svg | 11 +- .../src/Annotator/assets/rectangle-ai.svg | 4 + .../src/Annotator/assets/rectangle.svg | 6 +- .../src/Annotator/assets/remove-prompt.svg | 17 + .../src/Annotator/assets/review.svg | 5 + .../src/Annotator/assets/settings-sliders.svg | 12 + .../src/Annotator/assets/skeleton-ai.svg | 11 + .../src/Annotator/assets/skeleton.svg | 10 + .../src/Annotator/assets/text-prompt.svg | 16 + .../src/Annotator/assets/visual-prompt.svg | 23 + .../src/Annotator/assets/zoomResize.svg | 2 +- .../components/AnnotationEditor/index.tsx | 187 ----- .../components/AttributeEditor/index.less | 54 ++ .../components/AttributeEditor/index.tsx | 97 +++ .../components/AttributesForm/index.less | 77 ++ .../components/AttributesForm/index.tsx | 130 +++ .../components/Classification/index.less | 54 ++ .../components/Classification/index.tsx | 194 +++++ .../components/DisplaySettings/index.less | 58 ++ .../components/DisplaySettings/index.tsx | 109 +++ .../components/EditorStatus/index.less | 28 + .../components/EditorStatus/index.tsx | 40 + .../components/LabelSelector/index.less | 77 ++ .../components/LabelSelector/index.tsx | 103 +++ .../components/MainToolBar/index.less | 83 -- .../components/MainToolBar/index.tsx | 304 ------- .../components/ModelSelectModal/index.less | 61 ++ .../components/ModelSelectModal/index.tsx | 96 +++ .../components/ModelSelector/index.less | 77 ++ .../components/ModelSelector/index.tsx | 56 ++ .../components/ObjectList/index.less | 75 +- .../Annotator/components/ObjectList/index.tsx | 321 +++++--- .../PointItem/{PointItem.tsx => index.tsx} | 4 +- .../components/PointsEditModal/index.less | 65 ++ .../components/PointsEditModal/index.tsx | 114 +++ .../components/ScaleToolBar/index.less | 110 --- .../components/ScaleToolBar/index.tsx | 209 ----- .../index.less | 16 +- .../components/SegConfirmModal/index.tsx | 76 ++ .../components/ShortcutsInfo/index.less | 13 + .../components/ShortcutsInfo/index.tsx | 49 +- .../components/SliderToolBar/index.less | 200 +++++ .../components/SliderToolBar/index.tsx | 422 ++++++++++ .../SmartAnnotationControl/index.less | 8 + .../SmartAnnotationControl/index.tsx | 138 ++-- .../components/SubToolBar/index.less | 11 +- .../Annotator/components/SubToolBar/index.tsx | 135 +--- .../components/TopPagination/index.tsx | 4 +- .../Annotator/components/TopTools/index.less | 11 +- .../src/Annotator/constants/index.ts | 110 ++- .../src/Annotator/constants/render.ts | 13 +- .../src/Annotator/constants/shortcuts.ts | 2 +- packages/components/src/Annotator/editor.tsx | 683 ++++++++-------- .../hooks/{useActions.ts => useActions.tsx} | 747 ++++++++++++------ .../src/Annotator/hooks/useAttributes.ts | 72 ++ .../Annotator/hooks/useCanvasContainer.tsx | 115 ++- ...useCanvasRender.ts => useCanvasRender.tsx} | 93 ++- .../src/Annotator/hooks/useColor.ts | 19 +- .../src/Annotator/hooks/useDataEffect.ts | 75 +- .../src/Annotator/hooks/useHistory.ts | 92 ++- .../src/Annotator/hooks/useLabels.ts | 113 ++- .../src/Annotator/hooks/useMouseEvents.tsx | 38 +- .../src/Annotator/hooks/useObjects.ts | 282 ++++--- .../src/Annotator/hooks/useShortcuts.ts | 36 +- .../src/Annotator/hooks/useSubtools.tsx | 281 +++++++ .../src/Annotator/hooks/useToolActions.ts | 236 ++++-- .../src/Annotator/hooks/useTopTools.tsx | 279 +++++++ .../src/Annotator/hooks/useTranslate.ts | 403 ++++++++++ packages/components/src/Annotator/index.less | 98 ++- packages/components/src/Annotator/preview.tsx | 93 +-- .../components/src/Annotator/sevices/index.ts | 174 +++- .../components/src/Annotator/tools/base.ts | 12 +- .../components/src/Annotator/tools/useMask.ts | 147 ++-- .../src/Annotator/tools/usePoint.ts | 77 ++ .../src/Annotator/tools/usePolygon.ts | 572 +++++++++----- .../src/Annotator/tools/useRectangle.ts | 230 +++++- .../src/Annotator/tools/useSkeleton.ts | 2 +- packages/components/src/Annotator/type.ts | 116 ++- .../components/src/Annotator/utils/base64.ts | 5 + .../components/src/Annotator/utils/color.ts | 11 +- .../components/src/Annotator/utils/compute.ts | 346 +++++--- packages/components/src/Annotator/view.tsx | 51 +- packages/components/src/locales/en-US.ts | 44 ++ packages/components/src/locales/zh-CN.ts | 39 + packages/components/tsconfig.json | 2 + 111 files changed, 7125 insertions(+), 2924 deletions(-) create mode 100644 packages/components/src/Annotator/assets/add-prompt.svg create mode 100644 packages/components/src/Annotator/assets/attribute.svg delete mode 100644 packages/components/src/Annotator/assets/brush.svg create mode 100644 packages/components/src/Annotator/assets/docs.svg create mode 100644 packages/components/src/Annotator/assets/house.svg create mode 100644 packages/components/src/Annotator/assets/keyboard-down.svg create mode 100644 packages/components/src/Annotator/assets/label.svg create mode 100644 packages/components/src/Annotator/assets/layer.svg create mode 100644 packages/components/src/Annotator/assets/logo.svg create mode 100644 packages/components/src/Annotator/assets/mask-ai.svg create mode 100644 packages/components/src/Annotator/assets/mask.svg create mode 100644 packages/components/src/Annotator/assets/play-next.svg create mode 100644 packages/components/src/Annotator/assets/play-pre.svg create mode 100644 packages/components/src/Annotator/assets/play-stop.svg create mode 100644 packages/components/src/Annotator/assets/play.svg create mode 100644 packages/components/src/Annotator/assets/polygon-ai.svg create mode 100644 packages/components/src/Annotator/assets/rectangle-ai.svg create mode 100644 packages/components/src/Annotator/assets/remove-prompt.svg create mode 100644 packages/components/src/Annotator/assets/review.svg create mode 100644 packages/components/src/Annotator/assets/settings-sliders.svg create mode 100644 packages/components/src/Annotator/assets/skeleton-ai.svg create mode 100644 packages/components/src/Annotator/assets/skeleton.svg create mode 100644 packages/components/src/Annotator/assets/text-prompt.svg create mode 100644 packages/components/src/Annotator/assets/visual-prompt.svg delete mode 100644 packages/components/src/Annotator/components/AnnotationEditor/index.tsx create mode 100644 packages/components/src/Annotator/components/AttributeEditor/index.less create mode 100644 packages/components/src/Annotator/components/AttributeEditor/index.tsx create mode 100644 packages/components/src/Annotator/components/AttributesForm/index.less create mode 100644 packages/components/src/Annotator/components/AttributesForm/index.tsx create mode 100644 packages/components/src/Annotator/components/Classification/index.less create mode 100644 packages/components/src/Annotator/components/Classification/index.tsx create mode 100644 packages/components/src/Annotator/components/DisplaySettings/index.less create mode 100644 packages/components/src/Annotator/components/DisplaySettings/index.tsx create mode 100644 packages/components/src/Annotator/components/EditorStatus/index.less create mode 100644 packages/components/src/Annotator/components/EditorStatus/index.tsx create mode 100644 packages/components/src/Annotator/components/LabelSelector/index.less create mode 100644 packages/components/src/Annotator/components/LabelSelector/index.tsx delete mode 100644 packages/components/src/Annotator/components/MainToolBar/index.less delete mode 100644 packages/components/src/Annotator/components/MainToolBar/index.tsx create mode 100644 packages/components/src/Annotator/components/ModelSelectModal/index.less create mode 100644 packages/components/src/Annotator/components/ModelSelectModal/index.tsx create mode 100644 packages/components/src/Annotator/components/ModelSelector/index.less create mode 100644 packages/components/src/Annotator/components/ModelSelector/index.tsx rename packages/components/src/Annotator/components/PointItem/{PointItem.tsx => index.tsx} (97%) create mode 100644 packages/components/src/Annotator/components/PointsEditModal/index.less create mode 100644 packages/components/src/Annotator/components/PointsEditModal/index.tsx delete mode 100644 packages/components/src/Annotator/components/ScaleToolBar/index.less delete mode 100644 packages/components/src/Annotator/components/ScaleToolBar/index.tsx rename packages/components/src/Annotator/components/{AnnotationEditor => SegConfirmModal}/index.less (78%) create mode 100644 packages/components/src/Annotator/components/SegConfirmModal/index.tsx create mode 100644 packages/components/src/Annotator/components/SliderToolBar/index.less create mode 100644 packages/components/src/Annotator/components/SliderToolBar/index.tsx rename packages/components/src/Annotator/hooks/{useActions.ts => useActions.tsx} (55%) create mode 100644 packages/components/src/Annotator/hooks/useAttributes.ts rename packages/components/src/Annotator/hooks/{useCanvasRender.ts => useCanvasRender.tsx} (76%) create mode 100644 packages/components/src/Annotator/hooks/useSubtools.tsx create mode 100644 packages/components/src/Annotator/hooks/useTopTools.tsx create mode 100644 packages/components/src/Annotator/hooks/useTranslate.ts create mode 100644 packages/components/src/Annotator/tools/usePoint.ts diff --git a/packages/app/src/models/dataset/common.tsx b/packages/app/src/models/dataset/common.tsx index 72ed741..ba915a7 100644 --- a/packages/app/src/models/dataset/common.tsx +++ b/packages/app/src/models/dataset/common.tsx @@ -30,7 +30,6 @@ import { PageState, } from './type'; import { isNumber } from 'lodash'; -import { IAnnotationObject } from 'dds-components/Annotator'; import { NsDataSet } from '@/types/dataset'; export default () => { @@ -275,6 +274,40 @@ export default () => { displayLabelIds, isTiledDiff, }; + + // filter displayType + const displayType = pageState.filterValues.displayAnnotationType; + objects = objects + .filter((obj) => { + return ( + (obj.mask && displayType === AnnotationType.Mask) || + (obj.alpha && displayType === AnnotationType.Matting) || + (obj.points && displayType === AnnotationType.KeyPoints) || + (obj.segmentation && displayType === AnnotationType.Segmentation) || + (obj.boundingBox && displayType === AnnotationType.Detection) + ); + }) + .map((obj) => { + return { + ...obj, + mask: displayType === AnnotationType.Mask ? obj.mask : undefined, + alpha: + displayType === AnnotationType.Matting ? obj.alpha : undefined, + points: + displayType === AnnotationType.KeyPoints ? obj.points : undefined, + segmentation: + displayType === AnnotationType.Segmentation + ? obj.segmentation + : undefined, + boundingBox: [ + AnnotationType.Detection, + AnnotationType.KeyPoints, + ].includes(displayType!) + ? obj.boundingBox + : undefined, + }; + }); + // Analysis mode -> filter fn/fp to display if (analysisMode) { const predObjects = objects.filter( @@ -314,37 +347,69 @@ export default () => { }); } - return objects.filter((item) => { - const { showAnnotations, showAllCategory } = displayOptionsResult; - const categoryId = pageState.filterValues.categoryId || ''; - if ( - !showAnnotations || - (!showAllCategory && item.categoryId !== categoryId) || - (diffMode && - item.labelId && - !diffMode.displayLabelIds.includes(item.labelId)) || - (diffMode && - diffMode.isTiledDiff && - item.labelId !== imageData.curLabelId) - ) { - return false; - } - if (!analysisMode && diffMode) { - const label = diffMode.labels.find( - (label) => label.id === item.labelId, - ); - if (!label) return false; - if (label.source === LABEL_SOURCE.gt) return true; - return ( - item.conf !== undefined && - item.conf >= label?.confidenceRange[0] && - item.conf <= label?.confidenceRange[1] + return objects + .filter((item) => { + const { showAnnotations, showAllCategory } = displayOptionsResult; + const categoryId = pageState.filterValues.categoryId || ''; + if ( + !showAnnotations || + (!showAllCategory && item.categoryId !== categoryId) || + (diffMode && + item.labelId && + !diffMode.displayLabelIds.includes(item.labelId)) || + (diffMode && + diffMode.isTiledDiff && + item.labelId !== imageData.curLabelId) + ) { + return false; + } + if (!analysisMode && diffMode) { + const label = diffMode.labels.find( + (label) => label.id === item.labelId, + ); + if (!label) return false; + if (label.source === LABEL_SOURCE.gt) return true; + return ( + item.conf !== undefined && + item.conf >= label?.confidenceRange[0] && + item.conf <= label?.confidenceRange[1] + ); + } + return true; + }) + .map((item) => { + // get custom style + const newItem = { ...item }; + const { + colorAplha: pointAplha, + strokeDash, + lineWidth: thickness, + } = getLabelCustomStyles( + item.labelId, + displayLabelIds, + isTiledDiff || Boolean(pageState.comparisons), ); - } - return true; - }); + if (analysisMode && item.compareResult) { + newItem.customStyles = { + pointAplha, + strokeDash, + thickness, + fillColor: + // @ts-ignore + COMPARE_RESULT_FILL_COLORS[item.compareResult] || 'transparent', + }; + } else { + newItem.customStyles = { + pointAplha, + strokeDash, + thickness, + }; + } + return newItem; + }); }, [ + pageState.filterValues.displayAnnotationType, pageState.comparisons, pageData.filters.labels, displayLabelIds, @@ -353,35 +418,6 @@ export default () => { ], ); - const getCustomObjectStyles = useCallback( - (object: IAnnotationObject) => { - const { - colorAplha: pointAplha, - strokeDash, - lineWidth: thickness, - } = getLabelCustomStyles( - object.labelId, - displayLabelIds, - isTiledDiff || Boolean(pageState.comparisons), - ); - if (Boolean(pageState.comparisons) && object.compareResult) { - return { - pointAplha, - strokeDash, - thickness, - fillColor: - COMPARE_RESULT_FILL_COLORS[object.compareResult] || 'transparent', - }; - } - return { - pointAplha, - strokeDash, - thickness, - }; - }, - [displayLabelIds, isTiledDiff, Boolean(pageState.comparisons)], - ); - return { // page var pageState, @@ -405,6 +441,5 @@ export default () => { // common render displayObjectsFilter, - getCustomObjectStyles, }; }; diff --git a/packages/app/src/pages/Annotator/index.tsx b/packages/app/src/pages/Annotator/index.tsx index af1d5d7..6bee1b9 100644 --- a/packages/app/src/pages/Annotator/index.tsx +++ b/packages/app/src/pages/Annotator/index.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from 'react'; -import { useModel } from '@umijs/max'; +import { history, useModel } from '@umijs/max'; import styles from './index.less'; import { AnnotateEditor, EditorMode } from 'dds-components/Annotator'; import { ImageList } from './components/ImageList'; @@ -102,6 +102,7 @@ const Page: React.FC = () => {
{ } }); }} + onCancel={() => history.push('/')} />
{ onPreviewIndexChange, exitPreview, displayObjectsFilter, - getCustomObjectStyles, } = useModel('dataset.common'); const { onPageDidMount, @@ -111,17 +110,14 @@ const Page: React.FC = () => { }} >
{item.flag > 0 && ( @@ -157,6 +153,7 @@ const Page: React.FC = () => { )} {/* Preview */} = 0 && !isSingleAnnotation} categories={pageData.filters.categories} list={imgList} @@ -171,9 +168,7 @@ const Page: React.FC = () => { onPreviewIndexChange(pageState.previewIndex - 1); }} objectsFilter={displayObjectsFilter} - getCustomObjectStyles={getCustomObjectStyles} displayOptionsResult={displayOptionsResult} - displayAnnotationType={pageState.filterValues.displayAnnotationType} /> {/* Screen loading */} {pageData.screenLoading ? ( diff --git a/packages/app/src/pages/Lab/FlagTool/index.tsx b/packages/app/src/pages/Lab/FlagTool/index.tsx index 785b638..72b01b7 100644 --- a/packages/app/src/pages/Lab/FlagTool/index.tsx +++ b/packages/app/src/pages/Lab/FlagTool/index.tsx @@ -27,7 +27,6 @@ const Page: React.FC = () => { onPreviewIndexChange, exitPreview, displayObjectsFilter, - getCustomObjectStyles, } = useModel('dataset.common'); const { onPageDidMount, @@ -108,17 +107,14 @@ const Page: React.FC = () => { }} > {item.flag > 0 && ( @@ -154,6 +150,7 @@ const Page: React.FC = () => { )} {/* Preview */} = 0 && !isSingleAnnotation} categories={pageData.filters.categories} list={imgList} @@ -168,9 +165,7 @@ const Page: React.FC = () => { onPreviewIndexChange(pageState.previewIndex - 1); }} objectsFilter={displayObjectsFilter} - getCustomObjectStyles={getCustomObjectStyles} displayOptionsResult={displayOptionsResult} - displayAnnotationType={pageState.filterValues.displayAnnotationType} /> {/* Screen loading */} {pageData.screenLoading ? ( diff --git a/packages/app/src/pages/Project/Workspace/index.tsx b/packages/app/src/pages/Project/Workspace/index.tsx index 1064f9f..24c14bb 100644 --- a/packages/app/src/pages/Project/Workspace/index.tsx +++ b/packages/app/src/pages/Project/Workspace/index.tsx @@ -44,7 +44,8 @@ const Page: React.FC = () => { onNextImage, onPrevImage, onLabelSave, - onReviewResult, + onReviewAccept, + onReviewReject, onEnterEdit, onStartLabel, onStartRework, @@ -239,6 +240,7 @@ const Page: React.FC = () => { }} > { {isEditorVisible && (
{ actionElements={actionElements} onCancel={onExitEditor} onSave={onLabelSave} - onReviewResult={onReviewResult} - onEnterEdit={onEnterEdit} + onReviewAccept={onReviewAccept} + onReviewReject={onReviewReject} onNext={onNextImage} onPrev={onPrevImage} /> diff --git a/packages/app/src/pages/Project/models/workspace.ts b/packages/app/src/pages/Project/models/workspace.ts index fb1217a..b309825 100644 --- a/packages/app/src/pages/Project/models/workspace.ts +++ b/packages/app/src/pages/Project/models/workspace.ts @@ -419,6 +419,14 @@ export default () => { setLoading(false); }; + const onReviewAccept = async (imageId: string) => { + return await onReviewResult(imageId, EQaAction.Accept); + }; + + const onReviewReject = async (imageId: string) => { + return await onReviewResult(imageId, EQaAction.Reject); + }; + /** * Initialize page parameters from the URL. * @param urlPageState @@ -487,6 +495,8 @@ export default () => { onNextImage, onLabelSave, onReviewResult, + onReviewAccept, + onReviewReject, onEnterEdit, onStartLabel, onStartRework, diff --git a/packages/app/src/types/dataset.ts b/packages/app/src/types/dataset.ts index c62a284..14dd4a5 100644 --- a/packages/app/src/types/dataset.ts +++ b/packages/app/src/types/dataset.ts @@ -24,6 +24,8 @@ export namespace NsDataSet { compareResult: COMPARE_RESULT; /** Pred index matched in GT analysis mode. */ matchedDetIdx?: number; + /** render styles */ + customStyles?: Record; } export interface DataSetImg extends BaseImage { diff --git a/packages/components/src/Annotator/assets/add-prompt.svg b/packages/components/src/Annotator/assets/add-prompt.svg new file mode 100644 index 0000000..0fbd494 --- /dev/null +++ b/packages/components/src/Annotator/assets/add-prompt.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/attribute.svg b/packages/components/src/Annotator/assets/attribute.svg new file mode 100644 index 0000000..1670dd4 --- /dev/null +++ b/packages/components/src/Annotator/assets/attribute.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/packages/components/src/Annotator/assets/brush.svg b/packages/components/src/Annotator/assets/brush.svg deleted file mode 100644 index 060f420..0000000 --- a/packages/components/src/Annotator/assets/brush.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/components/src/Annotator/assets/delete_all.svg b/packages/components/src/Annotator/assets/delete_all.svg index 02f7ee1..f9f19b8 100644 --- a/packages/components/src/Annotator/assets/delete_all.svg +++ b/packages/components/src/Annotator/assets/delete_all.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/Annotator/assets/docs.svg b/packages/components/src/Annotator/assets/docs.svg new file mode 100644 index 0000000..dae6d8b --- /dev/null +++ b/packages/components/src/Annotator/assets/docs.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/drag.svg b/packages/components/src/Annotator/assets/drag.svg index c7ea314..ffed696 100644 --- a/packages/components/src/Annotator/assets/drag.svg +++ b/packages/components/src/Annotator/assets/drag.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/Annotator/assets/house.svg b/packages/components/src/Annotator/assets/house.svg new file mode 100644 index 0000000..5ad39a4 --- /dev/null +++ b/packages/components/src/Annotator/assets/house.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/keyboard-down.svg b/packages/components/src/Annotator/assets/keyboard-down.svg new file mode 100644 index 0000000..36a1fb4 --- /dev/null +++ b/packages/components/src/Annotator/assets/keyboard-down.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/packages/components/src/Annotator/assets/label.svg b/packages/components/src/Annotator/assets/label.svg new file mode 100644 index 0000000..f43d829 --- /dev/null +++ b/packages/components/src/Annotator/assets/label.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/layer.svg b/packages/components/src/Annotator/assets/layer.svg new file mode 100644 index 0000000..39e64bf --- /dev/null +++ b/packages/components/src/Annotator/assets/layer.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/logo.svg b/packages/components/src/Annotator/assets/logo.svg new file mode 100644 index 0000000..7e948f7 --- /dev/null +++ b/packages/components/src/Annotator/assets/logo.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/mask-ai.svg b/packages/components/src/Annotator/assets/mask-ai.svg new file mode 100644 index 0000000..669da2f --- /dev/null +++ b/packages/components/src/Annotator/assets/mask-ai.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/mask.svg b/packages/components/src/Annotator/assets/mask.svg new file mode 100644 index 0000000..a7c1377 --- /dev/null +++ b/packages/components/src/Annotator/assets/mask.svg @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/components/src/Annotator/assets/play-next.svg b/packages/components/src/Annotator/assets/play-next.svg new file mode 100644 index 0000000..efbc00b --- /dev/null +++ b/packages/components/src/Annotator/assets/play-next.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/packages/components/src/Annotator/assets/play-pre.svg b/packages/components/src/Annotator/assets/play-pre.svg new file mode 100644 index 0000000..9ea7700 --- /dev/null +++ b/packages/components/src/Annotator/assets/play-pre.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/packages/components/src/Annotator/assets/play-stop.svg b/packages/components/src/Annotator/assets/play-stop.svg new file mode 100644 index 0000000..ffe088a --- /dev/null +++ b/packages/components/src/Annotator/assets/play-stop.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/play.svg b/packages/components/src/Annotator/assets/play.svg new file mode 100644 index 0000000..ac5e066 --- /dev/null +++ b/packages/components/src/Annotator/assets/play.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/point.svg b/packages/components/src/Annotator/assets/point.svg index 62545c3..1d90f98 100644 --- a/packages/components/src/Annotator/assets/point.svg +++ b/packages/components/src/Annotator/assets/point.svg @@ -1,11 +1,4 @@ - - - - - - - - - - + + + diff --git a/packages/components/src/Annotator/assets/polygon-ai.svg b/packages/components/src/Annotator/assets/polygon-ai.svg new file mode 100644 index 0000000..532e768 --- /dev/null +++ b/packages/components/src/Annotator/assets/polygon-ai.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/polygon.svg b/packages/components/src/Annotator/assets/polygon.svg index dd0eeed..c77e4fe 100644 --- a/packages/components/src/Annotator/assets/polygon.svg +++ b/packages/components/src/Annotator/assets/polygon.svg @@ -1 +1,10 @@ - \ No newline at end of file + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/rectangle-ai.svg b/packages/components/src/Annotator/assets/rectangle-ai.svg new file mode 100644 index 0000000..b3b29c9 --- /dev/null +++ b/packages/components/src/Annotator/assets/rectangle-ai.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/components/src/Annotator/assets/rectangle.svg b/packages/components/src/Annotator/assets/rectangle.svg index 75e01aa..593e638 100644 --- a/packages/components/src/Annotator/assets/rectangle.svg +++ b/packages/components/src/Annotator/assets/rectangle.svg @@ -1 +1,5 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/packages/components/src/Annotator/assets/remove-prompt.svg b/packages/components/src/Annotator/assets/remove-prompt.svg new file mode 100644 index 0000000..73c75c5 --- /dev/null +++ b/packages/components/src/Annotator/assets/remove-prompt.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/review.svg b/packages/components/src/Annotator/assets/review.svg new file mode 100644 index 0000000..ab5f45b --- /dev/null +++ b/packages/components/src/Annotator/assets/review.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/packages/components/src/Annotator/assets/settings-sliders.svg b/packages/components/src/Annotator/assets/settings-sliders.svg new file mode 100644 index 0000000..c470e17 --- /dev/null +++ b/packages/components/src/Annotator/assets/settings-sliders.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/skeleton-ai.svg b/packages/components/src/Annotator/assets/skeleton-ai.svg new file mode 100644 index 0000000..53c6262 --- /dev/null +++ b/packages/components/src/Annotator/assets/skeleton-ai.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/skeleton.svg b/packages/components/src/Annotator/assets/skeleton.svg new file mode 100644 index 0000000..48237c9 --- /dev/null +++ b/packages/components/src/Annotator/assets/skeleton.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/text-prompt.svg b/packages/components/src/Annotator/assets/text-prompt.svg new file mode 100644 index 0000000..fd6550d --- /dev/null +++ b/packages/components/src/Annotator/assets/text-prompt.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/visual-prompt.svg b/packages/components/src/Annotator/assets/visual-prompt.svg new file mode 100644 index 0000000..0bec666 --- /dev/null +++ b/packages/components/src/Annotator/assets/visual-prompt.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/components/src/Annotator/assets/zoomResize.svg b/packages/components/src/Annotator/assets/zoomResize.svg index 99e9add..29180f0 100644 --- a/packages/components/src/Annotator/assets/zoomResize.svg +++ b/packages/components/src/Annotator/assets/zoomResize.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/Annotator/components/AnnotationEditor/index.tsx b/packages/components/src/Annotator/components/AnnotationEditor/index.tsx deleted file mode 100644 index 27324a3..0000000 --- a/packages/components/src/Annotator/components/AnnotationEditor/index.tsx +++ /dev/null @@ -1,187 +0,0 @@ -import { CloseOutlined } from '@ant-design/icons'; -import { Button, Card, Select } from 'antd'; -import classNames from 'classnames'; -import { FloatWrapper } from '../FloatWrapper'; -import { memo, useEffect, useMemo, useState } from 'react'; -import { useKeyPress } from 'ahooks'; -import { EDITOR_SHORTCUTS, EShortcuts } from '../../constants/shortcuts'; -import { useLocale } from 'dds-utils/locale'; -import CategoryCreator from '../CategoryCreator'; -import { Category, IAnnotationObject } from '../../type'; -import PointItem from '../PointItem/PointItem'; -import { EElementType, EObjectType, KEYPOINTS_VISIBLE_TYPE } from '../../constants'; -import './index.less'; - -interface IProps { - hideTitle: boolean; - allowAddCategory: boolean; - latestLabel: string; - categories: Category[]; - currEditObject: IAnnotationObject | undefined; - currObjectIndex: number; - focusObjectIndex: number; - focusEleType: EElementType; - focusEleIndex: number; - onCreateCategory: (name: string) => void; - onCloseAnnotationEditor: () => void; - onFinishCurrCreate: (label: string) => void; - onDeleteCurrObject: () => void; - onChangePointVisible: (index: number, visible: KEYPOINTS_VISIBLE_TYPE) => void; -} - -export const AnnotationEditor: React.FC = memo( - ({ - hideTitle, - allowAddCategory, - latestLabel, - categories, - currEditObject, - currObjectIndex, - focusEleIndex, - focusObjectIndex, - focusEleType, - onCreateCategory, - onFinishCurrCreate, - onDeleteCurrObject, - onCloseAnnotationEditor, - onChangePointVisible - }) => { - const { localeText } = useLocale(); - - const defaultObjectLabel = currEditObject?.label || latestLabel; - const [objLabel, setObjLabel] = useState(defaultObjectLabel); - - useEffect(() => { - setObjLabel(currEditObject?.label || latestLabel); - }, [currEditObject]); - - useKeyPress( - EDITOR_SHORTCUTS[EShortcuts.SaveCurrObject].shortcut, - (event: KeyboardEvent) => { - if (currEditObject) { - event.preventDefault(); - onFinishCurrCreate(objLabel); - } - }, - { - exactMatch: true, - }, - ); - - const showKeypointsList = useMemo(() => { - return currEditObject?.type === EObjectType.Skeleton; - }, [currEditObject]); - - return ( - - - {localeText('DDSAnnotator.annotsEditor.title')} - } - shape="circle" - size="small" - onClick={onCloseAnnotationEditor} - > -
- ) - } - > -
-
- -
- { - showKeypointsList && -
-
- { - currEditObject && currEditObject.keypoints && - currEditObject.keypoints.points.map((ele, eleIndex) => ( - { onChangePointVisible(eleIndex, visible); }} - /> - )) - } -
-
- } -
-
- - -
-
-
- - - ); - }, -); diff --git a/packages/components/src/Annotator/components/AttributeEditor/index.less b/packages/components/src/Annotator/components/AttributeEditor/index.less new file mode 100644 index 0000000..4b0fe8f --- /dev/null +++ b/packages/components/src/Annotator/components/AttributeEditor/index.less @@ -0,0 +1,54 @@ +.dds-annotator-attribute-editor { + position: absolute; + right: 1rem; + top: 1rem; + width: 320px; + box-shadow: 2px 2px 12px 3px rgba(0, 0, 0, 0.6); + opacity: 1; + pointer-events: all; + z-index: 99; + + .ant-card-head { + background-color: @colorPrimary; + color: #fff; + font-size: 15px; + padding: 0 15px; + min-height: 45px; + } + + .ant-card-body { + padding: 0 4px; + } + + &-title { + display: flex; + align-items: center; + justify-content: space-between; + + &-btn { + border: 0; + + &:hover { + background-color: rgba(255, 255, 255, 0.2) !important; + + svg { + color: #fff; + } + } + } + } + + &-content { + display: flex; + flex-direction: column; + align-items: flex-end; + } + + &-actions { + padding: 0 12px 12px; + } + + &:hover { + box-shadow: 2px 2px 12px 3px rgba(0, 0, 0, 0.6); + } +} diff --git a/packages/components/src/Annotator/components/AttributeEditor/index.tsx b/packages/components/src/Annotator/components/AttributeEditor/index.tsx new file mode 100644 index 0000000..2edafac --- /dev/null +++ b/packages/components/src/Annotator/components/AttributeEditor/index.tsx @@ -0,0 +1,97 @@ +import { Button, Card, message } from 'antd'; +import { useImmer } from 'use-immer'; +import { FloatWrapper } from '../FloatWrapper'; +import { memo, useEffect } from 'react'; +import { useLocale } from 'dds-utils/locale'; +import { IAttributeValue, IEditingAttribute } from '../../type'; +import './index.less'; +import AttributesForm from '../AttributesForm'; +import { CloseOutlined } from '@ant-design/icons'; + +interface IProps { + data: IEditingAttribute; + supportEdit?: boolean; + onConfirmAttibuteEdit: (values: IAttributeValue[]) => void; + onCancelAttibuteEdit: () => void; +} + +const AttributeEditor: React.FC = memo( + ({ data, supportEdit, onConfirmAttibuteEdit, onCancelAttibuteEdit }) => { + const { localeText } = useLocale(); + const [values, setValues] = useImmer([]); + + useEffect(() => { + setValues(data?.values || []); + }, [data.values]); + + const onChangeValue = (index: number, value: IAttributeValue) => { + setValues((s) => { + s[index] = value; + }); + }; + + const onConfirm = () => { + if ( + data.attributes.find( + (item, index) => + item.required && + (values[index] === undefined || values[index] === null), + ) + ) { + message.error(localeText('DDSAnnotator.attribute.required')); + return; + } + const results: IAttributeValue[] = []; + data.attributes.forEach((_item, index) => { + results.push(values[index] === undefined ? null : values[index]); + }); + onConfirmAttibuteEdit(results); + }; + + return ( + + +
{localeText('DDSAnnotator.attribute.add')}
+ + + } + > +
+ + {supportEdit && ( +
+ +
+ )} +
+
+
+ ); + }, +); + +export default AttributeEditor; diff --git a/packages/components/src/Annotator/components/AttributesForm/index.less b/packages/components/src/Annotator/components/AttributesForm/index.less new file mode 100644 index 0000000..359fb8a --- /dev/null +++ b/packages/components/src/Annotator/components/AttributesForm/index.less @@ -0,0 +1,77 @@ +.dds-annotator-attributes-form { + width: 100%; + padding: 12px 12px 0; + + .ant-form-item { + margin-bottom: 14px; + } + + .ant-form-item-label { + font-weight: 500; + } + + .ant-input { + border-color: @colorPrimary; + } + + &-item-title { + display: flex; + align-items: center; + + &-btn { + margin-left: 12px; + height: 24px; + border: 0; + display: flex; + align-items: center; + justify-items: center; + + svg { + width: 22px; + height: 22px; + fill: @colorPrimary; + } + } + + .attribute-warn { + fill: #f53f3f; + } + } +} + +.dds-annotator-attributes-form-dark { + .ant-form-item-label { + & > label { + color: #fff; + } + } + + .ant-radio-wrapper { + color: #fff; + + .ant-radio-disabled .ant-radio-inner { + background-color: #fff; + } + } + + .ant-checkbox-wrapper { + color: #fff; + + .ant-checkbox-disabled .ant-checkbox-inner { + background-color: #fff; + } + + .ant-checkbox-disabled + span { + color: #fff; + } + } + + .ant-input { + color: #fff; + background-color: transparent; + + &::placeholder { + color: rgba(255, 255, 255, 0.3); + } + } +} diff --git a/packages/components/src/Annotator/components/AttributesForm/index.tsx b/packages/components/src/Annotator/components/AttributesForm/index.tsx new file mode 100644 index 0000000..2dbd10a --- /dev/null +++ b/packages/components/src/Annotator/components/AttributesForm/index.tsx @@ -0,0 +1,130 @@ +import React, { memo } from 'react'; +import classNames from 'classnames'; +import { Button, Checkbox, Form, Input, Radio, Tooltip } from 'antd'; +import { EActionType, IAttribute, IAttributeValue } from '../../type'; +import { isEqual } from 'lodash'; +import './index.less'; +import { ReactComponent as Attribute } from '../../assets/attribute.svg'; +import { useLocale } from 'dds-utils/locale'; + +export interface IProps { + isDarkTheme?: boolean; + disabled?: boolean; + data: (IAttribute & { + hasAttributes?: boolean; + requireAttribute?: boolean; + })[]; + values: IAttributeValue[]; + onChangeValue: (index: number, value: IAttributeValue) => void; + onFocusInput?: ( + index: number, + event: React.FocusEvent, + ) => void; + onClickAttributes?: (index: number) => void; +} + +const propsAreEqual = (prev: IProps, next: IProps): boolean => { + return ( + prev.isDarkTheme === next.isDarkTheme && + prev.disabled === next.disabled && + isEqual(prev.data, next.data) && + isEqual(prev.values, next.values) && + prev.onChangeValue === next.onChangeValue && + prev.onFocusInput === next.onFocusInput && + prev.onClickAttributes === next.onClickAttributes + ); +}; + +const AttributesForm: React.FC = memo((props) => { + const { localeText } = useLocale(); + const { + isDarkTheme, + disabled, + data, + values, + onChangeValue, + onFocusInput, + onClickAttributes, + } = props; + + return ( +
+ {data.map((item, index) => ( + + {item.field} + + + +
+ + + onChangeImageDisplayOpts({ + ...displayOption, + brightness: value, + }) + } + min={0} + max={200} + /> +
+
+ + + onChangeImageDisplayOpts({ + ...displayOption, + contrast: value, + }) + } + min={0} + max={200} + /> +
+
+ + + onChangeImageDisplayOpts({ + ...displayOption, + saturate: value, + }) + } + min={0} + max={200} + /> +
+ + ); + }, [ + displayOption.brightness, + displayOption.contrast, + displayOption.saturate, + onChangeImageDisplayOpts, + onChangeAnnotsDisplayOpts, + ]); + + return ( + + + + + + ); + }, +); + +export default DisplaySettings; diff --git a/packages/components/src/Annotator/components/EditorStatus/index.less b/packages/components/src/Annotator/components/EditorStatus/index.less new file mode 100644 index 0000000..2abf72f --- /dev/null +++ b/packages/components/src/Annotator/components/EditorStatus/index.less @@ -0,0 +1,28 @@ +.dds-annotator-editor-status { + position: relative; + height: 30px; + padding: 0 8px; + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + color: #fff; + font-size: 14px; + font-weight: 500; + border-radius: 5px; + + svg { + width: 20px; + height: 20px; + } +} + +.dds-annotator-editor-status-1 { + border: 1px solid #26a1f4; + background: rgba(38, 161, 244, 0.38); +} + +.dds-annotator-editor-status-2 { + border: 1px solid #ffd305; + background: rgba(255, 211, 5, 0.38); +} diff --git a/packages/components/src/Annotator/components/EditorStatus/index.tsx b/packages/components/src/Annotator/components/EditorStatus/index.tsx new file mode 100644 index 0000000..6c9d428 --- /dev/null +++ b/packages/components/src/Annotator/components/EditorStatus/index.tsx @@ -0,0 +1,40 @@ +import { memo } from 'react'; +import classNames from 'classnames'; +import { useLocale } from 'dds-utils/locale'; +import { EditorMode } from '../../type'; +import { ReactComponent as LabelIcon } from '../../assets/label.svg'; +import { ReactComponent as ReviewIcon } from '../../assets/review.svg'; +import './index.less'; + +interface IProps { + mode: EditorMode; +} + +const EditorStatus: React.FC = memo(({ mode }) => { + const { localeText } = useLocale(); + + if (mode === EditorMode.View) return null; + + return ( +
+ {mode === EditorMode.Edit ? ( + <> + + {localeText('DDSAnnotator.status.labeling')} + + ) : ( + <> + + {localeText('DDSAnnotator.status.reviewing')} + + )} +
+ ); +}); + +export default EditorStatus; diff --git a/packages/components/src/Annotator/components/LabelSelector/index.less b/packages/components/src/Annotator/components/LabelSelector/index.less new file mode 100644 index 0000000..c8fe833 --- /dev/null +++ b/packages/components/src/Annotator/components/LabelSelector/index.less @@ -0,0 +1,77 @@ +.dds-annotator-label-selector { + width: 220px; + margin-left: -5px; + + .ant-select { + width: 100%; + + .ant-select-selector { + background-color: transparent !important; + color: #fff; + } + + .ant-select-selection-item { + display: flex; + align-items: center; + + svg { + width: 16px; + height: 16px; + margin-right: 10px; + } + } + + .ant-select-arrow { + color: rgba(255, 255, 255, 0.5); + } + } + + .ant-select-open .ant-select-selection-item { + color: rgba(255, 255, 255, 0.5); + } + + &-option { + &-color { + width: 12px; + height: 12px; + margin-right: 10px; + background-color: #fff; + } + + .ant-select-item-option-content { + display: flex; + align-items: center; + } + + svg { + width: 16px; + height: 16px; + margin-right: 10px; + } + } +} + +.dds-annotator-editor-light { + .dds-annotator-label-selector { + .ant-select { + .ant-select-selector { + color: #000; + border: 1px solid #acacac; + } + + .ant-select-arrow { + color: rgba(0, 0, 0, 0.5); + } + } + + .ant-select-open .ant-select-selection-item { + color: rgba(0, 0, 0, 0.5); + } + + &-option { + &-color { + background-color: #000; + } + } + } +} diff --git a/packages/components/src/Annotator/components/LabelSelector/index.tsx b/packages/components/src/Annotator/components/LabelSelector/index.tsx new file mode 100644 index 0000000..8cebe23 --- /dev/null +++ b/packages/components/src/Annotator/components/LabelSelector/index.tsx @@ -0,0 +1,103 @@ +import { Select } from 'antd'; +import { useLocale } from 'dds-utils/locale'; +import { memo, useMemo } from 'react'; +import { Category, DrawData } from '../../type'; +import CategoryCreator from '../CategoryCreator'; +import { + EBasicToolItem, + EBasicToolTypeMap, + LABEL_TOOL_MAP, + OBJECT_ICON, +} from '../../constants'; +import './index.less'; + +interface IProps { + drawData: DrawData; + latestLabelId: string; + isSeperate?: boolean; + labelOptions: Category[]; + labelColors?: Record; + onChangeObjectLabel: (labelId: string) => void; + onCreateCategory: (name: string) => void; +} + +const LabelSelector: React.FC = memo( + ({ + drawData, + latestLabelId, + isSeperate, + labelOptions, + labelColors, + onChangeObjectLabel, + onCreateCategory, + }) => { + const { localeText } = useLocale(); + const TypeIcon = useMemo(() => { + if (labelOptions.length > 0) { + const labelType = labelOptions[0]?.labelType; + // @ts-ignore + const toolType = labelType && LABEL_TOOL_MAP[labelType]; + const objectType = + EBasicToolTypeMap[toolType as unknown as EBasicToolItem]; + if (objectType) { + return OBJECT_ICON[objectType]; + } + } + return undefined; + }, [labelOptions]); + + return ( +
+ +
+ ); + }, +); + +export default LabelSelector; diff --git a/packages/components/src/Annotator/components/MainToolBar/index.less b/packages/components/src/Annotator/components/MainToolBar/index.less deleted file mode 100644 index a8bdefb..0000000 --- a/packages/components/src/Annotator/components/MainToolBar/index.less +++ /dev/null @@ -1,83 +0,0 @@ -.dds-annotator-maintoolbar { - position: absolute; - left: 1rem; - top: 50%; - transform: translateY(-50%); - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - z-index: 99; - background-color: #212121; - border-radius: 10px; - padding: 0.5rem; - width: 50px; - pointer-events: auto; - font-weight: 600; - - .maintoolbar-btn { - width: 32px; - height: 32px; - margin: 0.25rem 0; - border: 0; - background-color: transparent; - border-radius: 5px; - - svg { - scale: 1.2; - } - - &:hover { - color: @colorPrimary; - background-color: @colorPrimary; - transform: scale(1.2); - } - } - - .maintoolbar-btn-active { - color: @colorPrimary; - background-color: @colorPrimary; - } - - .maintoolbar-divider { - width: 100%; - margin: 8px 6px; - border-bottom: 1px solid #bbb; - } -} - -.dds-annotator-maintoolbar-popover { - display: flex; - flex-direction: column; - justify-content: center; - align-items: flex-start; - - .popover-title { - font-weight: 600; - font-size: 14px; - margin-right: 10px; - } - - .popover-key { - min-width: 30px; - justify-content: center; - border-radius: 2px; - padding: 2px 5px; - color: rgba(0, 0, 0, 0.8); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.1); - font-size: 12px; - font-weight: 600; - } - - .popover-divider { - width: 100%; - margin: 10px 0; - border-bottom: 1px solid rgba(0, 0, 0, 0.1); - } - - .popover-description { - max-width: 220px; - font-size: 13px; - color: rgba(0, 0, 0, 0.8); - } -} diff --git a/packages/components/src/Annotator/components/MainToolBar/index.tsx b/packages/components/src/Annotator/components/MainToolBar/index.tsx deleted file mode 100644 index 473d5e2..0000000 --- a/packages/components/src/Annotator/components/MainToolBar/index.tsx +++ /dev/null @@ -1,304 +0,0 @@ -import { Button, Popover } from 'antd'; -import Icon from '@ant-design/icons'; -import classNames from 'classnames'; -import { - EBasicToolItem, - EObjectType, - EActionToolItem, - EToolType, - OBJECT_ICON, - EDITOR_TOOL_ICON, -} from '../../constants'; -import { FloatWrapper } from '../FloatWrapper'; -import { ReactComponent as DragToolIcon } from '../../assets/drag.svg'; -import { useKeyPress } from 'ahooks'; -import { - EDITOR_SHORTCUTS, - EShortcuts, - TShortcutItem, -} from '../../constants/shortcuts'; -import { memo, useMemo } from 'react'; -import { getIconFromShortcut } from '../ShortcutsInfo'; -import { useLocale } from 'dds-utils/locale'; -import './index.less'; - -type TToolItem = { - key: T; - name: string; - shortcut: TShortcutItem; - icon: JSX.Element; - description?: string; -}; - -interface IProps { - selectedTool: EToolType; - isAIAnnotationActive: boolean; - onChangeSelectedTool: (type: EToolType) => void; - onActiveAIAnnotation: (active: boolean) => void; - undo: () => void; - redo: () => void; - repeatPrevious: () => void; - deleteAll: () => void; -} - -export const MainToolBar: React.FC = memo( - ({ - selectedTool, - isAIAnnotationActive, - onChangeSelectedTool, - onActiveAIAnnotation, - undo, - redo, - repeatPrevious, - deleteAll, - }) => { - const { localeText } = useLocale(); - - const basicTools: TToolItem[] = [ - { - key: EBasicToolItem.Drag, - name: localeText('DDSAnnotator.toolbar.drag'), - shortcut: EDITOR_SHORTCUTS[EShortcuts.DragTool], - icon: , - description: localeText('DDSAnnotator.toolbar.drag.desc'), - }, - { - key: EBasicToolItem.Rectangle, - name: localeText('DDSAnnotator.toolbar.rectangle'), - shortcut: EDITOR_SHORTCUTS[EShortcuts.RectangleTool], - icon: , - description: localeText('DDSAnnotator.toolbar.rectangle.desc'), - }, - { - key: EBasicToolItem.Polygon, - name: localeText('DDSAnnotator.toolbar.polygon'), - shortcut: EDITOR_SHORTCUTS[EShortcuts.PolygonTool], - icon: , - description: localeText('DDSAnnotator.toolbar.polygon.desc'), - }, - { - key: EBasicToolItem.Skeleton, - name: localeText('DDSAnnotator.toolbar.skeleton'), - shortcut: EDITOR_SHORTCUTS[EShortcuts.SkeletonTool], - icon: , - description: localeText('DDSAnnotator.toolbar.skeleton.desc'), - }, - { - key: EBasicToolItem.Mask, - name: localeText('DDSAnnotator.toolbar.mask'), - shortcut: EDITOR_SHORTCUTS[EShortcuts.MaskTool], - icon: , - description: localeText('DDSAnnotator.toolbar.mask.desc'), - }, - ]; - - const smartTools: TToolItem[] = [ - { - key: EActionToolItem.SmartAnnotation, - name: localeText('DDSAnnotator.toolbar.aiAnno'), - shortcut: EDITOR_SHORTCUTS[EShortcuts.SmartAnnotation], - icon: ( - - ), - description: localeText('DDSAnnotator.toolbar.aiAnno.desc'), - }, - ]; - - const actionTools = [ - { - key: EActionToolItem.Undo, - name: localeText('DDSAnnotator.toolbar.undo'), - icon: , - shortcut: EDITOR_SHORTCUTS[EShortcuts.Undo], - handler: undo, - description: localeText('DDSAnnotator.toolbar.undo.desc'), - }, - { - key: EActionToolItem.Redo, - name: localeText('DDSAnnotator.toolbar.redo'), - icon: , - shortcut: EDITOR_SHORTCUTS[EShortcuts.Redo], - handler: redo, - description: localeText('DDSAnnotator.toolbar.redo.desc'), - }, - { - key: EActionToolItem.RepeatPrevious, - name: localeText('DDSAnnotator.toolbar.repeatPrevious'), - icon: ( - - ), - shortcut: EDITOR_SHORTCUTS[EShortcuts.RepeatPrevious], - handler: repeatPrevious, - description: localeText('DDSAnnotator.toolbar.repeatPrevious.desc'), - }, - { - key: EActionToolItem.DeleteAll, - name: localeText('DDSAnnotator.toolbar.deleteAll'), - icon: , - shortcut: EDITOR_SHORTCUTS[EShortcuts.DeleteAll], - handler: deleteAll, - description: localeText('DDSAnnotator.toolbar.deleteAll.desc'), - }, - ]; - - const basicToolKeys: string[] = useMemo(() => { - return basicTools.reduce((keys: string[], tool) => { - return keys.concat(tool.shortcut.shortcut); - }, []); - }, [basicTools]); - - const smartToolKeys: string[] = useMemo(() => { - return smartTools.reduce((keys: string[], tool) => { - return keys.concat(tool.shortcut.shortcut); - }, []); - }, [actionTools]); - - /** Active Basic Tool */ - useKeyPress( - basicToolKeys, - (event) => { - const activeTool = basicTools.find((tool) => { - return tool.shortcut.shortcut.includes(event.key); - }); - if (activeTool) { - onChangeSelectedTool(activeTool.key); - } - }, - { - exactMatch: true, - }, - ); - - /** Active AI Annotation */ - useKeyPress( - smartToolKeys, - (event) => { - const smartTool = smartTools.find((tool) => { - return tool.shortcut.shortcut.includes(event.key); - }); - if (smartTool) { - onActiveAIAnnotation(!isAIAnnotationActive); - } - }, - { - exactMatch: true, - }, - ); - - /** Undo */ - useKeyPress( - EDITOR_SHORTCUTS[EShortcuts.Undo].shortcut, - (event: KeyboardEvent) => { - event.preventDefault(); - undo(); - }, - { - exactMatch: true, - }, - ); - - /** Redo */ - useKeyPress( - EDITOR_SHORTCUTS[EShortcuts.Redo].shortcut, - (event: KeyboardEvent) => { - event.preventDefault(); - redo(); - }, - { - exactMatch: true, - }, - ); - - /** Repeat Previous */ - useKeyPress( - EDITOR_SHORTCUTS[EShortcuts.RepeatPrevious].shortcut, - (event: KeyboardEvent) => { - event.preventDefault(); - repeatPrevious(); - }, - { - exactMatch: true, - }, - ); - - /** Delete All */ - useKeyPress( - EDITOR_SHORTCUTS[EShortcuts.DeleteAll].shortcut, - (event: KeyboardEvent) => { - event.preventDefault(); - deleteAll(); - }, - { - exactMatch: true, - }, - ); - - const popoverContent = ( - item: TToolItem, - ) => { - const icon = getIconFromShortcut(item.shortcut.shortcut, false); - return ( -
-
- {item.name} - {icon} -
-
-
{item.description}
-
- ); - }; - - return ( - -
- {basicTools.map((item) => ( - -
-
- ); - }, -); diff --git a/packages/components/src/Annotator/components/ModelSelectModal/index.less b/packages/components/src/Annotator/components/ModelSelectModal/index.less new file mode 100644 index 0000000..76dba70 --- /dev/null +++ b/packages/components/src/Annotator/components/ModelSelectModal/index.less @@ -0,0 +1,61 @@ +.dds-annotator-model-selector-modal { + display: flex; + gap: 30px; + + &-option { + position: relative; + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + padding-top: 30px; + padding-block-end: 20px; + margin-block: 25px; + width: 220px; + height: 180px; + border: 0.5px solid #d6d6d6; + + &-icon { + svg { + width: 55px; + height: 55px; + } + } + + &-name { + color: #000; + font-size: 18px; + font-weight: 500; + user-select: none; + } + + &-description { + text-align: center; + width: 80%; + color: rgba(0, 0, 0, 0.4); + font-size: 12px; + font-weight: 400; + text-overflow: ellipsis; + user-select: none; + } + + &-tag { + position: absolute; + top: 10px; + right: 10px; + margin: 0; + } + + &:hover { + border: 2px solid #165cff; + background: rgba(185, 206, 255, 0.11); + box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25); + } + } + + &-option-hightlight { + border: 2px solid #165cff5f; + box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.25); + background: rgba(185, 206, 255, 0.3); + } +} diff --git a/packages/components/src/Annotator/components/ModelSelectModal/index.tsx b/packages/components/src/Annotator/components/ModelSelectModal/index.tsx new file mode 100644 index 0000000..8c240a0 --- /dev/null +++ b/packages/components/src/Annotator/components/ModelSelectModal/index.tsx @@ -0,0 +1,96 @@ +import { + EBasicToolItem, + EnumModelType, + MODEL_INTRO_MAP, + TOOL_MODELS_MAP, +} from '../../constants'; +import Icon from '@ant-design/icons'; +import { Modal, Tag } from 'antd'; +import { memo, useMemo } from 'react'; +import './index.less'; +import { useLocale } from 'dds-utils'; +import classNames from 'classnames'; + +interface IProps { + selectedTool: EBasicToolItem; + AIAnnotation: boolean; + selectedModel?: EnumModelType; + onSelectModel: (type: EnumModelType) => void; + onCloseModal: () => void; +} + +const ModelSelectModal: React.FC = memo( + ({ + selectedTool, + AIAnnotation, + selectedModel, + onSelectModel, + onCloseModal, + }) => { + const { localeText } = useLocale(); + + const autoOpen = useMemo(() => { + if ( + AIAnnotation && + TOOL_MODELS_MAP[selectedTool] && + TOOL_MODELS_MAP[selectedTool]!.length > 1 && + !selectedModel + ) { + return true; + } + return false; + }, [AIAnnotation, selectedTool, selectedModel]); + + return ( + +
+ {TOOL_MODELS_MAP[selectedTool]?.map((model, index) => { + const intro = MODEL_INTRO_MAP[model]; + if (!intro) return <>; + return ( +
onSelectModel(model)} + key={index} + > + +
+ {intro.name} +
+
+ {localeText(intro.description)} +
+ {intro.hightlight && ( + + {'New'} + + )} +
+ ); + })} +
+
+ ); + }, +); + +export default ModelSelectModal; diff --git a/packages/components/src/Annotator/components/ModelSelector/index.less b/packages/components/src/Annotator/components/ModelSelector/index.less new file mode 100644 index 0000000..ce81e89 --- /dev/null +++ b/packages/components/src/Annotator/components/ModelSelector/index.less @@ -0,0 +1,77 @@ +.dds-annotator-model-selector { + width: 220px; + margin-left: -5px; + + .ant-select { + width: 100%; + + .ant-select-selector { + background-color: transparent !important; + color: #fff; + } + + .ant-select-selection-item { + display: flex; + align-items: center; + + svg { + width: 16px; + height: 16px; + margin-right: 10px; + } + } + + .ant-select-arrow { + color: rgba(255, 255, 255, 0.5); + } + } + + .ant-select-open .ant-select-selection-item { + color: rgba(255, 255, 255, 0.5); + } + + &-option { + &-color { + width: 12px; + height: 12px; + margin-right: 10px; + background-color: #fff; + } + + .ant-select-item-option-content { + display: flex; + align-items: center; + } + + svg { + width: 16px; + height: 16px; + margin-right: 10px; + } + } +} + +.dds-annotator-editor-light { + .dds-annotator-model-selector { + .ant-select { + .ant-select-selector { + color: #000; + border: 1px solid #acacac; + } + + .ant-select-arrow { + color: rgba(0, 0, 0, 0.5); + } + } + + .ant-select-open .ant-select-selection-item { + color: rgba(0, 0, 0, 0.5); + } + + &-option { + &-color { + background-color: #000; + } + } + } +} diff --git a/packages/components/src/Annotator/components/ModelSelector/index.tsx b/packages/components/src/Annotator/components/ModelSelector/index.tsx new file mode 100644 index 0000000..759c87f --- /dev/null +++ b/packages/components/src/Annotator/components/ModelSelector/index.tsx @@ -0,0 +1,56 @@ +import { Select } from 'antd'; +import { useLocale } from 'dds-utils/locale'; +import { memo } from 'react'; +import { DrawData } from '../../type'; +import { + EnumModelType, + EObjectType, + MODEL_INTRO_MAP, + OBJECT_AI_ICON, +} from '../../constants'; +import './index.less'; +import Icon from '@ant-design/icons'; + +interface IProps { + drawData: DrawData; + modelOptions: EnumModelType[]; + onSelectModel: (type: EnumModelType) => void; +} + +const ModelSelector: React.FC = memo( + ({ drawData, modelOptions, onSelectModel }) => { + const { localeText } = useLocale(); + + return ( +
+ +
+ ); + }, +); + +export default ModelSelector; diff --git a/packages/components/src/Annotator/components/ObjectList/index.less b/packages/components/src/Annotator/components/ObjectList/index.less index b814b4e..5643f3e 100644 --- a/packages/components/src/Annotator/components/ObjectList/index.less +++ b/packages/components/src/Annotator/components/ObjectList/index.less @@ -21,10 +21,15 @@ .ant-tabs-tab { padding: 12px; margin: 0; + font-size: 16px; } - .ant-tabs-tab-active { - border-bottom: 2px solid @colorPrimary; + // .ant-tabs-tab-active { + // border-bottom: 2px solid @colorPrimary; + // } + + .ant-tabs-ink-bar { + background: transparent; } .ant-tabs-nav { @@ -33,6 +38,10 @@ top: 0; z-index: 1; background: #000; + + &::before { + display: none; + } } .ant-collapse-item { @@ -98,7 +107,31 @@ right: 5%; top: 50%; transform: translateY(-50%); - border: 0; + + button { + border: 0; + } + + &-color-btn { + width: 28px; + height: 28px; + margin: 0 0.5rem; + border: 0; + background-color: transparent; + color: #fff; + border-radius: 5px; + box-shadow: unset; + + &:hover { + background-color: @colorPrimary; + transform: scale(1.2); + } + } + + &-color-btn-active { + color: @colorPrimary; + background-color: @colorPrimary; + } } .tab-collapse { @@ -202,13 +235,13 @@ .label-icon { margin-left: 15px; + margin-right: 12px; width: 15px; height: 15px; } .label { flex: 1; - max-width: 100px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; @@ -216,11 +249,45 @@ .label-actions { margin-right: 5%; + display: flex; + align-items: center; + justify-content: center; } .label-btn { border: 0; } + + .attr-btn { + border: 0; + + svg { + width: 22px; + height: 22px; + fill: @colorPrimary; + } + } + + .attr-btn-warn { + svg { + fill: #f53f3f; + } + } + + .frame-count { + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + margin: 0 8px; + font-size: 14px; + + svg { + width: 14px; + height: 14px; + fill: #fff; + } + } } .collapse-item:hover { diff --git a/packages/components/src/Annotator/components/ObjectList/index.tsx b/packages/components/src/Annotator/components/ObjectList/index.tsx index 872a090..e6bd0f7 100644 --- a/packages/components/src/Annotator/components/ObjectList/index.tsx +++ b/packages/components/src/Annotator/components/ObjectList/index.tsx @@ -1,14 +1,29 @@ -import React, { memo, useEffect, useMemo, useRef, useState } from 'react'; +import React, { + memo, + useCallback, + useEffect, + useMemo, + useRef, + useState, +} from 'react'; import { Button, Collapse, List, Tabs, Tooltip } from 'antd'; import { OBJECT_ICON } from '../../constants'; import { ReactComponent as DownArrorIcon } from '../../assets/downArror.svg'; +import { ReactComponent as Palette } from '../../assets/palette.svg'; +import { ReactComponent as Attribute } from '../../assets/attribute.svg'; +import { ReactComponent as Layer } from '../../assets/layer.svg'; import classNames from 'classnames'; import Icon, { DeleteOutlined, EyeInvisibleOutlined, EyeOutlined, } from '@ant-design/icons'; -import { IAnnotationObject } from '../../type'; +import { + Category, + DrawData, + IAnnotationObject, + IAnnotsDisplayOptions, +} from '../../type'; import { useKeyPress } from 'ahooks'; import { EDITOR_SHORTCUTS, EShortcuts } from '../../constants/shortcuts'; import { useLocale } from 'dds-utils/locale'; @@ -16,10 +31,11 @@ import VirtualList, { ListRef } from 'rc-virtual-list'; import { useWindowResize } from 'dds-hooks'; import { isEqual } from 'lodash'; import './index.less'; +import { Updater } from 'use-immer'; export interface IProps { objects: IAnnotationObject[]; - labelColors: Record; + framesObjects?: IAnnotationObject[][]; activeObjectIndex: number; className?: string; supportEdit?: boolean; @@ -30,6 +46,10 @@ export interface IProps { onChangeCategoryHidden: (category: string, hidden: boolean) => void; onDeleteObject: (index: number) => void; onChangeActiveClassName: (className: string) => void; + categories: Category[]; + setDrawDataWithHistory: Updater; + colorByCategory: boolean; + onChangeAnnotsDisplayOpts: (options: IAnnotsDisplayOptions) => void; } enum ETab { @@ -46,23 +66,27 @@ type TObjectItem = IAnnotationObject & { const propsAreEqual = (prev: IProps, next: IProps): boolean => { return ( isEqual(prev.objects, next.objects) && + isEqual(prev.framesObjects, next.framesObjects) && prev.activeObjectIndex === next.activeObjectIndex && prev.supportEdit === next.supportEdit && prev.activeClassName === next.activeClassName && prev.className === next.className && - isEqual(prev.labelColors, next.labelColors) && prev.onChangeActiveClassName === next.onChangeActiveClassName && prev.onFocusObject === next.onFocusObject && prev.onDeleteObject === next.onDeleteObject && prev.onChangeObjectHidden === next.onChangeObjectHidden && - prev.onChangeCategoryHidden === next.onChangeCategoryHidden + prev.onChangeCategoryHidden === next.onChangeCategoryHidden && + prev.setDrawDataWithHistory === next.setDrawDataWithHistory && + isEqual(prev.categories, next.categories) && + prev.colorByCategory === next.colorByCategory && + prev.onChangeAnnotsDisplayOpts === next.onChangeAnnotsDisplayOpts ); }; export const ObjectList: React.FC = memo((props) => { const { objects, - labelColors, + framesObjects, activeObjectIndex, className, supportEdit, @@ -73,8 +97,11 @@ export const ObjectList: React.FC = memo((props) => { onDeleteObject, onChangeCategoryHidden, onChangeActiveClassName, + categories, + setDrawDataWithHistory, + colorByCategory, + onChangeAnnotsDisplayOpts, } = props; - const { localeText } = useLocale(); const DEFAULT_CLASS_NAME = localeText( @@ -103,6 +130,27 @@ export const ObjectList: React.FC = memo((props) => { }); }; + const switchColorMode = () => { + onChangeAnnotsDisplayOpts({ + colorByCategory: !colorByCategory, + }); + }; + + const showEditingAttributes = useCallback( + (object: IAnnotationObject, label: Category, index: number) => { + onActiveObject(index); + setDrawDataWithHistory((s) => { + s.editingAttribute = { + index, + labelId: object.labelId, + attributes: label.attributes || [], + values: object.attributes || [], + }; + }); + }, + [onActiveObject], + ); + /** Hide All Objects */ useKeyPress( EDITOR_SHORTCUTS[EShortcuts.HideAll].shortcut, @@ -123,11 +171,13 @@ export const ObjectList: React.FC = memo((props) => { obj: IAnnotationObject, index: number, ) => { - const label = obj.label || DEFAULT_CLASS_NAME; - if (!acc[label]) { - acc[label] = []; + const labelName = + categories.find((c) => c.id === obj.labelId)?.name || + DEFAULT_CLASS_NAME; + if (!acc[labelName]) { + acc[labelName] = []; } - acc[label].push({ ...obj, originIndex: index }); + acc[labelName].push({ ...obj, originIndex: index }); return acc; }, {}, @@ -167,35 +217,36 @@ export const ObjectList: React.FC = memo((props) => { {objects.length > 0 && Object.keys(objectMapByClass) .sort() - .map((label) => { - const subObjects = objectMapByClass[label]; + .map((labelName) => { + const subObjects = objectMapByClass[labelName]; const isHidden = subObjects.every((item) => item.hidden); + const firstColor = subObjects[0]?.color; return ( { onChangeActiveClassName( - label === activeClassName ? '' : label, + labelName === activeClassName ? '' : labelName, ); }} > - {activeClassName === label && ( + {activeClassName === labelName && (
)} -
{label}
+
{labelName}
{subObjects.length} {supportEdit && ( @@ -219,7 +270,7 @@ export const ObjectList: React.FC = memo((props) => { shape={'circle'} onClick={(event) => { event.stopPropagation(); - onChangeCategoryHidden(label, !isHidden); + onChangeCategoryHidden(labelName, !isHidden); }} /> @@ -234,7 +285,7 @@ export const ObjectList: React.FC = memo((props) => {
} > - {activeClassName === label && ( + {activeClassName === labelName && ( = memo((props) => { itemKey={'originIndex'} ref={virtualListRef} > - {(object: TObjectItem, objIndex: number) => ( - { - onFocusObject(object.originIndex); - }} - onClick={(event) => { - event.stopPropagation(); - onActiveObject(object.originIndex); - }} - > - {activeObjectIndex === object.originIndex && ( -
- )} - -
{object.label}
-
- -
-
- )} + )} + +
+ + ); + }} )} @@ -344,33 +443,41 @@ export const ObjectList: React.FC = memo((props) => { items={[ { key: ETab.Class, - label: localeText('DDSAnnotator.annotsList.categories'), + label: localeText('DDSAnnotator.annotsList.labels'), children: classTab, }, - // { - // key: ETab.Object, - // label: localeText('DDSAnnotator.annotsList.objects'), - // children: objectTab, - // }, ]} tabBarExtraContent={ - objects.length > 0 && ( - +
+ - ) + {objects.length > 0 && ( + +
} /> diff --git a/packages/components/src/Annotator/components/PointItem/PointItem.tsx b/packages/components/src/Annotator/components/PointItem/index.tsx similarity index 97% rename from packages/components/src/Annotator/components/PointItem/PointItem.tsx rename to packages/components/src/Annotator/components/PointItem/index.tsx index c10d771..c6ed230 100644 --- a/packages/components/src/Annotator/components/PointItem/PointItem.tsx +++ b/packages/components/src/Annotator/components/PointItem/index.tsx @@ -40,9 +40,7 @@ const PointItem: React.FC = ({ }} /> )} -
+
{point.name ? `#${index + 1} ${point.name}` : `${index + 1} `}
diff --git a/packages/components/src/Annotator/components/PointsEditModal/index.less b/packages/components/src/Annotator/components/PointsEditModal/index.less new file mode 100644 index 0000000..4ded0a1 --- /dev/null +++ b/packages/components/src/Annotator/components/PointsEditModal/index.less @@ -0,0 +1,65 @@ +.dds-annotator-points-editor { + position: absolute; + right: 1rem; + top: 1rem; + box-shadow: 2px 2px 12px 3px rgba(0, 0, 0, 0.6); + opacity: 0; + transition: opacity 0.15s ease; + pointer-events: none; + z-index: 99; + border-radius: 6px; + overflow: hidden; + + .ant-card-head { + background-color: @colorPrimary; + color: #fff; + font-size: 15px; + padding: 0; + min-height: auto; + } + + .ant-card-body { + padding: 0; + } + + .btn { + border: 0; + } + + .title { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + padding: 0 12px; + min-height: 40px; + cursor: pointer; + + .extra-btn { + cursor: pointer; + + &:hover { + transform: scale(1.05); + } + } + } + + .content { + display: flex; + flex-direction: column; + gap: 5px; + width: 280px; + height: 140px; + overflow-y: scroll; + padding: 10px 0 12px 10px; + } + + &:hover { + box-shadow: 2px 2px 12px 3px rgba(0, 0, 0, 0.6); + } +} + +.dds-annotator-points-editor-visible { + opacity: 1; + pointer-events: all; +} diff --git a/packages/components/src/Annotator/components/PointsEditModal/index.tsx b/packages/components/src/Annotator/components/PointsEditModal/index.tsx new file mode 100644 index 0000000..dd78595 --- /dev/null +++ b/packages/components/src/Annotator/components/PointsEditModal/index.tsx @@ -0,0 +1,114 @@ +import { Card } from 'antd'; +import classNames from 'classnames'; +import { FloatWrapper } from '../FloatWrapper'; +import { memo, useMemo, useState } from 'react'; +import { useLocale } from 'dds-utils/locale'; +import { EditState, EditorMode, IAnnotationObject } from '../../type'; +import { + EElementType, + EObjectType, + KEYPOINTS_VISIBLE_TYPE, +} from '../../constants'; +import './index.less'; +import PointItem from '../PointItem'; +import { DownCircleOutlined, UpCircleOutlined } from '@ant-design/icons'; +import { Updater } from 'use-immer'; + +interface IProps { + mode: EditorMode; + isAiAnnotation: boolean; + currObject: IAnnotationObject | undefined; + currObjectIndex: number; + focusObjectIndex: number; + focusEleType: EElementType; + focusEleIndex: number; + onChangePointVisible: ( + pointIndex: number, + visible: KEYPOINTS_VISIBLE_TYPE, + ) => void; + setEditState: Updater; +} + +const PointsEditModal: React.FC = memo( + ({ + mode, + isAiAnnotation, + currObject, + currObjectIndex, + focusObjectIndex, + focusEleType, + focusEleIndex, + onChangePointVisible, + setEditState, + }) => { + const { localeText } = useLocale(); + const [collapsed, setCollapsed] = useState(true); + + const show = useMemo(() => { + if ( + currObjectIndex > -1 && + currObject?.type === EObjectType.Skeleton && + !isAiAnnotation + ) { + return true; + } + return false; + }, [mode, currObject, currObjectIndex, isAiAnnotation]); + + const onFocusEleIndex = (index: number) => { + setEditState((s) => { + s.focusObjectIndex = currObjectIndex; + s.focusEleIndex = index; + s.focusEleType = EElementType.Circle; + }); + }; + + return ( + + setCollapsed((s) => !s)}> + {localeText('DDSAnnotator.points.editor')} +
+ {collapsed ? : } +
+
+ } + > + {!collapsed && ( +
{ + event.stopPropagation(); + }} + > + {currObject && + currObject.keypoints && + currObject.keypoints.points.map((ele, eleIndex) => ( + onFocusEleIndex(eleIndex)} + onVisibleChange={(visible) => { + onChangePointVisible(eleIndex, visible); + }} + /> + ))} +
+ )} + + + ); + }, +); + +export default PointsEditModal; diff --git a/packages/components/src/Annotator/components/ScaleToolBar/index.less b/packages/components/src/Annotator/components/ScaleToolBar/index.less deleted file mode 100644 index 6e2f5f8..0000000 --- a/packages/components/src/Annotator/components/ScaleToolBar/index.less +++ /dev/null @@ -1,110 +0,0 @@ -.dds-annotator-scaletoolbar { - position: absolute; - bottom: 1rem; - left: 1rem; - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - z-index: 99; - background-color: #212121; - border-radius: 10px; - padding: 0.4rem 0.5rem; - - &-btn { - width: 32px; - height: 32px; - margin: 0 0.25rem; - border: 0; - background-color: transparent; - color: #fff; - border-radius: 5px; - box-shadow: unset; - - &:hover { - background-color: @colorPrimary; - transform: scale(1.2); - } - } - - &-btn-active { - color: @colorPrimary; - background-color: @colorPrimary; - } - - &-btn-disabled { - color: rgba(255, 255, 255, 0.25); - pointer-events: none; - - svg { - fill: rgba(255, 255, 255, 0.25); - } - } - - &-scale-text { - color: rgba(255, 255, 255, 0.8); - margin: 0 8px; - user-select: none; - } - - &-divider { - height: 24px; - margin: 0 8px; - border-left: 1px solid #bbb; - } - - &-popover { - border-radius: 10px; - - .ant-popover-inner { - padding: 0; - } - } -} - -.dds-annotator-scaletoolbar-pop-container { - border-radius: 10px; - color: #fff; - padding-bottom: 8px; - - &-header { - display: flex; - justify-content: space-between; - align-items: center; - gap: 24px; - border-bottom: 1px solid rgba(107, 114, 128); - padding: 8px 8px 8px 16px; - margin-bottom: 8px; - } - - &-btn { - width: 24px; - height: 24px; - margin: 0 0.25rem; - border: 0; - background-color: transparent; - color: #fff; - box-shadow: unset; - font-size: 12px; - } - - &-btn:hover { - background-color: @colorPrimary; - transform: scale(1.2); - - svg { - fill: #000; - } - } - - &-option { - display: flex; - flex-flow: column nowrap; - padding: 4px 16px; - width: 240px; - - .ant-slider { - margin: 5px 8px; - } - } -} diff --git a/packages/components/src/Annotator/components/ScaleToolBar/index.tsx b/packages/components/src/Annotator/components/ScaleToolBar/index.tsx deleted file mode 100644 index e3c0239..0000000 --- a/packages/components/src/Annotator/components/ScaleToolBar/index.tsx +++ /dev/null @@ -1,209 +0,0 @@ -import { Button, Popover, Slider } from 'antd'; -import Icon, { ZoomInOutlined, ZoomOutOutlined } from '@ant-design/icons'; -import classNames from 'classnames'; -import { useKeyPress } from 'ahooks'; -import { MAX_SCALE, MIN_SCALE } from '../../constants'; -import { EDITOR_SHORTCUTS, EShortcuts } from '../../constants/shortcuts'; -import { useLocale } from 'dds-utils/locale'; -import { FloatWrapper } from '../FloatWrapper'; -import { ReactComponent as ImgSetting } from '../../assets/imgSetting.svg'; -import { ReactComponent as Palette } from '../../assets/palette.svg'; -import { ReactComponent as DisplayReset } from '../../assets/displayReset.svg'; -import { ReactComponent as ZoomResize } from '../../assets/zoomResize.svg'; -import { memo, useMemo } from 'react'; -import { - DEFAULT_IMG_DISPLAY_OPTIONS, - IAnnotsDisplayOptions, - IImageDisplayOptions, -} from '../../type'; -import './index.less'; - -interface IProps { - scale: number; - displayOption: IImageDisplayOptions; - colorByCategory: boolean; - onZoomIn: () => void; - onZoomOut: () => void; - onReset: () => void; - onChangeImageDisplayOpts: (options: IImageDisplayOptions) => void; - onChangeAnnotsDisplayOpts: (options: IAnnotsDisplayOptions) => void; -} - -export const ScaleToolBar: React.FC = memo( - ({ - scale, - displayOption, - colorByCategory, - onZoomIn, - onZoomOut, - onReset, - onChangeImageDisplayOpts, - onChangeAnnotsDisplayOpts, - }) => { - const { localeText } = useLocale(); - - const disabledZoomIn = scale >= MAX_SCALE; - const disabledZoomOut = scale <= MIN_SCALE; - - useKeyPress(EDITOR_SHORTCUTS[EShortcuts.ZoomIn].shortcut, () => { - if (disabledZoomIn) return; - onZoomIn(); - }); - - useKeyPress(EDITOR_SHORTCUTS[EShortcuts.ZoomOut].shortcut, () => { - if (disabledZoomOut) return; - onZoomOut(); - }); - - useKeyPress(EDITOR_SHORTCUTS[EShortcuts.Reset].shortcut, () => { - onReset(); - }); - - const popoverContent = useMemo(() => { - return ( -
-
-
{localeText('DDSAnnotator.imgDisplayTool.title')}
- -
-
- - - onChangeImageDisplayOpts({ - ...displayOption, - brightness: value, - }) - } - min={0} - max={200} - /> -
-
- - - onChangeImageDisplayOpts({ - ...displayOption, - contrast: value, - }) - } - min={0} - max={200} - /> -
-
- - - onChangeImageDisplayOpts({ - ...displayOption, - saturate: value, - }) - } - min={0} - max={200} - /> -
-
- ); - }, [ - displayOption.brightness, - displayOption.contrast, - displayOption.saturate, - onChangeImageDisplayOpts, - onChangeAnnotsDisplayOpts, - ]); - - const mouseEventHandler = (event: React.MouseEvent) => { - // enable mouseup propagate only for sliders - if (event.type === 'mouseup') { - return; - } else { - event.stopPropagation(); - } - }; - - const switchColorMode = () => { - onChangeAnnotsDisplayOpts({ - colorByCategory: !colorByCategory, - }); - }; - - return ( - -
- - - - - - {localeText('DDSAnnotator.colorMode')} - - } - trigger="hover" - color={'#212121'} - > - - -
-
- ); - }, -); diff --git a/packages/components/src/Annotator/components/AnnotationEditor/index.less b/packages/components/src/Annotator/components/SegConfirmModal/index.less similarity index 78% rename from packages/components/src/Annotator/components/AnnotationEditor/index.less rename to packages/components/src/Annotator/components/SegConfirmModal/index.less index 6cfa178..dbfe7bd 100644 --- a/packages/components/src/Annotator/components/AnnotationEditor/index.less +++ b/packages/components/src/Annotator/components/SegConfirmModal/index.less @@ -1,4 +1,4 @@ -.dds-annotator-anno-editor { +.dds-annotator-seg-confirm { position: absolute; right: 1rem; top: 1rem; @@ -33,9 +33,8 @@ .content { display: flex; - flex-direction: column; align-items: center; - justify-content: flex-end; + justify-content: space-between; gap: 12px; .item { @@ -46,15 +45,6 @@ width: 100%; } - .list { - display: flex; - flex-direction: column; - gap: 5px; - width: 100%; - height: 150px; - overflow-y: scroll; - } - .selector { width: 100%; } @@ -71,7 +61,7 @@ } } -.dds-annotator-anno-editor-visible { +.dds-annotator-seg-confirm-visible { opacity: 1; pointer-events: all; } diff --git a/packages/components/src/Annotator/components/SegConfirmModal/index.tsx b/packages/components/src/Annotator/components/SegConfirmModal/index.tsx new file mode 100644 index 0000000..e39492e --- /dev/null +++ b/packages/components/src/Annotator/components/SegConfirmModal/index.tsx @@ -0,0 +1,76 @@ +import { Button, Card } from 'antd'; +import classNames from 'classnames'; +import { FloatWrapper } from '../FloatWrapper'; +import { memo, useMemo } from 'react'; +import { useKeyPress } from 'ahooks'; +import { EDITOR_SHORTCUTS, EShortcuts } from '../../constants/shortcuts'; +import { useLocale } from 'dds-utils/locale'; +import { EditorMode, IAnnotationObject } from '../../type'; +import { EObjectType } from '../../constants'; +import './index.less'; + +interface IProps { + mode: EditorMode; + isAiAnnotation: boolean; + latestLabelId: string; + currObject: IAnnotationObject | undefined; + onFinishCurrCreate: (labelId: string) => void; +} + +const SegConfirmModal: React.FC = memo( + ({ mode, isAiAnnotation, latestLabelId, currObject, onFinishCurrCreate }) => { + const { localeText } = useLocale(); + + const show = useMemo(() => { + if (mode !== EditorMode.Edit) return false; + if ( + currObject?.type === EObjectType.Mask || + (currObject?.type === EObjectType.Polygon && isAiAnnotation) + ) { + return true; + } + return false; + }, [mode, currObject, isAiAnnotation]); + + useKeyPress( + EDITOR_SHORTCUTS[EShortcuts.SaveCurrObject].shortcut, + (event: KeyboardEvent) => { + if (currObject) { + event.preventDefault(); + onFinishCurrCreate(latestLabelId); + } + }, + { + exactMatch: true, + }, + ); + + return ( + + {localeText('DDSAnnotator.seg.tool')}
+ } + > +
+
{localeText('DDSAnnotator.seg.tool.content')}
+ +
+ + + ); + }, +); + +export default SegConfirmModal; diff --git a/packages/components/src/Annotator/components/ShortcutsInfo/index.less b/packages/components/src/Annotator/components/ShortcutsInfo/index.less index a67fc9f..cec2e1b 100644 --- a/packages/components/src/Annotator/components/ShortcutsInfo/index.less +++ b/packages/components/src/Annotator/components/ShortcutsInfo/index.less @@ -50,3 +50,16 @@ color: rgba(255, 255, 255, 0.9); } } + +.dds-annotator-shortcutsinfo-icon { + svg { + margin-left: 2px; + margin-right: 12px; + fill: #fff; + cursor: pointer; + + &:hover { + fill: @colorPrimary; + } + } +} diff --git a/packages/components/src/Annotator/components/ShortcutsInfo/index.tsx b/packages/components/src/Annotator/components/ShortcutsInfo/index.tsx index c6ca6b1..e5ae72b 100644 --- a/packages/components/src/Annotator/components/ShortcutsInfo/index.tsx +++ b/packages/components/src/Annotator/components/ShortcutsInfo/index.tsx @@ -1,5 +1,5 @@ import { Dropdown, Menu, MenuProps, Tooltip } from 'antd'; -import { ReactComponent as KeyboardIcon } from '../../assets/keyboard.svg'; +import { ReactComponent as KeyboardIcon } from '../../assets/keyboard-down.svg'; import Icon from '@ant-design/icons'; import { memo, useMemo } from 'react'; import { @@ -12,9 +12,11 @@ import { import { useLocale } from 'dds-utils/locale'; import './index.less'; import classNames from 'classnames'; +import { EditorMode } from '../../type'; interface IProps { - viewOnly: boolean; + mode: EditorMode; + // viewOnly: boolean; } export const getIconFromShortcut = (keys: string[], withStyle = true) => { @@ -30,9 +32,12 @@ export const getIconFromShortcut = (keys: string[], withStyle = true) => { const combineKeys = key.split('.'); combineKeys.forEach((key, idx) => { const letter = ( - + {convertAliasToSymbol(key)} ); @@ -41,7 +46,7 @@ export const getIconFromShortcut = (keys: string[], withStyle = true) => { icons.push( @@ -55,7 +60,7 @@ export const getIconFromShortcut = (keys: string[], withStyle = true) => { const letter = ( @@ -68,7 +73,7 @@ export const getIconFromShortcut = (keys: string[], withStyle = true) => { icons.push( @@ -81,7 +86,7 @@ export const getIconFromShortcut = (keys: string[], withStyle = true) => { return {icons}; }; -export const ShortcutsInfo: React.FC = memo(({ viewOnly }) => { +export const ShortcutsInfo: React.FC = memo(({ mode }) => { const { localeText } = useLocale(); const convertShortcutsToMenuProps = ( @@ -91,11 +96,26 @@ export const ShortcutsInfo: React.FC = memo(({ viewOnly }) => { for (const key in shortcuts) { if (shortcuts.hasOwnProperty(key)) { // @ts-ignore - const { type, descTextKey, shortcut } = shortcuts[key]; + const { name, type, descTextKey, shortcut } = shortcuts[key]; const description = localeText(descTextKey); - if (viewOnly && type !== EShortcutType.ViewAction) { + if (mode === EditorMode.View && type !== EShortcutType.ViewAction) { continue; } + if (mode === EditorMode.Review) { + if ( + [EShortcutType.AnnotationAction, EShortcutType.Tool].includes(type) + ) { + continue; + } + if ( + [EShortcutType.GeneralAction].includes(type) && + name !== 'Accept' && + name !== 'Reject' + ) { + continue; + } + } + if (categories[type]) { categories[type].children.push({ key, @@ -123,7 +143,7 @@ export const ShortcutsInfo: React.FC = memo(({ viewOnly }) => { const items = useMemo(() => { return convertShortcutsToMenuProps(EDITOR_SHORTCUTS) || []; - }, [viewOnly]); + }, [mode]); return ( = memo(({ viewOnly }) => { > diff --git a/packages/components/src/Annotator/components/SliderToolBar/index.less b/packages/components/src/Annotator/components/SliderToolBar/index.less new file mode 100644 index 0000000..5ab1a0b --- /dev/null +++ b/packages/components/src/Annotator/components/SliderToolBar/index.less @@ -0,0 +1,200 @@ +.dds-annotator-slidertoolbar { + position: relative; + height: 100%; + background: #212121; + border-radius: 0; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + gap: 12px; + width: 50px; + pointer-events: auto; + font-weight: 600; + padding: 1rem 0.5rem 2rem; + z-index: 99; + overflow-y: scroll; + + /* Hide scrollbar */ + scrollbar-width: none; /* firefox */ + -ms-overflow-style: none; /* IE 10+ */ + &::-webkit-scrollbar { + display: none; /* Chrome Safari */ + } + + &-content { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 12px; + } + + .slidertoolbar-btn { + width: 32px; + height: 32px; + border: 0; + background-color: transparent; + border-radius: 5px; + + svg { + color: #fff; + fill: #fff; + scale: 1.2; + } + + &:hover { + background-color: @colorPrimary; + transform: scale(1.2); + } + } + + .slidertoolbar-btn-active { + color: @colorPrimary; + background-color: @colorPrimary; + } + + // .slidertoolbar-tool-btn-active { + // svg { + // color: @colorPrimary; + // fill: @colorPrimary; + // } + // } + + .slidertoolbar-btn-disabled { + color: rgba(255, 255, 255, 0.25); + pointer-events: none; + + svg { + fill: rgba(255, 255, 255, 0.25); + } + } + + .slidertoolbar-annotool-active-wrap { + display: flex; + flex-direction: column; + align-items: center; + gap: 12px; + width: 50px; + padding: 10px 0; + background: #484848; + border-radius: 12px; + } + + .slidertoolbar-scale-text { + font-size: 12px; + font-weight: normal; + color: rgba(255, 255, 255, 0.8); + margin: 12px 0; + user-select: none; + } + + .slidertoolbar-divider { + width: 100%; + margin: 8px 6px; + border-bottom: 1px solid #bbb; + } +} + +.dds-annotator-slidertoolbar-popover { + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + + .popover-title { + font-weight: 600; + font-size: 14px; + margin-right: 10px; + } + + .popover-key { + min-width: 30px; + justify-content: center; + border-radius: 2px; + padding: 2px 5px; + color: rgba(0, 0, 0, 0.8); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.1); + font-size: 12px; + font-weight: 600; + } + + .popover-divider { + width: 100%; + margin: 10px 0; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + } + + .popover-description { + max-width: 220px; + font-size: 13px; + color: rgba(0, 0, 0, 0.8); + } +} + +.dds-annotator-editor-light { + .dds-annotator-slidertoolbar { + background: #fff; + + .slidertoolbar-btn { + box-shadow: none; + + svg { + color: #000; + fill: #000; + scale: 1.2; + } + + &:hover { + svg { + color: #fff; + fill: #fff; + } + } + } + + .slidertoolbar-btn-active { + svg { + color: #fff; + fill: #fff; + scale: 1.2; + } + } + + .slidertoolbar-btn-disabled { + color: rgba(0, 0, 0, 0.25); + + svg { + fill: rgba(0, 0, 0, 0.25); + } + } + + .slidertoolbar-annotool-active-wrap { + background: #484848; + } + + .slidertoolbar-scale-text { + color: rgba(0, 0, 0, 0.8); + } + + .slidertoolbar-divider { + border-bottom: 1px solid #bbb; + } + } + + .dds-annotator-slidertoolbar-popover { + .popover-key { + color: rgba(255, 255, 255, 0.8); + box-shadow: 0 1px 3px rgba(255, 255, 255, 0.3), + 0 1px 2px rgba(255, 255, 255, 0.1); + } + + .popover-divider { + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + } + + .popover-description { + color: rgba(255, 255, 255, 0.8); + } + } +} diff --git a/packages/components/src/Annotator/components/SliderToolBar/index.tsx b/packages/components/src/Annotator/components/SliderToolBar/index.tsx new file mode 100644 index 0000000..81340c3 --- /dev/null +++ b/packages/components/src/Annotator/components/SliderToolBar/index.tsx @@ -0,0 +1,422 @@ +import { Button, Popover } from 'antd'; +import Icon, { ZoomInOutlined, ZoomOutOutlined } from '@ant-design/icons'; +import classNames from 'classnames'; +import { + EBasicToolItem, + EObjectType, + EActionToolItem, + EToolType, + OBJECT_ICON, + EDITOR_TOOL_ICON, + MAX_SCALE, + MIN_SCALE, + OBJECT_AI_ICON, + TOOL_MODELS_MAP, + EnumModelType, +} from '../../constants'; +import { ReactComponent as DragToolIcon } from '../../assets/drag.svg'; +import { useKeyPress } from 'ahooks'; +import { + EDITOR_SHORTCUTS, + EShortcuts, + TShortcutItem, +} from '../../constants/shortcuts'; +import { memo, useMemo } from 'react'; +import { getIconFromShortcut } from '../ShortcutsInfo'; +import { useLocale } from 'dds-utils/locale'; +import { ReactComponent as ZoomResize } from '../../assets/zoomResize.svg'; +import './index.less'; + +type TToolItem = { + key: T; + name: string; + shortcut: TShortcutItem; + icon: JSX.Element; + aiIcon?: JSX.Element; + aiModels?: EnumModelType[]; + description?: string; +}; + +interface IProps { + selectedTool: EToolType; + manualMode?: boolean; + limitToolTypes?: EBasicToolItem[]; + supportRepeat?: boolean; + isAIAnnotationActive: boolean; + onChangeSelectedTool: (type: EToolType) => void; + onActiveAIAnnotation: (active: boolean) => void; + undo: () => void; + redo: () => void; + repeatPrevious?: () => void; + deleteAll: () => void; + scale: number; + onZoomIn: () => void; + onZoomOut: () => void; + onZoomReset: () => void; + onlySupportZoom: boolean; + hideUndoRedoActions?: boolean; +} + +const SliderToolBar: React.FC = memo( + ({ + selectedTool, + manualMode, + supportRepeat, + limitToolTypes, + isAIAnnotationActive, + onChangeSelectedTool, + onActiveAIAnnotation, + undo, + redo, + repeatPrevious, + deleteAll, + scale, + onZoomIn, + onZoomOut, + onZoomReset, + onlySupportZoom, + hideUndoRedoActions, + }) => { + const { localeText } = useLocale(); + + const dragTools: TToolItem[] = useMemo(() => { + return [ + { + key: EBasicToolItem.Drag, + name: localeText('DDSAnnotator.toolbar.drag'), + shortcut: EDITOR_SHORTCUTS[EShortcuts.DragTool], + icon: , + description: localeText('DDSAnnotator.toolbar.drag.desc'), + }, + ]; + }, []); + + const annoTools: TToolItem[] = useMemo(() => { + const typeTools = [ + { + key: EBasicToolItem.Rectangle, + name: localeText('DDSAnnotator.toolbar.rectangle'), + shortcut: EDITOR_SHORTCUTS[EShortcuts.RectangleTool], + icon: , + aiIcon: , + aiModels: TOOL_MODELS_MAP[EBasicToolItem.Rectangle], + description: localeText('DDSAnnotator.toolbar.rectangle.desc'), + }, + { + key: EBasicToolItem.Polygon, + name: localeText('DDSAnnotator.toolbar.polygon'), + shortcut: EDITOR_SHORTCUTS[EShortcuts.PolygonTool], + icon: , + aiIcon: , + description: localeText('DDSAnnotator.toolbar.polygon.desc'), + }, + { + key: EBasicToolItem.Skeleton, + name: localeText('DDSAnnotator.toolbar.skeleton'), + shortcut: EDITOR_SHORTCUTS[EShortcuts.SkeletonTool], + icon: , + aiIcon: , + description: localeText('DDSAnnotator.toolbar.skeleton.desc'), + }, + { + key: EBasicToolItem.Mask, + name: localeText('DDSAnnotator.toolbar.mask'), + shortcut: EDITOR_SHORTCUTS[EShortcuts.MaskTool], + icon: , + aiIcon: , + description: localeText('DDSAnnotator.toolbar.mask.desc'), + }, + ]; + if (limitToolTypes) { + return typeTools.filter((item) => limitToolTypes.includes(item.key)); + } + return typeTools; + }, [limitToolTypes]); + + const smartTool: TToolItem = { + key: EActionToolItem.SmartAnnotation, + name: localeText('DDSAnnotator.toolbar.aiAnno'), + shortcut: EDITOR_SHORTCUTS[EShortcuts.SmartAnnotation], + icon: ( + + ), + description: localeText('DDSAnnotator.toolbar.aiAnno.desc'), + }; + + const actionTools = [ + ...(!hideUndoRedoActions + ? [ + { + key: EActionToolItem.Undo, + name: localeText('DDSAnnotator.toolbar.undo'), + icon: , + shortcut: EDITOR_SHORTCUTS[EShortcuts.Undo], + handler: undo, + description: localeText('DDSAnnotator.toolbar.undo.desc'), + }, + { + key: EActionToolItem.Redo, + name: localeText('DDSAnnotator.toolbar.redo'), + icon: , + shortcut: EDITOR_SHORTCUTS[EShortcuts.Redo], + handler: redo, + description: localeText('DDSAnnotator.toolbar.redo.desc'), + }, + ] + : []), + ...(supportRepeat + ? [ + { + key: EActionToolItem.RepeatPrevious, + name: localeText('DDSAnnotator.toolbar.repeatPrevious'), + icon: ( + + ), + shortcut: EDITOR_SHORTCUTS[EShortcuts.RepeatPrevious], + handler: repeatPrevious, + description: localeText( + 'DDSAnnotator.toolbar.repeatPrevious.desc', + ), + }, + ] + : []), + { + key: EActionToolItem.DeleteAll, + name: localeText('DDSAnnotator.toolbar.deleteAll'), + icon: , + shortcut: EDITOR_SHORTCUTS[EShortcuts.DeleteAll], + handler: deleteAll, + description: localeText('DDSAnnotator.toolbar.deleteAll.desc'), + }, + ]; + + const basicToolKeys: string[] = useMemo(() => { + return [...dragTools, ...annoTools].reduce((keys: string[], tool) => { + return keys.concat(tool.shortcut.shortcut); + }, []); + }, [dragTools, annoTools]); + + /** Active Basic Tool */ + useKeyPress( + basicToolKeys, + (event) => { + const activeTool = [...dragTools, ...annoTools].find((tool) => { + return tool.shortcut.shortcut.includes(event.key); + }); + if (activeTool) { + onChangeSelectedTool(activeTool.key); + } + }, + { + exactMatch: true, + }, + ); + + /** Active AI Annotation */ + useKeyPress( + EDITOR_SHORTCUTS[EShortcuts.SmartAnnotation].shortcut, + () => { + if (selectedTool !== EBasicToolItem.Drag) { + onActiveAIAnnotation(!isAIAnnotationActive); + } + }, + { + exactMatch: true, + }, + ); + + /** Undo */ + useKeyPress( + EDITOR_SHORTCUTS[EShortcuts.Undo].shortcut, + (event: KeyboardEvent) => { + event.preventDefault(); + undo(); + }, + { + exactMatch: true, + }, + ); + + /** Redo */ + useKeyPress( + EDITOR_SHORTCUTS[EShortcuts.Redo].shortcut, + (event: KeyboardEvent) => { + event.preventDefault(); + redo(); + }, + { + exactMatch: true, + }, + ); + + /** Repeat Previous */ + useKeyPress( + EDITOR_SHORTCUTS[EShortcuts.RepeatPrevious].shortcut, + (event: KeyboardEvent) => { + event.preventDefault(); + repeatPrevious?.(); + }, + { + exactMatch: true, + }, + ); + + /** Delete All */ + useKeyPress( + EDITOR_SHORTCUTS[EShortcuts.DeleteAll].shortcut, + (event: KeyboardEvent) => { + event.preventDefault(); + deleteAll(); + }, + { + exactMatch: true, + }, + ); + + const disabledZoomIn = scale >= MAX_SCALE; + const disabledZoomOut = scale <= MIN_SCALE; + + useKeyPress(EDITOR_SHORTCUTS[EShortcuts.ZoomIn].shortcut, () => { + if (disabledZoomIn) return; + onZoomIn(); + }); + + useKeyPress(EDITOR_SHORTCUTS[EShortcuts.ZoomOut].shortcut, () => { + if (disabledZoomOut) return; + onZoomOut(); + }); + + useKeyPress(EDITOR_SHORTCUTS[EShortcuts.Reset].shortcut, () => { + onZoomReset(); + }); + + const popoverContent = ( + item: TToolItem, + ) => { + const icon = getIconFromShortcut(item.shortcut.shortcut, false); + return ( +
+
+ {item.name} + {icon} +
+
+
{item.description}
+
+ ); + }; + + return ( +
{ + event.stopPropagation(); + }} + > + {!onlySupportZoom ? ( +
+ {dragTools.map((item) => ( + +
+ ))} +
+ {actionTools.map((item) => ( + +
+ ) : ( +
+ )} +
+
+
+ ); + }, +); + +export default SliderToolBar; diff --git a/packages/components/src/Annotator/components/SmartAnnotationControl/index.less b/packages/components/src/Annotator/components/SmartAnnotationControl/index.less index a8be35f..746d7f1 100644 --- a/packages/components/src/Annotator/components/SmartAnnotationControl/index.less +++ b/packages/components/src/Annotator/components/SmartAnnotationControl/index.less @@ -23,6 +23,14 @@ &-btn { border: 0; + + &:hover { + background-color: rgba(255, 255, 255, 0.2) !important; + + svg { + color: #fff; + } + } } &-title { diff --git a/packages/components/src/Annotator/components/SmartAnnotationControl/index.tsx b/packages/components/src/Annotator/components/SmartAnnotationControl/index.tsx index de90669..b22572a 100644 --- a/packages/components/src/Annotator/components/SmartAnnotationControl/index.tsx +++ b/packages/components/src/Annotator/components/SmartAnnotationControl/index.tsx @@ -6,15 +6,15 @@ import { EActionToolItem, ESubToolItem, EToolType, + EnumModelType, } from '../../constants'; import { CloseOutlined } from '@ant-design/icons'; import Icon from '@ant-design/icons/lib/components/Icon'; import { Button, Card, Select, Slider, Space } from 'antd'; import classNames from 'classnames'; -import { useMemo, memo } from 'react'; +import { useMemo, memo, useState } from 'react'; import { FloatWrapper } from '../FloatWrapper'; import { useLocale } from 'dds-utils/locale'; -import CategoryCreator from '../CategoryCreator'; import { OnAiAnnotationFunc } from '../../hooks/useActions'; import { useImmer } from 'use-immer'; import { ReactComponent as DragToolIcon } from '../../assets/drag.svg'; @@ -26,21 +26,19 @@ import './index.less'; interface IProps { selectedTool: EToolType; selectedSubTool: ESubToolItem; + selectedModel?: EnumModelType; AIAnnotation: boolean; hasPolygonPreds: boolean; isBatchEditing: boolean; isCtrlPressed: boolean; naturalSize: ISize; - aiLabels: string[]; + aiLabels?: string; limitConf: number; categories: Category[]; - setAiLabels: (labels: string[]) => void; + setAiLabels: (labels?: string) => void; forceChangeTool: (tool: EBasicToolItem, subtool: ESubToolItem) => void; - onCreateCategory: (name: string) => void; onExitAIAnnotation: () => void; onAiAnnotation: OnAiAnnotationFunc; - onSaveAIPolygon: () => void; - onCancelAIPolygon: () => void; onChangeConfidenceRange: (range: [number, number]) => void; onChangeLimitConf: (value: number) => void; onAcceptValidObjects: () => void; @@ -51,8 +49,8 @@ const SmartAnnotationControl: React.FC = memo( ({ selectedTool, selectedSubTool, + selectedModel, AIAnnotation, - hasPolygonPreds, isBatchEditing, isCtrlPressed, aiLabels, @@ -60,11 +58,8 @@ const SmartAnnotationControl: React.FC = memo( naturalSize, limitConf, setAiLabels, - onCreateCategory, onExitAIAnnotation, onAiAnnotation, - onSaveAIPolygon, - onCancelAIPolygon, onChangeConfidenceRange, onChangeLimitConf, onAcceptValidObjects, @@ -72,6 +67,7 @@ const SmartAnnotationControl: React.FC = memo( forceChangeTool, }) => { const { localeText } = useLocale(); + const [inputText, setInputText] = useState(''); /** Parameters for requesting segmemt everything API */ const [samParams, setSamParams] = useImmer({ @@ -86,7 +82,10 @@ const SmartAnnotationControl: React.FC = memo( icon: DragToolIcon, }, [EBasicToolItem.Rectangle]: { - name: localeText('DDSAnnotator.smart.detection.name'), + name: + selectedModel === EnumModelType.Detection + ? localeText('DDSAnnotator.smart.detection.name') + : localeText('DDSAnnotator.smart.ivp.name'), icon: OBJECT_ICON[EObjectType.Rectangle], }, [EBasicToolItem.Polygon]: { @@ -105,9 +104,14 @@ const SmartAnnotationControl: React.FC = memo( const labelOptions = useMemo(() => { if (selectedTool === EBasicToolItem.Rectangle) { - return categories?.map((category) => ( - - {category.name} + let options = categories?.map((c) => c.name); + options = + inputText && !options.includes(inputText) + ? [inputText, ...options] + : options; + return options.map((text) => ( + + {text} )); } else if (selectedTool === EBasicToolItem.Polygon) { @@ -119,7 +123,7 @@ const SmartAnnotationControl: React.FC = memo( )); } - }, [selectedTool, categories]); + }, [selectedTool, categories, inputText]); const mouseEventHandler = (event: React.MouseEvent) => { if ( @@ -140,22 +144,27 @@ const SmartAnnotationControl: React.FC = memo( if (!AIAnnotation || selectedTool === EBasicToolItem.Drag) return false; if ( - selectedTool === EBasicToolItem.Mask && - selectedSubTool !== ESubToolItem.AutoSegmentEverything + (selectedTool === EBasicToolItem.Mask && + selectedSubTool !== ESubToolItem.AutoSegmentEverything) || + selectedTool === EBasicToolItem.Polygon ) return false; - if ( - selectedTool === EBasicToolItem.Rectangle && - isBatchEditing && - isCtrlPressed - ) - return false; + if (selectedTool === EBasicToolItem.Rectangle) { + if (selectedModel === EnumModelType.Detection) { + return !(isBatchEditing && isCtrlPressed); + } else if (selectedModel === EnumModelType.IVP) { + return isBatchEditing; + } else { + return false; + } + } return true; }, [ selectedTool, selectedSubTool, + selectedModel, AIAnnotation, isBatchEditing, isCtrlPressed, @@ -167,7 +176,12 @@ const SmartAnnotationControl: React.FC = memo( }; const aiDetectionTip = useMemo(() => { - if (isBatchEditing && isCtrlPressed) { + if ( + selectedTool === EBasicToolItem.Rectangle && + selectedModel === EnumModelType.Detection && + isBatchEditing && + isCtrlPressed + ) { return [ { text: localeText('DDSAnnotator.smart.tip.recover'), @@ -180,7 +194,7 @@ const SmartAnnotationControl: React.FC = memo( ]; } return []; - }, [isBatchEditing, isCtrlPressed]); + }, [isBatchEditing, isCtrlPressed, selectedModel]); const imageArea = useMemo(() => { return naturalSize.width * naturalSize.height; @@ -227,6 +241,7 @@ const SmartAnnotationControl: React.FC = memo( >
{selectedTool === EBasicToolItem.Rectangle && + selectedModel === EnumModelType.Detection && (isBatchEditing ? (
@@ -273,13 +288,10 @@ const SmartAnnotationControl: React.FC = memo( placeholder={localeText( 'DDSAnnotator.smart.detection.input', )} - showArrow={true} + showSearch value={aiLabels} - onChange={(values) => - Array.isArray(values) - ? setAiLabels(values) - : setAiLabels([values]) - } + onChange={(value) => setAiLabels(value)} + onSearch={(value) => setInputText(value)} onInputKeyDown={(e) => { if (e.code !== 'Enter') { e.stopPropagation(); @@ -289,20 +301,6 @@ const SmartAnnotationControl: React.FC = memo( getPopupContainer={() => document.getElementById('smart-annotation-editor') } - mode={'multiple'} - dropdownRender={(menu) => ( - <> - {menu} - { - { - onCreateCategory(value); - setAiLabels([...aiLabels, value]); - }} - /> - } - - )} > {labelOptions} @@ -314,6 +312,26 @@ const SmartAnnotationControl: React.FC = memo(
))} + {selectedTool === EBasicToolItem.Rectangle && + selectedModel === EnumModelType.IVP && ( +
+
+ {localeText('DDSAnnotator.smart.tip')}: + {localeText('DDSAnnotator.smart.tip.visualPrompt')} +
+
+ + +
+
+ )} {selectedTool === EBasicToolItem.Skeleton && (isBatchEditing ? ( <> @@ -363,13 +381,10 @@ const SmartAnnotationControl: React.FC = memo( placeholder={localeText( 'DDSAnnotator.smart.pose.input', )} - showArrow={true} + showSearch value={aiLabels} - onChange={(values) => - Array.isArray(values) - ? setAiLabels(values) - : setAiLabels([values]) - } + onChange={(value) => setAiLabels(value)} + onSearch={(value) => setInputText(value)} onInputKeyDown={(e) => { if (e.code !== 'Enter') { e.stopPropagation(); @@ -393,25 +408,6 @@ const SmartAnnotationControl: React.FC = memo( ))} - {selectedTool === EBasicToolItem.Polygon && ( - <> -
- {hasPolygonPreds - ? localeText('DDSAnnotator.smart.segmentation.tipsNext') - : localeText('DDSAnnotator.smart.segmentation.tipsInitial')} -
- {hasPolygonPreds && ( -
- - -
- )} - - )} {selectedTool === EBasicToolItem.Mask && selectedSubTool === ESubToolItem.AutoSegmentEverything && ( <> diff --git a/packages/components/src/Annotator/components/SubToolBar/index.less b/packages/components/src/Annotator/components/SubToolBar/index.less index c2447ce..f9d6e59 100644 --- a/packages/components/src/Annotator/components/SubToolBar/index.less +++ b/packages/components/src/Annotator/components/SubToolBar/index.less @@ -1,7 +1,4 @@ .dds-annotator-subtoolbar { - position: absolute; - left: 1rem; - top: 1rem; display: flex; flex-direction: row; justify-content: center; @@ -10,6 +7,7 @@ background-color: #212121; border-radius: 10px; padding: 0.5rem; + padding-left: 0; height: 50px; pointer-events: auto; font-weight: 600; @@ -42,11 +40,16 @@ } &-divider { - height: 100%; + height: 65%; margin: 10px 8px; border-left: 1px solid #fff; } + &-title { + margin: 0 0.25rem; + color: #fff; + } + &-slider { width: 100px; margin: 0 0.25rem; diff --git a/packages/components/src/Annotator/components/SubToolBar/index.tsx b/packages/components/src/Annotator/components/SubToolBar/index.tsx index c1f44be..bcf315d 100644 --- a/packages/components/src/Annotator/components/SubToolBar/index.tsx +++ b/packages/components/src/Annotator/components/SubToolBar/index.tsx @@ -1,129 +1,34 @@ import { Button, Popover, Slider } from 'antd'; -import Icon from '@ant-design/icons'; import classNames from 'classnames'; import { ESubToolItem } from '../../constants'; import { FloatWrapper } from '../FloatWrapper'; -import { TShortcutItem } from '../../constants/shortcuts'; -import { ReactComponent as PenAddIcon } from '../../assets/pen-add.svg'; -import { ReactComponent as PenEraseIcon } from '../../assets/pen-erase.svg'; -import { ReactComponent as BrushAddIcon } from '../../assets/brush-add.svg'; -import { ReactComponent as BrushEraseIcon } from '../../assets/brush-erase.svg'; -import { ReactComponent as MagicBoxIcon } from '../../assets/magic-box.svg'; -import { ReactComponent as ClickIcon } from '../../assets/magic-click.svg'; -import { ReactComponent as EdgeStitchIcon } from '../../assets/edge-stitch.svg'; -import { ReactComponent as SegmentEverythingIcon } from '../../assets/segment-everything.svg'; -import { ReactComponent as StrokeIcon } from '../../assets/magic-brush.svg'; -import { useLocale } from 'dds-utils/locale'; import { memo, useMemo } from 'react'; import { useKeyPress } from 'ahooks'; +import { TSubtoolOptions, TToolItem } from '@/Annotator/hooks/useSubtools'; import './index.less'; -type TToolItem = { - key: T; - name: string; - shortcut?: TShortcutItem; - icon: JSX.Element; - description?: string; - available: boolean; -}; interface IProps { + toolOptions: TSubtoolOptions; selectedSubTool: ESubToolItem; isAIAnnotationActive: boolean; - isSegEverythingAvailable: boolean; - isManualAvailable: boolean; brushSize: number; onChangeSubTool: (type: ESubToolItem) => void; onActiveAIAnnotation: (active: boolean) => void; onChangeBrushSize: (size: number) => void; } -export const SubToolBar: React.FC = memo( +const SubToolBar: React.FC = memo( ({ + toolOptions, selectedSubTool, isAIAnnotationActive, - isSegEverythingAvailable, - isManualAvailable, brushSize, onChangeSubTool, onChangeBrushSize, }) => { - const { localeText } = useLocale(); - - const basicMaskTools: TToolItem[] = [ - { - key: ESubToolItem.PenAdd, - name: localeText('DDSAnnotator.subtoolbar.mask.penAdd'), - icon: , - available: isManualAvailable, - }, - { - key: ESubToolItem.PenErase, - name: localeText('DDSAnnotator.subtoolbar.mask.penErase'), - icon: , - available: isManualAvailable, - }, - { - key: ESubToolItem.BrushAdd, - name: localeText('DDSAnnotator.subtoolbar.mask.brushAdd'), - icon: , - available: isManualAvailable, - }, - { - key: ESubToolItem.BrushErase, - name: localeText('DDSAnnotator.subtoolbar.mask.brushErase'), - icon: , - available: isManualAvailable, - }, - ]; - - const smartMaskTools: TToolItem[] = useMemo(() => { - return [ - { - key: ESubToolItem.AutoSegmentByBox, - name: localeText('DDSAnnotator.subtoolbar.mask.box'), - icon: , - available: true, - }, - { - key: ESubToolItem.AutoSegmentByStroke, - name: localeText('DDSAnnotator.subtoolbar.mask.stroke'), - icon: , - available: true, - }, - { - key: ESubToolItem.AutoSegmentByClick, - name: localeText('DDSAnnotator.subtoolbar.mask.click'), - icon: , - available: true, - }, - { - key: ESubToolItem.AutoEdgeStitching, - name: localeText('DDSAnnotator.subtoolbar.mask.edgeStitch'), - icon: , - available: true, - }, - { - key: ESubToolItem.AutoSegmentEverything, - name: localeText('DDSAnnotator.subtoolbar.mask.sam'), - icon: , - available: isSegEverythingAvailable, - description: isSegEverythingAvailable - ? localeText('DDSAnnotator.subtoolbar.mask.sam.desc') - : localeText('DDSAnnotator.subtoolbar.mask.sam.notAllow'), - }, - ]; - }, [isSegEverythingAvailable]); - - const toolsWithBrushSize = [ - ESubToolItem.BrushAdd, - ESubToolItem.BrushErase, - ESubToolItem.AutoSegmentByStroke, - ESubToolItem.AutoEdgeStitching, - ]; - const allSubTools = useMemo(() => { - return [...basicMaskTools, ...smartMaskTools]; - }, [basicMaskTools, smartMaskTools]); + return [...toolOptions.basicTools, ...toolOptions.smartTools]; + }, [toolOptions.basicTools, toolOptions.smartTools]); const shortcuts = useMemo(() => { const keys: string[] = []; @@ -141,7 +46,7 @@ export const SubToolBar: React.FC = memo( }); if (tool && tool.available) { if ( - smartMaskTools.find((item) => tool.key === item.key) && + toolOptions.smartTools.find((item) => tool.key === item.key) && !isAIAnnotationActive ) return; @@ -154,10 +59,10 @@ export const SubToolBar: React.FC = memo( ); const mouseEventHandler = (event: React.MouseEvent) => { - // enable mouseup propagate only for brush + const tool = allSubTools.find((item) => item.key === selectedSubTool); if ( - toolsWithBrushSize.includes(selectedSubTool) && - event.type === 'mouseup' + event.type === 'mouseup' && + (tool?.withSize || tool?.withCustomElement) ) { return; } else { @@ -221,16 +126,28 @@ export const SubToolBar: React.FC = memo( return (
- {basicMaskTools.map((item) => ToolItemBtn(item))} + {toolOptions.basicTools.map((item) => ToolItemBtn(item))} {isAIAnnotationActive && ( + <> + {toolOptions.basicTools.length > 0 && ( +
+ )} + {toolOptions.smartTools.map((item) => ToolItemBtn(item))} + + )} + {toolOptions.customElement && ( <>
- {smartMaskTools.map((item) => ToolItemBtn(item))} + {toolOptions.customElement} )} - {toolsWithBrushSize.includes(selectedSubTool) && ( + {!!allSubTools.find((item) => item.key === selectedSubTool) + ?.withSize && ( <>
+
+ {'Brush Size'} +
= memo( ); }, ); + +export default SubToolBar; diff --git a/packages/components/src/Annotator/components/TopPagination/index.tsx b/packages/components/src/Annotator/components/TopPagination/index.tsx index 0ee149d..3038f87 100644 --- a/packages/components/src/Annotator/components/TopPagination/index.tsx +++ b/packages/components/src/Annotator/components/TopPagination/index.tsx @@ -1,7 +1,7 @@ import { Button, Tooltip } from 'antd'; import { LeftOutlined, RightOutlined } from '@ant-design/icons'; import classNames from 'classnames'; -import { DrawImageData } from '../../type'; +import { AnnoItem } from '../../type'; import { memo, useState } from 'react'; import { useKeyPress } from 'ahooks'; import { EDITOR_SHORTCUTS, EShortcuts } from '../../constants/shortcuts'; @@ -9,7 +9,7 @@ import { useLocale } from 'dds-utils/locale'; import './index.less'; interface IProps { - list: DrawImageData[]; + list: AnnoItem[]; current: number; total: number; customText?: React.ReactElement; diff --git a/packages/components/src/Annotator/components/TopTools/index.less b/packages/components/src/Annotator/components/TopTools/index.less index ceec049..f74493a 100644 --- a/packages/components/src/Annotator/components/TopTools/index.less +++ b/packages/components/src/Annotator/components/TopTools/index.less @@ -3,15 +3,24 @@ display: flex; justify-content: space-between; align-items: center; + gap: 12px; padding: 0 16px; width: 100%; height: 56px; color: #fff; background: #1f1f1f; - border-bottom: 2px solid #141414; + border-bottom: 1px solid #141414; pointer-events: auto; + overflow-x: scroll; z-index: 1; + /* Hide scrollbar */ + scrollbar-width: none; /* firefox */ + -ms-overflow-style: none; /* IE 10+ */ + &::-webkit-scrollbar { + display: none; /* Chrome Safari */ + } + &-row { display: flex; align-items: center; diff --git a/packages/components/src/Annotator/constants/index.ts b/packages/components/src/Annotator/constants/index.ts index b9ccad4..73436b0 100644 --- a/packages/components/src/Annotator/constants/index.ts +++ b/packages/components/src/Annotator/constants/index.ts @@ -1,22 +1,19 @@ import { ReactComponent as RectIcon } from '../assets/rectangle.svg'; -import { ReactComponent as SkeletonIcon } from '../assets/point.svg'; -import { ReactComponent as MagicIcon } from '../assets/magic.svg'; +import { ReactComponent as RectAiIcon } from '../assets/rectangle-ai.svg'; import { ReactComponent as PolygonIcon } from '../assets/polygon.svg'; +import { ReactComponent as PolygonAiIcon } from '../assets/polygon-ai.svg'; +import { ReactComponent as SkeletonIcon } from '../assets/skeleton.svg'; +import { ReactComponent as SkeletonAiIcon } from '../assets/skeleton-ai.svg'; +import { ReactComponent as MaskIcon } from '../assets/mask.svg'; +import { ReactComponent as MaskAiIcon } from '../assets/mask-ai.svg'; +import { ReactComponent as MagicIcon } from '../assets/magic.svg'; import { ReactComponent as CustomIcon } from '../assets/custom.svg'; -import { ReactComponent as MaskIcon } from '../assets/brush.svg'; import { ReactComponent as UndoIcon } from '../assets/undo.svg'; import { ReactComponent as RedoIcon } from '../assets/redo.svg'; import { ReactComponent as RepeatIcon } from '../assets/repeat.svg'; import { ReactComponent as DeleteAllIcon } from '../assets/delete_all.svg'; - -export enum AnnotationType { - Classification = 'Classification', - Detection = 'Detection', - Segmentation = 'Segmentation', - Matting = 'Matting', - KeyPoints = 'KeyPoints', - Mask = 'Mask', -} +import { ReactComponent as TextPromptIcon } from '../assets/text-prompt.svg'; +import { ReactComponent as VisualPromptIcon } from '../assets/visual-prompt.svg'; export enum DisplayOption { showAnnotations = 'showAnnotations', @@ -45,13 +42,23 @@ export const MAX_SCALE = 20; export const BUTTON_SCALE_STEP = 0.5; export const WHEEL_SCALE_STEP = 0.1; +export enum ELabelType { + Rectangle = 'rect', + Polygon = 'polygon', + Mask = 'mask', + Skeleton = 'coco_keypoints_17', + Classification = 'classification', +} + export enum EObjectType { Custom = 'Custom', + Classification = 'Classification', Rectangle = 'Rectangle', Polygon = 'Polygon', Skeleton = 'Skeleton', Mask = 'Mask', Matting = 'Matting', + Point = 'Point', } export enum EElementType { @@ -69,14 +76,6 @@ export enum EBasicToolItem { Mask = 'Mask', } -export const EBasicToolTypeMap = { - [EBasicToolItem.Drag]: EObjectType.Custom, - [EBasicToolItem.Rectangle]: EObjectType.Rectangle, - [EBasicToolItem.Polygon]: EObjectType.Polygon, - [EBasicToolItem.Skeleton]: EObjectType.Skeleton, - [EBasicToolItem.Mask]: EObjectType.Mask, -}; - export enum ESubToolItem { PenAdd = 'PenAdd', PenErase = 'PenErase', @@ -87,6 +86,8 @@ export enum ESubToolItem { AutoSegmentByStroke = 'AutoSegmentByStroke', AutoSegmentEverything = 'AutoSegmentEverything', AutoEdgeStitching = 'AutoEdgeStitching', + PositiveVisualPrompt = 'PositiveVisualPrompt', + NegativeVisualPrompt = 'NegativeVisualPrompt', } export enum EActionToolItem { @@ -99,6 +100,64 @@ export enum EActionToolItem { export type EToolType = EBasicToolItem; +export const EBasicToolTypeMap = { + [EBasicToolItem.Drag]: EObjectType.Custom, + [EBasicToolItem.Rectangle]: EObjectType.Rectangle, + [EBasicToolItem.Polygon]: EObjectType.Polygon, + [EBasicToolItem.Skeleton]: EObjectType.Skeleton, + [EBasicToolItem.Mask]: EObjectType.Mask, +}; + +export enum EnumModelType { + Detection = 'ai_detection', + IVP = 'ivp', + SegmentByPolygon = 'ai_polygon', + SegmentByMask = 'ai_segmentation_mask', + Pose = 'ai_pose', + MaskEdgeStitching = 'ai_mask_edge_stitching', + SegmentEverything = 'ai_segment_everything', +} + +export const TOOL_MODELS_MAP: Record = { + [EBasicToolItem.Drag]: [], + [EBasicToolItem.Rectangle]: [EnumModelType.Detection, EnumModelType.IVP], + [EBasicToolItem.Polygon]: [EnumModelType.SegmentByPolygon], + [EBasicToolItem.Mask]: [EnumModelType.SegmentByMask], + [EBasicToolItem.Skeleton]: [EnumModelType.Pose], +}; + +export const MODEL_INTRO_MAP: Partial< + Record< + EnumModelType, + { + name: string; + icon: React.FunctionComponent>; + description: string; + hightlight: boolean; + } + > +> = { + [EnumModelType.Detection]: { + name: 'Grounding-DINO', + icon: TextPromptIcon, + description: 'DDSAnnotator.smart.gdino.desc', + hightlight: false, + }, + [EnumModelType.IVP]: { + name: 'iVP', + icon: VisualPromptIcon, + description: 'DDSAnnotator.smart.ivp.desc', + hightlight: true, + }, +}; + +export const LABEL_TOOL_MAP = { + [ELabelType.Rectangle]: EBasicToolItem.Rectangle, + [ELabelType.Polygon]: EBasicToolItem.Polygon, + [ELabelType.Mask]: EBasicToolItem.Mask, + [ELabelType.Skeleton]: EBasicToolItem.Skeleton, +}; + export const OBJECT_ICON: Record< EObjectType, React.FunctionComponent> @@ -106,9 +165,18 @@ export const OBJECT_ICON: Record< [EObjectType.Rectangle]: RectIcon, [EObjectType.Skeleton]: SkeletonIcon, [EObjectType.Polygon]: PolygonIcon, - [EObjectType.Custom]: CustomIcon, [EObjectType.Mask]: MaskIcon, [EObjectType.Matting]: MaskIcon, + [EObjectType.Point]: CustomIcon, + [EObjectType.Custom]: CustomIcon, + [EObjectType.Classification]: CustomIcon, +}; + +export const OBJECT_AI_ICON = { + [EObjectType.Rectangle]: RectAiIcon, + [EObjectType.Skeleton]: SkeletonAiIcon, + [EObjectType.Polygon]: PolygonAiIcon, + [EObjectType.Mask]: MaskAiIcon, }; export const EDITOR_TOOL_ICON: Record< diff --git a/packages/components/src/Annotator/constants/render.ts b/packages/components/src/Annotator/constants/render.ts index 21cfe5f..3a98beb 100644 --- a/packages/components/src/Annotator/constants/render.ts +++ b/packages/components/src/Annotator/constants/render.ts @@ -19,8 +19,8 @@ export const ANNO_STROKE_ALPHA = { export const ANNO_MASK_ALPHA = { CREATING: 0.7, - FOCUS: 0.6, - DEFAULT: 0.4, + FOCUS: 0.7, + DEFAULT: 0.5, }; export const ANNO_STROKE_COLOR = { @@ -33,7 +33,12 @@ export const ANNO_FILL_COLOR = { CREATING_NEGATIVE: '#e91d00', }; +export const PROMPT_STROKE_COLOR = { + POSITIVE: 'rgba(1, 128, 0, 1)', + NEGATIVE: 'rgba(255, 3, 0, 1)', +}; + export const PROMPT_FILL_COLOR = { - POSITIVE: 'rgba(1, 128, 0, 0.7)', - NEGATIVE: 'rgba(255, 3, 0, 0.7)', + POSITIVE: 'rgba(1, 128, 0, 0.6)', + NEGATIVE: 'rgba(255, 3, 0, 0.6)', }; diff --git a/packages/components/src/Annotator/constants/shortcuts.ts b/packages/components/src/Annotator/constants/shortcuts.ts index 09120de..d8e0f4b 100644 --- a/packages/components/src/Annotator/constants/shortcuts.ts +++ b/packages/components/src/Annotator/constants/shortcuts.ts @@ -96,7 +96,7 @@ export const EDITOR_SHORTCUTS: Record = { [EShortcuts.RepeatPrevious]: { name: 'RepeatPrevious', type: EShortcutType.GeneralAction, - shortcut: ['r'], + shortcut: ['ctrl.r', 'meta.r'], descTextKey: 'DDSAnnotator.shortcuts.general.repeatPrevious', }, [EShortcuts.DeleteAll]: { diff --git a/packages/components/src/Annotator/editor.tsx b/packages/components/src/Annotator/editor.tsx index 7c73615..b78dd8e 100755 --- a/packages/components/src/Annotator/editor.tsx +++ b/packages/components/src/Annotator/editor.tsx @@ -1,43 +1,26 @@ -import React, { useCallback, useEffect, useMemo, useRef } from 'react'; -import { Button, Divider, Dropdown, Modal } from 'antd'; -import { - EObjectType, - EElementType, - EBasicToolItem, - ESubToolItem, -} from './constants'; +import React, { useEffect, useMemo, useRef } from 'react'; +import { Dropdown, Modal } from 'antd'; +import { EBasicToolItem } from './constants'; import { Updater, useImmer } from 'use-immer'; -import TopTools from './components/TopTools'; import useLabels from './hooks/useLabels'; import useActions from './hooks/useActions'; -import PopoverMenu from './components/PopoverMenu'; import { ObjectList } from './components/ObjectList'; -import { MainToolBar } from './components/MainToolBar'; import SmartAnnotationControl from './components/SmartAnnotationControl'; -import { ScaleToolBar } from './components/ScaleToolBar'; -import { ArrowLeftOutlined } from '@ant-design/icons'; import { TopPagination } from './components/TopPagination'; -import { AnnotationEditor } from './components/AnnotationEditor'; -import { ShortcutsInfo } from './components/ShortcutsInfo'; import useHistory from './hooks/useHistory'; import useObjects from './hooks/useObjects'; import useCanvasContainer from './hooks/useCanvasContainer'; -import usePreviousState from './hooks/usePreviousState'; import { cloneDeep } from 'lodash'; -import { useLocale } from 'dds-utils/locale'; -import { SubToolBar } from './components/SubToolBar'; import { BaseObject, Category, DEFAULT_DRAW_DATA, DEFAULT_EDIT_STATE, DrawData, - DrawImageData, + AnnoItem, EditState, EditorMode, - EObjectStatus, DrawObject, - EQaAction, } from './type'; import useMouseCursor from './hooks/useMouseCursor'; import useShortcuts from './hooks/useShortcuts'; @@ -45,17 +28,32 @@ import useToolActions from './hooks/useToolActions'; import useMouseEvents from './hooks/useMouseEvents'; import useCanvasRender from './hooks/useCanvasRender'; import useDataEffect from './hooks/useDataEffect'; +import useSubTools from './hooks/useSubtools'; import { useToolInstances } from './tools/base'; import useColor from './hooks/useColor'; import { ImageView } from './components/ImageView'; +import useTranslate from './hooks/useTranslate'; +import ClassificationPanel from './components/Classification'; +import AttributeEditor from './components/AttributeEditor'; +import SegConfirmModal from './components/SegConfirmModal'; +import useAttributes from './hooks/useAttributes'; +import SliderToolBar from './components/SliderToolBar'; +import useTopTools from './hooks/useTopTools'; import './index.less'; +import classNames from 'classnames'; +import ModelSelectModal from './components/ModelSelectModal'; +import PointsEditModal from './components/PointsEditModal'; export interface EditProps { - isSeperate: boolean; + isOldMode?: boolean; // is old dataset design mode + isSeperate?: boolean; // is quickmode single editor + theme?: 'light' | 'dark'; visible: boolean; mode: EditorMode; + enableReviewerModify?: boolean; + limitToolTypes?: EBasicToolItem[]; categories: Category[]; - list: DrawImageData[]; + list: AnnoItem[]; current: number; pagination?: { show: boolean; @@ -63,13 +61,38 @@ export interface EditProps { customText?: React.ReactElement; customDisableNext?: boolean; }; + titleElements?: React.ReactElement[]; actionElements?: React.ReactElement[]; + layoutOptions?: { + wrapHeight?: string; + hideRightList?: boolean; + hideTopBar?: boolean; + hideTopBarActions?: boolean; + hideUndoRedoActions?: boolean; + hideReferenceLine?: boolean; + minPadding?: { + top: number; + left: number; + }; + }; + manualMode?: boolean; + forceColorByObject?: boolean; + limitActiveObject?: boolean; + limitActiveObjectAfterCreate?: boolean; + customDefaultDrawData?: Partial; + customDefaultEditState?: EditState; + customDrawData?: DrawData; + customEditState?: EditState; + customObjects?: DrawObject[]; + customObjectsFilter?: (imageData: any) => BaseObject[]; objectsFilter?: (imageData: any) => BaseObject[]; - onCancel?: () => void; - onSave?: (imageId: string, annotations: BaseObject[]) => Promise; onAutoSave?: (annotations: BaseObject[], naturalSize: ISize) => void; - onReviewResult?: (imageId: string, action: EQaAction) => Promise; - onEnterEdit?: () => void; + onCancel?: () => void; + onSave?: (id: string, labels: any[]) => Promise; + onCommit?: (id: string, labels: any[]) => Promise; + onReviewModify?: (id: string, labels: any[]) => Promise; + onReviewAccept?: (id: string, labels: any[]) => Promise; + onReviewReject?: (id: string, labels: any[]) => Promise; onPrev?: () => Promise; onNext?: () => Promise; setCategories?: Updater; @@ -77,6 +100,8 @@ export interface EditProps { const Edit: React.FC = (props) => { const { + theme = 'dark', + isOldMode, isSeperate, visible, categories, @@ -84,19 +109,28 @@ const Edit: React.FC = (props) => { current, pagination, mode, + enableReviewerModify, + limitToolTypes, + titleElements, actionElements, + layoutOptions, + manualMode, + forceColorByObject, + limitActiveObject, + limitActiveObjectAfterCreate, + customDefaultDrawData, onPrev, onNext, onCancel, onSave, - onEnterEdit, - onReviewResult, + onCommit, + onReviewModify, + onReviewAccept, + onReviewReject, setCategories, onAutoSave, objectsFilter, } = props; - - const { localeText } = useLocale(); const [modal, contextHolder] = Modal.useModal(); const [annotations, setAnnotations] = useImmer([]); @@ -105,47 +139,25 @@ const Edit: React.FC = (props) => { cloneDeep(DEFAULT_EDIT_STATE), ); - const [drawData, setDrawData] = useImmer( - cloneDeep(DEFAULT_DRAW_DATA), - ); + const [drawData, setDrawData] = useImmer({ + ...cloneDeep(DEFAULT_DRAW_DATA), + ...customDefaultDrawData, + }); const canvasRef = useRef(null); const activeCanvasRef = useRef(null); const imgRef = useRef(null); - const isCustomCursorActive = useMemo(() => { - const isToolWithSize = [ - ESubToolItem.AutoEdgeStitching, - ESubToolItem.AutoSegmentByStroke, - ESubToolItem.BrushAdd, - ESubToolItem.BrushErase, - ].includes(drawData.selectedSubTool); - - if ( - drawData.creatingObject && - drawData.activeObjectIndex > -1 && - drawData.creatingObject.type === EObjectType.Mask - ) { - return isToolWithSize; - } - if ( - drawData.selectedTool !== EBasicToolItem.Drag && - !drawData.isBatchEditing - ) { - return drawData.selectedTool === EBasicToolItem.Mask && isToolWithSize; - } - return false; - }, [drawData.selectedTool, drawData.selectedSubTool]); + const currAnnoItem = useMemo(() => { + return list[current]; + }, [list, current]); - const showReferenceLine = useMemo(() => { - return ( - drawData.selectedTool !== EBasicToolItem.Drag && !isCustomCursorActive - ); - }, [drawData.selectedTool, isCustomCursorActive]); + const currImageItem = currAnnoItem; - const { labelColors, getAnnotColor } = useColor({ + const { getAnnotColor, labelColors } = useColor({ categories, editState, + forceColorByObject, }); const { @@ -163,19 +175,24 @@ const Edit: React.FC = (props) => { isMousePress, } = useCanvasContainer({ visible, + drawData, allowMove: editState.allowMove, isRequiring: editState.isRequiring, - showReferenceLine, - minPadding: { + minPadding: layoutOptions?.minPadding || { top: 30, left: 80, }, - isCustomCursorActive, cursorSize: drawData.brushSize, + hideReferenceLine: !!layoutOptions?.hideReferenceLine, }); - const [preClientSize, clearPreClientSize] = - usePreviousState(clientSize); + const { translateObject, translateToObject } = useTranslate({ + isOldMode, + clientSize, + naturalSize, + categories, + getAnnotColor, + }); const { undo, @@ -189,8 +206,15 @@ const Edit: React.FC = (props) => { naturalSize, setDrawData, onAutoSave, + translateObject, }); + const { judgeEditingAttribute, onConfirmAttibuteEdit, onCancelAttibuteEdit } = + useAttributes({ + setDrawDataWithHistory, + categories, + }); + const { addObject, removeObject, @@ -200,29 +224,34 @@ const Edit: React.FC = (props) => { updateObject, updateObjectWithoutHistory, updateAllObjectWithoutHistory, + commitedObjects, + currObject, } = useObjects({ annotations, setAnnotations, - clientSize, - naturalSize, drawData, setDrawData, setDrawDataWithHistory, - editState, setEditState, mode, + translateToObject, + judgeEditingAttribute, + limitActiveObjectAfterCreate, + updateHistory, }); const { + labelOptions, + classificationOptions, aiLabels, setAiLabels, onChangeObjectHidden, onChangeCategoryHidden, onChangeActiveClass, onCreateCategory, - onChangePointVisible + onChangePointVisible, } = useLabels({ - visible, + isOldMode, mode, categories, setCategories, @@ -236,13 +265,14 @@ const Edit: React.FC = (props) => { const { onAiAnnotation, onSaveAnnotations, + onCommitAnnotations, onCancelAnnotations, - onReject, - onAccept, + onRejectAnnotations, + onAcceptAnnotations, + onModifyAnnotations, } = useActions({ mode, - list, - current, + currImageItem, modal, drawData, setDrawData, @@ -253,12 +283,18 @@ const Edit: React.FC = (props) => { clientSize, imagePos, containerMouse, - onCancel, - onSave, updateAllObject, hadChangeRecord, - latestLabel: editState.latestLabel, getAnnotColor, + categories, + translateObject, + onCancel, + onSave, + onCommit, + onReviewModify, + onReviewAccept, + onReviewReject, + classificationOptions, }); const { updateMouseCursor } = useMouseCursor({ @@ -268,9 +304,8 @@ const Edit: React.FC = (props) => { }); const { - onDeleteCurrObject, + onChangeObjectLabel, onFinishCurrCreate, - onCloseAnnotationEditor, onAcceptValidObjects, onAbortBatchObjects, selectTool, @@ -279,15 +314,16 @@ const Edit: React.FC = (props) => { onExitAIAnnotation, setBrushSize, activeAIAnnotation, - onSaveAIPolygon, - onCancelAIPolygon, onChangeSkeletonConf, onChangeLimitConf, onChangeAnnotsDisplayOpts, onChangeImageDisplayOpts, onChangeColorMode, + onChangePointResolution, + onSelectModel, } = useToolActions({ mode, + manualMode: !!manualMode, drawData, setDrawData, setDrawDataWithHistory, @@ -298,9 +334,14 @@ const Edit: React.FC = (props) => { clientSize, naturalSize, addObject, - removeObject, updateObject, updateAllObject, + onAiAnnotation, + }); + + const { showSubTools, currSubTools } = useSubTools({ + drawData, + onChangePointResolution, }); const { objectHooksMap } = useToolInstances({ @@ -324,9 +365,10 @@ const Edit: React.FC = (props) => { aiLabels, onAiAnnotation, getAnnotColor, + categories, }); - const { updateRender } = useCanvasRender({ + const { updateRender, renderPopoverMenu } = useCanvasRender({ visible, drawData, editState, @@ -359,18 +401,20 @@ const Edit: React.FC = (props) => { imagePos, containerMouse, getAnnotColor, + limitActiveObject, }); useShortcuts({ visible, mode, drawData, + categories, isMousePress, setDrawData, setEditState, onSaveAnnotations, - onAccept, - onReject, + onAcceptAnnotations, + onRejectAnnotations, onChangeObjectHidden, onChangeCategoryHidden, removeObject, @@ -380,12 +424,9 @@ const Edit: React.FC = (props) => { const { resetDataWithImageData } = useDataEffect({ imagePos, clientSize, - preClientSize, - clearPreClientSize, naturalSize, annotations, setAnnotations, - labelColors, drawData, setDrawData, editState, @@ -394,15 +435,10 @@ const Edit: React.FC = (props) => { updateRender, clearHistory, objectsFilter, + labelOptions, + customDefaultDrawData, }); - /** Copy annots from previous image */ - const repeatPrevious = useCallback(() => { - if (current > 0 && current < list.length) { - resetDataWithImageData(list[current - 1], visible, false); - } - }, [resetDataWithImageData, list, current, visible]); - // ================================================================================================================= // Effects // ================================================================================================================= @@ -410,12 +446,15 @@ const Edit: React.FC = (props) => { /** Limit bottom layer body scroll */ useEffect(() => { document.body.style.overflow = visible ? 'hidden' : 'overlay'; + return () => { + document.body.style.overflow = 'overlay'; + }; }, [visible]); /** Reset data when hiding the editor or switching images */ useEffect(() => { - resetDataWithImageData(list[current], visible); - }, [visible, mode, current, objectsFilter]); + resetDataWithImageData(currImageItem, visible); + }, [visible, mode, current, currImageItem?.id, objectsFilter]); useEffect(() => { onChangeColorMode(); @@ -426,156 +465,98 @@ const Edit: React.FC = (props) => { // ================================================================================================================= const fileName = useMemo(() => { - if ( - list[current]?.urlFullRes && - list[current]?.urlFullRes.indexOf('http') === 0 - ) { - const url = decodeURIComponent(list[current]?.urlFullRes); + if (currAnnoItem?.name) return currAnnoItem?.name; + if (currAnnoItem?.url && currAnnoItem?.url.indexOf('http') === 0) { + const url = decodeURIComponent(currAnnoItem?.url); return url.replace(/\?.*$/, '').split('/').pop() || ''; } return ''; - }, [list, current]); + }, [currAnnoItem]); + + const topBarCenterElement = + pagination && pagination.show ? ( + + ) : null; + + const { topToolsBar } = useTopTools({ + isOldMode, + isSeperate, + mode, + hideTopBarActions: layoutOptions?.hideTopBarActions, + fileName, + drawData, + editState, + titleElements, + actionElements, + enableReviewerModify, + labelOptions, + showSubTools, + currSubTools, + topBarCenterElement, + labelColors, + selectSubTool, + setBrushSize, + activeAIAnnotation, + onChangeImageDisplayOpts, + onChangeAnnotsDisplayOpts, + onChangeObjectLabel, + onCreateCategory, + onSaveAnnotations, + onCommitAnnotations, + onRejectAnnotations, + onAcceptAnnotations, + onModifyAnnotations, + onCancelAnnotations, + onSelectModel, + }); - const supportActions = useMemo(() => { - const actions = actionElements - ? actionElements.map((item) => ({ customElement: item })) - : []; - if (mode === EditorMode.Review && onReviewResult) { - actions.push( - ...[ - { - customElement: ( - - ), - }, - { - customElement: ( - - ), - }, - ], - ); - } - if (mode === EditorMode.Edit && !isSeperate) { - actions.push( - ...[ - { - customElement: ( - - ), - }, - ], - ); - } - actions.unshift({ - customElement: ( - <> - - - - ), - }); - return actions; - }, [mode, onReviewResult, onEnterEdit, onSaveAnnotations, list[current]]); - - const renderPopoverMenu = () => { - if ( - editState.focusObjectIndex > -1 && - drawData.objectList[editState.focusObjectIndex] && - !drawData.objectList[editState.focusObjectIndex].hidden && - editState.focusEleIndex > -1 && - editState.focusEleType === EElementType.Circle - ) { - const target = - drawData.objectList[editState.focusObjectIndex].keypoints?.points?.[ - editState.focusEleIndex - ]; - if (target) { - return ( - - ); - } - } - return <>; - }; + if (!visible) { + return null; + } - const isAnnotEditorVisible = - mode === EditorMode.Edit && - !( - drawData.isBatchEditing && - drawData.selectedTool === EBasicToolItem.Skeleton - ) && - !( - drawData.selectedTool === EBasicToolItem.Polygon && - drawData.AIAnnotation && - drawData.activeObjectIndex === -1 - ); - - const showSubTools = - drawData.selectedTool === EBasicToolItem.Mask || - (drawData.creatingObject && - drawData.creatingObject.type === EObjectType.Mask); - - const commitedObjects = useMemo(() => { - return drawData.objectList.filter((obj) => { - return obj.status === EObjectStatus.Commited; - }); - }, [drawData.isBatchEditing, drawData.objectList]); - - if (visible) { - return ( -
- , - onClick: () => onCancelAnnotations(), - }, - ]), - { - customElement: fileName, - }, - ]} - rightTools={supportActions} - > - {pagination && pagination.show && ( - - )} - -
-
-
+ return ( +
+ {!layoutOptions?.hideTopBar && topToolsBar} +
+ +
+ {currImageItem && ( = (props) => { children: ( <> { + // Possibly size not changed but image changed + updateRender(); + onLoadImg(event); + }} /> {renderPopoverMenu()} ), })} - {isAnnotEditorVisible && ( - + + + + setDrawData((s) => { + s.AIAnnotation = false; + }) + } + /> + {drawData.editingAttribute && ( + + )} +
+ {!layoutOptions?.hideRightList && ( +
+ {classificationOptions.length > 0 && ( + )} - - - {mode === EditorMode.Edit && ( - <> - - {showSubTools && ( - 0 - ) && - !drawData.isBatchEditing - } - brushSize={drawData.brushSize} - onChangeSubTool={selectSubTool} - onChangeBrushSize={setBrushSize} - onActiveAIAnnotation={activeAIAnnotation} - /> - )} - - )}
- -
-
{ - e.stopPropagation(); - }} - > - {contextHolder} -
+ )}
- ); - } else { - return <>; - } +
{ + e.stopPropagation(); + }} + > + {contextHolder} +
+
+ ); }; export default Edit; diff --git a/packages/components/src/Annotator/hooks/useActions.ts b/packages/components/src/Annotator/hooks/useActions.tsx similarity index 55% rename from packages/components/src/Annotator/hooks/useActions.ts rename to packages/components/src/Annotator/hooks/useActions.tsx index cd4dcdc..1179796 100644 --- a/packages/components/src/Annotator/hooks/useActions.ts +++ b/packages/components/src/Annotator/hooks/useActions.tsx @@ -1,47 +1,61 @@ import { getVisibleAreaForImage, translateBoundingBoxToRect, - translateObjectsToAnnotations, translatePointsToPointObjs, translatePointZoom, translateRectToAbsBbox, getCanvasPoint, getNaturalPoint, + translateRectToBoundingBox, + translatePointObjsToPointAttrs, + convertFrameObjectsIntoFramesObjects, + translateRectZoom, + translateAbsBBoxToRect, } from '../utils/compute'; -import { message } from 'antd'; +import { Modal, message } from 'antd'; import { Updater } from 'use-immer'; import { BODY_TEMPLATE, EBasicToolItem, EBasicToolTypeMap, + EnumModelType, EObjectType, ESubToolItem, } from '../constants'; -import { getImageBase64, isBase64 } from '../utils/base64'; +import { + getImageBase64, + isBase64, + isBlobUrl, + isHttpsUrl, +} from '../utils/base64'; import { useLocale } from 'dds-utils/locale'; import { useModel } from '@umijs/max'; import { - BaseObject, DrawData, - DrawImageData, + AnnoItem, EditState, EditorMode, IAnnotationObject, - MaskPromptItem, + PromptItem, EObjectStatus, - EQaAction, + Category, + VideoFramesData, } from '../type'; import { objectToRle, rleToCanvas } from '../tools/useMask'; import { CursorState } from 'ahooks/lib/useMouse'; import { ModalStaticFunctions } from 'antd/es/modal/confirm'; import { useCallback } from 'react'; -import { NsApiAnnotator, fetchModelResults } from '../sevices'; +import { + NsApiAnnotator, + fetchModelResults, + getOssUrlByBlobUrl, +} from '../sevices'; interface IProps { mode: EditorMode; - list: DrawImageData[]; - current: number; + currImageItem?: AnnoItem; modal: Omit; + framesData?: VideoFramesData; drawData: DrawData; setDrawData: Updater; setDrawDataWithHistory: Updater; @@ -53,11 +67,16 @@ interface IProps { imagePos: React.MutableRefObject; updateAllObject: (objectList: IAnnotationObject[]) => void; hadChangeRecord: boolean; - latestLabel: string; getAnnotColor: (category: string, forceColorByCategory?: boolean) => string; + categories: Category[]; + translateObject?: (object: any) => any; onCancel?: () => void; - onSave?: (imageId: string, annotations: BaseObject[]) => Promise; - onReviewResult?: (imageId: string, action: EQaAction) => Promise; + onSave?: (id: string, labels: any[]) => Promise; + onCommit?: (id: string, labels: any[]) => Promise; + onReviewModify?: (id: string, labels: any[]) => Promise; + onReviewAccept?: (id: string, labels: any[]) => Promise; + onReviewReject?: (id: string, labels: any[]) => Promise; + classificationOptions?: Category[]; } export type OnAiAnnotationFunc = ({ @@ -65,15 +84,15 @@ export type OnAiAnnotationFunc = ({ drawData, aiLabels, bbox, - maskPrompts, + promptsQueue, segmentationClicks, segmentEverythingParams, }: { type?: EObjectType; drawData?: DrawData; - aiLabels?: string[]; + aiLabels?: string; bbox?: IBoundingBox; - maskPrompts?: MaskPromptItem[]; + promptsQueue?: PromptItem[]; segmentationClicks?: { point: IPoint; isPositive: boolean; @@ -83,9 +102,9 @@ export type OnAiAnnotationFunc = ({ const useActions = ({ mode, - list, - current, + currImageItem, modal, + framesData, drawData: editorDrawData, setDrawData, setDrawDataWithHistory, @@ -97,11 +116,16 @@ const useActions = ({ containerMouse, updateAllObject, hadChangeRecord, - latestLabel, + categories, getAnnotColor, + translateObject, onCancel, onSave, - onReviewResult, + onCommit, + onReviewModify, + onReviewAccept, + onReviewReject, + classificationOptions, }: IProps) => { const { localeText } = useLocale(); const { setLoading } = useModel('global'); @@ -111,17 +135,16 @@ const useActions = ({ s.isRequiring = requiring; }); - const requestAiDetection = async (source: string, aiLabels: string[]) => { + const requestAiDetection = async (source: string, aiLabels: string) => { try { setLoading(true); - const result = - await fetchModelResults( - NsApiAnnotator.EnumModelType.Detection, - { - image: source, - text: aiLabels.join(','), - }, - ); + const result = await fetchModelResults( + EnumModelType.Detection, + { + image: source, + text: aiLabels, + }, + ); if (result) { const { objects, suggestThreshold } = result; @@ -134,7 +157,7 @@ const useActions = ({ }; return { rect: { ...rect, visible: true }, - label: item.categoryName, + labelId: editState.latestLabelId, type: EObjectType.Rectangle, hidden: false, status: @@ -142,7 +165,7 @@ const useActions = ({ ? EObjectStatus.Checked : EObjectStatus.Unchecked, conf: item.normalizedScore, - color: getAnnotColor(item.categoryName, true), + color: getAnnotColor(editState.latestLabelId, true), }; }) .reverse(); @@ -150,7 +173,7 @@ const useActions = ({ s.isBatchEditing = true; s.limitConf = limitConf; const commitedObjects = s.objectList.filter( - (obj) => obj.status === EObjectStatus.Commited, + (obj) => obj?.status === EObjectStatus.Commited, ); s.objectList = [...commitedObjects, ...newObjects]; if (s.creatingObject && s.objectList[s.activeObjectIndex]) { @@ -166,134 +189,19 @@ const useActions = ({ } }; - const requestAiSegmentByPolygon = async ( - drawData: DrawData, - source: string, - bbox?: IBoundingBox, - segmentationClicks?: { - point: IPoint; - isPositive: boolean; - }[], - ) => { - const existPolygons = - drawData.creatingObject?.polygon?.group.map((polygon) => { - return polygon.reduce((acc: number[], point) => { - const { x, y } = getNaturalPoint( - [point.x, point.y], - naturalSize, - clientSize, - ); - return acc.concat([x, y]); - }, []); - }) || []; - - const clicks = - segmentationClicks?.map((click) => { - const { x, y } = getNaturalPoint( - [click.point.x, click.point.y], - naturalSize, - clientSize, - ); - return { - isPositive: click.isPositive, - position: [x, y], - }; - }) || []; - - const reqParams = { - image: source, - mask: drawData.prompt.segmentationMask || '', - polygons: existPolygons, - clicks: clicks, - }; - - if (bbox) { - const { xmin, ymin, xmax, ymax } = bbox; - const topleftPoint = getNaturalPoint( - [xmin, ymin], - naturalSize, - clientSize, - ); - const bottomRightPoint = getNaturalPoint( - [xmax, ymax], - naturalSize, - clientSize, - ); - Object.assign(reqParams, { - rect: [ - topleftPoint.x, - topleftPoint.y, - bottomRightPoint.x, - bottomRightPoint.y, - ], - }); - } - - try { - setLoading(true); - const result = - await fetchModelResults( - NsApiAnnotator.EnumModelType.SegmentByPolygon, - reqParams, - ); - if (result) { - const { polygon, mask } = result; - - if (polygon && polygon.length > 0) { - const predictPolygons = polygon.map((item) => { - const result: IPolygon = []; - for (let i = 0; i < item.length; i += 2) { - const x = item[i]; - const y = item[i + 1]; - const canvasPoint = getCanvasPoint( - [x, y], - naturalSize, - clientSize, - ); - result.push(canvasPoint); - } - return result; - }); - - const creatingObj = { - type: EObjectType.Polygon, - hidden: false, - label: latestLabel, - color: getAnnotColor(latestLabel), - currIndex: -1, - polygon: { - visible: true, - group: predictPolygons, - }, - status: EObjectStatus.Checked, - }; - - setDrawDataWithHistory((s) => { - s.creatingObject = creatingObj; - s.prompt.segmentationMask = mask; - }); - } - - message.success(localeText('DDSAnnotator.smart.msg.success')); - } - } catch (error: any) { - message.error(localeText('DDSAnnotator.smart.msg.error')); - } finally { - setLoading(false); - } - }; - const convertPromptFormat = ( - prompt: MaskPromptItem[], + prompt: PromptItem[], ): { type: string; isPositive: boolean; point?: number[]; rect?: number[]; stroke?: number[]; + radius?: number; + polygons?: number[][]; }[] => { const newPromptArr = prompt.map((item) => { - const { type, isPositive, point, rect, stroke, radius } = item; + const { type, isPositive, point, rect, stroke, radius, polygons } = item; const newItem = { type, isPositive }; @@ -342,31 +250,125 @@ const useActions = ({ }); } + if (polygons) { + const transformedPolygons = polygons.map((polygon) => { + const res = []; + for (let i = 0; i < polygon.length; i += 2) { + const transformedPoint = getNaturalPoint( + [polygon[i], polygon[i + 1]], + naturalSize, + clientSize, + ); + res.push(transformedPoint.x, transformedPoint.y); + } + return res; + }); + Object.assign(newItem, { + polygons: transformedPolygons, + }); + } + return newItem; }); return newPromptArr; }; - const requestAiSegmentByMask = async ( - drawData: DrawData, - source: string, - maskPrompts?: MaskPromptItem[], + const requestIvpDetection = async ( + base64Img: string, + promptsQueue?: PromptItem[], ) => { - if (!maskPrompts) return; + if (!promptsQueue || !currImageItem) return; - const currMask = - drawData.creatingObject?.maskCanvasElement || - drawData.creatingObject?.tempMaskSteps - ? objectToRle( - clientSize, - naturalSize, - drawData.creatingObject?.tempMaskSteps || [], - drawData.creatingObject?.maskCanvasElement, - ) - : []; + if (promptsQueue.every((prompt) => !prompt.isPositive)) { + message.error(localeText('DDSAnnotator.smart.msg.positivePrompt')); + setDrawDataWithHistory((s) => { + s.prompt.creatingPrompt = undefined; + }); + return; + } + + try { + setLoading(true); + + let url = base64Img; + if (isHttpsUrl(currImageItem.url)) { + url = currImageItem.url; + } else if (isBlobUrl(currImageItem.url)) { + url = await getOssUrlByBlobUrl( + currImageItem.fileName || 'image', + currImageItem.url, + ); + } + + const reqParams = { + promptImage: url, + inferImage: url, + prompts: convertPromptFormat(promptsQueue || []), + labelTypes: ['bbox'], + }; + + const result = await fetchModelResults( + EnumModelType.IVP, + reqParams, + ); + + if (result) { + const { objects } = result; + const limitConf = 0.3; + const newObjects: IAnnotationObject[] = objects + .filter((item) => { + return item.bbox; + }) + .map((item) => { + const [xmin, ymin, xmax, ymax] = item.bbox!; + const rect = translateRectZoom( + translateAbsBBoxToRect({ xmin, ymin, xmax, ymax }), + naturalSize, + clientSize, + ); + return { + rect: { ...rect, visible: true }, + labelId: editState.latestLabelId, + type: EObjectType.Rectangle, + hidden: false, + status: + item.score >= limitConf + ? EObjectStatus.Checked + : EObjectStatus.Unchecked, + conf: item.score, + color: getAnnotColor(editState.latestLabelId, true), + }; + }) + .reverse(); + + setDrawDataWithHistory((s) => { + s.isBatchEditing = true; + s.limitConf = limitConf; + const commitedObjects = s.objectList.filter( + (obj) => obj.status === EObjectStatus.Commited, + ); + s.objectList = [...commitedObjects, ...newObjects]; + if (s.creatingObject && s.objectList[s.activeObjectIndex]) { + s.creatingObject = { ...s.objectList[s.activeObjectIndex] }; + } + s.prompt.promptsQueue = promptsQueue; + s.prompt.creatingPrompt = undefined; + }); + message.success(localeText('DDSAnnotator.smart.msg.success')); + } + } catch (error: any) { + message.error(localeText('DDSAnnotator.smart.msg.error')); + setDrawDataWithHistory((s) => { + s.prompt.creatingPrompt = undefined; + }); + } finally { + setLoading(false); + } + }; - // record visible area currently for model + const getCurrVisibleBbox = () => { + // record visible area currently for model prediction const { xmin, ymin, xmax, ymax } = getVisibleAreaForImage( imagePos.current, clientSize, @@ -392,12 +394,117 @@ const useActions = ({ ); area = [Math.round(x1), Math.round(y1), Math.round(x2), Math.round(y2)]; } + return area; + }; + + const requestAiSegmentByPolygon = async ( + drawData: DrawData, + source: string, + promptsQueue?: PromptItem[], + ) => { + if (!promptsQueue) return; + + const reqParams = { + image: editState.imageCacheIdForPolygon + ? `image_id://${editState.imageCacheIdForPolygon}` + : source, + density: drawData.pointResolution, + area: getCurrVisibleBbox(), + prompts: convertPromptFormat(promptsQueue || []), + }; + + if (drawData.prompt.sessionId) { + Object.assign(reqParams, { sessionId: drawData.prompt.sessionId }); + } + + try { + setLoading(true); + const result = await fetchModelResults( + EnumModelType.SegmentByPolygon, + reqParams, + ); + if (result) { + const { image, polygons, sessionId } = result; + + if (polygons && polygons.length > 0) { + const predictPolygons = polygons + .filter((item) => { + return item.length >= 6; + }) + .map((item) => { + const result: IPolygon = []; + for (let i = 0; i < item.length; i += 2) { + const x = item[i]; + const y = item[i + 1]; + const canvasPoint = getCanvasPoint( + [x, y], + naturalSize, + clientSize, + ); + result.push(canvasPoint); + } + return result; + }); + + const creatingObj = { + type: EObjectType.Polygon, + hidden: false, + labelId: editState.latestLabelId, + color: + drawData.creatingObject?.color || + getAnnotColor(editState.latestLabelId), + currIndex: -1, + polygon: { + visible: true, + group: predictPolygons, + }, + status: EObjectStatus.Checked, + }; + + setDrawDataWithHistory((s) => { + s.creatingObject = creatingObj; + s.prompt.promptsQueue = promptsQueue; + s.prompt.sessionId = sessionId; + s.prompt.creatingPrompt = undefined; + }); + setEditState((s) => { + s.imageCacheIdForPolygon = image.replace(/^image_id:\/\//, ''); + }); + message.success(localeText('DDSAnnotator.smart.msg.success')); + } + } + } catch (error: any) { + message.error(localeText('DDSAnnotator.smart.msg.error')); + setDrawDataWithHistory((s) => { + s.prompt.creatingPrompt = undefined; + }); + } finally { + setLoading(false); + } + }; + + const requestAiSegmentByMask = async ( + drawData: DrawData, + source: string, + promptsQueue?: PromptItem[], + ) => { + if (!promptsQueue) return; + const currMask = + drawData.creatingObject?.maskCanvasElement || + drawData.creatingObject?.tempMaskSteps + ? objectToRle( + clientSize, + naturalSize, + drawData.creatingObject?.tempMaskSteps || [], + drawData.creatingObject?.maskCanvasElement, + ) + : []; const reqParams: NsApiAnnotator.FetchAIMaskSegmentReq = { maskRle: currMask || [], - maskId: drawData.prompt.segmentationMask || '', - prompt: convertPromptFormat(maskPrompts || []), - area, + maskId: drawData.prompt.sessionId || '', + prompt: convertPromptFormat(promptsQueue || []), + area: getCurrVisibleBbox(), }; if (editState.imageCacheId) { @@ -408,19 +515,19 @@ const useActions = ({ try { setLoading(true); - const result = - await fetchModelResults( - NsApiAnnotator.EnumModelType.SegmentByMask, - reqParams, - ); + const result = await fetchModelResults( + EnumModelType.SegmentByMask, + reqParams, + ); if (result) { const { maskId, maskRle, imageId } = result; const color = - drawData.creatingObject?.color || getAnnotColor(latestLabel); + drawData.creatingObject?.color || + getAnnotColor(editState.latestLabelId); const creatingObj = { type: EObjectType.Mask, hidden: false, - label: latestLabel, + labelId: editState.latestLabelId, currIndex: -1, maskCanvasElement: rleToCanvas(maskRle, naturalSize, color), maskRle, @@ -429,9 +536,9 @@ const useActions = ({ }; setDrawDataWithHistory((s) => { s.creatingObject = creatingObj; - s.prompt.maskPrompts = maskPrompts; - s.prompt.segmentationMask = maskId; - s.prompt.creatingMask = undefined; + s.prompt.promptsQueue = promptsQueue; + s.prompt.sessionId = maskId; + s.prompt.creatingPrompt = undefined; }); setEditState((s) => { s.imageCacheId = imageId; @@ -441,7 +548,7 @@ const useActions = ({ } catch (error: any) { message.error(localeText('DDSAnnotator.smart.msg.error')); setDrawDataWithHistory((s) => { - s.prompt.creatingMask = undefined; + s.prompt.creatingPrompt = undefined; }); } finally { setLoading(false); @@ -451,13 +558,13 @@ const useActions = ({ const requestAiPoseEstimation = async ( drawData: DrawData, source: string, - aiLabels: string[], + aiLabels: string, ) => { // TODO: Integrate custom templates const { lines, pointNames, pointColors } = BODY_TEMPLATE; const reqParams = { image: source, - targets: aiLabels.join(','), + targets: aiLabels, template: { lines, pointNames, @@ -484,16 +591,19 @@ const useActions = ({ obj.status === EObjectStatus.Checked, ); if (skeletonObjs.length > 0) { - const annotations = translateObjectsToAnnotations( - skeletonObjs, - naturalSize, - clientSize, - ); - const objects = annotations.map((item) => { + const objects = skeletonObjs.map((item) => { return { - categoryName: item.categoryName, - points: item.points, - boundingBox: item.boundingBox, + categoryName: aiLabels, + points: item.keypoints + ? translatePointObjsToPointAttrs( + item.keypoints.points, + naturalSize, + clientSize, + ).points + : undefined, + boundingBox: item.rect + ? translateRectToBoundingBox(item.rect, clientSize) + : undefined, }; }); Object.assign(reqParams, { objects }); @@ -502,8 +612,8 @@ const useActions = ({ try { setLoading(true); - const result = await fetchModelResults( - NsApiAnnotator.EnumModelType.Pose, + const result = await fetchModelResults( + EnumModelType.Pose, reqParams, ); @@ -512,10 +622,10 @@ const useActions = ({ if (objects && objects.length > 0) { const skeletonObjs = objects.map((obj) => { - let { categoryName, boundingBox, points, conf } = obj; + let { boundingBox, points, conf } = obj; const newObj: IAnnotationObject = { - label: categoryName, - color: getAnnotColor(categoryName), + labelId: editState.latestLabelId, + color: getAnnotColor(editState.latestLabelId), type: EObjectType.Skeleton, hidden: false, conf, @@ -571,12 +681,12 @@ const useActions = ({ source: string, ) => { if ( - !drawData.prompt.creatingMask?.stroke || - !drawData.prompt.creatingMask?.radius + !drawData.prompt.creatingPrompt?.stroke || + !drawData.prompt.creatingPrompt?.radius ) return; - const { stroke, radius } = drawData.prompt.creatingMask; + const { stroke, radius } = drawData.prompt.creatingPrompt; const maskObjects = drawData.objectList.filter( (item) => item.type === EObjectType.Mask, @@ -587,7 +697,7 @@ const useActions = ({ 'To ensure valid results when using intelligent edge stitching, make sure to use at least 2 mask objects.', ); setDrawData((s) => { - s.prompt.creatingMask = undefined; + s.prompt.creatingPrompt = undefined; }); return; } @@ -595,7 +705,9 @@ const useActions = ({ const rleList = maskObjects.map((item) => { const maskRle = objectToRle(clientSize, naturalSize, [], item.maskCanvasElement) || []; - return { maskRle, categoryName: item.label }; + const categoryName = + categories.find((c) => c.id === item.labelId)?.name || ''; + return { maskRle, categoryName }; }); const points = stroke.reduce((acc: number[], point: IPoint) => { @@ -620,18 +732,19 @@ const useActions = ({ try { setLoading(true); - const result = - await fetchModelResults( - NsApiAnnotator.EnumModelType.MaskEdgeStitching, - reqParams, - ); + const result = await fetchModelResults( + EnumModelType.MaskEdgeStitching, + reqParams, + ); if (result && result.rleList?.length > 0) { const maskObjects = result.rleList.map((item) => { - const color = getAnnotColor(item.categoryName); + const labelId = + categories.find((c) => c.name === item.categoryName)?.id || ''; + const color = getAnnotColor(labelId); return { type: EObjectType.Mask, hidden: false, - label: item.categoryName, + labelId: labelId, maskRle: item.maskRle, maskCanvasElement: rleToCanvas(item.maskRle, naturalSize, color), conf: 1, @@ -655,7 +768,7 @@ const useActions = ({ } finally { setLoading(false); setDrawData((s) => { - s.prompt.creatingMask = undefined; + s.prompt.creatingPrompt = undefined; }); } }; @@ -676,22 +789,21 @@ const useActions = ({ try { setLoading(true); - const result = - await fetchModelResults( - NsApiAnnotator.EnumModelType.SegmentEverything, - reqParams, - ); + const result = await fetchModelResults( + EnumModelType.SegmentEverything, + reqParams, + ); if (result && result.rleList?.length > 0) { // change to display different color setEditState((s) => { s.annotsDisplayOptions.colorByCategory = false; }); const maskObjects: IAnnotationObject[] = result.rleList.map((item) => { - const color = getAnnotColor(latestLabel); + const color = getAnnotColor(editState.latestLabelId); return { type: EObjectType.Mask, hidden: false, - label: latestLabel, + labelId: editState.latestLabelId, maskRle: item.maskRle, maskCanvasElement: rleToCanvas(item.maskRle, naturalSize, color), conf: 1, @@ -716,10 +828,8 @@ const useActions = ({ async ({ type, drawData: propsDrawData, - aiLabels = [], - bbox, - maskPrompts, - segmentationClicks, + aiLabels, + promptsQueue, segmentEverythingParams, }) => { if (isRequiring) return; @@ -727,10 +837,10 @@ const useActions = ({ const drawData = propsDrawData || editorDrawData; if ( - !aiLabels.length && - [EBasicToolItem.Rectangle, EBasicToolItem.Skeleton].includes( - drawData.selectedTool, - ) + !aiLabels && + (drawData.selectedTool === EBasicToolItem.Skeleton || + (drawData.selectedTool === EBasicToolItem.Rectangle && + drawData.selectedModel === EnumModelType.Detection)) ) { message.warning(localeText('DDSAnnotator.smart.msg.labelRequired')); return; @@ -740,7 +850,7 @@ const useActions = ({ localeText('DDSAnnotator.smart.msg.loading'), 100000, ); - let imgSrc = `${list[current].urlFullRes}`; + let imgSrc = `${currImageItem?.url}`; try { setIsRequiring(true); @@ -756,20 +866,19 @@ const useActions = ({ const aiType = type || EBasicToolTypeMap[drawData.selectedTool]; switch (aiType) { case EObjectType.Rectangle: { - await requestAiDetection(imgSrc, aiLabels); + if (drawData.selectedModel === EnumModelType.Detection) { + await requestAiDetection(imgSrc, aiLabels || ''); + } else { + await requestIvpDetection(imgSrc, promptsQueue); + } break; } case EObjectType.Skeleton: { - await requestAiPoseEstimation(drawData, imgSrc, aiLabels); + await requestAiPoseEstimation(drawData, imgSrc, aiLabels || ''); break; } case EObjectType.Polygon: { - await requestAiSegmentByPolygon( - drawData, - imgSrc, - bbox, - segmentationClicks, - ); + await requestAiSegmentByPolygon(drawData, imgSrc, promptsQueue); break; } case EObjectType.Mask: { @@ -780,7 +889,7 @@ const useActions = ({ ) { await requestSegmentEverything(imgSrc, segmentEverythingParams); } else { - await requestAiSegmentByMask(drawData, imgSrc, maskPrompts); + await requestAiSegmentByMask(drawData, imgSrc, promptsQueue); } break; } @@ -801,31 +910,155 @@ const useActions = ({ [editorDrawData], ); - const onSaveAnnotations = async (drawData: DrawData) => { + const translateDrawData = useCallback( + (drawData: DrawData): [string, any[]] => { + let objectList = []; + if (framesData) { + objectList = convertFrameObjectsIntoFramesObjects( + drawData.objectList, + framesData.objects, + framesData.list.length, + framesData.activeIndex, + ).map((objs) => { + const availObjs: any = {}; + objs.forEach((obj, frameIndex) => { + if (obj && !obj.frameEmpty) { + // TODO: adapt for old format + const { labelId, attributes, labelValue } = + translateObject?.(obj); + availObjs.labelId = labelId; + availObjs.attributes = attributes; + if (!availObjs.labelValue) availObjs.labelValue = {}; + availObjs.labelValue[String(frameIndex)] = labelValue; + } + }); + return availObjs; + }); + } else { + objectList = drawData.objectList.map((obj) => translateObject?.(obj)); + } + return [ + framesData?.id || currImageItem?.id || '', + [ + ...drawData.classifications.map((item) => { + const label = categories.find((c) => c.id === item.labelId); + return { + ...item, + attributes: + item.attributes || label?.attributes?.map(() => null) || [], + }; + }), + ...objectList, + ], + ]; + }, + [currImageItem, translateObject, framesData], + ); + + const judgeLimitCommit = (labels: any[]) => { + const errorList: string[] = []; + // check classification + classificationOptions?.forEach((item, idx) => { + const value = labels.find((label) => label.labelId === item.id); + if (!value || [undefined, null, ''].includes(value.labelValue)) { + errorList.push( + localeText('DDSAnnotator.save.check.classification', { + idx: idx + 1, + }), + ); + } + }); + // check label + labels.forEach((item, idx) => { + const label = categories.find((label) => label.id === item.labelId); + if ( + label?.attributes?.find( + (attribute, index) => + attribute.required && + [undefined, null, ''].includes(item.attributes?.[index]), + ) + ) { + errorList.push( + localeText('DDSAnnotator.save.check.label', { + idx: idx + 1, + labelName: label.labelName, + }), + ); + } + }); + + if (errorList.length > 0) { + Modal.warning({ + width: 480, + title: localeText('DDSAnnotator.save.check.error'), + content: ( +
+ {errorList.map((item, index) => ( + + {item} +
+
+ ))} + {localeText('DDSAnnotator.save.check.tip')} +
+ ), + }); + return true; + } + + return false; + }; + + const onSaveAnnotations = async () => { if (isRequiring || !onSave) return; - if (drawData.objectList.find((item) => !item.label)) { - message.warning( - 'There are annotations without a category. Please check.', - ); - return; + const [id, labels] = translateDrawData(editorDrawData); + console.log('>>> save', id, labels); + if (judgeLimitCommit(labels)) return; + + setIsRequiring(true); + try { + await onSave(id, labels); + } catch (error) { + console.error(error); } + setIsRequiring(false); + }; + + const onCommitAnnotations = async () => { + if (isRequiring || !onCommit) return; + + const [id, labels] = translateDrawData(editorDrawData); + if (judgeLimitCommit(labels)) return; setIsRequiring(true); try { - const annotations = translateObjectsToAnnotations( - drawData.objectList, - naturalSize, - clientSize, - ); - await onSave(list[current].id, annotations); + await onCommit(id, labels); } catch (error) { console.error(error); } setIsRequiring(false); }; - const onCancelAnnotations = () => { + const onRejectAnnotations = async () => { + if (mode === EditorMode.Review && onReviewReject) { + onReviewReject(...translateDrawData(editorDrawData)); + } + }; + + const onAcceptAnnotations = async () => { + if (mode === EditorMode.Review && onReviewAccept) { + onReviewAccept(...translateDrawData(editorDrawData)); + } + }; + + const onModifyAnnotations = async () => { + if (mode === EditorMode.Review && onReviewModify) { + onReviewModify(...translateDrawData(editorDrawData)); + } + }; + + const onCancelAnnotations = async () => { if (mode === EditorMode.Edit && hadChangeRecord) { modal.confirm({ getContainer: () => document.body, @@ -842,24 +1075,14 @@ const useActions = ({ if (onCancel) onCancel(); }; - const onReject = () => { - if (mode === EditorMode.Review && onReviewResult) { - onReviewResult(list[current]?.id || '', EQaAction.Reject); - } - }; - - const onAccept = () => { - if (mode === EditorMode.Review && onReviewResult) { - onReviewResult(list[current]?.id || '', EQaAction.Accept); - } - }; - return { onAiAnnotation, onSaveAnnotations, + onCommitAnnotations, onCancelAnnotations, - onReject, - onAccept, + onRejectAnnotations, + onAcceptAnnotations, + onModifyAnnotations, }; }; diff --git a/packages/components/src/Annotator/hooks/useAttributes.ts b/packages/components/src/Annotator/hooks/useAttributes.ts new file mode 100644 index 0000000..fa15f12 --- /dev/null +++ b/packages/components/src/Annotator/hooks/useAttributes.ts @@ -0,0 +1,72 @@ +import { useCallback } from 'react'; +import { + Category, + DrawData, + IAnnotationObject, + IAttributeValue, +} from '../type'; +import { Updater } from 'use-immer'; + +interface IProps { + setDrawDataWithHistory: Updater; + categories: Category[]; +} + +export default function useAttributes({ + setDrawDataWithHistory, + categories, +}: IProps) { + const judgeEditingAttribute = useCallback( + (object: IAnnotationObject, index: number) => { + const label = categories.find((item) => item.id === object.labelId); + if (label?.attributes && label.attributes.length > 0) { + return { + index, + labelId: object.labelId, + attributes: label.attributes, + values: object.attributes || [], + }; + } + return undefined; + }, + [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; + } else { + s.classifications.push({ + labelId: s.editingAttribute?.labelId, + labelValue: null, + attributes: values, + }); + } + } + s.editingAttribute = undefined; + } + }); + }, []); + + const onCancelAttibuteEdit = () => { + setDrawDataWithHistory((s) => { + s.editingAttribute = undefined; + }); + }; + + return { + judgeEditingAttribute, + onConfirmAttibuteEdit, + onCancelAttibuteEdit, + }; +} diff --git a/packages/components/src/Annotator/hooks/useCanvasContainer.tsx b/packages/components/src/Annotator/hooks/useCanvasContainer.tsx index 93b5a6f..92c7daa 100644 --- a/packages/components/src/Annotator/hooks/useCanvasContainer.tsx +++ b/packages/components/src/Annotator/hooks/useCanvasContainer.tsx @@ -13,8 +13,12 @@ import { MAX_SCALE, BUTTON_SCALE_STEP, WHEEL_SCALE_STEP, + ESubToolItem, + EObjectType, + EBasicToolItem, } from '../constants'; import { fixedFloatNum } from 'dds-utils/digit'; +import { DrawData } from '../type'; interface IProps { isRequiring: boolean; @@ -24,10 +28,10 @@ interface IProps { left: number; }; allowMove: boolean; - isCustomCursorActive: boolean; cursorSize: number; - showReferenceLine?: boolean; + drawData: DrawData; onClickMaskBg?: React.MouseEventHandler; + hideReferenceLine?: boolean; } export default function useCanvasContainer({ @@ -35,10 +39,10 @@ export default function useCanvasContainer({ visible, minPadding = { top: 0, left: 0 }, allowMove, - showReferenceLine, - isCustomCursorActive, + drawData, cursorSize, onClickMaskBg, + hideReferenceLine, }: IProps) { const containerRef = useRef(null); const containerSize = useSize(() => containerRef.current); @@ -87,8 +91,8 @@ export default function useCanvasContainer({ const [movingImgAnchor, setMovingImgAnchor] = useImmer(null); - const initClientSizeToFit = (naturalSize: ISize) => { - if (naturalSize && containerSize) { + const initClientSizeToFit = (naturalSize: ISize, containerSize: ISize) => { + if (naturalSize?.width && containerSize?.height) { const containerWidth = containerSize.width; const containerHeight = containerSize.height; const [width, height, scale] = zoomImgSize( @@ -112,8 +116,10 @@ export default function useCanvasContainer({ /** Initial position to fit container */ useEffect(() => { - initClientSizeToFit(naturalSize); - }, [naturalSize, containerSize]); + if (naturalSize && containerSize) { + initClientSizeToFit(naturalSize, containerSize); + } + }, [containerSize]); const adaptImagePosWhileZoom = () => { if (!containerSize) return; @@ -199,8 +205,15 @@ export default function useCanvasContainer({ const onReset = useCallback(() => { lastScalePosRef.current = undefined; - initClientSizeToFit(naturalSize); - }, [naturalSize.width, naturalSize.height]); + if (containerSize && naturalSize) { + initClientSizeToFit(naturalSize, containerSize); + } + }, [ + naturalSize.width, + naturalSize.height, + containerSize?.width, + containerSize?.height, + ]); // Reset data when hidden. useEffect(() => { @@ -219,8 +232,9 @@ export default function useCanvasContainer({ const [isMousePress, setMousePress] = useState(false); useEventListener('mousedown', () => { + if (!visible || !containerRef.current || !isInCanvas(containerMouse)) + return; setMousePress(true); - if (!visible || !containerRef.current) return; setMovingImgAnchor({ x: contentMouse.elementX, y: contentMouse.elementY, @@ -261,11 +275,16 @@ export default function useCanvasContainer({ } }, [allowMove]); - const onLoadImg = (e: React.UIEvent) => { + const onLoadImg = ( + e: React.UIEvent, + withoutInitClientSize?: boolean, + ) => { const img = e.target as HTMLImageElement; const naturalSize = { width: img.naturalWidth, height: img.naturalHeight }; setNaturalSize(naturalSize); - initClientSizeToFit(naturalSize); + if (containerSize && naturalSize && !withoutInitClientSize) { + initClientSizeToFit(naturalSize, containerSize); + } }; const onClickBg = (event: React.MouseEvent) => { @@ -274,6 +293,44 @@ export default function useCanvasContainer({ } }; + const isCustomCursorActive = useMemo(() => { + const isToolWithSize = [ + ESubToolItem.AutoEdgeStitching, + ESubToolItem.AutoSegmentByStroke, + ESubToolItem.BrushAdd, + ESubToolItem.BrushErase, + ].includes(drawData.selectedSubTool); + + if ( + drawData.creatingObject && + drawData.activeObjectIndex > -1 && + [EObjectType.Mask, EObjectType.Polygon].includes( + drawData.creatingObject.type, + ) + ) { + return isToolWithSize; + } + if ( + drawData.selectedTool !== EBasicToolItem.Drag && + !drawData.isBatchEditing + ) { + return ( + [EBasicToolItem.Mask, EBasicToolItem.Polygon].includes( + drawData.selectedTool, + ) && isToolWithSize + ); + } + return false; + }, [drawData.selectedTool, drawData.selectedSubTool]); + + const showReferenceLine = useMemo(() => { + return ( + drawData.selectedTool !== EBasicToolItem.Drag && + !isCustomCursorActive && + !hideReferenceLine + ); + }, [drawData.selectedTool, isCustomCursorActive, hideReferenceLine]); + /** Container render function */ const CanvasContainer = ({ children, @@ -296,57 +353,49 @@ export default function useCanvasContainer({ {/* leftLine */}
{/* rightLine */}
{/* upLine */}
{/* downLine */}
diff --git a/packages/components/src/Annotator/hooks/useCanvasRender.ts b/packages/components/src/Annotator/hooks/useCanvasRender.tsx similarity index 76% rename from packages/components/src/Annotator/hooks/useCanvasRender.ts rename to packages/components/src/Annotator/hooks/useCanvasRender.tsx index 1fa8d10..18fee88 100644 --- a/packages/components/src/Annotator/hooks/useCanvasRender.ts +++ b/packages/components/src/Annotator/hooks/useCanvasRender.tsx @@ -7,7 +7,12 @@ import { ICreatingObject, } from '../type'; import { translateAnnotCoord } from '../utils/compute'; -import { EObjectType } from '../constants'; +import { + EBasicToolItem, + EElementType, + EnumModelType, + EObjectType, +} from '../constants'; import { addFilter, clearCanvas, @@ -23,8 +28,9 @@ import { ANNO_STROKE_ALPHA, ANNO_STROKE_COLOR, } from '../constants/render'; -import { RenderStyles, ToolInstanceHookReturn } from '../tools/base'; +import { ToolInstanceHookReturn } from '../tools/base'; import { hexToRgba } from '../utils/color'; +import PopoverMenu from '../components/PopoverMenu'; interface IProps { visible: boolean; @@ -37,10 +43,6 @@ interface IProps { activeCanvasRef: React.RefObject; imgRef: React.RefObject; objectHooksMap: Record; - getCustomObjectStyles?: ( - object: IAnnotationObject, - color: string, - ) => Partial; } const useCanvasRender = ({ @@ -54,7 +56,6 @@ const useCanvasRender = ({ activeCanvasRef, imgRef, objectHooksMap, - getCustomObjectStyles, }: IProps) => { // ================================================================================================================= // Render @@ -84,7 +85,6 @@ const useCanvasRender = ({ fillColor = ANNO_FILL_COLOR.CREATING; } - const customStyles = getCustomObjectStyles?.(object, color) || {}; return { strokeColor, fillColor, @@ -92,7 +92,7 @@ const useCanvasRender = ({ strokeDash: [0], thickness: 2, pointAplha: 1, - ...customStyles, + ...(object.customStyles || {}), }; }; @@ -139,17 +139,32 @@ const useCanvasRender = ({ const { prompt } = theDrawData; if ( - prompt.maskPrompts || - prompt.creatingMask || + prompt.creatingPrompt || + prompt.promptsQueue || prompt.activeRectWhileLoading ) { - objectHooksMap[EObjectType.Mask].renderPrompt({ - prompt, - }); - } else if (prompt.segmentationClicks) { - objectHooksMap[EObjectType.Polygon].renderPrompt({ - prompt, - }); + if ( + theDrawData.selectedTool === EBasicToolItem.Mask || + theDrawData.creatingObject?.type === EObjectType.Mask + ) { + objectHooksMap[EObjectType.Mask].renderPrompt({ + prompt, + }); + } else if ( + theDrawData.selectedTool === EBasicToolItem.Polygon || + theDrawData.creatingObject?.type === EObjectType.Polygon + ) { + objectHooksMap[EObjectType.Polygon].renderPrompt({ + prompt, + }); + } else if ( + theDrawData.selectedTool === EBasicToolItem.Rectangle && + theDrawData.selectedModel === EnumModelType.IVP + ) { + objectHooksMap[EObjectType.Rectangle].renderPrompt({ + prompt, + }); + } } return; }; @@ -209,16 +224,23 @@ const useCanvasRender = ({ if ( obj.hidden || index === activeObjectIndex || - index === editState.focusObjectIndex + index === editState.focusObjectIndex || + obj.frameEmpty ) { return; } - renderObject(obj, false); + renderObject(obj, drawData.editingAttribute?.index === index); }); }; const updateRender = (updateDrawData?: DrawData) => { - if (!visible || !canvasRef.current || !imgRef.current) return; + if ( + !visible || + !canvasRef.current || + !imgRef.current || + !imgRef.current.complete + ) + return; resizeSmoothCanvas(canvasRef.current, { width: containerMouse.elementW, @@ -258,14 +280,41 @@ const useCanvasRender = ({ editState.focusObjectIndex > -1 && editState.focusObjectIndex !== drawData.activeObjectIndex && theDrawData.objectList[editState.focusObjectIndex] && - !theDrawData.objectList[editState.focusObjectIndex].hidden + !theDrawData.objectList[editState.focusObjectIndex].hidden && + !theDrawData.objectList[editState.focusObjectIndex].frameEmpty ) { renderObject(theDrawData.objectList[editState.focusObjectIndex], true); } }; + const renderPopoverMenu = () => { + if ( + editState.focusObjectIndex > -1 && + drawData.objectList[editState.focusObjectIndex] && + !drawData.objectList[editState.focusObjectIndex].hidden && + editState.focusEleIndex > -1 && + editState.focusEleType === EElementType.Circle + ) { + const target = + drawData.objectList[editState.focusObjectIndex].keypoints?.points?.[ + editState.focusEleIndex + ]; + if (target) { + return ( + + ); + } + } + return <>; + }; + return { updateRender, + renderPopoverMenu, }; }; diff --git a/packages/components/src/Annotator/hooks/useColor.ts b/packages/components/src/Annotator/hooks/useColor.ts index 8cd65b0..a6cdcc0 100644 --- a/packages/components/src/Annotator/hooks/useColor.ts +++ b/packages/components/src/Annotator/hooks/useColor.ts @@ -5,11 +5,16 @@ import { Category, EditState } from '../type'; interface IProps { categories: Category[]; editState: EditState; + forceColorByObject?: boolean; } -export default function useColor({ categories, editState }: IProps) { +export default function useColor({ + categories, + editState, + forceColorByObject, +}: IProps) { const labelColors = useMemo(() => { - return getCategoryColors(categories.map((item) => item.name)); + return getCategoryColors(categories.map((item) => item.id)); }, [categories]); const colorSeedRef = useRef(0); @@ -31,12 +36,13 @@ export default function useColor({ categories, editState }: IProps) { }, [editState.annotsDisplayOptions.colorByCategory]); const getAnnotColor = useCallback( - (category: string, forceColorByCategory?: boolean) => { + (categoryId: string, forceColorByCategory?: boolean) => { if ( - editState.annotsDisplayOptions.colorByCategory || - forceColorByCategory + !forceColorByObject && + (editState.annotsDisplayOptions.colorByCategory || forceColorByCategory) ) { - return labelColors[category] || '#fff'; + const catagory = categories.find((item) => item.id === categoryId); + return catagory?.renderColor || labelColors[categoryId] || '#fff'; } else { return getUniformHexColor(colorSeedRef.current); } @@ -46,6 +52,7 @@ export default function useColor({ categories, editState }: IProps) { labelColors, getUniformHexColor, colorSeedRef.current, + forceColorByObject, ], ); diff --git a/packages/components/src/Annotator/hooks/useDataEffect.ts b/packages/components/src/Annotator/hooks/useDataEffect.ts index 3ae8367..389ed8f 100644 --- a/packages/components/src/Annotator/hooks/useDataEffect.ts +++ b/packages/components/src/Annotator/hooks/useDataEffect.ts @@ -2,62 +2,68 @@ import { useCallback, useEffect } from 'react'; import { cloneDeep } from 'lodash'; import { BaseObject, + Category, DEFAULT_DRAW_DATA, DEFAULT_EDIT_STATE, DrawData, - DrawImageData, + AnnoItem, DrawObject, EditState, + VideoFramesData, } from '../type'; -import { scaleDrawData } from '../utils/compute'; +import { scaleDrawData, scaleFramesObjects } from '../utils/compute'; import { Updater } from 'use-immer'; +import usePreviousState from './usePreviousState'; interface IProps { imagePos: React.MutableRefObject; clientSize: ISize; - preClientSize?: ISize; - clearPreClientSize: () => void; naturalSize: ISize; annotations: DrawObject[]; setAnnotations: Updater; - labelColors: Record; drawData: DrawData; setDrawData: Updater; + setFramesData?: Updater; editState: EditState; setEditState: Updater; - initObjectList: ( - annotations: DrawObject[], - labelColors: Record, - ) => void; + initObjectList: (annotations: DrawObject[]) => void; updateRender: (updateDrawData?: DrawData) => void; clearHistory: () => void; objectsFilter?: (imageData: any) => BaseObject[]; + labelOptions: Category[]; + customDefaultDrawData?: Partial; } const useDataEffect = ({ imagePos, clientSize, - preClientSize, - clearPreClientSize, naturalSize, annotations, setAnnotations, - labelColors, drawData, setDrawData, + setFramesData, editState, setEditState, initObjectList, updateRender, clearHistory, objectsFilter, + labelOptions, + customDefaultDrawData, }: IProps) => { + const [preClientSize, clearPreClientSize] = + usePreviousState(clientSize); + /** * Rebuilds the draw data for the annotation tool. * @param {boolean} isUpdateDrawData - Optional parameter that specifies whether to update draw data. * @return {void} */ - const rebuildDrawData = (isForce?: boolean) => { + const rebuildDrawData = ( + isForce?: boolean, + theAnnotations?: DrawObject[], + ) => { if ( !clientSize.width || !clientSize.height || @@ -65,15 +71,15 @@ const useDataEffect = ({ !naturalSize.height ) return; - if (!drawData.initialized || isForce) { - // Initialization - setDrawData((s) => { - s.initialized = true; - }); - initObjectList(annotations, labelColors); + initObjectList(theAnnotations || annotations); } else if (drawData.initialized && preClientSize) { // scale change + if (setFramesData) { + setFramesData?.((s) => { + s.objects = scaleFramesObjects(s.objects, preClientSize, clientSize); + }); + } const updateDrawData = scaleDrawData(drawData, preClientSize, clientSize); setDrawData(updateDrawData); updateRender(updateDrawData); @@ -87,10 +93,13 @@ const useDataEffect = ({ brushSize: drawData.brushSize, selectedTool: drawData.selectedTool, selectedSubTool: drawData.selectedSubTool, + selectedModel: drawData.selectedModel, AIAnnotation: drawData.AIAnnotation, + ...customDefaultDrawData, }); }, [ DEFAULT_DRAW_DATA, + customDefaultDrawData, drawData.brushSize, drawData.selectedSubTool, drawData.selectedTool, @@ -100,31 +109,37 @@ const useDataEffect = ({ const resetEditData = useCallback(() => { setEditState({ ...cloneDeep(DEFAULT_EDIT_STATE), + latestLabelId: labelOptions?.[0]?.id || '', imageDisplayOptions: editState.imageDisplayOptions, annotsDisplayOptions: editState.annotsDisplayOptions, }); }, [ DEFAULT_EDIT_STATE, + labelOptions, editState.imageDisplayOptions, editState.annotsDisplayOptions, ]); const applyImageAnnots = useCallback( - (imageData: DrawImageData) => { + (imageData: AnnoItem) => { const annotations = imageData?.objects ? [...imageData?.objects] : []; const currAnnotations = - imageData && objectsFilter ? objectsFilter(imageData) : annotations; + imageData && objectsFilter + ? objectsFilter(imageData) || [] + : annotations; setAnnotations(currAnnotations); + rebuildDrawData(true, currAnnotations); }, - [objectsFilter], + [objectsFilter, rebuildDrawData], ); const resetDataWithImageData = useCallback( ( - imageData: DrawImageData, + imageData: AnnoItem, visible: boolean, clearHistoryQueue: boolean = true, ) => { + setAnnotations([]); resetDrawData(); resetEditData(); if (clearHistoryQueue) clearHistory(); @@ -148,7 +163,19 @@ const useDataEffect = ({ /** Annotations / naturalSize changed */ useEffect(() => { rebuildDrawData(true); - }, [annotations, naturalSize.width, naturalSize.height]); + }, [naturalSize.width, naturalSize.height]); + + useEffect(() => { + if (!labelOptions?.length) return; + setEditState((s) => { + if ( + !s.latestLabelId || + !labelOptions.find((item) => item.id === s.latestLabelId) + ) { + s.latestLabelId = labelOptions[0]?.id; + } + }); + }, [labelOptions]); return { rebuildDrawData, diff --git a/packages/components/src/Annotator/hooks/useHistory.ts b/packages/components/src/Annotator/hooks/useHistory.ts index 2c6cb5e..6d7c85f 100644 --- a/packages/components/src/Annotator/hooks/useHistory.ts +++ b/packages/components/src/Annotator/hooks/useHistory.ts @@ -1,19 +1,23 @@ import { useCallback, useState } from 'react'; import { DraftFunction, Updater, useImmer } from 'use-immer'; import { cloneDeep, isEqual } from 'lodash'; -import { scaleDrawData, translateObjectsToAnnotations } from '../utils/compute'; -import { BaseObject, DrawData } from '../type'; +import { scaleDrawData, scaleFramesObjects } from '../utils/compute'; +import { BaseObject, DrawData, VideoFramesData } from '../type'; export interface HistoryItem { drawData: DrawData; + framesData?: VideoFramesData; clientSize: ISize; } interface IProps { clientSize: ISize; naturalSize: ISize; + framesData?: VideoFramesData; + setFramesData?: Updater; setDrawData: Updater; onAutoSave?: (annotations: BaseObject[], naturalSize: ISize) => void; + translateObject?: (object: any) => any; } const useHistory = ({ @@ -21,28 +25,35 @@ const useHistory = ({ naturalSize, onAutoSave, setDrawData, + translateObject, + framesData, + setFramesData, }: IProps) => { const [historyQueue, setHistoryQueue] = useImmer([]); const [currentIndex, setCurrIndex] = useState(0); const maxCacheSize = 20; const autoSave = (item: HistoryItem) => { - const annotations = translateObjectsToAnnotations( - item.drawData.objectList, - naturalSize, - item.clientSize, - true, - ); - if (onAutoSave) onAutoSave(annotations, naturalSize); + if (onAutoSave) { + const annotations = item.drawData.objectList.map( + (obj) => translateObject?.(obj) || {}, + ); + onAutoSave(annotations, naturalSize); + } }; - /** - * Undo the last action - */ - const undo = useCallback(() => { - if (currentIndex > 0) { - setCurrIndex((prevIndex) => prevIndex - 1); - const record = historyQueue[currentIndex - 1]; + const updateCurrentRecord = useCallback( + (record: HistoryItem) => { + if (record.framesData) { + setFramesData?.({ + ...record.framesData, + objects: scaleFramesObjects( + record.framesData.objects, + record.clientSize, + clientSize, + ), + }); + } const updateDrawData = scaleDrawData( record.drawData, record.clientSize, @@ -50,8 +61,19 @@ const useHistory = ({ ); setDrawData(updateDrawData); autoSave(record); + }, + [clientSize.width, clientSize.height], + ); + + /** + * Undo the last action + */ + const undo = useCallback(() => { + if (currentIndex > 0) { + setCurrIndex((prevIndex) => prevIndex - 1); + updateCurrentRecord(historyQueue[currentIndex - 1]); } - }, [currentIndex, historyQueue, clientSize.width, clientSize.height]); + }, [currentIndex, historyQueue, updateCurrentRecord]); /** * Redo the last undone action @@ -59,21 +81,22 @@ const useHistory = ({ const redo = useCallback(() => { if (currentIndex < historyQueue.length - 1) { setCurrIndex((prevIndex) => prevIndex + 1); - const record = historyQueue[currentIndex + 1]; - const updateDrawData = scaleDrawData( - record.drawData, - record.clientSize, - clientSize, - ); - setDrawData(updateDrawData); - autoSave(record); + updateCurrentRecord(historyQueue[currentIndex + 1]); } - }, [currentIndex, historyQueue, clientSize.width, clientSize.height]); + }, [currentIndex, historyQueue, updateCurrentRecord]); /** * Update the history queue with the new objects */ - const updateHistory = (item: HistoryItem) => { + const updateHistory = ( + drawData: DrawData, + theframesData?: VideoFramesData, + ) => { + const item = { + drawData, + clientSize, + framesData: theframesData || framesData, + }; setHistoryQueue((queue) => { if (queue[currentIndex] && isEqual(item, queue[currentIndex])) { return queue; @@ -85,6 +108,7 @@ const useHistory = ({ // fix to change image current render return queue; } + // console.log('>>> updata history', item.drawData, framesData); queue.splice(currentIndex + 1); queue.push(item); if (queue.length > maxCacheSize) { @@ -105,21 +129,11 @@ const useHistory = ({ if (typeof updater === 'function') { setDrawData((s) => { updater(s); - updateHistory( - cloneDeep({ - drawData: s, - clientSize, - }), - ); + updateHistory(cloneDeep(s)); }); } else { setDrawData(updater); - updateHistory( - cloneDeep({ - drawData: updater, - clientSize, - }), - ); + updateHistory(cloneDeep(updater)); } }; diff --git a/packages/components/src/Annotator/hooks/useLabels.ts b/packages/components/src/Annotator/hooks/useLabels.ts index 1f46655..a44a89f 100644 --- a/packages/components/src/Annotator/hooks/useLabels.ts +++ b/packages/components/src/Annotator/hooks/useLabels.ts @@ -1,4 +1,4 @@ -import { useCallback, useEffect, useState } from 'react'; +import { useCallback, useEffect, useMemo, useState } from 'react'; import { Updater } from 'use-immer'; import { Category, @@ -7,11 +7,18 @@ import { EditorMode, IAnnotationObject, } from '../type'; -import { EElementType, KEYPOINTS_VISIBLE_TYPE } from '../constants'; +import { + EBasicToolItem, + EBasicToolTypeMap, + EElementType, + ELabelType, + KEYPOINTS_VISIBLE_TYPE, + LABEL_TOOL_MAP, +} from '../constants'; import { cloneDeep } from 'lodash'; interface IProps { - visible: boolean; + isOldMode?: boolean; mode: EditorMode; categories: Category[]; setCategories?: Updater; @@ -26,7 +33,7 @@ interface IProps { } export default function useLabels({ - visible, + isOldMode, categories, setCategories, drawData, @@ -35,7 +42,45 @@ export default function useLabels({ updateObjectWithoutHistory, updateAllObjectWithoutHistory, }: IProps) { - const [aiLabels, setAiLabels] = useState([]); + const [aiLabels, setAiLabels] = useState(undefined); + const curObjects = drawData.objectList; + + const labelOptions: Category[] = useMemo(() => { + if (isOldMode) return categories; + + if ( + drawData.objectList[drawData.activeObjectIndex] || + drawData.selectedTool !== EBasicToolItem.Drag + ) { + const toolType = drawData.objectList[drawData.activeObjectIndex] + ? Object.keys(EBasicToolTypeMap).find( + (key) => + drawData.objectList[drawData.activeObjectIndex].type === + EBasicToolTypeMap[key as unknown as EBasicToolItem], + ) + : drawData.selectedTool; + const labelType = Object.keys(LABEL_TOOL_MAP).find( + // @ts-ignore + (key) => toolType === LABEL_TOOL_MAP[key], + ); + return categories.filter((category) => category.labelType === labelType); + } + + return []; + }, [ + categories, + drawData.objectList, + drawData.activeObjectIndex, + drawData.selectedTool, + ]); + + const classificationOptions: Category[] = useMemo(() => { + return ( + categories?.filter( + (category) => category.labelType === ELabelType.Classification, + ) || [] + ); + }, [categories]); const onCreateCategory = useCallback( (name: string) => { @@ -52,20 +97,6 @@ export default function useLabels({ [categories], ); - useEffect(() => { - const allLabels = categories.map((item) => item.name); - const commonLabels = aiLabels.filter((item) => allLabels.includes(item)); - setAiLabels(commonLabels); - }, [categories]); - - useEffect(() => { - if (!visible) { - setAiLabels([]); - } - }, [visible]); - - const curObjects = drawData.objectList; - const onChangeObjectHidden = useCallback( (index: number, hidden: boolean) => { const newObject = { ...drawData.objectList[index] }; @@ -76,10 +107,14 @@ export default function useLabels({ ); const onChangeCategoryHidden = useCallback( - (category: string, hidden: boolean) => { + (categoryName: string, hidden: boolean) => { const updatedObjects = drawData.objectList.map((item) => { const temp = { ...item }; - if (temp.label === category) temp.hidden = hidden; + if ( + categories.find((c) => c.id === item.labelId)?.name === categoryName + ) { + temp.hidden = hidden; + } return temp; }); updateAllObjectWithoutHistory(updatedObjects); @@ -113,16 +148,19 @@ export default function useLabels({ * * @param {KEYPOINTS_VISIBLE_TYPE} visible - The visibility value for the keypoint. */ - const onChangePointVisible = useCallback((pointIndex: number, visible: KEYPOINTS_VISIBLE_TYPE) => { - const newObject = cloneDeep( - drawData.objectList[drawData.activeObjectIndex], - ); - const point = newObject.keypoints?.points?.[pointIndex]; - if (point) { - point.visible = visible; - } - updateObjectWithoutHistory(newObject, drawData.activeObjectIndex); - }, [drawData.activeObjectIndex, drawData.objectList]); + const onChangePointVisible = useCallback( + (pointIndex: number, visible: KEYPOINTS_VISIBLE_TYPE) => { + const newObject = cloneDeep( + drawData.objectList[drawData.activeObjectIndex], + ); + const point = newObject.keypoints?.points?.[pointIndex]; + if (point) { + point.visible = visible; + } + updateObjectWithoutHistory(newObject, drawData.activeObjectIndex); + }, + [drawData.activeObjectIndex, drawData.objectList], + ); const onChangeActiveClass = useCallback((name: string) => { setDrawData((s) => { @@ -133,14 +171,19 @@ export default function useLabels({ useEffect(() => { if (drawData.activeObjectIndex < 0) return; - const activeItemLabel = - drawData.objectList[drawData.activeObjectIndex].label; - if (activeItemLabel !== drawData.activeClassName) { - onChangeActiveClass(activeItemLabel); + const activeItemLabelName = + categories.find( + (item) => + item.id === drawData.objectList[drawData.activeObjectIndex].labelId, + )?.name || ''; + if (activeItemLabelName !== drawData.activeClassName) { + onChangeActiveClass(activeItemLabelName); } }, [drawData.activeObjectIndex]); return { + labelOptions, + classificationOptions, aiLabels, setAiLabels, curObjects, diff --git a/packages/components/src/Annotator/hooks/useMouseEvents.tsx b/packages/components/src/Annotator/hooks/useMouseEvents.tsx index 996b108..458301e 100644 --- a/packages/components/src/Annotator/hooks/useMouseEvents.tsx +++ b/packages/components/src/Annotator/hooks/useMouseEvents.tsx @@ -19,6 +19,7 @@ import { EBasicToolItem, EBasicToolTypeMap, EElementType, + EnumModelType, EObjectType, } from '../constants'; import { Updater } from 'use-immer'; @@ -271,13 +272,17 @@ const useMouseEvents = ({ }); } else { s.activeObjectIndex = index; - s.creatingObject = { - ...drawData.objectList[index], - currIndex: undefined, - startPoint: undefined, - tempMaskSteps: [], - maskStep: undefined, - }; + if (!drawData.objectList[index].frameEmpty) { + s.creatingObject = { + ...drawData.objectList[index], + currIndex: undefined, + startPoint: undefined, + tempMaskSteps: [], + maskStep: undefined, + }; + } else { + s.creatingObject = undefined; + } if ( s.selectedTool !== EBasicToolItem.Drag && @@ -287,6 +292,9 @@ const useMouseEvents = ({ s.selectedTool = EBasicToolItem.Drag; } } + if (s.editingAttribute?.index !== index) { + s.editingAttribute = undefined; + } }); }, [clientSize.width, clientSize.height, contentMouse, drawData.objectList], @@ -333,7 +341,9 @@ const useMouseEvents = ({ backgroundColor: drawData.objectList[index]?.color || '#fff', }} /> - {drawData.objectList[index]?.label} + {categories.find( + (c) => c.id === drawData.objectList[index]?.labelId, + )?.name || ''} {drawData.isBatchEditing && ` (${fixedFloatNum(drawData.objectList[index]?.conf || 0)})`}
@@ -347,7 +357,8 @@ const useMouseEvents = ({ !visible || editState.allowMove || editState.isRequiring || - !isInCanvas(contentMouse) + !isInCanvas(contentMouse) || + !isInCanvas(containerMouse) ) return; @@ -371,8 +382,11 @@ const useMouseEvents = ({ // 2. Create object if ( drawData.selectedTool !== EBasicToolItem.Drag && - !drawData.isBatchEditing + (!drawData.isBatchEditing || drawData.selectedModel === EnumModelType.IVP) ) { + setDrawData((s) => { + s.editingAttribute = undefined; + }); const objectType = EBasicToolTypeMap[drawData.selectedTool]; if ( mode === EditorMode.Edit && @@ -385,9 +399,9 @@ const useMouseEvents = ({ }, basic: { hidden: false, - label: editState.latestLabel || categories[0].name, + labelId: editState.latestLabelId || categories[0].id, status: EObjectStatus.Commited, - color: getAnnotColor(editState.latestLabel || categories[0].name), + color: getAnnotColor(editState.latestLabelId || categories[0].name), }, }) ) { diff --git a/packages/components/src/Annotator/hooks/useObjects.ts b/packages/components/src/Annotator/hooks/useObjects.ts index 365c448..17af253 100644 --- a/packages/components/src/Annotator/hooks/useObjects.ts +++ b/packages/components/src/Annotator/hooks/useObjects.ts @@ -1,10 +1,4 @@ -import { AnnotationType, EElementType, EObjectType } from '../constants'; -import { - getObjectType, - translateBoundingBoxToRect, - translatePointsToPointObjs, - getSegmentationPoints, -} from '../utils/compute'; +import { EElementType, EObjectType } from '../constants'; import { Updater } from 'use-immer'; import { BaseObject, @@ -12,12 +6,13 @@ import { EditState, EditorMode, IAnnotationObject, - EObjectStatus, DrawObject, + IEditingAttribute, + EObjectStatus, + VideoFramesData, } from '../type'; -import { rleToCanvas } from '../tools/useMask'; -import { useCallback } from 'react'; -import { generateUniformHexColor } from '../utils/color'; +import { useCallback, useMemo } from 'react'; +import { cloneDeep } from 'lodash'; interface IProps { mode: EditorMode; @@ -26,11 +21,16 @@ interface IProps { drawData: DrawData; setDrawData: Updater; setDrawDataWithHistory: Updater; - editState: EditState; + framesData?: VideoFramesData; + setFramesData?: Updater; setEditState: Updater; - clientSize: ISize; - naturalSize: ISize; - displayAnnotationType?: AnnotationType; + translateToObject?: (annotation: any, videoFrameCount?: number) => any; + judgeEditingAttribute?: ( + object: IAnnotationObject, + index: number, + ) => IEditingAttribute | undefined; + limitActiveObjectAfterCreate?: boolean; + updateHistory: (drawData: DrawData, theframesData?: VideoFramesData) => void; } const useObjects = ({ @@ -38,114 +38,51 @@ const useObjects = ({ drawData, setDrawData, setDrawDataWithHistory, + framesData, + setFramesData, setEditState, - clientSize, - naturalSize, - editState, - displayAnnotationType, + translateToObject, + judgeEditingAttribute, + limitActiveObjectAfterCreate, + updateHistory, }: IProps) => { - const translateAnnotationToObject = ( - annotation: DrawObject, - labelColors: Record, - ): IAnnotationObject => { - let { - categoryName, - boundingBox, - points, - lines, - pointNames, - pointColors, - segmentation, - mask, - alpha, - } = annotation; - - const color = editState.annotsDisplayOptions.colorByCategory - ? labelColors[categoryName || ''] || '#ffffff' - : generateUniformHexColor(); - - const newObj: IAnnotationObject = { - label: categoryName || '', - type: EObjectType.Rectangle, - hidden: false, - conf: annotation.conf || 1, - labelId: annotation.labelId, - compareResult: annotation.compareResult, - status: EObjectStatus.Commited, - color, - }; - - if (boundingBox) { - const rect = translateBoundingBoxToRect(boundingBox, clientSize); - Object.assign(newObj, { rect: { visible: true, ...rect } }); - } - - if ( - points && - points.length > 0 && - lines && - lines.length > 0 && - pointNames && - pointColors - ) { - const pointObjs: IElement[] = translatePointsToPointObjs( - points, - pointNames, - pointColors, - naturalSize, - clientSize, - ); - Object.assign(newObj, { - keypoints: { - points: pointObjs, - lines, - }, - }); - } - if (segmentation) { - const group = getSegmentationPoints( - segmentation, - naturalSize, - clientSize, - ); - const polygon: IElement = { - group, - visible: true, - }; - Object.assign(newObj, { polygon }); - } - - if (mask && mask.length) { - Object.assign(newObj, { - maskRle: mask, - maskCanvasElement: rleToCanvas(mask, naturalSize, color), - }); - } - - if (alpha) { - const alphaImageElement = new Image(); - alphaImageElement.src = alpha; - // alphaImageElement.crossOrigin = 'anonymous'; - Object.assign(newObj, { - alpha, - alphaImageElement, - }); - } - - newObj.type = getObjectType(newObj, displayAnnotationType); - return newObj; - }; - - const initObjectList = ( - annotations: DrawObject[], - labelColors: Record, - ) => { - setDrawDataWithHistory((s) => { - s.objectList = annotations - .map((annotation) => { - return translateAnnotationToObject(annotation, labelColors); - }) - .filter((annotation) => annotation.type !== EObjectType.Custom); + const initObjectList = (annotations: DrawObject[]) => { + setDrawData((s) => { + const newDrawData = cloneDeep(s); + const newFramesData = cloneDeep(framesData); + newDrawData.initialized = true; + if (newFramesData) { + // video + const objects = annotations.map( + (annotation) => + translateToObject?.(annotation, newFramesData.list.length) || {}, + ); + newFramesData.objects = objects + .filter((item) => !!item.objects) + .map((item) => item.objects); + newDrawData.classifications = objects + .filter((item) => !!item.classification) + .map((item) => item.classification); + newDrawData.objectList = newFramesData.objects.map( + (item) => item[newFramesData.activeIndex], + ); + setFramesData?.(newFramesData); + } else { + // image + const objects = annotations.map( + (annotation) => translateToObject?.(annotation) || {}, + ); + newDrawData.classifications = objects.filter( + (item) => item.type === EObjectType.Classification, + ); + newDrawData.objectList = objects.filter( + (item) => + item.type !== EObjectType.Custom && + item.type !== EObjectType.Classification, + ); + } + updateHistory(cloneDeep(newDrawData), cloneDeep(newFramesData)); + return newDrawData; }); }; @@ -153,47 +90,82 @@ const useObjects = ({ if (mode !== EditorMode.Edit) return; setDrawDataWithHistory((s) => { s.objectList.push(object); - s.creatingObject = { ...object }; - s.activeObjectIndex = notActive ? -1 : s.objectList.length - 1; + + 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, + ); + } + } }); }; - const removeObject = useCallback( - (index: number) => { - if (mode !== EditorMode.Edit || !drawData.objectList[index]) return; - setDrawDataWithHistory((s) => { - if (s.objectList[index]) { - s.objectList.splice(index, 1); - s.activeObjectIndex = -1; - s.creatingObject = undefined; - } - }); - setEditState((s) => { - s.focusObjectIndex = -1; - s.focusEleIndex = -1; - s.focusEleType = EElementType.Rect; - }); - }, - [mode, drawData.objectList], - ); + const removeObject = (index: number) => { + if (mode !== EditorMode.Edit || !drawData.objectList[index]) return; + setEditState((s) => { + s.focusObjectIndex = -1; + s.focusEleIndex = -1; + s.focusEleType = EElementType.Rect; + }); + + const newFramesData = cloneDeep(framesData); + const newDrawData = cloneDeep(drawData); + if (newFramesData && newFramesData.objects[index]) { + newFramesData.objects.splice(index, 1); + setFramesData?.(newFramesData); + } + if (newDrawData.objectList[index]) { + newDrawData.objectList.splice(index, 1); + newDrawData.activeObjectIndex = -1; + newDrawData.creatingObject = undefined; + newDrawData.editingAttribute = undefined; + } + setDrawData(newDrawData); + updateHistory(cloneDeep(newDrawData), cloneDeep(newFramesData)); + }; const removeAllObjects = useCallback(() => { if (mode !== EditorMode.Edit) return; - setDrawDataWithHistory((s) => { - s.objectList = []; - s.creatingObject = undefined; - s.prompt = {}; - }); setEditState((s) => { s.focusObjectIndex = -1; s.focusEleIndex = -1; s.focusEleType = EElementType.Rect; }); + + const newFramesData = cloneDeep(framesData); + const newDrawData = cloneDeep(drawData); + if (newFramesData) { + newFramesData.objects = []; + setFramesData?.(newFramesData); + } + newDrawData.objectList = []; + newDrawData.activeObjectIndex = -1; + newDrawData.creatingObject = undefined; + newDrawData.editingAttribute = undefined; + setDrawData(newDrawData); + updateHistory(cloneDeep(newDrawData), cloneDeep(newFramesData)); }, [mode]); const updateObject = (object: IAnnotationObject, index: number) => { if (mode !== EditorMode.Edit || !drawData.objectList[index]) return; setDrawDataWithHistory((s) => { + // Change label & Show attribut editor + if ( + object.labelId !== s.objectList[index].labelId && + judgeEditingAttribute + ) { + s.editingAttribute = judgeEditingAttribute(object, index); + } + s.objectList[index] = object; if (s.creatingObject && s.activeObjectIndex === index) { s.creatingObject = { ...object }; @@ -232,6 +204,22 @@ const useObjects = ({ }); }; + const commitedObjects = useMemo(() => { + return drawData.objectList.filter((obj) => { + return obj.status === EObjectStatus.Commited; + }); + }, [drawData.isBatchEditing, drawData.objectList]); + + const currObject = useMemo(() => { + return ( + drawData.objectList[drawData.activeObjectIndex] || drawData.creatingObject + ); + }, [ + drawData.objectList, + drawData.activeObjectIndex, + drawData.creatingObject, + ]); + return { initObjectList, addObject, @@ -241,6 +229,8 @@ const useObjects = ({ updateAllObject, updateObjectWithoutHistory, updateAllObjectWithoutHistory, + commitedObjects, + currObject, }; }; diff --git a/packages/components/src/Annotator/hooks/useShortcuts.ts b/packages/components/src/Annotator/hooks/useShortcuts.ts index 097834f..b40ce9a 100644 --- a/packages/components/src/Annotator/hooks/useShortcuts.ts +++ b/packages/components/src/Annotator/hooks/useShortcuts.ts @@ -2,18 +2,25 @@ import { Updater } from 'use-immer'; import { useKeyPress } from 'ahooks'; import { EObjectType } from '../constants'; import { EDITOR_SHORTCUTS, EShortcuts } from '../constants/shortcuts'; -import { DrawData, EditState, EditorMode, IAnnotationObject } from '../type'; +import { + Category, + DrawData, + EditState, + EditorMode, + IAnnotationObject, +} from '../type'; interface IProps { visible: boolean; mode: EditorMode; drawData: DrawData; + categories: Category[]; isMousePress: boolean; setDrawData: Updater; setEditState: Updater; - onSaveAnnotations: (drawData: DrawData) => Promise; - onAccept: () => void; - onReject: () => void; + onSaveAnnotations?: () => void; + onAcceptAnnotations?: () => void; + onRejectAnnotations?: () => void; onChangeObjectHidden: (index: number, hidden: boolean) => void; onChangeCategoryHidden: (category: string, hidden: boolean) => void; removeObject: (index: number) => void; @@ -24,12 +31,13 @@ const useShortcuts = ({ visible, mode, drawData, + categories, isMousePress, setDrawData, setEditState, onSaveAnnotations, - onAccept, - onReject, + onAcceptAnnotations, + onRejectAnnotations, onChangeObjectHidden, onChangeCategoryHidden, removeObject, @@ -41,7 +49,7 @@ const useShortcuts = ({ (event: KeyboardEvent) => { event.preventDefault(); if (mode === EditorMode.Edit) { - onSaveAnnotations(drawData); + onSaveAnnotations?.(); } }, { @@ -54,7 +62,7 @@ const useShortcuts = ({ EDITOR_SHORTCUTS[EShortcuts.Accept].shortcut, (event: KeyboardEvent) => { event.preventDefault(); - onAccept(); + onAcceptAnnotations?.(); }, { exactMatch: true, @@ -66,7 +74,7 @@ const useShortcuts = ({ EDITOR_SHORTCUTS[EShortcuts.Reject].shortcut, (event: KeyboardEvent) => { event.preventDefault(); - onReject(); + onRejectAnnotations?.(); }, { exactMatch: true, @@ -149,8 +157,10 @@ const useShortcuts = ({ (event) => { if (drawData.activeObjectIndex < 0) return; event.preventDefault(); - const { label, hidden } = drawData.objectList[drawData.activeObjectIndex]; - onChangeCategoryHidden(label, !hidden); + const { labelId, hidden } = + drawData.objectList[drawData.activeObjectIndex]; + const labelName = categories.find((c) => c.id === labelId)?.name || ''; + onChangeCategoryHidden(labelName, !hidden); }, { exactMatch: true, @@ -209,14 +219,14 @@ const useShortcuts = ({ drawData.creatingObject && drawData.creatingObject.type === EObjectType.Polygon ) { - const { polygon, type, hidden, label, status, color } = + const { polygon, type, hidden, labelId, status, color } = drawData.creatingObject!; if (polygon && polygon.group && polygon.group[0].length > 2) { const newObject: IAnnotationObject = { polygon, type, hidden, - label, + labelId, status, color, }; diff --git a/packages/components/src/Annotator/hooks/useSubtools.tsx b/packages/components/src/Annotator/hooks/useSubtools.tsx new file mode 100644 index 0000000..cb5a92b --- /dev/null +++ b/packages/components/src/Annotator/hooks/useSubtools.tsx @@ -0,0 +1,281 @@ +import { TShortcutItem } from '../constants/shortcuts'; +import { useLocale } from 'dds-utils/locale'; +import { + EBasicToolItem, + EnumModelType, + EObjectType, + ESubToolItem, +} from '../constants'; +import Icon from '@ant-design/icons'; +import { ReactComponent as PenAddIcon } from '../assets/pen-add.svg'; +import { ReactComponent as PenEraseIcon } from '../assets/pen-erase.svg'; +import { ReactComponent as BrushAddIcon } from '../assets/brush-add.svg'; +import { ReactComponent as BrushEraseIcon } from '../assets/brush-erase.svg'; +import { ReactComponent as MagicBoxIcon } from '../assets/magic-box.svg'; +import { ReactComponent as ClickIcon } from '../assets/magic-click.svg'; +import { ReactComponent as EdgeStitchIcon } from '../assets/edge-stitch.svg'; +import { ReactComponent as SegmentEverythingIcon } from '../assets/segment-everything.svg'; +import { ReactComponent as StrokeIcon } from '../assets/magic-brush.svg'; +import { ReactComponent as AddPromptIcon } from '../assets/add-prompt.svg'; +import { ReactComponent as RemovePromptIcon } from '../assets/remove-prompt.svg'; +import { useMemo } from 'react'; +import { DrawData } from '../type'; +import { Slider } from 'antd'; + +export type TToolItem = { + key: T; + name: string; + shortcut?: TShortcutItem; + icon: JSX.Element; + available: boolean; + description?: string; + withSize?: boolean; + withCustomElement?: boolean; +}; + +export type TSubtoolOptions = { + basicTools: TToolItem[]; + smartTools: TToolItem[]; + customElement?: React.ReactNode; +}; + +interface IProps { + drawData: DrawData; + onChangePointResolution: (value: number, update?: boolean) => void; +} + +const useSubTools = ({ drawData, onChangePointResolution }: IProps) => { + const { localeText } = useLocale(); + + const isSegEverythingAvailable = useMemo(() => { + return ( + (drawData.objectList.length === 0 && !drawData.creatingObject) || + drawData.isBatchEditing + ); + }, [drawData.objectList, drawData.creatingObject, drawData.isBatchEditing]); + + const isManualAvailable = useMemo(() => { + return ( + !drawData.prompt.sessionId && + !( + drawData.prompt.promptsQueue && drawData.prompt.promptsQueue.length > 0 + ) && + !drawData.isBatchEditing + ); + }, [drawData.prompt, drawData.isBatchEditing]); + + const basicMaskTools: TToolItem[] = useMemo( + () => [ + { + key: ESubToolItem.PenAdd, + name: localeText('DDSAnnotator.subtoolbar.mask.penAdd'), + icon: , + available: isManualAvailable, + }, + { + key: ESubToolItem.PenErase, + name: localeText('DDSAnnotator.subtoolbar.mask.penErase'), + icon: , + available: isManualAvailable && !!drawData.creatingObject, + }, + { + key: ESubToolItem.BrushAdd, + name: localeText('DDSAnnotator.subtoolbar.mask.brushAdd'), + icon: , + available: isManualAvailable, + withSize: true, + }, + { + key: ESubToolItem.BrushErase, + name: localeText('DDSAnnotator.subtoolbar.mask.brushErase'), + icon: , + available: isManualAvailable && !!drawData.creatingObject, + withSize: true, + }, + ], + [isManualAvailable, drawData.creatingObject], + ); + + const smartMaskTools: TToolItem[] = useMemo(() => { + return [ + { + key: ESubToolItem.AutoSegmentByBox, + name: localeText('DDSAnnotator.subtoolbar.mask.box'), + icon: , + available: true, + }, + { + key: ESubToolItem.AutoSegmentByStroke, + name: localeText('DDSAnnotator.subtoolbar.mask.stroke'), + icon: , + available: true, + withSize: true, + }, + { + key: ESubToolItem.AutoSegmentByClick, + name: localeText('DDSAnnotator.subtoolbar.mask.click'), + icon: , + available: true, + }, + { + key: ESubToolItem.AutoEdgeStitching, + name: localeText('DDSAnnotator.subtoolbar.mask.edgeStitch'), + icon: , + available: true, + withSize: true, + }, + { + key: ESubToolItem.AutoSegmentEverything, + name: localeText('DDSAnnotator.subtoolbar.mask.sam'), + icon: , + available: isSegEverythingAvailable, + description: isSegEverythingAvailable + ? localeText('DDSAnnotator.subtoolbar.mask.sam.desc') + : localeText('DDSAnnotator.subtoolbar.mask.sam.notAllow'), + }, + ]; + }, [isSegEverythingAvailable]); + + const smartPolygonTools: TToolItem[] = useMemo(() => { + return [ + { + key: ESubToolItem.AutoSegmentByBox, + name: localeText('DDSAnnotator.subtoolbar.mask.box'), + icon: , + available: true, + withCustomElement: true, + }, + { + key: ESubToolItem.AutoSegmentByStroke, + name: localeText('DDSAnnotator.subtoolbar.mask.stroke'), + icon: , + available: true, + withSize: true, + withCustomElement: true, + }, + { + key: ESubToolItem.AutoSegmentByClick, + name: localeText('DDSAnnotator.subtoolbar.mask.click'), + icon: , + available: true, + withCustomElement: true, + }, + ]; + }, []); + + const ivpTools: TToolItem[] = useMemo(() => { + return [ + { + key: ESubToolItem.PositiveVisualPrompt, + name: localeText('DDSAnnotator.subtoolbar.visualprompt.positive'), + icon: , + available: true, + }, + { + key: ESubToolItem.NegativeVisualPrompt, + name: localeText('DDSAnnotator.subtoolbar.visualprompt.negative'), + icon: , + available: true, + }, + ]; + }, []); + + const showSubTools = useMemo(() => { + if (drawData.selectedTool === EBasicToolItem.Mask) return true; + + if ( + drawData.selectedTool === EBasicToolItem.Polygon && + drawData.AIAnnotation + ) + return true; + + if ( + drawData.selectedTool === EBasicToolItem.Rectangle && + drawData.AIAnnotation && + drawData.selectedModel === EnumModelType.IVP + ) + return true; + + if (drawData.creatingObject?.type === EObjectType.Mask) return true; + + if ( + drawData.creatingObject?.type === EObjectType.Polygon && + drawData.AIAnnotation + ) + return true; + + return false; + }, [ + drawData.selectedTool, + drawData.creatingObject, + drawData.AIAnnotation, + drawData.selectedModel, + ]); + + const currSubTools: TSubtoolOptions = useMemo(() => { + if ( + drawData.selectedTool === EBasicToolItem.Mask || + drawData.creatingObject?.type === EObjectType.Mask + ) { + return { + basicTools: basicMaskTools, + smartTools: smartMaskTools, + }; + } else if ( + drawData.selectedTool === EBasicToolItem.Polygon || + drawData.creatingObject?.type === EObjectType.Polygon + ) { + return { + basicTools: [], + smartTools: smartPolygonTools, + customElement: ( + <> +
+ {localeText('DDSAnnotator.subtoolbar.polygon.pointResolution')} +
+
+ onChangePointResolution(value, true)} + /> +
+ + ), + }; + } else if ( + drawData.selectedTool === EBasicToolItem.Rectangle && + drawData.AIAnnotation && + drawData.selectedModel === EnumModelType.IVP + ) { + return { + basicTools: [], + smartTools: ivpTools, + }; + } + return { + basicTools: [], + smartTools: [], + }; + }, [ + drawData.selectedTool, + drawData.creatingObject, + drawData.AIAnnotation, + drawData.selectedModel, + basicMaskTools, + smartMaskTools, + smartPolygonTools, + ivpTools, + drawData.pointResolution, + ]); + + return { + showSubTools, + currSubTools, + }; +}; + +export default useSubTools; diff --git a/packages/components/src/Annotator/hooks/useToolActions.ts b/packages/components/src/Annotator/hooks/useToolActions.ts index 639f46c..a53914e 100644 --- a/packages/components/src/Annotator/hooks/useToolActions.ts +++ b/packages/components/src/Annotator/hooks/useToolActions.ts @@ -1,7 +1,12 @@ import { useCallback } from 'react'; import { Updater } from 'use-immer'; import { Modal, message } from 'antd'; -import { EBasicToolItem, EObjectType, ESubToolItem } from '../constants'; +import { + EBasicToolItem, + EnumModelType, + EObjectType, + ESubToolItem, +} from '../constants'; import { DrawData, EditState, @@ -14,13 +19,15 @@ import { import { objectToRle, rleToCanvas } from '../tools/useMask'; import { useLocale } from 'dds-utils/locale'; import { cloneDeep } from 'lodash'; +import { OnAiAnnotationFunc } from './useActions'; interface IProps { mode: EditorMode; drawData: DrawData; + manualMode?: boolean; setDrawData: Updater; setDrawDataWithHistory: Updater; - setAiLabels: (labels: string[]) => void; + setAiLabels: (labels?: string) => void; editState: EditState; setEditState: Updater; getAnnotColor: (category: string) => string; @@ -30,13 +37,14 @@ interface IProps { object: IAnnotationObject, notActive?: boolean | undefined, ) => void; - removeObject: (index: number) => void; updateObject: (object: IAnnotationObject, index: number) => void; updateAllObject: (objectList: IAnnotationObject[]) => void; + onAiAnnotation: OnAiAnnotationFunc; } const useToolActions = ({ mode, + manualMode, drawData, setDrawData, setDrawDataWithHistory, @@ -46,52 +54,23 @@ const useToolActions = ({ clientSize, naturalSize, addObject, - removeObject, updateObject, updateAllObject, getAnnotColor, + onAiAnnotation, }: IProps) => { const { localeText } = useLocale(); - const onDeleteCurrObject = useCallback(() => { - if ( - drawData.isBatchEditing && - drawData.objectList[drawData.activeObjectIndex]?.status !== - EObjectStatus.Commited - ) { - setDrawData((s) => { - s.objectList[s.activeObjectIndex].status = EObjectStatus.Unchecked; - s.creatingObject = undefined; - s.prompt = {}; - s.activeObjectIndex = -1; - }); - return; - } - - if (drawData.activeObjectIndex > -1) { - removeObject(drawData.activeObjectIndex); - } - setDrawData((s) => { - s.creatingObject = undefined; - s.prompt = {}; - s.activeObjectIndex = -1; - }); - }, [ - drawData.isBatchEditing, - drawData.objectList, - drawData.activeObjectIndex, - ]); - // TODO const getColorForMaskObj = useCallback( - (label: string) => { + (labelId: string) => { if (editState.annotsDisplayOptions.colorByCategory) { - return getAnnotColor(label); + return getAnnotColor(labelId); } if (drawData.activeObjectIndex > -1) { return drawData.objectList[drawData.activeObjectIndex].color; } - return drawData.creatingObject?.color || getAnnotColor(label); + return drawData.creatingObject?.color || getAnnotColor(labelId); }, [ editState.annotsDisplayOptions.colorByCategory, @@ -102,8 +81,37 @@ const useToolActions = ({ ], ); + const onChangeObjectLabel = (labelId: string) => { + const editObject = drawData.objectList[drawData.activeObjectIndex]; + if (editObject) { + const newObject = { + ...drawData.objectList[drawData.activeObjectIndex], + attributes: undefined, + }; + newObject.labelId = labelId; + if (editState.annotsDisplayOptions.colorByCategory) { + newObject.color = getAnnotColor(labelId); + } + if (newObject.type === EObjectType.Mask && newObject.maskRle) { + newObject.maskCanvasElement = rleToCanvas( + newObject.maskRle, + naturalSize, + newObject.color, + ); + } + // batch editing set conf to 1 + if (drawData.isBatchEditing) { + newObject.conf = 1; + } + updateObject(newObject, drawData.activeObjectIndex); + } + setEditState((s) => { + s.latestLabelId = labelId; + }); + }; + const onFinishCurrCreate = useCallback( - (label: string) => { + (labelId: string) => { if (drawData.creatingObject?.type === EObjectType.Mask) { const maskRle = objectToRle( clientSize, @@ -112,10 +120,11 @@ const useToolActions = ({ drawData.creatingObject?.maskCanvasElement, ); if (maskRle && maskRle.length > 0) { - const color = getColorForMaskObj(label); + const color = getColorForMaskObj(labelId); const newObject = { + ...drawData.objectList[drawData.activeObjectIndex], type: EObjectType.Mask, - label, + labelId, hidden: false, maskRle, maskCanvasElement: rleToCanvas(maskRle, naturalSize, color), @@ -139,13 +148,32 @@ const useToolActions = ({ localeText('DDSAnnotator.anno.mask.translateToRleError'), ); } + } else if (drawData.creatingObject?.type === EObjectType.Polygon) { + const color = getAnnotColor(labelId); + const newObject = { + ...drawData.objectList[drawData.activeObjectIndex], + type: EObjectType.Polygon, + labelId, + hidden: false, + polygon: drawData.creatingObject?.polygon, + conf: 1, + status: EObjectStatus.Commited, + color, + }; + if (drawData.activeObjectIndex > -1) { + // edit existing polygon + updateObject(newObject, drawData.activeObjectIndex); + } else { + // add new polygon + addObject(newObject, true); + } } else { const newObject = { ...drawData.objectList[drawData.activeObjectIndex], }; - newObject.label = label; + newObject.labelId = labelId; if (editState.annotsDisplayOptions.colorByCategory) { - newObject.color = getAnnotColor(label); + newObject.color = getAnnotColor(labelId); } // batch editing set conf to 1 if (drawData.isBatchEditing) { @@ -157,12 +185,19 @@ const useToolActions = ({ s.creatingObject = undefined; s.prompt = {}; s.activeObjectIndex = -1; + if ( + [ESubToolItem.PenErase, ESubToolItem.BrushErase].includes( + s.selectedSubTool, + ) + ) { + s.selectedSubTool = ESubToolItem.PenAdd; + } }); setEditState((s) => { - s.latestLabel = label; + s.latestLabelId = labelId; }); }, - [drawData.creatingObject], + [drawData.creatingObject, drawData.activeObjectIndex, drawData.objectList], ); const onCloseAnnotationEditor = useCallback(() => { @@ -181,7 +216,7 @@ const useToolActions = ({ .map((obj) => { obj.status = EObjectStatus.Commited; if (obj.type !== EObjectType.Mask) { - obj.color = getAnnotColor(obj.label); + obj.color = getAnnotColor(obj.labelId); } return obj; }); @@ -189,8 +224,9 @@ const useToolActions = ({ s.isBatchEditing = false; s.activeObjectIndex = -1; s.creatingObject = undefined; + s.prompt = {}; }); - setAiLabels([]); + setAiLabels(undefined); }, [drawData.objectList]); const onAbortBatchObjects = useCallback(() => { @@ -202,6 +238,7 @@ const useToolActions = ({ s.isBatchEditing = false; s.activeObjectIndex = -1; s.creatingObject = undefined; + s.prompt = {}; }); }, [drawData.objectList]); @@ -209,7 +246,7 @@ const useToolActions = ({ (tool: EBasicToolItem) => { if ( mode !== EditorMode.Edit || - tool === drawData.selectedTool || + (tool === drawData.selectedTool && drawData.AIAnnotation) || drawData.isBatchEditing ) return; @@ -219,12 +256,27 @@ const useToolActions = ({ s.selectedSubTool = s.AIAnnotation ? ESubToolItem.AutoSegmentByBox : ESubToolItem.PenAdd; + } else if (tool === EBasicToolItem.Polygon) { + s.selectedSubTool = ESubToolItem.AutoSegmentByBox; + } else if ( + tool === EBasicToolItem.Rectangle && + s.selectedModel === EnumModelType.IVP + ) { + s.selectedSubTool = ESubToolItem.PositiveVisualPrompt; } + s.AIAnnotation = false; s.activeObjectIndex = -1; s.creatingObject = undefined; + s.editingAttribute = undefined; + s.prompt = {}; }); }, - [mode, drawData.selectedTool, drawData.isBatchEditing], + [ + mode, + drawData.selectedTool, + drawData.isBatchEditing, + drawData.selectedModel, + ], ); const selectSubTool = useCallback( @@ -232,9 +284,11 @@ const useToolActions = ({ if ( mode !== EditorMode.Edit || tool === drawData.selectedSubTool || - drawData.isBatchEditing + (drawData.selectedTool === EBasicToolItem.Mask && + drawData.isBatchEditing) ) return; + setDrawData((s) => { s.selectedSubTool = tool; }); @@ -242,7 +296,7 @@ const useToolActions = ({ // save unfinished mask object if (tool === ESubToolItem.AutoEdgeStitching && drawData.creatingObject) { onFinishCurrCreate( - drawData.creatingObject.label || editState.latestLabel || '', + drawData.creatingObject.labelId || editState.latestLabelId || '', ); } }, @@ -260,7 +314,7 @@ const useToolActions = ({ ); const onExitAIAnnotation = useCallback(() => { - setDrawData((s) => { + setDrawDataWithHistory((s) => { s.objectList = s.objectList.filter( (obj) => obj.status === EObjectStatus.Commited, ); @@ -281,6 +335,40 @@ const useToolActions = ({ [mode], ); + const setPointResolution = useCallback( + (value: number) => { + if (mode !== EditorMode.Edit) return; + setDrawData((s) => { + s.pointResolution = value; + }); + }, + [mode], + ); + + const onChangePointResolution = useCallback( + (value: number, update?: boolean) => { + setPointResolution(value); + if ( + update && + drawData.creatingObject && + drawData.creatingObject.type === EObjectType.Polygon && + drawData.prompt.promptsQueue && + drawData.prompt.promptsQueue.length > 0 + ) { + const updateDrawData: DrawData = { + ...drawData, + pointResolution: value, + }; + onAiAnnotation({ + type: EObjectType.Polygon, + drawData: updateDrawData, + promptsQueue: drawData.prompt.promptsQueue, + }); + } + }, + [drawData.creatingObject, drawData.prompt], + ); + const displayAIModeUnavailableModal = () => { Modal.info({ centered: true, @@ -300,7 +388,8 @@ const useToolActions = ({ displayAIModeUnavailableModal(); return; } - if (mode !== EditorMode.Edit || drawData.isBatchEditing) return; + if (mode !== EditorMode.Edit || drawData.isBatchEditing || manualMode) + return; setDrawData((s) => { s.AIAnnotation = active; }); @@ -308,31 +397,6 @@ const useToolActions = ({ [mode, drawData.isBatchEditing], ); - const onSaveAIPolygon = useCallback(() => { - const label = drawData.creatingObject?.label || ''; - const color = getAnnotColor(label); - addObject({ - type: EObjectType.Polygon, - polygon: drawData.creatingObject?.polygon, - label, - color, - hidden: false, - status: EObjectStatus.Commited, - }); - setDrawData((s) => { - s.activeObjectIndex = s.objectList.length - 1; - s.prompt = {}; - }); - }, [drawData.creatingObject]); - - const onCancelAIPolygon = useCallback(() => { - setDrawData((s) => { - s.creatingObject = undefined; - s.activeObjectIndex = -1; - s.prompt = {}; - }); - }, []); - const onChangeSkeletonConf = useCallback( (range: [number, number]) => { setDrawDataWithHistory((s) => { @@ -404,7 +468,7 @@ const useToolActions = ({ const onChangeColorMode = useCallback(() => { if (!drawData.objectList || !drawData.objectList.length) return; const newObjectList = cloneDeep(drawData.objectList).map((item) => { - const color = getAnnotColor(item.label); + const color = getAnnotColor(item.labelId); if ( item.type === EObjectType.Mask && item.maskRle && @@ -421,8 +485,20 @@ const useToolActions = ({ updateAllObject(newObjectList); }, [drawData.objectList, getAnnotColor]); + const onSelectModel = useCallback((type: EnumModelType) => { + setDrawData((s) => { + s.selectedModel = type; + if (type === EnumModelType.IVP) { + s.selectedSubTool = ESubToolItem.PositiveVisualPrompt; + } else { + // TODO + s.selectedSubTool = ESubToolItem.PenAdd; + } + }); + }, []); + return { - onDeleteCurrObject, + onChangeObjectLabel, onFinishCurrCreate, onCloseAnnotationEditor, onAcceptValidObjects, @@ -434,13 +510,13 @@ const useToolActions = ({ setBrushSize, activeAIAnnotation, displayAIModeUnavailableModal, - onSaveAIPolygon, - onCancelAIPolygon, onChangeSkeletonConf, onChangeLimitConf, onChangeImageDisplayOpts, onChangeAnnotsDisplayOpts, onChangeColorMode, + onChangePointResolution, + onSelectModel, }; }; diff --git a/packages/components/src/Annotator/hooks/useTopTools.tsx b/packages/components/src/Annotator/hooks/useTopTools.tsx new file mode 100644 index 0000000..e907a86 --- /dev/null +++ b/packages/components/src/Annotator/hooks/useTopTools.tsx @@ -0,0 +1,279 @@ +import { useMemo } from 'react'; +import { Button, Tooltip } from 'antd'; +import Icon, { ArrowLeftOutlined } from '@ant-design/icons'; +import { ReactComponent as LogoIcon } from '../assets/logo.svg'; +import { ReactComponent as DocsIcon } from '../assets/docs.svg'; +import { + EBasicToolItem, + EnumModelType, + ESubToolItem, + TOOL_MODELS_MAP, +} from '../constants'; +import { + DrawData, + EditState, + EditorMode, + IImageDisplayOptions, + IAnnotsDisplayOptions, + Category, +} from '../type'; +import { useLocale } from 'dds-utils/locale'; +import DisplaySettings from '../components/DisplaySettings'; +import { ShortcutsInfo } from '../components/ShortcutsInfo'; +import EditorStatus from '../components/EditorStatus'; +import TopTools from '../components/TopTools'; +import LabelSelector from '../components/LabelSelector'; +import ModelSelector from '../components/ModelSelector'; +import SubToolBar from '../components/SubToolBar'; +import { TSubtoolOptions } from './useSubtools'; + +interface IProps { + isOldMode?: boolean; + isSeperate?: boolean; + mode: EditorMode; + fileName?: string; + drawData: DrawData; + editState: EditState; + hideTopBarActions?: boolean; + titleElements?: React.ReactElement[]; + actionElements?: React.ReactElement[]; + enableReviewerModify?: boolean; + labelOptions: Category[]; + showSubTools: boolean; + currSubTools: TSubtoolOptions; + topBarCenterElement?: React.ReactElement | null; + labelColors?: Record; + selectSubTool: (tool: ESubToolItem) => void; + onSelectModel: (type: EnumModelType) => void; + setBrushSize: (size: number) => void; + activeAIAnnotation: (active: boolean) => void; + onChangeImageDisplayOpts: (value: IImageDisplayOptions) => void; + onChangeAnnotsDisplayOpts: (value: IAnnotsDisplayOptions) => void; + onChangeObjectLabel: (labelId: string) => void; + onCreateCategory: (name: string) => void; + onSaveAnnotations: () => Promise; + onCommitAnnotations: () => Promise; + onRejectAnnotations: () => Promise; + onAcceptAnnotations: () => Promise; + onModifyAnnotations: () => Promise; + onCancelAnnotations: () => Promise; +} + +const useTopTools = ({ + isOldMode, + isSeperate, + mode, + fileName, + drawData, + editState, + hideTopBarActions, + titleElements, + actionElements, + enableReviewerModify, + labelOptions, + labelColors, + showSubTools, + currSubTools, + topBarCenterElement, + selectSubTool, + setBrushSize, + activeAIAnnotation, + onChangeImageDisplayOpts, + onChangeAnnotsDisplayOpts, + onChangeObjectLabel, + onCreateCategory, + onSaveAnnotations, + onCommitAnnotations, + onRejectAnnotations, + onAcceptAnnotations, + onModifyAnnotations, + onCancelAnnotations, + onSelectModel, +}: IProps) => { + const { localeText } = useLocale(); + const jumpDocs = () => { + window.open('https://docs.deepdataspace.com'); + }; + + const supportActions = useMemo(() => { + const actions = actionElements + ? actionElements.map((item) => ({ customElement: item })) + : []; + if (hideTopBarActions) return actions; + if (mode === EditorMode.Review) { + actions.push( + ...[ + { + customElement: ( + + ), + }, + ...(isOldMode || !enableReviewerModify + ? [] + : [ + { + customElement: ( + + ), + }, + ]), + { + customElement: ( + + ), + }, + ], + ); + } + if (mode === EditorMode.Edit && !isSeperate) { + actions.push({ + customElement: ( + + ), + }); + if (!isOldMode) { + actions.push({ + customElement: ( + + ), + }); + } + } + actions.unshift({ + customElement: ( + <> + {mode === EditorMode.Edit && ( +
+ + + + +
+ )} + + + + ), + }); + return actions; + }, [ + mode, + isOldMode, + enableReviewerModify, + hideTopBarActions, + onSaveAnnotations, + onCommitAnnotations, + onCancelAnnotations, + onRejectAnnotations, + onAcceptAnnotations, + onModifyAnnotations, + ]); + + const leftTools = () => { + const actions = []; + if (titleElements) { + actions.push(...titleElements.map((item) => ({ customElement: item }))); + } else { + if (isSeperate || mode === EditorMode.Edit) { + actions.push({ + customElement: ( + + + + ), + }); + } else { + actions.push({ + title: localeText('DDSAnnotator.exit'), + icon: , + onClick: () => onCancelAnnotations(), + }); + } + if (mode !== EditorMode.Edit && fileName) { + actions.push({ customElement: fileName }); + } + } + if ( + mode === EditorMode.Edit && + TOOL_MODELS_MAP[drawData.selectedTool] && + TOOL_MODELS_MAP[drawData.selectedTool].length > 1 && + drawData.AIAnnotation && + drawData.selectedModel + ) { + actions.push({ + customElement: ( + + ), + }); + } + if ( + mode === EditorMode.Edit && + (drawData.objectList[drawData.activeObjectIndex] || + drawData.selectedTool !== EBasicToolItem.Drag) + ) { + actions.push({ + customElement: ( + + ), + }); + } + if (mode === EditorMode.Edit && showSubTools) { + actions.push({ + customElement: ( + + ), + }); + } + return actions; + }; + + const topToolsBar = ( + + {topBarCenterElement} + + ); + + return { + topToolsBar, + }; +}; + +export default useTopTools; diff --git a/packages/components/src/Annotator/hooks/useTranslate.ts b/packages/components/src/Annotator/hooks/useTranslate.ts new file mode 100644 index 0000000..caecb9f --- /dev/null +++ b/packages/components/src/Annotator/hooks/useTranslate.ts @@ -0,0 +1,403 @@ +import { + BODY_TEMPLATE, + ELabelType, + EObjectType, + KEYPOINTS_VISIBLE_TYPE, +} from '../constants'; +import { + getObjectType, + translateBoundingBoxToRect, + translatePointsToPointObjs, + translatePointObjsToPointAttrs, + getSegmentationPoints, + translateRectToBoundingBox, + translatePolygonsToSegmentation, + translatePointsToRect, + translatePointGroupsToPoints, + translateRectToPointsArray, + translatePolygonsToPointsArrayGroup, + newTranslatePointsToPointObjs, + newTranslatePointObjsToPointAttrs, + getCanvasPoint, + getNaturalPoint, +} from '../utils/compute'; +import { + IAnnotationObject, + EObjectStatus, + DrawObject, + Category, + BaseObject, +} from '../type'; +import { rleToCanvas } from '../tools/useMask'; +import { cloneDeep } from 'lodash'; + +interface IProps { + isOldMode?: boolean; + clientSize: ISize; + naturalSize: ISize; + categories: Category[]; + getAnnotColor: (category: string) => string; +} + +const useTranslate = ({ + isOldMode, + clientSize, + naturalSize, + categories, + getAnnotColor, +}: IProps) => { + /** + * Use for annotator & old project + * @param annotation + * @returns + */ + const translateAnnotationToObject = ( + annotation: DrawObject, + ): IAnnotationObject => { + let { + categoryId, + boundingBox, + points, + lines, + pointNames, + pointColors, + segmentation, + mask, + alpha, + point, + } = annotation; + + const color = getAnnotColor(categoryId || ''); + const newObj: IAnnotationObject = { + labelId: categoryId || '', + type: EObjectType.Rectangle, + hidden: false, + conf: annotation.conf || 1, + customStyles: annotation.customStyles, + status: EObjectStatus.Commited, + color, + }; + + if (boundingBox) { + const rect = translateBoundingBoxToRect(boundingBox, clientSize); + Object.assign(newObj, { rect: { visible: true, ...rect } }); + } + + if ( + points && + points.length > 0 && + lines && + lines.length > 0 && + pointNames && + pointColors + ) { + const pointObjs: IElement[] = translatePointsToPointObjs( + points, + pointNames, + pointColors, + naturalSize, + clientSize, + ); + Object.assign(newObj, { + keypoints: { + points: pointObjs, + lines, + }, + }); + } + if (segmentation) { + const group = getSegmentationPoints( + segmentation, + naturalSize, + clientSize, + ); + const polygon: IElement = { + group, + visible: true, + }; + Object.assign(newObj, { polygon }); + } + + if (mask && mask.length) { + Object.assign(newObj, { + maskRle: mask, + maskCanvasElement: rleToCanvas(mask, naturalSize, color), + }); + } + + if (alpha) { + const alphaImageElement = new Image(); + alphaImageElement.src = alpha; + // alphaImageElement.crossOrigin = 'anonymous'; + Object.assign(newObj, { + alpha, + alphaImageElement, + }); + } + + if (point) { + Object.assign(newObj, { + point: { + ...getCanvasPoint(point, naturalSize, clientSize), + visible: KEYPOINTS_VISIBLE_TYPE.labeledVisible, + }, + }); + } + + newObj.type = getObjectType(newObj); + return newObj; + }; + + /** + * Use for annotator & old project + * @param annotation + * @returns + */ + const translateObjectToAnnotation = (obj: IAnnotationObject): BaseObject => { + const { labelId, rect, keypoints, polygon, maskRle, point } = obj; + const labelName = + categories.find((item) => item.id === labelId)?.name || ''; + const annoObj = { + categoryId: labelId, + categoryName: labelName, + }; + if (rect) { + Object.assign(annoObj, { + boundingBox: translateRectToBoundingBox(rect, clientSize), + }); + } + if (keypoints) { + Object.assign(annoObj, { + lines: keypoints.lines, + ...translatePointObjsToPointAttrs( + keypoints.points, + naturalSize, + clientSize, + ), + }); + } + if (polygon) { + const segmentation = translatePolygonsToSegmentation( + polygon, + naturalSize, + clientSize, + ); + Object.assign(annoObj, { + segmentation, + }); + } + if (maskRle) { + Object.assign(annoObj, { + mask: maskRle, + }); + } + if (point) { + const { x, y } = getNaturalPoint( + [point.x, point.y], + naturalSize, + clientSize, + ); + Object.assign(annoObj, { + point: [x, y], + }); + } + return annoObj; + }; + + /** + * Use for new project + * @param label + * @returns + */ + const translateLabelToObject = ( + originLabel: { + labelId: string; + labelValue: any; + attributes?: (string | number | number[])[]; + }, + videoFrameCount?: number, + ) => { + const { labelId, labelValue } = originLabel; + const color = getAnnotColor(labelId); + const label = categories.find((item) => item.id === labelId); + // confirm format correct + const attributes = + label?.attributes?.map( + (_, index) => originLabel.attributes?.[index] || null, + ) || undefined; + const newObj: IAnnotationObject = { + labelId, + type: EObjectType.Custom, + hidden: false, + status: EObjectStatus.Commited, + color, + attributes, + }; + + const convertLabelValue = (newObj: IAnnotationObject, labelValue: any) => { + switch (label?.labelType) { + case ELabelType.Rectangle: { + const rect = translatePointsToRect( + labelValue, + naturalSize, + clientSize, + ); + Object.assign(newObj, { + rect: { visible: true, ...rect }, + type: EObjectType.Rectangle, + }); + break; + } + case ELabelType.Polygon: { + const group = translatePointGroupsToPoints( + labelValue, + naturalSize, + clientSize, + ); + const polygon: IElement = { + group, + visible: true, + }; + Object.assign(newObj, { + polygon, + type: EObjectType.Polygon, + }); + break; + } + case ELabelType.Skeleton: { + const pointObjs: IElement[] = newTranslatePointsToPointObjs( + labelValue, + BODY_TEMPLATE.pointNames, + BODY_TEMPLATE.pointColors, + naturalSize, + clientSize, + ); + Object.assign(newObj, { + keypoints: { + points: pointObjs, + lines: BODY_TEMPLATE.lines, + }, + type: EObjectType.Skeleton, + }); + break; + } + case ELabelType.Mask: { + Object.assign(newObj, { + maskRle: labelValue, + maskCanvasElement: rleToCanvas(labelValue, naturalSize, color), + type: EObjectType.Mask, + }); + break; + } + case ELabelType.Classification: { + Object.assign(newObj, { + labelValue, + type: EObjectType.Classification, + }); + break; + } + } + return newObj; + }; + + if (videoFrameCount && videoFrameCount > 0) { + if (label?.labelType === ELabelType.Classification) { + return { + classification: convertLabelValue(newObj, labelValue), + }; + } else { + const objects: any[] = new Array(videoFrameCount).fill(undefined); + let tempObj: any; + Object.keys(labelValue).forEach((key: string) => { + tempObj = convertLabelValue(cloneDeep(newObj), labelValue[key]); + objects[Number(key)] = { + ...tempObj, + frameEmpty: false, + }; + }); + return { + objects: objects.map( + (item) => + item || { + ...cloneDeep(tempObj), + frameEmpty: true, + }, + ), + }; + } + } + { + return convertLabelValue(newObj, labelValue); + } + }; + + /** + * Use for new project + * @param obj + * @returns + */ + const translateObjectToLabel = (obj: IAnnotationObject) => { + const { labelId, rect, keypoints, polygon, maskRle, attributes } = obj; + const label = categories.find((item) => item.id === labelId); + + const annoObj: any = { + labelId: labelId, + attributes: attributes || label?.attributes?.map(() => null) || [], + }; + switch (label?.labelType) { + case ELabelType.Rectangle: { + if (rect) { + annoObj.labelValue = translateRectToPointsArray( + rect, + clientSize, + naturalSize, + ); + } + break; + } + case ELabelType.Polygon: { + if (polygon) { + annoObj.labelValue = translatePolygonsToPointsArrayGroup( + polygon, + naturalSize, + clientSize, + ); + } + break; + } + case ELabelType.Skeleton: { + if (keypoints) { + const { points } = newTranslatePointObjsToPointAttrs( + keypoints.points, + naturalSize, + clientSize, + ); + annoObj.labelValue = points; + } + break; + } + case ELabelType.Mask: { + if (maskRle) { + annoObj.labelValue = maskRle; + } + break; + } + } + return annoObj; + }; + + return { + translateAnnotationToObject, + translateObjectToAnnotation, + translateLabelToObject, + translateObjectToLabel, + translateObject: isOldMode + ? translateObjectToAnnotation + : translateObjectToLabel, + translateToObject: isOldMode + ? translateAnnotationToObject + : translateLabelToObject, + }; +}; + +export default useTranslate; diff --git a/packages/components/src/Annotator/index.less b/packages/components/src/Annotator/index.less index 29876dd..5f1e56d 100644 --- a/packages/components/src/Annotator/index.less +++ b/packages/components/src/Annotator/index.less @@ -1,4 +1,30 @@ .dds-annotator { + &-loading { + position: fixed; + top: 0; + left: 0; + bottom: 0; + right: 0; + display: flex; + align-items: center; + justify-content: center; + background: rgba(255, 255, 255, 0.2); + z-index: 10001; + } + + &-logo { + margin-left: -5px; + width: 33px; + height: 33px; + cursor: pointer; + } + + &-logo-replace { + margin-left: -5px; + width: 33px; + height: 33px; + } + .edit-wrap { position: absolute; inset: 0; @@ -17,6 +43,22 @@ } } + &-qk-actions { + display: flex; + align-items: center; + justify-content: center; + gap: 18px; + + svg { + cursor: pointer; + fill: #fff; + + &:hover { + fill: @colorPrimary; + } + } + } + &-dropdown-options { display: flex; flex-direction: column; @@ -51,10 +93,10 @@ } .dds-annotator-editor { + position: relative; top: 0; left: 0; z-index: 100; - position: relative; width: 100%; height: 100vh; background-color: #000; @@ -69,11 +111,11 @@ .left-slider { position: relative; - width: 0; height: 100%; - background: #262626; - border-right: 2px solid #141414; - backdrop-filter: blur(12px); + background: #212121; + padding: 0; + border-radius: 0; + border-left: 1px solid black; overflow-y: scroll; overflow-x: hidden; z-index: 1; @@ -83,18 +125,60 @@ position: relative; flex: 1; height: 100%; + display: flex; + flex-direction: column; + overflow: hidden; + + .draw-area { + position: relative; + flex: 1; + width: 100%; + } } .right-slider { position: relative; width: 256px; + min-width: 256px; height: 100%; background: #262626; border-left: 2px solid #141414; backdrop-filter: blur(12px); - overflow-y: scroll; - overflow-x: hidden; + display: flex; + flex-direction: column; z-index: 1; + + .classifications { + max-height: 50%; + overflow-x: hidden; + overflow-y: scroll; + } + + .object-list { + flex: 1; + width: 100%; + overflow-y: scroll; + overflow-x: hidden; + } + } + } +} + +.dds-annotator-editor-light { + background-color: #f7f7f7; + + .dds-annnotator-toptools { + background-color: #f1f2f4; + border-bottom: 1px solid #f7f7f7; + + &-row { + &-icon { + color: #000; + + svg { + fill: #fff; + } + } } } } diff --git a/packages/components/src/Annotator/preview.tsx b/packages/components/src/Annotator/preview.tsx index 23dc36e..e26e049 100755 --- a/packages/components/src/Annotator/preview.tsx +++ b/packages/components/src/Annotator/preview.tsx @@ -1,11 +1,5 @@ import React, { useCallback, useEffect, useRef, useState } from 'react'; -import { - AnnotationType, - DisplayOption, - EElementType, - MAX_SCALE, - MIN_SCALE, -} from './constants'; +import { DisplayOption, EElementType, MAX_SCALE, MIN_SCALE } from './constants'; import { useImmer } from 'use-immer'; import TopTools from './components/TopTools'; import PopoverMenu from './components/PopoverMenu'; @@ -19,7 +13,6 @@ import { import useHistory from './hooks/useHistory'; import useObjects from './hooks/useObjects'; import useCanvasContainer from './hooks/useCanvasContainer'; -import usePreviousState from './hooks/usePreviousState'; import { cloneDeep, isEmpty } from 'lodash'; import { BaseObject, @@ -27,18 +20,17 @@ import { DEFAULT_DRAW_DATA, DEFAULT_EDIT_STATE, DrawData, - DrawImageData, + AnnoItem, DrawObject, EditState, EditorMode, - IAnnotationObject, } from './type'; import useColor from './hooks/useColor'; import useMouseCursor from './hooks/useMouseCursor'; import useMouseEvents from './hooks/useMouseEvents'; import useCanvasRender from './hooks/useCanvasRender'; import useDataEffect from './hooks/useDataEffect'; -import { RenderStyles, useToolInstances } from './tools/base'; +import { useToolInstances } from './tools/base'; import classNames from 'classnames'; import { ReactComponent as DoubleRightIcon } from './assets/doubleRight.svg'; import { ReactComponent as DownloadIcon } from './assets/download.svg'; @@ -47,26 +39,24 @@ import { EDITOR_SHORTCUTS, EShortcuts } from './constants/shortcuts'; import { message } from 'antd'; import { ImageView } from './components/ImageView'; import './index.less'; +import useTranslate from './hooks/useTranslate'; export interface PreviewProps { + isOldMode?: boolean; // is old dataset design mode visible: boolean; categories: Category[]; - list: DrawImageData[]; + list: AnnoItem[]; current: number; objectsFilter?: (imageData: any) => BaseObject[]; - getCustomObjectStyles?: ( - object: IAnnotationObject, - color: string, - ) => Partial; onCancel?: () => void; onPrev?: () => Promise; onNext?: () => Promise; - displayAnnotationType?: AnnotationType; displayOptionsResult: { [key in DisplayOption]?: boolean }; } const Preview: React.FC = (props) => { const { + isOldMode, visible, categories, list, @@ -75,8 +65,6 @@ const Preview: React.FC = (props) => { onNext, onCancel, objectsFilter, - getCustomObjectStyles, - displayAnnotationType, displayOptionsResult, } = props; @@ -107,6 +95,7 @@ const Preview: React.FC = (props) => { CanvasContainer, } = useCanvasContainer({ visible, + drawData, allowMove: editState.allowMove, isRequiring: editState.isRequiring, minPadding: { @@ -114,13 +103,27 @@ const Preview: React.FC = (props) => { left: 300, }, cursorSize: drawData.brushSize, - showReferenceLine: false, - isCustomCursorActive: false, onClickMaskBg: onCancel, }); - const [preClientSize, clearPreClientSize] = - usePreviousState(clientSize); + const { getAnnotColor } = useColor({ + categories, + editState, + }); + + const { updateMouseCursor } = useMouseCursor({ + topCanvas: activeCanvasRef.current, + editState, + drawData, + }); + + const { translateToObject } = useTranslate({ + isOldMode, + clientSize, + naturalSize, + categories, + getAnnotColor, + }); const { clearHistory, updateHistory, setDrawDataWithHistory } = useHistory({ clientSize, @@ -131,26 +134,13 @@ const Preview: React.FC = (props) => { const { addObject, initObjectList, updateObject } = useObjects({ annotations, setAnnotations, - clientSize, - naturalSize, drawData, setDrawData, setDrawDataWithHistory, - editState, setEditState, mode: EditorMode.View, - displayAnnotationType, - }); - - const { labelColors, getAnnotColor } = useColor({ - categories, - editState, - }); - - const { updateMouseCursor } = useMouseCursor({ - topCanvas: activeCanvasRef.current, - editState, - drawData, + translateToObject, + updateHistory, }); const { objectHooksMap } = useToolInstances({ @@ -173,6 +163,7 @@ const Preview: React.FC = (props) => { updateMouseCursor, displayOptionsResult, getAnnotColor, + categories, }); const { updateRender } = useCanvasRender({ @@ -186,7 +177,6 @@ const Preview: React.FC = (props) => { activeCanvasRef, imgRef, objectHooksMap, - getCustomObjectStyles, }); useMouseEvents({ @@ -217,15 +207,12 @@ const Preview: React.FC = (props) => { document.body.style.overflow = visible ? 'hidden' : 'overlay'; }, [visible]); - const { resetDataWithImageData, rebuildDrawData } = useDataEffect({ + const { resetDataWithImageData } = useDataEffect({ imagePos, clientSize, - preClientSize, - clearPreClientSize, naturalSize, annotations, setAnnotations, - labelColors, drawData, setDrawData, editState, @@ -234,6 +221,7 @@ const Preview: React.FC = (props) => { updateRender, clearHistory, objectsFilter, + labelOptions: categories, }); /** Reset data when hiding the editor or switching images */ @@ -243,8 +231,8 @@ const Preview: React.FC = (props) => { /** Custom options changed */ useEffect(() => { - rebuildDrawData(true); - }, [displayAnnotationType, displayOptionsResult, getCustomObjectStyles]); + updateRender(); + }, [displayOptionsResult]); // ================================================================================================================= // Preview @@ -323,12 +311,12 @@ const Preview: React.FC = (props) => { if ( editState.focusObjectIndex > -1 && drawData.objectList[editState.focusObjectIndex] && - !drawData.objectList[editState.focusObjectIndex].hidden && + !drawData.objectList[editState.focusObjectIndex]?.hidden && editState.focusEleIndex > -1 && editState.focusEleType === EElementType.Circle ) { const target = - drawData.objectList[editState.focusObjectIndex].keypoints?.points?.[ + drawData.objectList[editState.focusObjectIndex]?.keypoints?.points?.[ editState.focusEleIndex ]; if (target) { @@ -386,7 +374,7 @@ const Preview: React.FC = (props) => { children: ( <> = (props) => { : metadata[key]}
))} - { - list[current]?.caption ? ( -
- {'caption'} -
- {list[current].caption} -
- ) : null - }
diff --git a/packages/components/src/Annotator/sevices/index.ts b/packages/components/src/Annotator/sevices/index.ts index 897d43c..4a32855 100644 --- a/packages/components/src/Annotator/sevices/index.ts +++ b/packages/components/src/Annotator/sevices/index.ts @@ -2,21 +2,14 @@ import { request } from '@umijs/max'; import { Modal } from 'antd'; import { globalLocaleText } from 'dds-utils/locale'; -import { EnumTaskStatus } from '../constants'; +import { EnumModelType, EnumTaskStatus } from '../constants'; export namespace NsApiAnnotator { - export enum EnumModelType { - Detection = 'ai_detection', - SegmentByPolygon = 'ai_segmentation', - SegmentByMask = 'ai_segmentation_mask', - Pose = 'ai_pose', - MaskEdgeStitching = 'ai_mask_edge_stitching', - SegmentEverything = 'ai_segment_everything', - } - export type ModelParam = T extends EnumModelType.Detection ? FetchAIDetectionReq + : T extends EnumModelType.IVP + ? FetchIVPReq : T extends EnumModelType.SegmentByPolygon ? FetchAIPolygonSegmentReq : T extends EnumModelType.SegmentByMask @@ -32,6 +25,8 @@ export namespace NsApiAnnotator { export type ModelResult = T extends EnumModelType.Detection ? FetchAIDetectionRsp + : T extends EnumModelType.IVP + ? FetchIVPRsp : T extends EnumModelType.SegmentByPolygon ? FetchAIPolygonSegmentRsp : T extends EnumModelType.SegmentByMask @@ -49,15 +44,32 @@ export namespace NsApiAnnotator { text: string; } - export interface FetchAIPolygonSegmentReq { - image: string; - mask: string; - polygons: number[][]; - clicks: { + export interface FetchIVPReq { + promptImage: string; + inferImage: string; + prompts: { + type: string; // 'rect' | 'point' isPositive: boolean; - position: number[]; + rect?: number[]; // [xmin, ymin, xmax, ymax]; + point?: number[]; // [x, y] + }[]; + labelTypes: string[]; // ["bbox", "mask"] + } + + export interface FetchAIPolygonSegmentReq { + image: string; // image_id:// | base64:// | http:// | https:// + density: number; // (0, 1) default 0.2 + area: number[]; // [xmin, ymin, xmax, ymax]; + prompts: { + type: string; // 'rect' | 'point' | 'stroke' | 'modify'; + isPositive: boolean; // + rect?: number[]; // [xmin, ymin, xmax, ymax]; + point?: number[]; // [x, y] + stroke?: number[]; // [x1, y1, x2, y2, ...]; + radius?: number; // brush size while using stroke prompt + polygons?: number[][]; // [[x1, y1, x2, y2, ...], [xn, yn, xn+1, yn+1, ...], ....]; }[]; - rect?: number[]; + sessionId?: string; } export interface FetchAIMaskSegmentReq { @@ -123,9 +135,18 @@ export namespace NsApiAnnotator { suggestThreshold: number; } + export interface FetchIVPRsp { + objects: Array<{ + bbox?: number[]; + mask?: number[]; + score: number; + }>; + } + export interface FetchAIPolygonSegmentRsp { - polygon: number[][]; - mask: string; + image: string; // image_id:// + sessionId: string; + polygons: number[][]; // [[x1, y1, x2, y2, ...], [xn, yn, xn+1, yn+1, ...], ....] } export interface FetchAIMaskSegmentRsp { @@ -164,10 +185,22 @@ export namespace NsApiAnnotator { uuid: string; result: ModelResult; } + export interface FetchUploadSignatureRsp { + downloadUrl: string; + uploadUrl: string; + } + + export interface FetchBetchUploadSignatureRsp { + fileUrls: { + fileName: string; + downloadUrl: string; + uploadUrl: string; + }[]; + } } async function fetchTaskUuid( - type: NsApiAnnotator.EnumModelType, + type: EnumModelType, params: any, options?: { [key: string]: any }, ) { @@ -185,7 +218,7 @@ async function fetchTaskUuid( ); } -function fetchTaskResults( +function fetchTaskResults( taskUuid: string, options?: { [key: string]: any }, ) { @@ -198,7 +231,7 @@ function fetchTaskResults( ); } -function fetchMaskTaskResults( +function fetchMaskTaskResults( taskUuid: string, options?: { [key: string]: any }, ) { @@ -211,8 +244,8 @@ function fetchMaskTaskResults( ); } -export async function pollTaskResults( - type: NsApiAnnotator.EnumModelType, +export async function pollTaskResults( + type: EnumModelType, taskUuid: string, maxAttempts = 5000, interval = 1000, @@ -221,9 +254,9 @@ export async function pollTaskResults( while (attempts < maxAttempts) { const fetchTaskResultsRequest = [ - NsApiAnnotator.EnumModelType.SegmentByMask, - NsApiAnnotator.EnumModelType.MaskEdgeStitching, - NsApiAnnotator.EnumModelType.SegmentEverything, + EnumModelType.SegmentByMask, + EnumModelType.MaskEdgeStitching, + EnumModelType.SegmentEverything, ].includes(type) ? fetchMaskTaskResults : fetchTaskResults; @@ -246,8 +279,8 @@ export async function pollTaskResults( throw new Error('Max attempts exceeded'); } -export async function fetchModelResults( - type: NsApiAnnotator.EnumModelType, +export async function fetchModelResults( + type: EnumModelType, params: NsApiAnnotator.ModelParam, ) { try { @@ -269,3 +302,86 @@ export async function fetchModelResults( } } } + +export async function fetchUploadSignature( + params: { + fileName: string; + }, + options?: { [key: string]: any }, +) { + return request( + `${process.env.MODEL_API_PATH}/upload_signature`, + { + method: 'POST', + data: { + ...params, + }, + ...(options || {}), + }, + ); +} + +export async function fetchBatchUploadSignature( + params: { + fileNames: string[]; + }, + options?: { [key: string]: any }, +) { + return request( + `${process.env.MODEL_API_PATH}/batch_upload_signatures`, + { + method: 'POST', + data: { + ...params, + }, + ...(options || {}), + }, + ); +} + +export const putFile = async ( + uploadUrl: string, + file?: File, + contentType?: string, +): Promise => { + return new Promise((resolve, reject) => { + if (!file) reject(null); + fetch(uploadUrl, { + method: 'PUT', + headers: { + 'Content-Type': contentType || '', + }, + body: file, + }) + .then((response) => { + if (response.status === 200) { + resolve(response); + } else { + console.error('Upload file error: ', uploadUrl, response); + reject(null); + } + }) + .catch((error) => { + console.error('Upload file error: ', uploadUrl, error); + reject(null); + }); + }); +}; + +export async function getOssUrlByBlobUrl( + fileName: string, + blobUrl: string, +): Promise { + try { + const { downloadUrl, uploadUrl } = await fetchUploadSignature({ fileName }); + const response = await fetch(blobUrl); + if (!response.ok) { + throw new Error('Failed to fetch file'); + } + const blobData = await response.blob(); + await putFile(uploadUrl, blobData as File); + return downloadUrl; + } catch (error: any) { + throw new Error('Failed to get oss url', error.message); + } +} diff --git a/packages/components/src/Annotator/tools/base.ts b/packages/components/src/Annotator/tools/base.ts index 9345171..a5a28bb 100644 --- a/packages/components/src/Annotator/tools/base.ts +++ b/packages/components/src/Annotator/tools/base.ts @@ -15,6 +15,7 @@ import { setRectBetweenPixels, } from '../utils/compute'; import { + Category, DrawData, EditState, EObjectStatus, @@ -24,13 +25,13 @@ import { } from '../type'; import { CursorState } from 'ahooks/lib/useMouse'; import { Updater } from 'use-immer'; -import { HistoryItem } from '../hooks/useHistory'; import { OnAiAnnotationFunc } from '../hooks/useActions'; import useRectangle from './useRectangle'; import usePolygon from './usePolygon'; import useSkeleton from './useSkeleton'; import useMask from './useMask'; import useMatting from './useMatting'; +import usePoint from './usePoint'; export type RenderStyles = { strokeColor: string; @@ -70,7 +71,7 @@ export namespace ToolHooksFunc { point: { x: number; y: number }; basic: { hidden: boolean; - label: string; + labelId: string; status: EObjectStatus; color: string; }; @@ -121,7 +122,7 @@ export interface ToolInstanceHookProps { drawData: DrawData; setDrawData: Updater; setDrawDataWithHistory: Updater; - updateHistory: (item: HistoryItem) => void; + updateHistory: (drawData: DrawData) => void; updateObject: (object: IAnnotationObject, index: number) => void; addObject: (object: IAnnotationObject, notActive?: boolean) => void; clientSize: ISize; @@ -133,9 +134,10 @@ export interface ToolInstanceHookProps { activeCanvasRef: React.RefObject; updateMouseCursor: (value: string, position?: Direction) => void; getAnnotColor: (category: string) => string; - aiLabels?: string[]; + aiLabels?: string; onAiAnnotation?: OnAiAnnotationFunc; displayOptionsResult?: { [key in DisplayOption]?: boolean }; + categories: Category[]; } export type ToolInstanceHook = ( @@ -148,6 +150,7 @@ export const useToolInstances = (props: ToolInstanceHookProps) => { const skeletonHooks = useSkeleton(props); const maskHooks = useMask(props); const mattingHooks = useMatting(props); + const pointHooks = usePoint(props); const objectHooksMap: Record = { [EObjectType.Rectangle]: rectangleHooks, @@ -155,6 +158,7 @@ export const useToolInstances = (props: ToolInstanceHookProps) => { [EObjectType.Skeleton]: skeletonHooks, [EObjectType.Mask]: maskHooks, [EObjectType.Matting]: mattingHooks, + [EObjectType.Point]: pointHooks, [EObjectType.Custom]: rectangleHooks, // todo }; diff --git a/packages/components/src/Annotator/tools/useMask.ts b/packages/components/src/Annotator/tools/useMask.ts index a9b4a78..9957e3f 100644 --- a/packages/components/src/Annotator/tools/useMask.ts +++ b/packages/components/src/Annotator/tools/useMask.ts @@ -29,10 +29,10 @@ import { PROMPT_FILL_COLOR, } from '../constants/render'; import { - EMaskPromptType, + EPromptType, ICreatingMaskStep, ICreatingObject, - MaskPromptItem, + PromptItem, } from '../type'; import { hexToRgbArray, hexToRgba } from '../utils/color'; import { cloneDeep } from 'lodash'; @@ -467,12 +467,12 @@ const useMask: ToolInstanceHook = ({ const renderPrompt: ToolHooksFunc.RenderPrompt = ({ prompt }) => { // draw creating prompt - if (prompt.creatingMask) { + if (prompt.creatingPrompt) { const strokeColor = ANNO_STROKE_COLOR.CREATING; const fillColor = ANNO_FILL_COLOR.CREATING; - switch (prompt.creatingMask.type) { - case EMaskPromptType.Rect: { - const { startPoint } = prompt.creatingMask; + switch (prompt.creatingPrompt.type) { + case EPromptType.Rect: { + const { startPoint } = prompt.creatingPrompt; const rect = getRectFromPoints( startPoint!, { @@ -498,10 +498,10 @@ const useMask: ToolInstanceHook = ({ ); break; } - case EMaskPromptType.Point: { - if (!prompt.creatingMask.point) break; + case EPromptType.Point: { + if (!prompt.creatingPrompt.point) break; const canvasCoordPoint = translatePointCoord( - prompt.creatingMask.point, + prompt.creatingPrompt.point, { x: -imagePos.current.x, y: -imagePos.current.y, @@ -511,29 +511,31 @@ const useMask: ToolInstanceHook = ({ activeCanvasRef.current!, canvasCoordPoint, 4, - prompt.creatingMask.isPositive + prompt.creatingPrompt.isPositive ? PROMPT_FILL_COLOR.POSITIVE : PROMPT_FILL_COLOR.NEGATIVE, 2, '#fff', ); } - case EMaskPromptType.EdgeStitch: - case EMaskPromptType.Stroke: { - if (!prompt.creatingMask.stroke || !prompt.creatingMask.radius) break; + case EPromptType.EdgeStitch: + case EPromptType.Stroke: { + if (!prompt.creatingPrompt.stroke || !prompt.creatingPrompt.radius) + break; const canvasCoordStroke = translatePolygonCoord( - prompt.creatingMask.stroke, + prompt.creatingPrompt.stroke, { x: -imagePos.current.x, y: -imagePos.current.y, }, ); const radius = - (prompt.creatingMask.radius * clientSize.width) / naturalSize.width; + (prompt.creatingPrompt.radius * clientSize.width) / + naturalSize.width; const color = - prompt.creatingMask.type === EMaskPromptType.EdgeStitch + prompt.creatingPrompt.type === EPromptType.EdgeStitch ? hexToRgba(strokeColor, ANNO_MASK_ALPHA.CREATING) - : prompt.creatingMask.isPositive + : prompt.creatingPrompt.isPositive ? PROMPT_FILL_COLOR.POSITIVE : PROMPT_FILL_COLOR.NEGATIVE; drawQuadraticPath( @@ -562,9 +564,9 @@ const useMask: ToolInstanceHook = ({ } // draw existing prompts - if (prompt.maskPrompts) { - prompt.maskPrompts.forEach((item) => { - if (item.type === EMaskPromptType.Point) { + if (prompt.promptsQueue) { + prompt.promptsQueue.forEach((item) => { + if (item.type === EPromptType.Point) { const canvasCoordPoint = translatePointCoord(item.point!, { x: -imagePos.current.x, y: -imagePos.current.y, @@ -629,34 +631,29 @@ const useMask: ToolInstanceHook = ({ ) ) { // Brush tool need not push history when mousedown - updateHistory( - cloneDeep({ - drawData: s, - clientSize, - }), - ); + updateHistory(cloneDeep(s)); } } - s.prompt.segmentationMask = undefined; + s.prompt.sessionId = undefined; break; case ESubToolItem.AutoSegmentByBox: - s.prompt.creatingMask = { - type: EMaskPromptType.Rect, + s.prompt.creatingPrompt = { + type: EPromptType.Rect, startPoint: mouse, isPositive: true, }; break; case ESubToolItem.AutoSegmentByClick: - s.prompt.creatingMask = { - type: EMaskPromptType.Point, + s.prompt.creatingPrompt = { + type: EPromptType.Point, startPoint: mouse, point: mouse, isPositive: getPromptBoolean(event), }; break; case ESubToolItem.AutoSegmentByStroke: - s.prompt.creatingMask = { - type: EMaskPromptType.Stroke, + s.prompt.creatingPrompt = { + type: EPromptType.Stroke, startPoint: mouse, stroke: [mouse], radius: s.brushSize, @@ -664,8 +661,8 @@ const useMask: ToolInstanceHook = ({ }; break; case ESubToolItem.AutoEdgeStitching: - s.prompt.creatingMask = { - type: EMaskPromptType.EdgeStitch, + s.prompt.creatingPrompt = { + type: EPromptType.EdgeStitch, startPoint: mouse, stroke: [mouse], radius: s.brushSize, @@ -708,26 +705,26 @@ const useMask: ToolInstanceHook = ({ }, tempMaskSteps: [], }; - s.prompt.segmentationMask = undefined; + s.prompt.sessionId = undefined; break; case ESubToolItem.AutoSegmentByBox: - s.prompt.creatingMask = { - type: EMaskPromptType.Rect, + s.prompt.creatingPrompt = { + type: EPromptType.Rect, startPoint: point, isPositive: true, }; break; case ESubToolItem.AutoSegmentByClick: - s.prompt.creatingMask = { - type: EMaskPromptType.Point, + s.prompt.creatingPrompt = { + type: EPromptType.Point, startPoint: point, point: point, isPositive: getPromptBoolean(event), }; break; case ESubToolItem.AutoSegmentByStroke: - s.prompt.creatingMask = { - type: EMaskPromptType.Stroke, + s.prompt.creatingPrompt = { + type: EPromptType.Stroke, startPoint: point, stroke: [point], radius: s.brushSize, @@ -735,8 +732,8 @@ const useMask: ToolInstanceHook = ({ }; break; case ESubToolItem.AutoEdgeStitching: - s.prompt.creatingMask = { - type: EMaskPromptType.EdgeStitch, + s.prompt.creatingPrompt = { + type: EPromptType.EdgeStitch, startPoint: point, stroke: [point], radius: s.brushSize, @@ -757,7 +754,7 @@ const useMask: ToolInstanceHook = ({ event, object, }) => { - if (object || drawData.prompt.creatingMask) { + if (object || drawData.prompt.creatingPrompt) { updateMouseCursor('crosshair'); const allowRecordMousePath = [ ESubToolItem.BrushAdd, @@ -782,7 +779,7 @@ const useMask: ToolInstanceHook = ({ ].includes(drawData.selectedSubTool); setDrawData((s) => { if (isCreatingPrompt) { - s.prompt.creatingMask?.stroke?.push(mouse); + s.prompt.creatingPrompt?.stroke?.push(mouse); } else { s.creatingObject?.maskStep?.points.push(mouse); } @@ -810,7 +807,7 @@ const useMask: ToolInstanceHook = ({ }; const finishMaskWhenMouseUp = () => { - if (!drawData.creatingObject && !drawData.prompt.creatingMask) return; + if (!drawData.creatingObject && !drawData.prompt.creatingPrompt) return; const mouse = { x: contentMouse.elementX, y: contentMouse.elementY, @@ -843,75 +840,75 @@ const useMask: ToolInstanceHook = ({ s.creatingObject.maskStep = undefined; } } - s.prompt.segmentationMask = undefined; + s.prompt.sessionId = undefined; }); break; } case ESubToolItem.AutoSegmentByBox: { - if (!drawData.prompt.creatingMask?.startPoint) break; + if (!drawData.prompt.creatingPrompt?.startPoint) break; if ( - mouse.x === drawData.prompt.creatingMask.startPoint?.x || - mouse.y === drawData.prompt.creatingMask.startPoint?.y + mouse.x === drawData.prompt.creatingPrompt.startPoint?.x || + mouse.y === drawData.prompt.creatingPrompt.startPoint?.y ) { - setDrawData((s) => (s.prompt.creatingMask = undefined)); + setDrawData((s) => (s.prompt.creatingPrompt = undefined)); break; } const rect = getRectFromPoints( - drawData.prompt.creatingMask.startPoint as IPoint, + drawData.prompt.creatingPrompt.startPoint as IPoint, mouse, { width: contentMouse.elementW, height: contentMouse.elementH, }, ); - const promptItem: MaskPromptItem = { - type: EMaskPromptType.Rect, + const promptItem: PromptItem = { + type: EPromptType.Rect, isPositive: true, rect, }; setDrawDataWithHistory((s) => { s.prompt.activeRectWhileLoading = rect; }); - const maskPrompts = drawData.prompt.maskPrompts - ? [...drawData.prompt.maskPrompts, promptItem] + const promptsQueue = drawData.prompt.promptsQueue + ? [...drawData.prompt.promptsQueue, promptItem] : [promptItem]; - onAiAnnotation?.({ type: EObjectType.Mask, drawData, maskPrompts }); + onAiAnnotation?.({ type: EObjectType.Mask, drawData, promptsQueue }); break; } case ESubToolItem.AutoSegmentByClick: { if ( !isInCanvas(contentMouse) || !isInCanvas(containerMouse) || - !drawData.prompt.creatingMask?.point + !drawData.prompt.creatingPrompt?.point ) break; - const promptItem: MaskPromptItem = { - type: EMaskPromptType.Point, - isPositive: drawData.prompt.creatingMask.isPositive, - point: drawData.prompt.creatingMask.point, + const promptItem: PromptItem = { + type: EPromptType.Point, + isPositive: drawData.prompt.creatingPrompt.isPositive, + point: drawData.prompt.creatingPrompt.point, }; - const maskPrompts = drawData.prompt.maskPrompts - ? [...drawData.prompt.maskPrompts, promptItem] + const promptsQueue = drawData.prompt.promptsQueue + ? [...drawData.prompt.promptsQueue, promptItem] : [promptItem]; - onAiAnnotation?.({ type: EObjectType.Mask, drawData, maskPrompts }); + onAiAnnotation?.({ type: EObjectType.Mask, drawData, promptsQueue }); break; } case ESubToolItem.AutoSegmentByStroke: { - if (!drawData.prompt.creatingMask?.stroke) break; - const promptItem: MaskPromptItem = { - type: EMaskPromptType.Stroke, - isPositive: drawData.prompt.creatingMask.isPositive, - stroke: drawData.prompt.creatingMask.stroke, + if (!drawData.prompt.creatingPrompt?.stroke) break; + const promptItem: PromptItem = { + type: EPromptType.Stroke, + isPositive: drawData.prompt.creatingPrompt.isPositive, + stroke: drawData.prompt.creatingPrompt.stroke, radius: drawData.brushSize, }; - const maskPrompts = drawData.prompt.maskPrompts - ? [...drawData.prompt.maskPrompts, promptItem] + const promptsQueue = drawData.prompt.promptsQueue + ? [...drawData.prompt.promptsQueue, promptItem] : [promptItem]; - onAiAnnotation?.({ type: EObjectType.Mask, drawData, maskPrompts }); + onAiAnnotation?.({ type: EObjectType.Mask, drawData, promptsQueue }); break; } case ESubToolItem.AutoEdgeStitching: { - if (!drawData.prompt.creatingMask?.stroke) break; + if (!drawData.prompt.creatingPrompt?.stroke) break; onAiAnnotation?.({ type: EObjectType.Mask, drawData }); break; } diff --git a/packages/components/src/Annotator/tools/usePoint.ts b/packages/components/src/Annotator/tools/usePoint.ts new file mode 100644 index 0000000..af131a8 --- /dev/null +++ b/packages/components/src/Annotator/tools/usePoint.ts @@ -0,0 +1,77 @@ +import { drawCircleWithFill } from '../utils/draw'; +import { ToolInstanceHook, ToolHooksFunc } from './base'; + +const usePoint: ToolInstanceHook = ({ canvasRef }) => { + const renderObject: ToolHooksFunc.RenderObject = ({ object, styles }) => { + const { point } = object; + if (point && point.visible) { + const { x, y } = point; + const { strokeColor, fillColor } = styles; + drawCircleWithFill( + canvasRef.current!, + { x, y }, + 4, + fillColor, + 2, + strokeColor, + ); + } + }; + + const renderCreatingObject: ToolHooksFunc.RenderCreatingObject = () => { + // todo + }; + + const renderEditingObject: ToolHooksFunc.RenderEditingObject = () => { + // to do + }; + + const renderPrompt: ToolHooksFunc.RenderPrompt = () => { + // nothing in rect + }; + + const startEditingWhenMouseDown: ToolHooksFunc.StartEditingWhenMouseDown = + () => { + return false; + }; + + const startCreatingWhenMouseDown: ToolHooksFunc.StartCreatingWhenMouseDown = + () => { + return false; + }; + + const updateEditingWhenMouseMove: ToolHooksFunc.UpdateEditingWhenMouseMove = + () => { + return false; + }; + + const updateCreatingWhenMouseMove: ToolHooksFunc.UpdateCreatingWhenMouseMove = + () => { + return false; + }; + + const finishEditingWhenMouseUp: ToolHooksFunc.FinishEditingWhenMouseUp = + () => { + return false; + }; + + const finishCreatingWhenMouseUp: ToolHooksFunc.FinishCreatingWhenMouseUp = + () => { + return false; + }; + + return { + renderObject, + renderCreatingObject, + renderEditingObject, + renderPrompt, + startEditingWhenMouseDown, + startCreatingWhenMouseDown, + updateEditingWhenMouseMove, + updateCreatingWhenMouseMove, + finishEditingWhenMouseUp, + finishCreatingWhenMouseUp, + }; +}; + +export default usePoint; diff --git a/packages/components/src/Annotator/tools/usePolygon.ts b/packages/components/src/Annotator/tools/usePolygon.ts index 2bde58b..bcc9a12 100644 --- a/packages/components/src/Annotator/tools/usePolygon.ts +++ b/packages/components/src/Annotator/tools/usePolygon.ts @@ -2,20 +2,23 @@ import { drawCircleWithFill, drawLine, drawPolygonWithFill, + drawQuadraticPath, + drawRect, + shadeEverythingButRect, } from '../utils/draw'; -import { EElementType, EObjectType } from '../constants'; +import { EElementType, EObjectType, ESubToolItem } from '../constants'; import { getClosestPointOnLineSegment, - getInnerPolygonIndexFromGroup, getLinesFromPolygon, getRectFromPoints, - getReferencePointsFromRect, isInCanvas, isPointOnPoint, movePoint, movePolygon, translateAnnotCoord, translatePointCoord, + translatePolygonCoord, + translateRectCoord, } from '../utils/compute'; import { ToolInstanceHook, @@ -26,14 +29,18 @@ import { import { hexToRgba } from '../utils/color'; import { ANNO_FILL_ALPHA, + ANNO_FILL_COLOR, ANNO_STROKE_ALPHA, + ANNO_STROKE_COLOR, PROMPT_FILL_COLOR, } from '../constants/render'; import { cloneDeep } from 'lodash'; +import { EPromptType, PromptItem } from '../type'; const usePolygon: ToolInstanceHook = ({ editState, clientSize, + naturalSize, imagePos, containerMouse, canvasRef, @@ -42,6 +49,7 @@ const usePolygon: ToolInstanceHook = ({ setEditState, drawData, setDrawData, + setDrawDataWithHistory, updateHistory, updateMouseCursor, updateObject, @@ -95,7 +103,6 @@ const usePolygon: ToolInstanceHook = ({ }); const { polygon } = annotObject; if (polygon && polygon.visible) { - const innerPolygonIdx = getInnerPolygonIndexFromGroup(polygon.group); // draw creating polygon polygon.group.forEach((polygon, polygonIdx) => { if (currIndex === polygonIdx) { @@ -134,28 +141,29 @@ const usePolygon: ToolInstanceHook = ({ } }); } else { - if (!innerPolygonIdx.includes(polygonIdx)) { - drawPolygonWithFill( - activeCanvasRef.current, - polygon, - hexToRgba('#1f4dd8', 0.5), + // draw polygon + drawPolygonWithFill( + activeCanvasRef.current, + polygon, + hexToRgba('#1f4dd8', 0.5), + '#1f4dd8', + 2, + [0], + ); + + // draw points + polygon.forEach((point) => { + drawCircleWithFill( + activeCanvasRef.current!, + point, + 4, + styles.strokeColor, + 3, '#1f4dd8', - 2, - [0], ); - } + }); } }); - innerPolygonIdx.forEach((index) => { - drawPolygonWithFill( - activeCanvasRef.current, - polygon.group[index], - 'rgba(255, 255, 255, 0.8)', - '#1f4dd8', - 2, - [0], - ); - }); } }; @@ -167,35 +175,18 @@ const usePolygon: ToolInstanceHook = ({ }) => { const { polygon } = object; if (polygon && polygon.visible) { - const innerPolygonIdx = getInnerPolygonIndexFromGroup(polygon.group); const isFocusOnPolygon = isFocus && editState.focusEleType === EElementType.Polygon && editState.focusEleIndex === 0; - polygon.group.forEach((polygon, index) => { - if (!innerPolygonIdx.includes(index)) { - const fillColor = isFocusOnPolygon - ? hexToRgba(color, 0.2) - : 'transparent'; - drawPolygonWithFill( - activeCanvasRef.current, - polygon, - fillColor, - styles.strokeColor, - styles.thickness, - styles.strokeDash, - ); - } - }); - - innerPolygonIdx.forEach((index) => { + polygon.group.forEach((polygon) => { const fillColor = isFocusOnPolygon - ? 'rgba(255, 255, 255, 0.8)' + ? hexToRgba(color, 0.2) : 'transparent'; drawPolygonWithFill( activeCanvasRef.current, - polygon.group[index], + polygon, fillColor, styles.strokeColor, styles.thickness, @@ -259,31 +250,168 @@ const usePolygon: ToolInstanceHook = ({ }; const renderPrompt: ToolHooksFunc.RenderPrompt = ({ prompt }) => { - // draw segmentation reference points - if (prompt.segmentationClicks) { - prompt.segmentationClicks.forEach((click) => { - const canvasCoordPoint = translatePointCoord(click.point, { - x: -imagePos.current.x, - y: -imagePos.current.y, - }); - drawCircleWithFill( - activeCanvasRef.current!, - canvasCoordPoint, - 4, - click.isPositive + // draw creating prompt + if (prompt.creatingPrompt) { + const strokeColor = ANNO_STROKE_COLOR.CREATING; + const fillColor = ANNO_FILL_COLOR.CREATING; + switch (prompt.creatingPrompt.type) { + case EPromptType.Rect: { + const { startPoint } = prompt.creatingPrompt; + const rect = getRectFromPoints( + startPoint!, + { + x: contentMouse.elementX, + y: contentMouse.elementY, + }, + { + width: contentMouse.elementW, + height: contentMouse.elementH, + }, + ); + const canvasCoordRect = translateRectCoord(rect, { + x: -imagePos.current.x, + y: -imagePos.current.y, + }); + drawRect( + activeCanvasRef.current, + canvasCoordRect, + strokeColor, + 2, + [0], + fillColor, + ); + break; + } + case EPromptType.Point: { + if (!prompt.creatingPrompt.point) break; + const canvasCoordPoint = translatePointCoord( + prompt.creatingPrompt.point, + { + x: -imagePos.current.x, + y: -imagePos.current.y, + }, + ); + drawCircleWithFill( + activeCanvasRef.current!, + canvasCoordPoint, + 4, + prompt.creatingPrompt.isPositive + ? PROMPT_FILL_COLOR.POSITIVE + : PROMPT_FILL_COLOR.NEGATIVE, + 2, + '#fff', + ); + } + case EPromptType.Stroke: { + if (!prompt.creatingPrompt.stroke || !prompt.creatingPrompt.radius) + break; + const canvasCoordStroke = translatePolygonCoord( + prompt.creatingPrompt.stroke, + { + x: -imagePos.current.x, + y: -imagePos.current.y, + }, + ); + const radius = + (prompt.creatingPrompt.radius * clientSize.width) / + naturalSize.width; + const color = prompt.creatingPrompt.isPositive ? PROMPT_FILL_COLOR.POSITIVE - : PROMPT_FILL_COLOR.NEGATIVE, - 2, - '#fff', + : PROMPT_FILL_COLOR.NEGATIVE; + drawQuadraticPath( + activeCanvasRef.current!, + canvasCoordStroke, + color, + radius, + ); + break; + } + default: + break; + } + + // draw active area while loading ai annotations + if (editState.isRequiring && prompt.activeRectWhileLoading) { + const canvasCoordRect = translateRectCoord( + prompt.activeRectWhileLoading, + { + x: -imagePos.current.x, + y: -imagePos.current.y, + }, ); + shadeEverythingButRect(activeCanvasRef.current!, canvasCoordRect); + } + } + + // draw existing prompts + if (prompt.promptsQueue) { + prompt.promptsQueue.forEach((item) => { + if (item.type === EPromptType.Point) { + const canvasCoordPoint = translatePointCoord(item.point!, { + x: -imagePos.current.x, + y: -imagePos.current.y, + }); + drawCircleWithFill( + activeCanvasRef.current!, + canvasCoordPoint, + 4, + item.isPositive + ? PROMPT_FILL_COLOR.POSITIVE + : PROMPT_FILL_COLOR.NEGATIVE, + 2, + '#fff', + ); + } }); } }; + const updateAiPolygonWhenMouseDown = (event: MouseEvent) => { + const point = { + x: contentMouse.elementX, + y: contentMouse.elementY, + }; + setDrawData((s) => { + switch (s.selectedSubTool) { + case ESubToolItem.AutoSegmentByBox: + s.prompt.creatingPrompt = { + type: EPromptType.Rect, + startPoint: point, + isPositive: true, + }; + break; + case ESubToolItem.AutoSegmentByClick: + s.prompt.creatingPrompt = { + type: EPromptType.Point, + startPoint: point, + point: point, + isPositive: getPromptBoolean(event), + }; + break; + case ESubToolItem.AutoSegmentByStroke: { + s.prompt.creatingPrompt = { + type: EPromptType.Stroke, + startPoint: point, + stroke: [point], + radius: s.brushSize, + isPositive: getPromptBoolean(event), + }; + break; + } + default: { + } + } + }); + }; + const startEditingWhenMouseDown: ToolHooksFunc.StartEditingWhenMouseDown = ({ object, event, }) => { + if (drawData.AIAnnotation) { + updateAiPolygonWhenMouseDown(event); + return true; + } if (event?.button === 2) return false; if ( editBaseElementWhenMouseDown({ @@ -299,18 +427,38 @@ const usePolygon: ToolInstanceHook = ({ }; const startCreatingWhenMouseDown: ToolHooksFunc.StartCreatingWhenMouseDown = - ({ point, basic }) => { + ({ event, point, basic }) => { setDrawData((s) => { if (!s.creatingObject || s.activeObjectIndex > -1) { s.activeObjectIndex = -1; if (s.AIAnnotation) { - // by drawing rectangle under AI mode - s.creatingObject = { - type: EObjectType.Rectangle, - startPoint: point, - ...basic, - color: '#fff', - }; + switch (s.selectedSubTool) { + case ESubToolItem.AutoSegmentByBox: + s.prompt.creatingPrompt = { + type: EPromptType.Rect, + startPoint: point, + isPositive: true, + }; + break; + case ESubToolItem.AutoSegmentByClick: + s.prompt.creatingPrompt = { + type: EPromptType.Point, + startPoint: point, + point: point, + isPositive: getPromptBoolean(event), + }; + break; + case ESubToolItem.AutoSegmentByStroke: { + s.prompt.creatingPrompt = { + type: EPromptType.Stroke, + startPoint: point, + stroke: [point], + radius: s.brushSize, + isPositive: getPromptBoolean(event), + }; + break; + } + } } else { // create a new polygon manually s.creatingObject = { @@ -322,12 +470,7 @@ const usePolygon: ToolInstanceHook = ({ currIndex: 0, ...basic, }; - updateHistory( - cloneDeep({ - drawData: s, - clientSize, - }), - ); + updateHistory(cloneDeep(drawData)); } } else { if (!s.AIAnnotation) { @@ -340,31 +483,50 @@ const usePolygon: ToolInstanceHook = ({ s.creatingObject.currIndex = -1; } else if (s.creatingObject.polygon) { polygon.group[currIndex].push(point); - updateHistory( - cloneDeep({ - drawData: s, - clientSize, - }), - ); + updateHistory(cloneDeep(s)); } } else { polygon.group.push([point]); s.creatingObject.currIndex = polygon.group.length - 1; - updateHistory( - cloneDeep({ - drawData: s, - clientSize, - }), - ); + updateHistory(cloneDeep(s)); } + } else { + updateAiPolygonWhenMouseDown(event); } } }); return true; }; + const updatePolygonWhenMouseMove: ToolHooksFunc.UpdateCreatingWhenMouseMove = + ({ event }) => { + const allowRecordMousePath = + drawData.selectedSubTool === ESubToolItem.AutoSegmentByStroke; + // Left/Right button is pressed while mousemove + const isMousePress = event.buttons === 1 || event.buttons === 2; + if ( + drawData.prompt.creatingPrompt && + allowRecordMousePath && + isMousePress + ) { + const mouse = { + x: contentMouse.elementX, + y: contentMouse.elementY, + }; + setDrawData((s) => { + s.prompt.creatingPrompt?.stroke?.push(mouse); + }); + return true; + } + return false; + }; + const updateEditingWhenMouseMove: ToolHooksFunc.UpdateEditingWhenMouseMove = - () => { + ({ event }) => { + if (drawData.AIAnnotation) { + updateMouseCursor('crosshair'); + return updatePolygonWhenMouseMove({ event }); + } const { focusEleType, focusEleIndex, @@ -442,134 +604,174 @@ const usePolygon: ToolInstanceHook = ({ }; const updateCreatingWhenMouseMove: ToolHooksFunc.UpdateCreatingWhenMouseMove = - ({ object }) => { - return !!object; + ({ event }) => { + return updatePolygonWhenMouseMove({ event }); }; - const finishEditingWhenMouseUp: ToolHooksFunc.FinishEditingWhenMouseUp = ({ - object, - }) => { - const isResizingOrMoving = - editState.startRectResizeAnchor || editState.startElementMovePoint; + const getExistPolygonPrompts = (): PromptItem[] => { + if ( + drawData.prompt.promptsQueue && + drawData.prompt.promptsQueue.length > 0 + ) { + return drawData.prompt.promptsQueue; + } else { + // add exsit polygon as prompt item while editing instance by ai + const addExistPolygon = + !drawData.prompt.sessionId && drawData.creatingObject; - const isMouseStand = - editState.startElementMovePoint && - editState.startElementMovePoint.initPoint?.x === contentMouse.elementX && - editState.startElementMovePoint.initPoint?.y === contentMouse.elementY; + if (addExistPolygon) { + const existPolygons = + drawData.creatingObject?.polygon?.group.map((polygon) => { + return polygon.reduce((acc: number[], point) => { + return acc.concat([point.x, point.y]); + }, []); + }) || []; - const isRemovePolygonPoints = - isMouseStand && - editState.focusPolygonInfo.index > -1 && - editState.focusPolygonInfo.pointIndex > -1; + const modifyPromptItem: PromptItem = { + type: EPromptType.Modify, + isPositive: true, + polygons: existPolygons, + }; - if (isRemovePolygonPoints) { - const copyObject = cloneDeep(object); - const { index, pointIndex } = editState.focusPolygonInfo; - const polygon = copyObject.polygon?.group[index]; - if (polygon && index > -1 && pointIndex > -1 && polygon.length >= 3) { - polygon.splice(pointIndex, 1); + return [modifyPromptItem]; + } else { + return []; } - updateObject(copyObject, drawData.activeObjectIndex); - } else if (isResizingOrMoving) { - updateObject(object, drawData.activeObjectIndex); } - - setEditState((s) => { - s.startRectResizeAnchor = undefined; - s.startElementMovePoint = undefined; - }); - return true; }; - const finishCreatingWhenMouseUp: ToolHooksFunc.FinishCreatingWhenMouseUp = ({ - event, - object, - }) => { - if (!object) return false; - + const finishAiPolygonWhenMouseUp = () => { const mouse = { x: contentMouse.elementX, y: contentMouse.elementY, }; - if (drawData.AIAnnotation) { - if (object.type === EObjectType.Polygon) { - if (!isInCanvas(contentMouse) || !isInCanvas(containerMouse)) - return false; - // add reference points - const click = { - isPositive: getPromptBoolean(event), - point: mouse, + const existPrompts = getExistPolygonPrompts(); + switch (drawData.selectedSubTool) { + case ESubToolItem.AutoSegmentByBox: { + if (!drawData.prompt.creatingPrompt?.startPoint) break; + if ( + mouse.x === drawData.prompt.creatingPrompt.startPoint?.x || + mouse.y === drawData.prompt.creatingPrompt.startPoint?.y + ) { + setDrawData((s) => (s.prompt.creatingPrompt = undefined)); + break; + } + const rect = getRectFromPoints( + drawData.prompt.creatingPrompt.startPoint as IPoint, + mouse, + { + width: contentMouse.elementW, + height: contentMouse.elementH, + }, + ); + const promptItem: PromptItem = { + type: EPromptType.Rect, + isPositive: true, + rect, }; - const existClicks = drawData.prompt.segmentationClicks || []; - setDrawData((s) => { - s.prompt.segmentationClicks = [...existClicks, click]; + setDrawDataWithHistory((s) => { + s.prompt.activeRectWhileLoading = rect; }); + const promptsQueue = [...existPrompts, promptItem]; onAiAnnotation?.({ type: EObjectType.Polygon, drawData, - segmentationClicks: [...existClicks, click], - aiLabels: [object.label], + promptsQueue, }); - } else { - // first click + break; + } + case ESubToolItem.AutoSegmentByClick: { if ( - contentMouse.elementX === object.startPoint?.x && - contentMouse.elementY === object.startPoint?.y - ) { - if (!isInCanvas(contentMouse)) return false; - // draw point - const firstClick = { - isPositive: true, - point: mouse, - }; - setDrawData((s) => { - s.prompt.segmentationClicks = [firstClick]; - }); - onAiAnnotation?.({ - type: EObjectType.Polygon, - drawData, - segmentationClicks: [firstClick], - }); - } else { - // draw bbox - const rect = getRectFromPoints(object.startPoint as IPoint, mouse, { - width: contentMouse.elementW, - height: contentMouse.elementH, - }); - const points = getReferencePointsFromRect(rect); - const bbox = { - xmin: rect.x, - ymin: rect.y, - xmax: rect.x + rect.width, - ymax: rect.y + rect.height, - }; - const clicks = points.map((point, index) => { - return { - // Only the center point is positive - isPositive: index === points.length - 1 ? true : false, - point, - }; - }); - setDrawData((s) => { - s.prompt.segmentationClicks = [...clicks]; - }); - onAiAnnotation?.({ - type: EObjectType.Polygon, - drawData, - segmentationClicks: clicks, - bbox, - }); + !isInCanvas(contentMouse) || + !isInCanvas(containerMouse) || + !drawData.prompt.creatingPrompt?.point + ) + break; + const promptItem: PromptItem = { + type: EPromptType.Point, + isPositive: drawData.prompt.creatingPrompt.isPositive, + point: drawData.prompt.creatingPrompt.point, + }; + const promptsQueue = [...existPrompts, promptItem]; + onAiAnnotation?.({ + type: EObjectType.Polygon, + drawData, + promptsQueue, + }); + break; + } + case ESubToolItem.AutoSegmentByStroke: { + if (!drawData.prompt.creatingPrompt?.stroke) break; + const promptItem: PromptItem = { + type: EPromptType.Stroke, + isPositive: drawData.prompt.creatingPrompt.isPositive, + stroke: drawData.prompt.creatingPrompt.stroke, + radius: drawData.brushSize, + }; + const promptsQueue = [...existPrompts, promptItem]; + onAiAnnotation?.({ + type: EObjectType.Polygon, + drawData, + promptsQueue, + }); + break; + } + } + }; + + const finishEditingWhenMouseUp: ToolHooksFunc.FinishEditingWhenMouseUp = ({ + object, + }) => { + if (drawData.AIAnnotation) { + finishAiPolygonWhenMouseUp(); + } else { + const isResizingOrMoving = + editState.startRectResizeAnchor || editState.startElementMovePoint; + + const isMouseStand = + editState.startElementMovePoint && + editState.startElementMovePoint.initPoint?.x === + contentMouse.elementX && + editState.startElementMovePoint.initPoint?.y === contentMouse.elementY; + + const isRemovePolygonPoints = + isMouseStand && + editState.focusPolygonInfo.index > -1 && + editState.focusPolygonInfo.pointIndex > -1; + + if (isRemovePolygonPoints) { + const copyObject = cloneDeep(object); + const { index, pointIndex } = editState.focusPolygonInfo; + const polygon = copyObject.polygon?.group[index]; + if (polygon && index > -1 && pointIndex > -1 && polygon.length >= 3) { + polygon.splice(pointIndex, 1); } - setDrawData((s) => (s.creatingObject = undefined)); + updateObject(copyObject, drawData.activeObjectIndex); + } else if (isResizingOrMoving) { + updateObject(object, drawData.activeObjectIndex); } + + setEditState((s) => { + s.startRectResizeAnchor = undefined; + s.startElementMovePoint = undefined; + }); + } + return true; + }; + + const finishCreatingWhenMouseUp: ToolHooksFunc.FinishCreatingWhenMouseUp = ({ + object, + }) => { + if (drawData.AIAnnotation) { + finishAiPolygonWhenMouseUp(); } else { - if (object.currIndex === -1) { - const { polygon, type, hidden, label, status, color } = object; + if (object && object.currIndex === -1) { + const { polygon, type, hidden, labelId, status, color } = object; const newObject = { polygon, type, hidden, - label, + labelId, status, color, }; diff --git a/packages/components/src/Annotator/tools/useRectangle.ts b/packages/components/src/Annotator/tools/useRectangle.ts index 4424a1d..270ce43 100644 --- a/packages/components/src/Annotator/tools/useRectangle.ts +++ b/packages/components/src/Annotator/tools/useRectangle.ts @@ -1,6 +1,15 @@ -import { drawRect, drawText, shadeEverythingButRect } from '../utils/draw'; -import { EObjectType } from '../constants'; -import { getRectFromPoints, translateRectCoord } from '../utils/compute'; +import { + drawCircleWithFill, + drawRect, + drawText, + shadeEverythingButRect, +} from '../utils/draw'; +import { EnumModelType, EObjectType, ESubToolItem } from '../constants'; +import { + getRectFromPoints, + translatePointCoord, + translateRectCoord, +} from '../utils/compute'; import { ToolInstanceHook, ToolHooksFunc, @@ -8,9 +17,13 @@ import { editBaseElementWhenMouseDown, updateEditingRectWhenMouseMove, } from './base'; -import { EObjectStatus } from '../type'; +import { EObjectStatus, EPromptType, PromptItem } from '../type'; import { hexToRgba } from '../utils/color'; -import { ANNO_FILL_ALPHA } from '../constants/render'; +import { + ANNO_FILL_ALPHA, + PROMPT_FILL_COLOR, + PROMPT_STROKE_COLOR, +} from '../constants/render'; const useRectangle: ToolInstanceHook = ({ contentMouse, @@ -26,6 +39,8 @@ const useRectangle: ToolInstanceHook = ({ addObject, getAnnotColor, displayOptionsResult, + categories, + onAiAnnotation, }) => { const renderObject: ToolHooksFunc.RenderObject = ({ object, @@ -42,10 +57,14 @@ const useRectangle: ToolInstanceHook = ({ if (drawData.isBatchEditing) { if ( object.status === EObjectStatus.Unchecked && - !editState.isCtrlPressed + (!editState.isCtrlPressed || + drawData.selectedModel === EnumModelType.IVP) ) return; - if (editState.isCtrlPressed) { + if ( + editState.isCtrlPressed && + drawData.selectedModel === EnumModelType.Detection + ) { if (object.status !== EObjectStatus.Unchecked) { strokeColor = hexToRgba(color, 0.8); strokeDash = [2]; @@ -69,10 +88,12 @@ const useRectangle: ToolInstanceHook = ({ // draw text if (displayOptionsResult?.showBoxText) { + const labelName = + categories.find((c) => c.id === object.labelId)?.name || ''; const label = object?.conf && object.conf > 0 && object.conf < 1 - ? `${object.label}(${object.conf.toFixed(3)})` - : object.label; + ? `${labelName}(${object.conf.toFixed(3)})` + : labelName; drawText( canvasRef.current!, label || '', @@ -142,8 +163,112 @@ const useRectangle: ToolInstanceHook = ({ } }; - const renderPrompt: ToolHooksFunc.RenderPrompt = () => { - // nothing in rect + const renderPrompt: ToolHooksFunc.RenderPrompt = ({ prompt }) => { + // draw creating prompt + if (prompt.creatingPrompt) { + const strokeColor = prompt.creatingPrompt.isPositive + ? PROMPT_STROKE_COLOR.POSITIVE + : PROMPT_STROKE_COLOR.NEGATIVE; + const fillColor = prompt.creatingPrompt.isPositive + ? PROMPT_FILL_COLOR.POSITIVE + : PROMPT_FILL_COLOR.NEGATIVE; + + switch (prompt.creatingPrompt.type) { + case EPromptType.Rect: { + const { startPoint } = prompt.creatingPrompt; + const rect = getRectFromPoints( + startPoint!, + { + x: contentMouse.elementX, + y: contentMouse.elementY, + }, + { + width: contentMouse.elementW, + height: contentMouse.elementH, + }, + ); + const canvasCoordRect = translateRectCoord(rect, { + x: -imagePos.current.x, + y: -imagePos.current.y, + }); + drawRect( + activeCanvasRef.current, + canvasCoordRect, + strokeColor, + 2, + [0], + fillColor, + ); + break; + } + case EPromptType.Point: { + if (!prompt.creatingPrompt.point) break; + const canvasCoordPoint = translatePointCoord( + prompt.creatingPrompt.point, + { + x: -imagePos.current.x, + y: -imagePos.current.y, + }, + ); + drawCircleWithFill( + activeCanvasRef.current!, + canvasCoordPoint, + 4, + prompt.creatingPrompt.isPositive + ? PROMPT_FILL_COLOR.POSITIVE + : PROMPT_FILL_COLOR.NEGATIVE, + 2, + '#fff', + ); + } + default: + break; + } + } + + // draw existing prompts + if (prompt.promptsQueue) { + prompt.promptsQueue.forEach((item) => { + switch (item.type) { + case EPromptType.Rect: { + const canvasCoordRect = translateRectCoord(item.rect!, { + x: -imagePos.current.x, + y: -imagePos.current.y, + }); + drawRect( + activeCanvasRef.current, + canvasCoordRect, + item.isPositive + ? PROMPT_STROKE_COLOR.POSITIVE + : PROMPT_STROKE_COLOR.NEGATIVE, + 2, + [0], + item.isPositive + ? PROMPT_FILL_COLOR.POSITIVE + : PROMPT_FILL_COLOR.NEGATIVE, + ); + break; + } + case EPromptType.Point: { + const canvasCoordPoint = translatePointCoord(item.point!, { + x: -imagePos.current.x, + y: -imagePos.current.y, + }); + drawCircleWithFill( + activeCanvasRef.current!, + canvasCoordPoint, + 4, + item.isPositive + ? PROMPT_FILL_COLOR.POSITIVE + : PROMPT_FILL_COLOR.NEGATIVE, + 2, + '#fff', + ); + break; + } + } + }); + } }; const startEditingWhenMouseDown: ToolHooksFunc.StartEditingWhenMouseDown = ({ @@ -167,12 +292,21 @@ const useRectangle: ToolInstanceHook = ({ const startCreatingWhenMouseDown: ToolHooksFunc.StartCreatingWhenMouseDown = ({ point, basic }) => { setDrawData((s) => { - s.activeObjectIndex = -1; - s.creatingObject = { - type: EObjectType.Rectangle, - startPoint: point, - ...basic, - }; + if (s.AIAnnotation && s.selectedModel === EnumModelType.IVP) { + s.prompt.creatingPrompt = { + type: EPromptType.Rect, + startPoint: point, + point, + isPositive: s.selectedSubTool !== ESubToolItem.NegativeVisualPrompt, + }; + } else { + s.activeObjectIndex = -1; + s.creatingObject = { + type: EObjectType.Rectangle, + startPoint: point, + ...basic, + }; + } }); return true; }; @@ -212,6 +346,64 @@ const useRectangle: ToolInstanceHook = ({ const finishCreatingWhenMouseUp: ToolHooksFunc.FinishCreatingWhenMouseUp = ({ object, }) => { + const mouse = { + x: contentMouse.elementX, + y: contentMouse.elementY, + }; + if ( + drawData.AIAnnotation && + drawData.selectedModel === EnumModelType.IVP && + drawData.prompt.creatingPrompt?.startPoint + ) { + const { startPoint } = drawData.prompt.creatingPrompt; + if (mouse.x === startPoint.x || mouse.y === startPoint.y) { + setDrawData((s) => { + s.prompt.creatingPrompt = undefined; + }); + return true; + // TODO + // if (!isInCanvas(contentMouse)) return false; + // const promptItem: PromptItem = { + // type: EPromptType.Point, + // isPositive: drawData.prompt.creatingPrompt.isPositive, + // point: startPoint, + // }; + // const promptsQueue = [ + // ...(drawData.prompt.promptsQueue || []), + // promptItem, + // ]; + // onAiAnnotation?.({ + // type: EObjectType.Rectangle, + // drawData, + // promptsQueue, + // }); + // return true; + } else { + const rect = getRectFromPoints( + drawData.prompt.creatingPrompt.startPoint as IPoint, + mouse, + { + width: contentMouse.elementW, + height: contentMouse.elementH, + }, + ); + const promptItem: PromptItem = { + type: EPromptType.Rect, + isPositive: drawData.prompt.creatingPrompt.isPositive, + rect, + }; + const promptsQueue = [ + ...(drawData.prompt.promptsQueue || []), + promptItem, + ]; + onAiAnnotation?.({ + type: EObjectType.Rectangle, + drawData, + promptsQueue, + }); + } + return true; + } if (!object || !object.startPoint) return false; // Need to check if it can form a rectangle if ( @@ -233,12 +425,12 @@ const useRectangle: ToolInstanceHook = ({ ); const newObject = { type: EObjectType.Rectangle, - label: object.label, + labelId: object.labelId, hidden: false, rect: { visible: true, ...newRect }, conf: 1, status: EObjectStatus.Commited, - color: getAnnotColor(object.label), + color: getAnnotColor(object.labelId), }; addObject(newObject); return true; diff --git a/packages/components/src/Annotator/tools/useSkeleton.ts b/packages/components/src/Annotator/tools/useSkeleton.ts index 64b788a..e1cf86b 100644 --- a/packages/components/src/Annotator/tools/useSkeleton.ts +++ b/packages/components/src/Annotator/tools/useSkeleton.ts @@ -367,7 +367,7 @@ const useSkeleton: ToolInstanceHook = ({ const updatedObjs = getKeypointsFromRect(pointObjs, newRect); const newObject = { type: EObjectType.Skeleton, - label: object.label, + labelId: object.labelId, hidden: false, color: object.color, rect: { visible: true, ...newRect }, diff --git a/packages/components/src/Annotator/type.ts b/packages/components/src/Annotator/type.ts index 70b9678..a66dfaa 100644 --- a/packages/components/src/Annotator/type.ts +++ b/packages/components/src/Annotator/type.ts @@ -1,18 +1,43 @@ import { EBasicToolItem, EElementType, + ELabelType, + EnumModelType, EObjectType, ESubToolItem, EToolType, } from './constants'; import { RectAnchor } from './utils/compute'; +export enum EActionType { + Radio = 'radio', + Checkbox = 'checkbox', + Text = 'text', +} + +export interface IAttribute { + field: string; + type: EActionType; + required: boolean; + options?: { label: string }[]; +} + +export type IAttributeValue = string | number | number[] | null; + export interface Category { id: string; name: string; + labelName?: string; + labelType?: ELabelType; + renderColor?: string; + description?: string; + attributes?: IAttribute[]; + valueType?: EActionType; + valueOptions?: { label: string }[]; } export interface BaseObject { + id?: string; /** catagory */ categoryId?: string; categoryName?: string; @@ -22,7 +47,8 @@ export interface BaseObject { /** matting url */ alpha?: string; /** - * keypoints:[x, y, z, w, visible, conf, ...]. (Needs to be split manually.) + * keypoints: [x, y, visible, conf, ...] + * (old mode)keypoints:[x, y, z, w, visible, conf, ...]. (Needs to be split manually.) * visible 0: not labeled, v=1: labeled but not visible, and v=2: labeled and visible. */ points?: number[]; @@ -33,21 +59,19 @@ export interface BaseObject { lines?: number[]; /** mask */ mask?: number[]; + /** point */ + point?: number[]; } export interface DrawObject extends BaseObject { conf?: number; - labelId?: string; - compareResult?: string; + // custom styles + customStyles?: Record; } -export interface DrawImageData { +export interface AnnoItem extends Record { id: string; url: string; - urlFullRes: string; - objects: DrawObject[]; - metadata?: Record; - caption?: string; } export enum EObjectStatus { @@ -56,25 +80,38 @@ export enum EObjectStatus { Commited, } +export interface VideoFramesData { + id: string; + list: AnnoItem[]; + objects: IAnnotationObject[][]; // objects[objectIndex][frameIndex] + activeIndex: number; +} + export interface IAnnotationObject { type: EObjectType; - label: string; + labelId: string; hidden: boolean; - color: string; // hex + color: string; + customStyles?: Record; + attributes?: IAttributeValue[]; + status: EObjectStatus; + + // value rect?: IElement; polygon?: IElement; keypoints?: { points: IElement[]; lines: number[]; }; + point?: IElement; maskRle?: number[]; maskCanvasElement?: any; alpha?: string; alphaImageElement?: any; conf?: number; - labelId?: string; - compareResult?: string; - status: EObjectStatus; + + // for video frame attribute + frameEmpty?: boolean; } export interface ICreatingMaskStep { @@ -97,34 +134,43 @@ export interface ICreatingObject extends IAnnotationObject { tempMaskSteps?: ICreatingMaskStep[]; } -export enum EMaskPromptType { +export enum EPromptType { Rect = 'rect', Point = 'point', Stroke = 'stroke', EdgeStitch = 'edgeStitch', + Modify = 'modify', } -export type MaskPromptItem = { - type: EMaskPromptType; +export type PromptItem = { + type: EPromptType; isPositive: boolean; + /** Rect */ startPoint?: IPoint; rect?: IRect; + /** Point */ point?: IPoint; + /** Stroke / EdgeStitching */ stroke?: IPoint[]; radius?: number; + /** Modify */ + polygons?: number[][]; }; export interface IPrompt { - creatingMask?: MaskPromptItem; - maskPrompts?: MaskPromptItem[]; - segmentationClicks?: { - point: IPoint; - isPositive: boolean; - }[]; - segmentationMask?: string; + creatingPrompt?: PromptItem; + promptsQueue?: PromptItem[]; + sessionId?: string; activeRectWhileLoading?: IRect; } +export interface IEditingAttribute { + index: number; // Object Index || -1 + labelId: string; + attributes: IAttribute[]; + values?: IAttributeValue[]; +} + /** * Need to be saved in history */ @@ -135,16 +181,24 @@ export interface DrawData { selectedTool: EToolType; selectedSubTool: ESubToolItem; AIAnnotation: boolean; + selectedModel?: EnumModelType; brushSize: number; + pointResolution: number; /** drawed */ objectList: IAnnotationObject[]; + classifications: { + labelId: string; + labelValue: IAttributeValue; + attributes?: IAttributeValue[]; + }[]; /** drawing */ activeClassName: string; activeObjectIndex: number; creatingObject?: ICreatingObject; // - editing / creating isBatchEditing: boolean; // active while handle batch predictions by model + editingAttribute?: IEditingAttribute; limitConf: number; /** prompt actions */ @@ -166,7 +220,7 @@ export interface EditState { isLoadingError: boolean; isRequiring: boolean; allowMove: boolean; - latestLabel: string; + latestLabelId: string; startRectResizeAnchor?: RectAnchor; startElementMovePoint?: { topLeftPoint: IPoint; @@ -183,6 +237,8 @@ export interface EditState { lineIndex: number; }; imageCacheId?: string; + // TODO + imageCacheIdForPolygon?: string; isCtrlPressed: boolean; hideCreatingObject: boolean; imageDisplayOptions: IImageDisplayOptions; @@ -195,26 +251,24 @@ export const enum EditorMode { Review, } -export enum EQaAction { - Accept = 'accept', - Reject = 'reject', - ForceAccept = 'force_accept', -} - export const DEFAULT_DRAW_DATA: DrawData = { initialized: false, /** Selected tool */ selectedTool: EBasicToolItem.Drag, selectedSubTool: ESubToolItem.PenAdd, + selectedModel: undefined, AIAnnotation: false, /** drawed */ objectList: [], + classifications: [], activeObjectIndex: -1, activeClassName: '', creatingObject: undefined, + editingAttribute: undefined, brushSize: 20, + pointResolution: 0.5, prompt: {}, isBatchEditing: false, limitConf: 0, @@ -235,7 +289,7 @@ export const DEFAULT_EDIT_STATE: EditState = { isLoadingError: false, isRequiring: false, allowMove: false, - latestLabel: '', + latestLabelId: '', startRectResizeAnchor: undefined, startElementMovePoint: undefined, focusObjectIndex: -1, diff --git a/packages/components/src/Annotator/utils/base64.ts b/packages/components/src/Annotator/utils/base64.ts index 7dac5e3..22a3320 100644 --- a/packages/components/src/Annotator/utils/base64.ts +++ b/packages/components/src/Annotator/utils/base64.ts @@ -42,6 +42,11 @@ export const isBlobUrl = (str: string) => { return blobUrlRegex.test(str); }; +export const isHttpsUrl = (str: string) => { + const httpsRegex = /^https?:\/\//i; + return httpsRegex.test(str); +}; + export const getImgBase64ByBlob = (blobUrl: Blob) => { return new Promise((resolve, reject) => { const fileReader = new FileReader(); diff --git a/packages/components/src/Annotator/utils/color.ts b/packages/components/src/Annotator/utils/color.ts index a371ec5..eb0adde 100644 --- a/packages/components/src/Annotator/utils/color.ts +++ b/packages/components/src/Annotator/utils/color.ts @@ -83,19 +83,10 @@ export const createColorList = (count: number) => { return colors; }; -export const getCategoryColors = (list: string[], cur?: string) => { +export const getCategoryColors = (list: string[]) => { if (!list.length) return {}; const sortList = [...list]; - if (cur === 'All') { - sortList.shift(); - } else if (cur) { - // Move cur to the first position in the array. - const curIndex = sortList.findIndex((item) => item === cur); - sortList.splice(curIndex, 1); - sortList[0] = cur; - } - const colors = createColorList(sortList.length); const result: Record = {}; sortList.forEach((item, index) => { diff --git a/packages/components/src/Annotator/utils/compute.ts b/packages/components/src/Annotator/utils/compute.ts index 7ef7f63..1493390 100644 --- a/packages/components/src/Annotator/utils/compute.ts +++ b/packages/components/src/Annotator/utils/compute.ts @@ -1,18 +1,12 @@ import { - AnnotationType, EElementType, EObjectType, KEYPOINTS_VISIBLE_TYPE, } from '../constants'; -import { - BaseObject, - DrawData, - IAnnotationObject, - MaskPromptItem, -} from '../type'; +import { DrawData, IAnnotationObject, PromptItem } from '../type'; import { CursorState } from 'ahooks/lib/useMouse'; import { rgbArrayToRgba, rgbaToRgbArray } from './color'; -import { cloneDeep, isNumber } from 'lodash'; +import { cloneDeep, isEqual, isNumber } from 'lodash'; /** * Calculate the scaled width and height. @@ -116,6 +110,27 @@ export const getSegmentationPoints = ( return groups; }; +export const translatePointGroupsToPoints = ( + pointGroups: number[][], + naturalSize: ISize, + clientSize: ISize, +): IPoint[][] => { + const groups: IPoint[][] = []; + pointGroups.forEach((nums) => { + const points = []; + for (let i = 0; i < nums.length; i += 2) { + const point = getCanvasPoint( + [nums[i], nums[i + 1]], + naturalSize, + clientSize, + ); + points.push(point); + } + groups.push(points); + }); + return groups; +}; + /** * translate points to rect * @param startPoint @@ -270,6 +285,22 @@ export const translateRectZoom = ( height: (rect.height * toSize.height) / fromSize.height, }); +/** + * translate rect to points + * @param theRect + * @param fromSize + * @param toSize + * @returns + */ +export const translateRectToPointsArray = ( + theRect: IRect, + fromSize: ISize, + toSize: ISize, +): number[] => { + const rect = translateRectZoom(theRect, fromSize, toSize); + return [rect.x, rect.y, rect.x + rect.width, rect.y + rect.height]; +}; + /** * zoom point size * @param point @@ -285,6 +316,25 @@ export const translatePointZoom = ( y: (point.y * toSize.height) / formSize.height, }); +/** + * transtlate points to rect + * @param box + * @param size + * @returns + */ +export const translatePointsToRect = ( + points: [number, number, number, number], + formSize: ISize, + toSize: ISize, +): IRect => ({ + x: ((points[0] || 0) / formSize.width) * toSize.width, + y: ((points[1] || 0) / formSize.height) * toSize.height, + width: + (((points[2] || 0) - (points[0] || 0)) / formSize.width) * toSize.width, + height: + (((points[3] || 0) - (points[1] || 0)) / formSize.height) * toSize.height, +}); + /** * transtlate bounding box to rect * @param box @@ -310,6 +360,8 @@ export const translateAbsBBoxToRect = (box: IBoundingBox): IRect => ({ /** * format points + * keypoints: [x, y, z, w, visible, conf, ...] + * visible 0: not labeled, v=1: labeled but not visible, and v=2: labeled and visible. * @param box * @param size * @returns @@ -371,6 +423,71 @@ export const translatePointObjsToPointAttrs = ( }; }; +/** + * format points (new model) + * keypoints: [x, y, visible, conf, ...] + * visible 0: not labeled, v=1: labeled but not visible, and v=2: labeled and visible. + * @param box + * @param size + * @returns + */ +export const newTranslatePointsToPointObjs = ( + points: number[], + pointNames: string[], + pointColors: string[], + naturalSize: ISize, + clientSize: ISize, +): IElement[] => { + const pointList = []; + for (let i = 0; i * 4 < points.length; i++) { + const { x, y } = getCanvasPoint( + [points[i * 4], points[i * 4 + 1]], + naturalSize, + clientSize, + ); + const color = rgbArrayToRgba(pointColors.slice(i * 3, i * 3 + 3), 1); + const point = { + x, + y, + visible: points[i * 4 + 2], + color, + name: pointNames[i], + }; + pointList.push(point); + } + return pointList; +}; + +export const newTranslatePointObjsToPointAttrs = ( + pointObjs: IElement[], + naturalSize: ISize, + clientSize: ISize, +): { + points: number[]; + pointNames: string[]; + pointColors: string[]; +} => { + const points = []; + const pointNames = []; + const pointColors = []; + + for (let i = 0; i < pointObjs.length; i++) { + const point = pointObjs[i]; + const { x, y } = point; + const rgb = rgbaToRgbArray(point.color!); + const naturalPoint = getNaturalPoint([x, y], naturalSize, clientSize); + points.push(naturalPoint.x, naturalPoint.y, point.visible, 1); + pointNames.push(point.name!); + pointColors.push(rgb[0] || '255', rgb[1] || '255', rgb[2] || '255'); + } + + return { + points, + pointNames, + pointColors, + }; +}; + /** * Determine if two rects are the same.(Only compare the decimal places after the second digit) * @param aRect @@ -541,7 +658,7 @@ export const judgeFocusOnSingleObject = ( object: IAnnotationObject, clientSize?: ISize, ): boolean => { - if (object.hidden) { + if (object.hidden || object.frameEmpty) { return false; } @@ -1074,43 +1191,33 @@ export const isValidRect = (rect: IRect) => { }; // TODO: How to confirm ObjectType -export const getObjectType = ( - obj: IAnnotationObject, - displayType?: AnnotationType, -): EObjectType => { - if (obj.maskRle && (!displayType || displayType === AnnotationType.Mask)) { +export const getObjectType = (obj: IAnnotationObject): EObjectType => { + if (obj.maskRle) { return EObjectType.Mask; } - if (obj.alpha && (!displayType || displayType === AnnotationType.Matting)) { + if (obj.alpha) { return EObjectType.Matting; } - if ( - obj.keypoints && - (!displayType || displayType === AnnotationType.KeyPoints) - ) { + if (obj.keypoints) { return EObjectType.Skeleton; } - if ( - obj.polygon && - (!displayType || displayType === AnnotationType.Segmentation) - ) { + if (obj.polygon) { return EObjectType.Polygon; } - if ( - obj.rect && - isValidRect(obj.rect) && - (!displayType || displayType === AnnotationType.Detection) - ) { + if (obj.point) { + return EObjectType.Point; + } + if (obj.rect && isValidRect(obj.rect)) { return EObjectType.Rectangle; } return EObjectType.Custom; }; -export const translatePolygonsToSegmentation = ( +export const translatePolygonsToPointsArrayGroup = ( polygons: IElement, naturalSize: ISize, clientSize: ISize, -): string => { +): number[][] => { const arr = polygons.group.map((polygon) => { return polygon.reduce((acc: number[], point: IPoint) => { const { x, y } = point; @@ -1118,7 +1225,19 @@ export const translatePolygonsToSegmentation = ( return acc.concat([naturalPoint.x, naturalPoint.y]); }, []); }); + return arr; +}; +export const translatePolygonsToSegmentation = ( + polygons: IElement, + naturalSize: ISize, + clientSize: ISize, +): string => { + const arr = translatePolygonsToPointsArrayGroup( + polygons, + naturalSize, + clientSize, + ); const res = arr .map((polygon) => { @@ -1129,55 +1248,6 @@ export const translatePolygonsToSegmentation = ( return res; }; -export const translateObjectsToAnnotations = ( - objectList: IAnnotationObject[], - naturalSize: ISize, - clientSize: ISize, - needNormalizeBbox: boolean = true, -): BaseObject[] => { - const annotations = objectList.map((obj) => { - const { label, rect, keypoints, polygon, maskRle } = obj; - const annoObj = { - categoryName: label, - }; - if (rect) { - Object.assign(annoObj, { - boundingBox: needNormalizeBbox - ? translateRectToBoundingBox(rect, clientSize) - : translateRectToAbsBbox(rect), - }); - } - if (keypoints) { - Object.assign(annoObj, { - lines: keypoints.lines, - ...translatePointObjsToPointAttrs( - keypoints.points, - naturalSize, - clientSize, - ), - }); - } - if (polygon) { - const segmentation = translatePolygonsToSegmentation( - polygon, - naturalSize, - clientSize, - ); - Object.assign(annoObj, { - segmentation, - }); - } - if (maskRle) { - Object.assign(annoObj, { - mask: maskRle, - }); - } - return annoObj; - }); - - return annotations; -}; - export const getClosestPointOnLineSegment = ( point: IPoint, lineStart: IPoint, @@ -1346,7 +1416,7 @@ export const translateAnnotCoord = ( annoObj: IAnnotationObject, newCoordOrigin: IPoint, ): IAnnotationObject => { - const { rect, polygon, keypoints } = annoObj; + const { rect, polygon, keypoints, point } = annoObj; const newAnnoObj = { ...annoObj }; if (rect) { @@ -1379,6 +1449,13 @@ export const translateAnnotCoord = ( }; } + if (point) { + newAnnoObj.point = { + ...point, + ...translatePointCoord(point, newCoordOrigin), + }; + } + return newAnnoObj; }; @@ -1416,15 +1493,18 @@ export const scaleObject = ( }); newObj.polygon = { ...newObj.polygon, group: newGroups }; } + if (newObj.point) { + const newPoint = translatePointZoom(newObj.point, preSize, curSize); + newObj.point = { ...newObj.point, ...newPoint }; + } return newObj; }; - const scalePromptItem = ( - promptItem: MaskPromptItem, + promptItem: PromptItem, preSize: ISize, curSize: ISize, -): MaskPromptItem => { - const { point, startPoint, rect, stroke } = promptItem; +): PromptItem => { + const { point, startPoint, rect, stroke, polygons } = promptItem; const scaledPromptItem = { ...promptItem }; if (point) { Object.assign(scaledPromptItem, { @@ -1448,9 +1528,43 @@ const scalePromptItem = ( }), }); } + if (polygons) { + Object.assign(scaledPromptItem, { + polygons: polygons.map((polygon) => { + const res = []; + for (let i = 0; i < polygon.length; i += 2) { + const point = { x: polygon[i], y: polygon[i + 1] }; + const scaledPoint = translatePointZoom(point, preSize, curSize); + res.push(scaledPoint.x, scaledPoint.y); + } + return res; + }), + }); + } return scaledPromptItem; }; +/** + * Scale frames objects + * @param preSize + * @param curSize + */ +export const scaleFramesObjects = ( + framesObjects: IAnnotationObject[][], + preSize: ISize, + curSize: ISize, +) => { + const updateFramesObjects = cloneDeep(framesObjects); + return updateFramesObjects.map((objs) => { + if (objs) { + return objs.map((obj) => { + return obj ? scaleObject(obj, preSize, curSize) : obj; + }); + } + return objs; + }); +}; + /** * Scale draw data * @param preSize @@ -1511,34 +1625,19 @@ export const scaleDrawData = ( } } - if (updateDrawData.prompt.segmentationClicks) { - updateDrawData.prompt.segmentationClicks = - updateDrawData.prompt.segmentationClicks.map((click) => { - if (click.point) { - const newPoint = translatePointZoom(click.point, preSize, curSize); - return { - ...click, - point: newPoint, - }; - } - return click; - }); - } - - if (updateDrawData.prompt.creatingMask) { - updateDrawData.prompt.creatingMask = scalePromptItem( - updateDrawData.prompt.creatingMask, + if (updateDrawData.prompt.creatingPrompt) { + updateDrawData.prompt.creatingPrompt = scalePromptItem( + updateDrawData.prompt.creatingPrompt, preSize, curSize, ); } - if (updateDrawData.prompt.maskPrompts) { - updateDrawData.prompt.maskPrompts = updateDrawData.prompt.maskPrompts?.map( - (item) => { + if (updateDrawData.prompt.promptsQueue) { + updateDrawData.prompt.promptsQueue = + updateDrawData.prompt.promptsQueue?.map((item) => { return scalePromptItem(item, preSize, curSize); - }, - ); + }); } if (updateDrawData.prompt.activeRectWhileLoading) { @@ -1552,6 +1651,41 @@ export const scaleDrawData = ( return updateDrawData; }; +export const convertFrameObjectsIntoFramesObjects = ( + currFrameObjects: IAnnotationObject[], + framesObjects: IAnnotationObject[][], + frameCount: number, + activeIndex: number, +) => { + 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; + } + let resultObject = obj; + if (frameIdx > activeIndex) { + // frame change to after active frame + resultObject = isEqual(obj, objectframes[activeIndex]) ? item : obj; + } + return { + ...resultObject, + type: item.type, + labelId: item.labelId, + hidden: item.hidden, + color: item.color, + customStyles: item.customStyles, + attributes: item.attributes, + status: item.status, + frameEmpty: obj?.frameEmpty || Boolean(!obj), + }; + }); + }); + return tempObjects; +}; + export const getVisibleAreaForImage = ( imagePos: IPoint, clientSize: ISize, diff --git a/packages/components/src/Annotator/view.tsx b/packages/components/src/Annotator/view.tsx index 7719520..9942556 100755 --- a/packages/components/src/Annotator/view.tsx +++ b/packages/components/src/Annotator/view.tsx @@ -1,10 +1,9 @@ import React, { useEffect, useMemo, useRef, useState } from 'react'; -import { AnnotationType, DisplayOption } from './constants'; +import { DisplayOption } from './constants'; import { useImmer } from 'use-immer'; import { cloneDeep } from 'lodash'; import useHistory from './hooks/useHistory'; import useObjects from './hooks/useObjects'; -import usePreviousState from './hooks/usePreviousState'; import { BaseObject, Category, @@ -13,38 +12,35 @@ import { DrawData, EditState, EditorMode, - IAnnotationObject, - DrawImageData, + AnnoItem, DrawObject, } from './type'; import useColor from './hooks/useColor'; import useMouseCursor from './hooks/useMouseCursor'; import useCanvasRender from './hooks/useCanvasRender'; import useDataEffect from './hooks/useDataEffect'; -import { RenderStyles, useToolInstances } from './tools/base'; +import { useToolInstances } from './tools/base'; import { zoomImgSize } from './utils/compute'; import { CursorState } from 'ahooks/lib/useMouse'; import { ImageView } from './components/ImageView'; import './index.less'; +import useTranslate from './hooks/useTranslate'; export interface ViewProps { + isOldMode?: boolean; // is old dataset design mode categories: Category[]; - data: DrawImageData; + data: AnnoItem; objectsFilter?: (imageData: any) => BaseObject[]; - getCustomObjectStyles?: ( - object: IAnnotationObject, - color: string, - ) => Partial; currentSize?: ISize; wrapWidth?: number; wrapHeight?: number; minHeight?: number; - displayAnnotationType?: AnnotationType; displayOptionsResult?: { [key in DisplayOption]?: boolean }; } const View: React.FC = (props) => { const { + isOldMode, categories, data, currentSize, @@ -52,8 +48,6 @@ const View: React.FC = (props) => { wrapHeight, minHeight, objectsFilter, - getCustomObjectStyles, - displayAnnotationType, displayOptionsResult, } = props; @@ -116,14 +110,19 @@ const View: React.FC = (props) => { return [mouse, mouse]; }, [clientSize]); - const [preClientSize, clearPreClientSize] = - usePreviousState(clientSize); - - const { labelColors, getAnnotColor } = useColor({ + const { getAnnotColor } = useColor({ categories, editState, }); + const { translateToObject } = useTranslate({ + isOldMode, + clientSize, + naturalSize, + categories, + getAnnotColor, + }); + const { clearHistory, updateHistory, setDrawDataWithHistory } = useHistory({ clientSize, naturalSize, @@ -133,15 +132,13 @@ const View: React.FC = (props) => { const { addObject, initObjectList, updateObject } = useObjects({ annotations, setAnnotations, - clientSize, - naturalSize, drawData, setDrawData, setDrawDataWithHistory, - editState, setEditState, mode: EditorMode.View, - displayAnnotationType, + translateToObject, + updateHistory, }); const { updateMouseCursor } = useMouseCursor({ @@ -170,6 +167,7 @@ const View: React.FC = (props) => { updateMouseCursor, displayOptionsResult, getAnnotColor, + categories, }); const { updateRender } = useCanvasRender({ @@ -183,22 +181,18 @@ const View: React.FC = (props) => { activeCanvasRef, imgRef, objectHooksMap, - getCustomObjectStyles, }); // ================================================================================================================= // Effects // ================================================================================================================= - const { resetDataWithImageData, rebuildDrawData } = useDataEffect({ + const { resetDataWithImageData } = useDataEffect({ imagePos, clientSize, - preClientSize, - clearPreClientSize, naturalSize, annotations, setAnnotations, - labelColors, drawData, setDrawData, editState, @@ -207,6 +201,7 @@ const View: React.FC = (props) => { updateRender, clearHistory, objectsFilter, + labelOptions: categories, }); /** Reset data when hiding the editor or switching images */ @@ -216,8 +211,8 @@ const View: React.FC = (props) => { /** Custom options changed */ useEffect(() => { - rebuildDrawData(true); - }, [displayAnnotationType, displayOptionsResult, getCustomObjectStyles]); + updateRender(); + }, [displayOptionsResult]); const onLoadImg = (e: React.UIEvent) => { // Set natural size. diff --git a/packages/components/src/locales/en-US.ts b/packages/components/src/locales/en-US.ts index e3d09f0..462c9d3 100644 --- a/packages/components/src/locales/en-US.ts +++ b/packages/components/src/locales/en-US.ts @@ -16,16 +16,21 @@ export default { /** DDSAnnotator */ 'DDSAnnotator.save': 'Save', + 'DDSAnnotator.commit': 'Commit', 'DDSAnnotator.cancel': 'Cancel', 'DDSAnnotator.delete': 'Delete', + 'DDSAnnotator.modify': 'Modify', 'DDSAnnotator.reject': 'Reject', 'DDSAnnotator.approve': 'Approve', 'DDSAnnotator.prev': 'Previous Image', 'DDSAnnotator.next': 'Next Image', 'DDSAnnotator.exit': 'Exit', + 'DDSAnnotator.docs': 'Docs', 'DDSAnnotator.shortcuts': 'Shortcuts', 'DDSAnnotator.confidence': 'Confidence', 'DDSAnnotator.annotsList.categories': 'Categories', + 'DDSAnnotator.annotsList.labels': 'Labels', + 'DDSAnnotator.annotsList.classification': 'Classification', 'DDSAnnotator.annotsList.objects': 'Objects', 'DDSAnnotator.annotsList.hideAll': 'Hide All', 'DDSAnnotator.annotsList.showAll': 'Show All', @@ -60,6 +65,9 @@ export default { 'DDSAnnotator.subtoolbar.mask.sam.notAllow': 'Unavailable when any instance exists', 'DDSAnnotator.subtoolbar.mask.edgeStitch': 'Edge Stitching Brush', + 'DDSAnnotator.subtoolbar.visualprompt.positive': 'Positive Visual Prompt', + 'DDSAnnotator.subtoolbar.visualprompt.negative': 'Negative Visual Prompt', + 'DDSAnnotator.subtoolbar.polygon.pointResolution': 'Point Resolution', 'DDSAnnotator.zoomTool.reset': 'Reset Zoom', 'DDSAnnotator.zoomIn': 'Zoom In', 'DDSAnnotator.zoomOut': 'Zoom Out', @@ -148,11 +156,14 @@ export default { 'DDSAnnotator.smart.infoModal.action': 'Visit Our Website', 'DDSAnnotator.smart.detection.name': 'Intelligent Object Detection', 'DDSAnnotator.smart.detection.input': 'Select or enter categories', + 'DDSAnnotator.smart.ivp.name': 'Interactive Visual Prompt (iVP)', 'DDSAnnotator.smart.segmentation.name': 'Intelligent Segmentation (Polygon)', 'DDSAnnotator.smart.pose.name': 'Intelligent Pose Estimation', 'DDSAnnotator.smart.mask.name': 'Intelligent Panoramic Segmentation', 'DDSAnnotator.smart.pose.input': 'Select template', 'DDSAnnotator.smart.pose.apply': 'Apply Results', + 'DDSAnnotator.smart.ivp.desc': 'Detect the objects with visual prompt', + 'DDSAnnotator.smart.gdino.desc': 'Detect the objects with text prompt', 'DDSAnnotator.smart.annotate': 'Auto-Annotate', 'DDSAnnotator.smart.retry': 'Retry', 'DDSAnnotator.smart.modelTyle': 'Model Type', @@ -169,6 +180,8 @@ export default { 'DDSAnnotator.smart.msg.confResults': '{count} matching annotations shown', 'DDSAnnotator.smart.msg.applyConf': '{count} annotations have been retained, with the others removed.', + 'DDSAnnotator.smart.msg.positivePrompt': + 'At least one positive visual prompt is required.', 'DDSAnnotator.smart.rateLimit.title': 'Tips', 'DDSAnnotator.smart.rateLimit.content': 'Sorry, our public server is currently under low capacity and unable to process your request. Please try again later.', @@ -181,4 +194,35 @@ export default { 'DDSAnnotator.smart.tip.recover': 'Recover unselected annotations', 'DDSAnnotator.smart.tip.overlayobject': 'View overlapping annotation objects', 'DDSAnnotator.smart.tip.annotationApplied': '{count} annotations applied.', + 'DDSAnnotator.smart.tip.visualPrompt': + 'Add more visual prompts or accept current objects', + '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.edit': 'Edit label attributes', + 'DDSAnnotator.attribute.input': 'Please input', + 'DDSAnnotator.attribute.required': 'Please fill in all required fields.', + 'DDSAnnotator.attribute.newOperation.limit': + 'Please make sure to add the required label attribute before proceeding with other operations.', + 'DDSAnnotator.classification.required': + 'You have not filled in all classification questions.', + 'DDSAnnotator.label.attributes.required': + 'You have not filled in all required label attributes.', + 'DDSAnnotator.label.select': 'Select a label', + 'DDSAnnotator.model.select': 'Select a model', + 'DDSAnnotator.status.labeling': 'Labeling', + 'DDSAnnotator.status.reviewing': 'Reviewing', + 'DDSAnnotator.save.check.error': 'Pre Check Error', + 'DDSAnnotator.save.check.classification': + 'Classification #{idx} is required to have answer.', + 'DDSAnnotator.save.check.label': + 'Label ({labelName}) #{idx} is required to have manual attributes.', + 'DDSAnnotator.save.check.tip': 'Please modify first.', + + 'DDSAnnotator.video.track': 'Tracking', + 'DDSAnnotator.video.track.setting': 'Tracking settings', + 'DDSAnnotator.video.frame': 'Frames', + 'DDSAnnotator.video.track.backward': 'Backward inference frames', }; diff --git a/packages/components/src/locales/zh-CN.ts b/packages/components/src/locales/zh-CN.ts index 4b8fc9f..7e38ae9 100644 --- a/packages/components/src/locales/zh-CN.ts +++ b/packages/components/src/locales/zh-CN.ts @@ -15,16 +15,21 @@ export default { /** Annotator */ 'DDSAnnotator.save': '保存', + 'DDSAnnotator.commit': '提交', 'DDSAnnotator.cancel': '取消', 'DDSAnnotator.delete': '删除', + 'DDSAnnotator.modify': '修改', 'DDSAnnotator.reject': '拒绝', 'DDSAnnotator.approve': '通过', 'DDSAnnotator.prev': '上一张', 'DDSAnnotator.next': '下一张', 'DDSAnnotator.exit': '退出', + 'DDSAnnotator.docs': '文档', 'DDSAnnotator.shortcuts': '快捷键', 'DDSAnnotator.confidence': '置信区间', 'DDSAnnotator.annotsList.categories': '分类', + 'DDSAnnotator.annotsList.labels': '标注', + 'DDSAnnotator.annotsList.classification': '分类筛选', 'DDSAnnotator.annotsList.objects': '实例', 'DDSAnnotator.annotsList.hideAll': '隐藏全部', 'DDSAnnotator.annotsList.showAll': '显示全部', @@ -80,6 +85,9 @@ export default { 'DDSAnnotator.subtoolbar.mask.sam.notAllow': '当图中存在任意实例时, 该功能不可用', 'DDSAnnotator.subtoolbar.mask.edgeStitch': '智能边缘缝合', + 'DDSAnnotator.subtoolbar.visualprompt.positive': '正例视觉提示', + 'DDSAnnotator.subtoolbar.visualprompt.negative': '反例视觉提示', + 'DDSAnnotator.subtoolbar.polygon.pointResolution': '点密度', 'DDSAnnotator.annotsEditor.title': '修改标注实例', 'DDSAnnotator.annotsEditor.delete': '删除', 'DDSAnnotator.annotsEditor.finish': '完成', @@ -134,6 +142,7 @@ export default { '抱歉, DeepDataSpace的本地版本暂时不支持智能标注功能, 您可以前往官网了解更多信息或联系我们(deepdataspace_dm@idea.edu.cn)获取智能标注的体验通道。', 'DDSAnnotator.smart.infoModal.action': '前往官网', 'DDSAnnotator.smart.detection.name': '智能目标检测', + 'DDSAnnotator.smart.ivp.name': '交互式视觉提示 (iVP)', 'DDSAnnotator.smart.segmentation.name': '智能图像分割(多边形)', 'DDSAnnotator.smart.pose.name': '智能姿态估计', 'DDSAnnotator.smart.mask.name': '智能全景分割', @@ -143,6 +152,8 @@ export default { 'DDSAnnotator.smart.detection.input': '选择或输入类别', 'DDSAnnotator.smart.pose.input': '选择模版', 'DDSAnnotator.smart.pose.apply': '保留当前结果', + 'DDSAnnotator.smart.ivp.desc': '根据视觉提示检测任意目标', + 'DDSAnnotator.smart.gdino.desc': '输入任意描述词检测目标', 'DDSAnnotator.smart.minArea': '最小分割面积', 'DDSAnnotator.smart.iouThres': 'IoU阈值', 'DDSAnnotator.smart.segmentation.tipsInitial': @@ -155,6 +166,7 @@ export default { 'DDSAnnotator.smart.msg.labelRequired': '请至少选择一个目标类别', 'DDSAnnotator.smart.msg.confResults': '共有{count}条标注符合目标置信区间', 'DDSAnnotator.smart.msg.applyConf': '已保留{count}条标注,其他标注已移除', + 'DDSAnnotator.smart.msg.positivePrompt': '请确保至少添加一个正视觉提示', 'DDSAnnotator.smart.rateLimit.title': '提示', 'DDSAnnotator.smart.rateLimit.content': '非常抱歉,我们的公共服务器暂时负载不足,请稍后再试。', @@ -166,4 +178,31 @@ export default { 'DDSAnnotator.smart.tip.recover': '回收未选标注', 'DDSAnnotator.smart.tip.overlayobject': '查看重叠的标注对象', 'DDSAnnotator.smart.tip.annotationApplied': '已添加{count}个标注对象', + 'DDSAnnotator.smart.tip.visualPrompt': '添加更多视觉提示或接受当前结果', + 'DDSAnnotator.seg.tool': '分割工具', + 'DDSAnnotator.seg.tool.content': '接受本次分割结果.', + 'DDSAnnotator.confirm': '确认', + 'DDSAnnotator.points.editor': '关键点属性', + 'DDSAnnotator.attribute.add': '添加标签属性', + 'DDSAnnotator.attribute.edit': '编辑标签属性', + 'DDSAnnotator.attribute.input': '请输入', + 'DDSAnnotator.attribute.required': '请填写所有必填项', + 'DDSAnnotator.attribute.newOperation.limit': + '请确认添加必填标签属性后再进行其他操作', + 'DDSAnnotator.classification.required': '你还未填写所有分类筛选问题', + 'DDSAnnotator.label.attributes.required': '你还未填写所有必填的标签属性', + 'DDSAnnotator.label.select': '选择标签', + 'DDSAnnotator.model.select': '选择模型', + 'DDSAnnotator.status.labeling': '标注中', + 'DDSAnnotator.status.reviewing': '审核中', + 'DDSAnnotator.save.check.error': '预检查错误', + 'DDSAnnotator.save.check.classification': '分类筛选 #{idx} 必须有答案.', + 'DDSAnnotator.save.check.label': + '标注 ({labelName}) #{idx} 有必须手动添加的标签属性', + 'DDSAnnotator.save.check.tip': '请修改后再进行操作', + + 'DDSAnnotator.video.track': '推理', + 'DDSAnnotator.video.track.setting': '推理设置', + 'DDSAnnotator.video.frame': '帧', + 'DDSAnnotator.video.track.backward': '向后推理帧数', }; diff --git a/packages/components/tsconfig.json b/packages/components/tsconfig.json index a2c69ba..bf2a152 100644 --- a/packages/components/tsconfig.json +++ b/packages/components/tsconfig.json @@ -5,6 +5,8 @@ "paths": { "@/*": ["src/*"], "@@/*": ["../../applications/app/src/.umi/*"], + "dds-components": ["../../packages/components/src"], + "dds-components/*": ["../../packages/components/src/*"], "dds-utils/*": ["../../packages/utils/src/*"], "dds-hooks": ["../../packages/hooks/src"] } From 63eb5f39fe411ca42d64236dfffadaf432575cf8 Mon Sep 17 00:00:00 2001 From: cefeng06 Date: Fri, 29 Dec 2023 16:41:05 +0800 Subject: [PATCH 06/10] feat(quicklabel): update quicklabel component --- packages/app/src/pages/Annotator/index.tsx | 141 +----- packages/app/src/pages/Annotator/model.ts | 28 +- .../components/ImageFilter/index.less | 5 + .../components/ImageFilter/index.tsx | 63 +++ .../components/ImageList/index.less | 28 ++ .../QuickLabel/components/ImageList/index.tsx | 70 +++ .../components/QuickstartModal/index.less | 24 ++ .../components/QuickstartModal/index.tsx | 110 +++++ .../QuickLabel/hooks/useQuickLabelModel.ts | 242 +++++++++++ packages/components/src/QuickLabel/index.less | 20 + packages/components/src/QuickLabel/index.tsx | 151 +++++++ packages/components/src/QuickLabel/type.ts | 66 +++ .../src/QuickLabel/utils/adapter.ts | 401 ++++++++++++++++++ .../src/QuickLabel/utils/idConverter.ts | 41 ++ .../components/src/Upload/assets/checked.svg | 13 + .../components/src/Upload/assets/upload.svg | 4 + .../components/FilePreviewList/index.less | 78 ++++ .../components/FilePreviewList/index.tsx | 132 ++++++ packages/components/src/Upload/index.less | 100 +++++ packages/components/src/Upload/index.tsx | 234 ++++++++++ .../src/UploadPreAnno/assets/upload_file.svg | 10 + .../components/src/UploadPreAnno/index.less | 30 ++ .../components/src/UploadPreAnno/index.tsx | 54 +++ packages/components/src/index.ts | 1 + packages/components/src/locales/en-US.ts | 62 +++ packages/components/src/locales/zh-CN.ts | 60 +++ packages/utils/src/file.ts | 88 ++++ 27 files changed, 2094 insertions(+), 162 deletions(-) create mode 100644 packages/components/src/QuickLabel/components/ImageFilter/index.less create mode 100644 packages/components/src/QuickLabel/components/ImageFilter/index.tsx create mode 100644 packages/components/src/QuickLabel/components/ImageList/index.less create mode 100644 packages/components/src/QuickLabel/components/ImageList/index.tsx create mode 100644 packages/components/src/QuickLabel/components/QuickstartModal/index.less create mode 100644 packages/components/src/QuickLabel/components/QuickstartModal/index.tsx create mode 100644 packages/components/src/QuickLabel/hooks/useQuickLabelModel.ts create mode 100644 packages/components/src/QuickLabel/index.less create mode 100644 packages/components/src/QuickLabel/index.tsx create mode 100644 packages/components/src/QuickLabel/type.ts create mode 100644 packages/components/src/QuickLabel/utils/adapter.ts create mode 100644 packages/components/src/QuickLabel/utils/idConverter.ts create mode 100644 packages/components/src/Upload/assets/checked.svg create mode 100644 packages/components/src/Upload/assets/upload.svg create mode 100644 packages/components/src/Upload/components/FilePreviewList/index.less create mode 100644 packages/components/src/Upload/components/FilePreviewList/index.tsx create mode 100644 packages/components/src/Upload/index.less create mode 100644 packages/components/src/Upload/index.tsx create mode 100644 packages/components/src/UploadPreAnno/assets/upload_file.svg create mode 100644 packages/components/src/UploadPreAnno/index.less create mode 100644 packages/components/src/UploadPreAnno/index.tsx diff --git a/packages/app/src/pages/Annotator/index.tsx b/packages/app/src/pages/Annotator/index.tsx index 6bee1b9..39d7088 100644 --- a/packages/app/src/pages/Annotator/index.tsx +++ b/packages/app/src/pages/Annotator/index.tsx @@ -1,141 +1,10 @@ -import React, { useEffect, useState } from 'react'; -import { history, useModel } from '@umijs/max'; -import styles from './index.less'; -import { AnnotateEditor, EditorMode } from 'dds-components/Annotator'; -import { ImageList } from './components/ImageList'; -import { Button } from 'antd'; -import { SettingOutlined } from '@ant-design/icons'; -import { FormModal } from './components/FormModal'; -import { useLocale } from 'dds-utils/locale'; -import { useKeyPress } from 'ahooks'; -import { BaseObject } from '@/types'; +import React from 'react'; +import QuickLabel from 'dds-components/QuickLabel'; +import { useModel } from '@umijs/max'; const Page: React.FC = () => { - const { - images, - setImages, - current, - setCurrent, - categories, - setCategories, - exportAnnotations, - } = useModel('Annotator.model'); - - const { localeText } = useLocale(); - const [openModal, setModalOpen] = useState(true); - - useEffect(() => { - // const handleBeforeUnload = (event: BeforeUnloadEvent) => { - // event.preventDefault(); - // event.returnValue = - // 'The current changes will not be saved. Please export before leaving.'; - // }; - // window.addEventListener('beforeunload', handleBeforeUnload); - // return () => { - // window.removeEventListener('beforeunload', handleBeforeUnload); - // }; - }, []); - - // local test - useEffect( - () => { - // if(images.length > 0 && categories.length > 0) { - // localStorage.setItem('images', JSON.stringify(images)); - // localStorage.setItem('categories', JSON.stringify(categories)); - // console.log('>>> save localStorage'); - // } - const images = localStorage.getItem('images'); - const categories = localStorage.getItem('categories'); - if (images && categories) { - setImages(JSON.parse(images)); - setCategories(JSON.parse(categories)); - setModalOpen(false); - } - }, - // [images, categories] - [], - ); - - useKeyPress( - 'uparrow', - () => { - setCurrent(Math.max(0, current - 1)); - }, - { exactMatch: true }, - ); - - useKeyPress( - 'downarrow', - () => { - setCurrent(Math.min(current + 1, images.length - 1)); - }, - { exactMatch: true }, - ); - - return ( -
-
{ - event.stopPropagation(); - }} - onMouseUp={(event) => { - event.stopPropagation(); - }} - > - - { - setCurrent(index); - }} - /> -
-
- - {localeText('annotator.export')} - , - ]} - onAutoSave={(annos: BaseObject[], naturalSize: ISize) => { - setImages((images) => { - if (images[current]) { - images[current].objects = annos; - images[current].width = naturalSize.width; - images[current].height = naturalSize.height; - } - }); - }} - onCancel={() => history.push('/')} - /> -
-
e.stopPropagation()} - onMouseUp={(e) => e.stopPropagation()} - > - -
-
- ); + const props = useModel('Annotator.model'); + return ; }; export default Page; diff --git a/packages/app/src/pages/Annotator/model.ts b/packages/app/src/pages/Annotator/model.ts index ece9ed0..476cb7e 100644 --- a/packages/app/src/pages/Annotator/model.ts +++ b/packages/app/src/pages/Annotator/model.ts @@ -1,29 +1,5 @@ -import { useImmer } from 'use-immer'; -import { useState } from 'react'; -import { genFileNameByTimestamp, saveObejctToJsonFile } from 'dds-utils/file'; -import { convertToCocoDateset } from '@/utils/adapter'; -import { LabelImageFile } from '@/types/annotator'; -import { Category } from '@/types'; +import useQuickLabelModel from 'dds-components/QuickLabel/hooks/useQuickLabelModel'; export default () => { - const [images, setImages] = useImmer([]); - const [current, setCurrent] = useState(0); - const [categories, setCategories] = useImmer([]); - - /** Export with COCO formats*/ - const exportAnnotations = () => { - const dataset = convertToCocoDateset(images, categories); - const fileName = genFileNameByTimestamp(Date.now(), 'Annotations'); - saveObejctToJsonFile(dataset, fileName); - }; - - return { - images, - setImages, - current, - setCurrent, - categories, - setCategories, - exportAnnotations, - }; + return useQuickLabelModel(); }; diff --git a/packages/components/src/QuickLabel/components/ImageFilter/index.less b/packages/components/src/QuickLabel/components/ImageFilter/index.less new file mode 100644 index 0000000..cab1f6e --- /dev/null +++ b/packages/components/src/QuickLabel/components/ImageFilter/index.less @@ -0,0 +1,5 @@ +.dds-quicklabel-image-filter { + display: flex; + align-items: center; + gap: 10px; +} diff --git a/packages/components/src/QuickLabel/components/ImageFilter/index.tsx b/packages/components/src/QuickLabel/components/ImageFilter/index.tsx new file mode 100644 index 0000000..dd3231e --- /dev/null +++ b/packages/components/src/QuickLabel/components/ImageFilter/index.tsx @@ -0,0 +1,63 @@ +import { ClearOutlined } from '@ant-design/icons'; +import { Button, Select } from 'antd'; +import { Category } from '@/Annotator/type'; +import { globalLocaleText } from 'dds-utils/locale'; +import './index.less'; + +interface IProps { + categories: Category[]; + filterCategoryName: string | null; + onSelectFilter: (name: string) => void; + onClearFilter: () => void; +} + +const ImageFilter: React.FC = ({ + categories, + filterCategoryName, + onSelectFilter, + onClearFilter, +}) => { + return ( +
+
{globalLocaleText('quicklabel.imageFilter')}
+ +
+ ); +}; + +export default ImageFilter; diff --git a/packages/components/src/QuickLabel/components/ImageList/index.less b/packages/components/src/QuickLabel/components/ImageList/index.less new file mode 100644 index 0000000..d9d6615 --- /dev/null +++ b/packages/components/src/QuickLabel/components/ImageList/index.less @@ -0,0 +1,28 @@ +.dds-quicklabel-options-list { + height: 100vh; + + &-virtual { + border-radius: 8px; + } + + &-image { + margin: 8px 0; + width: 100%; + height: 120px; + box-sizing: border-box; + object-fit: cover; + border-radius: 8px; + background-color: #fff; + cursor: pointer; + transition: transform 0.3s ease; + } + + &-image:hover { + transform: scale(0.95); + } + + &-image-selected { + border: 3px solid #fff; + border-radius: 8px; + } +} diff --git a/packages/components/src/QuickLabel/components/ImageList/index.tsx b/packages/components/src/QuickLabel/components/ImageList/index.tsx new file mode 100644 index 0000000..9424f53 --- /dev/null +++ b/packages/components/src/QuickLabel/components/ImageList/index.tsx @@ -0,0 +1,70 @@ +import VirtualList from 'rc-virtual-list'; +import { useCallback, useEffect, useState } from 'react'; +import { QsAnnotatorFile } from '../../type'; +import './index.less'; + +interface IProps { + images: QsAnnotatorFile[]; + selected: number; + onImageSelected: (index: number) => void; +} + +export const ImageList: React.FC = ({ + images, + selected, + onImageSelected, +}: IProps) => { + const [containerHeight, setContainerHeight] = useState(0); + const itemHeight = 120; + + const handleResize = useCallback(() => { + const container = document.getElementById('image-options-container'); + if (container) { + const height = container.offsetHeight || 0; + setContainerHeight(height - 56); + } + }, []); + + useEffect(() => { + handleResize(); + window.addEventListener('resize', handleResize); + return () => { + window.removeEventListener('resize', handleResize); + }; + }, [handleResize]); + + const handleImageSelect = (index: number) => { + if (index < 0 || index >= images.length) return; + onImageSelected(index); + }; + + return ( +
+ + {(item, index) => { + const selectedClassName = + index === selected + ? 'dds-quicklabel-options-list-image-selected' + : ''; + return ( +
+ handleImageSelect(index)} + /> +
+ ); + }} +
+
+ ); +}; diff --git a/packages/components/src/QuickLabel/components/QuickstartModal/index.less b/packages/components/src/QuickLabel/components/QuickstartModal/index.less new file mode 100644 index 0000000..a49a82c --- /dev/null +++ b/packages/components/src/QuickLabel/components/QuickstartModal/index.less @@ -0,0 +1,24 @@ +.dds-quicklabel-subtitle { + font-size: 16px; + font-weight: 500; + margin: 20px 0 10px; +} + +.dds-quicklabel-upload { + width: 100%; + height: 360px; +} + +.dds-quicklabel-upload-tip { + margin: 10px 0 0; + background-color: transparent; + border-width: 0; +} + +.dds-quicklabel-upload-preannot-btn { + width: 100%; + height: 42px; + font-weight: 600; + border-radius: 5px; + background: #fff; +} diff --git a/packages/components/src/QuickLabel/components/QuickstartModal/index.tsx b/packages/components/src/QuickLabel/components/QuickstartModal/index.tsx new file mode 100644 index 0000000..011a4bc --- /dev/null +++ b/packages/components/src/QuickLabel/components/QuickstartModal/index.tsx @@ -0,0 +1,110 @@ +import { Alert, Button, Modal, UploadFile as AntdUploadFile } from 'antd'; +import Upload, { UploadFile } from 'dds-components/Upload'; +import { UploadOutlined } from '@ant-design/icons'; +import { UploadChangeParam } from 'antd/es/upload'; +import UploadPreAnno from 'dds-components/UploadPreAnno'; +import { globalLocaleText } from 'dds-utils/locale'; +import './index.less'; + +const MAX_COUNT = 1000; +const MAX_SIZE = 10; + +interface IProps { + open: boolean; + isInit: boolean; + fileList: UploadFile[]; + setFileList: React.Dispatch>; + onClickOk: () => void; + onClickCancel: () => void; + limitRemoveFile?: (index: number) => boolean; + limitClose?: boolean; + okText?: string; + uploadPreAnnot: AntdUploadFile[]; + onChangePreAnnotFile: (info: UploadChangeParam>) => void; + onRemovePreAnnotFile: (file: AntdUploadFile) => void; +} + +const QuickstartModal: React.FC = ({ + open, + isInit, + fileList, + setFileList, + onClickOk, + onClickCancel, + limitRemoveFile, + okText, + limitClose, + uploadPreAnnot, + onChangePreAnnotFile, + onRemovePreAnnotFile, +}: IProps) => { + return ( +
e.stopPropagation()} + onMouseUp={(e) => e.stopPropagation()} + > + + +
+ {globalLocaleText('quicklabel.formModal.importImages')} +
+
+ +
+ + {isInit && ( + + + + )} +
+
+ ); +}; + +export default QuickstartModal; diff --git a/packages/components/src/QuickLabel/hooks/useQuickLabelModel.ts b/packages/components/src/QuickLabel/hooks/useQuickLabelModel.ts new file mode 100644 index 0000000..30467da --- /dev/null +++ b/packages/components/src/QuickLabel/hooks/useQuickLabelModel.ts @@ -0,0 +1,242 @@ +import { useCallback, useMemo, useState } from 'react'; +import { Updater, useImmer } from 'use-immer'; +import { genFileNameByTimestamp, saveObejctToJsonFile } from 'dds-utils/file'; +import { + convertToCocoDateset, + convertCocoDatasetToAnnotStates, + validateCocoData, +} from '../utils/adapter'; +import { COCO, QsAnnotatorFile } from '../type'; +import { Category } from 'dds-components/Annotator'; +import { history } from '@umijs/max'; +import { + message, + notification, + UploadFile as AntdUploadFile, + UploadProps, +} from 'antd'; +import { globalLocaleText } from 'dds-utils/locale'; +import { UploadFile } from 'dds-components/Upload'; +import { UploadChangeParam } from 'antd/es/upload'; + +const INIT_PRE_ANNOT = { + info: {}, + images: [], + annotations: [], + categories: [], +}; + +export interface QuickLabelModel { + qsModalVisible: boolean; + setQsModalVisible: React.Dispatch>; + uploadFiles: UploadFile[]; + setUploadFiles: React.Dispatch>; + images: QsAnnotatorFile[]; + setImages: Updater; + filterImages: QsAnnotatorFile[]; + onClickQuickstart: () => void; + onCancelUploadFiles: () => void; + onConfirmUploadFiles: () => void; + limitRemoveFile: (index: number) => boolean; + current: number; + setCurrent: React.Dispatch>; + categories: Category[]; + setCategories: Updater; + filterCategoryName: string | null; + setFilterCategoryName: Updater; + exportAnnotations: () => Promise; + uploadPreAnnot: AntdUploadFile[]; + onChangePreAnnotFile: (info: UploadChangeParam>) => void; + onRemovePreAnnotFile: (file: AntdUploadFile) => void; + onSelectFilterCategory: (name: string) => void; + onClearFilterCategory: () => void; +} + +export default (): QuickLabelModel => { + const [images, setImages] = useImmer([]); + const [current, setCurrent] = useState(-1); + + const [info, setInfo] = useState({ + year: new Date().getFullYear(), + version: '1.0', + description: 'Annotations in COCO format, labeled by DeepDataSpace', + contributor: '', + date_created: new Date().toISOString(), + }); + + const [categories, setCategories] = useImmer([ + { + id: 'default', + name: 'default', + }, + ]); + + const [filterCategoryName, setFilterCategoryName] = useImmer( + null, + ); + + const filterImages = useMemo(() => { + if (!filterCategoryName) return images; + return images.filter((image) => + image.objects.find( + (object) => object.categoryName === filterCategoryName, + ), + ); + }, [images, filterCategoryName]); + + const [uploadFiles, setUploadFiles] = useState([]); + const [qsModalVisible, setQsModalVisible] = useState(false); + + const [uploadPreAnnot, setUploadPreAnnot] = useState([]); + + const [preAnnots, setPreAnnots] = useImmer(INIT_PRE_ANNOT); + + const syncUploadFilesToImage = () => { + const confirmedImages: QsAnnotatorFile[] = uploadFiles.map( + (item, index) => { + const image = images.find((image) => image.id === item.id); + return { + objects: [], + urlFullRes: item.url, + ...item, + ...image, + originalIndex: index, + }; + }, + ); + + const { + info: updatedInfo, + categories: updatedCategories, + images: updatedImages, + } = convertCocoDatasetToAnnotStates(preAnnots, { + info, + categories, + images: confirmedImages, + }); + + setInfo(updatedInfo); + setCategories(updatedCategories); + setImages(updatedImages); + }; + + const onClickQuickstart = () => { + syncUploadFilesToImage(); + setQsModalVisible(false); + setCurrent(current > -1 ? current : 0); + history.push('/quickstart'); + }; + + const onCancelUploadFiles = () => { + if (images.length <= 0) { + return; + } + setUploadFiles(images); + setQsModalVisible(false); + }; + + const onConfirmUploadFiles = () => { + syncUploadFilesToImage(); + setQsModalVisible(false); + setCurrent(-1); + }; + + const hasAnnotsOnImage = useCallback( + (index: number) => { + const image = images.find((item) => item.id === uploadFiles[index].id); + return image && image.objects.length > 0; + }, + [images, uploadFiles], + ); + + const limitRemoveFile = useCallback( + (index: number) => { + if (hasAnnotsOnImage(index)) { + notification.error({ + message: globalLocaleText('quicklabel.formModal.deleteImage.title'), + description: globalLocaleText( + 'quicklabel.formModal.deleteImage.desc', + ), + duration: 3, + }); + return true; + } + return false; + }, + [hasAnnotsOnImage], + ); + + /** Export with COCO formats*/ + const exportAnnotations = async () => { + const dataset = await convertToCocoDateset({ info, images, categories }); + const fileName = genFileNameByTimestamp(Date.now(), 'Annotations'); + saveObejctToJsonFile(dataset, fileName); + }; + + const onChangePreAnnotFile: UploadProps['onChange'] = ({ + file, + fileList, + }) => { + if (fileList.length === 0 || !fileList[0].originFileObj) return; + + const fileReader = new FileReader(); + fileReader.readAsText(fileList[0].originFileObj); + + fileReader.onload = function (event) { + const parsedData = JSON.parse(event.target?.result as string); + const result = validateCocoData(parsedData); + if (result.success) { + setUploadPreAnnot([file]); + setPreAnnots(parsedData); + } else { + message.error(result.message); + } + }; + }; + + const onRemovePreAnnotFile = (file: AntdUploadFile) => { + const index = uploadPreAnnot.findIndex((item) => item.uid === file.uid); + uploadPreAnnot.splice(index, 1); + setUploadPreAnnot([...uploadPreAnnot]); + setPreAnnots(INIT_PRE_ANNOT); + }; + + const onSelectFilterCategory = (name: string) => { + setFilterCategoryName(name); + setCurrent(-1); + }; + + const onClearFilterCategory = () => { + setFilterCategoryName(null); + setCurrent(-1); + }; + + return { + qsModalVisible, + setQsModalVisible, + uploadFiles, + setUploadFiles, + + images, + setImages, + filterImages, + onClickQuickstart, + onCancelUploadFiles, + onConfirmUploadFiles, + limitRemoveFile, + + current, + setCurrent, + categories, + setCategories, + filterCategoryName, + setFilterCategoryName, + exportAnnotations, + + uploadPreAnnot, + onChangePreAnnotFile, + onRemovePreAnnotFile, + onSelectFilterCategory, + onClearFilterCategory, + }; +}; diff --git a/packages/components/src/QuickLabel/index.less b/packages/components/src/QuickLabel/index.less new file mode 100644 index 0000000..bef233b --- /dev/null +++ b/packages/components/src/QuickLabel/index.less @@ -0,0 +1,20 @@ +.dds-quicklabel { + position: relative; + display: flex; + background: #212121; + + &-list { + display: flex; + flex-direction: column; + align-items: stretch; + width: 200px; + height: 100%; + padding: 16px; + gap: 8px; + } + + &-workspace { + flex: 1; + height: 100%; + } +} diff --git a/packages/components/src/QuickLabel/index.tsx b/packages/components/src/QuickLabel/index.tsx new file mode 100644 index 0000000..56e8d1b --- /dev/null +++ b/packages/components/src/QuickLabel/index.tsx @@ -0,0 +1,151 @@ +import React, { useEffect } from 'react'; +import { history } from '@umijs/max'; +import { + AnnotateEditor, + BaseObject, + EditorMode, +} from 'dds-components/Annotator'; +import { Button } from 'antd'; +import { SettingOutlined } from '@ant-design/icons'; +import { useKeyPress } from 'ahooks'; +import { ImageList } from './components/ImageList'; +import QuickstartModal from './components/QuickstartModal'; +import ImageFilter from './components/ImageFilter'; +import { QuickLabelModel } from './hooks/useQuickLabelModel'; +import { globalLocaleText } from 'dds-utils/locale'; +import './index.less'; + +const QuickLabel: React.FC = (props) => { + const { + images, + filterImages, + current, + categories, + qsModalVisible, + uploadFiles, + uploadPreAnnot, + filterCategoryName, + setImages, + setCurrent, + setCategories, + setQsModalVisible, + setUploadFiles, + limitRemoveFile, + onCancelUploadFiles, + onConfirmUploadFiles, + exportAnnotations, + onChangePreAnnotFile, + onRemovePreAnnotFile, + onSelectFilterCategory, + onClearFilterCategory, + } = props; + + useEffect(() => { + if (images.length <= 0) { + setQsModalVisible(true); + } + }, []); + + useKeyPress( + 'uparrow', + () => { + setCurrent(Math.max(0, current - 1)); + }, + { exactMatch: true }, + ); + + useKeyPress( + 'downarrow', + () => { + setCurrent(Math.min(current + 1, images.length - 1)); + }, + { exactMatch: true }, + ); + + const onAutoSave = (annos: BaseObject[], naturalSize: ISize) => { + if (!filterImages[current]) return; + const originalIndex = filterImages[current].originalIndex; + setImages((images) => { + if (images[originalIndex]) { + images[originalIndex].objects = annos; + images[originalIndex].width = naturalSize.width; + images[originalIndex].height = naturalSize.height; + } + }); + }; + + return ( +
+
{ + event.stopPropagation(); + }} + onMouseUp={(event) => { + event.stopPropagation(); + }} + > + + { + setCurrent(index); + }} + /> +
+
+ , + ]} + actionElements={[ + , + ]} + onAutoSave={onAutoSave} + onCancel={() => history.push('/')} + /> +
+ +
+ ); +}; + +export default QuickLabel; diff --git a/packages/components/src/QuickLabel/type.ts b/packages/components/src/QuickLabel/type.ts new file mode 100644 index 0000000..3fe359e --- /dev/null +++ b/packages/components/src/QuickLabel/type.ts @@ -0,0 +1,66 @@ +import { UploadFile } from 'dds-components/Upload'; +import { BaseObject } from 'dds-components/Annotator'; + +export interface QsAnnotatorFile extends UploadFile { + urlFullRes: string; + objects: BaseObject[]; + width?: number; + height?: number; + originalIndex: number; +} + +/* eslint-disable @typescript-eslint/no-namespace */ + +export namespace COCO { + export interface Info { + year?: number; + version?: string; + description?: string; + contributor?: string; + url?: string; + date_created?: string; + } + + export interface Image { + id: number; + width: number; + height: number; + file_name: string; + license?: number; + flickr_url?: string; + coco_url?: string; + date_captured?: string; + } + + export interface Annotation { + id: number; + image_id: number; + category_id?: number; + bbox?: number[]; + area?: number; + segmentation?: + | number[][] + | { + size: [number, number]; // [height, width] + counts: number[] | string; + }; + iscrowd?: number; + keypoints?: number[]; + num_keypoints?: number; + } + + export interface Category { + id: number; + name: string; + supercategory?: string; + keypoints?: string[]; + skeleton?: number[][]; + } + + export interface Dataset { + info?: Info; + images: Image[]; + annotations: Annotation[]; + categories: Category[]; + } +} diff --git a/packages/components/src/QuickLabel/utils/adapter.ts b/packages/components/src/QuickLabel/utils/adapter.ts new file mode 100644 index 0000000..a5044dd --- /dev/null +++ b/packages/components/src/QuickLabel/utils/adapter.ts @@ -0,0 +1,401 @@ +/* eslint-disable @typescript-eslint/no-namespace */ +import { Category } from 'dds-components/Annotator'; +import { rleToCanvas } from 'dds-components/Annotator/tools/useMask'; +import { + calculatePolygonArea, + convertToVerticesArray, + getMaskInfoByCanvas, + translateBoundingBoxToRect, + translateRectToBoundingBox, +} from 'dds-components/Annotator/utils/compute'; +import { idConverter } from './idConverter'; +import { getImageDimensions } from 'dds-utils/file'; +import { COCO, QsAnnotatorFile } from '../type'; + +interface IAnnotatorStates { + info: COCO.Info; + categories: Category[]; + images: QsAnnotatorFile[]; +} + +const IMPORT_CATEGORYID_PRIFIX = 'user_import_category'; +const IMPORT_IMAGE_PRIFIX = 'user_import_image'; +const IMPORT_ANNOT_PRIFIX = 'user_import_annot'; + +export const ddsRleToCocoRle = (ddsRle: number[], imageSize: ISize) => { + const { width, height } = imageSize; + const counts: number[] = []; + + let pos: number = 0; + + for (let i = 0; i < Math.floor(ddsRle.length / 2); i++) { + counts.push(ddsRle[2 * i] - pos); + counts.push(ddsRle[2 * i + 1]); + pos = ddsRle[2 * i] + ddsRle[2 * i + 1]; + } + + if (pos < width * height) { + counts.push(width * height - pos); + } + + return { + size: [imageSize.height, imageSize.width], + counts: counts, + }; +}; + +export const convertToCocoDateset = async ({ + info, + images, + categories, +}: IAnnotatorStates) => { + const cocoDataset: COCO.Dataset = { + info: {}, + images: [], + categories: [], + annotations: [], + }; + + // update info + cocoDataset.info = { + ...info, + year: new Date().getFullYear(), + date_created: new Date().toISOString(), + }; + + const { getIntItemId: getIntCategoryId } = idConverter( + IMPORT_CATEGORYID_PRIFIX, + categories, + ); + + // export imported category (with original id) & created category + const categoryMap: Record = {}; + categories.forEach((category) => { + let categoryId = getIntCategoryId(category.id); + categoryMap[category.name] = categoryId; + cocoDataset.categories.push({ + id: categoryId, + name: category.name, + }); + }); + + // Convert image and annotation data + const { getIntItemId: getIntImageId } = idConverter( + IMPORT_IMAGE_PRIFIX, + images, + ); + + for (const image of images) { + const imageId = getIntImageId(image.id); + + let imageSize: ISize = { + width: 0, + height: 0, + }; + + if (!image.width || !image.height) { + const size = await getImageDimensions(image.urlFullRes); + imageSize = size; + } else { + imageSize.width = image.width; + imageSize.height = image.height; + } + + cocoDataset.images.push({ + id: imageId, + file_name: image.name, + ...imageSize, + }); + + image.objects.forEach((annotation) => { + const newAnnotation: COCO.Annotation = { + id: cocoDataset.annotations.length, + image_id: imageId, + }; + + if ( + categoryMap && + annotation.categoryName && + categoryMap[annotation.categoryName] !== undefined + ) { + newAnnotation.category_id = categoryMap[annotation.categoryName]; + } + + if (annotation.boundingBox) { + const { x, y, width, height } = translateBoundingBoxToRect( + annotation.boundingBox, + imageSize, + ); + const area = width * height; + const bbox = [x, y, width, height]; + Object.assign(newAnnotation, { area, bbox }); + } + + if (annotation.segmentation) { + const segmentation = annotation.segmentation.split('/').map((group) => { + return group.split(',').map((pos) => parseFloat(pos)); + }); + + const area = segmentation.reduce((sum, group) => { + const vertices = convertToVerticesArray(group); + const area = calculatePolygonArea(vertices); + return sum + area; + }, 0); + + Object.assign(newAnnotation, { segmentation, area }); + } + + if (annotation.mask && annotation.mask.length > 0) { + const ddsRle = annotation.mask; + const canvas = rleToCanvas(ddsRle, imageSize, '#fff'); + const segmentation = ddsRleToCocoRle(ddsRle, imageSize); + if (canvas) { + const { area } = getMaskInfoByCanvas(canvas); + Object.assign(newAnnotation, { + segmentation, + area, + }); + } else { + Object.assign(newAnnotation, { segmentation }); + } + } + + if (annotation.points && annotation.points.length > 0) { + const { points } = annotation; + const keypoints: number[] = []; + let num_keypoints = 0; + for (let i = 0; i * 6 < points.length; i++) { + keypoints.push(points[i * 6], points[i * 6 + 1], points[i * 6 + 4]); + num_keypoints += 1; + } + Object.assign(newAnnotation, { + keypoints, + num_keypoints, + }); + } + + cocoDataset.annotations.push(newAnnotation); + }); + } + + cocoDataset.categories.sort((curr, next) => curr.id - next.id); + + cocoDataset.images.sort((curr, next) => curr.id - next.id); + + return cocoDataset; +}; + +export const convertCocoDatasetToAnnotStates = ( + dataset: COCO.Dataset, + currStates: IAnnotatorStates, +): IAnnotatorStates => { + const { + info: cocoInfo, + categories: cocoCategories, + images: cocoImages, + annotations: cocoAnnots, + } = dataset; + const { + info: currInfo, + categories: currCategories, + images: currUploadImages, + } = currStates; + + const { getStringItemId: getStringCategoryID } = idConverter( + IMPORT_CATEGORYID_PRIFIX, + [], + ); + const { getStringItemId: getStringImageID } = idConverter( + IMPORT_IMAGE_PRIFIX, + [], + ); + const { getStringItemId: getStringAnnotID } = idConverter( + IMPORT_ANNOT_PRIFIX, + [], + ); + + const res: IAnnotatorStates = { + info: { ...currInfo, ...cocoInfo }, + categories: currCategories, + images: currUploadImages, + }; + + if (cocoCategories && cocoCategories.length > 0) { + res.categories = cocoCategories?.map(({ id, name }) => ({ + id: getStringCategoryID(id), + name, + })); + } + + if (cocoImages && cocoImages.length > 0) { + const imageMap = new Map(res.images.map((image) => [image.name, image])); + + cocoImages.forEach((cocoImage) => { + const image = imageMap.get(cocoImage.file_name); + if (image) { + image.id = getStringImageID(cocoImage.id); + image.width = cocoImage.width; + image.height = cocoImage.height; + } + }); + } + + if (cocoAnnots && cocoAnnots.length > 0) { + const cocoImageMap = new Map(cocoImages.map((image) => [image.id, image])); + const uploadImageMap = new Map( + res.images.map((image) => [image.id, image]), + ); + + cocoAnnots.forEach((cocoAnnot) => { + const { + id: cocoAnnotId, + image_id: cocoImageId, + category_id: cocoCategoryId, + bbox: cocoBbox, + } = cocoAnnot; + + const cocoImageData = cocoImageMap.get(cocoImageId); + const targetImageData = uploadImageMap.get(getStringImageID(cocoImageId)); + + if (cocoImageData && targetImageData) { + const { width: imgWidth, height: imgHeight } = cocoImageData; + const [x, y, width, height] = cocoBbox!; + const newObject = { + id: getStringAnnotID(cocoAnnotId), + categoryId: getStringCategoryID(cocoCategoryId!), + categoryName: cocoCategories?.find( + (item) => item.id === cocoCategoryId, + )?.name, + boundingBox: translateRectToBoundingBox( + { x, y, width, height }, + { width: imgWidth, height: imgHeight }, + ), + }; + + if (!targetImageData.objects) { + targetImageData.objects = []; + } + targetImageData.objects.push(newObject); + } + }); + } + return res; +}; + +export const validateCocoData = ( + data: any, +): { + success: boolean; + message?: string; +} => { + if (!data || typeof data !== 'object') { + return { + success: false, + message: 'Format Error', + }; + } + + if (!data.images || !Array.isArray(data.images) || data.images.length === 0) { + return { + success: false, + message: 'Field Images Empty', + }; + } + + if ( + !data.images.every( + (img: any) => + typeof img === 'object' && + img.hasOwnProperty('id') && + img.hasOwnProperty('file_name'), + ) + ) { + return { + success: false, + message: 'Invalid Image Data', + }; + } + + if (!data.annotations || !Array.isArray(data.annotations)) { + return { + success: false, + message: 'Annotations Format Error', + }; + } + + if ( + !data.annotations.every( + (ann: any) => + typeof ann === 'object' && + ann.hasOwnProperty('id') && + ann.hasOwnProperty('image_id'), + ) + ) { + return { + success: false, + message: 'Invalid Annotation Data', + }; + } + + if (!data.categories || !Array.isArray(data.categories)) { + return { + success: false, + message: 'Categories Format Error', + }; + } + + if ( + !data.categories.every( + (cat: any) => + typeof cat === 'object' && + cat.hasOwnProperty('id') && + cat.hasOwnProperty('name'), + ) + ) { + return { + success: false, + message: 'Invalid Category Data', + }; + } + + const checkFieldsId = (array: any[], fieldName: string) => { + const ids = new Set(); + for (const item of array) { + if (typeof item.id === undefined) { + return { + success: false, + message: `Missing ${fieldName} ID`, + }; + } + if (!Number.isInteger(item.id)) { + return { + success: false, + message: `Int ID Required for ${fieldName}`, + }; + } + if (ids.has(item.id)) { + return { + success: false, + message: `Duplicate ${fieldName} ID`, + }; + } + ids.add(item.id); + } + }; + + const validationResults = [ + checkFieldsId(data.images, 'Image'), + checkFieldsId(data.annotations, 'Annotation'), + checkFieldsId(data.categories, 'Category'), + ]; + + for (const result of validationResults) { + if (result) { + return result; + } + } + + return { + success: true, + }; +}; diff --git a/packages/components/src/QuickLabel/utils/idConverter.ts b/packages/components/src/QuickLabel/utils/idConverter.ts new file mode 100644 index 0000000..15e7ba6 --- /dev/null +++ b/packages/components/src/QuickLabel/utils/idConverter.ts @@ -0,0 +1,41 @@ +export const idConverter = (prefix: string, items: { id?: string }[]) => { + const getStringItemId = (intId: number): string => { + return `${prefix}${intId}`; + }; + + const isImportItem = (id: string) => id.startsWith(prefix); + + const getOriginalId = (stringId: string): number => { + const intPart = stringId.substring(prefix.length); + const intId = parseInt(intPart); + if (!isNaN(intId)) { + return intId; + } + return -1; + }; + + const getMaxIdOfImportItems = (items: { id?: string }[]): number => { + const ids: number[] = items + .filter((item) => !!item.id && isImportItem(item.id)) + .map((item) => getOriginalId(item.id!)); + if (ids.length > 0) { + return Math.max(...ids); + } + return -1; + }; + + let nextAvailableId = getMaxIdOfImportItems(items) + 1; + + const getIntItemId = (id?: string) => { + if (!!id && isImportItem(id)) { + return getOriginalId(id); + } else { + return nextAvailableId++; + } + }; + + return { + getStringItemId, + getIntItemId, + }; +}; diff --git a/packages/components/src/Upload/assets/checked.svg b/packages/components/src/Upload/assets/checked.svg new file mode 100644 index 0000000..3ea2985 --- /dev/null +++ b/packages/components/src/Upload/assets/checked.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/packages/components/src/Upload/assets/upload.svg b/packages/components/src/Upload/assets/upload.svg new file mode 100644 index 0000000..dba9625 --- /dev/null +++ b/packages/components/src/Upload/assets/upload.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/components/src/Upload/components/FilePreviewList/index.less b/packages/components/src/Upload/components/FilePreviewList/index.less new file mode 100644 index 0000000..e75e034 --- /dev/null +++ b/packages/components/src/Upload/components/FilePreviewList/index.less @@ -0,0 +1,78 @@ +.dds-upload-list { + position: relative; + width: 100%; + height: 100%; + + .virtual-list { + border-radius: 8px; + overflow-y: hidden; + } + + .row-container { + display: flex; + } + + .preview-container { + position: relative; + display: flex; + flex-direction: column; + align-items: center; + overflow: hidden; + cursor: pointer; + border-radius: 5px; + + .file-preview { + box-sizing: border-box; + object-fit: cover; + background-color: #fff; + border-radius: 5px; + } + + .file-name { + width: 90%; + margin: 5px; + word-wrap: break-word; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + .remove-button { + display: none; + position: absolute !important; + top: 4px; + right: 4px; + } + + &:hover { + background-color: #f0f0f0; + border-radius: 5px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); + + .remove-button { + display: block; + } + } + } + + .preview-container-success { + .file-name { + color: @colorPrimary; + } + + .file-preview { + border: 1px solid @colorPrimary; + } + } + + .preview-container-error { + .file-name { + color: red; + } + + .file-preview { + border: 1px solid red; + } + } +} diff --git a/packages/components/src/Upload/components/FilePreviewList/index.tsx b/packages/components/src/Upload/components/FilePreviewList/index.tsx new file mode 100644 index 0000000..3e42366 --- /dev/null +++ b/packages/components/src/Upload/components/FilePreviewList/index.tsx @@ -0,0 +1,132 @@ +import { useMemo, useRef } from 'react'; +import VirtualList from 'rc-virtual-list'; +import { Button } from 'antd'; +import { DeleteOutlined } from '@ant-design/icons'; +import { chunk } from 'lodash'; +import { useSize } from 'ahooks'; +import { UploadFile } from '../..'; +import classNames from 'classnames'; +import './index.less'; + +interface IProps { + files: UploadFile[]; + fileType: 'image' | 'video'; + onRemoveFile: (index: number) => void; +} + +const FilePreviewList: React.FC = ({ + files, + fileType, + onRemoveFile, +}) => { + const containerRef = useRef(null); + const containerSize = useSize(containerRef); + const colume = containerSize?.width && containerSize.width > 800 ? 8 : 5; + + /** Group files by colume count */ + const imageGroups = useMemo(() => { + return chunk(files, colume).map((item, index) => ({ + index, + rowImages: item, + })); + }, [files, colume]); + + /** Calculate ItemSize & ImageSize */ + const itemSpace = 8; + const rowPadding = 18; + const imageAspectRatio = 0.75; + const imageWidthRatio = 0.95; + const imageNameHeight = 30; + + const itemWidth = useMemo(() => { + return containerSize?.width + ? (containerSize?.width - rowPadding * 2 - (colume - 1) * itemSpace) / + colume + : 0; + }, [containerSize?.width, colume, itemSpace]); + + const imageWidth = useMemo(() => { + return itemWidth * imageWidthRatio; + }, [itemWidth, imageWidthRatio]); + + const imageHeight = useMemo(() => { + return imageWidth * imageAspectRatio; + }, [imageWidth, imageAspectRatio]); + + const itemHeight = useMemo(() => { + return imageHeight + imageNameHeight + 16; + }, [imageHeight, imageNameHeight]); + + return ( +
+ + {(row, rowIdx) => { + return ( +
+ {row.rowImages.map((item, colIdx) => ( +
+ {fileType === 'video' ? ( +
+ ))} +
+ ); + }} +
+
+ ); +}; + +export default FilePreviewList; diff --git a/packages/components/src/Upload/index.less b/packages/components/src/Upload/index.less new file mode 100644 index 0000000..ffc291c --- /dev/null +++ b/packages/components/src/Upload/index.less @@ -0,0 +1,100 @@ +.dds-upload { + position: relative; + width: 100%; + height: 100%; + + &-loading { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + display: flex; + align-items: center; + justify-content: center; + background: rgba(255, 255, 255, 0.3); + } + + input { + display: none !important; + } + + &-title { + font-size: 24px; + font-weight: 500; + line-height: 1; + } + + &-text { + font-size: 14px; + font-weight: 400; + color: #c1c1c1; + } + + &-empty { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; + border-radius: 5px; + border: 1px solid #c9cdd4; + cursor: pointer; + + svg { + width: 91px; + height: 75px; + } + + .dds-upload-title { + margin-top: 30px; + } + } + + &-content { + width: 100%; + height: 100%; + border-radius: 5px; + border: 1px solid #c9cdd4; + + &-list { + position: relative; + width: 100%; + height: calc(100% - 64px); + padding: 30px 0 0; + + &-count { + position: absolute; + left: 18px; + top: 8px; + font-size: 14px; + color: rgba(0, 0, 0, 0.45); + } + } + } + + &-draging { + border: 1px solid @colorPrimary; + background: #e8efff; + } + + &-topbar { + height: 64px; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 18px; + border-radius: 0; + border-bottom: 1px solid #c9cdd4; + + .dds-upload-title { + font-size: 20px; + } + + .dds-upload-text { + font-size: 12px; + margin-top: 4px; + } + } +} diff --git a/packages/components/src/Upload/index.tsx b/packages/components/src/Upload/index.tsx new file mode 100644 index 0000000..84f44cb --- /dev/null +++ b/packages/components/src/Upload/index.tsx @@ -0,0 +1,234 @@ +import { useCallback, useRef, useState } from 'react'; +import { Button, Spin, message } from 'antd'; +import { useDrop } from 'ahooks'; +import { cloneDeep } from 'lodash'; +import { ReactComponent as UploadIcon } from './assets/upload.svg'; +import { useLocale } from 'dds-utils/locale'; +import { scanDataTransfer } from 'dds-utils/file'; +import FilePreviewList from './components/FilePreviewList'; +import classNames from 'classnames'; +import './index.less'; + +export interface UploadFile { + id: string; + name: string; + url: string; + status?: 'success' | 'error'; + originFileObj?: File; + path?: string; + uploadUrl?: string; + contentType?: string; + duration?: number; + frameCount?: number; + frameRate?: number; + targetFrameRate?: number; +} + +interface IProps { + fileList: UploadFile[]; + setFileList: React.Dispatch>; + fileType: 'video' | 'image'; + acceptTypes?: string[]; + maxCount?: number; + maxSize?: number; + maxDuratuion?: number; + limitRemoveFile?: (index: number) => boolean; +} + +const Upload: React.FC = ({ + fileList, + setFileList, + acceptTypes, + maxCount, + maxSize, + maxDuratuion, + limitRemoveFile, + fileType, +}: IProps) => { + const { localeText } = useLocale(); + const [loading, setLoading] = useState(false); + const [draging, setDraging] = useState(false); + const fileCancleRef = useRef(false); + const inputRef = useRef(null); + const accept = acceptTypes ? acceptTypes.join(', ') : undefined; + + const addFiles = async (files: File[]) => { + setLoading(true); + const newFiles: UploadFile[] = []; + for (let file of files) { + let [frameCount, frameRate, duration] = [0, 0, 0]; + if (maxSize && file.size && file.size / 1024 / 1024 > maxSize) { + continue; + } + if (maxCount && newFiles.length + fileList.length > maxCount - 1) { + continue; + } + if (fileList.find((item) => item.name === file.name)) { + continue; + } + newFiles.push({ + id: file.name, + name: file.name, + url: URL.createObjectURL(file as Blob), + originFileObj: file, + frameCount, + frameRate, + duration, + }); + } + setLoading(false); + if (newFiles.length > 0) { + setFileList([...newFiles, ...fileList]); + message.success( + localeText('dds-upload.tip.successLoad', { + count: newFiles.length, + }), + ); + } + }; + + const onRemoveFile = useCallback( + (index: number) => { + if (limitRemoveFile && limitRemoveFile(index)) return; + const newList = cloneDeep(fileList); + newList.splice(index, 1); + setFileList(newList); + }, + [fileList], + ); + + const handleUploadChange = (e: React.ChangeEvent) => { + fileCancleRef.current = false; + + const files: File[] = e.target.files ? [...e.target.files] : []; + if (files.length > 0) { + addFiles(files); + } + + setDraging(false); + e.target.value = ''; + }; + + const onClickUpload = useCallback(() => { + if (maxCount && fileList.length >= maxCount) { + message.warning( + localeText('dds-upload.tip.fileCountLimitMsg', { + count: maxCount, + }), + ); + return; + } + setDraging(true); + inputRef.current?.click(); + + // mock click file cancel + fileCancleRef.current = true; + window.addEventListener( + 'focus', + () => { + setTimeout(() => { + if (fileCancleRef.current) { + setDraging(false); + } + }, 100); + }, + { once: true }, + ); + }, [fileList, maxCount]); + + useDrop(window.document.body, { + onFiles: async (_files, e) => { + if (maxCount && fileList.length >= maxCount) { + message.warning( + localeText('dds-upload.tip.fileCountLimitMsg', { + count: maxCount, + }), + ); + return; + } + const files = await scanDataTransfer(e?.dataTransfer, acceptTypes); + addFiles(files); + }, + onDragEnter: () => { + setDraging(true); + }, + onDrop: () => { + setDraging(false); + }, + onDragLeave: () => { + setDraging(false); + }, + }); + + return ( +
+ + {fileList.length <= 0 ? ( +
+ +

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

+

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

+
+ ) : ( +
+
+
+
+ {localeText('dds-upload.title')} +
+
+ {fileType === 'video' + ? localeText('dds-upload.limit.type.video') + : localeText('dds-upload.limit.type.image')} +
+
+ +
+
+ {maxCount && ( +
+ {fileList.length} / {maxCount} +
+ )} + +
+
+ )} + {loading && ( + + )} +
+ ); +}; + +export default Upload; diff --git a/packages/components/src/UploadPreAnno/assets/upload_file.svg b/packages/components/src/UploadPreAnno/assets/upload_file.svg new file mode 100644 index 0000000..3f65cbd --- /dev/null +++ b/packages/components/src/UploadPreAnno/assets/upload_file.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/components/src/UploadPreAnno/index.less b/packages/components/src/UploadPreAnno/index.less new file mode 100644 index 0000000..df8ac58 --- /dev/null +++ b/packages/components/src/UploadPreAnno/index.less @@ -0,0 +1,30 @@ +.dds-upload-pre-anno { + .ant-upload { + width: 100%; + } + + .ant-card { + border: 1px solid #c9cdd4; + background: none; + + .ant-card-meta-avatar { + width: 56px; + height: 56px; + margin-right: 20px; + + svg { + width: 56px; + height: 56px; + } + } + + .ant-card-meta-title { + font-size: 24px; + font-weight: 500; + } + + &:hover { + cursor: pointer; + } + } +} diff --git a/packages/components/src/UploadPreAnno/index.tsx b/packages/components/src/UploadPreAnno/index.tsx new file mode 100644 index 0000000..80e83aa --- /dev/null +++ b/packages/components/src/UploadPreAnno/index.tsx @@ -0,0 +1,54 @@ +import Icon from '@ant-design/icons'; +import { Card, Upload, UploadFile } from 'antd'; +import { ReactNode } from 'react'; +import { ReactComponent as UploadFileIcon } from './assets/upload_file.svg'; +import { UploadChangeParam } from 'antd/es/upload'; +import { useLocale } from 'dds-utils/locale'; +import './index.less'; + +const DEFAULT_PRE_ANNO_MAX_SIZE = 20; + +interface IProps { + children?: ReactNode; + uploadFiles: UploadFile[]; + onChangeFile: (info: UploadChangeParam>) => void; + onRemoveFile: (file: UploadFile) => void; +} + +const UploadPreAnno: React.FC = ({ + uploadFiles, + onChangeFile, + onRemoveFile, + children, +}) => { + const { localeText } = useLocale(); + + return ( + false} + fileList={uploadFiles} + onChange={onChangeFile} + onRemove={onRemoveFile} + accept={'.json'} + showUploadList={true} + > + {children ? ( + children + ) : ( + + } + title={localeText('dds-upload-pre-anno')} + description={localeText('dds-upload-pre-anno.tip', { + maxSize: DEFAULT_PRE_ANNO_MAX_SIZE, + })} + /> + + )} + + ); +}; + +export default UploadPreAnno; diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts index 138c9cc..1c7aead 100644 --- a/packages/components/src/index.ts +++ b/packages/components/src/index.ts @@ -7,4 +7,5 @@ export { default as RunningErrorTip } from './RunningErrorTip'; export { default as ColumnSettings } from './ColumnSettings'; export { default as MobileAlert } from './MobileAlert'; export { default as DynamicPagination } from './DynamicPagination'; +export { default as QuickLabel } from './QuickLabel'; export { AnnotateEditor, AnnotatePreview, AnnotateView } from './Annotator'; diff --git a/packages/components/src/locales/en-US.ts b/packages/components/src/locales/en-US.ts index 462c9d3..4eefca8 100644 --- a/packages/components/src/locales/en-US.ts +++ b/packages/components/src/locales/en-US.ts @@ -225,4 +225,66 @@ export default { 'DDSAnnotator.video.track.setting': 'Tracking settings', 'DDSAnnotator.video.frame': 'Frames', 'DDSAnnotator.video.track.backward': 'Backward inference frames', + + /** dds-upload */ + 'dds-upload.title': 'Drag or Click to upload your data', + 'dds-upload.limit.type.image': 'Image files (.jpg/.jpeg/.png) are supported.', + 'dds-upload.limit.type.video': + 'Video files (.mp4/.mov & duration < 60s) are supported.', + 'dds-upload.upload': 'Add', + 'dds-upload.tip.successLoad': 'Had added {count} files', + 'dds-upload.tip.fileCountLimitMsg': 'File count should not exceed {count}.', + 'dds-upload.videoFrame.title': 'Adjust Frame Count', + 'dds-upload.videoFrame.tip': 'Attn', + 'dds-upload.videoFrame.tip.content': + 'Choose how many frames you want to annotate. A high frequency will create more, similarframes. A low one will create less frames but more varied imagery.', + 'dds-upload.videoFrame.adjust': 'Frame rate adjustment range', + 'dds-upload.videoFrame.fps': 'frames per second', + 'dds-upload.videoFrame.matchNative': 'Match native frame rate', + 'dds-upload.videoFrame.total': 'Total of {count} Frames', + 'dds-upload.videoFrame.batch.all': 'Apply to all videos in this upload', + 'dds-upload.videoFrame.batch.rest': 'Apply to rest videos in this upload', + 'dds-upload.videoFrame.confirmbtn': 'Upload {count} Video', + + /** dds-upload-pre-anno */ + 'dds-upload-pre-anno': 'Upload Pre-annotate Data', + 'dds-upload-pre-anno.tip': + 'Only annotations in DDS format are supported. File size should not exceed {maxSize} MB.', + + /** QuickLabel */ + 'quicklabel.formModal.attn': 'Attn', + 'quicklabel.formModal.tip': + 'The quick mode will not upload images or save annotation results. We recommend clicking the "Export Annotations" button located in the upper right corner of the workspace before leaving, which allows you to save the annotation results locally.', + 'quicklabel.formModal.start': 'Start', + 'quicklabel.formModal.confirm': 'Confirm', + 'quicklabel.title': 'Quick Label', + 'quicklabel.setting': 'Setting', + 'quicklabel.imageFilter': 'Image Filter', + 'quicklabel.clearFilter': 'Clear Filter', + 'quicklabel.allCategories': 'All Categories', + 'quicklabel.export': 'Export Annotation', + 'quicklabel.notice': + 'The quick mode will not upload images or save annotation results. We recommend clicking the "Export Annotations" button located in the upper right corner of the workspace before leaving, which allows you to save the annotation results locally.', + 'quicklabel.formModal.title': 'Before you start', + 'quicklabel.formModal.importImages': 'Import Images', + 'quicklabel.formModal.importVideos': 'Import Videos', + 'quicklabel.formModal.importPreAnnots': 'Import Annotations', + 'quicklabel.formModal.imageTips': + 'Tips: Import a maximum of {count} images, with each image not exceeding {size}MB.', + 'quicklabel.formModal.categories': 'Categories', + 'quicklabel.formModal.addCategory': 'Add', + 'quicklabel.formModal.categoryPlaceholder': + 'Please enter the category names. You can input multiple categories by separating them with a new line. E.g.: \n person \n dog \n car', + 'quicklabel.formModal.categoriesCount': 'Categories Count', + 'quicklabel.formModal.fileRequiredMsg': 'At least one image is required.', + 'quicklabel.formModal.fileSizeLimitMsg': + 'The size of each individual image cannot exceed {size} MB.', + 'quicklabel.formModal.categoryRequiredMsg': + 'At least one category is required.', + 'quicklabel.formModal.deleteCategory.title': 'Info', + 'quicklabel.formModal.deleteCategory.desc': + 'This category is used by current annotations. Please manually remove these annotations or revise their category first.', + 'quicklabel.formModal.deleteImage.title': 'Info', + 'quicklabel.formModal.deleteImage.desc': + 'This image contains annotations. Please manually remove these annotations first.', }; diff --git a/packages/components/src/locales/zh-CN.ts b/packages/components/src/locales/zh-CN.ts index 7e38ae9..acd6b65 100644 --- a/packages/components/src/locales/zh-CN.ts +++ b/packages/components/src/locales/zh-CN.ts @@ -205,4 +205,64 @@ export default { 'DDSAnnotator.video.track.setting': '推理设置', 'DDSAnnotator.video.frame': '帧', 'DDSAnnotator.video.track.backward': '向后推理帧数', + + /** dds-upload */ + 'dds-upload.title': '将文件拖动到这里或点击进行上传', + 'dds-upload.limit.type.image': '图片格式支持: .jpg/.jpeg/.png', + 'dds-upload.limit.type.video': '视频格式支持: .mp4/.mov、时长 <= 60s', + 'dds-upload.upload': '添加', + 'dds-upload.tip.successLoad': '成功加载{count}个文件', + 'dds-upload.tip.fileCountLimitMsg': '文件数量不能超过{count}', + 'dds-upload.videoFrame.title': '调整帧率', + 'dds-upload.videoFrame.tip': '注意', + 'dds-upload.videoFrame.tip.content': + '选择您想要标注的帧数。高帧率将创建更多相似的帧。低帧率将创建较少的帧,但图像更多样化。', + 'dds-upload.videoFrame.adjust': '帧数调整范围', + 'dds-upload.videoFrame.fps': '帧/秒', + 'dds-upload.videoFrame.matchNative': '与原始帧率匹配', + 'dds-upload.videoFrame.total': '共{count}帧', + 'dds-upload.videoFrame.batch.all': '应用到所有的视频中', + 'dds-upload.videoFrame.batch.rest': '应用到剩余的视频中', + 'dds-upload.videoFrame.confirmbtn': '上传{count}个视频', + + /** dds-upload-pre-anno */ + 'dds-upload-pre-anno': '上传预标注数据', + 'dds-upload-pre-anno.tip': + '目前仅支持DDS格式的标注。文件大小不得超过{maxSize} MB。', + + /** QuickLabel */ + 'quicklabel.formModal.attn': '注意', + 'quicklabel.formModal.tip': + '快速模式不会上传图像或保存标注结果。我们建议在离开之前点击工作区右上角的“导出标注”按钮,这样可以将标注结果保存到本地。', + 'quicklabel.formModal.start': '开始', + 'quicklabel.formModal.confirm': '确定', + 'quicklabel.title': '快速标注', + 'quicklabel.setting': '设置', + 'quicklabel.imageFilter': '图片筛选', + 'quicklabel.clearFilter': '清除筛选', + 'quicklabel.allCategories': '全部类别', + 'quicklabel.annotate': '标注', + 'quicklabel.export': '导出标注', + 'quicklabel.formModal.title': '开始之前', + 'quicklabel.formModal.importImages': '导入图片', + 'quicklabel.formModal.importPreAnnots': '导入预标注', + 'quicklabel.notice': + '快速标注模式不会上传任何图片或保存标注结果,为了防止数据丢失,建议您在离开前点击工作区右上方"导出标注"按钮,将标注结果保存到本地。', + 'quicklabel.formModal.imageTips': + '注意:最多导入{count}张图片,每张图片不超过{size}MB。', + 'quicklabel.formModal.categories': '导入标注类别', + 'quicklabel.formModal.addCategory': '添加', + 'quicklabel.formModal.categoryPlaceholder': + '请输入类别名称, 多个类别可以换行分隔, 例如: \n person \n dog \n car', + 'quicklabel.formModal.categoriesCount': '当前类别标签数量', + 'quicklabel.formModal.fileRequiredMsg': '请至少导入一张图片', + 'quicklabel.formModal.fileCountLimitMsg': '图片量不能超过{count}张', + 'quicklabel.formModal.fileSizeLimitMsg': '单张图片不能超过{size}MB', + 'quicklabel.formModal.categoryRequiredMsg': '请至少输入一个类别标签', + 'quicklabel.formModal.deleteCategory.title': '注意', + 'quicklabel.formModal.deleteCategory.desc': + '有标注中使用了这个类别,请先手动删除这些标注或修改它们的类别', + 'quicklabel.formModal.deleteImage.title': '注意', + 'quicklabel.formModal.deleteImage.desc': + '该图片内包含标注信息,请先手动删除这些标注' }; diff --git a/packages/utils/src/file.ts b/packages/utils/src/file.ts index 4fba96f..c1f9e29 100644 --- a/packages/utils/src/file.ts +++ b/packages/utils/src/file.ts @@ -52,3 +52,91 @@ export const loadImage = (src: string) => { }; }); }; + +export async function scanFiles( + entry: any, + filesList: any[], + acceptTypes?: string[], +) { + return new Promise((resolve, reject) => { + if (entry.isDirectory) { + const directoryReader = entry.createReader(); + directoryReader.readEntries( + async (entries: any[]) => { + for (let index = 0; index < entries.length; index++) { + await scanFiles(entries[index], filesList, acceptTypes); + if (index === entries.length - 1) { + resolve(1); + } + } + }, + (e: any) => { + reject(e); + }, + ); + } else { + entry.file( + async (file: any) => { + const path = entry.fullPath.substring(1); + /**修改webkitRelativePath 是核心操作,原因是拖拽会的事件体中webkitRelativePath是空的,而且webkitRelativePath 是只读属性,普通赋值是不行的。所以目前只能使用这种方法将entry.fullPath 赋值给webkitRelativePath**/ + const newFile: File = Object.defineProperty( + file, + 'webkitRelativePath', + { + value: path, + }, + ); + if (!acceptTypes || acceptTypes.includes(newFile.type)) { + filesList.push(newFile); + } + resolve(1); + return; + }, + (e: any) => { + reject(e); + }, + ); + } + }); +} + +export async function scanDataTransfer( + dataTransfer?: DataTransfer, + acceptTypes?: string[], +) { + if (!dataTransfer) return []; + const filesList: File[] = []; + + // files filter + for (const item of dataTransfer.files) { + if (item && (!acceptTypes || acceptTypes.includes(item.type))) { + filesList.push(item); + } + } + + // sub directory + if (dataTransfer.items.length > 0) { + for (const item of dataTransfer.items) { + const itemEntry = item.webkitGetAsEntry(); + if (itemEntry?.isDirectory) { + await scanFiles(itemEntry, filesList, acceptTypes); + } + } + } + return filesList; +} + +export async function getImageDimensions(url: string): Promise { + return new Promise((resolve, reject) => { + const img = new Image(); + img.src = url; + img.onload = () => { + const width = img.width; + const height = img.height; + resolve({ width, height }); + }; + img.onerror = () => { + reject(new Error('Load Image Error')); + }; + }); +} \ No newline at end of file From 16fb75af1300a0b9be6651ecaeca3054a3521d1b Mon Sep 17 00:00:00 2001 From: fredzhu Date: Thu, 4 Jan 2024 10:10:23 +0800 Subject: [PATCH 07/10] feature(dataset): fix dataset visualization for large-scale categories --- .../src/components/CategoryFilter/index.tsx | 28 ++++++++----------- .../components/src/Annotator/utils/color.ts | 13 ++++++--- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/packages/app/src/components/CategoryFilter/index.tsx b/packages/app/src/components/CategoryFilter/index.tsx index 639dc06..2bacd76 100644 --- a/packages/app/src/components/CategoryFilter/index.tsx +++ b/packages/app/src/components/CategoryFilter/index.tsx @@ -1,5 +1,5 @@ -import React from 'react'; -import { Select } from 'antd'; +import React, { useMemo } from 'react'; +import { Select, SelectProps } from 'antd'; import { useLocale } from 'dds-utils/locale'; import styles from './index.less'; import { Category } from '@/types'; @@ -14,30 +14,26 @@ const CategoryFilter: React.FC = (props) => { const { localeText } = useLocale(); const { categoryId, categories, onCategoryChange } = props; + const options: SelectProps['options'] = useMemo(() => { + return categories.map((item) => ({ + label: item.name, + value: item.id, + })); + }, [categories]); + return (
{localeText('dataset.detail.category')}: + />
); }; diff --git a/packages/components/src/Annotator/utils/color.ts b/packages/components/src/Annotator/utils/color.ts index eb0adde..3f696b1 100644 --- a/packages/components/src/Annotator/utils/color.ts +++ b/packages/components/src/Annotator/utils/color.ts @@ -43,7 +43,12 @@ export const hexToRgba = (hex: string, opacity = 1) => { )},${op})`; }; -/** Generate a color list based on the number of categories. */ +/** + * Generate a color list based on the number of categories. + * max random 1000 + * @param count + * @returns + */ export const createColorList = (count: number) => { const colors = [ '#FFFF00', @@ -75,7 +80,7 @@ export const createColorList = (count: number) => { .padStart(2, '0')}${rgb[2] .toString(16) .padStart(2, '0')}`.toUpperCase(); - if (!colors.includes(hexColor)) { + if (count > 1000 || !colors.includes(hexColor)) { colors.push(hexColor); } } @@ -87,10 +92,10 @@ export const getCategoryColors = (list: string[]) => { if (!list.length) return {}; const sortList = [...list]; - const colors = createColorList(sortList.length); + const colors = createColorList(sortList.length) ; const result: Record = {}; sortList.forEach((item, index) => { - result[item] = colors[index]; + result[item] = colors[index] || '#fff'; }); return result; }; From 65ec16bf3ce93e1ea9a19034a880ac82d10ba877 Mon Sep 17 00:00:00 2001 From: imhuwq Date: Thu, 4 Jan 2024 10:21:14 +0800 Subject: [PATCH 08/10] bugfix(finish_batch_add_annotation): fix parameter error --- deepdataspace/model/image.py | 2 +- deepdataspace/plugins/coco2017/importer.py | 3 +++ deepdataspace/utils/function.py | 23 ++++++++++++++++++++++ requirements-dev.txt | 1 + 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/deepdataspace/model/image.py b/deepdataspace/model/image.py index 24e5466..2840232 100644 --- a/deepdataspace/model/image.py +++ b/deepdataspace/model/image.py @@ -461,7 +461,7 @@ def batch_add_annotation(self, self.objects.append(anno_obj) def finish_batch_add_annotation(self): - self.dataset.batch_save_image(self) + self.dataset.batch_save_image() _image_models: Dict[str, Type[ImageModel]] = {} # a cache for ImageModel for each dataset diff --git a/deepdataspace/plugins/coco2017/importer.py b/deepdataspace/plugins/coco2017/importer.py index f50393e..1d4ba15 100644 --- a/deepdataspace/plugins/coco2017/importer.py +++ b/deepdataspace/plugins/coco2017/importer.py @@ -33,6 +33,9 @@ def __init__(self, meta_path: str, enforce: bool = False): self.meta_path = os.path.abspath(meta_path) info = self.parse_meta(meta_path) + if info is None: + raise RuntimeError(f"Cannot import coco dataset: {meta_path}") + dataset_name = info["dataset_name"] self.ground_truth = info["ground_truth"] self.image_root = info["image_root"] diff --git a/deepdataspace/utils/function.py b/deepdataspace/utils/function.py index ae5d9ad..8202c99 100644 --- a/deepdataspace/utils/function.py +++ b/deepdataspace/utils/function.py @@ -4,6 +4,8 @@ Convenient functions about python function. """ +import cProfile +import pstats import time from contextlib import contextmanager @@ -32,6 +34,27 @@ def count_block_time(block_id: str, logger=print): logger(f"time cost of block[{block_id}]: {end - start}ms") +@contextmanager +def profile_perf(report_file: str, turn_on: bool = True): + """ + Profile the performance of a code block, and save the result to report_file. + :param report_file: the target path where the performance data is saved to. + :param turn_on: only run the profile this is True or evaluates to True. + """ + profile = cProfile.Profile() + + if turn_on: + profile.enable() + + try: + yield + finally: + if turn_on is True: + profile.disable() + stats = pstats.Stats(profile).sort_stats("cumulative") + stats.dump_stats(report_file) + + def retry(times: int, sleep: int = 0, exceptions: tuple = (Exception,)): """ Retry a function or a method. diff --git a/requirements-dev.txt b/requirements-dev.txt index 7c24060..c155d40 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -3,3 +3,4 @@ pytest==7.2.2 pytest-cov==4.0.0 Sphinx==5.3.0 sphinx-rtd-theme==1.2.0 +snakeviz==2.2.0 From e4774b62d15d74603139a79c0014f13235705194 Mon Sep 17 00:00:00 2001 From: huweiqiang Date: Tue, 9 Jan 2024 16:35:57 +0800 Subject: [PATCH 09/10] update(frontend): build & update frontend files --- .../server/static/422.622bc3b6.async.js | 5 + ...async.js.map => 422.622bc3b6.async.js.map} | 2 +- .../server/static/422.e1c904d6.async.js | 5 - .../server/static/482.76b40e08.async.js | 10 - .../server/static/482.76b40e08.async.js.map | 1 - .../server/static/742.95758e3b.async.js | 252 --------- .../server/static/742.95758e3b.async.js.map | 1 - .../server/static/742.e2aedde2.async.js | 252 +++++++++ .../server/static/742.e2aedde2.async.js.map | 1 + .../server/static/818.9ff3ddb4.async.js | 27 - .../server/static/818.9ff3ddb4.async.js.map | 1 - deepdataspace/server/static/index.html | 4 +- .../p__Annotator__index.783e658f.async.js | 1 + .../p__Annotator__index.a6aa2d70.chunk.css | 3 - ...p__Annotator__index.a6aa2d70.chunk.css.map | 1 - .../p__Annotator__index.d45bba40.async.js | 4 - .../p__Annotator__index.d45bba40.async.js.map | 1 - .../p__Dataset__index.9c289e03.async.js | 1 - .../p__Dataset__index.cf791d40.async.js | 1 + .../p__Lab__FlagTool__index.32268c0e.async.js | 1 + .../p__Lab__FlagTool__index.4fb1726e.async.js | 1 - ...roject__Workspace__index.03e0e895.async.js | 1 - ...roject__Workspace__index.153c0fa4.async.js | 1 + deepdataspace/server/static/umi.26db4b74.css | 3 + ....36ffdc32.css.map => umi.26db4b74.css.map} | 2 +- deepdataspace/server/static/umi.36ffdc32.css | 3 - deepdataspace/server/static/umi.56db2ca8.js | 518 ++++++++++++++++++ .../server/static/umi.56db2ca8.js.map | 1 + deepdataspace/server/static/umi.e0cbfd9d.js | 482 ---------------- .../server/static/umi.e0cbfd9d.js.map | 1 - deepdataspace/server/templates/index.html | 4 +- 31 files changed, 790 insertions(+), 801 deletions(-) create mode 100644 deepdataspace/server/static/422.622bc3b6.async.js rename deepdataspace/server/static/{422.e1c904d6.async.js.map => 422.622bc3b6.async.js.map} (99%) delete mode 100644 deepdataspace/server/static/422.e1c904d6.async.js delete mode 100644 deepdataspace/server/static/482.76b40e08.async.js delete mode 100644 deepdataspace/server/static/482.76b40e08.async.js.map delete mode 100644 deepdataspace/server/static/742.95758e3b.async.js delete mode 100644 deepdataspace/server/static/742.95758e3b.async.js.map create mode 100644 deepdataspace/server/static/742.e2aedde2.async.js create mode 100644 deepdataspace/server/static/742.e2aedde2.async.js.map delete mode 100644 deepdataspace/server/static/818.9ff3ddb4.async.js delete mode 100644 deepdataspace/server/static/818.9ff3ddb4.async.js.map create mode 100644 deepdataspace/server/static/p__Annotator__index.783e658f.async.js delete mode 100644 deepdataspace/server/static/p__Annotator__index.a6aa2d70.chunk.css delete mode 100644 deepdataspace/server/static/p__Annotator__index.a6aa2d70.chunk.css.map delete mode 100644 deepdataspace/server/static/p__Annotator__index.d45bba40.async.js delete mode 100644 deepdataspace/server/static/p__Annotator__index.d45bba40.async.js.map delete mode 100644 deepdataspace/server/static/p__Dataset__index.9c289e03.async.js create mode 100644 deepdataspace/server/static/p__Dataset__index.cf791d40.async.js create mode 100644 deepdataspace/server/static/p__Lab__FlagTool__index.32268c0e.async.js delete mode 100644 deepdataspace/server/static/p__Lab__FlagTool__index.4fb1726e.async.js delete mode 100644 deepdataspace/server/static/p__Project__Workspace__index.03e0e895.async.js create mode 100644 deepdataspace/server/static/p__Project__Workspace__index.153c0fa4.async.js create mode 100644 deepdataspace/server/static/umi.26db4b74.css rename deepdataspace/server/static/{umi.36ffdc32.css.map => umi.26db4b74.css.map} (99%) delete mode 100644 deepdataspace/server/static/umi.36ffdc32.css create mode 100644 deepdataspace/server/static/umi.56db2ca8.js create mode 100644 deepdataspace/server/static/umi.56db2ca8.js.map delete mode 100644 deepdataspace/server/static/umi.e0cbfd9d.js delete mode 100644 deepdataspace/server/static/umi.e0cbfd9d.js.map diff --git a/deepdataspace/server/static/422.622bc3b6.async.js b/deepdataspace/server/static/422.622bc3b6.async.js new file mode 100644 index 0000000..ed1a87f --- /dev/null +++ b/deepdataspace/server/static/422.622bc3b6.async.js @@ -0,0 +1,5 @@ +"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[422],{92588:function(Kr,Vn,g){var Q=g(57370),ae=g(47075),Me=g(64410),oe=g(58757),m=g(78546),Ge=g(17148),a=g(35667),we=["fieldProps","children","params","proFieldProps","mode","valueEnum","request","showSearch","options"],kn=["fieldProps","children","params","proFieldProps","mode","valueEnum","request","options"],gn=function(he,Re){var d=he.fieldProps,fe=he.children,Nn=he.params,Tn=he.proFieldProps,s=he.mode,Ln=he.valueEnum,pe=he.request,tn=he.showSearch,Ae=he.options,Sn=(0,ae.Z)(he,we),re=(0,oe.useContext)(m.Z);return(0,a.jsx)(Ge.Z,(0,Q.Z)((0,Q.Z)({valueEnum:(0,Me.h)(Ln),request:pe,params:Nn,valueType:"select",filedConfig:{customLightMode:!0},fieldProps:(0,Q.Z)({options:Ae,mode:s,showSearch:tn,getPopupContainer:re.getPopupContainer},d),ref:Re,proFieldProps:Tn},Sn),{},{children:fe}))},De=oe.forwardRef(function(ie,he){var Re=ie.fieldProps,d=ie.children,fe=ie.params,Nn=ie.proFieldProps,Tn=ie.mode,s=ie.valueEnum,Ln=ie.request,pe=ie.options,tn=(0,ae.Z)(ie,kn),Ae=(0,Q.Z)({options:pe,mode:Tn||"multiple",labelInValue:!0,showSearch:!0,showArrow:!1,autoClearSearchValue:!0,optionLabelProp:"label"},Re),Sn=(0,oe.useContext)(m.Z);return(0,a.jsx)(Ge.Z,(0,Q.Z)((0,Q.Z)({valueEnum:(0,Me.h)(s),request:Ln,params:fe,valueType:"select",filedConfig:{customLightMode:!0},fieldProps:(0,Q.Z)({getPopupContainer:Sn.getPopupContainer},Ae),ref:he,proFieldProps:Nn},tn),{},{children:d}))}),Fn=oe.forwardRef(gn),be=De,dn=Fn;dn.SearchSelect=be,dn.displayName="ProFormComponent",Vn.Z=dn},47867:function(Kr,Vn,g){g.d(Vn,{Y:function(){return d}});var Q=g(74632),ae=g(79290),Me=g(57370),oe=g(28314),m=g(47075),Ge=g(1643),a=g(42505),we=g(62109),kn=g(84560),gn=g.n(kn),De=g(60409),Fn=g(75556),be=g(58757),dn=g(26736),ie=g(92284),he=g(35667),Re=["children","trigger","onVisibleChange","onOpenChange","modalProps","onFinish","submitTimeout","title","width","visible","open"];function d(fe){var Nn,Tn,s,Ln,pe=fe.children,tn=fe.trigger,Ae=fe.onVisibleChange,Sn=fe.onOpenChange,re=fe.modalProps,Xn=fe.onFinish,An=fe.submitTimeout,Zr=fe.title,Sr=fe.width,Jn=fe.visible,Yn=fe.open,je=(0,m.Z)(fe,Re);(0,Fn.ET)(!je.footer||!(re!=null&&re.footer),"ModalForm \u662F\u4E00\u4E2A ProForm \u7684\u7279\u6B8A\u5E03\u5C40\uFF0C\u5982\u679C\u60F3\u81EA\u5B9A\u4E49\u6309\u94AE\uFF0C\u8BF7\u4F7F\u7528 submit.render \u81EA\u5B9A\u4E49\u3002");var $n=(0,be.useContext)(a.ZP.ConfigContext),br=(0,be.useState)([]),tr=(0,oe.Z)(br,2),xr=tr[1],ar=(0,be.useState)(!1),Pe=(0,oe.Z)(ar,2),$e=Pe[0],le=Pe[1],en=(0,De.Z)(!!Jn,{value:Yn||Jn,onChange:Sn||Ae}),Qe=(0,oe.Z)(en,2),yn=Qe[0],Xe=Qe[1],In=(0,be.useRef)(null),Rr=(0,be.useCallback)(function(ge){In.current===null&&ge&&xr([]),In.current=ge},[]),ue=(0,be.useRef)(),We=(0,be.useCallback)(function(){var ge,Fe,Be,Te=(ge=(Fe=je.form)!==null&&Fe!==void 0?Fe:(Be=je.formRef)===null||Be===void 0?void 0:Be.current)!==null&&ge!==void 0?ge:ue.current;Te&&re!==null&&re!==void 0&&re.destroyOnClose&&Te.resetFields()},[re==null?void 0:re.destroyOnClose,je.form,je.formRef]);(0,be.useImperativeHandle)(je.formRef,function(){return ue.current},[ue.current]),(0,be.useEffect)(function(){yn&&(Yn||Jn)&&(Sn==null||Sn(!0),Ae==null||Ae(!0))},[Jn,Yn,yn]);var bn=(0,be.useMemo)(function(){return tn?be.cloneElement(tn,(0,Me.Z)((0,Me.Z)({key:"trigger"},tn.props),{},{onClick:function(){var ge=(0,ae.Z)((0,Q.Z)().mark(function Be(Te){var cn,de;return(0,Q.Z)().wrap(function(Ne){for(;;)switch(Ne.prev=Ne.next){case 0:Xe(!yn),(cn=tn.props)===null||cn===void 0||(de=cn.onClick)===null||de===void 0||de.call(cn,Te);case 2:case"end":return Ne.stop()}},Be)}));function Fe(Be){return ge.apply(this,arguments)}return Fe}()})):null},[Xe,tn,yn]),Bn=(0,be.useMemo)(function(){var ge,Fe,Be,Te,cn,de,mn,Ne;return je.submitter===!1?!1:gn()({searchConfig:{submitText:(ge=(Fe=re==null?void 0:re.okText)!==null&&Fe!==void 0?Fe:(Be=$n.locale)===null||Be===void 0||(Te=Be.Modal)===null||Te===void 0?void 0:Te.okText)!==null&&ge!==void 0?ge:"\u786E\u8BA4",resetText:(cn=(de=re==null?void 0:re.cancelText)!==null&&de!==void 0?de:(mn=$n.locale)===null||mn===void 0||(Ne=mn.Modal)===null||Ne===void 0?void 0:Ne.cancelText)!==null&&cn!==void 0?cn:"\u53D6\u6D88"},resetButtonProps:{preventDefault:!0,disabled:An?$e:void 0,onClick:function(xn){var nn;Xe(!1),re==null||(nn=re.onCancel)===null||nn===void 0||nn.call(re,xn)}}},je.submitter)},[(Nn=$n.locale)===null||Nn===void 0||(Tn=Nn.Modal)===null||Tn===void 0?void 0:Tn.cancelText,(s=$n.locale)===null||s===void 0||(Ln=s.Modal)===null||Ln===void 0?void 0:Ln.okText,re,je.submitter,Xe,$e,An]),an=(0,be.useCallback)(function(ge,Fe){return(0,he.jsxs)(he.Fragment,{children:[ge,In.current&&Fe?(0,he.jsx)(be.Fragment,{children:(0,dn.createPortal)(Fe,In.current)},"submitter"):Fe]})},[]),Cn=(0,be.useCallback)(function(){var ge=(0,ae.Z)((0,Q.Z)().mark(function Fe(Be){var Te,cn,de;return(0,Q.Z)().wrap(function(Ne){for(;;)switch(Ne.prev=Ne.next){case 0:return Te=Xn==null?void 0:Xn(Be),An&&Te instanceof Promise&&(le(!0),cn=setTimeout(function(){return le(!1)},An),Te.finally(function(){clearTimeout(cn),le(!1)})),Ne.next=4,Te;case 4:return de=Ne.sent,de&&Xe(!1),Ne.abrupt("return",de);case 7:case"end":return Ne.stop()}},Fe)}));return function(Fe){return ge.apply(this,arguments)}}(),[Xn,Xe,An]),or=(0,Ge.X)(yn);return(0,he.jsxs)(he.Fragment,{children:[(0,he.jsx)(we.Z,(0,Me.Z)((0,Me.Z)((0,Me.Z)({title:Zr,width:Sr||800},re),or),{},{onCancel:function(Fe){var Be;An&&$e||(Xe(!1),re==null||(Be=re.onCancel)===null||Be===void 0||Be.call(re,Fe))},afterClose:function(){var Fe;We(),Xe(!1),re==null||(Fe=re.afterClose)===null||Fe===void 0||Fe.call(re)},footer:je.submitter!==!1?(0,he.jsx)("div",{ref:Rr,style:{display:"flex",justifyContent:"flex-end"}}):null,children:(0,he.jsx)(ie.I,(0,Me.Z)((0,Me.Z)({formComponentType:"ModalForm",layout:"vertical"},je),{},{onInit:function(Fe,Be){var Te;je.formRef&&(je.formRef.current=Be),je==null||(Te=je.onInit)===null||Te===void 0||Te.call(je,Fe,Be),ue.current=Be},formRef:ue,submitter:Bn,onFinish:function(){var ge=(0,ae.Z)((0,Q.Z)().mark(function Fe(Be){var Te;return(0,Q.Z)().wrap(function(de){for(;;)switch(de.prev=de.next){case 0:return de.next=2,Cn(Be);case 2:return Te=de.sent,de.abrupt("return",Te);case 4:case"end":return de.stop()}},Fe)}));return function(Fe){return ge.apply(this,arguments)}}(),contentRender:an,children:pe}))})),bn]})}},95122:function(Kr,Vn,g){g.d(Vn,{U9:function(){return tr},L0:function(){return ar},bg:function(){return $n}});var Q=g(37734),ae=g(57370),Me=g(74632),oe=g(79290),m=g(29140),Ge=g(28314),a=g(47075),we=g(25846),kn=g(85734),gn=g(31647),De=g(15457),Fn=g(62886),be=g(31188),dn=g(42505),ie=g(93430),he=g(81116),Re=g(12562),d=g(57414),fe=g(47513),Nn=g(87608),Tn=g.n(Nn),s=g(42156),Ln=g(60409),pe=g(58757),tn=g(36490),Ae=g(75556),Sn=g(92284),re=g(35667),Xn=["onFinish","step","formRef","title","stepProps"];function An(Pe){var $e=(0,pe.useRef)(),le=(0,pe.useContext)($n),en=(0,pe.useContext)(tr),Qe=(0,ae.Z)((0,ae.Z)({},Pe),en),yn=Qe.onFinish,Xe=Qe.step,In=Qe.formRef,Rr=Qe.title,ue=Qe.stepProps,We=(0,a.Z)(Qe,Xn);return(0,Ae.ET)(!We.submitter,"StepForm \u4E0D\u5305\u542B\u63D0\u4EA4\u6309\u94AE\uFF0C\u8BF7\u5728 StepsForm \u4E0A"),(0,pe.useImperativeHandle)(In,function(){return $e.current},[In==null?void 0:In.current]),(0,pe.useEffect)(function(){if(Qe.name||Qe.step){var bn=(Qe.name||Qe.step).toString();return le==null||le.regForm(bn,Qe),function(){le==null||le.unRegForm(bn)}}},[]),le&&le!==null&&le!==void 0&&le.formArrayRef&&(le.formArrayRef.current[Xe||0]=$e),(0,re.jsx)(Sn.I,(0,ae.Z)({formRef:$e,onFinish:function(){var bn=(0,oe.Z)((0,Me.Z)().mark(function Bn(an){var Cn;return(0,Me.Z)().wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:if(We.name&&(le==null||le.onFormFinish(We.name,an)),!yn){ge.next=9;break}return le==null||le.setLoading(!0),ge.next=5,yn==null?void 0:yn(an);case 5:return Cn=ge.sent,Cn&&(le==null||le.next()),le==null||le.setLoading(!1),ge.abrupt("return");case 9:le!=null&&le.lastStep||le==null||le.next();case 10:case"end":return ge.stop()}},Bn)}));return function(Bn){return bn.apply(this,arguments)}}(),onInit:function(Bn,an){var Cn;$e.current=an,le&&le!==null&&le!==void 0&&le.formArrayRef&&(le.formArrayRef.current[Xe||0]=$e),We==null||(Cn=We.onInit)===null||Cn===void 0||Cn.call(We,Bn,an)},layout:"vertical"},(0,tn.Z)(We,["layoutType","columns"])))}var Zr=An,Sr=g(70260),Jn=function($e){return(0,Q.Z)({},$e.componentCls,{"&-container":{width:"max-content",minWidth:"420px",maxWidth:"100%",margin:"auto"},"&-steps-container":(0,Q.Z)({maxWidth:"1160px",margin:"auto"},"".concat($e.antCls,"-steps-vertical"),{height:"100%"}),"&-step":{display:"none",marginBlockStart:"32px","&-active":{display:"block"},"> form":{maxWidth:"100%"}}})};function Yn(Pe){return(0,Sr.Xj)("StepsForm",function($e){var le=(0,ae.Z)((0,ae.Z)({},$e),{},{componentCls:".".concat(Pe)});return[Jn(le)]})}var je=["current","onCurrentChange","submitter","stepsFormRender","stepsRender","stepFormRender","stepsProps","onFinish","formProps","containerStyle","formRef","formMapRef","layoutRender"],$n=pe.createContext(void 0),br={horizontal:function($e){var le=$e.stepsDom,en=$e.formDom;return(0,re.jsxs)(re.Fragment,{children:[(0,re.jsx)(Fn.Z,{gutter:{xs:8,sm:16,md:24},children:(0,re.jsx)(be.Z,{span:24,children:le})}),(0,re.jsx)(Fn.Z,{gutter:{xs:8,sm:16,md:24},children:(0,re.jsx)(be.Z,{span:24,children:en})})]})},vertical:function($e){var le=$e.stepsDom,en=$e.formDom;return(0,re.jsxs)(Fn.Z,{align:"stretch",wrap:!0,gutter:{xs:8,sm:16,md:24},children:[(0,re.jsx)(be.Z,{xxl:4,xl:6,lg:7,md:8,sm:10,xs:12,children:pe.cloneElement(le,{style:{height:"100%"}})}),(0,re.jsx)(be.Z,{children:(0,re.jsx)("div",{style:{display:"flex",alignItems:"center",width:"100%",height:"100%"},children:en})})]})}},tr=pe.createContext(null);function xr(Pe){var $e=(0,pe.useContext)(dn.ZP.ConfigContext),le=$e.getPrefixCls,en=le("pro-steps-form"),Qe=Yn(en),yn=Qe.wrapSSR,Xe=Qe.hashId,In=Pe.current,Rr=Pe.onCurrentChange,ue=Pe.submitter,We=Pe.stepsFormRender,bn=Pe.stepsRender,Bn=Pe.stepFormRender,an=Pe.stepsProps,Cn=Pe.onFinish,or=Pe.formProps,ge=Pe.containerStyle,Fe=Pe.formRef,Be=Pe.formMapRef,Te=Pe.layoutRender,cn=(0,a.Z)(Pe,je),de=(0,pe.useRef)(new Map),mn=(0,pe.useRef)(new Map),Ne=(0,pe.useRef)([]),Pr=(0,pe.useState)([]),xn=(0,Ge.Z)(Pr,2),nn=xn[0],Dr=xn[1],Rn=(0,pe.useState)(!1),fr=(0,Ge.Z)(Rn,2),Ke=fr[0],lr=fr[1],Un=(0,we.YB)(),ir=(0,Ln.Z)(0,{value:Pe.current,onChange:Pe.onCurrentChange}),sr=(0,Ge.Z)(ir,2),rn=sr[0],mr=sr[1],wr=(0,pe.useMemo)(function(){return br[(an==null?void 0:an.direction)||"horizontal"]},[an==null?void 0:an.direction]),Fr=(0,pe.useMemo)(function(){return rn===nn.length-1},[nn.length,rn]),Tr=(0,pe.useCallback)(function(se,xe){mn.current.has(se)||Dr(function(Je){return[].concat((0,m.Z)(Je),[se])}),mn.current.set(se,xe)},[]),vn=(0,pe.useCallback)(function(se){Dr(function(xe){return xe.filter(function(Je){return Je!==se})}),mn.current.delete(se),de.current.delete(se)},[]);(0,pe.useImperativeHandle)(Be,function(){return Ne.current},[Ne.current]),(0,pe.useImperativeHandle)(Fe,function(){var se;return(se=Ne.current[rn||0])===null||se===void 0?void 0:se.current},[rn,Ne.current]);var ur=(0,pe.useCallback)(function(){var se=(0,oe.Z)((0,Me.Z)().mark(function xe(Je,Ve){var er,Zn;return(0,Me.Z)().wrap(function(on){for(;;)switch(on.prev=on.next){case 0:if(de.current.set(Je,Ve),!(!Fr||!Cn)){on.next=3;break}return on.abrupt("return");case 3:return lr(!0),er=kn.T.apply(void 0,[{}].concat((0,m.Z)(Array.from(de.current.values())))),on.prev=5,on.next=8,Cn(er);case 8:Zn=on.sent,Zn&&(mr(0),Ne.current.forEach(function(Ar){var $r;return($r=Ar.current)===null||$r===void 0?void 0:$r.resetFields()})),on.next=15;break;case 12:on.prev=12,on.t0=on.catch(5),console.log(on.t0);case 15:return on.prev=15,lr(!1),on.finish(15);case 18:case"end":return on.stop()}},xe,null,[[5,12,15,18]])}));return function(xe,Je){return se.apply(this,arguments)}}(),[Fr,Cn,lr,mr]),Ir=(0,pe.useMemo)(function(){var se=(0,gn.n)(ie.Z,"4.24.0")>-1,xe=se?{items:nn.map(function(Je){var Ve=mn.current.get(Je);return(0,ae.Z)({key:Je,title:Ve==null?void 0:Ve.title},Ve==null?void 0:Ve.stepProps)})}:{};return(0,re.jsx)("div",{className:"".concat(en,"-steps-container ").concat(Xe).trim(),style:{maxWidth:Math.min(nn.length*320,1160)},children:(0,re.jsx)(he.Z,(0,ae.Z)((0,ae.Z)((0,ae.Z)({},an),xe),{},{current:rn,onChange:void 0,children:!se&&nn.map(function(Je){var Ve=mn.current.get(Je);return(0,re.jsx)(he.Z.Step,(0,ae.Z)({title:Ve==null?void 0:Ve.title},Ve==null?void 0:Ve.stepProps),Je)})}))})},[nn,Xe,en,rn,an]),Qn=(0,De.J)(function(){var se,xe=Ne.current[rn];(se=xe.current)===null||se===void 0||se.submit()}),hr=(0,De.J)(function(){rn<1||mr(rn-1)}),Er=(0,pe.useMemo)(function(){return ue!==!1&&(0,re.jsx)(Re.ZP,(0,ae.Z)((0,ae.Z)({type:"primary",loading:Ke},ue==null?void 0:ue.submitButtonProps),{},{onClick:function(){var xe;ue==null||(xe=ue.onSubmit)===null||xe===void 0||xe.call(ue),Qn()},children:Un.getMessage("stepsForm.next","\u4E0B\u4E00\u6B65")}),"next")},[Un,Ke,Qn,ue]),Mr=(0,pe.useMemo)(function(){return ue!==!1&&(0,re.jsx)(Re.ZP,(0,ae.Z)((0,ae.Z)({},ue==null?void 0:ue.resetButtonProps),{},{onClick:function(){var xe;hr(),ue==null||(xe=ue.onReset)===null||xe===void 0||xe.call(ue)},children:Un.getMessage("stepsForm.prev","\u4E0A\u4E00\u6B65")}),"pre")},[Un,hr,ue]),hn=(0,pe.useMemo)(function(){return ue!==!1&&(0,re.jsx)(Re.ZP,(0,ae.Z)((0,ae.Z)({type:"primary",loading:Ke},ue==null?void 0:ue.submitButtonProps),{},{onClick:function(){var xe;ue==null||(xe=ue.onSubmit)===null||xe===void 0||xe.call(ue),Qn()},children:Un.getMessage("stepsForm.submit","\u63D0\u4EA4")}),"submit")},[Un,Ke,Qn,ue]),qn=(0,De.J)(function(){rn>nn.length-2||mr(rn+1)}),dr=(0,pe.useMemo)(function(){var se=[],xe=rn||0;if(xe<1?nn.length===1?se.push(hn):se.push(Er):xe+1===nn.length?se.push(Mr,hn):se.push(Mr,Er),se=se.filter(pe.isValidElement),ue&&ue.render){var Je,Ve={form:(Je=Ne.current[rn])===null||Je===void 0?void 0:Je.current,onSubmit:Qn,step:rn,onPre:hr};return ue.render(Ve,se)}return ue&&(ue==null?void 0:ue.render)===!1?null:se},[nn.length,Er,Qn,Mr,hr,rn,hn,ue]),Kn=(0,pe.useMemo)(function(){return(0,s.Z)(Pe.children).map(function(se,xe){var Je=se.props,Ve=Je.name||"".concat(xe),er=rn===xe,Zn=er?{contentRender:Bn,submitter:!1}:{};return(0,re.jsx)("div",{className:Tn()("".concat(en,"-step"),Xe,(0,Q.Z)({},"".concat(en,"-step-active"),er)),children:(0,re.jsx)(tr.Provider,{value:(0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)({},Zn),or),Je),{},{name:Ve,step:xe}),children:se})},Ve)})},[or,Xe,en,Pe.children,rn,Bn]),_n=(0,pe.useMemo)(function(){return bn?bn(nn.map(function(se){var xe;return{key:se,title:(xe=mn.current.get(se))===null||xe===void 0?void 0:xe.title}}),Ir):Ir},[nn,Ir,bn]),Or=(0,pe.useMemo)(function(){return(0,re.jsxs)("div",{className:"".concat(en,"-container ").concat(Xe).trim(),style:ge,children:[Kn,We?null:(0,re.jsx)(d.Z,{children:dr})]})},[ge,Kn,Xe,en,We,dr]),Vr=(0,pe.useMemo)(function(){var se={stepsDom:_n,formDom:Or};return We?We(Te?Te(se):wr(se),dr):Te?Te(se):wr(se)},[_n,Or,wr,We,dr,Te]);return yn((0,re.jsx)("div",{className:Tn()(en,Xe),children:(0,re.jsx)(fe.Z.Provider,(0,ae.Z)((0,ae.Z)({},cn),{},{children:(0,re.jsx)($n.Provider,{value:{loading:Ke,setLoading:lr,regForm:Tr,keyArray:nn,next:qn,formArrayRef:Ne,formMapRef:mn,lastStep:Fr,unRegForm:vn,onFormFinish:ur},children:Vr})}))}))}function ar(Pe){return(0,re.jsx)(we._Y,{needDeps:!0,children:(0,re.jsx)(xr,(0,ae.Z)({},Pe))})}ar.StepForm=Zr,ar.useForm=fe.Z.useForm},24977:function(Kr,Vn,g){g.d(Vn,{Z:function(){return jl}});var Q=g(74632),ae=g(79290),Me=g(38790),oe=g(28314),m=g(37734),Ge=g(29140),a=g(57370),we=g(47075),kn=g(91169),gn=g(32311),De=g(42505),Fn=g(80172),be=g(16951),dn=g(87608),ie=g.n(dn),he=g(36490),Re=g(60409),d=g(58757),fe=g(70260),Nn=function(e){var t,r,o=e.componentCls,u=e.antCls;return(0,m.Z)({},"".concat(o,"-actions"),(r={marginBlock:0,marginInline:0,paddingBlock:0,paddingInline:0,listStyle:"none",display:"flex",gap:e.marginXS,background:e.colorBgContainer,borderBlockStart:"".concat(e.lineWidth,"px ").concat(e.lineType," ").concat(e.colorSplit),minHeight:42},(0,m.Z)(r,"& > *",{alignItems:"center",justifyContent:"center",flex:1,display:"flex",cursor:"pointer",color:e.colorTextSecondary,transition:"color 0.3s","&:hover":{color:e.colorPrimaryHover}}),(0,m.Z)(r,"& > li > div",{flex:1,width:"100%",marginBlock:e.marginSM,marginInline:0,color:e.colorTextSecondary,textAlign:"center",a:{color:e.colorTextSecondary,transition:"color 0.3s","&:hover":{color:e.colorPrimaryHover}},div:(t={position:"relative",display:"block",minWidth:32,fontSize:e.fontSize,lineHeight:e.lineHeight,cursor:"pointer","&:hover":{color:e.colorPrimaryHover,transition:"color 0.3s"}},(0,m.Z)(t,"a:not(".concat(u,`-btn), + > .anticon`),{display:"inline-block",width:"100%",color:e.colorTextSecondary,lineHeight:"22px",transition:"color 0.3s","&:hover":{color:e.colorPrimaryHover}}),(0,m.Z)(t,".anticon",{fontSize:e.cardActionIconSize,lineHeight:"22px"}),t),"&:not(:last-child)":{borderInlineEnd:"".concat(e.lineWidth,"px ").concat(e.lineType," ").concat(e.colorSplit)}}),r))};function Tn(n){return(0,fe.Xj)("ProCardActions",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n),cardActionIconSize:16});return[Nn(t)]})}var s=g(35667),Ln=function(e){var t=e.actions,r=e.prefixCls,o=Tn(r),u=o.wrapSSR,l=o.hashId;return Array.isArray(t)&&t!==null&&t!==void 0&&t.length?u((0,s.jsx)("ul",{className:ie()("".concat(r,"-actions"),l),children:t.map(function(i,c){return(0,s.jsx)("li",{style:{width:"".concat(100/t.length,"%"),padding:0,margin:0},className:ie()("".concat(r,"-actions-item"),l),children:i},"action-".concat(c))})})):u((0,s.jsx)("ul",{className:ie()("".concat(r,"-actions"),l),children:t}))},pe=Ln,tn=g(62886),Ae=g(31188),Sn=g(57793),re=new Sn.E4("card-loading",{"0%":{backgroundPosition:"0 50%"},"50%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),Xn=function(e){var t;return(0,m.Z)({},e.componentCls,(t={"&-loading":{overflow:"hidden"},"&-loading &-body":{userSelect:"none"}},(0,m.Z)(t,"".concat(e.componentCls,"-loading-content"),{width:"100%",p:{marginBlock:0,marginInline:0}}),(0,m.Z)(t,"".concat(e.componentCls,"-loading-block"),{height:"14px",marginBlock:"4px",background:"linear-gradient(90deg, rgba(54, 61, 64, 0.2), rgba(54, 61, 64, 0.4), rgba(54, 61, 64, 0.2))",backgroundSize:"600% 600%",borderRadius:e.borderRadius,animationName:re,animationDuration:"1.4s",animationTimingFunction:"ease",animationIterationCount:"infinite"}),t))};function An(n){return(0,fe.Xj)("ProCardLoading",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[Xn(t)]})}var Zr=function(e){var t=e.style,r=e.prefix,o=An(r||"ant-pro-card"),u=o.wrapSSR;return u((0,s.jsxs)("div",{className:"".concat(r,"-loading-content"),style:t,children:[(0,s.jsx)(tn.Z,{gutter:8,children:(0,s.jsx)(Ae.Z,{span:22,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})})}),(0,s.jsxs)(tn.Z,{gutter:8,children:[(0,s.jsx)(Ae.Z,{span:8,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})}),(0,s.jsx)(Ae.Z,{span:15,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})})]}),(0,s.jsxs)(tn.Z,{gutter:8,children:[(0,s.jsx)(Ae.Z,{span:6,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})}),(0,s.jsx)(Ae.Z,{span:18,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})})]}),(0,s.jsxs)(tn.Z,{gutter:8,children:[(0,s.jsx)(Ae.Z,{span:13,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})}),(0,s.jsx)(Ae.Z,{span:9,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})})]}),(0,s.jsxs)(tn.Z,{gutter:8,children:[(0,s.jsx)(Ae.Z,{span:4,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})}),(0,s.jsx)(Ae.Z,{span:3,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})}),(0,s.jsx)(Ae.Z,{span:16,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})})]})]}))},Sr=Zr,Jn=g(93430),Yn=g(42156),je=g(75556),$n=g(73656),br=["tab","children"],tr=["key","tab","tabKey","disabled","destroyInactiveTabPane","children","className","style","cardProps"];function xr(n){return n.filter(function(e){return e})}function ar(n,e,t){if(n)return n.map(function(o){return(0,a.Z)((0,a.Z)({},o),{},{children:(0,s.jsx)(We,(0,a.Z)((0,a.Z)({},t==null?void 0:t.cardProps),{},{children:o.children}))})});(0,je.ET)(!t,"Tabs.TabPane is deprecated. Please use `items` directly.");var r=(0,Yn.Z)(e).map(function(o){if(d.isValidElement(o)){var u=o.key,l=o.props,i=l||{},c=i.tab,f=i.children,v=(0,we.Z)(i,br),P=(0,a.Z)((0,a.Z)({key:String(u)},v),{},{children:(0,s.jsx)(We,(0,a.Z)((0,a.Z)({},t==null?void 0:t.cardProps),{},{children:f})),label:c});return P}return null});return xr(r)}var Pe=function(e){var t=(0,d.useContext)(De.ZP.ConfigContext),r=t.getPrefixCls;if(Jn.Z.startsWith("5"))return(0,s.jsx)(s.Fragment,{});var o=e.key,u=e.tab,l=e.tabKey,i=e.disabled,c=e.destroyInactiveTabPane,f=e.children,v=e.className,P=e.style,y=e.cardProps,w=(0,we.Z)(e,tr),C=r("pro-card-tabpane"),Z=ie()(C,v);return(0,s.jsx)(be.Z.TabPane,(0,a.Z)((0,a.Z)({tabKey:l,tab:u,className:Z,style:P,disabled:i,destroyInactiveTabPane:c},w),{},{children:(0,s.jsx)(We,(0,a.Z)((0,a.Z)({},y),{},{children:f}))}),o)},$e=Pe,le=function(e){return{backgroundColor:e.controlItemBgActive,borderColor:e.controlOutline}},en=function(e){var t,r,o,u,l,i=e.componentCls;return l={},(0,m.Z)(l,i,(0,a.Z)((0,a.Z)({position:"relative",display:"flex",flexDirection:"column",boxSizing:"border-box",width:"100%",marginBlock:0,marginInline:0,paddingBlock:0,paddingInline:0,backgroundColor:e.colorBgContainer,borderRadius:e.borderRadius},fe.Wf===null||fe.Wf===void 0?void 0:(0,fe.Wf)(e)),{},(r={"&-box-shadow":{boxShadow:"0 1px 2px -2px #00000029, 0 3px 6px #0000001f, 0 5px 12px 4px #00000017",borderColor:"transparent"},"&-col":{width:"100%"},"&-border":{border:"".concat(e.lineWidth,"px ").concat(e.lineType," ").concat(e.colorSplit)},"&-hoverable":(0,m.Z)({cursor:"pointer",transition:"box-shadow 0.3s, border-color 0.3s","&:hover":{borderColor:"transparent",boxShadow:"0 1px 2px -2px #00000029, 0 3px 6px #0000001f, 0 5px 12px 4px #00000017"}},"&".concat(i,"-checked:hover"),{borderColor:e.controlOutline}),"&-checked":(0,a.Z)((0,a.Z)({},le(e)),{},{"&::after":{position:"absolute",insetBlockStart:2,insetInlineEnd:2,width:0,height:0,border:"6px solid ".concat(e.colorPrimary),borderBlockEnd:"6px solid transparent",borderInlineStart:"6px solid transparent",borderStartEndRadius:2,content:'""'}}),"&:focus":(0,a.Z)({},le(e)),"&&-ghost":(0,m.Z)({backgroundColor:"transparent"},"> ".concat(i),{"&-header":{paddingInlineEnd:0,paddingBlockEnd:e.padding,paddingInlineStart:0},"&-body":{paddingBlock:0,paddingInline:0,backgroundColor:"transparent"}}),"&&-split > &-body":{paddingBlock:0,paddingInline:0},"&&-contain-card > &-body":{display:"flex"}},(0,m.Z)(r,"".concat(i,"-body-direction-column"),{flexDirection:"column"}),(0,m.Z)(r,"".concat(i,"-body-wrap"),{flexWrap:"wrap"}),(0,m.Z)(r,"&&-collapse",(0,m.Z)({},"> ".concat(i),{"&-header":{paddingBlockEnd:e.padding,borderBlockEnd:0},"&-body":{display:"none"}})),(0,m.Z)(r,"".concat(i,"-header"),{display:"flex",alignItems:"center",justifyContent:"space-between",paddingInline:e.paddingLG,paddingBlock:e.padding,paddingBlockEnd:0,"&-border":{"&":{paddingBlockEnd:e.padding},borderBlockEnd:"".concat(e.lineWidth,"px ").concat(e.lineType," ").concat(e.colorSplit)},"&-collapsible":{cursor:"pointer"}}),(0,m.Z)(r,"".concat(i,"-title"),{color:e.colorText,fontWeight:500,fontSize:e.fontSizeLG,lineHeight:e.lineHeight}),(0,m.Z)(r,"".concat(i,"-extra"),{color:e.colorText}),(0,m.Z)(r,"".concat(i,"-type-inner"),(0,m.Z)({},"".concat(i,"-header"),{backgroundColor:e.colorFillAlter})),(0,m.Z)(r,"".concat(i,"-collapsible-icon"),{marginInlineEnd:e.marginXS,color:e.colorIconHover,":hover":{color:e.colorPrimaryHover},"& svg":{transition:"transform ".concat(e.motionDurationMid)}}),(0,m.Z)(r,"".concat(i,"-body"),{display:"block",boxSizing:"border-box",height:"100%",paddingInline:e.paddingLG,paddingBlock:e.padding,"&-center":{display:"flex",alignItems:"center",justifyContent:"center"}}),(0,m.Z)(r,"&&-size-small",(t={},(0,m.Z)(t,i,{"&-header":{paddingInline:e.paddingSM,paddingBlock:e.paddingXS,paddingBlockEnd:0,"&-border":{paddingBlockEnd:e.paddingXS}},"&-title":{fontSize:e.fontSize},"&-body":{paddingInline:e.paddingSM,paddingBlock:e.paddingSM}}),(0,m.Z)(t,"".concat(i,"-header").concat(i,"-header-collapsible"),{paddingBlock:e.paddingXS}),t)),r))),(0,m.Z)(l,"".concat(i,"-col"),(o={},(0,m.Z)(o,"&".concat(i,"-split-vertical"),{borderInlineEnd:"".concat(e.lineWidth,"px ").concat(e.lineType," ").concat(e.colorSplit)}),(0,m.Z)(o,"&".concat(i,"-split-horizontal"),{borderBlockEnd:"".concat(e.lineWidth,"px ").concat(e.lineType," ").concat(e.colorSplit)}),o)),(0,m.Z)(l,"".concat(i,"-tabs"),(u={},(0,m.Z)(u,"".concat(e.antCls,"-tabs-top > ").concat(e.antCls,"-tabs-nav"),(0,m.Z)({marginBlockEnd:0},"".concat(e.antCls,"-tabs-nav-list"),{marginBlockStart:e.marginXS,paddingInlineStart:e.padding})),(0,m.Z)(u,"".concat(e.antCls,"-tabs-bottom > ").concat(e.antCls,"-tabs-nav"),(0,m.Z)({marginBlockEnd:0},"".concat(e.antCls,"-tabs-nav-list"),{paddingInlineStart:e.padding})),(0,m.Z)(u,"".concat(e.antCls,"-tabs-left"),(0,m.Z)({},"".concat(e.antCls,"-tabs-content-holder"),(0,m.Z)({},"".concat(e.antCls,"-tabs-content"),(0,m.Z)({},"".concat(e.antCls,"-tabs-tabpane"),{paddingInlineStart:0})))),(0,m.Z)(u,"".concat(e.antCls,"-tabs-left > ").concat(e.antCls,"-tabs-nav"),(0,m.Z)({marginInlineEnd:0},"".concat(e.antCls,"-tabs-nav-list"),{paddingBlockStart:e.padding})),(0,m.Z)(u,"".concat(e.antCls,"-tabs-right"),(0,m.Z)({},"".concat(e.antCls,"-tabs-content-holder"),(0,m.Z)({},"".concat(e.antCls,"-tabs-content"),(0,m.Z)({},"".concat(e.antCls,"-tabs-tabpane"),{paddingInlineStart:0})))),(0,m.Z)(u,"".concat(e.antCls,"-tabs-right > ").concat(e.antCls,"-tabs-nav"),(0,m.Z)({},"".concat(e.antCls,"-tabs-nav-list"),{paddingBlockStart:e.padding})),u)),l},Qe=24,yn=function(e,t){var r=t.componentCls;return e===0?(0,m.Z)({},"".concat(r,"-col-0"),{display:"none"}):(0,m.Z)({},"".concat(r,"-col-").concat(e),{flexShrink:0,width:"".concat(e/Qe*100,"%")})},Xe=function(e){return Array(Qe+1).fill(1).map(function(t,r){return yn(r,e)})};function In(n){return(0,fe.Xj)("ProCard",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[en(t),Xe(t)]})}var Rr=["className","style","bodyStyle","headStyle","title","subTitle","extra","tip","wrap","layout","loading","gutter","tooltip","split","headerBordered","bordered","boxShadow","children","size","actions","ghost","hoverable","direction","collapsed","collapsible","collapsibleIconRender","defaultCollapsed","onCollapse","checked","onChecked","tabs","type"],ue=d.forwardRef(function(n,e){var t,r,o,u=n.className,l=n.style,i=n.bodyStyle,c=i===void 0?{}:i,f=n.headStyle,v=f===void 0?{}:f,P=n.title,y=n.subTitle,w=n.extra,C=n.tip,Z=n.wrap,b=Z===void 0?!1:Z,p=n.layout,F=n.loading,T=n.gutter,I=T===void 0?0:T,K=n.tooltip,L=n.split,j=n.headerBordered,E=j===void 0?!1:j,X=n.bordered,H=X===void 0?!1:X,R=n.boxShadow,x=R===void 0?!1:R,G=n.children,A=n.size,h=n.actions,$=n.ghost,k=$===void 0?!1:$,J=n.hoverable,z=J===void 0?!1:J,S=n.direction,N=n.collapsed,D=n.collapsible,O=D===void 0?!1:D,V=n.collapsibleIconRender,W=n.defaultCollapsed,U=W===void 0?!1:W,M=n.onCollapse,B=n.checked,_=n.onChecked,ee=n.tabs,ce=n.type,ye=(0,we.Z)(n,Rr),ve=(0,d.useContext)(De.ZP.ConfigContext),Ce=ve.getPrefixCls,qe=Fn.ZP.useBreakpoint()||{lg:!0,md:!0,sm:!0,xl:!1,xs:!1,xxl:!1},Ue=(0,Re.Z)(U,{value:N,onChange:M}),Ye=(0,oe.Z)(Ue,2),ln=Ye[0],_e=Ye[1],Pn=["xxl","xl","lg","md","sm","xs"],En=ar(ee==null?void 0:ee.items,G,ee),Ze=function(Le){var ke=[0,0],pn=Array.isArray(Le)?Le:[Le,0];return pn.forEach(function(fn,Hn){if((0,Me.Z)(fn)==="object")for(var Wn=0;Wn=0&&Wn<=24),pn)),Br=Ee((0,s.jsx)("div",{style:(0,a.Z)((0,a.Z)((0,a.Z)({},Mn),q(vr>0,{paddingInlineEnd:vr/2,paddingInlineStart:vr/2})),q(jr>0,{paddingBlockStart:jr/2,paddingBlockEnd:jr/2})),className:nt,children:d.cloneElement(sn)}));return d.cloneElement(Br,{key:"pro-card-col-".concat((sn==null?void 0:sn.key)||Le)})}return sn}),Wr=ie()("".concat(te),u,wn,(t={},(0,m.Z)(t,"".concat(te,"-border"),H),(0,m.Z)(t,"".concat(te,"-box-shadow"),x),(0,m.Z)(t,"".concat(te,"-contain-card"),Cr),(0,m.Z)(t,"".concat(te,"-loading"),F),(0,m.Z)(t,"".concat(te,"-split"),L==="vertical"||L==="horizontal"),(0,m.Z)(t,"".concat(te,"-ghost"),k),(0,m.Z)(t,"".concat(te,"-hoverable"),z),(0,m.Z)(t,"".concat(te,"-size-").concat(A),A),(0,m.Z)(t,"".concat(te,"-type-").concat(ce),ce),(0,m.Z)(t,"".concat(te,"-collapse"),ln),(0,m.Z)(t,"".concat(te,"-checked"),B),t)),et=ie()("".concat(te,"-body"),wn,(r={},(0,m.Z)(r,"".concat(te,"-body-center"),p==="center"),(0,m.Z)(r,"".concat(te,"-body-direction-column"),L==="horizontal"||S==="column"),(0,m.Z)(r,"".concat(te,"-body-wrap"),b&&Cr),r)),He=c,Lr=d.isValidElement(F)?F:(0,s.jsx)(Sr,{prefix:te,style:c.padding===0||c.padding==="0px"?{padding:24}:void 0}),Ie=O&&N===void 0&&(V?V({collapsed:ln}):(0,s.jsx)(kn.Z,{rotate:ln?void 0:90,className:"".concat(te,"-collapsible-icon ").concat(wn).trim()}));return Ee((0,s.jsxs)("div",(0,a.Z)((0,a.Z)({className:Wr,style:l,ref:e,onClick:function(Le){var ke;_==null||_(Le),ye==null||(ke=ye.onClick)===null||ke===void 0||ke.call(ye,Le),Le.stopPropagation()}},(0,he.Z)(ye,["prefixCls","colSpan"])),{},{children:[(P||w||Ie)&&(0,s.jsxs)("div",{className:ie()("".concat(te,"-header"),wn,(o={},(0,m.Z)(o,"".concat(te,"-header-border"),E||ce==="inner"),(0,m.Z)(o,"".concat(te,"-header-collapsible"),Ie),o)),style:v,onClick:function(){Ie&&_e(!ln)},children:[(0,s.jsxs)("div",{className:"".concat(te,"-title ").concat(wn).trim(),children:[Ie,(0,s.jsx)(gn.G,{label:P,tooltip:K||C,subTitle:y})]}),w&&(0,s.jsx)("div",{className:"".concat(te,"-extra ").concat(wn).trim(),onClick:function(Le){return Le.stopPropagation()},children:w})]}),ee?(0,s.jsx)("div",{className:"".concat(te,"-tabs ").concat(wn).trim(),children:(0,s.jsx)(be.Z,(0,a.Z)((0,a.Z)({onChange:ee.onChange},ee),{},{items:En,children:F?Lr:G}))}):(0,s.jsx)("div",{className:et,style:He,children:F?Lr:Nr}),h?(0,s.jsx)(pe,{actions:h,prefixCls:te}):null]})))}),We=ue,bn=function(e){var t=e.componentCls;return(0,m.Z)({},t,{"&-divider":{flex:"none",width:e.lineWidth,marginInline:e.marginXS,marginBlock:e.marginLG,backgroundColor:e.colorSplit,"&-horizontal":{width:"initial",height:e.lineWidth,marginInline:e.marginLG,marginBlock:e.marginXS}},"&&-size-small &-divider":{marginBlock:e.marginLG,marginInline:e.marginXS,"&-horizontal":{marginBlock:e.marginXS,marginInline:e.marginLG}}})};function Bn(n){return(0,fe.Xj)("ProCardDivider",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[bn(t)]})}var an=function(e){var t=(0,d.useContext)(De.ZP.ConfigContext),r=t.getPrefixCls,o=r("pro-card"),u="".concat(o,"-divider"),l=Bn(o),i=l.wrapSSR,c=l.hashId,f=e.className,v=e.style,P=v===void 0?{}:v,y=e.type,w=ie()(u,f,c,(0,m.Z)({},"".concat(u,"-").concat(y),y));return i((0,s.jsx)("div",{className:w,style:P}))},Cn=an,or=function(e){return(0,s.jsx)(We,(0,a.Z)({bodyStyle:{padding:0}},e))},ge=We;ge.isProCard=!0,ge.Divider=Cn,ge.TabPane=$e,ge.Group=or;var Fe=ge,Be=Fe,Te=g(81296),cn=Te.A,de=g(25846),mn=g(6747),Ne=g(25755),Pr=g(84045),xn=g(47513),nn=g(30956),Dr=g(27982),Rn=g(3187),fr=g(16766),Ke=g(15457),lr=g(75799),Un=g(7916),ir=g(52496),sr=g(99947),rn=g(85734),mr=["map_row_parentKey"],wr=["map_row_parentKey","map_row_key"],Fr=["map_row_key"],Tr=function(e){return(Pr.ZP.warn||Pr.ZP.warning)(e)},vn=function(e){return Array.isArray(e)?e.join(","):e};function ur(n,e){var t,r=n.getRowKey,o=n.row,u=n.data,l=n.childrenColumnName,i=l===void 0?"children":l,c=(t=vn(n.key))===null||t===void 0?void 0:t.toString(),f=new Map;function v(y,w,C){y.forEach(function(Z,b){var p=(C||0)*10+b,F=r(Z,p).toString();Z&&(0,Me.Z)(Z)==="object"&&i in Z&&v(Z[i]||[],F,p);var T=(0,a.Z)((0,a.Z)({},Z),{},{map_row_key:F,children:void 0,map_row_parentKey:w});delete T.children,w||delete T.map_row_parentKey,f.set(F,T)})}e==="top"&&f.set(c,(0,a.Z)((0,a.Z)({},f.get(c)),o)),v(u),e==="update"&&f.set(c,(0,a.Z)((0,a.Z)({},f.get(c)),o)),e==="delete"&&f.delete(c);var P=function(w){var C=new Map,Z=[],b=function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;w.forEach(function(T){if(T.map_row_parentKey&&!T.map_row_key){var I=T.map_row_parentKey,K=(0,we.Z)(T,mr);if(C.has(I)||C.set(I,[]),F){var L;(L=C.get(I))===null||L===void 0||L.push(K)}}})};return b(e==="top"),w.forEach(function(p){if(p.map_row_parentKey&&p.map_row_key){var F,T=p.map_row_parentKey,I=p.map_row_key,K=(0,we.Z)(p,wr);C.has(I)&&(K[i]=C.get(I)),C.has(T)||C.set(T,[]),(F=C.get(T))===null||F===void 0||F.push(K)}}),b(e==="update"),w.forEach(function(p){if(!p.map_row_parentKey){var F=p.map_row_key,T=(0,we.Z)(p,Fr);if(F&&C.has(F)){var I=(0,a.Z)((0,a.Z)({},T),{},(0,m.Z)({},i,C.get(F)));Z.push(I);return}Z.push(T)}}),Z};return P(f)}function Ir(n,e){var t=n.recordKey,r=n.onSave,o=n.row,u=n.children,l=n.newLineConfig,i=n.editorType,c=n.tableName,f=(0,d.useContext)(Un.J),v=xn.Z.useFormInstance(),P=(0,Re.Z)(!1),y=(0,oe.Z)(P,2),w=y[0],C=y[1],Z=(0,Ke.J)((0,ae.Z)((0,Q.Z)().mark(function b(){var p,F,T,I,K,L,j,E,X;return(0,Q.Z)().wrap(function(R){for(;;)switch(R.prev=R.next){case 0:return R.prev=0,F=i==="Map",T=[c,Array.isArray(t)?t[0]:t].map(function(x){return x==null?void 0:x.toString()}).flat(1).filter(Boolean),C(!0),R.next=6,v.validateFields(T,{recursive:!0});case 6:return I=(f==null||(p=f.getFieldFormatValue)===null||p===void 0?void 0:p.call(f,T))||v.getFieldValue(T),Array.isArray(t)&&t.length>1&&(K=(0,mn.Z)(t),L=K.slice(1),j=(0,Rn.Z)(I,L),(0,fr.Z)(I,L,j)),E=F?(0,fr.Z)({},T,I,!0):I,R.next=11,r==null?void 0:r(t,(0,rn.T)({},o,E),o,l);case 11:return X=R.sent,C(!1),R.abrupt("return",X);case 16:throw R.prev=16,R.t0=R.catch(0),console.log(R.t0),C(!1),R.t0;case 21:case"end":return R.stop()}},b,null,[[0,16]])})));return(0,d.useImperativeHandle)(e,function(){return{save:Z}},[Z]),(0,s.jsxs)("a",{onClick:function(){var b=(0,ae.Z)((0,Q.Z)().mark(function p(F){return(0,Q.Z)().wrap(function(I){for(;;)switch(I.prev=I.next){case 0:return F.stopPropagation(),F.preventDefault(),I.prev=2,I.next=5,Z();case 5:I.next=9;break;case 7:I.prev=7,I.t0=I.catch(2);case 9:case"end":return I.stop()}},p,null,[[2,7]])}));return function(p){return b.apply(this,arguments)}}(),children:[w?(0,s.jsx)(Ne.Z,{style:{marginInlineEnd:8}}):null,u||"\u4FDD\u5B58"]},"save")}var Qn=function(e){var t=e.recordKey,r=e.onDelete,o=e.row,u=e.children,l=e.deletePopconfirmMessage,i=(0,Re.Z)(function(){return!1}),c=(0,oe.Z)(i,2),f=c[0],v=c[1],P=(0,Ke.J)((0,ae.Z)((0,Q.Z)().mark(function y(){var w;return(0,Q.Z)().wrap(function(Z){for(;;)switch(Z.prev=Z.next){case 0:return Z.prev=0,v(!0),Z.next=4,r==null?void 0:r(t,o);case 4:return w=Z.sent,v(!1),Z.abrupt("return",w);case 9:return Z.prev=9,Z.t0=Z.catch(0),console.log(Z.t0),v(!1),Z.abrupt("return",null);case 14:case"end":return Z.stop()}},y,null,[[0,9]])})));return u!==!1?(0,s.jsx)(nn.Z,{title:l,onConfirm:function(){return P()},children:(0,s.jsxs)("a",{children:[f?(0,s.jsx)(Ne.Z,{style:{marginInlineEnd:8}}):null,u||"\u5220\u9664"]})},"delete"):null},hr=function(e){var t=e.recordKey,r=e.tableName,o=e.newLineConfig,u=e.editorType,l=e.onCancel,i=e.cancelEditable,c=e.row,f=e.cancelText,v=(0,d.useContext)(Un.J),P=xn.Z.useFormInstance();return(0,s.jsx)("a",{onClick:function(){var y=(0,ae.Z)((0,Q.Z)().mark(function w(C){var Z,b,p,F,T,I;return(0,Q.Z)().wrap(function(L){for(;;)switch(L.prev=L.next){case 0:return C.stopPropagation(),C.preventDefault(),b=u==="Map",p=[r,t].flat(1).filter(Boolean),F=(v==null||(Z=v.getFieldFormatValue)===null||Z===void 0?void 0:Z.call(v,p))||(P==null?void 0:P.getFieldValue(p)),T=b?(0,fr.Z)({},p,F):F,L.next=8,l==null?void 0:l(t,T,c,o);case 8:return I=L.sent,L.next=11,i(t);case 11:return P.setFieldsValue((0,m.Z)({},t,b?(0,Rn.Z)(c,p):c)),L.abrupt("return",I);case 13:case"end":return L.stop()}},w)}));return function(w){return y.apply(this,arguments)}}(),children:f||"\u53D6\u6D88"},"cancel")};function Er(n,e){var t=e.recordKey,r=e.newLineConfig,o=e.saveText,u=e.deleteText,l=(0,d.forwardRef)(Ir),i=(0,d.createRef)();return{save:(0,s.jsx)(l,(0,a.Z)((0,a.Z)({},e),{},{row:n,ref:i,children:o}),"save"+t),saveRef:i,delete:(r==null?void 0:r.options.recordKey)!==t?(0,s.jsx)(Qn,(0,a.Z)((0,a.Z)({},e),{},{row:n,children:u}),"delete"+t):void 0,cancel:(0,s.jsx)(hr,(0,a.Z)((0,a.Z)({},e),{},{row:n}),"cancel"+t)}}function Mr(n){var e=(0,d.useState)(void 0),t=(0,oe.Z)(e,2),r=t[0],o=t[1],u=function(){var S=new Map,N=function D(O,V){O==null||O.forEach(function(W,U){var M,B=V==null?U.toString():V+"_"+U.toString();S.set(B,vn(n.getRowKey(W,-1))),S.set((M=vn(n.getRowKey(W,-1)))===null||M===void 0?void 0:M.toString(),B),n.childrenColumnName&&W[n.childrenColumnName]&&D(W[n.childrenColumnName],B)})};return N(n.dataSource),S},l=(0,d.useMemo)(function(){return u()},[]),i=(0,d.useRef)(l),c=(0,d.useRef)(void 0);(0,ir.Au)(function(){i.current=u()},[n.dataSource]),c.current=r;var f=n.type||"single",v=(0,Dr.Z)(n.dataSource,"children",n.getRowKey),P=(0,oe.Z)(v,1),y=P[0],w=(0,Re.Z)([],{value:n.editableKeys,onChange:n.onChange?function(z){var S,N,D;n==null||(S=n.onChange)===null||S===void 0||S.call(n,(N=z==null?void 0:z.filter(function(O){return O!==void 0}))!==null&&N!==void 0?N:[],(D=z==null?void 0:z.map(function(O){return y(O)}).filter(function(O){return O!==void 0}))!==null&&D!==void 0?D:[])}:void 0}),C=(0,oe.Z)(w,2),Z=C[0],b=C[1],p=(0,d.useMemo)(function(){var z=f==="single"?Z==null?void 0:Z.slice(0,1):Z;return new Set(z)},[(Z||[]).join(","),f]),F=(0,sr.D)(Z),T=(0,Ke.J)(function(z){var S,N,D,O,V=(S=n.getRowKey(z,z.index))===null||S===void 0||(N=S.toString)===null||N===void 0?void 0:N.call(S),W=(D=n.getRowKey(z,-1))===null||D===void 0||(O=D.toString)===null||O===void 0?void 0:O.call(D),U=Z==null?void 0:Z.map(function(_){return _==null?void 0:_.toString()}),M=(F==null?void 0:F.map(function(_){return _==null?void 0:_.toString()}))||[],B=n.tableName&&!!(M!=null&&M.includes(W))||!!(M!=null&&M.includes(V));return{recordKey:W,isEditable:n.tableName&&(U==null?void 0:U.includes(W))||(U==null?void 0:U.includes(V)),preIsEditable:B}}),I=(0,Ke.J)(function(z){return p.size>0&&f==="single"&&n.onlyOneLineEditorAlertMessage!==!1?(Tr(n.onlyOneLineEditorAlertMessage||"\u53EA\u80FD\u540C\u65F6\u7F16\u8F91\u4E00\u884C"),!1):(p.add(z),b(Array.from(p)),!0)}),K=(0,Ke.J)(function(){var z=(0,ae.Z)((0,Q.Z)().mark(function S(N,D){var O,V;return(0,Q.Z)().wrap(function(U){for(;;)switch(U.prev=U.next){case 0:if(O=vn(N).toString(),V=i.current.get(O),!(!p.has(O)&&V&&(D==null||D)&&n.tableName)){U.next=5;break}return K(V,!1),U.abrupt("return");case 5:return r&&r.options.recordKey===N&&o(void 0),p.delete(O),p.delete(vn(N)),b(Array.from(p)),U.abrupt("return",!0);case 10:case"end":return U.stop()}},S)}));return function(S,N){return z.apply(this,arguments)}}()),L=(0,lr.D)((0,ae.Z)((0,Q.Z)().mark(function z(){var S,N,D,O,V=arguments;return(0,Q.Z)().wrap(function(U){for(;;)switch(U.prev=U.next){case 0:for(N=V.length,D=new Array(N),O=0;O0&&f==="single"&&n.onlyOneLineEditorAlertMessage!==!1)return Tr(n.onlyOneLineEditorAlertMessage||"\u53EA\u80FD\u540C\u65F6\u7F16\u8F91\u4E00\u884C"),!1;var N=n.getRowKey(z,-1);if(!N&&N!==0)throw(0,je.ET)(!!N,`\u8BF7\u8BBE\u7F6E recordCreatorProps.record \u5E76\u8FD4\u56DE\u4E00\u4E2A\u552F\u4E00\u7684key + https://procomponents.ant.design/components/editable-table#editable-%E6%96%B0%E5%BB%BA%E8%A1%8C`),new Error("\u8BF7\u8BBE\u7F6E recordCreatorProps.record \u5E76\u8FD4\u56DE\u4E00\u4E2A\u552F\u4E00\u7684key");if(p.add(N),b(Array.from(p)),(S==null?void 0:S.newRecordType)==="dataSource"||n.tableName){var D,O={data:n.dataSource,getRowKey:n.getRowKey,row:(0,a.Z)((0,a.Z)({},z),{},{map_row_parentKey:S!=null&&S.parentKey?(D=vn(S==null?void 0:S.parentKey))===null||D===void 0?void 0:D.toString():void 0}),key:N,childrenColumnName:n.childrenColumnName||"children"};n.setDataSource(ur(O,(S==null?void 0:S.position)==="top"?"top":"update"))}else o({defaultValue:z,options:(0,a.Z)((0,a.Z)({},S),{},{recordKey:N})});return!0}),R=(0,de.YB)(),x=(n==null?void 0:n.saveText)||R.getMessage("editableTable.action.save","\u4FDD\u5B58"),G=(n==null?void 0:n.deleteText)||R.getMessage("editableTable.action.delete","\u5220\u9664"),A=(n==null?void 0:n.cancelText)||R.getMessage("editableTable.action.cancel","\u53D6\u6D88"),h=(0,Ke.J)(function(){var z=(0,ae.Z)((0,Q.Z)().mark(function S(N,D,O,V){var W,U,M,B,_,ee,ce;return(0,Q.Z)().wrap(function(ve){for(;;)switch(ve.prev=ve.next){case 0:return ve.next=2,n==null||(W=n.onSave)===null||W===void 0?void 0:W.call(n,N,D,O,V);case 2:return B=ve.sent,ve.next=5,K(N);case 5:if(_=V||c.current||{},ee=_.options,!(!(ee!=null&&ee.parentKey)&&(ee==null?void 0:ee.recordKey)===N)){ve.next=9;break}return(ee==null?void 0:ee.position)==="top"?n.setDataSource([D].concat((0,Ge.Z)(n.dataSource))):n.setDataSource([].concat((0,Ge.Z)(n.dataSource),[D])),ve.abrupt("return",B);case 9:return ce={data:n.dataSource,getRowKey:n.getRowKey,row:ee?(0,a.Z)((0,a.Z)({},D),{},{map_row_parentKey:(U=vn((M=ee==null?void 0:ee.parentKey)!==null&&M!==void 0?M:""))===null||U===void 0?void 0:U.toString()}):D,key:N,childrenColumnName:n.childrenColumnName||"children"},n.setDataSource(ur(ce,(ee==null?void 0:ee.position)==="top"?"top":"update")),ve.next=13,K(N);case 13:return ve.abrupt("return",B);case 14:case"end":return ve.stop()}},S)}));return function(S,N,D,O){return z.apply(this,arguments)}}()),$=(0,Ke.J)(function(){var z=(0,ae.Z)((0,Q.Z)().mark(function S(N,D){var O,V,W;return(0,Q.Z)().wrap(function(M){for(;;)switch(M.prev=M.next){case 0:return V={data:n.dataSource,getRowKey:n.getRowKey,row:D,key:N,childrenColumnName:n.childrenColumnName||"children"},M.next=3,n==null||(O=n.onDelete)===null||O===void 0?void 0:O.call(n,N,D);case 3:return W=M.sent,M.next=6,K(N,!1);case 6:return n.setDataSource(ur(V,"delete")),M.abrupt("return",W);case 8:case"end":return M.stop()}},S)}));return function(S,N){return z.apply(this,arguments)}}()),k=(0,Ke.J)(function(){var z=(0,ae.Z)((0,Q.Z)().mark(function S(N,D,O,V){var W,U;return(0,Q.Z)().wrap(function(B){for(;;)switch(B.prev=B.next){case 0:return B.next=2,n==null||(W=n.onCancel)===null||W===void 0?void 0:W.call(n,N,D,O,V);case 2:return U=B.sent,B.abrupt("return",U);case 4:case"end":return B.stop()}},S)}));return function(S,N,D,O){return z.apply(this,arguments)}}()),J=function(S){var N=n.getRowKey(S,S.index),D={saveText:x,cancelText:A,deleteText:G,addEditRecord:H,recordKey:N,cancelEditable:K,index:S.index,tableName:n.tableName,newLineConfig:r,onCancel:k,onDelete:$,onSave:h,editableKeys:Z,setEditableRowKeys:b,deletePopconfirmMessage:n.deletePopconfirmMessage||"".concat(R.getMessage("deleteThisLine","\u5220\u9664\u6B64\u9879"),"?")},O=Er(S,D);return n.tableName?E.current.set(i.current.get(vn(N))||vn(N),O.saveRef):E.current.set(vn(N),O.saveRef),n.actionRender?n.actionRender(S,D,{save:O.save,delete:O.delete,cancel:O.cancel}):[O.save,O.delete,O.cancel]};return{editableKeys:Z,setEditableRowKeys:b,isEditable:T,actionRender:J,startEditable:I,cancelEditable:K,addEditRecord:H,saveEditable:X,newLineRecord:r,preEditableKeys:F,onValuesChange:j}}var hn=g(48145),qn=g(59338),dr=g(32245),Kn=g(93935),_n=g(57414),Or=function(e){return(0,m.Z)({},e.componentCls,{marginBlockEnd:16,backgroundColor:(0,fe.uK)(e.colorTextBase,.02),borderRadius:e.borderRadius,border:"none","&-container":{paddingBlock:e.paddingSM,paddingInline:e.paddingLG},"&-info":{display:"flex",alignItems:"center",transition:"all 0.3s",color:e.colorTextTertiary,"&-content":{flex:1},"&-option":{minWidth:48,paddingInlineStart:16}}})};function Vr(n){return(0,fe.Xj)("ProTableAlert",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[Or(t)]})}var se=function(e){var t=e.intl,r=e.onCleanSelected;return[(0,s.jsx)("a",{onClick:r,children:t.getMessage("alert.clear","\u6E05\u7A7A")},"0")]};function xe(n){var e=n.selectedRowKeys,t=e===void 0?[]:e,r=n.onCleanSelected,o=n.alwaysShowAlert,u=n.selectedRows,l=n.alertInfoRender,i=l===void 0?function(T){var I=T.intl;return(0,s.jsxs)(_n.Z,{children:[I.getMessage("alert.selected","\u5DF2\u9009\u62E9"),t.length,I.getMessage("alert.item","\u9879"),"\xA0\xA0"]})}:l,c=n.alertOptionRender,f=c===void 0?se:c,v=(0,de.YB)(),P=f&&f({onCleanSelected:r,selectedRowKeys:t,selectedRows:u,intl:v}),y=(0,d.useContext)(De.ZP.ConfigContext),w=y.getPrefixCls,C=w("pro-table-alert"),Z=Vr(C),b=Z.wrapSSR,p=Z.hashId;if(i===!1)return null;var F=i({intl:v,selectedRowKeys:t,selectedRows:u,onCleanSelected:r});return F===!1||t.length<1&&!o?null:b((0,s.jsx)("div",{className:"".concat(C," ").concat(p).trim(),children:(0,s.jsx)("div",{className:"".concat(C,"-container ").concat(p).trim(),children:(0,s.jsxs)("div",{className:"".concat(C,"-info ").concat(p).trim(),children:[(0,s.jsx)("div",{className:"".concat(C,"-info-content ").concat(p).trim(),children:F}),P?(0,s.jsx)("div",{className:"".concat(C,"-info-option ").concat(p).trim(),children:P}):null]})})}))}var Je=xe,Ve=g(14346),er=g(60412),Zn=g(86717),kr=g(87498),on=g(73726),Ar=g(31989),$r=function(e){return e!=null};function wt(n,e,t){var r,o;if(n===!1)return!1;var u=e.total,l=e.current,i=e.pageSize,c=e.setPageInfo,f=(0,Me.Z)(n)==="object"?n:{};return(0,a.Z)((0,a.Z)({showTotal:function(P,y){return"".concat(t.getMessage("pagination.total.range","\u7B2C")," ").concat(y[0],"-").concat(y[1]," ").concat(t.getMessage("pagination.total.total","\u6761/\u603B\u5171")," ").concat(P," ").concat(t.getMessage("pagination.total.item","\u6761"))},total:u},f),{},{current:n!==!0&&n&&(r=n.current)!==null&&r!==void 0?r:l,pageSize:n!==!0&&n&&(o=n.pageSize)!==null&&o!==void 0?o:i,onChange:function(P,y){var w=n,C=w.onChange;C==null||C(P,y||20),(y!==i||l!==P)&&c({pageSize:y,current:P})}})}function Ft(n,e,t){var r=(0,a.Z)((0,a.Z)({},t.editableUtils),{},{pageInfo:e.pageInfo,reload:function(){var o=(0,ae.Z)((0,Q.Z)().mark(function l(i){return(0,Q.Z)().wrap(function(f){for(;;)switch(f.prev=f.next){case 0:if(!i){f.next=3;break}return f.next=3,e.setPageInfo({current:1});case 3:return f.next=5,e==null?void 0:e.reload();case 5:case"end":return f.stop()}},l)}));function u(l){return o.apply(this,arguments)}return u}(),reloadAndRest:function(){var o=(0,ae.Z)((0,Q.Z)().mark(function l(){return(0,Q.Z)().wrap(function(c){for(;;)switch(c.prev=c.next){case 0:return t.onCleanSelected(),c.next=3,e.setPageInfo({current:1});case 3:return c.next=5,e==null?void 0:e.reload();case 5:case"end":return c.stop()}},l)}));function u(){return o.apply(this,arguments)}return u}(),reset:function(){var o=(0,ae.Z)((0,Q.Z)().mark(function l(){var i;return(0,Q.Z)().wrap(function(f){for(;;)switch(f.prev=f.next){case 0:return f.next=2,t.resetAll();case 2:return f.next=4,e==null||(i=e.reset)===null||i===void 0?void 0:i.call(e);case 4:return f.next=6,e==null?void 0:e.reload();case 6:case"end":return f.stop()}},l)}));function u(){return o.apply(this,arguments)}return u}(),fullScreen:function(){return t.fullScreen()},clearSelected:function(){return t.onCleanSelected()},setPageInfo:function(u){return e.setPageInfo(u)}});n.current=r}function Tt(n,e){return e.filter(function(t){return t}).length<1?n:e.reduce(function(t,r){return r(t)},n)}var rt=function(e,t){return t===void 0?!1:typeof t=="boolean"?t:t[e]},It=function(e){var t;return e&&(0,Me.Z)(e)==="object"&&(e==null||(t=e.props)===null||t===void 0?void 0:t.colSpan)},pr=function(e,t){return e?Array.isArray(e)?e.join("-"):e.toString():"".concat(t)};function Et(n){return Array.isArray(n)?n.join(","):n==null?void 0:n.toString()}function Mt(n){var e={},t={};return n.forEach(function(r){var o=Et(r.dataIndex);if(o){if(r.filters){var u=r.defaultFilteredValue;u===void 0?e[o]=null:e[o]=r.defaultFilteredValue}r.sorter&&r.defaultSortOrder&&(t[o]=r.defaultSortOrder)}}),{sort:t,filter:e}}function jt(){var n=(0,d.useState)(!0),e=(0,oe.Z)(n,2),t=e[1],r=(0,d.useCallback)(function(){return t(function(o){return!o})},[]);return r}function Nt(n,e){var t=(0,d.useMemo)(function(){var r={current:e};return new Proxy(r,{set:function(u,l,i){return Object.is(u[l],i)||(u[l]=i,n(t)),!0}})},[]);return t}function Lt(n){var e=jt(),t=Nt(e,n);return t}var tt=g(66631),zn=g(64410),Ur=g(1643),Bt=g(39953),Kt=g(84560),Dt=g.n(Kt),Hr=g(26736),Gr=g(92284),Ot=function(e){return(0,m.Z)({},e.componentCls,{"&-sidebar-dragger":{width:"5px",cursor:"ew-resize",padding:"4px 0 0",borderTop:"1px solid transparent",position:"absolute",top:0,left:0,bottom:0,zIndex:100,backgroundColor:"transparent","&-min-disabled":{cursor:"w-resize"},"&-max-disabled":{cursor:"e-resize"}}})};function At(n){return(0,fe.Xj)("DrawerForm",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[Ot(t)]})}var $t=["children","trigger","onVisibleChange","drawerProps","onFinish","submitTimeout","title","width","resize","onOpenChange","visible","open"];function zt(n){var e,t,r,o,u,l,i=n.children,c=n.trigger,f=n.onVisibleChange,v=n.drawerProps,P=n.onFinish,y=n.submitTimeout,w=n.title,C=n.width,Z=C===void 0?800:C,b=n.resize,p=n.onOpenChange,F=n.visible,T=n.open,I=(0,we.Z)(n,$t);(0,je.ET)(!I.footer||!(v!=null&&v.footer),"DrawerForm \u662F\u4E00\u4E2A ProForm \u7684\u7279\u6B8A\u5E03\u5C40\uFF0C\u5982\u679C\u60F3\u81EA\u5B9A\u4E49\u6309\u94AE\uFF0C\u8BF7\u4F7F\u7528 submit.render \u81EA\u5B9A\u4E49\u3002");var K=b?(0,hn.Y)({onResize:b.onResize,maxWidth:b.maxWidth,minWidth:b.minWidth}):{},L=(0,d.useContext)(De.ZP.ConfigContext),j=L.getPrefixCls("pro-form-drawer"),E=At(j),X=E.wrapSSR,H=E.hashId,R=function(q){return"".concat(j,"-").concat(q," ").concat(H)},x=(0,d.useState)([]),G=(0,oe.Z)(x,2),A=G[1],h=(0,d.useState)(!1),$=(0,oe.Z)(h,2),k=$[0],J=$[1],z=(0,d.useState)(!1),S=(0,oe.Z)(z,2),N=S[0],D=S[1],O=(0,d.useState)((e=K==null?void 0:K.minWidth)!==null&&e!==void 0?e:Z),V=(0,oe.Z)(O,2),W=V[0],U=V[1],M=(0,Re.Z)(!!F,{value:T||F,onChange:p||f}),B=(0,oe.Z)(M,2),_=B[0],ee=B[1],ce=(0,d.useRef)(null),ye=(0,d.useCallback)(function(Ze){ce.current===null&&Ze&&A([]),ce.current=Ze},[]),ve=(0,d.useRef)(),Ce=(0,d.useCallback)(function(){var Ze,q,me,te=(Ze=(q=(me=I.formRef)===null||me===void 0?void 0:me.current)!==null&&q!==void 0?q:I.form)!==null&&Ze!==void 0?Ze:ve.current;te&&v!==null&&v!==void 0&&v.destroyOnClose&&te.resetFields()},[v==null?void 0:v.destroyOnClose,I.form,I.formRef]);(0,d.useEffect)(function(){_&&(T||F)&&(p==null||p(!0),f==null||f(!0)),N&&U(K==null?void 0:K.minWidth)},[F,_,N]),(0,d.useImperativeHandle)(I.formRef,function(){return ve.current},[ve.current]);var qe=(0,d.useMemo)(function(){return c?d.cloneElement(c,(0,a.Z)((0,a.Z)({key:"trigger"},c.props),{},{onClick:function(){var Ze=(0,ae.Z)((0,Q.Z)().mark(function me(te){var ze,Ee;return(0,Q.Z)().wrap(function(un){for(;;)switch(un.prev=un.next){case 0:ee(!_),D(!Object.keys(K)),(ze=c.props)===null||ze===void 0||(Ee=ze.onClick)===null||Ee===void 0||Ee.call(ze,te);case 3:case"end":return un.stop()}},me)}));function q(me){return Ze.apply(this,arguments)}return q}()})):null},[ee,c,_,D,N]),Ue=(0,d.useMemo)(function(){var Ze,q,me,te,ze,Ee;return I.submitter===!1?!1:Dt()({searchConfig:{submitText:(Ze=(q=L.locale)===null||q===void 0||(me=q.Modal)===null||me===void 0?void 0:me.okText)!==null&&Ze!==void 0?Ze:"\u786E\u8BA4",resetText:(te=(ze=L.locale)===null||ze===void 0||(Ee=ze.Modal)===null||Ee===void 0?void 0:Ee.cancelText)!==null&&te!==void 0?te:"\u53D6\u6D88"},resetButtonProps:{preventDefault:!0,disabled:y?k:void 0,onClick:function(un){var Dn;ee(!1),v==null||(Dn=v.onClose)===null||Dn===void 0||Dn.call(v,un)}}},I.submitter)},[I.submitter,(t=L.locale)===null||t===void 0||(r=t.Modal)===null||r===void 0?void 0:r.okText,(o=L.locale)===null||o===void 0||(u=o.Modal)===null||u===void 0?void 0:u.cancelText,y,k,ee,v]),Ye=(0,d.useCallback)(function(Ze,q){return(0,s.jsxs)(s.Fragment,{children:[Ze,ce.current&&q?(0,s.jsx)(d.Fragment,{children:(0,Hr.createPortal)(q,ce.current)},"submitter"):q]})},[]),ln=(0,Ke.J)(function(){var Ze=(0,ae.Z)((0,Q.Z)().mark(function q(me){var te,ze,Ee;return(0,Q.Z)().wrap(function(un){for(;;)switch(un.prev=un.next){case 0:return te=P==null?void 0:P(me),y&&te instanceof Promise&&(J(!0),ze=setTimeout(function(){return J(!1)},y),te.finally(function(){clearTimeout(ze),J(!1)})),un.next=4,te;case 4:return Ee=un.sent,Ee&&ee(!1),un.abrupt("return",Ee);case 7:case"end":return un.stop()}},q)}));return function(q){return Ze.apply(this,arguments)}}()),_e=(0,Ur.X)(_,f),Pn=(0,d.useCallback)(function(Ze){var q,me,te=(document.body.offsetWidth||1e3)-(Ze.clientX-document.body.offsetLeft),ze=(q=K==null?void 0:K.minWidth)!==null&&q!==void 0?q:Z,Ee=(me=K==null?void 0:K.maxWidth)!==null&&me!==void 0?me:window.innerWidth*.8;if(teEe){U(Ee);return}U(te)},[K==null?void 0:K.maxWidth,K==null?void 0:K.minWidth,Z]),En=(0,d.useCallback)(function(){document.removeEventListener("mousemove",Pn),document.removeEventListener("mouseup",En)},[Pn]);return X((0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(Bt.Z,(0,a.Z)((0,a.Z)((0,a.Z)({title:w,width:W},v),_e),{},{afterOpenChange:function(q){var me;q||Ce(),v==null||(me=v.afterOpenChange)===null||me===void 0||me.call(v,q)},onClose:function(q){var me;y&&k||(ee(!1),v==null||(me=v.onClose)===null||me===void 0||me.call(v,q))},footer:I.submitter!==!1&&(0,s.jsx)("div",{ref:ye,style:{display:"flex",justifyContent:"flex-end"}}),children:[(0,s.jsx)("div",{className:b?ie()(R("sidebar-dragger"),H,(l={},(0,m.Z)(l,R("sidebar-dragger-min-disabled"),W===(K==null?void 0:K.minWidth)),(0,m.Z)(l,R("sidebar-dragger-max-disabled"),W===(K==null?void 0:K.maxWidth)),l)):null,onMouseDown:function(q){var me;K==null||(me=K.onResize)===null||me===void 0||me.call(K),q.stopPropagation(),q.preventDefault(),document.addEventListener("mousemove",Pn),document.addEventListener("mouseup",En),D(!0)}}),(0,s.jsx)(s.Fragment,{children:(0,s.jsx)(Gr.I,(0,a.Z)((0,a.Z)({formComponentType:"DrawerForm",layout:"vertical"},I),{},{formRef:ve,onInit:function(q,me){var te;I.formRef&&(I.formRef.current=me),I==null||(te=I.onInit)===null||te===void 0||te.call(I,q,me),ve.current=me},submitter:Ue,onFinish:function(){var Ze=(0,ae.Z)((0,Q.Z)().mark(function q(me){var te;return(0,Q.Z)().wrap(function(Ee){for(;;)switch(Ee.prev=Ee.next){case 0:return Ee.next=2,ln(me);case 2:return te=Ee.sent,Ee.abrupt("return",te);case 4:case"end":return Ee.stop()}},q)}));return function(q){return Ze.apply(this,arguments)}}(),contentRender:Ye,children:i}))})]})),qe]}))}var gr=g(60698),Wt={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V642h182.9v156zm9.6-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z"}}]},name:"filter",theme:"outlined"},Vt=Wt,yr=g(17202),kt=function(e,t){return d.createElement(yr.Z,(0,gr.Z)({},e,{ref:t,icon:Vt}))},Ut=d.forwardRef(kt),Ht=g(54637),Gt=g(27675),Xt=function(e){return(0,m.Z)({},e.componentCls,{lineHeight:"30px","&::before":{display:"block",height:0,visibility:"hidden",content:"'.'"},"&-small":{lineHeight:e.lineHeight},"&-container":{display:"flex",flexWrap:"wrap",gap:e.marginXS},"&-item":(0,m.Z)({whiteSpace:"nowrap"},"".concat(e.antCls,"-form-item"),{marginBlock:0}),"&-line":{minWidth:"198px"},"&-line:not(:first-child)":{marginBlockStart:"16px",marginBlockEnd:8},"&-collapse-icon":{width:e.controlHeight,height:e.controlHeight,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center"},"&-effective":(0,m.Z)({},"".concat(e.componentCls,"-collapse-icon"),{backgroundColor:e.colorBgTextHover})})};function Jt(n){return(0,fe.Xj)("LightFilter",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[Xt(t)]})}var Yt=["size","collapse","collapseLabel","initialValues","onValuesChange","form","placement","formRef","bordered","ignoreRules","footerRender"],Qt=function(e){var t=e.items,r=e.prefixCls,o=e.size,u=o===void 0?"middle":o,l=e.collapse,i=e.collapseLabel,c=e.onValuesChange,f=e.bordered,v=e.values,P=e.footerRender,y=e.placement,w=(0,de.YB)(),C="".concat(r,"-light-filter"),Z=Jt(C),b=Z.wrapSSR,p=Z.hashId,F=(0,d.useState)(!1),T=(0,oe.Z)(F,2),I=T[0],K=T[1],L=(0,d.useState)(function(){return(0,a.Z)({},v)}),j=(0,oe.Z)(L,2),E=j[0],X=j[1];(0,d.useEffect)(function(){X((0,a.Z)({},v))},[v]);var H=(0,d.useMemo)(function(){var A=[],h=[];return t.forEach(function($){var k=$.props||{},J=k.secondary;J||l?A.push($):h.push($)}),{collapseItems:A,outsideItems:h}},[e.items]),R=H.collapseItems,x=H.outsideItems,G=function(){return i||(l?(0,s.jsx)(Ut,{className:"".concat(C,"-collapse-icon ").concat(p).trim()}):(0,s.jsx)(Ht.Q,{size:u,label:w.getMessage("form.lightFilter.more","\u66F4\u591A\u7B5B\u9009")}))};return b((0,s.jsx)("div",{className:ie()(C,p,"".concat(C,"-").concat(u),(0,m.Z)({},"".concat(C,"-effective"),Object.keys(v).some(function(A){return Array.isArray(v[A])?v[A].length>0:v[A]}))),children:(0,s.jsxs)("div",{className:"".concat(C,"-container ").concat(p).trim(),children:[x.map(function(A,h){var $=A.key,k=A.props.fieldProps,J=k!=null&&k.placement?k==null?void 0:k.placement:y;return(0,s.jsx)("div",{className:"".concat(C,"-item ").concat(p).trim(),children:d.cloneElement(A,{fieldProps:(0,a.Z)((0,a.Z)({},A.props.fieldProps),{},{placement:J}),proFieldProps:(0,a.Z)((0,a.Z)({},A.props.proFieldProps),{},{light:!0,label:A.props.label,bordered:f}),bordered:f})},$||h)}),R.length?(0,s.jsx)("div",{className:"".concat(C,"-item ").concat(p).trim(),children:(0,s.jsx)(Gt.M,{padding:24,open:I,onOpenChange:function(h){K(h)},placement:y,label:G(),footerRender:P,footer:{onConfirm:function(){c((0,a.Z)({},E)),K(!1)},onClear:function(){var h={};R.forEach(function($){var k=$.props.name;h[k]=void 0}),c(h)}},children:R.map(function(A){var h=A.key,$=A.props,k=$.name,J=$.fieldProps,z=(0,a.Z)((0,a.Z)({},J),{},{onChange:function(D){return X((0,a.Z)((0,a.Z)({},E),{},(0,m.Z)({},k,D!=null&&D.target?D.target.value:D))),!1}});E.hasOwnProperty(k)&&(z[A.props.valuePropName||"value"]=E[k]);var S=J!=null&&J.placement?J==null?void 0:J.placement:y;return(0,s.jsx)("div",{className:"".concat(C,"-line ").concat(p).trim(),children:d.cloneElement(A,{fieldProps:(0,a.Z)((0,a.Z)({},z),{},{placement:S})})},h)})})},"more"):null]})}))};function qt(n){var e=n.size,t=n.collapse,r=n.collapseLabel,o=n.initialValues,u=n.onValuesChange,l=n.form,i=n.placement,c=n.formRef,f=n.bordered,v=n.ignoreRules,P=n.footerRender,y=(0,we.Z)(n,Yt),w=(0,d.useContext)(De.ZP.ConfigContext),C=w.getPrefixCls,Z=C("pro-form"),b=(0,d.useState)(function(){return(0,a.Z)({},o)}),p=(0,oe.Z)(b,2),F=p[0],T=p[1],I=(0,d.useRef)();return(0,d.useImperativeHandle)(c,function(){return I.current},[I.current]),(0,s.jsx)(Gr.I,(0,a.Z)((0,a.Z)({size:e,initialValues:o,form:l,contentRender:function(L){return(0,s.jsx)(Qt,{prefixCls:Z,items:L==null?void 0:L.flatMap(function(j){return(j==null?void 0:j.type.displayName)==="ProForm-Group"?j.props.children:j}),size:e,bordered:f,collapse:t,collapseLabel:r,placement:i,values:F||{},footerRender:P,onValuesChange:function(E){var X,H,R=(0,a.Z)((0,a.Z)({},F),E);T(R),(X=I.current)===null||X===void 0||X.setFieldsValue(R),(H=I.current)===null||H===void 0||H.submit(),u&&u(E,R)}})},formRef:I,formItemProps:{colon:!1,labelAlign:"left"},fieldProps:{style:{width:void 0}}},(0,he.Z)(y,["labelWidth"])),{},{onValuesChange:function(L,j){var E;T(j),u==null||u(L,j),(E=I.current)===null||E===void 0||E.submit()}}))}var _t=g(47867),at=g(30288),ot=g(19425),Xr=g(10130),lt=function(e){if(e&&e!==!0)return e},ea=function(e,t,r,o){return e?(0,s.jsxs)(s.Fragment,{children:[r.getMessage("tableForm.collapsed","\u5C55\u5F00"),o&&"(".concat(o,")"),(0,s.jsx)(Xr.Z,{style:{marginInlineStart:"0.5em",transition:"0.3s all",transform:"rotate(".concat(e?0:.5,"turn)")}})]}):(0,s.jsxs)(s.Fragment,{children:[r.getMessage("tableForm.expand","\u6536\u8D77"),(0,s.jsx)(Xr.Z,{style:{marginInlineStart:"0.5em",transition:"0.3s all",transform:"rotate(".concat(e?0:.5,"turn)")}})]})},na=function(e){var t=e.setCollapsed,r=e.collapsed,o=r===void 0?!1:r,u=e.submitter,l=e.style,i=e.hiddenNum,c=(0,d.useContext)(De.ZP.ConfigContext),f=c.getPrefixCls,v=(0,de.YB)(),P=(0,d.useContext)(de.L_),y=P.hashId,w=lt(e.collapseRender)||ea;return(0,s.jsxs)(_n.Z,{style:l,size:16,children:[u,e.collapseRender!==!1&&(0,s.jsx)("a",{className:"".concat(f("pro-query-filter-collapse-button")," ").concat(y).trim(),onClick:function(){return t(!o)},children:w==null?void 0:w(o,e,v,i)})]})},ra=na,ta=function(e){var t,r;return(0,m.Z)({},e.componentCls,(r={"&&":{padding:24}},(0,m.Z)(r,"".concat(e.antCls,"-form-item"),{marginBlock:0}),(0,m.Z)(r,"".concat(e.proComponentsCls,"-form-group-title"),{marginBlock:0}),(0,m.Z)(r,"&-row",{rowGap:24,"&-split":(t={},(0,m.Z)(t,"".concat(e.proComponentsCls,"-form-group"),{display:"flex",alignItems:"center",gap:e.marginXS}),(0,m.Z)(t,"&:last-child",{marginBlockEnd:12}),t),"&-split-line":{"&:after":{position:"absolute",width:"100%",content:'""',height:1,insetBlockEnd:-12,borderBlockEnd:"1px dashed ".concat(e.colorSplit)}}}),(0,m.Z)(r,"&-collapse-button",{display:"flex",alignItems:"center",color:e.colorPrimary}),r))};function aa(n){return(0,fe.Xj)("QueryFilter",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[ta(t)]})}var oa=["collapsed","layout","defaultCollapsed","defaultColsNumber","span","searchGutter","searchText","resetText","optionRender","collapseRender","onReset","onCollapse","labelWidth","style","split","preserve","ignoreRules","showHiddenNum","submitterColSpanProps"],Jr,Yr,la={xs:513,sm:513,md:785,lg:992,xl:1057,xxl:1/0},it={vertical:[[513,1,"vertical"],[785,2,"vertical"],[1057,3,"vertical"],[1/0,4,"vertical"]],default:[[513,1,"vertical"],[701,2,"vertical"],[1062,3,"horizontal"],[1352,3,"horizontal"],[1/0,4,"horizontal"]]},ia=function(e,t,r){if(r&&typeof r=="number")return{span:r,layout:e};var o=r?["xs","sm","md","lg","xl","xxl"].map(function(l){return[la[l],24/r[l],"horizontal"]}):it[e||"default"],u=(o||it.default).find(function(l){return tI-1)&&!!N&&E>=24;X+=1;var ee=d.isValidElement(S)&&(S.key||"".concat((W=S.props)===null||W===void 0?void 0:W.name))||N;return d.isValidElement(S)&&_?e.preserve?{itemDom:d.cloneElement(S,{hidden:!0,key:ee||N}),hidden:!0,colSpan:M}:{itemDom:null,colSpan:0,hidden:!0}:{itemDom:S,colSpan:M,hidden:!1}}),A=G.map(function(S,N){var D,O,V=S.itemDom,W=S.colSpan,U=V==null||(D=V.props)===null||D===void 0?void 0:D.hidden;if(U)return V;var M=d.isValidElement(V)&&(V.key||"".concat((O=V.props)===null||O===void 0?void 0:O.name))||N;return 24-x%2424){var O,V;return 24-((O=(V=e.submitterColSpanProps)===null||V===void 0?void 0:V.span)!==null&&O!==void 0?O:T.span)}return 24-D},[x,x%24+((t=(r=e.submitterColSpanProps)===null||r===void 0?void 0:r.span)!==null&&t!==void 0?t:T.span),(o=e.submitterColSpanProps)===null||o===void 0?void 0:o.span]),J=(0,d.useContext)(De.ZP.ConfigContext),z=J.getPrefixCls("pro-query-filter");return(0,s.jsxs)(tn.Z,{gutter:K,justify:"start",className:ie()("".concat(z,"-row"),c),children:[A,j&&(0,s.jsx)(Ae.Z,(0,a.Z)((0,a.Z)({span:T.span,offset:k,className:ie()((u=e.submitterColSpanProps)===null||u===void 0?void 0:u.className)},e.submitterColSpanProps),{},{style:{textAlign:"end"},children:(0,s.jsx)(xn.Z.Item,{label:" ",colon:!1,shouldUpdate:!1,className:"".concat(z,"-actions ").concat(c).trim(),children:(0,s.jsx)(ra,{hiddenNum:h,collapsed:w,collapseRender:$?b:!1,submitter:j,setCollapsed:C},"pro-form-query-filter-actions")})}),"submitter")]},"resize-observer-row")},da=(0,at.j)()?(Jr=document)===null||Jr===void 0||(Yr=Jr.body)===null||Yr===void 0?void 0:Yr.clientWidth:1024;function ca(n){var e=n.collapsed,t=n.layout,r=n.defaultCollapsed,o=r===void 0?!0:r,u=n.defaultColsNumber,l=n.span,i=n.searchGutter,c=i===void 0?24:i,f=n.searchText,v=n.resetText,P=n.optionRender,y=n.collapseRender,w=n.onReset,C=n.onCollapse,Z=n.labelWidth,b=Z===void 0?"80":Z,p=n.style,F=n.split,T=n.preserve,I=T===void 0?!0:T,K=n.ignoreRules,L=n.showHiddenNum,j=L===void 0?!1:L,E=n.submitterColSpanProps,X=(0,we.Z)(n,oa),H=(0,d.useContext)(De.ZP.ConfigContext),R=H.getPrefixCls("pro-query-filter"),x=aa(R),G=x.wrapSSR,A=x.hashId,h=(0,Re.Z)(function(){return typeof(p==null?void 0:p.width)=="number"?p==null?void 0:p.width:da}),$=(0,oe.Z)(h,2),k=$[0],J=$[1],z=(0,d.useMemo)(function(){return ia(t,k+16,l)},[t,k,l]),S=(0,d.useMemo)(function(){return u!==void 0?u-1:Math.max(1,24/z.span-1)},[u,z.span]),N=(0,d.useMemo)(function(){if(b&&z.layout!=="vertical"&&b!=="auto")return{labelCol:{flex:"0 0 ".concat(b,"px")},wrapperCol:{style:{maxWidth:"calc(100% - ".concat(b,"px)")}},style:{flexWrap:"nowrap"}}},[z.layout,b]);return G((0,s.jsx)(ot.Z,{onResize:function(O){k!==O.width&&O.width>17&&J(O.width)},children:(0,s.jsx)(Gr.I,(0,a.Z)((0,a.Z)({isKeyPressSubmit:!0,preserve:I},X),{},{className:ie()(R,A,X.className),onReset:w,style:p,layout:z.layout,fieldProps:{style:{width:"100%"}},formItemProps:N,groupProps:{titleStyle:{display:"inline-block",marginInlineEnd:16}},contentRender:function(O,V,W){return(0,s.jsx)(ua,{spanSize:z,collapsed:e,form:W,submitterColSpanProps:E,collapseRender:y,defaultCollapsed:o,onCollapse:C,optionRender:P,submitter:V,items:O,split:F,baseClassName:R,resetText:n.resetText,searchText:n.searchText,searchGutter:c,preserve:I,ignoreRules:K,showLength:S,showHiddenNum:j})}}))},"resize-observer"))}var st=g(95122),va=["steps","columns","forceUpdate","grid"],fa=function(e){var t=e.steps,r=e.columns,o=e.forceUpdate,u=e.grid,l=(0,we.Z)(e,va),i=(0,tt.d)(l),c=(0,d.useCallback)(function(v){var P,y;(P=(y=i.current).onCurrentChange)===null||P===void 0||P.call(y,v),o([])},[o,i]),f=(0,d.useMemo)(function(){return t==null?void 0:t.map(function(v,P){return(0,d.createElement)(vt,(0,a.Z)((0,a.Z)({grid:u},v),{},{key:P,layoutType:"StepForm",columns:r[P]}))})},[r,u,t]);return(0,s.jsx)(st.L0,(0,a.Z)((0,a.Z)({},l),{},{onCurrentChange:c,children:f}))},ma=fa,ha=function(e){var t=e.children;return(0,s.jsx)(s.Fragment,{children:t})},pa=ha,ut=g(19943),ga=function(e,t){if(e.valueType==="dependency"){var r,o,u,l=(r=e.getFieldProps)===null||r===void 0?void 0:r.call(e);return(0,je.ET)(Array.isArray((o=e.name)!==null&&o!==void 0?o:l==null?void 0:l.name),'SchemaForm: fieldProps.name should be NamePath[] when valueType is "dependency"'),(0,je.ET)(typeof e.columns=="function",'SchemaForm: columns should be a function when valueType is "dependency"'),Array.isArray((u=e.name)!==null&&u!==void 0?u:l==null?void 0:l.name)?(0,d.createElement)(ut.Z,(0,a.Z)((0,a.Z)({name:e.name},l),{},{key:e.key}),function(i){return!e.columns||typeof e.columns!="function"?null:t.genItems(e.columns(i))}):null}return!0},ya=g(51244),Ca=function(e){if(e.valueType==="divider"){var t;return(0,d.createElement)(ya.Z,(0,a.Z)((0,a.Z)({},(t=e.getFieldProps)===null||t===void 0?void 0:t.call(e)),{},{key:e.key}))}return!0},zr=g(17148),Za=function(e,t){var r=t.action,o=t.formRef,u=t.type,l=t.originItem,i=(0,a.Z)((0,a.Z)({},(0,he.Z)(e,["dataIndex","width","render","renderFormItem","renderText","title"])),{},{name:e.name||e.key||e.dataIndex,width:e.width,render:e!=null&&e.render?function(P,y,w){var C,Z,b,p;return e==null||(C=e.render)===null||C===void 0?void 0:C.call(e,P,y,w,r==null?void 0:r.current,(0,a.Z)((0,a.Z)({type:u},e),{},{key:(Z=e.key)===null||Z===void 0?void 0:Z.toString(),formItemProps:(b=e.getFormItemProps)===null||b===void 0?void 0:b.call(e),fieldProps:(p=e.getFieldProps)===null||p===void 0?void 0:p.call(e)}))}:void 0}),c=function(){return(0,s.jsx)(zr.Z,(0,a.Z)((0,a.Z)({},i),{},{ignoreFormItem:!0}))},f=e!=null&&e.renderFormItem?function(P,y){var w,C,Z,b,p=(0,hn.Y)((0,a.Z)((0,a.Z)({},y),{},{onChange:void 0}));return e==null||(w=e.renderFormItem)===null||w===void 0?void 0:w.call(e,(0,a.Z)((0,a.Z)({type:u},e),{},{key:(C=e.key)===null||C===void 0?void 0:C.toString(),formItemProps:(Z=e.getFormItemProps)===null||Z===void 0?void 0:Z.call(e),fieldProps:(b=e.getFieldProps)===null||b===void 0?void 0:b.call(e),originProps:l}),(0,a.Z)((0,a.Z)({},p),{},{defaultRender:c,type:u}),o.current)}:void 0,v=function(){if(e!=null&&e.renderFormItem){var y=f==null?void 0:f(null,{});if(!y||e.ignoreFormItem)return y}return(0,d.createElement)(zr.Z,(0,a.Z)((0,a.Z)({},i),{},{key:[e.key,e.index||0].join("-"),renderFormItem:f}))};return e.dependencies?(0,s.jsx)(ut.Z,{name:e.dependencies||[],children:v},e.key):v()},Sa=g(84463),ba=function(e,t){var r=t.genItems;if(e.valueType==="formList"&&e.dataIndex){var o,u;return!e.columns||!Array.isArray(e.columns)?null:(0,d.createElement)(Sa.u,(0,a.Z)((0,a.Z)({},(o=e.getFormItemProps)===null||o===void 0?void 0:o.call(e)),{},{key:e.key,name:e.dataIndex,label:e.label,initialValue:e.initialValue,colProps:e.colProps,rowProps:e.rowProps},(u=e.getFieldProps)===null||u===void 0?void 0:u.call(e)),r(e.columns))}return!0},dt=g(21149),xa=g(7798),Ra=g(76810),Pa=["children","value","valuePropName","onChange","fieldProps","space","type","transform","convertValue","lightProps"],wa=["children","space","valuePropName"],Fa={space:_n.Z,group:dt.Z.Group};function Ta(n){var e=arguments.length<=1?void 0:arguments[1];return e&&e.target&&n in e.target?e.target[n]:e}var Ia=function(e){var t=e.children,r=e.value,o=r===void 0?[]:r,u=e.valuePropName,l=e.onChange,i=e.fieldProps,c=e.space,f=e.type,v=f===void 0?"space":f,P=e.transform,y=e.convertValue,w=e.lightProps,C=(0,we.Z)(e,Pa),Z=(0,Ke.J)(function(j,E){var X,H=(0,Ge.Z)(o);H[E]=Ta(u||"value",j),l==null||l(H),i==null||(X=i.onChange)===null||X===void 0||X.call(i,H)}),b=-1,p=(0,Yn.Z)(t).map(function(j){if(d.isValidElement(j)){var E,X,H;b+=1;var R=b,x=(j==null||(E=j.type)===null||E===void 0?void 0:E.displayName)==="ProFormComponent"||(j==null||(X=j.props)===null||X===void 0?void 0:X.readonly),G=x?(0,a.Z)((0,a.Z)({key:R,ignoreFormItem:!0},j.props||{}),{},{fieldProps:(0,a.Z)((0,a.Z)({},j==null||(H=j.props)===null||H===void 0?void 0:H.fieldProps),{},{onChange:function(){Z(arguments.length<=0?void 0:arguments[0],R)}}),value:o==null?void 0:o[R],onChange:void 0}):(0,a.Z)((0,a.Z)({key:R},j.props||{}),{},{value:o==null?void 0:o[R],onChange:function(h){var $,k;Z(h,R),($=(k=j.props).onChange)===null||$===void 0||$.call(k,h)}});return d.cloneElement(j,G)}return j}),F=Fa[v],T=(0,Ra.zx)(C),I=T.RowWrapper,K=(0,d.useMemo)(function(){return(0,a.Z)({},v==="group"?{compact:!0}:{})},[v]),L=(0,d.useCallback)(function(j){var E=j.children;return(0,s.jsx)(F,(0,a.Z)((0,a.Z)((0,a.Z)({},K),c),{},{align:"start",wrap:!0,children:E}))},[F,c,K]);return(0,s.jsx)(I,{Wrapper:L,children:p})},Ea=d.forwardRef(function(n,e){var t=n.children,r=n.space,o=n.valuePropName,u=(0,we.Z)(n,wa);return(0,d.useImperativeHandle)(e,function(){return{}}),(0,s.jsx)(Ia,(0,a.Z)((0,a.Z)((0,a.Z)({space:r,valuePropName:o},u.fieldProps),{},{onChange:void 0},u),{},{children:t}))}),Ma=(0,xa.G)(Ea),ja=Ma,Na=function(e,t){var r=t.genItems;if(e.valueType==="formSet"&&e.dataIndex){var o,u;return!e.columns||!Array.isArray(e.columns)?null:(0,d.createElement)(ja,(0,a.Z)((0,a.Z)({},(o=e.getFormItemProps)===null||o===void 0?void 0:o.call(e)),{},{key:e.key,initialValue:e.initialValue,name:e.dataIndex,label:e.label,colProps:e.colProps,rowProps:e.rowProps},(u=e.getFieldProps)===null||u===void 0?void 0:u.call(e)),r(e.columns))}return!0},La=Te.A.Group,Ba=function(e,t){var r=t.genItems;if(e.valueType==="group"){var o;return!e.columns||!Array.isArray(e.columns)?null:(0,s.jsx)(La,(0,a.Z)((0,a.Z)({label:e.label,colProps:e.colProps,rowProps:e.rowProps},(o=e.getFieldProps)===null||o===void 0?void 0:o.call(e)),{},{children:r(e.columns)}),e.key)}return!0},Ka=function(e){return e.valueType&&typeof e.valueType=="string"&&["index","indexBorder","option"].includes(e==null?void 0:e.valueType)?null:!0},ct=[Ka,Ba,ba,Na,Ca,ga],Da=function(e,t){for(var r=0;r0&&arguments[0]!==void 0?arguments[0]:{},i=(0,d.useRef)(),c=(0,d.useRef)(null),f=(0,d.useRef)(),v=(0,d.useRef)(),P=(0,d.useState)(""),y=(0,oe.Z)(P,2),w=y[0],C=y[1],Z=(0,d.useRef)([]),b=(0,Re.Z)(function(){return l.size||l.defaultSize||"middle"},{value:l.size,onChange:l.onSizeChange}),p=(0,oe.Z)(b,2),F=p[0],T=p[1],I=(0,d.useMemo)(function(){var R,x;if(l!=null&&(R=l.columnsState)!==null&&R!==void 0&&R.defaultValue)return l.columnsState.defaultValue;var G={};return(x=l.columns)===null||x===void 0||x.forEach(function(A,h){var $=A.key,k=A.dataIndex,J=A.fixed,z=A.disable,S=pr($!=null?$:k,h);S&&(G[S]={show:!0,fixed:J,disable:z})}),G},[l.columns]),K=(0,Re.Z)(function(){var R,x,G=l.columnsState||{},A=G.persistenceType,h=G.persistenceKey;if(h&&A&&typeof window!="undefined"){var $=window[A];try{var k=$==null?void 0:$.getItem(h);if(k)return JSON.parse(k)}catch(J){console.warn(J)}}return l.columnsStateMap||((R=l.columnsState)===null||R===void 0?void 0:R.value)||((x=l.columnsState)===null||x===void 0?void 0:x.defaultValue)||I},{value:((n=l.columnsState)===null||n===void 0?void 0:n.value)||l.columnsStateMap,onChange:((e=l.columnsState)===null||e===void 0?void 0:e.onChange)||l.onColumnsStateChange}),L=(0,oe.Z)(K,2),j=L[0],E=L[1];(0,d.useEffect)(function(){var R=l.columnsState||{},x=R.persistenceType,G=R.persistenceKey;if(G&&x&&typeof window!="undefined"){var A=window[x];try{var h=A==null?void 0:A.getItem(G);E(h?JSON.parse(h):I)}catch($){console.warn($)}}},[(t=l.columnsState)===null||t===void 0?void 0:t.persistenceKey,(r=l.columnsState)===null||r===void 0?void 0:r.persistenceType,I]),(0,je.ET)(!l.columnsStateMap,"columnsStateMap\u5DF2\u7ECF\u5E9F\u5F03\uFF0C\u8BF7\u4F7F\u7528 columnsState.value \u66FF\u6362"),(0,je.ET)(!l.columnsStateMap,"columnsStateMap has been discarded, please use columnsState.value replacement");var X=(0,d.useCallback)(function(){var R=l.columnsState||{},x=R.persistenceType,G=R.persistenceKey;if(!(!G||!x||typeof window=="undefined")){var A=window[x];try{A==null||A.removeItem(G)}catch(h){console.warn(h)}}},[l.columnsState]);(0,d.useEffect)(function(){var R,x;if(!(!((R=l.columnsState)!==null&&R!==void 0&&R.persistenceKey)||!((x=l.columnsState)!==null&&x!==void 0&&x.persistenceType))&&typeof window!="undefined"){var G=l.columnsState,A=G.persistenceType,h=G.persistenceKey,$=window[A];try{$==null||$.setItem(h,JSON.stringify(j))}catch(k){console.warn(k),X()}}},[(o=l.columnsState)===null||o===void 0?void 0:o.persistenceKey,j,(u=l.columnsState)===null||u===void 0?void 0:u.persistenceType]);var H={action:i.current,setAction:function(x){i.current=x},sortKeyColumns:Z.current,setSortKeyColumns:function(x){Z.current=x},propsRef:v,columnsMap:j,keyWords:w,setKeyWords:function(x){return C(x)},setTableSize:T,tableSize:F,prefixName:f.current,setPrefixName:function(x){f.current=x},setColumnsMap:E,columns:l.columns,rootDomRef:c,clearPersistenceStorage:X,defaultColumnKeyMap:I};return Object.defineProperty(H,"prefixName",{get:function(){return f.current}}),Object.defineProperty(H,"sortKeyColumns",{get:function(){return Z.current}}),Object.defineProperty(H,"action",{get:function(){return i.current}}),H}var nr=(0,d.createContext)({}),Qa=function(e){var t=Ya(e.initValue);return(0,s.jsx)(nr.Provider,{value:t,children:e.children})},qa=g(92232),_a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M859.9 474H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zm-353.6-74.7c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H550V104c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v156h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.6zm11.4 225.4a7.14 7.14 0 00-11.3 0L405.6 752.3a7.23 7.23 0 005.7 11.7H474v156c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V764h62.8c6 0 9.4-7 5.7-11.7L517.7 624.7z"}}]},name:"vertical-align-middle",theme:"outlined"},eo=_a,no=function(e,t){return d.createElement(yr.Z,(0,gr.Z)({},e,{ref:t,icon:eo}))},ro=d.forwardRef(no),to={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M859.9 780H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM505.7 669a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V176c0-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.8z"}}]},name:"vertical-align-bottom",theme:"outlined"},ao=to,oo=function(e,t){return d.createElement(yr.Z,(0,gr.Z)({},e,{ref:t,icon:ao}))},lo=d.forwardRef(oo),io=g(39800),so=g(7992),ft=g(33181),uo=g(38904),co=function(e){var t,r,o,u;return u={},(0,m.Z)(u,e.componentCls,{width:"auto","&-title":{display:"flex",alignItems:"center",justifyContent:"space-between",height:"32px"},"&-overlay":(r={},(0,m.Z)(r,"".concat(e.antCls,"-popover-inner-content"),{width:"200px",paddingBlock:0,paddingInline:0,paddingBlockEnd:8}),(0,m.Z)(r,"".concat(e.antCls,"-tree-node-content-wrapper:hover"),{backgroundColor:"transparent"}),(0,m.Z)(r,"".concat(e.antCls,"-tree-draggable-icon"),{cursor:"grab"}),(0,m.Z)(r,"".concat(e.antCls,"-tree-treenode"),(t={alignItems:"center","&:hover":(0,m.Z)({},"".concat(e.componentCls,"-list-item-option"),{display:"block"})},(0,m.Z)(t,"".concat(e.antCls,"-tree-checkbox"),{marginInlineEnd:"4px"}),(0,m.Z)(t,"".concat(e.antCls,"-tree-title"),{width:"100%"}),t)),r)}),(0,m.Z)(u,"".concat(e.componentCls,"-action-rest-button"),{color:e.colorPrimary}),(0,m.Z)(u,"".concat(e.componentCls,"-list"),(o={display:"flex",flexDirection:"column",width:"100%",paddingBlockStart:8},(0,m.Z)(o,"&".concat(e.componentCls,"-list-group"),{paddingBlockStart:0}),(0,m.Z)(o,"&-title",{marginBlockStart:"6px",marginBlockEnd:"6px",paddingInlineStart:"24px",color:e.colorTextSecondary,fontSize:"12px"}),(0,m.Z)(o,"&-item",{display:"flex",alignItems:"center",maxHeight:24,justifyContent:"space-between","&-title":{flex:1,maxWidth:80},"&-option":{display:"none",float:"right",cursor:"pointer","> span":{"> span.anticon":{color:e.colorPrimary}},"> span + span":{marginInlineStart:4}}}),o)),u};function vo(n){return(0,fe.Xj)("ColumnSetting",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[co(t)]})}var fo=["key","dataIndex","children"],mo=["disabled"],Qr=function(e){var t=e.title,r=e.show,o=e.children,u=e.columnKey,l=e.fixed,i=(0,d.useContext)(nr),c=i.columnsMap,f=i.setColumnsMap;return r?(0,s.jsx)(cr.Z,{title:t,children:(0,s.jsx)("span",{onClick:function(P){P.stopPropagation(),P.preventDefault();var y=c[u]||{},w=(0,a.Z)((0,a.Z)({},c),{},(0,m.Z)({},u,(0,a.Z)((0,a.Z)({},y),{},{fixed:l})));f(w)},children:o})}):null},ho=function(e){var t=e.columnKey,r=e.isLeaf,o=e.title,u=e.className,l=e.fixed,i=e.showListItemOption,c=(0,de.YB)(),f=(0,d.useContext)(de.L_),v=f.hashId,P=(0,s.jsxs)("span",{className:"".concat(u,"-list-item-option ").concat(v).trim(),children:[(0,s.jsx)(Qr,{columnKey:t,fixed:"left",title:c.getMessage("tableToolBar.leftPin","\u56FA\u5B9A\u5728\u5217\u9996"),show:l!=="left",children:(0,s.jsx)(qa.Z,{})}),(0,s.jsx)(Qr,{columnKey:t,fixed:void 0,title:c.getMessage("tableToolBar.noPin","\u4E0D\u56FA\u5B9A"),show:!!l,children:(0,s.jsx)(ro,{})}),(0,s.jsx)(Qr,{columnKey:t,fixed:"right",title:c.getMessage("tableToolBar.rightPin","\u56FA\u5B9A\u5728\u5217\u5C3E"),show:l!=="right",children:(0,s.jsx)(lo,{})})]});return(0,s.jsxs)("span",{className:"".concat(u,"-list-item ").concat(v).trim(),children:[(0,s.jsx)("div",{className:"".concat(u,"-list-item-title ").concat(v).trim(),children:o}),i&&!r?P:null]},t)},qr=function(e){var t,r,o,u=e.list,l=e.draggable,i=e.checkable,c=e.showListItemOption,f=e.className,v=e.showTitle,P=v===void 0?!0:v,y=e.title,w=e.listHeight,C=w===void 0?280:w,Z=(0,d.useContext)(de.L_),b=Z.hashId,p=(0,d.useContext)(nr),F=p.columnsMap,T=p.setColumnsMap,I=p.sortKeyColumns,K=p.setSortKeyColumns,L=u&&u.length>0,j=(0,d.useMemo)(function(){if(!L)return{};var R=[],x=new Map,G=function A(h,$){return h.map(function(k){var J,z=k.key,S=k.dataIndex,N=k.children,D=(0,we.Z)(k,fo),O=pr(z,[$==null?void 0:$.columnKey,D.index].filter(Boolean).join("-")),V=F[O||"null"]||{show:!0};V.show!==!1&&!N&&R.push(O);var W=(0,a.Z)((0,a.Z)({key:O},(0,he.Z)(D,["className"])),{},{selectable:!1,disabled:V.disable===!0,disableCheckbox:typeof V.disable=="boolean"?V.disable:(J=V.disable)===null||J===void 0?void 0:J.checkbox,isLeaf:$?!0:void 0});if(N){var U;W.children=A(N,(0,a.Z)((0,a.Z)({},V),{},{columnKey:O})),(U=W.children)!==null&&U!==void 0&&U.every(function(M){return R==null?void 0:R.includes(M.key)})&&R.push(O)}return x.set(z,W),W})};return{list:G(u),keys:R,map:x}},[F,u,L]),E=(0,Ke.J)(function(R,x,G){var A=(0,a.Z)({},F),h=(0,Ge.Z)(I),$=h.findIndex(function(S){return S===R}),k=h.findIndex(function(S){return S===x}),J=G>$;if(!($<0)){var z=h[$];h.splice($,1),G===0?h.unshift(z):h.splice(J?k:k+1,0,z),h.forEach(function(S,N){A[S]=(0,a.Z)((0,a.Z)({},A[S]||{}),{},{order:N})}),T(A),K(h)}}),X=(0,Ke.J)(function(R){var x=(0,a.Z)({},F),G=function A(h){var $,k,J=(0,a.Z)({},x[h]);if(J.show=R.checked,($=j.map)!==null&&$!==void 0&&(k=$.get(h))!==null&&k!==void 0&&k.children){var z,S;(z=j.map.get(h))===null||z===void 0||(S=z.children)===null||S===void 0||S.forEach(function(N){return A(N.key)})}x[h]=J};G(R.node.key),T((0,a.Z)({},x))});if(!L)return null;var H=(0,s.jsx)(so.Z,{itemHeight:24,draggable:l&&!!((t=j.list)!==null&&t!==void 0&&t.length)&&((r=j.list)===null||r===void 0?void 0:r.length)>1,checkable:i,onDrop:function(x){var G=x.node.key,A=x.dragNode.key,h=x.dropPosition,$=x.dropToGap,k=h===-1||!$?h+1:h;E(A,G,k)},blockNode:!0,onCheck:function(x,G){return X(G)},checkedKeys:j.keys,showLine:!1,titleRender:function(x){var G=(0,a.Z)((0,a.Z)({},x),{},{children:void 0});return G.title?(0,s.jsx)(ho,(0,a.Z)((0,a.Z)({className:f},G),{},{showListItemOption:c,title:(0,zn.h)(G.title,G),columnKey:G.key})):null},height:C,treeData:(o=j.list)===null||o===void 0?void 0:o.map(function(R){var x=R.disabled,G=(0,we.Z)(R,mo);return G})});return(0,s.jsxs)(s.Fragment,{children:[P&&(0,s.jsx)("span",{className:"".concat(f,"-list-title ").concat(b).trim(),children:y}),H]})},po=function(e){var t=e.localColumns,r=e.className,o=e.draggable,u=e.checkable,l=e.showListItemOption,i=e.listsHeight,c=(0,d.useContext)(de.L_),f=c.hashId,v=[],P=[],y=[],w=(0,de.YB)();t.forEach(function(b){if(!b.hideInSetting){var p=b.fixed;if(p==="left"){P.push(b);return}if(p==="right"){v.push(b);return}y.push(b)}});var C=v&&v.length>0,Z=P&&P.length>0;return(0,s.jsxs)("div",{className:ie()("".concat(r,"-list"),f,(0,m.Z)({},"".concat(r,"-list-group"),C||Z)),children:[(0,s.jsx)(qr,{title:w.getMessage("tableToolBar.leftFixedTitle","\u56FA\u5B9A\u5728\u5DE6\u4FA7"),list:P,draggable:o,checkable:u,showListItemOption:l,className:r,listHeight:i}),(0,s.jsx)(qr,{list:y,draggable:o,checkable:u,showListItemOption:l,title:w.getMessage("tableToolBar.noFixedTitle","\u4E0D\u56FA\u5B9A"),showTitle:Z||C,className:r,listHeight:i}),(0,s.jsx)(qr,{title:w.getMessage("tableToolBar.rightFixedTitle","\u56FA\u5B9A\u5728\u53F3\u4FA7"),list:v,draggable:o,checkable:u,showListItemOption:l,className:r,listHeight:i})]})};function go(n){var e,t,r,o,u=(0,d.useRef)(null),l=(0,d.useContext)(nr),i=n.columns,c=n.checkedReset,f=c===void 0?!0:c,v=l.columnsMap,P=l.setColumnsMap,y=l.clearPersistenceStorage;(0,d.useEffect)(function(){var X,H;if((X=l.propsRef.current)!==null&&X!==void 0&&(H=X.columnsState)!==null&&H!==void 0&&H.value){var R,x;u.current=JSON.parse(JSON.stringify(((R=l.propsRef.current)===null||R===void 0||(x=R.columnsState)===null||x===void 0?void 0:x.value)||{}))}},[]);var w=(0,Ke.J)(function(){var X=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,H={},R=function x(G){G.forEach(function(A){var h=A.key,$=A.fixed,k=A.index,J=A.children,z=A.disable,S=pr(h,k);if(S){var N,D;H[S]={show:z?(N=v[S])===null||N===void 0?void 0:N.show:X,fixed:$,disable:z,order:(D=v[S])===null||D===void 0?void 0:D.order}}J&&x(J)})};R(i),P(H)}),C=(0,Ke.J)(function(X){X.target.checked?w():w(!1)}),Z=(0,Ke.J)(function(){var X,H;y==null||y(),P(((X=l.propsRef.current)===null||X===void 0||(H=X.columnsState)===null||H===void 0?void 0:H.defaultValue)||u.current||l.defaultColumnKeyMap)}),b=Object.values(v).filter(function(X){return!X||X.show===!1}),p=b.length>0&&b.length!==i.length,F=(0,de.YB)(),T=(0,d.useContext)(De.ZP.ConfigContext),I=T.getPrefixCls,K=I("pro-table-column-setting"),L=vo(K),j=L.wrapSSR,E=L.hashId;return j((0,s.jsx)(ft.Z,{arrow:!1,title:(0,s.jsxs)("div",{className:"".concat(K,"-title ").concat(E).trim(),children:[n.checkable===!1?(0,s.jsx)("div",{}):(0,s.jsx)(uo.Z,{indeterminate:p,checked:b.length===0&&b.length!==i.length,onChange:function(H){C(H)},children:F.getMessage("tableToolBar.columnDisplay","\u5217\u5C55\u793A")}),f?(0,s.jsx)("a",{onClick:Z,className:"".concat(K,"-action-rest-button ").concat(E).trim(),children:F.getMessage("tableToolBar.reset","\u91CD\u7F6E")}):null,n!=null&&n.extra?(0,s.jsx)(_n.Z,{size:12,align:"center",children:n.extra}):null]}),overlayClassName:"".concat(K,"-overlay ").concat(E).trim(),trigger:"click",placement:"bottomRight",content:(0,s.jsx)(po,{checkable:(e=n.checkable)!==null&&e!==void 0?e:!0,draggable:(t=n.draggable)!==null&&t!==void 0?t:!0,showListItemOption:(r=n.showListItemOption)!==null&&r!==void 0?r:!0,className:K,localColumns:i,listsHeight:n.listsHeight}),children:n.children||(0,s.jsx)(cr.Z,{title:F.getMessage("tableToolBar.columnSetting","\u5217\u8BBE\u7F6E"),children:(o=n.settingIcon)!==null&&o!==void 0?o:(0,s.jsx)(io.Z,{})})}))}var yo=go,Co=g(85706),Zo=g(31647),mt=function(e){var t=(0,Zo.n)((0,Ur.b)(),"4.24.0")>-1?{menu:e}:{overlay:(0,s.jsx)(Co.Z,(0,a.Z)({},e))};return(0,hn.Y)(t)},ht=g(73267),So=function(e){var t=(0,d.useContext)(de.L_),r=t.hashId,o=e.items,u=o===void 0?[]:o,l=e.type,i=l===void 0?"inline":l,c=e.prefixCls,f=e.activeKey,v=e.defaultActiveKey,P=(0,Re.Z)(f||v,{value:f,onChange:e.onChange}),y=(0,oe.Z)(P,2),w=y[0],C=y[1];if(u.length<1)return null;var Z=u.find(function(p){return p.key===w})||u[0];if(i==="inline")return(0,s.jsx)("div",{className:ie()("".concat(c,"-menu"),"".concat(c,"-inline-menu"),r),children:u.map(function(p,F){return(0,s.jsx)("div",{onClick:function(){C(p.key)},className:ie()("".concat(c,"-inline-menu-item"),Z.key===p.key?"".concat(c,"-inline-menu-item-active"):void 0,r),children:p.label},p.key||F)})});if(i==="tab")return(0,s.jsx)(be.Z,{items:u.map(function(p){var F;return(0,a.Z)((0,a.Z)({},p),{},{key:(F=p.key)===null||F===void 0?void 0:F.toString()})}),activeKey:Z.key,onTabClick:function(F){return C(F)},children:u==null?void 0:u.map(function(p,F){return(0,d.createElement)(be.Z.TabPane,(0,a.Z)((0,a.Z)({},p),{},{key:p.key||F,tab:p.label}))})});var b=mt({selectedKeys:[Z.key],onClick:function(F){C(F.key)},items:u.map(function(p,F){return{key:p.key||F,disabled:p.disabled,label:p.label}})});return(0,s.jsx)("div",{className:ie()("".concat(c,"-menu"),"".concat(c,"-dropdownmenu")),children:(0,s.jsx)(ht.Z,(0,a.Z)((0,a.Z)({trigger:["click"]},b),{},{children:(0,s.jsxs)(_n.Z,{className:"".concat(c,"-dropdownmenu-label"),children:[Z.label,(0,s.jsx)(Xr.Z,{})]})}))})},bo=So,xo=function(e){var t,r;return(0,m.Z)({},e.componentCls,(r={lineHeight:"1","&-container":{display:"flex",justifyContent:"space-between",paddingBlock:e.padding,paddingInline:0,"&-mobile":{flexDirection:"column"}},"&-title":{display:"flex",alignItems:"center",justifyContent:"flex-start",color:e.colorTextHeading,fontWeight:"500",fontSize:e.fontSizeLG},"&-search:not(:last-child)":{display:"flex",alignItems:"center",justifyContent:"flex-start"},"&-setting-item":{marginBlock:0,marginInline:4,color:e.colorIconHover,fontSize:e.fontSizeLG,cursor:"pointer","> span":{display:"block",width:"100%",height:"100%"},"&:hover":{color:e.colorPrimary}},"&-left":(t={display:"flex",flexWrap:"wrap",alignItems:"center",gap:e.marginXS,justifyContent:"flex-start",maxWidth:"calc(100% - 200px)",flex:1},(0,m.Z)(t,"".concat(e.antCls,"-tabs"),{width:"100%"}),(0,m.Z)(t,"&-has-tabs",{overflow:"hidden"}),t),"&-right":{flex:1,display:"flex",flexWrap:"wrap",justifyContent:"flex-end",gap:e.marginXS},"&-extra-line":{marginBlockEnd:e.margin},"&-setting-items":{display:"flex",gap:e.marginXS,lineHeight:"32px",alignItems:"center"},"&-filter":(0,m.Z)({"&:not(:last-child)":{marginInlineEnd:e.margin},display:"flex",alignItems:"center"},"div$".concat(e.antCls,"-pro-table-search"),{marginBlock:0,marginInline:0,paddingBlock:0,paddingInline:0}),"&-inline-menu-item":{display:"inline-block",marginInlineEnd:e.marginLG,cursor:"pointer",opacity:"0.75","&-active":{fontWeight:"bold",opacity:"1"}}},(0,m.Z)(r,"".concat(e.antCls,"-tabs-top > ").concat(e.antCls,"-tabs-nav"),(0,m.Z)({marginBlockEnd:0,"&::before":{borderBlockEnd:0}},"".concat(e.antCls,"-tabs-nav-list"),{marginBlockStart:0,"${token.antCls}-tabs-tab":{paddingBlockStart:0}})),(0,m.Z)(r,"&-dropdownmenu-label",{fontWeight:"bold",fontSize:e.fontSizeIcon,textAlign:"center",cursor:"pointer"}),(0,m.Z)(r,"@media (max-width: 768px)",(0,m.Z)({},e.componentCls,{"&-container":{display:"flex",flexWrap:"wrap",flexDirection:"column"},"&-left":{marginBlockEnd:"16px",maxWidth:"100%"}})),r))};function Ro(n){return(0,fe.Xj)("ProTableListToolBar",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[xo(t)]})}function Po(n){if(d.isValidElement(n))return n;if(n){var e=n,t=e.icon,r=e.tooltip,o=e.onClick,u=e.key;return t&&r?(0,s.jsx)(cr.Z,{title:r,children:(0,s.jsx)("span",{onClick:function(){o&&o(u)},children:t},u)}):t}return null}var wo=function(e){var t,r=e.prefixCls,o=e.tabs,u=o===void 0?{}:o,l=e.multipleLine,i=e.filtersNode;return l?(0,s.jsx)("div",{className:"".concat(r,"-extra-line"),children:u.items&&u.items.length?(0,s.jsx)(be.Z,{style:{width:"100%"},defaultActiveKey:u.defaultActiveKey,activeKey:u.activeKey,items:u.items.map(function(c,f){var v;return(0,a.Z)((0,a.Z)({label:c.tab},c),{},{key:((v=c.key)===null||v===void 0?void 0:v.toString())||(f==null?void 0:f.toString())})}),onChange:u.onChange,tabBarExtraContent:i,children:(t=u.items)===null||t===void 0?void 0:t.map(function(c,f){return(0,d.createElement)(be.Z.TabPane,(0,a.Z)((0,a.Z)({},c),{},{key:c.key||f,tab:c.tab}))})}):i}):null},Fo=function(e){var t=e.prefixCls,r=e.title,o=e.subTitle,u=e.tooltip,l=e.className,i=e.style,c=e.search,f=e.onSearch,v=e.multipleLine,P=v===void 0?!1:v,y=e.filter,w=e.actions,C=w===void 0?[]:w,Z=e.settings,b=Z===void 0?[]:Z,p=e.tabs,F=p===void 0?{}:p,T=e.menu,I=(0,d.useContext)(De.ZP.ConfigContext),K=I.getPrefixCls,L=fe.Ow.useToken(),j=L.token,E=K("pro-table-list-toolbar",t),X=Ro(E),H=X.wrapSSR,R=X.hashId,x=(0,de.YB)(),G=(0,d.useState)(!1),A=(0,oe.Z)(G,2),h=A[0],$=A[1],k=x.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),J=(0,d.useMemo)(function(){return c?d.isValidElement(c)?c:(0,s.jsx)(dt.Z.Search,(0,a.Z)((0,a.Z)({style:{width:200},placeholder:k},c),{},{onSearch:(0,ae.Z)((0,Q.Z)().mark(function M(){var B,_,ee,ce,ye,ve,Ce=arguments;return(0,Q.Z)().wrap(function(Ue){for(;;)switch(Ue.prev=Ue.next){case 0:for(ee=Ce.length,ce=new Array(ee),ye=0;yea":{fontSize:e.fontSize}}),(0,m.Z)(o,"".concat(e.antCls,"-table").concat(e.antCls,"-table-tbody").concat(e.antCls,"-table-wrapper:only-child").concat(e.antCls,"-table"),{marginBlock:0,marginInline:0}),(0,m.Z)(o,"".concat(e.antCls,"-table").concat(e.antCls,"-table-middle ").concat(e.componentCls),(0,m.Z)({marginBlock:0,marginInline:-8},"".concat(e.proComponentsCls,"-card"),{backgroundColor:"initial"})),(0,m.Z)(o,"& &-search",(r={marginBlockEnd:"16px",background:e.colorBgContainer,"&-ghost":{background:"transparent"}},(0,m.Z)(r,"&".concat(e.componentCls,"-form"),{marginBlock:0,marginInline:0,paddingBlock:0,paddingInline:16,overflow:"unset"}),(0,m.Z)(r,"&-light-filter",{marginBlockEnd:0,paddingBlock:0,paddingInline:0}),(0,m.Z)(r,"&-form-option",(t={},(0,m.Z)(t,"".concat(e.antCls,"-form-item"),{}),(0,m.Z)(t,"".concat(e.antCls,"-form-item-label"),{}),(0,m.Z)(t,"".concat(e.antCls,"-form-item-control-input"),{}),t)),(0,m.Z)(r,"@media (max-width: 575px)",(0,m.Z)({},e.componentCls,(0,m.Z)({height:"auto !important",paddingBlockEnd:"24px"},"".concat(e.antCls,"-form-item-label"),{minWidth:"80px",textAlign:"start"}))),r)),(0,m.Z)(o,"&-toolbar",{display:"flex",alignItems:"center",justifyContent:"space-between",height:"64px",paddingInline:24,paddingBlock:0,"&-option":{display:"flex",alignItems:"center",justifyContent:"flex-end"},"&-title":{flex:"1",color:e.colorTextLabel,fontWeight:"500",fontSize:"16px",lineHeight:"24px",opacity:"0.85"}}),o)),(0,m.Z)(u,"@media (max-width: ".concat(e.screenXS,")px"),(0,m.Z)({},e.componentCls,(0,m.Z)({},"".concat(e.antCls,"-table"),{width:"100%",overflowX:"auto","&-thead > tr,&-tbody > tr":{"> th,> td":{whiteSpace:"pre",">span":{display:"block"}}}}))),(0,m.Z)(u,"@media (max-width: 575px)",(0,m.Z)({},"".concat(e.componentCls,"-toolbar"),{flexDirection:"column",alignItems:"flex-start",justifyContent:"flex-start",height:"auto",marginBlockEnd:"16px",marginInlineStart:"16px",paddingBlock:8,paddingInline:8,paddingBlockStart:"16px",lineHeight:"normal","&-title":{marginBlockEnd:16},"&-option":{display:"flex",justifyContent:"space-between",width:"100%"},"&-default-option":{display:"flex",flex:"1",alignItems:"center",justifyContent:"flex-end"}})),u};function qo(n){return(0,fe.Xj)("ProTable",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[Qo(t)]})}var _o=["data","success","total"],el=function(e){var t=e.pageInfo;if(t){var r=t.current,o=t.defaultCurrent,u=t.pageSize,l=t.defaultPageSize;return{current:r||o||1,total:0,pageSize:u||l||20}}return{current:1,total:0,pageSize:20}},nl=function(e,t,r){var o,u=(0,d.useRef)(!1),l=(0,d.useRef)(null),i=r||{},c=i.onLoad,f=i.manual,v=i.polling,P=i.onRequestError,y=i.debounceTime,w=y===void 0?20:y,C=i.effects,Z=C===void 0?[]:C,b=(0,d.useRef)(f),p=(0,d.useRef)(),F=(0,Re.Z)(t,{value:r==null?void 0:r.dataSource,onChange:r==null?void 0:r.onDataSourceChange}),T=(0,oe.Z)(F,2),I=T[0],K=T[1],L=(0,Re.Z)(!1,{value:(0,Me.Z)(r==null?void 0:r.loading)==="object"?r==null||(o=r.loading)===null||o===void 0?void 0:o.spinning:r==null?void 0:r.loading,onChange:r==null?void 0:r.onLoadingChange}),j=(0,oe.Z)(L,2),E=j[0],X=j[1],H=(0,Re.Z)(function(){return el(r)},{onChange:r==null?void 0:r.onPageInfoChange}),R=(0,oe.Z)(H,2),x=R[0],G=R[1],A=(0,Ke.J)(function(M){(M.current!==x.current||M.pageSize!==x.pageSize||M.total!==x.total)&&G(M)}),h=(0,Re.Z)(!1),$=(0,oe.Z)(h,2),k=$[0],J=$[1],z=function(B,_){(0,Hr.unstable_batchedUpdates)(function(){K(B),(x==null?void 0:x.total)!==_&&A((0,a.Z)((0,a.Z)({},x),{},{total:_||B.length}))})},S=(0,sr.D)(x==null?void 0:x.current),N=(0,sr.D)(x==null?void 0:x.pageSize),D=(0,sr.D)(v),O=(0,Ke.J)(function(){(0,Hr.unstable_batchedUpdates)(function(){X(!1),J(!1)})}),V=function(){var M=(0,ae.Z)((0,Q.Z)().mark(function B(_){var ee,ce,ye,ve,Ce,qe,Ue,Ye,ln,_e,Pn,En;return(0,Q.Z)().wrap(function(q){for(;;)switch(q.prev=q.next){case 0:if(!b.current){q.next=3;break}return b.current=!1,q.abrupt("return");case 3:return _?J(!0):X(!0),ee=x||{},ce=ee.pageSize,ye=ee.current,q.prev=5,ve=(r==null?void 0:r.pageInfo)!==!1?{current:ye,pageSize:ce}:void 0,q.next=9,e==null?void 0:e(ve);case 9:if(q.t0=q.sent,q.t0){q.next=12;break}q.t0={};case 12:if(Ce=q.t0,qe=Ce.data,Ue=qe===void 0?[]:qe,Ye=Ce.success,ln=Ce.total,_e=ln===void 0?0:ln,Pn=(0,we.Z)(Ce,_o),Ye!==!1){q.next=21;break}return q.abrupt("return",[]);case 21:return En=Tt(Ue,[r.postData].filter(function(me){return me})),z(En,_e),c==null||c(En,Pn),q.abrupt("return",En);case 27:if(q.prev=27,q.t1=q.catch(5),P!==void 0){q.next=31;break}throw new Error(q.t1);case 31:I===void 0&&K([]),P(q.t1);case 33:return q.prev=33,O(),q.finish(33);case 36:return q.abrupt("return",[]);case 37:case"end":return q.stop()}},B,null,[[5,27,33,36]])}));return function(_){return M.apply(this,arguments)}}(),W=(0,lr.D)(function(){var M=(0,ae.Z)((0,Q.Z)().mark(function B(_){var ee,ce,ye;return(0,Q.Z)().wrap(function(Ce){for(;;)switch(Ce.prev=Ce.next){case 0:if(p.current&&clearTimeout(p.current),e){Ce.next=3;break}return Ce.abrupt("return");case 3:return ee=new AbortController,l.current=ee,Ce.prev=5,Ce.next=8,Promise.race([V(_),new Promise(function(qe,Ue){var Ye,ln,_e;(Ye=l.current)===null||Ye===void 0||(ln=Ye.signal)===null||ln===void 0||(_e=ln.addEventListener)===null||_e===void 0||_e.call(ln,"abort",function(){Ue("aborted"),W.cancel(),O()})})]);case 8:if(ce=Ce.sent,!ee.signal.aborted){Ce.next=11;break}return Ce.abrupt("return");case 11:return ye=(0,zn.h)(v,ce),ye&&!u.current&&(p.current=setTimeout(function(){W.run(ye)},Math.max(ye,2e3))),Ce.abrupt("return",ce);case 16:if(Ce.prev=16,Ce.t0=Ce.catch(5),Ce.t0!=="aborted"){Ce.next=20;break}return Ce.abrupt("return");case 20:throw Ce.t0;case 21:case"end":return Ce.stop()}},B,null,[[5,16]])}));return function(B){return M.apply(this,arguments)}}(),w||30),U=function(){var B;(B=l.current)===null||B===void 0||B.abort(),W.cancel(),O()};return(0,d.useEffect)(function(){return v||clearTimeout(p.current),!D&&v&&W.run(!0),function(){clearTimeout(p.current)}},[v]),(0,d.useEffect)(function(){return u.current=!1,function(){u.current=!0}},[]),(0,d.useEffect)(function(){var M=x||{},B=M.current,_=M.pageSize;(!S||S===B)&&(!N||N===_)||r.pageInfo&&I&&(I==null?void 0:I.length)>_||B!==void 0&&I&&I.length<=_&&(U(),W.run(!1))},[x==null?void 0:x.current]),(0,d.useEffect)(function(){N&&(U(),W.run(!1))},[x==null?void 0:x.pageSize]),(0,ir.KW)(function(){return U(),W.run(!1),f||(b.current=!1),function(){U()}},[].concat((0,Ge.Z)(Z),[f])),{dataSource:I,setDataSource:K,loading:(0,Me.Z)(r==null?void 0:r.loading)==="object"?(0,a.Z)((0,a.Z)({},r==null?void 0:r.loading),{},{spinning:E}):E,reload:function(){var M=(0,ae.Z)((0,Q.Z)().mark(function _(){return(0,Q.Z)().wrap(function(ce){for(;;)switch(ce.prev=ce.next){case 0:return U(),ce.abrupt("return",W.run(!1));case 2:case"end":return ce.stop()}},_)}));function B(){return M.apply(this,arguments)}return B}(),pageInfo:x,pollingLoading:k,reset:function(){var M=(0,ae.Z)((0,Q.Z)().mark(function _(){var ee,ce,ye,ve,Ce,qe,Ue,Ye;return(0,Q.Z)().wrap(function(_e){for(;;)switch(_e.prev=_e.next){case 0:ee=r||{},ce=ee.pageInfo,ye=ce||{},ve=ye.defaultCurrent,Ce=ve===void 0?1:ve,qe=ye.defaultPageSize,Ue=qe===void 0?20:qe,Ye={current:Ce,total:0,pageSize:Ue},A(Ye);case 4:case"end":return _e.stop()}},_)}));function B(){return M.apply(this,arguments)}return B}(),setPageInfo:function(){var M=(0,ae.Z)((0,Q.Z)().mark(function _(ee){return(0,Q.Z)().wrap(function(ye){for(;;)switch(ye.prev=ye.next){case 0:A((0,a.Z)((0,a.Z)({},x),ee));case 1:case"end":return ye.stop()}},_)}));function B(_){return M.apply(this,arguments)}return B}()}},rl=nl,tl=function(e){return function(t,r){var o,u,l=t.fixed,i=t.index,c=r.fixed,f=r.index;if(l==="left"&&c!=="left"||c==="right"&&l!=="right")return-2;if(c==="left"&&l!=="left"||l==="right"&&c!=="right")return 2;var v=t.key||"".concat(i),P=r.key||"".concat(f);if((o=e[v])!==null&&o!==void 0&&o.order||(u=e[P])!==null&&u!==void 0&&u.order){var y,w;return(((y=e[v])===null||y===void 0?void 0:y.order)||0)-(((w=e[P])===null||w===void 0?void 0:w.order)||0)}return(t.index||0)-(r.index||0)}},al=g(16566),ol=function(e){var t={};return Object.keys(e||{}).forEach(function(r){var o;Array.isArray(e[r])&&((o=e[r])===null||o===void 0?void 0:o.length)===0||e[r]!==void 0&&(t[r]=e[r])}),t},ll=g(45151),il=function(e){var t;return!!(e!=null&&(t=e.valueType)!==null&&t!==void 0&&t.toString().startsWith("date")||(e==null?void 0:e.valueType)==="select"||e!=null&&e.valueEnum)},sl=function(e){var t;return((t=e.ellipsis)===null||t===void 0?void 0:t.showTitle)===!1?!1:e.ellipsis},ul=function(e,t,r){if(t.copyable||t.ellipsis){var o=t.copyable&&r?{text:r,tooltips:["",""]}:void 0,u=il(t),l=sl(t)&&r?{tooltip:(t==null?void 0:t.tooltip)!==!1&&u?(0,s.jsx)("div",{className:"pro-table-tooltip-text",children:e}):r}:!1;return(0,s.jsx)(ll.Z.Text,{style:{width:"100%",margin:0,padding:0},title:"",copyable:o,ellipsis:l,children:e})}return e},dl=g(15797),cl=g(78546),vl=function(e){var t="".concat(e.antCls,"-progress-bg");return(0,m.Z)({},e.componentCls,{"&-multiple":{paddingBlockStart:6,paddingBlockEnd:12,paddingInline:8},"&-progress":{"&-success":(0,m.Z)({},t,{backgroundColor:e.colorSuccess}),"&-error":(0,m.Z)({},t,{backgroundColor:e.colorError}),"&-warning":(0,m.Z)({},t,{backgroundColor:e.colorWarning})},"&-rule":{display:"flex",alignItems:"center","&-icon":{"&-default":{display:"flex",alignItems:"center",justifyContent:"center",width:"14px",height:"22px","&-circle":{width:"6px",height:"6px",backgroundColor:e.colorTextSecondary,borderRadius:"4px"}},"&-loading":{color:e.colorPrimary},"&-error":{color:e.colorError},"&-success":{color:e.colorSuccess}},"&-text":{color:e.colorText}}})};function fl(n){return(0,fe.Xj)("InlineErrorFormItem",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[vl(t)]})}var ml=["rules","name","children","popoverProps"],hl=["errorType","rules","name","popoverProps","children"],gt={marginBlockStart:-5,marginBlockEnd:-5,marginInlineStart:0,marginInlineEnd:0},pl=function(e){var t=e.inputProps,r=e.input,o=e.extra,u=e.errorList,l=e.popoverProps,i=(0,d.useState)(!1),c=(0,oe.Z)(i,2),f=c[0],v=c[1],P=(0,d.useState)([]),y=(0,oe.Z)(P,2),w=y[0],C=y[1],Z=(0,d.useContext)(De.ZP.ConfigContext),b=Z.getPrefixCls,p=b(),F=(0,fe.dQ)(),T=fl("".concat(p,"-form-item-with-help")),I=T.wrapSSR,K=T.hashId;(0,d.useEffect)(function(){t.validateStatus!=="validating"&&C(t.errors)},[t.errors,t.validateStatus]);var L=(0,Ur.X)(w.length<1?!1:f,function(E){E!==f&&v(E)}),j=t.validateStatus==="validating";return(0,s.jsx)(ft.Z,(0,a.Z)((0,a.Z)((0,a.Z)({trigger:(l==null?void 0:l.trigger)||["click"],placement:(l==null?void 0:l.placement)||"topLeft"},L),{},{getPopupContainer:l==null?void 0:l.getPopupContainer,getTooltipContainer:l==null?void 0:l.getTooltipContainer,content:I((0,s.jsx)("div",{className:"".concat(p,"-form-item ").concat(K," ").concat(F.hashId).trim(),style:{margin:0,padding:0},children:(0,s.jsxs)("div",{className:"".concat(p,"-form-item-with-help ").concat(K," ").concat(F.hashId).trim(),children:[j?(0,s.jsx)(Ne.Z,{}):null,u]})}))},l),{},{children:(0,s.jsxs)(s.Fragment,{children:[r,o]})}),"popover")},gl=function(e){var t=e.rules,r=e.name,o=e.children,u=e.popoverProps,l=(0,we.Z)(e,ml);return(0,s.jsx)(xn.Z.Item,(0,a.Z)((0,a.Z)({name:r,rules:t,hasFeedback:!1,shouldUpdate:function(c,f){if(c===f)return!1;var v=[r].flat(1);v.length>1&&v.pop();try{return JSON.stringify((0,Rn.Z)(c,v))!==JSON.stringify((0,Rn.Z)(f,v))}catch(P){return!0}},_internalItemRender:{mark:"pro_table_render",render:function(c,f){return(0,s.jsx)(pl,(0,a.Z)({inputProps:c,popoverProps:u},f))}}},l),{},{style:(0,a.Z)((0,a.Z)({},gt),l==null?void 0:l.style),children:o}))},yl=function(e){var t=e.errorType,r=e.rules,o=e.name,u=e.popoverProps,l=e.children,i=(0,we.Z)(e,hl);return o&&r!==null&&r!==void 0&&r.length&&t==="popover"?(0,s.jsx)(gl,(0,a.Z)((0,a.Z)({name:o,rules:r,popoverProps:u},i),{},{children:l})):(0,s.jsx)(xn.Z.Item,(0,a.Z)((0,a.Z)({rules:r,shouldUpdate:o?function(c,f){if(c===f)return!1;var v=[o].flat(1);v.length>1&&v.pop();try{return JSON.stringify((0,Rn.Z)(c,v))!==JSON.stringify((0,Rn.Z)(f,v))}catch(P){return!0}}:void 0},i),{},{style:(0,a.Z)((0,a.Z)({},gt),i.style),name:o,children:l}))},_r=function(e,t,r){return t===void 0?e:(0,zn.h)(e,t,r)},Cl=["children"],Zl=["",null,void 0],yt=function(){for(var e=arguments.length,t=new Array(e),r=0;rve.length?(ve.push(B),ve):(ve.splice((i==null?void 0:i.current)*(i==null?void 0:i.pageSize)-1,0,B),ve)}return[].concat((0,Ge.Z)(o.dataSource),[B])},h=function(){return(0,a.Z)((0,a.Z)({},H),{},{size:f,rowSelection:c===!1?void 0:c,className:t,style:P,columns:x.map(function(W){return W.isExtraColumns?W.extraColumn:W}),loading:o.loading,dataSource:E.newLineRecord?A(o.dataSource):o.dataSource,pagination:i,onChange:function(U,M,B,_){var ee;if((ee=H.onChange)===null||ee===void 0||ee.call(H,U,M,B,_),G||T((0,hn.Y)(M)),Array.isArray(B)){var ce=B.reduce(function(qe,Ue){return(0,a.Z)((0,a.Z)({},qe),{},(0,m.Z)({},"".concat(Ue.field),Ue.order))},{});F((0,hn.Y)(ce))}else{var ye,ve=(ye=B.column)===null||ye===void 0?void 0:ye.sorter,Ce=(ve==null?void 0:ve.toString())===ve;F((0,hn.Y)((0,m.Z)({},"".concat(Ce?ve:B.field),B.order)))}}})},$=(0,d.useMemo)(function(){return n.search===!1&&!n.headerTitle&&n.toolBarRender===!1},[]),k=(0,s.jsx)(Kn.Z,(0,a.Z)((0,a.Z)({},h()),{},{rowKey:e})),J=n.tableViewRender?n.tableViewRender((0,a.Z)((0,a.Z)({},h()),{},{rowSelection:c!==!1?c:void 0}),k):k,z=(0,d.useMemo)(function(){if(n.editable&&!n.name){var V,W,U,M;return(0,s.jsxs)(s.Fragment,{children:[y,b,(0,d.createElement)(cn,(0,a.Z)((0,a.Z)({},(V=n.editable)===null||V===void 0?void 0:V.formProps),{},{formRef:(W=n.editable)===null||W===void 0||(U=W.formProps)===null||U===void 0?void 0:U.formRef,component:!1,form:(M=n.editable)===null||M===void 0?void 0:M.form,onValuesChange:E.onValuesChange,key:"table",submitter:!1,omitNil:!1,dateFormatter:n.dateFormatter}),J)]})}return(0,s.jsxs)(s.Fragment,{children:[y,b,J]})},[b,n.loading,!!n.editable,J,y]),S=(0,d.useMemo)(function(){return Z===!1||$===!0||n.name?{}:y?{paddingBlockStart:0}:y&&i===!1?{paddingBlockStart:0}:{padding:0}},[$,i,n.name,Z,y]),N=Z===!1||$===!0||n.name?z:(0,s.jsx)(Be,(0,a.Z)((0,a.Z)({ghost:n.ghost,bordered:rt("table",j),bodyStyle:S},Z),{},{children:z})),D=function(){return n.tableRender?n.tableRender(n,N,{toolbar:y||void 0,alert:b||void 0,table:J||void 0}):N},O=(0,s.jsxs)("div",{className:ie()(L,(0,m.Z)({},"".concat(r,"-polling"),o.pollingLoading)),style:C,ref:R.rootDomRef,children:[K?null:w,l!=="form"&&n.tableExtraRender&&(0,s.jsx)("div",{className:ie()(L,"".concat(r,"-extra")),children:n.tableExtraRender(n,o.dataSource||[])}),l!=="form"&&D()]});return!I||!(I!=null&&I.fullScreen)?O:(0,s.jsx)(De.ZP,{getPopupContainer:function(){return R.rootDomRef.current||document.body},children:O})}var El={},Ml=function(e){var t,r=e.cardBordered,o=e.request,u=e.className,l=e.params,i=l===void 0?El:l,c=e.defaultData,f=e.headerTitle,v=e.postData,P=e.ghost,y=e.pagination,w=e.actionRef,C=e.columns,Z=C===void 0?[]:C,b=e.toolBarRender,p=e.optionsRender,F=e.onLoad,T=e.onRequestError,I=e.style,K=e.cardProps,L=e.tableStyle,j=e.tableClassName,E=e.columnsStateMap,X=e.onColumnsStateChange,H=e.options,R=e.search,x=e.name,G=e.onLoadingChange,A=e.rowSelection,h=A===void 0?!1:A,$=e.beforeSearchSubmit,k=e.tableAlertRender,J=e.defaultClassName,z=e.formRef,S=e.type,N=S===void 0?"table":S,D=e.columnEmptyText,O=D===void 0?"-":D,V=e.toolbar,W=e.rowKey,U=e.manualRequest,M=e.polling,B=e.tooltip,_=e.revalidateOnFocus,ee=_===void 0?!1:_,ce=e.searchFormRender,ye=(0,we.Z)(e,Tl),ve=qo(e.defaultClassName),Ce=ve.wrapSSR,qe=ve.hashId,Ue=ie()(J,u,qe),Ye=(0,d.useRef)(),ln=(0,d.useRef)(),_e=z||ln;(0,d.useImperativeHandle)(w,function(){return Ye.current});var Pn=(0,Re.Z)(h?(h==null?void 0:h.defaultSelectedRowKeys)||[]:void 0,{value:h?h.selectedRowKeys:void 0}),En=(0,oe.Z)(Pn,2),Ze=En[0],q=En[1],me=(0,Re.Z)(function(){if(!(U||R!==!1))return{}}),te=(0,oe.Z)(me,2),ze=te[0],Ee=te[1],wn=(0,Re.Z)({}),un=(0,oe.Z)(wn,2),Dn=un[0],vr=un[1],jr=(0,Re.Z)({}),Cr=(0,oe.Z)(jr,2),rr=Cr[0],Nr=Cr[1];(0,d.useEffect)(function(){var Y=Mt(Z),ne=Y.sort,Se=Y.filter;vr(Se),Nr(ne)},[]);var Wr=(0,de.YB)(),et=(0,Me.Z)(y)==="object"?y:{defaultCurrent:1,defaultPageSize:20,pageSize:20,current:1},He=(0,d.useContext)(nr),Lr=(0,d.useMemo)(function(){if(o)return function(){var Y=(0,ae.Z)((0,Q.Z)().mark(function ne(Se){var Oe,jn;return(0,Q.Z)().wrap(function(On){for(;;)switch(On.prev=On.next){case 0:return Oe=(0,a.Z)((0,a.Z)((0,a.Z)({},Se||{}),ze),i),delete Oe._timestamp,On.next=4,o(Oe,rr,Dn);case 4:return jn=On.sent,On.abrupt("return",jn);case 6:case"end":return On.stop()}},ne)}));return function(ne){return Y.apply(this,arguments)}}()},[ze,i,Dn,rr,o]),Ie=rl(Lr,c,{pageInfo:y===!1?!1:et,loading:e.loading,dataSource:e.dataSource,onDataSourceChange:e.onDataSourceChange,onLoad:F,onLoadingChange:G,onRequestError:T,postData:v,revalidateOnFocus:ee,manual:ze===void 0,polling:M,effects:[(0,qn.ZP)(i),(0,qn.ZP)(ze),(0,qn.ZP)(Dn),(0,qn.ZP)(rr)],debounceTime:e.debounceTime,onPageInfoChange:function(ne){var Se,Oe;!y||!Lr||(y==null||(Se=y.onChange)===null||Se===void 0||Se.call(y,ne.current,ne.pageSize),y==null||(Oe=y.onShowSizeChange)===null||Oe===void 0||Oe.call(y,ne.current,ne.pageSize))}});(0,d.useEffect)(function(){var Y;if(!(e.manualRequest||!e.request||!ee||(Y=e.form)!==null&&Y!==void 0&&Y.ignoreRules)){var ne=function(){document.visibilityState==="visible"&&Ie.reload()};return document.addEventListener("visibilitychange",ne),function(){return document.removeEventListener("visibilitychange",ne)}}},[]);var sn=d.useRef(new Map),Le=d.useMemo(function(){return typeof W=="function"?W:function(Y,ne){var Se;return ne===-1?Y==null?void 0:Y[W]:e.name?ne==null?void 0:ne.toString():(Se=Y==null?void 0:Y[W])!==null&&Se!==void 0?Se:ne==null?void 0:ne.toString()}},[e.name,W]);(0,d.useMemo)(function(){var Y;if((Y=Ie.dataSource)!==null&&Y!==void 0&&Y.length){var ne=Ie.dataSource.map(function(Se){var Oe=Le(Se,-1);return sn.current.set(Oe,Se),Oe});return ne}return[]},[Ie.dataSource,Le]);var ke=(0,d.useMemo)(function(){var Y=y===!1?!1:(0,a.Z)({},y),ne=(0,a.Z)((0,a.Z)({},Ie.pageInfo),{},{setPageInfo:function(Oe){var jn=Oe.pageSize,Gn=Oe.current,On=Ie.pageInfo;if(jn===On.pageSize||On.current===1){Ie.setPageInfo({pageSize:jn,current:Gn});return}o&&Ie.setDataSource([]),Ie.setPageInfo({pageSize:jn,current:N==="list"?Gn:1})}});return o&&Y&&(delete Y.onChange,delete Y.onShowSizeChange),wt(Y,ne,Wr)},[y,Ie,Wr]);(0,ir.KW)(function(){var Y;e.request&&i&&Ie.dataSource&&(Ie==null||(Y=Ie.pageInfo)===null||Y===void 0?void 0:Y.current)!==1&&Ie.setPageInfo({current:1})},[i]),He.setPrefixName(e.name);var pn=(0,d.useCallback)(function(){h&&h.onChange&&h.onChange([],[],{type:"none"}),q([])},[h,q]);He.propsRef.current=e;var fn=Mr((0,a.Z)((0,a.Z)({},e.editable),{},{tableName:e.name,getRowKey:Le,childrenColumnName:((t=e.expandable)===null||t===void 0?void 0:t.childrenColumnName)||"children",dataSource:Ie.dataSource||[],setDataSource:function(ne){var Se,Oe;(Se=e.editable)===null||Se===void 0||(Oe=Se.onValuesChange)===null||Oe===void 0||Oe.call(Se,void 0,ne),Ie.setDataSource(ne)}})),Hn=fe.Ow===null||fe.Ow===void 0?void 0:fe.Ow.useToken(),Wn=Hn.token;Ft(Ye,Ie,{fullScreen:function(){var ne;if(!(!((ne=He.rootDomRef)!==null&&ne!==void 0&&ne.current)||!document.fullscreenEnabled))if(document.fullscreenElement)document.exitFullscreen();else{var Se;(Se=He.rootDomRef)===null||Se===void 0||Se.current.requestFullscreen()}},onCleanSelected:function(){pn()},resetAll:function(){var ne;pn(),vr({}),Nr({}),He.setKeyWords(void 0),Ie.setPageInfo({current:1}),_e==null||(ne=_e.current)===null||ne===void 0||ne.resetFields(),Ee({})},editableUtils:fn}),He.setAction(Ye.current),w&&(w.current=Ye.current);var Mn=(0,d.useMemo)(function(){var Y;return Zt({columns:Z,counter:He,columnEmptyText:O,type:N,marginSM:Wn.marginSM,editableUtils:fn,rowKey:W,childrenColumnName:(Y=e.expandable)===null||Y===void 0?void 0:Y.childrenColumnName}).sort(tl(He.columnsMap))},[Z,He==null?void 0:He.sortKeyColumns,He==null?void 0:He.columnsMap,O,N,fn.editableKeys&&fn.editableKeys.join(",")]);(0,ir.Au)(function(){if(Mn&&Mn.length>0){var Y=Mn.map(function(ne){return pr(ne.key,ne.index)});He.setSortKeyColumns(Y)}},[Mn],["render","renderFormItem"],100),(0,ir.KW)(function(){var Y=Ie.pageInfo,ne=y||{},Se=ne.current,Oe=Se===void 0?Y==null?void 0:Y.current:Se,jn=ne.pageSize,Gn=jn===void 0?Y==null?void 0:Y.pageSize:jn;y&&(Oe||Gn)&&(Gn!==(Y==null?void 0:Y.pageSize)||Oe!==(Y==null?void 0:Y.current))&&Ie.setPageInfo({pageSize:Gn||Y.pageSize,current:Oe||Y.current})},[y&&y.pageSize,y&&y.current]);var nt=(0,a.Z)((0,a.Z)({selectedRowKeys:Ze},h),{},{onChange:function(ne,Se,Oe){h&&h.onChange&&h.onChange(ne,Se,Oe),q(ne)}}),Br=R!==!1&&(R==null?void 0:R.filterType)==="light",bt=(0,d.useCallback)(function(Y){if(H&&H.search){var ne,Se,Oe=H.search===!0?{}:H.search,jn=Oe.name,Gn=jn===void 0?"keyword":jn,On=(ne=H.search)===null||ne===void 0||(Se=ne.onSearch)===null||Se===void 0?void 0:Se.call(ne,He.keyWords);if(On!==!1){Ee((0,a.Z)((0,a.Z)({},Y),{},(0,m.Z)({},Gn,He.keyWords)));return}}Ee(Y)},[He.keyWords,H,Ee]),xt=(0,d.useMemo)(function(){if((0,Me.Z)(Ie.loading)==="object"){var Y;return((Y=Ie.loading)===null||Y===void 0?void 0:Y.spinning)||!1}return Ie.loading},[Ie.loading]),Rt=(0,d.useMemo)(function(){var Y=R===!1&&N!=="form"?null:(0,s.jsx)(Xa,{pagination:ke,beforeSearchSubmit:$,action:Ye,columns:Z,onFormSearchSubmit:function(Se){bt(Se)},ghost:P,onReset:e.onReset,onSubmit:e.onSubmit,loading:!!xt,manualRequest:U,search:R,form:e.form,formRef:_e,type:e.type||"table",cardBordered:e.cardBordered,dateFormatter:e.dateFormatter});return ce&&Y?(0,s.jsx)(s.Fragment,{children:ce(e,Y)}):Y},[$,_e,P,xt,U,bt,ke,e,Z,R,ce,N]),Pt=(0,d.useMemo)(function(){return Ze==null?void 0:Ze.map(function(Y){var ne;return(ne=sn.current)===null||ne===void 0?void 0:ne.get(Y)})},[Ze]),Nl=b===!1?null:(0,s.jsx)(Jo,{headerTitle:f,hideToolbar:H===!1&&!f&&!b&&!V&&!Br,selectedRows:Pt,selectedRowKeys:Ze,tableColumn:Mn,tooltip:B,toolbar:V,onFormSearchSubmit:function(ne){Ee((0,a.Z)((0,a.Z)({},ze),ne))},searchNode:Br?Rt:null,options:H,optionsRender:p,actionRef:Ye,toolBarRender:b}),Ll=h!==!1?(0,s.jsx)(Je,{selectedRowKeys:Ze,selectedRows:Pt,onCleanSelected:pn,alertOptionRender:ye.tableAlertOptionRender,alertInfoRender:k,alwaysShowAlert:h==null?void 0:h.alwaysShowAlert}):null;return Ce((0,s.jsx)(Il,(0,a.Z)((0,a.Z)({},e),{},{name:x,defaultClassName:J,size:He.tableSize,onSizeChange:He.setTableSize,pagination:ke,searchNode:Rt,rowSelection:h!==!1?nt:void 0,className:Ue,tableColumn:Mn,isLightFilter:Br,action:Ie,alertDom:Ll,toolbarDom:Nl,onSortChange:function(ne){rr!==ne&&Nr(ne)},onFilterChange:function(ne){ne!==Dn&&vr(ne)},editableUtils:fn,getRowKey:Le})))},St=function(e){var t=(0,d.useContext)(De.ZP.ConfigContext),r=t.getPrefixCls,o=e.ErrorBoundary===!1?d.Fragment:e.ErrorBoundary||dr.S;return(0,s.jsx)(Qa,{initValue:e,children:(0,s.jsx)(de._Y,{needDeps:!0,children:(0,s.jsx)(o,{children:(0,s.jsx)(Ml,(0,a.Z)({defaultClassName:"".concat(r("pro-table"))},e))})})})};St.Summary=Kn.Z.Summary;var jl=St},32245:function(Kr,Vn,g){g.d(Vn,{S:function(){return gn}});var Q=g(60412),ae=g(14346),Me=g(86717),oe=g(87498),m=g(73726),Ge=g(37734),a=g(12632),we=g(58757),kn=g(35667),gn=function(De){(0,oe.Z)(be,De);var Fn=(0,m.Z)(be);function be(){var dn;(0,Q.Z)(this,be);for(var ie=arguments.length,he=new Array(ie),Re=0;Re *\", {\n alignItems: 'center',\n justifyContent: 'center',\n flex: 1,\n display: 'flex',\n cursor: 'pointer',\n color: token.colorTextSecondary,\n transition: 'color 0.3s',\n '&:hover': {\n color: token.colorPrimaryHover\n }\n }), _defineProperty(_$concat, \"& > li > div\", {\n flex: 1,\n width: '100%',\n marginBlock: token.marginSM,\n marginInline: 0,\n color: token.colorTextSecondary,\n textAlign: 'center',\n a: {\n color: token.colorTextSecondary,\n transition: 'color 0.3s',\n '&:hover': {\n color: token.colorPrimaryHover\n }\n },\n div: (_div = {\n position: 'relative',\n display: 'block',\n minWidth: 32,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n cursor: 'pointer',\n '&:hover': {\n color: token.colorPrimaryHover,\n transition: 'color 0.3s'\n }\n }, _defineProperty(_div, \"a:not(\".concat(antCls, \"-btn),\\n > .anticon\"), {\n display: 'inline-block',\n width: '100%',\n color: token.colorTextSecondary,\n lineHeight: '22px',\n transition: 'color 0.3s',\n '&:hover': {\n color: token.colorPrimaryHover\n }\n }), _defineProperty(_div, '.anticon', {\n fontSize: token.cardActionIconSize,\n lineHeight: '22px'\n }), _div),\n '&:not(:last-child)': {\n borderInlineEnd: \"\".concat(token.lineWidth, \"px \").concat(token.lineType, \" \").concat(token.colorSplit)\n }\n }), _$concat));\n};\nexport default function useStyle(prefixCls) {\n return useAntdStyle('ProCardActions', function (token) {\n var proCardActionsToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls),\n cardActionIconSize: 16\n });\n return [genActionsStyle(proCardActionsToken)];\n });\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"map_row_parentKey\"],\n _excluded2 = [\"map_row_parentKey\", \"map_row_key\"],\n _excluded3 = [\"map_row_key\"];\n/* eslint-disable react-hooks/exhaustive-deps */\nimport { LoadingOutlined } from '@ant-design/icons';\nimport { useIntl } from '@ant-design/pro-provider';\nimport { Form, message, Popconfirm } from 'antd';\nimport useLazyKVMap from \"antd/es/table/hooks/useLazyKVMap\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport get from \"rc-util/es/utils/get\";\nimport set from \"rc-util/es/utils/set\";\nimport { noteOnce } from \"rc-util/es/warning\";\nimport React, { createRef, forwardRef, useContext, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { useDebounceFn, useRefFunction } from '..';\nimport { ProFormContext } from \"../components/ProFormContext\";\nimport { useDeepCompareEffectDebounce } from \"../hooks/useDeepCompareEffect\";\nimport { usePrevious } from \"../hooks/usePrevious\";\nimport { merge } from \"../merge\";\nimport { useMountMergeState } from \"../useMountMergeState\";\n\n/**\n * 兼容antd@4 和 antd@5 的warning\n * @param messageStr\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar warning = function warning(messageStr) {\n // @ts-ignore\n return (message.warn || message.warning)(messageStr);\n};\nexport var recordKeyToString = function recordKeyToString(rowKey) {\n if (Array.isArray(rowKey)) return rowKey.join(',');\n return rowKey;\n};\n/**\n * 使用map 来删除数据,性能一般 但是准确率比较高\n *\n * @param keyProps\n * @param action\n */\nexport function editableRowByKey(keyProps, action) {\n var _recordKeyToString;\n var getRowKey = keyProps.getRowKey,\n row = keyProps.row,\n data = keyProps.data,\n _keyProps$childrenCol = keyProps.childrenColumnName,\n childrenColumnName = _keyProps$childrenCol === void 0 ? 'children' : _keyProps$childrenCol;\n var key = (_recordKeyToString = recordKeyToString(keyProps.key)) === null || _recordKeyToString === void 0 ? void 0 : _recordKeyToString.toString();\n var kvMap = new Map();\n\n /**\n * 打平这个数组\n *\n * @param records\n * @param parentKey\n */\n function dig(records, map_row_parentKey, map_row_index) {\n records.forEach(function (record, index) {\n var eachIndex = (map_row_index || 0) * 10 + index;\n var recordKey = getRowKey(record, eachIndex).toString();\n // children 取在前面方便拼的时候按照反顺序放回去\n if (record && _typeof(record) === 'object' && childrenColumnName in record) {\n dig(record[childrenColumnName] || [], recordKey, eachIndex);\n }\n var newRecord = _objectSpread(_objectSpread({}, record), {}, {\n map_row_key: recordKey,\n children: undefined,\n map_row_parentKey: map_row_parentKey\n });\n delete newRecord.children;\n if (!map_row_parentKey) {\n delete newRecord.map_row_parentKey;\n }\n kvMap.set(recordKey, newRecord);\n });\n }\n if (action === 'top') {\n kvMap.set(key, _objectSpread(_objectSpread({}, kvMap.get(key)), row));\n }\n dig(data);\n if (action === 'update') {\n kvMap.set(key, _objectSpread(_objectSpread({}, kvMap.get(key)), row));\n }\n if (action === 'delete') {\n kvMap.delete(key);\n }\n var fill = function fill(map) {\n var kvArrayMap = new Map();\n var kvSource = [];\n var fillNewRecord = function fillNewRecord() {\n var fillChildren = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n map.forEach(function (value) {\n if (value.map_row_parentKey && !value.map_row_key) {\n var map_row_parentKey = value.map_row_parentKey,\n rest = _objectWithoutProperties(value, _excluded);\n if (!kvArrayMap.has(map_row_parentKey)) {\n kvArrayMap.set(map_row_parentKey, []);\n }\n if (fillChildren) {\n var _kvArrayMap$get;\n (_kvArrayMap$get = kvArrayMap.get(map_row_parentKey)) === null || _kvArrayMap$get === void 0 ? void 0 : _kvArrayMap$get.push(rest);\n }\n }\n });\n };\n fillNewRecord(action === 'top');\n map.forEach(function (value) {\n if (value.map_row_parentKey && value.map_row_key) {\n var _kvArrayMap$get2;\n var map_row_parentKey = value.map_row_parentKey,\n map_row_key = value.map_row_key,\n rest = _objectWithoutProperties(value, _excluded2);\n if (kvArrayMap.has(map_row_key)) {\n rest[childrenColumnName] = kvArrayMap.get(map_row_key);\n }\n if (!kvArrayMap.has(map_row_parentKey)) {\n kvArrayMap.set(map_row_parentKey, []);\n }\n (_kvArrayMap$get2 = kvArrayMap.get(map_row_parentKey)) === null || _kvArrayMap$get2 === void 0 ? void 0 : _kvArrayMap$get2.push(rest);\n }\n });\n fillNewRecord(action === 'update');\n map.forEach(function (value) {\n if (!value.map_row_parentKey) {\n var map_row_key = value.map_row_key,\n rest = _objectWithoutProperties(value, _excluded3);\n if (map_row_key && kvArrayMap.has(map_row_key)) {\n var item = _objectSpread(_objectSpread({}, rest), {}, _defineProperty({}, childrenColumnName, kvArrayMap.get(map_row_key)));\n kvSource.push(item);\n return;\n }\n kvSource.push(rest);\n }\n });\n return kvSource;\n };\n return fill(kvMap);\n}\n\n/**\n * 保存按钮的dom\n *\n * @param ActionRenderConfig\n */\nexport function SaveEditableAction(_ref, ref) {\n var recordKey = _ref.recordKey,\n onSave = _ref.onSave,\n row = _ref.row,\n children = _ref.children,\n newLineConfig = _ref.newLineConfig,\n editorType = _ref.editorType,\n tableName = _ref.tableName;\n var context = useContext(ProFormContext);\n var form = Form.useFormInstance();\n var _useMountMergeState = useMountMergeState(false),\n _useMountMergeState2 = _slicedToArray(_useMountMergeState, 2),\n loading = _useMountMergeState2[0],\n setLoading = _useMountMergeState2[1];\n var save = useRefFunction( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _context$getFieldForm, isMapEditor, namePath, fields, _recordKey, recordKeyPath, curValue, data, res;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n isMapEditor = editorType === 'Map'; // 为了兼容类型为 array 的 dataIndex,当 recordKey 是一个数组时,用于获取表单值的 key 只取第一项,\n // 从表单中获取回来之后,再根据 namepath 获取具体的某个字段并设置\n namePath = [tableName, Array.isArray(recordKey) ? recordKey[0] : recordKey].map(function (key) {\n return key === null || key === void 0 ? void 0 : key.toString();\n }).flat(1).filter(Boolean);\n setLoading(true);\n _context.next = 6;\n return form.validateFields(namePath, {\n // @ts-expect-error\n recursive: true\n });\n case 6:\n fields = (context === null || context === void 0 ? void 0 : (_context$getFieldForm = context.getFieldFormatValue) === null || _context$getFieldForm === void 0 ? void 0 : _context$getFieldForm.call(context, namePath)) || form.getFieldValue(namePath); // 处理 dataIndex 为数组的情况\n if (Array.isArray(recordKey) && recordKey.length > 1) {\n // 获取 namepath\n _recordKey = _toArray(recordKey), recordKeyPath = _recordKey.slice(1); // 将目标值获取出来并设置到 fields 当中\n curValue = get(fields, recordKeyPath);\n set(fields, recordKeyPath, curValue);\n }\n data = isMapEditor ? set({}, namePath, fields, true) : fields; // 获取数据并保存\n _context.next = 11;\n return onSave === null || onSave === void 0 ? void 0 : onSave(recordKey,\n // 如果是 map 模式,fields 就是一个值,所以需要set 到对象中\n // 数据模式 fields 是一个对象,所以不需要\n merge({}, row, data), row, newLineConfig);\n case 11:\n res = _context.sent;\n setLoading(false);\n return _context.abrupt(\"return\", res);\n case 16:\n _context.prev = 16;\n _context.t0 = _context[\"catch\"](0);\n // eslint-disable-next-line no-console\n console.log(_context.t0);\n setLoading(false);\n throw _context.t0;\n case 21:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 16]]);\n })));\n\n // 保存数据\n useImperativeHandle(ref, function () {\n return {\n save: save\n };\n }, [save]);\n return /*#__PURE__*/_jsxs(\"a\", {\n onClick: /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(e) {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n e.stopPropagation();\n e.preventDefault();\n _context2.prev = 2;\n _context2.next = 5;\n return save();\n case 5:\n _context2.next = 9;\n break;\n case 7:\n _context2.prev = 7;\n _context2.t0 = _context2[\"catch\"](2);\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[2, 7]]);\n }));\n return function (_x) {\n return _ref3.apply(this, arguments);\n };\n }(),\n children: [loading ? /*#__PURE__*/_jsx(LoadingOutlined, {\n style: {\n marginInlineEnd: 8\n }\n }) : null, children || '保存']\n }, \"save\");\n}\n/**\n * 删除按钮 dom\n *\n * @param ActionRenderConfig\n */\nexport var DeleteEditableAction = function DeleteEditableAction(_ref4) {\n var recordKey = _ref4.recordKey,\n onDelete = _ref4.onDelete,\n row = _ref4.row,\n children = _ref4.children,\n deletePopconfirmMessage = _ref4.deletePopconfirmMessage;\n var _useMountMergeState3 = useMountMergeState(function () {\n return false;\n }),\n _useMountMergeState4 = _slicedToArray(_useMountMergeState3, 2),\n loading = _useMountMergeState4[0],\n setLoading = _useMountMergeState4[1];\n var _onConfirm = useRefFunction( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var res;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n setLoading(true);\n _context3.next = 4;\n return onDelete === null || onDelete === void 0 ? void 0 : onDelete(recordKey, row);\n case 4:\n res = _context3.sent;\n setLoading(false);\n return _context3.abrupt(\"return\", res);\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n // eslint-disable-next-line no-console\n console.log(_context3.t0);\n setLoading(false);\n return _context3.abrupt(\"return\", null);\n case 14:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\n })));\n return children !== false ? /*#__PURE__*/_jsx(Popconfirm, {\n title: deletePopconfirmMessage,\n onConfirm: function onConfirm() {\n return _onConfirm();\n },\n children: /*#__PURE__*/_jsxs(\"a\", {\n children: [loading ? /*#__PURE__*/_jsx(LoadingOutlined, {\n style: {\n marginInlineEnd: 8\n }\n }) : null, children || '删除']\n })\n }, \"delete\") : null;\n};\nvar CancelEditableAction = function CancelEditableAction(props) {\n var recordKey = props.recordKey,\n tableName = props.tableName,\n newLineConfig = props.newLineConfig,\n editorType = props.editorType,\n onCancel = props.onCancel,\n cancelEditable = props.cancelEditable,\n row = props.row,\n cancelText = props.cancelText;\n var context = useContext(ProFormContext);\n var form = Form.useFormInstance();\n return /*#__PURE__*/_jsx(\"a\", {\n onClick: /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(e) {\n var _context$getFieldForm2;\n var isMapEditor, namePath, fields, record, res;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n e.stopPropagation();\n e.preventDefault();\n isMapEditor = editorType === 'Map';\n namePath = [tableName, recordKey].flat(1).filter(Boolean);\n fields = (context === null || context === void 0 ? void 0 : (_context$getFieldForm2 = context.getFieldFormatValue) === null || _context$getFieldForm2 === void 0 ? void 0 : _context$getFieldForm2.call(context, namePath)) || (form === null || form === void 0 ? void 0 : form.getFieldValue(namePath));\n record = isMapEditor ? set({}, namePath, fields) : fields;\n _context4.next = 8;\n return onCancel === null || onCancel === void 0 ? void 0 : onCancel(recordKey, record, row, newLineConfig);\n case 8:\n res = _context4.sent;\n _context4.next = 11;\n return cancelEditable(recordKey);\n case 11:\n /** 重置为默认值,不然编辑的行会丢掉 */\n form.setFieldsValue(_defineProperty({}, recordKey, isMapEditor ? get(row, namePath) : row));\n return _context4.abrupt(\"return\", res);\n case 13:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function (_x2) {\n return _ref6.apply(this, arguments);\n };\n }(),\n children: cancelText || '取消'\n }, \"cancel\");\n};\nexport function defaultActionRender(row, config) {\n var recordKey = config.recordKey,\n newLineConfig = config.newLineConfig,\n saveText = config.saveText,\n deleteText = config.deleteText;\n var SaveEditableActionRef = /*#__PURE__*/forwardRef(SaveEditableAction);\n var saveRef = /*#__PURE__*/createRef();\n return {\n save: /*#__PURE__*/_jsx(SaveEditableActionRef, _objectSpread(_objectSpread({}, config), {}, {\n row: row,\n ref: saveRef,\n children: saveText\n }), 'save' + recordKey),\n saveRef: saveRef,\n delete: (newLineConfig === null || newLineConfig === void 0 ? void 0 : newLineConfig.options.recordKey) !== recordKey ? /*#__PURE__*/_jsx(DeleteEditableAction, _objectSpread(_objectSpread({}, config), {}, {\n row: row,\n children: deleteText\n }), 'delete' + recordKey) : undefined,\n cancel: /*#__PURE__*/_jsx(CancelEditableAction, _objectSpread(_objectSpread({}, config), {}, {\n row: row\n }), 'cancel' + recordKey)\n };\n}\n\n/**\n * 一个方便的hooks 用于维护编辑的状态\n *\n * @param props\n */\nexport function useEditableArray(props) {\n var _useState = useState(undefined),\n _useState2 = _slicedToArray(_useState, 2),\n newLineRecordCache = _useState2[0],\n setNewLineRecordCache = _useState2[1];\n var resetMapRef = function resetMapRef() {\n var map = new Map();\n //存在children时会覆盖Map的key,导致使用数组索引查找key错误\n var loopGetKey = function loopGetKey(dataSource, parentKey) {\n dataSource === null || dataSource === void 0 ? void 0 : dataSource.forEach(function (record, index) {\n var _recordKeyToString2;\n var key = parentKey === undefined || parentKey === null ? index.toString() : parentKey + '_' + index.toString();\n map.set(key, recordKeyToString(props.getRowKey(record, -1)));\n map.set((_recordKeyToString2 = recordKeyToString(props.getRowKey(record, -1))) === null || _recordKeyToString2 === void 0 ? void 0 : _recordKeyToString2.toString(), key);\n if (props.childrenColumnName && record[props.childrenColumnName]) {\n loopGetKey(record[props.childrenColumnName], key);\n }\n });\n };\n loopGetKey(props.dataSource);\n return map;\n };\n var initDataSourceKeyIndexMap = useMemo(function () {\n return resetMapRef();\n }, []);\n var dataSourceKeyIndexMapRef = useRef(initDataSourceKeyIndexMap);\n var newLineRecordRef = useRef(undefined);\n useDeepCompareEffectDebounce(function () {\n dataSourceKeyIndexMapRef.current = resetMapRef();\n }, [props.dataSource]);\n\n // 这里这么做是为了存上次的状态,不然每次存一下再拿\n newLineRecordRef.current = newLineRecordCache;\n var editableType = props.type || 'single';\n var _useLazyKVMap = useLazyKVMap(props.dataSource, 'children', props.getRowKey),\n _useLazyKVMap2 = _slicedToArray(_useLazyKVMap, 1),\n getRecordByKey = _useLazyKVMap2[0];\n var _useMergedState = useMergedState([], {\n value: props.editableKeys,\n onChange: props.onChange ? function (keys) {\n var _props$onChange, _keys$filter, _keys$map$filter;\n props === null || props === void 0 ? void 0 : (_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, // 计算编辑的key\n (_keys$filter = keys === null || keys === void 0 ? void 0 : keys.filter(function (key) {\n return key !== undefined;\n })) !== null && _keys$filter !== void 0 ? _keys$filter : [], // 计算编辑的行\n (_keys$map$filter = keys === null || keys === void 0 ? void 0 : keys.map(function (key) {\n return getRecordByKey(key);\n }).filter(function (key) {\n return key !== undefined;\n })) !== null && _keys$map$filter !== void 0 ? _keys$map$filter : []);\n } : undefined\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n editableKeys = _useMergedState2[0],\n setEditableRowKeys = _useMergedState2[1];\n\n /** 一个用来标志的set 提供了方便的 api 来去重什么的 */\n var editableKeysSet = useMemo(function () {\n var keys = editableType === 'single' ? editableKeys === null || editableKeys === void 0 ? void 0 : editableKeys.slice(0, 1) : editableKeys;\n return new Set(keys);\n }, [(editableKeys || []).join(','), editableType]);\n var editableKeysRef = usePrevious(editableKeys);\n\n /** 这行是不是编辑状态 */\n var isEditable = useRefFunction(function (row) {\n var _props$getRowKey, _props$getRowKey$toSt, _props$getRowKey2, _props$getRowKey2$toS;\n // 为了兼容一下name 模式的 indexKey,所以需要判断两次,一次是index,一次是没有 index 的\n var recordKeyOrIndex = (_props$getRowKey = props.getRowKey(row, row.index)) === null || _props$getRowKey === void 0 ? void 0 : (_props$getRowKey$toSt = _props$getRowKey.toString) === null || _props$getRowKey$toSt === void 0 ? void 0 : _props$getRowKey$toSt.call(_props$getRowKey);\n // 这里是不设置 index 的地方\n var recordKey = (_props$getRowKey2 = props.getRowKey(row, -1)) === null || _props$getRowKey2 === void 0 ? void 0 : (_props$getRowKey2$toS = _props$getRowKey2.toString) === null || _props$getRowKey2$toS === void 0 ? void 0 : _props$getRowKey2$toS.call(_props$getRowKey2);\n\n // 都转化为了字符串,不然 number 和 string\n var stringEditableKeys = editableKeys === null || editableKeys === void 0 ? void 0 : editableKeys.map(function (key) {\n return key === null || key === void 0 ? void 0 : key.toString();\n });\n var stringEditableKeysRef = (editableKeysRef === null || editableKeysRef === void 0 ? void 0 : editableKeysRef.map(function (key) {\n return key === null || key === void 0 ? void 0 : key.toString();\n })) || [];\n var preIsEditable = props.tableName && !!(stringEditableKeysRef !== null && stringEditableKeysRef !== void 0 && stringEditableKeysRef.includes(recordKey)) || !!(stringEditableKeysRef !== null && stringEditableKeysRef !== void 0 && stringEditableKeysRef.includes(recordKeyOrIndex));\n return {\n recordKey: recordKey,\n isEditable: props.tableName && (stringEditableKeys === null || stringEditableKeys === void 0 ? void 0 : stringEditableKeys.includes(recordKey)) || (stringEditableKeys === null || stringEditableKeys === void 0 ? void 0 : stringEditableKeys.includes(recordKeyOrIndex)),\n preIsEditable: preIsEditable\n };\n });\n\n /**\n * 进入编辑状态\n *\n * @param recordKey\n */\n var startEditable = useRefFunction(function (recordKey) {\n // 如果是单行的话,不允许多行编辑\n if (editableKeysSet.size > 0 && editableType === 'single' && props.onlyOneLineEditorAlertMessage !== false) {\n warning(props.onlyOneLineEditorAlertMessage || '只能同时编辑一行');\n return false;\n }\n editableKeysSet.add(recordKey);\n setEditableRowKeys(Array.from(editableKeysSet));\n return true;\n });\n\n /**\n * 退出编辑状态\n *\n * @param recordKey\n */\n var cancelEditable = useRefFunction( /*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(recordKey, needReTry) {\n var relayKey, key;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n relayKey = recordKeyToString(recordKey).toString();\n key = dataSourceKeyIndexMapRef.current.get(relayKey);\n /** 如果没找到key,转化一下再去找 */\n if (!(!editableKeysSet.has(relayKey) && key && (needReTry !== null && needReTry !== void 0 ? needReTry : true) && props.tableName)) {\n _context5.next = 5;\n break;\n }\n cancelEditable(key, false);\n return _context5.abrupt(\"return\");\n case 5:\n /** 如果这个是 new Line 直接删除 */\n if (newLineRecordCache && newLineRecordCache.options.recordKey === recordKey) {\n setNewLineRecordCache(undefined);\n }\n editableKeysSet.delete(relayKey);\n editableKeysSet.delete(recordKeyToString(recordKey));\n setEditableRowKeys(Array.from(editableKeysSet));\n return _context5.abrupt(\"return\", true);\n case 10:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return function (_x3, _x4) {\n return _ref7.apply(this, arguments);\n };\n }());\n var propsOnValuesChange = useDebounceFn( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var _props$onValuesChange;\n var _len,\n rest,\n _key,\n _args6 = arguments;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n for (_len = _args6.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = _args6[_key];\n }\n //@ts-ignore\n (_props$onValuesChange = props.onValuesChange) === null || _props$onValuesChange === void 0 ? void 0 : _props$onValuesChange.call.apply(_props$onValuesChange, [props].concat(rest));\n case 2:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n })), 64);\n var onValuesChange = useRefFunction(function (value, values) {\n var _Object$keys$pop;\n if (!props.onValuesChange) {\n return;\n }\n var dataSource = props.dataSource;\n\n // 这里是把正在编辑中的所有表单数据都修改掉\n // 不然会用 props 里面的 dataSource,数据只有正在编辑中的\n // Object.keys(get(values, [props.tableName || ''].flat(1)) || values).forEach((recordKey) => {\n editableKeys === null || editableKeys === void 0 ? void 0 : editableKeys.forEach(function (eachRecordKey) {\n if ((newLineRecordCache === null || newLineRecordCache === void 0 ? void 0 : newLineRecordCache.options.recordKey) === eachRecordKey) return;\n var recordKey = eachRecordKey.toString();\n // 如果数据在这个 form 中没有展示,也不显示\n var editRow = get(values, [props.tableName || '', recordKey].flat(1).filter(function (key) {\n return key || key === 0;\n }));\n if (!editRow) return;\n dataSource = editableRowByKey({\n data: dataSource,\n getRowKey: props.getRowKey,\n row: editRow,\n key: recordKey,\n childrenColumnName: props.childrenColumnName || 'children'\n }, 'update');\n });\n var relayValue = value;\n var recordKey = (_Object$keys$pop = Object.keys(relayValue || {}).pop()) === null || _Object$keys$pop === void 0 ? void 0 : _Object$keys$pop.toString();\n\n //从form 和 cache 中取得数据\n var newLineRecordData = _objectSpread(_objectSpread({}, newLineRecordCache === null || newLineRecordCache === void 0 ? void 0 : newLineRecordCache.defaultValue), get(values, [props.tableName || '', recordKey.toString()].flat(1).filter(function (key) {\n return key || key === 0;\n })));\n\n /** 如果已经在 dataSource 中存在了,直接 find */\n var editRow = dataSourceKeyIndexMapRef.current.has(recordKeyToString(recordKey)) ? dataSource.find(function (item, index) {\n var _props$getRowKey3;\n var key = (_props$getRowKey3 = props.getRowKey(item, index)) === null || _props$getRowKey3 === void 0 ? void 0 : _props$getRowKey3.toString();\n return key === recordKey;\n }) : newLineRecordData;\n propsOnValuesChange.run(editRow || newLineRecordData, dataSource);\n });\n var saveRefsMap = useRef(new Map());\n useEffect(function () {\n // 确保只保留编辑状态的,其它的都删除掉\n saveRefsMap.current.forEach(function (ref, key) {\n if (!editableKeysSet.has(key)) {\n saveRefsMap.current.delete(key);\n }\n });\n }, [saveRefsMap, editableKeysSet]);\n /**\n * 保存编辑行\n *\n * @param recordKey\n * @param needReTry\n */\n var saveEditable = useRefFunction( /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(recordKey, needReTry) {\n var relayKey, key, saveRef, _saveRef$current;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n relayKey = recordKeyToString(recordKey);\n key = dataSourceKeyIndexMapRef.current.get(recordKey.toString());\n /** 如果没找到key,转化一下再去找 */\n if (!(!editableKeysSet.has(relayKey) && key && (needReTry !== null && needReTry !== void 0 ? needReTry : true) && props.tableName)) {\n _context7.next = 6;\n break;\n }\n _context7.next = 5;\n return saveEditable(key, false);\n case 5:\n return _context7.abrupt(\"return\", _context7.sent);\n case 6:\n saveRef = saveRefsMap.current.get(relayKey) || saveRefsMap.current.get(relayKey.toString());\n _context7.prev = 7;\n _context7.next = 10;\n return saveRef === null || saveRef === void 0 ? void 0 : (_saveRef$current = saveRef.current) === null || _saveRef$current === void 0 ? void 0 : _saveRef$current.save();\n case 10:\n _context7.next = 15;\n break;\n case 12:\n _context7.prev = 12;\n _context7.t0 = _context7[\"catch\"](7);\n return _context7.abrupt(\"return\", false);\n case 15:\n editableKeysSet.delete(relayKey);\n editableKeysSet.delete(relayKey.toString());\n setEditableRowKeys(Array.from(editableKeysSet));\n return _context7.abrupt(\"return\", true);\n case 19:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[7, 12]]);\n }));\n return function (_x5, _x6) {\n return _ref9.apply(this, arguments);\n };\n }());\n\n /**\n * 同时只能支持一行,取消之后数据消息,不会触发 dataSource\n *\n * @param row\n * @param options\n * @name 增加新的行\n */\n var addEditRecord = useRefFunction(function (row, options) {\n if (options !== null && options !== void 0 && options.parentKey && !dataSourceKeyIndexMapRef.current.has(recordKeyToString(options === null || options === void 0 ? void 0 : options.parentKey).toString())) {\n console.warn(\"can't find record by key\", options === null || options === void 0 ? void 0 : options.parentKey);\n return false;\n }\n // 暂时不支持多行新增\n if (newLineRecordRef.current && props.onlyAddOneLineAlertMessage !== false) {\n warning(props.onlyAddOneLineAlertMessage || '只能新增一行');\n return false;\n }\n // 如果是单行的话,不允许多行编辑\n if (editableKeysSet.size > 0 && editableType === 'single' && props.onlyOneLineEditorAlertMessage !== false) {\n warning(props.onlyOneLineEditorAlertMessage || '只能同时编辑一行');\n return false;\n }\n // 防止多次渲染\n var recordKey = props.getRowKey(row, -1);\n if (!recordKey && recordKey !== 0) {\n noteOnce(!!recordKey, '请设置 recordCreatorProps.record 并返回一个唯一的key \\n https://procomponents.ant.design/components/editable-table#editable-%E6%96%B0%E5%BB%BA%E8%A1%8C');\n throw new Error('请设置 recordCreatorProps.record 并返回一个唯一的key');\n }\n editableKeysSet.add(recordKey);\n setEditableRowKeys(Array.from(editableKeysSet));\n\n // 如果是dataSource 新增模式的话,取消再开始编辑,\n // 这样就可以把新增到 dataSource的数据进入编辑模式了\n // [a,b,cache] => [a,b,c]\n if ((options === null || options === void 0 ? void 0 : options.newRecordType) === 'dataSource' || props.tableName) {\n var _recordKeyToString3;\n var actionProps = {\n data: props.dataSource,\n getRowKey: props.getRowKey,\n row: _objectSpread(_objectSpread({}, row), {}, {\n map_row_parentKey: options !== null && options !== void 0 && options.parentKey ? (_recordKeyToString3 = recordKeyToString(options === null || options === void 0 ? void 0 : options.parentKey)) === null || _recordKeyToString3 === void 0 ? void 0 : _recordKeyToString3.toString() : undefined\n }),\n key: recordKey,\n childrenColumnName: props.childrenColumnName || 'children'\n };\n props.setDataSource(editableRowByKey(actionProps, (options === null || options === void 0 ? void 0 : options.position) === 'top' ? 'top' : 'update'));\n } else {\n setNewLineRecordCache({\n defaultValue: row,\n options: _objectSpread(_objectSpread({}, options), {}, {\n recordKey: recordKey\n })\n });\n }\n return true;\n });\n\n // Internationalization\n var intl = useIntl();\n var saveText = (props === null || props === void 0 ? void 0 : props.saveText) || intl.getMessage('editableTable.action.save', '保存');\n var deleteText = (props === null || props === void 0 ? void 0 : props.deleteText) || intl.getMessage('editableTable.action.delete', '删除');\n var cancelText = (props === null || props === void 0 ? void 0 : props.cancelText) || intl.getMessage('editableTable.action.cancel', '取消');\n var actionSaveRef = useRefFunction( /*#__PURE__*/function () {\n var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(recordKey, editRow, originRow, newLine) {\n var _props$onSave, _recordKeyToString4, _options$parentKey;\n var res, _ref11, options, actionProps;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return props === null || props === void 0 ? void 0 : (_props$onSave = props.onSave) === null || _props$onSave === void 0 ? void 0 : _props$onSave.call(props, recordKey, editRow, originRow, newLine);\n case 2:\n res = _context8.sent;\n _context8.next = 5;\n return cancelEditable(recordKey);\n case 5:\n _ref11 = newLine || newLineRecordRef.current || {}, options = _ref11.options;\n if (!(!(options !== null && options !== void 0 && options.parentKey) && (options === null || options === void 0 ? void 0 : options.recordKey) === recordKey)) {\n _context8.next = 9;\n break;\n }\n if ((options === null || options === void 0 ? void 0 : options.position) === 'top') {\n props.setDataSource([editRow].concat(_toConsumableArray(props.dataSource)));\n } else {\n props.setDataSource([].concat(_toConsumableArray(props.dataSource), [editRow]));\n }\n return _context8.abrupt(\"return\", res);\n case 9:\n actionProps = {\n data: props.dataSource,\n getRowKey: props.getRowKey,\n row: options ? _objectSpread(_objectSpread({}, editRow), {}, {\n map_row_parentKey: (_recordKeyToString4 = recordKeyToString((_options$parentKey = options === null || options === void 0 ? void 0 : options.parentKey) !== null && _options$parentKey !== void 0 ? _options$parentKey : '')) === null || _recordKeyToString4 === void 0 ? void 0 : _recordKeyToString4.toString()\n }) : editRow,\n key: recordKey,\n childrenColumnName: props.childrenColumnName || 'children'\n };\n props.setDataSource(editableRowByKey(actionProps, (options === null || options === void 0 ? void 0 : options.position) === 'top' ? 'top' : 'update'));\n _context8.next = 13;\n return cancelEditable(recordKey);\n case 13:\n return _context8.abrupt(\"return\", res);\n case 14:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n return function (_x7, _x8, _x9, _x10) {\n return _ref10.apply(this, arguments);\n };\n }());\n var actionDeleteRef = useRefFunction( /*#__PURE__*/function () {\n var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(recordKey, editRow) {\n var _props$onDelete;\n var actionProps, res;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n actionProps = {\n data: props.dataSource,\n getRowKey: props.getRowKey,\n row: editRow,\n key: recordKey,\n childrenColumnName: props.childrenColumnName || 'children'\n };\n _context9.next = 3;\n return props === null || props === void 0 ? void 0 : (_props$onDelete = props.onDelete) === null || _props$onDelete === void 0 ? void 0 : _props$onDelete.call(props, recordKey, editRow);\n case 3:\n res = _context9.sent;\n _context9.next = 6;\n return cancelEditable(recordKey, false);\n case 6:\n props.setDataSource(editableRowByKey(actionProps, 'delete'));\n return _context9.abrupt(\"return\", res);\n case 8:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n return function (_x11, _x12) {\n return _ref12.apply(this, arguments);\n };\n }());\n var actionCancelRef = useRefFunction( /*#__PURE__*/function () {\n var _ref13 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(recordKey, editRow, originRow, newLine) {\n var _props$onCancel;\n var res;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return props === null || props === void 0 ? void 0 : (_props$onCancel = props.onCancel) === null || _props$onCancel === void 0 ? void 0 : _props$onCancel.call(props, recordKey, editRow, originRow, newLine);\n case 2:\n res = _context10.sent;\n return _context10.abrupt(\"return\", res);\n case 4:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n return function (_x13, _x14, _x15, _x16) {\n return _ref13.apply(this, arguments);\n };\n }());\n var actionRender = function actionRender(row) {\n var key = props.getRowKey(row, row.index);\n var config = {\n saveText: saveText,\n cancelText: cancelText,\n deleteText: deleteText,\n addEditRecord: addEditRecord,\n recordKey: key,\n cancelEditable: cancelEditable,\n index: row.index,\n tableName: props.tableName,\n newLineConfig: newLineRecordCache,\n onCancel: actionCancelRef,\n onDelete: actionDeleteRef,\n onSave: actionSaveRef,\n editableKeys: editableKeys,\n setEditableRowKeys: setEditableRowKeys,\n deletePopconfirmMessage: props.deletePopconfirmMessage || \"\".concat(intl.getMessage('deleteThisLine', '删除此项'), \"?\")\n };\n var renderResult = defaultActionRender(row, config);\n // 缓存一下saveRef\n if (props.tableName) {\n saveRefsMap.current.set(dataSourceKeyIndexMapRef.current.get(recordKeyToString(key)) || recordKeyToString(key), renderResult.saveRef);\n } else {\n saveRefsMap.current.set(recordKeyToString(key), renderResult.saveRef);\n }\n if (props.actionRender) return props.actionRender(row, config, {\n save: renderResult.save,\n delete: renderResult.delete,\n cancel: renderResult.cancel\n });\n return [renderResult.save, renderResult.delete, renderResult.cancel];\n };\n return {\n editableKeys: editableKeys,\n setEditableRowKeys: setEditableRowKeys,\n isEditable: isEditable,\n actionRender: actionRender,\n startEditable: startEditable,\n cancelEditable: cancelEditable,\n addEditRecord: addEditRecord,\n saveEditable: saveEditable,\n newLineRecord: newLineRecordCache,\n preEditableKeys: editableKeysRef,\n onValuesChange: onValuesChange\n };\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"422.622bc3b6.async.js","mappings":";AAsDA;ACgnBA","sources":["webpack://app/../../node_modules/.pnpm/@ant-design+pro-card@2.5.14_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-card/es/components/Actions/style.js","webpack://app/../../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/useEditableArray/index.js"],"sourcesContent":["import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle as useAntdStyle } from '@ant-design/pro-provider';\nvar genActionsStyle = function genActionsStyle(token) {\n var _div, _$concat;\n var componentCls = token.componentCls,\n antCls = token.antCls;\n return _defineProperty({}, \"\".concat(componentCls, \"-actions\"), (_$concat = {\n marginBlock: 0,\n marginInline: 0,\n paddingBlock: 0,\n paddingInline: 0,\n listStyle: 'none',\n display: 'flex',\n gap: token.marginXS,\n background: token.colorBgContainer,\n borderBlockStart: \"\".concat(token.lineWidth, \"px \").concat(token.lineType, \" \").concat(token.colorSplit),\n minHeight: 42\n }, _defineProperty(_$concat, \"& > *\", {\n alignItems: 'center',\n justifyContent: 'center',\n flex: 1,\n display: 'flex',\n cursor: 'pointer',\n color: token.colorTextSecondary,\n transition: 'color 0.3s',\n '&:hover': {\n color: token.colorPrimaryHover\n }\n }), _defineProperty(_$concat, \"& > li > div\", {\n flex: 1,\n width: '100%',\n marginBlock: token.marginSM,\n marginInline: 0,\n color: token.colorTextSecondary,\n textAlign: 'center',\n a: {\n color: token.colorTextSecondary,\n transition: 'color 0.3s',\n '&:hover': {\n color: token.colorPrimaryHover\n }\n },\n div: (_div = {\n position: 'relative',\n display: 'block',\n minWidth: 32,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n cursor: 'pointer',\n '&:hover': {\n color: token.colorPrimaryHover,\n transition: 'color 0.3s'\n }\n }, _defineProperty(_div, \"a:not(\".concat(antCls, \"-btn),\\n > .anticon\"), {\n display: 'inline-block',\n width: '100%',\n color: token.colorTextSecondary,\n lineHeight: '22px',\n transition: 'color 0.3s',\n '&:hover': {\n color: token.colorPrimaryHover\n }\n }), _defineProperty(_div, '.anticon', {\n fontSize: token.cardActionIconSize,\n lineHeight: '22px'\n }), _div),\n '&:not(:last-child)': {\n borderInlineEnd: \"\".concat(token.lineWidth, \"px \").concat(token.lineType, \" \").concat(token.colorSplit)\n }\n }), _$concat));\n};\nexport default function useStyle(prefixCls) {\n return useAntdStyle('ProCardActions', function (token) {\n var proCardActionsToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls),\n cardActionIconSize: 16\n });\n return [genActionsStyle(proCardActionsToken)];\n });\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"map_row_parentKey\"],\n _excluded2 = [\"map_row_parentKey\", \"map_row_key\"],\n _excluded3 = [\"map_row_key\"];\n/* eslint-disable react-hooks/exhaustive-deps */\nimport { LoadingOutlined } from '@ant-design/icons';\nimport { useIntl } from '@ant-design/pro-provider';\nimport { Form, message, Popconfirm } from 'antd';\nimport useLazyKVMap from \"antd/es/table/hooks/useLazyKVMap\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport get from \"rc-util/es/utils/get\";\nimport set from \"rc-util/es/utils/set\";\nimport { noteOnce } from \"rc-util/es/warning\";\nimport React, { createRef, forwardRef, useContext, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { useDebounceFn, useRefFunction } from '..';\nimport { ProFormContext } from \"../components/ProFormContext\";\nimport { useDeepCompareEffectDebounce } from \"../hooks/useDeepCompareEffect\";\nimport { usePrevious } from \"../hooks/usePrevious\";\nimport { merge } from \"../merge\";\nimport { useMountMergeState } from \"../useMountMergeState\";\n\n/**\n * 兼容antd@4 和 antd@5 的warning\n * @param messageStr\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar warning = function warning(messageStr) {\n // @ts-ignore\n return (message.warn || message.warning)(messageStr);\n};\nexport var recordKeyToString = function recordKeyToString(rowKey) {\n if (Array.isArray(rowKey)) return rowKey.join(',');\n return rowKey;\n};\n/**\n * 使用map 来删除数据,性能一般 但是准确率比较高\n *\n * @param keyProps\n * @param action\n */\nexport function editableRowByKey(keyProps, action) {\n var _recordKeyToString;\n var getRowKey = keyProps.getRowKey,\n row = keyProps.row,\n data = keyProps.data,\n _keyProps$childrenCol = keyProps.childrenColumnName,\n childrenColumnName = _keyProps$childrenCol === void 0 ? 'children' : _keyProps$childrenCol;\n var key = (_recordKeyToString = recordKeyToString(keyProps.key)) === null || _recordKeyToString === void 0 ? void 0 : _recordKeyToString.toString();\n var kvMap = new Map();\n\n /**\n * 打平这个数组\n *\n * @param records\n * @param parentKey\n */\n function dig(records, map_row_parentKey, map_row_index) {\n records.forEach(function (record, index) {\n var eachIndex = (map_row_index || 0) * 10 + index;\n var recordKey = getRowKey(record, eachIndex).toString();\n // children 取在前面方便拼的时候按照反顺序放回去\n if (record && _typeof(record) === 'object' && childrenColumnName in record) {\n dig(record[childrenColumnName] || [], recordKey, eachIndex);\n }\n var newRecord = _objectSpread(_objectSpread({}, record), {}, {\n map_row_key: recordKey,\n children: undefined,\n map_row_parentKey: map_row_parentKey\n });\n delete newRecord.children;\n if (!map_row_parentKey) {\n delete newRecord.map_row_parentKey;\n }\n kvMap.set(recordKey, newRecord);\n });\n }\n if (action === 'top') {\n kvMap.set(key, _objectSpread(_objectSpread({}, kvMap.get(key)), row));\n }\n dig(data);\n if (action === 'update') {\n kvMap.set(key, _objectSpread(_objectSpread({}, kvMap.get(key)), row));\n }\n if (action === 'delete') {\n kvMap.delete(key);\n }\n var fill = function fill(map) {\n var kvArrayMap = new Map();\n var kvSource = [];\n var fillNewRecord = function fillNewRecord() {\n var fillChildren = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n map.forEach(function (value) {\n if (value.map_row_parentKey && !value.map_row_key) {\n var map_row_parentKey = value.map_row_parentKey,\n rest = _objectWithoutProperties(value, _excluded);\n if (!kvArrayMap.has(map_row_parentKey)) {\n kvArrayMap.set(map_row_parentKey, []);\n }\n if (fillChildren) {\n var _kvArrayMap$get;\n (_kvArrayMap$get = kvArrayMap.get(map_row_parentKey)) === null || _kvArrayMap$get === void 0 ? void 0 : _kvArrayMap$get.push(rest);\n }\n }\n });\n };\n fillNewRecord(action === 'top');\n map.forEach(function (value) {\n if (value.map_row_parentKey && value.map_row_key) {\n var _kvArrayMap$get2;\n var map_row_parentKey = value.map_row_parentKey,\n map_row_key = value.map_row_key,\n rest = _objectWithoutProperties(value, _excluded2);\n if (kvArrayMap.has(map_row_key)) {\n rest[childrenColumnName] = kvArrayMap.get(map_row_key);\n }\n if (!kvArrayMap.has(map_row_parentKey)) {\n kvArrayMap.set(map_row_parentKey, []);\n }\n (_kvArrayMap$get2 = kvArrayMap.get(map_row_parentKey)) === null || _kvArrayMap$get2 === void 0 ? void 0 : _kvArrayMap$get2.push(rest);\n }\n });\n fillNewRecord(action === 'update');\n map.forEach(function (value) {\n if (!value.map_row_parentKey) {\n var map_row_key = value.map_row_key,\n rest = _objectWithoutProperties(value, _excluded3);\n if (map_row_key && kvArrayMap.has(map_row_key)) {\n var item = _objectSpread(_objectSpread({}, rest), {}, _defineProperty({}, childrenColumnName, kvArrayMap.get(map_row_key)));\n kvSource.push(item);\n return;\n }\n kvSource.push(rest);\n }\n });\n return kvSource;\n };\n return fill(kvMap);\n}\n\n/**\n * 保存按钮的dom\n *\n * @param ActionRenderConfig\n */\nexport function SaveEditableAction(_ref, ref) {\n var recordKey = _ref.recordKey,\n onSave = _ref.onSave,\n row = _ref.row,\n children = _ref.children,\n newLineConfig = _ref.newLineConfig,\n editorType = _ref.editorType,\n tableName = _ref.tableName;\n var context = useContext(ProFormContext);\n var form = Form.useFormInstance();\n var _useMountMergeState = useMountMergeState(false),\n _useMountMergeState2 = _slicedToArray(_useMountMergeState, 2),\n loading = _useMountMergeState2[0],\n setLoading = _useMountMergeState2[1];\n var save = useRefFunction( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _context$getFieldForm, isMapEditor, namePath, fields, _recordKey, recordKeyPath, curValue, data, res;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n isMapEditor = editorType === 'Map'; // 为了兼容类型为 array 的 dataIndex,当 recordKey 是一个数组时,用于获取表单值的 key 只取第一项,\n // 从表单中获取回来之后,再根据 namepath 获取具体的某个字段并设置\n namePath = [tableName, Array.isArray(recordKey) ? recordKey[0] : recordKey].map(function (key) {\n return key === null || key === void 0 ? void 0 : key.toString();\n }).flat(1).filter(Boolean);\n setLoading(true);\n _context.next = 6;\n return form.validateFields(namePath, {\n // @ts-expect-error\n recursive: true\n });\n case 6:\n fields = (context === null || context === void 0 ? void 0 : (_context$getFieldForm = context.getFieldFormatValue) === null || _context$getFieldForm === void 0 ? void 0 : _context$getFieldForm.call(context, namePath)) || form.getFieldValue(namePath); // 处理 dataIndex 为数组的情况\n if (Array.isArray(recordKey) && recordKey.length > 1) {\n // 获取 namepath\n _recordKey = _toArray(recordKey), recordKeyPath = _recordKey.slice(1); // 将目标值获取出来并设置到 fields 当中\n curValue = get(fields, recordKeyPath);\n set(fields, recordKeyPath, curValue);\n }\n data = isMapEditor ? set({}, namePath, fields, true) : fields; // 获取数据并保存\n _context.next = 11;\n return onSave === null || onSave === void 0 ? void 0 : onSave(recordKey,\n // 如果是 map 模式,fields 就是一个值,所以需要set 到对象中\n // 数据模式 fields 是一个对象,所以不需要\n merge({}, row, data), row, newLineConfig);\n case 11:\n res = _context.sent;\n setLoading(false);\n return _context.abrupt(\"return\", res);\n case 16:\n _context.prev = 16;\n _context.t0 = _context[\"catch\"](0);\n // eslint-disable-next-line no-console\n console.log(_context.t0);\n setLoading(false);\n throw _context.t0;\n case 21:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 16]]);\n })));\n\n // 保存数据\n useImperativeHandle(ref, function () {\n return {\n save: save\n };\n }, [save]);\n return /*#__PURE__*/_jsxs(\"a\", {\n onClick: /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(e) {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n e.stopPropagation();\n e.preventDefault();\n _context2.prev = 2;\n _context2.next = 5;\n return save();\n case 5:\n _context2.next = 9;\n break;\n case 7:\n _context2.prev = 7;\n _context2.t0 = _context2[\"catch\"](2);\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[2, 7]]);\n }));\n return function (_x) {\n return _ref3.apply(this, arguments);\n };\n }(),\n children: [loading ? /*#__PURE__*/_jsx(LoadingOutlined, {\n style: {\n marginInlineEnd: 8\n }\n }) : null, children || '保存']\n }, \"save\");\n}\n/**\n * 删除按钮 dom\n *\n * @param ActionRenderConfig\n */\nexport var DeleteEditableAction = function DeleteEditableAction(_ref4) {\n var recordKey = _ref4.recordKey,\n onDelete = _ref4.onDelete,\n row = _ref4.row,\n children = _ref4.children,\n deletePopconfirmMessage = _ref4.deletePopconfirmMessage;\n var _useMountMergeState3 = useMountMergeState(function () {\n return false;\n }),\n _useMountMergeState4 = _slicedToArray(_useMountMergeState3, 2),\n loading = _useMountMergeState4[0],\n setLoading = _useMountMergeState4[1];\n var _onConfirm = useRefFunction( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var res;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n setLoading(true);\n _context3.next = 4;\n return onDelete === null || onDelete === void 0 ? void 0 : onDelete(recordKey, row);\n case 4:\n res = _context3.sent;\n setLoading(false);\n return _context3.abrupt(\"return\", res);\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n // eslint-disable-next-line no-console\n console.log(_context3.t0);\n setLoading(false);\n return _context3.abrupt(\"return\", null);\n case 14:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\n })));\n return children !== false ? /*#__PURE__*/_jsx(Popconfirm, {\n title: deletePopconfirmMessage,\n onConfirm: function onConfirm() {\n return _onConfirm();\n },\n children: /*#__PURE__*/_jsxs(\"a\", {\n children: [loading ? /*#__PURE__*/_jsx(LoadingOutlined, {\n style: {\n marginInlineEnd: 8\n }\n }) : null, children || '删除']\n })\n }, \"delete\") : null;\n};\nvar CancelEditableAction = function CancelEditableAction(props) {\n var recordKey = props.recordKey,\n tableName = props.tableName,\n newLineConfig = props.newLineConfig,\n editorType = props.editorType,\n onCancel = props.onCancel,\n cancelEditable = props.cancelEditable,\n row = props.row,\n cancelText = props.cancelText;\n var context = useContext(ProFormContext);\n var form = Form.useFormInstance();\n return /*#__PURE__*/_jsx(\"a\", {\n onClick: /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(e) {\n var _context$getFieldForm2;\n var isMapEditor, namePath, fields, record, res;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n e.stopPropagation();\n e.preventDefault();\n isMapEditor = editorType === 'Map';\n namePath = [tableName, recordKey].flat(1).filter(Boolean);\n fields = (context === null || context === void 0 ? void 0 : (_context$getFieldForm2 = context.getFieldFormatValue) === null || _context$getFieldForm2 === void 0 ? void 0 : _context$getFieldForm2.call(context, namePath)) || (form === null || form === void 0 ? void 0 : form.getFieldValue(namePath));\n record = isMapEditor ? set({}, namePath, fields) : fields;\n _context4.next = 8;\n return onCancel === null || onCancel === void 0 ? void 0 : onCancel(recordKey, record, row, newLineConfig);\n case 8:\n res = _context4.sent;\n _context4.next = 11;\n return cancelEditable(recordKey);\n case 11:\n /** 重置为默认值,不然编辑的行会丢掉 */\n form.setFieldsValue(_defineProperty({}, recordKey, isMapEditor ? get(row, namePath) : row));\n return _context4.abrupt(\"return\", res);\n case 13:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function (_x2) {\n return _ref6.apply(this, arguments);\n };\n }(),\n children: cancelText || '取消'\n }, \"cancel\");\n};\nexport function defaultActionRender(row, config) {\n var recordKey = config.recordKey,\n newLineConfig = config.newLineConfig,\n saveText = config.saveText,\n deleteText = config.deleteText;\n var SaveEditableActionRef = /*#__PURE__*/forwardRef(SaveEditableAction);\n var saveRef = /*#__PURE__*/createRef();\n return {\n save: /*#__PURE__*/_jsx(SaveEditableActionRef, _objectSpread(_objectSpread({}, config), {}, {\n row: row,\n ref: saveRef,\n children: saveText\n }), 'save' + recordKey),\n saveRef: saveRef,\n delete: (newLineConfig === null || newLineConfig === void 0 ? void 0 : newLineConfig.options.recordKey) !== recordKey ? /*#__PURE__*/_jsx(DeleteEditableAction, _objectSpread(_objectSpread({}, config), {}, {\n row: row,\n children: deleteText\n }), 'delete' + recordKey) : undefined,\n cancel: /*#__PURE__*/_jsx(CancelEditableAction, _objectSpread(_objectSpread({}, config), {}, {\n row: row\n }), 'cancel' + recordKey)\n };\n}\n\n/**\n * 一个方便的hooks 用于维护编辑的状态\n *\n * @param props\n */\nexport function useEditableArray(props) {\n var _useState = useState(undefined),\n _useState2 = _slicedToArray(_useState, 2),\n newLineRecordCache = _useState2[0],\n setNewLineRecordCache = _useState2[1];\n var resetMapRef = function resetMapRef() {\n var map = new Map();\n //存在children时会覆盖Map的key,导致使用数组索引查找key错误\n var loopGetKey = function loopGetKey(dataSource, parentKey) {\n dataSource === null || dataSource === void 0 ? void 0 : dataSource.forEach(function (record, index) {\n var _recordKeyToString2;\n var key = parentKey === undefined || parentKey === null ? index.toString() : parentKey + '_' + index.toString();\n map.set(key, recordKeyToString(props.getRowKey(record, -1)));\n map.set((_recordKeyToString2 = recordKeyToString(props.getRowKey(record, -1))) === null || _recordKeyToString2 === void 0 ? void 0 : _recordKeyToString2.toString(), key);\n if (props.childrenColumnName && record[props.childrenColumnName]) {\n loopGetKey(record[props.childrenColumnName], key);\n }\n });\n };\n loopGetKey(props.dataSource);\n return map;\n };\n var initDataSourceKeyIndexMap = useMemo(function () {\n return resetMapRef();\n }, []);\n var dataSourceKeyIndexMapRef = useRef(initDataSourceKeyIndexMap);\n var newLineRecordRef = useRef(undefined);\n useDeepCompareEffectDebounce(function () {\n dataSourceKeyIndexMapRef.current = resetMapRef();\n }, [props.dataSource]);\n\n // 这里这么做是为了存上次的状态,不然每次存一下再拿\n newLineRecordRef.current = newLineRecordCache;\n var editableType = props.type || 'single';\n var _useLazyKVMap = useLazyKVMap(props.dataSource, 'children', props.getRowKey),\n _useLazyKVMap2 = _slicedToArray(_useLazyKVMap, 1),\n getRecordByKey = _useLazyKVMap2[0];\n var _useMergedState = useMergedState([], {\n value: props.editableKeys,\n onChange: props.onChange ? function (keys) {\n var _props$onChange, _keys$filter, _keys$map$filter;\n props === null || props === void 0 ? void 0 : (_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, // 计算编辑的key\n (_keys$filter = keys === null || keys === void 0 ? void 0 : keys.filter(function (key) {\n return key !== undefined;\n })) !== null && _keys$filter !== void 0 ? _keys$filter : [], // 计算编辑的行\n (_keys$map$filter = keys === null || keys === void 0 ? void 0 : keys.map(function (key) {\n return getRecordByKey(key);\n }).filter(function (key) {\n return key !== undefined;\n })) !== null && _keys$map$filter !== void 0 ? _keys$map$filter : []);\n } : undefined\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n editableKeys = _useMergedState2[0],\n setEditableRowKeys = _useMergedState2[1];\n\n /** 一个用来标志的set 提供了方便的 api 来去重什么的 */\n var editableKeysSet = useMemo(function () {\n var keys = editableType === 'single' ? editableKeys === null || editableKeys === void 0 ? void 0 : editableKeys.slice(0, 1) : editableKeys;\n return new Set(keys);\n }, [(editableKeys || []).join(','), editableType]);\n var editableKeysRef = usePrevious(editableKeys);\n\n /** 这行是不是编辑状态 */\n var isEditable = useRefFunction(function (row) {\n var _props$getRowKey, _props$getRowKey$toSt, _props$getRowKey2, _props$getRowKey2$toS;\n // 为了兼容一下name 模式的 indexKey,所以需要判断两次,一次是index,一次是没有 index 的\n var recordKeyOrIndex = (_props$getRowKey = props.getRowKey(row, row.index)) === null || _props$getRowKey === void 0 ? void 0 : (_props$getRowKey$toSt = _props$getRowKey.toString) === null || _props$getRowKey$toSt === void 0 ? void 0 : _props$getRowKey$toSt.call(_props$getRowKey);\n // 这里是不设置 index 的地方\n var recordKey = (_props$getRowKey2 = props.getRowKey(row, -1)) === null || _props$getRowKey2 === void 0 ? void 0 : (_props$getRowKey2$toS = _props$getRowKey2.toString) === null || _props$getRowKey2$toS === void 0 ? void 0 : _props$getRowKey2$toS.call(_props$getRowKey2);\n\n // 都转化为了字符串,不然 number 和 string\n var stringEditableKeys = editableKeys === null || editableKeys === void 0 ? void 0 : editableKeys.map(function (key) {\n return key === null || key === void 0 ? void 0 : key.toString();\n });\n var stringEditableKeysRef = (editableKeysRef === null || editableKeysRef === void 0 ? void 0 : editableKeysRef.map(function (key) {\n return key === null || key === void 0 ? void 0 : key.toString();\n })) || [];\n var preIsEditable = props.tableName && !!(stringEditableKeysRef !== null && stringEditableKeysRef !== void 0 && stringEditableKeysRef.includes(recordKey)) || !!(stringEditableKeysRef !== null && stringEditableKeysRef !== void 0 && stringEditableKeysRef.includes(recordKeyOrIndex));\n return {\n recordKey: recordKey,\n isEditable: props.tableName && (stringEditableKeys === null || stringEditableKeys === void 0 ? void 0 : stringEditableKeys.includes(recordKey)) || (stringEditableKeys === null || stringEditableKeys === void 0 ? void 0 : stringEditableKeys.includes(recordKeyOrIndex)),\n preIsEditable: preIsEditable\n };\n });\n\n /**\n * 进入编辑状态\n *\n * @param recordKey\n */\n var startEditable = useRefFunction(function (recordKey) {\n // 如果是单行的话,不允许多行编辑\n if (editableKeysSet.size > 0 && editableType === 'single' && props.onlyOneLineEditorAlertMessage !== false) {\n warning(props.onlyOneLineEditorAlertMessage || '只能同时编辑一行');\n return false;\n }\n editableKeysSet.add(recordKey);\n setEditableRowKeys(Array.from(editableKeysSet));\n return true;\n });\n\n /**\n * 退出编辑状态\n *\n * @param recordKey\n */\n var cancelEditable = useRefFunction( /*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(recordKey, needReTry) {\n var relayKey, key;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n relayKey = recordKeyToString(recordKey).toString();\n key = dataSourceKeyIndexMapRef.current.get(relayKey);\n /** 如果没找到key,转化一下再去找 */\n if (!(!editableKeysSet.has(relayKey) && key && (needReTry !== null && needReTry !== void 0 ? needReTry : true) && props.tableName)) {\n _context5.next = 5;\n break;\n }\n cancelEditable(key, false);\n return _context5.abrupt(\"return\");\n case 5:\n /** 如果这个是 new Line 直接删除 */\n if (newLineRecordCache && newLineRecordCache.options.recordKey === recordKey) {\n setNewLineRecordCache(undefined);\n }\n editableKeysSet.delete(relayKey);\n editableKeysSet.delete(recordKeyToString(recordKey));\n setEditableRowKeys(Array.from(editableKeysSet));\n return _context5.abrupt(\"return\", true);\n case 10:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return function (_x3, _x4) {\n return _ref7.apply(this, arguments);\n };\n }());\n var propsOnValuesChange = useDebounceFn( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var _props$onValuesChange;\n var _len,\n rest,\n _key,\n _args6 = arguments;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n for (_len = _args6.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = _args6[_key];\n }\n //@ts-ignore\n (_props$onValuesChange = props.onValuesChange) === null || _props$onValuesChange === void 0 ? void 0 : _props$onValuesChange.call.apply(_props$onValuesChange, [props].concat(rest));\n case 2:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n })), 64);\n var onValuesChange = useRefFunction(function (value, values) {\n var _Object$keys$pop;\n if (!props.onValuesChange) {\n return;\n }\n var dataSource = props.dataSource;\n\n // 这里是把正在编辑中的所有表单数据都修改掉\n // 不然会用 props 里面的 dataSource,数据只有正在编辑中的\n // Object.keys(get(values, [props.tableName || ''].flat(1)) || values).forEach((recordKey) => {\n editableKeys === null || editableKeys === void 0 ? void 0 : editableKeys.forEach(function (eachRecordKey) {\n if ((newLineRecordCache === null || newLineRecordCache === void 0 ? void 0 : newLineRecordCache.options.recordKey) === eachRecordKey) return;\n var recordKey = eachRecordKey.toString();\n // 如果数据在这个 form 中没有展示,也不显示\n var editRow = get(values, [props.tableName || '', recordKey].flat(1).filter(function (key) {\n return key || key === 0;\n }));\n if (!editRow) return;\n dataSource = editableRowByKey({\n data: dataSource,\n getRowKey: props.getRowKey,\n row: editRow,\n key: recordKey,\n childrenColumnName: props.childrenColumnName || 'children'\n }, 'update');\n });\n var relayValue = value;\n var recordKey = (_Object$keys$pop = Object.keys(relayValue || {}).pop()) === null || _Object$keys$pop === void 0 ? void 0 : _Object$keys$pop.toString();\n\n //从form 和 cache 中取得数据\n var newLineRecordData = _objectSpread(_objectSpread({}, newLineRecordCache === null || newLineRecordCache === void 0 ? void 0 : newLineRecordCache.defaultValue), get(values, [props.tableName || '', recordKey.toString()].flat(1).filter(function (key) {\n return key || key === 0;\n })));\n\n /** 如果已经在 dataSource 中存在了,直接 find */\n var editRow = dataSourceKeyIndexMapRef.current.has(recordKeyToString(recordKey)) ? dataSource.find(function (item, index) {\n var _props$getRowKey3;\n var key = (_props$getRowKey3 = props.getRowKey(item, index)) === null || _props$getRowKey3 === void 0 ? void 0 : _props$getRowKey3.toString();\n return key === recordKey;\n }) : newLineRecordData;\n propsOnValuesChange.run(editRow || newLineRecordData, dataSource);\n });\n var saveRefsMap = useRef(new Map());\n useEffect(function () {\n // 确保只保留编辑状态的,其它的都删除掉\n saveRefsMap.current.forEach(function (ref, key) {\n if (!editableKeysSet.has(key)) {\n saveRefsMap.current.delete(key);\n }\n });\n }, [saveRefsMap, editableKeysSet]);\n /**\n * 保存编辑行\n *\n * @param recordKey\n * @param needReTry\n */\n var saveEditable = useRefFunction( /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(recordKey, needReTry) {\n var relayKey, key, saveRef, _saveRef$current;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n relayKey = recordKeyToString(recordKey);\n key = dataSourceKeyIndexMapRef.current.get(recordKey.toString());\n /** 如果没找到key,转化一下再去找 */\n if (!(!editableKeysSet.has(relayKey) && key && (needReTry !== null && needReTry !== void 0 ? needReTry : true) && props.tableName)) {\n _context7.next = 6;\n break;\n }\n _context7.next = 5;\n return saveEditable(key, false);\n case 5:\n return _context7.abrupt(\"return\", _context7.sent);\n case 6:\n saveRef = saveRefsMap.current.get(relayKey) || saveRefsMap.current.get(relayKey.toString());\n _context7.prev = 7;\n _context7.next = 10;\n return saveRef === null || saveRef === void 0 ? void 0 : (_saveRef$current = saveRef.current) === null || _saveRef$current === void 0 ? void 0 : _saveRef$current.save();\n case 10:\n _context7.next = 15;\n break;\n case 12:\n _context7.prev = 12;\n _context7.t0 = _context7[\"catch\"](7);\n return _context7.abrupt(\"return\", false);\n case 15:\n editableKeysSet.delete(relayKey);\n editableKeysSet.delete(relayKey.toString());\n setEditableRowKeys(Array.from(editableKeysSet));\n return _context7.abrupt(\"return\", true);\n case 19:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[7, 12]]);\n }));\n return function (_x5, _x6) {\n return _ref9.apply(this, arguments);\n };\n }());\n\n /**\n * 同时只能支持一行,取消之后数据消息,不会触发 dataSource\n *\n * @param row\n * @param options\n * @name 增加新的行\n */\n var addEditRecord = useRefFunction(function (row, options) {\n if (options !== null && options !== void 0 && options.parentKey && !dataSourceKeyIndexMapRef.current.has(recordKeyToString(options === null || options === void 0 ? void 0 : options.parentKey).toString())) {\n console.warn(\"can't find record by key\", options === null || options === void 0 ? void 0 : options.parentKey);\n return false;\n }\n // 暂时不支持多行新增\n if (newLineRecordRef.current && props.onlyAddOneLineAlertMessage !== false) {\n warning(props.onlyAddOneLineAlertMessage || '只能新增一行');\n return false;\n }\n // 如果是单行的话,不允许多行编辑\n if (editableKeysSet.size > 0 && editableType === 'single' && props.onlyOneLineEditorAlertMessage !== false) {\n warning(props.onlyOneLineEditorAlertMessage || '只能同时编辑一行');\n return false;\n }\n // 防止多次渲染\n var recordKey = props.getRowKey(row, -1);\n if (!recordKey && recordKey !== 0) {\n noteOnce(!!recordKey, '请设置 recordCreatorProps.record 并返回一个唯一的key \\n https://procomponents.ant.design/components/editable-table#editable-%E6%96%B0%E5%BB%BA%E8%A1%8C');\n throw new Error('请设置 recordCreatorProps.record 并返回一个唯一的key');\n }\n editableKeysSet.add(recordKey);\n setEditableRowKeys(Array.from(editableKeysSet));\n\n // 如果是dataSource 新增模式的话,取消再开始编辑,\n // 这样就可以把新增到 dataSource的数据进入编辑模式了\n // [a,b,cache] => [a,b,c]\n if ((options === null || options === void 0 ? void 0 : options.newRecordType) === 'dataSource' || props.tableName) {\n var _recordKeyToString3;\n var actionProps = {\n data: props.dataSource,\n getRowKey: props.getRowKey,\n row: _objectSpread(_objectSpread({}, row), {}, {\n map_row_parentKey: options !== null && options !== void 0 && options.parentKey ? (_recordKeyToString3 = recordKeyToString(options === null || options === void 0 ? void 0 : options.parentKey)) === null || _recordKeyToString3 === void 0 ? void 0 : _recordKeyToString3.toString() : undefined\n }),\n key: recordKey,\n childrenColumnName: props.childrenColumnName || 'children'\n };\n props.setDataSource(editableRowByKey(actionProps, (options === null || options === void 0 ? void 0 : options.position) === 'top' ? 'top' : 'update'));\n } else {\n setNewLineRecordCache({\n defaultValue: row,\n options: _objectSpread(_objectSpread({}, options), {}, {\n recordKey: recordKey\n })\n });\n }\n return true;\n });\n\n // Internationalization\n var intl = useIntl();\n var saveText = (props === null || props === void 0 ? void 0 : props.saveText) || intl.getMessage('editableTable.action.save', '保存');\n var deleteText = (props === null || props === void 0 ? void 0 : props.deleteText) || intl.getMessage('editableTable.action.delete', '删除');\n var cancelText = (props === null || props === void 0 ? void 0 : props.cancelText) || intl.getMessage('editableTable.action.cancel', '取消');\n var actionSaveRef = useRefFunction( /*#__PURE__*/function () {\n var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(recordKey, editRow, originRow, newLine) {\n var _props$onSave, _recordKeyToString4, _options$parentKey;\n var res, _ref11, options, actionProps;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return props === null || props === void 0 ? void 0 : (_props$onSave = props.onSave) === null || _props$onSave === void 0 ? void 0 : _props$onSave.call(props, recordKey, editRow, originRow, newLine);\n case 2:\n res = _context8.sent;\n _context8.next = 5;\n return cancelEditable(recordKey);\n case 5:\n _ref11 = newLine || newLineRecordRef.current || {}, options = _ref11.options;\n if (!(!(options !== null && options !== void 0 && options.parentKey) && (options === null || options === void 0 ? void 0 : options.recordKey) === recordKey)) {\n _context8.next = 9;\n break;\n }\n if ((options === null || options === void 0 ? void 0 : options.position) === 'top') {\n props.setDataSource([editRow].concat(_toConsumableArray(props.dataSource)));\n } else {\n props.setDataSource([].concat(_toConsumableArray(props.dataSource), [editRow]));\n }\n return _context8.abrupt(\"return\", res);\n case 9:\n actionProps = {\n data: props.dataSource,\n getRowKey: props.getRowKey,\n row: options ? _objectSpread(_objectSpread({}, editRow), {}, {\n map_row_parentKey: (_recordKeyToString4 = recordKeyToString((_options$parentKey = options === null || options === void 0 ? void 0 : options.parentKey) !== null && _options$parentKey !== void 0 ? _options$parentKey : '')) === null || _recordKeyToString4 === void 0 ? void 0 : _recordKeyToString4.toString()\n }) : editRow,\n key: recordKey,\n childrenColumnName: props.childrenColumnName || 'children'\n };\n props.setDataSource(editableRowByKey(actionProps, (options === null || options === void 0 ? void 0 : options.position) === 'top' ? 'top' : 'update'));\n _context8.next = 13;\n return cancelEditable(recordKey);\n case 13:\n return _context8.abrupt(\"return\", res);\n case 14:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n return function (_x7, _x8, _x9, _x10) {\n return _ref10.apply(this, arguments);\n };\n }());\n var actionDeleteRef = useRefFunction( /*#__PURE__*/function () {\n var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(recordKey, editRow) {\n var _props$onDelete;\n var actionProps, res;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n actionProps = {\n data: props.dataSource,\n getRowKey: props.getRowKey,\n row: editRow,\n key: recordKey,\n childrenColumnName: props.childrenColumnName || 'children'\n };\n _context9.next = 3;\n return props === null || props === void 0 ? void 0 : (_props$onDelete = props.onDelete) === null || _props$onDelete === void 0 ? void 0 : _props$onDelete.call(props, recordKey, editRow);\n case 3:\n res = _context9.sent;\n _context9.next = 6;\n return cancelEditable(recordKey, false);\n case 6:\n props.setDataSource(editableRowByKey(actionProps, 'delete'));\n return _context9.abrupt(\"return\", res);\n case 8:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n return function (_x11, _x12) {\n return _ref12.apply(this, arguments);\n };\n }());\n var actionCancelRef = useRefFunction( /*#__PURE__*/function () {\n var _ref13 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(recordKey, editRow, originRow, newLine) {\n var _props$onCancel;\n var res;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return props === null || props === void 0 ? void 0 : (_props$onCancel = props.onCancel) === null || _props$onCancel === void 0 ? void 0 : _props$onCancel.call(props, recordKey, editRow, originRow, newLine);\n case 2:\n res = _context10.sent;\n return _context10.abrupt(\"return\", res);\n case 4:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n return function (_x13, _x14, _x15, _x16) {\n return _ref13.apply(this, arguments);\n };\n }());\n var actionRender = function actionRender(row) {\n var key = props.getRowKey(row, row.index);\n var config = {\n saveText: saveText,\n cancelText: cancelText,\n deleteText: deleteText,\n addEditRecord: addEditRecord,\n recordKey: key,\n cancelEditable: cancelEditable,\n index: row.index,\n tableName: props.tableName,\n newLineConfig: newLineRecordCache,\n onCancel: actionCancelRef,\n onDelete: actionDeleteRef,\n onSave: actionSaveRef,\n editableKeys: editableKeys,\n setEditableRowKeys: setEditableRowKeys,\n deletePopconfirmMessage: props.deletePopconfirmMessage || \"\".concat(intl.getMessage('deleteThisLine', '删除此项'), \"?\")\n };\n var renderResult = defaultActionRender(row, config);\n // 缓存一下saveRef\n if (props.tableName) {\n saveRefsMap.current.set(dataSourceKeyIndexMapRef.current.get(recordKeyToString(key)) || recordKeyToString(key), renderResult.saveRef);\n } else {\n saveRefsMap.current.set(recordKeyToString(key), renderResult.saveRef);\n }\n if (props.actionRender) return props.actionRender(row, config, {\n save: renderResult.save,\n delete: renderResult.delete,\n cancel: renderResult.cancel\n });\n return [renderResult.save, renderResult.delete, renderResult.cancel];\n };\n return {\n editableKeys: editableKeys,\n setEditableRowKeys: setEditableRowKeys,\n isEditable: isEditable,\n actionRender: actionRender,\n startEditable: startEditable,\n cancelEditable: cancelEditable,\n addEditRecord: addEditRecord,\n saveEditable: saveEditable,\n newLineRecord: newLineRecordCache,\n preEditableKeys: editableKeysRef,\n onValuesChange: onValuesChange\n };\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/deepdataspace/server/static/422.e1c904d6.async.js b/deepdataspace/server/static/422.e1c904d6.async.js deleted file mode 100644 index c60012e..0000000 --- a/deepdataspace/server/static/422.e1c904d6.async.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[422],{39800:function(Cr,Nn,h){h.d(Nn,{Z:function(){return a}});var Y=h(60698),re=h(58757),Fe={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"},le=Fe,f=h(17202),We=function(Ln,dn){return re.createElement(f.Z,(0,Y.Z)({},Ln,{ref:dn,icon:le}))},a=re.forwardRef(We)},92588:function(Cr,Nn,h){var Y=h(57370),re=h(47075),Fe=h(64410),le=h(58757),f=h(78546),We=h(17148),a=h(35667),Pe=["fieldProps","children","params","proFieldProps","mode","valueEnum","request","showSearch","options"],Ln=["fieldProps","children","params","proFieldProps","mode","valueEnum","request","options"],dn=function(he,Re){var d=he.fieldProps,fe=he.children,Bn=he.params,Tn=he.proFieldProps,s=he.mode,Kn=he.valueEnum,ge=he.request,tn=he.showSearch,Ae=he.options,Sn=(0,re.Z)(he,Pe),te=(0,le.useContext)(f.Z);return(0,a.jsx)(We.Z,(0,Y.Z)((0,Y.Z)({valueEnum:(0,Fe.h)(Kn),request:ge,params:Bn,valueType:"select",filedConfig:{customLightMode:!0},fieldProps:(0,Y.Z)({options:Ae,mode:s,showSearch:tn,getPopupContainer:te.getPopupContainer},d),ref:Re,proFieldProps:Tn},Sn),{},{children:fe}))},De=le.forwardRef(function(ie,he){var Re=ie.fieldProps,d=ie.children,fe=ie.params,Bn=ie.proFieldProps,Tn=ie.mode,s=ie.valueEnum,Kn=ie.request,ge=ie.options,tn=(0,re.Z)(ie,Ln),Ae=(0,Y.Z)({options:ge,mode:Tn||"multiple",labelInValue:!0,showSearch:!0,showArrow:!1,autoClearSearchValue:!0,optionLabelProp:"label"},Re),Sn=(0,le.useContext)(f.Z);return(0,a.jsx)(We.Z,(0,Y.Z)((0,Y.Z)({valueEnum:(0,Fe.h)(s),request:Kn,params:fe,valueType:"select",filedConfig:{customLightMode:!0},fieldProps:(0,Y.Z)({getPopupContainer:Sn.getPopupContainer},Ae),ref:he,proFieldProps:Bn},tn),{},{children:d}))}),Fn=le.forwardRef(dn),be=De,cn=Fn;cn.SearchSelect=be,cn.displayName="ProFormComponent",Nn.Z=cn},47867:function(Cr,Nn,h){h.d(Nn,{Y:function(){return d}});var Y=h(74632),re=h(79290),Fe=h(57370),le=h(28314),f=h(47075),We=h(1643),a=h(42505),Pe=h(62109),Ln=h(84560),dn=h.n(Ln),De=h(60409),Fn=h(75556),be=h(58757),cn=h(26736),ie=h(92284),he=h(35667),Re=["children","trigger","onVisibleChange","onOpenChange","modalProps","onFinish","submitTimeout","title","width","visible","open"];function d(fe){var Bn,Tn,s,Kn,ge=fe.children,tn=fe.trigger,Ae=fe.onVisibleChange,Sn=fe.onOpenChange,te=fe.modalProps,Xn=fe.onFinish,zn=fe.submitTimeout,Sr=fe.title,br=fe.width,Jn=fe.visible,Yn=fe.open,je=(0,f.Z)(fe,Re);(0,Fn.ET)(!je.footer||!(te!=null&&te.footer),"ModalForm \u662F\u4E00\u4E2A ProForm \u7684\u7279\u6B8A\u5E03\u5C40\uFF0C\u5982\u679C\u60F3\u81EA\u5B9A\u4E49\u6309\u94AE\uFF0C\u8BF7\u4F7F\u7528 submit.render \u81EA\u5B9A\u4E49\u3002");var Wn=(0,be.useContext)(a.ZP.ConfigContext),xr=(0,be.useState)([]),tr=(0,le.Z)(xr,2),Rr=tr[1],ar=(0,be.useState)(!1),we=(0,le.Z)(ar,2),$e=we[0],oe=we[1],en=(0,De.Z)(!!Jn,{value:Yn||Jn,onChange:Sn||Ae}),Qe=(0,le.Z)(en,2),yn=Qe[0],Xe=Qe[1],In=(0,be.useRef)(null),Pr=(0,be.useCallback)(function(pe){In.current===null&&pe&&Rr([]),In.current=pe},[]),ue=(0,be.useRef)(),Ve=(0,be.useCallback)(function(){var pe,Te,Be,Ie=(pe=(Te=je.form)!==null&&Te!==void 0?Te:(Be=je.formRef)===null||Be===void 0?void 0:Be.current)!==null&&pe!==void 0?pe:ue.current;Ie&&te!==null&&te!==void 0&&te.destroyOnClose&&Ie.resetFields()},[te==null?void 0:te.destroyOnClose,je.form,je.formRef]);(0,be.useImperativeHandle)(je.formRef,function(){return ue.current},[ue.current]),(0,be.useEffect)(function(){yn&&(Yn||Jn)&&(Sn==null||Sn(!0),Ae==null||Ae(!0))},[Jn,Yn,yn]);var bn=(0,be.useMemo)(function(){return tn?be.cloneElement(tn,(0,Fe.Z)((0,Fe.Z)({key:"trigger"},tn.props),{},{onClick:function(){var pe=(0,re.Z)((0,Y.Z)().mark(function Be(Ie){var vn,de;return(0,Y.Z)().wrap(function(Ne){for(;;)switch(Ne.prev=Ne.next){case 0:Xe(!yn),(vn=tn.props)===null||vn===void 0||(de=vn.onClick)===null||de===void 0||de.call(vn,Ie);case 2:case"end":return Ne.stop()}},Be)}));function Te(Be){return pe.apply(this,arguments)}return Te}()})):null},[Xe,tn,yn]),Dn=(0,be.useMemo)(function(){var pe,Te,Be,Ie,vn,de,hn,Ne;return je.submitter===!1?!1:dn()({searchConfig:{submitText:(pe=(Te=te==null?void 0:te.okText)!==null&&Te!==void 0?Te:(Be=Wn.locale)===null||Be===void 0||(Ie=Be.Modal)===null||Ie===void 0?void 0:Ie.okText)!==null&&pe!==void 0?pe:"\u786E\u8BA4",resetText:(vn=(de=te==null?void 0:te.cancelText)!==null&&de!==void 0?de:(hn=Wn.locale)===null||hn===void 0||(Ne=hn.Modal)===null||Ne===void 0?void 0:Ne.cancelText)!==null&&vn!==void 0?vn:"\u53D6\u6D88"},resetButtonProps:{preventDefault:!0,disabled:zn?$e:void 0,onClick:function(xn){var nn;Xe(!1),te==null||(nn=te.onCancel)===null||nn===void 0||nn.call(te,xn)}}},je.submitter)},[(Bn=Wn.locale)===null||Bn===void 0||(Tn=Bn.Modal)===null||Tn===void 0?void 0:Tn.cancelText,(s=Wn.locale)===null||s===void 0||(Kn=s.Modal)===null||Kn===void 0?void 0:Kn.okText,te,je.submitter,Xe,$e,zn]),an=(0,be.useCallback)(function(pe,Te){return(0,he.jsxs)(he.Fragment,{children:[pe,In.current&&Te?(0,he.jsx)(be.Fragment,{children:(0,cn.createPortal)(Te,In.current)},"submitter"):Te]})},[]),Zn=(0,be.useCallback)(function(){var pe=(0,re.Z)((0,Y.Z)().mark(function Te(Be){var Ie,vn,de;return(0,Y.Z)().wrap(function(Ne){for(;;)switch(Ne.prev=Ne.next){case 0:return Ie=Xn==null?void 0:Xn(Be),zn&&Ie instanceof Promise&&(oe(!0),vn=setTimeout(function(){return oe(!1)},zn),Ie.finally(function(){clearTimeout(vn),oe(!1)})),Ne.next=4,Ie;case 4:return de=Ne.sent,de&&Xe(!1),Ne.abrupt("return",de);case 7:case"end":return Ne.stop()}},Te)}));return function(Te){return pe.apply(this,arguments)}}(),[Xn,Xe,zn]),lr=(0,We.X)(yn);return(0,he.jsxs)(he.Fragment,{children:[(0,he.jsx)(Pe.Z,(0,Fe.Z)((0,Fe.Z)((0,Fe.Z)({title:Sr,width:br||800},te),lr),{},{onCancel:function(Te){var Be;zn&&$e||(Xe(!1),te==null||(Be=te.onCancel)===null||Be===void 0||Be.call(te,Te))},afterClose:function(){var Te;Ve(),Xe(!1),te==null||(Te=te.afterClose)===null||Te===void 0||Te.call(te)},footer:je.submitter!==!1?(0,he.jsx)("div",{ref:Pr,style:{display:"flex",justifyContent:"flex-end"}}):null,children:(0,he.jsx)(ie.I,(0,Fe.Z)((0,Fe.Z)({formComponentType:"ModalForm",layout:"vertical"},je),{},{onInit:function(Te,Be){var Ie;je.formRef&&(je.formRef.current=Be),je==null||(Ie=je.onInit)===null||Ie===void 0||Ie.call(je,Te,Be),ue.current=Be},formRef:ue,submitter:Dn,onFinish:function(){var pe=(0,re.Z)((0,Y.Z)().mark(function Te(Be){var Ie;return(0,Y.Z)().wrap(function(de){for(;;)switch(de.prev=de.next){case 0:return de.next=2,Zn(Be);case 2:return Ie=de.sent,de.abrupt("return",Ie);case 4:case"end":return de.stop()}},Te)}));return function(Te){return pe.apply(this,arguments)}}(),contentRender:an,children:ge}))})),bn]})}},95122:function(Cr,Nn,h){h.d(Nn,{U9:function(){return tr},L0:function(){return ar},bg:function(){return Wn}});var Y=h(37734),re=h(57370),Fe=h(74632),le=h(79290),f=h(29140),We=h(28314),a=h(47075),Pe=h(25846),Ln=h(85734),dn=h(31647),De=h(15457),Fn=h(62886),be=h(31188),cn=h(42505),ie=h(93430),he=h(81116),Re=h(12562),d=h(57414),fe=h(47513),Bn=h(87608),Tn=h.n(Bn),s=h(42156),Kn=h(60409),ge=h(58757),tn=h(36490),Ae=h(75556),Sn=h(92284),te=h(35667),Xn=["onFinish","step","formRef","title","stepProps"];function zn(we){var $e=(0,ge.useRef)(),oe=(0,ge.useContext)(Wn),en=(0,ge.useContext)(tr),Qe=(0,re.Z)((0,re.Z)({},we),en),yn=Qe.onFinish,Xe=Qe.step,In=Qe.formRef,Pr=Qe.title,ue=Qe.stepProps,Ve=(0,a.Z)(Qe,Xn);return(0,Ae.ET)(!Ve.submitter,"StepForm \u4E0D\u5305\u542B\u63D0\u4EA4\u6309\u94AE\uFF0C\u8BF7\u5728 StepsForm \u4E0A"),(0,ge.useImperativeHandle)(In,function(){return $e.current},[In==null?void 0:In.current]),(0,ge.useEffect)(function(){if(Qe.name||Qe.step){var bn=(Qe.name||Qe.step).toString();return oe==null||oe.regForm(bn,Qe),function(){oe==null||oe.unRegForm(bn)}}},[]),oe&&oe!==null&&oe!==void 0&&oe.formArrayRef&&(oe.formArrayRef.current[Xe||0]=$e),(0,te.jsx)(Sn.I,(0,re.Z)({formRef:$e,onFinish:function(){var bn=(0,le.Z)((0,Fe.Z)().mark(function Dn(an){var Zn;return(0,Fe.Z)().wrap(function(pe){for(;;)switch(pe.prev=pe.next){case 0:if(Ve.name&&(oe==null||oe.onFormFinish(Ve.name,an)),!yn){pe.next=9;break}return oe==null||oe.setLoading(!0),pe.next=5,yn==null?void 0:yn(an);case 5:return Zn=pe.sent,Zn&&(oe==null||oe.next()),oe==null||oe.setLoading(!1),pe.abrupt("return");case 9:oe!=null&&oe.lastStep||oe==null||oe.next();case 10:case"end":return pe.stop()}},Dn)}));return function(Dn){return bn.apply(this,arguments)}}(),onInit:function(Dn,an){var Zn;$e.current=an,oe&&oe!==null&&oe!==void 0&&oe.formArrayRef&&(oe.formArrayRef.current[Xe||0]=$e),Ve==null||(Zn=Ve.onInit)===null||Zn===void 0||Zn.call(Ve,Dn,an)},layout:"vertical"},(0,tn.Z)(Ve,["layoutType","columns"])))}var Sr=zn,br=h(70260),Jn=function($e){return(0,Y.Z)({},$e.componentCls,{"&-container":{width:"max-content",minWidth:"420px",maxWidth:"100%",margin:"auto"},"&-steps-container":(0,Y.Z)({maxWidth:"1160px",margin:"auto"},"".concat($e.antCls,"-steps-vertical"),{height:"100%"}),"&-step":{display:"none",marginBlockStart:"32px","&-active":{display:"block"},"> form":{maxWidth:"100%"}}})};function Yn(we){return(0,br.Xj)("StepsForm",function($e){var oe=(0,re.Z)((0,re.Z)({},$e),{},{componentCls:".".concat(we)});return[Jn(oe)]})}var je=["current","onCurrentChange","submitter","stepsFormRender","stepsRender","stepFormRender","stepsProps","onFinish","formProps","containerStyle","formRef","formMapRef","layoutRender"],Wn=ge.createContext(void 0),xr={horizontal:function($e){var oe=$e.stepsDom,en=$e.formDom;return(0,te.jsxs)(te.Fragment,{children:[(0,te.jsx)(Fn.Z,{gutter:{xs:8,sm:16,md:24},children:(0,te.jsx)(be.Z,{span:24,children:oe})}),(0,te.jsx)(Fn.Z,{gutter:{xs:8,sm:16,md:24},children:(0,te.jsx)(be.Z,{span:24,children:en})})]})},vertical:function($e){var oe=$e.stepsDom,en=$e.formDom;return(0,te.jsxs)(Fn.Z,{align:"stretch",wrap:!0,gutter:{xs:8,sm:16,md:24},children:[(0,te.jsx)(be.Z,{xxl:4,xl:6,lg:7,md:8,sm:10,xs:12,children:ge.cloneElement(oe,{style:{height:"100%"}})}),(0,te.jsx)(be.Z,{children:(0,te.jsx)("div",{style:{display:"flex",alignItems:"center",width:"100%",height:"100%"},children:en})})]})}},tr=ge.createContext(null);function Rr(we){var $e=(0,ge.useContext)(cn.ZP.ConfigContext),oe=$e.getPrefixCls,en=oe("pro-steps-form"),Qe=Yn(en),yn=Qe.wrapSSR,Xe=Qe.hashId,In=we.current,Pr=we.onCurrentChange,ue=we.submitter,Ve=we.stepsFormRender,bn=we.stepsRender,Dn=we.stepFormRender,an=we.stepsProps,Zn=we.onFinish,lr=we.formProps,pe=we.containerStyle,Te=we.formRef,Be=we.formMapRef,Ie=we.layoutRender,vn=(0,a.Z)(we,je),de=(0,ge.useRef)(new Map),hn=(0,ge.useRef)(new Map),Ne=(0,ge.useRef)([]),wr=(0,ge.useState)([]),xn=(0,We.Z)(wr,2),nn=xn[0],Dr=xn[1],Rn=(0,ge.useState)(!1),fr=(0,We.Z)(Rn,2),Ke=fr[0],or=fr[1],Un=(0,Pe.YB)(),ir=(0,Kn.Z)(0,{value:we.current,onChange:we.onCurrentChange}),sr=(0,We.Z)(ir,2),rn=sr[0],mr=sr[1],Fr=(0,ge.useMemo)(function(){return xr[(an==null?void 0:an.direction)||"horizontal"]},[an==null?void 0:an.direction]),Tr=(0,ge.useMemo)(function(){return rn===nn.length-1},[nn.length,rn]),Ir=(0,ge.useCallback)(function(se,xe){hn.current.has(se)||Dr(function(Je){return[].concat((0,f.Z)(Je),[se])}),hn.current.set(se,xe)},[]),fn=(0,ge.useCallback)(function(se){Dr(function(xe){return xe.filter(function(Je){return Je!==se})}),hn.current.delete(se),de.current.delete(se)},[]);(0,ge.useImperativeHandle)(Be,function(){return Ne.current},[Ne.current]),(0,ge.useImperativeHandle)(Te,function(){var se;return(se=Ne.current[rn||0])===null||se===void 0?void 0:se.current},[rn,Ne.current]);var ur=(0,ge.useCallback)(function(){var se=(0,le.Z)((0,Fe.Z)().mark(function xe(Je,ke){var er,Cn;return(0,Fe.Z)().wrap(function(ln){for(;;)switch(ln.prev=ln.next){case 0:if(de.current.set(Je,ke),!(!Tr||!Zn)){ln.next=3;break}return ln.abrupt("return");case 3:return or(!0),er=Ln.T.apply(void 0,[{}].concat((0,f.Z)(Array.from(de.current.values())))),ln.prev=5,ln.next=8,Zn(er);case 8:Cn=ln.sent,Cn&&(mr(0),Ne.current.forEach(function(Ar){var $r;return($r=Ar.current)===null||$r===void 0?void 0:$r.resetFields()})),ln.next=15;break;case 12:ln.prev=12,ln.t0=ln.catch(5),console.log(ln.t0);case 15:return ln.prev=15,or(!1),ln.finish(15);case 18:case"end":return ln.stop()}},xe,null,[[5,12,15,18]])}));return function(xe,Je){return se.apply(this,arguments)}}(),[Tr,Zn,or,mr]),Er=(0,ge.useMemo)(function(){var se=(0,dn.n)(ie.Z,"4.24.0")>-1,xe=se?{items:nn.map(function(Je){var ke=hn.current.get(Je);return(0,re.Z)({key:Je,title:ke==null?void 0:ke.title},ke==null?void 0:ke.stepProps)})}:{};return(0,te.jsx)("div",{className:"".concat(en,"-steps-container ").concat(Xe).trim(),style:{maxWidth:Math.min(nn.length*320,1160)},children:(0,te.jsx)(he.Z,(0,re.Z)((0,re.Z)((0,re.Z)({},an),xe),{},{current:rn,onChange:void 0,children:!se&&nn.map(function(Je){var ke=hn.current.get(Je);return(0,te.jsx)(he.Z.Step,(0,re.Z)({title:ke==null?void 0:ke.title},ke==null?void 0:ke.stepProps),Je)})}))})},[nn,Xe,en,rn,an]),Qn=(0,De.J)(function(){var se,xe=Ne.current[rn];(se=xe.current)===null||se===void 0||se.submit()}),hr=(0,De.J)(function(){rn<1||mr(rn-1)}),Mr=(0,ge.useMemo)(function(){return ue!==!1&&(0,te.jsx)(Re.ZP,(0,re.Z)((0,re.Z)({type:"primary",loading:Ke},ue==null?void 0:ue.submitButtonProps),{},{onClick:function(){var xe;ue==null||(xe=ue.onSubmit)===null||xe===void 0||xe.call(ue),Qn()},children:Un.getMessage("stepsForm.next","\u4E0B\u4E00\u6B65")}),"next")},[Un,Ke,Qn,ue]),jr=(0,ge.useMemo)(function(){return ue!==!1&&(0,te.jsx)(Re.ZP,(0,re.Z)((0,re.Z)({},ue==null?void 0:ue.resetButtonProps),{},{onClick:function(){var xe;hr(),ue==null||(xe=ue.onReset)===null||xe===void 0||xe.call(ue)},children:Un.getMessage("stepsForm.prev","\u4E0A\u4E00\u6B65")}),"pre")},[Un,hr,ue]),gn=(0,ge.useMemo)(function(){return ue!==!1&&(0,te.jsx)(Re.ZP,(0,re.Z)((0,re.Z)({type:"primary",loading:Ke},ue==null?void 0:ue.submitButtonProps),{},{onClick:function(){var xe;ue==null||(xe=ue.onSubmit)===null||xe===void 0||xe.call(ue),Qn()},children:Un.getMessage("stepsForm.submit","\u63D0\u4EA4")}),"submit")},[Un,Ke,Qn,ue]),qn=(0,De.J)(function(){rn>nn.length-2||mr(rn+1)}),dr=(0,ge.useMemo)(function(){var se=[],xe=rn||0;if(xe<1?nn.length===1?se.push(gn):se.push(Mr):xe+1===nn.length?se.push(jr,gn):se.push(jr,Mr),se=se.filter(ge.isValidElement),ue&&ue.render){var Je,ke={form:(Je=Ne.current[rn])===null||Je===void 0?void 0:Je.current,onSubmit:Qn,step:rn,onPre:hr};return ue.render(ke,se)}return ue&&(ue==null?void 0:ue.render)===!1?null:se},[nn.length,Mr,Qn,jr,hr,rn,gn,ue]),On=(0,ge.useMemo)(function(){return(0,s.Z)(we.children).map(function(se,xe){var Je=se.props,ke=Je.name||"".concat(xe),er=rn===xe,Cn=er?{contentRender:Dn,submitter:!1}:{};return(0,te.jsx)("div",{className:Tn()("".concat(en,"-step"),Xe,(0,Y.Z)({},"".concat(en,"-step-active"),er)),children:(0,te.jsx)(tr.Provider,{value:(0,re.Z)((0,re.Z)((0,re.Z)((0,re.Z)({},Cn),lr),Je),{},{name:ke,step:xe}),children:se})},ke)})},[lr,Xe,en,we.children,rn,Dn]),_n=(0,ge.useMemo)(function(){return bn?bn(nn.map(function(se){var xe;return{key:se,title:(xe=hn.current.get(se))===null||xe===void 0?void 0:xe.title}}),Er):Er},[nn,Er,bn]),Or=(0,ge.useMemo)(function(){return(0,te.jsxs)("div",{className:"".concat(en,"-container ").concat(Xe).trim(),style:pe,children:[On,Ve?null:(0,te.jsx)(d.Z,{children:dr})]})},[pe,On,Xe,en,Ve,dr]),Vr=(0,ge.useMemo)(function(){var se={stepsDom:_n,formDom:Or};return Ve?Ve(Ie?Ie(se):Fr(se),dr):Ie?Ie(se):Fr(se)},[_n,Or,Fr,Ve,dr,Ie]);return yn((0,te.jsx)("div",{className:Tn()(en,Xe),children:(0,te.jsx)(fe.Z.Provider,(0,re.Z)((0,re.Z)({},vn),{},{children:(0,te.jsx)(Wn.Provider,{value:{loading:Ke,setLoading:or,regForm:Ir,keyArray:nn,next:qn,formArrayRef:Ne,formMapRef:hn,lastStep:Tr,unRegForm:fn,onFormFinish:ur},children:Vr})}))}))}function ar(we){return(0,te.jsx)(Pe._Y,{needDeps:!0,children:(0,te.jsx)(Rr,(0,re.Z)({},we))})}ar.StepForm=Sr,ar.useForm=fe.Z.useForm},24977:function(Cr,Nn,h){h.d(Nn,{Z:function(){return jo}});var Y=h(74632),re=h(79290),Fe=h(38790),le=h(28314),f=h(37734),We=h(29140),a=h(57370),Pe=h(47075),Ln=h(91169),dn=h(32311),De=h(42505),Fn=h(80172),be=h(16951),cn=h(87608),ie=h.n(cn),he=h(36490),Re=h(60409),d=h(58757),fe=h(70260),Bn=function(e){var t,r,l=e.componentCls,u=e.antCls;return(0,f.Z)({},"".concat(l,"-actions"),(r={marginBlock:0,marginInline:0,paddingBlock:0,paddingInline:0,listStyle:"none",display:"flex",gap:e.marginXS,background:e.colorBgContainer,borderBlockStart:"".concat(e.lineWidth,"px ").concat(e.lineType," ").concat(e.colorSplit),minHeight:42},(0,f.Z)(r,"& > *",{alignItems:"center",justifyContent:"center",flex:1,display:"flex",cursor:"pointer",color:e.colorTextSecondary,transition:"color 0.3s","&:hover":{color:e.colorPrimaryHover}}),(0,f.Z)(r,"& > li > div",{flex:1,width:"100%",marginBlock:e.marginSM,marginInline:0,color:e.colorTextSecondary,textAlign:"center",a:{color:e.colorTextSecondary,transition:"color 0.3s","&:hover":{color:e.colorPrimaryHover}},div:(t={position:"relative",display:"block",minWidth:32,fontSize:e.fontSize,lineHeight:e.lineHeight,cursor:"pointer","&:hover":{color:e.colorPrimaryHover,transition:"color 0.3s"}},(0,f.Z)(t,"a:not(".concat(u,`-btn), - > .anticon`),{display:"inline-block",width:"100%",color:e.colorTextSecondary,lineHeight:"22px",transition:"color 0.3s","&:hover":{color:e.colorPrimaryHover}}),(0,f.Z)(t,".anticon",{fontSize:e.cardActionIconSize,lineHeight:"22px"}),t),"&:not(:last-child)":{borderInlineEnd:"".concat(e.lineWidth,"px ").concat(e.lineType," ").concat(e.colorSplit)}}),r))};function Tn(n){return(0,fe.Xj)("ProCardActions",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n),cardActionIconSize:16});return[Bn(t)]})}var s=h(35667),Kn=function(e){var t=e.actions,r=e.prefixCls,l=Tn(r),u=l.wrapSSR,o=l.hashId;return Array.isArray(t)&&t!==null&&t!==void 0&&t.length?u((0,s.jsx)("ul",{className:ie()("".concat(r,"-actions"),o),children:t.map(function(i,c){return(0,s.jsx)("li",{style:{width:"".concat(100/t.length,"%"),padding:0,margin:0},className:ie()("".concat(r,"-actions-item"),o),children:i},"action-".concat(c))})})):u((0,s.jsx)("ul",{className:ie()("".concat(r,"-actions"),o),children:t}))},ge=Kn,tn=h(62886),Ae=h(31188),Sn=h(57793),te=new Sn.E4("card-loading",{"0%":{backgroundPosition:"0 50%"},"50%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),Xn=function(e){var t;return(0,f.Z)({},e.componentCls,(t={"&-loading":{overflow:"hidden"},"&-loading &-body":{userSelect:"none"}},(0,f.Z)(t,"".concat(e.componentCls,"-loading-content"),{width:"100%",p:{marginBlock:0,marginInline:0}}),(0,f.Z)(t,"".concat(e.componentCls,"-loading-block"),{height:"14px",marginBlock:"4px",background:"linear-gradient(90deg, rgba(54, 61, 64, 0.2), rgba(54, 61, 64, 0.4), rgba(54, 61, 64, 0.2))",backgroundSize:"600% 600%",borderRadius:e.borderRadius,animationName:te,animationDuration:"1.4s",animationTimingFunction:"ease",animationIterationCount:"infinite"}),t))};function zn(n){return(0,fe.Xj)("ProCardLoading",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[Xn(t)]})}var Sr=function(e){var t=e.style,r=e.prefix,l=zn(r||"ant-pro-card"),u=l.wrapSSR;return u((0,s.jsxs)("div",{className:"".concat(r,"-loading-content"),style:t,children:[(0,s.jsx)(tn.Z,{gutter:8,children:(0,s.jsx)(Ae.Z,{span:22,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})})}),(0,s.jsxs)(tn.Z,{gutter:8,children:[(0,s.jsx)(Ae.Z,{span:8,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})}),(0,s.jsx)(Ae.Z,{span:15,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})})]}),(0,s.jsxs)(tn.Z,{gutter:8,children:[(0,s.jsx)(Ae.Z,{span:6,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})}),(0,s.jsx)(Ae.Z,{span:18,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})})]}),(0,s.jsxs)(tn.Z,{gutter:8,children:[(0,s.jsx)(Ae.Z,{span:13,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})}),(0,s.jsx)(Ae.Z,{span:9,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})})]}),(0,s.jsxs)(tn.Z,{gutter:8,children:[(0,s.jsx)(Ae.Z,{span:4,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})}),(0,s.jsx)(Ae.Z,{span:3,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})}),(0,s.jsx)(Ae.Z,{span:16,children:(0,s.jsx)("div",{className:"".concat(r,"-loading-block")})})]})]}))},br=Sr,Jn=h(93430),Yn=h(42156),je=h(75556),Wn=h(73656),xr=["tab","children"],tr=["key","tab","tabKey","disabled","destroyInactiveTabPane","children","className","style","cardProps"];function Rr(n){return n.filter(function(e){return e})}function ar(n,e,t){if(n)return n.map(function(l){return(0,a.Z)((0,a.Z)({},l),{},{children:(0,s.jsx)(Ve,(0,a.Z)((0,a.Z)({},t==null?void 0:t.cardProps),{},{children:l.children}))})});(0,je.ET)(!t,"Tabs.TabPane is deprecated. Please use `items` directly.");var r=(0,Yn.Z)(e).map(function(l){if(d.isValidElement(l)){var u=l.key,o=l.props,i=o||{},c=i.tab,m=i.children,v=(0,Pe.Z)(i,xr),P=(0,a.Z)((0,a.Z)({key:String(u)},v),{},{children:(0,s.jsx)(Ve,(0,a.Z)((0,a.Z)({},t==null?void 0:t.cardProps),{},{children:m})),label:c});return P}return null});return Rr(r)}var we=function(e){var t=(0,d.useContext)(De.ZP.ConfigContext),r=t.getPrefixCls;if(Jn.Z.startsWith("5"))return(0,s.jsx)(s.Fragment,{});var l=e.key,u=e.tab,o=e.tabKey,i=e.disabled,c=e.destroyInactiveTabPane,m=e.children,v=e.className,P=e.style,y=e.cardProps,w=(0,Pe.Z)(e,tr),Z=r("pro-card-tabpane"),C=ie()(Z,v);return(0,s.jsx)(be.Z.TabPane,(0,a.Z)((0,a.Z)({tabKey:o,tab:u,className:C,style:P,disabled:i,destroyInactiveTabPane:c},w),{},{children:(0,s.jsx)(Ve,(0,a.Z)((0,a.Z)({},y),{},{children:m}))}),l)},$e=we,oe=function(e){return{backgroundColor:e.controlItemBgActive,borderColor:e.controlOutline}},en=function(e){var t,r,l,u,o,i=e.componentCls;return o={},(0,f.Z)(o,i,(0,a.Z)((0,a.Z)({position:"relative",display:"flex",flexDirection:"column",boxSizing:"border-box",width:"100%",marginBlock:0,marginInline:0,paddingBlock:0,paddingInline:0,backgroundColor:e.colorBgContainer,borderRadius:e.borderRadius},fe.Wf===null||fe.Wf===void 0?void 0:(0,fe.Wf)(e)),{},(r={"&-box-shadow":{boxShadow:"0 1px 2px -2px #00000029, 0 3px 6px #0000001f, 0 5px 12px 4px #00000017",borderColor:"transparent"},"&-col":{width:"100%"},"&-border":{border:"".concat(e.lineWidth,"px ").concat(e.lineType," ").concat(e.colorSplit)},"&-hoverable":(0,f.Z)({cursor:"pointer",transition:"box-shadow 0.3s, border-color 0.3s","&:hover":{borderColor:"transparent",boxShadow:"0 1px 2px -2px #00000029, 0 3px 6px #0000001f, 0 5px 12px 4px #00000017"}},"&".concat(i,"-checked:hover"),{borderColor:e.controlOutline}),"&-checked":(0,a.Z)((0,a.Z)({},oe(e)),{},{"&::after":{position:"absolute",insetBlockStart:2,insetInlineEnd:2,width:0,height:0,border:"6px solid ".concat(e.colorPrimary),borderBlockEnd:"6px solid transparent",borderInlineStart:"6px solid transparent",borderStartEndRadius:2,content:'""'}}),"&:focus":(0,a.Z)({},oe(e)),"&&-ghost":(0,f.Z)({backgroundColor:"transparent"},"> ".concat(i),{"&-header":{paddingInlineEnd:0,paddingBlockEnd:e.padding,paddingInlineStart:0},"&-body":{paddingBlock:0,paddingInline:0,backgroundColor:"transparent"}}),"&&-split > &-body":{paddingBlock:0,paddingInline:0},"&&-contain-card > &-body":{display:"flex"}},(0,f.Z)(r,"".concat(i,"-body-direction-column"),{flexDirection:"column"}),(0,f.Z)(r,"".concat(i,"-body-wrap"),{flexWrap:"wrap"}),(0,f.Z)(r,"&&-collapse",(0,f.Z)({},"> ".concat(i),{"&-header":{paddingBlockEnd:e.padding,borderBlockEnd:0},"&-body":{display:"none"}})),(0,f.Z)(r,"".concat(i,"-header"),{display:"flex",alignItems:"center",justifyContent:"space-between",paddingInline:e.paddingLG,paddingBlock:e.padding,paddingBlockEnd:0,"&-border":{"&":{paddingBlockEnd:e.padding},borderBlockEnd:"".concat(e.lineWidth,"px ").concat(e.lineType," ").concat(e.colorSplit)},"&-collapsible":{cursor:"pointer"}}),(0,f.Z)(r,"".concat(i,"-title"),{color:e.colorText,fontWeight:500,fontSize:e.fontSizeLG,lineHeight:e.lineHeight}),(0,f.Z)(r,"".concat(i,"-extra"),{color:e.colorText}),(0,f.Z)(r,"".concat(i,"-type-inner"),(0,f.Z)({},"".concat(i,"-header"),{backgroundColor:e.colorFillAlter})),(0,f.Z)(r,"".concat(i,"-collapsible-icon"),{marginInlineEnd:e.marginXS,color:e.colorIconHover,":hover":{color:e.colorPrimaryHover},"& svg":{transition:"transform ".concat(e.motionDurationMid)}}),(0,f.Z)(r,"".concat(i,"-body"),{display:"block",boxSizing:"border-box",height:"100%",paddingInline:e.paddingLG,paddingBlock:e.padding,"&-center":{display:"flex",alignItems:"center",justifyContent:"center"}}),(0,f.Z)(r,"&&-size-small",(t={},(0,f.Z)(t,i,{"&-header":{paddingInline:e.paddingSM,paddingBlock:e.paddingXS,paddingBlockEnd:0,"&-border":{paddingBlockEnd:e.paddingXS}},"&-title":{fontSize:e.fontSize},"&-body":{paddingInline:e.paddingSM,paddingBlock:e.paddingSM}}),(0,f.Z)(t,"".concat(i,"-header").concat(i,"-header-collapsible"),{paddingBlock:e.paddingXS}),t)),r))),(0,f.Z)(o,"".concat(i,"-col"),(l={},(0,f.Z)(l,"&".concat(i,"-split-vertical"),{borderInlineEnd:"".concat(e.lineWidth,"px ").concat(e.lineType," ").concat(e.colorSplit)}),(0,f.Z)(l,"&".concat(i,"-split-horizontal"),{borderBlockEnd:"".concat(e.lineWidth,"px ").concat(e.lineType," ").concat(e.colorSplit)}),l)),(0,f.Z)(o,"".concat(i,"-tabs"),(u={},(0,f.Z)(u,"".concat(e.antCls,"-tabs-top > ").concat(e.antCls,"-tabs-nav"),(0,f.Z)({marginBlockEnd:0},"".concat(e.antCls,"-tabs-nav-list"),{marginBlockStart:e.marginXS,paddingInlineStart:e.padding})),(0,f.Z)(u,"".concat(e.antCls,"-tabs-bottom > ").concat(e.antCls,"-tabs-nav"),(0,f.Z)({marginBlockEnd:0},"".concat(e.antCls,"-tabs-nav-list"),{paddingInlineStart:e.padding})),(0,f.Z)(u,"".concat(e.antCls,"-tabs-left"),(0,f.Z)({},"".concat(e.antCls,"-tabs-content-holder"),(0,f.Z)({},"".concat(e.antCls,"-tabs-content"),(0,f.Z)({},"".concat(e.antCls,"-tabs-tabpane"),{paddingInlineStart:0})))),(0,f.Z)(u,"".concat(e.antCls,"-tabs-left > ").concat(e.antCls,"-tabs-nav"),(0,f.Z)({marginInlineEnd:0},"".concat(e.antCls,"-tabs-nav-list"),{paddingBlockStart:e.padding})),(0,f.Z)(u,"".concat(e.antCls,"-tabs-right"),(0,f.Z)({},"".concat(e.antCls,"-tabs-content-holder"),(0,f.Z)({},"".concat(e.antCls,"-tabs-content"),(0,f.Z)({},"".concat(e.antCls,"-tabs-tabpane"),{paddingInlineStart:0})))),(0,f.Z)(u,"".concat(e.antCls,"-tabs-right > ").concat(e.antCls,"-tabs-nav"),(0,f.Z)({},"".concat(e.antCls,"-tabs-nav-list"),{paddingBlockStart:e.padding})),u)),o},Qe=24,yn=function(e,t){var r=t.componentCls;return e===0?(0,f.Z)({},"".concat(r,"-col-0"),{display:"none"}):(0,f.Z)({},"".concat(r,"-col-").concat(e),{flexShrink:0,width:"".concat(e/Qe*100,"%")})},Xe=function(e){return Array(Qe+1).fill(1).map(function(t,r){return yn(r,e)})};function In(n){return(0,fe.Xj)("ProCard",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[en(t),Xe(t)]})}var Pr=["className","style","bodyStyle","headStyle","title","subTitle","extra","tip","wrap","layout","loading","gutter","tooltip","split","headerBordered","bordered","boxShadow","children","size","actions","ghost","hoverable","direction","collapsed","collapsible","collapsibleIconRender","defaultCollapsed","onCollapse","checked","onChecked","tabs","type"],ue=d.forwardRef(function(n,e){var t,r,l,u=n.className,o=n.style,i=n.bodyStyle,c=i===void 0?{}:i,m=n.headStyle,v=m===void 0?{}:m,P=n.title,y=n.subTitle,w=n.extra,Z=n.tip,C=n.wrap,b=C===void 0?!1:C,p=n.layout,F=n.loading,T=n.gutter,I=T===void 0?0:T,K=n.tooltip,L=n.split,j=n.headerBordered,E=j===void 0?!1:j,X=n.bordered,H=X===void 0?!1:X,R=n.boxShadow,x=R===void 0?!1:R,G=n.children,A=n.size,g=n.actions,$=n.ghost,k=$===void 0?!1:$,J=n.hoverable,z=J===void 0?!1:J,S=n.direction,N=n.collapsed,D=n.collapsible,O=D===void 0?!1:D,V=n.collapsibleIconRender,W=n.defaultCollapsed,U=W===void 0?!1:W,M=n.onCollapse,B=n.checked,_=n.onChecked,ee=n.tabs,ce=n.type,ye=(0,Pe.Z)(n,Pr),ve=(0,d.useContext)(De.ZP.ConfigContext),Ze=ve.getPrefixCls,qe=Fn.ZP.useBreakpoint()||{lg:!0,md:!0,sm:!0,xl:!1,xs:!1,xxl:!1},He=(0,Re.Z)(U,{value:N,onChange:M}),Ye=(0,le.Z)(He,2),on=Ye[0],_e=Ye[1],Pn=["xxl","xl","lg","md","sm","xs"],En=ar(ee==null?void 0:ee.items,G,ee),Ce=function(Le){var Ue=[0,0],pn=Array.isArray(Le)?Le:[Le,0];return pn.forEach(function(mn,Hn){if((0,Fe.Z)(mn)==="object")for(var kn=0;kn=0&&kn<=24),pn)),Kr=Me((0,s.jsx)("div",{style:(0,a.Z)((0,a.Z)((0,a.Z)({},Mn),q(vr>0,{paddingInlineEnd:vr/2,paddingInlineStart:vr/2})),q(Nr>0,{paddingBlockStart:Nr/2,paddingBlockEnd:Nr/2})),className:nt,children:d.cloneElement(sn)}));return d.cloneElement(Kr,{key:"pro-card-col-".concat((sn==null?void 0:sn.key)||Le)})}return sn}),Wr=ie()("".concat(ae),u,wn,(t={},(0,f.Z)(t,"".concat(ae,"-border"),H),(0,f.Z)(t,"".concat(ae,"-box-shadow"),x),(0,f.Z)(t,"".concat(ae,"-contain-card"),Zr),(0,f.Z)(t,"".concat(ae,"-loading"),F),(0,f.Z)(t,"".concat(ae,"-split"),L==="vertical"||L==="horizontal"),(0,f.Z)(t,"".concat(ae,"-ghost"),k),(0,f.Z)(t,"".concat(ae,"-hoverable"),z),(0,f.Z)(t,"".concat(ae,"-size-").concat(A),A),(0,f.Z)(t,"".concat(ae,"-type-").concat(ce),ce),(0,f.Z)(t,"".concat(ae,"-collapse"),on),(0,f.Z)(t,"".concat(ae,"-checked"),B),t)),et=ie()("".concat(ae,"-body"),wn,(r={},(0,f.Z)(r,"".concat(ae,"-body-center"),p==="center"),(0,f.Z)(r,"".concat(ae,"-body-direction-column"),L==="horizontal"||S==="column"),(0,f.Z)(r,"".concat(ae,"-body-wrap"),b&&Zr),r)),Ge=c,Br=d.isValidElement(F)?F:(0,s.jsx)(br,{prefix:ae,style:c.padding===0||c.padding==="0px"?{padding:24}:void 0}),Ee=O&&N===void 0&&(V?V({collapsed:on}):(0,s.jsx)(Ln.Z,{rotate:on?void 0:90,className:"".concat(ae,"-collapsible-icon ").concat(wn).trim()}));return Me((0,s.jsxs)("div",(0,a.Z)((0,a.Z)({className:Wr,style:o,ref:e,onClick:function(Le){var Ue;_==null||_(Le),ye==null||(Ue=ye.onClick)===null||Ue===void 0||Ue.call(ye,Le),Le.stopPropagation()}},(0,he.Z)(ye,["prefixCls","colSpan"])),{},{children:[(P||w||Ee)&&(0,s.jsxs)("div",{className:ie()("".concat(ae,"-header"),wn,(l={},(0,f.Z)(l,"".concat(ae,"-header-border"),E||ce==="inner"),(0,f.Z)(l,"".concat(ae,"-header-collapsible"),Ee),l)),style:v,onClick:function(){Ee&&_e(!on)},children:[(0,s.jsxs)("div",{className:"".concat(ae,"-title ").concat(wn).trim(),children:[Ee,(0,s.jsx)(dn.G,{label:P,tooltip:K||Z,subTitle:y})]}),w&&(0,s.jsx)("div",{className:"".concat(ae,"-extra ").concat(wn).trim(),onClick:function(Le){return Le.stopPropagation()},children:w})]}),ee?(0,s.jsx)("div",{className:"".concat(ae,"-tabs ").concat(wn).trim(),children:(0,s.jsx)(be.Z,(0,a.Z)((0,a.Z)({onChange:ee.onChange},ee),{},{items:En,children:F?Br:G}))}):(0,s.jsx)("div",{className:et,style:Ge,children:F?Br:Lr}),g?(0,s.jsx)(ge,{actions:g,prefixCls:ae}):null]})))}),Ve=ue,bn=function(e){var t=e.componentCls;return(0,f.Z)({},t,{"&-divider":{flex:"none",width:e.lineWidth,marginInline:e.marginXS,marginBlock:e.marginLG,backgroundColor:e.colorSplit,"&-horizontal":{width:"initial",height:e.lineWidth,marginInline:e.marginLG,marginBlock:e.marginXS}},"&&-size-small &-divider":{marginBlock:e.marginLG,marginInline:e.marginXS,"&-horizontal":{marginBlock:e.marginXS,marginInline:e.marginLG}}})};function Dn(n){return(0,fe.Xj)("ProCardDivider",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[bn(t)]})}var an=function(e){var t=(0,d.useContext)(De.ZP.ConfigContext),r=t.getPrefixCls,l=r("pro-card"),u="".concat(l,"-divider"),o=Dn(l),i=o.wrapSSR,c=o.hashId,m=e.className,v=e.style,P=v===void 0?{}:v,y=e.type,w=ie()(u,m,c,(0,f.Z)({},"".concat(u,"-").concat(y),y));return i((0,s.jsx)("div",{className:w,style:P}))},Zn=an,lr=function(e){return(0,s.jsx)(Ve,(0,a.Z)({bodyStyle:{padding:0}},e))},pe=Ve;pe.isProCard=!0,pe.Divider=Zn,pe.TabPane=$e,pe.Group=lr;var Te=pe,Be=Te,Ie=h(81296),vn=Ie.A,de=h(25846),hn=h(6747),Ne=h(25755),wr=h(84045),xn=h(47513),nn=h(30956),Dr=h(27982),Rn=h(3187),fr=h(16766),Ke=h(15457),or=h(75799),Un=h(7916),ir=h(52496),sr=h(99947),rn=h(85734),mr=["map_row_parentKey"],Fr=["map_row_parentKey","map_row_key"],Tr=["map_row_key"],Ir=function(e){return(wr.ZP.warn||wr.ZP.warning)(e)},fn=function(e){return Array.isArray(e)?e.join(","):e};function ur(n,e){var t,r=n.getRowKey,l=n.row,u=n.data,o=n.childrenColumnName,i=o===void 0?"children":o,c=(t=fn(n.key))===null||t===void 0?void 0:t.toString(),m=new Map;function v(y,w,Z){y.forEach(function(C,b){var p=(Z||0)*10+b,F=r(C,p).toString();C&&(0,Fe.Z)(C)==="object"&&i in C&&v(C[i]||[],F,p);var T=(0,a.Z)((0,a.Z)({},C),{},{map_row_key:F,children:void 0,map_row_parentKey:w});delete T.children,w||delete T.map_row_parentKey,m.set(F,T)})}e==="top"&&m.set(c,(0,a.Z)((0,a.Z)({},m.get(c)),l)),v(u),e==="update"&&m.set(c,(0,a.Z)((0,a.Z)({},m.get(c)),l)),e==="delete"&&m.delete(c);var P=function(w){var Z=new Map,C=[],b=function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;w.forEach(function(T){if(T.map_row_parentKey&&!T.map_row_key){var I=T.map_row_parentKey,K=(0,Pe.Z)(T,mr);if(Z.has(I)||Z.set(I,[]),F){var L;(L=Z.get(I))===null||L===void 0||L.push(K)}}})};return b(e==="top"),w.forEach(function(p){if(p.map_row_parentKey&&p.map_row_key){var F,T=p.map_row_parentKey,I=p.map_row_key,K=(0,Pe.Z)(p,Fr);Z.has(I)&&(K[i]=Z.get(I)),Z.has(T)||Z.set(T,[]),(F=Z.get(T))===null||F===void 0||F.push(K)}}),b(e==="update"),w.forEach(function(p){if(!p.map_row_parentKey){var F=p.map_row_key,T=(0,Pe.Z)(p,Tr);if(F&&Z.has(F)){var I=(0,a.Z)((0,a.Z)({},T),{},(0,f.Z)({},i,Z.get(F)));C.push(I);return}C.push(T)}}),C};return P(m)}function Er(n,e){var t=n.recordKey,r=n.onSave,l=n.row,u=n.children,o=n.newLineConfig,i=n.editorType,c=n.tableName,m=(0,d.useContext)(Un.J),v=xn.Z.useFormInstance(),P=(0,Re.Z)(!1),y=(0,le.Z)(P,2),w=y[0],Z=y[1],C=(0,Ke.J)((0,re.Z)((0,Y.Z)().mark(function b(){var p,F,T,I,K,L,j,E,X;return(0,Y.Z)().wrap(function(R){for(;;)switch(R.prev=R.next){case 0:return R.prev=0,F=i==="Map",T=[c,Array.isArray(t)?t[0]:t].map(function(x){return x==null?void 0:x.toString()}).flat(1).filter(Boolean),Z(!0),R.next=6,v.validateFields(T,{recursive:!0});case 6:return I=(m==null||(p=m.getFieldFormatValue)===null||p===void 0?void 0:p.call(m,T))||v.getFieldValue(T),Array.isArray(t)&&t.length>1&&(K=(0,hn.Z)(t),L=K.slice(1),j=(0,Rn.Z)(I,L),(0,fr.Z)(I,L,j)),E=F?(0,fr.Z)({},T,I,!0):I,R.next=11,r==null?void 0:r(t,(0,rn.T)({},l,E),l,o);case 11:return X=R.sent,Z(!1),R.abrupt("return",X);case 16:throw R.prev=16,R.t0=R.catch(0),console.log(R.t0),Z(!1),R.t0;case 21:case"end":return R.stop()}},b,null,[[0,16]])})));return(0,d.useImperativeHandle)(e,function(){return{save:C}},[C]),(0,s.jsxs)("a",{onClick:function(){var b=(0,re.Z)((0,Y.Z)().mark(function p(F){return(0,Y.Z)().wrap(function(I){for(;;)switch(I.prev=I.next){case 0:return F.stopPropagation(),F.preventDefault(),I.prev=2,I.next=5,C();case 5:I.next=9;break;case 7:I.prev=7,I.t0=I.catch(2);case 9:case"end":return I.stop()}},p,null,[[2,7]])}));return function(p){return b.apply(this,arguments)}}(),children:[w?(0,s.jsx)(Ne.Z,{style:{marginInlineEnd:8}}):null,u||"\u4FDD\u5B58"]},"save")}var Qn=function(e){var t=e.recordKey,r=e.onDelete,l=e.row,u=e.children,o=e.deletePopconfirmMessage,i=(0,Re.Z)(function(){return!1}),c=(0,le.Z)(i,2),m=c[0],v=c[1],P=(0,Ke.J)((0,re.Z)((0,Y.Z)().mark(function y(){var w;return(0,Y.Z)().wrap(function(C){for(;;)switch(C.prev=C.next){case 0:return C.prev=0,v(!0),C.next=4,r==null?void 0:r(t,l);case 4:return w=C.sent,v(!1),C.abrupt("return",w);case 9:return C.prev=9,C.t0=C.catch(0),console.log(C.t0),v(!1),C.abrupt("return",null);case 14:case"end":return C.stop()}},y,null,[[0,9]])})));return u!==!1?(0,s.jsx)(nn.Z,{title:o,onConfirm:function(){return P()},children:(0,s.jsxs)("a",{children:[m?(0,s.jsx)(Ne.Z,{style:{marginInlineEnd:8}}):null,u||"\u5220\u9664"]})},"delete"):null},hr=function(e){var t=e.recordKey,r=e.tableName,l=e.newLineConfig,u=e.editorType,o=e.onCancel,i=e.cancelEditable,c=e.row,m=e.cancelText,v=(0,d.useContext)(Un.J),P=xn.Z.useFormInstance();return(0,s.jsx)("a",{onClick:function(){var y=(0,re.Z)((0,Y.Z)().mark(function w(Z){var C,b,p,F,T,I;return(0,Y.Z)().wrap(function(L){for(;;)switch(L.prev=L.next){case 0:return Z.stopPropagation(),Z.preventDefault(),b=u==="Map",p=[r,t].flat(1).filter(Boolean),F=(v==null||(C=v.getFieldFormatValue)===null||C===void 0?void 0:C.call(v,p))||(P==null?void 0:P.getFieldValue(p)),T=b?(0,fr.Z)({},p,F):F,L.next=8,o==null?void 0:o(t,T,c,l);case 8:return I=L.sent,L.next=11,i(t);case 11:return P.setFieldsValue((0,f.Z)({},t,b?(0,Rn.Z)(c,p):c)),L.abrupt("return",I);case 13:case"end":return L.stop()}},w)}));return function(w){return y.apply(this,arguments)}}(),children:m||"\u53D6\u6D88"},"cancel")};function Mr(n,e){var t=e.recordKey,r=e.newLineConfig,l=e.saveText,u=e.deleteText,o=(0,d.forwardRef)(Er),i=(0,d.createRef)();return{save:(0,s.jsx)(o,(0,a.Z)((0,a.Z)({},e),{},{row:n,ref:i,children:l}),"save"+t),saveRef:i,delete:(r==null?void 0:r.options.recordKey)!==t?(0,s.jsx)(Qn,(0,a.Z)((0,a.Z)({},e),{},{row:n,children:u}),"delete"+t):void 0,cancel:(0,s.jsx)(hr,(0,a.Z)((0,a.Z)({},e),{},{row:n}),"cancel"+t)}}function jr(n){var e=(0,d.useState)(void 0),t=(0,le.Z)(e,2),r=t[0],l=t[1],u=function(){var S=new Map,N=function D(O,V){O==null||O.forEach(function(W,U){var M,B=V==null?U.toString():V+"_"+U.toString();S.set(B,fn(n.getRowKey(W,-1))),S.set((M=fn(n.getRowKey(W,-1)))===null||M===void 0?void 0:M.toString(),B),n.childrenColumnName&&W[n.childrenColumnName]&&D(W[n.childrenColumnName],B)})};return N(n.dataSource),S},o=(0,d.useMemo)(function(){return u()},[]),i=(0,d.useRef)(o),c=(0,d.useRef)(void 0);(0,ir.Au)(function(){i.current=u()},[n.dataSource]),c.current=r;var m=n.type||"single",v=(0,Dr.Z)(n.dataSource,"children",n.getRowKey),P=(0,le.Z)(v,1),y=P[0],w=(0,Re.Z)([],{value:n.editableKeys,onChange:n.onChange?function(z){var S,N,D;n==null||(S=n.onChange)===null||S===void 0||S.call(n,(N=z==null?void 0:z.filter(function(O){return O!==void 0}))!==null&&N!==void 0?N:[],(D=z==null?void 0:z.map(function(O){return y(O)}).filter(function(O){return O!==void 0}))!==null&&D!==void 0?D:[])}:void 0}),Z=(0,le.Z)(w,2),C=Z[0],b=Z[1],p=(0,d.useMemo)(function(){var z=m==="single"?C==null?void 0:C.slice(0,1):C;return new Set(z)},[(C||[]).join(","),m]),F=(0,sr.D)(C),T=(0,Ke.J)(function(z){var S,N,D,O,V=(S=n.getRowKey(z,z.index))===null||S===void 0||(N=S.toString)===null||N===void 0?void 0:N.call(S),W=(D=n.getRowKey(z,-1))===null||D===void 0||(O=D.toString)===null||O===void 0?void 0:O.call(D),U=C==null?void 0:C.map(function(_){return _==null?void 0:_.toString()}),M=(F==null?void 0:F.map(function(_){return _==null?void 0:_.toString()}))||[],B=n.tableName&&!!(M!=null&&M.includes(W))||!!(M!=null&&M.includes(V));return{recordKey:W,isEditable:n.tableName&&(U==null?void 0:U.includes(W))||(U==null?void 0:U.includes(V)),preIsEditable:B}}),I=(0,Ke.J)(function(z){return p.size>0&&m==="single"&&n.onlyOneLineEditorAlertMessage!==!1?(Ir(n.onlyOneLineEditorAlertMessage||"\u53EA\u80FD\u540C\u65F6\u7F16\u8F91\u4E00\u884C"),!1):(p.add(z),b(Array.from(p)),!0)}),K=(0,Ke.J)(function(){var z=(0,re.Z)((0,Y.Z)().mark(function S(N,D){var O,V;return(0,Y.Z)().wrap(function(U){for(;;)switch(U.prev=U.next){case 0:if(O=fn(N).toString(),V=i.current.get(O),!(!p.has(O)&&V&&(D==null||D)&&n.tableName)){U.next=5;break}return K(V,!1),U.abrupt("return");case 5:return r&&r.options.recordKey===N&&l(void 0),p.delete(O),p.delete(fn(N)),b(Array.from(p)),U.abrupt("return",!0);case 10:case"end":return U.stop()}},S)}));return function(S,N){return z.apply(this,arguments)}}()),L=(0,or.D)((0,re.Z)((0,Y.Z)().mark(function z(){var S,N,D,O,V=arguments;return(0,Y.Z)().wrap(function(U){for(;;)switch(U.prev=U.next){case 0:for(N=V.length,D=new Array(N),O=0;O0&&m==="single"&&n.onlyOneLineEditorAlertMessage!==!1)return Ir(n.onlyOneLineEditorAlertMessage||"\u53EA\u80FD\u540C\u65F6\u7F16\u8F91\u4E00\u884C"),!1;var N=n.getRowKey(z,-1);if(!N&&N!==0)throw(0,je.ET)(!!N,`\u8BF7\u8BBE\u7F6E recordCreatorProps.record \u5E76\u8FD4\u56DE\u4E00\u4E2A\u552F\u4E00\u7684key - https://procomponents.ant.design/components/editable-table#editable-%E6%96%B0%E5%BB%BA%E8%A1%8C`),new Error("\u8BF7\u8BBE\u7F6E recordCreatorProps.record \u5E76\u8FD4\u56DE\u4E00\u4E2A\u552F\u4E00\u7684key");if(p.add(N),b(Array.from(p)),(S==null?void 0:S.newRecordType)==="dataSource"||n.tableName){var D,O={data:n.dataSource,getRowKey:n.getRowKey,row:(0,a.Z)((0,a.Z)({},z),{},{map_row_parentKey:S!=null&&S.parentKey?(D=fn(S==null?void 0:S.parentKey))===null||D===void 0?void 0:D.toString():void 0}),key:N,childrenColumnName:n.childrenColumnName||"children"};n.setDataSource(ur(O,(S==null?void 0:S.position)==="top"?"top":"update"))}else l({defaultValue:z,options:(0,a.Z)((0,a.Z)({},S),{},{recordKey:N})});return!0}),R=(0,de.YB)(),x=(n==null?void 0:n.saveText)||R.getMessage("editableTable.action.save","\u4FDD\u5B58"),G=(n==null?void 0:n.deleteText)||R.getMessage("editableTable.action.delete","\u5220\u9664"),A=(n==null?void 0:n.cancelText)||R.getMessage("editableTable.action.cancel","\u53D6\u6D88"),g=(0,Ke.J)(function(){var z=(0,re.Z)((0,Y.Z)().mark(function S(N,D,O,V){var W,U,M,B,_,ee,ce;return(0,Y.Z)().wrap(function(ve){for(;;)switch(ve.prev=ve.next){case 0:return ve.next=2,n==null||(W=n.onSave)===null||W===void 0?void 0:W.call(n,N,D,O,V);case 2:return B=ve.sent,ve.next=5,K(N);case 5:if(_=V||c.current||{},ee=_.options,!(!(ee!=null&&ee.parentKey)&&(ee==null?void 0:ee.recordKey)===N)){ve.next=9;break}return(ee==null?void 0:ee.position)==="top"?n.setDataSource([D].concat((0,We.Z)(n.dataSource))):n.setDataSource([].concat((0,We.Z)(n.dataSource),[D])),ve.abrupt("return",B);case 9:return ce={data:n.dataSource,getRowKey:n.getRowKey,row:ee?(0,a.Z)((0,a.Z)({},D),{},{map_row_parentKey:(U=fn((M=ee==null?void 0:ee.parentKey)!==null&&M!==void 0?M:""))===null||U===void 0?void 0:U.toString()}):D,key:N,childrenColumnName:n.childrenColumnName||"children"},n.setDataSource(ur(ce,(ee==null?void 0:ee.position)==="top"?"top":"update")),ve.next=13,K(N);case 13:return ve.abrupt("return",B);case 14:case"end":return ve.stop()}},S)}));return function(S,N,D,O){return z.apply(this,arguments)}}()),$=(0,Ke.J)(function(){var z=(0,re.Z)((0,Y.Z)().mark(function S(N,D){var O,V,W;return(0,Y.Z)().wrap(function(M){for(;;)switch(M.prev=M.next){case 0:return V={data:n.dataSource,getRowKey:n.getRowKey,row:D,key:N,childrenColumnName:n.childrenColumnName||"children"},M.next=3,n==null||(O=n.onDelete)===null||O===void 0?void 0:O.call(n,N,D);case 3:return W=M.sent,M.next=6,K(N,!1);case 6:return n.setDataSource(ur(V,"delete")),M.abrupt("return",W);case 8:case"end":return M.stop()}},S)}));return function(S,N){return z.apply(this,arguments)}}()),k=(0,Ke.J)(function(){var z=(0,re.Z)((0,Y.Z)().mark(function S(N,D,O,V){var W,U;return(0,Y.Z)().wrap(function(B){for(;;)switch(B.prev=B.next){case 0:return B.next=2,n==null||(W=n.onCancel)===null||W===void 0?void 0:W.call(n,N,D,O,V);case 2:return U=B.sent,B.abrupt("return",U);case 4:case"end":return B.stop()}},S)}));return function(S,N,D,O){return z.apply(this,arguments)}}()),J=function(S){var N=n.getRowKey(S,S.index),D={saveText:x,cancelText:A,deleteText:G,addEditRecord:H,recordKey:N,cancelEditable:K,index:S.index,tableName:n.tableName,newLineConfig:r,onCancel:k,onDelete:$,onSave:g,editableKeys:C,setEditableRowKeys:b,deletePopconfirmMessage:n.deletePopconfirmMessage||"".concat(R.getMessage("deleteThisLine","\u5220\u9664\u6B64\u9879"),"?")},O=Mr(S,D);return n.tableName?E.current.set(i.current.get(fn(N))||fn(N),O.saveRef):E.current.set(fn(N),O.saveRef),n.actionRender?n.actionRender(S,D,{save:O.save,delete:O.delete,cancel:O.cancel}):[O.save,O.delete,O.cancel]};return{editableKeys:C,setEditableRowKeys:b,isEditable:T,actionRender:J,startEditable:I,cancelEditable:K,addEditRecord:H,saveEditable:X,newLineRecord:r,preEditableKeys:F,onValuesChange:j}}var gn=h(48145),qn=h(59338),dr=h(32245),On=h(93935),_n=h(57414),Or=function(e){return(0,f.Z)({},e.componentCls,{marginBlockEnd:16,backgroundColor:(0,fe.uK)(e.colorTextBase,.02),borderRadius:e.borderRadius,border:"none","&-container":{paddingBlock:e.paddingSM,paddingInline:e.paddingLG},"&-info":{display:"flex",alignItems:"center",transition:"all 0.3s",color:e.colorTextTertiary,"&-content":{flex:1},"&-option":{minWidth:48,paddingInlineStart:16}}})};function Vr(n){return(0,fe.Xj)("ProTableAlert",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[Or(t)]})}var se=function(e){var t=e.intl,r=e.onCleanSelected;return[(0,s.jsx)("a",{onClick:r,children:t.getMessage("alert.clear","\u6E05\u7A7A")},"0")]};function xe(n){var e=n.selectedRowKeys,t=e===void 0?[]:e,r=n.onCleanSelected,l=n.alwaysShowAlert,u=n.selectedRows,o=n.alertInfoRender,i=o===void 0?function(T){var I=T.intl;return(0,s.jsxs)(_n.Z,{children:[I.getMessage("alert.selected","\u5DF2\u9009\u62E9"),t.length,I.getMessage("alert.item","\u9879"),"\xA0\xA0"]})}:o,c=n.alertOptionRender,m=c===void 0?se:c,v=(0,de.YB)(),P=m&&m({onCleanSelected:r,selectedRowKeys:t,selectedRows:u,intl:v}),y=(0,d.useContext)(De.ZP.ConfigContext),w=y.getPrefixCls,Z=w("pro-table-alert"),C=Vr(Z),b=C.wrapSSR,p=C.hashId;if(i===!1)return null;var F=i({intl:v,selectedRowKeys:t,selectedRows:u,onCleanSelected:r});return F===!1||t.length<1&&!l?null:b((0,s.jsx)("div",{className:"".concat(Z," ").concat(p).trim(),children:(0,s.jsx)("div",{className:"".concat(Z,"-container ").concat(p).trim(),children:(0,s.jsxs)("div",{className:"".concat(Z,"-info ").concat(p).trim(),children:[(0,s.jsx)("div",{className:"".concat(Z,"-info-content ").concat(p).trim(),children:F}),P?(0,s.jsx)("div",{className:"".concat(Z,"-info-option ").concat(p).trim(),children:P}):null]})})}))}var Je=xe,ke=h(14346),er=h(60412),Cn=h(86717),kr=h(87498),ln=h(73726),Ar=h(31989),$r=function(e){return e!=null};function wt(n,e,t){var r,l;if(n===!1)return!1;var u=e.total,o=e.current,i=e.pageSize,c=e.setPageInfo,m=(0,Fe.Z)(n)==="object"?n:{};return(0,a.Z)((0,a.Z)({showTotal:function(P,y){return"".concat(t.getMessage("pagination.total.range","\u7B2C")," ").concat(y[0],"-").concat(y[1]," ").concat(t.getMessage("pagination.total.total","\u6761/\u603B\u5171")," ").concat(P," ").concat(t.getMessage("pagination.total.item","\u6761"))},total:u},m),{},{current:n!==!0&&n&&(r=n.current)!==null&&r!==void 0?r:o,pageSize:n!==!0&&n&&(l=n.pageSize)!==null&&l!==void 0?l:i,onChange:function(P,y){var w=n,Z=w.onChange;Z==null||Z(P,y||20),(y!==i||o!==P)&&c({pageSize:y,current:P})}})}function Ft(n,e,t){var r=(0,a.Z)((0,a.Z)({},t.editableUtils),{},{pageInfo:e.pageInfo,reload:function(){var l=(0,re.Z)((0,Y.Z)().mark(function o(i){return(0,Y.Z)().wrap(function(m){for(;;)switch(m.prev=m.next){case 0:if(!i){m.next=3;break}return m.next=3,e.setPageInfo({current:1});case 3:return m.next=5,e==null?void 0:e.reload();case 5:case"end":return m.stop()}},o)}));function u(o){return l.apply(this,arguments)}return u}(),reloadAndRest:function(){var l=(0,re.Z)((0,Y.Z)().mark(function o(){return(0,Y.Z)().wrap(function(c){for(;;)switch(c.prev=c.next){case 0:return t.onCleanSelected(),c.next=3,e.setPageInfo({current:1});case 3:return c.next=5,e==null?void 0:e.reload();case 5:case"end":return c.stop()}},o)}));function u(){return l.apply(this,arguments)}return u}(),reset:function(){var l=(0,re.Z)((0,Y.Z)().mark(function o(){var i;return(0,Y.Z)().wrap(function(m){for(;;)switch(m.prev=m.next){case 0:return m.next=2,t.resetAll();case 2:return m.next=4,e==null||(i=e.reset)===null||i===void 0?void 0:i.call(e);case 4:return m.next=6,e==null?void 0:e.reload();case 6:case"end":return m.stop()}},o)}));function u(){return l.apply(this,arguments)}return u}(),fullScreen:function(){return t.fullScreen()},clearSelected:function(){return t.onCleanSelected()},setPageInfo:function(u){return e.setPageInfo(u)}});n.current=r}function Tt(n,e){return e.filter(function(t){return t}).length<1?n:e.reduce(function(t,r){return r(t)},n)}var rt=function(e,t){return t===void 0?!1:typeof t=="boolean"?t:t[e]},It=function(e){var t;return e&&(0,Fe.Z)(e)==="object"&&(e==null||(t=e.props)===null||t===void 0?void 0:t.colSpan)},gr=function(e,t){return e?Array.isArray(e)?e.join("-"):e.toString():"".concat(t)};function Et(n){return Array.isArray(n)?n.join(","):n==null?void 0:n.toString()}function Mt(n){var e={},t={};return n.forEach(function(r){var l=Et(r.dataIndex);if(l){if(r.filters){var u=r.defaultFilteredValue;u===void 0?e[l]=null:e[l]=r.defaultFilteredValue}r.sorter&&r.defaultSortOrder&&(t[l]=r.defaultSortOrder)}}),{sort:t,filter:e}}function jt(){var n=(0,d.useState)(!0),e=(0,le.Z)(n,2),t=e[1],r=(0,d.useCallback)(function(){return t(function(l){return!l})},[]);return r}function Nt(n,e){var t=(0,d.useMemo)(function(){var r={current:e};return new Proxy(r,{set:function(u,o,i){return Object.is(u[o],i)||(u[o]=i,n(t)),!0}})},[]);return t}function Lt(n){var e=jt(),t=Nt(e,n);return t}var tt=h(66631),Vn=h(64410),Ur=h(1643),Bt=h(39953),Kt=h(84560),Dt=h.n(Kt),Hr=h(26736),Gr=h(92284),Ot=function(e){return(0,f.Z)({},e.componentCls,{"&-sidebar-dragger":{width:"5px",cursor:"ew-resize",padding:"4px 0 0",borderTop:"1px solid transparent",position:"absolute",top:0,left:0,bottom:0,zIndex:100,backgroundColor:"transparent","&-min-disabled":{cursor:"w-resize"},"&-max-disabled":{cursor:"e-resize"}}})};function At(n){return(0,fe.Xj)("DrawerForm",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[Ot(t)]})}var $t=["children","trigger","onVisibleChange","drawerProps","onFinish","submitTimeout","title","width","resize","onOpenChange","visible","open"];function zt(n){var e,t,r,l,u,o,i=n.children,c=n.trigger,m=n.onVisibleChange,v=n.drawerProps,P=n.onFinish,y=n.submitTimeout,w=n.title,Z=n.width,C=Z===void 0?800:Z,b=n.resize,p=n.onOpenChange,F=n.visible,T=n.open,I=(0,Pe.Z)(n,$t);(0,je.ET)(!I.footer||!(v!=null&&v.footer),"DrawerForm \u662F\u4E00\u4E2A ProForm \u7684\u7279\u6B8A\u5E03\u5C40\uFF0C\u5982\u679C\u60F3\u81EA\u5B9A\u4E49\u6309\u94AE\uFF0C\u8BF7\u4F7F\u7528 submit.render \u81EA\u5B9A\u4E49\u3002");var K=b?(0,gn.Y)({onResize:b.onResize,maxWidth:b.maxWidth,minWidth:b.minWidth}):{},L=(0,d.useContext)(De.ZP.ConfigContext),j=L.getPrefixCls("pro-form-drawer"),E=At(j),X=E.wrapSSR,H=E.hashId,R=function(q){return"".concat(j,"-").concat(q," ").concat(H)},x=(0,d.useState)([]),G=(0,le.Z)(x,2),A=G[1],g=(0,d.useState)(!1),$=(0,le.Z)(g,2),k=$[0],J=$[1],z=(0,d.useState)(!1),S=(0,le.Z)(z,2),N=S[0],D=S[1],O=(0,d.useState)((e=K==null?void 0:K.minWidth)!==null&&e!==void 0?e:C),V=(0,le.Z)(O,2),W=V[0],U=V[1],M=(0,Re.Z)(!!F,{value:T||F,onChange:p||m}),B=(0,le.Z)(M,2),_=B[0],ee=B[1],ce=(0,d.useRef)(null),ye=(0,d.useCallback)(function(Ce){ce.current===null&&Ce&&A([]),ce.current=Ce},[]),ve=(0,d.useRef)(),Ze=(0,d.useCallback)(function(){var Ce,q,me,ae=(Ce=(q=(me=I.formRef)===null||me===void 0?void 0:me.current)!==null&&q!==void 0?q:I.form)!==null&&Ce!==void 0?Ce:ve.current;ae&&v!==null&&v!==void 0&&v.destroyOnClose&&ae.resetFields()},[v==null?void 0:v.destroyOnClose,I.form,I.formRef]);(0,d.useEffect)(function(){_&&(T||F)&&(p==null||p(!0),m==null||m(!0)),N&&U(K==null?void 0:K.minWidth)},[F,_,N]),(0,d.useImperativeHandle)(I.formRef,function(){return ve.current},[ve.current]);var qe=(0,d.useMemo)(function(){return c?d.cloneElement(c,(0,a.Z)((0,a.Z)({key:"trigger"},c.props),{},{onClick:function(){var Ce=(0,re.Z)((0,Y.Z)().mark(function me(ae){var ze,Me;return(0,Y.Z)().wrap(function(un){for(;;)switch(un.prev=un.next){case 0:ee(!_),D(!Object.keys(K)),(ze=c.props)===null||ze===void 0||(Me=ze.onClick)===null||Me===void 0||Me.call(ze,ae);case 3:case"end":return un.stop()}},me)}));function q(me){return Ce.apply(this,arguments)}return q}()})):null},[ee,c,_,D,N]),He=(0,d.useMemo)(function(){var Ce,q,me,ae,ze,Me;return I.submitter===!1?!1:Dt()({searchConfig:{submitText:(Ce=(q=L.locale)===null||q===void 0||(me=q.Modal)===null||me===void 0?void 0:me.okText)!==null&&Ce!==void 0?Ce:"\u786E\u8BA4",resetText:(ae=(ze=L.locale)===null||ze===void 0||(Me=ze.Modal)===null||Me===void 0?void 0:Me.cancelText)!==null&&ae!==void 0?ae:"\u53D6\u6D88"},resetButtonProps:{preventDefault:!0,disabled:y?k:void 0,onClick:function(un){var An;ee(!1),v==null||(An=v.onClose)===null||An===void 0||An.call(v,un)}}},I.submitter)},[I.submitter,(t=L.locale)===null||t===void 0||(r=t.Modal)===null||r===void 0?void 0:r.okText,(l=L.locale)===null||l===void 0||(u=l.Modal)===null||u===void 0?void 0:u.cancelText,y,k,ee,v]),Ye=(0,d.useCallback)(function(Ce,q){return(0,s.jsxs)(s.Fragment,{children:[Ce,ce.current&&q?(0,s.jsx)(d.Fragment,{children:(0,Hr.createPortal)(q,ce.current)},"submitter"):q]})},[]),on=(0,Ke.J)(function(){var Ce=(0,re.Z)((0,Y.Z)().mark(function q(me){var ae,ze,Me;return(0,Y.Z)().wrap(function(un){for(;;)switch(un.prev=un.next){case 0:return ae=P==null?void 0:P(me),y&&ae instanceof Promise&&(J(!0),ze=setTimeout(function(){return J(!1)},y),ae.finally(function(){clearTimeout(ze),J(!1)})),un.next=4,ae;case 4:return Me=un.sent,Me&&ee(!1),un.abrupt("return",Me);case 7:case"end":return un.stop()}},q)}));return function(q){return Ce.apply(this,arguments)}}()),_e=(0,Ur.X)(_,m),Pn=(0,d.useCallback)(function(Ce){var q,me,ae=(document.body.offsetWidth||1e3)-(Ce.clientX-document.body.offsetLeft),ze=(q=K==null?void 0:K.minWidth)!==null&&q!==void 0?q:C,Me=(me=K==null?void 0:K.maxWidth)!==null&&me!==void 0?me:window.innerWidth*.8;if(aeMe){U(Me);return}U(ae)},[K==null?void 0:K.maxWidth,K==null?void 0:K.minWidth,C]),En=(0,d.useCallback)(function(){document.removeEventListener("mousemove",Pn),document.removeEventListener("mouseup",En)},[Pn]);return X((0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(Bt.Z,(0,a.Z)((0,a.Z)((0,a.Z)({title:w,width:W},v),_e),{},{afterOpenChange:function(q){var me;q||Ze(),v==null||(me=v.afterOpenChange)===null||me===void 0||me.call(v,q)},onClose:function(q){var me;y&&k||(ee(!1),v==null||(me=v.onClose)===null||me===void 0||me.call(v,q))},footer:I.submitter!==!1&&(0,s.jsx)("div",{ref:ye,style:{display:"flex",justifyContent:"flex-end"}}),children:[(0,s.jsx)("div",{className:b?ie()(R("sidebar-dragger"),H,(o={},(0,f.Z)(o,R("sidebar-dragger-min-disabled"),W===(K==null?void 0:K.minWidth)),(0,f.Z)(o,R("sidebar-dragger-max-disabled"),W===(K==null?void 0:K.maxWidth)),o)):null,onMouseDown:function(q){var me;K==null||(me=K.onResize)===null||me===void 0||me.call(K),q.stopPropagation(),q.preventDefault(),document.addEventListener("mousemove",Pn),document.addEventListener("mouseup",En),D(!0)}}),(0,s.jsx)(s.Fragment,{children:(0,s.jsx)(Gr.I,(0,a.Z)((0,a.Z)({formComponentType:"DrawerForm",layout:"vertical"},I),{},{formRef:ve,onInit:function(q,me){var ae;I.formRef&&(I.formRef.current=me),I==null||(ae=I.onInit)===null||ae===void 0||ae.call(I,q,me),ve.current=me},submitter:He,onFinish:function(){var Ce=(0,re.Z)((0,Y.Z)().mark(function q(me){var ae;return(0,Y.Z)().wrap(function(Me){for(;;)switch(Me.prev=Me.next){case 0:return Me.next=2,on(me);case 2:return ae=Me.sent,Me.abrupt("return",ae);case 4:case"end":return Me.stop()}},q)}));return function(q){return Ce.apply(this,arguments)}}(),contentRender:Ye,children:i}))})]})),qe]}))}var pr=h(60698),Wt={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V642h182.9v156zm9.6-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z"}}]},name:"filter",theme:"outlined"},Vt=Wt,yr=h(17202),kt=function(e,t){return d.createElement(yr.Z,(0,pr.Z)({},e,{ref:t,icon:Vt}))},Ut=d.forwardRef(kt),Ht=h(54637),Gt=h(27675),Xt=function(e){return(0,f.Z)({},e.componentCls,{lineHeight:"30px","&::before":{display:"block",height:0,visibility:"hidden",content:"'.'"},"&-small":{lineHeight:e.lineHeight},"&-container":{display:"flex",flexWrap:"wrap",gap:e.marginXS},"&-item":(0,f.Z)({whiteSpace:"nowrap"},"".concat(e.antCls,"-form-item"),{marginBlock:0}),"&-line":{minWidth:"198px"},"&-line:not(:first-child)":{marginBlockStart:"16px",marginBlockEnd:8},"&-collapse-icon":{width:e.controlHeight,height:e.controlHeight,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center"},"&-effective":(0,f.Z)({},"".concat(e.componentCls,"-collapse-icon"),{backgroundColor:e.colorBgTextHover})})};function Jt(n){return(0,fe.Xj)("LightFilter",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[Xt(t)]})}var Yt=["size","collapse","collapseLabel","initialValues","onValuesChange","form","placement","formRef","bordered","ignoreRules","footerRender"],Qt=function(e){var t=e.items,r=e.prefixCls,l=e.size,u=l===void 0?"middle":l,o=e.collapse,i=e.collapseLabel,c=e.onValuesChange,m=e.bordered,v=e.values,P=e.footerRender,y=e.placement,w=(0,de.YB)(),Z="".concat(r,"-light-filter"),C=Jt(Z),b=C.wrapSSR,p=C.hashId,F=(0,d.useState)(!1),T=(0,le.Z)(F,2),I=T[0],K=T[1],L=(0,d.useState)(function(){return(0,a.Z)({},v)}),j=(0,le.Z)(L,2),E=j[0],X=j[1];(0,d.useEffect)(function(){X((0,a.Z)({},v))},[v]);var H=(0,d.useMemo)(function(){var A=[],g=[];return t.forEach(function($){var k=$.props||{},J=k.secondary;J||o?A.push($):g.push($)}),{collapseItems:A,outsideItems:g}},[e.items]),R=H.collapseItems,x=H.outsideItems,G=function(){return i||(o?(0,s.jsx)(Ut,{className:"".concat(Z,"-collapse-icon ").concat(p).trim()}):(0,s.jsx)(Ht.Q,{size:u,label:w.getMessage("form.lightFilter.more","\u66F4\u591A\u7B5B\u9009")}))};return b((0,s.jsx)("div",{className:ie()(Z,p,"".concat(Z,"-").concat(u),(0,f.Z)({},"".concat(Z,"-effective"),Object.keys(v).some(function(A){return Array.isArray(v[A])?v[A].length>0:v[A]}))),children:(0,s.jsxs)("div",{className:"".concat(Z,"-container ").concat(p).trim(),children:[x.map(function(A,g){var $=A.key,k=A.props.fieldProps,J=k!=null&&k.placement?k==null?void 0:k.placement:y;return(0,s.jsx)("div",{className:"".concat(Z,"-item ").concat(p).trim(),children:d.cloneElement(A,{fieldProps:(0,a.Z)((0,a.Z)({},A.props.fieldProps),{},{placement:J}),proFieldProps:(0,a.Z)((0,a.Z)({},A.props.proFieldProps),{},{light:!0,label:A.props.label,bordered:m}),bordered:m})},$||g)}),R.length?(0,s.jsx)("div",{className:"".concat(Z,"-item ").concat(p).trim(),children:(0,s.jsx)(Gt.M,{padding:24,open:I,onOpenChange:function(g){K(g)},placement:y,label:G(),footerRender:P,footer:{onConfirm:function(){c((0,a.Z)({},E)),K(!1)},onClear:function(){var g={};R.forEach(function($){var k=$.props.name;g[k]=void 0}),c(g)}},children:R.map(function(A){var g=A.key,$=A.props,k=$.name,J=$.fieldProps,z=(0,a.Z)((0,a.Z)({},J),{},{onChange:function(D){return X((0,a.Z)((0,a.Z)({},E),{},(0,f.Z)({},k,D!=null&&D.target?D.target.value:D))),!1}});E.hasOwnProperty(k)&&(z[A.props.valuePropName||"value"]=E[k]);var S=J!=null&&J.placement?J==null?void 0:J.placement:y;return(0,s.jsx)("div",{className:"".concat(Z,"-line ").concat(p).trim(),children:d.cloneElement(A,{fieldProps:(0,a.Z)((0,a.Z)({},z),{},{placement:S})})},g)})})},"more"):null]})}))};function qt(n){var e=n.size,t=n.collapse,r=n.collapseLabel,l=n.initialValues,u=n.onValuesChange,o=n.form,i=n.placement,c=n.formRef,m=n.bordered,v=n.ignoreRules,P=n.footerRender,y=(0,Pe.Z)(n,Yt),w=(0,d.useContext)(De.ZP.ConfigContext),Z=w.getPrefixCls,C=Z("pro-form"),b=(0,d.useState)(function(){return(0,a.Z)({},l)}),p=(0,le.Z)(b,2),F=p[0],T=p[1],I=(0,d.useRef)();return(0,d.useImperativeHandle)(c,function(){return I.current},[I.current]),(0,s.jsx)(Gr.I,(0,a.Z)((0,a.Z)({size:e,initialValues:l,form:o,contentRender:function(L){return(0,s.jsx)(Qt,{prefixCls:C,items:L==null?void 0:L.flatMap(function(j){return(j==null?void 0:j.type.displayName)==="ProForm-Group"?j.props.children:j}),size:e,bordered:m,collapse:t,collapseLabel:r,placement:i,values:F||{},footerRender:P,onValuesChange:function(E){var X,H,R=(0,a.Z)((0,a.Z)({},F),E);T(R),(X=I.current)===null||X===void 0||X.setFieldsValue(R),(H=I.current)===null||H===void 0||H.submit(),u&&u(E,R)}})},formRef:I,formItemProps:{colon:!1,labelAlign:"left"},fieldProps:{style:{width:void 0}}},(0,he.Z)(y,["labelWidth"])),{},{onValuesChange:function(L,j){var E;T(j),u==null||u(L,j),(E=I.current)===null||E===void 0||E.submit()}}))}var _t=h(47867),at=h(30288),lt=h(19425),Xr=h(10130),ot=function(e){if(e&&e!==!0)return e},ea=function(e,t,r,l){return e?(0,s.jsxs)(s.Fragment,{children:[r.getMessage("tableForm.collapsed","\u5C55\u5F00"),l&&"(".concat(l,")"),(0,s.jsx)(Xr.Z,{style:{marginInlineStart:"0.5em",transition:"0.3s all",transform:"rotate(".concat(e?0:.5,"turn)")}})]}):(0,s.jsxs)(s.Fragment,{children:[r.getMessage("tableForm.expand","\u6536\u8D77"),(0,s.jsx)(Xr.Z,{style:{marginInlineStart:"0.5em",transition:"0.3s all",transform:"rotate(".concat(e?0:.5,"turn)")}})]})},na=function(e){var t=e.setCollapsed,r=e.collapsed,l=r===void 0?!1:r,u=e.submitter,o=e.style,i=e.hiddenNum,c=(0,d.useContext)(De.ZP.ConfigContext),m=c.getPrefixCls,v=(0,de.YB)(),P=(0,d.useContext)(de.L_),y=P.hashId,w=ot(e.collapseRender)||ea;return(0,s.jsxs)(_n.Z,{style:o,size:16,children:[u,e.collapseRender!==!1&&(0,s.jsx)("a",{className:"".concat(m("pro-query-filter-collapse-button")," ").concat(y).trim(),onClick:function(){return t(!l)},children:w==null?void 0:w(l,e,v,i)})]})},ra=na,ta=function(e){var t,r;return(0,f.Z)({},e.componentCls,(r={"&&":{padding:24}},(0,f.Z)(r,"".concat(e.antCls,"-form-item"),{marginBlock:0}),(0,f.Z)(r,"".concat(e.proComponentsCls,"-form-group-title"),{marginBlock:0}),(0,f.Z)(r,"&-row",{rowGap:24,"&-split":(t={},(0,f.Z)(t,"".concat(e.proComponentsCls,"-form-group"),{display:"flex",alignItems:"center",gap:e.marginXS}),(0,f.Z)(t,"&:last-child",{marginBlockEnd:12}),t),"&-split-line":{"&:after":{position:"absolute",width:"100%",content:'""',height:1,insetBlockEnd:-12,borderBlockEnd:"1px dashed ".concat(e.colorSplit)}}}),(0,f.Z)(r,"&-collapse-button",{display:"flex",alignItems:"center",color:e.colorPrimary}),r))};function aa(n){return(0,fe.Xj)("QueryFilter",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[ta(t)]})}var la=["collapsed","layout","defaultCollapsed","defaultColsNumber","span","searchGutter","searchText","resetText","optionRender","collapseRender","onReset","onCollapse","labelWidth","style","split","preserve","ignoreRules","showHiddenNum","submitterColSpanProps"],Jr,Yr,oa={xs:513,sm:513,md:785,lg:992,xl:1057,xxl:1/0},it={vertical:[[513,1,"vertical"],[785,2,"vertical"],[1057,3,"vertical"],[1/0,4,"vertical"]],default:[[513,1,"vertical"],[701,2,"vertical"],[1062,3,"horizontal"],[1352,3,"horizontal"],[1/0,4,"horizontal"]]},ia=function(e,t,r){if(r&&typeof r=="number")return{span:r,layout:e};var l=r?["xs","sm","md","lg","xl","xxl"].map(function(o){return[oa[o],24/r[o],"horizontal"]}):it[e||"default"],u=(l||it.default).find(function(o){return tI-1)&&!!N&&E>=24;X+=1;var ee=d.isValidElement(S)&&(S.key||"".concat((W=S.props)===null||W===void 0?void 0:W.name))||N;return d.isValidElement(S)&&_?e.preserve?{itemDom:d.cloneElement(S,{hidden:!0,key:ee||N}),hidden:!0,colSpan:M}:{itemDom:null,colSpan:0,hidden:!0}:{itemDom:S,colSpan:M,hidden:!1}}),A=G.map(function(S,N){var D,O,V=S.itemDom,W=S.colSpan,U=V==null||(D=V.props)===null||D===void 0?void 0:D.hidden;if(U)return V;var M=d.isValidElement(V)&&(V.key||"".concat((O=V.props)===null||O===void 0?void 0:O.name))||N;return 24-x%2424){var O,V;return 24-((O=(V=e.submitterColSpanProps)===null||V===void 0?void 0:V.span)!==null&&O!==void 0?O:T.span)}return 24-D},[x,x%24+((t=(r=e.submitterColSpanProps)===null||r===void 0?void 0:r.span)!==null&&t!==void 0?t:T.span),(l=e.submitterColSpanProps)===null||l===void 0?void 0:l.span]),J=(0,d.useContext)(De.ZP.ConfigContext),z=J.getPrefixCls("pro-query-filter");return(0,s.jsxs)(tn.Z,{gutter:K,justify:"start",className:ie()("".concat(z,"-row"),c),children:[A,j&&(0,s.jsx)(Ae.Z,(0,a.Z)((0,a.Z)({span:T.span,offset:k,className:ie()((u=e.submitterColSpanProps)===null||u===void 0?void 0:u.className)},e.submitterColSpanProps),{},{style:{textAlign:"end"},children:(0,s.jsx)(xn.Z.Item,{label:" ",colon:!1,shouldUpdate:!1,className:"".concat(z,"-actions ").concat(c).trim(),children:(0,s.jsx)(ra,{hiddenNum:g,collapsed:w,collapseRender:$?b:!1,submitter:j,setCollapsed:Z},"pro-form-query-filter-actions")})}),"submitter")]},"resize-observer-row")},da=(0,at.j)()?(Jr=document)===null||Jr===void 0||(Yr=Jr.body)===null||Yr===void 0?void 0:Yr.clientWidth:1024;function ca(n){var e=n.collapsed,t=n.layout,r=n.defaultCollapsed,l=r===void 0?!0:r,u=n.defaultColsNumber,o=n.span,i=n.searchGutter,c=i===void 0?24:i,m=n.searchText,v=n.resetText,P=n.optionRender,y=n.collapseRender,w=n.onReset,Z=n.onCollapse,C=n.labelWidth,b=C===void 0?"80":C,p=n.style,F=n.split,T=n.preserve,I=T===void 0?!0:T,K=n.ignoreRules,L=n.showHiddenNum,j=L===void 0?!1:L,E=n.submitterColSpanProps,X=(0,Pe.Z)(n,la),H=(0,d.useContext)(De.ZP.ConfigContext),R=H.getPrefixCls("pro-query-filter"),x=aa(R),G=x.wrapSSR,A=x.hashId,g=(0,Re.Z)(function(){return typeof(p==null?void 0:p.width)=="number"?p==null?void 0:p.width:da}),$=(0,le.Z)(g,2),k=$[0],J=$[1],z=(0,d.useMemo)(function(){return ia(t,k+16,o)},[t,k,o]),S=(0,d.useMemo)(function(){return u!==void 0?u-1:Math.max(1,24/z.span-1)},[u,z.span]),N=(0,d.useMemo)(function(){if(b&&z.layout!=="vertical"&&b!=="auto")return{labelCol:{flex:"0 0 ".concat(b,"px")},wrapperCol:{style:{maxWidth:"calc(100% - ".concat(b,"px)")}},style:{flexWrap:"nowrap"}}},[z.layout,b]);return G((0,s.jsx)(lt.Z,{onResize:function(O){k!==O.width&&O.width>17&&J(O.width)},children:(0,s.jsx)(Gr.I,(0,a.Z)((0,a.Z)({isKeyPressSubmit:!0,preserve:I},X),{},{className:ie()(R,A,X.className),onReset:w,style:p,layout:z.layout,fieldProps:{style:{width:"100%"}},formItemProps:N,groupProps:{titleStyle:{display:"inline-block",marginInlineEnd:16}},contentRender:function(O,V,W){return(0,s.jsx)(ua,{spanSize:z,collapsed:e,form:W,submitterColSpanProps:E,collapseRender:y,defaultCollapsed:l,onCollapse:Z,optionRender:P,submitter:V,items:O,split:F,baseClassName:R,resetText:n.resetText,searchText:n.searchText,searchGutter:c,preserve:I,ignoreRules:K,showLength:S,showHiddenNum:j})}}))},"resize-observer"))}var st=h(95122),va=["steps","columns","forceUpdate","grid"],fa=function(e){var t=e.steps,r=e.columns,l=e.forceUpdate,u=e.grid,o=(0,Pe.Z)(e,va),i=(0,tt.d)(o),c=(0,d.useCallback)(function(v){var P,y;(P=(y=i.current).onCurrentChange)===null||P===void 0||P.call(y,v),l([])},[l,i]),m=(0,d.useMemo)(function(){return t==null?void 0:t.map(function(v,P){return(0,d.createElement)(vt,(0,a.Z)((0,a.Z)({grid:u},v),{},{key:P,layoutType:"StepForm",columns:r[P]}))})},[r,u,t]);return(0,s.jsx)(st.L0,(0,a.Z)((0,a.Z)({},o),{},{onCurrentChange:c,children:m}))},ma=fa,ha=function(e){var t=e.children;return(0,s.jsx)(s.Fragment,{children:t})},ga=ha,ut=h(19943),pa=function(e,t){if(e.valueType==="dependency"){var r,l,u,o=(r=e.getFieldProps)===null||r===void 0?void 0:r.call(e);return(0,je.ET)(Array.isArray((l=e.name)!==null&&l!==void 0?l:o==null?void 0:o.name),'SchemaForm: fieldProps.name should be NamePath[] when valueType is "dependency"'),(0,je.ET)(typeof e.columns=="function",'SchemaForm: columns should be a function when valueType is "dependency"'),Array.isArray((u=e.name)!==null&&u!==void 0?u:o==null?void 0:o.name)?(0,d.createElement)(ut.Z,(0,a.Z)((0,a.Z)({name:e.name},o),{},{key:e.key}),function(i){return!e.columns||typeof e.columns!="function"?null:t.genItems(e.columns(i))}):null}return!0},ya=h(51244),Za=function(e){if(e.valueType==="divider"){var t;return(0,d.createElement)(ya.Z,(0,a.Z)((0,a.Z)({},(t=e.getFieldProps)===null||t===void 0?void 0:t.call(e)),{},{key:e.key}))}return!0},zr=h(17148),Ca=function(e,t){var r=t.action,l=t.formRef,u=t.type,o=t.originItem,i=(0,a.Z)((0,a.Z)({},(0,he.Z)(e,["dataIndex","width","render","renderFormItem","renderText","title"])),{},{name:e.name||e.key||e.dataIndex,width:e.width,render:e!=null&&e.render?function(P,y,w){var Z,C,b,p;return e==null||(Z=e.render)===null||Z===void 0?void 0:Z.call(e,P,y,w,r==null?void 0:r.current,(0,a.Z)((0,a.Z)({type:u},e),{},{key:(C=e.key)===null||C===void 0?void 0:C.toString(),formItemProps:(b=e.getFormItemProps)===null||b===void 0?void 0:b.call(e),fieldProps:(p=e.getFieldProps)===null||p===void 0?void 0:p.call(e)}))}:void 0}),c=function(){return(0,s.jsx)(zr.Z,(0,a.Z)((0,a.Z)({},i),{},{ignoreFormItem:!0}))},m=e!=null&&e.renderFormItem?function(P,y){var w,Z,C,b,p=(0,gn.Y)((0,a.Z)((0,a.Z)({},y),{},{onChange:void 0}));return e==null||(w=e.renderFormItem)===null||w===void 0?void 0:w.call(e,(0,a.Z)((0,a.Z)({type:u},e),{},{key:(Z=e.key)===null||Z===void 0?void 0:Z.toString(),formItemProps:(C=e.getFormItemProps)===null||C===void 0?void 0:C.call(e),fieldProps:(b=e.getFieldProps)===null||b===void 0?void 0:b.call(e),originProps:o}),(0,a.Z)((0,a.Z)({},p),{},{defaultRender:c,type:u}),l.current)}:void 0,v=function(){if(e!=null&&e.renderFormItem){var y=m==null?void 0:m(null,{});if(!y||e.ignoreFormItem)return y}return(0,d.createElement)(zr.Z,(0,a.Z)((0,a.Z)({},i),{},{key:[e.key,e.index||0].join("-"),renderFormItem:m}))};return e.dependencies?(0,s.jsx)(ut.Z,{name:e.dependencies||[],children:v},e.key):v()},Sa=h(84463),ba=function(e,t){var r=t.genItems;if(e.valueType==="formList"&&e.dataIndex){var l,u;return!e.columns||!Array.isArray(e.columns)?null:(0,d.createElement)(Sa.u,(0,a.Z)((0,a.Z)({},(l=e.getFormItemProps)===null||l===void 0?void 0:l.call(e)),{},{key:e.key,name:e.dataIndex,label:e.label,initialValue:e.initialValue,colProps:e.colProps,rowProps:e.rowProps},(u=e.getFieldProps)===null||u===void 0?void 0:u.call(e)),r(e.columns))}return!0},dt=h(21149),xa=h(7798),Ra=h(76810),Pa=["children","value","valuePropName","onChange","fieldProps","space","type","transform","convertValue","lightProps"],wa=["children","space","valuePropName"],Fa={space:_n.Z,group:dt.Z.Group};function Ta(n){var e=arguments.length<=1?void 0:arguments[1];return e&&e.target&&n in e.target?e.target[n]:e}var Ia=function(e){var t=e.children,r=e.value,l=r===void 0?[]:r,u=e.valuePropName,o=e.onChange,i=e.fieldProps,c=e.space,m=e.type,v=m===void 0?"space":m,P=e.transform,y=e.convertValue,w=e.lightProps,Z=(0,Pe.Z)(e,Pa),C=(0,Ke.J)(function(j,E){var X,H=(0,We.Z)(l);H[E]=Ta(u||"value",j),o==null||o(H),i==null||(X=i.onChange)===null||X===void 0||X.call(i,H)}),b=-1,p=(0,Yn.Z)(t).map(function(j){if(d.isValidElement(j)){var E,X,H;b+=1;var R=b,x=(j==null||(E=j.type)===null||E===void 0?void 0:E.displayName)==="ProFormComponent"||(j==null||(X=j.props)===null||X===void 0?void 0:X.readonly),G=x?(0,a.Z)((0,a.Z)({key:R,ignoreFormItem:!0},j.props||{}),{},{fieldProps:(0,a.Z)((0,a.Z)({},j==null||(H=j.props)===null||H===void 0?void 0:H.fieldProps),{},{onChange:function(){C(arguments.length<=0?void 0:arguments[0],R)}}),value:l==null?void 0:l[R],onChange:void 0}):(0,a.Z)((0,a.Z)({key:R},j.props||{}),{},{value:l==null?void 0:l[R],onChange:function(g){var $,k;C(g,R),($=(k=j.props).onChange)===null||$===void 0||$.call(k,g)}});return d.cloneElement(j,G)}return j}),F=Fa[v],T=(0,Ra.zx)(Z),I=T.RowWrapper,K=(0,d.useMemo)(function(){return(0,a.Z)({},v==="group"?{compact:!0}:{})},[v]),L=(0,d.useCallback)(function(j){var E=j.children;return(0,s.jsx)(F,(0,a.Z)((0,a.Z)((0,a.Z)({},K),c),{},{align:"start",wrap:!0,children:E}))},[F,c,K]);return(0,s.jsx)(I,{Wrapper:L,children:p})},Ea=d.forwardRef(function(n,e){var t=n.children,r=n.space,l=n.valuePropName,u=(0,Pe.Z)(n,wa);return(0,d.useImperativeHandle)(e,function(){return{}}),(0,s.jsx)(Ia,(0,a.Z)((0,a.Z)((0,a.Z)({space:r,valuePropName:l},u.fieldProps),{},{onChange:void 0},u),{},{children:t}))}),Ma=(0,xa.G)(Ea),ja=Ma,Na=function(e,t){var r=t.genItems;if(e.valueType==="formSet"&&e.dataIndex){var l,u;return!e.columns||!Array.isArray(e.columns)?null:(0,d.createElement)(ja,(0,a.Z)((0,a.Z)({},(l=e.getFormItemProps)===null||l===void 0?void 0:l.call(e)),{},{key:e.key,initialValue:e.initialValue,name:e.dataIndex,label:e.label,colProps:e.colProps,rowProps:e.rowProps},(u=e.getFieldProps)===null||u===void 0?void 0:u.call(e)),r(e.columns))}return!0},La=Ie.A.Group,Ba=function(e,t){var r=t.genItems;if(e.valueType==="group"){var l;return!e.columns||!Array.isArray(e.columns)?null:(0,s.jsx)(La,(0,a.Z)((0,a.Z)({label:e.label,colProps:e.colProps,rowProps:e.rowProps},(l=e.getFieldProps)===null||l===void 0?void 0:l.call(e)),{},{children:r(e.columns)}),e.key)}return!0},Ka=function(e){return e.valueType&&typeof e.valueType=="string"&&["index","indexBorder","option"].includes(e==null?void 0:e.valueType)?null:!0},ct=[Ka,Ba,ba,Na,Za,pa],Da=function(e,t){for(var r=0;r0&&arguments[0]!==void 0?arguments[0]:{},i=(0,d.useRef)(),c=(0,d.useRef)(null),m=(0,d.useRef)(),v=(0,d.useRef)(),P=(0,d.useState)(""),y=(0,le.Z)(P,2),w=y[0],Z=y[1],C=(0,d.useRef)([]),b=(0,Re.Z)(function(){return o.size||o.defaultSize||"middle"},{value:o.size,onChange:o.onSizeChange}),p=(0,le.Z)(b,2),F=p[0],T=p[1],I=(0,d.useMemo)(function(){var R,x;if(o!=null&&(R=o.columnsState)!==null&&R!==void 0&&R.defaultValue)return o.columnsState.defaultValue;var G={};return(x=o.columns)===null||x===void 0||x.forEach(function(A,g){var $=A.key,k=A.dataIndex,J=A.fixed,z=A.disable,S=gr($!=null?$:k,g);S&&(G[S]={show:!0,fixed:J,disable:z})}),G},[o.columns]),K=(0,Re.Z)(function(){var R,x,G=o.columnsState||{},A=G.persistenceType,g=G.persistenceKey;if(g&&A&&typeof window!="undefined"){var $=window[A];try{var k=$==null?void 0:$.getItem(g);if(k)return JSON.parse(k)}catch(J){console.warn(J)}}return o.columnsStateMap||((R=o.columnsState)===null||R===void 0?void 0:R.value)||((x=o.columnsState)===null||x===void 0?void 0:x.defaultValue)||I},{value:((n=o.columnsState)===null||n===void 0?void 0:n.value)||o.columnsStateMap,onChange:((e=o.columnsState)===null||e===void 0?void 0:e.onChange)||o.onColumnsStateChange}),L=(0,le.Z)(K,2),j=L[0],E=L[1];(0,d.useEffect)(function(){var R=o.columnsState||{},x=R.persistenceType,G=R.persistenceKey;if(G&&x&&typeof window!="undefined"){var A=window[x];try{var g=A==null?void 0:A.getItem(G);E(g?JSON.parse(g):I)}catch($){console.warn($)}}},[(t=o.columnsState)===null||t===void 0?void 0:t.persistenceKey,(r=o.columnsState)===null||r===void 0?void 0:r.persistenceType,I]),(0,je.ET)(!o.columnsStateMap,"columnsStateMap\u5DF2\u7ECF\u5E9F\u5F03\uFF0C\u8BF7\u4F7F\u7528 columnsState.value \u66FF\u6362"),(0,je.ET)(!o.columnsStateMap,"columnsStateMap has been discarded, please use columnsState.value replacement");var X=(0,d.useCallback)(function(){var R=o.columnsState||{},x=R.persistenceType,G=R.persistenceKey;if(!(!G||!x||typeof window=="undefined")){var A=window[x];try{A==null||A.removeItem(G)}catch(g){console.warn(g)}}},[o.columnsState]);(0,d.useEffect)(function(){var R,x;if(!(!((R=o.columnsState)!==null&&R!==void 0&&R.persistenceKey)||!((x=o.columnsState)!==null&&x!==void 0&&x.persistenceType))&&typeof window!="undefined"){var G=o.columnsState,A=G.persistenceType,g=G.persistenceKey,$=window[A];try{$==null||$.setItem(g,JSON.stringify(j))}catch(k){console.warn(k),X()}}},[(l=o.columnsState)===null||l===void 0?void 0:l.persistenceKey,j,(u=o.columnsState)===null||u===void 0?void 0:u.persistenceType]);var H={action:i.current,setAction:function(x){i.current=x},sortKeyColumns:C.current,setSortKeyColumns:function(x){C.current=x},propsRef:v,columnsMap:j,keyWords:w,setKeyWords:function(x){return Z(x)},setTableSize:T,tableSize:F,prefixName:m.current,setPrefixName:function(x){m.current=x},setColumnsMap:E,columns:o.columns,rootDomRef:c,clearPersistenceStorage:X,defaultColumnKeyMap:I};return Object.defineProperty(H,"prefixName",{get:function(){return m.current}}),Object.defineProperty(H,"sortKeyColumns",{get:function(){return C.current}}),Object.defineProperty(H,"action",{get:function(){return i.current}}),H}var nr=(0,d.createContext)({}),Qa=function(e){var t=Ya(e.initValue);return(0,s.jsx)(nr.Provider,{value:t,children:e.children})},qa=h(92232),_a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M859.9 474H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zm-353.6-74.7c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H550V104c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v156h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.6zm11.4 225.4a7.14 7.14 0 00-11.3 0L405.6 752.3a7.23 7.23 0 005.7 11.7H474v156c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V764h62.8c6 0 9.4-7 5.7-11.7L517.7 624.7z"}}]},name:"vertical-align-middle",theme:"outlined"},el=_a,nl=function(e,t){return d.createElement(yr.Z,(0,pr.Z)({},e,{ref:t,icon:el}))},rl=d.forwardRef(nl),tl={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M859.9 780H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM505.7 669a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V176c0-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.8z"}}]},name:"vertical-align-bottom",theme:"outlined"},al=tl,ll=function(e,t){return d.createElement(yr.Z,(0,pr.Z)({},e,{ref:t,icon:al}))},ol=d.forwardRef(ll),il=h(39800),sl=h(7992),ft=h(33181),ul=h(38904),dl=function(e){var t,r,l,u;return u={},(0,f.Z)(u,e.componentCls,{width:"auto","&-title":{display:"flex",alignItems:"center",justifyContent:"space-between",height:"32px"},"&-overlay":(r={},(0,f.Z)(r,"".concat(e.antCls,"-popover-inner-content"),{width:"200px",paddingBlock:0,paddingInline:0,paddingBlockEnd:8}),(0,f.Z)(r,"".concat(e.antCls,"-tree-node-content-wrapper:hover"),{backgroundColor:"transparent"}),(0,f.Z)(r,"".concat(e.antCls,"-tree-draggable-icon"),{cursor:"grab"}),(0,f.Z)(r,"".concat(e.antCls,"-tree-treenode"),(t={alignItems:"center","&:hover":(0,f.Z)({},"".concat(e.componentCls,"-list-item-option"),{display:"block"})},(0,f.Z)(t,"".concat(e.antCls,"-tree-checkbox"),{marginInlineEnd:"4px"}),(0,f.Z)(t,"".concat(e.antCls,"-tree-title"),{width:"100%"}),t)),r)}),(0,f.Z)(u,"".concat(e.componentCls,"-action-rest-button"),{color:e.colorPrimary}),(0,f.Z)(u,"".concat(e.componentCls,"-list"),(l={display:"flex",flexDirection:"column",width:"100%",paddingBlockStart:8},(0,f.Z)(l,"&".concat(e.componentCls,"-list-group"),{paddingBlockStart:0}),(0,f.Z)(l,"&-title",{marginBlockStart:"6px",marginBlockEnd:"6px",paddingInlineStart:"24px",color:e.colorTextSecondary,fontSize:"12px"}),(0,f.Z)(l,"&-item",{display:"flex",alignItems:"center",maxHeight:24,justifyContent:"space-between","&-title":{flex:1,maxWidth:80},"&-option":{display:"none",float:"right",cursor:"pointer","> span":{"> span.anticon":{color:e.colorPrimary}},"> span + span":{marginInlineStart:4}}}),l)),u};function cl(n){return(0,fe.Xj)("ColumnSetting",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[dl(t)]})}var vl=["key","dataIndex","children"],fl=["disabled"],Qr=function(e){var t=e.title,r=e.show,l=e.children,u=e.columnKey,o=e.fixed,i=(0,d.useContext)(nr),c=i.columnsMap,m=i.setColumnsMap;return r?(0,s.jsx)(cr.Z,{title:t,children:(0,s.jsx)("span",{onClick:function(P){P.stopPropagation(),P.preventDefault();var y=c[u]||{},w=(0,a.Z)((0,a.Z)({},c),{},(0,f.Z)({},u,(0,a.Z)((0,a.Z)({},y),{},{fixed:o})));m(w)},children:l})}):null},ml=function(e){var t=e.columnKey,r=e.isLeaf,l=e.title,u=e.className,o=e.fixed,i=e.showListItemOption,c=(0,de.YB)(),m=(0,d.useContext)(de.L_),v=m.hashId,P=(0,s.jsxs)("span",{className:"".concat(u,"-list-item-option ").concat(v).trim(),children:[(0,s.jsx)(Qr,{columnKey:t,fixed:"left",title:c.getMessage("tableToolBar.leftPin","\u56FA\u5B9A\u5728\u5217\u9996"),show:o!=="left",children:(0,s.jsx)(qa.Z,{})}),(0,s.jsx)(Qr,{columnKey:t,fixed:void 0,title:c.getMessage("tableToolBar.noPin","\u4E0D\u56FA\u5B9A"),show:!!o,children:(0,s.jsx)(rl,{})}),(0,s.jsx)(Qr,{columnKey:t,fixed:"right",title:c.getMessage("tableToolBar.rightPin","\u56FA\u5B9A\u5728\u5217\u5C3E"),show:o!=="right",children:(0,s.jsx)(ol,{})})]});return(0,s.jsxs)("span",{className:"".concat(u,"-list-item ").concat(v).trim(),children:[(0,s.jsx)("div",{className:"".concat(u,"-list-item-title ").concat(v).trim(),children:l}),i&&!r?P:null]},t)},qr=function(e){var t,r,l,u=e.list,o=e.draggable,i=e.checkable,c=e.showListItemOption,m=e.className,v=e.showTitle,P=v===void 0?!0:v,y=e.title,w=e.listHeight,Z=w===void 0?280:w,C=(0,d.useContext)(de.L_),b=C.hashId,p=(0,d.useContext)(nr),F=p.columnsMap,T=p.setColumnsMap,I=p.sortKeyColumns,K=p.setSortKeyColumns,L=u&&u.length>0,j=(0,d.useMemo)(function(){if(!L)return{};var R=[],x=new Map,G=function A(g,$){return g.map(function(k){var J,z=k.key,S=k.dataIndex,N=k.children,D=(0,Pe.Z)(k,vl),O=gr(z,[$==null?void 0:$.columnKey,D.index].filter(Boolean).join("-")),V=F[O||"null"]||{show:!0};V.show!==!1&&!N&&R.push(O);var W=(0,a.Z)((0,a.Z)({key:O},(0,he.Z)(D,["className"])),{},{selectable:!1,disabled:V.disable===!0,disableCheckbox:typeof V.disable=="boolean"?V.disable:(J=V.disable)===null||J===void 0?void 0:J.checkbox,isLeaf:$?!0:void 0});if(N){var U;W.children=A(N,(0,a.Z)((0,a.Z)({},V),{},{columnKey:O})),(U=W.children)!==null&&U!==void 0&&U.every(function(M){return R==null?void 0:R.includes(M.key)})&&R.push(O)}return x.set(z,W),W})};return{list:G(u),keys:R,map:x}},[F,u,L]),E=(0,Ke.J)(function(R,x,G){var A=(0,a.Z)({},F),g=(0,We.Z)(I),$=g.findIndex(function(S){return S===R}),k=g.findIndex(function(S){return S===x}),J=G>$;if(!($<0)){var z=g[$];g.splice($,1),G===0?g.unshift(z):g.splice(J?k:k+1,0,z),g.forEach(function(S,N){A[S]=(0,a.Z)((0,a.Z)({},A[S]||{}),{},{order:N})}),T(A),K(g)}}),X=(0,Ke.J)(function(R){var x=(0,a.Z)({},F),G=function A(g){var $,k,J=(0,a.Z)({},x[g]);if(J.show=R.checked,($=j.map)!==null&&$!==void 0&&(k=$.get(g))!==null&&k!==void 0&&k.children){var z,S;(z=j.map.get(g))===null||z===void 0||(S=z.children)===null||S===void 0||S.forEach(function(N){return A(N.key)})}x[g]=J};G(R.node.key),T((0,a.Z)({},x))});if(!L)return null;var H=(0,s.jsx)(sl.Z,{itemHeight:24,draggable:o&&!!((t=j.list)!==null&&t!==void 0&&t.length)&&((r=j.list)===null||r===void 0?void 0:r.length)>1,checkable:i,onDrop:function(x){var G=x.node.key,A=x.dragNode.key,g=x.dropPosition,$=x.dropToGap,k=g===-1||!$?g+1:g;E(A,G,k)},blockNode:!0,onCheck:function(x,G){return X(G)},checkedKeys:j.keys,showLine:!1,titleRender:function(x){var G=(0,a.Z)((0,a.Z)({},x),{},{children:void 0});return G.title?(0,s.jsx)(ml,(0,a.Z)((0,a.Z)({className:m},G),{},{showListItemOption:c,title:(0,Vn.h)(G.title,G),columnKey:G.key})):null},height:Z,treeData:(l=j.list)===null||l===void 0?void 0:l.map(function(R){var x=R.disabled,G=(0,Pe.Z)(R,fl);return G})});return(0,s.jsxs)(s.Fragment,{children:[P&&(0,s.jsx)("span",{className:"".concat(m,"-list-title ").concat(b).trim(),children:y}),H]})},hl=function(e){var t=e.localColumns,r=e.className,l=e.draggable,u=e.checkable,o=e.showListItemOption,i=e.listsHeight,c=(0,d.useContext)(de.L_),m=c.hashId,v=[],P=[],y=[],w=(0,de.YB)();t.forEach(function(b){if(!b.hideInSetting){var p=b.fixed;if(p==="left"){P.push(b);return}if(p==="right"){v.push(b);return}y.push(b)}});var Z=v&&v.length>0,C=P&&P.length>0;return(0,s.jsxs)("div",{className:ie()("".concat(r,"-list"),m,(0,f.Z)({},"".concat(r,"-list-group"),Z||C)),children:[(0,s.jsx)(qr,{title:w.getMessage("tableToolBar.leftFixedTitle","\u56FA\u5B9A\u5728\u5DE6\u4FA7"),list:P,draggable:l,checkable:u,showListItemOption:o,className:r,listHeight:i}),(0,s.jsx)(qr,{list:y,draggable:l,checkable:u,showListItemOption:o,title:w.getMessage("tableToolBar.noFixedTitle","\u4E0D\u56FA\u5B9A"),showTitle:C||Z,className:r,listHeight:i}),(0,s.jsx)(qr,{title:w.getMessage("tableToolBar.rightFixedTitle","\u56FA\u5B9A\u5728\u53F3\u4FA7"),list:v,draggable:l,checkable:u,showListItemOption:o,className:r,listHeight:i})]})};function gl(n){var e,t,r,l,u=(0,d.useRef)(null),o=(0,d.useContext)(nr),i=n.columns,c=n.checkedReset,m=c===void 0?!0:c,v=o.columnsMap,P=o.setColumnsMap,y=o.clearPersistenceStorage;(0,d.useEffect)(function(){var X,H;if((X=o.propsRef.current)!==null&&X!==void 0&&(H=X.columnsState)!==null&&H!==void 0&&H.value){var R,x;u.current=JSON.parse(JSON.stringify(((R=o.propsRef.current)===null||R===void 0||(x=R.columnsState)===null||x===void 0?void 0:x.value)||{}))}},[]);var w=(0,Ke.J)(function(){var X=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,H={},R=function x(G){G.forEach(function(A){var g=A.key,$=A.fixed,k=A.index,J=A.children,z=A.disable,S=gr(g,k);if(S){var N,D;H[S]={show:z?(N=v[S])===null||N===void 0?void 0:N.show:X,fixed:$,disable:z,order:(D=v[S])===null||D===void 0?void 0:D.order}}J&&x(J)})};R(i),P(H)}),Z=(0,Ke.J)(function(X){X.target.checked?w():w(!1)}),C=(0,Ke.J)(function(){var X,H;y==null||y(),P(((X=o.propsRef.current)===null||X===void 0||(H=X.columnsState)===null||H===void 0?void 0:H.defaultValue)||u.current||o.defaultColumnKeyMap)}),b=Object.values(v).filter(function(X){return!X||X.show===!1}),p=b.length>0&&b.length!==i.length,F=(0,de.YB)(),T=(0,d.useContext)(De.ZP.ConfigContext),I=T.getPrefixCls,K=I("pro-table-column-setting"),L=cl(K),j=L.wrapSSR,E=L.hashId;return j((0,s.jsx)(ft.Z,{arrow:!1,title:(0,s.jsxs)("div",{className:"".concat(K,"-title ").concat(E).trim(),children:[n.checkable===!1?(0,s.jsx)("div",{}):(0,s.jsx)(ul.Z,{indeterminate:p,checked:b.length===0&&b.length!==i.length,onChange:function(H){Z(H)},children:F.getMessage("tableToolBar.columnDisplay","\u5217\u5C55\u793A")}),m?(0,s.jsx)("a",{onClick:C,className:"".concat(K,"-action-rest-button ").concat(E).trim(),children:F.getMessage("tableToolBar.reset","\u91CD\u7F6E")}):null,n!=null&&n.extra?(0,s.jsx)(_n.Z,{size:12,align:"center",children:n.extra}):null]}),overlayClassName:"".concat(K,"-overlay ").concat(E).trim(),trigger:"click",placement:"bottomRight",content:(0,s.jsx)(hl,{checkable:(e=n.checkable)!==null&&e!==void 0?e:!0,draggable:(t=n.draggable)!==null&&t!==void 0?t:!0,showListItemOption:(r=n.showListItemOption)!==null&&r!==void 0?r:!0,className:K,localColumns:i,listsHeight:n.listsHeight}),children:n.children||(0,s.jsx)(cr.Z,{title:F.getMessage("tableToolBar.columnSetting","\u5217\u8BBE\u7F6E"),children:(l=n.settingIcon)!==null&&l!==void 0?l:(0,s.jsx)(il.Z,{})})}))}var pl=gl,yl=h(85706),Zl=h(31647),mt=function(e){var t=(0,Zl.n)((0,Ur.b)(),"4.24.0")>-1?{menu:e}:{overlay:(0,s.jsx)(yl.Z,(0,a.Z)({},e))};return(0,gn.Y)(t)},ht=h(73267),Cl=function(e){var t=(0,d.useContext)(de.L_),r=t.hashId,l=e.items,u=l===void 0?[]:l,o=e.type,i=o===void 0?"inline":o,c=e.prefixCls,m=e.activeKey,v=e.defaultActiveKey,P=(0,Re.Z)(m||v,{value:m,onChange:e.onChange}),y=(0,le.Z)(P,2),w=y[0],Z=y[1];if(u.length<1)return null;var C=u.find(function(p){return p.key===w})||u[0];if(i==="inline")return(0,s.jsx)("div",{className:ie()("".concat(c,"-menu"),"".concat(c,"-inline-menu"),r),children:u.map(function(p,F){return(0,s.jsx)("div",{onClick:function(){Z(p.key)},className:ie()("".concat(c,"-inline-menu-item"),C.key===p.key?"".concat(c,"-inline-menu-item-active"):void 0,r),children:p.label},p.key||F)})});if(i==="tab")return(0,s.jsx)(be.Z,{items:u.map(function(p){var F;return(0,a.Z)((0,a.Z)({},p),{},{key:(F=p.key)===null||F===void 0?void 0:F.toString()})}),activeKey:C.key,onTabClick:function(F){return Z(F)},children:u==null?void 0:u.map(function(p,F){return(0,d.createElement)(be.Z.TabPane,(0,a.Z)((0,a.Z)({},p),{},{key:p.key||F,tab:p.label}))})});var b=mt({selectedKeys:[C.key],onClick:function(F){Z(F.key)},items:u.map(function(p,F){return{key:p.key||F,disabled:p.disabled,label:p.label}})});return(0,s.jsx)("div",{className:ie()("".concat(c,"-menu"),"".concat(c,"-dropdownmenu")),children:(0,s.jsx)(ht.Z,(0,a.Z)((0,a.Z)({trigger:["click"]},b),{},{children:(0,s.jsxs)(_n.Z,{className:"".concat(c,"-dropdownmenu-label"),children:[C.label,(0,s.jsx)(Xr.Z,{})]})}))})},Sl=Cl,bl=function(e){var t,r;return(0,f.Z)({},e.componentCls,(r={lineHeight:"1","&-container":{display:"flex",justifyContent:"space-between",paddingBlock:e.padding,paddingInline:0,"&-mobile":{flexDirection:"column"}},"&-title":{display:"flex",alignItems:"center",justifyContent:"flex-start",color:e.colorTextHeading,fontWeight:"500",fontSize:e.fontSizeLG},"&-search:not(:last-child)":{display:"flex",alignItems:"center",justifyContent:"flex-start"},"&-setting-item":{marginBlock:0,marginInline:4,color:e.colorIconHover,fontSize:e.fontSizeLG,cursor:"pointer","> span":{display:"block",width:"100%",height:"100%"},"&:hover":{color:e.colorPrimary}},"&-left":(t={display:"flex",flexWrap:"wrap",alignItems:"center",gap:e.marginXS,justifyContent:"flex-start",maxWidth:"calc(100% - 200px)",flex:1},(0,f.Z)(t,"".concat(e.antCls,"-tabs"),{width:"100%"}),(0,f.Z)(t,"&-has-tabs",{overflow:"hidden"}),t),"&-right":{flex:1,display:"flex",flexWrap:"wrap",justifyContent:"flex-end",gap:e.marginXS},"&-extra-line":{marginBlockEnd:e.margin},"&-setting-items":{display:"flex",gap:e.marginXS,lineHeight:"32px",alignItems:"center"},"&-filter":(0,f.Z)({"&:not(:last-child)":{marginInlineEnd:e.margin},display:"flex",alignItems:"center"},"div$".concat(e.antCls,"-pro-table-search"),{marginBlock:0,marginInline:0,paddingBlock:0,paddingInline:0}),"&-inline-menu-item":{display:"inline-block",marginInlineEnd:e.marginLG,cursor:"pointer",opacity:"0.75","&-active":{fontWeight:"bold",opacity:"1"}}},(0,f.Z)(r,"".concat(e.antCls,"-tabs-top > ").concat(e.antCls,"-tabs-nav"),(0,f.Z)({marginBlockEnd:0,"&::before":{borderBlockEnd:0}},"".concat(e.antCls,"-tabs-nav-list"),{marginBlockStart:0,"${token.antCls}-tabs-tab":{paddingBlockStart:0}})),(0,f.Z)(r,"&-dropdownmenu-label",{fontWeight:"bold",fontSize:e.fontSizeIcon,textAlign:"center",cursor:"pointer"}),(0,f.Z)(r,"@media (max-width: 768px)",(0,f.Z)({},e.componentCls,{"&-container":{display:"flex",flexWrap:"wrap",flexDirection:"column"},"&-left":{marginBlockEnd:"16px",maxWidth:"100%"}})),r))};function xl(n){return(0,fe.Xj)("ProTableListToolBar",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[bl(t)]})}function Rl(n){if(d.isValidElement(n))return n;if(n){var e=n,t=e.icon,r=e.tooltip,l=e.onClick,u=e.key;return t&&r?(0,s.jsx)(cr.Z,{title:r,children:(0,s.jsx)("span",{onClick:function(){l&&l(u)},children:t},u)}):t}return null}var Pl=function(e){var t,r=e.prefixCls,l=e.tabs,u=l===void 0?{}:l,o=e.multipleLine,i=e.filtersNode;return o?(0,s.jsx)("div",{className:"".concat(r,"-extra-line"),children:u.items&&u.items.length?(0,s.jsx)(be.Z,{style:{width:"100%"},defaultActiveKey:u.defaultActiveKey,activeKey:u.activeKey,items:u.items.map(function(c,m){var v;return(0,a.Z)((0,a.Z)({label:c.tab},c),{},{key:((v=c.key)===null||v===void 0?void 0:v.toString())||(m==null?void 0:m.toString())})}),onChange:u.onChange,tabBarExtraContent:i,children:(t=u.items)===null||t===void 0?void 0:t.map(function(c,m){return(0,d.createElement)(be.Z.TabPane,(0,a.Z)((0,a.Z)({},c),{},{key:c.key||m,tab:c.tab}))})}):i}):null},wl=function(e){var t=e.prefixCls,r=e.title,l=e.subTitle,u=e.tooltip,o=e.className,i=e.style,c=e.search,m=e.onSearch,v=e.multipleLine,P=v===void 0?!1:v,y=e.filter,w=e.actions,Z=w===void 0?[]:w,C=e.settings,b=C===void 0?[]:C,p=e.tabs,F=p===void 0?{}:p,T=e.menu,I=(0,d.useContext)(De.ZP.ConfigContext),K=I.getPrefixCls,L=fe.Ow.useToken(),j=L.token,E=K("pro-table-list-toolbar",t),X=xl(E),H=X.wrapSSR,R=X.hashId,x=(0,de.YB)(),G=(0,d.useState)(!1),A=(0,le.Z)(G,2),g=A[0],$=A[1],k=x.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),J=(0,d.useMemo)(function(){return c?d.isValidElement(c)?c:(0,s.jsx)(dt.Z.Search,(0,a.Z)((0,a.Z)({style:{width:200},placeholder:k},c),{},{onSearch:(0,re.Z)((0,Y.Z)().mark(function M(){var B,_,ee,ce,ye,ve,Ze=arguments;return(0,Y.Z)().wrap(function(He){for(;;)switch(He.prev=He.next){case 0:for(ee=Ze.length,ce=new Array(ee),ye=0;yea":{fontSize:e.fontSize}}),(0,f.Z)(l,"".concat(e.antCls,"-table").concat(e.antCls,"-table-tbody").concat(e.antCls,"-table-wrapper:only-child").concat(e.antCls,"-table"),{marginBlock:0,marginInline:0}),(0,f.Z)(l,"".concat(e.antCls,"-table").concat(e.antCls,"-table-middle ").concat(e.componentCls),(0,f.Z)({marginBlock:0,marginInline:-8},"".concat(e.proComponentsCls,"-card"),{backgroundColor:"initial"})),(0,f.Z)(l,"& &-search",(r={marginBlockEnd:"16px",background:e.colorBgContainer,"&-ghost":{background:"transparent"}},(0,f.Z)(r,"&".concat(e.componentCls,"-form"),{marginBlock:0,marginInline:0,paddingBlock:0,paddingInline:16,overflow:"unset"}),(0,f.Z)(r,"&-light-filter",{marginBlockEnd:0,paddingBlock:0,paddingInline:0}),(0,f.Z)(r,"&-form-option",(t={},(0,f.Z)(t,"".concat(e.antCls,"-form-item"),{}),(0,f.Z)(t,"".concat(e.antCls,"-form-item-label"),{}),(0,f.Z)(t,"".concat(e.antCls,"-form-item-control-input"),{}),t)),(0,f.Z)(r,"@media (max-width: 575px)",(0,f.Z)({},e.componentCls,(0,f.Z)({height:"auto !important",paddingBlockEnd:"24px"},"".concat(e.antCls,"-form-item-label"),{minWidth:"80px",textAlign:"start"}))),r)),(0,f.Z)(l,"&-toolbar",{display:"flex",alignItems:"center",justifyContent:"space-between",height:"64px",paddingInline:24,paddingBlock:0,"&-option":{display:"flex",alignItems:"center",justifyContent:"flex-end"},"&-title":{flex:"1",color:e.colorTextLabel,fontWeight:"500",fontSize:"16px",lineHeight:"24px",opacity:"0.85"}}),l)),(0,f.Z)(u,"@media (max-width: ".concat(e.screenXS,")px"),(0,f.Z)({},e.componentCls,(0,f.Z)({},"".concat(e.antCls,"-table"),{width:"100%",overflowX:"auto","&-thead > tr,&-tbody > tr":{"> th,> td":{whiteSpace:"pre",">span":{display:"block"}}}}))),(0,f.Z)(u,"@media (max-width: 575px)",(0,f.Z)({},"".concat(e.componentCls,"-toolbar"),{flexDirection:"column",alignItems:"flex-start",justifyContent:"flex-start",height:"auto",marginBlockEnd:"16px",marginInlineStart:"16px",paddingBlock:8,paddingInline:8,paddingBlockStart:"16px",lineHeight:"normal","&-title":{marginBlockEnd:16},"&-option":{display:"flex",justifyContent:"space-between",width:"100%"},"&-default-option":{display:"flex",flex:"1",alignItems:"center",justifyContent:"flex-end"}})),u};function Ql(n){return(0,fe.Xj)("ProTable",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[Yl(t)]})}var ql=["data","success","total"],_l=function(e){var t=e.pageInfo;if(t){var r=t.current,l=t.defaultCurrent,u=t.pageSize,o=t.defaultPageSize;return{current:r||l||1,total:0,pageSize:u||o||20}}return{current:1,total:0,pageSize:20}},eo=function(e,t,r){var l,u=(0,d.useRef)(!1),o=(0,d.useRef)(null),i=r||{},c=i.onLoad,m=i.manual,v=i.polling,P=i.onRequestError,y=i.debounceTime,w=y===void 0?20:y,Z=i.effects,C=Z===void 0?[]:Z,b=(0,d.useRef)(m),p=(0,d.useRef)(),F=(0,Re.Z)(t,{value:r==null?void 0:r.dataSource,onChange:r==null?void 0:r.onDataSourceChange}),T=(0,le.Z)(F,2),I=T[0],K=T[1],L=(0,Re.Z)(!1,{value:(0,Fe.Z)(r==null?void 0:r.loading)==="object"?r==null||(l=r.loading)===null||l===void 0?void 0:l.spinning:r==null?void 0:r.loading,onChange:r==null?void 0:r.onLoadingChange}),j=(0,le.Z)(L,2),E=j[0],X=j[1],H=(0,Re.Z)(function(){return _l(r)},{onChange:r==null?void 0:r.onPageInfoChange}),R=(0,le.Z)(H,2),x=R[0],G=R[1],A=(0,Ke.J)(function(M){(M.current!==x.current||M.pageSize!==x.pageSize||M.total!==x.total)&&G(M)}),g=(0,Re.Z)(!1),$=(0,le.Z)(g,2),k=$[0],J=$[1],z=function(B,_){(0,Hr.unstable_batchedUpdates)(function(){K(B),(x==null?void 0:x.total)!==_&&A((0,a.Z)((0,a.Z)({},x),{},{total:_||B.length}))})},S=(0,sr.D)(x==null?void 0:x.current),N=(0,sr.D)(x==null?void 0:x.pageSize),D=(0,sr.D)(v),O=(0,Ke.J)(function(){(0,Hr.unstable_batchedUpdates)(function(){X(!1),J(!1)})}),V=function(){var M=(0,re.Z)((0,Y.Z)().mark(function B(_){var ee,ce,ye,ve,Ze,qe,He,Ye,on,_e,Pn,En;return(0,Y.Z)().wrap(function(q){for(;;)switch(q.prev=q.next){case 0:if(!b.current){q.next=3;break}return b.current=!1,q.abrupt("return");case 3:return _?J(!0):X(!0),ee=x||{},ce=ee.pageSize,ye=ee.current,q.prev=5,ve=(r==null?void 0:r.pageInfo)!==!1?{current:ye,pageSize:ce}:void 0,q.next=9,e==null?void 0:e(ve);case 9:if(q.t0=q.sent,q.t0){q.next=12;break}q.t0={};case 12:if(Ze=q.t0,qe=Ze.data,He=qe===void 0?[]:qe,Ye=Ze.success,on=Ze.total,_e=on===void 0?0:on,Pn=(0,Pe.Z)(Ze,ql),Ye!==!1){q.next=21;break}return q.abrupt("return",[]);case 21:return En=Tt(He,[r.postData].filter(function(me){return me})),z(En,_e),c==null||c(En,Pn),q.abrupt("return",En);case 27:if(q.prev=27,q.t1=q.catch(5),P!==void 0){q.next=31;break}throw new Error(q.t1);case 31:I===void 0&&K([]),P(q.t1);case 33:return q.prev=33,O(),q.finish(33);case 36:return q.abrupt("return",[]);case 37:case"end":return q.stop()}},B,null,[[5,27,33,36]])}));return function(_){return M.apply(this,arguments)}}(),W=(0,or.D)(function(){var M=(0,re.Z)((0,Y.Z)().mark(function B(_){var ee,ce,ye;return(0,Y.Z)().wrap(function(Ze){for(;;)switch(Ze.prev=Ze.next){case 0:if(p.current&&clearTimeout(p.current),e){Ze.next=3;break}return Ze.abrupt("return");case 3:return ee=new AbortController,o.current=ee,Ze.prev=5,Ze.next=8,Promise.race([V(_),new Promise(function(qe,He){var Ye,on,_e;(Ye=o.current)===null||Ye===void 0||(on=Ye.signal)===null||on===void 0||(_e=on.addEventListener)===null||_e===void 0||_e.call(on,"abort",function(){He("aborted"),W.cancel(),O()})})]);case 8:if(ce=Ze.sent,!ee.signal.aborted){Ze.next=11;break}return Ze.abrupt("return");case 11:return ye=(0,Vn.h)(v,ce),ye&&!u.current&&(p.current=setTimeout(function(){W.run(ye)},Math.max(ye,2e3))),Ze.abrupt("return",ce);case 16:if(Ze.prev=16,Ze.t0=Ze.catch(5),Ze.t0!=="aborted"){Ze.next=20;break}return Ze.abrupt("return");case 20:throw Ze.t0;case 21:case"end":return Ze.stop()}},B,null,[[5,16]])}));return function(B){return M.apply(this,arguments)}}(),w||30),U=function(){var B;(B=o.current)===null||B===void 0||B.abort(),W.cancel(),O()};return(0,d.useEffect)(function(){return v||clearTimeout(p.current),!D&&v&&W.run(!0),function(){clearTimeout(p.current)}},[v]),(0,d.useEffect)(function(){return u.current=!1,function(){u.current=!0}},[]),(0,d.useEffect)(function(){var M=x||{},B=M.current,_=M.pageSize;(!S||S===B)&&(!N||N===_)||r.pageInfo&&I&&(I==null?void 0:I.length)>_||B!==void 0&&I&&I.length<=_&&(U(),W.run(!1))},[x==null?void 0:x.current]),(0,d.useEffect)(function(){N&&(U(),W.run(!1))},[x==null?void 0:x.pageSize]),(0,ir.KW)(function(){return U(),W.run(!1),m||(b.current=!1),function(){U()}},[].concat((0,We.Z)(C),[m])),{dataSource:I,setDataSource:K,loading:(0,Fe.Z)(r==null?void 0:r.loading)==="object"?(0,a.Z)((0,a.Z)({},r==null?void 0:r.loading),{},{spinning:E}):E,reload:function(){var M=(0,re.Z)((0,Y.Z)().mark(function _(){return(0,Y.Z)().wrap(function(ce){for(;;)switch(ce.prev=ce.next){case 0:return U(),ce.abrupt("return",W.run(!1));case 2:case"end":return ce.stop()}},_)}));function B(){return M.apply(this,arguments)}return B}(),pageInfo:x,pollingLoading:k,reset:function(){var M=(0,re.Z)((0,Y.Z)().mark(function _(){var ee,ce,ye,ve,Ze,qe,He,Ye;return(0,Y.Z)().wrap(function(_e){for(;;)switch(_e.prev=_e.next){case 0:ee=r||{},ce=ee.pageInfo,ye=ce||{},ve=ye.defaultCurrent,Ze=ve===void 0?1:ve,qe=ye.defaultPageSize,He=qe===void 0?20:qe,Ye={current:Ze,total:0,pageSize:He},A(Ye);case 4:case"end":return _e.stop()}},_)}));function B(){return M.apply(this,arguments)}return B}(),setPageInfo:function(){var M=(0,re.Z)((0,Y.Z)().mark(function _(ee){return(0,Y.Z)().wrap(function(ye){for(;;)switch(ye.prev=ye.next){case 0:A((0,a.Z)((0,a.Z)({},x),ee));case 1:case"end":return ye.stop()}},_)}));function B(_){return M.apply(this,arguments)}return B}()}},no=eo,ro=function(e){return function(t,r){var l,u,o=t.fixed,i=t.index,c=r.fixed,m=r.index;if(o==="left"&&c!=="left"||c==="right"&&o!=="right")return-2;if(c==="left"&&o!=="left"||o==="right"&&c!=="right")return 2;var v=t.key||"".concat(i),P=r.key||"".concat(m);if((l=e[v])!==null&&l!==void 0&&l.order||(u=e[P])!==null&&u!==void 0&&u.order){var y,w;return(((y=e[v])===null||y===void 0?void 0:y.order)||0)-(((w=e[P])===null||w===void 0?void 0:w.order)||0)}return(t.index||0)-(r.index||0)}},to=h(16566),ao=function(e){var t={};return Object.keys(e||{}).forEach(function(r){var l;Array.isArray(e[r])&&((l=e[r])===null||l===void 0?void 0:l.length)===0||e[r]!==void 0&&(t[r]=e[r])}),t},lo=h(45151),oo=function(e){var t;return!!(e!=null&&(t=e.valueType)!==null&&t!==void 0&&t.toString().startsWith("date")||(e==null?void 0:e.valueType)==="select"||e!=null&&e.valueEnum)},io=function(e){var t;return((t=e.ellipsis)===null||t===void 0?void 0:t.showTitle)===!1?!1:e.ellipsis},so=function(e,t,r){if(t.copyable||t.ellipsis){var l=t.copyable&&r?{text:r,tooltips:["",""]}:void 0,u=oo(t),o=io(t)&&r?{tooltip:(t==null?void 0:t.tooltip)!==!1&&u?(0,s.jsx)("div",{className:"pro-table-tooltip-text",children:e}):r}:!1;return(0,s.jsx)(lo.Z.Text,{style:{width:"100%",margin:0,padding:0},title:"",copyable:l,ellipsis:o,children:e})}return e},uo=h(15797),co=h(78546),vo=function(e){var t="".concat(e.antCls,"-progress-bg");return(0,f.Z)({},e.componentCls,{"&-multiple":{paddingBlockStart:6,paddingBlockEnd:12,paddingInline:8},"&-progress":{"&-success":(0,f.Z)({},t,{backgroundColor:e.colorSuccess}),"&-error":(0,f.Z)({},t,{backgroundColor:e.colorError}),"&-warning":(0,f.Z)({},t,{backgroundColor:e.colorWarning})},"&-rule":{display:"flex",alignItems:"center","&-icon":{"&-default":{display:"flex",alignItems:"center",justifyContent:"center",width:"14px",height:"22px","&-circle":{width:"6px",height:"6px",backgroundColor:e.colorTextSecondary,borderRadius:"4px"}},"&-loading":{color:e.colorPrimary},"&-error":{color:e.colorError},"&-success":{color:e.colorSuccess}},"&-text":{color:e.colorText}}})};function fo(n){return(0,fe.Xj)("InlineErrorFormItem",function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{componentCls:".".concat(n)});return[vo(t)]})}var mo=["rules","name","children","popoverProps"],ho=["errorType","rules","name","popoverProps","children"],pt={marginBlockStart:-5,marginBlockEnd:-5,marginInlineStart:0,marginInlineEnd:0},go=function(e){var t=e.inputProps,r=e.input,l=e.extra,u=e.errorList,o=e.popoverProps,i=(0,d.useState)(!1),c=(0,le.Z)(i,2),m=c[0],v=c[1],P=(0,d.useState)([]),y=(0,le.Z)(P,2),w=y[0],Z=y[1],C=(0,d.useContext)(De.ZP.ConfigContext),b=C.getPrefixCls,p=b(),F=(0,fe.dQ)(),T=fo("".concat(p,"-form-item-with-help")),I=T.wrapSSR,K=T.hashId;(0,d.useEffect)(function(){t.validateStatus!=="validating"&&Z(t.errors)},[t.errors,t.validateStatus]);var L=(0,Ur.X)(w.length<1?!1:m,function(E){E!==m&&v(E)}),j=t.validateStatus==="validating";return(0,s.jsx)(ft.Z,(0,a.Z)((0,a.Z)((0,a.Z)({trigger:(o==null?void 0:o.trigger)||["click"],placement:(o==null?void 0:o.placement)||"topLeft"},L),{},{getPopupContainer:o==null?void 0:o.getPopupContainer,getTooltipContainer:o==null?void 0:o.getTooltipContainer,content:I((0,s.jsx)("div",{className:"".concat(p,"-form-item ").concat(K," ").concat(F.hashId).trim(),style:{margin:0,padding:0},children:(0,s.jsxs)("div",{className:"".concat(p,"-form-item-with-help ").concat(K," ").concat(F.hashId).trim(),children:[j?(0,s.jsx)(Ne.Z,{}):null,u]})}))},o),{},{children:(0,s.jsxs)(s.Fragment,{children:[r,l]})}),"popover")},po=function(e){var t=e.rules,r=e.name,l=e.children,u=e.popoverProps,o=(0,Pe.Z)(e,mo);return(0,s.jsx)(xn.Z.Item,(0,a.Z)((0,a.Z)({name:r,rules:t,hasFeedback:!1,shouldUpdate:function(c,m){if(c===m)return!1;var v=[r].flat(1);v.length>1&&v.pop();try{return JSON.stringify((0,Rn.Z)(c,v))!==JSON.stringify((0,Rn.Z)(m,v))}catch(P){return!0}},_internalItemRender:{mark:"pro_table_render",render:function(c,m){return(0,s.jsx)(go,(0,a.Z)({inputProps:c,popoverProps:u},m))}}},o),{},{style:(0,a.Z)((0,a.Z)({},pt),o==null?void 0:o.style),children:l}))},yo=function(e){var t=e.errorType,r=e.rules,l=e.name,u=e.popoverProps,o=e.children,i=(0,Pe.Z)(e,ho);return l&&r!==null&&r!==void 0&&r.length&&t==="popover"?(0,s.jsx)(po,(0,a.Z)((0,a.Z)({name:l,rules:r,popoverProps:u},i),{},{children:o})):(0,s.jsx)(xn.Z.Item,(0,a.Z)((0,a.Z)({rules:r,shouldUpdate:l?function(c,m){if(c===m)return!1;var v=[l].flat(1);v.length>1&&v.pop();try{return JSON.stringify((0,Rn.Z)(c,v))!==JSON.stringify((0,Rn.Z)(m,v))}catch(P){return!0}}:void 0},i),{},{style:(0,a.Z)((0,a.Z)({},pt),i.style),name:l,children:o}))},_r=function(e,t,r){return t===void 0?e:(0,Vn.h)(e,t,r)},Zo=["children"],Co=["",null,void 0],yt=function(){for(var e=arguments.length,t=new Array(e),r=0;rve.length?(ve.push(B),ve):(ve.splice((i==null?void 0:i.current)*(i==null?void 0:i.pageSize)-1,0,B),ve)}return[].concat((0,We.Z)(l.dataSource),[B])},g=function(){return(0,a.Z)((0,a.Z)({},H),{},{size:m,rowSelection:c===!1?void 0:c,className:t,style:P,columns:x.map(function(W){return W.isExtraColumns?W.extraColumn:W}),loading:l.loading,dataSource:E.newLineRecord?A(l.dataSource):l.dataSource,pagination:i,onChange:function(U,M,B,_){var ee;if((ee=H.onChange)===null||ee===void 0||ee.call(H,U,M,B,_),G||T((0,gn.Y)(M)),Array.isArray(B)){var ce=B.reduce(function(qe,He){return(0,a.Z)((0,a.Z)({},qe),{},(0,f.Z)({},"".concat(He.field),He.order))},{});F((0,gn.Y)(ce))}else{var ye,ve=(ye=B.column)===null||ye===void 0?void 0:ye.sorter,Ze=(ve==null?void 0:ve.toString())===ve;F((0,gn.Y)((0,f.Z)({},"".concat(Ze?ve:B.field),B.order)))}}})},$=(0,d.useMemo)(function(){return n.search===!1&&!n.headerTitle&&n.toolBarRender===!1},[]),k=(0,s.jsx)(On.Z,(0,a.Z)((0,a.Z)({},g()),{},{rowKey:e})),J=n.tableViewRender?n.tableViewRender((0,a.Z)((0,a.Z)({},g()),{},{rowSelection:c!==!1?c:void 0}),k):k,z=(0,d.useMemo)(function(){if(n.editable&&!n.name){var V,W,U,M;return(0,s.jsxs)(s.Fragment,{children:[y,b,(0,d.createElement)(vn,(0,a.Z)((0,a.Z)({},(V=n.editable)===null||V===void 0?void 0:V.formProps),{},{formRef:(W=n.editable)===null||W===void 0||(U=W.formProps)===null||U===void 0?void 0:U.formRef,component:!1,form:(M=n.editable)===null||M===void 0?void 0:M.form,onValuesChange:E.onValuesChange,key:"table",submitter:!1,omitNil:!1,dateFormatter:n.dateFormatter}),J)]})}return(0,s.jsxs)(s.Fragment,{children:[y,b,J]})},[b,n.loading,!!n.editable,J,y]),S=(0,d.useMemo)(function(){return C===!1||$===!0||n.name?{}:y?{paddingBlockStart:0}:y&&i===!1?{paddingBlockStart:0}:{padding:0}},[$,i,n.name,C,y]),N=C===!1||$===!0||n.name?z:(0,s.jsx)(Be,(0,a.Z)((0,a.Z)({ghost:n.ghost,bordered:rt("table",j),bodyStyle:S},C),{},{children:z})),D=function(){return n.tableRender?n.tableRender(n,N,{toolbar:y||void 0,alert:b||void 0,table:J||void 0}):N},O=(0,s.jsxs)("div",{className:ie()(L,(0,f.Z)({},"".concat(r,"-polling"),l.pollingLoading)),style:Z,ref:R.rootDomRef,children:[K?null:w,o!=="form"&&n.tableExtraRender&&(0,s.jsx)("div",{className:ie()(L,"".concat(r,"-extra")),children:n.tableExtraRender(n,l.dataSource||[])}),o!=="form"&&D()]});return!I||!(I!=null&&I.fullScreen)?O:(0,s.jsx)(De.ZP,{getPopupContainer:function(){return R.rootDomRef.current||document.body},children:O})}var Eo={},Mo=function(e){var t,r=e.cardBordered,l=e.request,u=e.className,o=e.params,i=o===void 0?Eo:o,c=e.defaultData,m=e.headerTitle,v=e.postData,P=e.ghost,y=e.pagination,w=e.actionRef,Z=e.columns,C=Z===void 0?[]:Z,b=e.toolBarRender,p=e.optionsRender,F=e.onLoad,T=e.onRequestError,I=e.style,K=e.cardProps,L=e.tableStyle,j=e.tableClassName,E=e.columnsStateMap,X=e.onColumnsStateChange,H=e.options,R=e.search,x=e.name,G=e.onLoadingChange,A=e.rowSelection,g=A===void 0?!1:A,$=e.beforeSearchSubmit,k=e.tableAlertRender,J=e.defaultClassName,z=e.formRef,S=e.type,N=S===void 0?"table":S,D=e.columnEmptyText,O=D===void 0?"-":D,V=e.toolbar,W=e.rowKey,U=e.manualRequest,M=e.polling,B=e.tooltip,_=e.revalidateOnFocus,ee=_===void 0?!1:_,ce=e.searchFormRender,ye=(0,Pe.Z)(e,To),ve=Ql(e.defaultClassName),Ze=ve.wrapSSR,qe=ve.hashId,He=ie()(J,u,qe),Ye=(0,d.useRef)(),on=(0,d.useRef)(),_e=z||on;(0,d.useImperativeHandle)(w,function(){return Ye.current});var Pn=(0,Re.Z)(g?(g==null?void 0:g.defaultSelectedRowKeys)||[]:void 0,{value:g?g.selectedRowKeys:void 0}),En=(0,le.Z)(Pn,2),Ce=En[0],q=En[1],me=(0,Re.Z)(function(){if(!(U||R!==!1))return{}}),ae=(0,le.Z)(me,2),ze=ae[0],Me=ae[1],wn=(0,Re.Z)({}),un=(0,le.Z)(wn,2),An=un[0],vr=un[1],Nr=(0,Re.Z)({}),Zr=(0,le.Z)(Nr,2),rr=Zr[0],Lr=Zr[1];(0,d.useEffect)(function(){var Q=Mt(C),ne=Q.sort,Se=Q.filter;vr(Se),Lr(ne)},[]);var Wr=(0,de.YB)(),et=(0,Fe.Z)(y)==="object"?y:{defaultCurrent:1,defaultPageSize:20,pageSize:20,current:1},Ge=(0,d.useContext)(nr),Br=(0,d.useMemo)(function(){if(l)return function(){var Q=(0,re.Z)((0,Y.Z)().mark(function ne(Se){var Oe,jn;return(0,Y.Z)().wrap(function($n){for(;;)switch($n.prev=$n.next){case 0:return Oe=(0,a.Z)((0,a.Z)((0,a.Z)({},Se||{}),ze),i),delete Oe._timestamp,$n.next=4,l(Oe,rr,An);case 4:return jn=$n.sent,$n.abrupt("return",jn);case 6:case"end":return $n.stop()}},ne)}));return function(ne){return Q.apply(this,arguments)}}()},[ze,i,An,rr,l]),Ee=no(Br,c,{pageInfo:y===!1?!1:et,loading:e.loading,dataSource:e.dataSource,onDataSourceChange:e.onDataSourceChange,onLoad:F,onLoadingChange:G,onRequestError:T,postData:v,revalidateOnFocus:ee,manual:ze===void 0,polling:M,effects:[(0,qn.ZP)(i),(0,qn.ZP)(ze),(0,qn.ZP)(An),(0,qn.ZP)(rr)],debounceTime:e.debounceTime,onPageInfoChange:function(ne){var Se,Oe;!y||!Br||(y==null||(Se=y.onChange)===null||Se===void 0||Se.call(y,ne.current,ne.pageSize),y==null||(Oe=y.onShowSizeChange)===null||Oe===void 0||Oe.call(y,ne.current,ne.pageSize))}});(0,d.useEffect)(function(){var Q;if(!(e.manualRequest||!e.request||!ee||(Q=e.form)!==null&&Q!==void 0&&Q.ignoreRules)){var ne=function(){document.visibilityState==="visible"&&Ee.reload()};return document.addEventListener("visibilitychange",ne),function(){return document.removeEventListener("visibilitychange",ne)}}},[]);var sn=d.useRef(new Map),Le=d.useMemo(function(){return typeof W=="function"?W:function(Q,ne){var Se;return ne===-1?Q==null?void 0:Q[W]:e.name?ne==null?void 0:ne.toString():(Se=Q==null?void 0:Q[W])!==null&&Se!==void 0?Se:ne==null?void 0:ne.toString()}},[e.name,W]);(0,d.useMemo)(function(){var Q;if((Q=Ee.dataSource)!==null&&Q!==void 0&&Q.length){var ne=Ee.dataSource.map(function(Se){var Oe=Le(Se,-1);return sn.current.set(Oe,Se),Oe});return ne}return[]},[Ee.dataSource,Le]);var Ue=(0,d.useMemo)(function(){var Q=y===!1?!1:(0,a.Z)({},y),ne=(0,a.Z)((0,a.Z)({},Ee.pageInfo),{},{setPageInfo:function(Oe){var jn=Oe.pageSize,Gn=Oe.current,$n=Ee.pageInfo;if(jn===$n.pageSize||$n.current===1){Ee.setPageInfo({pageSize:jn,current:Gn});return}l&&Ee.setDataSource([]),Ee.setPageInfo({pageSize:jn,current:N==="list"?Gn:1})}});return l&&Q&&(delete Q.onChange,delete Q.onShowSizeChange),wt(Q,ne,Wr)},[y,Ee,Wr]);(0,ir.KW)(function(){var Q;e.request&&i&&Ee.dataSource&&(Ee==null||(Q=Ee.pageInfo)===null||Q===void 0?void 0:Q.current)!==1&&Ee.setPageInfo({current:1})},[i]),Ge.setPrefixName(e.name);var pn=(0,d.useCallback)(function(){g&&g.onChange&&g.onChange([],[],{type:"none"}),q([])},[g,q]);Ge.propsRef.current=e;var mn=jr((0,a.Z)((0,a.Z)({},e.editable),{},{tableName:e.name,getRowKey:Le,childrenColumnName:((t=e.expandable)===null||t===void 0?void 0:t.childrenColumnName)||"children",dataSource:Ee.dataSource||[],setDataSource:function(ne){var Se,Oe;(Se=e.editable)===null||Se===void 0||(Oe=Se.onValuesChange)===null||Oe===void 0||Oe.call(Se,void 0,ne),Ee.setDataSource(ne)}})),Hn=fe.Ow===null||fe.Ow===void 0?void 0:fe.Ow.useToken(),kn=Hn.token;Ft(Ye,Ee,{fullScreen:function(){var ne;if(!(!((ne=Ge.rootDomRef)!==null&&ne!==void 0&&ne.current)||!document.fullscreenEnabled))if(document.fullscreenElement)document.exitFullscreen();else{var Se;(Se=Ge.rootDomRef)===null||Se===void 0||Se.current.requestFullscreen()}},onCleanSelected:function(){pn()},resetAll:function(){var ne;pn(),vr({}),Lr({}),Ge.setKeyWords(void 0),Ee.setPageInfo({current:1}),_e==null||(ne=_e.current)===null||ne===void 0||ne.resetFields(),Me({})},editableUtils:mn}),Ge.setAction(Ye.current),w&&(w.current=Ye.current);var Mn=(0,d.useMemo)(function(){var Q;return Ct({columns:C,counter:Ge,columnEmptyText:O,type:N,marginSM:kn.marginSM,editableUtils:mn,rowKey:W,childrenColumnName:(Q=e.expandable)===null||Q===void 0?void 0:Q.childrenColumnName}).sort(ro(Ge.columnsMap))},[C,Ge==null?void 0:Ge.sortKeyColumns,Ge==null?void 0:Ge.columnsMap,O,N,mn.editableKeys&&mn.editableKeys.join(",")]);(0,ir.Au)(function(){if(Mn&&Mn.length>0){var Q=Mn.map(function(ne){return gr(ne.key,ne.index)});Ge.setSortKeyColumns(Q)}},[Mn],["render","renderFormItem"],100),(0,ir.KW)(function(){var Q=Ee.pageInfo,ne=y||{},Se=ne.current,Oe=Se===void 0?Q==null?void 0:Q.current:Se,jn=ne.pageSize,Gn=jn===void 0?Q==null?void 0:Q.pageSize:jn;y&&(Oe||Gn)&&(Gn!==(Q==null?void 0:Q.pageSize)||Oe!==(Q==null?void 0:Q.current))&&Ee.setPageInfo({pageSize:Gn||Q.pageSize,current:Oe||Q.current})},[y&&y.pageSize,y&&y.current]);var nt=(0,a.Z)((0,a.Z)({selectedRowKeys:Ce},g),{},{onChange:function(ne,Se,Oe){g&&g.onChange&&g.onChange(ne,Se,Oe),q(ne)}}),Kr=R!==!1&&(R==null?void 0:R.filterType)==="light",bt=(0,d.useCallback)(function(Q){if(H&&H.search){var ne,Se,Oe=H.search===!0?{}:H.search,jn=Oe.name,Gn=jn===void 0?"keyword":jn,$n=(ne=H.search)===null||ne===void 0||(Se=ne.onSearch)===null||Se===void 0?void 0:Se.call(ne,Ge.keyWords);if($n!==!1){Me((0,a.Z)((0,a.Z)({},Q),{},(0,f.Z)({},Gn,Ge.keyWords)));return}}Me(Q)},[Ge.keyWords,H,Me]),xt=(0,d.useMemo)(function(){if((0,Fe.Z)(Ee.loading)==="object"){var Q;return((Q=Ee.loading)===null||Q===void 0?void 0:Q.spinning)||!1}return Ee.loading},[Ee.loading]),Rt=(0,d.useMemo)(function(){var Q=R===!1&&N!=="form"?null:(0,s.jsx)(Xa,{pagination:Ue,beforeSearchSubmit:$,action:Ye,columns:C,onFormSearchSubmit:function(Se){bt(Se)},ghost:P,onReset:e.onReset,onSubmit:e.onSubmit,loading:!!xt,manualRequest:U,search:R,form:e.form,formRef:_e,type:e.type||"table",cardBordered:e.cardBordered,dateFormatter:e.dateFormatter});return ce&&Q?(0,s.jsx)(s.Fragment,{children:ce(e,Q)}):Q},[$,_e,P,xt,U,bt,Ue,e,C,R,ce,N]),Pt=(0,d.useMemo)(function(){return Ce==null?void 0:Ce.map(function(Q){var ne;return(ne=sn.current)===null||ne===void 0?void 0:ne.get(Q)})},[Ce]),No=b===!1?null:(0,s.jsx)(Xl,{headerTitle:m,hideToolbar:H===!1&&!m&&!b&&!V&&!Kr,selectedRows:Pt,selectedRowKeys:Ce,tableColumn:Mn,tooltip:B,toolbar:V,onFormSearchSubmit:function(ne){Me((0,a.Z)((0,a.Z)({},ze),ne))},searchNode:Kr?Rt:null,options:H,optionsRender:p,actionRef:Ye,toolBarRender:b}),Lo=g!==!1?(0,s.jsx)(Je,{selectedRowKeys:Ce,selectedRows:Pt,onCleanSelected:pn,alertOptionRender:ye.tableAlertOptionRender,alertInfoRender:k,alwaysShowAlert:g==null?void 0:g.alwaysShowAlert}):null;return Ze((0,s.jsx)(Io,(0,a.Z)((0,a.Z)({},e),{},{name:x,defaultClassName:J,size:Ge.tableSize,onSizeChange:Ge.setTableSize,pagination:Ue,searchNode:Rt,rowSelection:g!==!1?nt:void 0,className:He,tableColumn:Mn,isLightFilter:Kr,action:Ee,alertDom:Lo,toolbarDom:No,onSortChange:function(ne){rr!==ne&&Lr(ne)},onFilterChange:function(ne){ne!==An&&vr(ne)},editableUtils:mn,getRowKey:Le})))},St=function(e){var t=(0,d.useContext)(De.ZP.ConfigContext),r=t.getPrefixCls,l=e.ErrorBoundary===!1?d.Fragment:e.ErrorBoundary||dr.S;return(0,s.jsx)(Qa,{initValue:e,children:(0,s.jsx)(de._Y,{needDeps:!0,children:(0,s.jsx)(l,{children:(0,s.jsx)(Mo,(0,a.Z)({defaultClassName:"".concat(r("pro-table"))},e))})})})};St.Summary=On.Z.Summary;var jo=St},32245:function(Cr,Nn,h){h.d(Nn,{S:function(){return dn}});var Y=h(60412),re=h(14346),Fe=h(86717),le=h(87498),f=h(73726),We=h(37734),a=h(12632),Pe=h(58757),Ln=h(35667),dn=function(De){(0,le.Z)(be,De);var Fn=(0,f.Z)(be);function be(){var cn;(0,Y.Z)(this,be);for(var ie=arguments.length,he=new Array(ie),Re=0;Re{var O;const{prefixCls:l,className:C,rootClassName:U,children:j,indeterminate:z=!1,style:M,onMouseEnter:I,onMouseLeave:p,skipGroup:x=!1,disabled:k}=b,P=L(b,["prefixCls","className","rootClassName","children","indeterminate","style","onMouseEnter","onMouseLeave","skipGroup","disabled"]),{getPrefixCls:F,direction:v,checkbox:Z}=i.useContext(f.E_),g=i.useContext(n),{isFormItemInput:G}=i.useContext(r.aM),X=i.useContext(o.Z),V=(O=(g==null?void 0:g.disabled)||k)!==null&&O!==void 0?O:X,Q=i.useRef(P.value);i.useEffect(()=>{g==null||g.registerValue(P.value)},[]),i.useEffect(()=>{if(!x)return P.value!==Q.current&&(g==null||g.cancelValue(Q.current),g==null||g.registerValue(P.value),Q.current=P.value),()=>g==null?void 0:g.cancelValue(P.value)},[P.value]);const N=F("checkbox",l),[oe,ee]=(0,c.ZP)(N),J=Object.assign({},P);g&&!x&&(J.onChange=function(){P.onChange&&P.onChange.apply(P,arguments),g.toggleOption&&g.toggleOption({label:j,value:P.value})},J.name=g.name,J.checked=g.value.includes(P.value));const te=y()(`${N}-wrapper`,{[`${N}-rtl`]:v==="rtl",[`${N}-wrapper-checked`]:J.checked,[`${N}-wrapper-disabled`]:V,[`${N}-wrapper-in-form-item`]:G},Z==null?void 0:Z.className,C,U,ee),re=y()({[`${N}-indeterminate`]:z},t.A,ee),ne=z?"mixed":void 0;return oe(i.createElement(s.Z,{component:"Checkbox",disabled:V},i.createElement("label",{className:te,style:Object.assign(Object.assign({},Z==null?void 0:Z.style),M),onMouseEnter:I,onMouseLeave:p},i.createElement(T.Z,Object.assign({"aria-checked":ne},J,{prefixCls:N,className:re,disabled:V,ref:E})),j!==void 0&&i.createElement("span",null,j))))};var d=i.forwardRef(m),W=e(29140),S=e(98186),_=function(b,E){var O={};for(var l in b)Object.prototype.hasOwnProperty.call(b,l)&&E.indexOf(l)<0&&(O[l]=b[l]);if(b!=null&&typeof Object.getOwnPropertySymbols=="function")for(var C=0,l=Object.getOwnPropertySymbols(b);C{const{defaultValue:O,children:l,options:C=[],prefixCls:U,className:j,rootClassName:z,style:M,onChange:I}=b,p=_(b,["defaultValue","children","options","prefixCls","className","rootClassName","style","onChange"]),{getPrefixCls:x,direction:k}=i.useContext(f.E_),[P,F]=i.useState(p.value||O||[]),[v,Z]=i.useState([]);i.useEffect(()=>{"value"in p&&F(p.value||[])},[p.value]);const g=i.useMemo(()=>C.map(D=>typeof D=="string"||typeof D=="number"?{label:D,value:D}:D),[C]),G=D=>{Z(Y=>Y.filter(q=>q!==D))},X=D=>{Z(Y=>[].concat((0,W.Z)(Y),[D]))},V=D=>{const Y=P.indexOf(D.value),q=(0,W.Z)(P);Y===-1?q.push(D.value):q.splice(Y,1),"value"in p||F(q),I==null||I(q.filter(ae=>v.includes(ae)).sort((ae,ie)=>{const se=g.findIndex(le=>le.value===ae),de=g.findIndex(le=>le.value===ie);return se-de}))},Q=x("checkbox",U),N=`${Q}-group`,[oe,ee]=(0,c.ZP)(Q),J=(0,S.Z)(p,["value","disabled"]),te=C.length?g.map(D=>i.createElement(d,{prefixCls:Q,key:D.value.toString(),disabled:"disabled"in D?D.disabled:p.disabled,value:D.value,checked:P.includes(D.value),onChange:D.onChange,className:`${N}-item`,style:D.style,title:D.title},D.label)):l,re={toggleOption:V,value:P,disabled:p.disabled,name:p.name,registerValue:X,cancelValue:G},ne=y()(N,{[`${N}-rtl`]:k==="rtl"},j,z,ee);return oe(i.createElement("div",Object.assign({className:ne,style:M},J,{ref:E}),i.createElement(n.Provider,{value:re},te)))},A=i.forwardRef(u);var w=i.memo(A);const K=d;K.Group=w,K.__ANT_CHECKBOX=!0;var $=K},7316:function(H,R,e){e.d(R,{C2:function(){return f}});var h=e(78330),y=e(22151),T=e(52628);const i=o=>{const{checkboxCls:r}=o,a=`${r}-wrapper`;return[{[`${r}-group`]:Object.assign(Object.assign({},(0,h.Wf)(o)),{display:"inline-flex",flexWrap:"wrap",columnGap:o.marginXS,[`> ${o.antCls}-row`]:{flex:1}}),[a]:Object.assign(Object.assign({},(0,h.Wf)(o)),{display:"inline-flex",alignItems:"baseline",cursor:"pointer","&:after":{display:"inline-block",width:0,overflow:"hidden",content:"'\\a0'"},[`& + ${a}`]:{marginInlineStart:0},[`&${a}-in-form-item`]:{'input[type="checkbox"]':{width:14,height:14}}}),[r]:Object.assign(Object.assign({},(0,h.Wf)(o)),{position:"relative",whiteSpace:"nowrap",lineHeight:1,cursor:"pointer",borderRadius:o.borderRadiusSM,alignSelf:"center",[`${r}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0,margin:0,[`&:focus-visible + ${r}-inner`]:Object.assign({},(0,h.oN)(o))},[`${r}-inner`]:{boxSizing:"border-box",position:"relative",top:0,insetInlineStart:0,display:"block",width:o.checkboxSize,height:o.checkboxSize,direction:"ltr",backgroundColor:o.colorBgContainer,border:`${o.lineWidth}px ${o.lineType} ${o.colorBorder}`,borderRadius:o.borderRadiusSM,borderCollapse:"separate",transition:`all ${o.motionDurationSlow}`,"&:after":{boxSizing:"border-box",position:"absolute",top:"50%",insetInlineStart:"21.5%",display:"table",width:o.checkboxSize/14*5,height:o.checkboxSize/14*8,border:`${o.lineWidthBold}px solid ${o.colorWhite}`,borderTop:0,borderInlineStart:0,transform:"rotate(45deg) scale(0) translate(-50%,-50%)",opacity:0,content:'""',transition:`all ${o.motionDurationFast} ${o.motionEaseInBack}, opacity ${o.motionDurationFast}`}},"& + span":{paddingInlineStart:o.paddingXS,paddingInlineEnd:o.paddingXS}})},{[` - ${a}:not(${a}-disabled), - ${r}:not(${r}-disabled) - `]:{[`&:hover ${r}-inner`]:{borderColor:o.colorPrimary}},[`${a}:not(${a}-disabled)`]:{[`&:hover ${r}-checked:not(${r}-disabled) ${r}-inner`]:{backgroundColor:o.colorPrimaryHover,borderColor:"transparent"},[`&:hover ${r}-checked:not(${r}-disabled):after`]:{borderColor:o.colorPrimaryHover}}},{[`${r}-checked`]:{[`${r}-inner`]:{backgroundColor:o.colorPrimary,borderColor:o.colorPrimary,"&:after":{opacity:1,transform:"rotate(45deg) scale(1) translate(-50%,-50%)",transition:`all ${o.motionDurationMid} ${o.motionEaseOutBack} ${o.motionDurationFast}`}}},[` - ${a}-checked:not(${a}-disabled), - ${r}-checked:not(${r}-disabled) - `]:{[`&:hover ${r}-inner`]:{backgroundColor:o.colorPrimaryHover,borderColor:"transparent"}}},{[r]:{"&-indeterminate":{[`${r}-inner`]:{backgroundColor:o.colorBgContainer,borderColor:o.colorBorder,"&:after":{top:"50%",insetInlineStart:"50%",width:o.fontSizeLG/2,height:o.fontSizeLG/2,backgroundColor:o.colorPrimary,border:0,transform:"translate(-50%, -50%) scale(1)",opacity:1,content:'""'}}}}},{[`${a}-disabled`]:{cursor:"not-allowed"},[`${r}-disabled`]:{[`&, ${r}-input`]:{cursor:"not-allowed",pointerEvents:"none"},[`${r}-inner`]:{background:o.colorBgContainerDisabled,borderColor:o.colorBorder,"&:after":{borderColor:o.colorTextDisabled}},"&:after":{display:"none"},"& + span":{color:o.colorTextDisabled},[`&${r}-indeterminate ${r}-inner::after`]:{background:o.colorTextDisabled}}}]};function f(o,r){const a=(0,y.TS)(r,{checkboxCls:`.${o}`,checkboxSize:r.controlInteractiveSize});return[i(a)]}R.ZP=(0,T.Z)("Checkbox",(o,r)=>{let{prefixCls:a}=r;return[f(a,o)]})},86035:function(H,R,e){e.d(R,{Ag:function(){return i},IH:function(){return f},w:function(){return T}});var h=e(58757);const y=h.createContext(null),T=y.Provider;R.ZP=y;const i=h.createContext(null),f=i.Provider},40256:function(H,R,e){var h=e(87608),y=e.n(h),T=e(60409),i=e(33926),f=e(58757),o=e(61836),r=e(58785),a=e(86035),n=e(27538),c=e(44397);const s=f.forwardRef((t,L)=>{const{getPrefixCls:m,direction:B}=f.useContext(o.E_),[d,W]=(0,T.Z)(t.defaultValue,{value:t.value}),S=v=>{const Z=d,g=v.target.value;"value"in t||W(g);const{onChange:G}=t;G&&g!==Z&&G(v)},{prefixCls:_,className:u,rootClassName:A,options:w,buttonStyle:K="outline",disabled:$,children:b,size:E,style:O,id:l,onMouseEnter:C,onMouseLeave:U,onFocus:j,onBlur:z}=t,M=m("radio",_),I=`${M}-group`,[p,x]=(0,c.Z)(M);let k=b;w&&w.length>0&&(k=w.map(v=>typeof v=="string"||typeof v=="number"?f.createElement(n.Z,{key:v.toString(),prefixCls:M,disabled:$,value:v,checked:d===v},v):f.createElement(n.Z,{key:`radio-group-value-options-${v.value}`,prefixCls:M,disabled:v.disabled||$,value:v.value,checked:d===v.value,title:v.title,style:v.style},v.label)));const P=(0,r.Z)(E),F=y()(I,`${I}-${K}`,{[`${I}-${P}`]:P,[`${I}-rtl`]:B==="rtl"},u,A,x);return p(f.createElement("div",Object.assign({},(0,i.Z)(t,{aria:!0,data:!0}),{className:F,style:O,onMouseEnter:C,onMouseLeave:U,onFocus:j,onBlur:z,id:l,ref:L}),f.createElement(a.w,{value:{onChange:S,value:d,disabled:t.disabled,name:t.name,optionType:t.optionType}},k)))});R.Z=f.memo(s)},10852:function(H,R,e){var h=e(40256),y=e(27538),T=e(42253);const i=y.Z;i.Button=T.Z,i.Group=h.Z,i.__ANT_RADIO=!0,R.ZP=i},27538:function(H,R,e){var h=e(87608),y=e.n(h),T=e(60357),i=e(21319),f=e(58757),o=e(61836),r=e(92428),a=e(81496),n=e(86035),c=e(44397),s=e(37486),t=e(78856),L=function(d,W){var S={};for(var _ in d)Object.prototype.hasOwnProperty.call(d,_)&&W.indexOf(_)<0&&(S[_]=d[_]);if(d!=null&&typeof Object.getOwnPropertySymbols=="function")for(var u=0,_=Object.getOwnPropertySymbols(d);u<_.length;u++)W.indexOf(_[u])<0&&Object.prototype.propertyIsEnumerable.call(d,_[u])&&(S[_[u]]=d[_[u]]);return S};const m=(d,W)=>{var S,_;const u=f.useContext(n.ZP),A=f.useContext(n.Ag),{getPrefixCls:w,direction:K,radio:$}=f.useContext(o.E_),b=f.useRef(null),E=(0,i.sQ)(W,b),{isFormItemInput:O}=f.useContext(a.aM),l=G=>{var X,V;(X=d.onChange)===null||X===void 0||X.call(d,G),(V=u==null?void 0:u.onChange)===null||V===void 0||V.call(u,G)},{prefixCls:C,className:U,rootClassName:j,children:z,style:M}=d,I=L(d,["prefixCls","className","rootClassName","children","style"]),p=w("radio",C),x=((u==null?void 0:u.optionType)||A)==="button",k=x?`${p}-button`:p,[P,F]=(0,c.Z)(p),v=Object.assign({},I),Z=f.useContext(r.Z);u&&(v.name=u.name,v.onChange=l,v.checked=d.value===u.value,v.disabled=(S=v.disabled)!==null&&S!==void 0?S:u.disabled),v.disabled=(_=v.disabled)!==null&&_!==void 0?_:Z;const g=y()(`${k}-wrapper`,{[`${k}-wrapper-checked`]:v.checked,[`${k}-wrapper-disabled`]:v.disabled,[`${k}-wrapper-rtl`]:K==="rtl",[`${k}-wrapper-in-form-item`]:O},$==null?void 0:$.className,U,j,F);return P(f.createElement(s.Z,{component:"Radio",disabled:v.disabled},f.createElement("label",{className:g,style:Object.assign(Object.assign({},$==null?void 0:$.style),M),onMouseEnter:d.onMouseEnter,onMouseLeave:d.onMouseLeave},f.createElement(T.Z,Object.assign({},v,{className:y()(v.className,!x&&t.A),type:"radio",prefixCls:k,ref:E})),z!==void 0?f.createElement("span",null,z):null)))},B=f.forwardRef(m);R.Z=B},42253:function(H,R,e){var h=e(58757),y=e(61836),T=e(86035),i=e(27538),f=function(r,a){var n={};for(var c in r)Object.prototype.hasOwnProperty.call(r,c)&&a.indexOf(c)<0&&(n[c]=r[c]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,c=Object.getOwnPropertySymbols(r);s{const{getPrefixCls:n}=h.useContext(y.E_),{prefixCls:c}=r,s=f(r,["prefixCls"]),t=n("radio",c);return h.createElement(T.IH,{value:"button"},h.createElement(i.Z,Object.assign({prefixCls:t},s,{type:"radio",ref:a})))};R.Z=h.forwardRef(o)},44397:function(H,R,e){var h=e(78330),y=e(52628),T=e(22151);const i=a=>{const{componentCls:n,antCls:c}=a,s=`${n}-group`;return{[s]:Object.assign(Object.assign({},(0,h.Wf)(a)),{display:"inline-block",fontSize:0,[`&${s}-rtl`]:{direction:"rtl"},[`${c}-badge ${c}-badge-count`]:{zIndex:1},[`> ${c}-badge:not(:first-child) > ${c}-button-wrapper`]:{borderInlineStart:"none"}})}},f=a=>{const{componentCls:n,wrapperMarginInlineEnd:c,colorPrimary:s,radioSize:t,motionDurationSlow:L,motionDurationMid:m,motionEaseInOutCirc:B,colorBgContainer:d,colorBorder:W,lineWidth:S,dotSize:_,colorBgContainerDisabled:u,colorTextDisabled:A,paddingXS:w,dotColorDisabled:K,lineType:$,radioDotDisabledSize:b,wireframe:E,colorWhite:O}=a,l=`${n}-inner`;return{[`${n}-wrapper`]:Object.assign(Object.assign({},(0,h.Wf)(a)),{display:"inline-flex",alignItems:"baseline",marginInlineStart:0,marginInlineEnd:c,cursor:"pointer",[`&${n}-wrapper-rtl`]:{direction:"rtl"},"&-disabled":{cursor:"not-allowed",color:a.colorTextDisabled},"&::after":{display:"inline-block",width:0,overflow:"hidden",content:'"\\a0"'},[`${n}-checked::after`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,width:"100%",height:"100%",border:`${S}px ${$} ${s}`,borderRadius:"50%",visibility:"hidden",content:'""'},[n]:Object.assign(Object.assign({},(0,h.Wf)(a)),{position:"relative",display:"inline-block",outline:"none",cursor:"pointer",alignSelf:"center",borderRadius:"50%"}),[`${n}-wrapper:hover &, - &:hover ${l}`]:{borderColor:s},[`${n}-input:focus-visible + ${l}`]:Object.assign({},(0,h.oN)(a)),[`${n}:hover::after, ${n}-wrapper:hover &::after`]:{visibility:"visible"},[`${n}-inner`]:{"&::after":{boxSizing:"border-box",position:"absolute",insetBlockStart:"50%",insetInlineStart:"50%",display:"block",width:t,height:t,marginBlockStart:t/-2,marginInlineStart:t/-2,backgroundColor:E?s:O,borderBlockStart:0,borderInlineStart:0,borderRadius:t,transform:"scale(0)",opacity:0,transition:`all ${L} ${B}`,content:'""'},boxSizing:"border-box",position:"relative",insetBlockStart:0,insetInlineStart:0,display:"block",width:t,height:t,backgroundColor:d,borderColor:W,borderStyle:"solid",borderWidth:S,borderRadius:"50%",transition:`all ${m}`},[`${n}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0},[`${n}-checked`]:{[l]:{borderColor:s,backgroundColor:E?d:s,"&::after":{transform:`scale(${_/t})`,opacity:1,transition:`all ${L} ${B}`}}},[`${n}-disabled`]:{cursor:"not-allowed",[l]:{backgroundColor:u,borderColor:W,cursor:"not-allowed","&::after":{backgroundColor:K}},[`${n}-input`]:{cursor:"not-allowed"},[`${n}-disabled + span`]:{color:A,cursor:"not-allowed"},[`&${n}-checked`]:{[l]:{"&::after":{transform:`scale(${b/t})`}}}},[`span${n} + *`]:{paddingInlineStart:w,paddingInlineEnd:w}})}},o=a=>{const{buttonColor:n,controlHeight:c,componentCls:s,lineWidth:t,lineType:L,colorBorder:m,motionDurationSlow:B,motionDurationMid:d,buttonPaddingInline:W,fontSize:S,buttonBg:_,fontSizeLG:u,controlHeightLG:A,controlHeightSM:w,paddingXS:K,borderRadius:$,borderRadiusSM:b,borderRadiusLG:E,buttonCheckedBg:O,buttonSolidCheckedColor:l,colorTextDisabled:C,colorBgContainerDisabled:U,buttonCheckedBgDisabled:j,buttonCheckedColorDisabled:z,colorPrimary:M,colorPrimaryHover:I,colorPrimaryActive:p}=a;return{[`${s}-button-wrapper`]:{position:"relative",display:"inline-block",height:c,margin:0,paddingInline:W,paddingBlock:0,color:n,fontSize:S,lineHeight:`${c-t*2}px`,background:_,border:`${t}px ${L} ${m}`,borderBlockStartWidth:t+.02,borderInlineStartWidth:0,borderInlineEndWidth:t,cursor:"pointer",transition:[`color ${d}`,`background ${d}`,`box-shadow ${d}`].join(","),a:{color:n},[`> ${s}-button`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,zIndex:-1,width:"100%",height:"100%"},"&:not(:first-child)":{"&::before":{position:"absolute",insetBlockStart:-t,insetInlineStart:-t,display:"block",boxSizing:"content-box",width:1,height:"100%",paddingBlock:t,paddingInline:0,backgroundColor:m,transition:`background-color ${B}`,content:'""'}},"&:first-child":{borderInlineStart:`${t}px ${L} ${m}`,borderStartStartRadius:$,borderEndStartRadius:$},"&:last-child":{borderStartEndRadius:$,borderEndEndRadius:$},"&:first-child:last-child":{borderRadius:$},[`${s}-group-large &`]:{height:A,fontSize:u,lineHeight:`${A-t*2}px`,"&:first-child":{borderStartStartRadius:E,borderEndStartRadius:E},"&:last-child":{borderStartEndRadius:E,borderEndEndRadius:E}},[`${s}-group-small &`]:{height:w,paddingInline:K-t,paddingBlock:0,lineHeight:`${w-t*2}px`,"&:first-child":{borderStartStartRadius:b,borderEndStartRadius:b},"&:last-child":{borderStartEndRadius:b,borderEndEndRadius:b}},"&:hover":{position:"relative",color:M},"&:has(:focus-visible)":Object.assign({},(0,h.oN)(a)),[`${s}-inner, input[type='checkbox'], input[type='radio']`]:{width:0,height:0,opacity:0,pointerEvents:"none"},[`&-checked:not(${s}-button-wrapper-disabled)`]:{zIndex:1,color:M,background:O,borderColor:M,"&::before":{backgroundColor:M},"&:first-child":{borderColor:M},"&:hover":{color:I,borderColor:I,"&::before":{backgroundColor:I}},"&:active":{color:p,borderColor:p,"&::before":{backgroundColor:p}}},[`${s}-group-solid &-checked:not(${s}-button-wrapper-disabled)`]:{color:l,background:M,borderColor:M,"&:hover":{color:l,background:I,borderColor:I},"&:active":{color:l,background:p,borderColor:p}},"&-disabled":{color:C,backgroundColor:U,borderColor:m,cursor:"not-allowed","&:first-child, &:hover":{color:C,backgroundColor:U,borderColor:m}},[`&-disabled${s}-button-wrapper-checked`]:{color:z,backgroundColor:j,borderColor:m,boxShadow:"none"}}}},r=a=>a-4*2;R.Z=(0,y.Z)("Radio",a=>{const{controlOutline:n,controlOutlineWidth:c,radioSize:s}=a,t=`0 0 0 ${c}px ${n}`,L=t,m=r(s),B=(0,T.TS)(a,{radioDotDisabledSize:m,radioFocusShadow:t,radioButtonFocusShadow:L});return[i(B),f(B),o(B)]},a=>{const{wireframe:n,padding:c,marginXS:s,lineWidth:t,fontSizeLG:L,colorText:m,colorBgContainer:B,colorTextDisabled:d,controlItemBgActiveDisabled:W,colorTextLightSolid:S}=a,_=4,u=L,A=n?r(u):u-(_+t)*2;return{radioSize:u,dotSize:A,dotColorDisabled:d,buttonSolidCheckedColor:S,buttonBg:B,buttonCheckedBg:B,buttonColor:m,buttonCheckedBgDisabled:W,buttonCheckedColorDisabled:d,buttonPaddingInline:c-t,wrapperMarginInlineEnd:s}})},60357:function(H,R,e){var h=e(60698),y=e(57370),T=e(37734),i=e(28314),f=e(47075),o=e(87608),r=e.n(o),a=e(60409),n=e(58757),c=["prefixCls","className","style","checked","disabled","defaultChecked","type","title","onChange"],s=(0,n.forwardRef)(function(t,L){var m,B=t.prefixCls,d=B===void 0?"rc-checkbox":B,W=t.className,S=t.style,_=t.checked,u=t.disabled,A=t.defaultChecked,w=A===void 0?!1:A,K=t.type,$=K===void 0?"checkbox":K,b=t.title,E=t.onChange,O=(0,f.Z)(t,c),l=(0,n.useRef)(null),C=(0,a.Z)(w,{value:_}),U=(0,i.Z)(C,2),j=U[0],z=U[1];(0,n.useImperativeHandle)(L,function(){return{focus:function(){var x;(x=l.current)===null||x===void 0||x.focus()},blur:function(){var x;(x=l.current)===null||x===void 0||x.blur()},input:l.current}});var M=r()(d,W,(m={},(0,T.Z)(m,"".concat(d,"-checked"),j),(0,T.Z)(m,"".concat(d,"-disabled"),u),m)),I=function(x){u||("checked"in t||z(x.target.checked),E==null||E({target:(0,y.Z)((0,y.Z)({},t),{},{type:$,checked:x.target.checked}),stopPropagation:function(){x.stopPropagation()},preventDefault:function(){x.preventDefault()},nativeEvent:x.nativeEvent}))};return n.createElement("span",{className:M,title:b,style:S},n.createElement("input",(0,h.Z)({},O,{className:"".concat(d,"-input"),ref:l,onChange:I,disabled:u,checked:!!j,type:$})),n.createElement("span",{className:"".concat(d,"-inner")}))});R.Z=s}}]); - -//# sourceMappingURL=482.76b40e08.async.js.map \ No newline at end of file diff --git a/deepdataspace/server/static/482.76b40e08.async.js.map b/deepdataspace/server/static/482.76b40e08.async.js.map deleted file mode 100644 index b67b05c..0000000 --- a/deepdataspace/server/static/482.76b40e08.async.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"482.76b40e08.async.js","mappings":";AA8GA;AACA;AACA;AA8BA;AACA;AACA;ACpDA","sources":["webpack://app/../../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/checkbox/style/index.js","webpack://app/../../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/radio/style/index.js"],"sourcesContent":["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 { 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});"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/deepdataspace/server/static/742.95758e3b.async.js b/deepdataspace/server/static/742.95758e3b.async.js deleted file mode 100644 index 6ec0fa2..0000000 --- a/deepdataspace/server/static/742.95758e3b.async.js +++ /dev/null @@ -1,252 +0,0 @@ -!(function(){var Su=Object.defineProperty;var Wc=Object.getOwnPropertySymbols;var xu=Object.prototype.hasOwnProperty,wu=Object.prototype.propertyIsEnumerable;var Kc=(Dt,De,e)=>De in Dt?Su(Dt,De,{enumerable:!0,configurable:!0,writable:!0,value:e}):Dt[De]=e,Vc=(Dt,De)=>{for(var e in De||(De={}))xu.call(De,e)&&Kc(Dt,e,De[e]);if(Wc)for(var e of Wc(De))wu.call(De,e)&&Kc(Dt,e,De[e]);return Dt};(self.webpackChunkapp=self.webpackChunkapp||[]).push([[742],{15655:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return t}});var i=e(60698),y=e(58757),I={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"}}]},name:"copy",theme:"outlined"},T=I,F=e(17202),H=function(M,Ce){return y.createElement(F.Z,(0,i.Z)({},M,{ref:Ce,icon:T}))},t=y.forwardRef(H)},85976:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return t}});var i=e(60698),y=e(58757),I={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{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.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z"}}]},name:"file",theme:"outlined"},T=I,F=e(17202),H=function(M,Ce){return y.createElement(F.Z,(0,i.Z)({},M,{ref:Ce,icon:T}))},t=y.forwardRef(H)},81029:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return t}});var i=e(60698),y=e(58757),I={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z"}}]},name:"user",theme:"outlined"},T=I,F=e(17202),H=function(M,Ce){return y.createElement(F.Z,(0,i.Z)({},M,{ref:Ce,icon:T}))},t=y.forwardRef(H)},92232:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return t}});var i=e(60698),y=e(58757),I={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M859.9 168H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM518.3 355a8 8 0 00-12.6 0l-112 141.7a7.98 7.98 0 006.3 12.9h73.9V848c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V509.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 355z"}}]},name:"vertical-align-top",theme:"outlined"},T=I,F=e(17202),H=function(M,Ce){return y.createElement(F.Z,(0,i.Z)({},M,{ref:Ce,icon:T}))},t=y.forwardRef(H)},16566:function(Dt,De,e){"use strict";e.d(De,{L9:function(){return he},ZP:function(){return bt},MP:function(){return ht},NA:function(){return gt},aK:function(){return Ut}});var i=e(57370),y=e(47075),I=e(28314),T=e(29140),F=e(38790),H=e(37734),t=e(25846),j=e(70260),M=e(78964),Ce=e(60409),de=e(52496),w=e(58757),K=e(66631);function ne(xt){var ve=arguments.length>1&&arguments[1]!==void 0?arguments[1]:100,Ze=arguments.length>2?arguments[2]:void 0,Oe=(0,w.useState)(xt),je=(0,I.Z)(Oe,2),O=je[0],Ae=je[1],Z=(0,K.d)(xt);return(0,w.useEffect)(function(){var b=setTimeout(function(){Ae(Z.current)},ve);return function(){return clearTimeout(b)}},Ze?[ve].concat((0,T.Z)(Ze)):void 0),O}var f=e(57414),te=e(42505),A=e(79233),J=e(99742),$e=e(38914),z=e(35667),g={Success:function(ve){var Ze=ve.children;return(0,z.jsx)($e.Z,{status:"success",text:Ze})},Error:function(ve){var Ze=ve.children;return(0,z.jsx)($e.Z,{status:"error",text:Ze})},Default:function(ve){var Ze=ve.children;return(0,z.jsx)($e.Z,{status:"default",text:Ze})},Processing:function(ve){var Ze=ve.children;return(0,z.jsx)($e.Z,{status:"processing",text:Ze})},Warning:function(ve){var Ze=ve.children;return(0,z.jsx)($e.Z,{status:"warning",text:Ze})},success:function(ve){var Ze=ve.children;return(0,z.jsx)($e.Z,{status:"success",text:Ze})},error:function(ve){var Ze=ve.children;return(0,z.jsx)($e.Z,{status:"error",text:Ze})},default:function(ve){var Ze=ve.children;return(0,z.jsx)($e.Z,{status:"default",text:Ze})},processing:function(ve){var Ze=ve.children;return(0,z.jsx)($e.Z,{status:"processing",text:Ze})},warning:function(ve){var Ze=ve.children;return(0,z.jsx)($e.Z,{status:"warning",text:Ze})}},Ve=function(ve){var Ze=ve.color,Oe=ve.children;return(0,z.jsx)($e.Z,{color:Ze,text:Oe})},Zt=g,Le=e(99534),G=e(54637),st=e(59504),Me=e(21149),P=e(87608),Re=e.n(P),ct=e(42156),ee=["label","prefixCls","onChange","value","mode","children","defaultValue","size","showSearch","disabled","style","className","bordered","options","onSearch","allowClear","labelInValue","fieldNames","lightLabel","labelTrigger","optionFilterProp","optionLabelProp"],ue=function(ve,Ze){return(0,F.Z)(Ze)!=="object"?ve[Ze]||Ze:ve[Ze==null?void 0:Ze.value]||Ze.label},se=function(ve,Ze){var Oe=ve.label,je=ve.prefixCls,O=ve.onChange,Ae=ve.value,Z=ve.mode,b=ve.children,R=ve.defaultValue,ie=ve.size,_=ve.showSearch,Xe=ve.disabled,it=ve.style,Ct=ve.className,Pt=ve.bordered,Nt=ve.options,Vt=ve.onSearch,kt=ve.allowClear,tt=ve.labelInValue,dt=ve.fieldNames,Ft=ve.lightLabel,At=ve.labelTrigger,Lt=ve.optionFilterProp,un=ve.optionLabelProp,Xt=un===void 0?"":un,pn=(0,y.Z)(ve,ee),Sn=ve.placeholder,Gt=Sn===void 0?Oe:Sn,an=dt||{},ln=an.label,Pn=ln===void 0?"label":ln,zn=an.value,qn=zn===void 0?"value":zn,yr=(0,w.useContext)(te.ZP.ConfigContext),kn=yr.getPrefixCls,ae=kn("pro-field-select-light-select"),qe=(0,w.useState)(!1),_e=(0,I.Z)(qe,2),re=_e[0],Y=_e[1],Be=(0,w.useState)(""),we=(0,I.Z)(Be,2),vt=we[0],Se=we[1],X=(0,j.Xj)("LightSelect",function(L){var D;return(0,H.Z)({},".".concat(ae),(D={},(0,H.Z)(D,"".concat(L.antCls,"-select"),{position:"absolute",width:"153px",height:"28px",visibility:"hidden","&-selector":{height:28}}),(0,H.Z)(D,"&.".concat(ae,"-searchable"),(0,H.Z)({},"".concat(L.antCls,"-select"),{width:"200px","&-selector":{height:28}})),D))}),Ne=X.wrapSSR,St=X.hashId,xe=(0,w.useMemo)(function(){var L={};return Nt==null||Nt.forEach(function(D){var x=D[Xt]||D[Pn],oe=D[qn];L[oe]=x||oe}),L},[Pn,Nt,qn,Xt]),fe=Array.isArray(Ae)?Ae.map(function(L){return ue(xe,L)}):ue(xe,Ae);return Ne((0,z.jsxs)("div",{className:Re()(ae,St,(0,H.Z)({},"".concat(ae,"-searchable"),_),"".concat(ae,"-container-").concat(pn.placement||"bottomLeft"),Ct),style:it,onClick:function(D){var x,oe,be;if(!Xe){var Ie=Ft==null||(x=Ft.current)===null||x===void 0||(oe=x.labelRef)===null||oe===void 0||(be=oe.current)===null||be===void 0?void 0:be.contains(D.target);Y(Ie?!re:!0)}},children:[(0,z.jsx)(st.Z,(0,i.Z)((0,i.Z)({popupMatchSelectWidth:!1},pn),{},{allowClear:kt,value:Ae,mode:Z,labelInValue:tt,size:ie,disabled:Xe,onChange:function(D,x){O==null||O(D,x),Z!=="multiple"&&Y(!1)},bordered:Pt,showSearch:_,onSearch:Vt,style:it,dropdownRender:function(D){return(0,z.jsxs)("div",{ref:Ze,children:[_&&(0,z.jsx)("div",{style:{margin:"4px 8px"},children:(0,z.jsx)(Me.Z,{value:vt,allowClear:!!kt,onChange:function(oe){Se(oe.target.value),Vt==null||Vt(oe.target.value)},onKeyDown:function(oe){oe.stopPropagation()},style:{width:"100%"},prefix:(0,z.jsx)(Le.Z,{})})}),D]})},open:re,onDropdownVisibleChange:function(D){var x;D||Se(""),At||Y(D),pn==null||(x=pn.onDropdownVisibleChange)===null||x===void 0||x.call(pn,D)},prefixCls:je,options:Vt||!vt?Nt:Nt==null?void 0:Nt.filter(function(L){var D,x,oe,be,Ie;return Lt?(0,ct.Z)(L[Lt]).join("").toLowerCase().includes(vt):((D=String(L[Pn]))===null||D===void 0||(x=D.toLowerCase())===null||x===void 0?void 0:x.includes(vt==null?void 0:vt.toLowerCase()))||((oe=L[qn])===null||oe===void 0||(be=oe.toString())===null||be===void 0||(Ie=be.toLowerCase())===null||Ie===void 0?void 0:Ie.includes(vt==null?void 0:vt.toLowerCase()))})})),(0,z.jsx)(G.Q,{ellipsis:!0,label:Oe,placeholder:Gt,disabled:Xe,bordered:Pt,allowClear:!!kt,value:fe||(Ae==null?void 0:Ae.label)||Ae,onClear:function(){O==null||O(void 0,void 0)},ref:Ft})]}))},Ke=w.forwardRef(se),ot=["optionItemRender","mode","onSearch","onFocus","onChange","autoClearSearchValue","searchOnFocus","resetAfterSelect","fetchDataOnSearch","optionFilterProp","optionLabelProp","className","disabled","options","fetchData","resetData","prefixCls","onClear","searchValue","showSearch","fieldNames","defaultSearchValue"],Fe=["className","optionType"],ut=function(ve,Ze){var Oe=ve.optionItemRender,je=ve.mode,O=ve.onSearch,Ae=ve.onFocus,Z=ve.onChange,b=ve.autoClearSearchValue,R=b===void 0?!0:b,ie=ve.searchOnFocus,_=ie===void 0?!1:ie,Xe=ve.resetAfterSelect,it=Xe===void 0?!1:Xe,Ct=ve.fetchDataOnSearch,Pt=Ct===void 0?!0:Ct,Nt=ve.optionFilterProp,Vt=Nt===void 0?"label":Nt,kt=ve.optionLabelProp,tt=kt===void 0?"label":kt,dt=ve.className,Ft=ve.disabled,At=ve.options,Lt=ve.fetchData,un=ve.resetData,Xt=ve.prefixCls,pn=ve.onClear,Sn=ve.searchValue,Gt=ve.showSearch,an=ve.fieldNames,ln=ve.defaultSearchValue,Pn=(0,y.Z)(ve,ot),zn=an||{},qn=zn.label,yr=qn===void 0?"label":qn,kn=zn.value,ae=kn===void 0?"value":kn,qe=zn.options,_e=qe===void 0?"options":qe,re=(0,w.useState)(Sn!=null?Sn:ln),Y=(0,I.Z)(re,2),Be=Y[0],we=Y[1],vt=(0,w.useRef)();(0,w.useImperativeHandle)(Ze,function(){return vt.current}),(0,w.useEffect)(function(){if(Pn.autoFocus){var L;vt==null||(L=vt.current)===null||L===void 0||L.focus()}},[Pn.autoFocus]),(0,w.useEffect)(function(){we(Sn)},[Sn]);var Se=(0,w.useContext)(te.ZP.ConfigContext),X=Se.getPrefixCls,Ne=X("pro-filed-search-select",Xt),St=Re()(Ne,dt,(0,H.Z)({},"".concat(Ne,"-disabled"),Ft)),xe=function(D,x){return Array.isArray(D)&&D.length>0?D.map(function(oe,be){var Ie=x==null?void 0:x[be],Ye=(Ie==null?void 0:Ie["data-item"])||{};return(0,i.Z)((0,i.Z)({},Ye),oe)}):[]},fe=function L(D){return D.map(function(x,oe){var be,Ie=x,Ye=Ie.className,Ue=Ie.optionType,et=(0,y.Z)(Ie,Fe),Ht=x[yr],mt=x[ae],Cn=(be=x[_e])!==null&&be!==void 0?be:[];return Ue==="optGroup"||x.options?(0,i.Z)((0,i.Z)({label:Ht},et),{},{data_title:Ht,title:Ht,key:mt!=null?mt:Ht==null?void 0:Ht.toString(),children:L(Cn)}):(0,i.Z)((0,i.Z)({title:Ht},et),{},{data_title:Ht,value:mt!=null?mt:oe,key:mt!=null?mt:Ht==null?void 0:Ht.toString(),"data-item":x,className:"".concat(Ne,"-option ").concat(Ye||"").trim(),label:(Oe==null?void 0:Oe(x))||Ht})})};return(0,z.jsx)(st.Z,(0,i.Z)((0,i.Z)({ref:vt,className:St,allowClear:!0,autoClearSearchValue:R,disabled:Ft,mode:je,showSearch:Gt,searchValue:Be,optionFilterProp:Vt,optionLabelProp:tt,onClear:function(){pn==null||pn(),Lt(void 0),Gt&&we(void 0)}},Pn),{},{filterOption:Pn.filterOption==!1?!1:function(L,D){var x,oe,be;return Pn.filterOption&&typeof Pn.filterOption=="function"?Pn.filterOption(L,(0,i.Z)((0,i.Z)({},D),{},{label:D==null?void 0:D.data_title})):!!(D!=null&&(x=D.data_title)!==null&&x!==void 0&&x.toString().toLowerCase().includes(L.toLowerCase())||D!=null&&(oe=D.label)!==null&&oe!==void 0&&oe.toString().toLowerCase().includes(L.toLowerCase())||D!=null&&(be=D.value)!==null&&be!==void 0&&be.toString().toLowerCase().includes(L.toLowerCase()))},onSearch:Gt?function(L){Pt&&Lt(L),O==null||O(L),we(L)}:void 0,onChange:function(D,x){Gt&&R&&(Lt(void 0),O==null||O(""),we(void 0));for(var oe=arguments.length,be=new Array(oe>2?oe-2:0),Ie=2;Ie2&&arguments[2]!==void 0?arguments[2]:!0,Xe=Object.keys(ie).reduce(function(Pt,Nt){var Vt=ie[Nt];return(0,st.k)(Vt)||(Pt[Nt]=Vt),Pt},{});if(Object.keys(Xe).length<1||typeof window=="undefined"||(0,g.Z)(R)!=="object"||(0,st.k)(R)||R instanceof Blob)return R;var it=Array.isArray(R)?[]:{},Ct=function Pt(Nt,Vt){var kt=Array.isArray(Nt),tt=kt?[]:{};return Nt==null||Nt===void 0?tt:(Object.keys(Nt).forEach(function(dt){var Ft=function Sn(Gt,an){return Array.isArray(Gt)&&Gt.forEach(function(ln,Pn){if(ln){var zn=an==null?void 0:an[Pn];typeof ln=="function"&&(an[Pn]=ln(an,dt,Nt)),(0,g.Z)(ln)==="object"&&!Array.isArray(ln)&&Object.keys(ln).forEach(function(qn){var yr=zn==null?void 0:zn[qn];if(typeof ln[qn]=="function"&&yr){var kn=ln[qn](zn[qn],dt,Nt);zn[qn]=(0,g.Z)(kn)==="object"?kn[qn]:kn}else(0,g.Z)(ln[qn])==="object"&&Array.isArray(ln[qn])&&yr&&Sn(ln[qn],yr)}),(0,g.Z)(ln)==="object"&&Array.isArray(ln)&&zn&&Sn(ln,zn)}}),dt},At=Vt?[Vt,dt].flat(1):[dt].flat(1),Lt=Nt[dt],un=(0,Le.Z)(Xe,At),Xt=function(){var Gt,an,ln=!1;if(typeof un=="function"){an=un==null?void 0:un(Lt,dt,Nt);var Pn=(0,g.Z)(an);Pn!=="object"&&Pn!=="undefined"?(Gt=dt,ln=!0):Gt=an}else Gt=Ft(un,Lt);if(Array.isArray(Gt)){tt=(0,G.Z)(tt,Gt,Lt);return}(0,g.Z)(Gt)==="object"&&!Array.isArray(it)?it=Zt()(it,Gt):(0,g.Z)(Gt)==="object"&&Array.isArray(it)?tt=(0,I.Z)((0,I.Z)({},tt),Gt):(Gt!==null||Gt!==void 0)&&(tt=(0,G.Z)(tt,[Gt],ln?an:Lt))};if(un&&typeof un=="function"&&Xt(),typeof window!="undefined"){if(P(Lt)){var pn=Pt(Lt,At);if(Object.keys(pn).length<1)return;tt=(0,G.Z)(tt,[dt],pn);return}Xt()}}),_?tt:Nt)};return it=Array.isArray(R)&&Array.isArray(it)?(0,z.Z)(Ct(R)):(0,Me.T)({},Ct(R),it),it},ct=e(24435),ee=function(){return ee=Object.assign||function(b){for(var R,ie=1,_=arguments.length;ie<_;ie++){R=arguments[ie];for(var Xe in R)Object.prototype.hasOwnProperty.call(R,Xe)&&(b[Xe]=R[Xe])}return b},ee.apply(this,arguments)};function ue(b){var R,ie=(typeof window!="undefined"?window:{}).URL,_=new ie((R=window==null?void 0:window.location)===null||R===void 0?void 0:R.href);return Object.keys(b).forEach(function(Xe){var it=b[Xe];it!=null?Array.isArray(it)?(_.searchParams.delete(Xe),it.forEach(function(Ct){_.searchParams.append(Xe,Ct)})):it instanceof Date?Number.isNaN(it.getTime())||_.searchParams.set(Xe,it.toISOString()):typeof it=="object"?_.searchParams.set(Xe,JSON.stringify(it)):_.searchParams.set(Xe,it):_.searchParams.delete(Xe)}),_}function se(b,R){var ie;b===void 0&&(b={}),R===void 0&&(R={disabled:!1});var _=(0,f.useState)(),Xe=_[1],it=typeof window!="undefined"&&((ie=window==null?void 0:window.location)===null||ie===void 0?void 0:ie.search),Ct=(0,f.useMemo)(function(){return R.disabled?{}:new URLSearchParams(it||{})},[R.disabled,it]),Pt=(0,f.useMemo)(function(){if(R.disabled)return{};if(typeof window=="undefined"||!window.URL)return{};var kt=[];Ct.forEach(function(dt,Ft){kt.push({key:Ft,value:dt})}),kt=kt.reduce(function(dt,Ft){return(dt[Ft.key]=dt[Ft.key]||[]).push(Ft),dt},{}),kt=Object.keys(kt).map(function(dt){var Ft=kt[dt];return Ft.length===1?[dt,Ft[0].value]:[dt,Ft.map(function(At){var Lt=At.value;return Lt})]});var tt=ee({},b);return kt.forEach(function(dt){var Ft=dt[0],At=dt[1];tt[Ft]=ot(Ft,At,{},b)}),tt},[R.disabled,b,Ct]);function Nt(kt){if(!(typeof window=="undefined"||!window.URL)){var tt=ue(kt);window.location.search!==tt.search&&window.history.replaceState({},"",tt.toString()),Ct.toString()!==tt.searchParams.toString()&&Xe({})}}(0,f.useEffect)(function(){R.disabled||typeof window=="undefined"||!window.URL||Nt(ee(ee({},b),Pt))},[R.disabled,Pt]);var Vt=function(kt){Nt(kt)};return(0,f.useEffect)(function(){if(R.disabled)return function(){};if(typeof window=="undefined"||!window.URL)return function(){};var kt=function(){Xe({})};return window.addEventListener("popstate",kt),function(){window.removeEventListener("popstate",kt)}},[R.disabled]),[Pt,Vt]}var Ke={true:!0,false:!1};function ot(b,R,ie,_){if(!ie)return R;var Xe=ie[b],it=R===void 0?_[b]:R;return Xe===Number?Number(it):Xe===Boolean||R==="true"||R==="false"?Ke[it]:Array.isArray(Xe)?Xe.find(function(Ct){return Ct==it})||_[b]:it}var Fe=e(47513),ut=e(42505),U=e(79233),W=e(87608),me=e.n(W),he=e(36490),ht=e(75556),at=e(12562),pt=e(35667),ft=function(R){var ie=(0,t.YB)(),_=Fe.Z.useFormInstance();if(R.render===!1)return null;var Xe=R.onSubmit,it=R.render,Ct=R.onReset,Pt=R.searchConfig,Nt=Pt===void 0?{}:Pt,Vt=R.submitButtonProps,kt=R.resetButtonProps,tt=kt===void 0?{}:kt,dt=$e.Ow.useToken(),Ft=dt.token,At=function(){_.submit(),Xe==null||Xe()},Lt=function(){_.resetFields(),Ct==null||Ct()},un=Nt.submitText,Xt=un===void 0?ie.getMessage("tableForm.submit","\u63D0\u4EA4"):un,pn=Nt.resetText,Sn=pn===void 0?ie.getMessage("tableForm.reset","\u91CD\u7F6E"):pn,Gt=[];tt!==!1&&Gt.push((0,f.createElement)(at.ZP,(0,I.Z)((0,I.Z)({},(0,he.Z)(tt,["preventDefault"])),{},{key:"rest",onClick:function(Pn){var zn;tt!=null&&tt.preventDefault||Lt(),tt==null||(zn=tt.onClick)===null||zn===void 0||zn.call(tt,Pn)}}),Sn)),Vt!==!1&&Gt.push((0,f.createElement)(at.ZP,(0,I.Z)((0,I.Z)({type:"primary"},(0,he.Z)(Vt||{},["preventDefault"])),{},{key:"submit",onClick:function(Pn){var zn;Vt!=null&&Vt.preventDefault||At(),Vt==null||(zn=Vt.onClick)===null||zn===void 0||zn.call(Vt,Pn)}}),Xt));var an=it?it((0,I.Z)((0,I.Z)({},R),{},{form:_,submit:At,reset:Lt}),Gt):Gt;return an?Array.isArray(an)?(an==null?void 0:an.length)<1?null:(an==null?void 0:an.length)===1?an[0]:(0,pt.jsx)("div",{style:{display:"flex",gap:Ft.marginXS,alignItems:"center"},children:an}):an:null},gt=ft,Ut=e(84463),It=e(78546),bt=e(76810),xt=e(52024),ve=["children","contentRender","submitter","fieldProps","formItemProps","groupProps","transformKey","formRef","onInit","form","loading","formComponentType","extraUrlParams","syncToUrl","onUrlSearchChange","onReset","omitNil","isKeyPressSubmit","autoFocusFirstInput","grid","rowProps","colProps"],Ze=["extraUrlParams","syncToUrl","isKeyPressSubmit","syncToUrlAsImportant","syncToInitialValues","children","contentRender","submitter","fieldProps","proFieldProps","formItemProps","groupProps","dateFormatter","formRef","onInit","form","formComponentType","onReset","grid","rowProps","colProps","omitNil","request","params","initialValues","formKey","readonly","onLoadingChange","loading"],Oe=function(R,ie,_){return R===!0?ie:(0,j.h)(R,ie,_)},je=function(R){return!R||Array.isArray(R)?R:[R]};function O(b){var R,ie=b.children,_=b.contentRender,Xe=b.submitter,it=b.fieldProps,Ct=b.formItemProps,Pt=b.groupProps,Nt=b.transformKey,Vt=b.formRef,kt=b.onInit,tt=b.form,dt=b.loading,Ft=b.formComponentType,At=b.extraUrlParams,Lt=At===void 0?{}:At,un=b.syncToUrl,Xt=b.onUrlSearchChange,pn=b.onReset,Sn=b.omitNil,Gt=Sn===void 0?!0:Sn,an=b.isKeyPressSubmit,ln=b.autoFocusFirstInput,Pn=ln===void 0?!0:ln,zn=b.grid,qn=b.rowProps,yr=b.colProps,kn=(0,H.Z)(b,ve),ae=Fe.Z.useFormInstance(),qe=(ut.ZP===null||ut.ZP===void 0||(R=ut.ZP.useConfig)===null||R===void 0?void 0:R.call(ut.ZP))||{componentSize:"middle"},_e=qe.componentSize,re=(0,f.useRef)(tt||ae),Y=(0,bt.zx)({grid:zn,rowProps:qn}),Be=Y.RowWrapper,we=(0,M.J)(function(){return ae}),vt=(0,f.useMemo)(function(){return{getFieldsFormatValue:function(L){var D;return Nt((D=we())===null||D===void 0?void 0:D.getFieldsValue(L),Gt)},getFieldFormatValue:function(){var L,D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],x=je(D);if(!x)throw new Error("nameList is require");var oe=(L=we())===null||L===void 0?void 0:L.getFieldValue(x),be=x?(0,G.Z)({},x,oe):oe;return(0,Le.Z)(Nt(be,Gt,x),x)},getFieldFormatValueObject:function(L){var D,x=je(L),oe=(D=we())===null||D===void 0?void 0:D.getFieldValue(x),be=x?(0,G.Z)({},x,oe):oe;return Nt(be,Gt,x)},validateFieldsReturnFormatValue:function(){var fe=(0,F.Z)((0,T.Z)().mark(function D(x){var oe,be,Ie;return(0,T.Z)().wrap(function(Ue){for(;;)switch(Ue.prev=Ue.next){case 0:if(!(!Array.isArray(x)&&x)){Ue.next=2;break}throw new Error("nameList must be array");case 2:return Ue.next=4,(oe=we())===null||oe===void 0?void 0:oe.validateFields(x);case 4:return be=Ue.sent,Ie=Nt(be,Gt),Ue.abrupt("return",Ie||{});case 7:case"end":return Ue.stop()}},D)}));function L(D){return fe.apply(this,arguments)}return L}()}},[Gt,Nt]),Se=(0,f.useMemo)(function(){return f.Children.toArray(ie).map(function(fe,L){return L===0&&f.isValidElement(fe)&&Pn?f.cloneElement(fe,(0,I.Z)((0,I.Z)({},fe.props),{},{autoFocus:Pn})):fe})},[Pn,ie]),X=(0,f.useMemo)(function(){return typeof Xe=="boolean"||!Xe?{}:Xe},[Xe]),Ne=(0,f.useMemo)(function(){if(Xe!==!1)return(0,pt.jsx)(gt,(0,I.Z)((0,I.Z)({},X),{},{onReset:function(){var L,D,x=Nt((L=re.current)===null||L===void 0?void 0:L.getFieldsValue(),Gt);if(X==null||(D=X.onReset)===null||D===void 0||D.call(X,x),pn==null||pn(x),un){var oe,be=Object.keys(Nt((oe=re.current)===null||oe===void 0?void 0:oe.getFieldsValue(),!1)).reduce(function(Ie,Ye){return(0,I.Z)((0,I.Z)({},Ie),{},(0,y.Z)({},Ye,x[Ye]||void 0))},Lt);Xt(Oe(un,be,"set"))}},submitButtonProps:(0,I.Z)({loading:dt},X.submitButtonProps)}),"submitter")},[Xe,X,dt,Nt,Gt,pn,un,Lt,Xt]),St=(0,f.useMemo)(function(){var fe=zn?(0,pt.jsx)(Be,{children:Se}):Se;return _?_(fe,Ne,re.current):fe},[zn,Be,Se,_,Ne]),xe=(0,Ce.D)(b.initialValues);return(0,f.useEffect)(function(){if(!(un||!b.initialValues||!xe||kn.request)){var fe=(0,de.A)(b.initialValues,xe);(0,ht.ET)(fe,"initialValues \u53EA\u5728 form \u521D\u59CB\u5316\u65F6\u751F\u6548\uFF0C\u5982\u679C\u4F60\u9700\u8981\u5F02\u6B65\u52A0\u8F7D\u63A8\u8350\u4F7F\u7528 request\uFF0C\u6216\u8005 initialValues ?
: null "),(0,ht.ET)(fe,"The initialValues only take effect when the form is initialized, if you need to load asynchronously recommended request, or the initialValues ? : null ")}},[b.initialValues]),(0,f.useImperativeHandle)(Vt,function(){return(0,I.Z)((0,I.Z)({},re.current),vt)},[vt,re.current]),(0,f.useEffect)(function(){var fe,L,D=Nt((fe=re.current)===null||fe===void 0||(L=fe.getFieldsValue)===null||L===void 0?void 0:L.call(fe,!0),Gt);kt==null||kt(D,(0,I.Z)((0,I.Z)({},re.current),vt))},[]),(0,pt.jsx)(w.J.Provider,{value:(0,I.Z)((0,I.Z)({},vt),{},{formRef:re}),children:(0,pt.jsx)(ut.ZP,{componentSize:kn.size||_e,children:(0,pt.jsxs)(bt._p.Provider,{value:{grid:zn,colProps:yr},children:[kn.component!==!1&&(0,pt.jsx)("input",{type:"text",style:{display:"none"}}),St]})})})}var Ae=0;function Z(b){var R=b.extraUrlParams,ie=R===void 0?{}:R,_=b.syncToUrl,Xe=b.isKeyPressSubmit,it=b.syncToUrlAsImportant,Ct=it===void 0?!1:it,Pt=b.syncToInitialValues,Nt=Pt===void 0?!0:Pt,Vt=b.children,kt=b.contentRender,tt=b.submitter,dt=b.fieldProps,Ft=b.proFieldProps,At=b.formItemProps,Lt=b.groupProps,un=b.dateFormatter,Xt=un===void 0?"string":un,pn=b.formRef,Sn=b.onInit,Gt=b.form,an=b.formComponentType,ln=b.onReset,Pn=b.grid,zn=b.rowProps,qn=b.colProps,yr=b.omitNil,kn=yr===void 0?!0:yr,ae=b.request,qe=b.params,_e=b.initialValues,re=b.formKey,Y=re===void 0?Ae:re,Be=b.readonly,we=b.onLoadingChange,vt=b.loading,Se=(0,H.Z)(b,Ze),X=(0,f.useRef)({}),Ne=(0,K.Z)(!1,{onChange:we,value:vt}),St=(0,i.Z)(Ne,2),xe=St[0],fe=St[1],L=se({},{disabled:!_}),D=(0,i.Z)(L,2),x=D[0],oe=D[1],be=(0,f.useRef)((0,ne.x)());(0,f.useEffect)(function(){Ae+=0},[]);var Ie=J({request:ae,params:qe,proFieldKey:Y}),Ye=(0,i.Z)(Ie,1),Ue=Ye[0],et=(0,f.useContext)(ut.ZP.ConfigContext),Ht=et.getPrefixCls,mt=Ht("pro-form"),Cn=(0,$e.Xj)("ProForm",function(jn){return(0,y.Z)({},".".concat(mt),(0,y.Z)({},"> div:not(".concat(jn.proComponentsCls,"-form-light-filter)"),{".pro-field":{maxWidth:"100%","@media screen and (max-width: 575px)":{maxWidth:"calc(93vw - 48px)"},"&-xs":{width:104},"&-s":{width:216},"&-sm":{width:216},"&-m":{width:328},"&-md":{width:328},"&-l":{width:440},"&-lg":{width:440},"&-xl":{width:552}}}))}),bn=Cn.wrapSSR,wt=Cn.hashId,fn=(0,f.useState)(function(){return _?Oe(_,x,"get"):{}}),zt=(0,i.Z)(fn,2),cn=zt[0],yn=zt[1],Fn=(0,f.useRef)({}),Yn=(0,f.useRef)({}),Zn=(0,M.J)(function(jn,On,_n){return Re((0,ct.lp)(jn,Xt,Yn.current,On,_n),Fn.current,On)});(0,f.useEffect)(function(){Nt||yn({})},[Nt]),(0,f.useEffect)(function(){_&&oe((0,I.Z)((0,I.Z)({},x),ie))},[ie,_]);var Kn=(0,f.useMemo)(function(){if(typeof window!="undefined"&&an&&["DrawerForm"].includes(an))return function(jn){return jn.parentNode||document.body}},[an]),vr=(0,M.J)((0,F.Z)((0,T.Z)().mark(function jn(){var On,_n,Gn,er,Cr,Lr;return(0,T.Z)().wrap(function(Hn){for(;;)switch(Hn.prev=Hn.next){case 0:if(Se.onFinish){Hn.next=2;break}return Hn.abrupt("return");case 2:if(!xe){Hn.next=4;break}return Hn.abrupt("return");case 4:return fe(!0),Hn.prev=5,Gn=X==null||(On=X.current)===null||On===void 0||(_n=On.getFieldsFormatValue)===null||_n===void 0?void 0:_n.call(On),Hn.next=9,Se.onFinish(Gn);case 9:_&&(Lr=Object.keys(X==null||(er=X.current)===null||er===void 0||(Cr=er.getFieldsFormatValue)===null||Cr===void 0?void 0:Cr.call(er,void 0,!1)).reduce(function(Pr,oo){var Ur;return(0,I.Z)((0,I.Z)({},Pr),{},(0,y.Z)({},oo,(Ur=Gn[oo])!==null&&Ur!==void 0?Ur:void 0))},ie),Object.keys(x).forEach(function(Pr){Lr[Pr]!==!1&&Lr[Pr]!==0&&!Lr[Pr]&&(Lr[Pr]=void 0)}),oe(Oe(_,Lr,"set"))),fe(!1),Hn.next=17;break;case 13:Hn.prev=13,Hn.t0=Hn.catch(5),console.log(Hn.t0),fe(!1);case 17:case"end":return Hn.stop()}},jn,null,[[5,13]])})));return(0,f.useImperativeHandle)(pn,function(){return X.current},[!Ue]),!Ue&&b.request?(0,pt.jsx)("div",{style:{paddingTop:50,paddingBottom:50,textAlign:"center"},children:(0,pt.jsx)(U.Z,{})}):bn((0,pt.jsx)(xt.A.Provider,{value:{mode:b.readonly?"read":"edit"},children:(0,pt.jsx)(t._Y,{needDeps:!0,children:(0,pt.jsx)(It.Z.Provider,{value:{formRef:X,fieldProps:dt,proFieldProps:Ft,formItemProps:At,groupProps:Lt,formComponentType:an,getPopupContainer:Kn,formKey:be.current,setFieldValueType:function(On,_n){var Gn=_n.valueType,er=Gn===void 0?"text":Gn,Cr=_n.dateFormat,Lr=_n.transform;Array.isArray(On)&&(Fn.current=(0,G.Z)(Fn.current,On,Lr),Yn.current=(0,G.Z)(Yn.current,On,{valueType:er,dateFormat:Cr}))}},children:(0,pt.jsx)(Ut.J.Provider,{value:{},children:(0,pt.jsx)(Fe.Z,(0,I.Z)((0,I.Z)({onKeyPress:function(On){if(Xe&&On.key==="Enter"){var _n;(_n=X.current)===null||_n===void 0||_n.submit()}},autoComplete:"off",form:Gt},(0,he.Z)(Se,["labelWidth","autoFocusFirstInput"])),{},{initialValues:Ct?(0,I.Z)((0,I.Z)((0,I.Z)({},_e),Ue),cn):(0,I.Z)((0,I.Z)((0,I.Z)({},cn),_e),Ue),onValuesChange:function(On,_n){var Gn;Se==null||(Gn=Se.onValuesChange)===null||Gn===void 0||Gn.call(Se,Zn(On,!!kn),Zn(_n,!!kn))},className:me()(b.className,mt,wt),onFinish:vr,children:(0,pt.jsx)(O,(0,I.Z)((0,I.Z)({transformKey:Zn,autoComplete:"off",loading:xe,onUrlSearchChange:oe},b),{},{formRef:X,initialValues:(0,I.Z)((0,I.Z)({},_e),Ue)}))}))})})})}))}},52024:function(Dt,De,e){"use strict";e.d(De,{A:function(){return y}});var i=e(58757),y=i.createContext({mode:"edit"})},7798:function(Dt,De,e){"use strict";e.d(De,{G:function(){return St}});var i=e(37734),y=e(28314),I=e(57370),T=e(47075),F=e(48145),H=["colon","dependencies","extra","getValueFromEvent","getValueProps","hasFeedback","help","htmlFor","initialValue","noStyle","label","labelAlign","labelCol","name","preserve","normalize","required","rules","shouldUpdate","trigger","validateFirst","validateStatus","validateTrigger","valuePropName","wrapperCol","hidden","addonBefore","addonAfter"];function t(xe){var fe={};return H.forEach(function(L){xe[L]!==void 0&&(fe[L]=xe[L])}),fe}var j=e(59338),M=e(99947),Ce=e(31989),de=e(87608),w=e.n(de),K=e(58757),ne=e(60698),f=e(29140),te=e(60412),A=e(14346),J=e(86717),$e=e(87498),z=e(73726),g=e(42156),Ve=e(75556),Zt=e(7637),Le="RC_FORM_INTERNAL_HOOKS",G=function(){(0,Ve.ZP)(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},st=K.createContext({getFieldValue:G,getFieldsValue:G,getFieldError:G,getFieldWarning:G,getFieldsError:G,isFieldsTouched:G,isFieldTouched:G,isFieldValidating:G,isFieldsValidating:G,resetFields:G,setFields:G,setFieldValue:G,setFieldsValue:G,validateFields:G,submit:G,getInternalHooks:function(){return G(),{dispatch:G,initEntityValue:G,registerField:G,useSubscribe:G,setInitialValues:G,destroyForm:G,setCallbacks:G,registerWatch:G,getFields:G,setValidateMessages:G,setPreserve:G,getInitialValue:G}}}),Me=st,P=K.createContext(null),Re=P;function ct(xe){return xe==null?[]:Array.isArray(xe)?xe:[xe]}function ee(xe){return xe&&!!xe._init}var ue=e(74632),se=e(79290),Ke=e(78635),ot="'${name}' is not a valid ${type}",Fe={default:"Validation error on field '${name}'",required:"'${name}' is required",enum:"'${name}' must be one of [${enum}]",whitespace:"'${name}' cannot be empty",date:{format:"'${name}' is invalid for format date",parse:"'${name}' could not be parsed as date",invalid:"'${name}' is invalid date"},types:{string:ot,method:ot,array:ot,object:ot,number:ot,date:ot,boolean:ot,integer:ot,float:ot,regexp:ot,email:ot,url:ot,hex:ot},string:{len:"'${name}' must be exactly ${len} characters",min:"'${name}' must be at least ${min} characters",max:"'${name}' cannot be longer than ${max} characters",range:"'${name}' must be between ${min} and ${max} characters"},number:{len:"'${name}' must equal ${len}",min:"'${name}' cannot be less than ${min}",max:"'${name}' cannot be greater than ${max}",range:"'${name}' must be between ${min} and ${max}"},array:{len:"'${name}' must be exactly ${len} in length",min:"'${name}' cannot be less than ${min} in length",max:"'${name}' cannot be greater than ${max} in length",range:"'${name}' must be between ${min} and ${max} in length"},pattern:{mismatch:"'${name}' does not match pattern ${pattern}"}},ut=e(16766),U=Ke.Z;function W(xe,fe){return xe.replace(/\$\{\w+\}/g,function(L){var D=L.slice(2,-1);return fe[D]})}var me="CODE_LOGIC_ERROR";function he(xe,fe,L,D,x){return ht.apply(this,arguments)}function ht(){return ht=(0,se.Z)((0,ue.Z)().mark(function xe(fe,L,D,x,oe){var be,Ie,Ye,Ue,et,Ht,mt,Cn,bn;return(0,ue.Z)().wrap(function(fn){for(;;)switch(fn.prev=fn.next){case 0:return be=(0,I.Z)({},D),delete be.ruleIndex,U.warning=function(){},be.validator&&(Ie=be.validator,be.validator=function(){try{return Ie.apply(void 0,arguments)}catch(zt){return console.error(zt),Promise.reject(me)}}),Ye=null,be&&be.type==="array"&&be.defaultField&&(Ye=be.defaultField,delete be.defaultField),Ue=new U((0,i.Z)({},fe,[be])),et=(0,ut.T)(Fe,x.validateMessages),Ue.messages(et),Ht=[],fn.prev=10,fn.next=13,Promise.resolve(Ue.validate((0,i.Z)({},fe,L),(0,I.Z)({},x)));case 13:fn.next=18;break;case 15:fn.prev=15,fn.t0=fn.catch(10),fn.t0.errors&&(Ht=fn.t0.errors.map(function(zt,cn){var yn=zt.message,Fn=yn===me?et.default:yn;return K.isValidElement(Fn)?K.cloneElement(Fn,{key:"error_".concat(cn)}):Fn}));case 18:if(!(!Ht.length&&Ye)){fn.next=23;break}return fn.next=21,Promise.all(L.map(function(zt,cn){return he("".concat(fe,".").concat(cn),zt,Ye,x,oe)}));case 21:return mt=fn.sent,fn.abrupt("return",mt.reduce(function(zt,cn){return[].concat((0,f.Z)(zt),(0,f.Z)(cn))},[]));case 23:return Cn=(0,I.Z)((0,I.Z)({},D),{},{name:fe,enum:(D.enum||[]).join(", ")},oe),bn=Ht.map(function(zt){return typeof zt=="string"?W(zt,Cn):zt}),fn.abrupt("return",bn);case 26:case"end":return fn.stop()}},xe,null,[[10,15]])})),ht.apply(this,arguments)}function at(xe,fe,L,D,x,oe){var be=xe.join("."),Ie=L.map(function(et,Ht){var mt=et.validator,Cn=(0,I.Z)((0,I.Z)({},et),{},{ruleIndex:Ht});return mt&&(Cn.validator=function(bn,wt,fn){var zt=!1,cn=function(){for(var Yn=arguments.length,Zn=new Array(Yn),Kn=0;Kn2&&arguments[2]!==void 0?arguments[2]:!1;return xe&&xe.some(function(D){return Oe(fe,D,L)})}function Oe(xe,fe){var L=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return!xe||!fe||!L&&xe.length!==fe.length?!1:fe.every(function(D,x){return xe[x]===D})}function je(xe,fe){if(xe===fe)return!0;if(!xe&&fe||xe&&!fe||!xe||!fe||(0,It.Z)(xe)!=="object"||(0,It.Z)(fe)!=="object")return!1;var L=Object.keys(xe),D=Object.keys(fe),x=new Set([].concat(L,D));return(0,f.Z)(x).every(function(oe){var be=xe[oe],Ie=fe[oe];return typeof be=="function"&&typeof Ie=="function"?!0:be===Ie})}function O(xe){var fe=arguments.length<=1?void 0:arguments[1];return fe&&fe.target&&(0,It.Z)(fe.target)==="object"&&xe in fe.target?fe.target[xe]:fe}function Ae(xe,fe,L){var D=xe.length;if(fe<0||fe>=D||L<0||L>=D)return xe;var x=xe[fe],oe=fe-L;return oe>0?[].concat((0,f.Z)(xe.slice(0,L)),[x],(0,f.Z)(xe.slice(L,fe)),(0,f.Z)(xe.slice(fe+1,D))):oe<0?[].concat((0,f.Z)(xe.slice(0,fe)),(0,f.Z)(xe.slice(fe+1,L+1)),[x],(0,f.Z)(xe.slice(L+1,D))):xe}var Z=["name"],b=[];function R(xe,fe,L,D,x,oe){return typeof xe=="function"?xe(fe,L,"source"in oe?{source:oe.source}:{}):D!==x}var ie=function(xe){(0,$e.Z)(L,xe);var fe=(0,z.Z)(L);function L(D){var x;if((0,te.Z)(this,L),x=fe.call(this,D),x.state={resetCount:0},x.cancelRegisterFunc=null,x.mounted=!1,x.touched=!1,x.dirty=!1,x.validatePromise=void 0,x.prevValidating=void 0,x.errors=b,x.warnings=b,x.cancelRegister=function(){var Ye=x.props,Ue=Ye.preserve,et=Ye.isListField,Ht=Ye.name;x.cancelRegisterFunc&&x.cancelRegisterFunc(et,Ue,xt(Ht)),x.cancelRegisterFunc=null},x.getNamePath=function(){var Ye=x.props,Ue=Ye.name,et=Ye.fieldContext,Ht=et.prefixName,mt=Ht===void 0?[]:Ht;return Ue!==void 0?[].concat((0,f.Z)(mt),(0,f.Z)(Ue)):[]},x.getRules=function(){var Ye=x.props,Ue=Ye.rules,et=Ue===void 0?[]:Ue,Ht=Ye.fieldContext;return et.map(function(mt){return typeof mt=="function"?mt(Ht):mt})},x.refresh=function(){x.mounted&&x.setState(function(Ye){var Ue=Ye.resetCount;return{resetCount:Ue+1}})},x.metaCache=null,x.triggerMetaEvent=function(Ye){var Ue=x.props.onMetaChange;if(Ue){var et=(0,I.Z)((0,I.Z)({},x.getMeta()),{},{destroy:Ye});(0,Zt.Z)(x.metaCache,et)||Ue(et),x.metaCache=et}else x.metaCache=null},x.onStoreChange=function(Ye,Ue,et){var Ht=x.props,mt=Ht.shouldUpdate,Cn=Ht.dependencies,bn=Cn===void 0?[]:Cn,wt=Ht.onReset,fn=et.store,zt=x.getNamePath(),cn=x.getValue(Ye),yn=x.getValue(fn),Fn=Ue&&Ze(Ue,zt);switch(et.type==="valueUpdate"&&et.source==="external"&&cn!==yn&&(x.touched=!0,x.dirty=!0,x.validatePromise=null,x.errors=b,x.warnings=b,x.triggerMetaEvent()),et.type){case"reset":if(!Ue||Fn){x.touched=!1,x.dirty=!1,x.validatePromise=void 0,x.errors=b,x.warnings=b,x.triggerMetaEvent(),wt==null||wt(),x.refresh();return}break;case"remove":{if(mt){x.reRender();return}break}case"setField":{if(Fn){var Yn=et.data;"touched"in Yn&&(x.touched=Yn.touched),"validating"in Yn&&!("originRCField"in Yn)&&(x.validatePromise=Yn.validating?Promise.resolve([]):null),"errors"in Yn&&(x.errors=Yn.errors||b),"warnings"in Yn&&(x.warnings=Yn.warnings||b),x.dirty=!0,x.triggerMetaEvent(),x.reRender();return}if(mt&&!zt.length&&R(mt,Ye,fn,cn,yn,et)){x.reRender();return}break}case"dependenciesUpdate":{var Zn=bn.map(xt);if(Zn.some(function(Kn){return Ze(et.relatedFields,Kn)})){x.reRender();return}break}default:if(Fn||(!bn.length||zt.length||mt)&&R(mt,Ye,fn,cn,yn,et)){x.reRender();return}break}mt===!0&&x.reRender()},x.validateRules=function(Ye){var Ue=x.getNamePath(),et=x.getValue(),Ht=Ye||{},mt=Ht.triggerName,Cn=Ht.validateOnly,bn=Cn===void 0?!1:Cn,wt=Promise.resolve().then(function(){if(!x.mounted)return[];var fn=x.props,zt=fn.validateFirst,cn=zt===void 0?!1:zt,yn=fn.messageVariables,Fn=x.getRules();mt&&(Fn=Fn.filter(function(Zn){return Zn}).filter(function(Zn){var Kn=Zn.validateTrigger;if(!Kn)return!0;var vr=ct(Kn);return vr.includes(mt)}));var Yn=at(Ue,et,Fn,Ye,cn,yn);return Yn.catch(function(Zn){return Zn}).then(function(){var Zn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;if(x.validatePromise===wt){var Kn;x.validatePromise=null;var vr=[],jn=[];(Kn=Zn.forEach)===null||Kn===void 0||Kn.call(Zn,function(On){var _n=On.rule.warningOnly,Gn=On.errors,er=Gn===void 0?b:Gn;_n?jn.push.apply(jn,(0,f.Z)(er)):vr.push.apply(vr,(0,f.Z)(er))}),x.errors=vr,x.warnings=jn,x.triggerMetaEvent(),x.reRender()}}),Yn});return bn||(x.validatePromise=wt,x.dirty=!0,x.errors=b,x.warnings=b,x.triggerMetaEvent(),x.reRender()),wt},x.isFieldValidating=function(){return!!x.validatePromise},x.isFieldTouched=function(){return x.touched},x.isFieldDirty=function(){if(x.dirty||x.props.initialValue!==void 0)return!0;var Ye=x.props.fieldContext,Ue=Ye.getInternalHooks(Le),et=Ue.getInitialValue;return et(x.getNamePath())!==void 0},x.getErrors=function(){return x.errors},x.getWarnings=function(){return x.warnings},x.isListField=function(){return x.props.isListField},x.isList=function(){return x.props.isList},x.isPreserve=function(){return x.props.preserve},x.getMeta=function(){x.prevValidating=x.isFieldValidating();var Ye={touched:x.isFieldTouched(),validating:x.prevValidating,errors:x.errors,warnings:x.warnings,name:x.getNamePath(),validated:x.validatePromise===null};return Ye},x.getOnlyChild=function(Ye){if(typeof Ye=="function"){var Ue=x.getMeta();return(0,I.Z)((0,I.Z)({},x.getOnlyChild(Ye(x.getControlled(),Ue,x.props.fieldContext))),{},{isFunction:!0})}var et=(0,g.Z)(Ye);return et.length!==1||!K.isValidElement(et[0])?{child:et,isFunction:!1}:{child:et[0],isFunction:!1}},x.getValue=function(Ye){var Ue=x.props.fieldContext.getFieldsValue,et=x.getNamePath();return(0,bt.Z)(Ye||Ue(!0),et)},x.getControlled=function(){var Ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Ue=x.props,et=Ue.trigger,Ht=Ue.validateTrigger,mt=Ue.getValueFromEvent,Cn=Ue.normalize,bn=Ue.valuePropName,wt=Ue.getValueProps,fn=Ue.fieldContext,zt=Ht!==void 0?Ht:fn.validateTrigger,cn=x.getNamePath(),yn=fn.getInternalHooks,Fn=fn.getFieldsValue,Yn=yn(Le),Zn=Yn.dispatch,Kn=x.getValue(),vr=wt||function(Gn){return(0,i.Z)({},bn,Gn)},jn=Ye[et],On=(0,I.Z)((0,I.Z)({},Ye),vr(Kn));On[et]=function(){x.touched=!0,x.dirty=!0,x.triggerMetaEvent();for(var Gn,er=arguments.length,Cr=new Array(er),Lr=0;Lr=0&&On<=_n.length?(et.keys=[].concat((0,f.Z)(et.keys.slice(0,On)),[et.id],(0,f.Z)(et.keys.slice(On))),yn([].concat((0,f.Z)(_n.slice(0,On)),[jn],(0,f.Z)(_n.slice(On))))):(et.keys=[].concat((0,f.Z)(et.keys),[et.id]),yn([].concat((0,f.Z)(_n),[jn]))),et.id+=1},remove:function(jn){var On=Yn(),_n=new Set(Array.isArray(jn)?jn:[jn]);_n.size<=0||(et.keys=et.keys.filter(function(Gn,er){return!_n.has(er)}),yn(On.filter(function(Gn,er){return!_n.has(er)})))},move:function(jn,On){if(jn!==On){var _n=Yn();jn<0||jn>=_n.length||On<0||On>=_n.length||(et.keys=Ae(et.keys,jn,On),yn(Ae(_n,jn,On)))}}},Kn=cn||[];return Array.isArray(Kn)||(Kn=[]),D(Kn.map(function(vr,jn){var On=et.keys[jn];return On===void 0&&(et.keys[jn]=et.id,On=et.keys[jn],et.id+=1),{name:jn,key:On,isListField:!0}}),Zn,fn)})))}var Ct=it;function Pt(xe){var fe=!1,L=xe.length,D=[];return xe.length?new Promise(function(x,oe){xe.forEach(function(be,Ie){be.catch(function(Ye){return fe=!0,Ye}).then(function(Ye){L-=1,D[Ie]=Ye,!(L>0)&&(fe&&oe(D),x(D))})})}):Promise.resolve([])}var Nt="__@field_split__";function Vt(xe){return xe.map(function(fe){return"".concat((0,It.Z)(fe),":").concat(fe)}).join(Nt)}var kt=function(){function xe(){(0,te.Z)(this,xe),this.kvs=new Map}return(0,A.Z)(xe,[{key:"set",value:function(L,D){this.kvs.set(Vt(L),D)}},{key:"get",value:function(L){return this.kvs.get(Vt(L))}},{key:"update",value:function(L,D){var x=this.get(L),oe=D(x);oe?this.set(L,oe):this.delete(L)}},{key:"delete",value:function(L){this.kvs.delete(Vt(L))}},{key:"map",value:function(L){return(0,f.Z)(this.kvs.entries()).map(function(D){var x=(0,y.Z)(D,2),oe=x[0],be=x[1],Ie=oe.split(Nt);return L({key:Ie.map(function(Ye){var Ue=Ye.match(/^([^:]*):(.*)$/),et=(0,y.Z)(Ue,3),Ht=et[1],mt=et[2];return Ht==="number"?Number(mt):mt}),value:be})})}},{key:"toJSON",value:function(){var L={};return this.map(function(D){var x=D.key,oe=D.value;return L[x.join(".")]=oe,null}),L}}]),xe}(),tt=kt,dt=["name"],Ft=(0,A.Z)(function xe(fe){var L=this;(0,te.Z)(this,xe),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:L.getFieldValue,getFieldsValue:L.getFieldsValue,getFieldError:L.getFieldError,getFieldWarning:L.getFieldWarning,getFieldsError:L.getFieldsError,isFieldsTouched:L.isFieldsTouched,isFieldTouched:L.isFieldTouched,isFieldValidating:L.isFieldValidating,isFieldsValidating:L.isFieldsValidating,resetFields:L.resetFields,setFields:L.setFields,setFieldValue:L.setFieldValue,setFieldsValue:L.setFieldsValue,validateFields:L.validateFields,submit:L.submit,_init:!0,getInternalHooks:L.getInternalHooks}},this.getInternalHooks=function(D){return D===Le?(L.formHooked=!0,{dispatch:L.dispatch,initEntityValue:L.initEntityValue,registerField:L.registerField,useSubscribe:L.useSubscribe,setInitialValues:L.setInitialValues,destroyForm:L.destroyForm,setCallbacks:L.setCallbacks,setValidateMessages:L.setValidateMessages,getFields:L.getFields,setPreserve:L.setPreserve,getInitialValue:L.getInitialValue,registerWatch:L.registerWatch}):((0,Ve.ZP)(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)},this.useSubscribe=function(D){L.subscribable=D},this.prevWithoutPreserves=null,this.setInitialValues=function(D,x){if(L.initialValues=D||{},x){var oe,be=(0,ut.T)(D,L.store);(oe=L.prevWithoutPreserves)===null||oe===void 0||oe.map(function(Ie){var Ye=Ie.key;be=(0,ut.Z)(be,Ye,(0,bt.Z)(D,Ye))}),L.prevWithoutPreserves=null,L.updateStore(be)}},this.destroyForm=function(){var D=new tt;L.getFieldEntities(!0).forEach(function(x){L.isMergedPreserve(x.isPreserve())||D.set(x.getNamePath(),!0)}),L.prevWithoutPreserves=D},this.getInitialValue=function(D){var x=(0,bt.Z)(L.initialValues,D);return D.length?(0,ut.T)(x):x},this.setCallbacks=function(D){L.callbacks=D},this.setValidateMessages=function(D){L.validateMessages=D},this.setPreserve=function(D){L.preserve=D},this.watchList=[],this.registerWatch=function(D){return L.watchList.push(D),function(){L.watchList=L.watchList.filter(function(x){return x!==D})}},this.notifyWatch=function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];if(L.watchList.length){var x=L.getFieldsValue(),oe=L.getFieldsValue(!0);L.watchList.forEach(function(be){be(x,oe,D)})}},this.timeoutId=null,this.warningUnhooked=function(){},this.updateStore=function(D){L.store=D},this.getFieldEntities=function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;return D?L.fieldEntities.filter(function(x){return x.getNamePath().length}):L.fieldEntities},this.getFieldsMap=function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,x=new tt;return L.getFieldEntities(D).forEach(function(oe){var be=oe.getNamePath();x.set(be,oe)}),x},this.getFieldEntitiesForNamePathList=function(D){if(!D)return L.getFieldEntities(!0);var x=L.getFieldsMap(!0);return D.map(function(oe){var be=xt(oe);return x.get(be)||{INVALIDATE_NAME_PATH:xt(oe)}})},this.getFieldsValue=function(D,x){L.warningUnhooked();var oe,be,Ie;if(D===!0||Array.isArray(D)?(oe=D,be=x):D&&(0,It.Z)(D)==="object"&&(Ie=D.strict,be=D.filter),oe===!0&&!be)return L.store;var Ye=L.getFieldEntitiesForNamePathList(Array.isArray(oe)?oe:null),Ue=[];return Ye.forEach(function(et){var Ht,mt="INVALIDATE_NAME_PATH"in et?et.INVALIDATE_NAME_PATH:et.getNamePath();if(Ie){var Cn;if(!((Cn=et.isList)===null||Cn===void 0)&&Cn.call(et))return}else if(!oe&&(!((Ht=et.isListField)===null||Ht===void 0)&&Ht.call(et)))return;if(!be)Ue.push(mt);else{var bn="getMeta"in et?et.getMeta():null;be(bn)&&Ue.push(mt)}}),ve(L.store,Ue.map(xt))},this.getFieldValue=function(D){L.warningUnhooked();var x=xt(D);return(0,bt.Z)(L.store,x)},this.getFieldsError=function(D){L.warningUnhooked();var x=L.getFieldEntitiesForNamePathList(D);return x.map(function(oe,be){return oe&&!("INVALIDATE_NAME_PATH"in oe)?{name:oe.getNamePath(),errors:oe.getErrors(),warnings:oe.getWarnings()}:{name:xt(D[be]),errors:[],warnings:[]}})},this.getFieldError=function(D){L.warningUnhooked();var x=xt(D),oe=L.getFieldsError([x])[0];return oe.errors},this.getFieldWarning=function(D){L.warningUnhooked();var x=xt(D),oe=L.getFieldsError([x])[0];return oe.warnings},this.isFieldsTouched=function(){L.warningUnhooked();for(var D=arguments.length,x=new Array(D),oe=0;oe0&&arguments[0]!==void 0?arguments[0]:{},x=new tt,oe=L.getFieldEntities(!0);oe.forEach(function(Ye){var Ue=Ye.props.initialValue,et=Ye.getNamePath();if(Ue!==void 0){var Ht=x.get(et)||new Set;Ht.add({entity:Ye,value:Ue}),x.set(et,Ht)}});var be=function(Ue){Ue.forEach(function(et){var Ht=et.props.initialValue;if(Ht!==void 0){var mt=et.getNamePath(),Cn=L.getInitialValue(mt);if(Cn!==void 0)(0,Ve.ZP)(!1,"Form already set 'initialValues' with path '".concat(mt.join("."),"'. Field can not overwrite it."));else{var bn=x.get(mt);if(bn&&bn.size>1)(0,Ve.ZP)(!1,"Multiple Field with path '".concat(mt.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(bn){var wt=L.getFieldValue(mt);(!D.skipExist||wt===void 0)&&L.updateStore((0,ut.Z)(L.store,mt,(0,f.Z)(bn)[0].value))}}}})},Ie;D.entities?Ie=D.entities:D.namePathList?(Ie=[],D.namePathList.forEach(function(Ye){var Ue=x.get(Ye);if(Ue){var et;(et=Ie).push.apply(et,(0,f.Z)((0,f.Z)(Ue).map(function(Ht){return Ht.entity})))}})):Ie=oe,be(Ie)},this.resetFields=function(D){L.warningUnhooked();var x=L.store;if(!D){L.updateStore((0,ut.T)(L.initialValues)),L.resetWithFieldInitialValue(),L.notifyObservers(x,null,{type:"reset"}),L.notifyWatch();return}var oe=D.map(xt);oe.forEach(function(be){var Ie=L.getInitialValue(be);L.updateStore((0,ut.Z)(L.store,be,Ie))}),L.resetWithFieldInitialValue({namePathList:oe}),L.notifyObservers(x,oe,{type:"reset"}),L.notifyWatch(oe)},this.setFields=function(D){L.warningUnhooked();var x=L.store,oe=[];D.forEach(function(be){var Ie=be.name,Ye=(0,T.Z)(be,dt),Ue=xt(Ie);oe.push(Ue),"value"in Ye&&L.updateStore((0,ut.Z)(L.store,Ue,Ye.value)),L.notifyObservers(x,[Ue],{type:"setField",data:be})}),L.notifyWatch(oe)},this.getFields=function(){var D=L.getFieldEntities(!0),x=D.map(function(oe){var be=oe.getNamePath(),Ie=oe.getMeta(),Ye=(0,I.Z)((0,I.Z)({},Ie),{},{name:be,value:L.getFieldValue(be)});return Object.defineProperty(Ye,"originRCField",{value:!0}),Ye});return x},this.initEntityValue=function(D){var x=D.props.initialValue;if(x!==void 0){var oe=D.getNamePath(),be=(0,bt.Z)(L.store,oe);be===void 0&&L.updateStore((0,ut.Z)(L.store,oe,x))}},this.isMergedPreserve=function(D){var x=D!==void 0?D:L.preserve;return x!=null?x:!0},this.registerField=function(D){L.fieldEntities.push(D);var x=D.getNamePath();if(L.notifyWatch([x]),D.props.initialValue!==void 0){var oe=L.store;L.resetWithFieldInitialValue({entities:[D],skipExist:!0}),L.notifyObservers(oe,[D.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(be,Ie){var Ye=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];if(L.fieldEntities=L.fieldEntities.filter(function(Ht){return Ht!==D}),!L.isMergedPreserve(Ie)&&(!be||Ye.length>1)){var Ue=be?void 0:L.getInitialValue(x);if(x.length&&L.getFieldValue(x)!==Ue&&L.fieldEntities.every(function(Ht){return!Oe(Ht.getNamePath(),x)})){var et=L.store;L.updateStore((0,ut.Z)(et,x,Ue,!0)),L.notifyObservers(et,[x],{type:"remove"}),L.triggerDependenciesUpdate(et,x)}}L.notifyWatch([x])}},this.dispatch=function(D){switch(D.type){case"updateValue":{var x=D.namePath,oe=D.value;L.updateValue(x,oe);break}case"validateField":{var be=D.namePath,Ie=D.triggerName;L.validateFields([be],{triggerName:Ie});break}default:}},this.notifyObservers=function(D,x,oe){if(L.subscribable){var be=(0,I.Z)((0,I.Z)({},oe),{},{store:L.getFieldsValue(!0)});L.getFieldEntities().forEach(function(Ie){var Ye=Ie.onStoreChange;Ye(D,x,be)})}else L.forceRootUpdate()},this.triggerDependenciesUpdate=function(D,x){var oe=L.getDependencyChildrenFields(x);return oe.length&&L.validateFields(oe),L.notifyObservers(D,oe,{type:"dependenciesUpdate",relatedFields:[x].concat((0,f.Z)(oe))}),oe},this.updateValue=function(D,x){var oe=xt(D),be=L.store;L.updateStore((0,ut.Z)(L.store,oe,x)),L.notifyObservers(be,[oe],{type:"valueUpdate",source:"internal"}),L.notifyWatch([oe]);var Ie=L.triggerDependenciesUpdate(be,oe),Ye=L.callbacks.onValuesChange;if(Ye){var Ue=ve(L.store,[oe]);Ye(Ue,L.getFieldsValue())}L.triggerOnFieldsChange([oe].concat((0,f.Z)(Ie)))},this.setFieldsValue=function(D){L.warningUnhooked();var x=L.store;if(D){var oe=(0,ut.T)(L.store,D);L.updateStore(oe)}L.notifyObservers(x,null,{type:"valueUpdate",source:"external"}),L.notifyWatch()},this.setFieldValue=function(D,x){L.setFields([{name:D,value:x}])},this.getDependencyChildrenFields=function(D){var x=new Set,oe=[],be=new tt;L.getFieldEntities().forEach(function(Ye){var Ue=Ye.props.dependencies;(Ue||[]).forEach(function(et){var Ht=xt(et);be.update(Ht,function(){var mt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:new Set;return mt.add(Ye),mt})})});var Ie=function Ye(Ue){var et=be.get(Ue)||new Set;et.forEach(function(Ht){if(!x.has(Ht)){x.add(Ht);var mt=Ht.getNamePath();Ht.isFieldDirty()&&mt.length&&(oe.push(mt),Ye(mt))}})};return Ie(D),oe},this.triggerOnFieldsChange=function(D,x){var oe=L.callbacks.onFieldsChange;if(oe){var be=L.getFields();if(x){var Ie=new tt;x.forEach(function(Ue){var et=Ue.name,Ht=Ue.errors;Ie.set(et,Ht)}),be.forEach(function(Ue){Ue.errors=Ie.get(Ue.name)||Ue.errors})}var Ye=be.filter(function(Ue){var et=Ue.name;return Ze(D,et)});Ye.length&&oe(Ye,be)}},this.validateFields=function(D,x){var oe;L.warningUnhooked();var be,Ie;Array.isArray(D)||typeof D=="string"||typeof x=="string"?(be=D,Ie=x):Ie=D;var Ye=!!be,Ue=Ye?be.map(xt):[],et=[],Ht=String(Date.now()),mt=new Set,Cn=(oe=Ie)===null||oe===void 0?void 0:oe.recursive;L.getFieldEntities(!0).forEach(function(zt){if(Ye||Ue.push(zt.getNamePath()),!(!zt.props.rules||!zt.props.rules.length)){var cn=zt.getNamePath();if(mt.add(cn.join(Ht)),!Ye||Ze(Ue,cn,Cn)){var yn=zt.validateRules((0,I.Z)({validateMessages:(0,I.Z)((0,I.Z)({},Fe),L.validateMessages)},Ie));et.push(yn.then(function(){return{name:cn,errors:[],warnings:[]}}).catch(function(Fn){var Yn,Zn=[],Kn=[];return(Yn=Fn.forEach)===null||Yn===void 0||Yn.call(Fn,function(vr){var jn=vr.rule.warningOnly,On=vr.errors;jn?Kn.push.apply(Kn,(0,f.Z)(On)):Zn.push.apply(Zn,(0,f.Z)(On))}),Zn.length?Promise.reject({name:cn,errors:Zn,warnings:Kn}):{name:cn,errors:Zn,warnings:Kn}}))}}});var bn=Pt(et);L.lastValidatePromise=bn,bn.catch(function(zt){return zt}).then(function(zt){var cn=zt.map(function(yn){var Fn=yn.name;return Fn});L.notifyObservers(L.store,cn,{type:"validateFinish"}),L.triggerOnFieldsChange(cn,zt)});var wt=bn.then(function(){return L.lastValidatePromise===bn?Promise.resolve(L.getFieldsValue(Ue)):Promise.reject([])}).catch(function(zt){var cn=zt.filter(function(yn){return yn&&yn.errors.length});return Promise.reject({values:L.getFieldsValue(Ue),errorFields:cn,outOfDate:L.lastValidatePromise!==bn})});wt.catch(function(zt){return zt});var fn=Ue.filter(function(zt){return mt.has(zt.join(Ht))});return L.triggerOnFieldsChange(fn),wt},this.submit=function(){L.warningUnhooked(),L.validateFields().then(function(D){var x=L.callbacks.onFinish;if(x)try{x(D)}catch(oe){console.error(oe)}}).catch(function(D){var x=L.callbacks.onFinishFailed;x&&x(D)})},this.forceRootUpdate=fe});function At(xe){var fe=K.useRef(),L=K.useState({}),D=(0,y.Z)(L,2),x=D[1];if(!fe.current)if(xe)fe.current=xe;else{var oe=function(){x({})},be=new Ft(oe);fe.current=be.getForm()}return[fe.current]}var Lt=At,un=K.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),Xt=function(fe){var L=fe.validateMessages,D=fe.onFormChange,x=fe.onFormFinish,oe=fe.children,be=K.useContext(un),Ie=K.useRef({});return K.createElement(un.Provider,{value:(0,I.Z)((0,I.Z)({},be),{},{validateMessages:(0,I.Z)((0,I.Z)({},be.validateMessages),L),triggerFormChange:function(Ue,et){D&&D(Ue,{changedFields:et,forms:Ie.current}),be.triggerFormChange(Ue,et)},triggerFormFinish:function(Ue,et){x&&x(Ue,{values:et,forms:Ie.current}),be.triggerFormFinish(Ue,et)},registerForm:function(Ue,et){Ue&&(Ie.current=(0,I.Z)((0,I.Z)({},Ie.current),{},(0,i.Z)({},Ue,et))),be.registerForm(Ue,et)},unregisterForm:function(Ue){var et=(0,I.Z)({},Ie.current);delete et[Ue],Ie.current=et,be.unregisterForm(Ue)}})},oe)},pn=un,Sn=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed"],Gt=function(fe,L){var D=fe.name,x=fe.initialValues,oe=fe.fields,be=fe.form,Ie=fe.preserve,Ye=fe.children,Ue=fe.component,et=Ue===void 0?"form":Ue,Ht=fe.validateMessages,mt=fe.validateTrigger,Cn=mt===void 0?"onChange":mt,bn=fe.onValuesChange,wt=fe.onFieldsChange,fn=fe.onFinish,zt=fe.onFinishFailed,cn=(0,T.Z)(fe,Sn),yn=K.useContext(pn),Fn=Lt(be),Yn=(0,y.Z)(Fn,1),Zn=Yn[0],Kn=Zn.getInternalHooks(Le),vr=Kn.useSubscribe,jn=Kn.setInitialValues,On=Kn.setCallbacks,_n=Kn.setValidateMessages,Gn=Kn.setPreserve,er=Kn.destroyForm;K.useImperativeHandle(L,function(){return Zn}),K.useEffect(function(){return yn.registerForm(D,Zn),function(){yn.unregisterForm(D)}},[yn,Zn,D]),_n((0,I.Z)((0,I.Z)({},yn.validateMessages),Ht)),On({onValuesChange:bn,onFieldsChange:function(Br){if(yn.triggerFormChange(D,Br),wt){for(var _r=arguments.length,xo=new Array(_r>1?_r-1:0),br=1;br<_r;br++)xo[br-1]=arguments[br];wt.apply(void 0,[Br].concat(xo))}},onFinish:function(Br){yn.triggerFormFinish(D,Br),fn&&fn(Br)},onFinishFailed:zt}),Gn(Ie);var Cr=K.useRef(null);jn(x,!Cr.current),Cr.current||(Cr.current=!0),K.useEffect(function(){return er},[]);var Lr,Hr=typeof Ye=="function";if(Hr){var Hn=Zn.getFieldsValue(!0);Lr=Ye(Hn,Zn)}else Lr=Ye;vr(!Hr);var Pr=K.useRef();K.useEffect(function(){je(Pr.current||[],oe||[])||Zn.setFields(oe||[]),Pr.current=oe},[oe,Zn]);var oo=K.useMemo(function(){return(0,I.Z)((0,I.Z)({},Zn),{},{validateTrigger:Cn})},[Zn,Cn]),Ur=K.createElement(Re.Provider,{value:null},K.createElement(Me.Provider,{value:oo},Lr));return et===!1?Ur:K.createElement(et,(0,ne.Z)({},cn,{onSubmit:function(Br){Br.preventDefault(),Br.stopPropagation(),Zn.submit()},onReset:function(Br){var _r;Br.preventDefault(),Zn.resetFields(),(_r=cn.onReset)===null||_r===void 0||_r.call(cn,Br)}}),Ur)},an=Gt;function ln(xe){try{return JSON.stringify(xe)}catch(fe){return Math.random()}}var Pn=function(){};function zn(){for(var xe=arguments.length,fe=new Array(xe),L=0;Lze?Qt=1:Qt=Math.round(rn*100/ze)/100,d.a!==Qt)return{h:d.h,s:d.s,l:d.l,a:Qt,source:"rgb"}}else{var Ln;if(jt<0?Ln=0:jt>He?Ln=1:Ln=Math.round(jt*100/He)/100,N!==Ln)return{h:d.h,s:d.s,l:d.l,a:Ln,source:"rgb"}}return null},at={},pt=function(r,d,u,N){if(typeof document=="undefined"&&!N)return null;var q=N?new N:document.createElement("canvas");q.width=u*2,q.height=u*2;var He=q.getContext("2d");return He?(He.fillStyle=r,He.fillRect(0,0,q.width,q.height),He.fillStyle=d,He.fillRect(0,0,u,u),He.translate(u,u),He.fillRect(0,0,u,u),q.toDataURL()):null},ft=function(r,d,u,N){var q="".concat(r,"-").concat(d,"-").concat(u).concat(N?"-server":"");if(at[q])return at[q];var He=pt(r,d,u,N);return at[q]=He,He};function gt(c){"@babel/helpers - typeof";return gt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},gt(c)}function Ut(c,r){var d=Object.keys(c);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(c);r&&(u=u.filter(function(N){return Object.getOwnPropertyDescriptor(c,N).enumerable})),d.push.apply(d,u)}return d}function It(c){for(var r=1;rHe)rn=0;else{var Qt=-(jt*100/He)+100;rn=360*Qt/100}if(u.h!==rn)return{h:rn,s:u.s,l:u.l,a:u.a,source:"hsl"}}else{var Ln;if(Je<0)Ln=0;else if(Je>q)Ln=359;else{var Xn=Je*100/q;Ln=360*Xn/100}if(u.h!==Ln)return{h:Ln,s:u.s,l:u.l,a:u.a,source:"hsl"}}return null};function Lt(c){"@babel/helpers - typeof";return Lt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Lt(c)}function un(c,r){if(!(c instanceof r))throw new TypeError("Cannot call a class as a function")}function Xt(c,r){for(var d=0;dq&&(Je=q),jt<0?jt=0:jt>He&&(jt=He);var rn=Je/q,Qt=1-jt/He;return{h:d.h,s:rn,v:Qt,a:d.a,source:"hsv"}};function Be(c){"@babel/helpers - typeof";return Be=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Be(c)}function we(c,r){if(!(c instanceof r))throw new TypeError("Cannot call a class as a function")}function vt(c,r){for(var d=0;d=0,q=!d&&N&&(r==="hex"||r==="hex6"||r==="hex3"||r==="hex4"||r==="hex8"||r==="name");return q?r==="name"&&this._a===0?this.toName():this.toRgbString():(r==="rgb"&&(u=this.toRgbString()),r==="prgb"&&(u=this.toPercentageRgbString()),(r==="hex"||r==="hex6")&&(u=this.toHexString()),r==="hex3"&&(u=this.toHexString(!0)),r==="hex4"&&(u=this.toHex8String(!0)),r==="hex8"&&(u=this.toHex8String()),r==="name"&&(u=this.toName()),r==="hsl"&&(u=this.toHslString()),r==="hsv"&&(u=this.toHsvString()),u||this.toHexString())},clone:function(){return wt(this.toString())},_applyModification:function(r,d){var u=r.apply(null,[this].concat([].slice.call(d)));return this._r=u._r,this._g=u._g,this._b=u._b,this.setAlpha(u._a),this},lighten:function(){return this._applyModification(Gn,arguments)},brighten:function(){return this._applyModification(er,arguments)},darken:function(){return this._applyModification(Cr,arguments)},desaturate:function(){return this._applyModification(jn,arguments)},saturate:function(){return this._applyModification(On,arguments)},greyscale:function(){return this._applyModification(_n,arguments)},spin:function(){return this._applyModification(Lr,arguments)},_applyCombination:function(r,d){return r.apply(null,[this].concat([].slice.call(d)))},analogous:function(){return this._applyCombination(oo,arguments)},complement:function(){return this._applyCombination(Hr,arguments)},monochromatic:function(){return this._applyCombination(Ur,arguments)},splitcomplement:function(){return this._applyCombination(Pr,arguments)},triad:function(){return this._applyCombination(Hn,[3])},tetrad:function(){return this._applyCombination(Hn,[4])}},wt.fromRatio=function(c,r){if(mt(c)=="object"){var d={};for(var u in c)c.hasOwnProperty(u)&&(u==="a"?d[u]=c[u]:d[u]=fo(c[u]));c=d}return wt(c,r)};function fn(c){var r={r:0,g:0,b:0},d=1,u=null,N=null,q=null,He=!1,ze=!1;return typeof c=="string"&&(c=Do(c)),mt(c)=="object"&&(Ir(c.r)&&Ir(c.g)&&Ir(c.b)?(r=zt(c.r,c.g,c.b),He=!0,ze=String(c.r).substr(-1)==="%"?"prgb":"rgb"):Ir(c.h)&&Ir(c.s)&&Ir(c.v)?(u=fo(c.s),N=fo(c.v),r=Yn(c.h,u,N),He=!0,ze="hsv"):Ir(c.h)&&Ir(c.s)&&Ir(c.l)&&(u=fo(c.s),q=fo(c.l),r=yn(c.h,u,q),He=!0,ze="hsl"),c.hasOwnProperty("a")&&(d=c.a)),d=xo(d),{ok:He,format:c.format||ze,r:Math.min(255,Math.max(r.r,0)),g:Math.min(255,Math.max(r.g,0)),b:Math.min(255,Math.max(r.b,0)),a:d}}function zt(c,r,d){return{r:br(c,255)*255,g:br(r,255)*255,b:br(d,255)*255}}function cn(c,r,d){c=br(c,255),r=br(r,255),d=br(d,255);var u=Math.max(c,r,d),N=Math.min(c,r,d),q,He,ze=(u+N)/2;if(u==N)q=He=0;else{var Ge=u-N;switch(He=ze>.5?Ge/(2-u-N):Ge/(u+N),u){case c:q=(r-d)/Ge+(r1&&(rn-=1),rn<1/6?Je+(jt-Je)*6*rn:rn<1/2?jt:rn<2/3?Je+(jt-Je)*(2/3-rn)*6:Je}if(r===0)u=N=q=d;else{var ze=d<.5?d*(1+r):d+r-d*r,Ge=2*d-ze;u=He(Ge,ze,c+1/3),N=He(Ge,ze,c),q=He(Ge,ze,c-1/3)}return{r:u*255,g:N*255,b:q*255}}function Fn(c,r,d){c=br(c,255),r=br(r,255),d=br(d,255);var u=Math.max(c,r,d),N=Math.min(c,r,d),q,He,ze=u,Ge=u-N;if(He=u===0?0:Ge/u,u==N)q=0;else{switch(u){case c:q=(r-d)/Ge+(r>1)+720)%360;--r;)u.h=(u.h+N)%360,q.push(wt(u));return q}function Ur(c,r){r=r||6;for(var d=wt(c).toHsv(),u=d.h,N=d.s,q=d.v,He=[],ze=1/r;r--;)He.push(wt({h:u,s:N,v:q})),q=(q+ze)%1;return He}wt.mix=function(c,r,d){d=d===0?0:d||50;var u=wt(c).toRgb(),N=wt(r).toRgb(),q=d/100,He={r:(N.r-u.r)*q+u.r,g:(N.g-u.g)*q+u.g,b:(N.b-u.b)*q+u.b,a:(N.a-u.a)*q+u.a};return wt(He)},wt.readability=function(c,r){var d=wt(c),u=wt(r);return(Math.max(d.getLuminance(),u.getLuminance())+.05)/(Math.min(d.getLuminance(),u.getLuminance())+.05)},wt.isReadable=function(c,r,d){var u=wt.readability(c,r),N,q;switch(q=!1,N=sa(d),N.level+N.size){case"AAsmall":case"AAAlarge":q=u>=4.5;break;case"AAlarge":q=u>=3;break;case"AAAsmall":q=u>=7;break}return q},wt.mostReadable=function(c,r,d){var u=null,N=0,q,He,ze,Ge;d=d||{},He=d.includeFallbackColors,ze=d.level,Ge=d.size;for(var Je=0;JeN&&(N=q,u=wt(r[Je]));return wt.isReadable(c,u,{level:ze,size:Ge})||!He?u:(d.includeFallbackColors=!1,wt.mostReadable(c,["#fff","#000"],d))};var co=wt.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",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:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",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:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",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:"f00",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:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},Br=wt.hexNames=_r(co);function _r(c){var r={};for(var d in c)c.hasOwnProperty(d)&&(r[c[d]]=d);return r}function xo(c){return c=parseFloat(c),(isNaN(c)||c<0||c>1)&&(c=1),c}function br(c,r){wr(c)&&(c="100%");var d=or(c);return c=Math.min(r,Math.max(0,parseFloat(c))),d&&(c=parseInt(c*r,10)/100),Math.abs(c-r)<1e-6?1:c%r/parseFloat(r)}function Qn(c){return Math.min(1,Math.max(0,c))}function Un(c){return parseInt(c,16)}function wr(c){return typeof c=="string"&&c.indexOf(".")!=-1&&parseFloat(c)===1}function or(c){return typeof c=="string"&&c.indexOf("%")!=-1}function Or(c){return c.length==1?"0"+c:""+c}function fo(c){return c<=1&&(c=c*100+"%"),c}function Sr(c){return Math.round(parseFloat(c)*255).toString(16)}function ao(c){return Un(c)/255}var Vr=function(){var c="[-\\+]?\\d+%?",r="[-\\+]?\\d*\\.\\d+%?",d="(?:"+r+")|(?:"+c+")",u="[\\s|\\(]+("+d+")[,|\\s]+("+d+")[,|\\s]+("+d+")\\s*\\)?",N="[\\s|\\(]+("+d+")[,|\\s]+("+d+")[,|\\s]+("+d+")[,|\\s]+("+d+")\\s*\\)?";return{CSS_UNIT:new RegExp(d),rgb:new RegExp("rgb"+u),rgba:new RegExp("rgba"+N),hsl:new RegExp("hsl"+u),hsla:new RegExp("hsla"+N),hsv:new RegExp("hsv"+u),hsva:new RegExp("hsva"+N),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 Ir(c){return!!Vr.CSS_UNIT.exec(c)}function Do(c){c=c.replace(Cn,"").replace(bn,"").toLowerCase();var r=!1;if(co[c])c=co[c],r=!0;else if(c=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var d;return(d=Vr.rgb.exec(c))?{r:d[1],g:d[2],b:d[3]}:(d=Vr.rgba.exec(c))?{r:d[1],g:d[2],b:d[3],a:d[4]}:(d=Vr.hsl.exec(c))?{h:d[1],s:d[2],l:d[3]}:(d=Vr.hsla.exec(c))?{h:d[1],s:d[2],l:d[3],a:d[4]}:(d=Vr.hsv.exec(c))?{h:d[1],s:d[2],v:d[3]}:(d=Vr.hsva.exec(c))?{h:d[1],s:d[2],v:d[3],a:d[4]}:(d=Vr.hex8.exec(c))?{r:Un(d[1]),g:Un(d[2]),b:Un(d[3]),a:ao(d[4]),format:r?"name":"hex8"}:(d=Vr.hex6.exec(c))?{r:Un(d[1]),g:Un(d[2]),b:Un(d[3]),format:r?"name":"hex"}:(d=Vr.hex4.exec(c))?{r:Un(d[1]+""+d[1]),g:Un(d[2]+""+d[2]),b:Un(d[3]+""+d[3]),a:ao(d[4]+""+d[4]),format:r?"name":"hex8"}:(d=Vr.hex3.exec(c))?{r:Un(d[1]+""+d[1]),g:Un(d[2]+""+d[2]),b:Un(d[3]+""+d[3]),format:r?"name":"hex"}:!1}function sa(c){var r,d;return c=c||{level:"AA",size:"small"},r=(c.level||"AA").toUpperCase(),d=(c.size||"small").toLowerCase(),r!=="AA"&&r!=="AAA"&&(r="AA"),d!=="small"&&d!=="large"&&(d="small"),{level:r,size:d}}var fa=function(r){var d=["r","g","b","a","h","s","l","v"],u=0,N=0;return Ht()(d,function(q){if(r[q]&&(u+=1,isNaN(r[q])||(N+=1),q==="s"||q==="l")){var He=/^\d+%$/;He.test(r[q])&&(N+=1)}}),u===N?r:!1},Oa=function(r,d){var u=r.hex?wt(r.hex):wt(r),N=u.toHsl(),q=u.toHsv(),He=u.toRgb(),ze=u.toHex();N.s===0&&(N.h=d||0,q.h=d||0);var Ge=ze==="000000"&&He.a===0;return{hsl:N,hex:Ge?"transparent":"#".concat(ze),rgb:He,hsv:q,oldHue:r.h||d||N.h,source:r.source}},Oo=function(r){if(r==="transparent")return!0;var d=String(r).charAt(0)==="#"?1:0;return r.length!==4+d&&r.length<7+d&&wt(r).isValid()},zo=function(r){if(!r)return"#fff";var d=Oa(r);if(d.hex==="transparent")return"rgba(0,0,0,0.4)";var u=(d.rgb.r*299+d.rgb.g*587+d.rgb.b*114)/1e3;return u>=128?"#000":"#fff"},va={hsl:{a:1,h:0,l:.5,s:1},hex:"#ff0000",rgb:{r:255,g:0,b:0,a:1},hsv:{h:0,s:1,v:1,a:1}},vi=function(r,d){var u=r.replace("\xB0","");return tinycolor("".concat(d," (").concat(u,")"))._ok};function ka(c){"@babel/helpers - typeof";return ka=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},ka(c)}function ye(){return ye=Object.assign?Object.assign.bind():function(c){for(var r=1;r-1},wo=function(r){return Number(String(r).replace(/%/g,""))},ca=1,za=function(c){Ot(d,c);var r=xn(d);function d(u){var N;return Nn(this,d),N=r.call(this),N.handleBlur=function(){N.state.blurValue&&N.setState({value:N.state.blurValue,blurValue:null})},N.handleChange=function(q){N.setUpdatedValue(q.target.value,q)},N.handleKeyDown=function(q){var He=wo(q.target.value);if(!isNaN(He)&&Ho(q.keyCode)){var ze=N.getArrowOffset(),Ge=q.keyCode===gr?He+ze:He-ze;N.setUpdatedValue(Ge,q)}},N.handleDrag=function(q){if(N.props.dragLabel){var He=Math.round(N.props.value+q.movementX);He>=0&&He<=N.props.dragMax&&N.props.onChange&&N.props.onChange(N.getValueObjectWithLabel(He),q)}},N.handleMouseDown=function(q){N.props.dragLabel&&(q.preventDefault(),N.handleDrag(q),window.addEventListener("mousemove",N.handleDrag),window.addEventListener("mouseup",N.handleMouseUp))},N.handleMouseUp=function(){N.unbindEventListeners()},N.unbindEventListeners=function(){window.removeEventListener("mousemove",N.handleDrag),window.removeEventListener("mouseup",N.handleMouseUp)},N.state={value:String(u.value).toUpperCase(),blurValue:String(u.value).toUpperCase()},N.inputId="rc-editable-input-".concat(ca++),N}return _t(d,[{key:"componentDidUpdate",value:function(N,q){this.props.value!==this.state.value&&(N.value!==this.props.value||q.value!==this.state.value)&&(this.input===document.activeElement?this.setState({blurValue:String(this.props.value).toUpperCase()}):this.setState({value:String(this.props.value).toUpperCase(),blurValue:!this.state.blurValue&&String(this.props.value).toUpperCase()}))}},{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"getValueObjectWithLabel",value:function(N){return hn({},this.props.label,N)}},{key:"getArrowOffset",value:function(){return this.props.arrowOffset||ar}},{key:"setUpdatedValue",value:function(N,q){var He=this.props.label?this.getValueObjectWithLabel(N):N;this.props.onChange&&this.props.onChange(He,q),this.setState({value:N})}},{key:"render",value:function(){var N=this,q=(0,W.ZP)({default:{wrap:{position:"relative"}},"user-override":{wrap:this.props.style&&this.props.style.wrap?this.props.style.wrap:{},input:this.props.style&&this.props.style.input?this.props.style.input:{},label:this.props.style&&this.props.style.label?this.props.style.label:{}},"dragLabel-true":{label:{cursor:"ew-resize"}}},{"user-override":!0},this.props);return w.createElement("div",{style:q.wrap},w.createElement("input",{id:this.inputId,style:q.input,ref:function(ze){return N.input=ze},value:this.state.value,onKeyDown:this.handleKeyDown,onChange:this.handleChange,onBlur:this.handleBlur,placeholder:this.props.placeholder,spellCheck:"false"}),this.props.label&&!this.props.hideLabel?w.createElement("label",{htmlFor:this.inputId,style:q.label,onMouseDown:this.handleMouseDown},this.props.label):null)}}]),d}(w.PureComponent||w.Component),Ga=za;function Za(c){"@babel/helpers - typeof";return Za=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Za(c)}function oa(){return oa=Object.assign?Object.assign.bind():function(c){for(var r=1;r1&&arguments[1]!==void 0?arguments[1]:"span";return function(u){pl(q,u);var N=Ml(q);function q(){var He;Ba(this,q);for(var ze=arguments.length,Ge=new Array(ze),Je=0;Je100&&(jt.a=100),jt.a/=100,d==null||d({h:N==null?void 0:N.h,s:N==null?void 0:N.s,l:N==null?void 0:N.l,a:jt.a,source:"rgb"},rn))};return w.createElement("div",{style:ze.fields,className:"flexbox-fix"},w.createElement("div",{style:ze.double},w.createElement(Ga,{style:{input:ze.input,label:ze.label},label:"hex",value:q==null?void 0:q.replace("#",""),onChange:Ge})),w.createElement("div",{style:ze.single},w.createElement(Ga,{style:{input:ze.input,label:ze.label},label:"r",value:u==null?void 0:u.r,onChange:Ge,dragLabel:"true",dragMax:"255"})),w.createElement("div",{style:ze.single},w.createElement(Ga,{style:{input:ze.input,label:ze.label},label:"g",value:u==null?void 0:u.g,onChange:Ge,dragLabel:"true",dragMax:"255"})),w.createElement("div",{style:ze.single},w.createElement(Ga,{style:{input:ze.input,label:ze.label},label:"b",value:u==null?void 0:u.b,onChange:Ge,dragLabel:"true",dragMax:"255"})),w.createElement("div",{style:ze.alpha},w.createElement(Ga,{style:{input:ze.input,label:ze.label},label:"a",value:Math.round(((u==null?void 0:u.a)||0)*100),onChange:Ge,dragLabel:"true",dragMax:"100"})))},Al=rl;function Vi(c){"@babel/helpers - typeof";return Vi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Vi(c)}function Li(c,r){var d=Object.keys(c);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(c);r&&(u=u.filter(function(N){return Object.getOwnPropertyDescriptor(c,N).enumerable})),d.push.apply(d,u)}return d}function Hl(c){for(var r=1;r-1}function Rl(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if((typeof c=="undefined"||c===!1)&&Gi()){var r=e(27592),d=r.ColorPicker;return d}return Bl}var ma=function(r,d){var u=r.text,N=r.mode,q=r.render,He=r.renderFormItem,ze=r.fieldProps,Ge=r.old,Je=(0,w.useContext)(te.ZP.ConfigContext),jt=Je.getPrefixCls,rn=w.useMemo(function(){return Rl(Ge)},[Ge]),Qt=jt("pro-field-color-picker"),Ln=(0,w.useMemo)(function(){return Ge?"":$e()((0,G.Z)({},Qt,Gi()))},[Qt,Ge]);if(N==="read"){var Xn=(0,g.jsx)(rn,{value:u,mode:"read",ref:d,className:Ln,open:!1});return q?q(u,(0,i.Z)({mode:N},ze),Xn):Xn}if(N==="edit"||N==="update"){var Mn=(0,i.Z)({display:"table-cell"},ze.style),Dn=(0,g.jsx)(rn,(0,i.Z)((0,i.Z)({ref:d,presets:[Ja]},ze),{},{style:Mn,className:Ln}));return He?He(u,(0,i.Z)((0,i.Z)({mode:N},ze),{},{style:Mn}),Dn):Dn}return null},Tl=w.forwardRef(ma),bl=e(86977),Uo=e.n(bl),Gl=e(61118),Sl=e.n(Gl),kl=e(15797);Uo().extend(Sl());var Dl=function(r){return!!(r!=null&&r._isAMomentObject)},io=function c(r,d){return(0,kl.k)(r)||Uo().isDayjs(r)||Dl(r)?Dl(r)?Uo()(r):r:Array.isArray(r)?r.map(function(u){return c(u,d)}):typeof r=="number"?Uo()(r):Uo()(r,d)},lr=e(96905),Ro=e(43153),Ka=e.n(Ro);Uo().extend(Ka());var qa=function(r,d){return r?typeof d=="function"?d(Uo()(r)):Uo()(r).format(d||"YYYY-MM-DD"):"-"},es=function(r,d){var u=r.text,N=r.mode,q=r.format,He=r.label,ze=r.light,Ge=r.render,Je=r.renderFormItem,jt=r.plain,rn=r.showTime,Qt=r.fieldProps,Ln=r.picker,Xn=r.bordered,Mn=r.lightLabel,Dn=(0,T.YB)(),Ar=(0,w.useState)(!1),rr=(0,K.Z)(Ar,2),Rr=rr[0],Xr=rr[1];if(N==="read"){var zr=qa(u,Qt.format||q);return Ge?Ge(u,(0,i.Z)({mode:N},Qt),(0,g.jsx)(g.Fragment,{children:zr})):(0,g.jsx)(g.Fragment,{children:zr})}if(N==="edit"||N==="update"){var kr,Lo=Qt.disabled,So=Qt.value,pa=Qt.placeholder,Pa=pa===void 0?Dn.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9"):pa,ko=io(So);return ze?kr=(0,g.jsx)(f.Q,{label:He,onClick:function(){var jo;Qt==null||(jo=Qt.onOpenChange)===null||jo===void 0||jo.call(Qt,!0),Xr(!0)},style:ko?{paddingInlineEnd:0}:void 0,disabled:Lo,value:ko||Rr?(0,g.jsx)(lr.Z,(0,i.Z)((0,i.Z)({picker:Ln,showTime:rn,format:q,ref:d},Qt),{},{value:ko,onOpenChange:function(jo){var To;Xr(jo),Qt==null||(To=Qt.onOpenChange)===null||To===void 0||To.call(Qt,jo)},bordered:!1,open:Rr})):void 0,allowClear:!1,downIcon:ko||Rr?!1:void 0,bordered:Xn,ref:Mn}):kr=(0,g.jsx)(lr.Z,(0,i.Z)((0,i.Z)({picker:Ln,showTime:rn,format:q,placeholder:Pa,bordered:jt===void 0?!0:!jt,ref:d},Qt),{},{value:ko})),Je?Je(u,(0,i.Z)({mode:N},Qt),kr):kr}return null},xl=w.forwardRef(es),C=e(32423),E=e(36490),le=function(r,d){var u=r.text,N=r.mode,q=r.render,He=r.placeholder,ze=r.renderFormItem,Ge=r.fieldProps,Je=(0,T.YB)(),jt=He||Je.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),rn=(0,w.useCallback)(function(Ar){var rr=Ar!=null?Ar:void 0;return!Ge.stringMode&&typeof rr=="string"&&(rr=Number(rr)),typeof rr=="number"&&!(0,kl.k)(rr)&&!(0,kl.k)(Ge.precision)&&(rr=Number(rr.toFixed(Ge.precision))),rr},[Ge]);if(N==="read"){var Qt,Ln={};Ge!=null&&Ge.precision&&(Ln={minimumFractionDigits:Number(Ge.precision),maximumFractionDigits:Number(Ge.precision)});var Xn=new Intl.NumberFormat(void 0,(0,i.Z)((0,i.Z)({},Ln),(Ge==null?void 0:Ge.intlProps)||{})).format(Number(u)),Mn=(0,g.jsx)("span",{ref:d,children:(Ge==null||(Qt=Ge.formatter)===null||Qt===void 0?void 0:Qt.call(Ge,Xn))||Xn});return q?q(u,(0,i.Z)({mode:N},Ge),Mn):Mn}if(N==="edit"||N==="update"){var Dn=(0,g.jsx)(C.Z,(0,i.Z)((0,i.Z)({ref:d,min:0,placeholder:jt},(0,E.Z)(Ge,["onChange","onBlur"])),{},{onChange:function(rr){var Rr;return Ge==null||(Rr=Ge.onChange)===null||Rr===void 0?void 0:Rr.call(Ge,rn(rr))},onBlur:function(rr){var Rr;return Ge==null||(Rr=Ge.onBlur)===null||Rr===void 0?void 0:Rr.call(Ge,rn(rr.target.value))}}));return ze?ze(u,(0,i.Z)({mode:N},Ge),Dn):Dn}return null},ce=w.forwardRef(le),ke=e(29140),Te=e(57414),Et=function(r,d){var u=r.text,N=r.mode,q=r.render,He=r.placeholder,ze=r.renderFormItem,Ge=r.fieldProps,Je=r.separator,jt=Je===void 0?"~":Je,rn=r.separatorWidth,Qt=rn===void 0?30:rn,Ln=Ge.value,Xn=Ge.defaultValue,Mn=Ge.onChange,Dn=Ge.id,Ar=(0,T.YB)(),rr=st.Ow.useToken(),Rr=rr.token,Xr=(0,Hi.Z)(function(){return Xn},{value:Ln,onChange:Mn}),zr=(0,K.Z)(Xr,2),kr=zr[0],Lo=zr[1];if(N==="read"){var So=function(Po){var Xa,bi=new Intl.NumberFormat(void 0,(0,i.Z)({minimumSignificantDigits:2},(Ge==null?void 0:Ge.intlProps)||{})).format(Number(Po));return(Ge==null||(Xa=Ge.formatter)===null||Xa===void 0?void 0:Xa.call(Ge,bi))||bi},pa=(0,g.jsxs)("span",{ref:d,children:[So(u[0])," ",jt," ",So(u[1])]});return q?q(u,(0,i.Z)({mode:N},Ge),pa):pa}if(N==="edit"||N==="update"){var Pa=function(){if(Array.isArray(kr)){var Po=(0,K.Z)(kr,2),Xa=Po[0],bi=Po[1];typeof Xa=="number"&&typeof bi=="number"&&Xa>bi?Lo([bi,Xa]):Xa===void 0&&bi===void 0&&Lo(void 0)}},ko=function(Po,Xa){var bi=(0,ke.Z)(kr||[]);bi[Po]=Xa===null?void 0:Xa,Lo(bi)},fr=(Ge==null?void 0:Ge.placeholder)||He||[Ar.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),Ar.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165")],jo=function(Po){return Array.isArray(fr)?fr[Po]:fr},To=Te.Z.Compact||se.Z.Group,qr=Te.Z.Compact?{}:{compact:!0},na=(0,g.jsxs)(To,(0,i.Z)((0,i.Z)({},qr),{},{onBlur:Pa,children:[(0,g.jsx)(C.Z,(0,i.Z)((0,i.Z)({},Ge),{},{placeholder:jo(0),id:Dn!=null?Dn:"".concat(Dn,"-0"),style:{width:"calc((100% - ".concat(Qt,"px) / 2)")},value:kr==null?void 0:kr[0],defaultValue:Xn==null?void 0:Xn[0],onChange:function(Po){return ko(0,Po)}})),(0,g.jsx)(se.Z,{style:{width:Qt,textAlign:"center",borderInlineStart:0,borderInlineEnd:0,pointerEvents:"none",backgroundColor:Rr==null?void 0:Rr.colorBgContainer},placeholder:jt,disabled:!0}),(0,g.jsx)(C.Z,(0,i.Z)((0,i.Z)({},Ge),{},{placeholder:jo(1),id:Dn!=null?Dn:"".concat(Dn,"-1"),style:{width:"calc((100% - ".concat(Qt,"px) / 2)"),borderInlineStart:0},value:kr==null?void 0:kr[1],defaultValue:Xn==null?void 0:Xn[1],onChange:function(Po){return ko(1,Po)}}))]}));return ze?ze(u,(0,i.Z)({mode:N},Ge),na):na}return null},Mt=w.forwardRef(Et),$t=e(74820),Kt=e(67218),gn=e.n(Kt);Uo().extend(gn());var Yt=function(r,d){var u=r.text,N=r.mode,q=r.render,He=r.renderFormItem,ze=r.format,Ge=r.fieldProps,Je=(0,T.YB)();if(N==="read"){var jt=(0,g.jsx)($t.Z,{title:Uo()(u).format((Ge==null?void 0:Ge.format)||ze||"YYYY-MM-DD HH:mm:ss"),children:Uo()(u).fromNow()});return q?q(u,(0,i.Z)({mode:N},Ge),(0,g.jsx)(g.Fragment,{children:jt})):(0,g.jsx)(g.Fragment,{children:jt})}if(N==="edit"||N==="update"){var rn=Je.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9"),Qt=io(Ge.value),Ln=(0,g.jsx)(lr.Z,(0,i.Z)((0,i.Z)({ref:d,placeholder:rn,showTime:!0},Ge),{},{value:Qt}));return He?He(u,(0,i.Z)({mode:N},Ge),Ln):Ln}return null},Rn=w.forwardRef(Yt),In=e(31712),vn=w.forwardRef(function(c,r){var d=c.text,u=c.mode,N=c.render,q=c.renderFormItem,He=c.fieldProps,ze=c.placeholder,Ge=c.width,Je=(0,T.YB)(),jt=ze||Je.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165");if(u==="read"){var rn=(0,g.jsx)(In.Z,(0,i.Z)({ref:r,width:Ge||32,src:d},He));return N?N(d,(0,i.Z)({mode:u},He),rn):rn}if(u==="edit"||u==="update"){var Qt=(0,g.jsx)(se.Z,(0,i.Z)({ref:r,placeholder:jt},He));return q?q(d,(0,i.Z)({mode:u},He),Qt):Qt}return null}),on=vn,$n=function(r,d){var u,N=r.border,q=N===void 0?!1:N,He=r.children,ze=(0,w.useContext)(te.ZP.ConfigContext),Ge=ze.getPrefixCls,Je=Ge("pro-field-index-column"),jt=(0,st.Xj)("IndexColumn",function(){return(0,G.Z)({},".".concat(Je),{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"18px",height:"18px","&-border":{color:"#fff",fontSize:"12px",lineHeight:"12px",backgroundColor:"#314659",borderRadius:"9px","&.top-three":{backgroundColor:"#979797"}}})}),rn=jt.wrapSSR,Qt=jt.hashId;return rn((0,g.jsx)("div",{ref:d,className:$e()(Je,Qt,(u={},(0,G.Z)(u,"".concat(Je,"-border"),q),(0,G.Z)(u,"top-three",He>3),u)),children:He}))},An=w.forwardRef($n),sr=e(6962),mr=e(1643),go=["contentRender","numberFormatOptions","numberPopoverRender","open"],Er=["text","mode","render","renderFormItem","fieldProps","proFieldKey","plain","valueEnum","placeholder","locale","customSymbol","numberFormatOptions","numberPopoverRender"],xr=new Intl.NumberFormat("zh-Hans-CN",{currency:"CNY",style:"currency"}),lo={style:"currency",currency:"USD"},Io={style:"currency",currency:"RUB"},Qr={style:"currency",currency:"RSD"},vo={style:"currency",currency:"MYR"},ho={style:"currency",currency:"BRL"},cr={default:xr,"zh-Hans-CN":{currency:"CNY",style:"currency"},"en-US":lo,"ru-RU":Io,"ms-MY":vo,"sr-RS":Qr,"pt-BR":ho},Kr=function(r,d,u,N){var q=d==null?void 0:d.toString().replaceAll(",","");if(typeof q=="string"){var He=Number(q);if(Number.isNaN(He))return q;q=He}if(!q&&q!==0)return"";try{var ze=new Intl.NumberFormat(r||"zh-Hans-CN",(0,i.Z)((0,i.Z)({},cr[r||"zh-Hans-CN"]||cr["zh-Hans-CN"]),{},{maximumFractionDigits:u},N)).format(q),Ge=r===!1,Je=ze||"",jt=(0,K.Z)(Je,1),rn=jt[0];return["+","-"].includes(rn)?"".concat(rn).concat(ze.substring(Ge?2:1)):ze.substring(Ge?1:0)}catch(Qt){return q}},yo=2,ga=w.forwardRef(function(c,r){var d=c.contentRender,u=c.numberFormatOptions,N=c.numberPopoverRender,q=c.open,He=(0,y.Z)(c,go),ze=(0,Hi.Z)(function(){return He.defaultValue},{value:He.value,onChange:He.onChange}),Ge=(0,K.Z)(ze,2),Je=Ge[0],jt=Ge[1],rn=d==null?void 0:d((0,i.Z)((0,i.Z)({},He),{},{value:Je})),Qt=(0,mr.X)(rn?q:!1);return(0,g.jsx)(cl.Z,(0,i.Z)((0,i.Z)({placement:"topLeft"},Qt),{},{trigger:["focus","click"],content:rn,getPopupContainer:function(Xn){return(Xn==null?void 0:Xn.parentElement)||document.body},children:(0,g.jsx)(C.Z,(0,i.Z)((0,i.Z)({ref:r},He),{},{value:Je,onChange:jt}))}))}),Fo=function(r,d){var u,N,q=r.text,He=r.mode,ze=r.render,Ge=r.renderFormItem,Je=r.fieldProps,jt=r.proFieldKey,rn=r.plain,Qt=r.valueEnum,Ln=r.placeholder,Xn=r.locale,Mn=Xn===void 0?(u=Je.customSymbol)!==null&&u!==void 0?u:"zh-Hans-CN":Xn,Dn=r.customSymbol,Ar=Dn===void 0?Je.customSymbol:Dn,rr=r.numberFormatOptions,Rr=rr===void 0?Je==null?void 0:Je.numberFormatOptions:rr,Xr=r.numberPopoverRender,zr=Xr===void 0?(Je==null?void 0:Je.numberPopoverRender)||!1:Xr,kr=(0,y.Z)(r,Er),Lo=(N=Je==null?void 0:Je.precision)!==null&&N!==void 0?N:yo,So=(0,T.YB)();Mn&&sr.Go[Mn]&&(So=sr.Go[Mn]);var pa=Ln||So.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),Pa=(0,w.useMemo)(function(){if(Ar)return Ar;if(!(kr.moneySymbol===!1||Je.moneySymbol===!1))return So.getMessage("moneySymbol","\uFFE5")},[Ar,Je.moneySymbol,So,kr.moneySymbol]),ko=(0,w.useCallback)(function(To){var qr=new RegExp("\\B(?=(\\d{".concat(3+Math.max(Lo-yo,0),"})+(?!\\d))"),"g"),na=String(To).split("."),Go=(0,K.Z)(na,2),Po=Go[0],Xa=Go[1],bi=Po.replace(qr,","),tl="";return Xa&&Lo>0&&(tl=".".concat(Xa.slice(0,Lo===void 0?yo:Lo))),"".concat(bi).concat(tl)},[Lo]);if(He==="read"){var fr=(0,g.jsx)("span",{ref:d,children:Kr(Pa?Mn:!1,q,Lo,Rr!=null?Rr:Je.numberFormatOptions)});return ze?ze(q,(0,i.Z)({mode:He},Je),fr):fr}if(He==="edit"||He==="update"){var jo=(0,g.jsx)(ga,(0,i.Z)((0,i.Z)({contentRender:function(qr){if(zr===!1||!qr.value)return null;var na=Kr(Pa?Mn:!1,"".concat(ko(qr.value)),Lo,(0,i.Z)((0,i.Z)({},Rr),{},{notation:"compact"}));return typeof zr=="function"?zr==null?void 0:zr(qr,na):na},ref:d,precision:Lo,formatter:function(qr){return qr&&Pa?"".concat(Pa," ").concat(ko(qr)):qr==null?void 0:qr.toString()},parser:function(qr){return Pa&&qr?qr.replace(new RegExp("\\".concat(Pa,"\\s?|(,*)"),"g"),""):qr},placeholder:pa},(0,E.Z)(Je,["numberFormatOptions","precision","numberPopoverRender","customSymbol","moneySymbol","visible","open"])),{},{onBlur:Je.onBlur?function(To){var qr,na=To.target.value;Pa&&na&&(na=na.replace(new RegExp("\\".concat(Pa,"\\s?|(,*)"),"g"),"")),(qr=Je.onBlur)===null||qr===void 0||qr.call(Je,na)}:void 0}));return Ge?Ge(q,(0,i.Z)({mode:He},Je),jo):jo}return null},eo=w.forwardRef(Fo),Jo=function(r){return r.map(function(d,u){var N;return w.isValidElement(d)?w.cloneElement(d,(0,i.Z)((0,i.Z)({key:u},d==null?void 0:d.props),{},{style:(0,i.Z)({flex:1},d==null||(N=d.props)===null||N===void 0?void 0:N.style)})):(0,g.jsx)(w.Fragment,{children:d},u)})},bo=function(r,d){var u=r.text,N=r.mode,q=r.render,He=r.fieldProps,ze=(0,w.useContext)(te.ZP.ConfigContext),Ge=ze.getPrefixCls,Je=Ge("pro-field-option"),jt=st.Ow.useToken(),rn=jt.token;if((0,w.useImperativeHandle)(d,function(){return{}}),q){var Qt=q(u,(0,i.Z)({mode:N},He),(0,g.jsx)(g.Fragment,{}));return!Qt||(Qt==null?void 0:Qt.length)<1||!Array.isArray(Qt)?null:(0,g.jsx)("div",{style:{display:"flex",gap:rn.margin,alignItems:"center"},className:Je,children:Jo(Qt)})}return!u||!Array.isArray(u)?w.isValidElement(u)?u:null:(0,g.jsx)("div",{style:{display:"flex",gap:rn.margin,alignItems:"center"},className:Je,children:Jo(u)})},ta=w.forwardRef(bo),po=e(56019),Ya=e(83720),Bi=["text","mode","render","renderFormItem","fieldProps","proFieldKey"],Ma=function(r,d){var u=r.text,N=r.mode,q=r.render,He=r.renderFormItem,ze=r.fieldProps,Ge=r.proFieldKey,Je=(0,y.Z)(r,Bi),jt=(0,T.YB)(),rn=(0,Hi.Z)(function(){return Je.open||Je.visible||!1},{value:Je.open||Je.visible,onChange:Je.onOpenChange||Je.onVisible}),Qt=(0,K.Z)(rn,2),Ln=Qt[0],Xn=Qt[1];if(N==="read"){var Mn=(0,g.jsx)(g.Fragment,{children:"-"});return u&&(Mn=(0,g.jsxs)(Te.Z,{children:[(0,g.jsx)("span",{ref:d,children:Ln?u:"\uFF0A \uFF0A \uFF0A \uFF0A \uFF0A"}),(0,g.jsx)("a",{onClick:function(){return Xn(!Ln)},children:Ln?(0,g.jsx)(po.Z,{}):(0,g.jsx)(Ya.Z,{})})]})),q?q(u,(0,i.Z)({mode:N},ze),Mn):Mn}if(N==="edit"||N==="update"){var Dn=(0,g.jsx)(se.Z.Password,(0,i.Z)({placeholder:jt.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),ref:d},ze));return He?He(u,(0,i.Z)({mode:N},ze),Dn):Dn}return null},hi=w.forwardRef(Ma),Mo=e(37592),aa=e.n(Mo);function Oi(c){return c===0?null:c>0?"+":"-"}function da(c){return c===0?"#595959":c>0?"#ff4d4f":"#52c41a"}function Eo(c){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;return r>=0?c==null?void 0:c.toFixed(r):c}var so=function(r,d){var u=r.text,N=r.prefix,q=r.precision,He=r.suffix,ze=He===void 0?"%":He,Ge=r.mode,Je=r.showColor,jt=Je===void 0?!1:Je,rn=r.render,Qt=r.renderFormItem,Ln=r.fieldProps,Xn=r.placeholder,Mn=r.showSymbol,Dn=(0,T.YB)(),Ar=Xn||Dn.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),rr=(0,w.useMemo)(function(){return typeof u=="string"&&u.includes("%")?aa()(u.replace("%","")):aa()(u)},[u]),Rr=(0,w.useMemo)(function(){return typeof Mn=="function"?Mn==null?void 0:Mn(u):Mn},[Mn,u]);if(Ge==="read"){var Xr=jt?{color:da(rr)}:{},zr=(0,g.jsxs)("span",{style:Xr,ref:d,children:[N&&(0,g.jsx)("span",{children:N}),Rr&&(0,g.jsxs)(w.Fragment,{children:[Oi(rr)," "]}),Eo(Math.abs(rr),q),ze&&ze]});return rn?rn(u,(0,i.Z)((0,i.Z)({mode:Ge},Ln),{},{prefix:N,precision:q,showSymbol:Rr,suffix:ze}),zr):zr}if(Ge==="edit"||Ge==="update"){var kr=(0,g.jsx)(C.Z,(0,i.Z)({ref:d,formatter:function(So){return So&&N?"".concat(N," ").concat(So).replace(/\B(?=(\d{3})+(?!\d)$)/g,","):So},parser:function(So){return So?So.replace(/.*\s|,/g,""):""},placeholder:Ar},Ln));return Qt?Qt(u,(0,i.Z)({mode:Ge},Ln),kr):kr}return null},hr=w.forwardRef(so),ir=e(95664);function Dr(c){return c===100?"success":c<0?"exception":c<100?"active":"normal"}var tr=function(r,d){var u=r.text,N=r.mode,q=r.render,He=r.plain,ze=r.renderFormItem,Ge=r.fieldProps,Je=r.placeholder,jt=(0,T.YB)(),rn=Je||jt.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),Qt=(0,w.useMemo)(function(){return typeof u=="string"&&u.includes("%")?aa()(u.replace("%","")):aa()(u)},[u]);if(N==="read"){var Ln=(0,g.jsx)(ir.Z,(0,i.Z)({ref:d,size:"small",style:{minWidth:100,maxWidth:320},percent:Qt,steps:He?10:void 0,status:Dr(Qt)},Ge));return q?q(Qt,(0,i.Z)({mode:N},Ge),Ln):Ln}if(N==="edit"||N==="update"){var Xn=(0,g.jsx)(C.Z,(0,i.Z)({ref:d,placeholder:rn},Ge));return ze?ze(u,(0,i.Z)({mode:N},Ge),Xn):Xn}return null},no=w.forwardRef(tr),Xo=e(10852),ba=["radioType","renderFormItem","mode","render"],pi=function(r,d){var u,N,q=r.radioType,He=r.renderFormItem,ze=r.mode,Ge=r.render,Je=(0,y.Z)(r,ba),jt=(0,w.useContext)(te.ZP.ConfigContext),rn=jt.getPrefixCls,Qt=rn("pro-field-radio"),Ln=(0,z.aK)(Je),Xn=(0,K.Z)(Ln,3),Mn=Xn[0],Dn=Xn[1],Ar=Xn[2],rr=(0,w.useRef)(),Rr=(u=Me.Z.Item)===null||u===void 0||(N=u.useStatus)===null||N===void 0?void 0:N.call(u);(0,w.useImperativeHandle)(d,function(){return(0,i.Z)((0,i.Z)({},rr.current||{}),{},{fetchData:function(qr){return Ar(qr)}})},[Ar]);var Xr=(0,st.Xj)("FieldRadioRadio",function(To){var qr;return qr={},(0,G.Z)(qr,".".concat(Qt,"-error"),{span:{color:To.colorError}}),(0,G.Z)(qr,".".concat(Qt,"-warning"),{span:{color:To.colorWarning}}),(0,G.Z)(qr,".".concat(Qt,"-vertical"),(0,G.Z)({},"".concat(To.antCls,"-radio-wrapper"),{display:"flex",marginInlineEnd:0})),qr}),zr=Xr.wrapSSR,kr=Xr.hashId;if(Mn)return(0,g.jsx)(P.Z,{size:"small"});if(ze==="read"){var Lo=Dn!=null&&Dn.length?Dn==null?void 0:Dn.reduce(function(To,qr){var na;return(0,i.Z)((0,i.Z)({},To),{},(0,G.Z)({},(na=qr.value)!==null&&na!==void 0?na:"",qr.label))},{}):void 0,So=(0,g.jsx)(g.Fragment,{children:(0,z.MP)(Je.text,(0,z.L9)(Je.valueEnum||Lo))});if(Ge){var pa;return(pa=Ge(Je.text,(0,i.Z)({mode:ze},Je.fieldProps),So))!==null&&pa!==void 0?pa:null}return So}if(ze==="edit"){var Pa,ko,fr=zr((0,g.jsx)(Xo.ZP.Group,(0,i.Z)((0,i.Z)({ref:rr,optionType:q},Je.fieldProps),{},{className:$e()((Pa=Je.fieldProps)===null||Pa===void 0?void 0:Pa.className,(ko={},(0,G.Z)(ko,"".concat(Qt,"-error"),(Rr==null?void 0:Rr.status)==="error"),(0,G.Z)(ko,"".concat(Qt,"-warning"),(Rr==null?void 0:Rr.status)==="warning"),ko),kr,"".concat(Qt,"-").concat(Je.fieldProps.layout||"horizontal")),options:Dn})));if(He){var jo;return(jo=He(Je.text,(0,i.Z)((0,i.Z)({mode:ze},Je.fieldProps),{},{options:Dn,loading:Mn}),fr))!==null&&jo!==void 0?jo:null}return fr}return null},ti=w.forwardRef(pi),Fl=function(r,d){var u=r.text,N=r.mode,q=r.light,He=r.label,ze=r.format,Ge=r.render,Je=r.picker,jt=r.renderFormItem,rn=r.plain,Qt=r.showTime,Ln=r.lightLabel,Xn=r.bordered,Mn=r.fieldProps,Dn=(0,T.YB)(),Ar=Array.isArray(u)?u:[],rr=(0,K.Z)(Ar,2),Rr=rr[0],Xr=rr[1],zr=w.useState(!1),kr=(0,K.Z)(zr,2),Lo=kr[0],So=kr[1],pa=(0,w.useCallback)(function(na){if(typeof(Mn==null?void 0:Mn.format)=="function"){var Go;return Mn==null||(Go=Mn.format)===null||Go===void 0?void 0:Go.call(Mn,na)}return(Mn==null?void 0:Mn.format)||ze||"YYYY-MM-DD"},[Mn,ze]),Pa=Rr?Uo()(Rr).format(pa(Uo()(Rr))):"",ko=Xr?Uo()(Xr).format(pa(Uo()(Xr))):"";if(N==="read"){var fr=(0,g.jsxs)("div",{ref:d,children:[(0,g.jsx)("div",{children:Pa||"-"}),(0,g.jsx)("div",{children:ko||"-"})]});return Ge?Ge(u,(0,i.Z)({mode:N},Mn),(0,g.jsx)("span",{children:fr})):fr}if(N==="edit"||N==="update"){var jo=io(Mn.value),To;if(q){var qr;To=(0,g.jsx)(f.Q,{label:He,onClick:function(){var Go;Mn==null||(Go=Mn.onOpenChange)===null||Go===void 0||Go.call(Mn,!0),So(!0)},style:jo?{paddingInlineEnd:0}:void 0,disabled:Mn.disabled,value:jo||Lo?(0,g.jsx)(lr.Z.RangePicker,(0,i.Z)((0,i.Z)({picker:Je,showTime:Qt,format:ze,bordered:!1},Mn),{},{placeholder:(qr=Mn.placeholder)!==null&&qr!==void 0?qr:[Dn.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9"),Dn.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9")],onClear:function(){var Go;So(!1),Mn==null||(Go=Mn.onClear)===null||Go===void 0||Go.call(Mn)},value:jo,onOpenChange:function(Go){var Po;jo&&So(Go),Mn==null||(Po=Mn.onOpenChange)===null||Po===void 0||Po.call(Mn,Go)}})):null,allowClear:!1,bordered:Xn,ref:Ln,downIcon:jo||Lo?!1:void 0})}else To=(0,g.jsx)(lr.Z.RangePicker,(0,i.Z)((0,i.Z)({ref:d,format:ze,showTime:Qt,placeholder:[Dn.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9"),Dn.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9")],bordered:rn===void 0},Mn),{},{value:jo}));return jt?jt(u,(0,i.Z)({mode:N},Mn),To):To}return null},wa=w.forwardRef(Fl),wl=e(73045),yi=function(r,d){var u=r.text,N=r.mode,q=r.render,He=r.renderFormItem,ze=r.fieldProps;if(N==="read"){var Ge=(0,g.jsx)(wl.Z,(0,i.Z)((0,i.Z)({allowHalf:!0,disabled:!0,ref:d},ze),{},{value:u}));return q?q(u,(0,i.Z)({mode:N},ze),(0,g.jsx)(g.Fragment,{children:Ge})):Ge}if(N==="edit"||N==="update"){var Je=(0,g.jsx)(wl.Z,(0,i.Z)({allowHalf:!0,ref:d},ze));return He?He(u,(0,i.Z)({mode:N},ze),Je):Je}return null},oi=w.forwardRef(yi);function Il(c){var r="",d=Math.floor(c/86400),u=Math.floor(c/3600),N=Math.floor(c/60%60),q=Math.floor(c%60);return r="".concat(q,"\u79D2"),N>0&&(r="".concat(N,"\u5206\u949F").concat(r)),u>0&&(r="".concat(u,"\u5C0F\u65F6").concat(r)),d>0&&(r="".concat(d,"\u5929").concat(r)),r}var Bo=function(r,d){var u=r.text,N=r.mode,q=r.render,He=r.renderFormItem,ze=r.fieldProps,Ge=r.placeholder,Je=(0,T.YB)(),jt=Ge||Je.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165");if(N==="read"){var rn=Il(Number(u)),Qt=(0,g.jsx)("span",{ref:d,children:rn});return q?q(u,(0,i.Z)({mode:N},ze),Qt):Qt}if(N==="edit"||N==="update"){var Ln=(0,g.jsx)(C.Z,(0,i.Z)({ref:d,min:0,style:{width:"100%"},placeholder:jt},ze));return He?He(u,(0,i.Z)({mode:N},ze),Ln):Ln}return null},ha=w.forwardRef(Bo),Ea=e(2073),ai=["mode","render","renderFormItem","fieldProps","emptyText"],Wo=function(r,d){var u=r.mode,N=r.render,q=r.renderFormItem,He=r.fieldProps,ze=r.emptyText,Ge=ze===void 0?"-":ze,Je=(0,y.Z)(r,ai),jt=(0,w.useRef)(),rn=(0,z.aK)(Je),Qt=(0,K.Z)(rn,3),Ln=Qt[0],Xn=Qt[1],Mn=Qt[2];if((0,w.useImperativeHandle)(d,function(){return(0,i.Z)((0,i.Z)({},jt.current||{}),{},{fetchData:function(zr){return Mn(zr)}})},[Mn]),Ln)return(0,g.jsx)(P.Z,{size:"small"});if(u==="read"){var Dn=Xn!=null&&Xn.length?Xn==null?void 0:Xn.reduce(function(Xr,zr){var kr;return(0,i.Z)((0,i.Z)({},Xr),{},(0,G.Z)({},(kr=zr.value)!==null&&kr!==void 0?kr:"",zr.label))},{}):void 0,Ar=(0,g.jsx)(g.Fragment,{children:(0,z.MP)(Je.text,(0,z.L9)(Je.valueEnum||Dn))});if(N){var rr;return(rr=N(Je.text,(0,i.Z)({mode:u},He),(0,g.jsx)(g.Fragment,{children:Ar})))!==null&&rr!==void 0?rr:Ge}return Ar}if(u==="edit"||u==="update"){var Rr=(0,g.jsx)(Ea.Z,(0,i.Z)((0,i.Z)({ref:jt},(0,E.Z)(He||{},["allowClear"])),{},{options:Xn}));return q?q(Je.text,(0,i.Z)((0,i.Z)({mode:u},He),{},{options:Xn,loading:Ln}),Rr):Rr}return null},Na=w.forwardRef(Wo),ci=e(94706),Zi=function(r,d){var u=r.text,N=r.mode,q=r.render,He=r.renderFormItem,ze=r.fieldProps;if(N==="read"){var Ge=u;return q?q(u,(0,i.Z)({mode:N},ze),(0,g.jsx)(g.Fragment,{children:Ge})):(0,g.jsx)(g.Fragment,{children:Ge})}if(N==="edit"||N==="update"){var Je=(0,g.jsx)(ci.Z,(0,i.Z)((0,i.Z)({ref:d},ze),{},{style:(0,i.Z)({minWidth:120},ze==null?void 0:ze.style)}));return He?He(u,(0,i.Z)({mode:N},ze),Je):Je}return null},Qi=w.forwardRef(Zi),dl=e(2309),_a=function(r,d){var u=r.text,N=r.mode,q=r.render,He=r.light,ze=r.label,Ge=r.renderFormItem,Je=r.fieldProps,jt=(0,T.YB)(),rn=(0,w.useMemo)(function(){var Dn,Ar;return u==null||"".concat(u).length<1?"-":u?(Dn=Je==null?void 0:Je.checkedChildren)!==null&&Dn!==void 0?Dn:jt.getMessage("switch.open","\u6253\u5F00"):(Ar=Je==null?void 0:Je.unCheckedChildren)!==null&&Ar!==void 0?Ar:jt.getMessage("switch.close","\u5173\u95ED")},[Je==null?void 0:Je.checkedChildren,Je==null?void 0:Je.unCheckedChildren,u]);if(N==="read")return q?q(u,(0,i.Z)({mode:N},Je),(0,g.jsx)(g.Fragment,{children:rn})):rn!=null?rn:"-";if(N==="edit"||N==="update"){var Qt,Ln=(0,g.jsx)(dl.Z,(0,i.Z)((0,i.Z)({ref:d,size:He?"small":void 0},(0,E.Z)(Je,["value"])),{},{checked:(Qt=Je==null?void 0:Je.checked)!==null&&Qt!==void 0?Qt:Je==null?void 0:Je.value}));if(He){var Xn=Je.disabled,Mn=Je.bordered;return(0,g.jsx)(f.Q,{label:ze,disabled:Xn,bordered:Mn,downIcon:!1,value:(0,g.jsx)("div",{style:{paddingLeft:8},children:Ln}),allowClear:!1})}return Ge?Ge(u,(0,i.Z)({mode:N},Je),Ln):Ln}return null},Ui=w.forwardRef(_a),ki=function(r,d){var u=r.text,N=r.mode,q=r.render,He=r.renderFormItem,ze=r.fieldProps,Ge=r.emptyText,Je=Ge===void 0?"-":Ge,jt=ze||{},rn=jt.autoFocus,Qt=jt.prefix,Ln=Qt===void 0?"":Qt,Xn=jt.suffix,Mn=Xn===void 0?"":Xn,Dn=(0,T.YB)(),Ar=(0,w.useRef)();if((0,w.useImperativeHandle)(d,function(){return Ar.current},[]),(0,w.useEffect)(function(){if(rn){var kr;(kr=Ar.current)===null||kr===void 0||kr.focus()}},[rn]),N==="read"){var rr=(0,g.jsxs)(g.Fragment,{children:[Ln,u!=null?u:Je,Mn]});if(q){var Rr;return(Rr=q(u,(0,i.Z)({mode:N},ze),rr))!==null&&Rr!==void 0?Rr:Je}return rr}if(N==="edit"||N==="update"){var Xr=Dn.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),zr=(0,g.jsx)(se.Z,(0,i.Z)({ref:Ar,placeholder:Xr,allowClear:!0},ze));return He?He(u,(0,i.Z)({mode:N},ze),zr):zr}return null},ul=w.forwardRef(ki),Ci=function(r,d){var u=r.text,N=(0,w.useContext)(te.ZP.ConfigContext),q=N.getPrefixCls,He=q("pro-field-readonly"),ze="".concat(He,"-textarea"),Ge=(0,st.Xj)("TextArea",function(){return(0,G.Z)({},".".concat(ze),{display:"inline-block",lineHeight:"1.5715",maxWidth:"100%",whiteSpace:"pre-wrap"})}),Je=Ge.wrapSSR,jt=Ge.hashId;return Je((0,g.jsx)("span",{ref:d,className:$e()(jt,He,ze),style:{},children:u!=null?u:"-"}))},ii=w.forwardRef(Ci),fl=function(r,d){var u=r.text,N=r.mode,q=r.render,He=r.renderFormItem,ze=r.fieldProps,Ge=(0,T.YB)();if(N==="read"){var Je=(0,g.jsx)(ii,(0,i.Z)((0,i.Z)({},r),{},{ref:d}));return q?q(u,(0,i.Z)({mode:N},ze),Je):Je}if(N==="edit"||N==="update"){var jt=(0,g.jsx)(se.Z.TextArea,(0,i.Z)({ref:d,rows:3,onKeyPress:function(Qt){Qt.key==="Enter"&&Qt.stopPropagation()},placeholder:Ge.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165")},ze));return He?He(u,(0,i.Z)({mode:N},ze),jt):jt}return null},Ri=w.forwardRef(fl),zi=e(98823),No=function(r,d){var u=r.text,N=r.mode,q=r.light,He=r.label,ze=r.format,Ge=r.render,Je=r.renderFormItem,jt=r.plain,rn=r.fieldProps,Qt=r.lightLabel,Ln=(0,w.useState)(!1),Xn=(0,K.Z)(Ln,2),Mn=Xn[0],Dn=Xn[1],Ar=(0,T.YB)(),rr=(rn==null?void 0:rn.format)||ze||"HH:mm:ss",Rr=Uo().isDayjs(u)||typeof u=="number";if(N==="read"){var Xr=(0,g.jsx)("span",{ref:d,children:u?Uo()(u,Rr?void 0:rr).format(rr):"-"});return Ge?Ge(u,(0,i.Z)({mode:N},rn),(0,g.jsx)("span",{children:Xr})):Xr}if(N==="edit"||N==="update"){var zr,kr=rn.disabled,Lo=rn.value,So=io(Lo,rr);if(q){var pa;zr=(0,g.jsx)(f.Q,{onClick:function(){var ko;rn==null||(ko=rn.onOpenChange)===null||ko===void 0||ko.call(rn,!0),Dn(!0)},style:So?{paddingInlineEnd:0}:void 0,label:He,disabled:kr,value:So||Mn?(0,g.jsx)(zi.Z,(0,i.Z)((0,i.Z)({bordered:!1,format:ze,ref:d},rn),{},{placeholder:(pa=rn.placeholder)!==null&&pa!==void 0?pa:Ar.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9"),value:So,onOpenChange:function(ko){var fr;Dn(ko),rn==null||(fr=rn.onOpenChange)===null||fr===void 0||fr.call(rn,ko)},open:Mn})):null,downIcon:So||Mn?!1:void 0,allowClear:!1,ref:Qt})}else zr=(0,g.jsx)(lr.Z.TimePicker,(0,i.Z)((0,i.Z)({ref:d,format:ze,bordered:jt===void 0?!0:!jt},rn),{},{value:So}));return Je?Je(u,(0,i.Z)({mode:N},rn),zr):zr}return null},Ta=function(r,d){var u=r.text,N=r.light,q=r.label,He=r.mode,ze=r.lightLabel,Ge=r.format,Je=r.render,jt=r.renderFormItem,rn=r.plain,Qt=r.fieldProps,Ln=(0,T.YB)(),Xn=(0,w.useState)(!1),Mn=(0,K.Z)(Xn,2),Dn=Mn[0],Ar=Mn[1],rr=(Qt==null?void 0:Qt.format)||Ge||"HH:mm:ss",Rr=Array.isArray(u)?u:[],Xr=(0,K.Z)(Rr,2),zr=Xr[0],kr=Xr[1],Lo=Uo().isDayjs(zr)||typeof zr=="number",So=Uo().isDayjs(kr)||typeof kr=="number",pa=zr?Uo()(zr,Lo?void 0:rr).format(rr):"",Pa=kr?Uo()(kr,So?void 0:rr).format(rr):"";if(He==="read"){var ko=(0,g.jsxs)("div",{ref:d,children:[(0,g.jsx)("div",{children:pa||"-"}),(0,g.jsx)("div",{children:Pa||"-"})]});return Je?Je(u,(0,i.Z)({mode:He},Qt),(0,g.jsx)("span",{children:ko})):ko}if(He==="edit"||He==="update"){var fr=io(Qt.value,rr),jo;if(N){var To=Qt.disabled,qr=Qt.placeholder,na=qr===void 0?[Ln.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9"),Ln.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9")]:qr;jo=(0,g.jsx)(f.Q,{onClick:function(){var Po;Qt==null||(Po=Qt.onOpenChange)===null||Po===void 0||Po.call(Qt,!0),Ar(!0)},style:fr?{paddingInlineEnd:0}:void 0,label:q,disabled:To,placeholder:na,value:fr||Dn?(0,g.jsx)(zi.Z.RangePicker,(0,i.Z)((0,i.Z)({bordered:!1,format:Ge,ref:d},Qt),{},{placeholder:na,value:fr,onOpenChange:function(Po){var Xa;Ar(Po),Qt==null||(Xa=Qt.onOpenChange)===null||Xa===void 0||Xa.call(Qt,Po)},open:Dn})):null,downIcon:fr||Dn?!1:void 0,allowClear:!1,ref:ze})}else jo=(0,g.jsx)(zi.Z.RangePicker,(0,i.Z)((0,i.Z)({ref:d,format:Ge,bordered:rn===void 0?!0:!rn},Qt),{},{value:fr}));return jt?jt(u,(0,i.Z)({mode:He},Qt),jo):jo}return null},Fa=w.forwardRef(Ta),Ua=w.forwardRef(No),li=e(76185),Ji=["radioType","renderFormItem","mode","light","label","render"],qi=["onSearch","onClear","onChange","onBlur","showSearch","autoClearSearchValue","treeData","fetchDataOnSearch","searchValue"],Ll=function(r,d){var u=r.radioType,N=r.renderFormItem,q=r.mode,He=r.light,ze=r.label,Ge=r.render,Je=(0,y.Z)(r,Ji),jt=(0,w.useContext)(te.ZP.ConfigContext),rn=jt.getPrefixCls,Qt=rn("pro-field-tree-select"),Ln=(0,w.useRef)(null),Xn=(0,w.useState)(!1),Mn=(0,K.Z)(Xn,2),Dn=Mn[0],Ar=Mn[1],rr=Je.fieldProps,Rr=rr.onSearch,Xr=rr.onClear,zr=rr.onChange,kr=rr.onBlur,Lo=rr.showSearch,So=rr.autoClearSearchValue,pa=rr.treeData,Pa=rr.fetchDataOnSearch,ko=rr.searchValue,fr=(0,y.Z)(rr,qi),jo=(0,T.YB)(),To=(0,z.aK)((0,i.Z)((0,i.Z)({},Je),{},{defaultKeyWords:ko})),qr=(0,K.Z)(To,3),na=qr[0],Go=qr[1],Po=qr[2],Xa=(0,Hi.Z)(void 0,{onChange:Rr,value:ko}),bi=(0,K.Z)(Xa,2),tl=bi[0],gl=bi[1];(0,w.useImperativeHandle)(d,function(){return(0,i.Z)((0,i.Z)({},Ln.current||{}),{},{fetchData:function(Si){return Po(Si)}})});var ls=(0,w.useMemo)(function(){if(q==="read"){var il=(fr==null?void 0:fr.fieldNames)||{},Si=il.value,ql=Si===void 0?"value":Si,cs=il.label,dc=cs===void 0?"label":cs,qs=il.children,uc=qs===void 0?"children":qs,Ws=new Map,fc=function vc(Es){if(!(Es!=null&&Es.length))return Ws;for(var mc=Es.length,_s=0;_s0?(0,P.jsx)("div",{className:"".concat(bt,"-action ").concat(kt).trim(),children:kn}):null,qe={name:Nt.name,field:Z,index:b,record:R==null||(ht=R.getFieldValue)===null||ht===void 0?void 0:ht.call(R,[tt.listName,ie,Z.name].filter(function(we){return we!==void 0}).flat(1)),fields:O,operation:ve,meta:Ae},_e=(0,ne.zx)(),re=_e.grid,Y=(gt==null?void 0:gt(Pn,qe))||Pn,Be=(Ut==null?void 0:Ut({listDom:(0,P.jsx)("div",{className:"".concat(bt,"-container ").concat(_||""," ").concat(kt||"").trim(),style:(0,y.Z)({width:re?"100%":void 0},Xe),children:Y}),action:ae},qe))||(0,P.jsxs)("div",{className:"".concat(bt,"-item ").concat(kt,` - `).concat(It===void 0&&"".concat(bt,"-item-default"),` - `).concat(It?"".concat(bt,"-item-show-label"):""),style:{display:"flex",alignItems:"flex-end"},children:[(0,P.jsx)("div",{className:"".concat(bt,"-container ").concat(_||""," ").concat(kt).trim(),style:(0,y.Z)({width:re?"100%":void 0},Xe),children:Y}),ae]});return(0,P.jsx)(U.Provider,{value:(0,y.Z)((0,y.Z)({},Z),{},{listName:[tt.listName,ie,Z.name].filter(function(we){return we!==void 0}).flat(1)}),children:Be})},ue=function(he){var ht=(0,H.YB)(),at=he.creatorButtonProps,pt=he.prefixCls,ft=he.children,gt=he.creatorRecord,Ut=he.action,It=he.fields,bt=he.actionGuard,xt=he.max,ve=he.fieldExtraRender,Ze=he.meta,Oe=he.containerClassName,je=he.containerStyle,O=he.onAfterAdd,Ae=he.onAfterRemove,Z=(0,K.useContext)(H.L_),b=Z.hashId,R=(0,K.useRef)(new Map),ie=(0,K.useState)(!1),_=(0,A.Z)(ie,2),Xe=_[0],it=_[1],Ct=(0,K.useMemo)(function(){return It.map(function(dt){var Ft,At;if(!((Ft=R.current)!==null&&Ft!==void 0&&Ft.has(dt.key.toString()))){var Lt;(Lt=R.current)===null||Lt===void 0||Lt.set(dt.key.toString(),(0,$e.x)())}var un=(At=R.current)===null||At===void 0?void 0:At.get(dt.key.toString());return(0,y.Z)((0,y.Z)({},dt),{},{uuid:un})})},[It]),Pt=(0,K.useMemo)(function(){var dt=(0,y.Z)({},Ut),Ft=Ct.length;return bt!=null&&bt.beforeAddRow?dt.add=(0,te.Z)((0,f.Z)().mark(function At(){var Lt,un,Xt,pn,Sn,Gt=arguments;return(0,f.Z)().wrap(function(ln){for(;;)switch(ln.prev=ln.next){case 0:for(Lt=Gt.length,un=new Array(Lt),Xt=0;Xt0&&arguments[0]!==void 0?arguments[0]:{},z=$e.children,g=$e.Wrapper,Ve=(0,I.Z)($e,j);return f?(0,t.jsx)(T.Z,(0,y.Z)((0,y.Z)((0,y.Z)({gutter:8},te),Ve),{},{children:z})):g?(0,t.jsx)(g,{children:z}):z},ColWrapper:function(){var $e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},z=$e.children,g=$e.Wrapper,Ve=(0,I.Z)($e,M),Zt=(0,H.useMemo)(function(){var Le=(0,y.Z)((0,y.Z)({},A),Ve);return typeof Le.span=="undefined"&&typeof Le.xs=="undefined"&&(Le.xs=24),Le},[Ve]);return f?(0,t.jsx)(F.Z,(0,y.Z)((0,y.Z)({},Zt),{},{children:z})):g?(0,t.jsx)(g,{children:z}):z}}},w=function(ne){var f=(0,H.useMemo)(function(){return(0,i.Z)(ne)==="object"?ne:{grid:ne}},[ne]),te=(0,H.useContext)(Ce),A=te.grid,J=te.colProps;return(0,H.useMemo)(function(){return de({grid:!!(A||f.grid),rowProps:f==null?void 0:f.rowProps,colProps:(f==null?void 0:f.colProps)||J,Wrapper:f==null?void 0:f.Wrapper})},[f==null?void 0:f.Wrapper,f.grid,A,JSON.stringify([J,f==null?void 0:f.colProps,f==null?void 0:f.rowProps])])}},81296:function(Dt,De,e){"use strict";e.d(De,{A:function(){return Le}});var i=e(57370),y=e(47513),I=e(58757),T=e(92284),F=e(52024),H=e(37734),t=e(28314),j=e(91169),M=e(60409),Ce=e(32311),de=e(42505),w=e(57414),K=e(87608),ne=e.n(K),f=e(78546),te=e(76810),A=e(70260),J=function(st){var Me;return(0,H.Z)({},st.componentCls,{"&-title":{marginBlockEnd:st.marginXL,fontWeight:"bold"},"&-container":(0,H.Z)({flexWrap:"wrap",maxWidth:"100%"},"> div".concat(st.antCls,"-space-item"),{maxWidth:"100%"}),"&-twoLine":(Me={display:"block",width:"100%"},(0,H.Z)(Me,"".concat(st.componentCls,"-title"),{width:"100%",margin:"8px 0"}),(0,H.Z)(Me,"".concat(st.componentCls,"-container"),{paddingInlineStart:16}),(0,H.Z)(Me,"".concat(st.antCls,"-space-item,").concat(st.antCls,"-form-item"),{width:"100%"}),(0,H.Z)(Me,"".concat(st.antCls,"-form-item"),{"&-control":{display:"flex",alignItems:"center",justifyContent:"flex-end","&-input":{alignItems:"center",justifyContent:"flex-end","&-content":{flex:"none"}}}}),Me)})};function $e(G){return(0,A.Xj)("ProFormGroup",function(st){var Me=(0,i.Z)((0,i.Z)({},st),{},{componentCls:".".concat(G)});return[J(Me)]})}var z=e(35667),g=I.forwardRef(function(G,st){var Me=I.useContext(f.Z),P=Me.groupProps,Re=(0,i.Z)((0,i.Z)({},P),G),ct=Re.children,ee=Re.collapsible,ue=Re.defaultCollapsed,se=Re.style,Ke=Re.labelLayout,ot=Re.title,Fe=ot===void 0?G.label:ot,ut=Re.tooltip,U=Re.align,W=U===void 0?"start":U,me=Re.direction,he=Re.size,ht=he===void 0?32:he,at=Re.titleStyle,pt=Re.titleRender,ft=Re.spaceProps,gt=Re.extra,Ut=Re.autoFocus,It=(0,M.Z)(function(){return ue||!1},{value:G.collapsed,onChange:G.onCollapse}),bt=(0,t.Z)(It,2),xt=bt[0],ve=bt[1],Ze=(0,I.useContext)(de.ZP.ConfigContext),Oe=Ze.getPrefixCls,je=(0,te.zx)(G),O=je.ColWrapper,Ae=je.RowWrapper,Z=Oe("pro-form-group"),b=$e(Z),R=b.wrapSSR,ie=b.hashId,_=ee&&(0,z.jsx)(j.Z,{style:{marginInlineEnd:8},rotate:xt?void 0:90}),Xe=(0,z.jsx)(Ce.G,{label:_?(0,z.jsxs)("div",{children:[_,Fe]}):Fe,tooltip:ut}),it=(0,I.useCallback)(function(tt){var dt=tt.children;return(0,z.jsx)(w.Z,(0,i.Z)((0,i.Z)({},ft),{},{className:ne()("".concat(Z,"-container ").concat(ie),ft==null?void 0:ft.className),size:ht,align:W,direction:me,style:(0,i.Z)({rowGap:0},ft==null?void 0:ft.style),children:dt}))},[W,Z,me,ie,ht,ft]),Ct=pt?pt(Xe,G):Xe,Pt=(0,I.useMemo)(function(){var tt=[],dt=I.Children.toArray(ct).map(function(Ft,At){var Lt;return I.isValidElement(Ft)&&Ft!==null&&Ft!==void 0&&(Lt=Ft.props)!==null&&Lt!==void 0&&Lt.hidden?(tt.push(Ft),null):At===0&&I.isValidElement(Ft)&&Ut?I.cloneElement(Ft,(0,i.Z)((0,i.Z)({},Ft.props),{},{autoFocus:Ut})):Ft});return[(0,z.jsx)(Ae,{Wrapper:it,children:dt},"children"),tt.length>0?(0,z.jsx)("div",{style:{display:"none"},children:tt}):null]},[ct,Ae,it,Ut]),Nt=(0,t.Z)(Pt,2),Vt=Nt[0],kt=Nt[1];return R((0,z.jsx)(O,{children:(0,z.jsxs)("div",{className:ne()(Z,ie,(0,H.Z)({},"".concat(Z,"-twoLine"),Ke==="twoLine")),style:se,ref:st,children:[kt,(Fe||ut||gt)&&(0,z.jsx)("div",{className:"".concat(Z,"-title ").concat(ie).trim(),style:at,onClick:function(){ve(!xt)},children:gt?(0,z.jsxs)("div",{style:{display:"flex",width:"100%",alignItems:"center",justifyContent:"space-between"},children:[Ct,(0,z.jsx)("span",{onClick:function(dt){return dt.stopPropagation()},children:gt})]}):Ct}),(0,z.jsx)("div",{style:{display:ee&&xt?"none":void 0},children:Vt})]})}))});g.displayName="ProForm-Group";var Ve=g,Zt=e(97099);function Le(G){return(0,z.jsx)(T.I,(0,i.Z)({layout:"vertical",submitter:{render:function(Me,P){return P.reverse()}},contentRender:function(Me,P){return(0,z.jsxs)(z.Fragment,{children:[Me,P]})}},G))}Le.Group=Ve,Le.useForm=y.Z.useForm,Le.Item=Zt.Z,Le.useWatch=y.Z.useWatch,Le.ErrorList=y.Z.ErrorList,Le.Provider=y.Z.Provider,Le.useFormInstance=y.Z.useFormInstance,Le.EditOrReadOnlyContext=F.A},54637:function(Dt,De,e){"use strict";e.d(De,{Q:function(){return f}});var i=e(37734),y=e(79999),I=e(10130),T=e(25846),F=e(42505),H=e(87608),t=e.n(H),j=e(58757),M=e(57370),Ce=e(70260),de=function(A){var J,$e,z,g;return(0,i.Z)({},A.componentCls,(g={display:"inline-flex",gap:A.marginXXS,alignItems:"center",height:"30px",paddingBlock:0,paddingInline:8,fontSize:A.fontSize,lineHeight:"30px",borderRadius:"2px",cursor:"pointer","&:hover":{backgroundColor:A.colorBgTextHover},"&-active":(0,i.Z)({paddingBlock:0,paddingInline:8,backgroundColor:A.colorBgTextHover},"&".concat(A.componentCls,"-allow-clear:hover:not(").concat(A.componentCls,"-disabled)"),(J={},(0,i.Z)(J,"".concat(A.componentCls,"-arrow"),{display:"none"}),(0,i.Z)(J,"".concat(A.componentCls,"-close"),{display:"inline-flex"}),J))},(0,i.Z)(g,"".concat(A.antCls,"-select"),(0,i.Z)({},"".concat(A.antCls,"-select-clear"),{borderRadius:"50%"})),(0,i.Z)(g,"".concat(A.antCls,"-picker"),(0,i.Z)({},"".concat(A.antCls,"-picker-clear"),{borderRadius:"50%"})),(0,i.Z)(g,"&-icon",($e={color:A.colorIcon,transition:"color 0.3s",fontSize:12,verticalAlign:"middle"},(0,i.Z)($e,"&".concat(A.componentCls,"-close"),{display:"none",fontSize:12,alignItems:"center",justifyContent:"center",color:A.colorTextPlaceholder,borderRadius:"50%"}),(0,i.Z)($e,"&:hover",{color:A.colorIconHover}),$e)),(0,i.Z)(g,"&-disabled",(0,i.Z)({color:A.colorTextPlaceholder,cursor:"not-allowed"},"".concat(A.componentCls,"-icon"),{color:A.colorTextPlaceholder})),(0,i.Z)(g,"&-small",(z={height:"24px",paddingBlock:0,paddingInline:4,fontSize:A.fontSizeSM,lineHeight:"24px"},(0,i.Z)(z,"&".concat(A.componentCls,"-active"),{paddingBlock:0,paddingInline:8}),(0,i.Z)(z,"".concat(A.componentCls,"-icon"),{paddingBlock:0,paddingInline:0}),(0,i.Z)(z,"".concat(A.componentCls,"-close"),{marginBlockStart:"-2px",paddingBlock:4,paddingInline:4,fontSize:"6px"}),z)),(0,i.Z)(g,"&-bordered",{height:"32px",paddingBlock:0,paddingInline:8,border:"".concat(A.lineWidth,"px solid ").concat(A.colorBorder),borderRadius:"@border-radius-base"}),(0,i.Z)(g,"&-bordered&-small",{height:"24px",paddingBlock:0,paddingInline:8}),(0,i.Z)(g,"&-bordered&-active",{backgroundColor:A.colorBgContainer}),g))};function w(te){return(0,Ce.Xj)("FieldLabel",function(A){var J=(0,M.Z)((0,M.Z)({},A),{},{componentCls:".".concat(te)});return[de(J)]})}var K=e(35667),ne=function(A,J){var $e,z,g,Ve,Zt=A.label,Le=A.onClear,G=A.value,st=A.disabled,Me=A.onLabelClick,P=A.ellipsis,Re=A.placeholder,ct=A.className,ee=A.formatter,ue=A.bordered,se=A.style,Ke=A.downIcon,ot=A.allowClear,Fe=ot===void 0?!0:ot,ut=(F.ZP===null||F.ZP===void 0||($e=F.ZP.useConfig)===null||$e===void 0?void 0:$e.call(F.ZP))||{componentSize:"middle"},U=ut.componentSize,W=U,me=(0,j.useContext)(F.ZP.ConfigContext),he=me.getPrefixCls,ht=he("pro-core-field-label"),at=w(ht),pt=at.wrapSSR,ft=at.hashId,gt=(0,T.YB)(),Ut=(0,j.useRef)(null),It=(0,j.useRef)(null);(0,j.useImperativeHandle)(J,function(){return{labelRef:It,clearRef:Ut}});var bt=function(Oe){return Oe.every(function(je){return typeof je=="string"})?Oe.join(","):Oe.map(function(je,O){var Ae=O===Oe.length-1?"":",";return typeof je=="string"?(0,K.jsxs)("span",{children:[je,Ae]},O):(0,K.jsxs)("span",{style:{display:"flex"},children:[je,Ae]},O)})},xt=function(Oe){return ee?ee(Oe):Array.isArray(Oe)?bt(Oe):Oe},ve=function(Oe,je){if(je!=null&&je!==""&&(!Array.isArray(je)||je.length)){var O,Ae,Z=Oe?(0,K.jsxs)("span",{onClick:function(){Me==null||Me()},className:"".concat(ht,"-text"),children:[Oe,": "]}):"",b=xt(je);if(!P)return(0,K.jsxs)("span",{style:{display:"inline-flex",alignItems:"center"},children:[Z,xt(je)]});var R=41,ie=function(){var it=Array.isArray(je)&&je.length>1,Ct=gt.getMessage("form.lightFilter.itemUnit","\u9879");return typeof b=="string"&&b.length>R&&it?"...".concat(je.length).concat(Ct):""},_=ie();return(0,K.jsxs)("span",{title:typeof b=="string"?b:void 0,style:{display:"inline-flex",alignItems:"center"},children:[Z,(0,K.jsx)("span",{style:{paddingInlineStart:4,display:"flex"},children:typeof b=="string"?b==null||(O=b.toString())===null||O===void 0||(Ae=O.substr)===null||Ae===void 0?void 0:Ae.call(O,0,R):b}),_]})}return Oe||Re};return pt((0,K.jsxs)("span",{className:t()(ht,ft,"".concat(ht,"-").concat((z=(g=A.size)!==null&&g!==void 0?g:W)!==null&&z!==void 0?z:"middle"),(Ve={},(0,i.Z)(Ve,"".concat(ht,"-active"),!!G||G===0),(0,i.Z)(Ve,"".concat(ht,"-disabled"),st),(0,i.Z)(Ve,"".concat(ht,"-bordered"),ue),(0,i.Z)(Ve,"".concat(ht,"-allow-clear"),Fe),Ve),ct),style:se,ref:It,onClick:function(){var Oe;A==null||(Oe=A.onClick)===null||Oe===void 0||Oe.call(A)},children:[ve(Zt,G),(G||G===0)&&Fe&&(0,K.jsx)(y.Z,{role:"button",title:gt.getMessage("form.lightFilter.clear","\u6E05\u9664"),className:t()("".concat(ht,"-icon"),ft,"".concat(ht,"-close")),onClick:function(Oe){st||Le==null||Le(),Oe.stopPropagation()},ref:Ut}),Ke!==!1?Ke!=null?Ke:(0,K.jsx)(I.Z,{className:t()("".concat(ht,"-icon"),ft,"".concat(ht,"-arrow"))}):null]}))},f=j.forwardRef(ne)},27675:function(Dt,De,e){"use strict";e.d(De,{M:function(){return J}});var i=e(57370),y=e(37734),I=e(42505),T=e(33181),F=e(58757),H=e(25846),t=e(12562),j=e(87608),M=e.n(j),Ce=e(70260),de=function(z){return(0,y.Z)({},z.componentCls,{display:"flex",justifyContent:"space-between",paddingBlock:8,paddingInlineStart:8,paddingInlineEnd:8,borderBlockStart:"1px solid ".concat(z.colorSplit)})};function w($e){return(0,Ce.Xj)("DropdownFooter",function(z){var g=(0,i.Z)((0,i.Z)({},z),{},{componentCls:".".concat($e)});return[de(g)]})}var K=e(35667),ne=function(z){var g=(0,H.YB)(),Ve=z.onClear,Zt=z.onConfirm,Le=z.disabled,G=z.footerRender,st=(0,F.useContext)(I.ZP.ConfigContext),Me=st.getPrefixCls,P=Me("pro-core-dropdown-footer"),Re=w(P),ct=Re.wrapSSR,ee=Re.hashId,ue=[(0,K.jsx)(t.ZP,{style:{visibility:Ve?"visible":"hidden"},type:"link",size:"small",disabled:Le,onClick:function(ot){Ve&&Ve(ot),ot.stopPropagation()},children:g.getMessage("form.lightFilter.clear","\u6E05\u9664")},"clear"),(0,K.jsx)(t.ZP,{"data-type":"confirm",type:"primary",size:"small",onClick:Zt,disabled:Le,children:g.getMessage("form.lightFilter.confirm","\u786E\u8BA4")},"confirm")];if(G===!1||(G==null?void 0:G(Zt,Ve))===!1)return null;var se=(G==null?void 0:G(Zt,Ve))||ue;return ct((0,K.jsx)("div",{className:M()(P,ee),onClick:function(ot){return ot.target.getAttribute("data-type")!=="confirm"&&ot.stopPropagation()},children:se}))},f=e(1643),te=function(z){var g;return g={},(0,y.Z)(g,"".concat(z.componentCls,"-label"),{cursor:"pointer"}),(0,y.Z)(g,"".concat(z.componentCls,"-overlay"),{minWidth:"200px",marginBlockStart:"4px"}),(0,y.Z)(g,"".concat(z.componentCls,"-content"),{paddingBlock:16,paddingInline:16}),g};function A($e){return(0,Ce.Xj)("FilterDropdown",function(z){var g=(0,i.Z)((0,i.Z)({},z),{},{componentCls:".".concat($e)});return[te(g)]})}var J=function(z){var g,Ve=z.children,Zt=z.label,Le=z.footer,G=z.open,st=z.onOpenChange,Me=z.disabled,P=z.onVisibleChange,Re=z.visible,ct=z.footerRender,ee=z.placement,ue=(0,F.useContext)(I.ZP.ConfigContext),se=ue.getPrefixCls,Ke=se("pro-core-field-dropdown"),ot=A(Ke),Fe=ot.wrapSSR,ut=ot.hashId,U=(0,f.X)(G||Re||!1,st||P),W=(0,F.useRef)(null);return Fe((0,K.jsx)(T.Z,(0,i.Z)((0,i.Z)({placement:ee,trigger:["click"]},U),{},{overlayInnerStyle:{padding:0},content:(0,K.jsxs)("div",{ref:W,className:M()("".concat(Ke,"-overlay"),(g={},(0,y.Z)(g,"".concat(Ke,"-overlay-").concat(ee),ee),(0,y.Z)(g,"hashId",ut),g)),children:[(0,K.jsx)(I.ZP,{getPopupContainer:function(){return W.current||document.body},children:(0,K.jsx)("div",{className:"".concat(Ke,"-content ").concat(ut).trim(),children:Ve})}),Le&&(0,K.jsx)(ne,(0,i.Z)({disabled:Me,footerRender:ct},Le))]}),children:(0,K.jsx)("span",{className:"".concat(Ke,"-label ").concat(ut).trim(),children:Zt})})))}},32311:function(Dt,De,e){"use strict";e.d(De,{G:function(){return J}});var i=e(57370),y=e(37734),I=e(60698),T=e(58757),F={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"}}]},name:"info-circle",theme:"outlined"},H=F,t=e(17202),j=function(z,g){return T.createElement(t.Z,(0,I.Z)({},z,{ref:g,icon:H}))},M=T.forwardRef(j),Ce=e(42505),de=e(74820),w=e(87608),K=e.n(w),ne=e(70260),f=function(z){return(0,y.Z)({},z.componentCls,{display:"inline-flex",alignItems:"center",maxWidth:"100%","&-icon":{display:"block",marginInlineStart:"4px",cursor:"pointer","&:hover":{color:z.colorPrimary}},"&-title":{display:"inline-flex",flex:"1"},"&-subtitle ":{marginInlineStart:8,color:z.colorTextSecondary,fontWeight:"normal",fontSize:z.fontSize,whiteSpace:"nowrap"},"&-title-ellipsis":{overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",wordBreak:"keep-all"}})};function te($e){return(0,ne.Xj)("LabelIconTip",function(z){var g=(0,i.Z)((0,i.Z)({},z),{},{componentCls:".".concat($e)});return[f(g)]})}var A=e(35667),J=T.memo(function($e){var z=$e.label,g=$e.tooltip,Ve=$e.ellipsis,Zt=$e.subTitle,Le=(0,T.useContext)(Ce.ZP.ConfigContext),G=Le.getPrefixCls,st=G("pro-core-label-tip"),Me=te(st),P=Me.wrapSSR,Re=Me.hashId;if(!g&&!Zt)return(0,A.jsx)(A.Fragment,{children:z});var ct=typeof g=="string"||T.isValidElement(g)?{title:g}:g,ee=(ct==null?void 0:ct.icon)||(0,A.jsx)(M,{});return P((0,A.jsxs)("div",{className:K()(st,Re),onMouseDown:function(se){return se.stopPropagation()},onMouseLeave:function(se){return se.stopPropagation()},onMouseMove:function(se){return se.stopPropagation()},children:[(0,A.jsx)("div",{className:K()("".concat(st,"-title"),Re,(0,y.Z)({},"".concat(st,"-title-ellipsis"),Ve)),children:z}),Zt&&(0,A.jsx)("div",{className:"".concat(st,"-subtitle ").concat(Re).trim(),children:Zt}),g&&(0,A.jsx)(de.Z,(0,i.Z)((0,i.Z)({},ct),{},{children:(0,A.jsx)("span",{className:"".concat(st,"-icon ").concat(Re).trim(),children:ee})}))]}))})},7916:function(Dt,De,e){"use strict";e.d(De,{J:function(){return y}});var i=e(58757),y=i.createContext({})},24435:function(Dt,De,e){"use strict";e.d(De,{Cl:function(){return j},lp:function(){return K}});var i=e(38790),y=e(86977),I=e.n(y),T=e(1667),F=e.n(T),H=e(3187),t=e(15797);I().extend(F());var j={time:"HH:mm:ss",timeRange:"HH:mm:ss",date:"YYYY-MM-DD",dateWeek:"YYYY-wo",dateMonth:"YYYY-MM",dateQuarter:"YYYY-[Q]Q",dateYear:"YYYY",dateRange:"YYYY-MM-DD",dateTime:"YYYY-MM-DD HH:mm:ss",dateTimeRange:"YYYY-MM-DD HH:mm:ss"};function M(ne){return Object.prototype.toString.call(ne)==="[object Object]"}function Ce(ne){if(M(ne)===!1)return!1;var f=ne.constructor;if(f===void 0)return!0;var te=f.prototype;return!(M(te)===!1||te.hasOwnProperty("isPrototypeOf")===!1)}var de=function(f){return!!(f!=null&&f._isAMomentObject)},w=function(f,te,A){if(!te)return f;if(I().isDayjs(f)||de(f)){if(te==="number")return f.valueOf();if(te==="string")return f.format(j[A]||"YYYY-MM-DD HH:mm:ss");if(typeof te=="string"&&te!=="string")return f.format(te);if(typeof te=="function")return te(f,A)}return f},K=function ne(f,te,A,J,$e){var z={};return typeof window=="undefined"||(0,i.Z)(f)!=="object"||(0,t.k)(f)||f instanceof Blob||Array.isArray(f)?f:(Object.keys(f).forEach(function(g){var Ve=$e?[$e,g].flat(1):[g],Zt=(0,H.Z)(A,Ve)||"text",Le="text",G;typeof Zt=="string"?Le=Zt:Zt&&(Le=Zt.valueType,G=Zt.dateFormat);var st=f[g];if(!((0,t.k)(st)&&J)){if(Ce(st)&&!Array.isArray(st)&&!I().isDayjs(st)&&!de(st)){z[g]=ne(st,te,A,J,[g]);return}if(Array.isArray(st)){z[g]=st.map(function(Me,P){return I().isDayjs(Me)||de(Me)?w(Me,G||te,Le):ne(Me,te,A,J,[g,"".concat(P)].flat(1))});return}z[g]=w(st,G||te,Le)}}),z)}},52496:function(Dt,De,e){"use strict";e.d(De,{Au:function(){return M},KW:function(){return j}});var i=e(74632),y=e(79290),I=e(58757),T=e(31989),F=e(75799),H=function(de,w,K){return(0,T.A)(de,w,K)};function t(Ce,de){var w=(0,I.useRef)();return H(Ce,w.current,de)||(w.current=Ce),w.current}function j(Ce,de,w){(0,I.useEffect)(Ce,t(de||[],w))}function M(Ce,de,w,K){var ne=(0,F.D)((0,y.Z)((0,i.Z)().mark(function f(){return(0,i.Z)().wrap(function(A){for(;;)switch(A.prev=A.next){case 0:Ce();case 1:case"end":return A.stop()}},f)})),K||16);(0,I.useEffect)(function(){ne.run()},t(de||[],w))}},66631:function(Dt,De,e){"use strict";e.d(De,{d:function(){return y}});var i=e(58757),y=function(T){var F=(0,i.useRef)(T);return F.current=T,F}},99947:function(Dt,De,e){"use strict";e.d(De,{D:function(){return y}});var i=e(58757),y=function(T){var F=(0,i.useRef)();return(0,i.useEffect)(function(){F.current=T}),F.current}},31989:function(Dt,De,e){"use strict";e.d(De,{A:function(){return I}});var i=e(57988),y=e(38790);function I(T,F,H,t){if(T===F)return!0;if(T&&F&&(0,y.Z)(T)==="object"&&(0,y.Z)(F)==="object"){if(T.constructor!==F.constructor)return!1;var j,M,Ce;if(Array.isArray(T)){if(j=T.length,j!=F.length)return!1;for(M=j;M--!==0;)if(!I(T[M],F[M],H,t))return!1;return!0}if(T instanceof Map&&F instanceof Map){if(T.size!==F.size)return!1;var de=(0,i.Z)(T.entries()),w;try{for(de.s();!(w=de.n()).done;)if(M=w.value,!F.has(M[0]))return!1}catch(J){de.e(J)}finally{de.f()}var K=(0,i.Z)(T.entries()),ne;try{for(K.s();!(ne=K.n()).done;)if(M=ne.value,!I(M[1],F.get(M[0]),H,t))return!1}catch(J){K.e(J)}finally{K.f()}return!0}if(T instanceof Set&&F instanceof Set){if(T.size!==F.size)return!1;var f=(0,i.Z)(T.entries()),te;try{for(f.s();!(te=f.n()).done;)if(M=te.value,!F.has(M[0]))return!1}catch(J){f.e(J)}finally{f.f()}return!0}if(ArrayBuffer.isView(T)&&ArrayBuffer.isView(F)){if(j=T.length,j!=F.length)return!1;for(M=j;M--!==0;)if(T[M]!==F[M])return!1;return!0}if(T.constructor===RegExp)return T.source===F.source&&T.flags===F.flags;if(T.valueOf!==Object.prototype.valueOf&&T.valueOf)return T.valueOf()===F.valueOf();if(T.toString!==Object.prototype.toString&&T.toString)return T.toString()===F.toString();if(Ce=Object.keys(T),j=Ce.length,j!==Object.keys(F).length)return!1;for(M=j;M--!==0;)if(!Object.prototype.hasOwnProperty.call(F,Ce[M]))return!1;for(M=j;M--!==0;){var A=Ce[M];if(!(H!=null&&H.includes(A))&&!(A==="_owner"&&T.$$typeof)&&!I(T[A],F[A],H,t))return t&&console.log(A),!1}return!0}return T!==T&&F!==F}},15797:function(Dt,De,e){"use strict";e.d(De,{k:function(){return i}});var i=function(I){return I==null}},85734:function(Dt,De,e){"use strict";e.d(De,{T:function(){return I}});var i=e(57370),y=e(38790),I=function(){for(var F={},H=arguments.length,t=new Array(H),j=0;j0&&arguments[0]!==void 0?arguments[0]:21;if(typeof window=="undefined"||!window.crypto)return(i+=1).toFixed(0);for(var H="",t=crypto.getRandomValues(new Uint8Array(F));F--;){var j=63&t[F];H+=j<36?j.toString(36):j<62?(j-26).toString(36).toUpperCase():j<63?"_":"-"}return H},I=function(){return typeof window=="undefined"?y():window.crypto&&window.crypto.randomUUID&&typeof crypto.randomUUID=="function"?crypto.randomUUID():y()}},64410:function(Dt,De,e){"use strict";e.d(De,{h:function(){return i}});function i(y){if(typeof y=="function"){for(var I=arguments.length,T=new Array(I>1?I-1:0),F=1;F1&&arguments[1]!==void 0?arguments[1]:{};const{getContainer:t=()=>window,callback:j,duration:M=450}=H,Ce=t(),de=(0,I.Z)(Ce,!0),w=Date.now(),K=()=>{const f=Date.now()-w,te=y(f>M?M:f,de,F,M);(0,I.F)(Ce)?Ce.scrollTo(window.pageXOffset,te):Ce instanceof Document||Ce.constructor.name==="HTMLDocument"?Ce.documentElement.scrollTop=te:Ce.scrollTop=te,f{const j=f=>{const{keyCode:te}=f;te===i.Z.ENTER&&f.preventDefault()},M=f=>{const{keyCode:te}=f,{onClick:A}=H;te===i.Z.ENTER&&A&&A()},{style:Ce,noStyle:de,disabled:w}=H,K=I(H,["style","noStyle","disabled"]);let ne={};return de||(ne=Object.assign({},T)),w&&(ne.pointerEvents="none"),ne=Object.assign(Object.assign({},ne),Ce),y.createElement("div",Object.assign({role:"button",tabIndex:0,ref:t},K,{onKeyDown:j,onKeyUp:M,style:ne}))});De.Z=F},38914:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return ot}});var i=e(87608),y=e.n(i),I=e(17598),T=e(58757),F=e(1878),H=e(37047),t=e(61836),j=e(57793),M=e(78330),Ce=e(98251),de=e(22151),w=e(52628);const K=new j.E4("antStatusProcessing",{"0%":{transform:"scale(0.8)",opacity:.5},"100%":{transform:"scale(2.4)",opacity:0}}),ne=new j.E4("antZoomBadgeIn",{"0%":{transform:"scale(0) translate(50%, -50%)",opacity:0},"100%":{transform:"scale(1) translate(50%, -50%)"}}),f=new j.E4("antZoomBadgeOut",{"0%":{transform:"scale(1) translate(50%, -50%)"},"100%":{transform:"scale(0) translate(50%, -50%)",opacity:0}}),te=new j.E4("antNoWrapperZoomBadgeIn",{"0%":{transform:"scale(0)",opacity:0},"100%":{transform:"scale(1)"}}),A=new j.E4("antNoWrapperZoomBadgeOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0)",opacity:0}}),J=new j.E4("antBadgeLoadingCircle",{"0%":{transformOrigin:"50%"},"100%":{transform:"translate(50%, -50%) rotate(360deg)",transformOrigin:"50%"}}),$e=Fe=>{const{componentCls:ut,iconCls:U,antCls:W,badgeShadowSize:me,badgeHeightSm:he,motionDurationSlow:ht,badgeStatusSize:at,marginXS:pt}=Fe,ft=`${W}-scroll-number`,gt=(0,Ce.Z)(Fe,(Ut,It)=>{let{darkColor:bt}=It;return{[`&${ut} ${ut}-color-${Ut}`]:{background:bt,[`&:not(${ut}-count)`]:{color:bt}}}});return{[ut]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,M.Wf)(Fe)),{position:"relative",display:"inline-block",width:"fit-content",lineHeight:1,[`${ut}-count`]:{zIndex:Fe.badgeZIndex,minWidth:Fe.badgeHeight,height:Fe.badgeHeight,color:Fe.badgeTextColor,fontWeight:Fe.badgeFontWeight,fontSize:Fe.badgeFontSize,lineHeight:`${Fe.badgeHeight}px`,whiteSpace:"nowrap",textAlign:"center",background:Fe.badgeColor,borderRadius:Fe.badgeHeight/2,boxShadow:`0 0 0 ${me}px ${Fe.badgeShadowColor}`,transition:`background ${Fe.motionDurationMid}`,a:{color:Fe.badgeTextColor},"a:hover":{color:Fe.badgeTextColor},"a:hover &":{background:Fe.badgeColorHover}},[`${ut}-count-sm`]:{minWidth:he,height:he,fontSize:Fe.badgeFontSizeSm,lineHeight:`${he}px`,borderRadius:he/2},[`${ut}-multiple-words`]:{padding:`0 ${Fe.paddingXS}px`,bdi:{unicodeBidi:"plaintext"}},[`${ut}-dot`]:{zIndex:Fe.badgeZIndex,width:Fe.badgeDotSize,minWidth:Fe.badgeDotSize,height:Fe.badgeDotSize,background:Fe.badgeColor,borderRadius:"100%",boxShadow:`0 0 0 ${me}px ${Fe.badgeShadowColor}`},[`${ut}-dot${ft}`]:{transition:`background ${ht}`},[`${ut}-count, ${ut}-dot, ${ft}-custom-component`]:{position:"absolute",top:0,insetInlineEnd:0,transform:"translate(50%, -50%)",transformOrigin:"100% 0%",[`&${U}-spin`]:{animationName:J,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear"}},[`&${ut}-status`]:{lineHeight:"inherit",verticalAlign:"baseline",[`${ut}-status-dot`]:{position:"relative",top:-1,display:"inline-block",width:at,height:at,verticalAlign:"middle",borderRadius:"50%"},[`${ut}-status-success`]:{backgroundColor:Fe.colorSuccess},[`${ut}-status-processing`]:{overflow:"visible",color:Fe.colorPrimary,backgroundColor:Fe.colorPrimary,"&::after":{position:"absolute",top:0,insetInlineStart:0,width:"100%",height:"100%",borderWidth:me,borderStyle:"solid",borderColor:"inherit",borderRadius:"50%",animationName:K,animationDuration:Fe.badgeProcessingDuration,animationIterationCount:"infinite",animationTimingFunction:"ease-in-out",content:'""'}},[`${ut}-status-default`]:{backgroundColor:Fe.colorTextPlaceholder},[`${ut}-status-error`]:{backgroundColor:Fe.colorError},[`${ut}-status-warning`]:{backgroundColor:Fe.colorWarning},[`${ut}-status-text`]:{marginInlineStart:pt,color:Fe.colorText,fontSize:Fe.fontSize}}}),gt),{[`${ut}-zoom-appear, ${ut}-zoom-enter`]:{animationName:ne,animationDuration:Fe.motionDurationSlow,animationTimingFunction:Fe.motionEaseOutBack,animationFillMode:"both"},[`${ut}-zoom-leave`]:{animationName:f,animationDuration:Fe.motionDurationSlow,animationTimingFunction:Fe.motionEaseOutBack,animationFillMode:"both"},[`&${ut}-not-a-wrapper`]:{[`${ut}-zoom-appear, ${ut}-zoom-enter`]:{animationName:te,animationDuration:Fe.motionDurationSlow,animationTimingFunction:Fe.motionEaseOutBack},[`${ut}-zoom-leave`]:{animationName:A,animationDuration:Fe.motionDurationSlow,animationTimingFunction:Fe.motionEaseOutBack},[`&:not(${ut}-status)`]:{verticalAlign:"middle"},[`${ft}-custom-component, ${ut}-count`]:{transform:"none"},[`${ft}-custom-component, ${ft}`]:{position:"relative",top:"auto",display:"block",transformOrigin:"50% 50%"}},[`${ft}`]:{overflow:"hidden",[`${ft}-only`]:{position:"relative",display:"inline-block",height:Fe.badgeHeight,transition:`all ${Fe.motionDurationSlow} ${Fe.motionEaseOutBack}`,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden",[`> p${ft}-only-unit`]:{height:Fe.badgeHeight,margin:0,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden"}},[`${ft}-symbol`]:{verticalAlign:"top"}},"&-rtl":{direction:"rtl",[`${ut}-count, ${ut}-dot, ${ft}-custom-component`]:{transform:"translate(-50%, -50%)"}}})}},z=Fe=>{const{fontSize:ut,lineHeight:U,fontSizeSM:W,lineWidth:me,marginXS:he,colorBorderBg:ht}=Fe,at=Math.round(ut*U),pt=me,ft="auto",gt=at-2*pt,Ut=Fe.colorBgContainer,It="normal",bt=W,xt=Fe.colorError,ve=Fe.colorErrorHover,Ze=ut,Oe=W/2,je=W,O=W/2;return(0,de.TS)(Fe,{badgeFontHeight:at,badgeShadowSize:pt,badgeZIndex:ft,badgeHeight:gt,badgeTextColor:Ut,badgeFontWeight:It,badgeFontSize:bt,badgeColor:xt,badgeColorHover:ve,badgeShadowColor:ht,badgeHeightSm:Ze,badgeDotSize:Oe,badgeFontSizeSm:je,badgeStatusSize:O,badgeProcessingDuration:"1.2s",badgeRibbonOffset:he,badgeRibbonCornerTransform:"scaleY(0.75)",badgeRibbonCornerFilter:"brightness(75%)"})};var g=(0,w.Z)("Badge",Fe=>{const ut=z(Fe);return[$e(ut)]});const Ve=Fe=>{const{antCls:ut,badgeFontHeight:U,marginXS:W,badgeRibbonOffset:me}=Fe,he=`${ut}-ribbon`,ht=`${ut}-ribbon-wrapper`,at=(0,Ce.Z)(Fe,(pt,ft)=>{let{darkColor:gt}=ft;return{[`&${he}-color-${pt}`]:{background:gt,color:gt}}});return{[`${ht}`]:{position:"relative"},[`${he}`]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,M.Wf)(Fe)),{position:"absolute",top:W,padding:`0 ${Fe.paddingXS}px`,color:Fe.colorPrimary,lineHeight:`${U}px`,whiteSpace:"nowrap",backgroundColor:Fe.colorPrimary,borderRadius:Fe.borderRadiusSM,[`${he}-text`]:{color:Fe.colorTextLightSolid},[`${he}-corner`]:{position:"absolute",top:"100%",width:me,height:me,color:"currentcolor",border:`${me/2}px solid`,transform:Fe.badgeRibbonCornerTransform,transformOrigin:"top",filter:Fe.badgeRibbonCornerFilter}}),at),{[`&${he}-placement-end`]:{insetInlineEnd:-me,borderEndEndRadius:0,[`${he}-corner`]:{insetInlineEnd:0,borderInlineEndColor:"transparent",borderBlockEndColor:"transparent"}},[`&${he}-placement-start`]:{insetInlineStart:-me,borderEndStartRadius:0,[`${he}-corner`]:{insetInlineStart:0,borderBlockEndColor:"transparent",borderInlineStartColor:"transparent"}},"&-rtl":{direction:"rtl"}})}};var Zt=(0,w.Z)(["Badge","Ribbon"],Fe=>{const ut=z(Fe);return[Ve(ut)]}),G=Fe=>{const{className:ut,prefixCls:U,style:W,color:me,children:he,text:ht,placement:at="end"}=Fe,{getPrefixCls:pt,direction:ft}=T.useContext(t.E_),gt=pt("ribbon",U),Ut=(0,F.o2)(me,!1),It=y()(gt,`${gt}-placement-${at}`,{[`${gt}-rtl`]:ft==="rtl",[`${gt}-color-${me}`]:Ut},ut),[bt,xt]=Zt(gt),ve={},Ze={};return me&&!Ut&&(ve.background=me,Ze.color=me),bt(T.createElement("div",{className:y()(`${gt}-wrapper`,xt)},he,T.createElement("div",{className:y()(It,xt),style:Object.assign(Object.assign({},ve),W)},T.createElement("span",{className:`${gt}-text`},ht),T.createElement("div",{className:`${gt}-corner`,style:Ze}))))};function st(Fe){let{prefixCls:ut,value:U,current:W,offset:me=0}=Fe,he;return me&&(he={position:"absolute",top:`${me}00%`,left:0}),T.createElement("span",{style:he,className:y()(`${ut}-only-unit`,{current:W})},U)}function Me(Fe,ut,U){let W=Fe,me=0;for(;(W+10)%10!==ut;)W+=U,me+=U;return me}function P(Fe){const{prefixCls:ut,count:U,value:W}=Fe,me=Number(W),he=Math.abs(U),[ht,at]=T.useState(me),[pt,ft]=T.useState(he),gt=()=>{at(me),ft(he)};T.useEffect(()=>{const bt=setTimeout(()=>{gt()},1e3);return()=>{clearTimeout(bt)}},[me]);let Ut,It;if(ht===me||Number.isNaN(me)||Number.isNaN(ht))Ut=[T.createElement(st,Object.assign({},Fe,{key:me,current:!0}))],It={transition:"none"};else{Ut=[];const bt=me+10,xt=[];for(let Oe=me;Oe<=bt;Oe+=1)xt.push(Oe);const ve=xt.findIndex(Oe=>Oe%10===ht);Ut=xt.map((Oe,je)=>{const O=Oe%10;return T.createElement(st,Object.assign({},Fe,{key:Oe,value:O,offset:je-ve,current:je===ve}))});const Ze=pt{const{prefixCls:U,count:W,className:me,motionClassName:he,style:ht,title:at,show:pt,component:ft="sup",children:gt}=Fe,Ut=Re(Fe,["prefixCls","count","className","motionClassName","style","title","show","component","children"]),{getPrefixCls:It}=T.useContext(t.E_),bt=It("scroll-number",U),xt=Object.assign(Object.assign({},Ut),{"data-show":pt,style:ht,className:y()(bt,me,he),title:at});let ve=W;if(W&&Number(W)%1===0){const Ze=String(W).split("");ve=T.createElement("bdi",null,Ze.map((Oe,je)=>T.createElement(P,{prefixCls:bt,count:Number(W),value:Oe,key:Ze.length-je})))}return ht&&ht.borderColor&&(xt.style=Object.assign(Object.assign({},ht),{boxShadow:`0 0 0 1px ${ht.borderColor} inset`})),gt?(0,H.Tm)(gt,Ze=>({className:y()(`${bt}-custom-component`,Ze==null?void 0:Ze.className,he)})):T.createElement(ft,Object.assign({},xt,{ref:ut}),ve)}),ue=function(Fe,ut){var U={};for(var W in Fe)Object.prototype.hasOwnProperty.call(Fe,W)&&ut.indexOf(W)<0&&(U[W]=Fe[W]);if(Fe!=null&&typeof Object.getOwnPropertySymbols=="function")for(var me=0,W=Object.getOwnPropertySymbols(Fe);me{var U,W,me,he,ht;const{prefixCls:at,scrollNumberPrefixCls:pt,children:ft,status:gt,text:Ut,color:It,count:bt=null,overflowCount:xt=99,dot:ve=!1,size:Ze="default",title:Oe,offset:je,style:O,className:Ae,rootClassName:Z,classNames:b,styles:R,showZero:ie=!1}=Fe,_=ue(Fe,["prefixCls","scrollNumberPrefixCls","children","status","text","color","count","overflowCount","dot","size","title","offset","style","className","rootClassName","classNames","styles","showZero"]),{getPrefixCls:Xe,direction:it,badge:Ct}=T.useContext(t.E_),Pt=Xe("badge",at),[Nt,Vt]=g(Pt),kt=bt>xt?`${xt}+`:bt,tt=kt==="0"||kt===0,dt=bt===null||tt&&!ie,Ft=(gt!=null||It!=null)&&dt,At=ve&&!tt,Lt=At?"":kt,un=(0,T.useMemo)(()=>(Lt==null||Lt===""||tt&&!ie)&&!At,[Lt,tt,ie,At]),Xt=(0,T.useRef)(bt);un||(Xt.current=bt);const pn=Xt.current,Sn=(0,T.useRef)(Lt);un||(Sn.current=Lt);const Gt=Sn.current,an=(0,T.useRef)(At);un||(an.current=At);const ln=(0,T.useMemo)(()=>{if(!je)return Object.assign(Object.assign({},Ct==null?void 0:Ct.style),O);const _e={marginTop:je[1]};return it==="rtl"?_e.left=parseInt(je[0],10):_e.right=-parseInt(je[0],10),Object.assign(Object.assign(Object.assign({},_e),Ct==null?void 0:Ct.style),O)},[it,je,O,Ct==null?void 0:Ct.style]),Pn=Oe!=null?Oe:typeof pn=="string"||typeof pn=="number"?pn:void 0,zn=un||!Ut?null:T.createElement("span",{className:`${Pt}-status-text`},Ut),qn=!pn||typeof pn!="object"?void 0:(0,H.Tm)(pn,_e=>({style:Object.assign(Object.assign({},ln),_e.style)})),yr=(0,F.o2)(It,!1),kn=y()(b==null?void 0:b.indicator,(U=Ct==null?void 0:Ct.classNames)===null||U===void 0?void 0:U.indicator,{[`${Pt}-status-dot`]:Ft,[`${Pt}-status-${gt}`]:!!gt,[`${Pt}-color-${It}`]:yr}),ae={};It&&!yr&&(ae.color=It,ae.background=It);const qe=y()(Pt,{[`${Pt}-status`]:Ft,[`${Pt}-not-a-wrapper`]:!ft,[`${Pt}-rtl`]:it==="rtl"},Ae,Z,Ct==null?void 0:Ct.className,(W=Ct==null?void 0:Ct.classNames)===null||W===void 0?void 0:W.root,b==null?void 0:b.root,Vt);if(!ft&&Ft){const _e=ln.color;return Nt(T.createElement("span",Object.assign({},_,{className:qe,style:Object.assign(Object.assign(Object.assign({},R==null?void 0:R.root),(me=Ct==null?void 0:Ct.styles)===null||me===void 0?void 0:me.root),ln)}),T.createElement("span",{className:kn,style:Object.assign(Object.assign(Object.assign({},R==null?void 0:R.indicator),(he=Ct==null?void 0:Ct.styles)===null||he===void 0?void 0:he.indicator),ae)}),Ut&&T.createElement("span",{style:{color:_e},className:`${Pt}-status-text`},Ut)))}return Nt(T.createElement("span",Object.assign({ref:ut},_,{className:qe,style:Object.assign(Object.assign({},(ht=Ct==null?void 0:Ct.styles)===null||ht===void 0?void 0:ht.root),R==null?void 0:R.root)}),ft,T.createElement(I.ZP,{visible:!un,motionName:`${Pt}-zoom`,motionAppear:!1,motionDeadline:1e3},_e=>{let{className:re,ref:Y}=_e;var Be,we;const vt=Xe("scroll-number",pt),Se=an.current,X=y()(b==null?void 0:b.indicator,(Be=Ct==null?void 0:Ct.classNames)===null||Be===void 0?void 0:Be.indicator,{[`${Pt}-dot`]:Se,[`${Pt}-count`]:!Se,[`${Pt}-count-sm`]:Ze==="small",[`${Pt}-multiple-words`]:!Se&&Gt&&Gt.toString().length>1,[`${Pt}-status-${gt}`]:!!gt,[`${Pt}-color-${It}`]:yr});let Ne=Object.assign(Object.assign(Object.assign({},R==null?void 0:R.indicator),(we=Ct==null?void 0:Ct.styles)===null||we===void 0?void 0:we.indicator),ln);return It&&!yr&&(Ne=Ne||{},Ne.background=It),T.createElement(ee,{prefixCls:vt,show:!un,motionClassName:re,className:X,count:Gt,title:Pn,style:Ne,key:"scrollNumber",ref:Y},qn)}),zn))},Ke=T.forwardRef(se);Ke.Ribbon=G;var ot=Ke},61494:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return re}});var i=e(29140),y=e(58757),I=e(99142),T=e(25755),F=e(91169),H=e(87608),t=e.n(H),j=e(60698),M=e(28314),Ce=e(47075),de=e(18510),w=e(25092),K=e(16226),ne=e(51729),f=e(60409),te=y.createContext(null),A=te,J=e(38790),$e=e(37734),z=e(57370),g="__rc_cascader_search_mark__",Ve=function(Be,we,vt){var Se=vt.label;return we.some(function(X){return String(X[Se]).toLowerCase().includes(Be.toLowerCase())})},Zt=function(Be,we,vt,Se){return we.map(function(X){return X[Se.label]}).join(" / ")},Le=function(Y,Be,we,vt,Se,X){var Ne=Se.filter,St=Ne===void 0?Ve:Ne,xe=Se.render,fe=xe===void 0?Zt:xe,L=Se.limit,D=L===void 0?50:L,x=Se.sort;return y.useMemo(function(){var oe=[];if(!Y)return[];function be(Ie,Ye){Ie.forEach(function(Ue){if(!(!x&&D>0&&oe.length>=D)){var et=[].concat((0,i.Z)(Ye),[Ue]),Ht=Ue[we.children];if((!Ht||Ht.length===0||X)&&St(Y,et,{label:we.label})){var mt;oe.push((0,z.Z)((0,z.Z)({},Ue),{},(mt={},(0,$e.Z)(mt,we.label,fe(Y,et,vt,we)),(0,$e.Z)(mt,g,et),(0,$e.Z)(mt,we.children,void 0),mt)))}Ht&&be(Ue[we.children],et)}})}return be(Be,[]),x&&oe.sort(function(Ie,Ye){return x(Ie[g],Ye[g],Y,we)}),D>0?oe.slice(0,D):oe},[Y,Be,we,vt,fe,X,St,x,D])},G="__RC_CASCADER_SPLIT__",st="SHOW_PARENT",Me="SHOW_CHILD";function P(Y){return Y.join(G)}function Re(Y){return Y.map(P)}function ct(Y){return Y.split(G)}function ee(Y){var Be=Y||{},we=Be.label,vt=Be.value,Se=Be.children,X=vt||"value";return{label:we||"label",value:X,key:X,children:Se||"children"}}function ue(Y,Be){var we,vt;return(we=Y.isLeaf)!==null&&we!==void 0?we:!((vt=Y[Be.children])!==null&&vt!==void 0&&vt.length)}function se(Y){var Be=Y.parentElement;if(Be){var we=Y.offsetTop-Be.offsetTop;we-Be.scrollTop<0?Be.scrollTo({top:we}):we+Y.offsetHeight-Be.scrollTop>Be.offsetHeight&&Be.scrollTo({top:we+Y.offsetHeight-Be.offsetHeight})}}function Ke(Y,Be){return Y.map(function(we){var vt;return(vt=we[g])===null||vt===void 0?void 0:vt.map(function(Se){return Se[Be.value]})})}function ot(Y,Be,we){var vt=new Set(Y),Se=Be();return Y.filter(function(X){var Ne=Se[X],St=Ne?Ne.parent:null,xe=Ne?Ne.children:null;return Ne&&Ne.node.disabled?!0:we===Me?!(xe&&xe.some(function(fe){return fe.key&&vt.has(fe.key)})):!(St&&!St.node.disabled&&vt.has(St.key))})}function Fe(Y,Be,we){for(var vt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,Se=Be,X=[],Ne=function(){var fe,L,D,x=Y[St],oe=(fe=Se)===null||fe===void 0?void 0:fe.findIndex(function(Ie){var Ye=Ie[we.value];return vt?String(Ye)===String(x):Ye===x}),be=oe!==-1?(L=Se)===null||L===void 0?void 0:L[oe]:null;X.push({value:(D=be==null?void 0:be[we.value])!==null&&D!==void 0?D:x,index:oe,option:be}),Se=be==null?void 0:be[we.children]},St=0;St1){var wt=be.slice(0,-1);et(wt)}else fe(!1)},Cn=function(){var wt,fn=((wt=Ye[Ie])===null||wt===void 0?void 0:wt[we.children])||[],zt=fn.find(function(yn){return!yn.disabled});if(zt){var cn=[].concat((0,i.Z)(be),[zt[we.value]]);et(cn)}};y.useImperativeHandle(Y,function(){return{onKeyDown:function(wt){var fn=wt.which;switch(fn){case bt.Z.UP:case bt.Z.DOWN:{var zt=0;fn===bt.Z.UP?zt=-1:fn===bt.Z.DOWN&&(zt=1),zt!==0&&Ht(zt);break}case bt.Z.LEFT:{if(xe)break;D?Cn():mt();break}case bt.Z.RIGHT:{if(xe)break;D?mt():Cn();break}case bt.Z.BACKSPACE:{xe||mt();break}case bt.Z.ENTER:{if(be.length){var cn=Ye[Ie],yn=(cn==null?void 0:cn[g])||[];yn.length?X(yn.map(function(Fn){return Fn[we.value]}),yn[yn.length-1]):X(be,Ye[Ie])}break}case bt.Z.ESC:fe(!1),L&&wt.stopPropagation()}},onKeyUp:function(){}}})},ve=y.forwardRef(function(Y,Be){var we,vt,Se,X,Ne=(0,de.lk)(),St=Ne.prefixCls,xe=Ne.multiple,fe=Ne.searchValue,L=Ne.toggleOpen,D=Ne.notFoundContent,x=Ne.direction,oe=Ne.open,be=y.useRef(),Ie=x==="rtl",Ye=y.useContext(A),Ue=Ye.options,et=Ye.values,Ht=Ye.halfValues,mt=Ye.fieldNames,Cn=Ye.changeOnSelect,bn=Ye.onSelect,wt=Ye.searchOptions,fn=Ye.dropdownPrefixCls,zt=Ye.loadData,cn=Ye.expandTrigger,yn=fn||St,Fn=y.useState([]),Yn=(0,M.Z)(Fn,2),Zn=Yn[0],Kn=Yn[1],vr=function(Un){if(!(!zt||fe)){var wr=Fe(Un,Ue,mt),or=wr.map(function(Sr){var ao=Sr.option;return ao}),Or=or[or.length-1];if(Or&&!ue(Or,mt)){var fo=P(Un);Kn(function(Sr){return[].concat((0,i.Z)(Sr),[fo])}),zt(or)}}};y.useEffect(function(){Zn.length&&Zn.forEach(function(Qn){var Un=ct(Qn),wr=Fe(Un,Ue,mt,!0).map(function(Or){var fo=Or.option;return fo}),or=wr[wr.length-1];(!or||or[mt.children]||ue(or,mt))&&Kn(function(Or){return Or.filter(function(fo){return fo!==Qn})})})},[Ue,Zn,mt]);var jn=y.useMemo(function(){return new Set(Re(et))},[et]),On=y.useMemo(function(){return new Set(Re(Ht))},[Ht]),_n=It(),Gn=(0,M.Z)(_n,2),er=Gn[0],Cr=Gn[1],Lr=function(Un){Cr(Un),vr(Un)},Hr=function(Un){var wr=Un.disabled,or=ue(Un,mt);return!wr&&(or||Cn||xe)},Hn=function(Un,wr){var or=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;bn(Un),!xe&&(wr||Cn&&(cn==="hover"||or))&&L(!1)},Pr=y.useMemo(function(){return fe?wt:Ue},[fe,wt,Ue]),oo=y.useMemo(function(){for(var Qn=[{options:Pr}],Un=Pr,wr=Ke(Un,mt),or=function(){var ao=er[Or],Vr=Un.find(function(Do,sa){return(wr[sa]?P(wr[sa]):Do[mt.value])===ao}),Ir=Vr==null?void 0:Vr[mt.children];if(!(Ir!=null&&Ir.length))return"break";Un=Ir,Qn.push({options:Ir})},Or=0;Or":Fn,Zn=Y.loadingIcon,Kn=Y.children,vr=Y.dropdownMatchSelectWidth,jn=vr===void 0?!1:vr,On=Y.showCheckedStrategy,_n=On===void 0?st:On,Gn=(0,Ce.Z)(Y,Ae),er=(0,w.ZP)(we),Cr=!!D,Lr=(0,f.Z)(Ne,{value:St,postState:b}),Hr=(0,M.Z)(Lr,2),Hn=Hr[0],Pr=Hr[1],oo=y.useMemo(function(){return ee(X)},[JSON.stringify(X)]),Ur=y.useMemo(function(){return Ye||[]},[Ye]),co=W(Ur,oo),Br=y.useCallback(function(Tr){var ur=co();return Tr.map(function(to){var ra=ur[to].nodes;return ra.map(function(v){return v[oo.value]})})},[co,oo]),_r=(0,f.Z)("",{value:x,postState:function(ur){return ur||""}}),xo=(0,M.Z)(_r,2),br=xo[0],Qn=xo[1],Un=function(ur,to){Qn(ur),to.source!=="blur"&&oe&&oe(ur)},wr=ht(be),or=(0,M.Z)(wr,2),Or=or[0],fo=or[1],Sr=Le(br,Ur,oo,Ue||Se,fo,xe),ao=me(Ur,oo),Vr=y.useMemo(function(){var Tr=ao(Hn),ur=(0,M.Z)(Tr,2),to=ur[0],ra=ur[1];if(!Cr||!Hn.length)return[to,[],ra];var v=Re(to),V=co(),Q=(0,K.S)(v,!0,V),Pe=Q.checkedKeys,ge=Q.halfCheckedKeys;return[Br(Pe),Br(ge),ra]},[Cr,Hn,co,Br,ao]),Ir=(0,M.Z)(Vr,3),Do=Ir[0],sa=Ir[1],fa=Ir[2],Oa=y.useMemo(function(){var Tr=Re(Do),ur=ot(Tr,co,_n);return[].concat((0,i.Z)(fa),(0,i.Z)(Br(ur)))},[Do,co,Br,fa,_n]),Oo=ut(Oa,Ur,oo,Cr,L),zo=(0,ne.Z)(function(Tr){if(Pr(Tr),fe){var ur=b(Tr),to=ur.map(function(V){return Fe(V,Ur,oo).map(function(Q){return Q.option})}),ra=Cr?ur:ur[0],v=Cr?to:to[0];fe(ra,v)}}),va=(0,ne.Z)(function(Tr){if(Qn(""),!Cr)zo(Tr);else{var ur=P(Tr),to=Re(Do),ra=Re(sa),v=to.includes(ur),V=fa.some(function(Nn){return P(Nn)===ur}),Q=Do,Pe=fa;if(V&&!v)Pe=fa.filter(function(Nn){return P(Nn)!==ur});else{var ge=v?to.filter(function(Nn){return Nn!==ur}):[].concat((0,i.Z)(to),[ur]),yt=co(),nt;if(v){var qt=(0,K.S)(ge,{checked:!1,halfCheckedKeys:ra},yt);nt=qt.checkedKeys}else{var Jt=(0,K.S)(ge,!0,yt);nt=Jt.checkedKeys}var hn=ot(nt,co,_n);Q=Br(hn)}zo([].concat((0,i.Z)(Pe),(0,i.Z)(Q)))}}),vi=function(ur,to){if(to.type==="clear"){zo([]);return}var ra=to.values[0],v=ra.valueCells;va(v)},ka=mt!==void 0?mt:Ht,ye=bn||Cn,Qe=zt||fn,Tt=function(ur){cn==null||cn(ur),yn==null||yn(ur)},en=y.useMemo(function(){return{options:Ur,fieldNames:oo,values:Do,halfValues:sa,changeOnSelect:xe,onSelect:va,checkable:D,searchOptions:Sr,dropdownPrefixCls:Ue,loadData:et,expandTrigger:Ie,expandIcon:Yn,loadingIcon:Zn,dropdownMenuColumnStyle:wt}},[Ur,oo,Do,sa,xe,va,D,Sr,Ue,et,Ie,Yn,Zn,wt]),Bn=!(br?Sr:Ur).length,Nr=br&&fo.matchInputWidth||Bn?{}:{minWidth:"auto"};return y.createElement(A.Provider,{value:en},y.createElement(de.Ac,(0,j.Z)({},Gn,{ref:Be,id:er,prefixCls:Se,dropdownMatchSelectWidth:jn,dropdownStyle:Nr,displayValues:Oo,onDisplayValuesChange:vi,mode:Cr?"multiple":void 0,searchValue:br,onSearch:Un,showSearch:Or,OptionList:Ze,emptyOptions:Bn,open:ka,dropdownClassName:ye,placement:Qe,onDropdownVisibleChange:Tt,getRawInputElement:function(){return Kn}})))});R.SHOW_PARENT=st,R.SHOW_CHILD=Me;var ie=R,_=ie,Xe=e(98186),it=e(90881),Ct=e(15018),Pt=e(41496),Nt=e(61836),Vt=e(10401),kt=e(92428),tt=e(58785),dt=e(81496),Ft=e(92493),At=e(25639),Lt=e(61698),un=e(29701),Xt=e(43528),pn=e(7316),Sn=e(78330),Gt=e(64493),an=e(52628);const ln=Y=>{const{prefixCls:Be,componentCls:we,antCls:vt}=Y,Se=`${we}-menu-item`,X=` - &${Se}-expand ${Se}-expand-icon, - ${Se}-loading-icon - `,Ne=Math.round((Y.controlHeight-Y.fontSize*Y.lineHeight)/2);return[{[we]:{width:Y.controlWidth}},{[`${we}-dropdown`]:[(0,pn.C2)(`${Be}-checkbox`,Y),{[`&${vt}-select-dropdown`]:{padding:0}},{[we]:{"&-checkbox":{top:0,marginInlineEnd:Y.paddingXS},"&-menus":{display:"flex",flexWrap:"nowrap",alignItems:"flex-start",[`&${we}-menu-empty`]:{[`${we}-menu`]:{width:"100%",height:"auto",[Se]:{color:Y.colorTextDisabled}}}},"&-menu":{flexGrow:1,minWidth:Y.controlItemWidth,height:Y.dropdownHeight,margin:0,padding:Y.paddingXXS,overflow:"auto",verticalAlign:"top",listStyle:"none","-ms-overflow-style":"-ms-autohiding-scrollbar","&:not(:last-child)":{borderInlineEnd:`${Y.lineWidth}px ${Y.lineType} ${Y.colorSplit}`},"&-item":Object.assign(Object.assign({},Sn.vS),{display:"flex",flexWrap:"nowrap",alignItems:"center",padding:`${Ne}px ${Y.paddingSM}px`,lineHeight:Y.lineHeight,cursor:"pointer",transition:`all ${Y.motionDurationMid}`,borderRadius:Y.borderRadiusSM,"&:hover":{background:Y.controlItemBgHover},"&-disabled":{color:Y.colorTextDisabled,cursor:"not-allowed","&:hover":{background:"transparent"},[X]:{color:Y.colorTextDisabled}},[`&-active:not(${Se}-disabled)`]:{["&, &:hover"]:{fontWeight:Y.fontWeightStrong,backgroundColor:Y.controlItemBgActive}},"&-content":{flex:"auto"},[X]:{marginInlineStart:Y.paddingXXS,color:Y.colorTextDescription,fontSize:Y.fontSizeIcon},"&-keyword":{color:Y.colorHighlight}})}}}]},{[`${we}-dropdown-rtl`]:{direction:"rtl"}},(0,Gt.c)(Y)]};var Pn=(0,an.Z)("Cascader",Y=>[ln(Y)],{controlWidth:184,controlItemWidth:111,dropdownHeight:180}),zn=function(Y,Be){var we={};for(var vt in Y)Object.prototype.hasOwnProperty.call(Y,vt)&&Be.indexOf(vt)<0&&(we[vt]=Y[vt]);if(Y!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Se=0,vt=Object.getOwnPropertySymbols(Y);Sexe===0?[St]:[].concat((0,i.Z)(Ne),[Be,St]),[]),Se=[];let X=0;return vt.forEach((Ne,St)=>{const xe=X+Ne.length;let fe=Y.slice(X,xe);X=xe,St%2===1&&(fe=y.createElement("span",{className:`${we}-menu-item-keyword`,key:`separator-${St}`},fe)),Se.push(fe)}),Se}const ae=(Y,Be,we,vt)=>{const Se=[],X=Y.toLowerCase();return Be.forEach((Ne,St)=>{St!==0&&Se.push(" / ");let xe=Ne[vt.label];const fe=typeof xe;(fe==="string"||fe==="number")&&(xe=kn(String(xe),X,we)),Se.push(xe)}),Se},qe=y.forwardRef((Y,Be)=>{const{prefixCls:we,size:vt,disabled:Se,className:X,rootClassName:Ne,multiple:St,bordered:xe=!0,transitionName:fe,choiceTransitionName:L="",popupClassName:D,dropdownClassName:x,expandIcon:oe,placement:be,showSearch:Ie,allowClear:Ye=!0,notFoundContent:Ue,direction:et,getPopupContainer:Ht,status:mt,showArrow:Cn,builtinPlacements:bn,style:wt}=Y,fn=zn(Y,["prefixCls","size","disabled","className","rootClassName","multiple","bordered","transitionName","choiceTransitionName","popupClassName","dropdownClassName","expandIcon","placement","showSearch","allowClear","notFoundContent","direction","getPopupContainer","status","showArrow","builtinPlacements","style"]),zt=(0,Xe.Z)(fn,["suffixIcon"]),{getPopupContainer:cn,getPrefixCls:yn,renderEmpty:Fn,direction:Yn,popupOverflow:Zn,cascader:Kn}=y.useContext(Nt.E_),vr=et||Yn,jn=vr==="rtl",{status:On,hasFeedback:_n,isFormItemInput:Gn,feedbackIcon:er}=y.useContext(dt.aM),Cr=(0,Pt.F)(On,mt),Lr=Ue||(Fn==null?void 0:Fn("Cascader"))||y.createElement(Vt.Z,{componentName:"Cascader"}),Hr=yn(),Hn=yn("select",we),Pr=yn("cascader",we),[oo,Ur]=(0,Ft.Z)(Hn),[co]=Pn(Pr),{compactSize:Br,compactItemClassnames:_r}=(0,Xt.ri)(Hn,et),xo=t()(D||x,`${Pr}-dropdown`,{[`${Pr}-dropdown-rtl`]:vr==="rtl"},Ne,Ur),br=y.useMemo(()=>{if(!Ie)return Ie;let Oo={render:ae};return typeof Ie=="object"&&(Oo=Object.assign(Object.assign({},Oo),Ie)),Oo},[Ie]),Qn=(0,tt.Z)(Oo=>{var zo;return(zo=vt!=null?vt:Br)!==null&&zo!==void 0?zo:Oo}),Un=y.useContext(kt.Z),wr=Se!=null?Se:Un;let or=oe;oe||(or=jn?y.createElement(I.Z,null):y.createElement(F.Z,null));const Or=y.createElement("span",{className:`${Hn}-menu-item-loading-icon`},y.createElement(T.Z,{spin:!0})),fo=y.useMemo(()=>St?y.createElement("span",{className:`${Pr}-checkbox-inner`}):!1,[St]),Sr=(0,Lt.Z)(Y.suffixIcon,Cn),{suffixIcon:ao,removeIcon:Vr,clearIcon:Ir}=(0,un.Z)(Object.assign(Object.assign({},Y),{hasFeedback:_n,feedbackIcon:er,showSuffixIcon:Sr,multiple:St,prefixCls:Hn,componentName:"Cascader"})),Do=y.useMemo(()=>be!==void 0?be:jn?"bottomRight":"bottomLeft",[be,jn]),sa=(0,At.Z)(bn,Zn),fa=Ye===!0?{clearIcon:Ir}:Ye,Oa=y.createElement(_,Object.assign({prefixCls:Hn,className:t()(!we&&Pr,{[`${Hn}-lg`]:Qn==="large",[`${Hn}-sm`]:Qn==="small",[`${Hn}-rtl`]:jn,[`${Hn}-borderless`]:!xe,[`${Hn}-in-form-item`]:Gn},(0,Pt.Z)(Hn,Cr,_n),_r,Kn==null?void 0:Kn.className,X,Ne,Ur),disabled:wr,style:Object.assign(Object.assign({},Kn==null?void 0:Kn.style),wt)},zt,{builtinPlacements:sa,direction:vr,placement:Do,notFoundContent:Lr,allowClear:fa,showSearch:br,expandIcon:or,suffixIcon:ao,removeIcon:Vr,loadingIcon:Or,checkable:fo,dropdownClassName:xo,dropdownPrefixCls:we||Pr,choiceTransitionName:(0,it.m)(Hr,"",L),transitionName:(0,it.m)(Hr,"slide-up",fe),getPopupContainer:Ht||cn,ref:Be}));return co(oo(Oa))}),_e=(0,Ct.Z)(qe);qe.SHOW_PARENT=yr,qe.SHOW_CHILD=qn,qe._InternalPanelDoNotUseOrYouWillBeFired=_e;var re=qe},31188:function(Dt,De,e){"use strict";var i=e(91334);De.Z=i.Z},96905:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return Ze}});var i=e(19688),y=e(15018),I=e(60698),T=e(58757),F={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z"}}]},name:"calendar",theme:"outlined"},H=F,t=e(17202),j=function(je,O){return T.createElement(t.Z,(0,I.Z)({},je,{ref:O,icon:H}))},M=T.forwardRef(j),Ce={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:"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"}}]},name:"clock-circle",theme:"outlined"},de=Ce,w=function(je,O){return T.createElement(t.Z,(0,I.Z)({},je,{ref:O,icon:de}))},K=T.forwardRef(w),ne=e(79999),f={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z"}}]},name:"swap-right",theme:"outlined"},te=f,A=function(je,O){return T.createElement(t.Z,(0,I.Z)({},je,{ref:O,icon:te}))},J=T.forwardRef(A),$e=e(87608),z=e.n($e),g=e(72108),Ve=e(41496),Zt=e(61836),Le=e(92428),G=e(58785),st=e(81496),Me=e(29487),P=e(43528),Re=e(7056),ct=e(8455);function ee(Oe,je,O){return O!==void 0?O:je==="year"&&Oe.lang.yearPlaceholder?Oe.lang.yearPlaceholder:je==="quarter"&&Oe.lang.quarterPlaceholder?Oe.lang.quarterPlaceholder:je==="month"&&Oe.lang.monthPlaceholder?Oe.lang.monthPlaceholder:je==="week"&&Oe.lang.weekPlaceholder?Oe.lang.weekPlaceholder:je==="time"&&Oe.timePickerLocale.placeholder?Oe.timePickerLocale.placeholder:Oe.lang.placeholder}function ue(Oe,je,O){return O!==void 0?O:je==="year"&&Oe.lang.yearPlaceholder?Oe.lang.rangeYearPlaceholder:je==="quarter"&&Oe.lang.quarterPlaceholder?Oe.lang.rangeQuarterPlaceholder:je==="month"&&Oe.lang.monthPlaceholder?Oe.lang.rangeMonthPlaceholder:je==="week"&&Oe.lang.weekPlaceholder?Oe.lang.rangeWeekPlaceholder:je==="time"&&Oe.timePickerLocale.placeholder?Oe.timePickerLocale.rangePlaceholder:Oe.lang.rangePlaceholder}function se(Oe,je){const O={adjustX:1,adjustY:1};switch(je){case"bottomLeft":return{points:["tl","bl"],offset:[0,4],overflow:O};case"bottomRight":return{points:["tr","br"],offset:[0,4],overflow:O};case"topLeft":return{points:["bl","tl"],offset:[0,-4],overflow:O};case"topRight":return{points:["br","tr"],offset:[0,-4],overflow:O};default:return{points:Oe==="rtl"?["tr","br"]:["tl","bl"],offset:[0,4],overflow:O}}}function Ke(Oe){return Oe?Array.isArray(Oe)?Oe:[Oe]:[]}function ot(Oe){const{format:je,picker:O,showHour:Ae,showMinute:Z,showSecond:b,use12Hours:R}=Oe,ie=Ke(je)[0],_=Object.assign({},Oe);return je&&Array.isArray(je)&&(_.format=ie),ie&&typeof ie=="string"&&(!ie.includes("s")&&b===void 0&&(_.showSecond=!1),!ie.includes("m")&&Z===void 0&&(_.showMinute=!1),!ie.includes("H")&&!ie.includes("h")&&!ie.includes("K")&&!ie.includes("k")&&Ae===void 0&&(_.showHour=!1),(ie.includes("a")||ie.includes("A"))&&R===void 0&&(_.use12Hours=!0)),O==="time"?_:(typeof ie=="function"&&delete _.format,{showTime:_})}function Fe(Oe,je,O){if(Oe===!1)return!1;const Ae={clearIcon:je!=null?je:O};return typeof Oe=="object"?Object.assign(Object.assign({},Ae),Oe):Ae}var ut=e(12562);function U(Oe){return T.createElement(ut.ZP,Object.assign({size:"small",type:"primary"},Oe))}var me={button:U},he=function(Oe,je){var O={};for(var Ae in Oe)Object.prototype.hasOwnProperty.call(Oe,Ae)&&je.indexOf(Ae)<0&&(O[Ae]=Oe[Ae]);if(Oe!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Z=0,Ae=Object.getOwnPropertySymbols(Oe);Z{const{prefixCls:Z,getPopupContainer:b,className:R,placement:ie,size:_,disabled:Xe,bordered:it=!0,placeholder:Ct,popupClassName:Pt,dropdownClassName:Nt,status:Vt,clearIcon:kt,allowClear:tt}=O,dt=he(O,["prefixCls","getPopupContainer","className","placement","size","disabled","bordered","placeholder","popupClassName","dropdownClassName","status","clearIcon","allowClear"]),Ft=T.useRef(null),{getPrefixCls:At,direction:Lt,getPopupContainer:un}=(0,T.useContext)(Zt.E_),Xt=At("picker",Z),{compactSize:pn,compactItemClassnames:Sn}=(0,P.ri)(Xt,Lt),{format:Gt,showTime:an,picker:ln}=O,Pn=At(),[zn,qn]=(0,ct.ZP)(Xt),yr=Object.assign(Object.assign({},an?ot(Object.assign({format:Gt,picker:ln},an)):{}),ln==="time"?ot(Object.assign(Object.assign({format:Gt},O),{picker:ln})):{}),kn=(0,G.Z)(X=>{var Ne;return(Ne=_!=null?_:pn)!==null&&Ne!==void 0?Ne:X}),ae=T.useContext(Le.Z),qe=Xe!=null?Xe:ae,_e=(0,T.useContext)(st.aM),{hasFeedback:re,status:Y,feedbackIcon:Be}=_e,we=T.createElement(T.Fragment,null,ln==="time"?T.createElement(K,null):T.createElement(M,null),re&&Be);(0,T.useImperativeHandle)(Ae,()=>({focus:()=>{var X;return(X=Ft.current)===null||X===void 0?void 0:X.focus()},blur:()=>{var X;return(X=Ft.current)===null||X===void 0?void 0:X.blur()}}));const[vt]=(0,Me.Z)("Calendar",Re.Z),Se=Object.assign(Object.assign({},vt),O.locale);return zn(T.createElement(g.Sq,Object.assign({separator:T.createElement("span",{"aria-label":"to",className:`${Xt}-separator`},T.createElement(J,null)),disabled:qe,ref:Ft,dropdownAlign:se(Lt,ie),placeholder:ue(Se,ln,Ct),suffixIcon:we,prevIcon:T.createElement("span",{className:`${Xt}-prev-icon`}),nextIcon:T.createElement("span",{className:`${Xt}-next-icon`}),superPrevIcon:T.createElement("span",{className:`${Xt}-super-prev-icon`}),superNextIcon:T.createElement("span",{className:`${Xt}-super-next-icon`}),transitionName:`${Pn}-slide-up`},dt,yr,{className:z()({[`${Xt}-${kn}`]:kn,[`${Xt}-borderless`]:!it},(0,Ve.Z)(Xt,(0,Ve.F)(Y,Vt),re),qn,Sn,R),locale:Se.lang,prefixCls:Xt,getPopupContainer:b||un,generateConfig:Oe,components:me,direction:Lt,dropdownClassName:z()(qn,Pt||Nt),allowClear:Fe(tt,kt,T.createElement(ne.Z,null))})))})}var at=function(Oe,je){var O={};for(var Ae in Oe)Object.prototype.hasOwnProperty.call(Oe,Ae)&&je.indexOf(Ae)<0&&(O[Ae]=Oe[Ae]);if(Oe!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Z=0,Ae=Object.getOwnPropertySymbols(Oe);Z{const{prefixCls:Vt,getPopupContainer:kt,style:tt,className:dt,rootClassName:Ft,size:At,bordered:Lt=!0,placement:un,placeholder:Xt,popupClassName:pn,dropdownClassName:Sn,disabled:Gt,status:an,clearIcon:ln,allowClear:Pn}=Pt,zn=at(Pt,["prefixCls","getPopupContainer","style","className","rootClassName","size","bordered","placement","placeholder","popupClassName","dropdownClassName","disabled","status","clearIcon","allowClear"]),{getPrefixCls:qn,direction:yr,getPopupContainer:kn,[it]:ae}=(0,T.useContext)(Zt.E_),qe=qn("picker",Vt),{compactSize:_e,compactItemClassnames:re}=(0,P.ri)(qe,yr),Y=T.useRef(null),{format:Be,showTime:we}=Pt,[vt,Se]=(0,ct.ZP)(qe);(0,T.useImperativeHandle)(Nt,()=>({focus:()=>{var Ht;return(Ht=Y.current)===null||Ht===void 0?void 0:Ht.focus()},blur:()=>{var Ht;return(Ht=Y.current)===null||Ht===void 0?void 0:Ht.blur()}}));const X={showToday:!0};let Ne={};_&&(Ne.picker=_);const St=_||Pt.picker;Ne=Object.assign(Object.assign(Object.assign({},Ne),we?ot(Object.assign({format:Be,picker:St},we)):{}),St==="time"?ot(Object.assign(Object.assign({format:Be},Pt),{picker:St})):{});const xe=qn(),fe=(0,G.Z)(Ht=>{var mt;return(mt=At!=null?At:_e)!==null&&mt!==void 0?mt:Ht}),L=T.useContext(Le.Z),D=Gt!=null?Gt:L,x=(0,T.useContext)(st.aM),{hasFeedback:oe,status:be,feedbackIcon:Ie}=x,Ye=T.createElement(T.Fragment,null,St==="time"?T.createElement(K,null):T.createElement(M,null),oe&&Ie),[Ue]=(0,Me.Z)("DatePicker",Re.Z),et=Object.assign(Object.assign({},Ue),Pt.locale);return vt(T.createElement(g.ZP,Object.assign({ref:Y,placeholder:ee(et,St,Xt),suffixIcon:Ye,dropdownAlign:se(yr,un),prevIcon:T.createElement("span",{className:`${qe}-prev-icon`}),nextIcon:T.createElement("span",{className:`${qe}-next-icon`}),superPrevIcon:T.createElement("span",{className:`${qe}-super-prev-icon`}),superNextIcon:T.createElement("span",{className:`${qe}-super-next-icon`}),transitionName:`${xe}-slide-up`},X,zn,Ne,{locale:et.lang,className:z()({[`${qe}-${fe}`]:fe,[`${qe}-borderless`]:!Lt},(0,Ve.Z)(qe,(0,Ve.F)(be,an),oe),Se,re,ae==null?void 0:ae.className,dt,Ft),style:Object.assign(Object.assign({},ae==null?void 0:ae.style),tt),prefixCls:qe,getPopupContainer:kt||kn,generateConfig:Oe,components:me,direction:yr,disabled:D,dropdownClassName:z()(Se,Ft,pn||Sn),allowClear:Fe(Pn,ln,T.createElement(ne.Z,null))})))});return Xe&&(Ct.displayName=Xe),Ct}const O=je(),Ae=je("week","WeekPicker"),Z=je("month","MonthPicker"),b=je("year","YearPicker"),R=je("time","TimePicker"),ie=je("quarter","QuarterPicker");return{DatePicker:O,WeekPicker:Ae,MonthPicker:Z,YearPicker:b,TimePicker:R,QuarterPicker:ie}}const ft=null;function gt(Oe){const{DatePicker:je,WeekPicker:O,MonthPicker:Ae,YearPicker:Z,TimePicker:b,QuarterPicker:R}=pt(Oe),ie=ht(Oe),_=je;return _.WeekPicker=O,_.MonthPicker=Ae,_.YearPicker=Z,_.RangePicker=ie,_.TimePicker=b,_.QuarterPicker=R,_}var Ut=gt;const It=Ut(i.Z);function bt(Oe){const je=se(Oe.direction,Oe.placement);return je.overflow.adjustY=!1,je.overflow.adjustX=!1,Object.assign(Object.assign({},Oe),{dropdownAlign:je})}const xt=(0,y.Z)(It,"picker",null,bt);It._InternalPanelDoNotUseOrYouWillBeFired=xt;const ve=(0,y.Z)(It.RangePicker,"picker",null,bt);It._InternalRangePanelDoNotUseOrYouWillBeFired=ve,It.generatePicker=Ut;var Ze=It},8455:function(Dt,De,e){"use strict";e.d(De,{kX:function(){return w},vA:function(){return f}});var i=e(66671),y=e(46902),I=e(78330),T=e(72944),F=e(64493),H=e(1016),t=e(1546),j=e(22151),M=e(52628);const Ce=(te,A,J,$e)=>{const{lineHeight:z}=te,g=Math.floor(J*z)+2,Ve=Math.max((A-g)/2,0),Zt=Math.max(A-g-Ve,0);return{padding:`${Ve}px ${$e}px ${Zt}px`}},de=te=>{const{componentCls:A,pickerCellCls:J,pickerCellInnerCls:$e,pickerPanelCellHeight:z,motionDurationSlow:g,borderRadiusSM:Ve,motionDurationMid:Zt,controlItemBgHover:Le,lineWidth:G,lineType:st,colorPrimary:Me,controlItemBgActive:P,colorTextLightSolid:Re,controlHeightSM:ct,pickerDateHoverRangeBorderColor:ee,pickerCellBorderGap:ue,pickerBasicCellHoverWithRangeColor:se,pickerPanelCellWidth:Ke,colorTextDisabled:ot,colorBgContainerDisabled:Fe}=te;return{"&::before":{position:"absolute",top:"50%",insetInlineStart:0,insetInlineEnd:0,zIndex:1,height:z,transform:"translateY(-50%)",transition:`all ${g}`,content:'""'},[$e]:{position:"relative",zIndex:2,display:"inline-block",minWidth:z,height:z,lineHeight:`${z}px`,borderRadius:Ve,transition:`background ${Zt}, border ${Zt}`},["&-range-hover-start, &-range-hover-end"]:{[$e]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:hover:not(${J}-in-view), - &:hover:not(${J}-selected):not(${J}-range-start):not(${J}-range-end):not(${J}-range-hover-start):not(${J}-range-hover-end)`]:{[$e]:{background:Le}},[`&-in-view${J}-today ${$e}`]:{"&::before":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:1,border:`${G}px ${st} ${Me}`,borderRadius:Ve,content:'""'}},[`&-in-view${J}-in-range`]:{position:"relative","&::before":{background:P}},[`&-in-view${J}-selected ${$e}, - &-in-view${J}-range-start ${$e}, - &-in-view${J}-range-end ${$e}`]:{color:Re,background:Me},[`&-in-view${J}-range-start:not(${J}-range-start-single), - &-in-view${J}-range-end:not(${J}-range-end-single)`]:{"&::before":{background:P}},[`&-in-view${J}-range-start::before`]:{insetInlineStart:"50%"},[`&-in-view${J}-range-end::before`]:{insetInlineEnd:"50%"},[`&-in-view${J}-range-hover-start:not(${J}-in-range):not(${J}-range-start):not(${J}-range-end), - &-in-view${J}-range-hover-end:not(${J}-in-range):not(${J}-range-start):not(${J}-range-end), - &-in-view${J}-range-hover-start${J}-range-start-single, - &-in-view${J}-range-hover-start${J}-range-start${J}-range-end${J}-range-end-near-hover, - &-in-view${J}-range-hover-end${J}-range-start${J}-range-end${J}-range-start-near-hover, - &-in-view${J}-range-hover-end${J}-range-end-single, - &-in-view${J}-range-hover:not(${J}-in-range)`]:{"&::after":{position:"absolute",top:"50%",zIndex:0,height:ct,borderTop:`${G}px dashed ${ee}`,borderBottom:`${G}px dashed ${ee}`,transform:"translateY(-50%)",transition:`all ${g}`,content:'""'}},[`&-range-hover-start::after, - &-range-hover-end::after, - &-range-hover::after`]:{insetInlineEnd:0,insetInlineStart:ue},[`&-in-view${J}-in-range${J}-range-hover::before, - &-in-view${J}-in-range${J}-range-hover-start::before, - &-in-view${J}-in-range${J}-range-hover-end::before, - &-in-view${J}-range-start${J}-range-hover::before, - &-in-view${J}-range-end${J}-range-hover::before, - &-in-view${J}-range-start:not(${J}-range-start-single)${J}-range-hover-start::before, - &-in-view${J}-range-end:not(${J}-range-end-single)${J}-range-hover-end::before, - ${A}-panel - > :not(${A}-date-panel) - &-in-view${J}-in-range${J}-range-hover-start::before, - ${A}-panel - > :not(${A}-date-panel) - &-in-view${J}-in-range${J}-range-hover-end::before`]:{background:se},[`&-in-view${J}-range-start:not(${J}-range-start-single):not(${J}-range-end) ${$e}`]:{borderStartStartRadius:Ve,borderEndStartRadius:Ve,borderStartEndRadius:0,borderEndEndRadius:0},[`&-in-view${J}-range-end:not(${J}-range-end-single):not(${J}-range-start) ${$e}`]:{borderStartStartRadius:0,borderEndStartRadius:0,borderStartEndRadius:Ve,borderEndEndRadius:Ve},[`&-range-hover${J}-range-end::after`]:{insetInlineStart:"50%"},[`tr > &-in-view${J}-range-hover:first-child::after, - tr > &-in-view${J}-range-hover-end:first-child::after, - &-in-view${J}-start${J}-range-hover-edge-start${J}-range-hover-edge-start-near-range::after, - &-in-view${J}-range-hover-edge-start:not(${J}-range-hover-edge-start-near-range)::after, - &-in-view${J}-range-hover-start::after`]:{insetInlineStart:(Ke-z)/2,borderInlineStart:`${G}px dashed ${ee}`,borderStartStartRadius:Ve,borderEndStartRadius:Ve},[`tr > &-in-view${J}-range-hover:last-child::after, - tr > &-in-view${J}-range-hover-start:last-child::after, - &-in-view${J}-end${J}-range-hover-edge-end${J}-range-hover-edge-end-near-range::after, - &-in-view${J}-range-hover-edge-end:not(${J}-range-hover-edge-end-near-range)::after, - &-in-view${J}-range-hover-end::after`]:{insetInlineEnd:(Ke-z)/2,borderInlineEnd:`${G}px dashed ${ee}`,borderStartEndRadius:Ve,borderEndEndRadius:Ve},"&-disabled":{color:ot,pointerEvents:"none",[$e]:{background:"transparent"},"&::before":{background:Fe}},[`&-disabled${J}-today ${$e}::before`]:{borderColor:ot}}},w=te=>{const{componentCls:A,pickerCellCls:J,pickerCellInnerCls:$e,pickerYearMonthCellWidth:z,pickerControlIconSize:g,pickerPanelCellWidth:Ve,paddingSM:Zt,paddingXS:Le,paddingXXS:G,colorBgContainer:st,lineWidth:Me,lineType:P,borderRadiusLG:Re,colorPrimary:ct,colorTextHeading:ee,colorSplit:ue,pickerControlIconBorderWidth:se,colorIcon:Ke,pickerTextHeight:ot,motionDurationMid:Fe,colorIconHover:ut,fontWeightStrong:U,pickerPanelCellHeight:W,pickerCellPaddingVertical:me,colorTextDisabled:he,colorText:ht,fontSize:at,pickerBasicCellHoverWithRangeColor:pt,motionDurationSlow:ft,pickerPanelWithoutTimeCellHeight:gt,pickerQuarterPanelContentHeight:Ut,colorLink:It,colorLinkActive:bt,colorLinkHover:xt,pickerDateHoverRangeBorderColor:ve,borderRadiusSM:Ze,colorTextLightSolid:Oe,controlItemBgHover:je,pickerTimePanelColumnHeight:O,pickerTimePanelColumnWidth:Ae,pickerTimePanelCellHeight:Z,controlItemBgActive:b,marginXXS:R,pickerDatePanelPaddingHorizontal:ie}=te,_=Ve*7+ie*2,Xe=(_-Le*2)/3-z-Zt,it=(_-Le*2)/4-z;return{[A]:{"&-panel":{display:"inline-flex",flexDirection:"column",textAlign:"center",background:st,border:`${Me}px ${P} ${ue}`,borderRadius:Re,outline:"none","&-focused":{borderColor:ct},"&-rtl":{direction:"rtl",[`${A}-prev-icon, - ${A}-super-prev-icon`]:{transform:"rotate(45deg)"},[`${A}-next-icon, - ${A}-super-next-icon`]:{transform:"rotate(-135deg)"}}},[`&-decade-panel, - &-year-panel, - &-quarter-panel, - &-month-panel, - &-week-panel, - &-date-panel, - &-time-panel`]:{display:"flex",flexDirection:"column",width:_},"&-header":{display:"flex",padding:`0 ${Le}px`,color:ee,borderBottom:`${Me}px ${P} ${ue}`,"> *":{flex:"none"},button:{padding:0,color:Ke,lineHeight:`${ot}px`,background:"transparent",border:0,cursor:"pointer",transition:`color ${Fe}`,fontSize:"inherit"},"> button":{minWidth:"1.6em",fontSize:at,"&:hover":{color:ut}},"&-view":{flex:"auto",fontWeight:U,lineHeight:`${ot}px`,button:{color:"inherit",fontWeight:"inherit",verticalAlign:"top","&:not(:first-child)":{marginInlineStart:Le},"&:hover":{color:ct}}}},[`&-prev-icon, - &-next-icon, - &-super-prev-icon, - &-super-next-icon`]:{position:"relative",display:"inline-block",width:g,height:g,"&::before":{position:"absolute",top:0,insetInlineStart:0,display:"inline-block",width:g,height:g,border:"0 solid currentcolor",borderBlockStartWidth:se,borderBlockEndWidth:0,borderInlineStartWidth:se,borderInlineEndWidth:0,content:'""'}},[`&-super-prev-icon, - &-super-next-icon`]:{"&::after":{position:"absolute",top:Math.ceil(g/2),insetInlineStart:Math.ceil(g/2),display:"inline-block",width:g,height:g,border:"0 solid currentcolor",borderBlockStartWidth:se,borderBlockEndWidth:0,borderInlineStartWidth:se,borderInlineEndWidth:0,content:'""'}},[`&-prev-icon, - &-super-prev-icon`]:{transform:"rotate(-45deg)"},[`&-next-icon, - &-super-next-icon`]:{transform:"rotate(135deg)"},"&-content":{width:"100%",tableLayout:"fixed",borderCollapse:"collapse","th, td":{position:"relative",minWidth:W,fontWeight:"normal"},th:{height:W+me*2,color:ht,verticalAlign:"middle"}},"&-cell":Object.assign({padding:`${me}px 0`,color:he,cursor:"pointer","&-in-view":{color:ht}},de(te)),[`&-date-panel ${A}-cell-in-view${A}-cell-in-range${A}-cell-range-hover-start ${$e}, - &-date-panel ${A}-cell-in-view${A}-cell-in-range${A}-cell-range-hover-end ${$e}`]:{"&::after":{position:"absolute",top:0,bottom:0,zIndex:-1,background:pt,transition:`all ${ft}`,content:'""'}},[`&-date-panel - ${A}-cell-in-view${A}-cell-in-range${A}-cell-range-hover-start - ${$e}::after`]:{insetInlineEnd:-(Ve-W)/2,insetInlineStart:0},[`&-date-panel ${A}-cell-in-view${A}-cell-in-range${A}-cell-range-hover-end ${$e}::after`]:{insetInlineEnd:0,insetInlineStart:-(Ve-W)/2},[`&-range-hover${A}-range-start::after`]:{insetInlineEnd:"50%"},[`&-decade-panel, - &-year-panel, - &-quarter-panel, - &-month-panel`]:{[`${A}-content`]:{height:gt*4},[$e]:{padding:`0 ${Le}px`}},"&-quarter-panel":{[`${A}-content`]:{height:Ut},[`${A}-cell-range-hover-start::after`]:{insetInlineStart:it,borderInlineStart:`${Me}px dashed ${ve}`,[`${A}-panel-rtl &`]:{insetInlineEnd:it,borderInlineEnd:`${Me}px dashed ${ve}`}},[`${A}-cell-range-hover-end::after`]:{insetInlineEnd:it,borderInlineEnd:`${Me}px dashed ${ve}`,[`${A}-panel-rtl &`]:{insetInlineStart:it,borderInlineStart:`${Me}px dashed ${ve}`}}},[`&-panel ${A}-footer`]:{borderTop:`${Me}px ${P} ${ue}`},"&-footer":{width:"min-content",minWidth:"100%",lineHeight:`${ot-2*Me}px`,textAlign:"center","&-extra":{padding:`0 ${Zt}`,lineHeight:`${ot-2*Me}px`,textAlign:"start","&:not(:last-child)":{borderBottom:`${Me}px ${P} ${ue}`}}},"&-now":{textAlign:"start"},"&-today-btn":{color:It,"&:hover":{color:xt},"&:active":{color:bt},[`&${A}-today-btn-disabled`]:{color:he,cursor:"not-allowed"}},"&-decade-panel":{[$e]:{padding:`0 ${Le/2}px`},[`${A}-cell::before`]:{display:"none"}},[`&-year-panel, - &-quarter-panel, - &-month-panel`]:{[`${A}-body`]:{padding:`0 ${Le}px`},[$e]:{width:z},[`${A}-cell-range-hover-start::after`]:{borderStartStartRadius:Ze,borderEndStartRadius:Ze,borderStartEndRadius:0,borderEndEndRadius:0,[`${A}-panel-rtl &`]:{borderStartStartRadius:0,borderEndStartRadius:0,borderStartEndRadius:Ze,borderEndEndRadius:Ze}},[`${A}-cell-range-hover-end::after`]:{borderStartStartRadius:0,borderEndStartRadius:0,borderStartEndRadius:Ze,borderEndEndRadius:Ze,[`${A}-panel-rtl &`]:{borderStartStartRadius:Ze,borderEndStartRadius:Ze,borderStartEndRadius:0,borderEndEndRadius:0}}},[`&-year-panel, - &-month-panel`]:{[`${A}-cell-range-hover-start::after`]:{insetInlineStart:Xe,borderInlineStart:`${Me}px dashed ${ve}`,[`${A}-panel-rtl &`]:{insetInlineEnd:Xe,borderInlineEnd:`${Me}px dashed ${ve}`}},[`${A}-cell-range-hover-end::after`]:{insetInlineEnd:Xe,borderInlineEnd:`${Me}px dashed ${ve}`,[`${A}-panel-rtl &`]:{insetInlineStart:Xe,borderInlineStart:`${Me}px dashed ${ve}`}}},"&-week-panel":{[`${A}-body`]:{padding:`${Le}px ${Zt}px`},[`${A}-cell`]:{[`&:hover ${$e}, - &-selected ${$e}, - ${$e}`]:{background:"transparent !important"}},"&-row":{td:{"&:before":{transition:`background ${Fe}`},"&:first-child:before":{borderStartStartRadius:Ze,borderEndStartRadius:Ze},"&:last-child:before":{borderStartEndRadius:Ze,borderEndEndRadius:Ze}},["&:hover td"]:{"&:before":{background:je}},[`&-range-start td, - &-range-end td, - &-selected td`]:{[`&${J}`]:{"&:before":{background:ct},[`&${A}-cell-week`]:{color:new i.C(Oe).setAlpha(.5).toHexString()},[$e]:{color:Oe}}},["&-range-hover td:before"]:{background:b}}},"&-date-panel":{[`${A}-body`]:{padding:`${Le}px ${ie}px`},[`${A}-content`]:{width:Ve*7,th:{width:Ve,boxSizing:"border-box",padding:0}}},"&-datetime-panel":{display:"flex",[`${A}-time-panel`]:{borderInlineStart:`${Me}px ${P} ${ue}`},[`${A}-date-panel, - ${A}-time-panel`]:{transition:`opacity ${ft}`},"&-active":{[`${A}-date-panel, - ${A}-time-panel`]:{opacity:.3,"&-active":{opacity:1}}}},"&-time-panel":{width:"auto",minWidth:"auto",direction:"ltr",[`${A}-content`]:{display:"flex",flex:"auto",height:O},"&-column":{flex:"1 0 auto",width:Ae,margin:`${G}px 0`,padding:0,overflowY:"hidden",textAlign:"start",listStyle:"none",transition:`background ${Fe}`,overflowX:"hidden","&::after":{display:"block",height:O-Z,content:'""'},"&:not(:first-child)":{borderInlineStart:`${Me}px ${P} ${ue}`},"&-active":{background:new i.C(b).setAlpha(.2).toHexString()},"&:hover":{overflowY:"auto"},"> li":{margin:0,padding:0,[`&${A}-time-panel-cell`]:{marginInline:R,[`${A}-time-panel-cell-inner`]:{display:"block",width:Ae-2*R,height:Z,margin:0,paddingBlock:0,paddingInlineEnd:0,paddingInlineStart:(Ae-Z)/2,color:ht,lineHeight:`${Z}px`,borderRadius:Ze,cursor:"pointer",transition:`background ${Fe}`,"&:hover":{background:je}},"&-selected":{[`${A}-time-panel-cell-inner`]:{background:b}},"&-disabled":{[`${A}-time-panel-cell-inner`]:{color:he,background:"transparent",cursor:"not-allowed"}}}}}},[`&-datetime-panel ${A}-time-panel-column:after`]:{height:O-Z+G*2}}}},K=te=>{const{componentCls:A,colorBgContainer:J,colorError:$e,colorErrorOutline:z,colorWarning:g,colorWarningOutline:Ve}=te;return{[`${A}:not(${A}-disabled)`]:{[`&${A}-status-error`]:{"&, &:not([disabled]):hover":{backgroundColor:J,borderColor:$e},[`&${A}-focused, &:focus`]:Object.assign({},(0,y.M1)((0,j.TS)(te,{inputBorderActiveColor:$e,inputBorderHoverColor:$e,controlOutline:z}))),[`${A}-active-bar`]:{background:$e}},[`&${A}-status-warning`]:{"&, &:not([disabled]):hover":{backgroundColor:J,borderColor:g},[`&${A}-focused, &:focus`]:Object.assign({},(0,y.M1)((0,j.TS)(te,{inputBorderActiveColor:g,inputBorderHoverColor:g,controlOutline:Ve}))),[`${A}-active-bar`]:{background:g}}}}},ne=te=>{const{componentCls:A,antCls:J,controlHeight:$e,fontSize:z,inputPaddingHorizontal:g,colorBgContainer:Ve,lineWidth:Zt,lineType:Le,colorBorder:G,borderRadius:st,motionDurationMid:Me,colorBgContainerDisabled:P,colorTextDisabled:Re,colorTextPlaceholder:ct,controlHeightLG:ee,fontSizeLG:ue,controlHeightSM:se,inputPaddingHorizontalSM:Ke,paddingXS:ot,marginXS:Fe,colorTextDescription:ut,lineWidthBold:U,lineHeight:W,colorPrimary:me,motionDurationSlow:he,zIndexPopup:ht,paddingXXS:at,paddingSM:pt,pickerTextHeight:ft,controlItemBgActive:gt,colorPrimaryBorder:Ut,sizePopupArrow:It,borderRadiusXS:bt,borderRadiusOuter:xt,colorBgElevated:ve,borderRadiusLG:Ze,boxShadowSecondary:Oe,borderRadiusSM:je,colorSplit:O,controlItemBgHover:Ae,presetsWidth:Z,presetsMaxWidth:b,boxShadowPopoverArrow:R,colorTextQuaternary:ie}=te;return[{[A]:Object.assign(Object.assign(Object.assign({},(0,I.Wf)(te)),Ce(te,$e,z,g)),{position:"relative",display:"inline-flex",alignItems:"center",background:Ve,lineHeight:1,border:`${Zt}px ${Le} ${G}`,borderRadius:st,transition:`border ${Me}, box-shadow ${Me}`,"&:hover, &-focused":Object.assign({},(0,y.pU)(te)),"&-focused":Object.assign({},(0,y.M1)(te)),[`&${A}-disabled`]:{background:P,borderColor:G,cursor:"not-allowed",[`${A}-suffix`]:{color:ie}},[`&${A}-borderless`]:{backgroundColor:"transparent !important",borderColor:"transparent !important",boxShadow:"none !important"},[`${A}-input`]:{position:"relative",display:"inline-flex",alignItems:"center",width:"100%","> input":Object.assign(Object.assign({},(0,y.ik)(te)),{flex:"auto",minWidth:1,height:"auto",padding:0,background:"transparent",border:0,borderRadius:0,"&:focus":{boxShadow:"none"},"&[disabled]":{background:"transparent"}}),"&:hover":{[`${A}-clear`]:{opacity:1}},"&-placeholder":{"> input":{color:ct}}},"&-large":Object.assign(Object.assign({},Ce(te,ee,ue,g)),{[`${A}-input > input`]:{fontSize:ue}}),"&-small":Object.assign({},Ce(te,se,z,Ke)),[`${A}-suffix`]:{display:"flex",flex:"none",alignSelf:"center",marginInlineStart:ot/2,color:Re,lineHeight:1,pointerEvents:"none","> *":{verticalAlign:"top","&:not(:last-child)":{marginInlineEnd:Fe}}},[`${A}-clear`]:{position:"absolute",top:"50%",insetInlineEnd:0,color:Re,lineHeight:1,background:Ve,transform:"translateY(-50%)",cursor:"pointer",opacity:0,transition:`opacity ${Me}, color ${Me}`,"> *":{verticalAlign:"top"},"&:hover":{color:ut}},[`${A}-separator`]:{position:"relative",display:"inline-block",width:"1em",height:ue,color:Re,fontSize:ue,verticalAlign:"top",cursor:"default",[`${A}-focused &`]:{color:ut},[`${A}-range-separator &`]:{[`${A}-disabled &`]:{cursor:"not-allowed"}}},"&-range":{position:"relative",display:"inline-flex",[`${A}-clear`]:{insetInlineEnd:g},"&:hover":{[`${A}-clear`]:{opacity:1}},[`${A}-active-bar`]:{bottom:-Zt,height:U,marginInlineStart:g,background:me,opacity:0,transition:`all ${he} ease-out`,pointerEvents:"none"},[`&${A}-focused`]:{[`${A}-active-bar`]:{opacity:1}},[`${A}-range-separator`]:{alignItems:"center",padding:`0 ${ot}px`,lineHeight:1},[`&${A}-small`]:{[`${A}-clear`]:{insetInlineEnd:Ke},[`${A}-active-bar`]:{marginInlineStart:Ke}}},"&-dropdown":Object.assign(Object.assign(Object.assign({},(0,I.Wf)(te)),w(te)),{position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:ht,[`&${A}-dropdown-hidden`]:{display:"none"},[`&${A}-dropdown-placement-bottomLeft`]:{[`${A}-range-arrow`]:{top:0,display:"block",transform:"translateY(-100%)"}},[`&${A}-dropdown-placement-topLeft`]:{[`${A}-range-arrow`]:{bottom:0,display:"block",transform:"translateY(100%) rotate(180deg)"}},[`&${J}-slide-up-enter${J}-slide-up-enter-active${A}-dropdown-placement-topLeft, - &${J}-slide-up-enter${J}-slide-up-enter-active${A}-dropdown-placement-topRight, - &${J}-slide-up-appear${J}-slide-up-appear-active${A}-dropdown-placement-topLeft, - &${J}-slide-up-appear${J}-slide-up-appear-active${A}-dropdown-placement-topRight`]:{animationName:H.Qt},[`&${J}-slide-up-enter${J}-slide-up-enter-active${A}-dropdown-placement-bottomLeft, - &${J}-slide-up-enter${J}-slide-up-enter-active${A}-dropdown-placement-bottomRight, - &${J}-slide-up-appear${J}-slide-up-appear-active${A}-dropdown-placement-bottomLeft, - &${J}-slide-up-appear${J}-slide-up-appear-active${A}-dropdown-placement-bottomRight`]:{animationName:H.fJ},[`&${J}-slide-up-leave${J}-slide-up-leave-active${A}-dropdown-placement-topLeft, - &${J}-slide-up-leave${J}-slide-up-leave-active${A}-dropdown-placement-topRight`]:{animationName:H.ly},[`&${J}-slide-up-leave${J}-slide-up-leave-active${A}-dropdown-placement-bottomLeft, - &${J}-slide-up-leave${J}-slide-up-leave-active${A}-dropdown-placement-bottomRight`]:{animationName:H.Uw},[`${A}-panel > ${A}-time-panel`]:{paddingTop:at},[`${A}-ranges`]:{marginBottom:0,padding:`${at}px ${pt}px`,overflow:"hidden",lineHeight:`${ft-2*Zt-ot/2}px`,textAlign:"start",listStyle:"none",display:"flex",justifyContent:"space-between","> li":{display:"inline-block"},[`${A}-preset > ${J}-tag-blue`]:{color:me,background:gt,borderColor:Ut,cursor:"pointer"},[`${A}-ok`]:{marginInlineStart:"auto"}},[`${A}-range-wrapper`]:{display:"flex",position:"relative"},[`${A}-range-arrow`]:Object.assign({position:"absolute",zIndex:1,display:"none",marginInlineStart:g*1.5,transition:`left ${he} ease-out`},(0,T.r)(It,bt,xt,ve,R)),[`${A}-panel-container`]:{overflow:"hidden",verticalAlign:"top",background:ve,borderRadius:Ze,boxShadow:Oe,transition:`margin ${he}`,[`${A}-panel-layout`]:{display:"flex",flexWrap:"nowrap",alignItems:"stretch"},[`${A}-presets`]:{display:"flex",flexDirection:"column",minWidth:Z,maxWidth:b,ul:{height:0,flex:"auto",listStyle:"none",overflow:"auto",margin:0,padding:ot,borderInlineEnd:`${Zt}px ${Le} ${O}`,li:Object.assign(Object.assign({},I.vS),{borderRadius:je,paddingInline:ot,paddingBlock:(se-Math.round(z*W))/2,cursor:"pointer",transition:`all ${he}`,"+ li":{marginTop:Fe},"&:hover":{background:Ae}})}},[`${A}-panels`]:{display:"inline-flex",flexWrap:"nowrap",direction:"ltr",[`${A}-panel`]:{borderWidth:`0 0 ${Zt}px`},"&:last-child":{[`${A}-panel`]:{borderWidth:0}}},[`${A}-panel`]:{verticalAlign:"top",background:"transparent",borderRadius:0,borderWidth:0,[`${A}-content, - table`]:{textAlign:"center"},"&-focused":{borderColor:G}}}}),"&-dropdown-range":{padding:`${It*2/3}px 0`,"&-hidden":{display:"none"}},"&-rtl":{direction:"rtl",[`${A}-separator`]:{transform:"rotate(180deg)"},[`${A}-footer`]:{"&-extra":{direction:"rtl"}}}})},(0,H.oN)(te,"slide-up"),(0,H.oN)(te,"slide-down"),(0,t.Fm)(te,"move-up"),(0,t.Fm)(te,"move-down")]},f=te=>{const{componentCls:J,controlHeightLG:$e,controlHeightSM:z,colorPrimary:g,paddingXXS:Ve,padding:Zt}=te;return{pickerCellCls:`${J}-cell`,pickerCellInnerCls:`${J}-cell-inner`,pickerTextHeight:$e,pickerPanelCellWidth:z*1.5,pickerPanelCellHeight:z,pickerDateHoverRangeBorderColor:new i.C(g).lighten(20).toHexString(),pickerBasicCellHoverWithRangeColor:new i.C(g).lighten(35).toHexString(),pickerPanelWithoutTimeCellHeight:$e*1.65,pickerYearMonthCellWidth:$e*1.5,pickerTimePanelColumnHeight:28*8,pickerTimePanelColumnWidth:$e*1.4,pickerTimePanelCellHeight:28,pickerQuarterPanelContentHeight:$e*1.4,pickerCellPaddingVertical:Ve+Ve/2,pickerCellBorderGap:2,pickerControlIconSize:7,pickerControlIconBorderWidth:1.5,pickerDatePanelPaddingHorizontal:Zt+Ve/2}};De.ZP=(0,M.Z)("DatePicker",te=>{const A=(0,j.TS)((0,y.e5)(te),f(te));return[ne(A),K(A),(0,F.c)(te,{focusElCls:`${te.componentCls}-focused`})]},te=>({presetsWidth:120,presetsMaxWidth:200,zIndexPopup:te.zIndexPopupBase+50}))},80172:function(Dt,De,e){"use strict";var i=e(60059);function y(){return(0,i.Z)()}De.ZP={useBreakpoint:y}},31712:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return vt}});var i=e(58757),y=e(56019),I=e(87608),T=e.n(I),F=e(60698),H=e(57370),t=e(37734),j=e(28314),M=e(38790),Ce=e(47075),de=e(60085),w=e(60409),K=["crossOrigin","decoding","draggable","loading","referrerPolicy","sizes","srcSet","useMap","alt"],ne=i.createContext(null),f=0;function te(Se,X){var Ne=i.useState(function(){return f+=1,String(f)}),St=(0,j.Z)(Ne,1),xe=St[0],fe=i.useContext(ne),L={data:X,canPreview:Se};return i.useEffect(function(){if(fe)return fe.register(xe,L)},[]),i.useEffect(function(){fe&&fe.register(xe,L)},[Se,X]),xe}function A(Se){return new Promise(function(X){var Ne=document.createElement("img");Ne.onerror=function(){return X(!1)},Ne.onload=function(){return X(!0)},Ne.src=Se})}function J(Se){var X=Se.src,Ne=Se.isCustomPlaceholder,St=Se.fallback,xe=(0,i.useState)(Ne?"loading":"normal"),fe=(0,j.Z)(xe,2),L=fe[0],D=fe[1],x=(0,i.useRef)(!1),oe=L==="error";(0,i.useEffect)(function(){A(X).then(function(Ue){Ue||D("error")})},[X]),(0,i.useEffect)(function(){Ne&&!x.current?D("loading"):oe&&D("normal")},[X]);var be=function(){D("normal")},Ie=function(et){x.current=!1,L==="loading"&&et!=null&&et.complete&&(et.naturalWidth||et.naturalHeight)&&(x.current=!0,be())},Ye=oe&&St?{src:St}:{onLoad:be,src:X};return[Ie,Ye,L]}var $e=e(67117),z=e(14311),g=e(29639),Ve=e(75556);function Zt(Se,X,Ne,St){var xe=X+Ne,fe=(Ne-St)/2;if(Ne>St){if(X>0)return(0,t.Z)({},Se,fe);if(X<0&&xeSt)return(0,t.Z)({},Se,X<0?fe:-fe);return{}}function Le(Se,X,Ne,St){var xe=(0,de.g1)(),fe=xe.width,L=xe.height,D=null;return Se<=fe&&X<=L?D={x:0,y:0}:(Se>fe||X>L)&&(D=(0,H.Z)((0,H.Z)({},Zt("x",Ne,Se,fe)),Zt("y",St,X,L))),D}var G=e(7637),st=e(61834),Me={x:0,y:0,rotate:0,scale:1,flipX:!1,flipY:!1};function P(Se,X,Ne,St){var xe=(0,i.useRef)(null),fe=(0,i.useRef)([]),L=(0,i.useState)(Me),D=(0,j.Z)(L,2),x=D[0],oe=D[1],be=function(et){oe(Me),St&&!(0,G.Z)(Me,x)&&St({transform:Me,action:et})},Ie=function(et,Ht){xe.current===null&&(fe.current=[],xe.current=(0,st.Z)(function(){oe(function(mt){var Cn=mt;return fe.current.forEach(function(bn){Cn=(0,H.Z)((0,H.Z)({},Cn),bn)}),xe.current=null,St==null||St({transform:Cn,action:Ht}),Cn})})),fe.current.push((0,H.Z)((0,H.Z)({},x),et))},Ye=function(et,Ht,mt,Cn){var bn=Se.current,wt=bn.width,fn=bn.height,zt=bn.offsetWidth,cn=bn.offsetHeight,yn=bn.offsetLeft,Fn=bn.offsetTop,Yn=et,Zn=x.scale*et;Zn>Ne?(Yn=Ne/x.scale,Zn=Ne):Zn1,xo=Br&&bn>=1,br=P(Hr,yn,Yn,er),Qn=br.transform,Un=br.resetTransform,wr=br.updateTransform,or=br.dispatchZoomChange,Or=(0,i.useState)(!0),fo=(0,j.Z)(Or,2),Sr=fo[0],ao=fo[1],Vr=Qn.rotate,Ir=Qn.scale,Do=Qn.x,sa=Qn.y,fa=T()((0,t.Z)({},"".concat(Ne,"-moving"),Ur));(0,i.useEffect)(function(){Sr||ao(!0)},[Sr]);var Oa=function(){Un("close")},Oo=function(){or(se+zt,"zoomIn")},zo=function(){or(se/(se+zt),"zoomOut")},va=function(){wr({rotate:Vr+90},"rotateRight")},vi=function(){wr({rotate:Vr-90},"rotateLeft")},ka=function(){wr({flipX:!Qn.flipX},"flipX")},ye=function(){wr({flipY:!Qn.flipY},"flipY")},Qe=function(V){V==null||V.preventDefault(),V==null||V.stopPropagation(),mt>0&&(ao(!1),Un("prev"),Cr==null||Cr(mt-1,mt))},Tt=function(V){V==null||V.preventDefault(),V==null||V.stopPropagation(),mt0&&(ge=se/ge),or(ge,"wheel",V.clientX,V.clientY)}},ur=function(V){!oe||!_r||(V.keyCode===g.Z.LEFT?Qe():V.keyCode===g.Z.RIGHT&&Tt())},to=function(V){oe&&(Ir!==1?wr({x:0,y:0,scale:1},"doubleClick"):or(se+zt,"doubleClick",V.clientX,V.clientY))};(0,i.useEffect)(function(){var v,V,Q,Pe;if(D){Q=(0,z.Z)(window,"mouseup",en,!1),Pe=(0,z.Z)(window,"mousemove",Nr,!1);try{window.top!==window.self&&(v=(0,z.Z)(window.top,"mouseup",en,!1),V=(0,z.Z)(window.top,"mousemove",Nr,!1))}catch(ge){(0,Ve.Kp)(!1,"[rc-image] ".concat(ge))}}return function(){var ge,yt,nt,qt;(ge=Q)===null||ge===void 0||ge.remove(),(yt=Pe)===null||yt===void 0||yt.remove(),(nt=v)===null||nt===void 0||nt.remove(),(qt=V)===null||qt===void 0||qt.remove()}},[oe,Ur,Do,sa,Vr,D]),(0,i.useEffect)(function(){var v=(0,z.Z)(window,"keydown",ur,!1);return function(){v.remove()}},[oe,_r,mt]);var ra=i.createElement(ut,(0,F.Z)({},_n,{width:X.width,height:X.height,imgRef:Hr,className:"".concat(Ne,"-img"),alt:xe,style:{transform:"translate3d(".concat(Qn.x,"px, ").concat(Qn.y,"px, 0) scale3d(").concat(Qn.flipX?"-":"").concat(Ir,", ").concat(Qn.flipY?"-":"").concat(Ir,", 1) rotate(").concat(Vr,"deg)"),transitionDuration:!Sr&&"0s"},fallback:fe,src:St,onWheel:Tr,onMouseDown:Bn,onDoubleClick:to}));return i.createElement(i.Fragment,null,i.createElement($e.Z,(0,F.Z)({transitionName:Kn,maskTransitionName:jn,closable:!1,keyboard:!0,prefixCls:Ne,onClose:x,visible:oe,wrapClassName:fa,rootClassName:Ye,getContainer:et},Lr,{afterClose:Oa}),i.createElement("div",{className:"".concat(Ne,"-img-wrapper")},On?On(ra,(0,H.Z)({transform:Qn},Br?{current:mt}:{})):ra)),i.createElement(ue,{visible:oe,transform:Qn,maskTransitionName:jn,closeIcon:Ue,getContainer:et,prefixCls:Ne,rootClassName:Ye,icons:Ie,countRender:wt,showSwitch:_r,showProgress:xo,current:mt,count:bn,scale:Ir,minScale:yn,maxScale:Yn,toolbarRender:Gn,onSwitchLeft:Qe,onSwitchRight:Tt,onZoomIn:Oo,onZoomOut:zo,onRotateRight:va,onRotateLeft:vi,onFlipX:ka,onFlipY:ye,onClose:x}))},W=U,me=e(29140);function he(Se){var X=i.useState({}),Ne=(0,j.Z)(X,2),St=Ne[0],xe=Ne[1],fe=i.useCallback(function(D,x){return xe(function(oe){return(0,H.Z)((0,H.Z)({},oe),{},(0,t.Z)({},D,x))}),function(){xe(function(oe){var be=(0,H.Z)({},oe);return delete be[D],be})}},[]),L=i.useMemo(function(){return Se?Se.map(function(D){if(typeof D=="string")return{data:{src:D}};var x={};return Object.keys(D).forEach(function(oe){["src"].concat((0,me.Z)(K)).includes(oe)&&(x[oe]=D[oe])}),{data:x}}):Object.keys(St).reduce(function(D,x){var oe=St[x],be=oe.canPreview,Ie=oe.data;return be&&D.push({data:Ie,id:x}),D},[])},[Se,St]);return[L,fe]}var ht=["visible","onVisibleChange","getContainer","current","movable","minScale","maxScale","countRender","closeIcon","onChange","onTransform","toolbarRender","imageRender"],at=["src"],pt=function(X){var Ne,St=X.previewPrefixCls,xe=St===void 0?"rc-image-preview":St,fe=X.children,L=X.icons,D=L===void 0?{}:L,x=X.items,oe=X.preview,be=X.fallback,Ie=(0,M.Z)(oe)==="object"?oe:{},Ye=Ie.visible,Ue=Ie.onVisibleChange,et=Ie.getContainer,Ht=Ie.current,mt=Ie.movable,Cn=Ie.minScale,bn=Ie.maxScale,wt=Ie.countRender,fn=Ie.closeIcon,zt=Ie.onChange,cn=Ie.onTransform,yn=Ie.toolbarRender,Fn=Ie.imageRender,Yn=(0,Ce.Z)(Ie,ht),Zn=he(x),Kn=(0,j.Z)(Zn,2),vr=Kn[0],jn=Kn[1],On=(0,w.Z)(0,{value:Ht}),_n=(0,j.Z)(On,2),Gn=_n[0],er=_n[1],Cr=(0,i.useState)(!1),Lr=(0,j.Z)(Cr,2),Hr=Lr[0],Hn=Lr[1],Pr=((Ne=vr[Gn])===null||Ne===void 0?void 0:Ne.data)||{},oo=Pr.src,Ur=(0,Ce.Z)(Pr,at),co=(0,w.Z)(!!Ye,{value:Ye,onChange:function(Vr,Ir){Ue==null||Ue(Vr,Ir,Gn)}}),Br=(0,j.Z)(co,2),_r=Br[0],xo=Br[1],br=(0,i.useState)(null),Qn=(0,j.Z)(br,2),Un=Qn[0],wr=Qn[1],or=i.useCallback(function(ao,Vr,Ir){var Do=vr.findIndex(function(sa){return sa.id===ao});xo(!0),wr({x:Vr,y:Ir}),er(Do<0?0:Do),Hn(!0)},[vr]);i.useEffect(function(){_r?Hr||er(0):Hn(!1)},[_r]);var Or=function(Vr,Ir){er(Vr),zt==null||zt(Vr,Ir)},fo=function(){xo(!1),wr(null)},Sr=i.useMemo(function(){return{register:jn,onPreview:or}},[jn,or]);return i.createElement(ne.Provider,{value:Sr},fe,i.createElement(W,(0,F.Z)({"aria-hidden":!_r,movable:mt,visible:_r,prefixCls:xe,closeIcon:fn,onClose:fo,mousePosition:Un,imgCommonProps:Ur,src:oo,fallback:be,icons:D,minScale:Cn,maxScale:bn,getContainer:et,current:Gn,count:vr.length,countRender:wt,onTransform:cn,toolbarRender:yn,imageRender:Fn,onChange:Or},Yn)))},ft=pt,gt=["src","alt","onPreviewClose","prefixCls","previewPrefixCls","placeholder","fallback","width","height","style","preview","className","onClick","onError","wrapperClassName","wrapperStyle","rootClassName"],Ut=["src","visible","onVisibleChange","getContainer","mask","maskClassName","movable","icons","scaleStep","minScale","maxScale","imageRender","toolbarRender"],It=function(X){var Ne=X.src,St=X.alt,xe=X.onPreviewClose,fe=X.prefixCls,L=fe===void 0?"rc-image":fe,D=X.previewPrefixCls,x=D===void 0?"".concat(L,"-preview"):D,oe=X.placeholder,be=X.fallback,Ie=X.width,Ye=X.height,Ue=X.style,et=X.preview,Ht=et===void 0?!0:et,mt=X.className,Cn=X.onClick,bn=X.onError,wt=X.wrapperClassName,fn=X.wrapperStyle,zt=X.rootClassName,cn=(0,Ce.Z)(X,gt),yn=oe&&oe!==!0,Fn=(0,M.Z)(Ht)==="object"?Ht:{},Yn=Fn.src,Zn=Fn.visible,Kn=Zn===void 0?void 0:Zn,vr=Fn.onVisibleChange,jn=vr===void 0?xe:vr,On=Fn.getContainer,_n=On===void 0?void 0:On,Gn=Fn.mask,er=Fn.maskClassName,Cr=Fn.movable,Lr=Fn.icons,Hr=Fn.scaleStep,Hn=Fn.minScale,Pr=Fn.maxScale,oo=Fn.imageRender,Ur=Fn.toolbarRender,co=(0,Ce.Z)(Fn,Ut),Br=Yn!=null?Yn:Ne,_r=(0,w.Z)(!!Kn,{value:Kn,onChange:jn}),xo=(0,j.Z)(_r,2),br=xo[0],Qn=xo[1],Un=J({src:Ne,isCustomPlaceholder:yn,fallback:be}),wr=(0,j.Z)(Un,3),or=wr[0],Or=wr[1],fo=wr[2],Sr=(0,i.useState)(null),ao=(0,j.Z)(Sr,2),Vr=ao[0],Ir=ao[1],Do=(0,i.useContext)(ne),sa=!!Ht,fa=function(){Qn(!1),Ir(null)},Oa=T()(L,wt,zt,(0,t.Z)({},"".concat(L,"-error"),fo==="error")),Oo=(0,i.useMemo)(function(){var ka={};return K.forEach(function(ye){X[ye]!==void 0&&(ka[ye]=X[ye])}),ka},K.map(function(ka){return X[ka]})),zo=(0,i.useMemo)(function(){return(0,H.Z)((0,H.Z)({},Oo),{},{src:Br})},[Br,Oo]),va=te(sa,zo),vi=function(ye){var Qe=(0,de.os)(ye.target),Tt=Qe.left,en=Qe.top;Do?Do.onPreview(va,Tt,en):(Ir({x:Tt,y:en}),Qn(!0)),Cn==null||Cn(ye)};return i.createElement(i.Fragment,null,i.createElement("div",(0,F.Z)({},cn,{className:Oa,onClick:sa?vi:Cn,style:(0,H.Z)({width:Ie,height:Ye},fn)}),i.createElement("img",(0,F.Z)({},Oo,{className:T()("".concat(L,"-img"),(0,t.Z)({},"".concat(L,"-img-placeholder"),oe===!0),mt),style:(0,H.Z)({height:Ye},Ue),ref:or},Or,{width:Ie,height:Ye,onError:bn})),fo==="loading"&&i.createElement("div",{"aria-hidden":"true",className:"".concat(L,"-placeholder")},oe),Gn&&sa&&i.createElement("div",{className:T()("".concat(L,"-mask"),er),style:{display:(Ue==null?void 0:Ue.display)==="none"?"none":void 0}},Gn)),!Do&&sa&&i.createElement(W,(0,F.Z)({"aria-hidden":!br,visible:br,prefixCls:x,onClose:fa,mousePosition:Vr,src:Br,alt:St,fallback:be,getContainer:_n,icons:Lr,movable:Cr,scaleStep:Hr,minScale:Hn,maxScale:Pr,rootClassName:zt,imageRender:oo,imgCommonProps:Oo,toolbarRender:Ur},co)))};It.PreviewGroup=ft,It.displayName="Image";var bt=It,xt=bt,ve=e(90881),Ze=e(61836),Oe=e(80076),je=e(52495),O=e(99142),Ae=e(91169),Z={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z"}},{tag:"path",attrs:{d:"M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z"}}]},name:"rotate-left",theme:"outlined"},b=Z,R=e(17202),ie=function(X,Ne){return i.createElement(R.Z,(0,F.Z)({},X,{ref:Ne,icon:b}))},_=i.forwardRef(ie),Xe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-.4-12.6 6.1l-.2 64c-118.6.5-235.8 53.4-314.6 154.2A399.75 399.75 0 00123.5 631h74.9c-.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8z"}},{tag:"path",attrs:{d:"M880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H396V494h440v326z"}}]},name:"rotate-right",theme:"outlined"},it=Xe,Ct=function(X,Ne){return i.createElement(R.Z,(0,F.Z)({},X,{ref:Ne,icon:it}))},Pt=i.forwardRef(Ct),Nt={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"swap",theme:"outlined"},Vt=Nt,kt=function(X,Ne){return i.createElement(R.Z,(0,F.Z)({},X,{ref:Ne,icon:Vt}))},tt=i.forwardRef(kt),dt=e(98030),Ft=e(2528),At=e(66671),Lt=e(76073),un=e(78330),Xt=e(28107),pn=e(7239),Sn=e(52628),Gt=e(22151);const an=Se=>({position:Se||"absolute",inset:0}),ln=Se=>{const{iconCls:X,motionDurationSlow:Ne,paddingXXS:St,marginXXS:xe,prefixCls:fe,colorTextLightSolid:L}=Se;return{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",color:L,background:new At.C("#000").setAlpha(.5).toRgbString(),cursor:"pointer",opacity:0,transition:`opacity ${Ne}`,[`.${fe}-mask-info`]:Object.assign(Object.assign({},un.vS),{padding:`0 ${St}px`,[X]:{marginInlineEnd:xe,svg:{verticalAlign:"baseline"}}})}},Pn=Se=>{const{previewCls:X,modalMaskBg:Ne,paddingSM:St,marginXL:xe,margin:fe,paddingLG:L,previewOperationColorDisabled:D,previewOperationHoverColor:x,motionDurationSlow:oe,iconCls:be,colorTextLightSolid:Ie}=Se,Ye=new At.C(Ne).setAlpha(.1),Ue=Ye.clone().setAlpha(.2);return{[`${X}-footer`]:{position:"fixed",bottom:xe,left:{_skip_check_:!0,value:0},width:"100%",display:"flex",flexDirection:"column",alignItems:"center",color:Se.previewOperationColor},[`${X}-progress`]:{marginBottom:fe},[`${X}-close`]:{position:"fixed",top:xe,right:{_skip_check_:!0,value:xe},display:"flex",color:Ie,backgroundColor:Ye.toRgbString(),borderRadius:"50%",padding:St,outline:0,border:0,cursor:"pointer",transition:`all ${oe}`,"&:hover":{backgroundColor:Ue.toRgbString()},[`& > ${be}`]:{fontSize:Se.previewOperationSize}},[`${X}-operations`]:{display:"flex",alignItems:"center",padding:`0 ${L}px`,backgroundColor:Ye.toRgbString(),borderRadius:100,"&-operation":{marginInlineStart:St,padding:St,cursor:"pointer",transition:`all ${oe}`,userSelect:"none",[`&:not(${X}-operations-operation-disabled):hover > ${be}`]:{color:x},"&-disabled":{color:D,cursor:"not-allowed"},"&:first-of-type":{marginInlineStart:0},[`& > ${be}`]:{fontSize:Se.previewOperationSize}}}}},zn=Se=>{const{modalMaskBg:X,iconCls:Ne,previewOperationColorDisabled:St,previewCls:xe,zIndexPopup:fe,motionDurationSlow:L}=Se,D=new At.C(X).setAlpha(.1),x=D.clone().setAlpha(.2);return{[`${xe}-switch-left, ${xe}-switch-right`]:{position:"fixed",insetBlockStart:"50%",zIndex:fe+1,display:"flex",alignItems:"center",justifyContent:"center",width:Se.imagePreviewSwitchSize,height:Se.imagePreviewSwitchSize,marginTop:-Se.imagePreviewSwitchSize/2,color:Se.previewOperationColor,background:D.toRgbString(),borderRadius:"50%",transform:"translateY(-50%)",cursor:"pointer",transition:`all ${L}`,userSelect:"none","&:hover":{background:x.toRgbString()},["&-disabled"]:{"&, &:hover":{color:St,background:"transparent",cursor:"not-allowed",[`> ${Ne}`]:{cursor:"not-allowed"}}},[`> ${Ne}`]:{fontSize:Se.previewOperationSize}},[`${xe}-switch-left`]:{insetInlineStart:Se.marginSM},[`${xe}-switch-right`]:{insetInlineEnd:Se.marginSM}}},qn=Se=>{const{motionEaseOut:X,previewCls:Ne,motionDurationSlow:St,componentCls:xe}=Se;return[{[`${xe}-preview-root`]:{[Ne]:{height:"100%",textAlign:"center",pointerEvents:"none"},[`${Ne}-body`]:Object.assign(Object.assign({},an()),{overflow:"hidden"}),[`${Ne}-img`]:{maxWidth:"100%",maxHeight:"70%",verticalAlign:"middle",transform:"scale3d(1, 1, 1)",cursor:"grab",transition:`transform ${St} ${X} 0s`,userSelect:"none","&-wrapper":Object.assign(Object.assign({},an()),{transition:`transform ${St} ${X} 0s`,display:"flex",justifyContent:"center",alignItems:"center","& > *":{pointerEvents:"auto"},"&::before":{display:"inline-block",width:1,height:"50%",marginInlineEnd:-1,content:'""'}})},[`${Ne}-moving`]:{[`${Ne}-preview-img`]:{cursor:"grabbing","&-wrapper":{transitionDuration:"0s"}}}}},{[`${xe}-preview-root`]:{[`${Ne}-wrap`]:{zIndex:Se.zIndexPopup}}},{[`${xe}-preview-operations-wrapper`]:{position:"fixed",zIndex:Se.zIndexPopup+1},"&":[Pn(Se),zn(Se)]}]},yr=Se=>{const{componentCls:X}=Se;return{[X]:{position:"relative",display:"inline-block",[`${X}-img`]:{width:"100%",height:"auto",verticalAlign:"middle"},[`${X}-img-placeholder`]:{backgroundColor:Se.colorBgContainerDisabled,backgroundImage:"url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=')",backgroundRepeat:"no-repeat",backgroundPosition:"center center",backgroundSize:"30%"},[`${X}-mask`]:Object.assign({},ln(Se)),[`${X}-mask:hover`]:{opacity:1},[`${X}-placeholder`]:Object.assign({},an())}}},kn=Se=>{const{previewCls:X}=Se;return{[`${X}-root`]:(0,Xt._y)(Se,"zoom"),["&"]:(0,pn.J$)(Se,!0)}};var ae=(0,Sn.Z)("Image",Se=>{const X=`${Se.componentCls}-preview`,Ne=(0,Gt.TS)(Se,{previewCls:X,modalMaskBg:new At.C("#000").setAlpha(.45).toRgbString(),imagePreviewSwitchSize:Se.controlHeightLG});return[yr(Ne),qn(Ne),(0,Lt.Q)((0,Gt.TS)(Ne,{componentCls:X})),kn(Ne)]},Se=>({zIndexPopup:Se.zIndexPopupBase+80,previewOperationColor:new At.C(Se.colorTextLightSolid).setAlpha(.65).toRgbString(),previewOperationHoverColor:new At.C(Se.colorTextLightSolid).setAlpha(.85).toRgbString(),previewOperationColorDisabled:new At.C(Se.colorTextLightSolid).setAlpha(.25).toRgbString(),previewOperationSize:Se.fontSizeIcon*1.5})),qe=function(Se,X){var Ne={};for(var St in Se)Object.prototype.hasOwnProperty.call(Se,St)&&X.indexOf(St)<0&&(Ne[St]=Se[St]);if(Se!=null&&typeof Object.getOwnPropertySymbols=="function")for(var xe=0,St=Object.getOwnPropertySymbols(Se);xe{var{previewPrefixCls:X,preview:Ne}=Se,St=qe(Se,["previewPrefixCls","preview"]);const{getPrefixCls:xe}=i.useContext(Ze.E_),fe=xe("image",X),L=`${fe}-preview`,D=xe(),[x,oe]=ae(fe),be=i.useMemo(()=>{var Ie;if(Ne===!1)return Ne;const Ye=typeof Ne=="object"?Ne:{},Ue=T()(oe,(Ie=Ye.rootClassName)!==null&&Ie!==void 0?Ie:"");return Object.assign(Object.assign({},Ye),{transitionName:(0,ve.m)(D,"zoom",Ye.transitionName),maskTransitionName:(0,ve.m)(D,"fade",Ye.maskTransitionName),rootClassName:Ue})},[Ne]);return x(i.createElement(xt.PreviewGroup,Object.assign({preview:be,previewPrefixCls:L,icons:_e},St)))},Be=function(Se,X){var Ne={};for(var St in Se)Object.prototype.hasOwnProperty.call(Se,St)&&X.indexOf(St)<0&&(Ne[St]=Se[St]);if(Se!=null&&typeof Object.getOwnPropertySymbols=="function")for(var xe=0,St=Object.getOwnPropertySymbols(Se);xe{const{prefixCls:X,preview:Ne,className:St,rootClassName:xe,style:fe}=Se,L=Be(Se,["prefixCls","preview","className","rootClassName","style"]),{getPrefixCls:D,locale:x=Oe.Z,getPopupContainer:oe,image:be}=i.useContext(Ze.E_),Ie=D("image",X),Ye=D(),Ue=x.Image||Oe.Z.Image,[et,Ht]=ae(Ie),mt=T()(xe,Ht),Cn=T()(St,Ht,be==null?void 0:be.className),bn=i.useMemo(()=>{if(Ne===!1)return Ne;const fn=typeof Ne=="object"?Ne:{},{getContainer:zt}=fn,cn=Be(fn,["getContainer"]);return Object.assign(Object.assign({mask:i.createElement("div",{className:`${Ie}-mask-info`},i.createElement(y.Z,null),Ue==null?void 0:Ue.preview),icons:_e},cn),{getContainer:zt||oe,transitionName:(0,ve.m)(Ye,"zoom",fn.transitionName),maskTransitionName:(0,ve.m)(Ye,"fade",fn.maskTransitionName)})},[Ne,Ue]),wt=Object.assign(Object.assign({},be==null?void 0:be.style),fe);return et(i.createElement(xt,Object.assign({prefixCls:Ie,preview:bn,rootClassName:mt,className:Cn,style:wt},L)))};we.PreviewGroup=Y;var vt=we},27592:function(Dt,De,e){"use strict";e.r(De),e.d(De,{Affix:function(){return i.Z},Alert:function(){return y.Z},Anchor:function(){return Re},App:function(){return me},AutoComplete:function(){return ve},Avatar:function(){return Ze.C},BackTop:function(){return ie},Badge:function(){return _.Z},Breadcrumb:function(){return Xe.Z},Button:function(){return it.ZP},Calendar:function(){return ae},Card:function(){return qe.Z},Carousel:function(){return ye},Cascader:function(){return Qe.Z},Checkbox:function(){return Tt.Z},Col:function(){return en.Z},Collapse:function(){return Bn.Z},ColorPicker:function(){return Mt},ConfigProvider:function(){return $t.ZP},DatePicker:function(){return Kt.Z},Descriptions:function(){return eo},Divider:function(){return ra.Z},Drawer:function(){return Jo.Z},Dropdown:function(){return bo.Z},Empty:function(){return ta.Z},FloatButton:function(){return _a},Form:function(){return Ui.Z},Grid:function(){return ki.ZP},Image:function(){return ul.Z},Input:function(){return Ia.Z},InputNumber:function(){return Zo.Z},Layout:function(){return Ci.Z},List:function(){return ii.Z},Mentions:function(){return Ss},Menu:function(){return c.Z},Modal:function(){return d.Z},Pagination:function(){return N.Z},Popconfirm:function(){return q.Z},Popover:function(){return ur.Z},Progress:function(){return He.Z},QRCode:function(){return bi},Radio:function(){return tl.ZP},Rate:function(){return gl.Z},Result:function(){return ls.ZP},Row:function(){return Ms.Z},Segmented:function(){return Ns.Z},Select:function(){return ft.Z},Skeleton:function(){return ss.Z},Slider:function(){return xs.Z},Space:function(){return hs.Z},Spin:function(){return al.Z},Statistic:function(){return fc},Steps:function(){return vc.Z},Switch:function(){return Es.Z},Table:function(){return mc.Z},Tabs:function(){return _s.Z},Tag:function(){return Ks.Z},TimePicker:function(){return Yc.Z},Timeline:function(){return nd},Tooltip:function(){return po.Z},Tour:function(){return $d},Transfer:function(){return Jd},Tree:function(){return qd.Z},TreeSelect:function(){return _d.Z},Typography:function(){return eu.Z},Upload:function(){return tu.Z},Watermark:function(){return hu},message:function(){return r.ZP},notification:function(){return u.Z},theme:function(){return to.Z},version:function(){return nu.Z}});var i=e(76152),y=e(15618),I=e(29140),T=e(87608),F=e.n(T),H=e(51729),t=e(58757),j=e(18591),M=e(97513),Ce=e(43120),de=e(61836),K=t.createContext(void 0),f=o=>{const{href:n,title:l,prefixCls:s,children:a,className:h,target:m,replace:$}=o,p=t.useContext(K),{registerLink:S,unregisterLink:B,scrollTo:k,onClick:pe,activeLink:We,direction:Ee}=p||{};t.useEffect(()=>(S==null||S(n),()=>{B==null||B(n)}),[n]);const rt=nn=>{$&&(nn.preventDefault(),window.location.replace(n)),pe==null||pe(nn,{title:l,href:n}),k==null||k(n)},{getPrefixCls:lt}=t.useContext(de.E_),Wt=lt("anchor",s),Bt=We===n,Rt=F()(`${Wt}-link`,h,{[`${Wt}-link-active`]:Bt}),dn=F()(`${Wt}-link-title`,{[`${Wt}-link-title-active`]:Bt});return t.createElement("div",{className:Rt},t.createElement("a",{className:dn,href:n,title:typeof l=="string"?l:"",target:m,onClick:rt},l),Ee!=="horizontal"?a:null)},te=e(78330),A=e(52628),J=e(22151);const $e=o=>{const{componentCls:n,holderOffsetBlock:l,motionDurationSlow:s,lineWidthBold:a,colorPrimary:h,lineType:m,colorSplit:$}=o;return{[`${n}-wrapper`]:{marginBlockStart:-l,paddingBlockStart:l,[n]:Object.assign(Object.assign({},(0,te.Wf)(o)),{position:"relative",paddingInlineStart:a,[`${n}-link`]:{paddingBlock:o.linkPaddingBlock,paddingInline:`${o.linkPaddingInlineStart}px 0`,"&-title":Object.assign(Object.assign({},te.vS),{position:"relative",display:"block",marginBlockEnd:o.anchorTitleBlock,color:o.colorText,transition:`all ${o.motionDurationSlow}`,"&:only-child":{marginBlockEnd:0}}),[`&-active > ${n}-link-title`]:{color:o.colorPrimary},[`${n}-link`]:{paddingBlock:o.anchorPaddingBlockSecondary}}}),[`&:not(${n}-wrapper-horizontal)`]:{[n]:{"&::before":{position:"absolute",insetInlineStart:0,top:0,height:"100%",borderInlineStart:`${a}px ${m} ${$}`,content:'" "'},[`${n}-ink`]:{position:"absolute",insetInlineStart:0,display:"none",transform:"translateY(-50%)",transition:`top ${s} ease-in-out`,width:a,backgroundColor:h,[`&${n}-ink-visible`]:{display:"inline-block"}}}},[`${n}-fixed ${n}-ink ${n}-ink`]:{display:"none"}}}},z=o=>{const{componentCls:n,motionDurationSlow:l,lineWidthBold:s,colorPrimary:a}=o;return{[`${n}-wrapper-horizontal`]:{position:"relative","&::before":{position:"absolute",left:{_skip_check_:!0,value:0},right:{_skip_check_:!0,value:0},bottom:0,borderBottom:`1px ${o.lineType} ${o.colorSplit}`,content:'" "'},[n]:{overflowX:"scroll",position:"relative",display:"flex",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"},[`${n}-link:first-of-type`]:{paddingInline:0},[`${n}-ink`]:{position:"absolute",bottom:0,transition:`left ${l} ease-in-out, width ${l} ease-in-out`,height:s,backgroundColor:a}}}}};var g=(0,A.Z)("Anchor",o=>{const{fontSize:n,fontSizeLG:l,paddingXXS:s}=o,a=(0,J.TS)(o,{holderOffsetBlock:s,anchorPaddingBlockSecondary:s/2,anchorTitleBlock:n/14*3,anchorBallSize:l/2});return[$e(a),z(a)]},o=>({linkPaddingBlock:o.paddingXXS,linkPaddingInlineStart:o.padding}));function Ve(){return window}function Zt(o,n){if(!o.getClientRects().length)return 0;const l=o.getBoundingClientRect();return l.width||l.height?n===window?(n=o.ownerDocument.documentElement,l.top-n.clientTop):l.top-n.getBoundingClientRect().top:l.top}const Le=/#([\S ]+)$/,G=o=>{var n;const{rootClassName:l,anchorPrefixCls:s,className:a,style:h,offsetTop:m,affix:$=!0,showInkInFixed:p=!1,children:S,items:B,direction:k="vertical",bounds:pe,targetOffset:We,onClick:Ee,onChange:rt,getContainer:lt,getCurrentAnchor:Wt,replace:Bt}=o,[Rt,dn]=t.useState([]),[nn,wn]=t.useState(null),Tn=t.useRef(nn),Vn=t.useRef(null),pr=t.useRef(null),jr=t.useRef(!1),{direction:Ko,getTargetContainer:Wr,anchor:Mr}=t.useContext(de.E_),$r=(n=lt!=null?lt:Wr)!==null&&n!==void 0?n:Ve,uo=JSON.stringify(Rt),$a=(0,H.Z)($o=>{Rt.includes($o)||dn(Yo=>[].concat((0,I.Z)(Yo),[$o]))}),Vo=(0,H.Z)($o=>{Rt.includes($o)&&dn(Yo=>Yo.filter(di=>di!==$o))}),ya=()=>{var $o;const Yo=($o=Vn.current)===null||$o===void 0?void 0:$o.querySelector(`.${s}-link-title-active`);if(Yo&&pr.current){const{style:di}=pr.current,Fr=k==="horizontal";di.top=Fr?"":`${Yo.offsetTop+Yo.clientHeight/2}px`,di.height=Fr?"":`${Yo.clientHeight}px`,di.left=Fr?`${Yo.offsetLeft}px`:"",di.width=Fr?`${Yo.clientWidth}px`:"",Fr&&(0,j.Z)(Yo,{scrollMode:"if-needed",block:"nearest"})}},xi=function($o){let Yo=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,di=arguments.length>2&&arguments[2]!==void 0?arguments[2]:5;const Fr=[],la=$r();return $o.forEach(Ii=>{const ro=Le.exec(Ii==null?void 0:Ii.toString());if(!ro)return;const Ao=document.getElementById(ro[1]);if(Ao){const Ha=Zt(Ao,la);HaAo.top>ro.top?Ao:ro).link:""},Ca=(0,H.Z)($o=>{if(Tn.current===$o)return;const Yo=typeof Wt=="function"?Wt($o):$o;wn(Yo),Tn.current=Yo,rt==null||rt($o)}),ja=t.useCallback(()=>{if(jr.current)return;const $o=xi(Rt,We!==void 0?We:m||0,pe);Ca($o)},[uo,We,m]),mo=t.useCallback($o=>{Ca($o);const Yo=Le.exec($o);if(!Yo)return;const di=document.getElementById(Yo[1]);if(!di)return;const Fr=$r(),la=(0,M.Z)(Fr,!0),Ii=Zt(di,Fr);let ro=la+Ii;ro-=We!==void 0?We:m||0,jr.current=!0,(0,Ce.Z)(ro,{getContainer:$r,callback(){jr.current=!1}})},[We,m]),ia=F()(l,`${s}-wrapper`,{[`${s}-wrapper-horizontal`]:k==="horizontal",[`${s}-rtl`]:Ko==="rtl"},a,Mr==null?void 0:Mr.className),Gr=F()(s,{[`${s}-fixed`]:!$&&!p}),Aa=F()(`${s}-ink`,{[`${s}-ink-visible`]:nn}),ni=Object.assign(Object.assign({maxHeight:m?`calc(100vh - ${m}px)`:"100vh"},Mr==null?void 0:Mr.style),h),Sa=$o=>Array.isArray($o)?$o.map(Yo=>t.createElement(f,Object.assign({replace:Bt},Yo,{key:Yo.key}),k==="vertical"&&Sa(Yo.children))):null,ua=t.createElement("div",{ref:Vn,className:ia,style:ni},t.createElement("div",{className:Gr},t.createElement("span",{className:Aa,ref:pr}),"items"in o?Sa(B):S));t.useEffect(()=>{const $o=$r();return ja(),$o==null||$o.addEventListener("scroll",ja),()=>{$o==null||$o.removeEventListener("scroll",ja)}},[uo]),t.useEffect(()=>{typeof Wt=="function"&&Ca(Wt(Tn.current||""))},[Wt]),t.useEffect(()=>{ya()},[k,Wt,uo,nn]);const ll=t.useMemo(()=>({registerLink:$a,unregisterLink:Vo,scrollTo:mo,activeLink:nn,onClick:Ee,direction:k}),[nn,Ee,mo,k]);return t.createElement(K.Provider,{value:ll},$?t.createElement(i.Z,{offsetTop:m,target:$r},ua):ua)};var Me=o=>{const{prefixCls:n,rootClassName:l}=o,{getPrefixCls:s}=t.useContext(de.E_),a=s("anchor",n),[h,m]=g(a);return h(t.createElement(G,Object.assign({},o,{rootClassName:F()(m,l),anchorPrefixCls:a})))};const P=Me;P.Link=f;var Re=P,ct=e(45054),ee=e(65172),ue=e(75105);const se=t.createContext({});var ot=t.createContext({message:{},notification:{},modal:{}});const Fe=o=>{const{componentCls:n,colorText:l,fontSize:s,lineHeight:a,fontFamily:h}=o;return{[n]:{color:l,fontSize:s,lineHeight:a,fontFamily:h}}};var ut=(0,A.Z)("App",o=>[Fe(o)]);const U=()=>t.useContext(ot),W=o=>{const{prefixCls:n,children:l,className:s,rootClassName:a,message:h,notification:m,style:$}=o,{getPrefixCls:p}=(0,t.useContext)(de.E_),S=p("app",n),[B,k]=ut(S),pe=F()(k,S,s,a),We=(0,t.useContext)(se),Ee=t.useMemo(()=>({message:Object.assign(Object.assign({},We.message),h),notification:Object.assign(Object.assign({},We.notification),m)}),[h,m,We.message,We.notification]),[rt,lt]=(0,ct.Z)(Ee.message),[Wt,Bt]=(0,ue.Z)(Ee.notification),[Rt,dn]=(0,ee.Z)(),nn=t.useMemo(()=>({message:rt,notification:Wt,modal:Rt}),[rt,Wt,Rt]);return B(t.createElement(ot.Provider,{value:nn},t.createElement(se.Provider,{value:Ee},t.createElement("div",{className:pe,style:$},dn,lt,Bt,l))))};W.useApp=U;var me=W,he=e(42156),ht=e(98186),at=e(15018),pt=e(37047),ft=e(59504);const{Option:gt}=ft.Z;function Ut(o){return o&&o.type&&(o.type.isSelectOption||o.type.isSelectOptGroup)}const It=(o,n)=>{const{prefixCls:l,className:s,popupClassName:a,dropdownClassName:h,children:m,dataSource:$}=o,p=(0,he.Z)(m);let S;p.length===1&&(0,pt.l$)(p[0])&&!Ut(p[0])&&([S]=p);const B=S?()=>S:void 0;let k;p.length&&Ut(p[0])?k=m:k=$?$.map(Ee=>{if((0,pt.l$)(Ee))return Ee;switch(typeof Ee){case"string":return t.createElement(gt,{key:Ee,value:Ee},Ee);case"object":{const{value:rt}=Ee;return t.createElement(gt,{key:rt,value:rt},Ee.text)}default:return}}):[];const{getPrefixCls:pe}=t.useContext(de.E_),We=pe("select",l);return t.createElement(ft.Z,Object.assign({ref:n,suffixIcon:null},(0,ht.Z)(o,["dataSource","dropdownClassName"]),{prefixCls:We,popupClassName:a||h,className:F()(`${We}-auto-complete`,s),mode:ft.Z.SECRET_COMBOBOX_MODE_DO_NOT_USE,getInputElement:B}),k)},bt=t.forwardRef(It),xt=(0,at.Z)(bt);bt.Option=gt,bt._InternalPanelDoNotUseOrYouWillBeFired=xt;var ve=bt,Ze=e(9466),Oe=e(92232),je=e(17598),O=e(72781);const Ae=o=>{const{componentCls:n,backTopFontSize:l,backTopSize:s,zIndexPopup:a}=o;return{[n]:Object.assign(Object.assign({},(0,te.Wf)(o)),{position:"fixed",insetInlineEnd:o.backTopInlineEnd,insetBlockEnd:o.backTopBlockEnd,zIndex:a,width:40,height:40,cursor:"pointer","&:empty":{display:"none"},[`${n}-content`]:{width:s,height:s,overflow:"hidden",color:o.backTopColor,textAlign:"center",backgroundColor:o.backTopBackground,borderRadius:s,transition:`all ${o.motionDurationMid}`,"&:hover":{backgroundColor:o.backTopHoverBackground,transition:`all ${o.motionDurationMid}`}},[`${n}-icon`]:{fontSize:l,lineHeight:`${s}px`}})}},Z=o=>{const{componentCls:n}=o;return{[`@media (max-width: ${o.screenMD}px)`]:{[n]:{insetInlineEnd:o.backTopInlineEndMD}},[`@media (max-width: ${o.screenXS}px)`]:{[n]:{insetInlineEnd:o.backTopInlineEndXS}}}};var b=(0,A.Z)("BackTop",o=>{const{fontSizeHeading3:n,colorTextDescription:l,colorTextLightSolid:s,colorText:a,controlHeightLG:h}=o,m=(0,J.TS)(o,{backTopBackground:l,backTopColor:s,backTopHoverBackground:a,backTopFontSize:n,backTopSize:h,backTopBlockEnd:h*1.25,backTopInlineEnd:h*2.5,backTopInlineEndMD:h*1.5,backTopInlineEndXS:h*.5});return[Ae(m),Z(m)]},o=>({zIndexPopup:o.zIndexBase+10})),ie=o=>{const{prefixCls:n,className:l,rootClassName:s,visibilityHeight:a=400,target:h,onClick:m,duration:$=450}=o,[p,S]=t.useState(a===0),B=t.useRef(null),k=()=>B.current&&B.current.ownerDocument?B.current.ownerDocument:window,pe=(0,O.Z)(Tn=>{const Vn=(0,M.Z)(Tn.target,!0);S(Vn>=a)});t.useEffect(()=>{const Vn=(h||k)();return pe({target:Vn}),Vn==null||Vn.addEventListener("scroll",pe),()=>{pe.cancel(),Vn==null||Vn.removeEventListener("scroll",pe)}},[h]);const We=Tn=>{(0,Ce.Z)(0,{getContainer:h||k,duration:$}),m==null||m(Tn)},{getPrefixCls:Ee,direction:rt}=t.useContext(de.E_),lt=Ee("back-top",n),Wt=Ee(),[Bt,Rt]=b(lt),dn=F()(Rt,lt,{[`${lt}-rtl`]:rt==="rtl"},l,s),nn=(0,ht.Z)(o,["prefixCls","className","rootClassName","children","visibilityHeight","target"]),wn=t.createElement("div",{className:`${lt}-content`},t.createElement("div",{className:`${lt}-icon`},t.createElement(Oe.Z,null)));return Bt(t.createElement("div",Object.assign({},nn,{className:dn,onClick:We,ref:B}),t.createElement(je.ZP,{visible:p,motionName:`${Wt}-fade`},Tn=>{let{className:Vn}=Tn;return(0,pt.Tm)(o.children||wn,pr=>{let{className:jr}=pr;return{className:F()(Vn,jr)}})})))},_=e(38914),Xe=e(73695),it=e(12562),Ct=e(19688),Pt=e(72108),Nt=e(60409),Vt=e(29487),kt=e(81496),tt=e(40256),dt=e(42253);const Ft=10,At=20;function Lt(o){const{fullscreen:n,validRange:l,generateConfig:s,locale:a,prefixCls:h,value:m,onChange:$,divRef:p}=o,S=s.getYear(m||s.getNow());let B=S-Ft,k=B+At;l&&(B=s.getYear(l[0]),k=s.getYear(l[1])+1);const pe=a&&a.year==="\u5E74"?"\u5E74":"",We=[];for(let Ee=B;Ee{let rt=s.setYear(m,Ee);if(l){const[lt,Wt]=l,Bt=s.getYear(rt),Rt=s.getMonth(rt);Bt===s.getYear(Wt)&&Rt>s.getMonth(Wt)&&(rt=s.setMonth(rt,s.getMonth(Wt))),Bt===s.getYear(lt)&&Rtp.current})}function un(o){const{prefixCls:n,fullscreen:l,validRange:s,value:a,generateConfig:h,locale:m,onChange:$,divRef:p}=o,S=h.getMonth(a||h.getNow());let B=0,k=11;if(s){const[Ee,rt]=s,lt=h.getYear(a);h.getYear(rt)===lt&&(k=h.getMonth(rt)),h.getYear(Ee)===lt&&(B=h.getMonth(Ee))}const pe=m.shortMonths||h.locale.getShortMonths(m.locale),We=[];for(let Ee=B;Ee<=k;Ee+=1)We.push({label:pe[Ee],value:Ee});return t.createElement(ft.Z,{size:l?void 0:"small",className:`${n}-month-select`,value:S,options:We,onChange:Ee=>{$(h.setMonth(a,Ee))},getPopupContainer:()=>p.current})}function Xt(o){const{prefixCls:n,locale:l,mode:s,fullscreen:a,onModeChange:h}=o;return t.createElement(tt.Z,{onChange:m=>{let{target:{value:$}}=m;h($)},value:s,size:a?void 0:"small",className:`${n}-mode-switch`},t.createElement(dt.Z,{value:"month"},l.month),t.createElement(dt.Z,{value:"year"},l.year))}function pn(o){const{prefixCls:n,fullscreen:l,mode:s,onChange:a,onModeChange:h}=o,m=t.useRef(null),$=(0,t.useContext)(kt.aM),p=(0,t.useMemo)(()=>Object.assign(Object.assign({},$),{isFormItemInput:!1}),[$]),S=Object.assign(Object.assign({},o),{fullscreen:l,divRef:m});return t.createElement("div",{className:`${n}-header`,ref:m},t.createElement(kt.aM.Provider,{value:p},t.createElement(Lt,Object.assign({},S,{onChange:B=>{a(B,"year")}})),s==="month"&&t.createElement(un,Object.assign({},S,{onChange:B=>{a(B,"month")}}))),t.createElement(Xt,Object.assign({},S,{onModeChange:h})))}var Sn=pn,Gt=e(81872),an=e(8455),ln=e(46902);const Pn=o=>{const{calendarCls:n,componentCls:l,fullBg:s,fullPanelBg:a,itemActiveBg:h}=o;return{[n]:Object.assign(Object.assign(Object.assign({},(0,an.kX)(o)),(0,te.Wf)(o)),{background:s,"&-rtl":{direction:"rtl"},[`${n}-header`]:{display:"flex",justifyContent:"flex-end",padding:`${o.paddingSM}px 0`,[`${n}-year-select`]:{minWidth:o.yearControlWidth},[`${n}-month-select`]:{minWidth:o.monthControlWidth,marginInlineStart:o.marginXS},[`${n}-mode-switch`]:{marginInlineStart:o.marginXS}}}),[`${n} ${l}-panel`]:{background:a,border:0,borderTop:`${o.lineWidth}px ${o.lineType} ${o.colorSplit}`,borderRadius:0,[`${l}-month-panel, ${l}-date-panel`]:{width:"auto"},[`${l}-body`]:{padding:`${o.paddingXS}px 0`},[`${l}-content`]:{width:"100%"}},[`${n}-mini`]:{borderRadius:o.borderRadiusLG,[`${n}-header`]:{paddingInlineEnd:o.paddingXS,paddingInlineStart:o.paddingXS},[`${l}-panel`]:{borderRadius:`0 0 ${o.borderRadiusLG}px ${o.borderRadiusLG}px`},[`${l}-content`]:{height:o.miniContentHeight,th:{height:"auto",padding:0,lineHeight:`${o.weekHeight}px`}},[`${l}-cell::before`]:{pointerEvents:"none"}},[`${n}${n}-full`]:{[`${l}-panel`]:{display:"block",width:"100%",textAlign:"end",background:s,border:0,[`${l}-body`]:{"th, td":{padding:0},th:{height:"auto",paddingInlineEnd:o.paddingSM,paddingBottom:o.paddingXXS,lineHeight:`${o.weekHeight}px`}}},[`${l}-cell`]:{"&::before":{display:"none"},"&:hover":{[`${n}-date`]:{background:o.controlItemBgHover}},[`${n}-date-today::before`]:{display:"none"},[`&-in-view${l}-cell-selected`]:{[`${n}-date, ${n}-date-today`]:{background:h}},"&-selected, &-selected:hover":{[`${n}-date, ${n}-date-today`]:{[`${n}-date-value`]:{color:o.colorPrimary}}}},[`${n}-date`]:{display:"block",width:"auto",height:"auto",margin:`0 ${o.marginXS/2}px`,padding:`${o.paddingXS/2}px ${o.paddingXS}px 0`,border:0,borderTop:`${o.lineWidthBold}px ${o.lineType} ${o.colorSplit}`,borderRadius:0,transition:`background ${o.motionDurationSlow}`,"&-value":{lineHeight:`${o.dateValueHeight}px`,transition:`color ${o.motionDurationSlow}`},"&-content":{position:"static",width:"auto",height:o.dateContentHeight,overflowY:"auto",color:o.colorText,lineHeight:o.lineHeight,textAlign:"start"},"&-today":{borderColor:o.colorPrimary,[`${n}-date-value`]:{color:o.colorText}}}},[`@media only screen and (max-width: ${o.screenXS}px) `]:{[`${n}`]:{[`${n}-header`]:{display:"block",[`${n}-year-select`]:{width:"50%"},[`${n}-month-select`]:{width:`calc(50% - ${o.paddingXS}px)`},[`${n}-mode-switch`]:{width:"100%",marginTop:o.marginXS,marginInlineStart:0,"> label":{width:"50%",textAlign:"center"}}}}}}};var zn=(0,A.Z)("Calendar",o=>{const n=`${o.componentCls}-calendar`,l=(0,J.TS)((0,ln.e5)(o),(0,an.vA)(o),{calendarCls:n,pickerCellInnerCls:`${o.componentCls}-cell-inner`,dateValueHeight:o.controlHeightSM,weekHeight:o.controlHeightSM*.75,dateContentHeight:(o.fontSizeSM*o.lineHeightSM+o.marginXS)*3+o.lineWidth*2});return[Pn(l)]},o=>({fullBg:o.colorBgContainer,fullPanelBg:o.colorBgContainer,itemActiveBg:o.controlItemBgActive,yearControlWidth:80,monthControlWidth:70,miniContentHeight:256}));function qn(o){function n(h,m){return h&&m&&o.getYear(h)===o.getYear(m)}function l(h,m){return n(h,m)&&o.getMonth(h)===o.getMonth(m)}function s(h,m){return l(h,m)&&o.getDate(h)===o.getDate(m)}return h=>{const{prefixCls:m,className:$,rootClassName:p,style:S,dateFullCellRender:B,dateCellRender:k,monthFullCellRender:pe,monthCellRender:We,cellRender:Ee,fullCellRender:rt,headerRender:lt,value:Wt,defaultValue:Bt,disabledDate:Rt,mode:dn,validRange:nn,fullscreen:wn=!0,onChange:Tn,onPanelChange:Vn,onSelect:pr}=h,{getPrefixCls:jr,direction:Ko,calendar:Wr}=t.useContext(de.E_),Mr=jr("picker",m),$r=`${Mr}-calendar`,[uo,$a]=zn(Mr),Vo=o.getNow(),[ya,xi]=(0,Nt.Z)(()=>Wt||o.getNow(),{defaultValue:Bt,value:Wt}),[Ca,ja]=(0,Nt.Z)("month",{value:dn}),mo=t.useMemo(()=>Ca==="year"?"month":"date",[Ca]),ia=t.useCallback(Fr=>(nn?o.isAfter(nn[0],Fr)||o.isAfter(Fr,nn[1]):!1)||!!(Rt!=null&&Rt(Fr)),[Rt,nn]),Gr=(Fr,la)=>{Vn==null||Vn(Fr,la)},Aa=Fr=>{xi(Fr),s(Fr,ya)||((mo==="date"&&!l(Fr,ya)||mo==="month"&&!n(Fr,ya))&&Gr(Fr,Ca),Tn==null||Tn(Fr))},ni=Fr=>{ja(Fr),Gr(ya,Fr)},Sa=(Fr,la)=>{Aa(Fr),pr==null||pr(Fr,{source:la})},ua=()=>{const{locale:Fr}=h,la=Object.assign(Object.assign({},Gt.Z),Fr);return la.lang=Object.assign(Object.assign({},la.lang),(Fr||{}).lang),la},ll=t.useCallback((Fr,la)=>rt?rt(Fr,la):B?B(Fr):t.createElement("div",{className:F()(`${Mr}-cell-inner`,`${$r}-date`,{[`${$r}-date-today`]:s(Vo,Fr)})},t.createElement("div",{className:`${$r}-date-value`},String(o.getDate(Fr)).padStart(2,"0")),t.createElement("div",{className:`${$r}-date-content`},Ee?Ee(Fr,la):k&&k(Fr))),[B,k,Ee,rt]),$o=t.useCallback((Fr,la)=>{if(rt)return rt(Fr,la);if(pe)return pe(Fr);const Ii=la.locale.shortMonths||o.locale.getShortMonths(la.locale.locale);return t.createElement("div",{className:F()(`${Mr}-cell-inner`,`${$r}-date`,{[`${$r}-date-today`]:l(Vo,Fr)})},t.createElement("div",{className:`${$r}-date-value`},Ii[o.getMonth(Fr)]),t.createElement("div",{className:`${$r}-date-content`},Ee?Ee(Fr,la):We&&We(Fr)))},[pe,We,Ee,rt]),[Yo]=(0,Vt.Z)("Calendar",ua),di=(Fr,la)=>{if(la.type==="date")return ll(Fr,la);if(la.type==="month")return $o(Fr,Object.assign(Object.assign({},la),{locale:Yo==null?void 0:Yo.lang}))};return uo(t.createElement("div",{className:F()($r,{[`${$r}-full`]:wn,[`${$r}-mini`]:!wn,[`${$r}-rtl`]:Ko==="rtl"},Wr==null?void 0:Wr.className,$,p,$a),style:Object.assign(Object.assign({},Wr==null?void 0:Wr.style),S)},lt?lt({value:ya,type:Ca,onChange:Fr=>{Sa(Fr,"customize")},onTypeChange:ni}):t.createElement(Sn,{prefixCls:$r,value:ya,generateConfig:o,mode:Ca,fullscreen:wn,locale:Yo==null?void 0:Yo.lang,validRange:nn,onChange:Sa,onModeChange:ni}),t.createElement(Pt.N4,{value:ya,prefixCls:Mr,locale:Yo==null?void 0:Yo.lang,generateConfig:o,cellRender:di,onSelect:Fr=>{Sa(Fr,mo)},mode:mo,picker:mo,disabledDate:ia,hideHeader:!0})))}}var yr=qn;const kn=yr(Ct.Z);kn.generateCalendar=yr;var ae=kn,qe=e(18624),_e=e(60698),re=e(57370),Y=e(60412),Be=e(14346),we=e(86717),vt=e(87498),Se=e(73726),X=e(37734),Ne=e(38790),St=e(47075),xe={animating:!1,autoplaying:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,dragging:!1,edgeDragged:!1,initialized:!1,lazyLoadedList:[],listHeight:null,listWidth:null,scrolling:!1,slideCount:null,slideHeight:null,slideWidth:null,swipeLeft:null,swiped:!1,swiping:!1,touchObject:{startX:0,startY:0,curX:0,curY:0},trackStyle:{},trackWidth:0,targetSlide:0},fe=xe,L=e(70989);function D(o,n,l){return Math.max(n,Math.min(o,l))}var x=function(n){var l=["onTouchStart","onTouchMove","onWheel"];l.includes(n._reactName)||n.preventDefault()},oe=function(n){for(var l=[],s=Ie(n),a=Ye(n),h=s;h0?1:0):0},et=function(n){return n.centerMode?Math.floor((n.slidesToShow-1)/2)+1+(parseInt(n.centerPadding)>0?1:0):n.slidesToShow},Ht=function(n){return n&&n.offsetWidth||0},mt=function(n){return n&&n.offsetHeight||0},Cn=function(n){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,s,a,h,m;return s=n.startX-n.curX,a=n.startY-n.curY,h=Math.atan2(a,s),m=Math.round(h*180/Math.PI),m<0&&(m=360-Math.abs(m)),m<=45&&m>=0||m<=360&&m>=315?"left":m>=135&&m<=225?"right":l===!0?m>=35&&m<=135?"up":"down":"vertical"},bn=function(n){var l=!0;return n.infinite||(n.centerMode&&n.currentSlide>=n.slideCount-1||n.slideCount<=n.slidesToShow||n.currentSlide>=n.slideCount-n.slidesToShow)&&(l=!1),l},wt=function(n,l){var s={};return l.forEach(function(a){return s[a]=n[a]}),s},fn=function(n){var l=t.Children.count(n.children),s=n.listRef,a=Math.ceil(Ht(s)),h=n.trackRef&&n.trackRef.node,m=Math.ceil(Ht(h)),$;if(n.vertical)$=a;else{var p=n.centerMode&&parseInt(n.centerPadding)*2;typeof n.centerPadding=="string"&&n.centerPadding.slice(-1)==="%"&&(p*=a/100),$=Math.ceil((a-p)/n.slidesToShow)}var S=s&&mt(s.querySelector('[data-index="0"]')),B=S*n.slidesToShow,k=n.currentSlide===void 0?n.initialSlide:n.currentSlide;n.rtl&&n.currentSlide===void 0&&(k=l-1-n.initialSlide);var pe=n.lazyLoadedList||[],We=oe((0,re.Z)((0,re.Z)({},n),{},{currentSlide:k,lazyLoadedList:pe}));pe=pe.concat(We);var Ee={slideCount:l,slideWidth:$,listWidth:a,trackWidth:m,currentSlide:k,slideHeight:S,listHeight:B,lazyLoadedList:pe};return n.autoplaying===null&&n.autoplay&&(Ee.autoplaying="playing"),Ee},zt=function(n){var l=n.waitForAnimate,s=n.animating,a=n.fade,h=n.infinite,m=n.index,$=n.slideCount,p=n.lazyLoad,S=n.currentSlide,B=n.centerMode,k=n.slidesToScroll,pe=n.slidesToShow,We=n.useCSS,Ee=n.lazyLoadedList;if(l&&s)return{};var rt=m,lt,Wt,Bt,Rt={},dn={},nn=h?m:D(m,0,$-1);if(a){if(!h&&(m<0||m>=$))return{};m<0?rt=m+$:m>=$&&(rt=m-$),p&&Ee.indexOf(rt)<0&&(Ee=Ee.concat(rt)),Rt={animating:!0,currentSlide:rt,lazyLoadedList:Ee,targetSlide:rt},dn={animating:!1,targetSlide:rt}}else lt=rt,rt<0?(lt=rt+$,h?$%k!==0&&(lt=$-$%k):lt=0):!bn(n)&&rt>S?rt=lt=S:B&&rt>=$?(rt=h?$:$-1,lt=h?0:$-1):rt>=$&&(lt=rt-$,h?$%k!==0&&(lt=0):lt=$-pe),!h&&rt+pe>=$&&(lt=$-pe),Wt=er((0,re.Z)((0,re.Z)({},n),{},{slideIndex:rt})),Bt=er((0,re.Z)((0,re.Z)({},n),{},{slideIndex:lt})),h||(Wt===Bt&&(rt=lt),Wt=Bt),p&&(Ee=Ee.concat(oe((0,re.Z)((0,re.Z)({},n),{},{currentSlide:rt})))),We?(Rt={animating:!0,currentSlide:lt,trackStyle:Gn((0,re.Z)((0,re.Z)({},n),{},{left:Wt})),lazyLoadedList:Ee,targetSlide:nn},dn={animating:!1,currentSlide:lt,trackStyle:_n((0,re.Z)((0,re.Z)({},n),{},{left:Bt})),swipeLeft:null,targetSlide:nn}):Rt={currentSlide:lt,trackStyle:_n((0,re.Z)((0,re.Z)({},n),{},{left:Bt})),lazyLoadedList:Ee,targetSlide:nn};return{state:Rt,nextState:dn}},cn=function(n,l){var s,a,h,m,$,p=n.slidesToScroll,S=n.slidesToShow,B=n.slideCount,k=n.currentSlide,pe=n.targetSlide,We=n.lazyLoad,Ee=n.infinite;if(m=B%p!==0,s=m?0:(B-k)%p,l.message==="previous")h=s===0?p:S-s,$=k-h,We&&!Ee&&(a=k-h,$=a===-1?B-1:a),Ee||($=pe-p);else if(l.message==="next")h=s===0?p:s,$=k+h,We&&!Ee&&($=(k+p)%B+s),Ee||($=pe+p);else if(l.message==="dots")$=l.index*l.slidesToScroll;else if(l.message==="children"){if($=l.index,Ee){var rt=Hn((0,re.Z)((0,re.Z)({},n),{},{targetSlide:$}));$>l.currentSlide&&rt==="left"?$=$-B:$10)return{scrolling:!0};$&&(Bt.swipeLength=pr);var jr=(p?-1:1)*(Bt.curX>Bt.startX?1:-1);$&&(jr=Bt.curY>Bt.startY?1:-1);var Ko=Math.ceil(rt/lt),Wr=Cn(l.touchObject,$),Mr=Bt.swipeLength;return Wt||(S===0&&(Wr==="right"||Wr==="down")||S+1>=Ko&&(Wr==="left"||Wr==="up")||!bn(l)&&(Wr==="left"||Wr==="up"))&&(Mr=Bt.swipeLength*B,k===!1&&pe&&(pe(Wr),Tn.edgeDragged=!0)),!We&&Rt&&(Rt(Wr),Tn.swiped=!0),h?wn=Vn+Mr*(dn/nn)*jr:p?wn=Vn-Mr*jr:wn=Vn+Mr*jr,$&&(wn=Vn+Mr*jr),Tn=(0,re.Z)((0,re.Z)({},Tn),{},{touchObject:Bt,swipeLeft:wn,trackStyle:_n((0,re.Z)((0,re.Z)({},l),{},{left:wn}))}),Math.abs(Bt.curX-Bt.startX)10&&(Tn.swiping=!0,x(n)),Tn}},Zn=function(n,l){var s=l.dragging,a=l.swipe,h=l.touchObject,m=l.listWidth,$=l.touchThreshold,p=l.verticalSwiping,S=l.listHeight,B=l.swipeToSlide,k=l.scrolling,pe=l.onSwipe,We=l.targetSlide,Ee=l.currentSlide,rt=l.infinite;if(!s)return a&&x(n),{};var lt=p?S/$:m/$,Wt=Cn(h,p),Bt={dragging:!1,edgeDragged:!1,scrolling:!1,swiping:!1,swiped:!1,swipeLeft:null,touchObject:{}};if(k||!h.swipeLength)return Bt;if(h.swipeLength>lt){x(n),pe&&pe(Wt);var Rt,dn,nn=rt?Ee:We;switch(Wt){case"left":case"up":dn=nn+jn(l),Rt=B?vr(l,dn):dn,Bt.currentDirection=0;break;case"right":case"down":dn=nn-jn(l),Rt=B?vr(l,dn):dn,Bt.currentDirection=1;break;default:Rt=nn}Bt.triggerSlideHandler=Rt}else{var wn=er(l);Bt.trackStyle=Gn((0,re.Z)((0,re.Z)({},l),{},{left:wn}))}return Bt},Kn=function(n){for(var l=n.infinite?n.slideCount*2:n.slideCount,s=n.infinite?n.slidesToShow*-1:0,a=n.infinite?n.slidesToShow*-1:0,h=[];ss[s.length-1])l=s[s.length-1];else for(var h in s){if(ln.swipeLeft*-1)return s=p,!1}else if(p.offsetLeft-l+Ht(p)/2>n.swipeLeft*-1)return s=p,!1;return!0}),!s)return 0;var m=n.rtl===!0?n.slideCount-n.currentSlide:n.currentSlide,$=Math.abs(s.dataset.index-m)||1;return $}else return n.slidesToScroll},On=function(n,l){return l.reduce(function(s,a){return s&&n.hasOwnProperty(a)},!0)?null:console.error("Keys Missing:",n)},_n=function(n){On(n,["left","variableWidth","slideCount","slidesToShow","slideWidth"]);var l,s,a=n.slideCount+2*n.slidesToShow;n.vertical?s=a*n.slideHeight:l=Hr(n)*n.slideWidth;var h={opacity:1,transition:"",WebkitTransition:""};if(n.useTransform){var m=n.vertical?"translate3d(0px, "+n.left+"px, 0px)":"translate3d("+n.left+"px, 0px, 0px)",$=n.vertical?"translate3d(0px, "+n.left+"px, 0px)":"translate3d("+n.left+"px, 0px, 0px)",p=n.vertical?"translateY("+n.left+"px)":"translateX("+n.left+"px)";h=(0,re.Z)((0,re.Z)({},h),{},{WebkitTransform:m,transform:$,msTransform:p})}else n.vertical?h.top=n.left:h.left=n.left;return n.fade&&(h={opacity:1}),l&&(h.width=l),s&&(h.height=s),window&&!window.addEventListener&&window.attachEvent&&(n.vertical?h.marginTop=n.left+"px":h.marginLeft=n.left+"px"),h},Gn=function(n){On(n,["left","variableWidth","slideCount","slidesToShow","slideWidth","speed","cssEase"]);var l=_n(n);return n.useTransform?(l.WebkitTransition="-webkit-transform "+n.speed+"ms "+n.cssEase,l.transition="transform "+n.speed+"ms "+n.cssEase):n.vertical?l.transition="top "+n.speed+"ms "+n.cssEase:l.transition="left "+n.speed+"ms "+n.cssEase,l},er=function(n){if(n.unslick)return 0;On(n,["slideIndex","trackRef","infinite","centerMode","slideCount","slidesToShow","slidesToScroll","slideWidth","listWidth","variableWidth","slideHeight"]);var l=n.slideIndex,s=n.trackRef,a=n.infinite,h=n.centerMode,m=n.slideCount,$=n.slidesToShow,p=n.slidesToScroll,S=n.slideWidth,B=n.listWidth,k=n.variableWidth,pe=n.slideHeight,We=n.fade,Ee=n.vertical,rt=0,lt,Wt,Bt=0;if(We||n.slideCount===1)return 0;var Rt=0;if(a?(Rt=-Cr(n),m%p!==0&&l+p>m&&(Rt=-(l>m?$-(l-m):m%p)),h&&(Rt+=parseInt($/2))):(m%p!==0&&l+p>m&&(Rt=$-m%p),h&&(Rt=parseInt($/2))),rt=Rt*S,Bt=Rt*pe,Ee?lt=l*pe*-1+Bt:lt=l*S*-1+rt,k===!0){var dn,nn=s&&s.node;if(dn=l+Cr(n),Wt=nn&&nn.childNodes[dn],lt=Wt?Wt.offsetLeft*-1:0,h===!0){dn=a?l+Cr(n):l,Wt=nn&&nn.children[dn],lt=0;for(var wn=0;wnn.currentSlide?n.targetSlide>n.currentSlide+Pr(n)?"left":"right":n.targetSlide0&&(m+=1),a&&l%2===0&&(m+=1),m}return a?0:l-1},oo=function(n){var l=n.slidesToShow,s=n.centerMode,a=n.rtl,h=n.centerPadding;if(s){var m=(l-1)/2+1;return parseInt(h)>0&&(m+=1),!a&&l%2===0&&(m+=1),m}return a?l-1:0},Ur=function(){return!!(typeof window!="undefined"&&window.document&&window.document.createElement)},co=function(n){var l,s,a,h,m;n.rtl?m=n.slideCount-1-n.index:m=n.index,a=m<0||m>=n.slideCount,n.centerMode?(h=Math.floor(n.slidesToShow/2),s=(m-n.currentSlide)%n.slideCount===0,m>n.currentSlide-h-1&&m<=n.currentSlide+h&&(l=!0)):l=n.currentSlide<=m&&m=n.slideCount?$=n.targetSlide-n.slideCount:$=n.targetSlide;var p=m===$;return{"slick-slide":!0,"slick-active":l,"slick-center":s,"slick-cloned":a,"slick-current":p}},Br=function(n){var l={};return(n.variableWidth===void 0||n.variableWidth===!1)&&(l.width=n.slideWidth),n.fade&&(l.position="relative",n.vertical&&n.slideHeight?l.top=-n.index*parseInt(n.slideHeight):l.left=-n.index*parseInt(n.slideWidth),l.opacity=n.currentSlide===n.index?1:0,n.useCSS&&(l.transition="opacity "+n.speed+"ms "+n.cssEase+", visibility "+n.speed+"ms "+n.cssEase)),l},_r=function(n,l){return n.key+"-"+l},xo=function(n){var l,s=[],a=[],h=[],m=t.Children.count(n.children),$=Ie(n),p=Ye(n);return t.Children.forEach(n.children,function(S,B){var k,pe={message:"children",index:B,slidesToScroll:n.slidesToScroll,currentSlide:n.currentSlide};!n.lazyLoad||n.lazyLoad&&n.lazyLoadedList.indexOf(B)>=0?k=S:k=t.createElement("div",null);var We=Br((0,re.Z)((0,re.Z)({},n),{},{index:B})),Ee=k.props.className||"",rt=co((0,re.Z)((0,re.Z)({},n),{},{index:B}));if(s.push(t.cloneElement(k,{key:"original"+_r(k,B),"data-index":B,className:F()(rt,Ee),tabIndex:"-1","aria-hidden":!rt["slick-active"],style:(0,re.Z)((0,re.Z)({outline:"none"},k.props.style||{}),We),onClick:function(Bt){k.props&&k.props.onClick&&k.props.onClick(Bt),n.focusOnSelect&&n.focusOnSelect(pe)}})),n.infinite&&n.fade===!1){var lt=m-B;lt<=Cr(n)&&m!==n.slidesToShow&&(l=-lt,l>=$&&(k=S),rt=co((0,re.Z)((0,re.Z)({},n),{},{index:l})),a.push(t.cloneElement(k,{key:"precloned"+_r(k,l),"data-index":l,tabIndex:"-1",className:F()(rt,Ee),"aria-hidden":!rt["slick-active"],style:(0,re.Z)((0,re.Z)({},k.props.style||{}),We),onClick:function(Bt){k.props&&k.props.onClick&&k.props.onClick(Bt),n.focusOnSelect&&n.focusOnSelect(pe)}}))),m!==n.slidesToShow&&(l=m+B,l=dn&&pe<=Bt:pe===dn}),wn={message:"dots",index:lt,slidesToScroll:S,currentSlide:pe},Tn=this.clickHandler.bind(this,wn);rt=rt.concat(t.createElement("li",{key:lt,className:nn},t.cloneElement(this.props.customPaging(lt),{onClick:Tn})))}return t.cloneElement(this.props.appendDots(rt),(0,re.Z)({className:this.props.dotsClass},Ee))}}]),l}(t.PureComponent),wr=function(o){(0,vt.Z)(l,o);var n=(0,Se.Z)(l);function l(){return(0,Y.Z)(this,l),n.apply(this,arguments)}return(0,Be.Z)(l,[{key:"clickHandler",value:function(a,h){h&&h.preventDefault(),this.props.clickHandler(a,h)}},{key:"render",value:function(){var a={"slick-arrow":!0,"slick-prev":!0},h=this.clickHandler.bind(this,{message:"previous"});!this.props.infinite&&(this.props.currentSlide===0||this.props.slideCount<=this.props.slidesToShow)&&(a["slick-disabled"]=!0,h=null);var m={key:"0","data-role":"none",className:F()(a),style:{display:"block"},onClick:h},$={currentSlide:this.props.currentSlide,slideCount:this.props.slideCount},p;return this.props.prevArrow?p=t.cloneElement(this.props.prevArrow,(0,re.Z)((0,re.Z)({},m),$)):p=t.createElement("button",(0,_e.Z)({key:"0",type:"button"},m)," ","Previous"),p}}]),l}(t.PureComponent),or=function(o){(0,vt.Z)(l,o);var n=(0,Se.Z)(l);function l(){return(0,Y.Z)(this,l),n.apply(this,arguments)}return(0,Be.Z)(l,[{key:"clickHandler",value:function(a,h){h&&h.preventDefault(),this.props.clickHandler(a,h)}},{key:"render",value:function(){var a={"slick-arrow":!0,"slick-next":!0},h=this.clickHandler.bind(this,{message:"next"});bn(this.props)||(a["slick-disabled"]=!0,h=null);var m={key:"1","data-role":"none",className:F()(a),style:{display:"block"},onClick:h},$={currentSlide:this.props.currentSlide,slideCount:this.props.slideCount},p;return this.props.nextArrow?p=t.cloneElement(this.props.nextArrow,(0,re.Z)((0,re.Z)({},m),$)):p=t.createElement("button",(0,_e.Z)({key:"1",type:"button"},m)," ","Next"),p}}]),l}(t.PureComponent),Or=e(20759),fo=["animating"],Sr=function(o){(0,vt.Z)(l,o);var n=(0,Se.Z)(l);function l(s){var a;(0,Y.Z)(this,l),a=n.call(this,s),(0,X.Z)((0,we.Z)(a),"listRefHandler",function(m){return a.list=m}),(0,X.Z)((0,we.Z)(a),"trackRefHandler",function(m){return a.track=m}),(0,X.Z)((0,we.Z)(a),"adaptHeight",function(){if(a.props.adaptiveHeight&&a.list){var m=a.list.querySelector('[data-index="'.concat(a.state.currentSlide,'"]'));a.list.style.height=mt(m)+"px"}}),(0,X.Z)((0,we.Z)(a),"componentDidMount",function(){if(a.props.onInit&&a.props.onInit(),a.props.lazyLoad){var m=oe((0,re.Z)((0,re.Z)({},a.props),a.state));m.length>0&&(a.setState(function(p){return{lazyLoadedList:p.lazyLoadedList.concat(m)}}),a.props.onLazyLoad&&a.props.onLazyLoad(m))}var $=(0,re.Z)({listRef:a.list,trackRef:a.track},a.props);a.updateState($,!0,function(){a.adaptHeight(),a.props.autoplay&&a.autoPlay("playing")}),a.props.lazyLoad==="progressive"&&(a.lazyLoadTimer=setInterval(a.progressiveLazyLoad,1e3)),a.ro=new Or.Z(function(){a.state.animating?(a.onWindowResized(!1),a.callbackTimers.push(setTimeout(function(){return a.onWindowResized()},a.props.speed))):a.onWindowResized()}),a.ro.observe(a.list),document.querySelectorAll&&Array.prototype.forEach.call(document.querySelectorAll(".slick-slide"),function(p){p.onfocus=a.props.pauseOnFocus?a.onSlideFocus:null,p.onblur=a.props.pauseOnFocus?a.onSlideBlur:null}),window.addEventListener?window.addEventListener("resize",a.onWindowResized):window.attachEvent("onresize",a.onWindowResized)}),(0,X.Z)((0,we.Z)(a),"componentWillUnmount",function(){a.animationEndCallback&&clearTimeout(a.animationEndCallback),a.lazyLoadTimer&&clearInterval(a.lazyLoadTimer),a.callbackTimers.length&&(a.callbackTimers.forEach(function(m){return clearTimeout(m)}),a.callbackTimers=[]),window.addEventListener?window.removeEventListener("resize",a.onWindowResized):window.detachEvent("onresize",a.onWindowResized),a.autoplayTimer&&clearInterval(a.autoplayTimer),a.ro.disconnect()}),(0,X.Z)((0,we.Z)(a),"componentDidUpdate",function(m){if(a.checkImagesLoad(),a.props.onReInit&&a.props.onReInit(),a.props.lazyLoad){var $=oe((0,re.Z)((0,re.Z)({},a.props),a.state));$.length>0&&(a.setState(function(B){return{lazyLoadedList:B.lazyLoadedList.concat($)}}),a.props.onLazyLoad&&a.props.onLazyLoad($))}a.adaptHeight();var p=(0,re.Z)((0,re.Z)({listRef:a.list,trackRef:a.track},a.props),a.state),S=a.didPropsChange(m);S&&a.updateState(p,S,function(){a.state.currentSlide>=t.Children.count(a.props.children)&&a.changeSlide({message:"index",index:t.Children.count(a.props.children)-a.props.slidesToShow,currentSlide:a.state.currentSlide}),(m.autoplay!==a.props.autoplay||m.autoplaySpeed!==a.props.autoplaySpeed)&&(!m.autoplay&&a.props.autoplay?a.autoPlay("playing"):a.props.autoplay?a.autoPlay("update"):a.pause("paused"))})}),(0,X.Z)((0,we.Z)(a),"onWindowResized",function(m){a.debouncedResize&&a.debouncedResize.cancel(),a.debouncedResize=(0,L.D)(50,function(){return a.resizeWindow(m)}),a.debouncedResize()}),(0,X.Z)((0,we.Z)(a),"resizeWindow",function(){var m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,$=!!(a.track&&a.track.node);if($){var p=(0,re.Z)((0,re.Z)({listRef:a.list,trackRef:a.track},a.props),a.state);a.updateState(p,m,function(){a.props.autoplay?a.autoPlay("update"):a.pause("paused")}),a.setState({animating:!1}),clearTimeout(a.animationEndCallback),delete a.animationEndCallback}}),(0,X.Z)((0,we.Z)(a),"updateState",function(m,$,p){var S=fn(m);m=(0,re.Z)((0,re.Z)((0,re.Z)({},m),S),{},{slideIndex:S.currentSlide});var B=er(m);m=(0,re.Z)((0,re.Z)({},m),{},{left:B});var k=_n(m);($||t.Children.count(a.props.children)!==t.Children.count(m.children))&&(S.trackStyle=k),a.setState(S,p)}),(0,X.Z)((0,we.Z)(a),"ssrInit",function(){if(a.props.variableWidth){var m=0,$=0,p=[],S=Cr((0,re.Z)((0,re.Z)((0,re.Z)({},a.props),a.state),{},{slideCount:a.props.children.length})),B=Lr((0,re.Z)((0,re.Z)((0,re.Z)({},a.props),a.state),{},{slideCount:a.props.children.length}));a.props.children.forEach(function(Tn){p.push(Tn.props.style.width),m+=Tn.props.style.width});for(var k=0;k=$&&a.onWindowResized()};if(!S.onclick)S.onclick=function(){return S.parentNode.focus()};else{var k=S.onclick;S.onclick=function(pe){k(pe),S.parentNode.focus()}}S.onload||(a.props.lazyLoad?S.onload=function(){a.adaptHeight(),a.callbackTimers.push(setTimeout(a.onWindowResized,a.props.speed))}:(S.onload=B,S.onerror=function(){B(),a.props.onLazyLoadError&&a.props.onLazyLoadError()}))})}),(0,X.Z)((0,we.Z)(a),"progressiveLazyLoad",function(){for(var m=[],$=(0,re.Z)((0,re.Z)({},a.props),a.state),p=a.state.currentSlide;p=-Cr($);S--)if(a.state.lazyLoadedList.indexOf(S)<0){m.push(S);break}m.length>0?(a.setState(function(B){return{lazyLoadedList:B.lazyLoadedList.concat(m)}}),a.props.onLazyLoad&&a.props.onLazyLoad(m)):a.lazyLoadTimer&&(clearInterval(a.lazyLoadTimer),delete a.lazyLoadTimer)}),(0,X.Z)((0,we.Z)(a),"slideHandler",function(m){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,p=a.props,S=p.asNavFor,B=p.beforeChange,k=p.onLazyLoad,pe=p.speed,We=p.afterChange,Ee=a.state.currentSlide,rt=zt((0,re.Z)((0,re.Z)((0,re.Z)({index:m},a.props),a.state),{},{trackRef:a.track,useCSS:a.props.useCSS&&!$})),lt=rt.state,Wt=rt.nextState;if(lt){B&&B(Ee,lt.currentSlide);var Bt=lt.lazyLoadedList.filter(function(Rt){return a.state.lazyLoadedList.indexOf(Rt)<0});k&&Bt.length>0&&k(Bt),!a.props.waitForAnimate&&a.animationEndCallback&&(clearTimeout(a.animationEndCallback),We&&We(Ee),delete a.animationEndCallback),a.setState(lt,function(){S&&a.asNavForIndex!==m&&(a.asNavForIndex=m,S.innerSlider.slideHandler(m)),Wt&&(a.animationEndCallback=setTimeout(function(){var Rt=Wt.animating,dn=(0,St.Z)(Wt,fo);a.setState(dn,function(){a.callbackTimers.push(setTimeout(function(){return a.setState({animating:Rt})},10)),We&&We(lt.currentSlide),delete a.animationEndCallback})},pe))})}}),(0,X.Z)((0,we.Z)(a),"changeSlide",function(m){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,p=(0,re.Z)((0,re.Z)({},a.props),a.state),S=cn(p,m);if(!(S!==0&&!S)&&($===!0?a.slideHandler(S,$):a.slideHandler(S),a.props.autoplay&&a.autoPlay("update"),a.props.focusOnSelect)){var B=a.list.querySelectorAll(".slick-current");B[0]&&B[0].focus()}}),(0,X.Z)((0,we.Z)(a),"clickHandler",function(m){a.clickable===!1&&(m.stopPropagation(),m.preventDefault()),a.clickable=!0}),(0,X.Z)((0,we.Z)(a),"keyHandler",function(m){var $=yn(m,a.props.accessibility,a.props.rtl);$!==""&&a.changeSlide({message:$})}),(0,X.Z)((0,we.Z)(a),"selectHandler",function(m){a.changeSlide(m)}),(0,X.Z)((0,we.Z)(a),"disableBodyScroll",function(){var m=function(p){p=p||window.event,p.preventDefault&&p.preventDefault(),p.returnValue=!1};window.ontouchmove=m}),(0,X.Z)((0,we.Z)(a),"enableBodyScroll",function(){window.ontouchmove=null}),(0,X.Z)((0,we.Z)(a),"swipeStart",function(m){a.props.verticalSwiping&&a.disableBodyScroll();var $=Fn(m,a.props.swipe,a.props.draggable);$!==""&&a.setState($)}),(0,X.Z)((0,we.Z)(a),"swipeMove",function(m){var $=Yn(m,(0,re.Z)((0,re.Z)((0,re.Z)({},a.props),a.state),{},{trackRef:a.track,listRef:a.list,slideIndex:a.state.currentSlide}));$&&($.swiping&&(a.clickable=!1),a.setState($))}),(0,X.Z)((0,we.Z)(a),"swipeEnd",function(m){var $=Zn(m,(0,re.Z)((0,re.Z)((0,re.Z)({},a.props),a.state),{},{trackRef:a.track,listRef:a.list,slideIndex:a.state.currentSlide}));if($){var p=$.triggerSlideHandler;delete $.triggerSlideHandler,a.setState($),p!==void 0&&(a.slideHandler(p),a.props.verticalSwiping&&a.enableBodyScroll())}}),(0,X.Z)((0,we.Z)(a),"touchEnd",function(m){a.swipeEnd(m),a.clickable=!0}),(0,X.Z)((0,we.Z)(a),"slickPrev",function(){a.callbackTimers.push(setTimeout(function(){return a.changeSlide({message:"previous"})},0))}),(0,X.Z)((0,we.Z)(a),"slickNext",function(){a.callbackTimers.push(setTimeout(function(){return a.changeSlide({message:"next"})},0))}),(0,X.Z)((0,we.Z)(a),"slickGoTo",function(m){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(m=Number(m),isNaN(m))return"";a.callbackTimers.push(setTimeout(function(){return a.changeSlide({message:"index",index:m,currentSlide:a.state.currentSlide},$)},0))}),(0,X.Z)((0,we.Z)(a),"play",function(){var m;if(a.props.rtl)m=a.state.currentSlide-a.props.slidesToScroll;else if(bn((0,re.Z)((0,re.Z)({},a.props),a.state)))m=a.state.currentSlide+a.props.slidesToScroll;else return!1;a.slideHandler(m)}),(0,X.Z)((0,we.Z)(a),"autoPlay",function(m){a.autoplayTimer&&clearInterval(a.autoplayTimer);var $=a.state.autoplaying;if(m==="update"){if($==="hovered"||$==="focused"||$==="paused")return}else if(m==="leave"){if($==="paused"||$==="focused")return}else if(m==="blur"&&($==="paused"||$==="hovered"))return;a.autoplayTimer=setInterval(a.play,a.props.autoplaySpeed+50),a.setState({autoplaying:"playing"})}),(0,X.Z)((0,we.Z)(a),"pause",function(m){a.autoplayTimer&&(clearInterval(a.autoplayTimer),a.autoplayTimer=null);var $=a.state.autoplaying;m==="paused"?a.setState({autoplaying:"paused"}):m==="focused"?($==="hovered"||$==="playing")&&a.setState({autoplaying:"focused"}):$==="playing"&&a.setState({autoplaying:"hovered"})}),(0,X.Z)((0,we.Z)(a),"onDotsOver",function(){return a.props.autoplay&&a.pause("hovered")}),(0,X.Z)((0,we.Z)(a),"onDotsLeave",function(){return a.props.autoplay&&a.state.autoplaying==="hovered"&&a.autoPlay("leave")}),(0,X.Z)((0,we.Z)(a),"onTrackOver",function(){return a.props.autoplay&&a.pause("hovered")}),(0,X.Z)((0,we.Z)(a),"onTrackLeave",function(){return a.props.autoplay&&a.state.autoplaying==="hovered"&&a.autoPlay("leave")}),(0,X.Z)((0,we.Z)(a),"onSlideFocus",function(){return a.props.autoplay&&a.pause("focused")}),(0,X.Z)((0,we.Z)(a),"onSlideBlur",function(){return a.props.autoplay&&a.state.autoplaying==="focused"&&a.autoPlay("blur")}),(0,X.Z)((0,we.Z)(a),"render",function(){var m=F()("slick-slider",a.props.className,{"slick-vertical":a.props.vertical,"slick-initialized":!0}),$=(0,re.Z)((0,re.Z)({},a.props),a.state),p=wt($,["fade","cssEase","speed","infinite","centerMode","focusOnSelect","currentSlide","lazyLoad","lazyLoadedList","rtl","slideWidth","slideHeight","listHeight","vertical","slidesToShow","slidesToScroll","slideCount","trackStyle","variableWidth","unslick","centerPadding","targetSlide","useCSS"]),S=a.props.pauseOnHover;p=(0,re.Z)((0,re.Z)({},p),{},{onMouseEnter:S?a.onTrackOver:null,onMouseLeave:S?a.onTrackLeave:null,onMouseOver:S?a.onTrackOver:null,focusOnSelect:a.props.focusOnSelect&&a.clickable?a.selectHandler:null});var B;if(a.props.dots===!0&&a.state.slideCount>=a.props.slidesToShow){var k=wt($,["dotsClass","slideCount","slidesToShow","currentSlide","slidesToScroll","clickHandler","children","customPaging","infinite","appendDots"]),pe=a.props.pauseOnDotsHover;k=(0,re.Z)((0,re.Z)({},k),{},{clickHandler:a.changeSlide,onMouseEnter:pe?a.onDotsLeave:null,onMouseOver:pe?a.onDotsOver:null,onMouseLeave:pe?a.onDotsLeave:null}),B=t.createElement(Un,k)}var We,Ee,rt=wt($,["infinite","centerMode","currentSlide","slideCount","slidesToShow","prevArrow","nextArrow"]);rt.clickHandler=a.changeSlide,a.props.arrows&&(We=t.createElement(wr,rt),Ee=t.createElement(or,rt));var lt=null;a.props.vertical&&(lt={height:a.state.listHeight});var Wt=null;a.props.vertical===!1?a.props.centerMode===!0&&(Wt={padding:"0px "+a.props.centerPadding}):a.props.centerMode===!0&&(Wt={padding:a.props.centerPadding+" 0px"});var Bt=(0,re.Z)((0,re.Z)({},lt),Wt),Rt=a.props.touchMove,dn={className:"slick-list",style:Bt,onClick:a.clickHandler,onMouseDown:Rt?a.swipeStart:null,onMouseMove:a.state.dragging&&Rt?a.swipeMove:null,onMouseUp:Rt?a.swipeEnd:null,onMouseLeave:a.state.dragging&&Rt?a.swipeEnd:null,onTouchStart:Rt?a.swipeStart:null,onTouchMove:a.state.dragging&&Rt?a.swipeMove:null,onTouchEnd:Rt?a.touchEnd:null,onTouchCancel:a.state.dragging&&Rt?a.swipeEnd:null,onKeyDown:a.props.accessibility?a.keyHandler:null},nn={className:m,dir:"ltr",style:a.props.style};return a.props.unslick&&(dn={className:"slick-list"},nn={className:m,style:a.props.style}),t.createElement("div",nn,a.props.unslick?"":We,t.createElement("div",(0,_e.Z)({ref:a.listRefHandler},dn),t.createElement(br,(0,_e.Z)({ref:a.trackRefHandler},p),a.props.children)),a.props.unslick?"":Ee,a.props.unslick?"":B)}),a.list=null,a.track=null,a.state=(0,re.Z)((0,re.Z)({},fe),{},{currentSlide:a.props.initialSlide,slideCount:t.Children.count(a.props.children)}),a.callbackTimers=[],a.clickable=!0,a.debouncedResize=null;var h=a.ssrInit();return a.state=(0,re.Z)((0,re.Z)({},a.state),h),a}return(0,Be.Z)(l,[{key:"didPropsChange",value:function(a){for(var h=!1,m=0,$=Object.keys(this.props);m<$.length;m++){var p=$[m];if(!a.hasOwnProperty(p)){h=!0;break}if(!((0,Ne.Z)(a[p])==="object"||typeof a[p]=="function")&&a[p]!==this.props[p]){h=!0;break}}return h||t.Children.count(this.props.children)!==t.Children.count(a.children)}}]),l}(t.Component),ao=e(69632),Vr=e.n(ao),Ir={accessibility:!0,adaptiveHeight:!1,afterChange:null,appendDots:function(n){return t.createElement("ul",{style:{display:"block"}},n)},arrows:!0,autoplay:!1,autoplaySpeed:3e3,beforeChange:null,centerMode:!1,centerPadding:"50px",className:"",cssEase:"ease",customPaging:function(n){return t.createElement("button",null,n+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:null,nextArrow:null,onEdge:null,onInit:null,onLazyLoadError:null,onReInit:null,pauseOnDotsHover:!1,pauseOnFocus:!1,pauseOnHover:!0,prevArrow:null,responsive:null,rows:1,rtl:!1,slide:"div",slidesPerRow:1,slidesToScroll:1,slidesToShow:1,speed:500,swipe:!0,swipeEvent:null,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,waitForAnimate:!0},Do=Ir,sa=function(o){(0,vt.Z)(l,o);var n=(0,Se.Z)(l);function l(s){var a;return(0,Y.Z)(this,l),a=n.call(this,s),(0,X.Z)((0,we.Z)(a),"innerSliderRefHandler",function(h){return a.innerSlider=h}),(0,X.Z)((0,we.Z)(a),"slickPrev",function(){return a.innerSlider.slickPrev()}),(0,X.Z)((0,we.Z)(a),"slickNext",function(){return a.innerSlider.slickNext()}),(0,X.Z)((0,we.Z)(a),"slickGoTo",function(h){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return a.innerSlider.slickGoTo(h,m)}),(0,X.Z)((0,we.Z)(a),"slickPause",function(){return a.innerSlider.pause("paused")}),(0,X.Z)((0,we.Z)(a),"slickPlay",function(){return a.innerSlider.autoPlay("play")}),a.state={breakpoint:null},a._responsiveMediaHandlers=[],a}return(0,Be.Z)(l,[{key:"media",value:function(a,h){var m=window.matchMedia(a),$=function(S){var B=S.matches;B&&h()};m.addListener($),$(m),this._responsiveMediaHandlers.push({mql:m,query:a,listener:$})}},{key:"componentDidMount",value:function(){var a=this;if(this.props.responsive){var h=this.props.responsive.map(function($){return $.breakpoint});h.sort(function($,p){return $-p}),h.forEach(function($,p){var S;p===0?S=Vr()({minWidth:0,maxWidth:$}):S=Vr()({minWidth:h[p-1]+1,maxWidth:$}),Ur()&&a.media(S,function(){a.setState({breakpoint:$})})});var m=Vr()({minWidth:h.slice(-1)[0]});Ur()&&this.media(m,function(){a.setState({breakpoint:null})})}}},{key:"componentWillUnmount",value:function(){this._responsiveMediaHandlers.forEach(function(a){a.mql.removeListener(a.listener)})}},{key:"render",value:function(){var a=this,h,m;this.state.breakpoint?(m=this.props.responsive.filter(function(lt){return lt.breakpoint===a.state.breakpoint}),h=m[0].settings==="unslick"?"unslick":(0,re.Z)((0,re.Z)((0,re.Z)({},Do),this.props),m[0].settings)):h=(0,re.Z)((0,re.Z)({},Do),this.props),h.centerMode&&(h.slidesToScroll>1,h.slidesToScroll=1),h.fade&&(h.slidesToShow>1,h.slidesToScroll>1,h.slidesToShow=1,h.slidesToScroll=1);var $=t.Children.toArray(this.props.children);$=$.filter(function(lt){return typeof lt=="string"?!!lt.trim():!!lt}),h.variableWidth&&(h.rows>1||h.slidesPerRow>1)&&(console.warn("variableWidth is not supported in case of rows > 1 or slidesPerRow > 1"),h.variableWidth=!1);for(var p=[],S=null,B=0;B<$.length;B+=h.rows*h.slidesPerRow){for(var k=[],pe=B;pe=$.length));Ee+=1)We.push(t.cloneElement($[Ee],{key:100*B+10*pe+Ee,tabIndex:-1,style:{width:"".concat(100/h.slidesPerRow,"%"),display:"inline-block"}}));k.push(t.createElement("div",{key:10*B+pe},We))}h.variableWidth?p.push(t.createElement("div",{key:B,style:{width:S}},k)):p.push(t.createElement("div",{key:B},k))}if(h==="unslick"){var rt="regular slider "+(this.props.className||"");return t.createElement("div",{className:rt},$)}else p.length<=h.slidesToShow&&(h.unslick=!0);return t.createElement(Sr,(0,_e.Z)({style:this.props.style,ref:this.innerSliderRefHandler},h),p)}}]),l}(t.Component),fa=sa;const Oa=o=>{const{componentCls:n,antCls:l,carouselArrowSize:s,carouselDotOffset:a,marginXXS:h}=o,m=-s*1.25,$=h;return{[n]:Object.assign(Object.assign({},(0,te.Wf)(o)),{".slick-slider":{position:"relative",display:"block",boxSizing:"border-box",touchAction:"pan-y",WebkitTouchCallout:"none",WebkitTapHighlightColor:"transparent",".slick-track, .slick-list":{transform:"translate3d(0, 0, 0)",touchAction:"pan-y"}},".slick-list":{position:"relative",display:"block",margin:0,padding:0,overflow:"hidden","&:focus":{outline:"none"},"&.dragging":{cursor:"pointer"},".slick-slide":{pointerEvents:"none",[`input${l}-radio-input, input${l}-checkbox-input`]:{visibility:"hidden"},"&.slick-active":{pointerEvents:"auto",[`input${l}-radio-input, input${l}-checkbox-input`]:{visibility:"visible"}},"> div > div":{verticalAlign:"bottom"}}},".slick-track":{position:"relative",top:0,insetInlineStart:0,display:"block","&::before, &::after":{display:"table",content:'""'},"&::after":{clear:"both"}},".slick-slide":{display:"none",float:"left",height:"100%",minHeight:1,img:{display:"block"},"&.dragging img":{pointerEvents:"none"}},".slick-initialized .slick-slide":{display:"block"},".slick-vertical .slick-slide":{display:"block",height:"auto"},".slick-arrow.slick-hidden":{display:"none"},".slick-prev, .slick-next":{position:"absolute",top:"50%",display:"block",width:s,height:s,marginTop:-s/2,padding:0,color:"transparent",fontSize:0,lineHeight:0,background:"transparent",border:0,outline:"none",cursor:"pointer","&:hover, &:focus":{color:"transparent",background:"transparent",outline:"none","&::before":{opacity:1}},"&.slick-disabled::before":{opacity:.25}},".slick-prev":{insetInlineStart:m,"&::before":{content:'"\u2190"'}},".slick-next":{insetInlineEnd:m,"&::before":{content:'"\u2192"'}},".slick-dots":{position:"absolute",insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:15,display:"flex !important",justifyContent:"center",paddingInlineStart:0,margin:0,listStyle:"none","&-bottom":{bottom:a},"&-top":{top:a,bottom:"auto"},li:{position:"relative",display:"inline-block",flex:"0 1 auto",boxSizing:"content-box",width:o.dotWidth,height:o.dotHeight,marginInline:$,padding:0,textAlign:"center",textIndent:-999,verticalAlign:"top",transition:`all ${o.motionDurationSlow}`,button:{position:"relative",display:"block",width:"100%",height:o.dotHeight,padding:0,color:"transparent",fontSize:0,background:o.colorBgContainer,border:0,borderRadius:1,outline:"none",cursor:"pointer",opacity:.3,transition:`all ${o.motionDurationSlow}`,"&: hover, &:focus":{opacity:.75},"&::after":{position:"absolute",inset:-$,content:'""'}},"&.slick-active":{width:o.dotActiveWidth,"& button":{background:o.colorBgContainer,opacity:1},"&: hover, &:focus":{opacity:1}}}}})}},Oo=o=>{const{componentCls:n,carouselDotOffset:l,marginXXS:s}=o,a={width:o.dotHeight,height:o.dotWidth};return{[`${n}-vertical`]:{".slick-dots":{top:"50%",bottom:"auto",flexDirection:"column",width:o.dotHeight,height:"auto",margin:0,transform:"translateY(-50%)","&-left":{insetInlineEnd:"auto",insetInlineStart:l},"&-right":{insetInlineEnd:l,insetInlineStart:"auto"},li:Object.assign(Object.assign({},a),{margin:`${s}px 0`,verticalAlign:"baseline",button:a,"&.slick-active":Object.assign(Object.assign({},a),{button:a})})}}}},zo=o=>{const{componentCls:n}=o;return[{[`${n}-rtl`]:{direction:"rtl",".slick-dots":{[`${n}-rtl&`]:{flexDirection:"row-reverse"}}}},{[`${n}-vertical`]:{".slick-dots":{[`${n}-rtl&`]:{flexDirection:"column"}}}}]};var va=(0,A.Z)("Carousel",o=>{const{controlHeightLG:n,controlHeightSM:l}=o,s=(0,J.TS)(o,{carouselArrowSize:n/2,carouselDotOffset:l/2});return[Oa(s),Oo(s),zo(s)]},()=>({dotWidth:16,dotHeight:3,dotWidthActive:24,dotActiveWidth:24}),{deprecatedTokens:[["dotWidthActive","dotActiveWidth"]]}),vi=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{dots:l=!0,arrows:s=!1,draggable:a=!1,waitForAnimate:h=!1,dotPosition:m="bottom",vertical:$=m==="left"||m==="right",rootClassName:p,className:S,style:B,id:k}=o,pe=vi(o,["dots","arrows","draggable","waitForAnimate","dotPosition","vertical","rootClassName","className","style","id"]),{getPrefixCls:We,direction:Ee,carousel:rt}=t.useContext(de.E_),lt=t.useRef(),Wt=function(Ko){let Wr=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;lt.current.slickGoTo(Ko,Wr)};t.useImperativeHandle(n,()=>({goTo:Wt,autoPlay:lt.current.innerSlider.autoPlay,innerSlider:lt.current.innerSlider,prev:lt.current.slickPrev,next:lt.current.slickNext}),[lt.current]);const Bt=t.useRef(t.Children.count(o.children));t.useEffect(()=>{Bt.current!==t.Children.count(o.children)&&(Wt(o.initialSlide||0,!1),Bt.current=t.Children.count(o.children))},[o.children]);const Rt=Object.assign({vertical:$,className:F()(S,rt==null?void 0:rt.className),style:Object.assign(Object.assign({},rt==null?void 0:rt.style),B)},pe);Rt.effect==="fade"&&(Rt.fade=!0);const dn=We("carousel",Rt.prefixCls),nn="slick-dots",wn=!!l,Tn=F()(nn,`${nn}-${m}`,typeof l=="boolean"?!1:l==null?void 0:l.className),[Vn,pr]=va(dn),jr=F()(dn,{[`${dn}-rtl`]:Ee==="rtl",[`${dn}-vertical`]:Rt.vertical},pr,p);return Vn(t.createElement("div",{className:jr,id:k},t.createElement(fa,Object.assign({ref:lt},Rt,{dots:wn,dotsClass:Tn,arrows:s,draggable:a,verticalSwiping:$,waitForAnimate:h}))))}),Qe=e(61494),Tt=e(38904),en=e(31188),Bn=e(82968),Nr=e(41496),Tr=e(58785),ur=e(33181),to=e(22802),ra=e(51244),v=e(28314),V=e(66671),Q=["b"],Pe=["v"],ge=function(n){return Math.round(Number(n||0))},yt=function(n){if(n&&(0,Ne.Z)(n)==="object"&&"h"in n&&"b"in n){var l=n,s=l.b,a=(0,St.Z)(l,Q);return(0,re.Z)((0,re.Z)({},a),{},{v:s})}return typeof n=="string"&&/hsb/.test(n)?n.replace(/hsb/,"hsv"):n},nt=function(o){(0,vt.Z)(l,o);var n=(0,Se.Z)(l);function l(s){return(0,Y.Z)(this,l),n.call(this,yt(s))}return(0,Be.Z)(l,[{key:"toHsbString",value:function(){var a=this.toHsb(),h=ge(a.s*100),m=ge(a.b*100),$=ge(a.h),p=a.a,S="hsb(".concat($,", ").concat(h,"%, ").concat(m,"%)"),B="hsba(".concat($,", ").concat(h,"%, ").concat(m,"%, ").concat(p.toFixed(p===0?0:2),")");return p===1?S:B}},{key:"toHsb",value:function(){var a=this.toHsv();(0,Ne.Z)(this.originalInput)==="object"&&this.originalInput&&"h"in this.originalInput&&(a=this.originalInput);var h=a,m=h.v,$=(0,St.Z)(h,Pe);return(0,re.Z)((0,re.Z)({},$),{},{b:a.v})}}]),l}(V.C),qt="rc-color-picker",Jt=function(n){return n instanceof nt?n:new nt(n)},hn=Jt("#1677ff"),Nn=function(n){var l=n.offset,s=n.targetRef,a=n.containerRef,h=n.color,m=n.type,$=a.current.getBoundingClientRect(),p=$.width,S=$.height,B=s.current.getBoundingClientRect(),k=B.width,pe=B.height,We=k/2,Ee=pe/2,rt=(l.x+We)/p,lt=1-(l.y+Ee)/S,Wt=h.toHsb(),Bt=rt,Rt=(l.x+We)/p*360;if(m)switch(m){case"hue":return Jt((0,re.Z)((0,re.Z)({},Wt),{},{h:Rt<=0?0:Rt}));case"alpha":return Jt((0,re.Z)((0,re.Z)({},Wt),{},{a:Bt<=0?0:Bt}))}return Jt({h:Wt.h,s:rt<=0?0:rt,b:lt>=1?1:lt,a:Wt.a})},En=function(n,l,s,a){var h=n.current.getBoundingClientRect(),m=h.width,$=h.height,p=l.current.getBoundingClientRect(),S=p.width,B=p.height,k=S/2,pe=B/2,We=s.toHsb();if(!(S===0&&B===0||S!==B)){if(a)switch(a){case"hue":return{x:We.h/360*m-k,y:-pe/3};case"alpha":return{x:We.a/1*m-k,y:-pe/3}}return{x:We.s*m-k,y:(1-We.b)*$-pe}}},_t=function(n){var l=n.color,s=n.prefixCls,a=n.className,h=n.style,m=n.onClick,$="".concat(s,"-color-block");return t.createElement("div",{className:F()($,a),style:h,onClick:m},t.createElement("div",{className:"".concat($,"-inner"),style:{background:l}}))},sn=_t;function mn(o){var n="touches"in o?o.touches[0]:o,l=document.documentElement.scrollLeft||document.body.scrollLeft||window.pageXOffset,s=document.documentElement.scrollTop||document.body.scrollTop||window.pageYOffset;return{pageX:n.pageX-l,pageY:n.pageY-s}}function Ot(o){var n=o.offset,l=o.targetRef,s=o.containerRef,a=o.direction,h=o.onDragChange,m=o.onDragChangeComplete,$=o.calculate,p=o.color,S=o.disabledDrag,B=(0,t.useState)(n||{x:0,y:0}),k=(0,v.Z)(B,2),pe=k[0],We=k[1],Ee=(0,t.useRef)(null),rt=(0,t.useRef)(null),lt=(0,t.useRef)({flag:!1});(0,t.useEffect)(function(){if(lt.current.flag===!1){var nn=$==null?void 0:$(s);nn&&We(nn)}},[p,s]),(0,t.useEffect)(function(){return function(){document.removeEventListener("mousemove",Ee.current),document.removeEventListener("mouseup",rt.current),document.removeEventListener("touchmove",Ee.current),document.removeEventListener("touchend",rt.current),Ee.current=null,rt.current=null}},[]);var Wt=function(wn){var Tn=mn(wn),Vn=Tn.pageX,pr=Tn.pageY,jr=s.current.getBoundingClientRect(),Ko=jr.x,Wr=jr.y,Mr=jr.width,$r=jr.height,uo=l.current.getBoundingClientRect(),$a=uo.width,Vo=uo.height,ya=$a/2,xi=Vo/2,Ca=Math.max(0,Math.min(Vn-Ko,Mr))-ya,ja=Math.max(0,Math.min(pr-Wr,$r))-xi,mo={x:Ca,y:a==="x"?pe.y:ja};if($a===0&&Vo===0||$a!==Vo)return!1;We(mo),h==null||h(mo)},Bt=function(wn){wn.preventDefault(),Wt(wn)},Rt=function(wn){wn.preventDefault(),lt.current.flag=!1,document.removeEventListener("mousemove",Ee.current),document.removeEventListener("mouseup",rt.current),document.removeEventListener("touchmove",Ee.current),document.removeEventListener("touchend",rt.current),Ee.current=null,rt.current=null,m==null||m()},dn=function(wn){document.removeEventListener("mousemove",Ee.current),document.removeEventListener("mouseup",rt.current),!S&&(Wt(wn),lt.current.flag=!0,document.addEventListener("mousemove",Bt),document.addEventListener("mouseup",Rt),document.addEventListener("touchmove",Bt),document.addEventListener("touchend",Rt),Ee.current=Bt,rt.current=Rt)};return[pe,dn]}var tn=Ot,xn=function(n){var l=n.size,s=l===void 0?"default":l,a=n.color,h=n.prefixCls;return t.createElement("div",{className:F()("".concat(h,"-handler"),(0,X.Z)({},"".concat(h,"-handler-sm"),s==="small")),style:{backgroundColor:a}})},Wn=xn,Jn=function(n){var l=n.children,s=n.style,a=n.prefixCls;return t.createElement("div",{className:"".concat(a,"-palette"),style:(0,re.Z)({position:"relative"},s)},l)},nr=Jn,dr=(0,t.forwardRef)(function(o,n){var l=o.children,s=o.offset;return t.createElement("div",{ref:n,style:{position:"absolute",left:s.x,top:s.y,zIndex:1}},l)}),ar=dr,gr=function(n){var l=n.color,s=n.onChange,a=n.prefixCls,h=n.onChangeComplete,m=n.disabled,$=(0,t.useRef)(),p=(0,t.useRef)(),S=(0,t.useRef)(l),B=tn({color:l,containerRef:$,targetRef:p,calculate:function(rt){return En(rt,p,l)},onDragChange:function(rt){var lt=Nn({offset:rt,targetRef:p,containerRef:$,color:l});S.current=lt,s(lt)},onDragChangeComplete:function(){return h==null?void 0:h(S.current)},disabledDrag:m}),k=(0,v.Z)(B,2),pe=k[0],We=k[1];return t.createElement("div",{ref:$,className:"".concat(a,"-select"),onMouseDown:We,onTouchStart:We},t.createElement(nr,{prefixCls:a},t.createElement(ar,{offset:pe,ref:p},t.createElement(Wn,{color:l.toRgbString(),prefixCls:a})),t.createElement("div",{className:"".concat(a,"-saturation"),style:{backgroundColor:"hsl(".concat(l.toHsb().h,",100%, 50%)"),backgroundImage:"linear-gradient(0deg, #000, transparent),linear-gradient(90deg, #fff, hsla(0, 0%, 100%, 0))"}})))},Co=gr,Yr=function(n){var l=n.colors,s=n.children,a=n.direction,h=a===void 0?"to right":a,m=n.type,$=n.prefixCls,p=(0,t.useMemo)(function(){return l.map(function(S,B){var k=Jt(S);return m==="alpha"&&B===l.length-1&&k.setAlpha(1),k.toRgbString()}).join(",")},[l,m]);return t.createElement("div",{className:"".concat($,"-gradient"),style:{position:"absolute",inset:0,background:"linear-gradient(".concat(h,", ").concat(p,")")}},s)},Ho=Yr,wo=function(n){var l=n.gradientColors,s=n.direction,a=n.type,h=a===void 0?"hue":a,m=n.color,$=n.value,p=n.onChange,S=n.onChangeComplete,B=n.disabled,k=n.prefixCls,pe=(0,t.useRef)(),We=(0,t.useRef)(),Ee=(0,t.useRef)(m),rt=tn({color:m,targetRef:We,containerRef:pe,calculate:function(dn){return En(dn,We,m,h)},onDragChange:function(dn){var nn=Nn({offset:dn,targetRef:We,containerRef:pe,color:m,type:h});Ee.current=nn,p(nn)},onDragChangeComplete:function(){S==null||S(Ee.current,h)},direction:"x",disabledDrag:B}),lt=(0,v.Z)(rt,2),Wt=lt[0],Bt=lt[1];return t.createElement("div",{ref:pe,className:F()("".concat(k,"-slider"),"".concat(k,"-slider-").concat(h)),onMouseDown:Bt,onTouchStart:Bt},t.createElement(nr,{prefixCls:k},t.createElement(ar,{offset:Wt,ref:We},t.createElement(Wn,{size:"small",color:$,prefixCls:k})),t.createElement(Ho,{colors:l,direction:s,type:h,prefixCls:k})))},ca=wo;function za(o){return o!==void 0}var Ga=function(n,l){var s=l.defaultValue,a=l.value,h=(0,t.useState)(function(){var S;return za(a)?S=a:za(s)?S=s:S=n,Jt(S)}),m=(0,v.Z)(h,2),$=m[0],p=m[1];return(0,t.useEffect)(function(){a&&p(Jt(a))},[a]),[$,p]},Za=Ga,oa=["rgb(255, 0, 0) 0%","rgb(255, 255, 0) 17%","rgb(0, 255, 0) 33%","rgb(0, 255, 255) 50%","rgb(0, 0, 255) 67%","rgb(255, 0, 255) 83%","rgb(255, 0, 0) 100%"],Ba=(0,t.forwardRef)(function(o,n){var l=o.value,s=o.defaultValue,a=o.prefixCls,h=a===void 0?qt:a,m=o.onChange,$=o.onChangeComplete,p=o.className,S=o.style,B=o.panelRender,k=o.disabledAlpha,pe=k===void 0?!1:k,We=o.disabled,Ee=We===void 0?!1:We,rt=Za(hn,{value:l,defaultValue:s}),lt=(0,v.Z)(rt,2),Wt=lt[0],Bt=lt[1],Rt=(0,t.useMemo)(function(){var Vn=Jt(Wt.toRgbString());return Vn.setAlpha(1),Vn.toRgbString()},[Wt]),dn=F()("".concat(h,"-panel"),p,(0,X.Z)({},"".concat(h,"-panel-disabled"),Ee)),nn={prefixCls:h,onChangeComplete:$,disabled:Ee},wn=function(pr,jr){l||Bt(pr),m==null||m(pr,jr)},Tn=t.createElement(t.Fragment,null,t.createElement(Co,(0,_e.Z)({color:Wt,onChange:wn},nn)),t.createElement("div",{className:"".concat(h,"-slider-container")},t.createElement("div",{className:F()("".concat(h,"-slider-group"),(0,X.Z)({},"".concat(h,"-slider-group-disabled-alpha"),pe))},t.createElement(ca,(0,_e.Z)({gradientColors:oa,color:Wt,value:"hsl(".concat(Wt.toHsb().h,",100%, 50%)"),onChange:function(pr){return wn(pr,"hue")}},nn)),!pe&&t.createElement(ca,(0,_e.Z)({type:"alpha",gradientColors:["rgba(255, 0, 4, 0) 0%",Rt],color:Wt,value:Wt.toRgbString(),onChange:function(pr){return wn(pr,"alpha")}},nn))),t.createElement(sn,{color:Wt.toRgbString(),prefixCls:h})));return t.createElement("div",{className:dn,style:S,ref:n},typeof B=="function"?B(Tn):Tn)}),wi=Ba;const Mi=t.createContext({}),mi=t.createContext({}),{Provider:Ni}=Mi,{Provider:pl}=mi,Ei=(o,n)=>(o==null?void 0:o.replace(/[^\w/]/gi,"").slice(0,n?8:6))||"",Ml=(o,n)=>o?Ei(o,n):"";let nl=function(){function o(n){(0,Y.Z)(this,o),this.metaColor=new nt(n),n||this.metaColor.setAlpha(0)}return(0,Be.Z)(o,[{key:"toHsb",value:function(){return this.metaColor.toHsb()}},{key:"toHsbString",value:function(){return this.metaColor.toHsbString()}},{key:"toHex",value:function(){return Ml(this.toHexString(),this.metaColor.getAlpha()<1)}},{key:"toHexString",value:function(){return this.metaColor.getAlpha()===1?this.metaColor.toHexString():this.metaColor.toHex8String()}},{key:"toRgb",value:function(){return this.metaColor.toRgb()}},{key:"toRgbString",value:function(){return this.metaColor.toRgbString()}}]),o}();const yl="ant-color-picker",Va=o=>o instanceof nl?o:new nl(o),Pi=o=>Math.round(Number(o||0)),gi=o=>Pi(o.toHsb().a*100),Ki=(o,n)=>{const l=o.toHsb();return l.a=n||1,Va(l)};var Di=o=>{let{prefixCls:n,value:l,colorCleared:s,onChange:a}=o;const h=()=>{if(l&&!s){const m=l.toHsb();m.a=0;const $=Va(m);a==null||a($)}};return t.createElement("div",{className:`${n}-clear`,onClick:h})},ei;(function(o){o.hex="hex",o.rgb="rgb",o.hsb="hsb"})(ei||(ei={}));var Zo=e(32423),Ra=o=>{let{prefixCls:n,min:l=0,max:s=100,value:a,onChange:h,className:m,formatter:$}=o;const p=`${n}-steppers`,[S,B]=(0,t.useState)(a);return(0,t.useEffect)(()=>{Number.isNaN(a)||B(a)},[a]),t.createElement(Zo.Z,{className:F()(p,m),min:l,max:s,value:S,formatter:$,size:"small",onChange:k=>{a||B(k||0),h==null||h(k)}})},Fi=o=>{let{prefixCls:n,value:l,onChange:s}=o;const a=`${n}-alpha-input`,[h,m]=(0,t.useState)(Va(l||"#000"));(0,t.useEffect)(()=>{l&&m(l)},[l]);const $=p=>{const S=h.toHsb();S.a=(p||0)/100;const B=Va(S);l||m(B),s==null||s(B)};return t.createElement(Ra,{value:gi(h),prefixCls:n,formatter:p=>`${p}%`,className:a,onChange:$})},Ia=e(21149);const rl=/(^#[\da-f]{6}$)|(^#[\da-f]{8}$)/i,Al=o=>rl.test(`#${o}`);var Li=o=>{let{prefixCls:n,value:l,onChange:s}=o;const a=`${n}-hex-input`,[h,m]=(0,t.useState)(l==null?void 0:l.toHex());(0,t.useEffect)(()=>{const p=l==null?void 0:l.toHex();Al(p)&&l&&m(Ei(p))},[l]);const $=p=>{const S=p.target.value;m(Ei(S)),Al(Ei(S,!0))&&(s==null||s(Va(S)))};return t.createElement(Ia.Z,{className:a,value:h,prefix:"#",onChange:$,size:"small"})},Xl=o=>{let{prefixCls:n,value:l,onChange:s}=o;const a=`${n}-hsb-input`,[h,m]=(0,t.useState)(Va(l||"#000"));(0,t.useEffect)(()=>{l&&m(l)},[l]);const $=(p,S)=>{const B=h.toHsb();B[S]=S==="h"?p:(p||0)/100;const k=Va(B);l||m(k),s==null||s(k)};return t.createElement("div",{className:a},t.createElement(Ra,{max:360,min:0,value:Number(h.toHsb().h),prefixCls:n,className:a,formatter:p=>Pi(p||0).toString(),onChange:p=>$(Number(p),"h")}),t.createElement(Ra,{max:100,min:0,value:Number(h.toHsb().s)*100,prefixCls:n,className:a,formatter:p=>`${Pi(p||0)}%`,onChange:p=>$(Number(p),"s")}),t.createElement(Ra,{max:100,min:0,value:Number(h.toHsb().b)*100,prefixCls:n,className:a,formatter:p=>`${Pi(p||0)}%`,onChange:p=>$(Number(p),"b")}))},ji=o=>{let{prefixCls:n,value:l,onChange:s}=o;const a=`${n}-rgb-input`,[h,m]=(0,t.useState)(Va(l||"#000"));(0,t.useEffect)(()=>{l&&m(l)},[l]);const $=(p,S)=>{const B=h.toRgb();B[S]=p||0;const k=Va(B);l||m(k),s==null||s(k)};return t.createElement("div",{className:a},t.createElement(Ra,{max:255,min:0,value:Number(h.toRgb().r),prefixCls:n,className:a,onChange:p=>$(Number(p),"r")}),t.createElement(Ra,{max:255,min:0,value:Number(h.toRgb().g),prefixCls:n,className:a,onChange:p=>$(Number(p),"g")}),t.createElement(Ra,{max:255,min:0,value:Number(h.toRgb().b),prefixCls:n,className:a,onChange:p=>$(Number(p),"b")}))};const sl=[ei.hex,ei.hsb,ei.rgb].map(o=>({value:o,label:o.toLocaleUpperCase()}));var $l=o=>{const{prefixCls:n,format:l,value:s,disabledAlpha:a,onFormatChange:h,onChange:m}=o,[$,p]=(0,Nt.Z)(ei.hex,{value:l,onChange:h}),S=`${n}-input`,B=pe=>{p(pe)},k=(0,t.useMemo)(()=>{const pe={value:s,prefixCls:n,onChange:m};switch($){case ei.hsb:return t.createElement(Xl,Object.assign({},pe));case ei.rgb:return t.createElement(ji,Object.assign({},pe));case ei.hex:default:return t.createElement(Li,Object.assign({},pe))}},[$,n,s,m]);return t.createElement("div",{className:`${S}-container`},t.createElement(ft.Z,{value:$,bordered:!1,getPopupContainer:pe=>pe,popupMatchSelectWidth:68,placement:"bottomRight",onChange:B,className:`${n}-format-select`,size:"small",options:sl}),t.createElement("div",{className:S},k),!a&&t.createElement(Fi,{prefixCls:n,value:s,onChange:m}))},Ol=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const o=(0,t.useContext)(Mi),{prefixCls:n,colorCleared:l,allowClear:s,value:a,disabledAlpha:h,onChange:m,onClear:$,onChangeComplete:p}=o,S=Ol(o,["prefixCls","colorCleared","allowClear","value","disabledAlpha","onChange","onClear","onChangeComplete"]);return t.createElement(t.Fragment,null,s&&t.createElement(Di,Object.assign({prefixCls:n,value:a,colorCleared:l,onChange:B=>{m==null||m(B),$==null||$()}},S)),t.createElement(wi,{prefixCls:n,value:a==null?void 0:a.toHsb(),disabledAlpha:h,onChange:(B,k)=>m==null?void 0:m(B,k,!0),onChangeComplete:p}),t.createElement($l,Object.assign({value:a,onChange:m,prefixCls:n,disabledAlpha:h},S)))};const Ai=o=>o.map(n=>(n.colors=n.colors.map(Va),n)),Zl=(o,n)=>{const{r:l,g:s,b:a,a:h}=o.toRgb(),m=new nt(o.toRgbString()).onBackground(n).toHsv();return h<=.5?m.v>.5:l*.299+s*.587+a*.114>192};var Xi=o=>{let{prefixCls:n,presets:l,value:s,onChange:a}=o;const[h]=(0,Vt.Z)("ColorPicker"),{token:{colorBgElevated:m}}=to.Z.useToken(),[$]=(0,Nt.Z)(Ai(l),{value:Ai(l),postState:Ai}),p=`${n}-presets`,S=(0,t.useMemo)(()=>$.map(pe=>`panel-${pe.label}`),[$]),B=pe=>{a==null||a(pe)},k=$.map(pe=>{var We;return{key:`panel-${pe.label}`,label:t.createElement("div",{className:`${p}-label`},pe==null?void 0:pe.label),children:t.createElement("div",{className:`${p}-items`},Array.isArray(pe==null?void 0:pe.colors)&&((We=pe.colors)===null||We===void 0?void 0:We.length)>0?pe.colors.map((Ee,rt)=>t.createElement(sn,{key:`preset-${rt}-${Ee.toHexString()}`,color:Va(Ee).toRgbString(),prefixCls:n,className:F()(`${p}-color`,{[`${p}-color-checked`]:Ee.toHexString()===(s==null?void 0:s.toHexString()),[`${p}-color-bright`]:Zl(Ee,m)}),onClick:()=>B(Ee)})):t.createElement("span",{className:`${p}-empty`},h.presetEmpty))}});return t.createElement("div",{className:p},t.createElement(Bn.Z,{defaultActiveKey:S,ghost:!0,items:k}))},Hi=()=>{const{prefixCls:o,value:n,presets:l,onChange:s}=(0,t.useContext)(mi);return Array.isArray(l)?t.createElement(Xi,{value:n,presets:l,prefixCls:o,onChange:s}):null},ri=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:n,presets:l,panelRender:s,color:a,onChange:h,onClear:m}=o,$=ri(o,["prefixCls","presets","panelRender","color","onChange","onClear"]),p=`${n}-inner-content`,S=Object.assign({prefixCls:n,value:a,onChange:h,onClear:m},$),B=t.useMemo(()=>({prefixCls:n,value:a,presets:l,onChange:h}),[n,a,l,h]),k=t.createElement(t.Fragment,null,t.createElement(Wa,null),Array.isArray(l)&&t.createElement(ra.Z,{className:`${p}-divider`}),t.createElement(Hi,null));return t.createElement(Ni,{value:S},t.createElement(pl,{value:B},t.createElement("div",{className:p},typeof s=="function"?s(k,{components:{Picker:Wa,Presets:Hi}}):k)))},Ja=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{color:l,prefixCls:s,open:a,colorCleared:h,disabled:m,format:$,className:p,showText:S}=o,B=Ja(o,["color","prefixCls","open","colorCleared","disabled","format","className","showText"]),k=`${s}-trigger`,pe=(0,t.useMemo)(()=>h?t.createElement(Di,{prefixCls:s}):t.createElement(sn,{prefixCls:s,color:l.toRgbString()}),[l,h,s]),We=()=>{const rt=l.toHexString().toUpperCase(),lt=gi(l);switch($){case"rgb":return l.toRgbString();case"hsb":return l.toHsbString();case"hex":default:return lt<100?`${rt.slice(0,7)},${lt}%`:rt}},Ee=()=>{if(typeof S=="function")return S(l);if(S)return We()};return t.createElement("div",Object.assign({ref:n,className:F()(k,p,{[`${k}-active`]:a,[`${k}-disabled`]:m})},B),pe,S&&t.createElement("div",{className:`${k}-text`},Ee()))});function ma(o){return o!==void 0}var bl=(o,n)=>{const{defaultValue:l,value:s}=n,[a,h]=(0,t.useState)(()=>{let m;return ma(s)?m=s:ma(l)?m=l:m=o,Va(m||"")});return(0,t.useEffect)(()=>{s&&h(Va(s))},[s]),[a,h]};const Uo=(o,n)=>({backgroundImage:`conic-gradient(${n} 0 25%, transparent 0 50%, ${n} 0 75%, transparent 0)`,backgroundSize:`${o} ${o}`});var Sl=(o,n)=>{const{componentCls:l,borderRadiusSM:s,colorPickerInsetShadow:a,lineWidth:h,colorFillSecondary:m}=o;return{[`${l}-color-block`]:Object.assign(Object.assign({position:"relative",borderRadius:s,width:n,height:n,boxShadow:a},Uo("50%",o.colorFillSecondary)),{[`${l}-color-block-inner`]:{width:"100%",height:"100%",border:`${h}px solid ${m}`,borderRadius:"inherit"}})}},Dl=o=>{const{componentCls:n,antCls:l,fontSizeSM:s,lineHeightSM:a,colorPickerAlphaInputWidth:h,marginXXS:m,paddingXXS:$,controlHeightSM:p,marginXS:S,fontSizeIcon:B,paddingXS:k,colorTextPlaceholder:pe,colorPickerInputNumberHandleWidth:We,lineWidth:Ee}=o;return{[`${n}-input-container`]:{display:"flex",[`${n}-steppers${l}-input-number`]:{fontSize:s,lineHeight:a,[`${l}-input-number-input`]:{paddingInlineStart:$,paddingInlineEnd:0},[`${l}-input-number-handler-wrap`]:{width:We}},[`${n}-steppers${n}-alpha-input`]:{flex:`0 0 ${h}px`,marginInlineStart:m},[`${n}-format-select${l}-select`]:{marginInlineEnd:S,width:"auto","&-single":{[`${l}-select-selector`]:{padding:0,border:0},[`${l}-select-arrow`]:{insetInlineEnd:0},[`${l}-select-selection-item`]:{paddingInlineEnd:B+m,fontSize:s,lineHeight:`${p}px`},[`${l}-select-item-option-content`]:{fontSize:s,lineHeight:a},[`${l}-select-dropdown`]:{[`${l}-select-item`]:{minHeight:"auto"}}}},[`${n}-input`]:{gap:m,alignItems:"center",flex:1,width:0,[`${n}-hsb-input,${n}-rgb-input`]:{display:"flex",gap:m,alignItems:"center"},[`${n}-steppers`]:{flex:1},[`${n}-hex-input${l}-input-affix-wrapper`]:{flex:1,padding:`0 ${k}px`,[`${l}-input`]:{fontSize:s,textTransform:"uppercase",lineHeight:`${p-2*Ee}px`},[`${l}-input-prefix`]:{color:pe}}}}}},lr=o=>{const{componentCls:n,controlHeightLG:l,borderRadiusSM:s,colorPickerInsetShadow:a,marginSM:h,colorBgElevated:m,colorFillSecondary:$,lineWidthBold:p,colorPickerHandlerSize:S,colorPickerHandlerSizeSM:B,colorPickerSliderHeight:k}=o;return{[`${n}-select`]:{[`${n}-palette`]:{minHeight:l*4,overflow:"hidden",borderRadius:s},[`${n}-saturation`]:{position:"absolute",borderRadius:"inherit",boxShadow:a,inset:0},marginBottom:h},[`${n}-handler`]:{width:S,height:S,border:`${p}px solid ${m}`,position:"relative",borderRadius:"50%",cursor:"pointer",boxShadow:`${a}, 0 0 0 1px ${$}`,"&-sm":{width:B,height:B}},[`${n}-slider`]:{borderRadius:k/2,[`${n}-palette`]:{height:k},[`${n}-gradient`]:{borderRadius:k/2,boxShadow:a},"&-alpha":Uo(`${k}px`,o.colorFillSecondary),"&-hue":{marginBottom:h}},[`${n}-slider-container`]:{display:"flex",gap:h,marginBottom:h,[`${n}-slider-group`]:{flex:1,"&-disabled-alpha":{display:"flex",alignItems:"center",[`${n}-slider`]:{flex:1,marginBottom:0}}}}}},Ka=o=>{const{componentCls:n,antCls:l,colorTextQuaternary:s,paddingXXS:a,colorPickerPresetColorSize:h,fontSizeSM:m,colorText:$,lineHeightSM:p,lineWidth:S,borderRadius:B,colorFill:k,colorWhite:pe,marginXXS:We,paddingXS:Ee}=o;return{[`${n}-presets`]:{[`${l}-collapse-item > ${l}-collapse-header`]:{padding:0,[`${l}-collapse-expand-icon`]:{height:m*p,color:s,paddingInlineEnd:a}},[`${l}-collapse`]:{display:"flex",flexDirection:"column",gap:We},[`${l}-collapse-item > ${l}-collapse-content > ${l}-collapse-content-box`]:{padding:`${Ee}px 0`},"&-label":{fontSize:m,color:$,lineHeight:p},"&-items":{display:"flex",flexWrap:"wrap",gap:We*1.5,[`${n}-presets-color`]:{position:"relative",cursor:"pointer",width:h,height:h,"&::before":{content:'""',pointerEvents:"none",width:h+4*S,height:h+4*S,position:"absolute",top:-2*S,insetInlineStart:-2*S,borderRadius:B,border:`${S}px solid transparent`,transition:`border-color ${o.motionDurationMid} ${o.motionEaseInBack}`},"&:hover::before":{borderColor:k},"&::after":{boxSizing:"border-box",position:"absolute",top:"50%",insetInlineStart:"21.5%",display:"table",width:h/13*5,height:h/13*8,border:`${o.lineWidthBold}px solid ${o.colorWhite}`,borderTop:0,borderInlineStart:0,transform:"rotate(45deg) scale(0) translate(-50%,-50%)",opacity:0,content:'""',transition:`all ${o.motionDurationFast} ${o.motionEaseInBack}, opacity ${o.motionDurationFast}`},[`&${n}-presets-color-checked`]:{"&::after":{opacity:1,borderColor:pe,transform:"rotate(45deg) scale(1) translate(-50%,-50%)",transition:`transform ${o.motionDurationMid} ${o.motionEaseOutBack} ${o.motionDurationFast}`},[`&${n}-presets-color-bright`]:{"&::after":{borderColor:"rgba(0, 0, 0, 0.45)"}}}}},"&-empty":{fontSize:m,color:s}}}};const qa=o=>({boxShadow:`0 0 0 ${o.controlOutlineWidth}px ${o.controlOutline}`,borderInlineEndWidth:o.lineWidth,outline:0}),es=o=>{const{componentCls:n}=o;return{"&-rtl":{[`${n}-presets-color`]:{"&::after":{direction:"ltr"}},[`${n}-clear`]:{"&::after":{direction:"ltr"}}}}},xl=(o,n,l)=>{const{componentCls:s,borderRadiusSM:a,lineWidth:h,colorSplit:m,red6:$}=o;return{[`${s}-clear`]:Object.assign(Object.assign({width:n,height:n,borderRadius:a,border:`${h}px solid ${m}`,position:"relative",cursor:"pointer",overflow:"hidden"},l),{"&::after":{content:'""',position:"absolute",insetInlineEnd:h,top:0,display:"block",width:40,height:2,transformOrigin:"right",transform:"rotate(-45deg)",backgroundColor:$}})}},C=o=>{const{componentCls:n,colorError:l,colorWarning:s,colorErrorBorderHover:a,colorWarningBorderHover:h,colorErrorOutline:m,colorWarningOutline:$}=o;return{[`&${n}-status-error`]:{borderColor:l,"&:hover":{borderColor:a},[`&${n}-trigger-active`]:Object.assign({},qa((0,J.TS)(o,{controlOutline:m})))},[`&${n}-status-warning`]:{borderColor:s,"&:hover":{borderColor:h},[`&${n}-trigger-active`]:Object.assign({},qa((0,J.TS)(o,{controlOutline:$})))}}},E=o=>{const{componentCls:n,controlHeightLG:l,controlHeightSM:s,controlHeight:a,controlHeightXS:h,borderRadius:m,borderRadiusSM:$,borderRadiusXS:p,borderRadiusLG:S,fontSizeLG:B}=o;return{[`&${n}-lg`]:{minWidth:l,height:l,borderRadius:S,[`${n}-color-block, ${n}-clear`]:{width:a,height:a,borderRadius:m},[`${n}-trigger-text`]:{fontSize:B}},[`&${n}-sm`]:{minWidth:s,height:s,borderRadius:$,[`${n}-color-block, ${n}-clear`]:{width:h,height:h,borderRadius:p}}}},le=o=>{const{componentCls:n,colorPickerWidth:l,colorPrimary:s,motionDurationMid:a,colorBgElevated:h,colorTextDisabled:m,colorText:$,colorBgContainerDisabled:p,borderRadius:S,marginXS:B,marginSM:k,controlHeight:pe,controlHeightSM:We,colorBgTextActive:Ee,colorPickerPresetColorSize:rt,colorPickerPreviewSize:lt,lineWidth:Wt,colorBorder:Bt,paddingXXS:Rt,fontSize:dn}=o;return[{[n]:Object.assign({[`${n}-inner-content`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"flex",flexDirection:"column",width:l,"&-divider":{margin:`${k}px 0 ${B}px`},[`${n}-panel`]:Object.assign({},lr(o))},Sl(o,lt)),Dl(o)),Ka(o)),xl(o,rt,{marginInlineStart:"auto",marginBottom:B})),"&-trigger":Object.assign(Object.assign(Object.assign(Object.assign({minWidth:pe,height:pe,borderRadius:S,border:`${Wt}px solid ${Bt}`,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",transition:`all ${a}`,background:h,padding:Rt-Wt,[`${n}-trigger-text`]:{marginInlineStart:B,marginInlineEnd:B-(Rt-Wt),fontSize:dn,color:$},"&-active":Object.assign(Object.assign({},qa(o)),{borderColor:s}),"&:hover":{borderColor:s},"&-disabled":{color:m,background:p,cursor:"not-allowed","&:hover":{borderColor:Ee},[`${n}-trigger-text`]:{color:m}}},xl(o,We)),Sl(o,We)),C(o)),E(o))},es(o))}]};var ce=(0,A.Z)("ColorPicker",o=>{const{colorTextQuaternary:n,marginSM:l}=o,s=8,a=(0,J.TS)(o,{colorPickerWidth:234,colorPickerHandlerSize:16,colorPickerHandlerSizeSM:12,colorPickerAlphaInputWidth:44,colorPickerInputNumberHandleWidth:16,colorPickerPresetColorSize:18,colorPickerInsetShadow:`inset 0 0 1px 0 ${n}`,colorPickerSliderHeight:s,colorPickerPreviewSize:s*2+l});return[le(a)]});const ke=o=>{const{value:n,defaultValue:l,format:s,allowClear:a=!1,presets:h,children:m,trigger:$="click",open:p,disabled:S,placement:B="bottomLeft",arrow:k=!0,panelRender:pe,showText:We,style:Ee,className:rt,size:lt,rootClassName:Wt,styles:Bt,disabledAlpha:Rt=!1,onFormatChange:dn,onChange:nn,onClear:wn,onOpenChange:Tn,onChangeComplete:Vn,getPopupContainer:pr,autoAdjustOverflow:jr=!0,destroyTooltipOnHide:Ko}=o,{getPrefixCls:Wr,direction:Mr,colorPicker:$r}=(0,t.useContext)(de.E_),{token:uo}=to.Z.useToken(),[$a,Vo]=bl(uo.colorPrimary,{value:n,defaultValue:l}),[ya,xi]=(0,Nt.Z)(!1,{value:p,postState:ui=>!S&&ui,onChange:Tn}),[Ca,ja]=(0,Nt.Z)(s,{value:s,onChange:dn}),[mo,ia]=(0,t.useState)(!1),Gr=Wr("color-picker",yl),Aa=(0,t.useMemo)(()=>gi($a)<100,[$a]),{status:ni}=t.useContext(kt.aM),Sa=(0,Tr.Z)(lt),[ua,ll]=ce(Gr),$o={[`${Gr}-rtl`]:Mr},Yo=F()(Wt,$o),di=F()((0,Nr.Z)(Gr,ni),{[`${Gr}-sm`]:Sa==="small",[`${Gr}-lg`]:Sa==="large"},$r==null?void 0:$r.className,Yo,rt,ll),Fr=F()(Gr,$o),la=(0,t.useRef)(!0),Ii=(ui,_l,El)=>{let si=Va(ui);(mo||(n===null||!n&&l===null))&&(ia(!1),gi($a)===0&&_l!=="alpha"&&(si=Ki(si))),Rt&&Aa&&(si=Ki(si)),El?la.current=!1:Vn==null||Vn(si),Vo(si),nn==null||nn(si,si.toHexString())},ro=()=>{ia(!0),wn==null||wn()},Ao=ui=>{la.current=!0;let _l=Va(ui);Rt&&Aa&&(_l=Ki(ui)),Vn==null||Vn(_l)},Ha={open:ya,trigger:$,placement:B,arrow:k,rootClassName:Wt,getPopupContainer:pr,autoAdjustOverflow:jr,destroyTooltipOnHide:Ko},hl={prefixCls:Gr,color:$a,allowClear:a,colorCleared:mo,disabled:S,disabledAlpha:Rt,presets:h,panelRender:pe,format:Ca,onFormatChange:ja,onChangeComplete:Ao},rs=Object.assign(Object.assign({},$r==null?void 0:$r.style),Ee);return ua(t.createElement(ur.Z,Object.assign({style:Bt==null?void 0:Bt.popup,overlayInnerStyle:Bt==null?void 0:Bt.popupOverlayInner,onOpenChange:ui=>{la.current&&xi(ui)},content:t.createElement(kt.Ux,{override:!0,status:!0},t.createElement(Bl,Object.assign({},hl,{onChange:Ii,onChangeComplete:Ao,onClear:ro}))),overlayClassName:Fr},Ha),m||t.createElement(Rl,{open:ya,className:di,style:rs,color:n?Va(n):$a,prefixCls:Gr,disabled:S,colorCleared:mo,showText:We,format:Ca})))},Te=(0,at.Z)(ke,"color-picker",o=>o,o=>Object.assign(Object.assign({},o),{placement:"bottom",autoAdjustOverflow:!1}));ke._InternalPanelDoNotUseOrYouWillBeFired=Te;var Et=ke,Mt=Et,$t=e(42505),Kt=e(96905),gn=e(87078),Rn=t.createContext({}),vn=o=>{let{children:n}=o;return n};function on(o){return o!=null}var An=o=>{const{itemPrefixCls:n,component:l,span:s,className:a,style:h,labelStyle:m,contentStyle:$,bordered:p,label:S,content:B,colon:k}=o,pe=l;return p?t.createElement(pe,{className:F()({[`${n}-item-label`]:on(S),[`${n}-item-content`]:on(B)},a),style:h,colSpan:s},on(S)&&t.createElement("span",{style:m},S),on(B)&&t.createElement("span",{style:$},B)):t.createElement(pe,{className:F()(`${n}-item`,a),style:h,colSpan:s},t.createElement("div",{className:`${n}-item-container`},(S||S===0)&&t.createElement("span",{className:F()(`${n}-item-label`,{[`${n}-item-no-colon`]:!k}),style:m},S),(B||B===0)&&t.createElement("span",{className:F()(`${n}-item-content`),style:$},B)))};function sr(o,n,l){let{colon:s,prefixCls:a,bordered:h}=n,{component:m,type:$,showLabel:p,showContent:S,labelStyle:B,contentStyle:k}=l;return o.map((pe,We)=>{let{label:Ee,children:rt,prefixCls:lt=a,className:Wt,style:Bt,labelStyle:Rt,contentStyle:dn,span:nn=1,key:wn}=pe;return typeof m=="string"?t.createElement(An,{key:`${$}-${wn||We}`,className:Wt,style:Bt,labelStyle:Object.assign(Object.assign({},B),Rt),contentStyle:Object.assign(Object.assign({},k),dn),span:nn,colon:s,component:m,itemPrefixCls:lt,bordered:h,label:p?Ee:null,content:S?rt:null}):[t.createElement(An,{key:`label-${wn||We}`,className:Wt,style:Object.assign(Object.assign(Object.assign({},B),Bt),Rt),span:1,colon:s,component:m[0],itemPrefixCls:lt,bordered:h,label:Ee}),t.createElement(An,{key:`content-${wn||We}`,className:Wt,style:Object.assign(Object.assign(Object.assign({},k),Bt),dn),span:nn*2-1,component:m[1],itemPrefixCls:lt,bordered:h,content:rt})]})}var go=o=>{const n=t.useContext(Rn),{prefixCls:l,vertical:s,row:a,index:h,bordered:m}=o;return s?t.createElement(t.Fragment,null,t.createElement("tr",{key:`label-${h}`,className:`${l}-row`},sr(a,o,Object.assign({component:"th",type:"label",showLabel:!0},n))),t.createElement("tr",{key:`content-${h}`,className:`${l}-row`},sr(a,o,Object.assign({component:"td",type:"content",showContent:!0},n)))):t.createElement("tr",{key:h,className:`${l}-row`},sr(a,o,Object.assign({component:m?["th","td"]:"td",type:"item",showLabel:!0,showContent:!0},n)))};function Er(o,n,l){let s=o;return(l===void 0||l>n)&&(s=Object.assign(Object.assign({},o),{span:n})),s}const xr=o=>(0,he.Z)(o).map(n=>Object.assign({},n==null?void 0:n.props));function lo(o,n){const l=[];let s=[],a=n;return o.filter(h=>h).forEach((h,m)=>{const $=h==null?void 0:h.span,p=$||1;if(m===o.length-1){s.push(Er(h,a,$)),l.push(s);return}p(0,t.useMemo)(()=>Array.isArray(n)?lo(n,o):lo(xr(l),o),[n,l,o]);const vo=o=>{const{componentCls:n,labelBg:l}=o;return{[`&${n}-bordered`]:{[`> ${n}-view`]:{border:`${o.lineWidth}px ${o.lineType} ${o.colorSplit}`,"> table":{tableLayout:"auto",borderCollapse:"collapse"},[`${n}-row`]:{borderBottom:`${o.lineWidth}px ${o.lineType} ${o.colorSplit}`,"&:last-child":{borderBottom:"none"},[`> ${n}-item-label, > ${n}-item-content`]:{padding:`${o.padding}px ${o.paddingLG}px`,borderInlineEnd:`${o.lineWidth}px ${o.lineType} ${o.colorSplit}`,"&:last-child":{borderInlineEnd:"none"}},[`> ${n}-item-label`]:{color:o.colorTextSecondary,backgroundColor:l,"&::after":{display:"none"}}}},[`&${n}-middle`]:{[`${n}-row`]:{[`> ${n}-item-label, > ${n}-item-content`]:{padding:`${o.paddingSM}px ${o.paddingLG}px`}}},[`&${n}-small`]:{[`${n}-row`]:{[`> ${n}-item-label, > ${n}-item-content`]:{padding:`${o.paddingXS}px ${o.padding}px`}}}}}},ho=o=>{const{componentCls:n,extraColor:l,itemPaddingBottom:s,colonMarginRight:a,colonMarginLeft:h,titleMarginBottom:m}=o;return{[n]:Object.assign(Object.assign(Object.assign({},(0,te.Wf)(o)),vo(o)),{["&-rtl"]:{direction:"rtl"},[`${n}-header`]:{display:"flex",alignItems:"center",marginBottom:m},[`${n}-title`]:Object.assign(Object.assign({},te.vS),{flex:"auto",color:o.colorText,fontWeight:o.fontWeightStrong,fontSize:o.fontSizeLG,lineHeight:o.lineHeightLG}),[`${n}-extra`]:{marginInlineStart:"auto",color:l,fontSize:o.fontSize},[`${n}-view`]:{width:"100%",borderRadius:o.borderRadiusLG,table:{width:"100%",tableLayout:"fixed"}},[`${n}-row`]:{"> th, > td":{paddingBottom:s},"&:last-child":{borderBottom:"none"}},[`${n}-item-label`]:{color:o.colorTextTertiary,fontWeight:"normal",fontSize:o.fontSize,lineHeight:o.lineHeight,textAlign:"start","&::after":{content:'":"',position:"relative",top:-.5,marginInline:`${h}px ${a}px`},[`&${n}-item-no-colon::after`]:{content:'""'}},[`${n}-item-no-label`]:{"&::after":{margin:0,content:'""'}},[`${n}-item-content`]:{display:"table-cell",flex:1,color:o.colorText,fontSize:o.fontSize,lineHeight:o.lineHeight,wordBreak:"break-word",overflowWrap:"break-word"},[`${n}-item`]:{paddingBottom:0,verticalAlign:"top","&-container":{display:"flex",[`${n}-item-label`]:{display:"inline-flex",alignItems:"baseline"},[`${n}-item-content`]:{display:"inline-flex",alignItems:"baseline"}}},"&-middle":{[`${n}-row`]:{"> th, > td":{paddingBottom:o.paddingSM}}},"&-small":{[`${n}-row`]:{"> th, > td":{paddingBottom:o.paddingXS}}}})}};var cr=(0,A.Z)("Descriptions",o=>{const n=(0,J.TS)(o,{});return[ho(n)]},o=>({labelBg:o.colorFillAlter,titleMarginBottom:o.fontSizeSM*o.lineHeightSM,itemPaddingBottom:o.padding,colonMarginRight:o.marginXS,colonMarginLeft:o.marginXXS/2,extraColor:o.colorText})),Kr=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:n,title:l,extra:s,column:a=yo,colon:h=!0,bordered:m,layout:$,children:p,className:S,rootClassName:B,style:k,size:pe,labelStyle:We,contentStyle:Ee,items:rt}=o,lt=Kr(o,["prefixCls","title","extra","column","colon","bordered","layout","children","className","rootClassName","style","size","labelStyle","contentStyle","items"]),{getPrefixCls:Wt,direction:Bt,descriptions:Rt}=t.useContext(de.E_),dn=Wt("descriptions",n),[nn,wn]=t.useState({}),Tn=ga(a,nn),Vn=(0,Tr.Z)(pe),pr=Qr(Tn,rt,p),[jr,Ko]=cr(dn),Wr=(0,gn.Z)();t.useEffect(()=>{const $r=Wr.subscribe(uo=>{typeof a=="object"&&wn(uo)});return()=>{Wr.unsubscribe($r)}},[]);const Mr=t.useMemo(()=>({labelStyle:We,contentStyle:Ee}),[We,Ee]);return jr(t.createElement(Rn.Provider,{value:Mr},t.createElement("div",Object.assign({className:F()(dn,Rt==null?void 0:Rt.className,{[`${dn}-${Vn}`]:Vn&&Vn!=="default",[`${dn}-bordered`]:!!m,[`${dn}-rtl`]:Bt==="rtl"},S,B,Ko),style:Object.assign(Object.assign({},Rt==null?void 0:Rt.style),k)},lt),(l||s)&&t.createElement("div",{className:`${dn}-header`},l&&t.createElement("div",{className:`${dn}-title`},l),s&&t.createElement("div",{className:`${dn}-extra`},s)),t.createElement("div",{className:`${dn}-view`},t.createElement("table",null,t.createElement("tbody",null,pr.map(($r,uo)=>t.createElement(go,{key:uo,index:uo,colon:h,prefixCls:dn,vertical:$==="vertical",bordered:m,row:$r}))))))))};Fo.Item=vn;var eo=Fo,Jo=e(39953),bo=e(73267),ta=e(17444),po=e(74820),Ya={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{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.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"}}]},name:"file-text",theme:"outlined"},Bi=Ya,Ma=e(17202),hi=function(n,l){return t.createElement(Ma.Z,(0,_e.Z)({},n,{ref:l,icon:Bi}))},Mo=t.forwardRef(hi);const aa=o=>{const{icon:n,description:l,prefixCls:s,className:a}=o,h=t.createElement("div",{className:`${s}-icon`},t.createElement(Mo,null));return t.createElement("div",{onClick:o.onClick,onFocus:o.onFocus,onMouseEnter:o.onMouseEnter,onMouseLeave:o.onMouseLeave,className:F()(a,`${s}-content`)},n||l?t.createElement(t.Fragment,null,n&&t.createElement("div",{className:`${s}-icon`},n),l&&t.createElement("div",{className:`${s}-description`},l)):h)};var Oi=(0,t.memo)(aa);const da=t.createContext(void 0),{Provider:Eo}=da;var so=da,hr=e(57793),ir=e(7239),Dr=e(85745),no=o=>o===0?0:o-Math.sqrt(Math.pow(o,2)/2);const Xo=o=>{const{componentCls:n,floatButtonSize:l,motionDurationSlow:s,motionEaseInOutCirc:a}=o,h=`${n}-group`,m=new hr.E4("antFloatButtonMoveDownIn",{"0%":{transform:`translate3d(0, ${l}px, 0)`,transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),$=new hr.E4("antFloatButtonMoveDownOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:`translate3d(0, ${l}px, 0)`,transformOrigin:"0 0",opacity:0}});return[{[`${h}-wrap`]:Object.assign({},(0,Dr.R)(`${h}-wrap`,m,$,s,!0))},{[`${h}-wrap`]:{[` - &${h}-wrap-enter, - &${h}-wrap-appear - `]:{opacity:0,animationTimingFunction:a},[`&${h}-wrap-leave`]:{animationTimingFunction:a}}}]},ba=o=>{const{antCls:n,componentCls:l,floatButtonSize:s,margin:a,borderRadiusLG:h,borderRadiusSM:m,badgeOffset:$,floatButtonBodyPadding:p}=o,S=`${l}-group`;return{[S]:Object.assign(Object.assign({},(0,te.Wf)(o)),{zIndex:99,display:"block",border:"none",position:"fixed",width:s,height:"auto",boxShadow:"none",minHeight:s,insetInlineEnd:o.floatButtonInsetInlineEnd,insetBlockEnd:o.floatButtonInsetBlockEnd,borderRadius:h,[`${S}-wrap`]:{zIndex:-1,display:"block",position:"relative",marginBottom:a},[`&${S}-rtl`]:{direction:"rtl"},[l]:{position:"static"}}),[`${S}-circle`]:{[`${l}-circle:not(:last-child)`]:{marginBottom:o.margin,[`${l}-body`]:{width:s,height:s,borderRadius:"50%"}}},[`${S}-square`]:{[`${l}-square`]:{borderRadius:0,padding:0,"&:first-child":{borderStartStartRadius:h,borderStartEndRadius:h},"&:last-child":{borderEndStartRadius:h,borderEndEndRadius:h},"&:not(:last-child)":{borderBottom:`${o.lineWidth}px ${o.lineType} ${o.colorSplit}`},[`${n}-badge`]:{[`${n}-badge-count`]:{top:-(p+$),insetInlineEnd:-(p+$)}}},[`${S}-wrap`]:{display:"block",borderRadius:h,boxShadow:o.boxShadowSecondary,[`${l}-square`]:{boxShadow:"none",marginTop:0,borderRadius:0,padding:p,"&:first-child":{borderStartStartRadius:h,borderStartEndRadius:h},"&:last-child":{borderEndStartRadius:h,borderEndEndRadius:h},"&:not(:last-child)":{borderBottom:`${o.lineWidth}px ${o.lineType} ${o.colorSplit}`},[`${l}-body`]:{width:o.floatButtonBodySize,height:o.floatButtonBodySize}}}},[`${S}-circle-shadow`]:{boxShadow:"none"},[`${S}-square-shadow`]:{boxShadow:o.boxShadowSecondary,[`${l}-square`]:{boxShadow:"none",padding:p,[`${l}-body`]:{width:o.floatButtonBodySize,height:o.floatButtonBodySize,borderRadius:m}}}}},pi=o=>{const{antCls:n,componentCls:l,floatButtonBodyPadding:s,floatButtonIconSize:a,floatButtonSize:h,borderRadiusLG:m,badgeOffset:$,dotOffsetInSquare:p,dotOffsetInCircle:S}=o;return{[l]:Object.assign(Object.assign({},(0,te.Wf)(o)),{border:"none",position:"fixed",cursor:"pointer",zIndex:99,display:"block",justifyContent:"center",alignItems:"center",width:h,height:h,insetInlineEnd:o.floatButtonInsetInlineEnd,insetBlockEnd:o.floatButtonInsetBlockEnd,boxShadow:o.boxShadowSecondary,"&-pure":{position:"relative",inset:"auto"},"&:empty":{display:"none"},[`${n}-badge`]:{width:"100%",height:"100%",[`${n}-badge-count`]:{transform:"translate(0, 0)",transformOrigin:"center",top:-$,insetInlineEnd:-$}},[`${l}-body`]:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center",transition:`all ${o.motionDurationMid}`,[`${l}-content`]:{overflow:"hidden",textAlign:"center",minHeight:h,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",padding:`${s/2}px ${s}px`,[`${l}-icon`]:{textAlign:"center",margin:"auto",width:a,fontSize:a,lineHeight:1}}}}),[`${l}-rtl`]:{direction:"rtl"},[`${l}-circle`]:{height:h,borderRadius:"50%",[`${n}-badge`]:{[`${n}-badge-dot`]:{top:S,insetInlineEnd:S}},[`${l}-body`]:{borderRadius:"50%"}},[`${l}-square`]:{height:"auto",minHeight:h,borderRadius:m,[`${n}-badge`]:{[`${n}-badge-dot`]:{top:p,insetInlineEnd:p}},[`${l}-body`]:{height:"auto",borderRadius:m}},[`${l}-default`]:{backgroundColor:o.floatButtonBackgroundColor,transition:`background-color ${o.motionDurationMid}`,[`${l}-body`]:{backgroundColor:o.floatButtonBackgroundColor,transition:`background-color ${o.motionDurationMid}`,"&:hover":{backgroundColor:o.colorFillContent},[`${l}-content`]:{[`${l}-icon`]:{color:o.colorText},[`${l}-description`]:{display:"flex",alignItems:"center",lineHeight:`${o.fontSizeLG}px`,color:o.colorText,fontSize:o.fontSizeSM}}}},[`${l}-primary`]:{backgroundColor:o.colorPrimary,[`${l}-body`]:{backgroundColor:o.colorPrimary,transition:`background-color ${o.motionDurationMid}`,"&:hover":{backgroundColor:o.colorPrimaryHover},[`${l}-content`]:{[`${l}-icon`]:{color:o.colorTextLightSolid},[`${l}-description`]:{display:"flex",alignItems:"center",lineHeight:`${o.fontSizeLG}px`,color:o.colorTextLightSolid,fontSize:o.fontSizeSM}}}}}};var ti=(0,A.Z)("FloatButton",o=>{const{colorTextLightSolid:n,colorBgElevated:l,controlHeightLG:s,marginXXL:a,marginLG:h,fontSize:m,fontSizeIcon:$,controlItemBgHover:p,paddingXXS:S,borderRadiusLG:B}=o,k=(0,J.TS)(o,{floatButtonBackgroundColor:l,floatButtonColor:n,floatButtonHoverBackgroundColor:p,floatButtonFontSize:m,floatButtonIconSize:$*1.5,floatButtonSize:s,floatButtonInsetBlockEnd:a,floatButtonInsetInlineEnd:h,floatButtonBodySize:s-S*2,floatButtonBodyPadding:S,badgeOffset:S*1.5,dotOffsetInCircle:no(s/2),dotOffsetInSquare:no(B)});return[ba(k),pi(k),(0,ir.J$)(o),Xo(k)]}),Fl=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:l,className:s,rootClassName:a,type:h="default",shape:m="circle",icon:$,description:p,tooltip:S,badge:B={}}=o,k=Fl(o,["prefixCls","className","rootClassName","type","shape","icon","description","tooltip","badge"]),{getPrefixCls:pe,direction:We}=(0,t.useContext)(de.E_),Ee=(0,t.useContext)(so),rt=pe(wa,l),[lt,Wt]=ti(rt),Bt=Ee||m,Rt=F()(Wt,rt,s,a,`${rt}-${h}`,`${rt}-${Bt}`,{[`${rt}-rtl`]:We==="rtl"}),dn=(0,t.useMemo)(()=>(0,ht.Z)(B,["title","children","status","text"]),[B]),nn=(0,t.useMemo)(()=>({prefixCls:rt,description:p,icon:$,type:h}),[rt,p,$,h]);let wn=t.createElement("div",{className:`${rt}-body`},t.createElement(Oi,Object.assign({},nn)));return"badge"in o&&(wn=t.createElement(_.Z,Object.assign({},dn),wn)),"tooltip"in o&&(wn=t.createElement(po.Z,{title:S,placement:We==="rtl"?"right":"left"},wn)),lt(o.href?t.createElement("a",Object.assign({ref:n},k,{className:Rt}),wn):t.createElement("button",Object.assign({ref:n},k,{className:Rt,type:"button"}),wn))};var oi=t.forwardRef(wl),Il=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:n,className:l,type:s="default",shape:a="circle",visibilityHeight:h=400,icon:m=t.createElement(Oe.Z,null),target:$,onClick:p,duration:S=450}=o,B=Il(o,["prefixCls","className","type","shape","visibilityHeight","icon","target","onClick","duration"]),[k,pe]=(0,t.useState)(h===0),We=(0,t.useRef)(null),Ee=()=>We.current&&We.current.ownerDocument?We.current.ownerDocument:window,rt=(0,O.Z)(Vn=>{const pr=(0,M.Z)(Vn.target,!0);pe(pr>=h)});(0,t.useEffect)(()=>{const pr=($||Ee)();return rt({target:pr}),pr==null||pr.addEventListener("scroll",rt),()=>{rt.cancel(),pr==null||pr.removeEventListener("scroll",rt)}},[$]);const lt=Vn=>{(0,Ce.Z)(0,{getContainer:$||Ee,duration:S}),p==null||p(Vn)},{getPrefixCls:Wt}=(0,t.useContext)(de.E_),Bt=Wt(wa,n),Rt=Wt(),[dn]=ti(Bt),wn=(0,t.useContext)(so)||a,Tn=Object.assign({prefixCls:Bt,icon:m,type:s,shape:wn},B);return dn(t.createElement(je.ZP,{visible:k,motionName:`${Rt}-fade`},Vn=>{let{className:pr}=Vn;return t.createElement(oi,Object.assign({ref:We},Tn,{onClick:lt,className:F()(l,pr)}))}))};var ha=(0,t.memo)(Bo),Ea=e(52495),ai=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:n,className:l,style:s,shape:a="circle",type:h="default",icon:m=t.createElement(Mo,null),closeIcon:$=t.createElement(Ea.Z,null),description:p,trigger:S,children:B,onOpenChange:k,open:pe}=o,We=ai(o,["prefixCls","className","style","shape","type","icon","closeIcon","description","trigger","children","onOpenChange","open"]),{direction:Ee,getPrefixCls:rt}=(0,t.useContext)(de.E_),lt=rt(wa,n),[Wt,Bt]=ti(lt),Rt=`${lt}-group`,dn=F()(Rt,Bt,l,{[`${Rt}-rtl`]:Ee==="rtl",[`${Rt}-${a}`]:a,[`${Rt}-${a}-shadow`]:!S}),nn=F()(Bt,`${Rt}-wrap`),[wn,Tn]=(0,Nt.Z)(!1,{value:pe}),Vn=(0,t.useRef)(null),pr=(0,t.useRef)(null),jr=(0,t.useMemo)(()=>S==="hover"?{onMouseEnter(){Tn(!0),k==null||k(!0)},onMouseLeave(){Tn(!1),k==null||k(!1)}}:{},[S]),Ko=()=>{Tn(Mr=>(k==null||k(!Mr),!Mr))},Wr=(0,t.useCallback)(Mr=>{var $r,uo;if(!(($r=Vn.current)===null||$r===void 0)&&$r.contains(Mr.target)){!((uo=pr.current)===null||uo===void 0)&&uo.contains(Mr.target)&&Ko();return}Tn(!1),k==null||k(!1)},[S]);return(0,t.useEffect)(()=>{if(S==="click")return document.addEventListener("click",Wr),()=>{document.removeEventListener("click",Wr)}},[S]),Wt(t.createElement(Eo,{value:a},t.createElement("div",Object.assign({ref:Vn,className:dn,style:s},jr),S&&["click","hover"].includes(S)?t.createElement(t.Fragment,null,t.createElement(je.ZP,{visible:wn,motionName:`${Rt}-wrap`},Mr=>{let{className:$r}=Mr;return t.createElement("div",{className:F()($r,nn)},B)}),t.createElement(oi,Object.assign({ref:pr,type:h,shape:a,icon:wn?$:m,description:p,"aria-label":o["aria-label"]},We))):B)))};var Na=(0,t.memo)(Wo),ci=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{var{backTop:n}=o,l=ci(o,["backTop"]);return n?t.createElement(ha,Object.assign({},l,{visibilityHeight:0})):t.createElement(oi,Object.assign({},l))};var dl=o=>{var{className:n,items:l}=o,s=ci(o,["className","items"]);const{prefixCls:a}=s,{getPrefixCls:h}=t.useContext(de.E_),$=`${h(wa,a)}-pure`;return l?t.createElement(Na,Object.assign({className:F()(n,$)},s),l.map((p,S)=>t.createElement(Zi,Object.assign({key:S},p)))):t.createElement(Zi,Object.assign({className:F()(n,$)},s))};oi.BackTop=ha,oi.Group=Na,oi._InternalPanelDoNotUseOrYouWillBeFired=dl;var _a=oi,Ui=e(47513),ki=e(80172),ul=e(31712),Ci=e(26087),ii=e(37617),fl=e(19570),Ri=e(2071),zi=e(29639),No=e(75556);function Ta(){var o=(0,t.useState)({id:0,callback:null}),n=(0,v.Z)(o,2),l=n[0],s=n[1],a=(0,t.useCallback)(function(h){s(function(m){var $=m.id;return{id:$+1,callback:h}})},[]);return(0,t.useEffect)(function(){var h;(h=l.callback)===null||h===void 0||h.call(l)},[l]),a}var Fa=e(99863),Ua=e(87854),li=t.createContext(null),Ji=li;function qi(o){var n=t.useContext(Ji),l=n.notFoundContent,s=n.activeIndex,a=n.setActiveIndex,h=n.selectOption,m=n.onFocus,$=n.onBlur,p=o.prefixCls,S=o.options,B=S[s]||{};return t.createElement(Ua.ZP,{prefixCls:"".concat(p,"-menu"),activeKey:B.key,onSelect:function(pe){var We=pe.key,Ee=S.find(function(rt){var lt=rt.key;return lt===We});h(Ee)},onFocus:m,onBlur:$},S.map(function(k,pe){var We=k.key,Ee=k.disabled,rt=k.className,lt=k.style,Wt=k.label;return t.createElement(Ua.sN,{key:We,disabled:Ee,className:rt,style:lt,onMouseEnter:function(){a(pe)}},Wt)}),!S.length&&t.createElement(Ua.sN,{disabled:!0},l))}var Ll=qi,ds={bottomRight:{points:["tl","br"],offset:[0,4],overflow:{adjustX:1,adjustY:1}},bottomLeft:{points:["tr","bl"],offset:[0,4],overflow:{adjustX:1,adjustY:1}},topRight:{points:["bl","tr"],offset:[0,-4],overflow:{adjustX:1,adjustY:1}},topLeft:{points:["br","tl"],offset:[0,-4],overflow:{adjustX:1,adjustY:1}}},us=function(n){var l=n.prefixCls,s=n.options,a=n.children,h=n.visible,m=n.transitionName,$=n.getPopupContainer,p=n.dropdownClassName,S=n.direction,B=n.placement,k="".concat(l,"-dropdown"),pe=t.createElement(Ll,{prefixCls:k,options:s}),We=(0,t.useMemo)(function(){var Ee;return S==="rtl"?Ee=B==="top"?"topLeft":"bottomLeft":Ee=B==="top"?"topRight":"bottomRight",Ee},[S,B]);return t.createElement(Fa.Z,{prefixCls:k,popupVisible:h,popup:pe,popupPlacement:We,popupTransitionName:m,builtinPlacements:ds,getPopupContainer:$,popupClassName:p},a)},_i=us,fs=function(){return null},Ql=fs;function Yl(o){var n=o.selectionStart;return o.value.slice(0,n)}function vs(o,n){return n.reduce(function(l,s){var a=o.lastIndexOf(s);return a>l.location?{location:a,prefix:s}:l},{location:-1,prefix:""})}function ms(o){return(o||"").toLowerCase()}function os(o,n,l){var s=o[0];if(!s||s===l)return o;for(var a=o,h=n.length,m=0;m=0)return[!0,"",Qo,xa]}return[Sa,Yo,Ii,hl]},[lt,Sa,ja,ys,Yo,Ii,hl]),Ls=(0,v.Z)(sc,4),Cs=Ls[0],Us=Ls[1],js=Ls[2],Ps=Ls[3],Xs=t.useCallback(function(Wi){var Qo;return rt&&rt.length>0?Qo=rt.map(function(xa){var fi;return(0,re.Z)((0,re.Z)({},xa),{},{key:(fi=xa==null?void 0:xa.key)!==null&&fi!==void 0?fi:xa.value})}):Qo=(0,he.Z)(Ee).map(function(xa){var fi=xa.props,$s=xa.key;return(0,re.Z)((0,re.Z)({},fi),{},{label:fi.children,key:$s||fi.value})}),Qo.filter(function(xa){return dn===!1?!0:dn(Wi,xa)})},[Ee,rt,dn]),As=t.useMemo(function(){return Xs(Us)},[Xs,Us]),ea=Ta(),Da=function(Qo,xa,fi){ua(!0),di(Qo),ro(xa),rs(fi),si(0)},Pl=function(Qo){ua(!1),rs(0),di(""),ea(Qo)},jl=function(Qo){bc(Qo),nn==null||nn(Qo)},Ul=function(Qo){var xa=Qo.target.value;jl(xa)},Hs=function(Qo){var xa,fi=Qo.value,$s=fi===void 0?"":fi,Os=as(ys,{measureLocation:Ps,targetText:$s,prefix:js,selectionStart:(xa=Gr())===null||xa===void 0?void 0:xa.selectionStart,split:S}),ks=Os.text,Qs=Os.selectionLocation;jl(ks),Pl(function(){ts(Gr(),Qs)}),jr==null||jr(Qo,js)},Bs=function(Qo){var xa=Qo.which;if(wn==null||wn(Qo),!!Cs){if(xa===zi.Z.UP||xa===zi.Z.DOWN){var fi=As.length,$s=xa===zi.Z.UP?-1:1,Os=(El+$s+fi)%fi;si(Os),Qo.preventDefault()}else if(xa===zi.Z.ESC)Pl();else if(xa===zi.Z.ENTER){if(Qo.preventDefault(),!As.length){Pl();return}var ks=As[El];Hs(ks)}}},Gs=function(Qo){var xa=Qo.key,fi=Qo.which,$s=Qo.target,Os=Yl($s),ks=vs(Os,ja),Qs=ks.location,cc=ks.prefix;if(Tn==null||Tn(Qo),[zi.Z.ESC,zi.Z.UP,zi.Z.DOWN,zi.Z.ENTER].indexOf(fi)===-1)if(Qs!==-1){var Js=Os.slice(Qs+cc.length),zc=Bt(Js,S),bu=!!Xs(Js).length;zc?(xa===cc||xa==="Shift"||Cs||Js!==Us&&bu)&&Da(Js,cc,Qs):Cs&&Pl(),pr&&zc&&pr(Js,cc)}else Cs&&Pl()},pu=function(Qo){!Cs&&Vn&&Vn(Qo)},Hc=(0,t.useRef)(),Bc=function(Qo){window.clearTimeout(Hc.current),!ac&&Qo&&Ko&&Ko(Qo),ic(!0)},kc=function(Qo){Hc.current=window.setTimeout(function(){ic(!1),Pl(),Wr==null||Wr(Qo)},0)},yu=function(){Bc()},Cu=function(){kc()};return t.createElement("div",{className:F()(s,a),style:h},t.createElement(Ri.Z,(0,_e.Z)({ref:mo,value:ys},Ca,{rows:xi,onChange:Ul,onKeyDown:Bs,onKeyUp:Gs,onPressEnter:pu,onFocus:Bc,onBlur:kc})),Cs&&t.createElement("div",{ref:ia,className:"".concat(s,"-measure")},ys.slice(0,Ps),t.createElement(Ji.Provider,{value:{notFoundContent:k,activeIndex:El,setActiveIndex:si,selectOption:Hs,onFocus:yu,onBlur:Cu}},t.createElement(_i,{prefixCls:s,transitionName:Mr,placement:$r,direction:uo,options:As,visible:!0,getPopupContainer:$a,dropdownClassName:Vo},t.createElement("span",null,js))),ys.slice(Ps+js.length)))}),_o=(0,t.forwardRef)(function(o,n){var l=o.suffix,s=o.prefixCls,a=o.classes,h=o.value,m=(0,St.Z)(o,Zr);return t.createElement(fl.Q,{inputElement:t.createElement(Jr,(0,_e.Z)({prefixCls:s,ref:n},m)),suffix:l,prefixCls:s,classes:a,value:h})});_o.Option=Ql;var La=_o,zl=La,el=e(21319),vl=e(10401),al=e(79233);const Wl=o=>{const{componentCls:n,colorTextDisabled:l,controlItemBgHover:s,controlPaddingHorizontal:a,colorText:h,motionDurationSlow:m,lineHeight:$,controlHeight:p,inputPaddingHorizontal:S,inputPaddingVertical:B,fontSize:k,colorBgElevated:pe,paddingXXS:We,borderRadius:Ee,borderRadiusLG:rt,boxShadowSecondary:lt}=o,Wt=Math.round((o.controlHeight-o.fontSize*o.lineHeight)/2);return{[n]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,te.Wf)(o)),(0,ln.ik)(o)),{position:"relative",display:"inline-block",height:"auto",padding:0,overflow:"hidden",lineHeight:$,whiteSpace:"pre-wrap",verticalAlign:"bottom"}),(0,ln.bi)(o,n)),{"&-disabled":{"> textarea":Object.assign({},(0,ln.Xy)(o))},[`&-affix-wrapper ${n}-suffix`]:{position:"absolute",top:0,insetInlineEnd:S,bottom:0,zIndex:1,display:"inline-flex",alignItems:"center",margin:"auto"},[`> textarea, ${n}-measure`]:{color:h,boxSizing:"border-box",minHeight:p-2,margin:0,padding:`${B}px ${S}px`,overflow:"inherit",overflowX:"hidden",overflowY:"auto",fontWeight:"inherit",fontSize:"inherit",fontFamily:"inherit",fontStyle:"inherit",fontVariant:"inherit",fontSizeAdjust:"inherit",fontStretch:"inherit",lineHeight:"inherit",direction:"inherit",letterSpacing:"inherit",whiteSpace:"inherit",textAlign:"inherit",verticalAlign:"top",wordWrap:"break-word",wordBreak:"inherit",tabSize:"inherit"},"> textarea":Object.assign({width:"100%",border:"none",outline:"none",resize:"none",backgroundColor:"inherit"},(0,ln.nz)(o.colorTextPlaceholder)),[`${n}-measure`]:{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:-1,color:"transparent",pointerEvents:"none","> span":{display:"inline-block",minHeight:"1em"}},"&-dropdown":Object.assign(Object.assign({},(0,te.Wf)(o)),{position:"absolute",top:-9999,insetInlineStart:-9999,zIndex:o.zIndexPopup,boxSizing:"border-box",fontSize:k,fontVariant:"initial",padding:We,backgroundColor:pe,borderRadius:rt,outline:"none",boxShadow:lt,"&-hidden":{display:"none"},[`${n}-dropdown-menu`]:{maxHeight:o.dropdownHeight,margin:0,paddingInlineStart:0,overflow:"auto",listStyle:"none",outline:"none","&-item":Object.assign(Object.assign({},te.vS),{position:"relative",display:"block",minWidth:o.controlItemWidth,padding:`${Wt}px ${a}px`,color:h,borderRadius:Ee,fontWeight:"normal",lineHeight:$,cursor:"pointer",transition:`background ${m} ease`,"&:hover":{backgroundColor:s},"&-disabled":{color:l,cursor:"not-allowed","&:hover":{color:l,backgroundColor:s,cursor:"not-allowed"}},"&-selected":{color:h,fontWeight:o.fontWeightStrong,backgroundColor:s},"&-active":{backgroundColor:s}})}})})}};var Kl=(0,A.Z)("Mentions",o=>{const n=(0,ln.e5)(o);return[Wl(n)]},o=>({dropdownHeight:250,controlItemWidth:100,zIndexPopup:o.zIndexPopupBase+50})),ml=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:l,className:s,rootClassName:a,disabled:h,loading:m,filterOption:$,children:p,notFoundContent:S,options:B,status:k,popupClassName:pe,style:We}=o,Ee=ml(o,["prefixCls","className","rootClassName","disabled","loading","filterOption","children","notFoundContent","options","status","popupClassName","style"]),[rt,lt]=t.useState(!1),Wt=t.useRef(null),Bt=(0,el.sQ)(n,Wt),{getPrefixCls:Rt,renderEmpty:dn,direction:nn,mentions:wn}=t.useContext(de.E_),{status:Tn,hasFeedback:Vn,feedbackIcon:pr}=t.useContext(kt.aM),jr=(0,Nr.F)(Tn,k),Ko=function(){Ee.onFocus&&Ee.onFocus.apply(Ee,arguments),lt(!0)},Wr=function(){Ee.onBlur&&Ee.onBlur.apply(Ee,arguments),lt(!1)},Mr=t.useMemo(()=>S!==void 0?S:(dn==null?void 0:dn("Select"))||t.createElement(vl.Z,{componentName:"Select"}),[S,dn]),$r=t.useMemo(()=>m?t.createElement(bs,{value:"ANTD_SEARCHING",disabled:!0},t.createElement(al.Z,{size:"small"})):p,[m,p]),uo=m?[{value:"ANTD_SEARCHING",disabled:!0,label:t.createElement(al.Z,{size:"small"})}]:B,$a=m?Zs:$,Vo=Rt("mentions",l),[ya,xi]=Kl(Vo),Ca=F()({[`${Vo}-disabled`]:h,[`${Vo}-focused`]:rt,[`${Vo}-rtl`]:nn==="rtl"},(0,Nr.Z)(Vo,jr),wn==null?void 0:wn.className,!Vn&&s,a,xi),ja=t.createElement(zl,Object.assign({prefixCls:Vo,notFoundContent:Mr,className:Ca,disabled:h,direction:nn,style:Object.assign(Object.assign({},wn==null?void 0:wn.style),We)},Ee,{filterOption:$a,onFocus:Ko,onBlur:Wr,dropdownClassName:F()(pe,a,xi),ref:Bt,options:uo,suffix:Vn&&pr,classes:{affixWrapper:F()(xi,s)}}),$r);return ya(ja)},is=t.forwardRef(Rs);is.Option=bs;const Is=(0,at.Z)(is,"mentions");is._InternalPanelDoNotUseOrYouWillBeFired=Is,is.getMentions=function(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{prefix:l="@",split:s=" "}=n,a=Array.isArray(l)?l:[l];return o.split(s).map(function(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",m=null;return a.some($=>h.slice(0,$.length)===$?(m=$,!0):!1),m!==null?{prefix:m,value:h.slice(m.length)}:null}).filter(h=>!!h&&!!h.value)};var Ss=is,c=e(85706),r=e(84045),d=e(62109),u=e(65388),N=e(35910),q=e(30956),He=e(95664),ze=e(22283),Ge=Object.defineProperty,Je=Object.getOwnPropertySymbols,jt=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable,Qt=(o,n,l)=>n in o?Ge(o,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):o[n]=l,Ln=(o,n)=>{for(var l in n||(n={}))jt.call(n,l)&&Qt(o,l,n[l]);if(Je)for(var l of Je(n))rn.call(n,l)&&Qt(o,l,n[l]);return o},Xn=(o,n)=>{var l={};for(var s in o)jt.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&Je)for(var s of Je(o))n.indexOf(s)<0&&rn.call(o,s)&&(l[s]=o[s]);return l};var Mn;(o=>{const n=class{constructor(p,S,B,k){if(this.version=p,this.errorCorrectionLevel=S,this.modules=[],this.isFunction=[],pn.MAX_VERSION)throw new RangeError("Version value out of range");if(k<-1||k>7)throw new RangeError("Mask value out of range");this.size=p*4+17;let pe=[];for(let Ee=0;Ee7)throw new RangeError("Invalid value");let Ee,rt;for(Ee=B;;Ee++){const Rt=n.getNumDataCodewords(Ee,S)*8,dn=$.getTotalBits(p,Ee);if(dn<=Rt){rt=dn;break}if(Ee>=k)throw new RangeError("Data too long")}for(const Rt of[n.Ecc.MEDIUM,n.Ecc.QUARTILE,n.Ecc.HIGH])We&&rt<=n.getNumDataCodewords(Ee,Rt)*8&&(S=Rt);let lt=[];for(const Rt of p){s(Rt.mode.modeBits,4,lt),s(Rt.numChars,Rt.mode.numCharCountBits(Ee),lt);for(const dn of Rt.getData())lt.push(dn)}h(lt.length==rt);const Wt=n.getNumDataCodewords(Ee,S)*8;h(lt.length<=Wt),s(0,Math.min(4,Wt-lt.length),lt),s(0,(8-lt.length%8)%8,lt),h(lt.length%8==0);for(let Rt=236;lt.lengthBt[dn>>>3]|=Rt<<7-(dn&7)),new n(Ee,S,Bt,pe)}getModule(p,S){return 0<=p&&p>>9)*1335;const k=(S<<10|B)^21522;h(k>>>15==0);for(let pe=0;pe<=5;pe++)this.setFunctionModule(8,pe,a(k,pe));this.setFunctionModule(8,7,a(k,6)),this.setFunctionModule(8,8,a(k,7)),this.setFunctionModule(7,8,a(k,8));for(let pe=9;pe<15;pe++)this.setFunctionModule(14-pe,8,a(k,pe));for(let pe=0;pe<8;pe++)this.setFunctionModule(this.size-1-pe,8,a(k,pe));for(let pe=8;pe<15;pe++)this.setFunctionModule(8,this.size-15+pe,a(k,pe));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let p=this.version;for(let B=0;B<12;B++)p=p<<1^(p>>>11)*7973;const S=this.version<<12|p;h(S>>>18==0);for(let B=0;B<18;B++){const k=a(S,B),pe=this.size-11+B%3,We=Math.floor(B/3);this.setFunctionModule(pe,We,k),this.setFunctionModule(We,pe,k)}}drawFinderPattern(p,S){for(let B=-4;B<=4;B++)for(let k=-4;k<=4;k++){const pe=Math.max(Math.abs(k),Math.abs(B)),We=p+k,Ee=S+B;0<=We&&We{(Rt!=rt-pe||nn>=Ee)&&Bt.push(dn[Rt])});return h(Bt.length==We),Bt}drawCodewords(p){if(p.length!=Math.floor(n.getNumRawDataModules(this.version)/8))throw new RangeError("Invalid argument");let S=0;for(let B=this.size-1;B>=1;B-=2){B==6&&(B=5);for(let k=0;k>>3],7-(S&7)),S++)}}h(S==p.length*8)}applyMask(p){if(p<0||p>7)throw new RangeError("Mask value out of range");for(let S=0;S5&&p++):(this.finderPenaltyAddHistory(Ee,rt),We||(p+=this.finderPenaltyCountPatterns(rt)*n.PENALTY_N3),We=this.modules[pe][lt],Ee=1);p+=this.finderPenaltyTerminateAndCount(We,Ee,rt)*n.PENALTY_N3}for(let pe=0;pe5&&p++):(this.finderPenaltyAddHistory(Ee,rt),We||(p+=this.finderPenaltyCountPatterns(rt)*n.PENALTY_N3),We=this.modules[lt][pe],Ee=1);p+=this.finderPenaltyTerminateAndCount(We,Ee,rt)*n.PENALTY_N3}for(let pe=0;peWe+(Ee?1:0),S);const B=this.size*this.size,k=Math.ceil(Math.abs(S*20-B*10)/B)-1;return h(0<=k&&k<=9),p+=k*n.PENALTY_N4,h(0<=p&&p<=2568888),p}getAlignmentPatternPositions(){if(this.version==1)return[];{const p=Math.floor(this.version/7)+2,S=this.version==32?26:Math.ceil((this.version*4+4)/(p*2-2))*2;let B=[6];for(let k=this.size-7;B.lengthn.MAX_VERSION)throw new RangeError("Version number out of range");let S=(16*p+128)*p+64;if(p>=2){const B=Math.floor(p/7)+2;S-=(25*B-10)*B-55,p>=7&&(S-=36)}return h(208<=S&&S<=29648),S}static getNumDataCodewords(p,S){return Math.floor(n.getNumRawDataModules(p)/8)-n.ECC_CODEWORDS_PER_BLOCK[S.ordinal][p]*n.NUM_ERROR_CORRECTION_BLOCKS[S.ordinal][p]}static reedSolomonComputeDivisor(p){if(p<1||p>255)throw new RangeError("Degree out of range");let S=[];for(let k=0;k0);for(const k of p){const pe=k^B.shift();B.push(0),S.forEach((We,Ee)=>B[Ee]^=n.reedSolomonMultiply(We,pe))}return B}static reedSolomonMultiply(p,S){if(p>>>8||S>>>8)throw new RangeError("Byte out of range");let B=0;for(let k=7;k>=0;k--)B=B<<1^(B>>>7)*285,B^=(S>>>k&1)*p;return h(B>>>8==0),B}finderPenaltyCountPatterns(p){const S=p[1];h(S<=this.size*3);const B=S>0&&p[2]==S&&p[3]==S*3&&p[4]==S&&p[5]==S;return(B&&p[0]>=S*4&&p[6]>=S?1:0)+(B&&p[6]>=S*4&&p[0]>=S?1:0)}finderPenaltyTerminateAndCount(p,S,B){return p&&(this.finderPenaltyAddHistory(S,B),S=0),S+=this.size,this.finderPenaltyAddHistory(S,B),this.finderPenaltyCountPatterns(B)}finderPenaltyAddHistory(p,S){S[0]==0&&(p+=this.size),S.pop(),S.unshift(p)}};let l=n;l.MIN_VERSION=1,l.MAX_VERSION=40,l.PENALTY_N1=3,l.PENALTY_N2=3,l.PENALTY_N3=40,l.PENALTY_N4=10,l.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],l.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],o.QrCode=l;function s(p,S,B){if(S<0||S>31||p>>>S)throw new RangeError("Value out of range");for(let k=S-1;k>=0;k--)B.push(p>>>k&1)}function a(p,S){return(p>>>S&1)!=0}function h(p){if(!p)throw new Error("Assertion error")}const m=class{constructor(p,S,B){if(this.mode=p,this.numChars=S,this.bitData=B,S<0)throw new RangeError("Invalid argument");this.bitData=B.slice()}static makeBytes(p){let S=[];for(const B of p)s(B,8,S);return new m(m.Mode.BYTE,p.length,S)}static makeNumeric(p){if(!m.isNumeric(p))throw new RangeError("String contains non-numeric characters");let S=[];for(let B=0;B=1<{let n;(l=>{const s=class{constructor(h,m){this.ordinal=h,this.formatBits=m}};let a=s;a.LOW=new s(0,1),a.MEDIUM=new s(1,0),a.QUARTILE=new s(2,3),a.HIGH=new s(3,2),l.Ecc=a})(n=o.QrCode||(o.QrCode={}))})(Mn||(Mn={})),(o=>{let n;(l=>{const s=class{constructor(h,m){this.modeBits=h,this.numBitsCharCount=m}numCharCountBits(h){return this.numBitsCharCount[Math.floor((h+7)/17)]}};let a=s;a.NUMERIC=new s(1,[10,12,14]),a.ALPHANUMERIC=new s(2,[9,11,13]),a.BYTE=new s(4,[8,16,16]),a.KANJI=new s(8,[8,10,12]),a.ECI=new s(7,[0,0,0]),l.Mode=a})(n=o.QrSegment||(o.QrSegment={}))})(Mn||(Mn={}));var Dn=Mn;var Ar={L:Dn.QrCode.Ecc.LOW,M:Dn.QrCode.Ecc.MEDIUM,Q:Dn.QrCode.Ecc.QUARTILE,H:Dn.QrCode.Ecc.HIGH},rr=128,Rr="L",Xr="#FFFFFF",zr="#000000",kr=!1,Lo=4,So=.1;function pa(o,n=0){const l=[];return o.forEach(function(s,a){let h=null;s.forEach(function(m,$){if(!m&&h!==null){l.push(`M${h+n} ${a+n}h${$-h}v1H${h+n}z`),h=null;return}if($===s.length-1){if(!m)return;h===null?l.push(`M${$+n},${a+n} h1v1H${$+n}z`):l.push(`M${h+n},${a+n} h${$+1-h}v1H${h+n}z`);return}m&&h===null&&(h=$)})}),l.join("")}function Pa(o,n){return o.slice().map((l,s)=>s=n.y+n.h?l:l.map((a,h)=>h=n.x+n.w?a:!1))}function ko(o,n,l,s){if(s==null)return null;const a=l?Lo:0,h=o.length+a*2,m=Math.floor(n*So),$=h/n,p=(s.width||m)*$,S=(s.height||m)*$,B=s.x==null?o.length/2-p/2:s.x*$,k=s.y==null?o.length/2-S/2:s.y*$;let pe=null;if(s.excavate){let We=Math.floor(B),Ee=Math.floor(k),rt=Math.ceil(p+B-We),lt=Math.ceil(S+k-Ee);pe={x:We,y:Ee,w:rt,h:lt}}return{x:B,y:k,h:S,w:p,excavation:pe}}var fr=function(){try{new Path2D().addPath(new Path2D)}catch(o){return!1}return!0}();function jo(o){const n=o,{value:l,size:s=rr,level:a=Rr,bgColor:h=Xr,fgColor:m=zr,includeMargin:$=kr,style:p,imageSettings:S}=n,B=Xn(n,["value","size","level","bgColor","fgColor","includeMargin","style","imageSettings"]),k=S==null?void 0:S.src,pe=(0,t.useRef)(null),We=(0,t.useRef)(null),[Ee,rt]=(0,t.useState)(!1);(0,t.useEffect)(()=>{if(pe.current!=null){const Bt=pe.current,Rt=Bt.getContext("2d");if(!Rt)return;let dn=Dn.QrCode.encodeText(l,Ar[a]).getModules();const nn=$?Lo:0,wn=dn.length+nn*2,Tn=ko(dn,s,$,S),Vn=We.current,pr=Tn!=null&&Vn!==null&&Vn.complete&&Vn.naturalHeight!==0&&Vn.naturalWidth!==0;pr&&Tn.excavation!=null&&(dn=Pa(dn,Tn.excavation));const jr=window.devicePixelRatio||1;Bt.height=Bt.width=s*jr;const Ko=s/wn*jr;Rt.scale(Ko,Ko),Rt.fillStyle=h,Rt.fillRect(0,0,wn,wn),Rt.fillStyle=m,fr?Rt.fill(new Path2D(pa(dn,nn))):dn.forEach(function(Wr,Mr){Wr.forEach(function($r,uo){$r&&Rt.fillRect(uo+nn,Mr+nn,1,1)})}),pr&&Rt.drawImage(Vn,Tn.x+nn,Tn.y+nn,Tn.w,Tn.h)}}),(0,t.useEffect)(()=>{rt(!1)},[k]);const lt=Ln({height:s,width:s},p);let Wt=null;return k!=null&&(Wt=t.createElement("img",{src:k,key:k,style:{display:"none"},onLoad:()=>{rt(!0)},ref:We})),t.createElement(t.Fragment,null,t.createElement("canvas",Ln({style:lt,height:s,width:s,ref:pe},B)),Wt)}function To(o){const n=o,{value:l,size:s=rr,level:a=Rr,bgColor:h=Xr,fgColor:m=zr,includeMargin:$=kr,imageSettings:p}=n,S=Xn(n,["value","size","level","bgColor","fgColor","includeMargin","imageSettings"]);let B=Dn.QrCode.encodeText(l,Ar[a]).getModules();const k=$?Lo:0,pe=B.length+k*2,We=ko(B,s,$,p);let Ee=null;p!=null&&We!=null&&(We.excavation!=null&&(B=Pa(B,We.excavation)),Ee=t.createElement("image",{xlinkHref:p.src,height:We.h,width:We.w,x:We.x+k,y:We.y+k,preserveAspectRatio:"none"}));const rt=pa(B,k);return t.createElement("svg",Ln({height:s,width:s,viewBox:`0 0 ${pe} ${pe}`},S),t.createElement("path",{fill:h,d:`M0,0 h${pe}v${pe}H0z`,shapeRendering:"crispEdges"}),t.createElement("path",{fill:m,d:rt,shapeRendering:"crispEdges"}),Ee)}var qr=o=>{const n=o,{renderAs:l}=n,s=Xn(n,["renderAs"]);return l==="svg"?React.createElement(To,Ln({},s)):React.createElement(jo,Ln({},s))};const na=o=>{const{componentCls:n}=o;return{[n]:Object.assign(Object.assign({},(0,te.Wf)(o)),{display:"flex",justifyContent:"center",alignItems:"center",padding:o.paddingSM,backgroundColor:o.colorWhite,borderRadius:o.borderRadiusLG,border:`${o.lineWidth}px ${o.lineType} ${o.colorSplit}`,position:"relative",width:"100%",height:"100%",overflow:"hidden",[`& > ${n}-mask`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,zIndex:10,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",width:"100%",height:"100%",color:o.colorText,lineHeight:o.lineHeight,background:o.QRCodeMaskBackgroundColor,textAlign:"center",[`& > ${n}-expired`]:{color:o.QRCodeExpiredTextColor}},"&-icon":{marginBlockEnd:o.marginXS,fontSize:o.controlHeight}}),[`${n}-borderless`]:{borderColor:"transparent"}}};var Go=(0,A.Z)("QRCode",o=>na((0,J.TS)(o,{QRCodeExpiredTextColor:"rgba(0, 0, 0, 0.88)",QRCodeMaskBackgroundColor:"rgba(255, 255, 255, 0.96)"})));const{useToken:Po}=to.Z;var bi=o=>{const{token:n}=Po(),{value:l,type:s="canvas",icon:a="",size:h=160,iconSize:m=40,color:$=n.colorText,errorLevel:p="M",status:S="active",bordered:B=!0,onRefresh:k,style:pe,className:We,rootClassName:Ee,prefixCls:rt,bgColor:lt="transparent"}=o,{getPrefixCls:Wt}=(0,t.useContext)(de.E_),Bt=Wt("qrcode",rt),[Rt,dn]=Go(Bt),nn={src:a,x:void 0,y:void 0,height:m,width:m,excavate:!0},wn={value:l,size:h-(n.paddingSM+n.lineWidth)*2,level:p,bgColor:lt,fgColor:$,imageSettings:a?nn:void 0},[Tn]=(0,Vt.Z)("QRCode");if(!l)return null;const Vn=F()(Bt,We,Ee,dn,{[`${Bt}-borderless`]:!B});return Rt(t.createElement("div",{style:Object.assign(Object.assign({},pe),{width:h,height:h,backgroundColor:lt}),className:Vn},S!=="active"&&t.createElement("div",{className:`${Bt}-mask`},S==="loading"&&t.createElement(al.Z,null),S==="expired"&&t.createElement(t.Fragment,null,t.createElement("p",{className:`${Bt}-expired`},Tn==null?void 0:Tn.expired),k&&t.createElement(it.ZP,{type:"link",icon:t.createElement(ze.Z,null),onClick:k},Tn==null?void 0:Tn.refresh))),s==="canvas"?t.createElement(jo,Object.assign({},wn)):t.createElement(To,Object.assign({},wn))))},tl=e(10852),gl=e(73045),ls=e(12632),Ms=e(62886),Ns=e(2073),ss=e(57214),xs=e(94706),hs=e(57414),ps=e(4459),Jl=o=>{const{value:n,formatter:l,precision:s,decimalSeparator:a,groupSeparator:h="",prefixCls:m}=o;let $;if(typeof l=="function")$=l(n);else{const p=String(n),S=p.match(/^(-?)(\d*)(\.(\d+))?$/);if(!S||p==="-")$=p;else{const B=S[1];let k=S[2]||"0",pe=S[4]||"";k=k.replace(/\B(?=(\d{3})+(?!\d))/g,h),typeof s=="number"&&(pe=pe.padEnd(s,"0").slice(0,s>0?s:0)),pe&&(pe=`${a}${pe}`),$=[t.createElement("span",{key:"int",className:`${m}-content-value-int`},B,k),pe&&t.createElement("span",{key:"decimal",className:`${m}-content-value-decimal`},pe)]}}return t.createElement("span",{className:`${m}-content-value`},$)};const zs=o=>{const{componentCls:n,marginXXS:l,padding:s,colorTextDescription:a,titleFontSize:h,colorTextHeading:m,contentFontSize:$,fontFamily:p}=o;return{[`${n}`]:Object.assign(Object.assign({},(0,te.Wf)(o)),{[`${n}-title`]:{marginBottom:l,color:a,fontSize:h},[`${n}-skeleton`]:{paddingTop:s},[`${n}-content`]:{color:m,fontSize:$,fontFamily:p,[`${n}-content-value`]:{display:"inline-block",direction:"ltr"},[`${n}-content-prefix, ${n}-content-suffix`]:{display:"inline-block"},[`${n}-content-prefix`]:{marginInlineEnd:l},[`${n}-content-suffix`]:{marginInlineStart:l}}})}};var Ds=(0,A.Z)("Statistic",o=>{const n=(0,J.TS)(o,{});return[zs(n)]},o=>{const{fontSizeHeading3:n,fontSize:l}=o;return{titleFontSize:l,contentFontSize:n}}),il=o=>{const{prefixCls:n,className:l,rootClassName:s,style:a,valueStyle:h,value:m=0,title:$,valueRender:p,prefix:S,suffix:B,loading:k=!1,onMouseEnter:pe,onMouseLeave:We,decimalSeparator:Ee=".",groupSeparator:rt=","}=o,{getPrefixCls:lt,direction:Wt,statistic:Bt}=t.useContext(de.E_),Rt=lt("statistic",n),[dn,nn]=Ds(Rt),wn=t.createElement(Jl,Object.assign({decimalSeparator:Ee,groupSeparator:rt,prefixCls:Rt},o,{value:m})),Tn=F()(Rt,{[`${Rt}-rtl`]:Wt==="rtl"},Bt==null?void 0:Bt.className,l,s,nn);return dn(t.createElement("div",{className:Tn,style:Object.assign(Object.assign({},Bt==null?void 0:Bt.style),a),onMouseEnter:pe,onMouseLeave:We},$&&t.createElement("div",{className:`${Rt}-title`},$),t.createElement(ss.Z,{paragraph:!1,loading:k,className:`${Rt}-skeleton`},t.createElement("div",{style:h,className:`${Rt}-content`},S&&t.createElement("span",{className:`${Rt}-content-prefix`},S),p?p(wn):wn,B&&t.createElement("span",{className:`${Rt}-content-suffix`},B)))))};const Si=[["Y",1e3*60*60*24*365],["M",1e3*60*60*24*30],["D",1e3*60*60*24],["H",1e3*60*60],["m",1e3*60],["s",1e3],["S",1]];function ql(o,n){let l=o;const s=/\[[^\]]*]/g,a=(n.match(s)||[]).map(p=>p.slice(1,-1)),h=n.replace(s,"[]"),m=Si.reduce((p,S)=>{let[B,k]=S;if(p.includes(B)){const pe=Math.floor(l/k);return l-=pe*k,p.replace(new RegExp(`${B}+`,"g"),We=>{const Ee=We.length;return pe.toString().padStart(Ee,"0")})}return p},h);let $=0;return m.replace(s,()=>{const p=a[$];return $+=1,p})}function cs(o,n){const{format:l=""}=n,s=new Date(o).getTime(),a=Date.now(),h=Math.max(s-a,0);return ql(h,l)}const dc=1e3/30;function qs(o){return new Date(o).getTime()}const uc=o=>{const{value:n,format:l="HH:mm:ss",onChange:s,onFinish:a}=o,h=(0,ps.Z)(),m=t.useRef(null),$=()=>{a==null||a(),m.current&&(clearInterval(m.current),m.current=null)},p=()=>{const k=qs(n);k>=Date.now()&&(m.current=setInterval(()=>{h(),s==null||s(k-Date.now()),k(p(),()=>{m.current&&(clearInterval(m.current),m.current=null)}),[n]);const S=(k,pe)=>cs(k,Object.assign(Object.assign({},pe),{format:l})),B=k=>(0,pt.Tm)(k,{title:void 0});return t.createElement(il,Object.assign({},o,{valueRender:B,formatter:S}))};var Ws=t.memo(uc);il.Countdown=Ws;var fc=il,vc=e(81116),Es=e(2309),mc=e(93935),_s=e(16951),Ks=e(32814),Yc=e(98823),Uc=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{var{prefixCls:n,className:l,color:s="blue",dot:a,pending:h=!1,position:m,label:$,children:p}=o,S=Uc(o,["prefixCls","className","color","dot","pending","position","label","children"]);const{getPrefixCls:B}=t.useContext(de.E_),k=B("timeline",n),pe=F()(`${k}-item`,{[`${k}-item-pending`]:h},l),We=/blue|red|green|gray/.test(s||"")?void 0:s,Ee=F()(`${k}-item-head`,{[`${k}-item-head-custom`]:!!a,[`${k}-item-head-${s}`]:!We});return t.createElement("li",Object.assign({},S,{className:pe}),$&&t.createElement("div",{className:`${k}-item-label`},$),t.createElement("div",{className:`${k}-item-tail`}),t.createElement("div",{className:Ee,style:{borderColor:We,color:We}},a),t.createElement("div",{className:`${k}-item-content`},p))},Xc=e(25755),xc=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{var{prefixCls:n,className:l,pending:s=!1,children:a,items:h,rootClassName:m,reverse:$=!1,direction:p,hashId:S,pendingDot:B,mode:k=""}=o,pe=xc(o,["prefixCls","className","pending","children","items","rootClassName","reverse","direction","hashId","pendingDot","mode"]);const We=(nn,wn)=>k==="alternate"?nn==="right"?`${n}-item-right`:nn==="left"?`${n}-item-left`:wn%2===0?`${n}-item-left`:`${n}-item-right`:k==="left"?`${n}-item-left`:k==="right"?`${n}-item-right`:nn==="right"?`${n}-item-right`:"",Ee=(0,I.Z)(h||[]),rt=typeof s=="boolean"?null:s;s&&Ee.push({pending:!!s,dot:B||t.createElement(Xc.Z,null),children:rt}),$&&Ee.reverse();const lt=Ee.length,Wt=`${n}-item-last`,Bt=Ee.filter(nn=>!!nn).map((nn,wn)=>{var Tn;const Vn=wn===lt-2?Wt:"",pr=wn===lt-1?Wt:"",{className:jr}=nn,Ko=xc(nn,["className"]);return t.createElement(Sc,Object.assign({},Ko,{className:F()([jr,!$&&s?Vn:pr,We((Tn=nn==null?void 0:nn.position)!==null&&Tn!==void 0?Tn:"",wn)]),key:(nn==null?void 0:nn.key)||wn}))}),Rt=Ee.some(nn=>!!(nn!=null&&nn.label)),dn=F()(n,{[`${n}-pending`]:!!s,[`${n}-reverse`]:!!$,[`${n}-${k}`]:!!k&&!Rt,[`${n}-label`]:Rt,[`${n}-rtl`]:p==="rtl"},l,m,S);return t.createElement("ul",Object.assign({},pe,{className:dn}),Bt)};function Qc(o,n){return o&&Array.isArray(o)?o:(0,he.Z)(n).map(l=>{var s,a;return Object.assign({children:(a=(s=l==null?void 0:l.props)===null||s===void 0?void 0:s.children)!==null&&a!==void 0?a:""},l.props)})}var Jc=Qc;const qc=o=>{const{componentCls:n}=o;return{[n]:Object.assign(Object.assign({},(0,te.Wf)(o)),{margin:0,padding:0,listStyle:"none",[`${n}-item`]:{position:"relative",margin:0,paddingBottom:o.itemPaddingBottom,fontSize:o.fontSize,listStyle:"none","&-tail":{position:"absolute",insetBlockStart:o.itemHeadSize,insetInlineStart:(o.itemHeadSize-o.tailWidth)/2,height:`calc(100% - ${o.itemHeadSize}px)`,borderInlineStart:`${o.tailWidth}px ${o.lineType} ${o.tailColor}`},"&-pending":{[`${n}-item-head`]:{fontSize:o.fontSizeSM,backgroundColor:"transparent"},[`${n}-item-tail`]:{display:"none"}},"&-head":{position:"absolute",width:o.itemHeadSize,height:o.itemHeadSize,backgroundColor:o.dotBg,border:`${o.dotBorderWidth}px ${o.lineType} transparent`,borderRadius:"50%","&-blue":{color:o.colorPrimary,borderColor:o.colorPrimary},"&-red":{color:o.colorError,borderColor:o.colorError},"&-green":{color:o.colorSuccess,borderColor:o.colorSuccess},"&-gray":{color:o.colorTextDisabled,borderColor:o.colorTextDisabled}},"&-head-custom":{position:"absolute",insetBlockStart:o.itemHeadSize/2,insetInlineStart:o.itemHeadSize/2,width:"auto",height:"auto",marginBlockStart:0,paddingBlock:o.customHeadPaddingVertical,lineHeight:1,textAlign:"center",border:0,borderRadius:0,transform:"translate(-50%, -50%)"},"&-content":{position:"relative",insetBlockStart:-(o.fontSize*o.lineHeight-o.fontSize)+o.lineWidth,marginInlineStart:o.margin+o.itemHeadSize,marginInlineEnd:0,marginBlockStart:0,marginBlockEnd:0,wordBreak:"break-word"},"&-last":{[`> ${n}-item-tail`]:{display:"none"},[`> ${n}-item-content`]:{minHeight:o.controlHeightLG*1.2}}},[`&${n}-alternate, - &${n}-right, - &${n}-label`]:{[`${n}-item`]:{"&-tail, &-head, &-head-custom":{insetInlineStart:"50%"},"&-head":{marginInlineStart:`-${o.marginXXS}px`,"&-custom":{marginInlineStart:o.tailWidth/2}},"&-left":{[`${n}-item-content`]:{insetInlineStart:`calc(50% - ${o.marginXXS}px)`,width:`calc(50% - ${o.marginSM}px)`,textAlign:"start"}},"&-right":{[`${n}-item-content`]:{width:`calc(50% - ${o.marginSM}px)`,margin:0,textAlign:"end"}}}},[`&${n}-right`]:{[`${n}-item-right`]:{[`${n}-item-tail, - ${n}-item-head, - ${n}-item-head-custom`]:{insetInlineStart:`calc(100% - ${(o.itemHeadSize+o.tailWidth)/2}px)`},[`${n}-item-content`]:{width:`calc(100% - ${o.itemHeadSize+o.marginXS}px)`}}},[`&${n}-pending - ${n}-item-last - ${n}-item-tail`]:{display:"block",height:`calc(100% - ${o.margin}px)`,borderInlineStart:`${o.tailWidth}px dotted ${o.tailColor}`},[`&${n}-reverse - ${n}-item-last - ${n}-item-tail`]:{display:"none"},[`&${n}-reverse ${n}-item-pending`]:{[`${n}-item-tail`]:{insetBlockStart:o.margin,display:"block",height:`calc(100% - ${o.margin}px)`,borderInlineStart:`${o.tailWidth}px dotted ${o.tailColor}`},[`${n}-item-content`]:{minHeight:o.controlHeightLG*1.2}},[`&${n}-label`]:{[`${n}-item-label`]:{position:"absolute",insetBlockStart:-(o.fontSize*o.lineHeight-o.fontSize)+o.tailWidth,width:`calc(50% - ${o.marginSM}px)`,textAlign:"end"},[`${n}-item-right`]:{[`${n}-item-label`]:{insetInlineStart:`calc(50% + ${o.marginSM}px)`,width:`calc(50% - ${o.marginSM}px)`,textAlign:"start"}}},"&-rtl":{direction:"rtl",[`${n}-item-head-custom`]:{transform:"translate(50%, -50%)"}}})}};var _c=(0,A.Z)("Timeline",o=>{const n=(0,J.TS)(o,{itemHeadSize:10,customHeadPaddingVertical:o.paddingXXS,paddingInlineEnd:2});return[qc(n)]},o=>({tailColor:o.colorSplit,tailWidth:o.lineWidthBold,dotBorderWidth:o.wireframe?o.lineWidthBold:o.lineWidth*3,dotBg:o.colorBgContainer,itemPaddingBottom:o.padding*1.25})),ed=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{getPrefixCls:n,direction:l,timeline:s}=t.useContext(de.E_),{prefixCls:a,children:h,items:m,className:$,style:p}=o,S=ed(o,["prefixCls","children","items","className","style"]),B=n("timeline",a),[k,pe]=_c(B),We=Jc(m,h);return k(t.createElement(Gc,Object.assign({},S,{className:F()(s==null?void 0:s.className,$),style:Object.assign(Object.assign({},s==null?void 0:s.style),p),prefixCls:B,direction:l,items:We,hashId:pe})))};wc.Item=Sc;var td=wc,nd=td,Ec=e(57127),Vs=e(81334);function rd(o){var n=window.innerWidth||document.documentElement.clientWidth,l=window.innerHeight||document.documentElement.clientHeight,s=o.getBoundingClientRect(),a=s.top,h=s.right,m=s.bottom,$=s.left;return a>=0&&$>=0&&h<=n&&m<=l}function od(o,n,l){var s;return(s=l!=null?l:n)!==null&&s!==void 0?s:o===null?"center":"bottom"}function ad(o,n,l,s){var a=(0,t.useState)(void 0),h=(0,v.Z)(a,2),m=h[0],$=h[1];(0,Vs.Z)(function(){var Ee=typeof o=="function"?o():o;$(Ee||null)});var p=(0,t.useState)(null),S=(0,v.Z)(p,2),B=S[0],k=S[1],pe=(0,H.Z)(function(){if(m){!rd(m)&&n&&m.scrollIntoView(s);var Ee=m.getBoundingClientRect(),rt=Ee.left,lt=Ee.top,Wt=Ee.width,Bt=Ee.height,Rt={left:rt,top:lt,width:Wt,height:Bt,radius:0};k(function(dn){return JSON.stringify(dn)!==JSON.stringify(Rt)?Rt:dn})}else k(null)});(0,Vs.Z)(function(){return pe(),window.addEventListener("resize",pe),function(){window.removeEventListener("resize",pe)}},[m,n,pe]);var We=(0,t.useMemo)(function(){if(!B)return B;var Ee=(l==null?void 0:l.offset)||6,rt=(l==null?void 0:l.radius)||2;return{left:B.left-Ee,top:B.top-Ee,width:B.width+Ee*2,height:B.height+Ee*2,radius:rt}},[B,l]);return[We,m]}var id=e(97071),ec={fill:"transparent",pointerEvents:"auto"},ld=function(n){var l=n.prefixCls,s=n.rootClassName,a=n.pos,h=n.showMask,m=n.style,$=m===void 0?{}:m,p=n.fill,S=p===void 0?"rgba(0,0,0,0.5)":p,B=n.open,k=n.animated,pe=n.zIndex,We=(0,id.Z)(),Ee="".concat(l,"-mask-").concat(We),rt=(0,Ne.Z)(k)==="object"?k==null?void 0:k.placeholder:k;return t.createElement(Ec.Z,{open:B,autoLock:!0},t.createElement("div",{className:F()("".concat(l,"-mask"),s),style:(0,re.Z)({position:"fixed",left:0,right:0,top:0,bottom:0,zIndex:pe,pointerEvents:"none"},$)},h?t.createElement("svg",{style:{width:"100%",height:"100%"}},t.createElement("defs",null,t.createElement("mask",{id:Ee},t.createElement("rect",{x:"0",y:"0",width:"100vw",height:"100vh",fill:"white"}),a&&t.createElement("rect",{x:a.left,y:a.top,rx:a.radius,width:a.width,height:a.height,fill:"black",className:rt?"".concat(l,"-placeholder-animated"):""}))),t.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:S,mask:"url(#".concat(Ee,")")}),a&&t.createElement(t.Fragment,null,t.createElement("rect",(0,_e.Z)({},ec,{x:"0",y:"0",width:"100%",height:a.top})),t.createElement("rect",(0,_e.Z)({},ec,{x:"0",y:"0",width:a.left,height:"100%"})),t.createElement("rect",(0,_e.Z)({},ec,{x:"0",y:a.top+a.height,width:"100%",height:"calc(100vh - ".concat(a.top+a.height,"px)")})),t.createElement("rect",(0,_e.Z)({},ec,{x:a.left+a.width,y:"0",width:"calc(100vw - ".concat(a.left+a.width,"px)"),height:"100%"})))):null))},sd=ld,$u={adjustX:1,adjustY:1},cd=[0,0],Pc={left:{points:["cr","cl"],offset:[-8,0]},right:{points:["cl","cr"],offset:[8,0]},top:{points:["bc","tc"],offset:[0,-8]},bottom:{points:["tc","bc"],offset:[0,8]},topLeft:{points:["bl","tl"],offset:[0,-8]},leftTop:{points:["tr","tl"],offset:[-8,0]},topRight:{points:["br","tr"],offset:[0,-8]},rightTop:{points:["tl","tr"],offset:[8,0]},bottomRight:{points:["tr","br"],offset:[0,8]},rightBottom:{points:["bl","br"],offset:[8,0]},bottomLeft:{points:["tl","bl"],offset:[0,8]},leftBottom:{points:["br","bl"],offset:[-8,0]}};function $c(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,n={};return Object.keys(Pc).forEach(function(l){n[l]=(0,re.Z)((0,re.Z)({},Pc[l]),{},{autoArrow:o,targetOffset:cd})}),n}var Ou=$c();function dd(o){var n=o.prefixCls,l=o.current,s=o.total,a=o.title,h=o.description,m=o.onClose,$=o.onPrev,p=o.onNext,S=o.onFinish,B=o.className;return t.createElement("div",{className:F()("".concat(n,"-content"),B)},t.createElement("div",{className:"".concat(n,"-inner")},t.createElement("button",{type:"button",onClick:m,"aria-label":"Close",className:"".concat(n,"-close")},t.createElement("span",{className:"".concat(n,"-close-x")},"\xD7")),t.createElement("div",{className:"".concat(n,"-header")},t.createElement("div",{className:"".concat(n,"-title")},a)),t.createElement("div",{className:"".concat(n,"-description")},h),t.createElement("div",{className:"".concat(n,"-footer")},t.createElement("div",{className:"".concat(n,"-sliders")},s>1?(0,I.Z)(Array.from({length:s}).keys()).map(function(k,pe){return t.createElement("span",{key:k,className:pe===l?"active":""})}):null),t.createElement("div",{className:"".concat(n,"-buttons")},l!==0?t.createElement("button",{className:"".concat(n,"-prev-btn"),onClick:$},"Prev"):null,l===s-1?t.createElement("button",{className:"".concat(n,"-finish-btn"),onClick:S},"Finish"):t.createElement("button",{className:"".concat(n,"-next-btn"),onClick:p},"Next")))))}var ud=function(n){var l=n.current,s=n.renderPanel;return t.createElement(t.Fragment,null,typeof s=="function"?s(n,l):t.createElement(dd,n))},fd=ud,vd=["prefixCls","steps","defaultCurrent","current","onChange","onClose","onFinish","open","mask","arrow","rootClassName","placement","renderPanel","gap","animated","scrollIntoViewOptions","zIndex"],md={left:"50%",top:"50%",width:1,height:1},gd=function(n){var l=n.prefixCls,s=l===void 0?"rc-tour":l,a=n.steps,h=a===void 0?[]:a,m=n.defaultCurrent,$=n.current,p=n.onChange,S=n.onClose,B=n.onFinish,k=n.open,pe=n.mask,We=pe===void 0?!0:pe,Ee=n.arrow,rt=Ee===void 0?!0:Ee,lt=n.rootClassName,Wt=n.placement,Bt=n.renderPanel,Rt=n.gap,dn=n.animated,nn=n.scrollIntoViewOptions,wn=nn===void 0?!0:nn,Tn=n.zIndex,Vn=Tn===void 0?1001:Tn,pr=(0,St.Z)(n,vd),jr=t.useRef(),Ko=(0,Nt.Z)(0,{value:$,defaultValue:m}),Wr=(0,v.Z)(Ko,2),Mr=Wr[0],$r=Wr[1],uo=(0,Nt.Z)(void 0,{value:k,postState:function(si){return Mr<0||Mr>=h.length?!1:si!=null?si:!0}}),$a=(0,v.Z)(uo,2),Vo=$a[0],ya=$a[1],xi=t.useRef(Vo);(0,Vs.Z)(function(){Vo&&!xi.current&&$r(0),xi.current=Vo},[Vo]);var Ca=h[Mr]||{},ja=Ca.target,mo=Ca.placement,ia=Ca.style,Gr=Ca.arrow,Aa=Ca.className,ni=Ca.mask,Sa=Ca.scrollIntoViewOptions,ua=Vo&&(ni!=null?ni:We),ll=Sa!=null?Sa:wn,$o=ad(ja,k,Rt,ll),Yo=(0,v.Z)($o,2),di=Yo[0],Fr=Yo[1],la=od(Fr,Wt,mo),Ii=Fr?typeof Gr=="undefined"?rt:Gr:!1,ro=(0,Ne.Z)(Ii)==="object"?Ii.pointAtCenter:!1;(0,Vs.Z)(function(){var El;(El=jr.current)===null||El===void 0||El.forceAlign()},[ro,Mr]);var Ao=function(si){$r(si),p==null||p(si)};if(Fr===void 0)return null;var Ha=function(){ya(!1),S==null||S(Mr)},hl=function(){return t.createElement(fd,(0,_e.Z)({arrow:Ii,key:"content",prefixCls:s,total:h.length,renderPanel:Bt,onPrev:function(){Ao(Mr-1)},onNext:function(){Ao(Mr+1)},onClose:Ha,current:Mr,onFinish:function(){Ha(),B==null||B()}},h[Mr]))},rs=typeof ua=="boolean"?ua:!!ua,ui=typeof ua=="boolean"?void 0:ua,_l=function(si){return si||Fr||document.body};return t.createElement(t.Fragment,null,t.createElement(sd,{zIndex:Vn,prefixCls:s,pos:di,showMask:rs,style:ui==null?void 0:ui.style,fill:ui==null?void 0:ui.color,open:Vo,animated:dn,rootClassName:lt}),t.createElement(Fa.Z,(0,_e.Z)({builtinPlacements:$c(ro)},pr,{ref:jr,popupStyle:ia,popupPlacement:la,popupVisible:Vo,popupClassName:F()(lt,Aa),prefixCls:s,popup:hl,forceRender:!1,destroyPopupOnHide:!0,zIndex:Vn,getTriggerDOMNode:_l,arrow:!!Ii}),t.createElement(Ec.Z,{open:Vo,autoLock:!0},t.createElement("div",{className:F()(lt,"".concat(s,"-target-placeholder")),style:(0,re.Z)((0,re.Z)({},di||md),{},{position:"fixed",pointerEvents:"none"})}))))},hd=gd,pd=hd,yd=e(95446),Cd=e(21465),gc=e(80076);function hc(o){return o!=null}var Oc=o=>{let{stepProps:n,current:l,type:s,indicatorsRender:a}=o;var h,m;const{prefixCls:$,total:p=1,title:S,onClose:B,onPrev:k,onNext:pe,onFinish:We,cover:Ee,description:rt,nextButtonProps:lt,prevButtonProps:Wt,type:Bt,className:Rt}=n,dn=Bt!=null?Bt:s,nn=l===p-1,wn=()=>{var uo;k==null||k(),(uo=Wt==null?void 0:Wt.onClick)===null||uo===void 0||uo.call(Wt)},Tn=()=>{var uo;nn?We==null||We():pe==null||pe(),(uo=lt==null?void 0:lt.onClick)===null||uo===void 0||uo.call(lt)},Vn=hc(S)?t.createElement("div",{className:`${$}-header`},t.createElement("div",{className:`${$}-title`},S)):null,pr=hc(rt)?t.createElement("div",{className:`${$}-description`},rt):null,jr=hc(Ee)?t.createElement("div",{className:`${$}-cover`},Ee):null;let Ko;a?Ko=a(l,p):Ko=(0,I.Z)(Array.from({length:p}).keys()).map((uo,$a)=>t.createElement("span",{key:uo,className:F()($a===l&&`${$}-indicator-active`,`${$}-indicator`)}));const Wr=dn==="primary"?"default":"primary",Mr={type:"default",ghost:dn==="primary"},[$r]=(0,Vt.Z)("Tour",gc.Z.Tour);return t.createElement("div",{className:F()(Rt,`${$}-content`)},t.createElement("div",{className:`${$}-inner`},t.createElement(Ea.Z,{className:`${$}-close`,onClick:B}),jr,Vn,pr,t.createElement("div",{className:`${$}-footer`},p>1&&t.createElement("div",{className:`${$}-indicators`},Ko),t.createElement("div",{className:`${$}-buttons`},l!==0?t.createElement(it.ZP,Object.assign({},Mr,Wt,{onClick:wn,size:"small",className:F()(`${$}-prev-btn`,Wt==null?void 0:Wt.className)}),(h=Wt==null?void 0:Wt.children)!==null&&h!==void 0?h:$r==null?void 0:$r.Previous):null,t.createElement(it.ZP,Object.assign({type:Wr},lt,{onClick:Tn,size:"small",className:F()(`${$}-next-btn`,lt==null?void 0:lt.className)}),(m=lt==null?void 0:lt.children)!==null&&m!==void 0?m:nn?$r==null?void 0:$r.Finish:$r==null?void 0:$r.Next)))))},Zc=e(24542);const bd=o=>{const{componentCls:n,lineHeight:l,padding:s,paddingXS:a,borderRadius:h,borderRadiusXS:m,colorPrimary:$,colorText:p,colorFill:S,indicatorHeight:B,indicatorWidth:k,boxShadowTertiary:pe,tourZIndexPopup:We,fontSize:Ee,colorBgElevated:rt,fontWeightStrong:lt,marginXS:Wt,colorTextLightSolid:Bt,tourBorderRadius:Rt,colorWhite:dn,colorBgTextHover:nn,tourCloseSize:wn,motionDurationSlow:Tn,antCls:Vn}=o;return[{[n]:Object.assign(Object.assign({},(0,te.Wf)(o)),{color:p,position:"absolute",zIndex:We,display:"block",visibility:"visible",fontSize:Ee,lineHeight:l,width:520,"--antd-arrow-background-color":rt,"&-pure":{maxWidth:"100%",position:"relative"},[`&${n}-hidden`]:{display:"none"},[`${n}-content`]:{position:"relative"},[`${n}-inner`]:{textAlign:"start",textDecoration:"none",borderRadius:Rt,boxShadow:pe,position:"relative",backgroundColor:rt,border:"none",backgroundClip:"padding-box",[`${n}-close`]:{position:"absolute",top:s,insetInlineEnd:s,color:o.colorIcon,outline:"none",width:wn,height:wn,borderRadius:o.borderRadiusSM,transition:`background-color ${o.motionDurationMid}, color ${o.motionDurationMid}`,display:"flex",alignItems:"center",justifyContent:"center","&:hover":{color:o.colorIconHover,backgroundColor:o.wireframe?"transparent":o.colorFillContent}},[`${n}-cover`]:{textAlign:"center",padding:`${s+wn+a}px ${s}px 0`,img:{width:"100%"}},[`${n}-header`]:{padding:`${s}px ${s}px ${a}px`,[`${n}-title`]:{lineHeight:l,fontSize:Ee,fontWeight:lt}},[`${n}-description`]:{padding:`0 ${s}px`,lineHeight:l,wordWrap:"break-word"},[`${n}-footer`]:{padding:`${a}px ${s}px ${s}px`,textAlign:"end",borderRadius:`0 0 ${m}px ${m}px`,display:"flex",[`${n}-indicators`]:{display:"inline-block",[`${n}-indicator`]:{width:k,height:B,display:"inline-block",borderRadius:"50%",background:S,"&:not(:last-child)":{marginInlineEnd:B},"&-active":{background:$}}},[`${n}-buttons`]:{marginInlineStart:"auto",[`${Vn}-btn`]:{marginInlineStart:Wt}}}},[`${n}-primary, &${n}-primary`]:{"--antd-arrow-background-color":$,[`${n}-inner`]:{color:Bt,textAlign:"start",textDecoration:"none",backgroundColor:$,borderRadius:h,boxShadow:pe,[`${n}-close`]:{color:Bt},[`${n}-indicators`]:{[`${n}-indicator`]:{background:new V.C(Bt).setAlpha(.15).toRgbString(),"&-active":{background:Bt}}},[`${n}-prev-btn`]:{color:Bt,borderColor:new V.C(Bt).setAlpha(.15).toRgbString(),backgroundColor:$,"&:hover":{backgroundColor:new V.C(Bt).setAlpha(.15).toRgbString(),borderColor:"transparent"}},[`${n}-next-btn`]:{color:$,borderColor:"transparent",background:dn,"&:hover":{background:new V.C(nn).onBackground(dn).toRgbString()}}}}}),[`${n}-mask`]:{[`${n}-placeholder-animated`]:{transition:`all ${Tn}`}},[["&-placement-left","&-placement-leftTop","&-placement-leftBottom","&-placement-right","&-placement-rightTop","&-placement-rightBottom"].join(",")]:{[`${n}-inner`]:{borderRadius:Math.min(Rt,Zc.qN)}}},(0,Zc.ZP)(o,{colorBg:"var(--antd-arrow-background-color)",contentRadius:Rt,limitVerticalRadius:!0})]};var Rc=(0,A.Z)("Tour",o=>{const{borderRadiusLG:n,fontSize:l,lineHeight:s}=o,a=(0,J.TS)(o,{tourZIndexPopup:o.zIndexPopupBase+70,indicatorWidth:6,indicatorHeight:6,tourBorderRadius:n,tourCloseSize:l*s});return[bd(a)]}),Sd=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:n,current:l=0,total:s=6,className:a,style:h,type:m}=o,$=Sd(o,["prefixCls","current","total","className","style","type"]),{getPrefixCls:p}=t.useContext(de.E_),S=p("tour",n),[B,k]=Rc(S);return B(t.createElement(Cd.t5,{prefixCls:S,hashId:k,className:F()(a,`${S}-pure`,m&&`${S}-${m}`),style:h},t.createElement(Oc,{stepProps:Object.assign(Object.assign({},$),{prefixCls:S,total:s}),current:l,type:m})))};var wd=(0,at.i)(xd),Ed=o=>{let{defaultType:n,steps:l=[],current:s,defaultCurrent:a}=o;var h;const[m,$]=(0,Nt.Z)(a,{value:s});(0,t.useLayoutEffect)(()=>{s!==void 0&&$(s)},[s]);const p=typeof m=="number"?(h=l[m])===null||h===void 0?void 0:h.type:n;return{currentMergedType:p!=null?p:n,updateInnerCurrent:$}},Pd=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:n,current:l,defaultCurrent:s,type:a,rootClassName:h,indicatorsRender:m,steps:$}=o,p=Pd(o,["prefixCls","current","defaultCurrent","type","rootClassName","indicatorsRender","steps"]),{getPrefixCls:S,direction:B}=(0,t.useContext)(de.E_),k=S("tour",n),[pe,We]=Rc(k),{token:Ee}=to.Z.useToken(),{currentMergedType:rt,updateInnerCurrent:lt}=Ed({defaultType:a,steps:$,current:l,defaultCurrent:s}),Wt=(0,yd.Z)({arrowPointAtCenter:!0,autoAdjustOverflow:!0,offset:Ee.marginXXS,arrowWidth:Ee.sizePopupArrow,borderRadius:Ee.borderRadius}),Bt=F()({[`${k}-primary`]:rt==="primary",[`${k}-rtl`]:B==="rtl"},We,h),Rt=(nn,wn)=>t.createElement(Oc,{type:a,stepProps:nn,current:wn,indicatorsRender:m}),dn=nn=>{var wn;lt(nn),(wn=o.onChange)===null||wn===void 0||wn.call(o,nn)};return pe(t.createElement(pd,Object.assign({},p,{rootClassName:Bt,prefixCls:k,current:l,defaultCurrent:s,animated:!0,renderPanel:Rt,builtinPlacements:Wt,onChange:dn,steps:$})))};Ic._InternalPanelDoNotUseOrYouWillBeFired=wd;var $d=Ic;const tc=o=>{const n=new Map;return o.forEach((l,s)=>{n.set(l,s)}),n},Od=o=>{const n=new Map;return o.forEach((l,s)=>{let{disabled:a,key:h}=l;a&&n.set(h,s)}),n};function Zd(o,n,l){const s=t.useMemo(()=>(o||[]).map(m=>(n&&(m=Object.assign(Object.assign({},m),{key:n(m)})),m)),[o,n]),[a,h]=t.useMemo(()=>{const m=[],$=new Array((l||[]).length),p=tc(l||[]);return s.forEach(S=>{p.has(S.key)?$[p.get(S.key)]=S:m.push(S)}),[m,$]},[s,l,n]);return[s,a,h]}var Rd=Zd;const Id=[];function Fs(o,n){const l=o.filter(s=>n.has(s));return o.length===l.length?o:l}function Mc(o){return Array.from(o).join(";")}function Md(o,n){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Id;const[s,a]=t.useMemo(()=>[new Set(o.map(S=>S.key)),new Set(n.map(S=>S.key))],[o,n]),[h,m]=t.useState(()=>Fs(l,s)),[$,p]=t.useState(()=>Fs(l,a));return t.useEffect(()=>{m(Fs(l,s)),p(Fs(l,a))},[l]),t.useEffect(()=>{m(Fs(h,s)),p(Fs($,a))},[Mc(s),Mc(a)]),[h,$,m,p]}var Nd=e(10130),Td=e(23605),Dd=e(74122);const Fd=o=>{const{renderedText:n,renderedEl:l,item:s,checked:a,disabled:h,prefixCls:m,onClick:$,onRemove:p,showRemove:S}=o,B=F()(`${m}-content-item`,{[`${m}-content-item-disabled`]:h||s.disabled,[`${m}-content-item-checked`]:a});let k;(typeof n=="string"||typeof n=="number")&&(k=String(n));const[pe]=(0,Vt.Z)("Transfer",gc.Z.Transfer),We={className:B,title:k},Ee=t.createElement("span",{className:`${m}-content-item-text`},l);return S?t.createElement("li",Object.assign({},We),Ee,t.createElement(Dd.Z,{disabled:h||s.disabled,className:`${m}-content-item-remove`,"aria-label":pe==null?void 0:pe.remove,onClick:()=>{p==null||p(s)}},t.createElement(Td.Z,null))):(We.onClick=h||s.disabled?void 0:()=>$(s),t.createElement("li",Object.assign({},We),t.createElement(Tt.Z,{className:`${m}-checkbox`,checked:a,disabled:h||s.disabled}),Ee))};var Ld=t.memo(Fd);const jd=["handleFilter","handleClear","checkedKeys"],Ad=o=>Object.assign(Object.assign({},{simple:!0,showSizeChanger:!1,showLessItems:!1}),o),Hd=(o,n)=>{const{prefixCls:l,filteredRenderItems:s,selectedKeys:a,disabled:h,showRemove:m,pagination:$,onScroll:p,onItemSelect:S,onItemRemove:B}=o,[k,pe]=t.useState(1),We=t.useMemo(()=>$?Ad(typeof $=="object"?$:{}):null,[$]),[Ee,rt]=(0,Nt.Z)(10,{value:We==null?void 0:We.pageSize});t.useEffect(()=>{if(We){const Tn=Math.ceil(s.length/Ee);pe(Math.min(k,Tn))}},[s,We,Ee]);const lt=Tn=>{S==null||S(Tn.key,!a.includes(Tn.key))},Wt=Tn=>{B==null||B([Tn.key])},Bt=Tn=>{pe(Tn)},Rt=(Tn,Vn)=>{pe(Tn),rt(Vn)},dn=t.useMemo(()=>We?s.slice((k-1)*Ee,k*Ee):s,[k,s,We,Ee]);t.useImperativeHandle(n,()=>({items:dn}));const nn=We?t.createElement(N.Z,{size:"small",disabled:h,simple:We.simple,pageSize:Ee,showLessItems:We.showLessItems,showSizeChanger:We.showSizeChanger,className:`${l}-pagination`,total:s.length,current:k,onChange:Bt,onShowSizeChange:Rt}):null,wn=F()(`${l}-content`,{[`${l}-content-show-remove`]:m});return t.createElement(t.Fragment,null,t.createElement("ul",{className:wn,onScroll:p},(dn||[]).map(Tn=>{let{renderedEl:Vn,renderedText:pr,item:jr}=Tn;return t.createElement(Ld,{key:jr.key,item:jr,renderedText:pr,renderedEl:Vn,prefixCls:l,showRemove:m,onClick:lt,onRemove:Wt,checked:a.includes(jr.key),disabled:h||jr.disabled})})),nn)};var Bd=t.forwardRef(Hd),kd=e(99534),Nc=o=>{const{placeholder:n="",value:l,prefixCls:s,disabled:a,onChange:h,handleClear:m}=o,$=t.useCallback(p=>{h==null||h(p),p.target.value===""&&(m==null||m())},[h]);return t.createElement(Ia.Z,{placeholder:n,className:s,value:l,onChange:$,disabled:a,allowClear:!0,prefix:t.createElement(kd.Z,null)})};const zd=()=>null;function Wd(o){return!!(o&&!(0,pt.l$)(o)&&Object.prototype.toString.call(o)==="[object Object]")}function Ys(o){return o.filter(n=>!n.disabled).map(n=>n.key)}const Kd=o=>o!==void 0;var pc=o=>{const{prefixCls:n,dataSource:l=[],titleText:s="",checkedKeys:a,disabled:h,showSearch:m=!1,style:$,searchPlaceholder:p,notFoundContent:S,selectAll:B,selectCurrent:k,selectInvert:pe,removeAll:We,removeCurrent:Ee,showSelectAll:rt=!0,showRemove:lt,pagination:Wt,direction:Bt,itemsUnit:Rt,itemUnit:dn,selectAllLabel:nn,selectionsIcon:wn,footer:Tn,renderList:Vn,onItemSelectAll:pr,onItemRemove:jr,handleFilter:Ko,handleClear:Wr,filterOption:Mr,render:$r=zd}=o,[uo,$a]=(0,t.useState)(""),Vo=(0,t.useRef)({}),ya=ro=>{$a(ro.target.value),Ko(ro)},xi=()=>{$a(""),Wr()},Ca=(ro,Ao)=>Mr?Mr(uo,Ao):ro.includes(uo),ja=ro=>{let Ao=Vn?Vn(ro):null;const Ha=!!Ao;return Ha||(Ao=t.createElement(Bd,Object.assign({ref:Vo},ro))),{customize:Ha,bodyContent:Ao}},mo=ro=>{const Ao=$r(ro),Ha=Wd(Ao);return{item:ro,renderedEl:Ha?Ao.label:Ao,renderedText:Ha?Ao.value:Ao}},ia=(0,t.useMemo)(()=>Array.isArray(S)?S[Bt==="left"?0:1]:S,[S,Bt]),[Gr,Aa]=(0,t.useMemo)(()=>{const ro=[],Ao=[];return l.forEach(Ha=>{const hl=mo(Ha);uo&&!Ca(hl.renderedText,Ha)||(ro.push(Ha),Ao.push(hl))}),[ro,Ao]},[l,uo]),ni=(0,t.useMemo)(()=>{if(a.length===0)return"none";const ro=tc(a);return Gr.every(Ao=>ro.has(Ao.key)||!!Ao.disabled)?"all":"part"},[a,Gr]),Sa=(0,t.useMemo)(()=>{const ro=m?t.createElement("div",{className:`${n}-body-search-wrapper`},t.createElement(Nc,{prefixCls:`${n}-search`,onChange:ya,handleClear:xi,placeholder:p,value:uo,disabled:h})):null,{customize:Ao,bodyContent:Ha}=ja(Object.assign(Object.assign({},(0,ht.Z)(o,jd)),{filteredItems:Gr,filteredRenderItems:Aa,selectedKeys:a}));let hl;return Ao?hl=t.createElement("div",{className:`${n}-body-customize-wrapper`},Ha):hl=Gr.length?Ha:t.createElement("div",{className:`${n}-body-not-found`},ia),t.createElement("div",{className:F()(m?`${n}-body ${n}-body-with-search`:`${n}-body`)},ro,hl)},[m,n,p,uo,h,a,Gr,Aa,ia]),ua=t.createElement(Tt.Z,{disabled:l.length===0||h,checked:ni==="all",indeterminate:ni==="part",className:`${n}-checkbox`,onChange:()=>{pr==null||pr(Gr.filter(ro=>!ro.disabled).map(ro=>{let{key:Ao}=ro;return Ao}),ni!=="all")}}),ll=(ro,Ao)=>{if(nn)return typeof nn=="function"?nn({selectedCount:ro,totalCount:Ao}):nn;const Ha=Ao>1?Rt:dn;return t.createElement(t.Fragment,null,(ro>0?`${ro}/`:"")+Ao," ",Ha)},$o=Tn&&(Tn.length<2?Tn(o):Tn(o,{direction:Bt})),Yo=F()(n,{[`${n}-with-pagination`]:!!Wt,[`${n}-with-footer`]:!!$o}),di=$o?t.createElement("div",{className:`${n}-footer`},$o):null,Fr=!lt&&!Wt&&ua;let la;lt?la=[Wt?{key:"removeCurrent",label:Ee,onClick(){var ro;const Ao=Ys((((ro=Vo.current)===null||ro===void 0?void 0:ro.items)||[]).map(Ha=>Ha.item));jr==null||jr(Ao)}}:null,{key:"removeAll",label:We,onClick(){jr==null||jr(Ys(Gr))}}].filter(Boolean):la=[{key:"selectAll",label:B,onClick(){const ro=Ys(Gr);pr==null||pr(ro,ro.length!==a.length)}},Wt?{key:"selectCurrent",label:k,onClick(){var ro;const Ao=((ro=Vo.current)===null||ro===void 0?void 0:ro.items)||[];pr==null||pr(Ys(Ao.map(Ha=>Ha.item)),!0)}}:null,{key:"selectInvert",label:pe,onClick(){var ro;const Ao=Ys(Wt?(((ro=Vo.current)===null||ro===void 0?void 0:ro.items)||[]).map(ui=>ui.item):Gr),Ha=new Set(a),hl=[],rs=[];Ao.forEach(ui=>{Ha.has(ui)?rs.push(ui):hl.push(ui)}),pr==null||pr(hl,"replace")}}];const Ii=t.createElement(bo.Z,{className:`${n}-header-dropdown`,menu:{items:la},disabled:h},Kd(wn)?wn:t.createElement(Nd.Z,null));return t.createElement("div",{className:Yo,style:$},t.createElement("div",{className:`${n}-header`},rt?t.createElement(t.Fragment,null,Fr,Ii):null,t.createElement("span",{className:`${n}-header-selected`},ll(a.length,Gr.length)),t.createElement("span",{className:`${n}-header-title`},s)),Sa,di)},Tc=e(99142),Dc=e(91169),Fc=o=>{const{disabled:n,moveToLeft:l,moveToRight:s,leftArrowText:a="",rightArrowText:h="",leftActive:m,rightActive:$,className:p,style:S,direction:B,oneWay:k}=o;return t.createElement("div",{className:p,style:S},t.createElement(it.ZP,{type:"primary",size:"small",disabled:n||!$,onClick:s,icon:B!=="rtl"?t.createElement(Dc.Z,null):t.createElement(Tc.Z,null)},h),!k&&t.createElement(it.ZP,{type:"primary",size:"small",disabled:n||!m,onClick:l,icon:B!=="rtl"?t.createElement(Tc.Z,null):t.createElement(Dc.Z,null)},a))};const Vd=o=>{const{antCls:n,componentCls:l,listHeight:s,controlHeightLG:a,marginXXS:h,margin:m}=o,$=`${n}-table`,p=`${n}-input`;return{[`${l}-customize-list`]:{[`${l}-list`]:{flex:"1 1 50%",width:"auto",height:"auto",minHeight:s},[`${$}-wrapper`]:{[`${$}-small`]:{border:0,borderRadius:0,[`${$}-selection-column`]:{width:a,minWidth:a}},[`${$}-pagination${$}-pagination`]:{margin:`${m}px 0 ${h}px`}},[`${p}[disabled]`]:{backgroundColor:"transparent"}}}},Lc=(o,n)=>{const{componentCls:l,colorBorder:s}=o;return{[`${l}-list`]:{borderColor:n,"&-search:not([disabled])":{borderColor:s}}}},Yd=o=>{const{componentCls:n}=o;return{[`${n}-status-error`]:Object.assign({},Lc(o,o.colorError)),[`${n}-status-warning`]:Object.assign({},Lc(o,o.colorWarning))}},Ud=o=>{const{componentCls:n,colorBorder:l,colorSplit:s,lineWidth:a,itemHeight:h,headerHeight:m,transferHeaderVerticalPadding:$,itemPaddingBlock:p,controlItemBgActive:S,colorTextDisabled:B,listHeight:k,listWidth:pe,listWidthLG:We,fontSizeIcon:Ee,marginXS:rt,paddingSM:lt,lineType:Wt,antCls:Bt,iconCls:Rt,motionDurationSlow:dn,controlItemBgHover:nn,borderRadiusLG:wn,colorBgContainer:Tn,colorText:Vn,controlItemBgActiveHover:pr}=o;return{display:"flex",flexDirection:"column",width:pe,height:k,border:`${a}px ${Wt} ${l}`,borderRadius:o.borderRadiusLG,"&-with-pagination":{width:We,height:"auto"},"&-search":{[`${Rt}-search`]:{color:B}},"&-header":{display:"flex",flex:"none",alignItems:"center",height:m,padding:`${$-a}px ${lt}px ${$}px`,color:Vn,background:Tn,borderBottom:`${a}px ${Wt} ${s}`,borderRadius:`${wn}px ${wn}px 0 0`,"> *:not(:last-child)":{marginInlineEnd:4},"> *":{flex:"none"},"&-title":Object.assign(Object.assign({},te.vS),{flex:"auto",textAlign:"end"}),"&-dropdown":Object.assign(Object.assign({},(0,te.Ro)()),{fontSize:Ee,transform:"translateY(10%)",cursor:"pointer","&[disabled]":{cursor:"not-allowed"}})},"&-body":{display:"flex",flex:"auto",flexDirection:"column",fontSize:o.fontSize,minHeight:0,"&-search-wrapper":{position:"relative",flex:"none",padding:lt}},"&-content":{flex:"auto",margin:0,padding:0,overflow:"auto",listStyle:"none","&-item":{display:"flex",alignItems:"center",minHeight:h,padding:`${p}px ${lt}px`,transition:`all ${dn}`,"> *:not(:last-child)":{marginInlineEnd:rt},"> *":{flex:"none"},"&-text":Object.assign(Object.assign({},te.vS),{flex:"auto"}),"&-remove":{position:"relative",color:l,cursor:"pointer",transition:`all ${dn}`,"&:hover":{color:o.colorLinkHover},"&::after":{position:"absolute",inset:`-${p}px -50%`,content:'""'}},[`&:not(${n}-list-content-item-disabled)`]:{"&:hover":{backgroundColor:nn,cursor:"pointer"},[`&${n}-list-content-item-checked:hover`]:{backgroundColor:pr}},"&-checked":{backgroundColor:S},"&-disabled":{color:B,cursor:"not-allowed"}},[`&-show-remove ${n}-list-content-item:not(${n}-list-content-item-disabled):hover`]:{background:"transparent",cursor:"default"}},"&-pagination":{padding:`${o.paddingXS}px 0`,textAlign:"end",borderTop:`${a}px ${Wt} ${s}`,[`${Bt}-pagination-options`]:{paddingInlineEnd:o.paddingXS}},"&-body-not-found":{flex:"none",width:"100%",margin:"auto 0",color:B,textAlign:"center"},"&-footer":{borderTop:`${a}px ${Wt} ${s}`}}},Xd=o=>{const{antCls:n,iconCls:l,componentCls:s,headerHeight:a,marginXS:h,marginXXS:m,fontSizeIcon:$,fontSize:p,lineHeight:S,colorBgContainerDisabled:B}=o;return{[s]:Object.assign(Object.assign({},(0,te.Wf)(o)),{position:"relative",display:"flex",alignItems:"stretch",[`${s}-disabled`]:{[`${s}-list`]:{background:B}},[`${s}-list`]:Ud(o),[`${s}-operation`]:{display:"flex",flex:"none",flexDirection:"column",alignSelf:"center",margin:`0 ${h}px`,verticalAlign:"middle",[`${n}-btn`]:{display:"block","&:first-child":{marginBottom:m},[l]:{fontSize:$}}},[`${n}-empty-image`]:{maxHeight:a/2-Math.round(p*S)}})}},Gd=o=>{const{componentCls:n}=o;return{[`${n}-rtl`]:{direction:"rtl"}}};var Qd=(0,A.Z)("Transfer",o=>{const{fontSize:n,lineHeight:l,lineWidth:s,controlHeightLG:a}=o,h=Math.round(n*l),m=(0,J.TS)(o,{transferHeaderVerticalPadding:Math.ceil((a-s-h)/2)});return[Xd(m),Vd(m),Yd(m),Gd(m)]},o=>{const{fontSize:n,lineHeight:l,controlHeight:s,controlHeightLG:a}=o,h=Math.round(n*l);return{listWidth:180,listHeight:200,listWidthLG:250,headerHeight:a,itemHeight:s,itemPaddingBlock:(s-h)/2}});const nc=o=>{const{dataSource:n,targetKeys:l=[],selectedKeys:s,selectAllLabels:a=[],operations:h=[],style:m={},listStyle:$={},locale:p={},titles:S,disabled:B,showSearch:k=!1,operationStyle:pe,showSelectAll:We,oneWay:Ee,pagination:rt,status:lt,prefixCls:Wt,className:Bt,rootClassName:Rt,selectionsIcon:dn,filterOption:nn,render:wn,footer:Tn,children:Vn,rowKey:pr,onScroll:jr,onChange:Ko,onSearch:Wr,onSelectChange:Mr}=o,{getPrefixCls:$r,renderEmpty:uo,direction:$a,transfer:Vo}=(0,t.useContext)(de.E_),ya=$r("transfer",Wt),[xi,Ca]=Qd(ya),[ja,mo,ia]=Rd(n,pr,l),[Gr,Aa,ni,Sa]=Md(mo,ia,s),ua=(0,t.useCallback)((ea,Da)=>{if(ea==="left"){const Pl=typeof Da=="function"?Da(Gr||[]):Da;ni(Pl)}else{const Pl=typeof Da=="function"?Da(Aa||[]):Da;Sa(Pl)}},[Gr,Aa]),ll=(0,t.useCallback)((ea,Da)=>{ea==="left"?Mr==null||Mr(Da,Aa):Mr==null||Mr(Gr,Da)},[Gr,Aa]),$o=ea=>{var Da;return(Da=S!=null?S:ea.titles)!==null&&Da!==void 0?Da:[]},Yo=ea=>{jr==null||jr("left",ea)},di=ea=>{jr==null||jr("right",ea)},Fr=ea=>{const Da=ea==="right"?Gr:Aa,Pl=Od(ja),jl=Da.filter(Gs=>!Pl.has(Gs)),Ul=tc(jl),Hs=ea==="right"?jl.concat(l):l.filter(Gs=>!Ul.has(Gs)),Bs=ea==="right"?"left":"right";ua(Bs,[]),ll(Bs,[]),Ko==null||Ko(Hs,ea,jl)},la=()=>{Fr("left")},Ii=()=>{Fr("right")},ro=(ea,Da,Pl)=>{ua(ea,jl=>{let Ul=[];if(Pl==="replace")Ul=Da;else if(Pl)Ul=Array.from(new Set([].concat((0,I.Z)(jl),(0,I.Z)(Da))));else{const Hs=tc(Da);Ul=jl.filter(Bs=>!Hs.has(Bs))}return ll(ea,Ul),Ul})},Ao=(ea,Da)=>{ro("left",ea,Da)},Ha=(ea,Da)=>{ro("right",ea,Da)},hl=ea=>Wr==null?void 0:Wr("left",ea.target.value),rs=ea=>Wr==null?void 0:Wr("right",ea.target.value),ui=()=>Wr==null?void 0:Wr("left",""),_l=()=>Wr==null?void 0:Wr("right",""),El=(ea,Da,Pl)=>{const jl=(0,I.Z)(ea==="left"?Gr:Aa),Ul=jl.indexOf(Da);Ul>-1&&jl.splice(Ul,1),Pl&&jl.push(Da),ll(ea,jl),o.selectedKeys||ua(ea,jl)},si=(ea,Da)=>{El("left",ea,Da)},rc=(ea,Da)=>{El("right",ea,Da)},oc=ea=>{ua("right",[]),Ko==null||Ko(l.filter(Da=>!ea.includes(Da)),"left",(0,I.Z)(ea))},ac=ea=>typeof $=="function"?$({direction:ea}):$||{},ic=(0,t.useContext)(kt.aM),{hasFeedback:Cc,status:lc}=ic,ys=ea=>Object.assign(Object.assign(Object.assign({},ea),{notFoundContent:(uo==null?void 0:uo("Transfer"))||t.createElement(vl.Z,{componentName:"Transfer"})}),p),bc=(0,Nr.F)(lc,lt),sc=!Vn&&rt,Ls=Aa.length>0,Cs=Gr.length>0,Us=F()(ya,{[`${ya}-disabled`]:B,[`${ya}-customize-list`]:!!Vn,[`${ya}-rtl`]:$a==="rtl"},(0,Nr.Z)(ya,bc,Cc),Vo==null?void 0:Vo.className,Bt,Rt,Ca),[js]=(0,Vt.Z)("Transfer",gc.Z.Transfer),Ps=ys(js),[Xs,As]=$o(Ps);return xi(t.createElement("div",{className:Us,style:Object.assign(Object.assign({},Vo==null?void 0:Vo.style),m)},t.createElement(pc,Object.assign({prefixCls:`${ya}-list`,titleText:Xs,dataSource:mo,filterOption:nn,style:ac("left"),checkedKeys:Gr,handleFilter:hl,handleClear:ui,onItemSelect:si,onItemSelectAll:Ao,render:wn,showSearch:k,renderList:Vn,footer:Tn,onScroll:Yo,disabled:B,direction:$a==="rtl"?"right":"left",showSelectAll:We,selectAllLabel:a[0],pagination:sc,selectionsIcon:dn},Ps)),t.createElement(Fc,{className:`${ya}-operation`,rightActive:Cs,rightArrowText:h[0],moveToRight:Ii,leftActive:Ls,leftArrowText:h[1],moveToLeft:la,style:pe,disabled:B,direction:$a,oneWay:Ee}),t.createElement(pc,Object.assign({prefixCls:`${ya}-list`,titleText:As,dataSource:ia,filterOption:nn,style:ac("right"),checkedKeys:Aa,handleFilter:rs,handleClear:_l,onItemSelect:rc,onItemSelectAll:Ha,onItemRemove:oc,render:wn,showSearch:k,renderList:Vn,footer:Tn,onScroll:di,disabled:B,direction:$a==="rtl"?"left":"right",showSelectAll:We,selectAllLabel:a[1],showRemove:Ee,pagination:sc,selectionsIcon:dn},Ps))))};nc.List=pc,nc.Search=Nc,nc.Operation=Fc;var Jd=nc,qd=e(7992),_d=e(76185),eu=e(45151),tu=e(23241),nu=e(93430),jc=e(69188),ru=function(o){(0,vt.Z)(l,o);var n=(0,Se.Z)(l);function l(){return(0,Y.Z)(this,l),n.apply(this,arguments)}return(0,Be.Z)(l,[{key:"render",value:function(){return this.props.children}}]),l}(t.Component),ou=ru,au=e(19075),iu={subtree:!0,childList:!0,attributeFilter:["style","class"]};function lu(o,n){var l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:iu;t.useEffect(function(){if(!(!(0,au.Z)()||!o)){var s,a=Array.isArray(o)?o:[o];return"MutationObserver"in window&&(s=new MutationObserver(n),a.forEach(function(h){s.observe(h,l)})),function(){var h,m;(h=s)===null||h===void 0||h.takeRecords(),(m=s)===null||m===void 0||m.disconnect()}}},[l,o])}var su=function(n){var l=n.children,s=n.options,a=n.onMutate,h=a===void 0?function(){}:a,m=(0,H.Z)(h),$=t.useRef(null),p=t.useRef(null),S=t.isValidElement(l)&&(0,el.Yr)(l),B=(0,el.x1)(p,S?l.ref:null),k=t.useState(null),pe=(0,v.Z)(k,2),We=pe[0],Ee=pe[1];return lu(We,m,s),(0,Vs.Z)(function(){Ee((0,jc.Z)(p.current)||(0,jc.Z)($.current))}),l?t.createElement(ou,{ref:$},S?t.cloneElement(l,{ref:B}):l):null},cu=su,du=cu;const Ac=3;function yc(o,n){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;const s=document.createElement("canvas"),a=s.getContext("2d"),h=o*l,m=n*l;return s.setAttribute("width",`${h}px`),s.setAttribute("height",`${m}px`),a.save(),[a,s,h,m]}function uu(){function o(n,l,s,a,h,m,$,p){const[S,B,k,pe]=yc(a,h,s);if(n instanceof HTMLImageElement)S.drawImage(n,0,0,k,pe);else{const{color:ja,fontSize:mo,fontStyle:ia,fontWeight:Gr,fontFamily:Aa}=m,ni=Number(mo)*s;S.font=`${ia} normal ${Gr} ${ni}px/${h}px ${Aa}`,S.fillStyle=ja,S.textAlign="center",S.textBaseline="top";const Sa=Array.isArray(n)?n:[n];Sa==null||Sa.forEach((ua,ll)=>{S.fillText(ua!=null?ua:"",k/2,ll*(ni+Ac*s))})}const We=Math.PI/180*Number(l),Ee=Math.max(a,h),[rt,lt,Wt]=yc(Ee,Ee,s);rt.translate(Wt/2,Wt/2),rt.rotate(We),rt.drawImage(B,-k/2,-pe/2);function Bt(ja,mo){const ia=ja*Math.cos(We)-mo*Math.sin(We),Gr=ja*Math.sin(We)+mo*Math.cos(We);return[ia,Gr]}let Rt=0,dn=0,nn=0,wn=0;const Tn=k/2,Vn=pe/2;[[0-Tn,0-Vn],[0+Tn,0-Vn],[0+Tn,0+Vn],[0-Tn,0+Vn]].forEach(ja=>{let[mo,ia]=ja;const[Gr,Aa]=Bt(mo,ia);Rt=Math.min(Rt,Gr),dn=Math.max(dn,Gr),nn=Math.min(nn,Aa),wn=Math.max(wn,Aa)});const jr=Rt+Wt/2,Ko=nn+Wt/2,Wr=dn-Rt,Mr=wn-nn,$r=$*s,uo=p*s,$a=(Wr+$r)*2,Vo=Mr+uo,[ya,xi]=yc($a,Vo);function Ca(){let ja=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,mo=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;ya.drawImage(lt,jr,Ko,Wr,Mr,ja,mo,Wr,Mr)}return Ca(),Ca(Wr+$r,-Mr/2-uo/2),Ca(Wr+$r,+Mr/2+uo/2),[xi.toDataURL(),$a/s,Vo/s]}return o}function fu(o){return o.replace(/([A-Z])/g,"-$1").toLowerCase()}function vu(o){return Object.keys(o).map(n=>`${fu(n)}: ${o[n]};`).join(" ")}function mu(){return window.devicePixelRatio||1}const gu=(o,n)=>{let l=!1;return o.removedNodes.length&&(l=Array.from(o.removedNodes).some(s=>s===n)),o.type==="attributes"&&o.target===n&&(l=!0),l};var hu=o=>{var n,l;const{zIndex:s=9,rotate:a=-22,width:h,height:m,image:$,content:p,font:S={},style:B,className:k,rootClassName:pe,gap:We=[100,100],offset:Ee,children:rt}=o,{token:lt}=to.Z.useToken(),{color:Wt=lt.colorFill,fontSize:Bt=lt.fontSizeLG,fontWeight:Rt="normal",fontStyle:dn="normal",fontFamily:nn="sans-serif"}=S,[wn,Tn]=We,Vn=wn/2,pr=Tn/2,jr=(n=Ee==null?void 0:Ee[0])!==null&&n!==void 0?n:Vn,Ko=(l=Ee==null?void 0:Ee[1])!==null&&l!==void 0?l:pr,Wr=()=>{const mo={zIndex:s,position:"absolute",left:0,top:0,width:"100%",height:"100%",pointerEvents:"none",backgroundRepeat:"repeat"};let ia=jr-Vn,Gr=Ko-pr;return ia>0&&(mo.left=`${ia}px`,mo.width=`calc(100% - ${ia}px)`,ia=0),Gr>0&&(mo.top=`${Gr}px`,mo.height=`calc(100% - ${Gr}px)`,Gr=0),mo.backgroundPosition=`${ia}px ${Gr}px`,mo},Mr=(0,t.useRef)(null),$r=(0,t.useRef)(),uo=(0,t.useRef)(!1),$a=()=>{$r.current&&($r.current.remove(),$r.current=void 0)},Vo=(mo,ia)=>{var Gr;Mr.current&&$r.current&&(uo.current=!0,$r.current.setAttribute("style",vu(Object.assign(Object.assign({},Wr()),{backgroundImage:`url('${mo}')`,backgroundSize:`${Math.floor(ia)}px`}))),(Gr=Mr.current)===null||Gr===void 0||Gr.append($r.current),setTimeout(()=>{uo.current=!1}))},ya=mo=>{let ia=120,Gr=64;if(!$&&mo.measureText){mo.font=`${Number(Bt)}px ${nn}`;const Aa=Array.isArray(p)?p:[p],ni=Aa.map(Sa=>{const ua=mo.measureText(Sa);return[ua.width,ua.fontBoundingBoxAscent+ua.fontBoundingBoxDescent]});ia=Math.ceil(Math.max.apply(Math,(0,I.Z)(ni.map(Sa=>Sa[0])))),Gr=Math.ceil(Math.max.apply(Math,(0,I.Z)(ni.map(Sa=>Sa[1]))))*Aa.length+(Aa.length-1)*Ac}return[h!=null?h:ia,m!=null?m:Gr]},xi=uu(),Ca=()=>{const ia=document.createElement("canvas").getContext("2d");if(ia){$r.current||($r.current=document.createElement("div"));const Gr=mu(),[Aa,ni]=ya(ia),Sa=ua=>{const[ll,$o]=xi(ua||"",a,Gr,Aa,ni,{color:Wt,fontSize:Bt,fontStyle:dn,fontWeight:Rt,fontFamily:nn},wn,Tn);Vo(ll,$o)};if($){const ua=new Image;ua.onload=()=>{Sa(ua)},ua.onerror=()=>{Sa(p)},ua.crossOrigin="anonymous",ua.referrerPolicy="no-referrer",ua.src=$}else Sa(p)}},ja=mo=>{uo.current||mo.forEach(ia=>{gu(ia,$r.current)&&($a(),Ca())})};return(0,t.useEffect)(Ca,[a,s,h,m,$,p,Wt,Bt,Rt,dn,nn,wn,Tn,jr,Ko]),t.createElement(du,{onMutate:ja},t.createElement("div",{ref:Mr,className:F()(k,pe),style:Object.assign({position:"relative"},B)},rt))}},30956:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return Me}});var i=e(69831),y=e(87608),I=e.n(y),T=e(29639),F=e(60409),H=e(98186),t=e(58757),j=e(37047),M=e(61836),Ce=e(33181),de=e(99086),w=e(99836),K=e(12562),ne=e(70921),f=e(29487),te=e(80076),A=e(21465),J=e(52628);const $e=P=>{const{componentCls:Re,iconCls:ct,antCls:ee,zIndexPopup:ue,colorText:se,colorWarning:Ke,marginXXS:ot,marginXS:Fe,fontSize:ut,fontWeightStrong:U,colorTextHeading:W}=P;return{[Re]:{zIndex:ue,[`&${ee}-popover`]:{fontSize:ut},[`${Re}-message`]:{marginBottom:Fe,display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${Re}-message-icon ${ct}`]:{color:Ke,fontSize:ut,lineHeight:1,marginInlineEnd:Fe},[`${Re}-title`]:{fontWeight:U,color:W,"&:only-child":{fontWeight:"normal"}},[`${Re}-description`]:{marginTop:ot,color:se}},[`${Re}-buttons`]:{textAlign:"end",whiteSpace:"nowrap",button:{marginInlineStart:Fe}}}}};var z=(0,J.Z)("Popconfirm",P=>$e(P),P=>{const{zIndexPopupBase:Re}=P;return{zIndexPopup:Re+60}}),g=function(P,Re){var ct={};for(var ee in P)Object.prototype.hasOwnProperty.call(P,ee)&&Re.indexOf(ee)<0&&(ct[ee]=P[ee]);if(P!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ue=0,ee=Object.getOwnPropertySymbols(P);ue{const{prefixCls:Re,okButtonProps:ct,cancelButtonProps:ee,title:ue,description:se,cancelText:Ke,okText:ot,okType:Fe="primary",icon:ut=t.createElement(i.Z,null),showCancel:U=!0,close:W,onConfirm:me,onCancel:he,onPopupClick:ht}=P,{getPrefixCls:at}=t.useContext(M.E_),[pt]=(0,f.Z)("Popconfirm",te.Z.Popconfirm),ft=(0,w.Z)(ue),gt=(0,w.Z)(se);return t.createElement("div",{className:`${Re}-inner-content`,onClick:ht},t.createElement("div",{className:`${Re}-message`},ut&&t.createElement("span",{className:`${Re}-message-icon`},ut),t.createElement("div",{className:`${Re}-message-text`},ft&&t.createElement("div",{className:I()(`${Re}-title`)},ft),gt&&t.createElement("div",{className:`${Re}-description`},gt))),t.createElement("div",{className:`${Re}-buttons`},U&&t.createElement(K.ZP,Object.assign({onClick:he,size:"small"},ee),Ke!=null?Ke:pt==null?void 0:pt.cancelText),t.createElement(de.Z,{buttonProps:Object.assign(Object.assign({size:"small"},(0,ne.n)(Fe)),ct),actionFn:me,close:W,prefixCls:at("btn"),quitOnNullishReturnValue:!0,emitEvent:!0},ot!=null?ot:pt==null?void 0:pt.okText)))};var Le=P=>{const{prefixCls:Re,placement:ct,className:ee,style:ue}=P,se=g(P,["prefixCls","placement","className","style"]),{getPrefixCls:Ke}=t.useContext(M.E_),ot=Ke("popconfirm",Re),[Fe]=z(ot);return Fe(t.createElement(A.ZP,{placement:ct,className:I()(ot,ee),style:ue,content:t.createElement(Ve,Object.assign({prefixCls:ot},se))}))},G=function(P,Re){var ct={};for(var ee in P)Object.prototype.hasOwnProperty.call(P,ee)&&Re.indexOf(ee)<0&&(ct[ee]=P[ee]);if(P!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ue=0,ee=Object.getOwnPropertySymbols(P);ue{const{prefixCls:ct,placement:ee="top",trigger:ue="click",okType:se="primary",icon:Ke=t.createElement(i.Z,null),children:ot,overlayClassName:Fe,onOpenChange:ut,onVisibleChange:U}=P,W=G(P,["prefixCls","placement","trigger","okType","icon","children","overlayClassName","onOpenChange","onVisibleChange"]),{getPrefixCls:me}=t.useContext(M.E_),[he,ht]=(0,F.Z)(!1,{value:P.open,defaultValue:P.defaultOpen}),at=(Ze,Oe)=>{ht(Ze,!0),U==null||U(Ze),ut==null||ut(Ze,Oe)},pt=Ze=>{at(!1,Ze)},ft=Ze=>{var Oe;return(Oe=P.onConfirm)===null||Oe===void 0?void 0:Oe.call(void 0,Ze)},gt=Ze=>{var Oe;at(!1,Ze),(Oe=P.onCancel)===null||Oe===void 0||Oe.call(void 0,Ze)},Ut=Ze=>{Ze.keyCode===T.Z.ESC&&he&&at(!1,Ze)},It=Ze=>{const{disabled:Oe=!1}=P;Oe||at(Ze)},bt=me("popconfirm",ct),xt=I()(bt,Fe),[ve]=z(bt);return ve(t.createElement(Ce.Z,Object.assign({},(0,H.Z)(W,["title"]),{trigger:ue,placement:ee,onOpenChange:It,open:he,ref:Re,overlayClassName:xt,content:t.createElement(Ve,Object.assign({okType:se,icon:Ke},P,{prefixCls:bt,close:pt,onConfirm:ft,onCancel:gt})),"data-popover-inject":!0}),(0,j.Tm)(ot,{onKeyDown:Ze=>{var Oe,je;t.isValidElement(ot)&&((je=ot==null?void 0:(Oe=ot.props).onKeyDown)===null||je===void 0||je.call(Oe,Ze)),Ut(Ze)}})))});st._InternalPanelDoNotUseOrYouWillBeFired=Le;var Me=st},73045:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return ut}});var i=e(60698),y=e(58757),I={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0046.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z"}}]},name:"star",theme:"filled"},T=I,F=e(17202),H=function(W,me){return y.createElement(F.Z,(0,i.Z)({},W,{ref:me,icon:T}))},t=y.forwardRef(H),j=e(87608),M=e.n(j),Ce=e(37734),de=e(28314),w=e(47075),K=e(60409),ne=e(29639),f=e(33926);function te(U,W){var me=U.disabled,he=U.prefixCls,ht=U.character,at=U.characterRender,pt=U.index,ft=U.count,gt=U.value,Ut=U.allowHalf,It=U.focused,bt=U.onHover,xt=U.onClick,ve=function(R){bt(R,pt)},Ze=function(R){xt(R,pt)},Oe=function(R){R.keyCode===ne.Z.ENTER&&xt(R,pt)},je=pt+1,O=new Set([he]);gt===0&&pt===0&&It?O.add("".concat(he,"-focused")):Ut&>+.5>=je&>pt?"true":"false","aria-posinset":pt+1,"aria-setsize":ft,tabIndex:me?-1:0},y.createElement("div",{className:"".concat(he,"-first")},Ae),y.createElement("div",{className:"".concat(he,"-second")},Ae)));return at&&(Z=at(Z,U)),Z}var A=y.forwardRef(te);function J(){var U=y.useRef({});function W(he){return U.current[he]}function me(he){return function(ht){U.current[he]=ht}}return[W,me]}function $e(U){var W=U.pageXOffset,me="scrollLeft";if(typeof W!="number"){var he=U.document;W=he.documentElement[me],typeof W!="number"&&(W=he.body[me])}return W}function z(U){var W,me,he=U.ownerDocument,ht=he.body,at=he&&he.documentElement,pt=U.getBoundingClientRect();return W=pt.left,me=pt.top,W-=at.clientLeft||ht.clientLeft||0,me-=at.clientTop||ht.clientTop||0,{left:W,top:me}}function g(U){var W=z(U),me=U.ownerDocument,he=me.defaultView||me.parentWindow;return W.left+=$e(he),W.left}var Ve=["prefixCls","className","defaultValue","value","count","allowHalf","allowClear","character","characterRender","disabled","direction","tabIndex","autoFocus","onHoverChange","onChange","onFocus","onBlur","onKeyDown","onMouseLeave"];function Zt(U,W){var me,he=U.prefixCls,ht=he===void 0?"rc-rate":he,at=U.className,pt=U.defaultValue,ft=U.value,gt=U.count,Ut=gt===void 0?5:gt,It=U.allowHalf,bt=It===void 0?!1:It,xt=U.allowClear,ve=xt===void 0?!0:xt,Ze=U.character,Oe=Ze===void 0?"\u2605":Ze,je=U.characterRender,O=U.disabled,Ae=U.direction,Z=Ae===void 0?"ltr":Ae,b=U.tabIndex,R=b===void 0?0:b,ie=U.autoFocus,_=U.onHoverChange,Xe=U.onChange,it=U.onFocus,Ct=U.onBlur,Pt=U.onKeyDown,Nt=U.onMouseLeave,Vt=(0,w.Z)(U,Ve),kt=J(),tt=(0,de.Z)(kt,2),dt=tt[0],Ft=tt[1],At=y.useRef(null),Lt=function(){if(!O){var D;(D=At.current)===null||D===void 0||D.focus()}};y.useImperativeHandle(W,function(){return{focus:Lt,blur:function(){if(!O){var D;(D=At.current)===null||D===void 0||D.blur()}}}});var un=(0,K.Z)(pt||0,{value:ft}),Xt=(0,de.Z)(un,2),pn=Xt[0],Sn=Xt[1],Gt=(0,K.Z)(null),an=(0,de.Z)(Gt,2),ln=an[0],Pn=an[1],zn=function(D,x){var oe=Z==="rtl",be=D+1;if(bt){var Ie=dt(D),Ye=g(Ie),Ue=Ie.clientWidth;(oe&&x-Ye>Ue/2||!oe&&x-Ye0&&!oe||x===ne.Z.RIGHT&&be>0&&oe?(bt?be-=.5:be-=1,qn(be),D.preventDefault()):x===ne.Z.LEFT&&be{const{componentCls:W}=U;return{[`${W}-star`]:{position:"relative",display:"inline-block",color:"inherit",cursor:"pointer","&:not(:last-child)":{marginInlineEnd:U.marginXS},"> div":{transition:`all ${U.motionDurationMid}, outline 0s`,"&:hover":{transform:U.starHoverScale},"&:focus":{outline:0},"&:focus-visible":{outline:`${U.lineWidth}px dashed ${U.starColor}`,transform:U.starHoverScale}},"&-first, &-second":{color:U.starBg,transition:`all ${U.motionDurationMid}`,userSelect:"none",[U.iconCls]:{verticalAlign:"middle"}},"&-first":{position:"absolute",top:0,insetInlineStart:0,width:"50%",height:"100%",overflow:"hidden",opacity:0},[`&-half ${W}-star-first, &-half ${W}-star-second`]:{opacity:1},[`&-half ${W}-star-first, &-full ${W}-star-second`]:{color:"inherit"}}}},ue=U=>({[`&-rtl${U.componentCls}`]:{direction:"rtl"}}),se=U=>{const{componentCls:W}=U;return{[W]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,P.Wf)(U)),{display:"inline-block",margin:0,padding:0,color:U.starColor,fontSize:U.starSize,lineHeight:"unset",listStyle:"none",outline:"none",[`&-disabled${W} ${W}-star`]:{cursor:"default","> div:hover":{transform:"scale(1)"}}}),ee(U)),{[`+ ${W}-text`]:{display:"inline-block",marginInlineStart:U.marginXS,fontSize:U.fontSize}}),ue(U))}};var Ke=(0,Re.Z)("Rate",U=>{const W=(0,ct.TS)(U,{});return[se(W)]},U=>({starColor:U.yellow6,starSize:U.controlHeightLG*.5,starHoverScale:"scale(1.1)",starBg:U.colorFillContent})),ot=function(U,W){var me={};for(var he in U)Object.prototype.hasOwnProperty.call(U,he)&&W.indexOf(he)<0&&(me[he]=U[he]);if(U!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ht=0,he=Object.getOwnPropertySymbols(U);ht{const{prefixCls:me,className:he,rootClassName:ht,style:at,tooltips:pt,character:ft=y.createElement(t,null)}=U,gt=ot(U,["prefixCls","className","rootClassName","style","tooltips","character"]),Ut=(O,Ae)=>{let{index:Z}=Ae;return pt?y.createElement(Me.Z,{title:pt[Z]},O):O},{getPrefixCls:It,direction:bt,rate:xt}=y.useContext(st.E_),ve=It("rate",me),[Ze,Oe]=Ke(ve),je=Object.assign(Object.assign({},xt==null?void 0:xt.style),at);return Ze(y.createElement(G,Object.assign({ref:W,character:ft,characterRender:Ut},gt,{className:M()(he,ht,Oe,xt==null?void 0:xt.className),style:je,prefixCls:ve,direction:bt})))})},62886:function(Dt,De,e){"use strict";var i=e(67665);De.Z=i.Z},2073:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return ut}});var i=e(87608),y=e.n(i),I=e(60698),T=e(28314),F=e(47075),H=e(37734),t=e(57370),j=e(38790),M=e(58757),Ce=e(60409),de=e(21319),w=e(98186),K=e(17598),ne=e(81334),f=function(W){return W?{left:W.offsetLeft,right:W.parentElement.clientWidth-W.clientWidth-W.offsetLeft,width:W.clientWidth}:null},te=function(W){return W!==void 0?"".concat(W,"px"):void 0};function A(U){var W=U.prefixCls,me=U.containerRef,he=U.value,ht=U.getValueIndex,at=U.motionName,pt=U.onMotionStart,ft=U.onMotionEnd,gt=U.direction,Ut=M.useRef(null),It=M.useState(he),bt=(0,T.Z)(It,2),xt=bt[0],ve=bt[1],Ze=function(Vt){var kt,tt=ht(Vt),dt=(kt=me.current)===null||kt===void 0?void 0:kt.querySelectorAll(".".concat(W,"-item"))[tt];return(dt==null?void 0:dt.offsetParent)&&dt},Oe=M.useState(null),je=(0,T.Z)(Oe,2),O=je[0],Ae=je[1],Z=M.useState(null),b=(0,T.Z)(Z,2),R=b[0],ie=b[1];(0,ne.Z)(function(){if(xt!==he){var Nt=Ze(xt),Vt=Ze(he),kt=f(Nt),tt=f(Vt);ve(he),Ae(kt),ie(tt),Nt&&Vt?pt():ft()}},[he]);var _=M.useMemo(function(){return te(gt==="rtl"?-(O==null?void 0:O.right):O==null?void 0:O.left)},[gt,O]),Xe=M.useMemo(function(){return te(gt==="rtl"?-(R==null?void 0:R.right):R==null?void 0:R.left)},[gt,R]),it=function(){return{transform:"translateX(var(--thumb-start-left))",width:"var(--thumb-start-width)"}},Ct=function(){return{transform:"translateX(var(--thumb-active-left))",width:"var(--thumb-active-width)"}},Pt=function(){Ae(null),ie(null),ft()};return!O||!R?null:M.createElement(K.ZP,{visible:!0,motionName:at,motionAppear:!0,onAppearStart:it,onAppearActive:Ct,onVisibleChanged:Pt},function(Nt,Vt){var kt=Nt.className,tt=Nt.style,dt=(0,t.Z)((0,t.Z)({},tt),{},{"--thumb-start-left":_,"--thumb-start-width":te(O==null?void 0:O.width),"--thumb-active-left":Xe,"--thumb-active-width":te(R==null?void 0:R.width)}),Ft={ref:(0,de.sQ)(Ut,Vt),style:dt,className:y()("".concat(W,"-thumb"),kt)};return M.createElement("div",Ft)})}var J=["prefixCls","direction","options","disabled","defaultValue","value","onChange","className","motionName"];function $e(U){if(typeof U.title!="undefined")return U.title;if((0,j.Z)(U.label)!=="object"){var W;return(W=U.label)===null||W===void 0?void 0:W.toString()}}function z(U){return U.map(function(W){if((0,j.Z)(W)==="object"&&W!==null){var me=$e(W);return(0,t.Z)((0,t.Z)({},W),{},{title:me})}return{label:W==null?void 0:W.toString(),title:W==null?void 0:W.toString(),value:W}})}var g=function(W){var me=W.prefixCls,he=W.className,ht=W.disabled,at=W.checked,pt=W.label,ft=W.title,gt=W.value,Ut=W.onChange,It=function(xt){ht||Ut(xt,gt)};return M.createElement("label",{className:y()(he,(0,H.Z)({},"".concat(me,"-item-disabled"),ht))},M.createElement("input",{className:"".concat(me,"-item-input"),type:"radio",disabled:ht,checked:at,onChange:It}),M.createElement("div",{className:"".concat(me,"-item-label"),title:ft},pt))},Ve=M.forwardRef(function(U,W){var me,he,ht=U.prefixCls,at=ht===void 0?"rc-segmented":ht,pt=U.direction,ft=U.options,gt=U.disabled,Ut=U.defaultValue,It=U.value,bt=U.onChange,xt=U.className,ve=xt===void 0?"":xt,Ze=U.motionName,Oe=Ze===void 0?"thumb-motion":Ze,je=(0,F.Z)(U,J),O=M.useRef(null),Ae=M.useMemo(function(){return(0,de.sQ)(O,W)},[O,W]),Z=M.useMemo(function(){return z(ft)},[ft]),b=(0,Ce.Z)((me=Z[0])===null||me===void 0?void 0:me.value,{value:It,defaultValue:Ut}),R=(0,T.Z)(b,2),ie=R[0],_=R[1],Xe=M.useState(!1),it=(0,T.Z)(Xe,2),Ct=it[0],Pt=it[1],Nt=function(tt,dt){gt||(_(dt),bt==null||bt(dt))},Vt=(0,w.Z)(je,["children"]);return M.createElement("div",(0,I.Z)({},Vt,{className:y()(at,(he={},(0,H.Z)(he,"".concat(at,"-rtl"),pt==="rtl"),(0,H.Z)(he,"".concat(at,"-disabled"),gt),he),ve),ref:Ae}),M.createElement("div",{className:"".concat(at,"-group")},M.createElement(A,{prefixCls:at,value:ie,containerRef:O,motionName:"".concat(at,"-").concat(Oe),direction:pt,getValueIndex:function(tt){return Z.findIndex(function(dt){return dt.value===tt})},onMotionStart:function(){Pt(!0)},onMotionEnd:function(){Pt(!1)}}),Z.map(function(kt){return M.createElement(g,(0,I.Z)({},kt,{key:kt.value,prefixCls:at,className:y()(kt.className,"".concat(at,"-item"),(0,H.Z)({},"".concat(at,"-item-selected"),kt.value===ie&&!Ct)),checked:kt.value===ie,onChange:Nt,disabled:!!gt||!!kt.disabled}))})))});Ve.displayName="Segmented",Ve.defaultProps={options:[]};var Zt=Ve,Le=e(61836),G=e(58785),st=e(78330),Me=e(52628),P=e(22151);function Re(U,W){return{[`${U}, ${U}:hover, ${U}:focus`]:{color:W.colorTextDisabled,cursor:"not-allowed"}}}function ct(U){return{backgroundColor:U.itemSelectedBg,boxShadow:U.boxShadowTertiary}}const ee=Object.assign({overflow:"hidden"},st.vS),ue=U=>{const{componentCls:W}=U;return{[W]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,st.Wf)(U)),{display:"inline-block",padding:U.segmentedPadding,color:U.itemColor,backgroundColor:U.segmentedBgColor,borderRadius:U.borderRadius,transition:`all ${U.motionDurationMid} ${U.motionEaseInOut}`,[`${W}-group`]:{position:"relative",display:"flex",alignItems:"stretch",justifyItems:"flex-start",width:"100%"},[`&${W}-rtl`]:{direction:"rtl"},[`&${W}-block`]:{display:"flex"},[`&${W}-block ${W}-item`]:{flex:1,minWidth:0},[`${W}-item`]:{position:"relative",textAlign:"center",cursor:"pointer",transition:`color ${U.motionDurationMid} ${U.motionEaseInOut}`,borderRadius:U.borderRadiusSM,"&-selected":Object.assign(Object.assign({},ct(U)),{color:U.itemHoverColor}),"&::after":{content:'""',position:"absolute",width:"100%",height:"100%",top:0,insetInlineStart:0,borderRadius:"inherit",transition:`background-color ${U.motionDurationMid}`,pointerEvents:"none"},[`&:hover:not(${W}-item-selected):not(${W}-item-disabled)`]:{color:U.itemHoverColor,"&::after":{backgroundColor:U.itemHoverBg}},[`&:active:not(${W}-item-selected):not(${W}-item-disabled)`]:{color:U.itemHoverColor,"&::after":{backgroundColor:U.itemActiveBg}},"&-label":Object.assign({minHeight:U.controlHeight-U.segmentedPadding*2,lineHeight:`${U.controlHeight-U.segmentedPadding*2}px`,padding:`0 ${U.segmentedPaddingHorizontal}px`},ee),"&-icon + *":{marginInlineStart:U.marginSM/2},"&-input":{position:"absolute",insetBlockStart:0,insetInlineStart:0,width:0,height:0,opacity:0,pointerEvents:"none"}},[`${W}-thumb`]:Object.assign(Object.assign({},ct(U)),{position:"absolute",insetBlockStart:0,insetInlineStart:0,width:0,height:"100%",padding:`${U.paddingXXS}px 0`,borderRadius:U.borderRadiusSM,[`& ~ ${W}-item:not(${W}-item-selected):not(${W}-item-disabled)::after`]:{backgroundColor:"transparent"}}),[`&${W}-lg`]:{borderRadius:U.borderRadiusLG,[`${W}-item-label`]:{minHeight:U.controlHeightLG-U.segmentedPadding*2,lineHeight:`${U.controlHeightLG-U.segmentedPadding*2}px`,padding:`0 ${U.segmentedPaddingHorizontal}px`,fontSize:U.fontSizeLG},[`${W}-item, ${W}-thumb`]:{borderRadius:U.borderRadius}},[`&${W}-sm`]:{borderRadius:U.borderRadiusSM,[`${W}-item-label`]:{minHeight:U.controlHeightSM-U.segmentedPadding*2,lineHeight:`${U.controlHeightSM-U.segmentedPadding*2}px`,padding:`0 ${U.segmentedPaddingHorizontalSM}px`},[`${W}-item, ${W}-thumb`]:{borderRadius:U.borderRadiusXS}}}),Re(`&-disabled ${W}-item`,U)),Re(`${W}-item-disabled`,U)),{[`${W}-thumb-motion-appear-active`]:{transition:`transform ${U.motionDurationSlow} ${U.motionEaseInOut}, width ${U.motionDurationSlow} ${U.motionEaseInOut}`,willChange:"transform, width"}})}};var se=(0,Me.Z)("Segmented",U=>{const{lineWidth:W,lineWidthBold:me,colorBgLayout:he}=U,ht=(0,P.TS)(U,{segmentedPadding:me,segmentedBgColor:he,segmentedPaddingHorizontal:U.controlPaddingHorizontal-W,segmentedPaddingHorizontalSM:U.controlPaddingHorizontalSM-W});return[ue(ht)]},U=>{const{colorTextLabel:W,colorText:me,colorFillSecondary:he,colorBgElevated:ht,colorFill:at}=U;return{itemColor:W,itemHoverColor:me,itemHoverBg:he,itemSelectedBg:ht,itemActiveBg:at}}),Ke=function(U,W){var me={};for(var he in U)Object.prototype.hasOwnProperty.call(U,he)&&W.indexOf(he)<0&&(me[he]=U[he]);if(U!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ht=0,he=Object.getOwnPropertySymbols(U);ht{const{prefixCls:me,className:he,rootClassName:ht,block:at,options:pt=[],size:ft="middle",style:gt}=U,Ut=Ke(U,["prefixCls","className","rootClassName","block","options","size","style"]),{getPrefixCls:It,direction:bt,segmented:xt}=M.useContext(Le.E_),ve=It("segmented",me),[Ze,Oe]=se(ve),je=(0,G.Z)(ft),O=M.useMemo(()=>pt.map(b=>{if(ot(b)){const{icon:R,label:ie}=b,_=Ke(b,["icon","label"]);return Object.assign(Object.assign({},_),{label:M.createElement(M.Fragment,null,M.createElement("span",{className:`${ve}-item-icon`},R),ie&&M.createElement("span",null,ie))})}return b}),[pt,ve]),Ae=y()(he,ht,xt==null?void 0:xt.className,{[`${ve}-block`]:at,[`${ve}-sm`]:je==="small",[`${ve}-lg`]:je==="large"},Oe),Z=Object.assign(Object.assign({},xt==null?void 0:xt.style),gt);return Ze(M.createElement(Zt,Object.assign({},Ut,{className:Ae,style:Z,options:O,ref:W,prefixCls:ve,direction:bt})))})},81116:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return Ae}});var i=e(35725),y=e(52495),I=e(87608),T=e.n(I),F=e(60698),H=e(57370),t=e(37734),j=e(47075),M=e(58757),Ce=e(29639),de=["className","prefixCls","style","active","status","iconPrefix","icon","wrapperStyle","stepNumber","disabled","description","title","subTitle","progressDot","stepIcon","tailContent","icons","stepIndex","onStepClick","onClick","render"];function w(Z){return typeof Z=="string"}function K(Z){var b,R=Z.className,ie=Z.prefixCls,_=Z.style,Xe=Z.active,it=Z.status,Ct=Z.iconPrefix,Pt=Z.icon,Nt=Z.wrapperStyle,Vt=Z.stepNumber,kt=Z.disabled,tt=Z.description,dt=Z.title,Ft=Z.subTitle,At=Z.progressDot,Lt=Z.stepIcon,un=Z.tailContent,Xt=Z.icons,pn=Z.stepIndex,Sn=Z.onStepClick,Gt=Z.onClick,an=Z.render,ln=(0,j.Z)(Z,de),Pn=!!Sn&&!kt,zn={};Pn&&(zn.role="button",zn.tabIndex=0,zn.onClick=function(_e){Gt==null||Gt(_e),Sn(pn)},zn.onKeyDown=function(_e){var re=_e.which;(re===Ce.Z.ENTER||re===Ce.Z.SPACE)&&Sn(pn)});var qn=function(){var re,Y,Be=T()("".concat(ie,"-icon"),"".concat(Ct,"icon"),(re={},(0,t.Z)(re,"".concat(Ct,"icon-").concat(Pt),Pt&&w(Pt)),(0,t.Z)(re,"".concat(Ct,"icon-check"),!Pt&&it==="finish"&&(Xt&&!Xt.finish||!Xt)),(0,t.Z)(re,"".concat(Ct,"icon-cross"),!Pt&&it==="error"&&(Xt&&!Xt.error||!Xt)),re)),we=M.createElement("span",{className:"".concat(ie,"-icon-dot")});return At?typeof At=="function"?Y=M.createElement("span",{className:"".concat(ie,"-icon")},At(we,{index:Vt-1,status:it,title:dt,description:tt})):Y=M.createElement("span",{className:"".concat(ie,"-icon")},we):Pt&&!w(Pt)?Y=M.createElement("span",{className:"".concat(ie,"-icon")},Pt):Xt&&Xt.finish&&it==="finish"?Y=M.createElement("span",{className:"".concat(ie,"-icon")},Xt.finish):Xt&&Xt.error&&it==="error"?Y=M.createElement("span",{className:"".concat(ie,"-icon")},Xt.error):Pt||it==="finish"||it==="error"?Y=M.createElement("span",{className:Be}):Y=M.createElement("span",{className:"".concat(ie,"-icon")},Vt),Lt&&(Y=Lt({index:Vt-1,status:it,title:dt,description:tt,node:Y})),Y},yr=it||"wait",kn=T()("".concat(ie,"-item"),"".concat(ie,"-item-").concat(yr),R,(b={},(0,t.Z)(b,"".concat(ie,"-item-custom"),Pt),(0,t.Z)(b,"".concat(ie,"-item-active"),Xe),(0,t.Z)(b,"".concat(ie,"-item-disabled"),kt===!0),b)),ae=(0,H.Z)({},_),qe=M.createElement("div",(0,F.Z)({},ln,{className:kn,style:ae}),M.createElement("div",(0,F.Z)({onClick:Gt},zn,{className:"".concat(ie,"-item-container")}),M.createElement("div",{className:"".concat(ie,"-item-tail")},un),M.createElement("div",{className:"".concat(ie,"-item-icon")},qn()),M.createElement("div",{className:"".concat(ie,"-item-content")},M.createElement("div",{className:"".concat(ie,"-item-title")},dt,Ft&&M.createElement("div",{title:typeof Ft=="string"?Ft:void 0,className:"".concat(ie,"-item-subtitle")},Ft)),tt&&M.createElement("div",{className:"".concat(ie,"-item-description")},tt))));return an&&(qe=an(qe)||null),qe}var ne=K,f=["prefixCls","style","className","children","direction","type","labelPlacement","iconPrefix","status","size","current","progressDot","stepIcon","initial","icons","onChange","itemRender","items"];function te(Z){var b,R=Z.prefixCls,ie=R===void 0?"rc-steps":R,_=Z.style,Xe=_===void 0?{}:_,it=Z.className,Ct=Z.children,Pt=Z.direction,Nt=Pt===void 0?"horizontal":Pt,Vt=Z.type,kt=Vt===void 0?"default":Vt,tt=Z.labelPlacement,dt=tt===void 0?"horizontal":tt,Ft=Z.iconPrefix,At=Ft===void 0?"rc":Ft,Lt=Z.status,un=Lt===void 0?"process":Lt,Xt=Z.size,pn=Z.current,Sn=pn===void 0?0:pn,Gt=Z.progressDot,an=Gt===void 0?!1:Gt,ln=Z.stepIcon,Pn=Z.initial,zn=Pn===void 0?0:Pn,qn=Z.icons,yr=Z.onChange,kn=Z.itemRender,ae=Z.items,qe=ae===void 0?[]:ae,_e=(0,j.Z)(Z,f),re=kt==="navigation",Y=kt==="inline",Be=Y||an,we=Y?"horizontal":Nt,vt=Y?void 0:Xt,Se=Be?"vertical":dt,X=T()(ie,"".concat(ie,"-").concat(we),it,(b={},(0,t.Z)(b,"".concat(ie,"-").concat(vt),vt),(0,t.Z)(b,"".concat(ie,"-label-").concat(Se),we==="horizontal"),(0,t.Z)(b,"".concat(ie,"-dot"),!!Be),(0,t.Z)(b,"".concat(ie,"-navigation"),re),(0,t.Z)(b,"".concat(ie,"-inline"),Y),b)),Ne=function(fe){yr&&Sn!==fe&&yr(fe)},St=function(fe,L){var D=(0,H.Z)({},fe),x=zn+L;return un==="error"&&L===Sn-1&&(D.className="".concat(ie,"-next-error")),D.status||(x===Sn?D.status=un:x{const{componentCls:b,customIconTop:R,customIconSize:ie,customIconFontSize:_}=Z;return{[`${b}-item-custom`]:{[`> ${b}-item-container > ${b}-item-icon`]:{height:"auto",background:"none",border:0,[`> ${b}-icon`]:{top:R,width:ie,height:ie,fontSize:_,lineHeight:`${_}px`}}},[`&:not(${b}-vertical)`]:{[`${b}-item-custom`]:{[`${b}-item-icon`]:{width:"auto",background:"none"}}}}},ct=Z=>{const{componentCls:b,inlineDotSize:R,inlineTitleColor:ie,inlineTailColor:_}=Z,Xe=Z.paddingXS+Z.lineWidth,it={[`${b}-item-container ${b}-item-content ${b}-item-title`]:{color:ie}};return{[`&${b}-inline`]:{width:"auto",display:"inline-flex",[`${b}-item`]:{flex:"none","&-container":{padding:`${Xe}px ${Z.paddingXXS}px 0`,margin:`0 ${Z.marginXXS/2}px`,borderRadius:Z.borderRadiusSM,cursor:"pointer",transition:`background-color ${Z.motionDurationMid}`,"&:hover":{background:Z.controlItemBgHover},["&[role='button']:hover"]:{opacity:1}},"&-icon":{width:R,height:R,marginInlineStart:`calc(50% - ${R/2}px)`,[`> ${b}-icon`]:{top:0},[`${b}-icon-dot`]:{borderRadius:Z.fontSizeSM/4}},"&-content":{width:"auto",marginTop:Z.marginXS-Z.lineWidth},"&-title":{color:ie,fontSize:Z.fontSizeSM,lineHeight:Z.lineHeightSM,fontWeight:"normal",marginBottom:Z.marginXXS/2},"&-description":{display:"none"},"&-tail":{marginInlineStart:0,top:Xe+R/2,transform:"translateY(-50%)","&:after":{width:"100%",height:Z.lineWidth,borderRadius:0,marginInlineStart:0,background:_}},[`&:first-child ${b}-item-tail`]:{width:"50%",marginInlineStart:"50%"},[`&:last-child ${b}-item-tail`]:{display:"block",width:"50%"},"&-wait":Object.assign({[`${b}-item-icon ${b}-icon ${b}-icon-dot`]:{backgroundColor:Z.colorBorderBg,border:`${Z.lineWidth}px ${Z.lineType} ${_}`}},it),"&-finish":Object.assign({[`${b}-item-tail::after`]:{backgroundColor:_},[`${b}-item-icon ${b}-icon ${b}-icon-dot`]:{backgroundColor:_,border:`${Z.lineWidth}px ${Z.lineType} ${_}`}},it),"&-error":it,"&-active, &-process":Object.assign({[`${b}-item-icon`]:{width:R,height:R,marginInlineStart:`calc(50% - ${R/2}px)`,top:0}},it),[`&:not(${b}-item-active) > ${b}-item-container[role='button']:hover`]:{[`${b}-item-title`]:{color:ie}}}}}},ue=Z=>{const{componentCls:b,iconSize:R,lineHeight:ie,iconSizeSM:_}=Z;return{[`&${b}-label-vertical`]:{[`${b}-item`]:{overflow:"visible","&-tail":{marginInlineStart:R/2+Z.controlHeightLG,padding:`${Z.paddingXXS}px ${Z.paddingLG}px`},"&-content":{display:"block",width:(R/2+Z.controlHeightLG)*2,marginTop:Z.marginSM,textAlign:"center"},"&-icon":{display:"inline-block",marginInlineStart:Z.controlHeightLG},"&-title":{paddingInlineEnd:0,paddingInlineStart:0,"&::after":{display:"none"}},"&-subtitle":{display:"block",marginBottom:Z.marginXXS,marginInlineStart:0,lineHeight:ie}},[`&${b}-small:not(${b}-dot)`]:{[`${b}-item`]:{"&-icon":{marginInlineStart:Z.controlHeightLG+(R-_)/2}}}}}},Ke=Z=>{const{componentCls:b,navContentMaxWidth:R,navArrowColor:ie,stepsNavActiveColor:_,motionDurationSlow:Xe}=Z;return{[`&${b}-navigation`]:{paddingTop:Z.paddingSM,[`&${b}-small`]:{[`${b}-item`]:{"&-container":{marginInlineStart:-Z.marginSM}}},[`${b}-item`]:{overflow:"visible",textAlign:"center","&-container":{display:"inline-block",height:"100%",marginInlineStart:-Z.margin,paddingBottom:Z.paddingSM,textAlign:"start",transition:`opacity ${Xe}`,[`${b}-item-content`]:{maxWidth:R},[`${b}-item-title`]:Object.assign(Object.assign({maxWidth:"100%",paddingInlineEnd:0},Le.vS),{"&::after":{display:"none"}})},[`&:not(${b}-item-active)`]:{[`${b}-item-container[role='button']`]:{cursor:"pointer","&:hover":{opacity:.85}}},"&:last-child":{flex:1,"&::after":{display:"none"}},"&::after":{position:"absolute",top:`calc(50% - ${Z.paddingSM/2}px)`,insetInlineStart:"100%",display:"inline-block",width:Z.fontSizeIcon,height:Z.fontSizeIcon,borderTop:`${Z.lineWidth}px ${Z.lineType} ${ie}`,borderBottom:"none",borderInlineStart:"none",borderInlineEnd:`${Z.lineWidth}px ${Z.lineType} ${ie}`,transform:"translateY(-50%) translateX(-50%) rotate(45deg)",content:'""'},"&::before":{position:"absolute",bottom:0,insetInlineStart:"50%",display:"inline-block",width:0,height:Z.lineWidthBold,backgroundColor:_,transition:`width ${Xe}, inset-inline-start ${Xe}`,transitionTimingFunction:"ease-out",content:'""'}},[`${b}-item${b}-item-active::before`]:{insetInlineStart:0,width:"100%"}},[`&${b}-navigation${b}-vertical`]:{[`> ${b}-item`]:{marginInlineEnd:0,"&::before":{display:"none"},[`&${b}-item-active::before`]:{top:0,insetInlineEnd:0,insetInlineStart:"unset",display:"block",width:Z.lineWidth*3,height:`calc(100% - ${Z.marginLG}px)`},"&::after":{position:"relative",insetInlineStart:"50%",display:"block",width:Z.controlHeight*.25,height:Z.controlHeight*.25,marginBottom:Z.marginXS,textAlign:"center",transform:"translateY(-50%) translateX(-50%) rotate(135deg)"},[`> ${b}-item-container > ${b}-item-tail`]:{visibility:"hidden"}}},[`&${b}-navigation${b}-horizontal`]:{[`> ${b}-item > ${b}-item-container > ${b}-item-tail`]:{visibility:"hidden"}}}},Fe=Z=>{const{antCls:b,componentCls:R}=Z;return{[`&${R}-with-progress`]:{[`${R}-item`]:{paddingTop:Z.paddingXXS,[`&-process ${R}-item-container ${R}-item-icon ${R}-icon`]:{color:Z.processIconColor}},[`&${R}-vertical > ${R}-item `]:{paddingInlineStart:Z.paddingXXS,[`> ${R}-item-container > ${R}-item-tail`]:{top:Z.marginXXS,insetInlineStart:Z.iconSize/2-Z.lineWidth+Z.paddingXXS}},[`&, &${R}-small`]:{[`&${R}-horizontal ${R}-item:first-child`]:{paddingBottom:Z.paddingXXS,paddingInlineStart:Z.paddingXXS}},[`&${R}-small${R}-vertical > ${R}-item > ${R}-item-container > ${R}-item-tail`]:{insetInlineStart:Z.iconSizeSM/2-Z.lineWidth+Z.paddingXXS},[`&${R}-label-vertical`]:{[`${R}-item ${R}-item-tail`]:{top:Z.margin-2*Z.lineWidth}},[`${R}-item-icon`]:{position:"relative",[`${b}-progress`]:{position:"absolute",insetBlockStart:(Z.iconSize-Z.stepsProgressSize-Z.lineWidth*2)/2,insetInlineStart:(Z.iconSize-Z.stepsProgressSize-Z.lineWidth*2)/2}}}}},U=Z=>{const{componentCls:b,descriptionMaxWidth:R,lineHeight:ie,dotCurrentSize:_,dotSize:Xe,motionDurationSlow:it}=Z;return{[`&${b}-dot, &${b}-dot${b}-small`]:{[`${b}-item`]:{"&-title":{lineHeight:ie},"&-tail":{top:Math.floor((Z.dotSize-Z.lineWidth*3)/2),width:"100%",marginTop:0,marginBottom:0,marginInline:`${R/2}px 0`,padding:0,"&::after":{width:`calc(100% - ${Z.marginSM*2}px)`,height:Z.lineWidth*3,marginInlineStart:Z.marginSM}},"&-icon":{width:Xe,height:Xe,marginInlineStart:(Z.descriptionMaxWidth-Xe)/2,paddingInlineEnd:0,lineHeight:`${Xe}px`,background:"transparent",border:0,[`${b}-icon-dot`]:{position:"relative",float:"left",width:"100%",height:"100%",borderRadius:100,transition:`all ${it}`,"&::after":{position:"absolute",top:-Z.marginSM,insetInlineStart:(Xe-Z.controlHeightLG*1.5)/2,width:Z.controlHeightLG*1.5,height:Z.controlHeight,background:"transparent",content:'""'}}},"&-content":{width:R},[`&-process ${b}-item-icon`]:{position:"relative",top:(Xe-_)/2,width:_,height:_,lineHeight:`${_}px`,background:"none",marginInlineStart:(Z.descriptionMaxWidth-_)/2},[`&-process ${b}-icon`]:{[`&:first-child ${b}-icon-dot`]:{insetInlineStart:0}}}},[`&${b}-vertical${b}-dot`]:{[`${b}-item-icon`]:{marginTop:(Z.controlHeight-Xe)/2,marginInlineStart:0,background:"none"},[`${b}-item-process ${b}-item-icon`]:{marginTop:(Z.controlHeight-_)/2,top:0,insetInlineStart:(Xe-_)/2,marginInlineStart:0},[`${b}-item > ${b}-item-container > ${b}-item-tail`]:{top:(Z.controlHeight-Xe)/2,insetInlineStart:0,margin:0,padding:`${Xe+Z.paddingXS}px 0 ${Z.paddingXS}px`,"&::after":{marginInlineStart:(Xe-Z.lineWidth)/2}},[`&${b}-small`]:{[`${b}-item-icon`]:{marginTop:(Z.controlHeightSM-Xe)/2},[`${b}-item-process ${b}-item-icon`]:{marginTop:(Z.controlHeightSM-_)/2},[`${b}-item > ${b}-item-container > ${b}-item-tail`]:{top:(Z.controlHeightSM-Xe)/2}},[`${b}-item:first-child ${b}-icon-dot`]:{insetInlineStart:0},[`${b}-item-content`]:{width:"inherit"}}}},me=Z=>{const{componentCls:b}=Z;return{[`&${b}-rtl`]:{direction:"rtl",[`${b}-item`]:{"&-subtitle":{float:"left"}},[`&${b}-navigation`]:{[`${b}-item::after`]:{transform:"rotate(-45deg)"}},[`&${b}-vertical`]:{[`> ${b}-item`]:{"&::after":{transform:"rotate(225deg)"},[`${b}-item-icon`]:{float:"right"}}},[`&${b}-dot`]:{[`${b}-item-icon ${b}-icon-dot, &${b}-small ${b}-item-icon ${b}-icon-dot`]:{float:"right"}}}}},ht=Z=>{const{componentCls:b,iconSizeSM:R,fontSizeSM:ie,fontSize:_,colorTextDescription:Xe}=Z;return{[`&${b}-small`]:{[`&${b}-horizontal:not(${b}-label-vertical) ${b}-item`]:{paddingInlineStart:Z.paddingSM,"&:first-child":{paddingInlineStart:0}},[`${b}-item-icon`]:{width:R,height:R,marginTop:0,marginBottom:0,marginInline:`0 ${Z.marginXS}px`,fontSize:ie,lineHeight:`${R}px`,textAlign:"center",borderRadius:R},[`${b}-item-title`]:{paddingInlineEnd:Z.paddingSM,fontSize:_,lineHeight:`${R}px`,"&::after":{top:R/2}},[`${b}-item-description`]:{color:Xe,fontSize:_},[`${b}-item-tail`]:{top:R/2-Z.paddingXXS},[`${b}-item-custom ${b}-item-icon`]:{width:"inherit",height:"inherit",lineHeight:"inherit",background:"none",border:0,borderRadius:0,[`> ${b}-icon`]:{fontSize:R,lineHeight:`${R}px`,transform:"none"}}}}},pt=Z=>{const{componentCls:b,iconSizeSM:R,iconSize:ie}=Z;return{[`&${b}-vertical`]:{display:"flex",flexDirection:"column",[`> ${b}-item`]:{display:"block",flex:"1 0 auto",paddingInlineStart:0,overflow:"visible",[`${b}-item-icon`]:{float:"left",marginInlineEnd:Z.margin},[`${b}-item-content`]:{display:"block",minHeight:Z.controlHeight*1.5,overflow:"hidden"},[`${b}-item-title`]:{lineHeight:`${ie}px`},[`${b}-item-description`]:{paddingBottom:Z.paddingSM}},[`> ${b}-item > ${b}-item-container > ${b}-item-tail`]:{position:"absolute",top:0,insetInlineStart:ie/2-Z.lineWidth,width:Z.lineWidth,height:"100%",padding:`${ie+Z.marginXXS*1.5}px 0 ${Z.marginXXS*1.5}px`,"&::after":{width:Z.lineWidth,height:"100%"}},[`> ${b}-item:not(:last-child) > ${b}-item-container > ${b}-item-tail`]:{display:"block"},[` > ${b}-item > ${b}-item-container > ${b}-item-content > ${b}-item-title`]:{"&::after":{display:"none"}},[`&${b}-small ${b}-item-container`]:{[`${b}-item-tail`]:{position:"absolute",top:0,insetInlineStart:R/2-Z.lineWidth,padding:`${R+Z.marginXXS*1.5}px 0 ${Z.marginXXS*1.5}px`},[`${b}-item-title`]:{lineHeight:`${R}px`}}}}},ft;(function(Z){Z.wait="wait",Z.process="process",Z.finish="finish",Z.error="error"})(ft||(ft={}));const gt=(Z,b)=>{const R=`${b.componentCls}-item`,ie=`${Z}IconColor`,_=`${Z}TitleColor`,Xe=`${Z}DescriptionColor`,it=`${Z}TailColor`,Ct=`${Z}IconBgColor`,Pt=`${Z}IconBorderColor`,Nt=`${Z}DotColor`;return{[`${R}-${Z} ${R}-icon`]:{backgroundColor:b[Ct],borderColor:b[Pt],[`> ${b.componentCls}-icon`]:{color:b[ie],[`${b.componentCls}-icon-dot`]:{background:b[Nt]}}},[`${R}-${Z}${R}-custom ${R}-icon`]:{[`> ${b.componentCls}-icon`]:{color:b[Nt]}},[`${R}-${Z} > ${R}-container > ${R}-content > ${R}-title`]:{color:b[_],"&::after":{backgroundColor:b[it]}},[`${R}-${Z} > ${R}-container > ${R}-content > ${R}-description`]:{color:b[Xe]},[`${R}-${Z} > ${R}-container > ${R}-tail::after`]:{backgroundColor:b[it]}}},Ut=Z=>{const{componentCls:b,motionDurationSlow:R}=Z,ie=`${b}-item`,_=`${ie}-icon`;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[ie]:{position:"relative",display:"inline-block",flex:1,overflow:"hidden",verticalAlign:"top","&:last-child":{flex:"none",[`> ${ie}-container > ${ie}-tail, > ${ie}-container > ${ie}-content > ${ie}-title::after`]:{display:"none"}}},[`${ie}-container`]:{outline:"none",["&:focus-visible"]:{[_]:Object.assign({},(0,Le.oN)(Z))}},[`${_}, ${ie}-content`]:{display:"inline-block",verticalAlign:"top"},[_]:{width:Z.iconSize,height:Z.iconSize,marginTop:0,marginBottom:0,marginInlineStart:0,marginInlineEnd:Z.marginXS,fontSize:Z.iconFontSize,fontFamily:Z.fontFamily,lineHeight:`${Z.iconSize}px`,textAlign:"center",borderRadius:Z.iconSize,border:`${Z.lineWidth}px ${Z.lineType} transparent`,transition:`background-color ${R}, border-color ${R}`,[`${b}-icon`]:{position:"relative",top:Z.iconTop,color:Z.colorPrimary,lineHeight:1}},[`${ie}-tail`]:{position:"absolute",top:Z.iconSize/2-Z.paddingXXS,insetInlineStart:0,width:"100%","&::after":{display:"inline-block",width:"100%",height:Z.lineWidth,background:Z.colorSplit,borderRadius:Z.lineWidth,transition:`background ${R}`,content:'""'}},[`${ie}-title`]:{position:"relative",display:"inline-block",paddingInlineEnd:Z.padding,color:Z.colorText,fontSize:Z.fontSizeLG,lineHeight:`${Z.titleLineHeight}px`,"&::after":{position:"absolute",top:Z.titleLineHeight/2,insetInlineStart:"100%",display:"block",width:9999,height:Z.lineWidth,background:Z.processTailColor,content:'""'}},[`${ie}-subtitle`]:{display:"inline",marginInlineStart:Z.marginXS,color:Z.colorTextDescription,fontWeight:"normal",fontSize:Z.fontSize},[`${ie}-description`]:{color:Z.colorTextDescription,fontSize:Z.fontSize}},gt(ft.wait,Z)),gt(ft.process,Z)),{[`${ie}-process > ${ie}-container > ${ie}-title`]:{fontWeight:Z.fontWeightStrong}}),gt(ft.finish,Z)),gt(ft.error,Z)),{[`${ie}${b}-next-error > ${b}-item-title::after`]:{background:Z.colorError},[`${ie}-disabled`]:{cursor:"not-allowed"}})},It=Z=>{const{componentCls:b,motionDurationSlow:R}=Z;return{[`& ${b}-item`]:{[`&:not(${b}-item-active)`]:{[`& > ${b}-item-container[role='button']`]:{cursor:"pointer",[`${b}-item`]:{[`&-title, &-subtitle, &-description, &-icon ${b}-icon`]:{transition:`color ${R}`}},"&:hover":{[`${b}-item`]:{["&-title, &-subtitle, &-description"]:{color:Z.colorPrimary}}}},[`&:not(${b}-item-process)`]:{[`& > ${b}-item-container[role='button']:hover`]:{[`${b}-item`]:{"&-icon":{borderColor:Z.colorPrimary,[`${b}-icon`]:{color:Z.colorPrimary}}}}}}},[`&${b}-horizontal:not(${b}-label-vertical)`]:{[`${b}-item`]:{paddingInlineStart:Z.padding,whiteSpace:"nowrap","&:first-child":{paddingInlineStart:0},[`&:last-child ${b}-item-title`]:{paddingInlineEnd:0},"&-tail":{display:"none"},"&-description":{maxWidth:Z.descriptionMaxWidth,whiteSpace:"normal"}}}}},bt=Z=>{const{componentCls:b}=Z;return{[b]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,Le.Wf)(Z)),{display:"flex",width:"100%",fontSize:0,textAlign:"initial"}),Ut(Z)),It(Z)),P(Z)),ht(Z)),pt(Z)),ue(Z)),U(Z)),Ke(Z)),me(Z)),Fe(Z)),ct(Z))}};var xt=(0,G.Z)("Steps",Z=>{const{wireframe:b,colorTextDisabled:R,controlHeightLG:ie,colorTextLightSolid:_,colorText:Xe,colorPrimary:it,colorTextLabel:Ct,colorTextDescription:Pt,colorTextQuaternary:Nt,colorFillContent:Vt,controlItemBgActive:kt,colorError:tt,colorBgContainer:dt,colorBorderSecondary:Ft,colorSplit:At}=Z,Lt=(0,st.TS)(Z,{processIconColor:_,processTitleColor:Xe,processDescriptionColor:Xe,processIconBgColor:it,processIconBorderColor:it,processDotColor:it,processTailColor:At,waitIconColor:b?R:Ct,waitTitleColor:Pt,waitDescriptionColor:Pt,waitTailColor:At,waitIconBgColor:b?dt:Vt,waitIconBorderColor:b?R:"transparent",waitDotColor:R,finishIconColor:it,finishTitleColor:Xe,finishDescriptionColor:Pt,finishTailColor:it,finishIconBgColor:b?dt:kt,finishIconBorderColor:b?it:kt,finishDotColor:it,errorIconColor:_,errorTitleColor:tt,errorDescriptionColor:tt,errorTailColor:At,errorIconBgColor:tt,errorIconBorderColor:tt,errorDotColor:tt,stepsNavActiveColor:it,stepsProgressSize:ie,inlineDotSize:6,inlineTitleColor:Nt,inlineTailColor:Ft});return[bt(Lt)]},Z=>{const{colorTextDisabled:b,fontSize:R,controlHeightSM:ie,controlHeight:_,controlHeightLG:Xe,fontSizeHeading3:it}=Z;return{titleLineHeight:_,customIconSize:_,customIconTop:0,customIconFontSize:ie,iconSize:_,iconTop:-.5,iconFontSize:R,iconSizeSM:it,dotSize:_/4,dotCurrentSize:Xe/4,navArrowColor:b,navContentMaxWidth:"auto",descriptionMaxWidth:140}}),ve=e(42156);function Ze(Z){return Z.filter(b=>b)}function Oe(Z,b){if(Z)return Z;const R=(0,ve.Z)(b).map(ie=>{if(M.isValidElement(ie)){const{props:_}=ie;return Object.assign({},_)}return null});return Ze(R)}var je=function(Z,b){var R={};for(var ie in Z)Object.prototype.hasOwnProperty.call(Z,ie)&&b.indexOf(ie)<0&&(R[ie]=Z[ie]);if(Z!=null&&typeof Object.getOwnPropertySymbols=="function")for(var _=0,ie=Object.getOwnPropertySymbols(Z);_{const{percent:b,size:R,className:ie,rootClassName:_,direction:Xe,items:it,responsive:Ct=!0,current:Pt=0,children:Nt,style:Vt}=Z,kt=je(Z,["percent","size","className","rootClassName","direction","items","responsive","current","children","style"]),{xs:tt}=(0,g.Z)(Ct),{getPrefixCls:dt,direction:Ft,steps:At}=M.useContext($e.E_),Lt=M.useMemo(()=>Ct&&tt?"vertical":Xe,[tt,Xe]),un=(0,z.Z)(R),Xt=dt("steps",Z.prefixCls),[pn,Sn]=xt(Xt),Gt=Z.type==="inline",an=dt("",Z.iconPrefix),ln=Oe(it,Nt),Pn=Gt?void 0:b,zn=Object.assign(Object.assign({},At==null?void 0:At.style),Vt),qn=T()(At==null?void 0:At.className,{[`${Xt}-rtl`]:Ft==="rtl",[`${Xt}-with-progress`]:Pn!==void 0},ie,_,Sn),yr={finish:M.createElement(i.Z,{className:`${Xt}-finish-icon`}),error:M.createElement(y.Z,{className:`${Xt}-error-icon`})},kn=qe=>{let{node:_e,status:re}=qe;if(re==="process"&&Pn!==void 0){const Y=un==="small"?32:40;return M.createElement("div",{className:`${Xt}-progress-icon`},M.createElement(Ve.Z,{type:"circle",percent:Pn,size:Y,strokeWidth:4,format:()=>null}),_e)}return _e},ae=(qe,_e)=>qe.description?M.createElement(Zt.Z,{title:qe.description},_e):_e;return pn(M.createElement(J,Object.assign({icons:yr},kt,{style:zn,current:Pt,size:un,items:ln,itemRender:Gt?ae:void 0,stepIcon:kn,direction:Lt,prefixCls:Xt,iconPrefix:an,className:qn})))};O.Step=J.Step;var Ae=O},2465:function(Dt,De,e){"use strict";e.d(De,{N:function(){return i}});const i=y=>({color:y.colorLink,textDecoration:"none",outline:"none",cursor:"pointer",transition:`color ${y.motionDurationSlow}`,"&:focus, &:hover":{color:y.colorLinkHover},"&:active":{color:y.colorLinkActive}})},2309:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return ct}});var i=e(25755),y=e(87608),I=e.n(y),T=e(60698),F=e(37734),H=e(28314),t=e(47075),j=e(58757),M=e(60409),Ce=e(29639),de=["prefixCls","className","checked","defaultChecked","disabled","loadingIcon","checkedChildren","unCheckedChildren","onClick","onChange","onKeyDown"],w=j.forwardRef(function(ee,ue){var se,Ke=ee.prefixCls,ot=Ke===void 0?"rc-switch":Ke,Fe=ee.className,ut=ee.checked,U=ee.defaultChecked,W=ee.disabled,me=ee.loadingIcon,he=ee.checkedChildren,ht=ee.unCheckedChildren,at=ee.onClick,pt=ee.onChange,ft=ee.onKeyDown,gt=(0,t.Z)(ee,de),Ut=(0,M.Z)(!1,{value:ut,defaultValue:U}),It=(0,H.Z)(Ut,2),bt=It[0],xt=It[1];function ve(O,Ae){var Z=bt;return W||(Z=O,xt(Z),pt==null||pt(Z,Ae)),Z}function Ze(O){O.which===Ce.Z.LEFT?ve(!1,O):O.which===Ce.Z.RIGHT&&ve(!0,O),ft==null||ft(O)}function Oe(O){var Ae=ve(!bt,O);at==null||at(Ae,O)}var je=I()(ot,Fe,(se={},(0,F.Z)(se,"".concat(ot,"-checked"),bt),(0,F.Z)(se,"".concat(ot,"-disabled"),W),se));return j.createElement("button",(0,T.Z)({},gt,{type:"button",role:"switch","aria-checked":bt,disabled:W,className:je,ref:ue,onKeyDown:Ze,onClick:Oe}),me,j.createElement("span",{className:"".concat(ot,"-inner")},j.createElement("span",{className:"".concat(ot,"-inner-checked")},he),j.createElement("span",{className:"".concat(ot,"-inner-unchecked")},ht)))});w.displayName="Switch";var K=w,ne=e(37486),f=e(61836),te=e(92428),A=e(58785),J=e(66671),$e=e(78330),z=e(52628),g=e(22151);const Ve=ee=>{const{componentCls:ue}=ee,se=`${ue}-inner`;return{[ue]:{[`&${ue}-small`]:{minWidth:ee.switchMinWidthSM,height:ee.switchHeightSM,lineHeight:`${ee.switchHeightSM}px`,[`${ue}-inner`]:{paddingInlineStart:ee.switchInnerMarginMaxSM,paddingInlineEnd:ee.switchInnerMarginMinSM,[`${se}-checked`]:{marginInlineStart:`calc(-100% + ${ee.switchPinSizeSM+ee.switchPadding*2}px - ${ee.switchInnerMarginMaxSM*2}px)`,marginInlineEnd:`calc(100% - ${ee.switchPinSizeSM+ee.switchPadding*2}px + ${ee.switchInnerMarginMaxSM*2}px)`},[`${se}-unchecked`]:{marginTop:-ee.switchHeightSM,marginInlineStart:0,marginInlineEnd:0}},[`${ue}-handle`]:{width:ee.switchPinSizeSM,height:ee.switchPinSizeSM},[`${ue}-loading-icon`]:{top:(ee.switchPinSizeSM-ee.switchLoadingIconSize)/2,fontSize:ee.switchLoadingIconSize},[`&${ue}-checked`]:{[`${ue}-inner`]:{paddingInlineStart:ee.switchInnerMarginMinSM,paddingInlineEnd:ee.switchInnerMarginMaxSM,[`${se}-checked`]:{marginInlineStart:0,marginInlineEnd:0},[`${se}-unchecked`]:{marginInlineStart:`calc(100% - ${ee.switchPinSizeSM+ee.switchPadding*2}px + ${ee.switchInnerMarginMaxSM*2}px)`,marginInlineEnd:`calc(-100% + ${ee.switchPinSizeSM+ee.switchPadding*2}px - ${ee.switchInnerMarginMaxSM*2}px)`}},[`${ue}-handle`]:{insetInlineStart:`calc(100% - ${ee.switchPinSizeSM+ee.switchPadding}px)`}},[`&:not(${ue}-disabled):active`]:{[`&:not(${ue}-checked) ${se}`]:{[`${se}-unchecked`]:{marginInlineStart:ee.marginXXS/2,marginInlineEnd:-ee.marginXXS/2}},[`&${ue}-checked ${se}`]:{[`${se}-checked`]:{marginInlineStart:-ee.marginXXS/2,marginInlineEnd:ee.marginXXS/2}}}}}}},Zt=ee=>{const{componentCls:ue}=ee;return{[ue]:{[`${ue}-loading-icon${ee.iconCls}`]:{position:"relative",top:(ee.switchPinSize-ee.fontSize)/2,color:ee.switchLoadingIconColor,verticalAlign:"top"},[`&${ue}-checked ${ue}-loading-icon`]:{color:ee.switchColor}}}},Le=ee=>{const{componentCls:ue,motion:se}=ee,Ke=`${ue}-handle`;return{[ue]:{[Ke]:{position:"absolute",top:ee.switchPadding,insetInlineStart:ee.switchPadding,width:ee.switchPinSize,height:ee.switchPinSize,transition:`all ${ee.switchDuration} ease-in-out`,"&::before":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,backgroundColor:ee.colorWhite,borderRadius:ee.switchPinSize/2,boxShadow:ee.switchHandleShadow,transition:`all ${ee.switchDuration} ease-in-out`,content:'""'}},[`&${ue}-checked ${Ke}`]:{insetInlineStart:`calc(100% - ${ee.switchPinSize+ee.switchPadding}px)`},[`&:not(${ue}-disabled):active`]:se?{[`${Ke}::before`]:{insetInlineEnd:ee.switchHandleActiveInset,insetInlineStart:0},[`&${ue}-checked ${Ke}::before`]:{insetInlineEnd:0,insetInlineStart:ee.switchHandleActiveInset}}:{}}}},G=ee=>{const{componentCls:ue}=ee,se=`${ue}-inner`;return{[ue]:{[se]:{display:"block",overflow:"hidden",borderRadius:100,height:"100%",paddingInlineStart:ee.switchInnerMarginMax,paddingInlineEnd:ee.switchInnerMarginMin,transition:`padding-inline-start ${ee.switchDuration} ease-in-out, padding-inline-end ${ee.switchDuration} ease-in-out`,[`${se}-checked, ${se}-unchecked`]:{display:"block",color:ee.colorTextLightSolid,fontSize:ee.fontSizeSM,transition:`margin-inline-start ${ee.switchDuration} ease-in-out, margin-inline-end ${ee.switchDuration} ease-in-out`,pointerEvents:"none"},[`${se}-checked`]:{marginInlineStart:`calc(-100% + ${ee.switchPinSize+ee.switchPadding*2}px - ${ee.switchInnerMarginMax*2}px)`,marginInlineEnd:`calc(100% - ${ee.switchPinSize+ee.switchPadding*2}px + ${ee.switchInnerMarginMax*2}px)`},[`${se}-unchecked`]:{marginTop:-ee.switchHeight,marginInlineStart:0,marginInlineEnd:0}},[`&${ue}-checked ${se}`]:{paddingInlineStart:ee.switchInnerMarginMin,paddingInlineEnd:ee.switchInnerMarginMax,[`${se}-checked`]:{marginInlineStart:0,marginInlineEnd:0},[`${se}-unchecked`]:{marginInlineStart:`calc(100% - ${ee.switchPinSize+ee.switchPadding*2}px + ${ee.switchInnerMarginMax*2}px)`,marginInlineEnd:`calc(-100% + ${ee.switchPinSize+ee.switchPadding*2}px - ${ee.switchInnerMarginMax*2}px)`}},[`&:not(${ue}-disabled):active`]:{[`&:not(${ue}-checked) ${se}`]:{[`${se}-unchecked`]:{marginInlineStart:ee.switchPadding*2,marginInlineEnd:-ee.switchPadding*2}},[`&${ue}-checked ${se}`]:{[`${se}-checked`]:{marginInlineStart:-ee.switchPadding*2,marginInlineEnd:ee.switchPadding*2}}}}}},st=ee=>{const{componentCls:ue}=ee;return{[ue]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,$e.Wf)(ee)),{position:"relative",display:"inline-block",boxSizing:"border-box",minWidth:ee.switchMinWidth,height:ee.switchHeight,lineHeight:`${ee.switchHeight}px`,verticalAlign:"middle",background:ee.colorTextQuaternary,border:"0",borderRadius:100,cursor:"pointer",transition:`all ${ee.motionDurationMid}`,userSelect:"none",[`&:hover:not(${ue}-disabled)`]:{background:ee.colorTextTertiary}}),(0,$e.Qy)(ee)),{[`&${ue}-checked`]:{background:ee.switchColor,[`&:hover:not(${ue}-disabled)`]:{background:ee.colorPrimaryHover}},[`&${ue}-loading, &${ue}-disabled`]:{cursor:"not-allowed",opacity:ee.switchDisabledOpacity,"*":{boxShadow:"none",cursor:"not-allowed"}},[`&${ue}-rtl`]:{direction:"rtl"}})}};var Me=(0,z.Z)("Switch",ee=>{const ue=ee.fontSize*ee.lineHeight,se=ee.controlHeight/2,Ke=2,ot=ue-Ke*2,Fe=se-Ke*2,ut=(0,g.TS)(ee,{switchMinWidth:ot*2+Ke*4,switchHeight:ue,switchDuration:ee.motionDurationMid,switchColor:ee.colorPrimary,switchDisabledOpacity:ee.opacityLoading,switchInnerMarginMin:ot/2,switchInnerMarginMax:ot+Ke+Ke*2,switchPadding:Ke,switchPinSize:ot,switchBg:ee.colorBgContainer,switchMinWidthSM:Fe*2+Ke*2,switchHeightSM:se,switchInnerMarginMinSM:Fe/2,switchInnerMarginMaxSM:Fe+Ke+Ke*2,switchPinSizeSM:Fe,switchHandleShadow:`0 2px 4px 0 ${new J.C("#00230b").setAlpha(.2).toRgbString()}`,switchLoadingIconSize:ee.fontSizeIcon*.75,switchLoadingIconColor:`rgba(0, 0, 0, ${ee.opacityLoading})`,switchHandleActiveInset:"-30%"});return[st(ut),G(ut),Le(ut),Zt(ut),Ve(ut)]}),P=function(ee,ue){var se={};for(var Ke in ee)Object.prototype.hasOwnProperty.call(ee,Ke)&&ue.indexOf(Ke)<0&&(se[Ke]=ee[Ke]);if(ee!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ot=0,Ke=Object.getOwnPropertySymbols(ee);ot{const{prefixCls:se,size:Ke,disabled:ot,loading:Fe,className:ut,rootClassName:U,style:W}=ee,me=P(ee,["prefixCls","size","disabled","loading","className","rootClassName","style"]),{getPrefixCls:he,direction:ht,switch:at}=j.useContext(f.E_),pt=j.useContext(te.Z),ft=(ot!=null?ot:pt)||Fe,gt=he("switch",se),Ut=j.createElement("div",{className:`${gt}-handle`},Fe&&j.createElement(i.Z,{className:`${gt}-loading-icon`})),[It,bt]=Me(gt),xt=(0,A.Z)(Ke),ve=I()(at==null?void 0:at.className,{[`${gt}-small`]:xt==="small",[`${gt}-loading`]:Fe,[`${gt}-rtl`]:ht==="rtl"},ut,U,bt),Ze=Object.assign(Object.assign({},at==null?void 0:at.style),W);return It(j.createElement(ne.Z,{component:"Switch"},j.createElement(K,Object.assign({},me,{prefixCls:gt,className:ve,style:Ze,disabled:ft,ref:ue,loadingIcon:Ut}))))});Re.__ANT_SWITCH=!0;var ct=Re},27982:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return y}});var i=e(58757);function y(I,T,F){const H=i.useRef({});function t(j){if(!H.current||H.current.data!==I||H.current.childrenColumnName!==T||H.current.getRowKey!==F){let Ce=function(de){de.forEach((w,K)=>{const ne=F(w,K);M.set(ne,w),w&&typeof w=="object"&&T in w&&Ce(w[T]||[])})};const M=new Map;Ce(I),H.current={data:I,childrenColumnName:T,kvMap:M,getRowKey:F}}return H.current.kvMap.get(j)}return[t]}},93935:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return xl}});var i={},y="rc-table-internal-hook",I=e(28314),T=e(51729),F=e(81334),H=e(7637),t=e(58757),j=e(26736);function M(C){var E=t.createContext(void 0),le=function(ke){var Te=ke.value,Et=ke.children,Mt=t.useRef(Te);Mt.current=Te;var $t=t.useState(function(){return{getValue:function(){return Mt.current},listeners:new Set}}),Kt=(0,I.Z)($t,1),gn=Kt[0];return(0,F.Z)(function(){(0,j.unstable_batchedUpdates)(function(){gn.listeners.forEach(function(Yt){Yt(Te)})})},[Te]),t.createElement(E.Provider,{value:gn},Et)};return{Context:E,Provider:le,defaultValue:C}}function Ce(C,E){var le=(0,T.Z)(typeof E=="function"?E:function(Yt){if(E===void 0)return Yt;if(!Array.isArray(E))return Yt[E];var Rn={};return E.forEach(function(In){Rn[In]=Yt[In]}),Rn}),ce=t.useContext(C==null?void 0:C.Context),ke=ce||{},Te=ke.listeners,Et=ke.getValue,Mt=t.useRef();Mt.current=le(ce?Et():C==null?void 0:C.defaultValue);var $t=t.useState({}),Kt=(0,I.Z)($t,2),gn=Kt[1];return(0,F.Z)(function(){if(!ce)return;function Yt(Rn){var In=le(Rn);(0,H.Z)(Mt.current,In,!0)||gn({})}return Te.add(Yt),function(){Te.delete(Yt)}},[ce]),Mt.current}var de=e(60698),w=e(21319);function K(){var C=t.createContext(null);function E(){return t.useContext(C)}function le(ke,Te){var Et=(0,w.Yr)(ke),Mt=function(Kt,gn){var Yt=Et?{ref:gn}:{},Rn=t.useRef(0),In=t.useRef(Kt),vn=E();return vn!==null?t.createElement(ke,(0,de.Z)({},Kt,Yt)):((!Te||Te(In.current,Kt))&&(Rn.current+=1),In.current=Kt,t.createElement(C.Provider,{value:Rn.current},t.createElement(ke,(0,de.Z)({},Kt,Yt))))};return Et?t.forwardRef(Mt):Mt}function ce(ke,Te){var Et=(0,w.Yr)(ke),Mt=function(Kt,gn){var Yt=Et?{ref:gn}:{};return E(),t.createElement(ke,(0,de.Z)({},Kt,Yt))};return Et?t.memo(t.forwardRef(Mt),Te):t.memo(Mt,Te)}return{makeImmutable:le,responseImmutable:ce,useImmutableMark:E}}var ne=K(),f=ne.makeImmutable,te=ne.responseImmutable,A=ne.useImmutableMark,J=M(),$e=J;function z(C,E){var le=t.useRef(0);le.current+=1;var ce=t.useRef(C),ke=[];Object.keys(C||{}).map(function(Et){var Mt;(C==null?void 0:C[Et])!==((Mt=ce.current)===null||Mt===void 0?void 0:Mt[Et])&&ke.push(Et)}),ce.current=C;var Te=t.useRef([]);return ke.length&&(Te.current=ke),t.useDebugValue(le.current),t.useDebugValue(Te.current.join(", ")),E&&console.log("".concat(E,":"),le.current,Te.current),le.current}var g=null,Ve=t.memo(function(){var C=z();return t.createElement("h1",null,"Render Times: ",C)});Ve.displayName="RenderBlock";var Zt=e(38790),Le=e(57370),G=e(37734),st=e(87608),Me=e.n(st),P=e(27903),Re=e(3187),ct=e(75556),ee=t.createContext({renderWithProps:!1}),ue=ee,se="RC_TABLE_KEY";function Ke(C){return C==null?[]:Array.isArray(C)?C:[C]}function ot(C){var E=[],le={};return C.forEach(function(ce){for(var ke=ce||{},Te=ke.key,Et=ke.dataIndex,Mt=Te||Ke(Et).join("-")||se;le[Mt];)Mt="".concat(Mt,"_next");le[Mt]=!0,E.push(Mt)}),E}function Fe(C){return C!=null}function ut(C){return C&&(0,Zt.Z)(C)==="object"&&!Array.isArray(C)&&!t.isValidElement(C)}function U(C,E,le,ce,ke,Te){var Et=t.useContext(ue),Mt=A(),$t=(0,P.Z)(function(){if(Fe(ce))return[ce];var Kt=E==null||E===""?[]:Array.isArray(E)?E:[E],gn=(0,Re.Z)(C,Kt),Yt=gn,Rn=void 0;if(ke){var In=ke(gn,C,le);ut(In)?(Yt=In.children,Rn=In.props,Et.renderWithProps=!0):Yt=In}return[Yt,Rn]},[Mt,C,ce,E,ke,le],function(Kt,gn){if(Te){var Yt=(0,I.Z)(Kt,2),Rn=Yt[1],In=(0,I.Z)(gn,2),vn=In[1];return Te(vn,Rn)}return Et.renderWithProps?!0:!(0,H.Z)(Kt,gn,!0)});return $t}function W(C,E,le,ce){var ke=C+E-1;return C<=ce&&ke>=le}function me(C,E){return Ce($e,function(le){var ce=W(C,E||1,le.hoverStartRow,le.hoverEndRow);return[ce,le.onHover]})}var he=function(E){var le=E.ellipsis,ce=E.rowType,ke=E.children,Te,Et=le===!0?{showTitle:!0}:le;return Et&&(Et.showTitle||ce==="header")&&(typeof ke=="string"||typeof ke=="number"?Te=ke.toString():t.isValidElement(ke)&&typeof ke.props.children=="string"&&(Te=ke.props.children)),Te};function ht(C){var E,le,ce,ke,Te,Et,Mt,$t,Kt=C.component,gn=C.children,Yt=C.ellipsis,Rn=C.scope,In=C.prefixCls,vn=C.className,on=C.align,$n=C.record,An=C.render,sr=C.dataIndex,mr=C.renderIndex,go=C.shouldCellUpdate,Er=C.index,xr=C.rowType,lo=C.colSpan,Io=C.rowSpan,Qr=C.fixLeft,vo=C.fixRight,ho=C.firstFixLeft,cr=C.lastFixLeft,Kr=C.firstFixRight,yo=C.lastFixRight,ga=C.appendNode,Fo=C.additionalProps,eo=Fo===void 0?{}:Fo,Jo=C.isSticky,bo="".concat(In,"-cell"),ta=Ce($e,["supportSticky","allColumnsFixedLeft"]),po=ta.supportSticky,Ya=ta.allColumnsFixedLeft,Bi=U($n,sr,mr,gn,An,go),Ma=(0,I.Z)(Bi,2),hi=Ma[0],Mo=Ma[1],aa={},Oi=typeof Qr=="number"&&po,da=typeof vo=="number"&&po;Oi&&(aa.position="sticky",aa.left=Qr),da&&(aa.position="sticky",aa.right=vo);var Eo=(E=(le=(ce=Mo==null?void 0:Mo.colSpan)!==null&&ce!==void 0?ce:eo.colSpan)!==null&&le!==void 0?le:lo)!==null&&E!==void 0?E:1,so=(ke=(Te=(Et=Mo==null?void 0:Mo.rowSpan)!==null&&Et!==void 0?Et:eo.rowSpan)!==null&&Te!==void 0?Te:Io)!==null&&ke!==void 0?ke:1,hr=me(Er,so),ir=(0,I.Z)(hr,2),Dr=ir[0],tr=ir[1],no=function(yi){var oi;$n&&tr(Er,Er+so-1),eo==null||(oi=eo.onMouseEnter)===null||oi===void 0||oi.call(eo,yi)},Xo=function(yi){var oi;$n&&tr(-1,-1),eo==null||(oi=eo.onMouseLeave)===null||oi===void 0||oi.call(eo,yi)};if(Eo===0||so===0)return null;var ba=(Mt=eo.title)!==null&&Mt!==void 0?Mt:he({rowType:xr,ellipsis:Yt,children:hi}),pi=Me()(bo,vn,($t={},(0,G.Z)($t,"".concat(bo,"-fix-left"),Oi&&po),(0,G.Z)($t,"".concat(bo,"-fix-left-first"),ho&&po),(0,G.Z)($t,"".concat(bo,"-fix-left-last"),cr&&po),(0,G.Z)($t,"".concat(bo,"-fix-left-all"),cr&&Ya&&po),(0,G.Z)($t,"".concat(bo,"-fix-right"),da&&po),(0,G.Z)($t,"".concat(bo,"-fix-right-first"),Kr&&po),(0,G.Z)($t,"".concat(bo,"-fix-right-last"),yo&&po),(0,G.Z)($t,"".concat(bo,"-ellipsis"),Yt),(0,G.Z)($t,"".concat(bo,"-with-append"),ga),(0,G.Z)($t,"".concat(bo,"-fix-sticky"),(Oi||da)&&Jo&&po),(0,G.Z)($t,"".concat(bo,"-row-hover"),!Mo&&Dr),$t),eo.className,Mo==null?void 0:Mo.className),ti={};on&&(ti.textAlign=on);var Fl=(0,Le.Z)((0,Le.Z)((0,Le.Z)((0,Le.Z)({},eo.style),ti),aa),Mo==null?void 0:Mo.style),wa=hi;return(0,Zt.Z)(wa)==="object"&&!Array.isArray(wa)&&!t.isValidElement(wa)&&(wa=null),Yt&&(cr||Kr)&&(wa=t.createElement("span",{className:"".concat(bo,"-content")},wa)),t.createElement(Kt,(0,de.Z)({},Mo,eo,{className:pi,style:Fl,title:ba,scope:Rn,onMouseEnter:no,onMouseLeave:Xo,colSpan:Eo!==1?Eo:null,rowSpan:so!==1?so:null}),ga,wa)}var at=t.memo(ht);function pt(C,E,le,ce,ke,Te){var Et=le[C]||{},Mt=le[E]||{},$t,Kt;Et.fixed==="left"?$t=ce.left[ke==="rtl"?E:C]:Mt.fixed==="right"&&(Kt=ce.right[ke==="rtl"?C:E]);var gn=!1,Yt=!1,Rn=!1,In=!1,vn=le[E+1],on=le[C-1],$n=!(Te!=null&&Te.children);if(ke==="rtl"){if($t!==void 0){var An=on&&on.fixed==="left";In=!An&&$n}else if(Kt!==void 0){var sr=vn&&vn.fixed==="right";Rn=!sr&&$n}}else if($t!==void 0){var mr=vn&&vn.fixed==="left";gn=!mr&&$n}else if(Kt!==void 0){var go=on&&on.fixed==="right";Yt=!go&&$n}return{fixLeft:$t,fixRight:Kt,lastFixLeft:gn,firstFixRight:Yt,lastFixRight:Rn,firstFixLeft:In,isSticky:ce.isSticky}}var ft=t.createContext({}),gt=ft;function Ut(C){var E=C.className,le=C.index,ce=C.children,ke=C.colSpan,Te=ke===void 0?1:ke,Et=C.rowSpan,Mt=C.align,$t=Ce($e,["prefixCls","direction"]),Kt=$t.prefixCls,gn=$t.direction,Yt=t.useContext(gt),Rn=Yt.scrollColumnIndex,In=Yt.stickyOffsets,vn=Yt.flattenColumns,on=Yt.columns,$n=le+Te-1,An=$n+1===Rn?Te+1:Te,sr=pt(le,le+An-1,vn,In,gn,on==null?void 0:on[le]);return t.createElement(at,(0,de.Z)({className:E,index:le,component:"td",prefixCls:Kt,record:null,dataIndex:null,align:Mt,colSpan:An,rowSpan:Et,render:function(){return ce}},sr))}var It=e(47075),bt=["children"];function xt(C){var E=C.children,le=(0,It.Z)(C,bt);return t.createElement("tr",le,E)}function ve(C){var E=C.children;return E}ve.Row=xt,ve.Cell=Ut;var Ze=ve;function Oe(C){var E=C.children,le=C.stickyOffsets,ce=C.flattenColumns,ke=C.columns,Te=Ce($e,"prefixCls"),Et=ce.length-1,Mt=ce[Et],$t=t.useMemo(function(){return{stickyOffsets:le,flattenColumns:ce,scrollColumnIndex:Mt!=null&&Mt.scrollbar?Et:null,columns:ke}},[Mt,ce,Et,le,ke]);return t.createElement(gt.Provider,{value:$t},t.createElement("tfoot",{className:"".concat(Te,"-summary")},E))}var je=te(Oe),O=Ze,Ae=e(19425),Z=e(46499),b=e(91923),R=e(17502),ie=e(33926),_=e(29140);function Xe(C,E,le,ce,ke,Te){var Et=[];Et.push({record:C,indent:E,index:Te});var Mt=ke(C),$t=ce==null?void 0:ce.has(Mt);if(C&&Array.isArray(C[le])&&$t)for(var Kt=0;Kt1?tr-1:0),Xo=1;Xo=0;Mt-=1){var $t=E[Mt],Kt=le&&le[Mt],gn=Kt&&Kt[Lt];if($t||gn||Et){var Yt=gn||{},Rn=Yt.columnType,In=(0,It.Z)(Yt,Xt);ke.unshift(t.createElement("col",(0,de.Z)({key:Mt,style:{width:$t}},In))),Et=!0}}return t.createElement("colgroup",null,ke)}var Sn=pn,Gt=["className","noData","columns","flattenColumns","colWidths","columCount","stickyOffsets","direction","fixHeader","stickyTopOffset","stickyBottomOffset","stickyClassName","onScroll","maxContentScroll","children"];function an(C,E){return(0,t.useMemo)(function(){for(var le=[],ce=0;ce=0})},[Te]),vo=Te[Te.length-1],ho={fixed:vo?vo.fixed:null,scrollbar:!0,onHeaderCell:function(){return{className:"".concat(mr,"-cell-scrollbar")}}},cr=(0,t.useMemo)(function(){return xr?[].concat((0,_.Z)(ke),[ho]):ke},[xr,ke]),Kr=(0,t.useMemo)(function(){return xr?[].concat((0,_.Z)(Te),[ho]):Te},[xr,Te]),yo=(0,t.useMemo)(function(){var Fo=$t.right,eo=$t.left;return(0,Le.Z)((0,Le.Z)({},$t),{},{left:Kt==="rtl"?[].concat((0,_.Z)(eo.map(function(Jo){return Jo+xr})),[0]):eo,right:Kt==="rtl"?Fo:[].concat((0,_.Z)(Fo.map(function(Jo){return Jo+xr})),[0]),isSticky:Er})},[xr,$t,Er]),ga=an(Et,Mt);return t.createElement("div",{style:(0,Le.Z)({overflow:"hidden"},Er?{top:Yt,bottom:Rn}:{}),ref:Io,className:Me()(le,(0,G.Z)({},In,!!In))},t.createElement("table",{style:{tableLayout:"fixed",visibility:ce||ga?null:"hidden"}},(!ce||!on||Qr)&&t.createElement(Sn,{colWidths:ga?[].concat((0,_.Z)(ga),[xr]):[],columCount:Mt+1,columns:Kr}),$n((0,Le.Z)((0,Le.Z)({},An),{},{stickyOffsets:yo,columns:cr,flattenColumns:Kr}))))});ln.displayName="FixedHolder";var Pn=t.memo(ln);function zn(C){var E=C.cells,le=C.stickyOffsets,ce=C.flattenColumns,ke=C.rowComponent,Te=C.cellComponent,Et=C.tdCellComponent,Mt=C.onHeaderRow,$t=C.index,Kt=Ce($e,["prefixCls","direction"]),gn=Kt.prefixCls,Yt=Kt.direction,Rn;Mt&&(Rn=Mt(E.map(function(vn){return vn.column}),$t));var In=ot(E.map(function(vn){return vn.column}));return t.createElement(ke,Rn,E.map(function(vn,on){var $n=vn.column,An=pt(vn.colStart,vn.colEnd,ce,le,Yt,$n),sr;return $n&&$n.onHeaderCell&&(sr=vn.column.onHeaderCell($n)),t.createElement(at,(0,de.Z)({},vn,{scope:$n.title?vn.colSpan>1?"colgroup":"col":null,ellipsis:$n.ellipsis,align:$n.align,component:$n.title?Te:Et,prefixCls:gn,key:In[on]},An,{additionalProps:sr,rowType:"header"}))}))}zn.displayName="HeaderRow";var qn=zn;function yr(C){var E=[];function le(Et,Mt){var $t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;E[$t]=E[$t]||[];var Kt=Mt,gn=Et.filter(Boolean).map(function(Yt){var Rn={key:Yt.key,className:Yt.className||"",children:Yt.title,column:Yt,colStart:Kt},In=1,vn=Yt.children;return vn&&vn.length>0&&(In=le(vn,Kt,$t+1).reduce(function(on,$n){return on+$n},0),Rn.hasSubColumns=!0),"colSpan"in Yt&&(In=Yt.colSpan),"rowSpan"in Yt&&(Rn.rowSpan=Yt.rowSpan),Rn.colSpan=In,Rn.colEnd=Rn.colStart+In-1,E[$t].push(Rn),Kt+=In,In});return gn}le(C,0);for(var ce=E.length,ke=function(Mt){E[Mt].forEach(function($t){!("rowSpan"in $t)&&!$t.hasSubColumns&&($t.rowSpan=ce-Mt)})},Te=0;Te0?[].concat((0,_.Z)(E),(0,_.Z)(Be(Te).map(function(Et){return(0,Le.Z)({fixed:ke},Et)}))):[].concat((0,_.Z)(E),[(0,Le.Z)((0,Le.Z)({},le),{},{fixed:ke})])},[])}function we(C){for(var E=!0,le=0;le=0;Te-=1){var Et=C[Te];if(ke&&Et.fixed!=="right")ke=!1;else if(!ke&&Et.fixed==="right"){warning(!1,"Index ".concat(Te+1," of `columns` missing `fixed='right'` prop."));break}}}function vt(C){return C.map(function(E){var le=E.fixed,ce=(0,It.Z)(E,re),ke=le;return le==="left"?ke="right":le==="right"&&(ke="left"),(0,Le.Z)({fixed:ke},ce)})}function Se(C,E){var le=C.prefixCls,ce=C.columns,ke=C.children,Te=C.expandable,Et=C.expandedKeys,Mt=C.columnTitle,$t=C.getRowKey,Kt=C.onTriggerExpand,gn=C.expandIcon,Yt=C.rowExpandable,Rn=C.expandIconColumnIndex,In=C.direction,vn=C.expandRowByClick,on=C.columnWidth,$n=C.fixed,An=t.useMemo(function(){return ce||Y(ke)},[ce,ke]),sr=t.useMemo(function(){if(Te){var Er,xr=An.slice();if(!xr.includes(i)){var lo=Rn||0;lo>=0&&xr.splice(lo,0,i)}var Io=xr.indexOf(i);xr=xr.filter(function(cr,Kr){return cr!==i||Kr===Io});var Qr=An[Io],vo;($n==="left"||$n)&&!Rn?vo="left":($n==="right"||$n)&&Rn===An.length?vo="right":vo=Qr?Qr.fixed:null;var ho=(Er={},(0,G.Z)(Er,Lt,{className:"".concat(le,"-expand-icon-col"),columnType:"EXPAND_COLUMN"}),(0,G.Z)(Er,"title",Mt),(0,G.Z)(Er,"fixed",vo),(0,G.Z)(Er,"className","".concat(le,"-row-expand-icon-cell")),(0,G.Z)(Er,"width",on),(0,G.Z)(Er,"render",function(Kr,yo,ga){var Fo=$t(yo,ga),eo=Et.has(Fo),Jo=Yt?Yt(yo):!0,bo=gn({prefixCls:le,expanded:eo,expandable:Jo,record:yo,onExpand:Kt});return vn?t.createElement("span",{onClick:function(po){return po.stopPropagation()}},bo):bo}),Er);return xr.map(function(cr){return cr===i?ho:cr})}return An.filter(function(cr){return cr!==i})},[Te,An,$t,Et,gn,In]),mr=t.useMemo(function(){var Er=sr;return E&&(Er=E(Er)),Er.length||(Er=[{render:function(){return null}}]),Er},[E,sr,In]),go=t.useMemo(function(){return In==="rtl"?vt(Be(mr)):Be(mr)},[mr,In]);return[mr,go]}var X=Se;function Ne(C){var E,le=C.prefixCls,ce=C.record,ke=C.onExpand,Te=C.expanded,Et=C.expandable,Mt="".concat(le,"-row-expand-icon");if(!Et)return t.createElement("span",{className:Me()(Mt,"".concat(le,"-row-spaced"))});var $t=function(gn){ke(ce,gn),gn.stopPropagation()};return t.createElement("span",{className:Me()(Mt,(E={},(0,G.Z)(E,"".concat(le,"-row-expanded"),Te),(0,G.Z)(E,"".concat(le,"-row-collapsed"),!Te),E)),onClick:$t})}function St(C,E,le){var ce=[];function ke(Te){(Te||[]).forEach(function(Et,Mt){ce.push(E(Et,Mt)),ke(Et[le])})}return ke(C),ce}function xe(C,E,le){var ce=un(C),ke=ce.expandIcon,Te=ce.expandedRowKeys,Et=ce.defaultExpandedRowKeys,Mt=ce.defaultExpandAllRows,$t=ce.expandedRowRender,Kt=ce.onExpand,gn=ce.onExpandedRowsChange,Yt=ce.childrenColumnName,Rn=ke||Ne,In=Yt||"children",vn=t.useMemo(function(){return $t?"row":C.expandable&&C.internalHooks===y&&C.expandable.__PARENT_RENDER_ICON__||E.some(function(Er){return Er&&(0,Zt.Z)(Er)==="object"&&Er[In]})?"nest":!1},[!!$t,E]),on=t.useState(function(){return Et||(Mt?St(E,le,In):[])}),$n=(0,I.Z)(on,2),An=$n[0],sr=$n[1],mr=t.useMemo(function(){return new Set(Te||An||[])},[Te,An]),go=t.useCallback(function(Er){var xr=le(Er,E.indexOf(Er)),lo,Io=mr.has(xr);Io?(mr.delete(xr),lo=(0,_.Z)(mr)):lo=[].concat((0,_.Z)(mr),[xr]),sr(lo),Kt&&Kt(!Io,Er),gn&&gn(lo)},[le,mr,E,Kt,gn]);return[ce,vn,mr,Rn,In,go]}function fe(C,E,le,ce){var ke=C.map(function(Te,Et){return pt(Et,Et,C,E,le,ce==null?void 0:ce[Et])});return(0,P.Z)(function(){return ke},[ke],function(Te,Et){return!(0,H.Z)(Te,Et)})}function L(C){var E=(0,t.useRef)(C),le=(0,t.useState)({}),ce=(0,I.Z)(le,2),ke=ce[1],Te=(0,t.useRef)(null),Et=(0,t.useRef)([]);function Mt($t){Et.current.push($t);var Kt=Promise.resolve();Te.current=Kt,Kt.then(function(){if(Te.current===Kt){var gn=Et.current,Yt=E.current;Et.current=[],gn.forEach(function(Rn){E.current=Rn(E.current)}),Te.current=null,Yt!==E.current&&ke({})}})}return(0,t.useEffect)(function(){return function(){Te.current=null}},[]),[E.current,Mt]}function D(C){var E=(0,t.useRef)(C||null),le=(0,t.useRef)();function ce(){window.clearTimeout(le.current)}function ke(Et){E.current=Et,ce(),le.current=window.setTimeout(function(){E.current=null,le.current=void 0},100)}function Te(){return E.current}return(0,t.useEffect)(function(){return ce},[]),[ke,Te]}function x(){var C=t.useState(-1),E=(0,I.Z)(C,2),le=E[0],ce=E[1],ke=t.useState(-1),Te=(0,I.Z)(ke,2),Et=Te[0],Mt=Te[1],$t=t.useCallback(function(Kt,gn){ce(Kt),Mt(gn)},[]);return[le,Et,$t]}var oe=e(19075),be=(0,oe.Z)()?window:null;function Ie(C,E){var le=(0,Zt.Z)(C)==="object"?C:{},ce=le.offsetHeader,ke=ce===void 0?0:ce,Te=le.offsetSummary,Et=Te===void 0?0:Te,Mt=le.offsetScroll,$t=Mt===void 0?0:Mt,Kt=le.getContainer,gn=Kt===void 0?function(){return be}:Kt,Yt=gn()||be;return t.useMemo(function(){var Rn=!!C;return{isSticky:Rn,stickyClassName:Rn?"".concat(E,"-sticky-holder"):"",offsetHeader:ke,offsetSummary:Et,offsetScroll:$t,container:Yt}},[$t,ke,Et,E,Yt])}function Ye(C,E,le){var ce=(0,t.useMemo)(function(){for(var ke=[],Te=[],Et=0,Mt=0,$t=0;$t=Yt&&(eo=Yt-Rn),Et({scrollLeft:eo/Yt*(gn+2)}),sr.current.x=Kr.pageX},vo=function(){if(Te.current){var Kr=(0,Cn.os)(Te.current).top,yo=Kr+Te.current.offsetHeight,ga=$t===window?document.documentElement.scrollTop+window.innerHeight:(0,Cn.os)($t).top+$t.clientHeight;yo-(0,R.Z)()<=ga||Kr>=ga-Mt?An(function(Fo){return(0,Le.Z)((0,Le.Z)({},Fo),{},{isHiddenScrollBar:!0})}):An(function(Fo){return(0,Le.Z)((0,Le.Z)({},Fo),{},{isHiddenScrollBar:!1})})}},ho=function(Kr){An(function(yo){return(0,Le.Z)((0,Le.Z)({},yo),{},{scrollLeft:Kr/gn*Yt||0})})};return t.useImperativeHandle(le,function(){return{setScrollLeft:ho}}),t.useEffect(function(){var cr=(0,mt.Z)(document.body,"mouseup",lo,!1),Kr=(0,mt.Z)(document.body,"mousemove",Qr,!1);return vo(),function(){cr.remove(),Kr.remove()}},[Rn,Er]),t.useEffect(function(){var cr=(0,mt.Z)($t,"scroll",vo,!1),Kr=(0,mt.Z)(window,"resize",vo,!1);return function(){cr.remove(),Kr.remove()}},[$t]),t.useEffect(function(){$n.isHiddenScrollBar||An(function(cr){var Kr=Te.current;return Kr?(0,Le.Z)((0,Le.Z)({},cr),{},{scrollLeft:Kr.scrollLeft/Kr.scrollWidth*Kr.clientWidth}):cr})},[$n.isHiddenScrollBar]),gn<=Yt||!Rn||$n.isHiddenScrollBar?null:t.createElement("div",{style:{height:(0,R.Z)(),width:Yt,bottom:Mt},className:"".concat(Kt,"-sticky-scroll")},t.createElement("div",{onMouseDown:Io,ref:In,className:Me()("".concat(Kt,"-sticky-scroll-bar"),(0,G.Z)({},"".concat(Kt,"-sticky-scroll-bar-active"),Er)),style:{width:"".concat(Rn,"px"),transform:"translate3d(".concat($n.scrollLeft,"px, 0, 0)")}}))},wt=t.forwardRef(bn);function fn(C){return null}var zt=fn;function cn(C){return null}var yn=cn,Fn=[],Yn={};function Zn(){return"No Data"}function Kn(C){var E,le=(0,Le.Z)({rowKey:"key",prefixCls:"rc-table",emptyText:Zn},C),ce=le.prefixCls,ke=le.className,Te=le.rowClassName,Et=le.style,Mt=le.data,$t=le.rowKey,Kt=le.scroll,gn=le.tableLayout,Yt=le.direction,Rn=le.title,In=le.footer,vn=le.summary,on=le.caption,$n=le.id,An=le.showHeader,sr=le.components,mr=le.emptyText,go=le.onRow,Er=le.onHeaderRow,xr=le.internalHooks,lo=le.transformColumns,Io=le.internalRefs,Qr=le.sticky,vo=Mt||Fn,ho=!!vo.length,cr=t.useCallback(function(N,q){return(0,Re.Z)(sr,N)||q},[sr]),Kr=t.useMemo(function(){return typeof $t=="function"?$t:function(N){var q=N&&N[$t];return q}},[$t]),yo=x(),ga=(0,I.Z)(yo,3),Fo=ga[0],eo=ga[1],Jo=ga[2],bo=xe(le,vo,Kr),ta=(0,I.Z)(bo,6),po=ta[0],Ya=ta[1],Bi=ta[2],Ma=ta[3],hi=ta[4],Mo=ta[5],aa=t.useState(0),Oi=(0,I.Z)(aa,2),da=Oi[0],Eo=Oi[1],so=X((0,Le.Z)((0,Le.Z)((0,Le.Z)({},le),po),{},{expandable:!!po.expandedRowRender,columnTitle:po.columnTitle,expandedKeys:Bi,getRowKey:Kr,onTriggerExpand:Mo,expandIcon:Ma,expandIconColumnIndex:po.expandIconColumnIndex,direction:Yt}),xr===y?lo:null),hr=(0,I.Z)(so,2),ir=hr[0],Dr=hr[1],tr=t.useMemo(function(){return{columns:ir,flattenColumns:Dr}},[ir,Dr]),no=t.useRef(),Xo=t.useRef(),ba=t.useRef(),pi=t.useRef(),ti=t.useRef(),Fl=t.useState(!1),wa=(0,I.Z)(Fl,2),wl=wa[0],yi=wa[1],oi=t.useState(!1),Il=(0,I.Z)(oi,2),Bo=Il[0],ha=Il[1],Ea=L(new Map),ai=(0,I.Z)(Ea,2),Wo=ai[0],Na=ai[1],ci=ot(Dr),Zi=ci.map(function(N){return Wo.get(N)}),Qi=t.useMemo(function(){return Zi},[Zi.join("_")]),dl=Ue(Qi,Dr.length,Yt),_a=Kt&&Fe(Kt.y),Ui=Kt&&Fe(Kt.x)||!!po.fixed,ki=Ui&&Dr.some(function(N){var q=N.fixed;return q}),ul=t.useRef(),Ci=Ie(Qr,ce),ii=Ci.isSticky,fl=Ci.offsetHeader,Ri=Ci.offsetSummary,zi=Ci.offsetScroll,No=Ci.stickyClassName,Ta=Ci.container,Fa=t.useMemo(function(){return vn==null?void 0:vn(vo)},[vn,vo]),Ua=(_a||ii)&&t.isValidElement(Fa)&&Fa.type===Ze&&Fa.props.fixed,li,Ji,qi;_a&&(Ji={overflowY:"scroll",maxHeight:Kt.y}),Ui&&(li={overflowX:"auto"},_a||(Ji={overflowY:"hidden"}),qi={width:(Kt==null?void 0:Kt.x)===!0?"auto":Kt==null?void 0:Kt.x,minWidth:"100%"});var Ll=t.useCallback(function(N,q){(0,Z.Z)(no.current)&&Na(function(He){if(He.get(N)!==q){var ze=new Map(He);return ze.set(N,q),ze}return He})},[]),ds=D(null),us=(0,I.Z)(ds,2),_i=us[0],fs=us[1];function Ql(N,q){q&&(typeof q=="function"?q(N):q.scrollLeft!==N&&(q.scrollLeft=N,q.scrollLeft!==N&&setTimeout(function(){q.scrollLeft=N},0)))}var Yl=(0,T.Z)(function(N){var q=N.currentTarget,He=N.scrollLeft,ze=Yt==="rtl",Ge=typeof He=="number"?He:q.scrollLeft,Je=q||Yn;if(!fs()||fs()===Je){var jt;_i(Je),Ql(Ge,Xo.current),Ql(Ge,ba.current),Ql(Ge,ti.current),Ql(Ge,(jt=ul.current)===null||jt===void 0?void 0:jt.setScrollLeft)}if(q){var rn=q.scrollWidth,Qt=q.clientWidth;if(rn===Qt){yi(!1),ha(!1);return}ze?(yi(-Ge0)):(yi(Ge>0),ha(Ge{ke(Te,Kt),Kt.stopPropagation()},className:Me()($t,{[`${$t}-spaced`]:!Mt,[`${$t}-expanded`]:Mt&&Et,[`${$t}-collapsed`]:Mt&&!Et}),"aria-label":Et?C.collapse:C.expand,"aria-expanded":Et})}}var Qn=br,Un=vr((C,E)=>{const{_renderTimes:le}=C,{_renderTimes:ce}=E;return le!==ce});function wr(C,E){return"key"in C&&C.key!==void 0&&C.key!==null?C.key:C.dataIndex?Array.isArray(C.dataIndex)?C.dataIndex.join("."):C.dataIndex:E}function or(C,E){return E?`${E}-${C}`:`${C}`}function Or(C,E){return typeof C=="function"?C(E):C}function fo(C,E){const le=Or(C,E);return Object.prototype.toString.call(le)==="[object Object]"?"":le}var Sr={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"}}]},name:"filter",theme:"filled"},ao=Sr,Vr=e(17202),Ir=function(E,le){return t.createElement(Vr.Z,(0,de.Z)({},E,{ref:le,icon:ao}))},Do=t.forwardRef(Ir),sa=e(4459);function fa(C){const E=t.useRef(C),le=(0,sa.Z)();return[()=>E.current,ce=>{E.current=ce,le()}]}var Oa=e(12562),Oo=e(38904),zo=e(73267),va=e(17444),vi=e(85706),ka=e(81285),ye=e(10852),Qe=e(7992),Tt=e(99534),en=e(21149);function Bn(C){let{value:E,onChange:le,filterSearch:ce,tablePrefixCls:ke,locale:Te}=C;return ce?t.createElement("div",{className:`${ke}-filter-dropdown-search`},t.createElement(en.Z,{prefix:t.createElement(Tt.Z,null),placeholder:Te.filterSearchPlaceholder,onChange:le,value:E,htmlSize:1,className:`${ke}-filter-dropdown-search-input`})):null}var Nr=Bn,Tr=e(29639);const ur=C=>{const{keyCode:E}=C;E===Tr.Z.ENTER&&C.stopPropagation()};var ra=t.forwardRef((C,E)=>t.createElement("div",{className:C.className,onClick:le=>le.stopPropagation(),onKeyDown:ur,ref:E},C.children));function v(C){let E=[];return(C||[]).forEach(le=>{let{value:ce,children:ke}=le;E.push(ce),ke&&(E=[].concat((0,_.Z)(E),(0,_.Z)(v(ke))))}),E}function V(C){return C.some(E=>{let{children:le}=E;return le})}function Q(C,E){return typeof E=="string"||typeof E=="number"?E==null?void 0:E.toString().toLowerCase().includes(C.trim().toLowerCase()):!1}function Pe(C){let{filters:E,prefixCls:le,filteredKeys:ce,filterMultiple:ke,searchValue:Te,filterSearch:Et}=C;return E.map((Mt,$t)=>{const Kt=String(Mt.value);if(Mt.children)return{key:Kt||$t,label:Mt.text,popupClassName:`${le}-dropdown-submenu`,children:Pe({filters:Mt.children,prefixCls:le,filteredKeys:ce,filterMultiple:ke,searchValue:Te,filterSearch:Et})};const gn=ke?Oo.Z:ye.ZP,Yt={key:Mt.value!==void 0?Kt:$t,label:t.createElement(t.Fragment,null,t.createElement(gn,{checked:ce.includes(Kt)}),t.createElement("span",null,Mt.text))};return Te.trim()?typeof Et=="function"?Et(Te,Mt)?Yt:null:Q(Te,Mt.text)?Yt:null:Yt})}function ge(C){var E,le;const{tablePrefixCls:ce,prefixCls:ke,column:Te,dropdownPrefixCls:Et,columnKey:Mt,filterMultiple:$t,filterMode:Kt="menu",filterSearch:gn=!1,filterState:Yt,triggerFilter:Rn,locale:In,children:vn,getPopupContainer:on}=C,{filterDropdownOpen:$n,onFilterDropdownOpenChange:An,filterResetToDefaultFilteredValue:sr,defaultFilteredValue:mr,filterDropdownVisible:go,onFilterDropdownVisibleChange:Er}=Te,[xr,lo]=t.useState(!1),Io=!!(Yt&&(!((E=Yt.filteredKeys)===null||E===void 0)&&E.length||Yt.forceFiltered)),Qr=tr=>{lo(tr),An==null||An(tr),Er==null||Er(tr)},vo=(le=$n!=null?$n:go)!==null&&le!==void 0?le:xr,ho=Yt==null?void 0:Yt.filteredKeys,[cr,Kr]=fa(ho||[]),yo=tr=>{let{selectedKeys:no}=tr;Kr(no)},ga=(tr,no)=>{let{node:Xo,checked:ba}=no;yo($t?{selectedKeys:tr}:{selectedKeys:ba&&Xo.key?[Xo.key]:[]})};t.useEffect(()=>{xr&&yo({selectedKeys:ho||[]})},[ho]);const[Fo,eo]=t.useState([]),Jo=tr=>{eo(tr)},[bo,ta]=t.useState(""),po=tr=>{const{value:no}=tr.target;ta(no)};t.useEffect(()=>{xr||ta("")},[xr]);const Ya=tr=>{const no=tr&&tr.length?tr:null;if(no===null&&(!Yt||!Yt.filteredKeys)||(0,H.Z)(no,Yt==null?void 0:Yt.filteredKeys,!0))return null;Rn({column:Te,key:Mt,filteredKeys:no})},Bi=()=>{Qr(!1),Ya(cr())},Ma=function(){let{confirm:tr,closeDropdown:no}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{confirm:!1,closeDropdown:!1};tr&&Ya([]),no&&Qr(!1),ta(""),Kr(sr?(mr||[]).map(Xo=>String(Xo)):[])},hi=function(){let{closeDropdown:tr}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{closeDropdown:!0};tr&&Qr(!1),Ya(cr())},Mo=tr=>{tr&&ho!==void 0&&Kr(ho||[]),Qr(tr),!tr&&!Te.filterDropdown&&Bi()},aa=Me()({[`${Et}-menu-without-submenu`]:!V(Te.filters||[])}),Oi=tr=>{if(tr.target.checked){const no=v(Te==null?void 0:Te.filters).map(Xo=>String(Xo));Kr(no)}else Kr([])},da=tr=>{let{filters:no}=tr;return(no||[]).map((Xo,ba)=>{const pi=String(Xo.value),ti={title:Xo.text,key:Xo.value!==void 0?pi:ba};return Xo.children&&(ti.children=da({filters:Xo.children})),ti})},Eo=tr=>{var no;return Object.assign(Object.assign({},tr),{text:tr.title,value:tr.key,children:((no=tr.children)===null||no===void 0?void 0:no.map(Xo=>Eo(Xo)))||[]})};let so;if(typeof Te.filterDropdown=="function")so=Te.filterDropdown({prefixCls:`${Et}-custom`,setSelectedKeys:tr=>yo({selectedKeys:tr}),selectedKeys:cr(),confirm:hi,clearFilters:Ma,filters:Te.filters,visible:vo,close:()=>{Qr(!1)}});else if(Te.filterDropdown)so=Te.filterDropdown;else{const tr=cr()||[],no=()=>(Te.filters||[]).length===0?t.createElement(va.Z,{image:va.Z.PRESENTED_IMAGE_SIMPLE,description:In.filterEmptyText,imageStyle:{height:24},style:{margin:0,padding:"16px 0"}}):Kt==="tree"?t.createElement(t.Fragment,null,t.createElement(Nr,{filterSearch:gn,value:bo,onChange:po,tablePrefixCls:ce,locale:In}),t.createElement("div",{className:`${ce}-filter-dropdown-tree`},$t?t.createElement(Oo.Z,{checked:tr.length===v(Te.filters).length,indeterminate:tr.length>0&&tr.lengthtypeof gn=="function"?gn(bo,Eo(ba)):Q(bo,ba.title):void 0}))):t.createElement(t.Fragment,null,t.createElement(Nr,{filterSearch:gn,value:bo,onChange:po,tablePrefixCls:ce,locale:In}),t.createElement(vi.Z,{selectable:!0,multiple:$t,prefixCls:`${Et}-menu`,className:aa,onSelect:yo,onDeselect:yo,selectedKeys:tr,getPopupContainer:on,openKeys:Fo,onOpenChange:Jo,items:Pe({filters:Te.filters||[],filterSearch:gn,prefixCls:ke,filteredKeys:cr(),filterMultiple:$t,searchValue:bo})})),Xo=()=>sr?(0,H.Z)((mr||[]).map(ba=>String(ba)),tr,!0):tr.length===0;so=t.createElement(t.Fragment,null,no(),t.createElement("div",{className:`${ke}-dropdown-btns`},t.createElement(Oa.ZP,{type:"link",size:"small",disabled:Xo(),onClick:()=>Ma()},In.filterReset),t.createElement(Oa.ZP,{type:"primary",size:"small",onClick:Bi},In.filterConfirm)))}Te.filterDropdown&&(so=t.createElement(ka.J,{selectable:void 0},so));const hr=()=>t.createElement(ra,{className:`${ke}-dropdown`},so);let ir;typeof Te.filterIcon=="function"?ir=Te.filterIcon(Io):Te.filterIcon?ir=Te.filterIcon:ir=t.createElement(Do,null);const{direction:Dr}=t.useContext(Pr.E_);return t.createElement("div",{className:`${ke}-column`},t.createElement("span",{className:`${ce}-column-title`},vn),t.createElement(zo.Z,{dropdownRender:hr,trigger:["click"],open:vo,onOpenChange:Mo,getPopupContainer:on,placement:Dr==="rtl"?"bottomLeft":"bottomRight"},t.createElement("span",{role:"button",tabIndex:-1,className:Me()(`${ke}-trigger`,{active:Io}),onClick:tr=>{tr.stopPropagation()}},ir)))}var yt=ge;function nt(C,E,le){let ce=[];return(C||[]).forEach((ke,Te)=>{var Et;const Mt=or(Te,le);if(ke.filters||"filterDropdown"in ke||"onFilter"in ke)if("filteredValue"in ke){let $t=ke.filteredValue;"filterDropdown"in ke||($t=(Et=$t==null?void 0:$t.map(String))!==null&&Et!==void 0?Et:$t),ce.push({column:ke,key:wr(ke,Mt),filteredKeys:$t,forceFiltered:ke.filtered})}else ce.push({column:ke,key:wr(ke,Mt),filteredKeys:E&&ke.defaultFilteredValue?ke.defaultFilteredValue:void 0,forceFiltered:ke.filtered});"children"in ke&&(ce=[].concat((0,_.Z)(ce),(0,_.Z)(nt(ke.children,E,Mt))))}),ce}function qt(C,E,le,ce,ke,Te,Et,Mt){return le.map(($t,Kt)=>{const gn=or(Kt,Mt),{filterMultiple:Yt=!0,filterMode:Rn,filterSearch:In}=$t;let vn=$t;if(vn.filters||vn.filterDropdown){const on=wr(vn,gn),$n=ce.find(An=>{let{key:sr}=An;return on===sr});vn=Object.assign(Object.assign({},vn),{title:An=>t.createElement(yt,{tablePrefixCls:C,prefixCls:`${C}-filter`,dropdownPrefixCls:E,column:vn,columnKey:on,filterState:$n,filterMultiple:Yt,filterMode:Rn,filterSearch:In,triggerFilter:Te,locale:ke,getPopupContainer:Et},Or($t.title,An))})}return"children"in vn&&(vn=Object.assign(Object.assign({},vn),{children:qt(C,E,vn.children,ce,ke,Te,Et,gn)})),vn})}function Jt(C){const E={};return C.forEach(le=>{let{key:ce,filteredKeys:ke,column:Te}=le;const{filters:Et,filterDropdown:Mt}=Te;if(Mt)E[ce]=ke||null;else if(Array.isArray(ke)){const $t=v(Et);E[ce]=$t.filter(Kt=>ke.includes(String(Kt)))}else E[ce]=null}),E}function hn(C,E){return E.reduce((le,ce)=>{const{column:{onFilter:ke,filters:Te},filteredKeys:Et}=ce;return ke&&Et&&Et.length?le.filter(Mt=>Et.some($t=>{const Kt=v(Te),gn=Kt.findIndex(Rn=>String(Rn)===String($t)),Yt=gn!==-1?Kt[gn]:$t;return ke(Yt,Mt)})):le},C)}const Nn=C=>C.flatMap(E=>"children"in E?[E].concat((0,_.Z)(Nn(E.children||[]))):[E]);function En(C){let{prefixCls:E,dropdownPrefixCls:le,mergedColumns:ce,onFilterChange:ke,getPopupContainer:Te,locale:Et}=C;const Mt=t.useMemo(()=>Nn(ce||[]),[ce]),[$t,Kt]=t.useState(()=>nt(Mt,!0)),gn=t.useMemo(()=>{const vn=nt(Mt,!1);if(vn.length===0)return vn;let on=!0,$n=!0;if(vn.forEach(An=>{let{filteredKeys:sr}=An;sr!==void 0?on=!1:$n=!1}),on){const An=(Mt||[]).map((sr,mr)=>wr(sr,or(mr)));return $t.filter(sr=>{let{key:mr}=sr;return An.includes(mr)}).map(sr=>{const mr=Mt[An.findIndex(go=>go===sr.key)];return Object.assign(Object.assign({},sr),{column:Object.assign(Object.assign({},sr.column),mr),forceFiltered:mr.filtered})})}return vn},[Mt,$t]),Yt=t.useMemo(()=>Jt(gn),[gn]),Rn=vn=>{const on=gn.filter($n=>{let{key:An}=$n;return An!==vn.key});on.push(vn),Kt(on),ke(Jt(on),on)};return[vn=>qt(E,le,vn,gn,Et,Rn,Te),gn,Yt]}var _t=En,sn=e(27982),mn=e(44818),Ot=function(C,E){var le={};for(var ce in C)Object.prototype.hasOwnProperty.call(C,ce)&&E.indexOf(ce)<0&&(le[ce]=C[ce]);if(C!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ke=0,ce=Object.getOwnPropertySymbols(C);ke{const Te=C[ke];typeof Te!="function"&&(le[ke]=Te)}),le}function Wn(C,E,le){const ce=le&&typeof le=="object"?le:{},{total:ke=0}=ce,Te=Ot(ce,["total"]),[Et,Mt]=(0,t.useState)(()=>({current:"defaultCurrent"in Te?Te.defaultCurrent:1,pageSize:"defaultPageSize"in Te?Te.defaultPageSize:tn})),$t=(0,mn.Z)(Et,Te,{total:ke>0?ke:C}),Kt=Math.ceil((ke||C)/$t.pageSize);$t.current>Kt&&($t.current=Kt||1);const gn=(Rn,In)=>{Mt({current:Rn!=null?Rn:1,pageSize:In||$t.pageSize})},Yt=(Rn,In)=>{var vn;le&&((vn=le.onChange)===null||vn===void 0||vn.call(le,Rn,In)),gn(Rn,In),E(Rn,In||($t==null?void 0:$t.pageSize))};return le===!1?[{},()=>{}]:[Object.assign(Object.assign({},$t),{onChange:Yt}),gn]}var Jn=Wn,nr=e(10130),dr=e(39919),ar=e(16226),gr=e(47857),Co=e(60409);const Yr={},Ho="SELECT_ALL",wo="SELECT_INVERT",ca="SELECT_NONE",za=[],Ga=(C,E)=>{let le=[];return(E||[]).forEach(ce=>{le.push(ce),ce&&typeof ce=="object"&&C in ce&&(le=[].concat((0,_.Z)(le),(0,_.Z)(Ga(C,ce[C]))))}),le};var oa=(C,E)=>{const{preserveSelectedRowKeys:le,selectedRowKeys:ce,defaultSelectedRowKeys:ke,getCheckboxProps:Te,onChange:Et,onSelect:Mt,onSelectAll:$t,onSelectInvert:Kt,onSelectNone:gn,onSelectMultiple:Yt,columnWidth:Rn,type:In,selections:vn,fixed:on,renderCell:$n,hideSelectAll:An,checkStrictly:sr=!0}=E||{},{prefixCls:mr,data:go,pageData:Er,getRecordByKey:xr,getRowKey:lo,expandType:Io,childrenColumnName:Qr,locale:vo,getPopupContainer:ho}=C,[cr,Kr]=(0,Co.Z)(ce||ke||za,{value:ce}),yo=t.useRef(new Map),ga=(0,t.useCallback)(Eo=>{if(le){const so=new Map;Eo.forEach(hr=>{let ir=xr(hr);!ir&&yo.current.has(hr)&&(ir=yo.current.get(hr)),so.set(hr,ir)}),yo.current=so}},[xr,le]);t.useEffect(()=>{ga(cr)},[cr]);const{keyEntities:Fo}=(0,t.useMemo)(()=>{if(sr)return{keyEntities:null};let Eo=go;if(le){const so=new Set(go.map((ir,Dr)=>lo(ir,Dr))),hr=Array.from(yo.current).reduce((ir,Dr)=>{let[tr,no]=Dr;return so.has(tr)?ir:ir.concat(no)},[]);Eo=[].concat((0,_.Z)(Eo),(0,_.Z)(hr))}return(0,gr.I8)(Eo,{externalGetKey:lo,childrenPropName:Qr})},[go,lo,sr,Qr,le]),eo=(0,t.useMemo)(()=>Ga(Qr,Er),[Qr,Er]),Jo=(0,t.useMemo)(()=>{const Eo=new Map;return eo.forEach((so,hr)=>{const ir=lo(so,hr),Dr=(Te?Te(so):null)||{};Eo.set(ir,Dr)}),Eo},[eo,lo,Te]),bo=(0,t.useCallback)(Eo=>{var so;return!!(!((so=Jo.get(lo(Eo)))===null||so===void 0)&&so.disabled)},[Jo,lo]),[ta,po]=(0,t.useMemo)(()=>{if(sr)return[cr||[],[]];const{checkedKeys:Eo,halfCheckedKeys:so}=(0,ar.S)(cr,!0,Fo,bo);return[Eo||[],so]},[cr,sr,Fo,bo]),Ya=(0,t.useMemo)(()=>{const Eo=In==="radio"?ta.slice(0,1):ta;return new Set(Eo)},[ta,In]),Bi=(0,t.useMemo)(()=>In==="radio"?new Set:new Set(po),[po,In]),[Ma,hi]=(0,t.useState)(null);t.useEffect(()=>{E||Kr(za)},[!!E]);const Mo=(0,t.useCallback)((Eo,so)=>{let hr,ir;ga(Eo),le?(hr=Eo,ir=Eo.map(Dr=>yo.current.get(Dr))):(hr=[],ir=[],Eo.forEach(Dr=>{const tr=xr(Dr);tr!==void 0&&(hr.push(Dr),ir.push(tr))})),Kr(hr),Et==null||Et(hr,ir,{type:so})},[Kr,xr,Et,le]),aa=(0,t.useCallback)((Eo,so,hr,ir)=>{if(Mt){const Dr=hr.map(tr=>xr(tr));Mt(xr(Eo),so,Dr,ir)}Mo(hr,"single")},[Mt,xr,Mo]),Oi=(0,t.useMemo)(()=>!vn||An?null:(vn===!0?[Ho,wo,ca]:vn).map(so=>so===Ho?{key:"all",text:vo.selectionAll,onSelect(){Mo(go.map((hr,ir)=>lo(hr,ir)).filter(hr=>{const ir=Jo.get(hr);return!(ir!=null&&ir.disabled)||Ya.has(hr)}),"all")}}:so===wo?{key:"invert",text:vo.selectInvert,onSelect(){const hr=new Set(Ya);Er.forEach((Dr,tr)=>{const no=lo(Dr,tr),Xo=Jo.get(no);Xo!=null&&Xo.disabled||(hr.has(no)?hr.delete(no):hr.add(no))});const ir=Array.from(hr);Kt&&Kt(ir),Mo(ir,"invert")}}:so===ca?{key:"none",text:vo.selectNone,onSelect(){gn==null||gn(),Mo(Array.from(Ya).filter(hr=>{const ir=Jo.get(hr);return ir==null?void 0:ir.disabled}),"none")}}:so).map(so=>Object.assign(Object.assign({},so),{onSelect:function(){for(var hr,ir,Dr=arguments.length,tr=new Array(Dr),no=0;no{var so;if(!E)return Eo.filter(Bo=>Bo!==Yr);let hr=(0,_.Z)(Eo);const ir=new Set(Ya),Dr=eo.map(lo).filter(Bo=>!Jo.get(Bo).disabled),tr=Dr.every(Bo=>ir.has(Bo)),no=Dr.some(Bo=>ir.has(Bo)),Xo=()=>{const Bo=[];tr?Dr.forEach(Ea=>{ir.delete(Ea),Bo.push(Ea)}):Dr.forEach(Ea=>{ir.has(Ea)||(ir.add(Ea),Bo.push(Ea))});const ha=Array.from(ir);$t==null||$t(!tr,ha.map(Ea=>xr(Ea)),Bo.map(Ea=>xr(Ea))),Mo(ha,"all"),hi(null)};let ba;if(In!=="radio"){let Bo;if(Oi){const Na={getPopupContainer:ho,items:Oi.map((ci,Zi)=>{const{key:Qi,text:dl,onSelect:_a}=ci;return{key:Qi!=null?Qi:Zi,onClick:()=>{_a==null||_a(Dr)},label:dl}})};Bo=t.createElement("div",{className:`${mr}-selection-extra`},t.createElement(zo.Z,{menu:Na,getPopupContainer:ho},t.createElement("span",null,t.createElement(nr.Z,null))))}const ha=eo.map((Na,ci)=>{const Zi=lo(Na,ci),Qi=Jo.get(Zi)||{};return Object.assign({checked:ir.has(Zi)},Qi)}).filter(Na=>{let{disabled:ci}=Na;return ci}),Ea=!!ha.length&&ha.length===eo.length,ai=Ea&&ha.every(Na=>{let{checked:ci}=Na;return ci}),Wo=Ea&&ha.some(Na=>{let{checked:ci}=Na;return ci});ba=!An&&t.createElement("div",{className:`${mr}-selection`},t.createElement(Oo.Z,{checked:Ea?ai:!!eo.length&&tr,indeterminate:Ea?!ai&&Wo:!tr&&no,onChange:Xo,disabled:eo.length===0||Ea,"aria-label":Bo?"Custom selection":"Select all",skipGroup:!0}),Bo)}let pi;In==="radio"?pi=(Bo,ha,Ea)=>{const ai=lo(ha,Ea),Wo=ir.has(ai);return{node:t.createElement(ye.ZP,Object.assign({},Jo.get(ai),{checked:Wo,onClick:Na=>Na.stopPropagation(),onChange:Na=>{ir.has(ai)||aa(ai,!0,[ai],Na.nativeEvent)}})),checked:Wo}}:pi=(Bo,ha,Ea)=>{var ai;const Wo=lo(ha,Ea),Na=ir.has(Wo),ci=Bi.has(Wo),Zi=Jo.get(Wo);let Qi;return Io==="nest"?Qi=ci:Qi=(ai=Zi==null?void 0:Zi.indeterminate)!==null&&ai!==void 0?ai:ci,{node:t.createElement(Oo.Z,Object.assign({},Zi,{indeterminate:Qi,checked:Na,skipGroup:!0,onClick:dl=>dl.stopPropagation(),onChange:dl=>{let{nativeEvent:_a}=dl;const{shiftKey:Ui}=_a;let ki=-1,ul=-1;if(Ui&&sr){const Ci=new Set([Ma,Wo]);Dr.some((ii,fl)=>{if(Ci.has(ii))if(ki===-1)ki=fl;else return ul=fl,!0;return!1})}if(ul!==-1&&ki!==ul&&sr){const Ci=Dr.slice(ki,ul+1),ii=[];Na?Ci.forEach(Ri=>{ir.has(Ri)&&(ii.push(Ri),ir.delete(Ri))}):Ci.forEach(Ri=>{ir.has(Ri)||(ii.push(Ri),ir.add(Ri))});const fl=Array.from(ir);Yt==null||Yt(!Na,fl.map(Ri=>xr(Ri)),ii.map(Ri=>xr(Ri))),Mo(fl,"multiple")}else{const Ci=ta;if(sr){const ii=Na?(0,dr._5)(Ci,Wo):(0,dr.L0)(Ci,Wo);aa(Wo,!Na,ii,_a)}else{const ii=(0,ar.S)([].concat((0,_.Z)(Ci),[Wo]),!0,Fo,bo),{checkedKeys:fl,halfCheckedKeys:Ri}=ii;let zi=fl;if(Na){const No=new Set(fl);No.delete(Wo),zi=(0,ar.S)(Array.from(No),{checked:!1,halfCheckedKeys:Ri},Fo,bo).checkedKeys}aa(Wo,!Na,zi,_a)}}hi(Na?null:Wo)}})),checked:Na}};const ti=(Bo,ha,Ea)=>{const{node:ai,checked:Wo}=pi(Bo,ha,Ea);return $n?$n(Wo,ha,Ea,ai):ai};if(!hr.includes(Yr))if(hr.findIndex(Bo=>{var ha;return((ha=Bo[Lt])===null||ha===void 0?void 0:ha.columnType)==="EXPAND_COLUMN"})===0){const[Bo,...ha]=hr;hr=[Bo,Yr].concat((0,_.Z)(ha))}else hr=[Yr].concat((0,_.Z)(hr));const Fl=hr.indexOf(Yr);hr=hr.filter((Bo,ha)=>Bo!==Yr||ha===Fl);const wa=hr[Fl-1],wl=hr[Fl+1];let yi=on;yi===void 0&&((wl==null?void 0:wl.fixed)!==void 0?yi=wl.fixed:(wa==null?void 0:wa.fixed)!==void 0&&(yi=wa.fixed)),yi&&wa&&((so=wa[Lt])===null||so===void 0?void 0:so.columnType)==="EXPAND_COLUMN"&&wa.fixed===void 0&&(wa.fixed=yi);const oi=Me()(`${mr}-selection-col`,{[`${mr}-selection-col-with-dropdown`]:vn&&In==="checkbox"}),Il={fixed:yi,width:Rn,className:`${mr}-selection-column`,title:E.columnTitle||ba,render:ti,onCell:E.onCell,[Lt]:{className:oi}};return hr.map(Bo=>Bo===Yr?Il:Bo)},[lo,eo,E,ta,Ya,Bi,Rn,Oi,Io,Ma,Jo,Yt,aa,bo]),Ya]},Ba={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"}}]},name:"caret-down",theme:"outlined"},wi=Ba,Mi=function(E,le){return t.createElement(Vr.Z,(0,de.Z)({},E,{ref:le,icon:wi}))},mi=t.forwardRef(Mi),Ni={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z"}}]},name:"caret-up",theme:"outlined"},pl=Ni,Ei=function(E,le){return t.createElement(Vr.Z,(0,de.Z)({},E,{ref:le,icon:pl}))},Ml=t.forwardRef(Ei),nl=e(74820);const yl="ascend",Va="descend";function Pi(C){return typeof C.sorter=="object"&&typeof C.sorter.multiple=="number"?C.sorter.multiple:!1}function gi(C){return typeof C=="function"?C:C&&typeof C=="object"&&C.compare?C.compare:!1}function Ki(C,E){return E?C[C.indexOf(E)+1]:C[0]}function Ti(C,E,le){let ce=[];function ke(Te,Et){ce.push({column:Te,key:wr(Te,Et),multiplePriority:Pi(Te),sortOrder:Te.sortOrder})}return(C||[]).forEach((Te,Et)=>{const Mt=or(Et,le);Te.children?("sortOrder"in Te&&ke(Te,Mt),ce=[].concat((0,_.Z)(ce),(0,_.Z)(Ti(Te.children,E,Mt)))):Te.sorter&&("sortOrder"in Te?ke(Te,Mt):E&&Te.defaultSortOrder&&ce.push({column:Te,key:wr(Te,Mt),multiplePriority:Pi(Te),sortOrder:Te.defaultSortOrder}))}),ce}function Di(C,E,le,ce,ke,Te,Et,Mt){return(E||[]).map(($t,Kt)=>{const gn=or(Kt,Mt);let Yt=$t;if(Yt.sorter){const Rn=Yt.sortDirections||ke,In=Yt.showSorterTooltip===void 0?Et:Yt.showSorterTooltip,vn=wr(Yt,gn),on=le.find(Io=>{let{key:Qr}=Io;return Qr===vn}),$n=on?on.sortOrder:null,An=Ki(Rn,$n);let sr;if($t.sortIcon)sr=$t.sortIcon({sortOrder:$n});else{const Io=Rn.includes(yl)&&t.createElement(Ml,{className:Me()(`${C}-column-sorter-up`,{active:$n===yl})}),Qr=Rn.includes(Va)&&t.createElement(mi,{className:Me()(`${C}-column-sorter-down`,{active:$n===Va})});sr=t.createElement("span",{className:Me()(`${C}-column-sorter`,{[`${C}-column-sorter-full`]:!!(Io&&Qr)})},t.createElement("span",{className:`${C}-column-sorter-inner`,"aria-hidden":"true"},Io,Qr))}const{cancelSort:mr,triggerAsc:go,triggerDesc:Er}=Te||{};let xr=mr;An===Va?xr=Er:An===yl&&(xr=go);const lo=typeof In=="object"?In:{title:xr};Yt=Object.assign(Object.assign({},Yt),{className:Me()(Yt.className,{[`${C}-column-sort`]:$n}),title:Io=>{const Qr=t.createElement("div",{className:`${C}-column-sorters`},t.createElement("span",{className:`${C}-column-title`},Or($t.title,Io)),sr);return In?t.createElement(nl.Z,Object.assign({},lo),Qr):Qr},onHeaderCell:Io=>{const Qr=$t.onHeaderCell&&$t.onHeaderCell(Io)||{},vo=Qr.onClick,ho=Qr.onKeyDown;Qr.onClick=yo=>{ce({column:$t,key:vn,sortOrder:An,multiplePriority:Pi($t)}),vo==null||vo(yo)},Qr.onKeyDown=yo=>{yo.keyCode===Tr.Z.ENTER&&(ce({column:$t,key:vn,sortOrder:An,multiplePriority:Pi($t)}),ho==null||ho(yo))};const cr=fo($t.title,{}),Kr=cr==null?void 0:cr.toString();return $n?Qr["aria-sort"]=$n==="ascend"?"ascending":"descending":Qr["aria-label"]=Kr||"",Qr.className=Me()(Qr.className,`${C}-column-has-sorters`),Qr.tabIndex=0,$t.ellipsis&&(Qr.title=(cr!=null?cr:"").toString()),Qr}})}return"children"in Yt&&(Yt=Object.assign(Object.assign({},Yt),{children:Di(C,Yt.children,le,ce,ke,Te,Et,gn)})),Yt})}function ei(C){const{column:E,sortOrder:le}=C;return{column:E,order:le,field:E.dataIndex,columnKey:E.key}}function Zo(C){const E=C.filter(le=>{let{sortOrder:ce}=le;return ce}).map(ei);return E.length===0&&C.length?Object.assign(Object.assign({},ei(C[C.length-1])),{column:void 0}):E.length<=1?E[0]||{}:E}function Qa(C,E,le){const ce=E.slice().sort((Et,Mt)=>Mt.multiplePriority-Et.multiplePriority),ke=C.slice(),Te=ce.filter(Et=>{let{column:{sorter:Mt},sortOrder:$t}=Et;return gi(Mt)&&$t});return Te.length?ke.sort((Et,Mt)=>{for(let $t=0;$t{const Mt=Et[le];return Mt?Object.assign(Object.assign({},Et),{[le]:Qa(Mt,E,le)}):Et}):ke}function Ra(C){let{prefixCls:E,mergedColumns:le,onSorterChange:ce,sortDirections:ke,tableLocale:Te,showSorterTooltip:Et}=C;const[Mt,$t]=t.useState(Ti(le,!0)),Kt=t.useMemo(()=>{let vn=!0;const on=Ti(le,!1);if(!on.length)return Mt;const $n=[];function An(mr){vn?$n.push(mr):$n.push(Object.assign(Object.assign({},mr),{sortOrder:null}))}let sr=null;return on.forEach(mr=>{sr===null?(An(mr),mr.sortOrder&&(mr.multiplePriority===!1?vn=!1:sr=!0)):(sr&&mr.multiplePriority!==!1||(vn=!1),An(mr))}),$n},[le,Mt]),gn=t.useMemo(()=>{const vn=Kt.map(on=>{let{column:$n,sortOrder:An}=on;return{column:$n,order:An}});return{sortColumns:vn,sortColumn:vn[0]&&vn[0].column,sortOrder:vn[0]&&vn[0].order}},[Kt]);function Yt(vn){let on;vn.multiplePriority===!1||!Kt.length||Kt[0].multiplePriority===!1?on=[vn]:on=[].concat((0,_.Z)(Kt.filter($n=>{let{key:An}=$n;return An!==vn.key})),[vn]),$t(on),ce(Zo(on),on)}return[vn=>Di(E,vn,Kt,Yt,ke,Te,Et),Kt,gn,()=>Zo(Kt)]}function $i(C,E){return C.map(le=>{const ce=Object.assign({},le);return ce.title=Or(le.title,E),"children"in ce&&(ce.children=$i(ce.children,E)),ce})}function Fi(C){return[t.useCallback(le=>$i(le,C),[C])]}var Ia=e(66671),rl=e(78330),Al=e(52628),Vi=e(22151),Hl=C=>{const{componentCls:E}=C,le=`${C.lineWidth}px ${C.lineType} ${C.tableBorderColor}`,ce=(ke,Te,Et)=>({[`&${E}-${ke}`]:{[`> ${E}-container`]:{[`> ${E}-content, > ${E}-body`]:{[` - > table > tbody > tr > th, - > table > tbody > tr > td - `]:{[`> ${E}-expanded-row-fixed`]:{margin:`-${Te}px -${Et+C.lineWidth}px`}}}}}});return{[`${E}-wrapper`]:{[`${E}${E}-bordered`]:Object.assign(Object.assign(Object.assign({[`> ${E}-title`]:{border:le,borderBottom:0},[`> ${E}-container`]:{borderInlineStart:le,borderTop:le,[` - > ${E}-content, - > ${E}-header, - > ${E}-body, - > ${E}-summary - `]:{"> table":{[` - > thead > tr > th, - > thead > tr > td, - > tbody > tr > th, - > tbody > tr > td, - > tfoot > tr > th, - > tfoot > tr > td - `]:{borderInlineEnd:le},"> thead":{"> tr:not(:last-child) > th":{borderBottom:le},"> tr > th::before":{backgroundColor:"transparent !important"}},[` - > thead > tr, - > tbody > tr, - > tfoot > tr - `]:{[`> ${E}-cell-fix-right-first::after`]:{borderInlineEnd:le}},[` - > tbody > tr > th, - > tbody > tr > td - `]:{[`> ${E}-expanded-row-fixed`]:{margin:`-${C.tablePaddingVertical}px -${C.tablePaddingHorizontal+C.lineWidth}px`,"&::after":{position:"absolute",top:0,insetInlineEnd:C.lineWidth,bottom:0,borderInlineEnd:le,content:'""'}}}}}},[`&${E}-scroll-horizontal`]:{[`> ${E}-container > ${E}-body`]:{"> table > tbody":{[` - > tr${E}-expanded-row, - > tr${E}-placeholder - `]:{["> th, > td"]:{borderInlineEnd:0}}}}}},ce("middle",C.tablePaddingVerticalMiddle,C.tablePaddingHorizontalMiddle)),ce("small",C.tablePaddingVerticalSmall,C.tablePaddingHorizontalSmall)),{[`> ${E}-footer`]:{border:le,borderTop:0}}),[`${E}-cell`]:{[`${E}-container:first-child`]:{borderTop:0},"&-scrollbar:not([rowspan])":{boxShadow:`0 ${C.lineWidth}px 0 ${C.lineWidth}px ${C.tableHeaderBg}`}},[`${E}-bordered ${E}-cell-scrollbar`]:{borderInlineEnd:le}}}},Vl=C=>{const{componentCls:E}=C;return{[`${E}-wrapper`]:{[`${E}-cell-ellipsis`]:Object.assign(Object.assign({},rl.vS),{wordBreak:"keep-all",[` - &${E}-cell-fix-left-last, - &${E}-cell-fix-right-first - `]:{overflow:"visible",[`${E}-cell-content`]:{display:"block",overflow:"hidden",textOverflow:"ellipsis"}},[`${E}-column-title`]:{overflow:"hidden",textOverflow:"ellipsis",wordBreak:"keep-all"}})}}},sl=C=>{const{componentCls:E}=C;return{[`${E}-wrapper`]:{[`${E}-tbody > tr${E}-placeholder`]:{textAlign:"center",color:C.colorTextDisabled,[` - &:hover > th, - &:hover > td, - `]:{background:C.colorBgContainer}}}}},ol=e(2465),Ol=C=>{const{componentCls:E,antCls:le,controlInteractiveSize:ce,motionDurationSlow:ke,lineWidth:Te,paddingXS:Et,lineType:Mt,tableBorderColor:$t,tableExpandIconBg:Kt,tableExpandColumnWidth:gn,borderRadius:Yt,fontSize:Rn,fontSizeSM:In,lineHeight:vn,tablePaddingVertical:on,tablePaddingHorizontal:$n,tableExpandedRowBg:An,paddingXXS:sr}=C,mr=ce/2-Te,go=mr*2+Te*3,Er=`${Te}px ${Mt} ${$t}`,xr=sr-Te;return{[`${E}-wrapper`]:{[`${E}-expand-icon-col`]:{width:gn},[`${E}-row-expand-icon-cell`]:{textAlign:"center",[`${E}-row-expand-icon`]:{display:"inline-flex",float:"none",verticalAlign:"sub"}},[`${E}-row-indent`]:{height:1,float:"left"},[`${E}-row-expand-icon`]:Object.assign(Object.assign({},(0,ol.N)(C)),{position:"relative",float:"left",boxSizing:"border-box",width:go,height:go,padding:0,color:"inherit",lineHeight:`${go}px`,background:Kt,border:Er,borderRadius:Yt,transform:`scale(${ce/go})`,transition:`all ${ke}`,userSelect:"none",["&:focus, &:hover, &:active"]:{borderColor:"currentcolor"},["&::before, &::after"]:{position:"absolute",background:"currentcolor",transition:`transform ${ke} ease-out`,content:'""'},"&::before":{top:mr,insetInlineEnd:xr,insetInlineStart:xr,height:Te},"&::after":{top:xr,bottom:xr,insetInlineStart:mr,width:Te,transform:"rotate(90deg)"},"&-collapsed::before":{transform:"rotate(-180deg)"},"&-collapsed::after":{transform:"rotate(0deg)"},"&-spaced":{"&::before, &::after":{display:"none",content:"none"},background:"transparent",border:0,visibility:"hidden"}}),[`${E}-row-indent + ${E}-row-expand-icon`]:{marginTop:(Rn*vn-Te*3)/2-Math.ceil((In*1.4-Te*3)/2),marginInlineEnd:Et},[`tr${E}-expanded-row`]:{"&, &:hover":{["> th, > td"]:{background:An}},[`${le}-descriptions-view`]:{display:"flex",table:{flex:"auto",width:"auto"}}},[`${E}-expanded-row-fixed`]:{position:"relative",margin:`-${on}px -${$n}px`,padding:`${on}px ${$n}px`}}}},Wa=C=>{const{componentCls:E,antCls:le,iconCls:ce,tableFilterDropdownWidth:ke,tableFilterDropdownSearchWidth:Te,paddingXXS:Et,paddingXS:Mt,colorText:$t,lineWidth:Kt,lineType:gn,tableBorderColor:Yt,tableHeaderIconColor:Rn,fontSizeSM:In,tablePaddingHorizontal:vn,borderRadius:on,motionDurationSlow:$n,colorTextDescription:An,colorPrimary:sr,tableHeaderFilterActiveBg:mr,colorTextDisabled:go,tableFilterDropdownBg:Er,tableFilterDropdownHeight:xr,controlItemBgHover:lo,controlItemBgActive:Io,boxShadowSecondary:Qr}=C,vo=`${le}-dropdown`,ho=`${E}-filter-dropdown`,cr=`${le}-tree`,Kr=`${Kt}px ${gn} ${Yt}`;return[{[`${E}-wrapper`]:{[`${E}-filter-column`]:{display:"flex",justifyContent:"space-between"},[`${E}-filter-trigger`]:{position:"relative",display:"flex",alignItems:"center",marginBlock:-Et,marginInline:`${Et}px ${-vn/2}px`,padding:`0 ${Et}px`,color:Rn,fontSize:In,borderRadius:on,cursor:"pointer",transition:`all ${$n}`,"&:hover":{color:An,background:mr},"&.active":{color:sr}}}},{[`${le}-dropdown`]:{[ho]:Object.assign(Object.assign({},(0,rl.Wf)(C)),{minWidth:ke,backgroundColor:Er,borderRadius:on,boxShadow:Qr,overflow:"hidden",[`${vo}-menu`]:{maxHeight:xr,overflowX:"hidden",border:0,boxShadow:"none",borderRadius:"unset","&:empty::after":{display:"block",padding:`${Mt}px 0`,color:go,fontSize:In,textAlign:"center",content:'"Not Found"'}},[`${ho}-tree`]:{paddingBlock:`${Mt}px 0`,paddingInline:Mt,[cr]:{padding:0},[`${cr}-treenode ${cr}-node-content-wrapper:hover`]:{backgroundColor:lo},[`${cr}-treenode-checkbox-checked ${cr}-node-content-wrapper`]:{"&, &:hover":{backgroundColor:Io}}},[`${ho}-search`]:{padding:Mt,borderBottom:Kr,"&-input":{input:{minWidth:Te},[ce]:{color:go}}},[`${ho}-checkall`]:{width:"100%",marginBottom:Et,marginInlineStart:Et},[`${ho}-btns`]:{display:"flex",justifyContent:"space-between",padding:`${Mt-Kt}px ${Mt}px`,overflow:"hidden",borderTop:Kr}})}},{[`${le}-dropdown ${ho}, ${ho}-submenu`]:{[`${le}-checkbox-wrapper + span`]:{paddingInlineStart:Mt,color:$t},["> ul"]:{maxHeight:"calc(100vh - 130px)",overflowX:"hidden",overflowY:"auto"}}}]},Zl=C=>{const{componentCls:E,lineWidth:le,colorSplit:ce,motionDurationSlow:ke,zIndexTableFixed:Te,tableBg:Et,zIndexTableSticky:Mt}=C,$t=ce;return{[`${E}-wrapper`]:{[` - ${E}-cell-fix-left, - ${E}-cell-fix-right - `]:{position:"sticky !important",zIndex:Te,background:Et},[` - ${E}-cell-fix-left-first::after, - ${E}-cell-fix-left-last::after - `]:{position:"absolute",top:0,right:{_skip_check_:!0,value:0},bottom:-le,width:30,transform:"translateX(100%)",transition:`box-shadow ${ke}`,content:'""',pointerEvents:"none"},[`${E}-cell-fix-left-all::after`]:{display:"none"},[` - ${E}-cell-fix-right-first::after, - ${E}-cell-fix-right-last::after - `]:{position:"absolute",top:0,bottom:-le,left:{_skip_check_:!0,value:0},width:30,transform:"translateX(-100%)",transition:`box-shadow ${ke}`,content:'""',pointerEvents:"none"},[`${E}-container`]:{"&::before, &::after":{position:"absolute",top:0,bottom:0,zIndex:Mt+1,width:30,transition:`box-shadow ${ke}`,content:'""',pointerEvents:"none"},"&::before":{insetInlineStart:0},"&::after":{insetInlineEnd:0}},[`${E}-ping-left`]:{[`&:not(${E}-has-fix-left) ${E}-container`]:{position:"relative","&::before":{boxShadow:`inset 10px 0 8px -8px ${$t}`}},[` - ${E}-cell-fix-left-first::after, - ${E}-cell-fix-left-last::after - `]:{boxShadow:`inset 10px 0 8px -8px ${$t}`},[`${E}-cell-fix-left-last::before`]:{backgroundColor:"transparent !important"}},[`${E}-ping-right`]:{[`&:not(${E}-has-fix-right) ${E}-container`]:{position:"relative","&::after":{boxShadow:`inset -10px 0 8px -8px ${$t}`}},[` - ${E}-cell-fix-right-first::after, - ${E}-cell-fix-right-last::after - `]:{boxShadow:`inset -10px 0 8px -8px ${$t}`}}}}},Xi=C=>{const{componentCls:E,antCls:le}=C;return{[`${E}-wrapper`]:{[`${E}-pagination${le}-pagination`]:{margin:`${C.margin}px 0`},[`${E}-pagination`]:{display:"flex",flexWrap:"wrap",rowGap:C.paddingXS,"> *":{flex:"none"},"&-left":{justifyContent:"flex-start"},"&-center":{justifyContent:"center"},"&-right":{justifyContent:"flex-end"}}}}},Hi=C=>{const{componentCls:E,tableRadius:le}=C;return{[`${E}-wrapper`]:{[E]:{[`${E}-title, ${E}-header`]:{borderRadius:`${le}px ${le}px 0 0`},[`${E}-title + ${E}-container`]:{borderStartStartRadius:0,borderStartEndRadius:0,[`${E}-header, table`]:{borderRadius:0},"table > thead > tr:first-child":{"th:first-child, th:last-child, td:first-child, td:last-child":{borderRadius:0}}},"&-container":{borderStartStartRadius:le,borderStartEndRadius:le,"table > thead > tr:first-child":{"> *:first-child":{borderStartStartRadius:le},"> *:last-child":{borderStartEndRadius:le}}},"&-footer":{borderRadius:`0 0 ${le}px ${le}px`}}}}},Yi=C=>{const{componentCls:E}=C;return{[`${E}-wrapper-rtl`]:{direction:"rtl",table:{direction:"rtl"},[`${E}-pagination-left`]:{justifyContent:"flex-end"},[`${E}-pagination-right`]:{justifyContent:"flex-start"},[`${E}-row-expand-icon`]:{float:"right","&::after":{transform:"rotate(-90deg)"},"&-collapsed::before":{transform:"rotate(180deg)"},"&-collapsed::after":{transform:"rotate(0deg)"}},[`${E}-container`]:{"&::before":{insetInlineStart:"unset",insetInlineEnd:0},"&::after":{insetInlineStart:0,insetInlineEnd:"unset"},[`${E}-row-indent`]:{float:"right"}}}}},Ja=C=>{const{componentCls:E,antCls:le,iconCls:ce,fontSizeIcon:ke,padding:Te,paddingXS:Et,tableHeaderIconColor:Mt,tableHeaderIconColorHover:$t,tableSelectionColumnWidth:Kt}=C;return{[`${E}-wrapper`]:{[`${E}-selection-col`]:{width:Kt,[`&${E}-selection-col-with-dropdown`]:{width:Kt+ke+Te/4}},[`${E}-bordered ${E}-selection-col`]:{width:Kt+Et*2,[`&${E}-selection-col-with-dropdown`]:{width:Kt+ke+Te/4+Et*2}},[` - table tr th${E}-selection-column, - table tr td${E}-selection-column - `]:{paddingInlineEnd:C.paddingXS,paddingInlineStart:C.paddingXS,textAlign:"center",[`${le}-radio-wrapper`]:{marginInlineEnd:0}},[`table tr th${E}-selection-column${E}-cell-fix-left`]:{zIndex:C.zIndexTableFixed+1},[`table tr th${E}-selection-column::after`]:{backgroundColor:"transparent !important"},[`${E}-selection`]:{position:"relative",display:"inline-flex",flexDirection:"column"},[`${E}-selection-extra`]:{position:"absolute",top:0,zIndex:1,cursor:"pointer",transition:`all ${C.motionDurationSlow}`,marginInlineStart:"100%",paddingInlineStart:`${C.tablePaddingHorizontal/4}px`,[ce]:{color:Mt,fontSize:ke,verticalAlign:"baseline","&:hover":{color:$t}}}}}},Rl=C=>{const{componentCls:E}=C,le=(ce,ke,Te,Et)=>({[`${E}${E}-${ce}`]:{fontSize:Et,[` - ${E}-title, - ${E}-footer, - ${E}-thead > tr > th, - ${E}-tbody > tr > th, - ${E}-tbody > tr > td, - tfoot > tr > th, - tfoot > tr > td - `]:{padding:`${ke}px ${Te}px`},[`${E}-filter-trigger`]:{marginInlineEnd:`-${Te/2}px`},[`${E}-expanded-row-fixed`]:{margin:`-${ke}px -${Te}px`},[`${E}-tbody`]:{[`${E}-wrapper:only-child ${E}`]:{marginBlock:`-${ke}px`,marginInline:`${C.tableExpandColumnWidth-Te}px -${Te}px`}},[`${E}-selection-column`]:{paddingInlineStart:`${Te/4}px`}}});return{[`${E}-wrapper`]:Object.assign(Object.assign({},le("middle",C.tablePaddingVerticalMiddle,C.tablePaddingHorizontalMiddle,C.tableFontSizeMiddle)),le("small",C.tablePaddingVerticalSmall,C.tablePaddingHorizontalSmall,C.tableFontSizeSmall))}},Tl=C=>{const{componentCls:E,marginXXS:le,fontSizeIcon:ce,tableHeaderIconColor:ke,tableHeaderIconColorHover:Te}=C;return{[`${E}-wrapper`]:{[`${E}-thead th${E}-column-has-sorters`]:{outline:"none",cursor:"pointer",transition:`all ${C.motionDurationSlow}`,"&:hover":{background:C.tableHeaderSortHoverBg,"&::before":{backgroundColor:"transparent !important"}},"&:focus-visible":{color:C.colorPrimary},[` - &${E}-cell-fix-left:hover, - &${E}-cell-fix-right:hover - `]:{background:C.tableFixedHeaderSortActiveBg}},[`${E}-thead th${E}-column-sort`]:{background:C.tableHeaderSortBg,"&::before":{backgroundColor:"transparent !important"}},[`td${E}-column-sort`]:{background:C.tableBodySortBg},[`${E}-column-title`]:{position:"relative",zIndex:1,flex:1},[`${E}-column-sorters`]:{display:"flex",flex:"auto",alignItems:"center",justifyContent:"space-between","&::after":{position:"absolute",inset:0,width:"100%",height:"100%",content:'""'}},[`${E}-column-sorter`]:{marginInlineStart:le,color:ke,fontSize:0,transition:`color ${C.motionDurationSlow}`,"&-inner":{display:"inline-flex",flexDirection:"column",alignItems:"center"},"&-up, &-down":{fontSize:ce,"&.active":{color:C.colorPrimary}},[`${E}-column-sorter-up + ${E}-column-sorter-down`]:{marginTop:"-0.3em"}},[`${E}-column-sorters:hover ${E}-column-sorter`]:{color:Te}}}},Uo=C=>{const{componentCls:E,opacityLoading:le,tableScrollThumbBg:ce,tableScrollThumbBgHover:ke,tableScrollThumbSize:Te,tableScrollBg:Et,zIndexTableSticky:Mt}=C,$t=`${C.lineWidth}px ${C.lineType} ${C.tableBorderColor}`;return{[`${E}-wrapper`]:{[`${E}-sticky`]:{"&-holder":{position:"sticky",zIndex:Mt,background:C.colorBgContainer},"&-scroll":{position:"sticky",bottom:0,height:`${Te}px !important`,zIndex:Mt,display:"flex",alignItems:"center",background:Et,borderTop:$t,opacity:le,"&:hover":{transformOrigin:"center bottom"},"&-bar":{height:Te,backgroundColor:ce,borderRadius:100,transition:`all ${C.motionDurationSlow}, transform none`,position:"absolute",bottom:0,"&:hover, &-active":{backgroundColor:ke}}}}}}},Sl=C=>{const{componentCls:E,lineWidth:le,tableBorderColor:ce}=C,ke=`${le}px ${C.lineType} ${ce}`;return{[`${E}-wrapper`]:{[`${E}-summary`]:{position:"relative",zIndex:C.zIndexTableFixed,background:C.tableBg,"> tr":{"> th, > td":{borderBottom:ke}}},[`div${E}-summary`]:{boxShadow:`0 -${le}px 0 ${ce}`}}}};const kl=C=>{const{componentCls:E,fontWeightStrong:le,tablePaddingVertical:ce,tablePaddingHorizontal:ke,lineWidth:Te,lineType:Et,tableBorderColor:Mt,tableFontSize:$t,tableBg:Kt,tableRadius:gn,tableHeaderTextColor:Yt,motionDurationMid:Rn,tableHeaderBg:In,tableHeaderCellSplitColor:vn,tableRowHoverBg:on,tableSelectedRowBg:$n,tableSelectedRowHoverBg:An,tableFooterTextColor:sr,tableFooterBg:mr,paddingContentVerticalLG:go}=C,Er=`${Te}px ${Et} ${Mt}`;return{[`${E}-wrapper`]:Object.assign(Object.assign({clear:"both",maxWidth:"100%"},(0,rl.dF)()),{[E]:Object.assign(Object.assign({},(0,rl.Wf)(C)),{fontSize:$t,background:Kt,borderRadius:`${gn}px ${gn}px 0 0`}),table:{width:"100%",textAlign:"start",borderRadius:`${gn}px ${gn}px 0 0`,borderCollapse:"separate",borderSpacing:0},[` - ${E}-thead > tr > th, - ${E}-tbody > tr > th, - ${E}-tbody > tr > td, - tfoot > tr > th, - tfoot > tr > td - `]:{position:"relative",padding:`${go}px ${ke}px`,overflowWrap:"break-word"},[`${E}-title`]:{padding:`${ce}px ${ke}px`},[`${E}-thead`]:{[` - > tr > th, - > tr > td - `]:{position:"relative",color:Yt,fontWeight:le,textAlign:"start",background:In,borderBottom:Er,transition:`background ${Rn} ease`,"&[colspan]:not([colspan='1'])":{textAlign:"center"},[`&:not(:last-child):not(${E}-selection-column):not(${E}-row-expand-icon-cell):not([colspan])::before`]:{position:"absolute",top:"50%",insetInlineEnd:0,width:1,height:"1.6em",backgroundColor:vn,transform:"translateY(-50%)",transition:`background-color ${Rn}`,content:'""'}},"> tr:not(:last-child) > th[colspan]":{borderBottom:0}},[`${E}-tbody`]:{"> tr":{["> th, > td"]:{transition:`background ${Rn}, border-color ${Rn}`,borderBottom:Er,[` - > ${E}-wrapper:only-child, - > ${E}-expanded-row-fixed > ${E}-wrapper:only-child - `]:{[E]:{marginBlock:`-${ce}px`,marginInline:`${C.tableExpandColumnWidth-ke}px -${ke}px`,[`${E}-tbody > tr:last-child > td`]:{borderBottom:0,"&:first-child, &:last-child":{borderRadius:0}}}}},"> th":{position:"relative",color:Yt,fontWeight:le,textAlign:"start",background:In,borderBottom:Er,transition:`background ${Rn} ease`},[` - &${E}-row:hover > th, - &${E}-row:hover > td, - > th${E}-cell-row-hover, - > td${E}-cell-row-hover - `]:{background:on},[`&${E}-row-selected`]:{["> th, > td"]:{background:$n},["&:hover > th, &:hover > td"]:{background:An}}}},[`${E}-footer`]:{padding:`${ce}px ${ke}px`,color:sr,background:mr}})}};var Dl=(0,Al.Z)("Table",C=>{const{controlItemBgActive:E,controlItemBgActiveHover:le,colorTextPlaceholder:ce,colorTextHeading:ke,colorSplit:Te,colorBorderSecondary:Et,fontSize:Mt,padding:$t,paddingXS:Kt,paddingSM:gn,controlHeight:Yt,colorFillAlter:Rn,colorIcon:In,colorIconHover:vn,opacityLoading:on,colorBgContainer:$n,borderRadiusLG:An,colorFillContent:sr,colorFillSecondary:mr,controlInteractiveSize:go}=C,Er=new Ia.C(In),xr=new Ia.C(vn),lo=E,Io=2,Qr=new Ia.C(mr).onBackground($n).toHexShortString(),vo=new Ia.C(sr).onBackground($n).toHexShortString(),ho=new Ia.C(Rn).onBackground($n).toHexShortString(),cr=(0,Vi.TS)(C,{tableFontSize:Mt,tableBg:$n,tableRadius:An,tablePaddingVertical:$t,tablePaddingHorizontal:$t,tablePaddingVerticalMiddle:gn,tablePaddingHorizontalMiddle:Kt,tablePaddingVerticalSmall:Kt,tablePaddingHorizontalSmall:Kt,tableBorderColor:Et,tableHeaderTextColor:ke,tableHeaderBg:ho,tableFooterTextColor:ke,tableFooterBg:ho,tableHeaderCellSplitColor:Et,tableHeaderSortBg:Qr,tableHeaderSortHoverBg:vo,tableHeaderIconColor:Er.clone().setAlpha(Er.getAlpha()*on).toRgbString(),tableHeaderIconColorHover:xr.clone().setAlpha(xr.getAlpha()*on).toRgbString(),tableBodySortBg:ho,tableFixedHeaderSortActiveBg:Qr,tableHeaderFilterActiveBg:sr,tableFilterDropdownBg:$n,tableRowHoverBg:ho,tableSelectedRowBg:lo,tableSelectedRowHoverBg:le,zIndexTableFixed:Io,zIndexTableSticky:Io+1,tableFontSizeMiddle:Mt,tableFontSizeSmall:Mt,tableSelectionColumnWidth:Yt,tableExpandIconBg:$n,tableExpandColumnWidth:go+2*C.padding,tableExpandedRowBg:Rn,tableFilterDropdownWidth:120,tableFilterDropdownHeight:264,tableFilterDropdownSearchWidth:140,tableScrollThumbSize:8,tableScrollThumbBg:ce,tableScrollThumbBgHover:ke,tableScrollBg:Te});return[kl(cr),Xi(cr),Sl(cr),Tl(cr),Wa(cr),Hl(cr),Hi(cr),Ol(cr),Sl(cr),sl(cr),Ja(cr),Zl(cr),Uo(cr),Vl(cr),Rl(cr),Yi(cr)]});const io=[],lr=(C,E)=>{const{prefixCls:le,className:ce,rootClassName:ke,style:Te,size:Et,bordered:Mt,dropdownPrefixCls:$t,dataSource:Kt,pagination:gn,rowSelection:Yt,rowKey:Rn="key",rowClassName:In,columns:vn,children:on,childrenColumnName:$n,onChange:An,getPopupContainer:sr,loading:mr,expandIcon:go,expandable:Er,expandedRowRender:xr,expandIconColumnIndex:lo,indentSize:Io,scroll:Qr,sortDirections:vo,locale:ho,showSorterTooltip:cr=!0}=C,Kr=t.useMemo(()=>vn||Y(on),[vn,on]),yo=t.useMemo(()=>Kr.some(No=>No.responsive),[Kr]),ga=(0,co.Z)(yo),Fo=t.useMemo(()=>{const No=new Set(Object.keys(ga).filter(Ta=>ga[Ta]));return Kr.filter(Ta=>!Ta.responsive||Ta.responsive.some(Fa=>No.has(Fa)))},[Kr,ga]),eo=(0,Hr.Z)(C,["className","style","columns"]),{locale:Jo=Br.Z,direction:bo,table:ta,renderEmpty:po,getPrefixCls:Ya,getPopupContainer:Bi}=t.useContext(Pr.E_),Ma=(0,Ur.Z)(Et),hi=Object.assign(Object.assign({},Jo.Table),ho),Mo=Kt||io,aa=Ya("table",le),Oi=Ya("dropdown",$t),da=Object.assign({childrenColumnName:$n,expandIconColumnIndex:lo},Er),{childrenColumnName:Eo="children"}=da,so=t.useMemo(()=>Mo.some(No=>No==null?void 0:No[Eo])?"nest":xr||Er&&Er.expandedRowRender?"row":null,[Mo]),hr={body:t.useRef()},ir=t.useMemo(()=>typeof Rn=="function"?Rn:No=>No==null?void 0:No[Rn],[Rn]),[Dr]=(0,sn.Z)(Mo,Eo,ir),tr={},no=function(No,Ta){let Fa=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;var Ua,li,Ji;const qi=Object.assign(Object.assign({},tr),No);Fa&&((Ua=tr.resetPagination)===null||Ua===void 0||Ua.call(tr),!((li=qi.pagination)===null||li===void 0)&&li.current&&(qi.pagination.current=1),gn&&gn.onChange&&gn.onChange(1,(Ji=qi.pagination)===null||Ji===void 0?void 0:Ji.pageSize)),Qr&&Qr.scrollToFirstRowOnChange!==!1&&hr.body.current&&(0,Hn.Z)(0,{getContainer:()=>hr.body.current}),An==null||An(qi.pagination,qi.filters,qi.sorter,{currentDataSource:hn(Qa(Mo,qi.sorterStates,Eo),qi.filterStates),action:Ta})},Xo=(No,Ta)=>{no({sorter:No,sorterStates:Ta},"sort",!1)},[ba,pi,ti,Fl]=Ra({prefixCls:aa,mergedColumns:Fo,onSorterChange:Xo,sortDirections:vo||["ascend","descend"],tableLocale:hi,showSorterTooltip:cr}),wa=t.useMemo(()=>Qa(Mo,pi,Eo),[Mo,pi]);tr.sorter=Fl(),tr.sorterStates=pi;const wl=(No,Ta)=>{no({filters:No,filterStates:Ta},"filter",!0)},[yi,oi,Il]=_t({prefixCls:aa,locale:hi,dropdownPrefixCls:Oi,mergedColumns:Fo,onFilterChange:wl,getPopupContainer:sr||Bi}),Bo=hn(wa,oi);tr.filters=Il,tr.filterStates=oi;const ha=t.useMemo(()=>{const No={};return Object.keys(Il).forEach(Ta=>{Il[Ta]!==null&&(No[Ta]=Il[Ta])}),Object.assign(Object.assign({},ti),{filters:No})},[ti,Il]),[Ea]=Fi(ha),ai=(No,Ta)=>{no({pagination:Object.assign(Object.assign({},tr.pagination),{current:No,pageSize:Ta})},"paginate")},[Wo,Na]=Jn(Bo.length,ai,gn);tr.pagination=gn===!1?{}:xn(Wo,gn),tr.resetPagination=Na;const ci=t.useMemo(()=>{if(gn===!1||!Wo.pageSize)return Bo;const{current:No=1,total:Ta,pageSize:Fa=tn}=Wo;return Bo.lengthFa?Bo.slice((No-1)*Fa,No*Fa):Bo:Bo.slice((No-1)*Fa,No*Fa)},[!!gn,Bo,Wo&&Wo.current,Wo&&Wo.pageSize,Wo&&Wo.total]),[Zi,Qi]=oa({prefixCls:aa,data:Bo,pageData:ci,getRowKey:ir,getRecordByKey:Dr,expandType:so,childrenColumnName:Eo,locale:hi,getPopupContainer:sr||Bi},Yt),dl=(No,Ta,Fa)=>{let Ua;return typeof In=="function"?Ua=Me()(In(No,Ta,Fa)):Ua=Me()(In),Me()({[`${aa}-row-selected`]:Qi.has(ir(No,Ta))},Ua)};da.__PARENT_RENDER_ICON__=da.expandIcon,da.expandIcon=da.expandIcon||go||Qn(hi),so==="nest"&&da.expandIconColumnIndex===void 0?da.expandIconColumnIndex=Yt?1:0:da.expandIconColumnIndex>0&&Yt&&(da.expandIconColumnIndex-=1),typeof da.indentSize!="number"&&(da.indentSize=typeof Io=="number"?Io:15);const _a=t.useCallback(No=>Ea(Zi(yi(ba(No)))),[ba,yi,Zi]);let Ui,ki;if(gn!==!1&&(Wo!=null&&Wo.total)){let No;Wo.size?No=Wo.size:No=Ma==="small"||Ma==="middle"?"small":void 0;const Ta=li=>t.createElement(_r.Z,Object.assign({},Wo,{className:Me()(`${aa}-pagination ${aa}-pagination-${li}`,Wo.className),size:No})),Fa=bo==="rtl"?"left":"right",{position:Ua}=Wo;if(Ua!==null&&Array.isArray(Ua)){const li=Ua.find(Ll=>Ll.includes("top")),Ji=Ua.find(Ll=>Ll.includes("bottom")),qi=Ua.every(Ll=>`${Ll}`=="none");!li&&!Ji&&!qi&&(ki=Ta(Fa)),li&&(Ui=Ta(li.toLowerCase().replace("top",""))),Ji&&(ki=Ta(Ji.toLowerCase().replace("bottom","")))}else ki=Ta(Fa)}let ul;typeof mr=="boolean"?ul={spinning:mr}:typeof mr=="object"&&(ul=Object.assign({spinning:!0},mr));const[Ci,ii]=Dl(aa),fl=Me()(`${aa}-wrapper`,ta==null?void 0:ta.className,{[`${aa}-wrapper-rtl`]:bo==="rtl"},ce,ke,ii),Ri=Object.assign(Object.assign({},ta==null?void 0:ta.style),Te),zi=ho&&ho.emptyText||(po==null?void 0:po("Table"))||t.createElement(oo.Z,{componentName:"Table"});return Ci(t.createElement("div",{ref:E,className:fl,style:Ri},t.createElement(xo.Z,Object.assign({spinning:!1},ul),Ui,t.createElement(Un,Object.assign({},eo,{columns:Fo,direction:bo,expandable:da,prefixCls:aa,className:Me()({[`${aa}-middle`]:Ma==="middle",[`${aa}-small`]:Ma==="small",[`${aa}-bordered`]:Mt,[`${aa}-empty`]:Mo.length===0}),data:ci,rowKey:ir,rowClassName:dl,emptyText:zi,internalHooks:y,internalRefs:hr,transformColumns:_a})),ki)))};var Ro=t.forwardRef(lr);const Ka=(C,E)=>{const le=t.useRef(0);return le.current+=1,t.createElement(Ro,Object.assign({},C,{ref:E,_renderTimes:le.current}))},qa=t.forwardRef(Ka);qa.SELECTION_COLUMN=Yr,qa.EXPAND_COLUMN=i,qa.SELECTION_ALL=Ho,qa.SELECTION_INVERT=wo,qa.SELECTION_NONE=ca,qa.Column=er,qa.ColumnGroup=Lr,qa.Summary=O;var es=qa,xl=es},32814:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return Le}});var i=e(52495),y=e(87608),I=e.n(y),T=e(58757),F=e(1878),H=e(88858),t=e(37486),j=e(61836);function M(G){return typeof G!="string"?G:G.charAt(0).toUpperCase()+G.slice(1)}var Ce=e(78330),de=e(98251),w=e(52628),K=e(22151);const ne=(G,st,Me)=>{const P=M(Me);return{[`${G.componentCls}-${st}`]:{color:G[`color${Me}`],background:G[`color${P}Bg`],borderColor:G[`color${P}Border`],[`&${G.componentCls}-borderless`]:{borderColor:"transparent"}}}},f=G=>(0,de.Z)(G,(st,Me)=>{let{textColor:P,lightBorderColor:Re,lightColor:ct,darkColor:ee}=Me;return{[`${G.componentCls}-${st}`]:{color:P,background:ct,borderColor:Re,"&-inverse":{color:G.colorTextLightSolid,background:ee,borderColor:ee},[`&${G.componentCls}-borderless`]:{borderColor:"transparent"}}}}),te=G=>{const{paddingXXS:st,lineWidth:Me,tagPaddingHorizontal:P,componentCls:Re}=G,ct=P-Me,ee=st-Me;return{[Re]:Object.assign(Object.assign({},(0,Ce.Wf)(G)),{display:"inline-block",height:"auto",marginInlineEnd:G.marginXS,paddingInline:ct,fontSize:G.tagFontSize,lineHeight:G.tagLineHeight,whiteSpace:"nowrap",background:G.defaultBg,border:`${G.lineWidth}px ${G.lineType} ${G.colorBorder}`,borderRadius:G.borderRadiusSM,opacity:1,transition:`all ${G.motionDurationMid}`,textAlign:"start",position:"relative",[`&${Re}-rtl`]:{direction:"rtl"},"&, a, a:hover":{color:G.defaultColor},[`${Re}-close-icon`]:{marginInlineStart:ee,color:G.colorTextDescription,fontSize:G.tagIconSize,cursor:"pointer",transition:`all ${G.motionDurationMid}`,"&:hover":{color:G.colorTextHeading}},[`&${Re}-has-color`]:{borderColor:"transparent",[`&, a, a:hover, ${G.iconCls}-close, ${G.iconCls}-close:hover`]:{color:G.colorTextLightSolid}},["&-checkable"]:{backgroundColor:"transparent",borderColor:"transparent",cursor:"pointer",[`&:not(${Re}-checkable-checked):hover`]:{color:G.colorPrimary,backgroundColor:G.colorFillSecondary},"&:active, &-checked":{color:G.colorTextLightSolid},"&-checked":{backgroundColor:G.colorPrimary,"&:hover":{backgroundColor:G.colorPrimaryHover}},"&:active":{backgroundColor:G.colorPrimaryActive}},["&-hidden"]:{display:"none"},[`> ${G.iconCls} + span, > span + ${G.iconCls}`]:{marginInlineStart:ct}}),[`${Re}-borderless`]:{borderColor:"transparent",background:G.tagBorderlessBg}}};var A=(0,w.Z)("Tag",G=>{const{lineWidth:st,fontSizeIcon:Me}=G,P=G.fontSizeSM,Re=`${G.lineHeightSM*P}px`,ct=(0,K.TS)(G,{tagFontSize:P,tagLineHeight:Re,tagIconSize:Me-2*st,tagPaddingHorizontal:8,tagBorderlessBg:G.colorFillTertiary});return[te(ct),f(ct),ne(ct,"success","Success"),ne(ct,"processing","Info"),ne(ct,"error","Error"),ne(ct,"warning","Warning")]},G=>({defaultBg:G.colorFillQuaternary,defaultColor:G.colorText})),J=function(G,st){var Me={};for(var P in G)Object.prototype.hasOwnProperty.call(G,P)&&st.indexOf(P)<0&&(Me[P]=G[P]);if(G!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Re=0,P=Object.getOwnPropertySymbols(G);Re{const{prefixCls:st,className:Me,checked:P,onChange:Re,onClick:ct}=G,ee=J(G,["prefixCls","className","checked","onChange","onClick"]),{getPrefixCls:ue}=T.useContext(j.E_),se=U=>{Re==null||Re(!P),ct==null||ct(U)},Ke=ue("tag",st),[ot,Fe]=A(Ke),ut=I()(Ke,`${Ke}-checkable`,{[`${Ke}-checkable-checked`]:P},Me,Fe);return ot(T.createElement("span",Object.assign({},ee,{className:ut,onClick:se})))},g=function(G,st){var Me={};for(var P in G)Object.prototype.hasOwnProperty.call(G,P)&&st.indexOf(P)<0&&(Me[P]=G[P]);if(G!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Re=0,P=Object.getOwnPropertySymbols(G);Re{const{prefixCls:Me,className:P,rootClassName:Re,style:ct,children:ee,icon:ue,color:se,onClose:Ke,closeIcon:ot,closable:Fe,bordered:ut=!0}=G,U=g(G,["prefixCls","className","rootClassName","style","children","icon","color","onClose","closeIcon","closable","bordered"]),{getPrefixCls:W,direction:me,tag:he}=T.useContext(j.E_),[ht,at]=T.useState(!0);T.useEffect(()=>{"visible"in U&&at(U.visible)},[U.visible]);const pt=(0,F.o2)(se)||(0,F.yT)(se),ft=Object.assign(Object.assign({backgroundColor:se&&!pt?se:void 0},he==null?void 0:he.style),ct),gt=W("tag",Me),[Ut,It]=A(gt),bt=I()(gt,he==null?void 0:he.className,{[`${gt}-${se}`]:pt,[`${gt}-has-color`]:se&&!pt,[`${gt}-hidden`]:!ht,[`${gt}-rtl`]:me==="rtl",[`${gt}-borderless`]:!ut},P,Re,It),xt=Ae=>{Ae.stopPropagation(),Ke==null||Ke(Ae),!Ae.defaultPrevented&&at(!1)},[,ve]=(0,H.Z)(Fe,ot,Ae=>Ae===null?T.createElement(i.Z,{className:`${gt}-close-icon`,onClick:xt}):T.createElement("span",{className:`${gt}-close-icon`,onClick:xt},Ae),null,!1),Ze=typeof U.onClick=="function"||ee&&ee.type==="a",Oe=ue||null,je=Oe?T.createElement(T.Fragment,null,Oe,ee&&T.createElement("span",null,ee)):ee,O=T.createElement("span",Object.assign({},U,{ref:st,className:bt,style:ft}),je,ve);return Ut(Ze?T.createElement(t.Z,{component:"Tag"},O):O)},Zt=T.forwardRef(Ve);Zt.CheckableTag=z;var Le=Zt},98823:function(Dt,De,e){"use strict";var i=e(58757),y=e(15018),I=e(96905),T=function(Ce,de){var w={};for(var K in Ce)Object.prototype.hasOwnProperty.call(Ce,K)&&de.indexOf(K)<0&&(w[K]=Ce[K]);if(Ce!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ne=0,K=Object.getOwnPropertySymbols(Ce);nei.createElement(H,Object.assign({},Ce,{picker:"time",mode:void 0,ref:de}))),j=i.forwardRef((Ce,de)=>{var{addon:w,renderExtraFooter:K}=Ce,ne=T(Ce,["addon","renderExtraFooter"]);const f=i.useMemo(()=>{if(K)return K;if(w)return w},[w,K]);return i.createElement(F,Object.assign({},ne,{mode:void 0,ref:de,renderExtraFooter:f}))}),M=(0,y.Z)(j,"picker");j._InternalPanelDoNotUseOrYouWillBeFired=M,j.RangePicker=t,j._InternalPanelDoNotUseOrYouWillBeFired=M,De.Z=j},76185:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return kn}});var i=e(87608),y=e.n(i),I=e(60698),T=e(29140),F=e(57370),H=e(28314),t=e(47075),j=e(38790),M=e(18510),Ce=e(25092),de=e(16226),w=e(60409),K=e(75556),ne=e(58757),f=function(ae){var qe=ne.useRef({valueLabels:new Map});return ne.useMemo(function(){var _e=qe.current.valueLabels,re=new Map,Y=ae.map(function(Be){var we,vt=Be.value,Se=(we=Be.label)!==null&&we!==void 0?we:_e.get(vt);return re.set(vt,Se),(0,F.Z)((0,F.Z)({},Be),{},{label:Se})});return qe.current.valueLabels=re,[Y]},[ae])},te=function(ae,qe,_e,re){return ne.useMemo(function(){var Y=ae.map(function(Se){var X=Se.value;return X}),Be=qe.map(function(Se){var X=Se.value;return X}),we=Y.filter(function(Se){return!re[Se]});if(_e){var vt=(0,de.S)(Y,!0,re);Y=vt.checkedKeys,Be=vt.halfCheckedKeys}return[Array.from(new Set([].concat((0,T.Z)(we),(0,T.Z)(Y)))),Be]},[ae,qe,_e,re])},A=e(47857),J=function(ae,qe){return ne.useMemo(function(){var _e=(0,A.I8)(ae,{fieldNames:qe,initWrapper:function(Y){return(0,F.Z)((0,F.Z)({},Y),{},{valueEntities:new Map})},processEntity:function(Y,Be){var we=Y.node[qe.value];if(!1)var vt;Be.valueEntities.set(we,Y)}});return _e},[ae,qe])},$e=e(37734),z=e(42156),g=function(){return null},Ve=g,Zt=["children","value"];function Le(ae){return(0,z.Z)(ae).map(function(qe){if(!ne.isValidElement(qe)||!qe.type)return null;var _e=qe,re=_e.key,Y=_e.props,Be=Y.children,we=Y.value,vt=(0,t.Z)(Y,Zt),Se=(0,F.Z)({key:re,value:we},vt),X=Le(Be);return X.length&&(Se.children=X),Se}).filter(function(qe){return qe})}function G(ae){if(!ae)return ae;var qe=(0,F.Z)({},ae);return"props"in qe||Object.defineProperty(qe,"props",{get:function(){return(0,K.ZP)(!1,"New `rc-tree-select` not support return node instance as argument anymore. Please consider to remove `props` access."),qe}}),qe}function st(ae,qe,_e,re,Y,Be){var we=null,vt=null;function Se(){function X(Ne){var St=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"0",xe=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return Ne.map(function(fe,L){var D="".concat(St,"-").concat(L),x=fe[Be.value],oe=_e.includes(x),be=X(fe[Be.children]||[],D,oe),Ie=ne.createElement(Ve,fe,be.map(function(Ue){return Ue.node}));if(qe===x&&(we=Ie),oe){var Ye={pos:D,node:Ie,children:be};return xe||vt.push(Ye),Ye}return null}).filter(function(fe){return fe})}vt||(vt=[],X(re),vt.sort(function(Ne,St){var xe=Ne.node.props.value,fe=St.node.props.value,L=_e.indexOf(xe),D=_e.indexOf(fe);return L-D}))}Object.defineProperty(ae,"triggerNode",{get:function(){return(0,K.ZP)(!1,"`triggerNode` is deprecated. Please consider decoupling data with node."),Se(),we}}),Object.defineProperty(ae,"allCheckedNodes",{get:function(){return(0,K.ZP)(!1,"`allCheckedNodes` is deprecated. Please consider decoupling data with node."),Se(),Y?vt:vt.map(function(Ne){var St=Ne.node;return St})}})}var Me=function(ae,qe,_e){var re=_e.treeNodeFilterProp,Y=_e.filterTreeNode,Be=_e.fieldNames,we=Be.children;return ne.useMemo(function(){if(!qe||Y===!1)return ae;var vt;if(typeof Y=="function")vt=Y;else{var Se=qe.toUpperCase();vt=function(St,xe){var fe=xe[re];return String(fe).toUpperCase().includes(Se)}}function X(Ne){var St=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return Ne.reduce(function(xe,fe){var L=fe[we],D=St||vt(qe,G(fe)),x=X(L||[],D);return(D||x.length)&&xe.push((0,F.Z)((0,F.Z)({},fe),{},(0,$e.Z)({isLeaf:void 0},we,x))),xe},[])}return X(ae)},[ae,qe,we,re,Y])};function P(ae){var qe=ne.useRef();qe.current=ae;var _e=ne.useCallback(function(){return qe.current.apply(qe,arguments)},[]);return _e}function Re(ae,qe){var _e=qe.id,re=qe.pId,Y=qe.rootPId,Be={},we=[],vt=ae.map(function(Se){var X=(0,F.Z)({},Se),Ne=X[_e];return Be[Ne]=X,X.key=X.key||Ne,X});return vt.forEach(function(Se){var X=Se[re],Ne=Be[X];Ne&&(Ne.children=Ne.children||[],Ne.children.push(Se)),(X===Y||!Ne&&Y===null)&&we.push(Se)}),we}function ct(ae,qe,_e){return ne.useMemo(function(){return ae?_e?Re(ae,(0,F.Z)({id:"id",pId:"pId",rootPId:null},_e!==!0?_e:{})):ae:Le(qe)},[qe,_e,ae])}var ee=ne.createContext(null),ue=ee,se=e(29639),Ke=e(27903),ot=e(54665),Fe=ne.createContext(null),ut=Fe;function U(ae){return Array.isArray(ae)?ae:ae!==void 0?[ae]:[]}function W(ae){var qe=ae||{},_e=qe.label,re=qe.value,Y=qe.children,Be=re||"value";return{_title:_e?[_e]:["title","label"],value:Be,key:Be,children:Y||"children"}}function me(ae){return!ae||ae.disabled||ae.disableCheckbox||ae.checkable===!1}function he(ae,qe){var _e=[];function re(Y){Y.forEach(function(Be){var we=Be[qe.children];we&&(_e.push(Be[qe.value]),re(we))})}return re(ae),_e}function ht(ae){return ae==null}var at={width:0,height:0,display:"flex",overflow:"hidden",opacity:0,border:0,padding:0,margin:0},pt=function(qe,_e){var re=(0,M.lk)(),Y=re.prefixCls,Be=re.multiple,we=re.searchValue,vt=re.toggleOpen,Se=re.open,X=re.notFoundContent,Ne=ne.useContext(ut),St=Ne.virtual,xe=Ne.listHeight,fe=Ne.listItemHeight,L=Ne.treeData,D=Ne.fieldNames,x=Ne.onSelect,oe=Ne.dropdownMatchSelectWidth,be=Ne.treeExpandAction,Ie=ne.useContext(ue),Ye=Ie.checkable,Ue=Ie.checkedKeys,et=Ie.halfCheckedKeys,Ht=Ie.treeExpandedKeys,mt=Ie.treeDefaultExpandAll,Cn=Ie.treeDefaultExpandedKeys,bn=Ie.onTreeExpand,wt=Ie.treeIcon,fn=Ie.showTreeIcon,zt=Ie.switcherIcon,cn=Ie.treeLine,yn=Ie.treeNodeFilterProp,Fn=Ie.loadData,Yn=Ie.treeLoadedKeys,Zn=Ie.treeMotion,Kn=Ie.onTreeLoad,vr=Ie.keyEntities,jn=ne.useRef(),On=(0,Ke.Z)(function(){return L},[Se,L],function(Sr,ao){return ao[0]&&Sr[1]!==ao[1]}),_n=ne.useMemo(function(){return Ye?{checked:Ue,halfChecked:et}:null},[Ye,Ue,et]);ne.useEffect(function(){if(Se&&!Be&&Ue.length){var Sr;(Sr=jn.current)===null||Sr===void 0||Sr.scrollTo({key:Ue[0]})}},[Se]);var Gn=String(we).toLowerCase(),er=function(ao){return Gn?String(ao[yn]).toLowerCase().includes(Gn):!1},Cr=ne.useState(Cn),Lr=(0,H.Z)(Cr,2),Hr=Lr[0],Hn=Lr[1],Pr=ne.useState(null),oo=(0,H.Z)(Pr,2),Ur=oo[0],co=oo[1],Br=ne.useMemo(function(){return Ht?(0,T.Z)(Ht):we?Ur:Hr},[Hr,Ur,Ht,we]);ne.useEffect(function(){we&&co(he(L,D))},[we]);var _r=function(ao){Hn(ao),co(ao),bn&&bn(ao)},xo=function(ao){ao.preventDefault()},br=function(ao,Vr){var Ir=Vr.node;Ye&&me(Ir)||(x(Ir.key,{selected:!Ue.includes(Ir.key)}),Be||vt(!1))},Qn=ne.useState(null),Un=(0,H.Z)(Qn,2),wr=Un[0],or=Un[1],Or=vr[wr];if(ne.useImperativeHandle(_e,function(){var Sr;return{scrollTo:(Sr=jn.current)===null||Sr===void 0?void 0:Sr.scrollTo,onKeyDown:function(Vr){var Ir,Do=Vr.which;switch(Do){case se.Z.UP:case se.Z.DOWN:case se.Z.LEFT:case se.Z.RIGHT:(Ir=jn.current)===null||Ir===void 0||Ir.onKeyDown(Vr);break;case se.Z.ENTER:{if(Or){var sa=(Or==null?void 0:Or.node)||{},fa=sa.selectable,Oa=sa.value;fa!==!1&&br(null,{node:{key:wr},selected:!Ue.includes(Oa)})}break}case se.Z.ESC:vt(!1)}},onKeyUp:function(){}}}),On.length===0)return ne.createElement("div",{role:"listbox",className:"".concat(Y,"-empty"),onMouseDown:xo},X);var fo={fieldNames:D};return Yn&&(fo.loadedKeys=Yn),Br&&(fo.expandedKeys=Br),ne.createElement("div",{onMouseDown:xo},Or&&Se&&ne.createElement("span",{style:at,"aria-live":"assertive"},Or.node.value),ne.createElement(ot.Z,(0,I.Z)({ref:jn,focusable:!1,prefixCls:"".concat(Y,"-tree"),treeData:On,height:xe,itemHeight:fe,virtual:St!==!1&&oe!==!1,multiple:Be,icon:wt,showIcon:fn,switcherIcon:zt,showLine:cn,loadData:we?null:Fn,motion:Zn,activeKey:wr,checkable:Ye,checkStrictly:!0,checkedKeys:_n,selectedKeys:Ye?[]:Ue,defaultExpandAll:mt},fo,{onActiveChange:or,onSelect:br,onCheck:br,onExpand:_r,onLoad:Kn,filterTreeNode:er,expandAction:be})))},ft=ne.forwardRef(pt);ft.displayName="OptionList";var gt=ft,Ut="SHOW_ALL",It="SHOW_PARENT",bt="SHOW_CHILD";function xt(ae,qe,_e,re){var Y=new Set(ae);return qe===bt?ae.filter(function(Be){var we=_e[Be];return!(we&&we.children&&we.children.some(function(vt){var Se=vt.node;return Y.has(Se[re.value])})&&we.children.every(function(vt){var Se=vt.node;return me(Se)||Y.has(Se[re.value])}))}):qe===It?ae.filter(function(Be){var we=_e[Be],vt=we?we.parent:null;return!(vt&&!me(vt.node)&&Y.has(vt.key))}):ae}function ve(ae){var qe=ae.searchPlaceholder,_e=ae.treeCheckStrictly,re=ae.treeCheckable,Y=ae.labelInValue,Be=ae.value,we=ae.multiple;warning(!qe,"`searchPlaceholder` has been removed."),_e&&Y===!1&&warning(!1,"`treeCheckStrictly` will force set `labelInValue` to `true`."),(Y||_e)&&warning(toArray(Be).every(function(vt){return vt&&_typeof(vt)==="object"&&"value"in vt}),"Invalid prop `value` supplied to `TreeSelect`. You should use { label: string, value: string | number } or [{ label: string, value: string | number }] instead."),_e||we||re?warning(!Be||Array.isArray(Be),"`value` should be an array when `TreeSelect` is checkable or multiple."):warning(!Array.isArray(Be),"`value` should not be array when `TreeSelect` is single mode.")}var Ze=null,Oe=["id","prefixCls","value","defaultValue","onChange","onSelect","onDeselect","searchValue","inputValue","onSearch","autoClearSearchValue","filterTreeNode","treeNodeFilterProp","showCheckedStrategy","treeNodeLabelProp","multiple","treeCheckable","treeCheckStrictly","labelInValue","fieldNames","treeDataSimpleMode","treeData","children","loadData","treeLoadedKeys","onTreeLoad","treeDefaultExpandAll","treeExpandedKeys","treeDefaultExpandedKeys","onTreeExpand","treeExpandAction","virtual","listHeight","listItemHeight","onDropdownVisibleChange","dropdownMatchSelectWidth","treeLine","treeIcon","showTreeIcon","switcherIcon","treeMotion"];function je(ae){return!ae||(0,j.Z)(ae)!=="object"}var O=ne.forwardRef(function(ae,qe){var _e=ae.id,re=ae.prefixCls,Y=re===void 0?"rc-tree-select":re,Be=ae.value,we=ae.defaultValue,vt=ae.onChange,Se=ae.onSelect,X=ae.onDeselect,Ne=ae.searchValue,St=ae.inputValue,xe=ae.onSearch,fe=ae.autoClearSearchValue,L=fe===void 0?!0:fe,D=ae.filterTreeNode,x=ae.treeNodeFilterProp,oe=x===void 0?"value":x,be=ae.showCheckedStrategy,Ie=ae.treeNodeLabelProp,Ye=ae.multiple,Ue=ae.treeCheckable,et=ae.treeCheckStrictly,Ht=ae.labelInValue,mt=ae.fieldNames,Cn=ae.treeDataSimpleMode,bn=ae.treeData,wt=ae.children,fn=ae.loadData,zt=ae.treeLoadedKeys,cn=ae.onTreeLoad,yn=ae.treeDefaultExpandAll,Fn=ae.treeExpandedKeys,Yn=ae.treeDefaultExpandedKeys,Zn=ae.onTreeExpand,Kn=ae.treeExpandAction,vr=ae.virtual,jn=ae.listHeight,On=jn===void 0?200:jn,_n=ae.listItemHeight,Gn=_n===void 0?20:_n,er=ae.onDropdownVisibleChange,Cr=ae.dropdownMatchSelectWidth,Lr=Cr===void 0?!0:Cr,Hr=ae.treeLine,Hn=ae.treeIcon,Pr=ae.showTreeIcon,oo=ae.switcherIcon,Ur=ae.treeMotion,co=(0,t.Z)(ae,Oe),Br=(0,Ce.ZP)(_e),_r=Ue&&!et,xo=Ue||et,br=et||Ht,Qn=xo||Ye,Un=(0,w.Z)(we,{value:Be}),wr=(0,H.Z)(Un,2),or=wr[0],Or=wr[1],fo=ne.useMemo(function(){return Ue?be||bt:Ut},[be,Ue]),Sr=ne.useMemo(function(){return W(mt)},[JSON.stringify(mt)]),ao=(0,w.Z)("",{value:Ne!==void 0?Ne:St,postState:function(sn){return sn||""}}),Vr=(0,H.Z)(ao,2),Ir=Vr[0],Do=Vr[1],sa=function(sn){Do(sn),xe==null||xe(sn)},fa=ct(bn,wt,Cn),Oa=J(fa,Sr),Oo=Oa.keyEntities,zo=Oa.valueEntities,va=ne.useCallback(function(_t){var sn=[],mn=[];return _t.forEach(function(Ot){zo.has(Ot)?mn.push(Ot):sn.push(Ot)}),{missingRawValues:sn,existRawValues:mn}},[zo]),vi=Me(fa,Ir,{fieldNames:Sr,treeNodeFilterProp:oe,filterTreeNode:D}),ka=ne.useCallback(function(_t){if(_t){if(Ie)return _t[Ie];for(var sn=Sr._title,mn=0;mn{const{componentCls:qe,treePrefixCls:_e,colorBgElevated:re}=ae,Y=`.${_e}`;return[{[`${qe}-dropdown`]:[{padding:`${ae.paddingXS}px ${ae.paddingXS/2}px`},(0,Sn.Yk)(_e,(0,Xt.TS)(ae,{colorBgContainer:re})),{[Y]:{borderRadius:0,[`${Y}-list-holder-inner`]:{alignItems:"stretch",[`${Y}-treenode`]:{[`${Y}-node-content-wrapper`]:{flex:"auto"}}}}},(0,un.C2)(`${_e}-checkbox`,ae),{"&-rtl":{direction:"rtl",[`${Y}-switcher${Y}-switcher_close`]:{[`${Y}-switcher-icon svg`]:{transform:"rotate(90deg)"}}}}]}]};function an(ae,qe){return(0,pn.Z)("TreeSelect",_e=>{const re=(0,Xt.TS)(_e,{treePrefixCls:qe});return[Gt(re)]})(ae)}var ln=function(ae,qe){var _e={};for(var re in ae)Object.prototype.hasOwnProperty.call(ae,re)&&qe.indexOf(re)<0&&(_e[re]=ae[re]);if(ae!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,re=Object.getOwnPropertySymbols(ae);Y{var _e,{prefixCls:re,size:Y,disabled:Be,bordered:we=!0,className:vt,rootClassName:Se,treeCheckable:X,multiple:Ne,listHeight:St=256,listItemHeight:xe=26,placement:fe,notFoundContent:L,switcherIcon:D,treeLine:x,getPopupContainer:oe,popupClassName:be,dropdownClassName:Ie,treeIcon:Ye=!1,transitionName:Ue,choiceTransitionName:et="",status:Ht,treeExpandAction:mt,builtinPlacements:Cn,dropdownMatchSelectWidth:bn,popupMatchSelectWidth:wt,allowClear:fn}=ae,zt=ln(ae,["prefixCls","size","disabled","bordered","className","rootClassName","treeCheckable","multiple","listHeight","listItemHeight","placement","notFoundContent","switcherIcon","treeLine","getPopupContainer","popupClassName","dropdownClassName","treeIcon","transitionName","choiceTransitionName","status","treeExpandAction","builtinPlacements","dropdownMatchSelectWidth","popupMatchSelectWidth","allowClear"]);const{getPopupContainer:cn,getPrefixCls:yn,renderEmpty:Fn,direction:Yn,virtual:Zn,popupMatchSelectWidth:Kn,popupOverflow:vr}=ne.useContext(it.E_),jn=yn(),On=yn("select",re),_n=yn("select-tree",re),Gn=yn("tree-select",re),{compactSize:er,compactItemClassnames:Cr}=(0,At.ri)(On,Yn),[Lr,Hr]=(0,kt.Z)(On),[Hn]=an(Gn,_n),Pr=y()(be||Ie,`${Gn}-dropdown`,{[`${Gn}-dropdown-rtl`]:Yn==="rtl"},Se,Hr),oo=!!(X||Ne),Ur=(0,dt.Z)(zt.suffixIcon,zt.showArrow),co=(_e=wt!=null?wt:bn)!==null&&_e!==void 0?_e:Kn,{status:Br,hasFeedback:_r,isFormItemInput:xo,feedbackIcon:br}=ne.useContext(Vt.aM),Qn=(0,Xe.F)(Br,Ht),{suffixIcon:Un,removeIcon:wr,clearIcon:or}=(0,Ft.Z)(Object.assign(Object.assign({},zt),{multiple:oo,showSuffixIcon:Ur,hasFeedback:_r,feedbackIcon:br,prefixCls:On,componentName:"TreeSelect"})),Or=fn===!0?{clearIcon:or}:fn;let fo;L!==void 0?fo=L:fo=(Fn==null?void 0:Fn("Select"))||ne.createElement(Pt.Z,{componentName:"Select"});const Sr=(0,R.Z)(zt,["suffixIcon","itemIcon","removeIcon","clearIcon","switcherIcon"]),ao=ne.useMemo(()=>fe!==void 0?fe:Yn==="rtl"?"bottomRight":"bottomLeft",[fe,Yn]),Vr=(0,tt.Z)(Cn,vr),Ir=(0,Nt.Z)(zo=>{var va;return(va=Y!=null?Y:er)!==null&&va!==void 0?va:zo}),Do=ne.useContext(Ct.Z),sa=Be!=null?Be:Do,fa=y()(!re&&Gn,{[`${On}-lg`]:Ir==="large",[`${On}-sm`]:Ir==="small",[`${On}-rtl`]:Yn==="rtl",[`${On}-borderless`]:!we,[`${On}-in-form-item`]:xo},(0,Xe.Z)(On,Qn,_r),Cr,vt,Se,Hr),Oa=zo=>ne.createElement(Lt.Z,{prefixCls:_n,switcherIcon:D,treeNodeProps:zo,showLine:x}),Oo=ne.createElement(b,Object.assign({virtual:Zn,disabled:sa},Sr,{dropdownMatchSelectWidth:co,builtinPlacements:Vr,ref:qe,prefixCls:On,className:fa,listHeight:St,listItemHeight:xe,treeCheckable:X&&ne.createElement("span",{className:`${On}-tree-checkbox-inner`}),treeLine:!!x,suffixIcon:Un,multiple:oo,placement:ao,removeIcon:wr,allowClear:Or,switcherIcon:Oa,showTreeIcon:Ye,notFoundContent:fo,getPopupContainer:oe||cn,treeMotion:null,dropdownClassName:Pr,choiceTransitionName:(0,_.m)(jn,"",et),transitionName:(0,_.m)(jn,"slide-up",Ue),treeExpandAction:mt}));return Lr(Hn(Oo))},qn=ne.forwardRef(Pn),yr=(0,ie.Z)(qn);qn.TreeNode=Ve,qn.SHOW_ALL=Ut,qn.SHOW_PARENT=It,qn.SHOW_CHILD=bt,qn._InternalPanelDoNotUseOrYouWillBeFired=yr;var kn=qn},7992:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return ht}});var i=e(54665),y=e(29140),I=e(85976),T=e(60698),F=e(58757),H={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z"}}]},name:"folder-open",theme:"outlined"},t=H,j=e(17202),M=function(pt,ft){return F.createElement(j.Z,(0,T.Z)({},pt,{ref:ft,icon:t}))},Ce=F.forwardRef(M),de={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"}}]},name:"folder",theme:"outlined"},w=de,K=function(pt,ft){return F.createElement(j.Z,(0,T.Z)({},pt,{ref:ft,icon:w}))},ne=F.forwardRef(K),f=e(87608),te=e.n(f),A=e(39919),J=e(47857),$e=e(61836),z={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z"}}]},name:"holder",theme:"outlined"},g=z,Ve=function(pt,ft){return F.createElement(j.Z,(0,T.Z)({},pt,{ref:ft,icon:g}))},Zt=F.forwardRef(Ve),Le=e(90881),G=e(53067);const st=4;function Me(at){const{dropPosition:pt,dropLevelOffset:ft,prefixCls:gt,indent:Ut,direction:It="ltr"}=at,bt=It==="ltr"?"left":"right",xt=It==="ltr"?"right":"left",ve={[bt]:-ft*Ut+st,[xt]:0};switch(pt){case-1:ve.top=-3;break;case 1:ve.bottom=-3;break;default:ve.bottom=-3,ve[bt]=Ut+st;break}return F.createElement("div",{style:ve,className:`${gt}-drop-indicator`})}var P=e(95171),ct=F.forwardRef((at,pt)=>{const{getPrefixCls:ft,direction:gt,virtual:Ut,tree:It}=F.useContext($e.E_),{prefixCls:bt,className:xt,showIcon:ve=!1,showLine:Ze,switcherIcon:Oe,blockNode:je=!1,children:O,checkable:Ae=!1,selectable:Z=!0,draggable:b,motion:R,style:ie}=at,_=ft("tree",bt),Xe=ft(),it=R!=null?R:Object.assign(Object.assign({},(0,Le.Z)(Xe)),{motionAppear:!1}),Ct=Object.assign(Object.assign({},at),{checkable:Ae,selectable:Z,showIcon:ve,motion:it,blockNode:je,showLine:!!Ze,dropIndicatorRender:Me}),[Pt,Nt]=(0,G.ZP)(_),Vt=F.useMemo(()=>{if(!b)return!1;let tt={};switch(typeof b){case"function":tt.nodeDraggable=b;break;case"object":tt=Object.assign({},b);break;default:break}return tt.icon!==!1&&(tt.icon=tt.icon||F.createElement(Zt,null)),tt},[b]),kt=tt=>F.createElement(P.Z,{prefixCls:_,switcherIcon:Oe,treeNodeProps:tt,showLine:Ze});return Pt(F.createElement(i.Z,Object.assign({itemHeight:20,ref:pt,virtual:Ut},Ct,{style:Object.assign(Object.assign({},It==null?void 0:It.style),ie),prefixCls:_,className:te()({[`${_}-icon-hide`]:!ve,[`${_}-block-node`]:je,[`${_}-unselectable`]:!Z,[`${_}-rtl`]:gt==="rtl"},It==null?void 0:It.className,xt,Nt),direction:gt,checkable:Ae&&F.createElement("span",{className:`${_}-checkbox-inner`}),selectable:Z,switcherIcon:kt,draggable:Vt}),O))}),ee;(function(at){at[at.None=0]="None",at[at.Start=1]="Start",at[at.End=2]="End"})(ee||(ee={}));function ue(at,pt){function ft(gt){const{key:Ut,children:It}=gt;pt(Ut,gt)!==!1&&ue(It||[],pt)}at.forEach(ft)}function se(at){let{treeData:pt,expandedKeys:ft,startKey:gt,endKey:Ut}=at;const It=[];let bt=ee.None;if(gt&>===Ut)return[gt];if(!gt||!Ut)return[];function xt(ve){return ve===gt||ve===Ut}return ue(pt,ve=>{if(bt===ee.End)return!1;if(xt(ve)){if(It.push(ve),bt===ee.None)bt=ee.Start;else if(bt===ee.Start)return bt=ee.End,!1}else bt===ee.Start&&It.push(ve);return ft.includes(ve)}),It}function Ke(at,pt){const ft=(0,y.Z)(pt),gt=[];return ue(at,(Ut,It)=>{const bt=ft.indexOf(Ut);return bt!==-1&&(gt.push(It),ft.splice(bt,1)),!!ft.length}),gt}var ot=function(at,pt){var ft={};for(var gt in at)Object.prototype.hasOwnProperty.call(at,gt)&&pt.indexOf(gt)<0&&(ft[gt]=at[gt]);if(at!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Ut=0,gt=Object.getOwnPropertySymbols(at);Ut{var{defaultExpandAll:ft,defaultExpandParent:gt,defaultExpandedKeys:Ut}=at,It=ot(at,["defaultExpandAll","defaultExpandParent","defaultExpandedKeys"]);const bt=F.useRef(),xt=F.useRef(),ve=()=>{const{keyEntities:Vt}=(0,J.I8)(ut(It));let kt;return ft?kt=Object.keys(Vt):gt?kt=(0,A.r7)(It.expandedKeys||Ut||[],Vt):kt=It.expandedKeys||Ut,kt},[Ze,Oe]=F.useState(It.selectedKeys||It.defaultSelectedKeys||[]),[je,O]=F.useState(()=>ve());F.useEffect(()=>{"selectedKeys"in It&&Oe(It.selectedKeys)},[It.selectedKeys]),F.useEffect(()=>{"expandedKeys"in It&&O(It.expandedKeys)},[It.expandedKeys]);const Ae=(Vt,kt)=>{var tt;return"expandedKeys"in It||O(Vt),(tt=It.onExpand)===null||tt===void 0?void 0:tt.call(It,Vt,kt)},Z=(Vt,kt)=>{var tt;const{multiple:dt}=It,{node:Ft,nativeEvent:At}=kt,{key:Lt=""}=Ft,un=ut(It),Xt=Object.assign(Object.assign({},kt),{selected:!0}),pn=(At==null?void 0:At.ctrlKey)||(At==null?void 0:At.metaKey),Sn=At==null?void 0:At.shiftKey;let Gt;dt&&pn?(Gt=Vt,bt.current=Lt,xt.current=Gt,Xt.selectedNodes=Ke(un,Gt)):dt&&Sn?(Gt=Array.from(new Set([].concat((0,y.Z)(xt.current||[]),(0,y.Z)(se({treeData:un,expandedKeys:je,startKey:Lt,endKey:bt.current}))))),Xt.selectedNodes=Ke(un,Gt)):(Gt=[Lt],bt.current=Lt,xt.current=Gt,Xt.selectedNodes=Ke(un,Gt)),(tt=It.onSelect)===null||tt===void 0||tt.call(It,Gt,Xt),"selectedKeys"in It||Oe(Gt)},{getPrefixCls:b,direction:R}=F.useContext($e.E_),{prefixCls:ie,className:_,showIcon:Xe=!0,expandAction:it="click"}=It,Ct=ot(It,["prefixCls","className","showIcon","expandAction"]),Pt=b("tree",ie),Nt=te()(`${Pt}-directory`,{[`${Pt}-directory-rtl`]:R==="rtl"},_);return F.createElement(ct,Object.assign({icon:Fe,ref:pt,blockNode:!0},Ct,{showIcon:Xe,expandAction:it,prefixCls:Pt,className:Nt,expandedKeys:je,selectedKeys:Ze,onSelect:Z,onExpand:Ae}))};var me=F.forwardRef(U);const he=ct;he.DirectoryTree=me,he.TreeNode=i.O;var ht=he},53067:function(Dt,De,e){"use strict";e.d(De,{Yk:function(){return w}});var i=e(57793),y=e(7316),I=e(78330),T=e(41086),F=e(22151),H=e(52628);const t=new i.E4("ant-tree-node-fx-do-not-use",{"0%":{opacity:0},"100%":{opacity:1}}),j=(K,ne)=>({[`.${K}-switcher-icon`]:{display:"inline-block",fontSize:10,verticalAlign:"baseline",svg:{transition:`transform ${ne.motionDurationSlow}`}}}),M=(K,ne)=>({[`.${K}-drop-indicator`]:{position:"absolute",zIndex:1,height:2,backgroundColor:ne.colorPrimary,borderRadius:1,pointerEvents:"none","&:after":{position:"absolute",top:-3,insetInlineStart:-6,width:8,height:8,backgroundColor:"transparent",border:`${ne.lineWidthBold}px solid ${ne.colorPrimary}`,borderRadius:"50%",content:'""'}}}),Ce=(K,ne)=>{const{treeCls:f,treeNodeCls:te,treeNodePadding:A,treeTitleHeight:J}=ne,$e=ne.paddingXS;return{[f]:Object.assign(Object.assign({},(0,I.Wf)(ne)),{background:ne.colorBgContainer,borderRadius:ne.borderRadius,transition:`background-color ${ne.motionDurationSlow}`,[`&${f}-rtl`]:{[`${f}-switcher`]:{"&_close":{[`${f}-switcher-icon`]:{svg:{transform:"rotate(90deg)"}}}}},[`&-focused:not(:hover):not(${f}-active-focused)`]:Object.assign({},(0,I.oN)(ne)),[`${f}-list-holder-inner`]:{alignItems:"flex-start"},[`&${f}-block-node`]:{[`${f}-list-holder-inner`]:{alignItems:"stretch",[`${f}-node-content-wrapper`]:{flex:"auto"},[`${te}.dragging`]:{position:"relative","&:after":{position:"absolute",top:0,insetInlineEnd:0,bottom:A,insetInlineStart:0,border:`1px solid ${ne.colorPrimary}`,opacity:0,animationName:t,animationDuration:ne.motionDurationSlow,animationPlayState:"running",animationFillMode:"forwards",content:'""',pointerEvents:"none"}}}},[`${te}`]:{display:"flex",alignItems:"flex-start",padding:`0 0 ${A}px 0`,outline:"none","&-rtl":{direction:"rtl"},"&-disabled":{[`${f}-node-content-wrapper`]:{color:ne.colorTextDisabled,cursor:"not-allowed","&:hover":{background:"transparent"}}},[`&-active ${f}-node-content-wrapper`]:Object.assign({},(0,I.oN)(ne)),[`&:not(${te}-disabled).filter-node ${f}-title`]:{color:"inherit",fontWeight:500},"&-draggable":{[`${f}-draggable-icon`]:{flexShrink:0,width:J,lineHeight:`${J}px`,textAlign:"center",visibility:"visible",opacity:.2,transition:`opacity ${ne.motionDurationSlow}`,[`${te}:hover &`]:{opacity:.45}},[`&${te}-disabled`]:{[`${f}-draggable-icon`]:{visibility:"hidden"}}}},[`${f}-indent`]:{alignSelf:"stretch",whiteSpace:"nowrap",userSelect:"none","&-unit":{display:"inline-block",width:J}},[`${f}-draggable-icon`]:{visibility:"hidden"},[`${f}-switcher`]:Object.assign(Object.assign({},j(K,ne)),{position:"relative",flex:"none",alignSelf:"stretch",width:J,margin:0,lineHeight:`${J}px`,textAlign:"center",cursor:"pointer",userSelect:"none","&-noop":{cursor:"default"},"&_close":{[`${f}-switcher-icon`]:{svg:{transform:"rotate(-90deg)"}}},"&-loading-icon":{color:ne.colorPrimary},"&-leaf-line":{position:"relative",zIndex:1,display:"inline-block",width:"100%",height:"100%","&:before":{position:"absolute",top:0,insetInlineEnd:J/2,bottom:-A,marginInlineStart:-1,borderInlineEnd:`1px solid ${ne.colorBorder}`,content:'""'},"&:after":{position:"absolute",width:J/2*.8,height:J/2,borderBottom:`1px solid ${ne.colorBorder}`,content:'""'}}}),[`${f}-checkbox`]:{top:"initial",marginInlineEnd:$e},[`${f}-node-content-wrapper, ${f}-checkbox + span`]:{position:"relative",zIndex:"auto",minHeight:J,margin:0,padding:`0 ${ne.paddingXS/2}px`,color:"inherit",lineHeight:`${J}px`,background:"transparent",borderRadius:ne.borderRadius,cursor:"pointer",transition:`all ${ne.motionDurationMid}, border 0s, line-height 0s, box-shadow 0s`,"&:hover":{backgroundColor:ne.controlItemBgHover},[`&${f}-node-selected`]:{backgroundColor:ne.controlItemBgActive},[`${f}-iconEle`]:{display:"inline-block",width:J,height:J,lineHeight:`${J}px`,textAlign:"center",verticalAlign:"top","&:empty":{display:"none"}}},[`${f}-unselectable ${f}-node-content-wrapper:hover`]:{backgroundColor:"transparent"},[`${f}-node-content-wrapper`]:Object.assign({lineHeight:`${J}px`,userSelect:"none"},M(K,ne)),[`${te}.drop-container`]:{"> [draggable]":{boxShadow:`0 0 0 2px ${ne.colorPrimary}`}},"&-show-line":{[`${f}-indent`]:{"&-unit":{position:"relative",height:"100%","&:before":{position:"absolute",top:0,insetInlineEnd:J/2,bottom:-A,borderInlineEnd:`1px solid ${ne.colorBorder}`,content:'""'},"&-end":{"&:before":{display:"none"}}}},[`${f}-switcher`]:{background:"transparent","&-line-icon":{verticalAlign:"-0.15em"}}},[`${te}-leaf-last`]:{[`${f}-switcher`]:{"&-leaf-line":{"&:before":{top:"auto !important",bottom:"auto !important",height:`${J/2}px !important`}}}}})}},de=K=>{const{treeCls:ne,treeNodeCls:f,treeNodePadding:te}=K;return{[`${ne}${ne}-directory`]:{[f]:{position:"relative","&:before":{position:"absolute",top:0,insetInlineEnd:0,bottom:te,insetInlineStart:0,transition:`background-color ${K.motionDurationMid}`,content:'""',pointerEvents:"none"},"&:hover":{"&:before":{background:K.controlItemBgHover}},"> *":{zIndex:1},[`${ne}-switcher`]:{transition:`color ${K.motionDurationMid}`},[`${ne}-node-content-wrapper`]:{borderRadius:0,userSelect:"none","&:hover":{background:"transparent"},[`&${ne}-node-selected`]:{color:K.colorTextLightSolid,background:"transparent"}},"&-selected":{[` - &:hover::before, - &::before - `]:{background:K.colorPrimary},[`${ne}-switcher`]:{color:K.colorTextLightSolid},[`${ne}-node-content-wrapper`]:{color:K.colorTextLightSolid,background:"transparent"}}}}}},w=(K,ne)=>{const f=`.${K}`,te=`${f}-treenode`,A=ne.paddingXS/2,J=ne.controlHeightSM,$e=(0,F.TS)(ne,{treeCls:f,treeNodeCls:te,treeNodePadding:A,treeTitleHeight:J});return[Ce(K,$e),de($e)]};De.ZP=(0,H.Z)("Tree",(K,ne)=>{let{prefixCls:f}=ne;return[{[K.componentCls]:(0,y.C2)(`${f}-checkbox`,K)},w(f,K),(0,T.Z)(K)]})},95171:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return Ve}});var i=e(60698),y=e(58757),I={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"}}]},name:"caret-down",theme:"filled"},T=I,F=e(17202),H=function(Le,G){return y.createElement(F.Z,(0,i.Z)({},Le,{ref:G,icon:T}))},t=y.forwardRef(H),j=e(85976),M=e(25755),Ce={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"}},{tag:"path",attrs:{d:"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"minus-square",theme:"outlined"},de=Ce,w=function(Le,G){return y.createElement(F.Z,(0,i.Z)({},Le,{ref:G,icon:de}))},K=y.forwardRef(w),ne={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"}},{tag:"path",attrs:{d:"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"plus-square",theme:"outlined"},f=ne,te=function(Le,G){return y.createElement(F.Z,(0,i.Z)({},Le,{ref:G,icon:f}))},A=y.forwardRef(te),J=e(87608),$e=e.n(J),z=e(37047),Ve=Zt=>{const{prefixCls:Le,switcherIcon:G,treeNodeProps:st,showLine:Me}=Zt,{isLeaf:P,expanded:Re,loading:ct}=st;if(ct)return y.createElement(M.Z,{className:`${Le}-switcher-loading-icon`});let ee;if(Me&&typeof Me=="object"&&(ee=Me.showLeafIcon),P){if(!Me)return null;if(typeof ee!="boolean"&&ee){const Ke=typeof ee=="function"?ee(st):ee,ot=`${Le}-switcher-line-custom-icon`;return(0,z.l$)(Ke)?(0,z.Tm)(Ke,{className:$e()(Ke.props.className||"",ot)}):Ke}return ee?y.createElement(j.Z,{className:`${Le}-switcher-line-icon`}):y.createElement("span",{className:`${Le}-switcher-leaf-line`})}const ue=`${Le}-switcher-icon`,se=typeof G=="function"?G(st):G;return(0,z.l$)(se)?(0,z.Tm)(se,{className:$e()(se.props.className||"",ue)}):se!==void 0?se:Me?Re?y.createElement(K,{className:`${Le}-switcher-line-icon`}):y.createElement(A,{className:`${Le}-switcher-line-icon`}):y.createElement(t,{className:ue})}},45151:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return kn}});var i=e(58757),y=e(35725),I=e(15655),T=e(60698),F={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"}}]},name:"edit",theme:"outlined"},H=F,t=e(17202),j=function(qe,_e){return i.createElement(t.Z,(0,T.Z)({},qe,{ref:_e,icon:H}))},M=i.forwardRef(j),Ce=e(87608),de=e.n(Ce),w=e(86724),K=e.n(w),ne=e(19425),f=e(42156),te=e(81334),A=e(60409),J=e(98186),$e=e(21319),z=e(91923),g=e(74122),Ve=e(61836),Zt=e(29487),Le=e(74820),G={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z"}}]},name:"enter",theme:"outlined"},st=G,Me=function(qe,_e){return i.createElement(t.Z,(0,T.Z)({},qe,{ref:_e,icon:st}))},P=i.forwardRef(Me),Re=e(29639),ct=e(37047),ee=e(79617),ue=e(2465),se=e(52628),Ke=e(26134),ot=e(46902);const Fe=(ae,qe,_e,re)=>{const{titleMarginBottom:Y,fontWeightStrong:Be}=re;return{marginBottom:Y,color:_e,fontWeight:Be,fontSize:ae,lineHeight:qe}},ut=ae=>{const qe=[1,2,3,4,5],_e={};return qe.forEach(re=>{_e[` - h${re}&, - div&-h${re}, - div&-h${re} > textarea, - h${re} - `]=Fe(ae[`fontSizeHeading${re}`],ae[`lineHeightHeading${re}`],ae.colorTextHeading,ae)}),_e},U=ae=>{const{componentCls:qe}=ae;return{"a&, a":Object.assign(Object.assign({},(0,ue.N)(ae)),{textDecoration:ae.linkDecoration,"&:active, &:hover":{textDecoration:ae.linkHoverDecoration},[`&[disabled], &${qe}-disabled`]:{color:ae.colorTextDisabled,cursor:"not-allowed","&:active, &:hover":{color:ae.colorTextDisabled},"&:active":{pointerEvents:"none"}}})}},W=ae=>({code:{margin:"0 0.2em",paddingInline:"0.4em",paddingBlock:"0.2em 0.1em",fontSize:"85%",fontFamily:ae.fontFamilyCode,background:"rgba(150, 150, 150, 0.1)",border:"1px solid rgba(100, 100, 100, 0.2)",borderRadius:3},kbd:{margin:"0 0.2em",paddingInline:"0.4em",paddingBlock:"0.15em 0.1em",fontSize:"90%",fontFamily:ae.fontFamilyCode,background:"rgba(150, 150, 150, 0.06)",border:"1px solid rgba(100, 100, 100, 0.2)",borderBottomWidth:2,borderRadius:3},mark:{padding:0,backgroundColor:Ke.gold[2]},"u, ins":{textDecoration:"underline",textDecorationSkipInk:"auto"},"s, del":{textDecoration:"line-through"},strong:{fontWeight:600},"ul, ol":{marginInline:0,marginBlock:"0 1em",padding:0,li:{marginInline:"20px 0",marginBlock:0,paddingInline:"4px 0",paddingBlock:0}},ul:{listStyleType:"circle",ul:{listStyleType:"disc"}},ol:{listStyleType:"decimal"},"pre, blockquote":{margin:"1em 0"},pre:{padding:"0.4em 0.6em",whiteSpace:"pre-wrap",wordWrap:"break-word",background:"rgba(150, 150, 150, 0.1)",border:"1px solid rgba(100, 100, 100, 0.2)",borderRadius:3,fontFamily:ae.fontFamilyCode,code:{display:"inline",margin:0,padding:0,fontSize:"inherit",fontFamily:"inherit",background:"transparent",border:0}},blockquote:{paddingInline:"0.6em 0",paddingBlock:0,borderInlineStart:"4px solid rgba(100, 100, 100, 0.2)",opacity:.85}}),me=ae=>{const{componentCls:qe}=ae,re=(0,ot.e5)(ae).inputPaddingVertical+1;return{"&-edit-content":{position:"relative","div&":{insetInlineStart:-ae.paddingSM,marginTop:-re,marginBottom:`calc(1em - ${re}px)`},[`${qe}-edit-content-confirm`]:{position:"absolute",insetInlineEnd:ae.marginXS+2,insetBlockEnd:ae.marginXS,color:ae.colorTextDescription,fontWeight:"normal",fontSize:ae.fontSize,fontStyle:"normal",pointerEvents:"none"},textarea:{margin:"0!important",MozTransition:"none",height:"1em"}}}},he=ae=>({"&-copy-success":{[` - &, - &:hover, - &:focus`]:{color:ae.colorSuccess}}}),ht=()=>({[` - a&-ellipsis, - span&-ellipsis - `]:{display:"inline-block",maxWidth:"100%"},"&-single-line":{whiteSpace:"nowrap"},"&-ellipsis-single-line":{overflow:"hidden",textOverflow:"ellipsis","a&, span&":{verticalAlign:"bottom"}},"&-ellipsis-multiple-line":{display:"-webkit-box",overflow:"hidden",WebkitLineClamp:3,WebkitBoxOrient:"vertical"}}),at=ae=>{const{componentCls:qe,titleMarginTop:_e}=ae;return{[qe]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:ae.colorText,wordBreak:"break-word",lineHeight:ae.lineHeight,[`&${qe}-secondary`]:{color:ae.colorTextDescription},[`&${qe}-success`]:{color:ae.colorSuccess},[`&${qe}-warning`]:{color:ae.colorWarning},[`&${qe}-danger`]:{color:ae.colorError,"a&:active, a&:focus":{color:ae.colorErrorActive},"a&:hover":{color:ae.colorErrorHover}},[`&${qe}-disabled`]:{color:ae.colorTextDisabled,cursor:"not-allowed",userSelect:"none"},[` - div&, - p - `]:{marginBottom:"1em"}},ut(ae)),{[` - & + h1${qe}, - & + h2${qe}, - & + h3${qe}, - & + h4${qe}, - & + h5${qe} - `]:{marginTop:_e},[` - div, - ul, - li, - p, - h1, - h2, - h3, - h4, - h5`]:{[` - + h1, - + h2, - + h3, - + h4, - + h5 - `]:{marginTop:_e}}}),W(ae)),U(ae)),{[` - ${qe}-expand, - ${qe}-edit, - ${qe}-copy - `]:Object.assign(Object.assign({},(0,ue.N)(ae)),{marginInlineStart:ae.marginXXS})}),me(ae)),he(ae)),ht()),{"&-rtl":{direction:"rtl"}})}};var pt=(0,se.Z)("Typography",ae=>[at(ae)],()=>({titleMarginTop:"1.2em",titleMarginBottom:"0.5em"})),gt=ae=>{const{prefixCls:qe,"aria-label":_e,className:re,style:Y,direction:Be,maxLength:we,autoSize:vt=!0,value:Se,onSave:X,onCancel:Ne,onEnd:St,component:xe,enterIcon:fe=i.createElement(P,null)}=ae,L=i.useRef(null),D=i.useRef(!1),x=i.useRef(),[oe,be]=i.useState(Se);i.useEffect(()=>{be(Se)},[Se]),i.useEffect(()=>{if(L.current&&L.current.resizableTextArea){const{textArea:cn}=L.current.resizableTextArea;cn.focus();const{length:yn}=cn.value;cn.setSelectionRange(yn,yn)}},[]);const Ie=cn=>{let{target:yn}=cn;be(yn.value.replace(/[\n\r]/g,""))},Ye=()=>{D.current=!0},Ue=()=>{D.current=!1},et=cn=>{let{keyCode:yn}=cn;D.current||(x.current=yn)},Ht=()=>{X(oe.trim())},mt=cn=>{let{keyCode:yn,ctrlKey:Fn,altKey:Yn,metaKey:Zn,shiftKey:Kn}=cn;x.current===yn&&!D.current&&!Fn&&!Yn&&!Zn&&!Kn&&(yn===Re.Z.ENTER?(Ht(),St==null||St()):yn===Re.Z.ESC&&Ne())},Cn=()=>{Ht()},bn=xe?`${qe}-${xe}`:"",[wt,fn]=pt(qe),zt=de()(qe,`${qe}-edit-content`,{[`${qe}-rtl`]:Be==="rtl"},re,bn,fn);return wt(i.createElement("div",{className:zt,style:Y},i.createElement(ee.Z,{ref:L,maxLength:we,value:oe,onChange:Ie,onKeyDown:et,onKeyUp:mt,onCompositionStart:Ye,onCompositionEnd:Ue,onBlur:Cn,"aria-label":_e,rows:1,autoSize:vt}),fe!==null?(0,ct.Tm)(fe,{className:`${qe}-edit-content-confirm`}):null))},Ut=function(ae,qe){var _e={};for(var re in ae)Object.prototype.hasOwnProperty.call(ae,re)&&qe.indexOf(re)<0&&(_e[re]=ae[re]);if(ae!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,re=Object.getOwnPropertySymbols(ae);Y{const{prefixCls:_e,component:re="article",className:Y,rootClassName:Be,setContentRef:we,children:vt,direction:Se,style:X}=ae,Ne=Ut(ae,["prefixCls","component","className","rootClassName","setContentRef","children","direction","style"]),{getPrefixCls:St,direction:xe,typography:fe}=i.useContext(Ve.E_),L=Se!=null?Se:xe;let D=qe;we&&(D=(0,$e.sQ)(qe,we));const x=St("typography",_e),[oe,be]=pt(x),Ie=de()(x,fe==null?void 0:fe.className,{[`${x}-rtl`]:L==="rtl"},Y,Be,be),Ye=Object.assign(Object.assign({},fe==null?void 0:fe.style),X);return oe(i.createElement(re,Object.assign({className:Ie,style:Ye,ref:D},Ne),vt))});function xt(ae,qe){return i.useMemo(()=>{const _e=!!ae;return[_e,Object.assign(Object.assign({},qe),_e&&typeof ae=="object"?ae:null)]},[ae])}var Ze=(ae,qe)=>{const _e=i.useRef(!1);i.useEffect(()=>{_e.current?ae():_e.current=!0},qe)};function Oe(ae){const qe=typeof ae;return qe==="string"||qe==="number"}function je(ae){let qe=0;return ae.forEach(_e=>{Oe(_e)?qe+=String(_e).length:qe+=1}),qe}function O(ae,qe){let _e=0;const re=[];for(let Y=0;Yqe){const X=qe-_e;return re.push(String(Be).slice(0,X)),re}re.push(Be),_e=Se}return ae}const Ae=0,Z=1,b=2,R=3,ie=4;var Xe=ae=>{let{enabledMeasure:qe,children:_e,text:re,width:Y,fontSize:Be,rows:we,onEllipsis:vt}=ae;const[[Se,X,Ne],St]=i.useState([0,0,0]),[xe,fe]=i.useState(Ae),[L,D]=i.useState(0),x=i.useRef(null),oe=i.useRef(null),be=i.useMemo(()=>(0,f.Z)(re),[re]),Ie=i.useMemo(()=>je(be),[be]),Ye=i.useMemo(()=>!qe||xe!==R?_e(be,!1):_e(O(be,X),X{qe&&Y&&Be&&Ie&&(fe(Z),St([0,Math.ceil(Ie/2),Ie]))},[qe,Y,Be,re,Ie,we]),(0,te.Z)(()=>{var mt;xe===Z&&D(((mt=x.current)===null||mt===void 0?void 0:mt.offsetHeight)||0)},[xe]),(0,te.Z)(()=>{var mt,Cn;if(L){if(xe===Z){const bn=((mt=oe.current)===null||mt===void 0?void 0:mt.offsetHeight)||0,wt=we*L;bn<=wt?(fe(ie),vt(!1)):fe(b)}else if(xe===b)if(Se!==Ne){const bn=((Cn=oe.current)===null||Cn===void 0?void 0:Cn.offsetHeight)||0,wt=we*L;let fn=Se,zt=Ne;Se===Ne-1?zt=Se:bn<=wt?fn=X:zt=X;const cn=Math.ceil((fn+zt)/2);St([fn,cn,zt])}else fe(R),vt(!0)}},[xe,Se,Ne,we,L]);const Ue={width:Y,whiteSpace:"normal",margin:0,padding:0},et=(mt,Cn,bn)=>i.createElement("span",{"aria-hidden":!0,ref:Cn,style:Object.assign({position:"fixed",display:"block",left:0,top:0,zIndex:-9999,visibility:"hidden",pointerEvents:"none",fontSize:Math.floor(Be/2)*2},bn)},mt),Ht=(mt,Cn)=>{const bn=O(be,mt);return et(_e(bn,!0),Cn,Ue)};return i.createElement(i.Fragment,null,Ye,qe&&xe!==R&&xe!==ie&&i.createElement(i.Fragment,null,et("lg",x,{wordBreak:"keep-all",whiteSpace:"nowrap"}),xe===Z?et(_e(be,!1),oe,Ue):Ht(X,oe)))},Ct=ae=>{let{enabledEllipsis:qe,isEllipsis:_e,children:re,tooltipProps:Y}=ae;return!(Y!=null&&Y.title)||!qe?re:i.createElement(Le.Z,Object.assign({open:_e?void 0:!1},Y),re)},Pt=function(ae,qe){var _e={};for(var re in ae)Object.prototype.hasOwnProperty.call(ae,re)&&qe.indexOf(re)<0&&(_e[re]=ae[re]);if(ae!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,re=Object.getOwnPropertySymbols(ae);Y{var _e,re,Y;const{prefixCls:Be,className:we,style:vt,type:Se,disabled:X,children:Ne,ellipsis:St,editable:xe,copyable:fe,component:L,title:D}=ae,x=Pt(ae,["prefixCls","className","style","type","disabled","children","ellipsis","editable","copyable","component","title"]),{getPrefixCls:oe,direction:be}=i.useContext(Ve.E_),[Ie]=(0,Zt.Z)("Text"),Ye=i.useRef(null),Ue=i.useRef(null),et=oe("typography",Be),Ht=(0,J.Z)(x,["mark","code","delete","underline","strong","keyboard","italic"]),[mt,Cn]=xt(xe),[bn,wt]=(0,A.Z)(!1,{value:Cn.editing}),{triggerType:fn=["icon"]}=Cn,zt=en=>{var Bn;en&&((Bn=Cn.onStart)===null||Bn===void 0||Bn.call(Cn)),wt(en)};Ze(()=>{var en;bn||(en=Ue.current)===null||en===void 0||en.focus()},[bn]);const cn=en=>{en==null||en.preventDefault(),zt(!0)},yn=en=>{var Bn;(Bn=Cn.onChange)===null||Bn===void 0||Bn.call(Cn,en),zt(!1)},Fn=()=>{var en;(en=Cn.onCancel)===null||en===void 0||en.call(Cn),zt(!1)},[Yn,Zn]=xt(fe),[Kn,vr]=i.useState(!1),jn=i.useRef(null),On={};Zn.format&&(On.format=Zn.format);const _n=()=>{jn.current&&clearTimeout(jn.current)},Gn=en=>{var Bn;en==null||en.preventDefault(),en==null||en.stopPropagation(),K()(Zn.text||String(Ne)||"",On),vr(!0),_n(),jn.current=setTimeout(()=>{vr(!1)},3e3),(Bn=Zn.onCopy)===null||Bn===void 0||Bn.call(Zn,en)};i.useEffect(()=>_n,[]);const[er,Cr]=i.useState(!1),[Lr,Hr]=i.useState(!1),[Hn,Pr]=i.useState(!1),[oo,Ur]=i.useState(!1),[co,Br]=i.useState(!1),[_r,xo]=i.useState(!0),[br,Qn]=xt(St,{expandable:!1}),Un=br&&!Hn,{rows:wr=1}=Qn,or=i.useMemo(()=>!Un||Qn.suffix!==void 0||Qn.onEllipsis||Qn.expandable||mt||Yn,[Un,Qn,mt,Yn]);(0,te.Z)(()=>{br&&!or&&(Cr((0,z.G)("webkitLineClamp")),Hr((0,z.G)("textOverflow")))},[or,br]);const Or=i.useMemo(()=>or?!1:wr===1?Lr:er,[or,Lr,er]),fo=Un&&(Or?co:oo),Sr=Un&&wr===1&&Or,ao=Un&&wr>1&&Or,Vr=en=>{var Bn;Pr(!0),(Bn=Qn.onExpand)===null||Bn===void 0||Bn.call(Qn,en)},[Ir,Do]=i.useState(0),[sa,fa]=i.useState(0),Oa=(en,Bn)=>{let{offsetWidth:Nr}=en;var Tr;Do(Nr),fa(parseInt((Tr=window.getComputedStyle)===null||Tr===void 0?void 0:Tr.call(window,Bn).fontSize,10)||0)},Oo=en=>{var Bn;Ur(en),oo!==en&&((Bn=Qn.onEllipsis)===null||Bn===void 0||Bn.call(Qn,en))};i.useEffect(()=>{const en=Ye.current;if(br&&Or&&en){const Bn=ao?en.offsetHeight{const en=Ye.current;if(typeof IntersectionObserver=="undefined"||!en||!Or||!Un)return;const Bn=new IntersectionObserver(()=>{xo(!!en.offsetParent)});return Bn.observe(en),()=>{Bn.disconnect()}},[Or,Un]);let zo={};Qn.tooltip===!0?zo={title:(_e=Cn.text)!==null&&_e!==void 0?_e:Ne}:i.isValidElement(Qn.tooltip)?zo={title:Qn.tooltip}:typeof Qn.tooltip=="object"?zo=Object.assign({title:(re=Cn.text)!==null&&re!==void 0?re:Ne},Qn.tooltip):zo={title:Qn.tooltip};const va=i.useMemo(()=>{const en=Bn=>["string","number"].includes(typeof Bn);if(!(!br||Or)){if(en(Cn.text))return Cn.text;if(en(Ne))return Ne;if(en(D))return D;if(en(zo.title))return zo.title}},[br,Or,D,zo.title,fo]);if(bn)return i.createElement(gt,{value:(Y=Cn.text)!==null&&Y!==void 0?Y:typeof Ne=="string"?Ne:"",onSave:yn,onCancel:Fn,onEnd:Cn.onEnd,prefixCls:et,className:we,style:vt,direction:be,component:L,maxLength:Cn.maxLength,autoSize:Cn.autoSize,enterIcon:Cn.enterIcon});const vi=()=>{const{expandable:en,symbol:Bn}=Qn;if(!en)return null;let Nr;return Bn?Nr=Bn:Nr=Ie==null?void 0:Ie.expand,i.createElement("a",{key:"expand",className:`${et}-expand`,onClick:Vr,"aria-label":Ie==null?void 0:Ie.expand},Nr)},ka=()=>{if(!mt)return;const{icon:en,tooltip:Bn}=Cn,Nr=(0,f.Z)(Bn)[0]||(Ie==null?void 0:Ie.edit),Tr=typeof Nr=="string"?Nr:"";return fn.includes("icon")?i.createElement(Le.Z,{key:"edit",title:Bn===!1?"":Nr},i.createElement(g.Z,{ref:Ue,className:`${et}-edit`,onClick:cn,"aria-label":Tr},en||i.createElement(M,{role:"button"}))):null},ye=()=>{if(!Yn)return;const{tooltips:en,icon:Bn}=Zn,Nr=kt(en),Tr=kt(Bn),ur=Kn?Vt(Nr[1],Ie==null?void 0:Ie.copied):Vt(Nr[0],Ie==null?void 0:Ie.copy),to=Kn?Ie==null?void 0:Ie.copied:Ie==null?void 0:Ie.copy,ra=typeof ur=="string"?ur:to;return i.createElement(Le.Z,{key:"copy",title:ur},i.createElement(g.Z,{className:de()(`${et}-copy`,Kn&&`${et}-copy-success`),onClick:Gn,"aria-label":ra},Kn?Vt(Tr[1],i.createElement(y.Z,null),!0):Vt(Tr[0],i.createElement(I.Z,null),!0)))},Qe=en=>[en&&vi(),ka(),ye()],Tt=en=>[en&&i.createElement("span",{"aria-hidden":!0,key:"ellipsis"},tt),Qn.suffix,Qe(en)];return i.createElement(ne.Z,{onResize:Oa,disabled:!Un||Or},en=>i.createElement(Ct,{tooltipProps:zo,enabledEllipsis:Un,isEllipsis:fo},i.createElement(bt,Object.assign({className:de()({[`${et}-${Se}`]:Se,[`${et}-disabled`]:X,[`${et}-ellipsis`]:br,[`${et}-single-line`]:Un&&wr===1,[`${et}-ellipsis-single-line`]:Sr,[`${et}-ellipsis-multiple-line`]:ao},we),prefixCls:Be,style:Object.assign(Object.assign({},vt),{WebkitLineClamp:ao?wr:void 0}),component:L,ref:(0,$e.sQ)(en,Ye,qe),direction:be,onClick:fn.includes("text")?cn:void 0,"aria-label":va==null?void 0:va.toString(),title:D},Ht),i.createElement(Xe,{enabledMeasure:Un&&!Or,text:Ne,rows:wr,width:Ir,fontSize:sa,onEllipsis:Oo},(Bn,Nr)=>{let Tr=Bn;return Bn.length&&Nr&&va&&(Tr=i.createElement("span",{key:"show-content","aria-hidden":!0},Tr)),Nt(ae,i.createElement(i.Fragment,null,Tr,Tt(Nr)))}))))}),At=function(ae,qe){var _e={};for(var re in ae)Object.prototype.hasOwnProperty.call(ae,re)&&qe.indexOf(re)<0&&(_e[re]=ae[re]);if(ae!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,re=Object.getOwnPropertySymbols(ae);Y{var{ellipsis:_e,rel:re}=ae,Y=At(ae,["ellipsis","rel"]);const Be=Object.assign(Object.assign({},Y),{rel:re===void 0&&Y.target==="_blank"?"noopener noreferrer":re});return delete Be.navigate,i.createElement(Ft,Object.assign({},Be,{ref:qe,ellipsis:!!_e,component:"a"}))}),pn=i.forwardRef((ae,qe)=>i.createElement(Ft,Object.assign({ref:qe},ae,{component:"div"}))),Sn=function(ae,qe){var _e={};for(var re in ae)Object.prototype.hasOwnProperty.call(ae,re)&&qe.indexOf(re)<0&&(_e[re]=ae[re]);if(ae!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,re=Object.getOwnPropertySymbols(ae);Y{var{ellipsis:_e}=ae,re=Sn(ae,["ellipsis"]);const Y=i.useMemo(()=>_e&&typeof _e=="object"?(0,J.Z)(_e,["expandable","rows"]):_e,[_e]);return i.createElement(Ft,Object.assign({ref:qe},re,{ellipsis:Y,component:"span"}))};var an=i.forwardRef(Gt),ln=function(ae,qe){var _e={};for(var re in ae)Object.prototype.hasOwnProperty.call(ae,re)&&qe.indexOf(re)<0&&(_e[re]=ae[re]);if(ae!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,re=Object.getOwnPropertySymbols(ae);Y{const{level:_e=1}=ae,re=ln(ae,["level"]);let Y;return Pn.includes(_e)?Y=`h${_e}`:Y="h1",i.createElement(Ft,Object.assign({ref:qe},re,{component:Y}))});const yr=bt;yr.Text=an,yr.Link=un,yr.Title=qn,yr.Paragraph=pn;var kn=yr},5041:function(Dt){(function(De,e){Dt.exports=e()})(this,function(){"use strict";return function(De,e){var i=e.prototype,y=i.format;i.format=function(I){var T=this,F=this.$locale();if(!this.isValid())return y.bind(this)(I);var H=this.$utils(),t=(I||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(j){switch(j){case"Q":return Math.ceil((T.$M+1)/3);case"Do":return F.ordinal(T.$D);case"gggg":return T.weekYear();case"GGGG":return T.isoWeekYear();case"wo":return F.ordinal(T.week(),"W");case"w":case"ww":return H.s(T.week(),j==="w"?1:2,"0");case"W":case"WW":return H.s(T.isoWeek(),j==="W"?1:2,"0");case"k":case"kk":return H.s(String(T.$H===0?24:T.$H),j==="k"?1:2,"0");case"X":return Math.floor(T.$d.getTime()/1e3);case"x":return T.$d.getTime();case"z":return"["+T.offsetName()+"]";case"zzz":return"["+T.offsetName("long")+"]";default:return j}});return y.bind(this)(t)}}})},61118:function(Dt){(function(De,e){Dt.exports=e()})(this,function(){"use strict";var De={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"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,i=/\d\d/,y=/\d\d?/,I=/\d*[^-_:/,()\s\d]+/,T={},F=function(w){return(w=+w)+(w>68?1900:2e3)},H=function(w){return function(K){this[w]=+K}},t=[/[+-]\d\d:?(\d\d)?|Z/,function(w){(this.zone||(this.zone={})).offset=function(K){if(!K||K==="Z")return 0;var ne=K.match(/([+-]|\d\d)/g),f=60*ne[1]+(+ne[2]||0);return f===0?0:ne[0]==="+"?-f:f}(w)}],j=function(w){var K=T[w];return K&&(K.indexOf?K:K.s.concat(K.f))},M=function(w,K){var ne,f=T.meridiem;if(f){for(var te=1;te<=24;te+=1)if(w.indexOf(f(te,0,K))>-1){ne=te>12;break}}else ne=w===(K?"pm":"PM");return ne},Ce={A:[I,function(w){this.afternoon=M(w,!1)}],a:[I,function(w){this.afternoon=M(w,!0)}],S:[/\d/,function(w){this.milliseconds=100*+w}],SS:[i,function(w){this.milliseconds=10*+w}],SSS:[/\d{3}/,function(w){this.milliseconds=+w}],s:[y,H("seconds")],ss:[y,H("seconds")],m:[y,H("minutes")],mm:[y,H("minutes")],H:[y,H("hours")],h:[y,H("hours")],HH:[y,H("hours")],hh:[y,H("hours")],D:[y,H("day")],DD:[i,H("day")],Do:[I,function(w){var K=T.ordinal,ne=w.match(/\d+/);if(this.day=ne[0],K)for(var f=1;f<=31;f+=1)K(f).replace(/\[|\]/g,"")===w&&(this.day=f)}],M:[y,H("month")],MM:[i,H("month")],MMM:[I,function(w){var K=j("months"),ne=(j("monthsShort")||K.map(function(f){return f.slice(0,3)})).indexOf(w)+1;if(ne<1)throw new Error;this.month=ne%12||ne}],MMMM:[I,function(w){var K=j("months").indexOf(w)+1;if(K<1)throw new Error;this.month=K%12||K}],Y:[/[+-]?\d+/,H("year")],YY:[i,function(w){this.year=F(w)}],YYYY:[/\d{4}/,H("year")],Z:t,ZZ:t};function de(w){var K,ne;K=w,ne=T&&T.formats;for(var f=(w=K.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(Ve,Zt,Le){var G=Le&&Le.toUpperCase();return Zt||ne[Le]||De[Le]||ne[G].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(st,Me,P){return Me||P.slice(1)})})).match(e),te=f.length,A=0;A-1)return new Date((ct==="X"?1e3:1)*Re);var ue=de(ct)(Re),se=ue.year,Ke=ue.month,ot=ue.day,Fe=ue.hours,ut=ue.minutes,U=ue.seconds,W=ue.milliseconds,me=ue.zone,he=new Date,ht=ot||(se||Ke?1:he.getDate()),at=se||he.getFullYear(),pt=0;se&&!Ke||(pt=Ke>0?Ke-1:he.getMonth());var ft=Fe||0,gt=ut||0,Ut=U||0,It=W||0;return me?new Date(Date.UTC(at,pt,ht,ft,gt,Ut,It+60*me.offset*1e3)):ee?new Date(Date.UTC(at,pt,ht,ft,gt,Ut,It)):new Date(at,pt,ht,ft,gt,Ut,It)}catch(bt){return new Date("")}}(J,g,$e),this.init(),G&&G!==!0&&(this.$L=this.locale(G).$L),Le&&J!=this.format(g)&&(this.$d=new Date("")),T={}}else if(g instanceof Array)for(var st=g.length,Me=1;Me<=st;Me+=1){z[1]=g[Me-1];var P=ne.apply(this,z);if(P.isValid()){this.$d=P.$d,this.$L=P.$L,this.init();break}Me===st&&(this.$d=new Date(""))}else te.call(this,A)}}})},87037:function(Dt){(function(De,e){Dt.exports=e()})(this,function(){"use strict";var De="day";return function(e,i,y){var I=function(H){return H.add(4-H.isoWeekday(),De)},T=i.prototype;T.isoWeekYear=function(){return I(this).year()},T.isoWeek=function(H){if(!this.$utils().u(H))return this.add(7*(H-this.isoWeek()),De);var t,j,M,Ce,de=I(this),w=(t=this.isoWeekYear(),j=this.$u,M=(j?y.utc:y)().year(t).startOf("year"),Ce=4-M.isoWeekday(),M.isoWeekday()>4&&(Ce+=7),M.add(Ce,De));return de.diff(w,"week")+1},T.isoWeekday=function(H){return this.$utils().u(H)?this.day()||7:this.day(this.day()%7?H:H-7)};var F=T.startOf;T.startOf=function(H,t){var j=this.$utils(),M=!!j.u(t)||t;return j.p(H)==="isoweek"?M?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):F.bind(this)(H,t)}}})},11307:function(Dt){(function(De,e){Dt.exports=e()})(this,function(){"use strict";return function(De,e,i){var y=e.prototype,I=function(j){return j&&(j.indexOf?j:j.s)},T=function(j,M,Ce,de,w){var K=j.name?j:j.$locale(),ne=I(K[M]),f=I(K[Ce]),te=ne||f.map(function(J){return J.slice(0,de)});if(!w)return te;var A=K.weekStart;return te.map(function(J,$e){return te[($e+(A||0))%7]})},F=function(){return i.Ls[i.locale()]},H=function(j,M){return j.formats[M]||function(Ce){return Ce.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(de,w,K){return w||K.slice(1)})}(j.formats[M.toUpperCase()])},t=function(){var j=this;return{months:function(M){return M?M.format("MMMM"):T(j,"months")},monthsShort:function(M){return M?M.format("MMM"):T(j,"monthsShort","months",3)},firstDayOfWeek:function(){return j.$locale().weekStart||0},weekdays:function(M){return M?M.format("dddd"):T(j,"weekdays")},weekdaysMin:function(M){return M?M.format("dd"):T(j,"weekdaysMin","weekdays",2)},weekdaysShort:function(M){return M?M.format("ddd"):T(j,"weekdaysShort","weekdays",3)},longDateFormat:function(M){return H(j.$locale(),M)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};y.localeData=function(){return t.bind(this)()},i.localeData=function(){var j=F();return{firstDayOfWeek:function(){return j.weekStart||0},weekdays:function(){return i.weekdays()},weekdaysShort:function(){return i.weekdaysShort()},weekdaysMin:function(){return i.weekdaysMin()},months:function(){return i.months()},monthsShort:function(){return i.monthsShort()},longDateFormat:function(M){return H(j,M)},meridiem:j.meridiem,ordinal:j.ordinal}},i.months=function(){return T(F(),"months")},i.monthsShort=function(){return T(F(),"monthsShort","months",3)},i.weekdays=function(j){return T(F(),"weekdays",null,null,j)},i.weekdaysShort=function(j){return T(F(),"weekdaysShort","weekdays",3,j)},i.weekdaysMin=function(j){return T(F(),"weekdaysMin","weekdays",2,j)}}})},1667:function(Dt){(function(De,e){Dt.exports=e()})(this,function(){"use strict";var De="month",e="quarter";return function(i,y){var I=y.prototype;I.quarter=function(H){return this.$utils().u(H)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(H-1))};var T=I.add;I.add=function(H,t){return H=Number(H),this.$utils().p(t)===e?this.add(3*H,De):T.bind(this)(H,t)};var F=I.startOf;I.startOf=function(H,t){var j=this.$utils(),M=!!j.u(t)||t;if(j.p(H)===e){var Ce=this.quarter()-1;return M?this.month(3*Ce).startOf(De).startOf("day"):this.month(3*Ce+2).endOf(De).endOf("day")}return F.bind(this)(H,t)}}})},67218:function(Dt){(function(De,e){Dt.exports=e()})(this,function(){"use strict";return function(De,e,i){De=De||{};var y=e.prototype,I={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function T(H,t,j,M){return y.fromToBase(H,t,j,M)}i.en.relativeTime=I,y.fromToBase=function(H,t,j,M,Ce){for(var de,w,K,ne=j.$locale().relativeTime||I,f=De.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],te=f.length,A=0;A0,$e<=J.r||!J.r){$e<=1&&A>0&&(J=f[A-1]);var z=ne[J.l];Ce&&($e=Ce(""+$e)),w=typeof z=="string"?z.replace("%d",$e):z($e,t,J.l,K);break}}if(t)return w;var g=K?ne.future:ne.past;return typeof g=="function"?g(w):g.replace("%s",w)},y.to=function(H,t){return T(H,t,this,!0)},y.from=function(H,t){return T(H,t,this)};var F=function(H){return H.$u?i.utc():i()};y.toNow=function(H){return this.to(F(this),H)},y.fromNow=function(H){return this.from(F(this),H)}}})},43153:function(Dt){(function(De,e){Dt.exports=e()})(this,function(){"use strict";var De="week",e="year";return function(i,y,I){var T=y.prototype;T.week=function(F){if(F===void 0&&(F=null),F!==null)return this.add(7*(F-this.week()),"day");var H=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var t=I(this).startOf(e).add(1,e).date(H),j=I(this).endOf(De);if(t.isBefore(j))return 1}var M=I(this).startOf(e).date(H).startOf(De).subtract(1,"millisecond"),Ce=this.diff(M,De,!0);return Ce<0?I(this).startOf("week").week():Math.ceil(Ce)},T.weeks=function(F){return F===void 0&&(F=null),this.week(F)}}})},67579:function(Dt){(function(De,e){Dt.exports=e()})(this,function(){"use strict";return function(De,e){e.prototype.weekYear=function(){var i=this.month(),y=this.week(),I=this.year();return y===1&&i===11?I+1:i===0&&y>=52?I-1:I}}})},45896:function(Dt){(function(De,e){Dt.exports=e()})(this,function(){"use strict";return function(De,e){e.prototype.weekday=function(i){var y=this.$locale().weekStart||0,I=this.$W,T=(I-1}function Y(ye,Qe){var Tt=this.__data__,en=Ye(Tt,ye);return en<0?(++this.size,Tt.push([ye,Qe])):Tt[en][1]=Qe,this}kn.prototype.clear=ae,kn.prototype.delete=qe,kn.prototype.get=_e,kn.prototype.has=re,kn.prototype.set=Y;function Be(ye){var Qe=-1,Tt=ye==null?0:ye.length;for(this.clear();++Qe1?Tt[Bn-1]:void 0,Tr=Bn>2?Tt[2]:void 0;for(Nr=ye.length>3&&typeof Nr=="function"?(Bn--,Nr):void 0,Tr&&Hr(Tt[0],Tt[1],Tr)&&(Nr=Bn<3?void 0:Nr,Bn=1),Qe=Object(Qe);++en-1&&ye%1==0&&ye0){if(++Qe>=I)return arguments[0]}else Qe=0;return ye.apply(void 0,arguments)}}function Qn(ye){if(ye!=null){try{return Z.call(ye)}catch(Qe){}try{return ye+""}catch(Qe){}}return""}function Un(ye,Qe){return ye===Qe||ye!==ye&&Qe!==Qe}var wr=mt(function(){return arguments}())?mt:function(ye){return Do(ye)&&b.call(ye,"callee")&&!tt.call(ye,"callee")},or=Array.isArray;function Or(ye){return ye!=null&&Vr(ye.length)&&!ao(ye)}function fo(ye){return Do(ye)&&Or(ye)}var Sr=Lt||ka;function ao(ye){if(!Ir(ye))return!1;var Qe=Ht(ye);return Qe==w||Qe==K||Qe==j||Qe==J}function Vr(ye){return typeof ye=="number"&&ye>-1&&ye%1==0&&ye<=F}function Ir(ye){var Qe=typeof ye;return ye!=null&&(Qe=="object"||Qe=="function")}function Do(ye){return ye!=null&&typeof ye=="object"}function sa(ye){if(!Do(ye)||Ht(ye)!=A)return!1;var Qe=Vt(ye);if(Qe===null)return!0;var Tt=b.call(Qe,"constructor")&&Qe.constructor;return typeof Tt=="function"&&Tt instanceof Tt&&Z.call(Tt)==_}var fa=Ut?xt(Ut):bn;function Oa(ye){return vr(ye,Oo(ye))}function Oo(ye){return Or(ye)?oe(ye,!0):wt(ye)}var zo=jn(function(ye,Qe,Tt){fn(ye,Qe,Tt)});function va(ye){return function(){return ye}}function vi(ye){return ye}function ka(){return!1}Dt.exports=zo},37592:function(Dt){var De=NaN,e="[object Symbol]",i=/^\s+|\s+$/g,y=/^[-+]0x[0-9a-f]+$/i,I=/^0b[01]+$/i,T=/^0o[0-7]+$/i,F=parseInt,H=Object.prototype,t=H.toString;function j(w){var K=typeof w;return!!w&&(K=="object"||K=="function")}function M(w){return!!w&&typeof w=="object"}function Ce(w){return typeof w=="symbol"||M(w)&&t.call(w)==e}function de(w){if(typeof w=="number")return w;if(Ce(w))return De;if(j(w)){var K=typeof w.valueOf=="function"?w.valueOf():w;w=j(K)?K+"":K}if(typeof w!="string")return w===0?w:+w;w=w.replace(i,"");var ne=I.test(w);return ne||T.test(w)?F(w.slice(2),ne?2:8):y.test(w)?De:+w}Dt.exports=de},73532:function(Dt,De,e){var i=e(87500),y=e(58260);function I(T,F,H){(H!==void 0&&!y(T[F],H)||H===void 0&&!(F in T))&&i(T,F,H)}Dt.exports=I},61701:function(Dt,De,e){var i=e(44003),y=e(96313),I=y(i);Dt.exports=I},39943:function(Dt,De,e){var i=e(72545),y=i();Dt.exports=y},44003:function(Dt,De,e){var i=e(39943),y=e(62096);function I(T,F){return T&&i(T,F,y)}Dt.exports=I},62902:function(Dt){function De(e,i){return e!=null&&i in Object(e)}Dt.exports=De},2972:function(Dt,De,e){var i=e(19549),y=e(34662),I=1,T=2;function F(H,t,j,M){var Ce=j.length,de=Ce,w=!M;if(H==null)return!de;for(H=Object(H);Ce--;){var K=j[Ce];if(w&&K[2]?K[1]!==H[K[0]]:!(K[0]in H))return!1}for(;++Ce1&&(nt=V.addDate(nt,-7)),nt}function se(v,V,Q){var Pe=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1;switch(V){case"year":return Q.addYear(v,Pe*10);case"quarter":case"month":return Q.addYear(v,Pe);default:return Q.addMonth(v,Pe)}}function Ke(v,V){var Q=V.generateConfig,Pe=V.locale,ge=V.format;return typeof ge=="function"?ge(v):Q.locale.format(Pe.locale,v,ge)}function ot(v,V){var Q=V.generateConfig,Pe=V.locale,ge=V.formatList;return!v||typeof ge[0]=="function"?null:Q.locale.parse(Pe.locale,v,ge)}function Fe(v){var V=v.cellDate,Q=v.mode,Pe=v.disabledDate,ge=v.generateConfig;if(!Pe)return!1;var yt=function(mn,Ot,tn){for(var xn=Ot;xn<=tn;){var Wn=void 0;switch(mn){case"date":{if(Wn=ge.setDate(V,xn),!Pe(Wn))return!1;break}case"month":{if(Wn=ge.setMonth(V,xn),!Fe({cellDate:Wn,mode:"month",generateConfig:ge,disabledDate:Pe}))return!1;break}case"year":{if(Wn=ge.setYear(V,xn),!Fe({cellDate:Wn,mode:"year",generateConfig:ge,disabledDate:Pe}))return!1;break}}xn+=1}return!0};switch(Q){case"date":case"week":return Pe(V);case"month":{var nt=1,qt=ge.getDate(ge.getEndDate(V));return yt("date",nt,qt)}case"quarter":{var Jt=Math.floor(ge.getMonth(V)/3)*3,hn=Jt+2;return yt("month",Jt,hn)}case"year":return yt("month",0,11);case"decade":{var Nn=ge.getYear(V),En=Math.floor(Nn/J)*J,_t=En+J-1;return yt("year",En,_t)}}}function ut(v,V){var Q=V.formatList,Pe=V.generateConfig,ge=V.locale;return(0,te.Z)(function(){if(!v)return[[""],""];for(var yt="",nt=[],qt=0;qt1&&arguments[1]!==void 0?arguments[1]:!1;if(cancelAnimationFrame(hn.current),xn){Jt(tn);return}hn.current=requestAnimationFrame(function(){Jt(tn)})}var En=ut(qt,{formatList:Q,generateConfig:Pe,locale:ge}),_t=(0,M.Z)(En,2),sn=_t[1];function mn(tn){Nn(tn)}function Ot(){var tn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;Nn(null,tn)}return(0,f.useEffect)(function(){Ot(!0)},[v]),(0,f.useEffect)(function(){return function(){return cancelAnimationFrame(hn.current)}},[]),[sn,mn,Ot]}var W=e(29639),me=e(61834),he=e(29140),ht=e(46499),at=new Map;function pt(v,V){var Q;function Pe(){(0,ht.Z)(v)?V():Q=(0,me.Z)(function(){Pe()})}return Pe(),function(){me.Z.cancel(Q)}}function ft(v,V,Q){if(at.get(v)&&cancelAnimationFrame(at.get(v)),Q<=0){at.set(v,requestAnimationFrame(function(){v.scrollTop=V}));return}var Pe=V-v.scrollTop,ge=Pe/Q*10;at.set(v,requestAnimationFrame(function(){v.scrollTop+=ge,v.scrollTop!==V&&ft(v,V,Q-10)}))}function gt(v,V){var Q=V.onLeftRight,Pe=V.onCtrlLeftRight,ge=V.onUpDown,yt=V.onPageUpDown,nt=V.onEnter,qt=v.which,Jt=v.ctrlKey,hn=v.metaKey;switch(qt){case W.Z.LEFT:if(Jt||hn){if(Pe)return Pe(-1),!0}else if(Q)return Q(-1),!0;break;case W.Z.RIGHT:if(Jt||hn){if(Pe)return Pe(1),!0}else if(Q)return Q(1),!0;break;case W.Z.UP:if(ge)return ge(-1),!0;break;case W.Z.DOWN:if(ge)return ge(1),!0;break;case W.Z.PAGE_UP:if(yt)return yt(-1),!0;break;case W.Z.PAGE_DOWN:if(yt)return yt(1),!0;break;case W.Z.ENTER:if(nt)return nt(),!0;break}return!1}function Ut(v,V,Q,Pe){var ge=v;if(!ge)switch(V){case"time":ge=Pe?"hh:mm:ss a":"HH:mm:ss";break;case"week":ge="gggg-wo";break;case"month":ge="YYYY-MM";break;case"quarter":ge="YYYY-[Q]Q";break;case"year":ge="YYYY";break;default:ge=Q?"YYYY-MM-DD HH:mm:ss":"YYYY-MM-DD"}return ge}function It(v,V,Q){var Pe=v==="time"?8:10,ge=typeof V=="function"?V(Q.getNow()).length:V.length;return Math.max(Pe,ge)+2}var bt=null,xt=new Set;function ve(v){return!bt&&typeof window!="undefined"&&window.addEventListener&&(bt=function(Q){(0,he.Z)(xt).forEach(function(Pe){Pe(Q)})},window.addEventListener("mousedown",bt)),xt.add(v),function(){xt.delete(v),xt.size===0&&(window.removeEventListener("mousedown",bt),bt=null)}}function Ze(v){var V=v.target;if(v.composed&&V.shadowRoot){var Q;return((Q=v.composedPath)===null||Q===void 0?void 0:Q.call(v)[0])||V}return V}var Oe=function(V){return V==="month"||V==="date"?"year":V},je=function(V){return V==="date"?"month":V},O=function(V){return V==="month"||V==="date"?"quarter":V},Ae=function(V){return V==="date"?"week":V},Z={year:Oe,month:je,quarter:O,week:Ae,time:null,date:null};function b(v,V){return v.some(function(Q){return Q&&Q.contains(V)})}function R(v){var V=v.open,Q=v.value,Pe=v.isClickOutside,ge=v.triggerOpen,yt=v.forwardKeyDown,nt=v.onKeyDown,qt=v.blurToCancel,Jt=v.onSubmit,hn=v.onCancel,Nn=v.onFocus,En=v.onBlur,_t=v.changeOnBlur,sn=(0,f.useState)(!1),mn=(0,M.Z)(sn,2),Ot=mn[0],tn=mn[1],xn=(0,f.useState)(!1),Wn=(0,M.Z)(xn,2),Jn=Wn[0],nr=Wn[1],dr=(0,f.useRef)(!1),ar=(0,f.useRef)(!1),gr=(0,f.useRef)(!1),Co={onMouseDown:function(){tn(!0),ge(!0)},onKeyDown:function(Ho){var wo=function(){gr.current=!0};if(nt(Ho,wo),!gr.current){switch(Ho.which){case W.Z.ENTER:{V?Jt()!==!1&&tn(!0):ge(!0),Ho.preventDefault();return}case W.Z.TAB:{Ot&&V&&!Ho.shiftKey?(tn(!1),Ho.preventDefault()):!Ot&&V&&!yt(Ho)&&Ho.shiftKey&&(tn(!0),Ho.preventDefault());return}case W.Z.ESC:{tn(!0),hn();return}}!V&&![W.Z.SHIFT].includes(Ho.which)?ge(!0):Ot||yt(Ho)}},onFocus:function(Ho){tn(!0),nr(!0),Nn&&Nn(Ho)},onBlur:function(Ho){if(dr.current||!Pe(document.activeElement)){dr.current=!1;return}qt?setTimeout(function(){for(var wo=document,ca=wo.activeElement;ca&&ca.shadowRoot;)ca=ca.shadowRoot.activeElement;Pe(ca)&&hn()},0):V&&(ge(!1),ar.current&&Jt()),nr(!1),En==null||En(Ho)}};return(0,f.useEffect)(function(){ar.current=!1},[V]),(0,f.useEffect)(function(){ar.current=!0},[Q]),(0,f.useEffect)(function(){return ve(function(Yr){var Ho=Ze(Yr),wo=Pe(Ho);V&&(wo?!_t&&(!Jn||wo)&&ge(!1):(dr.current=!0,(0,me.Z)(function(){dr.current=!1})))})}),[Co,{focused:Jn,typing:Ot}]}function ie(v,V){return f.useMemo(function(){return v||(V?((0,K.ZP)(!1,"`ranges` is deprecated. Please use `presets` instead."),Object.entries(V).map(function(Q){var Pe=(0,M.Z)(Q,2),ge=Pe[0],yt=Pe[1];return{label:ge,value:yt}})):[])},[v,V])}var _=e(81334);function Xe(v){var V=v.valueTexts,Q=v.onTextChange,Pe=f.useState(""),ge=(0,M.Z)(Pe,2),yt=ge[0],nt=ge[1],qt=f.useRef([]);qt.current=V;function Jt(Nn){nt(Nn),Q(Nn)}function hn(){nt(qt.current[0])}return(0,_.Z)(function(){V.every(function(Nn){return Nn!==yt})&&hn()},[V.join("||")]),[yt,Jt,hn]}var it=f.createContext({}),Ct=it,Pt=e(38790);function Nt(v){var V=v.cellRender,Q=v.monthCellRender,Pe=v.dateRender,ge=f.useMemo(function(){if(V)return V;if(!(!Q&&!Pe))return function(yt,nt){var qt=yt;return Pe&&nt.type==="date"?Pe(qt,nt.today):Q&&nt.type==="month"?Q(qt,nt.locale):nt.originNode}},[V,Q,Pe]);return ge}function Vt(v,V){for(var Q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"0",Pe=String(v);Pe.length=1?Q|0:1,nt=v;nt<=V;nt+=yt)ge.push({label:Vt(nt,2),value:nt,disabled:(Pe||[]).includes(nt)});return ge}function xe(v){var V=v.generateConfig,Q=v.prefixCls,Pe=v.operationRef,ge=v.activeColumnIndex,yt=v.value,nt=v.showHour,qt=v.showMinute,Jt=v.showSecond,hn=v.use12Hours,Nn=v.hourStep,En=Nn===void 0?1:Nn,_t=v.minuteStep,sn=_t===void 0?1:_t,mn=v.secondStep,Ot=mn===void 0?1:mn,tn=v.disabledHours,xn=v.disabledMinutes,Wn=v.disabledSeconds,Jn=v.disabledTime,nr=v.hideDisabledOptions,dr=v.onSelect,ar=v.cellRender,gr=v.locale,Co=[],Yr="".concat(Q,"-content"),Ho="".concat(Q,"-time-panel"),wo,ca=yt?V.getHour(yt):-1,za=ca,Ga=yt?V.getMinute(yt):-1,Za=yt?V.getSecond(yt):-1,oa=V.getNow(),Ba=f.useMemo(function(){if(Jn){var Zo=Jn(oa);return[Zo.disabledHours,Zo.disabledMinutes,Zo.disabledSeconds]}return[tn,xn,Wn]},[tn,xn,Wn,Jn,oa]),wi=(0,M.Z)(Ba,3),Mi=wi[0],mi=wi[1],Ni=wi[2],pl=St(0,23,En,Mi&&Mi()),Ei=(0,te.Z)(function(){return pl},pl,Ne);hn&&(wo=za>=12,za%=12);var Ml=f.useMemo(function(){if(!hn)return[!1,!1];var Zo=[!0,!0];return Ei.forEach(function(Qa){var Ra=Qa.disabled,$i=Qa.value;Ra||($i>=12?Zo[1]=!1:Zo[0]=!1)}),Zo},[hn,Ei]),nl=(0,M.Z)(Ml,2),yl=nl[0],Va=nl[1],Pi=f.useMemo(function(){return hn?Ei.filter(wo?function(Zo){return Zo.value>=12}:function(Zo){return Zo.value<12}).map(function(Zo){var Qa=Zo.value%12,Ra=Qa===0?"12":Vt(Qa,2);return(0,j.Z)((0,j.Z)({},Zo),{},{label:Ra,value:Qa})}):Ei},[hn,wo,Ei]),gi=St(0,59,sn,mi&&mi(ca)),Ki=St(0,59,Ot,Ni&&Ni(ca,Ga)),Ti=vt({value:yt,generateConfig:V,disabledMinutes:mi,disabledSeconds:Ni,minutes:gi,seconds:Ki,use12Hours:hn});Pe.current={onUpDown:function(Qa){var Ra=Co[ge];if(Ra)for(var $i=Ra.units.findIndex(function(Al){return Al.value===Ra.value}),Fi=Ra.units.length,Ia=1;Ia2&&arguments[2]!==void 0?arguments[2]:!1;(Wa===tn||Ka)&&(Hl(lr),Co&&Co(lr),Ti&&Ti(lr,Ro),Yr&&!ct(Jt,lr,Li)&&!(sn!=null&&sn(lr))&&Yr(lr))},Yi=function(lr){if(or.includes(Wa)){var Ro,Ka,qa=Wa==="date";switch(lr===W.Z.PAGE_UP||lr===W.Z.PAGE_DOWN?Ka=qa?Jt.addMonth:Jt.addYear:Ka=qa?Jt.addDate:Jt.addMonth,lr){case W.Z.LEFT:case W.Z.PAGE_UP:Ro=Ka(ji,-1);break;case W.Z.RIGHT:case W.Z.PAGE_DOWN:Ro=Ka(ji,1);break;case W.Z.UP:case W.Z.DOWN:Ro=Ka(ji,Number("".concat(lr===W.Z.UP?"-":"").concat(qa?z:cn)));break}if(Ro)return!(sn!=null&&sn(Ro))}return!0},Bl=function(lr){if(Ia.current&&Ia.current.onKeyDown){var Ro=!0,Ka=lr.which;if([W.Z.LEFT,W.Z.RIGHT,W.Z.UP,W.Z.DOWN,W.Z.PAGE_UP,W.Z.PAGE_DOWN,W.Z.ENTER].includes(Ka)&&(lr.preventDefault(),Ka!==W.Z.ENTER&&Wn===0&&(Ro=Yi(Ka))),Ro)return Ia.current.onKeyDown(lr)}return(0,K.ZP)(!1,"Panel not correct handle keyDown event. Please help to fire issue about this."),!1},Ja=function(lr){Ia.current&&Ia.current.onBlur&&Ia.current.onBlur(lr)};Ki&&Ra!=="right"&&(Ki.current={onKeyDown:Bl,onClose:function(){Ia.current&&Ia.current.onClose&&Ia.current.onClose()}}),f.useEffect(function(){hn&&!rl.current&&sl(hn)},[hn]),f.useEffect(function(){rl.current=!1},[]);var Gi,Rl=Nt({cellRender:Ml,monthCellRender:Ei,dateRender:pl}),ma=(0,j.Z)((0,j.Z)({},v),{},{cellRender:Rl,operationRef:Ia,prefixCls:ge,viewDate:ji,value:Li,onViewDateChange:ol,sourceMode:Xi,onPanelChange:Hi,disabledDate:sn});switch(delete ma.onChange,delete ma.onSelect,Wa){case"decade":Gi=f.createElement(wt,(0,H.Z)({},ma,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}}));break;case"year":Gi=f.createElement(Qn,(0,H.Z)({},ma,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}}));break;case"month":Gi=f.createElement(Kn,(0,H.Z)({},ma,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}}));break;case"quarter":Gi=f.createElement(Lr,(0,H.Z)({},ma,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}}));break;case"week":Gi=f.createElement(Hn,(0,H.Z)({},ma,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}}));break;case"time":delete ma.showTime,Gi=f.createElement(x,(0,H.Z)({},ma,(0,Pt.Z)(nr)==="object"?nr:null,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}}));break;default:nr?Gi=f.createElement(Ie,(0,H.Z)({},ma,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}})):Gi=f.createElement(Y,(0,H.Z)({},ma,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}}))}var Tl,bl,Uo=function(){var lr=Jt.getNow(),Ro=Gt(Jt.getHour(lr),Jt.getMinute(lr),Jt.getSecond(lr),yl?Ba:1,Va?Mi:1,Pi?Ni:1),Ka=pn(Jt,lr,Ro[0],Ro[1],Ro[2]);ri(Ka,"submit")};Di||(Tl=Un(ge,Wa,ar),nr&&Wa!=="date"?bl=null:bl=wr({prefixCls:ge,components:Ga,needConfirmButton:nl,okDisabled:!Li||sn&&sn(Li),locale:qt,showNow:Jn,onNow:nl&&Uo,onOk:function(){Li&&(ri(Li,"submit",!0),za&&za(Li))}}));var Gl;if(dr&&Wa==="date"&&tn==="date"&&!nr){var Sl=Jt.getNow(),kl="".concat(ge,"-today-btn"),Dl=sn&&sn(Sl);Gl=f.createElement("a",{className:de()(kl,Dl&&"".concat(kl,"-disabled")),"aria-disabled":Dl,onClick:function(){Dl||ri(Sl,"mouse",!0)}},qt.today)}return f.createElement(Ct.Provider,{value:(0,j.Z)((0,j.Z)({},gi),{},{mode:Wa,hideHeader:"hideHeader"in v?gr:gi.hideHeader,hidePrevBtn:Qa&&Ra==="right",hideNextBtn:Qa&&Ra==="left"})},f.createElement("div",{tabIndex:Wn,className:de()("".concat(ge,"-panel"),yt,(V={},(0,t.Z)(V,"".concat(ge,"-panel-has-range"),$i&&$i[0]&&$i[1]),(0,t.Z)(V,"".concat(ge,"-panel-has-range-hover"),Fi&&Fi[0]&&Fi[1]),(0,t.Z)(V,"".concat(ge,"-panel-rtl"),Za==="rtl"),V)),style:nt,onKeyDown:Bl,onBlur:Ja,onMouseDown:wo},Gi,Tl||bl||Gl?f.createElement("div",{className:"".concat(ge,"-footer")},Tl,bl,Gl):null))}var fo=Or,Sr=e(99863),ao={bottomLeft:{points:["tl","bl"],offset:[0,4],overflow:{adjustX:1,adjustY:1}},bottomRight:{points:["tr","br"],offset:[0,4],overflow:{adjustX:1,adjustY:1}},topLeft:{points:["bl","tl"],offset:[0,-4],overflow:{adjustX:0,adjustY:1}},topRight:{points:["br","tr"],offset:[0,-4],overflow:{adjustX:0,adjustY:1}}};function Vr(v){var V,Q=v.prefixCls,Pe=v.popupElement,ge=v.popupStyle,yt=v.visible,nt=v.dropdownClassName,qt=v.dropdownAlign,Jt=v.transitionName,hn=v.getPopupContainer,Nn=v.children,En=v.range,_t=v.popupPlacement,sn=v.direction,mn="".concat(Q,"-dropdown"),Ot=function(){return _t!==void 0?_t:sn==="rtl"?"bottomRight":"bottomLeft"};return f.createElement(Sr.Z,{showAction:[],hideAction:[],popupPlacement:Ot(),builtinPlacements:ao,prefixCls:mn,popupTransitionName:Jt,popup:Pe,popupAlign:qt,popupVisible:yt,popupClassName:de()(nt,(V={},(0,t.Z)(V,"".concat(mn,"-range"),En),(0,t.Z)(V,"".concat(mn,"-rtl"),sn==="rtl"),V)),popupStyle:ge,getPopupContainer:hn},Nn)}var Ir=Vr;function Do(v){var V=v.prefixCls,Q=v.presets,Pe=v.onClick,ge=v.onHover;return Q.length?f.createElement("div",{className:"".concat(V,"-presets")},f.createElement("ul",null,Q.map(function(yt,nt){var qt=yt.label,Jt=yt.value;return f.createElement("li",{key:nt,onClick:function(){return Pe==null?void 0:Pe(At(Jt))},onMouseEnter:function(){return ge==null?void 0:ge(At(Jt))},onMouseLeave:function(){return ge==null?void 0:ge(null)}},qt)}))):null}function sa(v){var V=v.picker,Q=v.disabledHours,Pe=v.disabledMinutes,ge=v.disabledSeconds;V==="time"&&(Q||Pe||ge)&&warning(!1,"'disabledHours', 'disabledMinutes', 'disabledSeconds' will be removed in the next major version, please use 'disabledTime' instead.")}function fa(v,V,Q){var Pe=(0,Pt.Z)(V)==="object"?V.clearIcon:Q;return Pe||f.createElement("span",{className:"".concat(v,"-clear-btn")})}function Oa(v){var V,Q=v,Pe=Q.prefixCls,ge=Pe===void 0?"rc-picker":Pe,yt=Q.id,nt=Q.name,qt=Q.tabIndex,Jt=Q.style,hn=Q.className,Nn=Q.dropdownClassName,En=Q.dropdownAlign,_t=Q.popupStyle,sn=Q.transitionName,mn=Q.generateConfig,Ot=Q.locale,tn=Q.inputReadOnly,xn=Q.allowClear,Wn=Q.autoFocus,Jn=Q.showTime,nr=Q.picker,dr=nr===void 0?"date":nr,ar=Q.format,gr=Q.use12Hours,Co=Q.value,Yr=Q.defaultValue,Ho=Q.presets,wo=Q.open,ca=Q.defaultOpen,za=Q.defaultOpenValue,Ga=Q.suffixIcon,Za=Q.clearIcon,oa=Q.disabled,Ba=Q.disabledDate,wi=Q.placeholder,Mi=Q.getPopupContainer,mi=Q.pickerRef,Ni=Q.panelRender,pl=Q.onChange,Ei=Q.onOpenChange,Ml=Q.onFocus,nl=Q.onBlur,yl=Q.onMouseDown,Va=Q.onMouseUp,Pi=Q.onMouseEnter,gi=Q.onMouseLeave,Ki=Q.onContextMenu,Ti=Q.onClick,Di=Q.onKeyDown,ei=Q.onSelect,Zo=Q.direction,Qa=Q.autoComplete,Ra=Qa===void 0?"off":Qa,$i=Q.inputRender,Fi=Q.changeOnBlur,Ia=f.useRef(null),rl=dr==="date"&&!!Jn||dr==="time",Al=ie(Ho),Vi=tt(Ut(ar,dr,Jn,gr)),Li=f.useRef(null),Hl=f.useRef(null),Xl=f.useRef(null),Vl=(0,w.Z)(null,{value:Co,defaultValue:Yr}),ji=(0,M.Z)(Vl,2),sl=ji[0],ol=ji[1],$l=f.useState(sl),Ol=(0,M.Z)($l,2),Cl=Ol[0],Wa=Ol[1],Ai=f.useRef(null),Zl=(0,w.Z)(!1,{value:wo,defaultValue:ca,postState:function(on){return oa?!1:on},onChange:function(on){Ei&&Ei(on),!on&&Ai.current&&Ai.current.onClose&&Ai.current.onClose()}}),Nl=(0,M.Z)(Zl,2),Xi=Nl[0],cl=Nl[1],Hi=ut(Cl,{formatList:Vi,generateConfig:mn,locale:Ot}),ri=(0,M.Z)(Hi,2),Yi=ri[0],Bl=ri[1],Ja=Xe({valueTexts:Yi,onTextChange:function(on){var $n=ot(on,{locale:Ot,formatList:Vi,generateConfig:mn});$n&&(!Ba||!Ba($n))&&Wa($n)}}),Gi=(0,M.Z)(Ja,3),Rl=Gi[0],ma=Gi[1],Tl=Gi[2],bl=function(on){Wa(on),ol(on),pl&&!ct(mn,sl,on)&&pl(on,on?Ke(on,{generateConfig:mn,locale:Ot,format:Vi[0]}):"")},Uo=function(on){oa&&on||cl(on)},Gl=function(on){return Xi&&Ai.current&&Ai.current.onKeyDown?Ai.current.onKeyDown(on):((0,K.ZP)(!1,"Picker not correct forward KeyDown operation. Please help to fire issue about this."),!1)},Sl=function(){for(var on=arguments.length,$n=new Array(on),An=0;An_t(hn);case"month":return En(Ot)>En(hn);case"week":return Nn(Ot)>Nn(hn);default:return!Me(qt,Ot,hn)&&qt.isAfter(Ot,hn)}return!1},[yt,nt[1],hn,V]),mn=f.useCallback(function(Ot){if(nt[1]||yt&&yt(Ot))return!0;if(nt[0]&&Jt)return!Me(qt,Ot,hn)&&qt.isAfter(Jt,Ot);if(!V&&Jt)switch(Q){case"quarter":return _t(Ot)<_t(Jt);case"month":return En(Ot)0&&arguments[0]!==void 0?arguments[0]:!1,Zr=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Jr=null;le&&da&&da[0]&&da[1]&&Ot.isAfter(da[1],da[0])&&(Jr=da);var _o=gr;if(gr&&(0,Pt.Z)(gr)==="object"&&gr.defaultValue){var La=gr.defaultValue;_o=(0,j.Z)((0,j.Z)({},gr),{},{defaultValue:dt(La,ce)||void 0})}return f.createElement(Xt.Provider,{value:{inRange:!0,panelPosition:qo,rangedValue:hi||io,hoverRangedValue:Jr}},f.createElement(fo,(0,H.Z)({},v,Zr,{cellRender:Ta,showTime:_o,mode:qa[ce],generateConfig:Ot,style:void 0,direction:ji,disabledDate:ce===0?gn:Yt,disabledTime:function(el){return Ba?Ba(el,ce===0?"start":"end"):!1},className:de()((0,t.Z)({},"".concat(nt,"-panel-focused"),ce===0?!Qi:!Ci)),value:dt(io,ce),locale:tn,tabIndex:-1,onPanelChange:function(el,vl){ce===0&&tr(!0),ce===1&&ti(!0),xl(Ft(qa,vl,ce),Ft(io,el,ce));var al=el;qo==="right"&&qa[ce]===vl&&(al=se(al,vl,Ot,-1)),Sl(al,ce)},onOk:null,onSelect:void 0,onChange:void 0,defaultValue:ce===0?dt(io,1):dt(io,0)})))}var li=0,Ji=0;if(ce&&Zl.current&&Xi.current&&Ai.current&&ri.current){li=Zl.current.offsetWidth+Xi.current.offsetWidth;var qi=ri.current.offsetLeft>li?ri.current.offsetLeft-li:ri.current.offsetLeft,Ll=Ai.current.offsetWidth,ds=ri.current.offsetWidth;Ll&&ds&&li>Ll-ds-(ji==="rtl"?0:qi)&&(Ji=li)}var us=ji==="rtl"?{right:li}:{left:li};function _i(){var qo,Zr=Un(nt,qa[ce],Ti),Jr=wr({prefixCls:nt,components:Xl,needConfirmButton:Cl,okDisabled:!dt(io,ce)||oa&&oa(io[ce]),locale:tn,onOk:function(){var ml=dt(io,ce);ml&&(An(io,ce),Li==null||Li(io),Te(!1,ce,"confirm"))}});if(ar!=="time"&&!gr){var _o=Gl(ce),La=se(_o,ar,Ot),zl=qa[ce],el=zl===ar,vl=Ua(el?"left":!1,{pickerValue:_o,onPickerValueChange:function(ml){Sl(ml,ce)}}),al=Ua("right",{pickerValue:La,onPickerValueChange:function(ml){Sl(se(ml,ar,Ot,-1),ce)}});ji==="rtl"?qo=f.createElement(f.Fragment,null,al,el&&vl):qo=f.createElement(f.Fragment,null,vl,el&&al)}else qo=Ua();var Wl=f.createElement("div",{className:"".concat(nt,"-panel-layout")},f.createElement(Do,{prefixCls:nt,presets:Fa,onClick:function(ml){An(ml,null),Te(!1,ce,"preset")},onHover:function(ml){Mo(ml)}}),f.createElement("div",null,f.createElement("div",{className:"".concat(nt,"-panels")},qo),(Zr||Jr)&&f.createElement("div",{className:"".concat(nt,"-footer")},Zr,Jr)));return Ni&&(Wl=Ni(Wl)),f.createElement("div",{className:"".concat(nt,"-panel-container"),style:{marginLeft:Ji},ref:Ai,onMouseDown:function(ml){ml.preventDefault()}},Wl)}var fs=f.createElement("div",{className:de()("".concat(nt,"-range-wrapper"),"".concat(nt,"-").concat(ar,"-range-wrapper")),style:{minWidth:vn}},f.createElement("div",{ref:ri,className:"".concat(nt,"-range-arrow"),style:us}),_i()),Ql;yl&&(Ql=f.createElement("span",{className:"".concat(nt,"-suffix"),onMouseDown:function(Zr){Zr.preventDefault()}},yl));var Yl=fa(nt,nl,Va),vs=f.createElement("span",{onMouseDown:function(Zr){Zr.preventDefault(),Zr.stopPropagation()},onMouseUp:function(Zr){Zr.preventDefault(),Zr.stopPropagation();var Jr=ma;Ja[0]||(Jr=Ft(Jr,null,0)),Ja[1]||(Jr=Ft(Jr,null,1)),An(Jr,null),Te(!1,ce,"clear")},className:"".concat(nt,"-clear"),role:"button"},Yl),ms=nl&&(dt(ma,0)&&!Ja[0]||dt(ma,1)&&!Ja[1]),os={size:It(ar,Yi[0],Ot)},as=0,ts=0;Zl.current&&Nl.current&&Xi.current&&(ce===0?ts=Zl.current.offsetWidth:(as=li,ts=Nl.current.offsetWidth));var ns=ji==="rtl"?{right:as}:{left:as},gs=function(Zr,Jr){var _o=Ft(io,Zr,ce);if(Jr==="submit"||Jr!=="key"&&!Cl){An(_o,ce),ce===0?tr():ti();var La=ce===0?1:0;Ja[La]?Te(!1,!1,"confirm"):Te(!1,ce,"confirm")}else lr(_o)};return f.createElement(Ct.Provider,{value:{operationRef:Bl,hideHeader:ar==="time",onDateMouseEnter:Fl,onDateMouseLeave:wa,hideRanges:!0,onSelect:gs,open:le}},f.createElement(Ir,{visible:le,popupElement:fs,popupStyle:Nn,prefixCls:nt,dropdownClassName:En,dropdownAlign:sn,getPopupContainer:mn,transitionName:_t,range:!0,direction:ji},f.createElement("div",(0,H.Z)({ref:Wa,className:de()(nt,"".concat(nt,"-range"),hn,(V={},(0,t.Z)(V,"".concat(nt,"-disabled"),Ja[0]&&Ja[1]),(0,t.Z)(V,"".concat(nt,"-focused"),ce===0?Zi:ul),(0,t.Z)(V,"".concat(nt,"-rtl"),ji==="rtl"),V)),style:Jt,onClick:ii,onMouseEnter:rl,onMouseLeave:Al,onMouseDown:fl,onMouseUp:Ia},(0,ne.Z)(v,{aria:!0,data:!0})),f.createElement("div",{className:de()("".concat(nt,"-input"),(Q={},(0,t.Z)(Q,"".concat(nt,"-input-active"),ce===0),(0,t.Z)(Q,"".concat(nt,"-input-placeholder"),!!ir),Q)),ref:Zl},f.createElement("input",(0,H.Z)({id:qt,disabled:Ja[0],readOnly:gi||typeof Yi[0]=="function"||!Qi,value:ir||ga,onChange:function(Zr){Fo(Zr.target.value)},autoFocus:Wn,placeholder:dt(xn,0)||"",ref:cl},Na,os,{autoComplete:$l}))),f.createElement("div",{className:"".concat(nt,"-range-separator"),ref:Xi},Ho),f.createElement("div",{className:de()("".concat(nt,"-input"),(Pe={},(0,t.Z)(Pe,"".concat(nt,"-input-active"),ce===1),(0,t.Z)(Pe,"".concat(nt,"-input-placeholder"),!!ba),Pe)),ref:Nl},f.createElement("input",(0,H.Z)({disabled:Ja[1],readOnly:gi||typeof Yi[0]=="function"||!Ci,value:ba||ta,onChange:function(Zr){po(Zr.target.value)},placeholder:dt(xn,1)||"",ref:Hi},Ui,os,{autoComplete:$l}))),f.createElement("div",{className:"".concat(nt,"-active-bar"),style:(0,j.Z)((0,j.Z)({},ns),{},{width:ts,position:"absolute"})}),Ql,ms&&vs)))}var ur=function(v){(0,T.Z)(Q,v);var V=(0,F.Z)(Q);function Q(){var Pe;(0,i.Z)(this,Q);for(var ge=arguments.length,yt=new Array(ge),nt=0;nt0&&arguments[0]!==void 0?arguments[0]:[],Oe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],je=Ze.length,O=Oe.length;if(Math.abs(je-O)!==1)return{add:!1,key:null};function Ae(Z,b){var R=new Map;Z.forEach(function(_){R.set(_,!0)});var ie=b.filter(function(_){return!R.has(_)});return ie.length===1?ie[0]:null}return je ").concat(Oe);return Oe}var pt=de.forwardRef(function(Ze,Oe){var je=Ze.prefixCls,O=Ze.data,Ae=Ze.selectable,Z=Ze.checkable,b=Ze.expandedKeys,R=Ze.selectedKeys,ie=Ze.checkedKeys,_=Ze.loadedKeys,Xe=Ze.loadingKeys,it=Ze.halfCheckedKeys,Ct=Ze.keyEntities,Pt=Ze.disabled,Nt=Ze.dragging,Vt=Ze.dragOverNodeKey,kt=Ze.dropPosition,tt=Ze.motion,dt=Ze.height,Ft=Ze.itemHeight,At=Ze.virtual,Lt=Ze.focusable,un=Ze.activeItem,Xt=Ze.focused,pn=Ze.tabIndex,Sn=Ze.onKeyDown,Gt=Ze.onFocus,an=Ze.onBlur,ln=Ze.onActiveChange,Pn=Ze.onListChangeStart,zn=Ze.onListChangeEnd,qn=(0,Ve.Z)(Ze,Ke),yr=de.useRef(null),kn=de.useRef(null);de.useImperativeHandle(Oe,function(){return{scrollTo:function(Cn){yr.current.scrollTo(Cn)},getIndentWidth:function(){return kn.current.offsetWidth}}});var ae=de.useState(b),qe=(0,g.Z)(ae,2),_e=qe[0],re=qe[1],Y=de.useState(O),Be=(0,g.Z)(Y,2),we=Be[0],vt=Be[1],Se=de.useState(O),X=(0,g.Z)(Se,2),Ne=X[0],St=X[1],xe=de.useState([]),fe=(0,g.Z)(xe,2),L=fe[0],D=fe[1],x=de.useState(null),oe=(0,g.Z)(x,2),be=oe[0],Ie=oe[1],Ye=de.useRef(O);Ye.current=O;function Ue(){var mt=Ye.current;vt(mt),St(mt),D([]),Ie(null),zn()}(0,Zt.Z)(function(){re(b);var mt=ue(_e,b);if(mt.key!==null)if(mt.add){var Cn=we.findIndex(function(yn){var Fn=yn.key;return Fn===mt.key}),bn=he(se(we,O,mt.key),At,dt,Ft),wt=we.slice();wt.splice(Cn+1,0,me),St(wt),D(bn),Ie("show")}else{var fn=O.findIndex(function(yn){var Fn=yn.key;return Fn===mt.key}),zt=he(se(O,we,mt.key),At,dt,Ft),cn=O.slice();cn.splice(fn+1,0,me),St(cn),D(zt),Ie("hide")}else we!==O&&(vt(O),St(O))},[b,O]),de.useEffect(function(){Nt||Ue()},[Nt]);var et=tt?Ne:O,Ht={expandedKeys:b,selectedKeys:R,loadedKeys:_,loadingKeys:Xe,checkedKeys:ie,halfCheckedKeys:it,dragOverNodeKey:Vt,dropPosition:kt,keyEntities:Ct};return de.createElement(de.Fragment,null,Xt&&un&&de.createElement("span",{style:ot,"aria-live":"assertive"},at(un)),de.createElement("div",null,de.createElement("input",{style:ot,disabled:Lt===!1||Pt,tabIndex:Lt!==!1?pn:null,onKeyDown:Sn,onFocus:Gt,onBlur:an,value:"",onChange:Fe,"aria-label":"for screen reader"})),de.createElement("div",{className:"".concat(je,"-treenode"),"aria-hidden":!0,style:{position:"absolute",pointerEvents:"none",visibility:"hidden",height:0,overflow:"hidden",border:0,padding:0}},de.createElement("div",{className:"".concat(je,"-indent")},de.createElement("div",{ref:kn,className:"".concat(je,"-indent-unit")}))),de.createElement(Le.Z,(0,i.Z)({},qn,{data:et,itemKey:ht,height:dt,fullHeight:!1,virtual:At,itemHeight:Ft,prefixCls:"".concat(je,"-list"),ref:yr,onVisibleChange:function(Cn,bn){var wt=new Set(Cn),fn=bn.filter(function(zt){return!wt.has(zt)});fn.some(function(zt){return ht(zt)===ut})&&Ue()}}),function(mt){var Cn=mt.pos,bn=(0,i.Z)({},(z(mt.data),mt.data)),wt=mt.title,fn=mt.key,zt=mt.isStart,cn=mt.isEnd,yn=(0,$e.km)(fn,Cn);delete bn.key,delete bn.children;var Fn=(0,$e.H8)(yn,Ht);return de.createElement(ee,(0,i.Z)({},bn,Fn,{title:wt,active:!!un&&fn===un.key,pos:Cn,data:mt.data,isStart:zt,isEnd:cn,motion:tt,motionNodes:fn===ut?L:null,motionType:be,onMotionStart:Pn,onMotionEnd:Ue,treeNodeRequiredProps:Ht,onMouseMove:function(){ln(null)}}))}))});pt.displayName="NodeList";var ft=pt,gt=e(16226);function Ut(Ze){var Oe=Ze.dropPosition,je=Ze.dropLevelOffset,O=Ze.indent,Ae={pointerEvents:"none",position:"absolute",right:0,backgroundColor:"red",height:2};switch(Oe){case-1:Ae.top=0,Ae.left=-je*O;break;case 1:Ae.bottom=0,Ae.left=-je*O;break;case 0:Ae.bottom=0,Ae.left=O;break}return de.createElement("div",{style:Ae})}var It=10,bt=function(Ze){(0,M.Z)(je,Ze);var Oe=(0,Ce.Z)(je);function je(){var O;(0,H.Z)(this,je);for(var Ae=arguments.length,Z=new Array(Ae),b=0;b2&&arguments[2]!==void 0?arguments[2]:!1,it=O.state,Ct=it.dragChildrenKeys,Pt=it.dropPosition,Nt=it.dropTargetKey,Vt=it.dropTargetPos,kt=it.dropAllowed;if(kt){var tt=O.props.onDrop;if(O.setState({dragOverNodeKey:null}),O.cleanDragState(),Nt!==null){var dt=(0,T.Z)((0,T.Z)({},(0,$e.H8)(Nt,O.getTreeNodeRequiredProps())),{},{active:((_=O.getActiveItem())===null||_===void 0?void 0:_.key)===Nt,data:O.state.keyEntities[Nt].node}),Ft=Ct.indexOf(Nt)!==-1;(0,K.ZP)(!Ft,"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.");var At=(0,J.yx)(Vt),Lt={event:R,node:(0,$e.F)(dt),dragNode:O.dragNode?(0,$e.F)(O.dragNode.props):null,dragNodesKeys:[O.dragNode.props.eventKey].concat(Ct),dropToGap:Pt!==0,dropPosition:Pt+Number(At[At.length-1])};Xe||tt==null||tt(Lt),O.dragNode=null}}},O.cleanDragState=function(){var R=O.state.draggingNodeKey;R!==null&&O.setState({draggingNodeKey:null,dropPosition:null,dropContainerKey:null,dropTargetKey:null,dropLevelOffset:null,dropAllowed:!0,dragOverNodeKey:null}),O.dragStartMousePosition=null,O.currentMouseOverDroppableNodeKey=null},O.triggerExpandActionExpand=function(R,ie){var _=O.state,Xe=_.expandedKeys,it=_.flattenNodes,Ct=ie.expanded,Pt=ie.key,Nt=ie.isLeaf;if(!(Nt||R.shiftKey||R.metaKey||R.ctrlKey)){var Vt=it.filter(function(tt){return tt.key===Pt})[0],kt=(0,$e.F)((0,T.Z)((0,T.Z)({},(0,$e.H8)(Pt,O.getTreeNodeRequiredProps())),{},{data:Vt.data}));O.setExpandedKeys(Ct?(0,J._5)(Xe,Pt):(0,J.L0)(Xe,Pt)),O.onNodeExpand(R,kt)}},O.onNodeClick=function(R,ie){var _=O.props,Xe=_.onClick,it=_.expandAction;it==="click"&&O.triggerExpandActionExpand(R,ie),Xe==null||Xe(R,ie)},O.onNodeDoubleClick=function(R,ie){var _=O.props,Xe=_.onDoubleClick,it=_.expandAction;it==="doubleClick"&&O.triggerExpandActionExpand(R,ie),Xe==null||Xe(R,ie)},O.onNodeSelect=function(R,ie){var _=O.state.selectedKeys,Xe=O.state,it=Xe.keyEntities,Ct=Xe.fieldNames,Pt=O.props,Nt=Pt.onSelect,Vt=Pt.multiple,kt=ie.selected,tt=ie[Ct.key],dt=!kt;dt?Vt?_=(0,J.L0)(_,tt):_=[tt]:_=(0,J._5)(_,tt);var Ft=_.map(function(At){var Lt=it[At];return Lt?Lt.node:null}).filter(function(At){return At});O.setUncontrolledState({selectedKeys:_}),Nt==null||Nt(_,{event:"select",selected:dt,node:ie,selectedNodes:Ft,nativeEvent:R.nativeEvent})},O.onNodeCheck=function(R,ie,_){var Xe=O.state,it=Xe.keyEntities,Ct=Xe.checkedKeys,Pt=Xe.halfCheckedKeys,Nt=O.props,Vt=Nt.checkStrictly,kt=Nt.onCheck,tt=ie.key,dt,Ft={event:"check",node:ie,checked:_,nativeEvent:R.nativeEvent};if(Vt){var At=_?(0,J.L0)(Ct,tt):(0,J._5)(Ct,tt),Lt=(0,J._5)(Pt,tt);dt={checked:At,halfChecked:Lt},Ft.checkedNodes=At.map(function(an){return it[an]}).filter(function(an){return an}).map(function(an){return an.node}),O.setUncontrolledState({checkedKeys:At})}else{var un=(0,gt.S)([].concat((0,F.Z)(Ct),[tt]),!0,it),Xt=un.checkedKeys,pn=un.halfCheckedKeys;if(!_){var Sn=new Set(Xt);Sn.delete(tt);var Gt=(0,gt.S)(Array.from(Sn),{checked:!1,halfCheckedKeys:pn},it);Xt=Gt.checkedKeys,pn=Gt.halfCheckedKeys}dt=Xt,Ft.checkedNodes=[],Ft.checkedNodesPositions=[],Ft.halfCheckedKeys=pn,Xt.forEach(function(an){var ln=it[an];if(ln){var Pn=ln.node,zn=ln.pos;Ft.checkedNodes.push(Pn),Ft.checkedNodesPositions.push({node:Pn,pos:zn})}}),O.setUncontrolledState({checkedKeys:Xt},!1,{halfCheckedKeys:pn})}kt==null||kt(dt,Ft)},O.onNodeLoad=function(R){var ie=R.key,_=new Promise(function(Xe,it){O.setState(function(Ct){var Pt=Ct.loadedKeys,Nt=Pt===void 0?[]:Pt,Vt=Ct.loadingKeys,kt=Vt===void 0?[]:Vt,tt=O.props,dt=tt.loadData,Ft=tt.onLoad;if(!dt||Nt.indexOf(ie)!==-1||kt.indexOf(ie)!==-1)return null;var At=dt(R);return At.then(function(){var Lt=O.state.loadedKeys,un=(0,J.L0)(Lt,ie);Ft==null||Ft(un,{event:"load",node:R}),O.setUncontrolledState({loadedKeys:un}),O.setState(function(Xt){return{loadingKeys:(0,J._5)(Xt.loadingKeys,ie)}}),Xe()}).catch(function(Lt){if(O.setState(function(Xt){return{loadingKeys:(0,J._5)(Xt.loadingKeys,ie)}}),O.loadingRetryTimes[ie]=(O.loadingRetryTimes[ie]||0)+1,O.loadingRetryTimes[ie]>=It){var un=O.state.loadedKeys;(0,K.ZP)(!1,"Retry for `loadData` many times but still failed. No more retry."),O.setUncontrolledState({loadedKeys:(0,J.L0)(un,ie)}),Xe()}it(Lt)}),{loadingKeys:(0,J.L0)(kt,ie)}})});return _.catch(function(){}),_},O.onNodeMouseEnter=function(R,ie){var _=O.props.onMouseEnter;_==null||_({event:R,node:ie})},O.onNodeMouseLeave=function(R,ie){var _=O.props.onMouseLeave;_==null||_({event:R,node:ie})},O.onNodeContextMenu=function(R,ie){var _=O.props.onRightClick;_&&(R.preventDefault(),_({event:R,node:ie}))},O.onFocus=function(){var R=O.props.onFocus;O.setState({focused:!0});for(var ie=arguments.length,_=new Array(ie),Xe=0;Xe1&&arguments[1]!==void 0?arguments[1]:!1,_=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;if(!O.destroyed){var Xe=!1,it=!0,Ct={};Object.keys(R).forEach(function(Pt){if(Pt in O.props){it=!1;return}Xe=!0,Ct[Pt]=R[Pt]}),Xe&&(!ie||it)&&O.setState((0,T.Z)((0,T.Z)({},Ct),_))}},O.scrollTo=function(R){O.listRef.current.scrollTo(R)},O}return(0,t.Z)(je,[{key:"componentDidMount",value:function(){this.destroyed=!1,this.onUpdated()}},{key:"componentDidUpdate",value:function(){this.onUpdated()}},{key:"onUpdated",value:function(){var Ae=this.props.activeKey;Ae!==void 0&&Ae!==this.state.activeKey&&(this.setState({activeKey:Ae}),Ae!==null&&this.scrollTo({key:Ae}))}},{key:"componentWillUnmount",value:function(){window.removeEventListener("dragend",this.onWindowDragEnd),this.destroyed=!0}},{key:"resetDragState",value:function(){this.setState({dragOverNodeKey:null,dropPosition:null,dropLevelOffset:null,dropTargetKey:null,dropContainerKey:null,dropTargetPos:null,dropAllowed:!1})}},{key:"render",value:function(){var Ae,Z=this.state,b=Z.focused,R=Z.flattenNodes,ie=Z.keyEntities,_=Z.draggingNodeKey,Xe=Z.activeKey,it=Z.dropLevelOffset,Ct=Z.dropContainerKey,Pt=Z.dropTargetKey,Nt=Z.dropPosition,Vt=Z.dragOverNodeKey,kt=Z.indent,tt=this.props,dt=tt.prefixCls,Ft=tt.className,At=tt.style,Lt=tt.showLine,un=tt.focusable,Xt=tt.tabIndex,pn=Xt===void 0?0:Xt,Sn=tt.selectable,Gt=tt.showIcon,an=tt.icon,ln=tt.switcherIcon,Pn=tt.draggable,zn=tt.checkable,qn=tt.checkStrictly,yr=tt.disabled,kn=tt.motion,ae=tt.loadData,qe=tt.filterTreeNode,_e=tt.height,re=tt.itemHeight,Y=tt.virtual,Be=tt.titleRender,we=tt.dropIndicatorRender,vt=tt.onContextMenu,Se=tt.onScroll,X=tt.direction,Ne=tt.rootClassName,St=tt.rootStyle,xe=(0,ne.Z)(this.props,{aria:!0,data:!0}),fe;return Pn&&((0,I.Z)(Pn)==="object"?fe=Pn:typeof Pn=="function"?fe={nodeDraggable:Pn}:fe={}),de.createElement(A.k.Provider,{value:{prefixCls:dt,selectable:Sn,showIcon:Gt,icon:an,switcherIcon:ln,draggable:fe,draggingNodeKey:_,checkable:zn,checkStrictly:qn,disabled:yr,keyEntities:ie,dropLevelOffset:it,dropContainerKey:Ct,dropTargetKey:Pt,dropPosition:Nt,dragOverNodeKey:Vt,indent:kt,direction:X,dropIndicatorRender:we,loadData:ae,filterTreeNode:qe,titleRender:Be,onNodeClick:this.onNodeClick,onNodeDoubleClick:this.onNodeDoubleClick,onNodeExpand:this.onNodeExpand,onNodeSelect:this.onNodeSelect,onNodeCheck:this.onNodeCheck,onNodeLoad:this.onNodeLoad,onNodeMouseEnter:this.onNodeMouseEnter,onNodeMouseLeave:this.onNodeMouseLeave,onNodeContextMenu:this.onNodeContextMenu,onNodeDragStart:this.onNodeDragStart,onNodeDragEnter:this.onNodeDragEnter,onNodeDragOver:this.onNodeDragOver,onNodeDragLeave:this.onNodeDragLeave,onNodeDragEnd:this.onNodeDragEnd,onNodeDrop:this.onNodeDrop}},de.createElement("div",{role:"tree",className:te()(dt,Ft,Ne,(Ae={},(0,y.Z)(Ae,"".concat(dt,"-show-line"),Lt),(0,y.Z)(Ae,"".concat(dt,"-focused"),b),(0,y.Z)(Ae,"".concat(dt,"-active-focused"),Xe!==null),Ae)),style:St},de.createElement(ft,(0,i.Z)({ref:this.listRef,prefixCls:dt,style:At,data:R,disabled:yr,selectable:Sn,checkable:!!zn,motion:kn,dragging:_!==null,height:_e,itemHeight:re,virtual:Y,focusable:un,focused:b,tabIndex:pn,activeItem:this.getActiveItem(),onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.onKeyDown,onActiveChange:this.onActiveChange,onListChangeStart:this.onListChangeStart,onListChangeEnd:this.onListChangeEnd,onContextMenu:vt,onScroll:Se},this.getTreeNodeRequiredProps(),xe))))}}],[{key:"getDerivedStateFromProps",value:function(Ae,Z){var b=Z.prevProps,R={prevProps:Ae};function ie(un){return!b&&un in Ae||b&&b[un]!==Ae[un]}var _,Xe=Z.fieldNames;if(ie("fieldNames")&&(Xe=(0,$e.w$)(Ae.fieldNames),R.fieldNames=Xe),ie("treeData")?_=Ae.treeData:ie("children")&&((0,K.ZP)(!1,"`children` of Tree is deprecated. Please use `treeData` instead."),_=(0,$e.zn)(Ae.children)),_){R.treeData=_;var it=(0,$e.I8)(_,{fieldNames:Xe});R.keyEntities=(0,T.Z)((0,y.Z)({},ut,W),it.keyEntities)}var Ct=R.keyEntities||Z.keyEntities;if(ie("expandedKeys")||b&&ie("autoExpandParent"))R.expandedKeys=Ae.autoExpandParent||!b&&Ae.defaultExpandParent?(0,J.r7)(Ae.expandedKeys,Ct):Ae.expandedKeys;else if(!b&&Ae.defaultExpandAll){var Pt=(0,T.Z)({},Ct);delete Pt[ut],R.expandedKeys=Object.keys(Pt).map(function(un){return Pt[un].key})}else!b&&Ae.defaultExpandedKeys&&(R.expandedKeys=Ae.autoExpandParent||Ae.defaultExpandParent?(0,J.r7)(Ae.defaultExpandedKeys,Ct):Ae.defaultExpandedKeys);if(R.expandedKeys||delete R.expandedKeys,_||R.expandedKeys){var Nt=(0,$e.oH)(_||Z.treeData,R.expandedKeys||Z.expandedKeys,Xe);R.flattenNodes=Nt}if(Ae.selectable&&(ie("selectedKeys")?R.selectedKeys=(0,J.BT)(Ae.selectedKeys,Ae):!b&&Ae.defaultSelectedKeys&&(R.selectedKeys=(0,J.BT)(Ae.defaultSelectedKeys,Ae))),Ae.checkable){var Vt;if(ie("checkedKeys")?Vt=(0,J.E6)(Ae.checkedKeys)||{}:!b&&Ae.defaultCheckedKeys?Vt=(0,J.E6)(Ae.defaultCheckedKeys)||{}:_&&(Vt=(0,J.E6)(Ae.checkedKeys)||{checkedKeys:Z.checkedKeys,halfCheckedKeys:Z.halfCheckedKeys}),Vt){var kt=Vt,tt=kt.checkedKeys,dt=tt===void 0?[]:tt,Ft=kt.halfCheckedKeys,At=Ft===void 0?[]:Ft;if(!Ae.checkStrictly){var Lt=(0,gt.S)(dt,!0,Ct);dt=Lt.checkedKeys,At=Lt.halfCheckedKeys}R.checkedKeys=dt,R.halfCheckedKeys=At}}return ie("loadedKeys")&&(R.loadedKeys=Ae.loadedKeys),R}}]),je}(de.Component);bt.defaultProps={prefixCls:"rc-tree",showLine:!1,showIcon:!0,selectable:!0,multiple:!1,checkable:!1,disabled:!1,checkStrictly:!1,draggable:!1,defaultExpandParent:!0,autoExpandParent:!1,defaultExpandAll:!1,defaultExpandedKeys:[],defaultCheckedKeys:[],defaultSelectedKeys:[],dropIndicatorRender:Ut,allowDrop:function(){return!0},expandAction:!1},bt.TreeNode=st.Z;var xt=bt,ve=xt},39919:function(Dt,De,e){"use strict";e.d(De,{BT:function(){return f},E6:function(){return J},L0:function(){return M},OM:function(){return ne},_5:function(){return j},r7:function(){return $e},wA:function(){return de},yx:function(){return Ce}});var i=e(29140),y=e(38790),I=e(58757),T=e(75556),F=e(49026),H=e(47857),t=null;function j(z,g){if(!z)return[];var Ve=z.slice(),Zt=Ve.indexOf(g);return Zt>=0&&Ve.splice(Zt,1),Ve}function M(z,g){var Ve=(z||[]).slice();return Ve.indexOf(g)===-1&&Ve.push(g),Ve}function Ce(z){return z.split("-")}function de(z,g){var Ve=[],Zt=g[z];function Le(){var G=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];G.forEach(function(st){var Me=st.key,P=st.children;Ve.push(Me),Le(P)})}return Le(Zt.children),Ve}function w(z){if(z.parent){var g=Ce(z.pos);return Number(g[g.length-1])===z.parent.children.length-1}return!1}function K(z){var g=Ce(z.pos);return Number(g[g.length-1])===0}function ne(z,g,Ve,Zt,Le,G,st,Me,P,Re){var ct,ee=z.clientX,ue=z.clientY,se=z.target.getBoundingClientRect(),Ke=se.top,ot=se.height,Fe=(Re==="rtl"?-1:1)*(((Le==null?void 0:Le.x)||0)-ee),ut=(Fe-12)/Zt,U=Me[Ve.props.eventKey];if(ue-1.5?G({dragNode:It,dropNode:bt,dropPosition:1})?ft=1:xt=!1:G({dragNode:It,dropNode:bt,dropPosition:0})?ft=0:G({dragNode:It,dropNode:bt,dropPosition:1})?ft=1:xt=!1:G({dragNode:It,dropNode:bt,dropPosition:1})?ft=1:xt=!1,{dropPosition:ft,dropLevelOffset:gt,dropTargetKey:U.key,dropTargetPos:U.pos,dragOverNodeKey:pt,dropContainerKey:ft===0?null:((ct=U.parent)===null||ct===void 0?void 0:ct.key)||null,dropAllowed:xt}}function f(z,g){if(z){var Ve=g.multiple;return Ve?z.slice():z.length?[z[0]]:z}}var te=function(g){return g};function A(z,g){if(!z)return[];var Ve=g||{},Zt=Ve.processProps,Le=Zt===void 0?te:Zt,G=Array.isArray(z)?z:[z];return G.map(function(st){var Me=st.children,P=_objectWithoutProperties(st,t),Re=A(Me,g);return React.createElement(TreeNode,_extends({key:P.key},Le(P)),Re)})}function J(z){if(!z)return null;var g;if(Array.isArray(z))g={checkedKeys:z,halfCheckedKeys:void 0};else if((0,y.Z)(z)==="object")g={checkedKeys:z.checked||void 0,halfCheckedKeys:z.halfChecked||void 0};else return(0,T.ZP)(!1,"`checkedKeys` is not an array or an object"),null;return g}function $e(z,g){var Ve=new Set;function Zt(Le){if(!Ve.has(Le)){var G=g[Le];if(G){Ve.add(Le);var st=G.parent,Me=G.node;Me.disabled||st&&Zt(st.key)}}}return(z||[]).forEach(function(Le){Zt(Le)}),(0,i.Z)(Ve)}},16226:function(Dt,De,e){"use strict";e.d(De,{S:function(){return H}});var i=e(75556);function y(t,j){var M=new Set;return t.forEach(function(Ce){j.has(Ce)||M.add(Ce)}),M}function I(t){var j=t||{},M=j.disabled,Ce=j.disableCheckbox,de=j.checkable;return!!(M||Ce)||de===!1}function T(t,j,M,Ce){for(var de=new Set(t),w=new Set,K=0;K<=M;K+=1){var ne=j.get(K)||new Set;ne.forEach(function(J){var $e=J.key,z=J.node,g=J.children,Ve=g===void 0?[]:g;de.has($e)&&!Ce(z)&&Ve.filter(function(Zt){return!Ce(Zt.node)}).forEach(function(Zt){de.add(Zt.key)})})}for(var f=new Set,te=M;te>=0;te-=1){var A=j.get(te)||new Set;A.forEach(function(J){var $e=J.parent,z=J.node;if(!(Ce(z)||!J.parent||f.has(J.parent.key))){if(Ce(J.parent.node)){f.add($e.key);return}var g=!0,Ve=!1;($e.children||[]).filter(function(Zt){return!Ce(Zt.node)}).forEach(function(Zt){var Le=Zt.key,G=de.has(Le);g&&!G&&(g=!1),!Ve&&(G||w.has(Le))&&(Ve=!0)}),g&&de.add($e.key),Ve&&w.add($e.key),f.add($e.key)}})}return{checkedKeys:Array.from(de),halfCheckedKeys:Array.from(y(w,de))}}function F(t,j,M,Ce,de){for(var w=new Set(t),K=new Set(j),ne=0;ne<=Ce;ne+=1){var f=M.get(ne)||new Set;f.forEach(function($e){var z=$e.key,g=$e.node,Ve=$e.children,Zt=Ve===void 0?[]:Ve;!w.has(z)&&!K.has(z)&&!de(g)&&Zt.filter(function(Le){return!de(Le.node)}).forEach(function(Le){w.delete(Le.key)})})}K=new Set;for(var te=new Set,A=Ce;A>=0;A-=1){var J=M.get(A)||new Set;J.forEach(function($e){var z=$e.parent,g=$e.node;if(!(de(g)||!$e.parent||te.has($e.parent.key))){if(de($e.parent.node)){te.add(z.key);return}var Ve=!0,Zt=!1;(z.children||[]).filter(function(Le){return!de(Le.node)}).forEach(function(Le){var G=Le.key,st=w.has(G);Ve&&!st&&(Ve=!1),!Zt&&(st||K.has(G))&&(Zt=!0)}),Ve||w.delete(z.key),Zt&&K.add(z.key),te.add(z.key)}})}return{checkedKeys:Array.from(w),halfCheckedKeys:Array.from(y(K,w))}}function H(t,j,M,Ce){var de=[],w;Ce?w=Ce:w=I;var K=new Set(t.filter(function(A){var J=!!M[A];return J||de.push(A),J})),ne=new Map,f=0;Object.keys(M).forEach(function(A){var J=M[A],$e=J.level,z=ne.get($e);z||(z=new Set,ne.set($e,z)),z.add(J),f=Math.max(f,$e)}),(0,i.ZP)(!de.length,"Tree missing follow keys: ".concat(de.slice(0,100).map(function(A){return"'".concat(A,"'")}).join(", ")));var te;return j===!0?te=T(K,ne,f,w):te=F(K,j.halfCheckedKeys,ne,f,w),te}},47857:function(Dt,De,e){"use strict";e.d(De,{F:function(){return $e},H8:function(){return J},I8:function(){return A},km:function(){return de},oH:function(){return f},w$:function(){return w},zn:function(){return ne}});var i=e(38790),y=e(29140),I=e(57370),T=e(47075),F=e(42156),H=e(98186),t=e(75556),j=["children"];function M(z,g){return"".concat(z,"-").concat(g)}function Ce(z){return z&&z.type&&z.type.isTreeNode}function de(z,g){return z!=null?z:g}function w(z){var g=z||{},Ve=g.title,Zt=g._title,Le=g.key,G=g.children,st=Ve||"title";return{title:st,_title:Zt||[st],key:Le||"key",children:G||"children"}}function K(z,g){var Ve=new Map;function Zt(Le){var G=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";(Le||[]).forEach(function(st){var Me=st[g.key],P=st[g.children];warning(Me!=null,"Tree node must have a certain key: [".concat(G).concat(Me,"]"));var Re=String(Me);warning(!Ve.has(Re)||Me===null||Me===void 0,"Same 'key' exist in the Tree: ".concat(Re)),Ve.set(Re,!0),Zt(P,"".concat(G).concat(Re," > "))})}Zt(z)}function ne(z){function g(Ve){var Zt=(0,F.Z)(Ve);return Zt.map(function(Le){if(!Ce(Le))return(0,t.ZP)(!Le,"Tree/TreeNode can only accept TreeNode as children."),null;var G=Le.key,st=Le.props,Me=st.children,P=(0,T.Z)(st,j),Re=(0,I.Z)({key:G},P),ct=g(Me);return ct.length&&(Re.children=ct),Re}).filter(function(Le){return Le})}return g(z)}function f(z,g,Ve){var Zt=w(Ve),Le=Zt._title,G=Zt.key,st=Zt.children,Me=new Set(g===!0?[]:g),P=[];function Re(ct){var ee=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return ct.map(function(ue,se){for(var Ke=M(ee?ee.pos:"0",se),ot=de(ue[G],Ke),Fe,ut=0;ut1&&arguments[1]!==void 0?arguments[1]:{},Ve=g.initWrapper,Zt=g.processEntity,Le=g.onProcessFinished,G=g.externalGetKey,st=g.childrenPropName,Me=g.fieldNames,P=arguments.length>2?arguments[2]:void 0,Re=G||P,ct={},ee={},ue={posEntities:ct,keyEntities:ee};return Ve&&(ue=Ve(ue)||ue),te(z,function(se){var Ke=se.node,ot=se.index,Fe=se.pos,ut=se.key,U=se.parentPos,W=se.level,me=se.nodes,he={node:Ke,nodes:me,index:ot,key:ut,pos:Fe,level:W},ht=de(ut,Fe);ct[Fe]=he,ee[ht]=he,he.parent=ct[U],he.parent&&(he.parent.children=he.parent.children||[],he.parent.children.push(he)),Zt&&Zt(he,ue)},{externalGetKey:Re,childrenPropName:st,fieldNames:Me}),Le&&Le(ue),ue}function J(z,g){var Ve=g.expandedKeys,Zt=g.selectedKeys,Le=g.loadedKeys,G=g.loadingKeys,st=g.checkedKeys,Me=g.halfCheckedKeys,P=g.dragOverNodeKey,Re=g.dropPosition,ct=g.keyEntities,ee=ct[z],ue={eventKey:z,expanded:Ve.indexOf(z)!==-1,selected:Zt.indexOf(z)!==-1,loaded:Le.indexOf(z)!==-1,loading:G.indexOf(z)!==-1,checked:st.indexOf(z)!==-1,halfChecked:Me.indexOf(z)!==-1,pos:String(ee?ee.pos:""),dragOver:P===z&&Re===0,dragOverGapTop:P===z&&Re===-1,dragOverGapBottom:P===z&&Re===1};return ue}function $e(z){var g=z.data,Ve=z.expanded,Zt=z.selected,Le=z.checked,G=z.loaded,st=z.loading,Me=z.halfChecked,P=z.dragOver,Re=z.dragOverGapTop,ct=z.dragOverGapBottom,ee=z.pos,ue=z.active,se=z.eventKey,Ke=(0,I.Z)((0,I.Z)({},g),{},{expanded:Ve,selected:Zt,checked:Le,loaded:G,loading:st,halfChecked:Me,dragOver:P,dragOverGapTop:Re,dragOverGapBottom:ct,pos:ee,active:ue,key:se});return"props"in Ke||Object.defineProperty(Ke,"props",{get:function(){return(0,t.ZP)(!1,"Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`."),z}}),Ke}},14311:function(Dt,De,e){"use strict";e.d(De,{Z:function(){return y}});var i=e(26736);function y(I,T,F,H){var t=i.unstable_batchedUpdates?function(M){i.unstable_batchedUpdates(F,M)}:F;return I!=null&&I.addEventListener&&I.addEventListener(T,t,H),{remove:function(){I!=null&&I.removeEventListener&&I.removeEventListener(T,t,H)}}}},60085:function(Dt,De,e){"use strict";e.d(De,{g1:function(){return de},os:function(){return K}});var i=/margin|padding|width|height|max|min|offset/,y={left:!0,top:!0},I={cssFloat:1,styleFloat:1,float:1};function T(ne){return ne.nodeType===1?ne.ownerDocument.defaultView.getComputedStyle(ne,null):{}}function F(ne,f,te){if(f=f.toLowerCase(),te==="auto"){if(f==="height")return ne.offsetHeight;if(f==="width")return ne.offsetWidth}return f in y||(y[f]=i.test(f)),y[f]?parseFloat(te)||0:te}function H(ne,f){var te=arguments.length,A=T(ne);return f=I[f]?"cssFloat"in ne.style?"cssFloat":"styleFloat":f,te===1?A:F(ne,f,A[f]||ne.style[f])}function t(ne,f,te){var A=arguments.length;if(f=I[f]?"cssFloat"in ne.style?"cssFloat":"styleFloat":f,A===3)return typeof te=="number"&&i.test(f)&&(te="".concat(te,"px")),ne.style[f]=te,te;for(var J in f)f.hasOwnProperty(J)&&t(ne,J,f[J]);return T(ne)}function j(ne){return ne===document.body?document.documentElement.clientWidth:ne.offsetWidth}function M(ne){return ne===document.body?window.innerHeight||document.documentElement.clientHeight:ne.offsetHeight}function Ce(){var ne=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth),f=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);return{width:ne,height:f}}function de(){var ne=document.documentElement.clientWidth,f=window.innerHeight||document.documentElement.clientHeight;return{width:ne,height:f}}function w(){return{scrollLeft:Math.max(document.documentElement.scrollLeft,document.body.scrollLeft),scrollTop:Math.max(document.documentElement.scrollTop,document.body.scrollTop)}}function K(ne){var f=ne.getBoundingClientRect(),te=document.documentElement;return{left:f.left+(window.pageXOffset||te.scrollLeft)-(te.clientLeft||document.body.clientLeft||0),top:f.top+(window.pageYOffset||te.scrollTop)-(te.clientTop||document.body.clientTop||0)}}},91923:function(Dt,De,e){"use strict";e.d(De,{G:function(){return T}});var i=e(19075),y=function(H){if((0,i.Z)()&&window.document.documentElement){var t=Array.isArray(H)?H:[H],j=window.document.documentElement;return t.some(function(M){return M in j.style})}return!1},I=function(H,t){if(!y(H))return!1;var j=document.createElement("div"),M=j.style[H];return j.style[H]=t,j.style[H]!==M};function T(F,H){return!Array.isArray(F)&&H!==void 0?I(F,H):y(F)}},50145:function(Dt,De,e){"use strict";Object.defineProperty(De,"__esModule",{value:!0}),De.autoprefix=void 0;var i=e(14802),y=T(i),I=Object.assign||function(t){for(var j=1;j1&&arguments[1]!==void 0?arguments[1]:"span";return function(w){t(K,w);function K(){var ne,f,te,A;F(this,K);for(var J=arguments.length,$e=Array(J),z=0;z1&&arguments[1]!==void 0?arguments[1]:"span";return function(w){t(K,w);function K(){var ne,f,te,A;F(this,K);for(var J=arguments.length,$e=Array(J),z=0;z0&&arguments[0]!==void 0?arguments[0]:[],K=[];return(0,j.default)(w,function(ne){Array.isArray(ne)?de(ne).map(function(f){return K.push(f)}):(0,H.default)(ne)?(0,T.default)(ne,function(f,te){f===!0&&K.push(te),K.push(te+"-"+f)}):(0,y.default)(ne)&&K.push(ne)}),K};De.default=Ce},48472:function(Dt,De,e){"use strict";var i;i={value:!0},i=i=i=i=i=void 0;var y=e(96013),I=ne(y),T=e(98452),F=ne(T),H=e(50145),t=ne(H),j=e(66697),M=ne(j),Ce=e(21318),de=ne(Ce),w=e(41670),K=ne(w);function ne(te){return te&&te.__esModule?te:{default:te}}i=M.default,i=M.default,i=de.default,i=K.default;var f=i=function(A){for(var J=arguments.length,$e=Array(J>1?J-1:0),z=1;z1&&arguments[1]!==void 0?arguments[1]:!0;T[t]=j};return y===0&&F("first-child"),y===I-1&&F("last-child"),(y===0||y%2===0)&&F("even"),Math.abs(y%2)===1&&F("odd"),F("nth-child",y),T};De.default=e},98452:function(Dt,De,e){"use strict";Object.defineProperty(De,"__esModule",{value:!0}),De.mergeClasses=void 0;var i=e(14802),y=H(i),I=e(77179),T=H(I),F=Object.assign||function(j){for(var M=1;M1&&arguments[1]!==void 0?arguments[1]:[],de=M.default&&(0,T.default)(M.default)||{};return Ce.map(function(w){var K=M[w];return K&&(0,y.default)(K,function(ne,f){de[f]||(de[f]={}),de[f]=F({},de[f],K[f])}),w}),de};De.default=t},30149:function(Dt,De){"use strict";const{hasOwnProperty:e}=Object.prototype,i=ne();i.configure=ne,i.stringify=i,i.default=i,De.stringify=i,De.configure=ne,Dt.exports=i;const y=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/;function I(f){return f.length<5e3&&!y.test(f)?`"${f}"`:JSON.stringify(f)}function T(f){if(f.length>200)return f.sort();for(let te=1;teA;)f[J]=f[J-1],J--;f[J]=A}return f}const F=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function H(f){return F.call(f)!==void 0&&f.length!==0}function t(f,te,A){f.length= 1`)}return A===void 0?1/0:A}function de(f){return f===1?"1 item":`${f} items`}function w(f){const te=new Set;for(const A of f)(typeof A=="string"||typeof A=="number")&&te.add(String(A));return te}function K(f){if(e.call(f,"strict")){const te=f.strict;if(typeof te!="boolean")throw new TypeError('The "strict" argument must be of type boolean');if(te)return A=>{let J=`Object can not safely be stringified. Received type ${typeof A}`;throw typeof A!="function"&&(J+=` (${A.toString()})`),new Error(J)}}}function ne(f){f=Vc({},f);const te=K(f);te&&(f.bigint===void 0&&(f.bigint=!1),"circularValue"in f||(f.circularValue=Error));const A=j(f),J=M(f,"bigint"),$e=M(f,"deterministic"),z=Ce(f,"maximumDepth"),g=Ce(f,"maximumBreadth");function Ve(Me,P,Re,ct,ee,ue){let se=P[Me];switch(typeof se=="object"&&se!==null&&typeof se.toJSON=="function"&&(se=se.toJSON(Me)),se=ct.call(P,Me,se),typeof se){case"string":return I(se);case"object":{if(se===null)return"null";if(Re.indexOf(se)!==-1)return A;let Ke="",ot=",";const Fe=ue;if(Array.isArray(se)){if(se.length===0)return"[]";if(zg){const ft=se.length-g-1;Ke+=`${ot}"... ${de(ft)} not stringified"`}return ee!==""&&(Ke+=` -${Fe}`),Re.pop(),`[${Ke}]`}let ut=Object.keys(se);const U=ut.length;if(U===0)return"{}";if(zg){const ht=U-g;Ke+=`${me}"...":${W}"${de(ht)} not stringified"`,me=ot}return ee!==""&&me.length>1&&(Ke=` -${ue}${Ke} -${Fe}`),Re.pop(),`{${Ke}}`}case"number":return isFinite(se)?String(se):te?te(se):"null";case"boolean":return se===!0?"true":"false";case"undefined":return;case"bigint":if(J)return String(se);default:return te?te(se):void 0}}function Zt(Me,P,Re,ct,ee,ue){switch(typeof P=="object"&&P!==null&&typeof P.toJSON=="function"&&(P=P.toJSON(Me)),typeof P){case"string":return I(P);case"object":{if(P===null)return"null";if(Re.indexOf(P)!==-1)return A;const se=ue;let Ke="",ot=",";if(Array.isArray(P)){if(P.length===0)return"[]";if(zg){const he=P.length-g-1;Ke+=`${ot}"... ${de(he)} not stringified"`}return ee!==""&&(Ke+=` -${se}`),Re.pop(),`[${Ke}]`}Re.push(P);let Fe="";ee!==""&&(ue+=ee,ot=`, -${ue}`,Fe=" ");let ut="";for(const U of ct){const W=Zt(U,P[U],Re,ct,ee,ue);W!==void 0&&(Ke+=`${ut}${I(U)}:${Fe}${W}`,ut=ot)}return ee!==""&&ut.length>1&&(Ke=` -${ue}${Ke} -${se}`),Re.pop(),`{${Ke}}`}case"number":return isFinite(P)?String(P):te?te(P):"null";case"boolean":return P===!0?"true":"false";case"undefined":return;case"bigint":if(J)return String(P);default:return te?te(P):void 0}}function Le(Me,P,Re,ct,ee){switch(typeof P){case"string":return I(P);case"object":{if(P===null)return"null";if(typeof P.toJSON=="function"){if(P=P.toJSON(Me),typeof P!="object")return Le(Me,P,Re,ct,ee);if(P===null)return"null"}if(Re.indexOf(P)!==-1)return A;const ue=ee;if(Array.isArray(P)){if(P.length===0)return"[]";if(zg){const pt=P.length-g-1;W+=`${me}"... ${de(pt)} not stringified"`}return W+=` -${ue}`,Re.pop(),`[${W}]`}let se=Object.keys(P);const Ke=se.length;if(Ke===0)return"{}";if(zg){const W=Ke-g;Fe+=`${ut}"...": "${de(W)} not stringified"`,ut=ot}return ut!==""&&(Fe=` -${ee}${Fe} -${ue}`),Re.pop(),`{${Fe}}`}case"number":return isFinite(P)?String(P):te?te(P):"null";case"boolean":return P===!0?"true":"false";case"undefined":return;case"bigint":if(J)return String(P);default:return te?te(P):void 0}}function G(Me,P,Re){switch(typeof P){case"string":return I(P);case"object":{if(P===null)return"null";if(typeof P.toJSON=="function"){if(P=P.toJSON(Me),typeof P!="object")return G(Me,P,Re);if(P===null)return"null"}if(Re.indexOf(P)!==-1)return A;let ct="";if(Array.isArray(P)){if(P.length===0)return"[]";if(zg){const U=P.length-g-1;ct+=`,"... ${de(U)} not stringified"`}return Re.pop(),`[${ct}]`}let ee=Object.keys(P);const ue=ee.length;if(ue===0)return"{}";if(zg){const ot=ue-g;ct+=`${se}"...":"${de(ot)} not stringified"`}return Re.pop(),`{${ct}}`}case"number":return isFinite(P)?String(P):te?te(P):"null";case"boolean":return P===!0?"true":"false";case"undefined":return;case"bigint":if(J)return String(P);default:return te?te(P):void 0}}function st(Me,P,Re){if(arguments.length>1){let ct="";if(typeof Re=="number"?ct=" ".repeat(Math.min(Re,10)):typeof Re=="string"&&(ct=Re.slice(0,10)),P!=null){if(typeof P=="function")return Ve("",{"":Me},[],P,ct,"");if(Array.isArray(P))return Zt("",Me,[],w(P),ct,"")}if(ct.length!==0)return Le("",Me,[],ct,"")}return G("",Me,[])}return st}},86021:function(Dt){var De=function(e){return e.replace(/[A-Z]/g,function(i){return"-"+i.toLowerCase()}).toLowerCase()};Dt.exports=De}}]); -}()); -//# sourceMappingURL=742.95758e3b.async.js.map \ No newline at end of file diff --git a/deepdataspace/server/static/742.95758e3b.async.js.map b/deepdataspace/server/static/742.95758e3b.async.js.map deleted file mode 100644 index 0643002..0000000 --- a/deepdataspace/server/static/742.95758e3b.async.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"742.95758e3b.async.js","mappings":"AACA;A6CsEA;AAyBA;AEQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AELA;AAwBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A6CgFA;AAAA;AyD/LA;AACA;AACA;AgBwDA;AA4BA;AACA;AAKA;AAaA;AACA;AACA;AACA;AACA;AACA;AAeA;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAsBA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AAwFA;AAIA;AASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuDA;AAAA;AAAA;AAuBA;AAiBA;AAIA;AA8BA;AAYA;AACA;AAaA;AAAA;AAAA;AAgFA;AAAA;AAkCA;AA0BA;AACA;AAwBA;AAAA;AAyCA;AAMA;AA4WA;AACA;AACA;AAIA;AACA;AACA;AAIA;AAIA;AAwGA;AoG7kCA;AACA;AACA;A4B6CA;AACA;AA8BA;AACA;AASA;AACA;AAMA;AACA;AoIjIA;AAAA;AAAA;AAwBA;AACA;AACA;AACA;AACA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBA;AAAA;AAAA;AAAA;AAUA;AAAA;AAAA;AAuBA;AACA;AACA;ACtFA;AACA;AACA;ACFA;AAAA;AAAA;AGIA;AACA;AACA;AAMA;AACA;AACA;AAkBA;AACA;AACA;AAwCA;AACA;AACA;AAeA;AACA;AACA;AI5EA;AACA;AACA;ACtBA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;ACYA;AACA;AACA;AGkCA;AACA;AACA;AACA;AAAA;AAAA;AAcA;AAAA;AAAA;AAqCA;AACA;AACA;AAuBA;AACA;AACA;AACA;AACA;AsC2NA;AAAA;AAAA;AY3UA;AACA;AACA;AACA;AACA;AAwJA;AAAA;AAAA;AASA;AAAA;AAAA;AChKA;AAAA;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;AACA;AACA;AACA;AwIqIA;AACA;AAgBA;AAkBA;AAsBA;AAAA;AAmDA;AACA;AAgBA;AASA;AAYA;AAAA;AAqDA;AACA;AAcA;AAcA;AA4BA;AAAA","sources":["webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/CopyOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/CopyOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/FileOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/FileOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/UserOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/UserOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/VerticalAlignTopOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/VerticalAlignTopOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/hooks/useDebounceValue/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Status/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Select/LightSelect/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Select/SearchSelect/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Select/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/hooks/useFetchData/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/transformKeySubmitValue/index.js","webpack://app/../node_modules/.pnpm/@umijs+use-params@1.0.9_react@18.2.0/node_modules/@umijs/use-params/es/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/Submitter/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/BaseForm/BaseForm.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/BaseForm/EditOrReadOnlyContext.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/pickProFormItemProps/index.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/FieldContext.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/ListContext.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/utils/typeUtil.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/utils/messages.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/utils/validateUtil.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/utils/valueUtil.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/Field.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/List.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/utils/asyncUtil.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/utils/NameMap.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/useForm.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/FormContext.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/Form.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/useWatch.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/BaseForm/createField.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/FieldContext.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/Dependency/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/pickProProps/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Cascader/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Checkbox/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Code/index.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/helpers/alpha.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/helpers/checkboard.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/common/Checkboard.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/common/Alpha.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/helpers/hue.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/common/Hue.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/helpers/saturation.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/common/Saturation.js","webpack://app/javascript/node_modules/.pnpm/tinycolor2@1.6.0/node_modules/tinycolor2/esm/tinycolor.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/helpers/color.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/common/ColorWrap.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/common/EditableInput.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/helpers/interaction.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/common/Swatch.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/sketch/SketchFields.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/sketch/SketchPresetColors.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/sketch/Sketch.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/ColorPicker/old.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/ColorPicker/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/parseValueToMoment/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/DatePicker/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Digit/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/DigitRange/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/FromNow/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Image/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/IndexColumn/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Money/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Options/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Password/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Percent/util.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Percent/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Progress/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Radio/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/RangePicker/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Rate/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Second/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Segmented/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Slider/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Switch/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Text/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/TextArea/readonly.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/TextArea/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/TimePicker/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/TreeSelect/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/FieldHOC/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/Field/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/isDropdownValueType/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/dateArrayFormatter/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/BaseForm/LightWrapper/style.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/BaseForm/LightWrapper/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/FormItem/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/List/ListItem.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/List/ListContainer.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/List/style.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/List/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/helpers/grid.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/Group/style.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/Group/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/layouts/ProForm/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/FieldLabel/style.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/FieldLabel/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/DropdownFooter/style.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/DropdownFooter/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/FilterDropdown/style.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/FilterDropdown/index.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/InfoCircleOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/InfoCircleOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/LabelIconTip/style.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/LabelIconTip/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/ProFormContext/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/conversionMomentValue/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/hooks/useDeepCompareEffect/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/hooks/useLatest/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/hooks/usePrevious/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/isDeepEqualReact/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/isNil/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/merge/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/nanoid/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/runFunction/index.js","webpack://app/javascript/node_modules/.pnpm/safe-stable-stringify@2.4.3/node_modules/safe-stable-stringify/esm/wrapper.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/stringify/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/_util/getScroll.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/_util/easings.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/_util/scrollTo.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/_util/transButton.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/badge/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/badge/style/ribbon.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/badge/Ribbon.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/badge/SingleNumber.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/badge/ScrollNumber.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/badge/index.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/context.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/hooks/useSearchOptions.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/utils/commonUtil.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/utils/treeUtil.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/hooks/useDisplayValues.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/hooks/useEntities.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/hooks/useMissingValues.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/hooks/useSearchConfig.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/OptionList/CacheContent.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/OptionList/Checkbox.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/OptionList/Column.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/OptionList/useActive.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/OptionList/useKeyboard.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/OptionList/index.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/utils/warningPropsUtil.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/Cascader.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/cascader/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/cascader/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/col/index.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/CalendarOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/CalendarOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/ClockCircleOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/ClockCircleOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/SwapRightOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/SwapRightOutlined.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/util.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/PickerButton.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/generatePicker/Components.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/generatePicker/generateRangePicker.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/generatePicker/generateSinglePicker.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/generatePicker/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/grid/index.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/common.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/context.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/hooks/useRegisterImage.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/util.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/hooks/useStatus.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/getFixScaleEleTransPosition.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/hooks/useImageTransform.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/Operations.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/previewConfig.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/Preview.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/hooks/usePreviewItems.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/PreviewGroup.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/Image.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/index.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/RotateLeftOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/RotateLeftOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/RotateRightOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/RotateRightOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/SwapOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/SwapOutlined.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/image/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/image/PreviewGroup.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/image/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/anchor/context.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/anchor/AnchorLink.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/anchor/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/anchor/Anchor.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/anchor/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/app/context.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/app/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/app/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/auto-complete/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/back-top/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/back-top/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/calendar/Header.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/calendar/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/calendar/generateCalendar.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/calendar/index.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/initial-state.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/utils/innerSliderUtils.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/track.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/dots.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/arrows.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/inner-slider.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/default-props.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/slider.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/carousel/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/carousel/index.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/color.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/util.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/components/ColorBlock.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/hooks/useColorDrag.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/components/Handler.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/components/Palette.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/components/Transform.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/components/Picker.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/components/Gradient.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/components/Slider.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/hooks/useColorState.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/ColorPicker.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/context.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/color.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/util.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorClear.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/interface.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorSteppers.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorAlphaInput.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorHexInput.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorHsbInput.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorRgbInput.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorInput.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/PanelPicker.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorPresets.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/PanelPresets.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/ColorPickerPanel.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorTrigger.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/hooks/useColorState.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/style/color-block.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/style/input.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/style/picker.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/style/presets.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/ColorPicker.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/descriptions/DescriptionsContext.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/descriptions/Item.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/descriptions/Cell.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/descriptions/Row.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/descriptions/hooks/useRow.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/descriptions/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/descriptions/index.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/FileTextOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/FileTextOutlined.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/FloatButtonContent.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/context.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/util.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/FloatButton.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/BackTop.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/FloatButtonGroup.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/PurePanel.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/index.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/hooks/useEffectState.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/MentionsContext.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/DropdownMenu.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/KeywordTrigger.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/Option.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/util.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/Mentions.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/mentions/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/mentions/index.js","webpack://app/../node_modules/.pnpm/qrcode.react@3.1.0_react@18.2.0/node_modules/qrcode.react/lib/esm/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/qr-code/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/qr-code/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/statistic/Number.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/statistic/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/statistic/Statistic.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/statistic/utils.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/statistic/Countdown.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/statistic/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/timeline/TimelineItem.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/timeline/TimelineItemList.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/timeline/useItems.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/timeline/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/timeline/Timeline.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/timeline/index.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/util.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/hooks/useTarget.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/Mask.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/placements.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/TourStep/DefaultPanel.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/TourStep/index.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/Tour.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tour/panelRender.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tour/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tour/PurePanel.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tour/useMergedType.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tour/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/_util/transKeys.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/hooks/useData.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/hooks/useSelection.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/ListItem.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/ListBody.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/search.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/list.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/operation.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/index.js","webpack://app/../node_modules/.pnpm/@rc-component+mutate-observer@1.1.0_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/mutate-observer/es/wrapper.js","webpack://app/../node_modules/.pnpm/@rc-component+mutate-observer@1.1.0_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/mutate-observer/es/useMutateObserver.js","webpack://app/../node_modules/.pnpm/@rc-component+mutate-observer@1.1.0_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/mutate-observer/es/MutateObserver.js","webpack://app/../node_modules/.pnpm/@rc-component+mutate-observer@1.1.0_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/mutate-observer/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/watermark/useClips.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/watermark/utils.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/watermark/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/popconfirm/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/popconfirm/PurePanel.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/popconfirm/index.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/StarFilled.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/StarFilled.js","webpack://app/../node_modules/.pnpm/rc-rate@2.12.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-rate/es/Star.js","webpack://app/../node_modules/.pnpm/rc-rate@2.12.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-rate/es/useRefs.js","webpack://app/../node_modules/.pnpm/rc-rate@2.12.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-rate/es/util.js","webpack://app/../node_modules/.pnpm/rc-rate@2.12.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-rate/es/Rate.js","webpack://app/../node_modules/.pnpm/rc-rate@2.12.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-rate/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/rate/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/rate/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/row/index.js","webpack://app/../node_modules/.pnpm/rc-segmented@2.2.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-segmented/es/MotionThumb.js","webpack://app/../node_modules/.pnpm/rc-segmented@2.2.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-segmented/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/segmented/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/segmented/index.js","webpack://app/../node_modules/.pnpm/rc-steps@6.0.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-steps/es/Step.js","webpack://app/../node_modules/.pnpm/rc-steps@6.0.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-steps/es/Steps.js","webpack://app/../node_modules/.pnpm/rc-steps@6.0.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-steps/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/custom-icon.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/inline.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/label-placement.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/nav.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/progress.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/progress-dot.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/rtl.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/small.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/vertical.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/useLegacyItems.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/style/operationUnit.js","webpack://app/../node_modules/.pnpm/rc-switch@4.1.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-switch/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/switch/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/switch/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useLazyKVMap.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/constant.js","webpack://app/../node_modules/.pnpm/@rc-component+context@1.4.0_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/context/es/context.js","webpack://app/../node_modules/.pnpm/@rc-component+context@1.4.0_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/context/es/Immutable.js","webpack://app/../node_modules/.pnpm/@rc-component+context@1.4.0_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/context/es/index.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/context/TableContext.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useRenderTimes.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/context/PerfContext.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/utils/valueUtil.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Cell/useCellRender.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Cell/useHoverState.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Cell/index.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/utils/fixUtil.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Footer/SummaryContext.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Footer/Cell.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Footer/Row.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Footer/Summary.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Footer/index.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useFlattenRecords.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Body/ExpandedRow.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Body/BodyRow.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Body/MeasureCell.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Body/MeasureRow.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Body/index.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/utils/legacyUtil.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/ColGroup.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/FixedHolder/index.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Header/HeaderRow.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Header/Header.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useColumns.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/utils/expandUtil.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useExpand.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useFixedInfo.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useFrame.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useHover.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useSticky.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useStickyOffsets.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Panel/index.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/stickyScrollBar.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/sugar/Column.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/sugar/ColumnGroup.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Table.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/Column.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/ColumnGroup.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/ExpandIcon.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/RcTable.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/util.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/FilterFilled.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/FilterFilled.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/_util/hooks/useSyncState.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useFilter/FilterSearch.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useFilter/FilterWrapper.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useFilter/FilterDropdown.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useFilter/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/usePagination.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useSelection.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/CaretDownOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/CaretDownOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/CaretUpOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/CaretUpOutlined.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useSorter.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useTitleColumns.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/bordered.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/ellipsis.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/empty.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/expand.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/filter.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/fixed.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/pagination.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/radius.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/rtl.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/selection.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/size.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/sorter.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/sticky.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/summary.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/InternalTable.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/Table.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/_util/capitalize.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tag/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tag/CheckableTag.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tag/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/time-picker/index.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/hooks/useCache.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/hooks/useCheckedKeys.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/hooks/useDataEntities.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/TreeNode.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/utils/legacyUtil.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/hooks/useFilterTreeData.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/hooks/useRefFunc.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/hooks/useTreeData.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/LegacyContext.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/TreeSelectContext.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/utils/valueUtil.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/OptionList.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/utils/strategyUtil.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/utils/warningPropsUtil.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/TreeSelect.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree-select/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree-select/index.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/FolderOpenOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/FolderOpenOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/FolderOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/FolderOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/HolderOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/HolderOutlined.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree/utils/dropIndicator.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree/Tree.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree/utils/dictUtil.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree/DirectoryTree.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree/style/index.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/CaretDownFilled.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/CaretDownFilled.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/MinusSquareOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/MinusSquareOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/PlusSquareOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/PlusSquareOutlined.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree/utils/iconUtil.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/EditOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/EditOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/EnterOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/EnterOutlined.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/style/mixins.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Editable.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Typography.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/hooks/useMergedConfig.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/hooks/useUpdatedEffect.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Base/Ellipsis.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Base/EllipsisTooltip.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Base/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Link.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Paragraph.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Text.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Title.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/index.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/advancedFormat.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/customParseFormat.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/isoWeek.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/localeData.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/quarterOfYear.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/relativeTime.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/weekOfYear.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/weekYear.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/weekday.js","webpack://app/../node_modules/.pnpm/json2mq@0.2.0/node_modules/json2mq/index.js","webpack://app/../node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.js","webpack://app/../node_modules/.pnpm/lodash.tonumber@4.0.3/node_modules/lodash.tonumber/index.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assignMergeValue.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseEach.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFor.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseForOwn.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseHasIn.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsMatch.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIteratee.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMap.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatches.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatchesProperty.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMerge.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMergeDeep.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseProperty.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyDeep.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castFunction.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseEach.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseFor.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMatchData.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasPath.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isStrictComparable.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_matchesStrictComparable.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_safeGet.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/cloneDeep.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/each.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/forEach.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/forOwn.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/get.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/hasIn.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLikeObject.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isString.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/map.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/merge.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/property.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toPlainObject.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/generate/dayjs.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DecadePanel/constant.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/dateUtil.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useValueTexts.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useHoverValue.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/uiUtil.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/usePickerInput.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/usePresets.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useTextValueMapping.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/PanelContext.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useCellRender.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/miscUtil.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useCellClassName.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/RangeContext.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/timeUtil.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/PanelBody.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DatePanel/DateBody.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/Header.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DatePanel/DateHeader.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DatePanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/TimePanel/TimeHeader.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useTimeSelection.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/TimePanel/TimeUnitColumn.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/TimePanel/TimeBody.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/TimePanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DatetimePanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DecadePanel/DecadeHeader.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DecadePanel/DecadeBody.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DecadePanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/MonthPanel/MonthHeader.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/MonthPanel/MonthBody.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/MonthPanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/QuarterPanel/QuarterHeader.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/QuarterPanel/QuarterBody.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/QuarterPanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/WeekPanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/YearPanel/constant.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/YearPanel/YearHeader.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/YearPanel/YearBody.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/YearPanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/getExtraFooter.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/getRanges.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/PickerPanel.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/PickerTrigger.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/PresetPanel.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/warnUtil.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/getClearIcon.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/Picker.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useRangeDisabled.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useRangeOpen.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useRangeViewDates.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/RangePicker.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/index.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/Indent.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/TreeNode.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/contextTypes.js","webpack://app/javascript/node_modules/.pnpm/@babel+runtime@7.22.11/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/useUnmount.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/MotionTreeNode.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/utils/diffUtil.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/NodeList.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/DropIndicator.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/Tree.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/index.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/util.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/utils/conductUtil.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/utils/treeUtil.js","webpack://app/../node_modules/.pnpm/rc-util@5.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-util/es/Dom/addEventListener.js","webpack://app/../node_modules/.pnpm/rc-util@5.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-util/es/Dom/css.js","webpack://app/../node_modules/.pnpm/rc-util@5.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-util/es/Dom/styleChecker.js","webpack://app/../node_modules/.pnpm/reactcss@1.2.3_react@18.2.0/node_modules/reactcss/lib/autoprefix.js","webpack://app/../node_modules/.pnpm/reactcss@1.2.3_react@18.2.0/node_modules/reactcss/lib/components/active.js","webpack://app/../node_modules/.pnpm/reactcss@1.2.3_react@18.2.0/node_modules/reactcss/lib/components/hover.js","webpack://app/../node_modules/.pnpm/reactcss@1.2.3_react@18.2.0/node_modules/reactcss/lib/flattenNames.js","webpack://app/../node_modules/.pnpm/reactcss@1.2.3_react@18.2.0/node_modules/reactcss/lib/index.js","webpack://app/../node_modules/.pnpm/reactcss@1.2.3_react@18.2.0/node_modules/reactcss/lib/loop.js","webpack://app/../node_modules/.pnpm/reactcss@1.2.3_react@18.2.0/node_modules/reactcss/lib/mergeClasses.js","webpack://app/../node_modules/.pnpm/safe-stable-stringify@2.4.3/node_modules/safe-stable-stringify/index.js","webpack://app/../node_modules/.pnpm/string-convert@0.2.1/node_modules/string-convert/camel2hyphen.js"],"sourcesContent":["// This icon file is generated automatically.\nvar CopyOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z\" } }] }, \"name\": \"copy\", \"theme\": \"outlined\" };\nexport default CopyOutlined;\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 CopyOutlinedSvg from \"@ant-design/icons-svg/es/asn/CopyOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CopyOutlined = function CopyOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CopyOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CopyOutlined.displayName = 'CopyOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(CopyOutlined);","// This icon file is generated automatically.\nvar FileOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"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.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z\" } }] }, \"name\": \"file\", \"theme\": \"outlined\" };\nexport default FileOutlined;\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 FileOutlinedSvg from \"@ant-design/icons-svg/es/asn/FileOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FileOutlined = function FileOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FileOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n FileOutlined.displayName = 'FileOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(FileOutlined);","// This icon file is generated automatically.\nvar UserOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z\" } }] }, \"name\": \"user\", \"theme\": \"outlined\" };\nexport default UserOutlined;\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 UserOutlinedSvg from \"@ant-design/icons-svg/es/asn/UserOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar UserOutlined = function UserOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UserOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n UserOutlined.displayName = 'UserOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(UserOutlined);","// This icon file is generated automatically.\nvar VerticalAlignTopOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M859.9 168H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM518.3 355a8 8 0 00-12.6 0l-112 141.7a7.98 7.98 0 006.3 12.9h73.9V848c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V509.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 355z\" } }] }, \"name\": \"vertical-align-top\", \"theme\": \"outlined\" };\nexport default VerticalAlignTopOutlined;\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 VerticalAlignTopOutlinedSvg from \"@ant-design/icons-svg/es/asn/VerticalAlignTopOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar VerticalAlignTopOutlined = function VerticalAlignTopOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: VerticalAlignTopOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n VerticalAlignTopOutlined.displayName = 'VerticalAlignTopOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(VerticalAlignTopOutlined);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState } from 'react';\nimport { useLatest } from \"../useLatest\";\n/**\n * 一个去抖的setState 减少更新的频率\n * @param {T} value\n * @param {number=100} delay\n * @param {DependencyList} deps?\n * @returns T\n */\nexport function useDebounceValue(value) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;\n var deps = arguments.length > 2 ? arguments[2] : undefined;\n var _useState = useState(value),\n _useState2 = _slicedToArray(_useState, 2),\n debouncedValue = _useState2[0],\n setDebouncedValue = _useState2[1];\n var valueRef = useLatest(value);\n useEffect(function () {\n var handler = setTimeout(function () {\n setDebouncedValue(valueRef.current);\n }, delay);\n return function () {\n return clearTimeout(handler);\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps ? [delay].concat(_toConsumableArray(deps)) : undefined);\n return debouncedValue;\n}","import { Badge } from 'antd';\nimport React from 'react';\n\n// 兼容代码-----------\nimport \"antd/es/badge/style\";\n//------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/** 快捷操作,用于快速的展示一个状态 */\nvar Status = {\n Success: function Success(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"success\",\n text: children\n });\n },\n Error: function Error(_ref2) {\n var children = _ref2.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"error\",\n text: children\n });\n },\n Default: function Default(_ref3) {\n var children = _ref3.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"default\",\n text: children\n });\n },\n Processing: function Processing(_ref4) {\n var children = _ref4.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"processing\",\n text: children\n });\n },\n Warning: function Warning(_ref5) {\n var children = _ref5.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"warning\",\n text: children\n });\n },\n success: function success(_ref6) {\n var children = _ref6.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"success\",\n text: children\n });\n },\n error: function error(_ref7) {\n var children = _ref7.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"error\",\n text: children\n });\n },\n default: function _default(_ref8) {\n var children = _ref8.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"default\",\n text: children\n });\n },\n processing: function processing(_ref9) {\n var children = _ref9.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"processing\",\n text: children\n });\n },\n warning: function warning(_ref10) {\n var children = _ref10.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"warning\",\n text: children\n });\n }\n};\nexport var ProFieldBadgeColor = function ProFieldBadgeColor(_ref11) {\n var color = _ref11.color,\n children = _ref11.children;\n return /*#__PURE__*/_jsx(Badge, {\n color: color,\n text: children\n });\n};\nexport default Status;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"label\", \"prefixCls\", \"onChange\", \"value\", \"mode\", \"children\", \"defaultValue\", \"size\", \"showSearch\", \"disabled\", \"style\", \"className\", \"bordered\", \"options\", \"onSearch\", \"allowClear\", \"labelInValue\", \"fieldNames\", \"lightLabel\", \"labelTrigger\", \"optionFilterProp\", \"optionLabelProp\"];\nimport { SearchOutlined } from '@ant-design/icons';\nimport { FieldLabel, useStyle } from '@ant-design/pro-utils';\nimport { ConfigProvider, Input, Select } from 'antd';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport React, { useContext, useMemo, useState } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * 如果有 label 就优先使用 label\n *\n * @param valueMap\n * @param v\n */\nvar getValueOrLabel = function getValueOrLabel(valueMap, v) {\n if (_typeof(v) !== 'object') {\n return valueMap[v] || v;\n }\n return valueMap[v === null || v === void 0 ? void 0 : v.value] || v.label;\n};\nvar LightSelect = function LightSelect(props, ref) {\n var label = props.label,\n customizePrefixCls = props.prefixCls,\n _onChange = props.onChange,\n value = props.value,\n mode = props.mode,\n children = props.children,\n defaultValue = props.defaultValue,\n size = props.size,\n showSearch = props.showSearch,\n disabled = props.disabled,\n style = props.style,\n className = props.className,\n bordered = props.bordered,\n options = props.options,\n onSearch = props.onSearch,\n allowClear = props.allowClear,\n labelInValue = props.labelInValue,\n fieldNames = props.fieldNames,\n lightLabel = props.lightLabel,\n labelTrigger = props.labelTrigger,\n optionFilterProp = props.optionFilterProp,\n _props$optionLabelPro = props.optionLabelProp,\n optionLabelProp = _props$optionLabelPro === void 0 ? '' : _props$optionLabelPro,\n restProps = _objectWithoutProperties(props, _excluded);\n var _props$placeholder = props.placeholder,\n placeholder = _props$placeholder === void 0 ? label : _props$placeholder;\n var _ref = fieldNames || {},\n _ref$label = _ref.label,\n labelPropsName = _ref$label === void 0 ? 'label' : _ref$label,\n _ref$value = _ref.value,\n valuePropsName = _ref$value === void 0 ? 'value' : _ref$value;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-field-select-light-select');\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n var _useState3 = useState(''),\n _useState4 = _slicedToArray(_useState3, 2),\n keyword = _useState4[0],\n setKeyword = _useState4[1];\n\n // css\n var _useStyle = useStyle('LightSelect', function (token) {\n var _$concat2;\n return _defineProperty({}, \".\".concat(prefixCls), (_$concat2 = {}, _defineProperty(_$concat2, \"\".concat(token.antCls, \"-select\"), {\n position: 'absolute',\n width: '153px',\n height: '28px',\n visibility: 'hidden',\n '&-selector': {\n height: 28\n }\n }), _defineProperty(_$concat2, \"&.\".concat(prefixCls, \"-searchable\"), _defineProperty({}, \"\".concat(token.antCls, \"-select\"), {\n width: '200px',\n '&-selector': {\n height: 28\n }\n })), _$concat2));\n }),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var valueMap = useMemo(function () {\n var values = {};\n options === null || options === void 0 ? void 0 : options.forEach(function (item) {\n var optionLabel = item[optionLabelProp] || item[labelPropsName];\n var optionValue = item[valuePropsName];\n values[optionValue] = optionLabel || optionValue;\n });\n return values;\n }, [labelPropsName, options, valuePropsName, optionLabelProp]);\n var filterValue = Array.isArray(value) ? value.map(function (v) {\n return getValueOrLabel(valueMap, v);\n }) : getValueOrLabel(valueMap, value);\n return wrapSSR( /*#__PURE__*/_jsxs(\"div\", {\n className: classNames(prefixCls, hashId, _defineProperty({}, \"\".concat(prefixCls, \"-searchable\"), showSearch), \"\".concat(prefixCls, \"-container-\").concat(restProps.placement || 'bottomLeft'), className),\n style: style,\n onClick: function onClick(e) {\n var _lightLabel$current, _lightLabel$current$l, _lightLabel$current$l2;\n if (disabled) return;\n // 点击label切换下拉菜单\n var isLabelClick = lightLabel === null || lightLabel === void 0 ? void 0 : (_lightLabel$current = lightLabel.current) === null || _lightLabel$current === void 0 ? void 0 : (_lightLabel$current$l = _lightLabel$current.labelRef) === null || _lightLabel$current$l === void 0 ? void 0 : (_lightLabel$current$l2 = _lightLabel$current$l.current) === null || _lightLabel$current$l2 === void 0 ? void 0 : _lightLabel$current$l2.contains(e.target);\n if (isLabelClick) {\n setOpen(!open);\n } else {\n setOpen(true);\n }\n },\n children: [/*#__PURE__*/_jsx(Select, _objectSpread(_objectSpread({\n popupMatchSelectWidth: false\n }, restProps), {}, {\n allowClear: allowClear,\n value: value,\n mode: mode,\n labelInValue: labelInValue,\n size: size,\n disabled: disabled,\n onChange: function onChange(v, option) {\n _onChange === null || _onChange === void 0 ? void 0 : _onChange(v, option);\n if (mode !== 'multiple') {\n setOpen(false);\n }\n },\n bordered: bordered,\n showSearch: showSearch,\n onSearch: onSearch,\n style: style,\n dropdownRender: function dropdownRender(menuNode) {\n return /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n children: [showSearch && /*#__PURE__*/_jsx(\"div\", {\n style: {\n margin: '4px 8px'\n },\n children: /*#__PURE__*/_jsx(Input, {\n value: keyword,\n allowClear: !!allowClear,\n onChange: function onChange(e) {\n setKeyword(e.target.value);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(e.target.value);\n },\n onKeyDown: function onKeyDown(e) {\n // 避免按下删除键把选项也删除了\n e.stopPropagation();\n },\n style: {\n width: '100%'\n },\n prefix: /*#__PURE__*/_jsx(SearchOutlined, {})\n })\n }), menuNode]\n });\n },\n open: open,\n onDropdownVisibleChange: function onDropdownVisibleChange(isOpen) {\n var _restProps$onDropdown;\n if (!isOpen) {\n // 测试环境下直接跑\n setKeyword('');\n }\n if (!labelTrigger) {\n setOpen(isOpen);\n }\n restProps === null || restProps === void 0 ? void 0 : (_restProps$onDropdown = restProps.onDropdownVisibleChange) === null || _restProps$onDropdown === void 0 ? void 0 : _restProps$onDropdown.call(restProps, isOpen);\n },\n prefixCls: customizePrefixCls,\n options: onSearch || !keyword ? options : options === null || options === void 0 ? void 0 : options.filter(function (o) {\n var _String, _String$toLowerCase, _o$valuePropsName, _o$valuePropsName$toS, _o$valuePropsName$toS2;\n if (optionFilterProp) {\n return toArray(o[optionFilterProp]).join('').toLowerCase().includes(keyword);\n }\n return ((_String = String(o[labelPropsName])) === null || _String === void 0 ? void 0 : (_String$toLowerCase = _String.toLowerCase()) === null || _String$toLowerCase === void 0 ? void 0 : _String$toLowerCase.includes(keyword === null || keyword === void 0 ? void 0 : keyword.toLowerCase())) || ((_o$valuePropsName = o[valuePropsName]) === null || _o$valuePropsName === void 0 ? void 0 : (_o$valuePropsName$toS = _o$valuePropsName.toString()) === null || _o$valuePropsName$toS === void 0 ? void 0 : (_o$valuePropsName$toS2 = _o$valuePropsName$toS.toLowerCase()) === null || _o$valuePropsName$toS2 === void 0 ? void 0 : _o$valuePropsName$toS2.includes(keyword === null || keyword === void 0 ? void 0 : keyword.toLowerCase()));\n })\n })), /*#__PURE__*/_jsx(FieldLabel, {\n ellipsis: true,\n label: label,\n placeholder: placeholder,\n disabled: disabled,\n bordered: bordered,\n allowClear: !!allowClear,\n value: filterValue || (value === null || value === void 0 ? void 0 : value.label) || value,\n onClear: function onClear() {\n _onChange === null || _onChange === void 0 ? void 0 : _onChange(undefined, undefined);\n },\n ref: lightLabel\n })]\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(LightSelect);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"optionItemRender\", \"mode\", \"onSearch\", \"onFocus\", \"onChange\", \"autoClearSearchValue\", \"searchOnFocus\", \"resetAfterSelect\", \"fetchDataOnSearch\", \"optionFilterProp\", \"optionLabelProp\", \"className\", \"disabled\", \"options\", \"fetchData\", \"resetData\", \"prefixCls\", \"onClear\", \"searchValue\", \"showSearch\", \"fieldNames\", \"defaultSearchValue\"],\n _excluded2 = [\"className\", \"optionType\"];\nimport { ConfigProvider, Select } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\n\n// 支持 key, value, label,兼容 UserSearch 中只填写了 key 的情况。\n\n/** 用户扩展数据后的值类型 */\n\n/** 可能单选,可能多选 */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar SearchSelect = function SearchSelect(props, ref) {\n var optionItemRender = props.optionItemRender,\n mode = props.mode,\n onSearch = props.onSearch,\n _onFocus = props.onFocus,\n _onChange = props.onChange,\n _props$autoClearSearc = props.autoClearSearchValue,\n autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n _props$searchOnFocus = props.searchOnFocus,\n searchOnFocus = _props$searchOnFocus === void 0 ? false : _props$searchOnFocus,\n _props$resetAfterSele = props.resetAfterSelect,\n resetAfterSelect = _props$resetAfterSele === void 0 ? false : _props$resetAfterSele,\n _props$fetchDataOnSea = props.fetchDataOnSearch,\n fetchDataOnSearch = _props$fetchDataOnSea === void 0 ? true : _props$fetchDataOnSea,\n _props$optionFilterPr = props.optionFilterProp,\n optionFilterProp = _props$optionFilterPr === void 0 ? 'label' : _props$optionFilterPr,\n _props$optionLabelPro = props.optionLabelProp,\n optionLabelProp = _props$optionLabelPro === void 0 ? 'label' : _props$optionLabelPro,\n className = props.className,\n disabled = props.disabled,\n options = props.options,\n fetchData = props.fetchData,\n resetData = props.resetData,\n customizePrefixCls = props.prefixCls,\n _onClear = props.onClear,\n propsSearchValue = props.searchValue,\n showSearch = props.showSearch,\n fieldNames = props.fieldNames,\n defaultSearchValue = props.defaultSearchValue,\n restProps = _objectWithoutProperties(props, _excluded);\n var _ref = fieldNames || {},\n _ref$label = _ref.label,\n labelPropsName = _ref$label === void 0 ? 'label' : _ref$label,\n _ref$value = _ref.value,\n valuePropsName = _ref$value === void 0 ? 'value' : _ref$value,\n _ref$options = _ref.options,\n optionsPropsName = _ref$options === void 0 ? 'options' : _ref$options;\n var _useState = useState(propsSearchValue !== null && propsSearchValue !== void 0 ? propsSearchValue : defaultSearchValue),\n _useState2 = _slicedToArray(_useState, 2),\n searchValue = _useState2[0],\n setSearchValue = _useState2[1];\n var selectRef = useRef();\n useImperativeHandle(ref, function () {\n return selectRef.current;\n });\n useEffect(function () {\n if (restProps.autoFocus) {\n var _selectRef$current;\n selectRef === null || selectRef === void 0 ? void 0 : (_selectRef$current = selectRef.current) === null || _selectRef$current === void 0 ? void 0 : _selectRef$current.focus();\n }\n }, [restProps.autoFocus]);\n useEffect(function () {\n setSearchValue(propsSearchValue);\n }, [propsSearchValue]);\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-filed-search-select', customizePrefixCls);\n\n // 兼容 renderXXX API。\n\n var classString = classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled));\n var getMergeValue = function getMergeValue(value, option) {\n if (Array.isArray(value) && value.length > 0) {\n // 多选情况且用户有选择\n return value.map(function (item, index) {\n var optionItem = option === null || option === void 0 ? void 0 : option[index];\n var dataItem = (optionItem === null || optionItem === void 0 ? void 0 : optionItem['data-item']) || {};\n return _objectSpread(_objectSpread({}, dataItem), item);\n });\n }\n return [];\n };\n var genOptions = function genOptions(mapOptions) {\n return mapOptions.map(function (item, index) {\n var _item$optionsPropsNam;\n var _ref2 = item,\n itemClassName = _ref2.className,\n optionType = _ref2.optionType,\n resetItem = _objectWithoutProperties(_ref2, _excluded2);\n var label = item[labelPropsName];\n var value = item[valuePropsName];\n var itemOptions = (_item$optionsPropsNam = item[optionsPropsName]) !== null && _item$optionsPropsNam !== void 0 ? _item$optionsPropsNam : [];\n if (optionType === 'optGroup' || item.options) {\n return _objectSpread(_objectSpread({\n label: label\n }, resetItem), {}, {\n data_title: label,\n title: label,\n key: value !== null && value !== void 0 ? value : label === null || label === void 0 ? void 0 : label.toString(),\n children: genOptions(itemOptions)\n });\n }\n return _objectSpread(_objectSpread({\n title: label\n }, resetItem), {}, {\n data_title: label,\n value: value !== null && value !== void 0 ? value : index,\n key: value !== null && value !== void 0 ? value : label === null || label === void 0 ? void 0 : label.toString(),\n 'data-item': item,\n className: \"\".concat(prefixCls, \"-option \").concat(itemClassName || '').trim(),\n label: (optionItemRender === null || optionItemRender === void 0 ? void 0 : optionItemRender(item)) || label\n });\n });\n };\n return /*#__PURE__*/_jsx(Select, _objectSpread(_objectSpread({\n ref: selectRef,\n className: classString,\n allowClear: true,\n autoClearSearchValue: autoClearSearchValue,\n disabled: disabled,\n mode: mode,\n showSearch: showSearch,\n searchValue: searchValue,\n optionFilterProp: optionFilterProp,\n optionLabelProp: optionLabelProp,\n onClear: function onClear() {\n _onClear === null || _onClear === void 0 ? void 0 : _onClear();\n fetchData(undefined);\n if (showSearch) {\n setSearchValue(undefined);\n }\n }\n }, restProps), {}, {\n filterOption: restProps.filterOption == false ? false : function (inputValue, option) {\n var _option$data_title, _option$label, _option$value;\n if (restProps.filterOption && typeof restProps.filterOption === 'function') {\n return restProps.filterOption(inputValue, _objectSpread(_objectSpread({}, option), {}, {\n label: option === null || option === void 0 ? void 0 : option.data_title\n }));\n }\n return !!(option !== null && option !== void 0 && (_option$data_title = option.data_title) !== null && _option$data_title !== void 0 && _option$data_title.toString().toLowerCase().includes(inputValue.toLowerCase()) || option !== null && option !== void 0 && (_option$label = option.label) !== null && _option$label !== void 0 && _option$label.toString().toLowerCase().includes(inputValue.toLowerCase()) || option !== null && option !== void 0 && (_option$value = option.value) !== null && _option$value !== void 0 && _option$value.toString().toLowerCase().includes(inputValue.toLowerCase()));\n } // 这里使用pro-components的过滤逻辑\n ,\n onSearch: showSearch ? function (value) {\n if (fetchDataOnSearch) {\n fetchData(value);\n }\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(value);\n setSearchValue(value);\n } : undefined,\n onChange: function onChange(value, optionList) {\n // 将搜索框置空 和 antd 行为保持一致\n if (showSearch && autoClearSearchValue) {\n fetchData(undefined);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch('');\n setSearchValue(undefined);\n }\n for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n rest[_key - 2] = arguments[_key];\n }\n if (!props.labelInValue) {\n _onChange === null || _onChange === void 0 ? void 0 : _onChange.apply(void 0, [value, optionList].concat(rest));\n return;\n }\n if (mode !== 'multiple') {\n // 单选情况且用户选择了选项\n var dataItem = optionList && optionList['data-item'];\n // 如果value值为空则是清空时产生的回调,直接传值就可以了\n if (!value || !dataItem) {\n _onChange === null || _onChange === void 0 ? void 0 : _onChange.apply(void 0, [value, optionList].concat(rest));\n } else {\n _onChange === null || _onChange === void 0 ? void 0 : _onChange.apply(void 0, [_objectSpread(_objectSpread({}, value), dataItem), optionList].concat(rest));\n }\n return;\n }\n // 合并值\n var mergeValue = getMergeValue(value, optionList);\n _onChange === null || _onChange === void 0 ? void 0 : _onChange.apply(void 0, [mergeValue, optionList].concat(rest));\n\n // 将搜索结果置空,重新搜索\n if (resetAfterSelect) resetData();\n },\n onFocus: function onFocus(e) {\n if (searchOnFocus) {\n fetchData(searchValue);\n }\n _onFocus === null || _onFocus === void 0 ? void 0 : _onFocus(e);\n },\n options: genOptions(options || [])\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(SearchSelect);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"value\", \"text\"],\n _excluded2 = [\"mode\", \"valueEnum\", \"render\", \"renderFormItem\", \"request\", \"fieldProps\", \"plain\", \"children\", \"light\", \"proFieldKey\", \"params\", \"label\", \"bordered\", \"id\", \"lightLabel\", \"labelTrigger\"];\nimport { useIntl } from '@ant-design/pro-provider';\nimport { nanoid, useDebounceValue, useDeepCompareEffect, useMountMergeState, useStyle } from '@ant-design/pro-utils';\nimport { ConfigProvider, Space, Spin } from 'antd';\nimport React, { useCallback, useContext, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport useSWR from 'swr';\nimport TableStatus, { ProFieldBadgeColor } from \"../Status\";\nimport LightSelect from \"./LightSelect\";\nimport SearchSelect from \"./SearchSelect\";\n\n// 兼容代码-----------\nimport \"antd/es/select/style\";\n//------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nexport var ObjToMap = function ObjToMap(value) {\n if (getType(value) === 'map') {\n return value;\n }\n return new Map(Object.entries(value || {}));\n};\n\n/**\n * 转化 text 和 valueEnum 通过 type 来添加 Status\n *\n * @param text\n * @param valueEnum\n * @param pure 纯净模式,不增加 status\n */\nexport var proFieldParsingText = function proFieldParsingText(text, valueEnumParams, key) {\n if (Array.isArray(text)) {\n return /*#__PURE__*/_jsx(Space, {\n split: \",\",\n size: 2,\n wrap: true,\n children: text.map(function (value, index) {\n return (\n // @ts-ignore\n proFieldParsingText(value, valueEnumParams, index)\n );\n })\n }, key);\n }\n var valueEnum = ObjToMap(valueEnumParams);\n if (!valueEnum.has(text) && !valueEnum.has(\"\".concat(text))) {\n // @ts-ignore\n return (text === null || text === void 0 ? void 0 : text.label) || text;\n }\n var domText = valueEnum.get(text) || valueEnum.get(\"\".concat(text));\n if (!domText) {\n // @ts-ignore\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: (text === null || text === void 0 ? void 0 : text.label) || text\n }, key);\n }\n var status = domText.status,\n color = domText.color;\n var Status = TableStatus[status || 'Init'];\n // 如果类型存在优先使用类型\n if (Status) {\n return /*#__PURE__*/_jsx(Status, {\n children: domText.text\n }, key);\n }\n\n // 如果不存在使用颜色\n if (color) {\n return /*#__PURE__*/_jsx(ProFieldBadgeColor, {\n color: color,\n children: domText.text\n }, key);\n }\n // 什么都没有使用 text\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: domText.text || domText\n }, key);\n};\nvar Highlight = function Highlight(_ref) {\n var label = _ref.label,\n words = _ref.words;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var lightCls = getPrefixCls('pro-select-item-option-content-light');\n var optionCls = getPrefixCls('pro-select-item-option-content');\n\n // css\n var _useStyle = useStyle('Highlight', function (token) {\n var _ref2;\n return _ref2 = {}, _defineProperty(_ref2, \".\".concat(lightCls), {\n color: token.colorPrimary\n }), _defineProperty(_ref2, \".\".concat(optionCls), {\n flex: 'auto',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n }), _ref2;\n }),\n wrapSSR = _useStyle.wrapSSR;\n var matchKeywordsRE = new RegExp(words.map(function (word) {\n return word.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n }).join('|'), 'gi');\n var matchText = label;\n var elements = [];\n while (matchText.length) {\n var match = matchKeywordsRE.exec(matchText);\n if (!match) {\n elements.push(matchText);\n break;\n }\n var start = match.index;\n var matchLength = match[0].length + start;\n elements.push(matchText.slice(0, start), /*#__PURE__*/React.createElement('span', {\n className: lightCls\n }, matchText.slice(start, matchLength)));\n matchText = matchText.slice(matchLength);\n }\n return wrapSSR( /*#__PURE__*/React.createElement.apply(React, ['div', {\n title: label,\n className: optionCls\n }].concat(elements)));\n};\n\n/**\n * 获取类型的 type\n *\n * @param obj\n */\nfunction getType(obj) {\n // @ts-ignore\n var type = Object.prototype.toString.call(obj).match(/^\\[object (.*)\\]$/)[1].toLowerCase();\n if (type === 'string' && _typeof(obj) === 'object') return 'object'; // Let \"new String('')\" return 'object'\n if (obj === null) return 'null'; // PhantomJS has type \"DOMWindow\" for null\n if (obj === undefined) return 'undefined'; // PhantomJS has type \"DOMWindow\" for undefined\n return type;\n}\n\n/**\n * 递归筛选 item\n *\n * @param item\n * @param keyWords\n * @returns\n */\nfunction filerByItem(item, keyWords) {\n var _item$label, _item$value;\n if (!keyWords) return true;\n if (item !== null && item !== void 0 && (_item$label = item.label) !== null && _item$label !== void 0 && _item$label.toString().toLowerCase().includes(keyWords.toLowerCase()) || item !== null && item !== void 0 && (_item$value = item.value) !== null && _item$value !== void 0 && _item$value.toString().toLowerCase().includes(keyWords.toLowerCase())) {\n return true;\n }\n if (item.children || item.options) {\n var findItem = [].concat(_toConsumableArray(item.children || []), [item.options || []]).find(function (mapItem) {\n return filerByItem(mapItem, keyWords);\n });\n if (findItem) return true;\n }\n return false;\n}\n\n/**\n * 把 value 的枚举转化为数组\n *\n * @param valueEnum\n */\nexport var proFieldParsingValueEnumToArray = function proFieldParsingValueEnumToArray(valueEnumParams) {\n var enumArray = [];\n var valueEnum = ObjToMap(valueEnumParams);\n valueEnum.forEach(function (_, key) {\n var value = valueEnum.get(key) || valueEnum.get(\"\".concat(key));\n if (!value) {\n return;\n }\n if (_typeof(value) === 'object' && value !== null && value !== void 0 && value.text) {\n enumArray.push({\n text: value === null || value === void 0 ? void 0 : value.text,\n value: key,\n label: value === null || value === void 0 ? void 0 : value.text,\n disabled: value.disabled\n });\n return;\n }\n enumArray.push({\n text: value,\n value: key\n });\n });\n return enumArray;\n};\nexport var useFieldFetchData = function useFieldFetchData(props) {\n var _ref5, _props$debounceTime, _props$fieldProps3, _props$fieldProps6;\n var cacheForSwr = props.cacheForSwr,\n fieldProps = props.fieldProps;\n var _useState = useState(props.defaultKeyWords),\n _useState2 = _slicedToArray(_useState, 2),\n keyWords = _useState2[0],\n setKeyWords = _useState2[1];\n /** Key 是用来缓存请求的,如果不在是有问题 */\n var _useState3 = useState(function () {\n if (props.proFieldKey) {\n return props.proFieldKey.toString();\n }\n if (props.request) {\n return nanoid();\n }\n return 'no-fetch';\n }),\n _useState4 = _slicedToArray(_useState3, 1),\n cacheKey = _useState4[0];\n var proFieldKeyRef = useRef(cacheKey);\n var getOptionsFormValueEnum = useCallback(function (coverValueEnum) {\n return proFieldParsingValueEnumToArray(ObjToMap(coverValueEnum)).map(function (_ref3) {\n var value = _ref3.value,\n text = _ref3.text,\n rest = _objectWithoutProperties(_ref3, _excluded);\n return _objectSpread({\n label: text,\n value: value,\n key: value\n }, rest);\n });\n }, []);\n var defaultOptions = useMemo(function () {\n if (!fieldProps) return undefined;\n var data = (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.options) || (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.treeData);\n if (!data) return undefined;\n var _ref4 = fieldProps.fieldNames || {},\n children = _ref4.children,\n label = _ref4.label,\n value = _ref4.value;\n var traverseFieldKey = function traverseFieldKey(_options, type) {\n if (!(_options !== null && _options !== void 0 && _options.length)) return;\n var length = _options.length;\n var i = 0;\n while (i < length) {\n var cur = _options[i++];\n if (cur[children] || cur[label] || cur[value]) {\n cur[type] = cur[type === 'children' ? children : type === 'label' ? label : value];\n traverseFieldKey(cur[children], type);\n }\n }\n };\n if (children) traverseFieldKey(data, 'children');\n if (label) traverseFieldKey(data, 'label');\n if (value) traverseFieldKey(data, 'value');\n return data;\n }, [fieldProps]);\n var _useMountMergeState = useMountMergeState(function () {\n if (props.valueEnum) {\n return getOptionsFormValueEnum(props.valueEnum);\n }\n return [];\n }, {\n value: defaultOptions\n }),\n _useMountMergeState2 = _slicedToArray(_useMountMergeState, 2),\n options = _useMountMergeState2[0],\n setOptions = _useMountMergeState2[1];\n useDeepCompareEffect(function () {\n var _props$fieldProps, _props$fieldProps2;\n // 优先使用 fieldProps?.options\n if (!props.valueEnum || (_props$fieldProps = props.fieldProps) !== null && _props$fieldProps !== void 0 && _props$fieldProps.options || (_props$fieldProps2 = props.fieldProps) !== null && _props$fieldProps2 !== void 0 && _props$fieldProps2.treeData) return;\n setOptions(getOptionsFormValueEnum(props.valueEnum));\n }, [props.valueEnum]);\n var swrKey = useDebounceValue([proFieldKeyRef.current, props.params, keyWords], (_ref5 = (_props$debounceTime = props.debounceTime) !== null && _props$debounceTime !== void 0 ? _props$debounceTime : props === null || props === void 0 ? void 0 : (_props$fieldProps3 = props.fieldProps) === null || _props$fieldProps3 === void 0 ? void 0 : _props$fieldProps3.debounceTime) !== null && _ref5 !== void 0 ? _ref5 : 0, [props.params, keyWords]);\n var _useSWR = useSWR(function () {\n if (!props.request) {\n return null;\n }\n return swrKey;\n }, function (_ref6) {\n var _ref7 = _slicedToArray(_ref6, 3),\n params = _ref7[1],\n kw = _ref7[2];\n return props.request(_objectSpread(_objectSpread({}, params), {}, {\n keyWords: kw\n }), props);\n }, {\n revalidateIfStale: !cacheForSwr,\n // 打开 cacheForSwr 的时候才应该支持两个功能\n revalidateOnReconnect: cacheForSwr,\n shouldRetryOnError: false,\n // @todo 这个功能感觉应该搞个API出来\n revalidateOnFocus: false\n }),\n data = _useSWR.data,\n setLocaleData = _useSWR.mutate,\n isValidating = _useSWR.isValidating;\n var resOptions = useMemo(function () {\n var _props$fieldProps4, _props$fieldProps5;\n var opt = options === null || options === void 0 ? void 0 : options.map(function (item) {\n if (typeof item === 'string') {\n return {\n label: item,\n value: item\n };\n }\n if (item.children || item.options) {\n var childrenOptions = [].concat(_toConsumableArray(item.children || []), _toConsumableArray(item.options || [])).filter(function (mapItem) {\n return filerByItem(mapItem, keyWords);\n });\n return _objectSpread(_objectSpread({}, item), {}, {\n children: childrenOptions,\n options: childrenOptions\n });\n }\n return item;\n });\n\n // filterOption 为 true 时 filter数据, filterOption 默认为true\n if (((_props$fieldProps4 = props.fieldProps) === null || _props$fieldProps4 === void 0 ? void 0 : _props$fieldProps4.filterOption) === true || ((_props$fieldProps5 = props.fieldProps) === null || _props$fieldProps5 === void 0 ? void 0 : _props$fieldProps5.filterOption) === undefined) {\n return opt === null || opt === void 0 ? void 0 : opt.filter(function (item) {\n if (!item) return false;\n if (!keyWords) return true;\n return filerByItem(item, keyWords);\n });\n }\n return opt;\n }, [options, keyWords, (_props$fieldProps6 = props.fieldProps) === null || _props$fieldProps6 === void 0 ? void 0 : _props$fieldProps6.filterOption]);\n return [isValidating, props.request ? data : resOptions, function (fetchKeyWords) {\n setKeyWords(fetchKeyWords);\n }, function () {\n setKeyWords(undefined);\n setLocaleData([], false);\n }];\n};\n\n/**\n * 可以根据 valueEnum 来进行类型的设置\n *\n * @param\n */\nvar FieldSelect = function FieldSelect(props, ref) {\n var _ConfigProvider$useCo;\n var mode = props.mode,\n valueEnum = props.valueEnum,\n render = props.render,\n renderFormItem = props.renderFormItem,\n request = props.request,\n fieldProps = props.fieldProps,\n plain = props.plain,\n children = props.children,\n light = props.light,\n proFieldKey = props.proFieldKey,\n params = props.params,\n label = props.label,\n bordered = props.bordered,\n id = props.id,\n lightLabel = props.lightLabel,\n labelTrigger = props.labelTrigger,\n rest = _objectWithoutProperties(props, _excluded2);\n var inputRef = useRef();\n var intl = useIntl();\n var keyWordsRef = useRef('');\n var fieldNames = fieldProps.fieldNames;\n useEffect(function () {\n keyWordsRef.current = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.searchValue;\n }, [fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.searchValue]);\n var _useFieldFetchData = useFieldFetchData(props),\n _useFieldFetchData2 = _slicedToArray(_useFieldFetchData, 4),\n loading = _useFieldFetchData2[0],\n options = _useFieldFetchData2[1],\n _fetchData = _useFieldFetchData2[2],\n resetData = _useFieldFetchData2[3];\n var _ref8 = (ConfigProvider === null || ConfigProvider === void 0 ? void 0 : (_ConfigProvider$useCo = ConfigProvider.useConfig) === null || _ConfigProvider$useCo === void 0 ? void 0 : _ConfigProvider$useCo.call(ConfigProvider)) || {\n componentSize: 'middle'\n },\n componentSize = _ref8.componentSize;\n useImperativeHandle(ref, function () {\n return _objectSpread(_objectSpread({}, inputRef.current || {}), {}, {\n fetchData: function fetchData(keyWord) {\n return _fetchData(keyWord);\n }\n });\n }, [_fetchData]);\n var optionsValueEnum = useMemo(function () {\n if (mode !== 'read') return;\n var _ref9 = fieldNames || {},\n _ref9$label = _ref9.label,\n labelPropsName = _ref9$label === void 0 ? 'label' : _ref9$label,\n _ref9$value = _ref9.value,\n valuePropsName = _ref9$value === void 0 ? 'value' : _ref9$value,\n _ref9$options = _ref9.options,\n optionsPropsName = _ref9$options === void 0 ? 'options' : _ref9$options;\n var valuesMap = new Map();\n var traverseOptions = function traverseOptions(_options) {\n if (!(_options !== null && _options !== void 0 && _options.length)) {\n return valuesMap;\n }\n var length = _options.length;\n var i = 0;\n while (i < length) {\n var cur = _options[i++];\n valuesMap.set(cur[valuePropsName], cur[labelPropsName]);\n traverseOptions(cur[optionsPropsName]);\n }\n return valuesMap;\n };\n return traverseOptions(options);\n }, [fieldNames, mode, options]);\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(_Fragment, {\n children: proFieldParsingText(rest.text, ObjToMap(valueEnum || optionsValueEnum))\n });\n if (render) {\n var _render;\n return (_render = render(rest.text, _objectSpread({\n mode: mode\n }, fieldProps), dom)) !== null && _render !== void 0 ? _render : null;\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var renderDom = function renderDom() {\n if (light) {\n return /*#__PURE__*/_jsx(LightSelect, _objectSpread({\n bordered: bordered,\n id: id,\n loading: loading,\n ref: inputRef,\n allowClear: true,\n size: componentSize,\n options: options,\n label: label,\n placeholder: intl.getMessage('tableForm.selectPlaceholder', '请选择'),\n lightLabel: lightLabel,\n labelTrigger: labelTrigger\n }, fieldProps));\n }\n return /*#__PURE__*/_jsx(SearchSelect, _objectSpread(_objectSpread({\n className: rest.className,\n style: _objectSpread({\n minWidth: 100\n }, rest.style),\n bordered: bordered,\n id: id,\n loading: loading,\n ref: inputRef,\n allowClear: true,\n defaultSearchValue: props.defaultKeyWords,\n notFoundContent: loading ? /*#__PURE__*/_jsx(Spin, {\n size: \"small\"\n }) : fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.notFoundContent,\n fetchData: function fetchData(keyWord) {\n keyWordsRef.current = keyWord !== null && keyWord !== void 0 ? keyWord : '';\n _fetchData(keyWord);\n },\n resetData: resetData,\n optionItemRender: function optionItemRender(item) {\n if (typeof item.label === 'string' && keyWordsRef.current) {\n return /*#__PURE__*/_jsx(Highlight, {\n label: item.label,\n words: [keyWordsRef.current]\n });\n }\n return item.label;\n },\n placeholder: intl.getMessage('tableForm.selectPlaceholder', '请选择'),\n label: label\n }, fieldProps), {}, {\n options: options\n }), \"SearchSelect\");\n };\n var _dom = renderDom();\n if (renderFormItem) {\n var _renderFormItem;\n return (_renderFormItem = renderFormItem(rest.text, _objectSpread(_objectSpread({\n mode: mode\n }, fieldProps), {}, {\n options: options,\n loading: loading\n }), _dom)) !== null && _renderFormItem !== void 0 ? _renderFormItem : null;\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldSelect);","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef, useState } from 'react';\nimport useSWR from 'swr';\nvar testId = 0;\nexport function useFetchData(props) {\n var abortRef = useRef(null);\n /** Key 是用来缓存请求的,如果不在是有问题 */\n var _useState = useState(function () {\n if (props.proFieldKey) {\n return props.proFieldKey.toString();\n }\n testId += 1;\n return testId.toString();\n }),\n _useState2 = _slicedToArray(_useState, 1),\n cacheKey = _useState2[0];\n var proFieldKeyRef = useRef(cacheKey);\n var fetchData = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _abortRef$current, _props$request;\n var abort, loadData;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n (_abortRef$current = abortRef.current) === null || _abortRef$current === void 0 ? void 0 : _abortRef$current.abort();\n abort = new AbortController();\n abortRef.current = abort;\n _context.next = 5;\n return Promise.race([(_props$request = props.request) === null || _props$request === void 0 ? void 0 : _props$request.call(props, props.params, props), new Promise(function (_, reject) {\n var _abortRef$current2, _abortRef$current2$si;\n (_abortRef$current2 = abortRef.current) === null || _abortRef$current2 === void 0 ? void 0 : (_abortRef$current2$si = _abortRef$current2.signal) === null || _abortRef$current2$si === void 0 ? void 0 : _abortRef$current2$si.addEventListener('abort', function () {\n reject(new Error('aborted'));\n });\n })]);\n case 5:\n loadData = _context.sent;\n return _context.abrupt(\"return\", loadData);\n case 7:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function fetchData() {\n return _ref.apply(this, arguments);\n };\n }();\n useEffect(function () {\n return function () {\n testId += 1;\n };\n }, []);\n var _useSWR = useSWR([proFieldKeyRef.current, props.params], fetchData, {\n revalidateOnFocus: false,\n shouldRetryOnError: false,\n revalidateOnReconnect: false\n }),\n data = _useSWR.data,\n error = _useSWR.error;\n return [data || error];\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable @typescript-eslint/ban-types */\nimport deepMerge from 'lodash.merge';\nimport get from \"rc-util/es/utils/get\";\nimport namePathSet from \"rc-util/es/utils/set\";\nimport React from 'react';\nimport { isNil } from \"../isNil\";\nimport { merge } from \"../merge\";\n/**\n * 暂时还不支持 Set和 Map 结构 判断是不是一个能遍历的对象\n *\n * @param itemValue\n * @returns Boolean\n */\nexport function isPlainObj(itemValue) {\n if (_typeof(itemValue) !== 'object') return false;\n\n /** Null 也要处理,不然omit空会失效 */\n if (itemValue === null) return true;\n if ( /*#__PURE__*/React.isValidElement(itemValue)) return false;\n if (itemValue.constructor === RegExp) return false;\n if (itemValue instanceof Map) return false;\n if (itemValue instanceof Set) return false;\n if (itemValue instanceof HTMLElement) return false;\n if (itemValue instanceof Blob) return false;\n if (itemValue instanceof File) return false;\n if (Array.isArray(itemValue)) return false;\n return true;\n}\nexport var transformKeySubmitValue = function transformKeySubmitValue(values, dataFormatMapRaw) {\n var omit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // ignore nil transform\n var dataFormatMap = Object.keys(dataFormatMapRaw).reduce(function (ret, key) {\n var value = dataFormatMapRaw[key];\n if (!isNil(value)) {\n // eslint-disable-next-line no-param-reassign\n ret[key] = value; // can't be undefined\n }\n\n return ret;\n }, {});\n if (Object.keys(dataFormatMap).length < 1) {\n return values;\n }\n if (typeof window === 'undefined') return values;\n // 如果 value 是 string | null | Array | Blob类型 其中之一,直接返回\n // 形如 {key: [File, File]} 的表单字段当进行第二次递归时会导致其直接越过 typeof value !== 'object' 这一判断 https://github.com/ant-design/pro-components/issues/2071\n if (_typeof(values) !== 'object' || isNil(values) || values instanceof Blob) {\n return values;\n }\n var finalValues = Array.isArray(values) ? [] : {};\n var gen = function gen(tempValues, parentsKey) {\n var isArrayValues = Array.isArray(tempValues);\n var result = isArrayValues ? [] : {};\n if (tempValues == null || tempValues === undefined) {\n return result;\n }\n Object.keys(tempValues).forEach(function (entityKey) {\n var transformForArray = function transformForArray(transformList, subItemValue) {\n if (!Array.isArray(transformList)) return entityKey;\n transformList.forEach(function (transform, idx) {\n // 如果不存在直接返回\n if (!transform) return;\n var subTransformItem = subItemValue === null || subItemValue === void 0 ? void 0 : subItemValue[idx];\n\n // 如果是个方法,把key设置为方法的返回值\n if (typeof transform === 'function') {\n subItemValue[idx] = transform(subItemValue, entityKey, tempValues);\n }\n if (_typeof(transform) === 'object' && !Array.isArray(transform)) {\n Object.keys(transform).forEach(function (transformArrayItem) {\n var subTransformItemValue = subTransformItem === null || subTransformItem === void 0 ? void 0 : subTransformItem[transformArrayItem];\n if (typeof transform[transformArrayItem] === 'function' && subTransformItemValue) {\n var res = transform[transformArrayItem](subTransformItem[transformArrayItem], entityKey, tempValues);\n subTransformItem[transformArrayItem] = _typeof(res) === 'object' ? res[transformArrayItem] : res;\n } else if (_typeof(transform[transformArrayItem]) === 'object' && Array.isArray(transform[transformArrayItem]) && subTransformItemValue) {\n transformForArray(transform[transformArrayItem], subTransformItemValue);\n }\n });\n }\n if (_typeof(transform) === 'object' && Array.isArray(transform) && subTransformItem) {\n transformForArray(transform, subTransformItem);\n }\n });\n return entityKey;\n };\n var key = parentsKey ? [parentsKey, entityKey].flat(1) : [entityKey].flat(1);\n var itemValue = tempValues[entityKey];\n var transformFunction = get(dataFormatMap, key);\n var transform = function transform() {\n var tempKey,\n transformedResult,\n isTransformedResultPrimitive = false;\n\n /**\n * 先判断是否是方法,是的话执行后拿到值,如果是基本类型,则认为是直接 transform 为新的值,\n * 如果返回是 Object 则认为是 transform 为新的 {newKey: newValue}\n */\n if (typeof transformFunction === 'function') {\n transformedResult = transformFunction === null || transformFunction === void 0 ? void 0 : transformFunction(itemValue, entityKey, tempValues);\n var typeOfResult = _typeof(transformedResult);\n if (typeOfResult !== 'object' && typeOfResult !== 'undefined') {\n tempKey = entityKey;\n isTransformedResultPrimitive = true;\n } else {\n tempKey = transformedResult;\n }\n } else {\n tempKey = transformForArray(transformFunction, itemValue);\n }\n\n // { [key:string]:any } 数组也能通过编译\n if (Array.isArray(tempKey)) {\n result = namePathSet(result, tempKey, itemValue);\n return;\n }\n if (_typeof(tempKey) === 'object' && !Array.isArray(finalValues)) {\n finalValues = deepMerge(finalValues, tempKey);\n } else if (_typeof(tempKey) === 'object' && Array.isArray(finalValues)) {\n result = _objectSpread(_objectSpread({}, result), tempKey);\n } else if (tempKey !== null || tempKey !== undefined) {\n result = namePathSet(result, [tempKey], isTransformedResultPrimitive ? transformedResult : itemValue);\n }\n };\n\n /** 如果存在转化器提前渲染一下 */\n if (transformFunction && typeof transformFunction === 'function') {\n transform();\n }\n if (typeof window === 'undefined') return;\n if (isPlainObj(itemValue)) {\n var genValues = gen(itemValue, key);\n if (Object.keys(genValues).length < 1) {\n return;\n }\n result = namePathSet(result, [entityKey], genValues);\n return;\n }\n transform();\n });\n // namePath、transform在omit为false时需正常返回 https://github.com/ant-design/pro-components/issues/2901#issue-908097115\n return omit ? result : tempValues;\n };\n finalValues = Array.isArray(values) && Array.isArray(finalValues) ? _toConsumableArray(gen(values)) : merge({}, gen(values), finalValues);\n return finalValues;\n};","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n/* eslint-disable no-restricted-syntax */\r\nimport { useEffect, useMemo, useState } from 'react';\r\n/**\r\n *\r\n * @param {object} params\r\n * @returns {URL}\r\n */\r\nfunction setQueryToCurrentUrl(params) {\r\n var _a;\r\n var URL = (typeof window !== 'undefined' ? window : {}).URL;\r\n var url = new URL((_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.href);\r\n Object.keys(params).forEach(function (key) {\r\n var value = params[key];\r\n if (value !== null && value !== undefined) {\r\n if (Array.isArray(value)) {\r\n url.searchParams.delete(key);\r\n value.forEach(function (valueItem) {\r\n url.searchParams.append(key, valueItem);\r\n });\r\n }\r\n else if (value instanceof Date) {\r\n if (!Number.isNaN(value.getTime())) {\r\n url.searchParams.set(key, value.toISOString());\r\n }\r\n }\r\n else if (typeof value === 'object') {\r\n url.searchParams.set(key, JSON.stringify(value));\r\n }\r\n else {\r\n url.searchParams.set(key, value);\r\n }\r\n }\r\n else {\r\n url.searchParams.delete(key);\r\n }\r\n });\r\n return url;\r\n}\r\nexport function useUrlSearchParams(initial, config) {\r\n var _a;\r\n if (initial === void 0) { initial = {}; }\r\n if (config === void 0) { config = { disabled: false }; }\r\n /**\r\n * The main idea of this hook is to make things response to change of `window.location.search`,\r\n * so no need for introducing new state (in the mean time).\r\n * Whenever `window.location.search` is changed but not cause re-render, call `forceUpdate()`.\r\n * Whenever the component - user of this hook - re-render, this hook should return\r\n * the query object that corresponse to the current `window.location.search`\r\n */\r\n var _b = useState(), forceUpdate = _b[1];\r\n var locationSearch = typeof window !== 'undefined' && ((_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.search);\r\n /**\r\n * @type {URLSearchParams}\r\n */\r\n var urlSearchParams = useMemo(function () {\r\n if (config.disabled)\r\n return {};\r\n return new URLSearchParams(locationSearch || {});\r\n }, [config.disabled, locationSearch]);\r\n var params = useMemo(function () {\r\n if (config.disabled)\r\n return {};\r\n if (typeof window === 'undefined' || !window.URL)\r\n return {};\r\n var result = [];\r\n // @ts-ignore\r\n urlSearchParams.forEach(function (value, key) {\r\n result.push({\r\n key: key,\r\n value: value,\r\n });\r\n });\r\n // group by key\r\n result = result.reduce(function (acc, val) {\r\n (acc[val.key] = acc[val.key] || []).push(val);\r\n return acc;\r\n }, {});\r\n result = Object.keys(result).map(function (key) {\r\n var valueGroup = result[key];\r\n if (valueGroup.length === 1) {\r\n return [key, valueGroup[0].value];\r\n }\r\n return [key, valueGroup.map(function (_a) {\r\n var value = _a.value;\r\n return value;\r\n })];\r\n });\r\n var newParams = __assign({}, initial);\r\n result.forEach(function (_a) {\r\n var key = _a[0], value = _a[1];\r\n newParams[key] = parseValue(key, value, {}, initial);\r\n });\r\n return newParams;\r\n }, [config.disabled, initial, urlSearchParams]);\r\n function redirectToNewSearchParams(newParams) {\r\n if (typeof window === 'undefined' || !window.URL)\r\n return;\r\n var url = setQueryToCurrentUrl(newParams);\r\n if (window.location.search !== url.search) {\r\n window.history.replaceState({}, '', url.toString());\r\n }\r\n if (urlSearchParams.toString() !== url.searchParams.toString()) {\r\n forceUpdate({});\r\n }\r\n }\r\n useEffect(function () {\r\n if (config.disabled)\r\n return;\r\n if (typeof window === 'undefined' || !window.URL)\r\n return;\r\n redirectToNewSearchParams(__assign(__assign({}, initial), params));\r\n }, [config.disabled, params]);\r\n var setParams = function (newParams) {\r\n redirectToNewSearchParams(newParams);\r\n };\r\n useEffect(function () {\r\n if (config.disabled)\r\n return function () { };\r\n if (typeof window === 'undefined' || !window.URL)\r\n return function () { };\r\n var onPopState = function () {\r\n forceUpdate({});\r\n };\r\n window.addEventListener('popstate', onPopState);\r\n return function () {\r\n window.removeEventListener('popstate', onPopState);\r\n };\r\n }, [config.disabled]);\r\n return [params, setParams];\r\n}\r\nvar booleanValues = {\r\n true: true,\r\n false: false,\r\n};\r\nfunction parseValue(key, _value, types, defaultParams) {\r\n if (!types)\r\n return _value;\r\n var type = types[key];\r\n var value = _value === undefined ? defaultParams[key] : _value;\r\n if (type === Number) {\r\n return Number(value);\r\n }\r\n if (type === Boolean || _value === 'true' || _value === 'false') {\r\n return booleanValues[value];\r\n }\r\n if (Array.isArray(type)) {\r\n // eslint-disable-next-line eqeqeq\r\n return type.find(function (item) { return item == value; }) || defaultParams[key];\r\n }\r\n return value;\r\n}\r\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { proTheme, useIntl } from '@ant-design/pro-provider';\nimport { Button, Form } from 'antd';\nimport omit from 'omit.js';\nimport React from 'react';\n\n/** @name 用于配置操作栏 */\nimport { createElement as _createElement } from \"react\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * FormFooter 的组件,可以自动进行一些配置\n *\n * @param props\n */\n\nvar Submitter = function Submitter(props) {\n var intl = useIntl();\n var form = Form.useFormInstance();\n if (props.render === false) {\n return null;\n }\n var onSubmit = props.onSubmit,\n render = props.render,\n onReset = props.onReset,\n _props$searchConfig = props.searchConfig,\n searchConfig = _props$searchConfig === void 0 ? {} : _props$searchConfig,\n submitButtonProps = props.submitButtonProps,\n _props$resetButtonPro = props.resetButtonProps,\n resetButtonProps = _props$resetButtonPro === void 0 ? {} : _props$resetButtonPro;\n var _proTheme$useToken = proTheme.useToken(),\n token = _proTheme$useToken.token;\n var submit = function submit() {\n form.submit();\n onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit();\n };\n var reset = function reset() {\n form.resetFields();\n onReset === null || onReset === void 0 ? void 0 : onReset();\n };\n var _searchConfig$submitT = searchConfig.submitText,\n submitText = _searchConfig$submitT === void 0 ? intl.getMessage('tableForm.submit', '提交') : _searchConfig$submitT,\n _searchConfig$resetTe = searchConfig.resetText,\n resetText = _searchConfig$resetTe === void 0 ? intl.getMessage('tableForm.reset', '重置') : _searchConfig$resetTe;\n /** 默认的操作的逻辑 */\n var dom = [];\n if (resetButtonProps !== false) {\n dom.push( /*#__PURE__*/_createElement(Button, _objectSpread(_objectSpread({}, omit(resetButtonProps, ['preventDefault'])), {}, {\n key: \"rest\",\n onClick: function onClick(e) {\n var _resetButtonProps$onC;\n if (!(resetButtonProps !== null && resetButtonProps !== void 0 && resetButtonProps.preventDefault)) reset();\n resetButtonProps === null || resetButtonProps === void 0 ? void 0 : (_resetButtonProps$onC = resetButtonProps.onClick) === null || _resetButtonProps$onC === void 0 ? void 0 : _resetButtonProps$onC.call(resetButtonProps, e);\n }\n }), resetText));\n }\n if (submitButtonProps !== false) {\n dom.push( /*#__PURE__*/_createElement(Button, _objectSpread(_objectSpread({\n type: \"primary\"\n }, omit(submitButtonProps || {}, ['preventDefault'])), {}, {\n key: \"submit\",\n onClick: function onClick(e) {\n var _submitButtonProps$on;\n if (!(submitButtonProps !== null && submitButtonProps !== void 0 && submitButtonProps.preventDefault)) submit();\n submitButtonProps === null || submitButtonProps === void 0 ? void 0 : (_submitButtonProps$on = submitButtonProps.onClick) === null || _submitButtonProps$on === void 0 ? void 0 : _submitButtonProps$on.call(submitButtonProps, e);\n }\n }), submitText));\n }\n var renderDom = render ? render(_objectSpread(_objectSpread({}, props), {}, {\n form: form,\n submit: submit,\n reset: reset\n }), dom) : dom;\n if (!renderDom) {\n return null;\n }\n if (Array.isArray(renderDom)) {\n if ((renderDom === null || renderDom === void 0 ? void 0 : renderDom.length) < 1) {\n return null;\n }\n if ((renderDom === null || renderDom === void 0 ? void 0 : renderDom.length) === 1) {\n return renderDom[0];\n }\n return /*#__PURE__*/_jsx(\"div\", {\n style: {\n display: 'flex',\n gap: token.marginXS,\n alignItems: 'center'\n },\n children: renderDom\n });\n }\n return renderDom;\n};\nexport default Submitter;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"contentRender\", \"submitter\", \"fieldProps\", \"formItemProps\", \"groupProps\", \"transformKey\", \"formRef\", \"onInit\", \"form\", \"loading\", \"formComponentType\", \"extraUrlParams\", \"syncToUrl\", \"onUrlSearchChange\", \"onReset\", \"omitNil\", \"isKeyPressSubmit\", \"autoFocusFirstInput\", \"grid\", \"rowProps\", \"colProps\"],\n _excluded2 = [\"extraUrlParams\", \"syncToUrl\", \"isKeyPressSubmit\", \"syncToUrlAsImportant\", \"syncToInitialValues\", \"children\", \"contentRender\", \"submitter\", \"fieldProps\", \"proFieldProps\", \"formItemProps\", \"groupProps\", \"dateFormatter\", \"formRef\", \"onInit\", \"form\", \"formComponentType\", \"onReset\", \"grid\", \"rowProps\", \"colProps\", \"omitNil\", \"request\", \"params\", \"initialValues\", \"formKey\", \"readonly\", \"onLoadingChange\", \"loading\"];\n/* eslint-disable react-hooks/exhaustive-deps */\nimport { ProConfigProvider } from '@ant-design/pro-provider';\nimport { conversionMomentValue, isDeepEqualReact, nanoid, ProFormContext, runFunction, transformKeySubmitValue, useFetchData, useMountMergeState, usePrevious, useRefFunction, useStyle } from '@ant-design/pro-utils';\nimport { useUrlSearchParams } from '@umijs/use-params';\nimport { ConfigProvider, Form, Spin } from 'antd';\nimport classNames from 'classnames';\nimport omit from 'omit.js';\nimport get from \"rc-util/es/utils/get\";\nimport { default as namePathSet, default as set } from \"rc-util/es/utils/set\";\nimport { noteOnce } from \"rc-util/es/warning\";\nimport React, { useContext, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { Submitter } from \"../components\";\nimport { FormListContext } from \"../components/List\";\nimport FieldContext from \"../FieldContext\";\nimport { GridContext, useGridHelpers } from \"../helpers\";\nimport { EditOrReadOnlyContext } from \"./EditOrReadOnlyContext\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar genParams = function genParams(syncUrl, params, type) {\n if (syncUrl === true) {\n return params;\n }\n return runFunction(syncUrl, params, type);\n};\n/**\n * It takes a name path and converts it to an array.\n * @param {NamePath} name - The name of the form.\n * @returns string[]\n *\n * a-> [a]\n * [a] -> [a]\n */\nvar covertFormName = function covertFormName(name) {\n if (!name) return name;\n if (Array.isArray(name)) return name;\n return [name];\n};\nfunction BaseFormComponents(props) {\n var _ConfigProvider$useCo;\n var children = props.children,\n contentRender = props.contentRender,\n submitter = props.submitter,\n fieldProps = props.fieldProps,\n formItemProps = props.formItemProps,\n groupProps = props.groupProps,\n transformKey = props.transformKey,\n propsFormRef = props.formRef,\n onInit = props.onInit,\n form = props.form,\n loading = props.loading,\n formComponentType = props.formComponentType,\n _props$extraUrlParams = props.extraUrlParams,\n extraUrlParams = _props$extraUrlParams === void 0 ? {} : _props$extraUrlParams,\n syncToUrl = props.syncToUrl,\n onUrlSearchChange = props.onUrlSearchChange,\n _onReset = props.onReset,\n _props$omitNil = props.omitNil,\n omitNil = _props$omitNil === void 0 ? true : _props$omitNil,\n isKeyPressSubmit = props.isKeyPressSubmit,\n _props$autoFocusFirst = props.autoFocusFirstInput,\n autoFocusFirstInput = _props$autoFocusFirst === void 0 ? true : _props$autoFocusFirst,\n grid = props.grid,\n rowProps = props.rowProps,\n colProps = props.colProps,\n rest = _objectWithoutProperties(props, _excluded);\n\n /**\n * 获取 form 实例\n */\n var formInstance = Form.useFormInstance();\n var _ref = (ConfigProvider === null || ConfigProvider === void 0 ? void 0 : (_ConfigProvider$useCo = ConfigProvider.useConfig) === null || _ConfigProvider$useCo === void 0 ? void 0 : _ConfigProvider$useCo.call(ConfigProvider)) || {\n componentSize: 'middle'\n },\n componentSize = _ref.componentSize;\n\n /** 同步 url 上的参数 */\n var formRef = useRef(form || formInstance);\n\n /**\n * 获取布局\n */\n var _useGridHelpers = useGridHelpers({\n grid: grid,\n rowProps: rowProps\n }),\n RowWrapper = _useGridHelpers.RowWrapper;\n var getFormInstance = useRefFunction(function () {\n return formInstance;\n });\n var formatValues = useMemo(function () {\n return {\n /**\n * 获取被 ProForm 格式化后的所有数据\n * @param allData boolean\n * @returns T\n *\n * @example getFieldsFormatValue(true) ->返回所有数据,即使没有被 form 托管的\n */\n getFieldsFormatValue: function getFieldsFormatValue(allData) {\n var _getFormInstance;\n return transformKey((_getFormInstance = getFormInstance()) === null || _getFormInstance === void 0 ? void 0 : _getFormInstance.getFieldsValue(allData), omitNil);\n },\n /**\n * 获取被 ProForm 格式化后的单个数据\n * @param nameList (string|number)[]\n * @returns T\n *\n * @example {a:{b:value}} -> getFieldFormatValue(['a', 'b']) -> value\n */\n /** 获取格式化之后的单个数据 */\n getFieldFormatValue: function getFieldFormatValue() {\n var _getFormInstance2;\n var paramsNameList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var nameList = covertFormName(paramsNameList);\n if (!nameList) throw new Error('nameList is require');\n var value = (_getFormInstance2 = getFormInstance()) === null || _getFormInstance2 === void 0 ? void 0 : _getFormInstance2.getFieldValue(nameList);\n var obj = nameList ? set({}, nameList, value) : value;\n return get(transformKey(obj, omitNil, nameList), nameList);\n },\n /**\n * 获取被 ProForm 格式化后的单个数据, 包含他的 name\n * @param nameList (string|number)[]\n * @returns T\n *\n * @example {a:{b:value}} -> getFieldFormatValueObject(['a', 'b']) -> {a:{b:value}}\n */\n /** 获取格式化之后的单个数据 */\n getFieldFormatValueObject: function getFieldFormatValueObject(paramsNameList) {\n var _getFormInstance3;\n var nameList = covertFormName(paramsNameList);\n var value = (_getFormInstance3 = getFormInstance()) === null || _getFormInstance3 === void 0 ? void 0 : _getFormInstance3.getFieldValue(nameList);\n var obj = nameList ? set({}, nameList, value) : value;\n return transformKey(obj, omitNil, nameList);\n },\n /** \n /**\n *验字段后返回格式化之后的所有数据\n * @param nameList (string|number)[]\n * @returns T\n * \n * @example validateFieldsReturnFormatValue -> {a:{b:value}}\n */\n validateFieldsReturnFormatValue: function () {\n var _validateFieldsReturnFormatValue = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(nameList) {\n var _getFormInstance4;\n var values, transformedKey;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!(!Array.isArray(nameList) && nameList)) {\n _context.next = 2;\n break;\n }\n throw new Error('nameList must be array');\n case 2:\n _context.next = 4;\n return (_getFormInstance4 = getFormInstance()) === null || _getFormInstance4 === void 0 ? void 0 : _getFormInstance4.validateFields(nameList);\n case 4:\n values = _context.sent;\n transformedKey = transformKey(values, omitNil);\n return _context.abrupt(\"return\", transformedKey ? transformedKey : {});\n case 7:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function validateFieldsReturnFormatValue(_x) {\n return _validateFieldsReturnFormatValue.apply(this, arguments);\n }\n return validateFieldsReturnFormatValue;\n }()\n };\n }, [omitNil, transformKey]);\n var items = useMemo(function () {\n return React.Children.toArray(children).map(function (item, index) {\n if (index === 0 && /*#__PURE__*/React.isValidElement(item) && autoFocusFirstInput) {\n return /*#__PURE__*/React.cloneElement(item, _objectSpread(_objectSpread({}, item.props), {}, {\n autoFocus: autoFocusFirstInput\n }));\n }\n return item;\n });\n }, [autoFocusFirstInput, children]);\n\n /** 计算 props 的对象 */\n var submitterProps = useMemo(function () {\n return typeof submitter === 'boolean' || !submitter ? {} : submitter;\n }, [submitter]);\n\n /** 渲染提交按钮与重置按钮 */\n var submitterNode = useMemo(function () {\n if (submitter === false) return undefined;\n return /*#__PURE__*/_jsx(Submitter, _objectSpread(_objectSpread({}, submitterProps), {}, {\n onReset: function onReset() {\n var _formRef$current, _submitterProps$onRes;\n var finalValues = transformKey((_formRef$current = formRef.current) === null || _formRef$current === void 0 ? void 0 : _formRef$current.getFieldsValue(), omitNil);\n submitterProps === null || submitterProps === void 0 ? void 0 : (_submitterProps$onRes = submitterProps.onReset) === null || _submitterProps$onRes === void 0 ? void 0 : _submitterProps$onRes.call(submitterProps, finalValues);\n _onReset === null || _onReset === void 0 ? void 0 : _onReset(finalValues);\n // 如果 syncToUrl,清空一下数据\n if (syncToUrl) {\n var _formRef$current2;\n // 把没有的值设置为未定义可以删掉 url 的参数\n var params = Object.keys(transformKey((_formRef$current2 = formRef.current) === null || _formRef$current2 === void 0 ? void 0 : _formRef$current2.getFieldsValue(), false)).reduce(function (pre, next) {\n return _objectSpread(_objectSpread({}, pre), {}, _defineProperty({}, next, finalValues[next] || undefined));\n }, extraUrlParams);\n\n /** 在同步到 url 上时对参数进行转化 */\n onUrlSearchChange(genParams(syncToUrl, params, 'set'));\n }\n },\n submitButtonProps: _objectSpread({\n loading: loading\n }, submitterProps.submitButtonProps)\n }), \"submitter\");\n }, [submitter, submitterProps, loading, transformKey, omitNil, _onReset, syncToUrl, extraUrlParams, onUrlSearchChange]);\n var content = useMemo(function () {\n var wrapItems = grid ? /*#__PURE__*/_jsx(RowWrapper, {\n children: items\n }) : items;\n if (contentRender) {\n return contentRender(wrapItems, submitterNode, formRef.current);\n }\n return wrapItems;\n }, [grid, RowWrapper, items, contentRender, submitterNode]);\n var preInitialValues = usePrevious(props.initialValues);\n\n // 提示一个 initialValues ,问的人实在是太多了\n useEffect(function () {\n if (syncToUrl || !props.initialValues || !preInitialValues || rest.request) return;\n var isEqual = isDeepEqualReact(props.initialValues, preInitialValues);\n noteOnce(isEqual, \"initialValues \\u53EA\\u5728 form \\u521D\\u59CB\\u5316\\u65F6\\u751F\\u6548\\uFF0C\\u5982\\u679C\\u4F60\\u9700\\u8981\\u5F02\\u6B65\\u52A0\\u8F7D\\u63A8\\u8350\\u4F7F\\u7528 request\\uFF0C\\u6216\\u8005 initialValues ? : null \");\n noteOnce(isEqual, \"The initialValues only take effect when the form is initialized, if you need to load asynchronously recommended request, or the initialValues ? : null \");\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.initialValues]);\n\n // 初始化给一个默认的 form\n useImperativeHandle(propsFormRef, function () {\n return _objectSpread(_objectSpread({}, formRef.current), formatValues);\n }, [formatValues, formRef.current]);\n useEffect(function () {\n var _formRef$current3, _formRef$current3$get;\n var finalValues = transformKey((_formRef$current3 = formRef.current) === null || _formRef$current3 === void 0 ? void 0 : (_formRef$current3$get = _formRef$current3.getFieldsValue) === null || _formRef$current3$get === void 0 ? void 0 : _formRef$current3$get.call(_formRef$current3, true), omitNil);\n onInit === null || onInit === void 0 ? void 0 : onInit(finalValues, _objectSpread(_objectSpread({}, formRef.current), formatValues));\n }, []);\n return /*#__PURE__*/_jsx(ProFormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formatValues), {}, {\n formRef: formRef\n }),\n children: /*#__PURE__*/_jsx(ConfigProvider, {\n componentSize: rest.size || componentSize,\n children: /*#__PURE__*/_jsxs(GridContext.Provider, {\n value: {\n grid: grid,\n colProps: colProps\n },\n children: [rest.component !== false && /*#__PURE__*/_jsx(\"input\", {\n type: \"text\",\n style: {\n display: 'none'\n }\n }), content]\n })\n })\n });\n}\n\n/** 自动的formKey 防止重复 */\nvar requestFormCacheId = 0;\nfunction BaseForm(props) {\n var _props$extraUrlParams2 = props.extraUrlParams,\n extraUrlParams = _props$extraUrlParams2 === void 0 ? {} : _props$extraUrlParams2,\n syncToUrl = props.syncToUrl,\n isKeyPressSubmit = props.isKeyPressSubmit,\n _props$syncToUrlAsImp = props.syncToUrlAsImportant,\n syncToUrlAsImportant = _props$syncToUrlAsImp === void 0 ? false : _props$syncToUrlAsImp,\n _props$syncToInitialV = props.syncToInitialValues,\n syncToInitialValues = _props$syncToInitialV === void 0 ? true : _props$syncToInitialV,\n children = props.children,\n contentRender = props.contentRender,\n submitter = props.submitter,\n fieldProps = props.fieldProps,\n proFieldProps = props.proFieldProps,\n formItemProps = props.formItemProps,\n groupProps = props.groupProps,\n _props$dateFormatter = props.dateFormatter,\n dateFormatter = _props$dateFormatter === void 0 ? 'string' : _props$dateFormatter,\n propsFormRef = props.formRef,\n onInit = props.onInit,\n form = props.form,\n formComponentType = props.formComponentType,\n onReset = props.onReset,\n grid = props.grid,\n rowProps = props.rowProps,\n colProps = props.colProps,\n _props$omitNil2 = props.omitNil,\n omitNil = _props$omitNil2 === void 0 ? true : _props$omitNil2,\n request = props.request,\n params = props.params,\n initialValues = props.initialValues,\n _props$formKey = props.formKey,\n formKey = _props$formKey === void 0 ? requestFormCacheId : _props$formKey,\n readonly = props.readonly,\n onLoadingChange = props.onLoadingChange,\n propsLoading = props.loading,\n propRest = _objectWithoutProperties(props, _excluded2);\n var formRef = useRef({});\n var _useMountMergeState = useMountMergeState(false, {\n onChange: onLoadingChange,\n value: propsLoading\n }),\n _useMountMergeState2 = _slicedToArray(_useMountMergeState, 2),\n loading = _useMountMergeState2[0],\n setLoading = _useMountMergeState2[1];\n var _useUrlSearchParams = useUrlSearchParams({}, {\n disabled: !syncToUrl\n }),\n _useUrlSearchParams2 = _slicedToArray(_useUrlSearchParams, 2),\n urlSearch = _useUrlSearchParams2[0],\n setUrlSearch = _useUrlSearchParams2[1];\n var curFormKey = useRef(nanoid());\n useEffect(function () {\n requestFormCacheId += 0;\n }, []);\n var _useFetchData = useFetchData({\n request: request,\n params: params,\n proFieldKey: formKey\n }),\n _useFetchData2 = _slicedToArray(_useFetchData, 1),\n initialData = _useFetchData2[0];\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-form');\n // css\n var _useStyle = useStyle('ProForm', function (token) {\n return _defineProperty({}, \".\".concat(prefixCls), _defineProperty({}, \"> div:not(\".concat(token.proComponentsCls, \"-form-light-filter)\"), {\n '.pro-field': {\n maxWidth: '100%',\n '@media screen and (max-width: 575px)': {\n // 减少了 form 的 padding\n maxWidth: 'calc(93vw - 48px)'\n },\n // 适用于短数字,短文本或者选项\n '&-xs': {\n width: 104\n },\n '&-s': {\n width: 216\n },\n // 适用于较短字段录入、如姓名、电话、ID 等。\n '&-sm': {\n width: 216\n },\n '&-m': {\n width: 328\n },\n // 标准宽度,适用于大部分字段长度\n '&-md': {\n width: 328\n },\n '&-l': {\n width: 440\n },\n // 适用于较长字段录入,如长网址、标签组、文件路径等。\n '&-lg': {\n width: 440\n },\n // 适用于长文本录入,如长链接、描述、备注等,通常搭配自适应多行输入框或定高文本域使用。\n '&-xl': {\n width: 552\n }\n }\n }));\n }),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n\n // 如果为 false,不需要触发设置进去\n var _useState = useState(function () {\n if (!syncToUrl) {\n return {};\n }\n return genParams(syncToUrl, urlSearch, 'get');\n }),\n _useState2 = _slicedToArray(_useState, 2),\n urlParamsMergeInitialValues = _useState2[0],\n setUrlParamsMergeInitialValues = _useState2[1];\n\n /** 保存 transformKeyRef,用于对表单key transform */\n var transformKeyRef = useRef({});\n var fieldsValueType = useRef({});\n\n /** 使用 callback 的类型 */\n var transformKey = useRefFunction(function (values, paramsOmitNil, parentKey) {\n return transformKeySubmitValue(conversionMomentValue(values, dateFormatter, fieldsValueType.current, paramsOmitNil, parentKey), transformKeyRef.current, paramsOmitNil);\n });\n useEffect(function () {\n if (syncToInitialValues) return;\n setUrlParamsMergeInitialValues({});\n }, [syncToInitialValues]);\n useEffect(function () {\n if (!syncToUrl) return;\n setUrlSearch(_objectSpread(_objectSpread({}, urlSearch), extraUrlParams));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [extraUrlParams, syncToUrl]);\n var getPopupContainer = useMemo(function () {\n if (typeof window === 'undefined') return undefined;\n // 如果在 drawerForm 和 modalForm 里就渲染dom到父节点里\n // modalForm 可能高度太小不适合\n if (formComponentType && ['DrawerForm'].includes(formComponentType)) {\n return function (e) {\n return e.parentNode || document.body;\n };\n }\n return undefined;\n }, [formComponentType]);\n var onFinish = useRefFunction( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _formRef$current4, _formRef$current4$get, finalValues, _formRef$current5, _formRef$current5$get, syncToUrlParams;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (propRest.onFinish) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\");\n case 2:\n if (!loading) {\n _context2.next = 4;\n break;\n }\n return _context2.abrupt(\"return\");\n case 4:\n setLoading(true);\n _context2.prev = 5;\n finalValues = formRef === null || formRef === void 0 ? void 0 : (_formRef$current4 = formRef.current) === null || _formRef$current4 === void 0 ? void 0 : (_formRef$current4$get = _formRef$current4.getFieldsFormatValue) === null || _formRef$current4$get === void 0 ? void 0 : _formRef$current4$get.call(_formRef$current4);\n _context2.next = 9;\n return propRest.onFinish(finalValues);\n case 9:\n if (syncToUrl) {\n // 把没有的值设置为未定义可以删掉 url 的参数\n syncToUrlParams = Object.keys(formRef === null || formRef === void 0 ? void 0 : (_formRef$current5 = formRef.current) === null || _formRef$current5 === void 0 ? void 0 : (_formRef$current5$get = _formRef$current5.getFieldsFormatValue) === null || _formRef$current5$get === void 0 ? void 0 : _formRef$current5$get.call(_formRef$current5, undefined, false)).reduce(function (pre, next) {\n var _finalValues$next;\n return _objectSpread(_objectSpread({}, pre), {}, _defineProperty({}, next, (_finalValues$next = finalValues[next]) !== null && _finalValues$next !== void 0 ? _finalValues$next : undefined));\n }, extraUrlParams); // fix #3547: 当原先在url中存在的字段被删除时,应该将 params 中的该字段设置为 undefined,以便触发url同步删除\n Object.keys(urlSearch).forEach(function (key) {\n if (syncToUrlParams[key] !== false && syncToUrlParams[key] !== 0 && !syncToUrlParams[key]) {\n syncToUrlParams[key] = undefined;\n }\n });\n /** 在同步到 url 上时对参数进行转化 */\n setUrlSearch(genParams(syncToUrl, syncToUrlParams, 'set'));\n }\n setLoading(false);\n _context2.next = 17;\n break;\n case 13:\n _context2.prev = 13;\n _context2.t0 = _context2[\"catch\"](5);\n console.log(_context2.t0);\n setLoading(false);\n case 17:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[5, 13]]);\n })));\n\n // 初始化给一个默认的 form\n useImperativeHandle(propsFormRef, function () {\n return formRef.current;\n }, [!initialData]);\n if (!initialData && props.request) {\n return /*#__PURE__*/_jsx(\"div\", {\n style: {\n paddingTop: 50,\n paddingBottom: 50,\n textAlign: 'center'\n },\n children: /*#__PURE__*/_jsx(Spin, {})\n });\n }\n return wrapSSR( /*#__PURE__*/_jsx(EditOrReadOnlyContext.Provider, {\n value: {\n mode: props.readonly ? 'read' : 'edit'\n },\n children: /*#__PURE__*/_jsx(ProConfigProvider, {\n needDeps: true,\n children: /*#__PURE__*/_jsx(FieldContext.Provider, {\n value: {\n formRef: formRef,\n fieldProps: fieldProps,\n proFieldProps: proFieldProps,\n formItemProps: formItemProps,\n groupProps: groupProps,\n formComponentType: formComponentType,\n getPopupContainer: getPopupContainer,\n formKey: curFormKey.current,\n setFieldValueType: function setFieldValueType(name, _ref4) {\n var _ref4$valueType = _ref4.valueType,\n valueType = _ref4$valueType === void 0 ? 'text' : _ref4$valueType,\n dateFormat = _ref4.dateFormat,\n transform = _ref4.transform;\n if (!Array.isArray(name)) return;\n transformKeyRef.current = namePathSet(transformKeyRef.current, name, transform);\n fieldsValueType.current = namePathSet(fieldsValueType.current, name, {\n valueType: valueType,\n dateFormat: dateFormat\n });\n }\n },\n children: /*#__PURE__*/_jsx(FormListContext.Provider, {\n value: {},\n children: /*#__PURE__*/_jsx(Form, _objectSpread(_objectSpread({\n onKeyPress: function onKeyPress(event) {\n if (!isKeyPressSubmit) return;\n if (event.key === 'Enter') {\n var _formRef$current6;\n (_formRef$current6 = formRef.current) === null || _formRef$current6 === void 0 ? void 0 : _formRef$current6.submit();\n }\n },\n autoComplete: \"off\",\n form: form\n }, omit(propRest, ['labelWidth', 'autoFocusFirstInput'])), {}, {\n // 组合 urlSearch 和 initialValues\n initialValues: syncToUrlAsImportant ? _objectSpread(_objectSpread(_objectSpread({}, initialValues), initialData), urlParamsMergeInitialValues) : _objectSpread(_objectSpread(_objectSpread({}, urlParamsMergeInitialValues), initialValues), initialData),\n onValuesChange: function onValuesChange(changedValues, values) {\n var _propRest$onValuesCha;\n propRest === null || propRest === void 0 ? void 0 : (_propRest$onValuesCha = propRest.onValuesChange) === null || _propRest$onValuesCha === void 0 ? void 0 : _propRest$onValuesCha.call(propRest, transformKey(changedValues, !!omitNil), transformKey(values, !!omitNil));\n },\n className: classNames(props.className, prefixCls, hashId),\n onFinish: onFinish,\n children: /*#__PURE__*/_jsx(BaseFormComponents, _objectSpread(_objectSpread({\n transformKey: transformKey,\n autoComplete: \"off\",\n loading: loading,\n onUrlSearchChange: setUrlSearch\n }, props), {}, {\n formRef: formRef,\n initialValues: _objectSpread(_objectSpread({}, initialValues), initialData)\n }))\n }))\n })\n })\n })\n }));\n}\nexport { BaseForm };","import React from 'react';\nexport var EditOrReadOnlyContext = /*#__PURE__*/React.createContext({\n mode: 'edit'\n});","var antdFormItemPropsList = [\n// https://ant.design/components/form-cn/#Form.Item\n'colon', 'dependencies', 'extra', 'getValueFromEvent', 'getValueProps', 'hasFeedback', 'help', 'htmlFor', 'initialValue', 'noStyle', 'label', 'labelAlign', 'labelCol', 'name', 'preserve', 'normalize', 'required', 'rules', 'shouldUpdate', 'trigger', 'validateFirst', 'validateStatus', 'validateTrigger', 'valuePropName', 'wrapperCol', 'hidden',\n// 我自定义的\n'addonBefore', 'addonAfter'];\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function pickProFormItemProps(props) {\n var attrs = {};\n antdFormItemPropsList.forEach(function (key) {\n if (props[key] !== undefined) {\n attrs[key] = props[key];\n }\n });\n return attrs;\n}","import warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\nvar Context = /*#__PURE__*/React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldWarning: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: warningFunc,\n setFieldValue: warningFunc,\n setFieldsValue: warningFunc,\n validateFields: warningFunc,\n submit: warningFunc,\n getInternalHooks: function getInternalHooks() {\n warningFunc();\n return {\n dispatch: warningFunc,\n initEntityValue: warningFunc,\n registerField: warningFunc,\n useSubscribe: warningFunc,\n setInitialValues: warningFunc,\n destroyForm: warningFunc,\n setCallbacks: warningFunc,\n registerWatch: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc,\n setPreserve: warningFunc,\n getInitialValue: warningFunc\n };\n }\n});\nexport default Context;","import * as React from 'react';\nvar ListContext = /*#__PURE__*/React.createContext(null);\nexport default ListContext;","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n}\nexport function isFormInstance(form) {\n return form && !!form._init;\n}","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n default: \"Validation error on field '${name}'\",\n required: \"'${name}' is required\",\n enum: \"'${name}' must be one of [${enum}]\",\n whitespace: \"'${name}' cannot be empty\",\n date: {\n format: \"'${name}' is invalid for format date\",\n parse: \"'${name}' could not be parsed as date\",\n invalid: \"'${name}' is 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: \"'${name}' must be exactly ${len} characters\",\n min: \"'${name}' must be at least ${min} characters\",\n max: \"'${name}' cannot be longer than ${max} characters\",\n range: \"'${name}' must be between ${min} and ${max} characters\"\n },\n number: {\n len: \"'${name}' must equal ${len}\",\n min: \"'${name}' cannot be less than ${min}\",\n max: \"'${name}' cannot be greater than ${max}\",\n range: \"'${name}' must be between ${min} and ${max}\"\n },\n array: {\n len: \"'${name}' must be exactly ${len} in length\",\n min: \"'${name}' cannot be less than ${min} in length\",\n max: \"'${name}' cannot be greater than ${max} in length\",\n range: \"'${name}' must be between ${min} and ${max} in length\"\n },\n pattern: {\n mismatch: \"'${name}' does not match pattern ${pattern}\"\n }\n};","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { defaultValidateMessages } from './messages';\nimport { merge } from \"rc-util/es/utils/set\";\n// Remove incorrect original ts define\nvar AsyncValidator = RawAsyncValidator;\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\nfunction replaceMessage(template, kv) {\n return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n var key = str.slice(2, -1);\n return kv[key];\n });\n}\nvar CODE_LOGIC_ERROR = 'CODE_LOGIC_ERROR';\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name, value, rule, options, messageVariables) {\n var cloneRule, originValidator, subRuleField, validator, messages, result, subResults, kv, fillVariableResult;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // Bug of `async-validator`\n // https://github.com/react-component/field-form/issues/316\n // https://github.com/react-component/field-form/issues/313\n delete cloneRule.ruleIndex;\n // https://github.com/ant-design/ant-design/issues/40497#issuecomment-1422282378\n AsyncValidator.warning = function () {\n return void 0;\n };\n if (cloneRule.validator) {\n originValidator = cloneRule.validator;\n cloneRule.validator = function () {\n try {\n return originValidator.apply(void 0, arguments);\n } catch (error) {\n console.error(error);\n return Promise.reject(CODE_LOGIC_ERROR);\n }\n };\n }\n // We should special handle array validate\n subRuleField = null;\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = merge(defaultValidateMessages, options.validateMessages);\n validator.messages(messages);\n result = [];\n _context2.prev = 10;\n _context2.next = 13;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n case 13:\n _context2.next = 18;\n break;\n case 15:\n _context2.prev = 15;\n _context2.t0 = _context2[\"catch\"](10);\n if (_context2.t0.errors) {\n result = _context2.t0.errors.map(function (_ref4, index) {\n var message = _ref4.message;\n var mergedMessage = message === CODE_LOGIC_ERROR ? messages.default : message;\n return /*#__PURE__*/React.isValidElement(mergedMessage) ?\n /*#__PURE__*/\n // Wrap ReactNode with `key`\n React.cloneElement(mergedMessage, {\n key: \"error_\".concat(index)\n }) : mergedMessage;\n });\n }\n case 18:\n if (!(!result.length && subRuleField)) {\n _context2.next = 23;\n break;\n }\n _context2.next = 21;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n case 21:\n subResults = _context2.sent;\n return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n case 23:\n // Replace message with variables\n kv = _objectSpread(_objectSpread({}, rule), {}, {\n name: name,\n enum: (rule.enum || []).join(', ')\n }, messageVariables);\n fillVariableResult = result.map(function (error) {\n if (typeof error === 'string') {\n return replaceMessage(error, kv);\n }\n return error;\n });\n return _context2.abrupt(\"return\", fillVariableResult);\n case 26:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[10, 15]]);\n }));\n return _validateRule.apply(this, arguments);\n}\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.');\n // Fill rule with context\n var filledRules = rules.map(function (currentRule, ruleIndex) {\n var originValidatorFunc = currentRule.validator;\n var cloneRule = _objectSpread(_objectSpread({}, currentRule), {}, {\n ruleIndex: ruleIndex\n });\n // Replace validator if needed\n if (originValidatorFunc) {\n cloneRule.validator = function (rule, val, callback) {\n var hasPromise = false;\n // Wrap callback only accept when promise not provided\n var wrappedCallback = function wrappedCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n // Wait a tick to make sure return type is a promise\n Promise.resolve().then(function () {\n warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n };\n // Get promise\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n if (hasPromise) {\n promise.then(function () {\n callback();\n }).catch(function (err) {\n callback(err || ' ');\n });\n }\n };\n }\n return cloneRule;\n }).sort(function (_ref, _ref2) {\n var w1 = _ref.warningOnly,\n i1 = _ref.ruleIndex;\n var w2 = _ref2.warningOnly,\n i2 = _ref2.ruleIndex;\n if (!!w1 === !!w2) {\n // Let keep origin order\n return i1 - i2;\n }\n if (w1) {\n return 1;\n }\n return -1;\n });\n // Do validate rules\n var summaryPromise;\n if (validateFirst === true) {\n // >>>>> Validate by serialization\n summaryPromise = new Promise( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {\n var i, rule, errors;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n i = 0;\n case 1:\n if (!(i < filledRules.length)) {\n _context.next = 12;\n break;\n }\n rule = filledRules[i];\n _context.next = 5;\n return validateRule(name, value, rule, options, messageVariables);\n case 5:\n errors = _context.sent;\n if (!errors.length) {\n _context.next = 9;\n break;\n }\n reject([{\n errors: errors,\n rule: rule\n }]);\n return _context.abrupt(\"return\");\n case 9:\n i += 1;\n _context.next = 1;\n break;\n case 12:\n /* eslint-enable */\n resolve([]);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n } else {\n // >>>>> Validate by parallel\n var rulePromises = filledRules.map(function (rule) {\n return validateRule(name, value, rule, options, messageVariables).then(function (errors) {\n return {\n errors: errors,\n rule: rule\n };\n });\n });\n summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n // Always change to rejection for Field to catch\n return Promise.reject(errors);\n });\n }\n // Internal catch error to avoid console error log.\n summaryPromise.catch(function (e) {\n return e;\n });\n return summaryPromise;\n}\nfunction finishOnAllFailed(_x8) {\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rulePromises) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref5;\n var errors = (_ref5 = []).concat.apply(_ref5, _toConsumableArray(errorsList));\n return errors;\n }));\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction finishOnFirstFailed(_x9) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\nfunction _finishOnFirstFailed() {\n _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(rulePromises) {\n var count;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n count = 0;\n return _context4.abrupt(\"return\", new Promise(function (resolve) {\n rulePromises.forEach(function (promise) {\n promise.then(function (ruleError) {\n if (ruleError.errors.length) {\n resolve([ruleError]);\n }\n count += 1;\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport getValue from \"rc-util/es/utils/get\";\nimport setValue from \"rc-util/es/utils/set\";\nimport { toArray } from './typeUtil';\nexport { getValue, setValue };\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function cloneByNamePathList(store, namePathList) {\n var newStore = {};\n namePathList.forEach(function (namePath) {\n var value = getValue(store, namePath);\n newStore = setValue(newStore, namePath, value);\n });\n return newStore;\n}\n/**\n * Check if `namePathList` includes `namePath`.\n * @param namePathList A list of `InternalNamePath[]`\n * @param namePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function containsNamePath(namePathList, namePath) {\n var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(namePath, path, partialMatch);\n });\n}\n/**\n * Check if `namePath` is super set or equal of `subNamePath`.\n * @param namePath A list of `InternalNamePath[]`\n * @param subNamePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function matchNamePath(namePath, subNamePath) {\n var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!namePath || !subNamePath) {\n return false;\n }\n if (!partialMatch && namePath.length !== subNamePath.length) {\n return false;\n }\n return subNamePath.every(function (nameUnit, i) {\n return namePath[i] === nameUnit;\n });\n}\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n if (!source && target || source && !target) {\n return false;\n }\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(sourceKeys, targetKeys));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n if (event && event.target && _typeof(event.target) === 'object' && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n return event;\n}\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array Array in which to move an item. (required)\n * @param moveIndex The index of the item to move. (required)\n * @param toIndex The index to move item at moveIndex to. (required)\n */\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n if (diff > 0) {\n // move left\n return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n }\n if (diff < 0) {\n // move right\n return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n }\n return array;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"name\"];\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport ListContext from './ListContext';\nimport { toArray } from './utils/typeUtil';\nimport { validateRules } from './utils/validateUtil';\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from './utils/valueUtil';\nvar EMPTY_ERRORS = [];\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n if (typeof shouldUpdate === 'function') {\n return shouldUpdate(prev, next, 'source' in info ? {\n source: info.source\n } : {});\n }\n return prevValue !== nextValue;\n}\n// We use Class instead of Hooks here since it will cost much code by using Hooks.\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n var _super = _createSuper(Field);\n // ============================== Subscriptions ==============================\n function Field(props) {\n var _this;\n _classCallCheck(this, Field);\n _this = _super.call(this, props);\n // Register on init\n _this.state = {\n resetCount: 0\n };\n _this.cancelRegisterFunc = null;\n _this.mounted = false;\n /**\n * Follow state should not management in State since it will async update by React.\n * This makes first render of form can not get correct state value.\n */\n _this.touched = false;\n /**\n * Mark when touched & validated. Currently only used for `dependencies`.\n * Note that we do not think field with `initialValue` is dirty\n * but this will be by `isFieldDirty` func.\n */\n _this.dirty = false;\n _this.validatePromise = void 0;\n _this.prevValidating = void 0;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.cancelRegister = function () {\n var _this$props = _this.props,\n preserve = _this$props.preserve,\n isListField = _this$props.isListField,\n name = _this$props.name;\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n }\n _this.cancelRegisterFunc = null;\n };\n // ================================== Utils ==================================\n _this.getNamePath = function () {\n var _this$props2 = _this.props,\n name = _this$props2.name,\n fieldContext = _this$props2.fieldContext;\n var _fieldContext$prefixN = fieldContext.prefixName,\n prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n };\n _this.getRules = function () {\n var _this$props3 = _this.props,\n _this$props3$rules = _this$props3.rules,\n rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n fieldContext = _this$props3.fieldContext;\n return rules.map(function (rule) {\n if (typeof rule === 'function') {\n return rule(fieldContext);\n }\n return rule;\n });\n };\n _this.refresh = function () {\n if (!_this.mounted) return;\n /**\n * Clean up current node.\n */\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n };\n // Event should only trigger when meta changed\n _this.metaCache = null;\n _this.triggerMetaEvent = function (destroy) {\n var onMetaChange = _this.props.onMetaChange;\n if (onMetaChange) {\n var meta = _objectSpread(_objectSpread({}, _this.getMeta()), {}, {\n destroy: destroy\n });\n if (!isEqual(_this.metaCache, meta)) {\n onMetaChange(meta);\n }\n _this.metaCache = meta;\n } else {\n _this.metaCache = null;\n }\n };\n // ========================= Field Entity Interfaces =========================\n // Trigger by store update. Check if need update the component\n _this.onStoreChange = function (prevStore, namePathList, info) {\n var _this$props4 = _this.props,\n shouldUpdate = _this$props4.shouldUpdate,\n _this$props4$dependen = _this$props4.dependencies,\n dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n onReset = _this$props4.onReset;\n var store = info.store;\n var namePath = _this.getNamePath();\n var prevValue = _this.getValue(prevStore);\n var curValue = _this.getValue(store);\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath);\n // `setFieldsValue` is a quick access to update related status\n if (info.type === 'valueUpdate' && info.source === 'external' && prevValue !== curValue) {\n _this.touched = true;\n _this.dirty = true;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n }\n switch (info.type) {\n case 'reset':\n if (!namePathList || namePathMatch) {\n // Clean up state\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = undefined;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n onReset === null || onReset === void 0 ? void 0 : onReset();\n _this.refresh();\n return;\n }\n break;\n /**\n * In case field with `preserve = false` nest deps like:\n * - A = 1 => show B\n * - B = 1 => show C\n * - Reset A, need clean B, C\n */\n case 'remove':\n {\n if (shouldUpdate) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'setField':\n {\n if (namePathMatch) {\n var data = info.data;\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n if ('errors' in data) {\n _this.errors = data.errors || EMPTY_ERRORS;\n }\n if ('warnings' in data) {\n _this.warnings = data.warnings || EMPTY_ERRORS;\n }\n _this.dirty = true;\n _this.triggerMetaEvent();\n _this.reRender();\n return;\n }\n // Handle update by `setField` with `shouldUpdate`\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath);\n // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n // emitted earlier and they will work there\n // If set it may cause unnecessary twice rerendering\n if (dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n return;\n }\n break;\n }\n default:\n // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n // For example \n // If `namePathList` is [['list']] (List value update), Field should be updated\n // If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n // 2.\n // 2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n // don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n // is not provided\n // 2.2 If `shouldUpdate` provided, use customize logic to update the field\n // else to check if value changed\n if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n if (shouldUpdate === true) {\n _this.reRender();\n }\n };\n _this.validateRules = function (options) {\n // We should fixed namePath & value to avoid developer change then by form function\n var namePath = _this.getNamePath();\n var currentValue = _this.getValue();\n var _ref2 = options || {},\n triggerName = _ref2.triggerName,\n _ref2$validateOnly = _ref2.validateOnly,\n validateOnly = _ref2$validateOnly === void 0 ? false : _ref2$validateOnly;\n // Force change to async to avoid rule OOD under renderProps field\n var rootPromise = Promise.resolve().then(function () {\n if (!_this.mounted) {\n return [];\n }\n var _this$props5 = _this.props,\n _this$props5$validate = _this$props5.validateFirst,\n validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate,\n messageVariables = _this$props5.messageVariables;\n var filteredRules = _this.getRules();\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n return rule;\n }).filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n if (!validateTrigger) {\n return true;\n }\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n var promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n promise.catch(function (e) {\n return e;\n }).then(function () {\n var ruleErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ERRORS;\n if (_this.validatePromise === rootPromise) {\n var _ruleErrors$forEach;\n _this.validatePromise = null;\n // Get errors & warnings\n var nextErrors = [];\n var nextWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref3) {\n var warningOnly = _ref3.rule.warningOnly,\n _ref3$errors = _ref3.errors,\n errors = _ref3$errors === void 0 ? EMPTY_ERRORS : _ref3$errors;\n if (warningOnly) {\n nextWarnings.push.apply(nextWarnings, _toConsumableArray(errors));\n } else {\n nextErrors.push.apply(nextErrors, _toConsumableArray(errors));\n }\n });\n _this.errors = nextErrors;\n _this.warnings = nextWarnings;\n _this.triggerMetaEvent();\n _this.reRender();\n }\n });\n return promise;\n });\n if (validateOnly) {\n return rootPromise;\n }\n _this.validatePromise = rootPromise;\n _this.dirty = true;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n // Force trigger re-render since we need sync renderProps with new meta\n _this.reRender();\n return rootPromise;\n };\n _this.isFieldValidating = function () {\n return !!_this.validatePromise;\n };\n _this.isFieldTouched = function () {\n return _this.touched;\n };\n _this.isFieldDirty = function () {\n // Touched or validate or has initialValue\n if (_this.dirty || _this.props.initialValue !== undefined) {\n return true;\n }\n // Form set initialValue\n var fieldContext = _this.props.fieldContext;\n var _fieldContext$getInte = fieldContext.getInternalHooks(HOOK_MARK),\n getInitialValue = _fieldContext$getInte.getInitialValue;\n if (getInitialValue(_this.getNamePath()) !== undefined) {\n return true;\n }\n return false;\n };\n _this.getErrors = function () {\n return _this.errors;\n };\n _this.getWarnings = function () {\n return _this.warnings;\n };\n _this.isListField = function () {\n return _this.props.isListField;\n };\n _this.isList = function () {\n return _this.props.isList;\n };\n _this.isPreserve = function () {\n return _this.props.preserve;\n };\n // ============================= Child Component =============================\n _this.getMeta = function () {\n // Make error & validating in cache to save perf\n _this.prevValidating = _this.isFieldValidating();\n var meta = {\n touched: _this.isFieldTouched(),\n validating: _this.prevValidating,\n errors: _this.errors,\n warnings: _this.warnings,\n name: _this.getNamePath(),\n validated: _this.validatePromise === null\n };\n return meta;\n };\n // Only return validate child node. If invalidate, will do nothing about field.\n _this.getOnlyChild = function (children) {\n // Support render props\n if (typeof children === 'function') {\n var meta = _this.getMeta();\n return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), meta, _this.props.fieldContext))), {}, {\n isFunction: true\n });\n }\n // Filed element only\n var childList = toChildrenArray(children);\n if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n return {\n child: childList[0],\n isFunction: false\n };\n };\n // ============================== Field Control ==============================\n _this.getValue = function (store) {\n var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n var namePath = _this.getNamePath();\n return getValue(store || getFieldsValue(true), namePath);\n };\n _this.getControlled = function () {\n var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this$props6 = _this.props,\n trigger = _this$props6.trigger,\n validateTrigger = _this$props6.validateTrigger,\n getValueFromEvent = _this$props6.getValueFromEvent,\n normalize = _this$props6.normalize,\n valuePropName = _this$props6.valuePropName,\n getValueProps = _this$props6.getValueProps,\n fieldContext = _this$props6.fieldContext;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n var namePath = _this.getNamePath();\n var getInternalHooks = fieldContext.getInternalHooks,\n getFieldsValue = fieldContext.getFieldsValue;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n var value = _this.getValue();\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var originTriggerFunc = childProps[trigger];\n var control = _objectSpread(_objectSpread({}, childProps), mergedGetValueProps(value));\n // Add trigger\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n _this.triggerMetaEvent();\n var newValue;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n };\n // Add validateTrigger\n var validateTriggerList = toArray(mergedValidateTrigger || []);\n validateTriggerList.forEach(function (triggerName) {\n // Wrap additional function of component, so that we can get latest value from store\n var originTrigger = control[triggerName];\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n }\n // Always use latest rules\n var rules = _this.props.rules;\n if (rules && rules.length) {\n // We dispatch validate to root,\n // since it will update related data with other field with same name\n dispatch({\n type: 'validateField',\n namePath: namePath,\n triggerName: triggerName\n });\n }\n };\n });\n return control;\n };\n if (props.fieldContext) {\n var getInternalHooks = props.fieldContext.getInternalHooks;\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n initEntityValue = _getInternalHooks2.initEntityValue;\n initEntityValue(_assertThisInitialized(_this));\n }\n return _this;\n }\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n shouldUpdate = _this$props7.shouldUpdate,\n fieldContext = _this$props7.fieldContext;\n this.mounted = true;\n // Register on init\n if (fieldContext) {\n var getInternalHooks = fieldContext.getInternalHooks;\n var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks3.registerField;\n this.cancelRegisterFunc = registerField(this);\n }\n // One more render for component in case fields not ready\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\n this.triggerMetaEvent(true);\n this.mounted = false;\n }\n }, {\n key: \"reRender\",\n value: function reRender() {\n if (!this.mounted) return;\n this.forceUpdate();\n }\n }, {\n key: \"render\",\n value: function render() {\n var resetCount = this.state.resetCount;\n var children = this.props.children;\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction;\n // Not need to `cloneElement` since user can handle this in render function self\n var returnChildNode;\n if (isFunction) {\n returnChildNode = child;\n } else if ( /*#__PURE__*/React.isValidElement(child)) {\n returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n } else {\n warning(!child, '`children` of Field is not validate ReactElement.');\n returnChildNode = child;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n return Field;\n}(React.Component);\nField.contextType = FieldContext;\nField.defaultProps = {\n trigger: 'onChange',\n valuePropName: 'value'\n};\nfunction WrapperField(_ref5) {\n var name = _ref5.name,\n restProps = _objectWithoutProperties(_ref5, _excluded);\n var fieldContext = React.useContext(FieldContext);\n var listContext = React.useContext(ListContext);\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n if (!restProps.isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n }\n // Warning if it's a directly list field.\n // We can still support multiple level field preserve.\n if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n warning(false, '`preserve` should not apply on Form.List fields.');\n }\n return /*#__PURE__*/React.createElement(Field, _extends({\n key: key,\n name: namePath,\n isListField: !!listContext\n }, restProps, {\n fieldContext: fieldContext\n }));\n}\nexport default WrapperField;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from './FieldContext';\nimport Field from './Field';\nimport { move as _move, getNamePath } from './utils/valueUtil';\nimport ListContext from './ListContext';\nfunction List(_ref) {\n var name = _ref.name,\n initialValue = _ref.initialValue,\n children = _ref.children,\n rules = _ref.rules,\n validateTrigger = _ref.validateTrigger,\n isListField = _ref.isListField;\n var context = React.useContext(FieldContext);\n var wrapperListContext = React.useContext(ListContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current;\n var prefixName = React.useMemo(function () {\n var parentPrefixName = getNamePath(context.prefixName) || [];\n return [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n }, [context.prefixName, name]);\n var fieldContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n });\n }, [context, prefixName]);\n // List context\n var listContext = React.useMemo(function () {\n return {\n getKey: function getKey(namePath) {\n var len = prefixName.length;\n var pathName = namePath[len];\n return [keyManager.keys[pathName], namePath.slice(len + 1)];\n }\n };\n }, [prefixName]);\n // User should not pass `children` as other type.\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n if (source === 'internal') {\n return false;\n }\n return prevValue !== nextValue;\n };\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: listContext\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: fieldContext\n }, /*#__PURE__*/React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger,\n initialValue: initialValue,\n isList: true,\n isListField: isListField !== null && isListField !== void 0 ? isListField : !!wrapperListContext\n }, function (_ref3, meta) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? [] : _ref3$value,\n onChange = _ref3.onChange;\n var getFieldValue = context.getFieldValue;\n var getNewValue = function getNewValue() {\n var values = getFieldValue(prefixName || []);\n return values || [];\n };\n /**\n * Always get latest value in case user update fields by `form` api.\n */\n var operations = {\n add: function add(defaultValue, index) {\n // Mapping keys\n var newValue = getNewValue();\n if (index >= 0 && index <= newValue.length) {\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n } else {\n if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n warning(false, 'The second parameter of the add function should be a valid positive number.');\n }\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n }\n keyManager.id += 1;\n },\n remove: function remove(index) {\n var newValue = getNewValue();\n var indexSet = new Set(Array.isArray(index) ? index : [index]);\n if (indexSet.size <= 0) {\n return;\n }\n keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n return !indexSet.has(keysIndex);\n });\n // Trigger store change\n onChange(newValue.filter(function (_, valueIndex) {\n return !indexSet.has(valueIndex);\n }));\n },\n move: function move(from, to) {\n if (from === to) {\n return;\n }\n var newValue = getNewValue();\n // Do not handle out of range\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n keyManager.keys = _move(keyManager.keys, from, to);\n // Trigger store change\n onChange(_move(newValue, from, to));\n }\n };\n var listValue = value || [];\n if (!Array.isArray(listValue)) {\n listValue = [];\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n }\n }\n return children(listValue.map(function (__, index) {\n var key = keyManager.keys[index];\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations, meta);\n })));\n}\nexport default List;","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\n return new Promise(function (resolve, reject) {\n promiseList.forEach(function (promise, index) {\n promise.catch(function (e) {\n hasError = true;\n return e;\n }).then(function (result) {\n count -= 1;\n results[index] = result;\n if (count > 0) {\n return;\n }\n if (hasError) {\n reject(results);\n }\n resolve(results);\n });\n });\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\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 _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\nfunction normalize(namePath) {\n return namePath.map(function (cell) {\n return \"\".concat(_typeof(cell), \":\").concat(cell);\n })\n // Magic split\n .join(SPLIT);\n}\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n this.kvs = new Map();\n }\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.kvs.set(normalize(key), value);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.kvs.get(normalize(key));\n }\n }, {\n key: \"update\",\n value: function update(key, updater) {\n var origin = this.get(key);\n var next = updater(origin);\n if (!next) {\n this.delete(key);\n } else {\n this.set(key, next);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this.kvs.delete(normalize(key));\n }\n // Since we only use this in test, let simply realize this\n }, {\n key: \"map\",\n value: function map(callback) {\n return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n var cells = key.split(SPLIT);\n return callback({\n key: cells.map(function (cell) {\n var _cell$match = cell.match(/^([^:]*):(.*)$/),\n _cell$match2 = _slicedToArray(_cell$match, 3),\n type = _cell$match2[1],\n unit = _cell$match2[2];\n return type === 'number' ? Number(unit) : unit;\n }),\n value: value\n });\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref3) {\n var key = _ref3.key,\n value = _ref3.value;\n json[key.join('.')] = value;\n return null;\n });\n return json;\n }\n }]);\n return NameMap;\n}();\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nvar _excluded = [\"name\"];\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { HOOK_MARK } from './FieldContext';\nimport { allPromiseFinish } from './utils/asyncUtil';\nimport { merge } from \"rc-util/es/utils/set\";\nimport { defaultValidateMessages } from './utils/messages';\nimport NameMap from './utils/NameMap';\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue } from './utils/valueUtil';\nexport var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {\n var _this = this;\n _classCallCheck(this, FormStore);\n this.formHooked = false;\n this.forceRootUpdate = void 0;\n this.subscribable = true;\n this.store = {};\n this.fieldEntities = [];\n this.initialValues = {};\n this.callbacks = {};\n this.validateMessages = null;\n this.preserve = null;\n this.lastValidatePromise = null;\n this.getForm = function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\n getFieldWarning: _this.getFieldWarning,\n getFieldsError: _this.getFieldsError,\n isFieldsTouched: _this.isFieldsTouched,\n isFieldTouched: _this.isFieldTouched,\n isFieldValidating: _this.isFieldValidating,\n isFieldsValidating: _this.isFieldsValidating,\n resetFields: _this.resetFields,\n setFields: _this.setFields,\n setFieldValue: _this.setFieldValue,\n setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n _init: true,\n getInternalHooks: _this.getInternalHooks\n };\n };\n // ======================== Internal Hooks ========================\n this.getInternalHooks = function (key) {\n if (key === HOOK_MARK) {\n _this.formHooked = true;\n return {\n dispatch: _this.dispatch,\n initEntityValue: _this.initEntityValue,\n registerField: _this.registerField,\n useSubscribe: _this.useSubscribe,\n setInitialValues: _this.setInitialValues,\n destroyForm: _this.destroyForm,\n setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields,\n setPreserve: _this.setPreserve,\n getInitialValue: _this.getInitialValue,\n registerWatch: _this.registerWatch\n };\n }\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n };\n this.useSubscribe = function (subscribable) {\n _this.subscribable = subscribable;\n };\n /**\n * Record prev Form unmount fieldEntities which config preserve false.\n * This need to be refill with initialValues instead of store value.\n */\n this.prevWithoutPreserves = null;\n /**\n * First time `setInitialValues` should update store with initial value\n */\n this.setInitialValues = function (initialValues, init) {\n _this.initialValues = initialValues || {};\n if (init) {\n var _this$prevWithoutPres;\n var nextStore = merge(initialValues, _this.store);\n // We will take consider prev form unmount fields.\n // When the field is not `preserve`, we need fill this with initialValues instead of store.\n // eslint-disable-next-line array-callback-return\n (_this$prevWithoutPres = _this.prevWithoutPreserves) === null || _this$prevWithoutPres === void 0 ? void 0 : _this$prevWithoutPres.map(function (_ref) {\n var namePath = _ref.key;\n nextStore = setValue(nextStore, namePath, getValue(initialValues, namePath));\n });\n _this.prevWithoutPreserves = null;\n _this.updateStore(nextStore);\n }\n };\n this.destroyForm = function () {\n var prevWithoutPreserves = new NameMap();\n _this.getFieldEntities(true).forEach(function (entity) {\n if (!_this.isMergedPreserve(entity.isPreserve())) {\n prevWithoutPreserves.set(entity.getNamePath(), true);\n }\n });\n _this.prevWithoutPreserves = prevWithoutPreserves;\n };\n this.getInitialValue = function (namePath) {\n var initValue = getValue(_this.initialValues, namePath);\n // Not cloneDeep when without `namePath`\n return namePath.length ? merge(initValue) : initValue;\n };\n this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n this.setValidateMessages = function (validateMessages) {\n _this.validateMessages = validateMessages;\n };\n this.setPreserve = function (preserve) {\n _this.preserve = preserve;\n };\n // ============================= Watch ============================\n this.watchList = [];\n this.registerWatch = function (callback) {\n _this.watchList.push(callback);\n return function () {\n _this.watchList = _this.watchList.filter(function (fn) {\n return fn !== callback;\n });\n };\n };\n this.notifyWatch = function () {\n var namePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // No need to cost perf when nothing need to watch\n if (_this.watchList.length) {\n var values = _this.getFieldsValue();\n var allValues = _this.getFieldsValue(true);\n _this.watchList.forEach(function (callback) {\n callback(values, allValues, namePath);\n });\n }\n };\n // ========================== Dev Warning =========================\n this.timeoutId = null;\n this.warningUnhooked = function () {\n if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n _this.timeoutId = setTimeout(function () {\n _this.timeoutId = null;\n if (!_this.formHooked) {\n warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n }\n });\n }\n };\n // ============================ Store =============================\n this.updateStore = function (nextStore) {\n _this.store = nextStore;\n };\n // ============================ Fields ============================\n /**\n * Get registered field entities.\n * @param pure Only return field which has a `name`. Default: false\n */\n this.getFieldEntities = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (!pure) {\n return _this.fieldEntities;\n }\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n };\n this.getFieldsMap = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n return cache;\n };\n this.getFieldEntitiesForNamePathList = function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n var cache = _this.getFieldsMap(true);\n return nameList.map(function (name) {\n var namePath = getNamePath(name);\n return cache.get(namePath) || {\n INVALIDATE_NAME_PATH: getNamePath(name)\n };\n });\n };\n this.getFieldsValue = function (nameList, filterFunc) {\n _this.warningUnhooked();\n // Fill args\n var mergedNameList;\n var mergedFilterFunc;\n var mergedStrict;\n if (nameList === true || Array.isArray(nameList)) {\n mergedNameList = nameList;\n mergedFilterFunc = filterFunc;\n } else if (nameList && _typeof(nameList) === 'object') {\n mergedStrict = nameList.strict;\n mergedFilterFunc = nameList.filter;\n }\n if (mergedNameList === true && !mergedFilterFunc) {\n return _this.store;\n }\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(mergedNameList) ? mergedNameList : null);\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var _entity$isListField;\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath();\n // Ignore when it's a list item and not specific the namePath,\n // since parent field is already take in count\n if (mergedStrict) {\n var _entity$isList;\n if ((_entity$isList = entity.isList) === null || _entity$isList === void 0 ? void 0 : _entity$isList.call(entity)) {\n return;\n }\n } else if (!mergedNameList && ((_entity$isListField = entity.isListField) === null || _entity$isListField === void 0 ? void 0 : _entity$isListField.call(entity))) {\n return;\n }\n if (!mergedFilterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n if (mergedFilterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n };\n this.getFieldValue = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n };\n this.getFieldsError = function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n return fieldEntities.map(function (entity, index) {\n if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n return {\n name: entity.getNamePath(),\n errors: entity.getErrors(),\n warnings: entity.getWarnings()\n };\n }\n return {\n name: getNamePath(nameList[index]),\n errors: [],\n warnings: []\n };\n });\n };\n this.getFieldError = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.errors;\n };\n this.getFieldWarning = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.warnings;\n };\n this.isFieldsTouched = function () {\n _this.warningUnhooked();\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n if (args.length === 0) {\n namePathList = null;\n } else if (args.length === 1) {\n if (Array.isArray(arg0)) {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = false;\n } else {\n namePathList = null;\n isAllFieldsTouched = arg0;\n }\n } else {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = arg1;\n }\n var fieldEntities = _this.getFieldEntities(true);\n var isFieldTouched = function isFieldTouched(field) {\n return field.isFieldTouched();\n };\n // ===== Will get fully compare when not config namePathList =====\n if (!namePathList) {\n return isAllFieldsTouched ? fieldEntities.every(isFieldTouched) : fieldEntities.some(isFieldTouched);\n }\n // Generate a nest tree for validate\n var map = new NameMap();\n namePathList.forEach(function (shortNamePath) {\n map.set(shortNamePath, []);\n });\n fieldEntities.forEach(function (field) {\n var fieldNamePath = field.getNamePath();\n // Find matched entity and put into list\n namePathList.forEach(function (shortNamePath) {\n if (shortNamePath.every(function (nameUnit, i) {\n return fieldNamePath[i] === nameUnit;\n })) {\n map.update(shortNamePath, function (list) {\n return [].concat(_toConsumableArray(list), [field]);\n });\n }\n });\n });\n // Check if NameMap value is touched\n var isNamePathListTouched = function isNamePathListTouched(entities) {\n return entities.some(isFieldTouched);\n };\n var namePathListEntities = map.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n });\n return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n };\n this.isFieldTouched = function (name) {\n _this.warningUnhooked();\n return _this.isFieldsTouched([name]);\n };\n this.isFieldsValidating = function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntities();\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\n }\n var namePathList = nameList.map(getNamePath);\n return fieldEntities.some(function (testField) {\n var fieldNamePath = testField.getNamePath();\n return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n });\n };\n this.isFieldValidating = function (name) {\n _this.warningUnhooked();\n return _this.isFieldsValidating([name]);\n };\n /**\n * Reset Field with field `initialValue` prop.\n * Can pass `entities` or `namePathList` or just nothing.\n */\n this.resetWithFieldInitialValue = function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Create cache\n var cache = new NameMap();\n var fieldEntities = _this.getFieldEntities(true);\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath();\n // Record only if has `initialValue`\n if (initialValue !== undefined) {\n var records = cache.get(namePath) || new Set();\n records.add({\n entity: field,\n value: initialValue\n });\n cache.set(namePath, records);\n }\n });\n // Reset\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n var formInitialValue = _this.getInitialValue(namePath);\n if (formInitialValue !== undefined) {\n // Warning if conflict with form initialValues and do not modify value\n warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n } else {\n var records = cache.get(namePath);\n if (records && records.size > 1) {\n // Warning if multiple field set `initialValue`and do not modify value\n warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n } else if (records) {\n var originValue = _this.getFieldValue(namePath);\n // Set `initialValue`\n if (!info.skipExist || originValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, _toConsumableArray(records)[0].value));\n }\n }\n }\n }\n });\n };\n var requiredFieldEntities;\n if (info.entities) {\n requiredFieldEntities = info.entities;\n } else if (info.namePathList) {\n requiredFieldEntities = [];\n info.namePathList.forEach(function (namePath) {\n var records = cache.get(namePath);\n if (records) {\n var _requiredFieldEntitie;\n (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n return r.entity;\n })));\n }\n });\n } else {\n requiredFieldEntities = fieldEntities;\n }\n resetWithFields(requiredFieldEntities);\n };\n this.resetFields = function (nameList) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (!nameList) {\n _this.updateStore(merge(_this.initialValues));\n _this.resetWithFieldInitialValue();\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n _this.notifyWatch();\n return;\n }\n // Reset by `nameList`\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n });\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n _this.notifyWatch(namePathList);\n };\n this.setFields = function (fields) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n var namePathList = [];\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n data = _objectWithoutProperties(fieldData, _excluded);\n var namePath = getNamePath(name);\n namePathList.push(namePath);\n // Value\n if ('value' in data) {\n _this.updateStore(setValue(_this.store, namePath, data.value));\n }\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n _this.notifyWatch(namePathList);\n };\n this.getFields = function () {\n var entities = _this.getFieldEntities(true);\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n };\n // =========================== Observer ===========================\n /**\n * This only trigger when a field is on constructor to avoid we get initialValue too late\n */\n this.initEntityValue = function (entity) {\n var initialValue = entity.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = entity.getNamePath();\n var prevValue = getValue(_this.store, namePath);\n if (prevValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n }\n }\n };\n this.isMergedPreserve = function (fieldPreserve) {\n var mergedPreserve = fieldPreserve !== undefined ? fieldPreserve : _this.preserve;\n return mergedPreserve !== null && mergedPreserve !== void 0 ? mergedPreserve : true;\n };\n this.registerField = function (entity) {\n _this.fieldEntities.push(entity);\n var namePath = entity.getNamePath();\n _this.notifyWatch([namePath]);\n // Set initial values\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n }\n // un-register field callback\n return function (isListField, preserve) {\n var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n });\n // Clean up store value if not preserve\n if (!_this.isMergedPreserve(preserve) && (!isListField || subNamePath.length > 1)) {\n var defaultValue = isListField ? undefined : _this.getInitialValue(namePath);\n if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n return (\n // Only reset when no namePath exist\n !matchNamePath(field.getNamePath(), namePath)\n );\n })) {\n var _prevStore = _this.store;\n _this.updateStore(setValue(_prevStore, namePath, defaultValue, true));\n // Notify that field is unmount\n _this.notifyObservers(_prevStore, [namePath], {\n type: 'remove'\n });\n // Dependencies update\n _this.triggerDependenciesUpdate(_prevStore, namePath);\n }\n }\n _this.notifyWatch([namePath]);\n };\n };\n this.dispatch = function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n _this.updateValue(namePath, value);\n break;\n }\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n break;\n }\n default:\n // Currently we don't have other action. Do nothing.\n }\n };\n this.notifyObservers = function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n store: _this.getFieldsValue(true)\n });\n _this.getFieldEntities().forEach(function (_ref3) {\n var onStoreChange = _ref3.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n };\n /**\n * Notify dependencies children with parent update\n * We need delay to trigger validate in case Field is under render props\n */\n this.triggerDependenciesUpdate = function (prevStore, namePath) {\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n if (childrenFields.length) {\n _this.validateFields(childrenFields);\n }\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n });\n return childrenFields;\n };\n this.updateValue = function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n _this.updateStore(setValue(_this.store, namePath, value));\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n });\n _this.notifyWatch([namePath]);\n // Dependencies update\n var childrenFields = _this.triggerDependenciesUpdate(prevStore, namePath);\n // trigger callback function\n var onValuesChange = _this.callbacks.onValuesChange;\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.getFieldsValue());\n }\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n };\n // Let all child Field get update.\n this.setFieldsValue = function (store) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (store) {\n var nextStore = merge(_this.store, store);\n _this.updateStore(nextStore);\n }\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n _this.notifyWatch();\n };\n this.setFieldValue = function (name, value) {\n _this.setFields([{\n name: name,\n value: value\n }]);\n };\n this.getDependencyChildrenFields = function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\n _this.getFieldEntities().forEach(function (field) {\n var dependencies = field.props.dependencies;\n (dependencies || []).forEach(function (dependency) {\n var dependencyNamePath = getNamePath(dependency);\n dependencies2fields.update(dependencyNamePath, function () {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n fields.add(field);\n return fields;\n });\n });\n });\n var fillChildren = function fillChildren(namePath) {\n var fields = dependencies2fields.get(namePath) || new Set();\n fields.forEach(function (field) {\n if (!children.has(field)) {\n children.add(field);\n var fieldNamePath = field.getNamePath();\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n fillChildren(rootNamePath);\n return childrenFields;\n };\n this.triggerOnFieldsChange = function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n if (onFieldsChange) {\n var fields = _this.getFields();\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref4) {\n var name = _ref4.name,\n errors = _ref4.errors;\n cache.set(name, errors);\n });\n fields.forEach(function (field) {\n // eslint-disable-next-line no-param-reassign\n field.errors = cache.get(field.name) || field.errors;\n });\n }\n var changedFields = fields.filter(function (_ref5) {\n var fieldName = _ref5.name;\n return containsNamePath(namePathList, fieldName);\n });\n if (changedFields.length) {\n onFieldsChange(changedFields, fields);\n }\n }\n };\n // =========================== Validate ===========================\n this.validateFields = function (arg1, arg2) {\n var _options;\n _this.warningUnhooked();\n var nameList;\n var options;\n if (Array.isArray(arg1) || typeof arg1 === 'string' || typeof arg2 === 'string') {\n nameList = arg1;\n options = arg2;\n } else {\n options = arg1;\n }\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : [];\n // Collect result in promise list\n var promiseList = [];\n // We temp save the path which need trigger for `onFieldsChange`\n var TMP_SPLIT = String(Date.now());\n var validateNamePathList = new Set();\n var recursive = (_options = options) === null || _options === void 0 ? void 0 : _options.recursive;\n _this.getFieldEntities(true).forEach(function (field) {\n // Add field if not provide `nameList`\n if (!provideNameList) {\n namePathList.push(field.getNamePath());\n }\n // Skip if without rule\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n var fieldNamePath = field.getNamePath();\n validateNamePathList.add(fieldNamePath.join(TMP_SPLIT));\n // Add field validate rule in to promise list\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath, recursive)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n }, options));\n // Wrap promise with field\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: [],\n warnings: []\n };\n }).catch(function (ruleErrors) {\n var _ruleErrors$forEach;\n var mergedErrors = [];\n var mergedWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref6) {\n var warningOnly = _ref6.rule.warningOnly,\n errors = _ref6.errors;\n if (warningOnly) {\n mergedWarnings.push.apply(mergedWarnings, _toConsumableArray(errors));\n } else {\n mergedErrors.push.apply(mergedErrors, _toConsumableArray(errors));\n }\n });\n if (mergedErrors.length) {\n return Promise.reject({\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n });\n }\n return {\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n };\n }));\n }\n });\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise;\n // Notify fields with rule that validate has finished and need update\n summaryPromise.catch(function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref7) {\n var name = _ref7.name;\n return name;\n });\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\n _this.triggerOnFieldsChange(resultNamePathList, results);\n });\n var returnPromise = summaryPromise.then(function () {\n if (_this.lastValidatePromise === summaryPromise) {\n return Promise.resolve(_this.getFieldsValue(namePathList));\n }\n return Promise.reject([]);\n }).catch(function (results) {\n var errorList = results.filter(function (result) {\n return result && result.errors.length;\n });\n return Promise.reject({\n values: _this.getFieldsValue(namePathList),\n errorFields: errorList,\n outOfDate: _this.lastValidatePromise !== summaryPromise\n });\n });\n // Do not throw in console\n returnPromise.catch(function (e) {\n return e;\n });\n // `validating` changed. Trigger `onFieldsChange`\n var triggerNamePathList = namePathList.filter(function (namePath) {\n return validateNamePathList.has(namePath.join(TMP_SPLIT));\n });\n _this.triggerOnFieldsChange(triggerNamePathList);\n return returnPromise;\n };\n // ============================ Submit ============================\n this.submit = function () {\n _this.warningUnhooked();\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n if (onFinish) {\n try {\n onFinish(values);\n } catch (err) {\n // Should print error if user `onFinish` callback failed\n console.error(err);\n }\n }\n }).catch(function (e) {\n var onFinishFailed = _this.callbacks.onFinishFailed;\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n };\n this.forceRootUpdate = forceRootUpdate;\n});\nfunction useForm(form) {\n var formRef = React.useRef();\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n var forceReRender = function forceReRender() {\n forceUpdate({});\n };\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n return [formRef.current];\n}\nexport default useForm;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n triggerFormChange: function triggerFormChange() {},\n triggerFormFinish: function triggerFormFinish() {},\n registerForm: function registerForm() {},\n unregisterForm: function unregisterForm() {}\n});\nvar FormProvider = function FormProvider(_ref) {\n var validateMessages = _ref.validateMessages,\n onFormChange = _ref.onFormChange,\n onFormFinish = _ref.onFormFinish,\n children = _ref.children;\n var formContext = React.useContext(FormContext);\n var formsRef = React.useRef({});\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formContext), {}, {\n validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n // =========================================================\n // = Global Form Control =\n // =========================================================\n triggerFormChange: function triggerFormChange(name, changedFields) {\n if (onFormChange) {\n onFormChange(name, {\n changedFields: changedFields,\n forms: formsRef.current\n });\n }\n formContext.triggerFormChange(name, changedFields);\n },\n triggerFormFinish: function triggerFormFinish(name, values) {\n if (onFormFinish) {\n onFormFinish(name, {\n values: values,\n forms: formsRef.current\n });\n }\n formContext.triggerFormFinish(name, values);\n },\n registerForm: function registerForm(name, form) {\n if (name) {\n formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n }\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"];\nimport * as React from 'react';\nimport useForm from './useForm';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport FormContext from './FormContext';\nimport { isSimilar } from './utils/valueUtil';\nimport ListContext from './ListContext';\nvar Form = function Form(_ref, ref) {\n var name = _ref.name,\n initialValues = _ref.initialValues,\n fields = _ref.fields,\n form = _ref.form,\n preserve = _ref.preserve,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'form' : _ref$component,\n validateMessages = _ref.validateMessages,\n _ref$validateTrigger = _ref.validateTrigger,\n validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n onValuesChange = _ref.onValuesChange,\n _onFieldsChange = _ref.onFieldsChange,\n _onFinish = _ref.onFinish,\n onFinishFailed = _ref.onFinishFailed,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var formContext = React.useContext(FormContext);\n // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n var _formInstance$getInte = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _formInstance$getInte.useSubscribe,\n setInitialValues = _formInstance$getInte.setInitialValues,\n setCallbacks = _formInstance$getInte.setCallbacks,\n setValidateMessages = _formInstance$getInte.setValidateMessages,\n setPreserve = _formInstance$getInte.setPreserve,\n destroyForm = _formInstance$getInte.destroyForm;\n // Pass ref with form instance\n React.useImperativeHandle(ref, function () {\n return formInstance;\n });\n // Register form into Context\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]);\n // Pass props to store\n setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n if (_onFieldsChange) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n });\n setPreserve(preserve);\n // Set initial value, init store value when first mount\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n if (!mountRef.current) {\n mountRef.current = true;\n }\n React.useEffect(function () {\n return destroyForm;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // Prepare children by `children` type\n var childrenNode;\n var childrenRenderProps = typeof children === 'function';\n if (childrenRenderProps) {\n var values = formInstance.getFieldsValue(true);\n childrenNode = children(values, formInstance);\n } else {\n childrenNode = children;\n }\n // Not use subscribe when using render props\n useSubscribe(!childrenRenderProps);\n // Listen if fields provided. We use ref to save prev data here to avoid additional render\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\n prevFieldsRef.current = fields;\n }, [fields, formInstance]);\n var formContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, formInstance), {}, {\n validateTrigger: validateTrigger\n });\n }, [formInstance, validateTrigger]);\n var wrapperNode = /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode));\n if (Component === false) {\n return wrapperNode;\n }\n return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\n },\n onReset: function onReset(event) {\n var _restProps$onReset;\n event.preventDefault();\n formInstance.resetFields();\n (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 ? void 0 : _restProps$onReset.call(restProps, event);\n }\n }), wrapperNode);\n};\nexport default Form;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport warning from \"rc-util/es/warning\";\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport { useState, useContext, useEffect, useRef, useMemo } from 'react';\nimport { getNamePath, getValue } from './utils/valueUtil';\nimport { isFormInstance } from './utils/typeUtil';\nexport function stringify(value) {\n try {\n return JSON.stringify(value);\n } catch (err) {\n return Math.random();\n }\n}\nvar useWatchWarning = process.env.NODE_ENV !== 'production' ? function (namePath) {\n var fullyStr = namePath.join('__RC_FIELD_FORM_SPLIT__');\n var nameStrRef = useRef(fullyStr);\n warning(nameStrRef.current === fullyStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');\n} : function () {};\nfunction useWatch() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var _args$ = args[0],\n dependencies = _args$ === void 0 ? [] : _args$,\n _args$2 = args[1],\n _form = _args$2 === void 0 ? {} : _args$2;\n var options = isFormInstance(_form) ? {\n form: _form\n } : _form;\n var form = options.form;\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n var valueStr = useMemo(function () {\n return stringify(value);\n }, [value]);\n var valueStrRef = useRef(valueStr);\n valueStrRef.current = valueStr;\n var fieldContext = useContext(FieldContext);\n var formInstance = form || fieldContext;\n var isValidForm = formInstance && formInstance._init;\n // Warning if not exist form instance\n if (process.env.NODE_ENV !== 'production') {\n warning(args.length === 2 ? form ? isValidForm : true : isValidForm, 'useWatch requires a form instance since it can not auto detect from context.');\n }\n var namePath = getNamePath(dependencies);\n var namePathRef = useRef(namePath);\n namePathRef.current = namePath;\n useWatchWarning(namePath);\n useEffect(function () {\n // Skip if not exist form instance\n if (!isValidForm) {\n return;\n }\n var getFieldsValue = formInstance.getFieldsValue,\n getInternalHooks = formInstance.getInternalHooks;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n registerWatch = _getInternalHooks.registerWatch;\n var cancelRegister = registerWatch(function (values, allValues) {\n var newValue = getValue(options.preserve ? allValues : values, namePathRef.current);\n var nextValueStr = stringify(newValue);\n // Compare stringify in case it's nest object\n if (valueStrRef.current !== nextValueStr) {\n valueStrRef.current = nextValueStr;\n setValue(newValue);\n }\n });\n // TODO: We can improve this perf in future\n var initialValue = getValue(options.preserve ? getFieldsValue(true) : getFieldsValue(), namePathRef.current);\n setValue(initialValue);\n return cancelRegister;\n },\n // We do not need re-register since namePath content is the same\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isValidForm]);\n return value;\n}\nexport default useWatch;","import * as React from 'react';\nimport Field from './Field';\nimport List from './List';\nimport useForm from './useForm';\nimport FieldForm from './Form';\nimport { FormProvider } from './FormContext';\nimport FieldContext from './FieldContext';\nimport ListContext from './ListContext';\nimport useWatch from './useWatch';\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nRefForm.useWatch = useWatch;\nexport { Field, List, useForm, FormProvider, FieldContext, ListContext, useWatch };\nexport default RefForm;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"valueType\", \"customLightMode\", \"lightFilterLabelFormatter\", \"valuePropName\", \"ignoreWidth\", \"defaultProps\"],\n _excluded2 = [\"label\", \"tooltip\", \"placeholder\", \"width\", \"bordered\", \"messageVariables\", \"ignoreFormItem\", \"transform\", \"convertValue\", \"readonly\", \"allowClear\", \"colSize\", \"getFormItemProps\", \"getFieldProps\", \"filedConfig\", \"cacheForSwr\", \"proFieldProps\"];\nimport { isDeepEqualReact, omitUndefined, pickProFormItemProps, stringify, usePrevious } from '@ant-design/pro-utils';\nimport classnames from 'classnames';\nimport { FieldContext as RcFieldContext } from 'rc-field-form';\nimport { noteOnce } from \"rc-util/es/warning\";\nimport React, { useCallback, useContext, useMemo, useState } from 'react';\nimport { ProFormDependency, ProFormItem } from \"../components\";\nimport FieldContext from \"../FieldContext\";\nimport { useGridHelpers } from \"../helpers\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var TYPE = Symbol('ProFormComponent');\nvar WIDTH_SIZE_ENUM = {\n // 适用于短数字,短文本或者选项\n xs: 104,\n s: 216,\n // 适用于较短字段录入、如姓名、电话、ID 等。\n sm: 216,\n m: 328,\n // 标准宽度,适用于大部分字段长度。\n md: 328,\n l: 440,\n // 适用于较长字段录入,如长网址、标签组、文件路径等。\n lg: 440,\n // 适用于长文本录入,如长链接、描述、备注等,通常搭配自适应多行输入框或定高文本域使用。\n xl: 552\n};\nvar ignoreWidthValueType = ['switch', 'radioButton', 'radio', 'rate'];\n\n/**\n * 处理fieldProps和formItemProps为function时传进来的方法\n * 目前只在SchemaForm时可能会有\n */\n\n/**\n * 这个方法的主要作用的帮助 Field 增加 FormItem 同时也会处理 lightFilter\n *\n * @param Field\n * @param config\n */\nfunction createField(Field, config) {\n // 标记是否是 ProForm 的组件\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n Field.displayName = 'ProFormComponent';\n var FieldWithContext = function FieldWithContext(props) {\n var _ref = _objectSpread(_objectSpread({}, props === null || props === void 0 ? void 0 : props.filedConfig), config) || {},\n tmpValueType = _ref.valueType,\n customLightMode = _ref.customLightMode,\n lightFilterLabelFormatter = _ref.lightFilterLabelFormatter,\n _ref$valuePropName = _ref.valuePropName,\n valuePropName = _ref$valuePropName === void 0 ? 'value' : _ref$valuePropName,\n ignoreWidth = _ref.ignoreWidth,\n defaultProps = _ref.defaultProps,\n defaultFormItemProps = _objectWithoutProperties(_ref, _excluded);\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n label = _defaultProps$props.label,\n tooltip = _defaultProps$props.tooltip,\n placeholder = _defaultProps$props.placeholder,\n width = _defaultProps$props.width,\n bordered = _defaultProps$props.bordered,\n messageVariables = _defaultProps$props.messageVariables,\n ignoreFormItem = _defaultProps$props.ignoreFormItem,\n transform = _defaultProps$props.transform,\n convertValue = _defaultProps$props.convertValue,\n readonly = _defaultProps$props.readonly,\n allowClear = _defaultProps$props.allowClear,\n colSize = _defaultProps$props.colSize,\n getFormItemProps = _defaultProps$props.getFormItemProps,\n getFieldProps = _defaultProps$props.getFieldProps,\n filedConfig = _defaultProps$props.filedConfig,\n cacheForSwr = _defaultProps$props.cacheForSwr,\n proFieldProps = _defaultProps$props.proFieldProps,\n rest = _objectWithoutProperties(_defaultProps$props, _excluded2);\n var valueType = tmpValueType || rest.valueType;\n\n // 有些 valueType 不需要宽度\n var isIgnoreWidth = useMemo(function () {\n return ignoreWidth || ignoreWidthValueType.includes(valueType);\n }, [ignoreWidth, valueType]);\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n\n // onChange触发fieldProps,formItemProps重新执行\n var _useState3 = useState(),\n _useState4 = _slicedToArray(_useState3, 2),\n onlyChange = _useState4[0],\n forceUpdateByOnChange = _useState4[1];\n\n /**\n * 从 context 中拿到的值\n */\n var contextValue = React.useContext(FieldContext);\n\n /**\n * dependenciesValues change to trigger re-execute of getFieldProps and getFormItemProps\n */\n var changedProps = useMemo(function () {\n return {\n formItemProps: getFormItemProps === null || getFormItemProps === void 0 ? void 0 : getFormItemProps(),\n fieldProps: getFieldProps === null || getFieldProps === void 0 ? void 0 : getFieldProps()\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [getFieldProps, getFormItemProps, rest.dependenciesValues, onlyChange]);\n var fieldProps = useMemo(function () {\n var newFieldProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, ignoreFormItem ? omitUndefined({\n value: rest.value\n }) : {}), {}, {\n placeholder: placeholder,\n disabled: props.disabled\n }, contextValue.fieldProps), changedProps.fieldProps), rest.fieldProps);\n newFieldProps.style = omitUndefined(newFieldProps === null || newFieldProps === void 0 ? void 0 : newFieldProps.style);\n return newFieldProps;\n }, [ignoreFormItem, rest.value, rest.fieldProps, placeholder, props.disabled, contextValue.fieldProps, changedProps.fieldProps]);\n\n // restFormItemProps is user props pass to Form.Item\n var restFormItemProps = pickProFormItemProps(rest);\n var formItemProps = useMemo(function () {\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, contextValue.formItemProps), restFormItemProps), changedProps.formItemProps), rest.formItemProps);\n }, [changedProps.formItemProps, contextValue.formItemProps, rest.formItemProps, restFormItemProps]);\n var otherProps = useMemo(function () {\n return _objectSpread(_objectSpread({\n messageVariables: messageVariables\n }, defaultFormItemProps), formItemProps);\n }, [defaultFormItemProps, formItemProps, messageVariables]);\n noteOnce(\n // eslint-disable-next-line @typescript-eslint/dot-notation\n !rest['defaultValue'], '请不要在 Form 中使用 defaultXXX。如果需要默认值请使用 initialValues 和 initialValue。');\n var _useContext = useContext(RcFieldContext),\n prefixName = _useContext.prefixName;\n var proFieldKey = useMemo(function () {\n var _contextValue$formKey;\n var name = otherProps === null || otherProps === void 0 ? void 0 : otherProps.name;\n if (Array.isArray(name)) name = name.join('_');\n if (Array.isArray(prefixName) && name) name = \"\".concat(prefixName.join('.'), \".\").concat(name);\n var key = name && \"form-\".concat((_contextValue$formKey = contextValue.formKey) !== null && _contextValue$formKey !== void 0 ? _contextValue$formKey : '', \"-field-\").concat(name);\n return key;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stringify(otherProps === null || otherProps === void 0 ? void 0 : otherProps.name), prefixName, contextValue.formKey]);\n var prefRest = usePrevious(rest);\n var onChange = useCallback(function () {\n var _fieldProps$onChange;\n if (getFormItemProps || getFieldProps) {\n forceUpdateByOnChange([]);\n } else if (rest.renderFormItem) {\n forceUpdate([]);\n }\n for (var _len = arguments.length, restParams = new Array(_len), _key = 0; _key < _len; _key++) {\n restParams[_key] = arguments[_key];\n }\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onChange = fieldProps.onChange) === null || _fieldProps$onChange === void 0 ? void 0 : _fieldProps$onChange.call.apply(_fieldProps$onChange, [fieldProps].concat(restParams));\n }, [getFieldProps, getFormItemProps, fieldProps, rest.renderFormItem]);\n var style = useMemo(function () {\n var newStyle = _objectSpread({\n width: width && !WIDTH_SIZE_ENUM[width] ? width : contextValue.grid ? '100%' : undefined\n }, fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.style);\n if (isIgnoreWidth) Reflect.deleteProperty(newStyle, 'width');\n return omitUndefined(newStyle);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stringify(fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.style), contextValue.grid, isIgnoreWidth, width]);\n var className = useMemo(function () {\n var isSizeEnum = width && WIDTH_SIZE_ENUM[width];\n return classnames(fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.className, _defineProperty({\n 'pro-field': isSizeEnum\n }, \"pro-field-\".concat(width), isSizeEnum && !isIgnoreWidth)) || undefined;\n }, [width, fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.className, isIgnoreWidth]);\n var fieldProFieldProps = useMemo(function () {\n return omitUndefined(_objectSpread(_objectSpread({}, contextValue.proFieldProps), {}, {\n mode: rest === null || rest === void 0 ? void 0 : rest.mode,\n readonly: readonly,\n params: rest.params,\n proFieldKey: proFieldKey,\n cacheForSwr: cacheForSwr\n }, proFieldProps));\n }, [contextValue.proFieldProps, rest === null || rest === void 0 ? void 0 : rest.mode, rest.params, readonly, proFieldKey, cacheForSwr, proFieldProps]);\n var fieldFieldProps = useMemo(function () {\n return _objectSpread(_objectSpread({\n onChange: onChange,\n allowClear: allowClear\n }, fieldProps), {}, {\n style: style,\n className: className\n });\n }, [allowClear, className, onChange, fieldProps, style]);\n var field = useMemo(function () {\n return /*#__PURE__*/_jsx(Field\n // @ts-ignore\n , _objectSpread(_objectSpread({}, rest), {}, {\n fieldProps: fieldFieldProps,\n proFieldProps: fieldProFieldProps,\n ref: props === null || props === void 0 ? void 0 : props.fieldRef\n }), props.proFormFieldKey || props.name);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fieldProFieldProps, fieldFieldProps,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n isDeepEqualReact(prefRest, rest, ['onChange', 'onBlur', 'onFocus', 'record']) ? undefined : {}]);\n\n // 使用useMemo包裹避免不必要的re-render\n var formItem = useMemo(function () {\n var _otherProps$name, _field$props$allowCle, _field$props, _field$props2;\n return /*#__PURE__*/_jsx(ProFormItem\n // 全局的提供一个 tip 功能,可以减少代码量\n // 轻量模式下不通过 FormItem 显示 label\n , _objectSpread(_objectSpread({\n label: label && (proFieldProps === null || proFieldProps === void 0 ? void 0 : proFieldProps.light) !== true ? label : undefined,\n tooltip: (proFieldProps === null || proFieldProps === void 0 ? void 0 : proFieldProps.light) !== true && tooltip,\n valuePropName: valuePropName\n // @ts-ignore\n }, otherProps), {}, {\n ignoreFormItem: ignoreFormItem,\n transform: transform,\n dataFormat: fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.format,\n valueType: valueType,\n messageVariables: _objectSpread({\n label: label || ''\n }, otherProps === null || otherProps === void 0 ? void 0 : otherProps.messageVariables),\n convertValue: convertValue,\n lightProps: omitUndefined(_objectSpread(_objectSpread(_objectSpread({}, fieldProps), {}, {\n valueType: valueType,\n bordered: bordered,\n allowClear: (_field$props$allowCle = field === null || field === void 0 ? void 0 : (_field$props = field.props) === null || _field$props === void 0 ? void 0 : _field$props.allowClear) !== null && _field$props$allowCle !== void 0 ? _field$props$allowCle : allowClear,\n light: proFieldProps === null || proFieldProps === void 0 ? void 0 : proFieldProps.light,\n label: label,\n customLightMode: customLightMode,\n labelFormatter: lightFilterLabelFormatter,\n valuePropName: valuePropName,\n footerRender: field === null || field === void 0 ? void 0 : (_field$props2 = field.props) === null || _field$props2 === void 0 ? void 0 : _field$props2.footerRender\n }, rest.lightProps), otherProps.lightProps)),\n children: field\n }), props.proFormFieldKey || ((_otherProps$name = otherProps.name) === null || _otherProps$name === void 0 ? void 0 : _otherProps$name.toString()));\n }, [label, proFieldProps === null || proFieldProps === void 0 ? void 0 : proFieldProps.light, tooltip, valuePropName, props.proFormFieldKey, otherProps, ignoreFormItem, transform, fieldProps, valueType, convertValue, bordered, field, allowClear, customLightMode, lightFilterLabelFormatter, rest.lightProps]);\n var _useGridHelpers = useGridHelpers(rest),\n ColWrapper = _useGridHelpers.ColWrapper;\n return /*#__PURE__*/_jsx(ColWrapper, {\n children: formItem\n });\n };\n var DependencyWrapper = function DependencyWrapper(props) {\n var dependencies = props.dependencies;\n return dependencies ? /*#__PURE__*/_jsx(ProFormDependency, {\n name: dependencies,\n originDependencies: props === null || props === void 0 ? void 0 : props.originDependencies,\n children: function children(values) {\n return /*#__PURE__*/_jsx(FieldWithContext, _objectSpread({\n dependenciesValues: values,\n dependencies: dependencies\n }, props));\n }\n }) : /*#__PURE__*/_jsx(FieldWithContext, _objectSpread({\n dependencies: dependencies\n }, props));\n };\n return DependencyWrapper;\n}\nexport { createField };","import React from 'react';\nvar FieldContext = /*#__PURE__*/React.createContext({});\nexport { FieldContext };\nexport default FieldContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"originDependencies\", \"children\", \"ignoreFormListField\"];\nimport { isDeepEqualReact, merge, ProFormContext } from '@ant-design/pro-utils';\nimport { Form } from 'antd';\nimport get from \"rc-util/es/utils/get\";\nimport set from \"rc-util/es/utils/set\";\nimport { useContext, useMemo } from 'react';\nimport { FormListContext } from \"../List\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar ProFormDependency = function ProFormDependency(_ref) {\n var nameList = _ref.name,\n _ref$originDependenci = _ref.originDependencies,\n originDependencies = _ref$originDependenci === void 0 ? nameList : _ref$originDependenci,\n _children = _ref.children,\n ignoreFormListField = _ref.ignoreFormListField,\n rest = _objectWithoutProperties(_ref, _excluded);\n var context = useContext(ProFormContext);\n // ProFromList 的 field,里面有name和key\n var formListField = useContext(FormListContext);\n\n // flatten each name into an (string | number)[]\n var flattenNames = useMemo(function () {\n return nameList.map(function (itemName) {\n var _formListField$listNa;\n var name = [itemName];\n\n // ignoreFormListField为 true 或 formListField.name === undefined 时\n // 应从全局取值,要将 names 中各项的路径前缀(formListField.listName)忽略\n if (!ignoreFormListField && formListField.name !== undefined && (_formListField$listNa = formListField.listName) !== null && _formListField$listNa !== void 0 && _formListField$listNa.length) {\n name.unshift(formListField.listName);\n }\n return name.flat(1);\n });\n }, [formListField.listName, formListField.name, ignoreFormListField, nameList === null || nameList === void 0 ? void 0 : nameList.toString()]);\n return /*#__PURE__*/_jsx(Form.Item, _objectSpread(_objectSpread({}, rest), {}, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues, info) {\n if (typeof rest.shouldUpdate === 'boolean') {\n return rest.shouldUpdate;\n } else if (typeof rest.shouldUpdate === 'function') {\n var _rest$shouldUpdate;\n return (_rest$shouldUpdate = rest.shouldUpdate) === null || _rest$shouldUpdate === void 0 ? void 0 : _rest$shouldUpdate.call(rest, prevValues, nextValues, info);\n }\n return flattenNames.some(function (name) {\n return !isDeepEqualReact(get(prevValues, name), get(nextValues, name));\n });\n },\n children: function children(form) {\n var values = {};\n for (var i = 0; i < nameList.length; i++) {\n var _context$getFieldForm;\n var itemName = flattenNames[i],\n itemOriginName = originDependencies[i];\n var finalName = [itemOriginName].flat(1);\n var value = (_context$getFieldForm = context.getFieldFormatValueObject) === null || _context$getFieldForm === void 0 ? void 0 : _context$getFieldForm.call(context, itemName);\n if (value && Object.keys(value).length) {\n // transform 会生成多余的value,这里需要注入一下\n values = merge({}, values, value);\n if (get(value, itemName)) {\n values = set(values, finalName, get(value, itemName), false);\n }\n } else {\n var _form$getFieldValue;\n value = (_form$getFieldValue = form.getFieldValue) === null || _form$getFieldValue === void 0 ? void 0 : _form$getFieldValue.call(form, itemName);\n if (typeof value !== 'undefined') {\n values = set(values, finalName, value, false);\n }\n }\n }\n return _children === null || _children === void 0 ? void 0 : _children(values, _objectSpread(_objectSpread({}, form), context));\n }\n }));\n};\nexport default ProFormDependency;","var proFieldProps = \"valueType request plain renderFormItem render text formItemProps valueEnum\";\nvar proFormProps = \"fieldProps isDefaultDom groupProps contentRender submitterProps submitter\";\nexport function pickProProps(props) {\n var propList = \"\".concat(proFieldProps, \" \").concat(proFormProps).split(/[\\s\\n]+/);\n var attrs = {};\n Object.keys(props || {}).forEach(function (key) {\n if (propList.includes(key)) {\n return;\n }\n attrs[key] = props[key];\n });\n return attrs;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"radioType\", \"renderFormItem\", \"mode\", \"render\", \"label\", \"light\"];\nimport { LoadingOutlined } from '@ant-design/icons';\nimport { useIntl } from '@ant-design/pro-provider';\nimport { FieldLabel } from '@ant-design/pro-utils';\nimport { Cascader, ConfigProvider } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { ObjToMap, proFieldParsingText, useFieldFetchData } from \"../Select\";\n\n// 兼容代码-----------\nimport \"antd/es/cascader/style\";\n//----------------------\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * 级联选择组件\n *\n * @param param0\n * @param ref\n */\nvar FieldCascader = function FieldCascader(_ref, ref) {\n var _rest$fieldProps2;\n var radioType = _ref.radioType,\n renderFormItem = _ref.renderFormItem,\n mode = _ref.mode,\n render = _ref.render,\n label = _ref.label,\n light = _ref.light,\n rest = _objectWithoutProperties(_ref, _excluded);\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var layoutClassName = getPrefixCls('pro-field-cascader');\n var _useFieldFetchData = useFieldFetchData(rest),\n _useFieldFetchData2 = _slicedToArray(_useFieldFetchData, 3),\n loading = _useFieldFetchData2[0],\n options = _useFieldFetchData2[1],\n _fetchData = _useFieldFetchData2[2];\n var intl = useIntl();\n var cascaderRef = useRef();\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n useImperativeHandle(ref, function () {\n return _objectSpread(_objectSpread({}, cascaderRef.current || {}), {}, {\n fetchData: function fetchData(keyWord) {\n return _fetchData(keyWord);\n }\n });\n }, [_fetchData]);\n var optionsValueEnum = useMemo(function () {\n var _rest$fieldProps;\n if (mode !== 'read') return;\n /**\n * Support cascader fieldNames\n *\n * @see https://ant.design/components/cascader-cn/#header\n */\n var _ref2 = ((_rest$fieldProps = rest.fieldProps) === null || _rest$fieldProps === void 0 ? void 0 : _rest$fieldProps.fieldNames) || {},\n _ref2$value = _ref2.value,\n valuePropsName = _ref2$value === void 0 ? 'value' : _ref2$value,\n _ref2$label = _ref2.label,\n labelPropsName = _ref2$label === void 0 ? 'label' : _ref2$label,\n _ref2$children = _ref2.children,\n childrenPropsName = _ref2$children === void 0 ? 'children' : _ref2$children;\n var valuesMap = new Map();\n var traverseOptions = function traverseOptions(_options) {\n if (!(_options !== null && _options !== void 0 && _options.length)) {\n return valuesMap;\n }\n var length = _options.length;\n var i = 0;\n while (i < length) {\n var cur = _options[i++];\n valuesMap.set(cur[valuePropsName], cur[labelPropsName]);\n traverseOptions(cur[childrenPropsName]);\n }\n return valuesMap;\n };\n return traverseOptions(options);\n }, [mode, options, (_rest$fieldProps2 = rest.fieldProps) === null || _rest$fieldProps2 === void 0 ? void 0 : _rest$fieldProps2.fieldNames]);\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(_Fragment, {\n children: proFieldParsingText(rest.text, ObjToMap(rest.valueEnum || optionsValueEnum))\n });\n if (render) {\n var _render;\n return (_render = render(rest.text, _objectSpread({\n mode: mode\n }, rest.fieldProps), dom)) !== null && _render !== void 0 ? _render : null;\n }\n return dom;\n }\n if (mode === 'edit') {\n var _rest$fieldProps3, _rest$fieldProps5;\n var _dom = /*#__PURE__*/_jsx(Cascader, _objectSpread(_objectSpread({\n bordered: !light,\n ref: cascaderRef,\n open: open,\n suffixIcon: loading ? /*#__PURE__*/_jsx(LoadingOutlined, {}) : undefined,\n placeholder: intl.getMessage('tableForm.selectPlaceholder', '请选择'),\n allowClear: ((_rest$fieldProps3 = rest.fieldProps) === null || _rest$fieldProps3 === void 0 ? void 0 : _rest$fieldProps3.allowClear) !== false\n }, rest.fieldProps), {}, {\n onDropdownVisibleChange: function onDropdownVisibleChange(isOpen) {\n var _rest$fieldProps4, _rest$fieldProps4$onD;\n rest === null || rest === void 0 ? void 0 : (_rest$fieldProps4 = rest.fieldProps) === null || _rest$fieldProps4 === void 0 ? void 0 : (_rest$fieldProps4$onD = _rest$fieldProps4.onDropdownVisibleChange) === null || _rest$fieldProps4$onD === void 0 ? void 0 : _rest$fieldProps4$onD.call(_rest$fieldProps4, isOpen);\n setOpen(isOpen);\n },\n className: classNames((_rest$fieldProps5 = rest.fieldProps) === null || _rest$fieldProps5 === void 0 ? void 0 : _rest$fieldProps5.className, layoutClassName),\n options: options\n }));\n if (renderFormItem) {\n var _renderFormItem;\n _dom = (_renderFormItem = renderFormItem(rest.text, _objectSpread(_objectSpread({\n mode: mode\n }, rest.fieldProps), {}, {\n options: options,\n loading: loading\n }), _dom)) !== null && _renderFormItem !== void 0 ? _renderFormItem : null;\n }\n if (light) {\n var _rest$fieldProps6 = rest.fieldProps,\n disabled = _rest$fieldProps6.disabled,\n value = _rest$fieldProps6.value;\n var notEmpty = !!value && (value === null || value === void 0 ? void 0 : value.length) !== 0;\n return /*#__PURE__*/_jsx(FieldLabel, {\n label: label,\n disabled: disabled,\n bordered: rest.bordered,\n value: notEmpty || open ? _dom : null,\n style: notEmpty ? {\n paddingInlineEnd: 0\n } : undefined,\n allowClear: false,\n downIcon: notEmpty || open ? false : undefined,\n onClick: function onClick() {\n var _rest$fieldProps7, _rest$fieldProps7$onD;\n setOpen(true);\n rest === null || rest === void 0 ? void 0 : (_rest$fieldProps7 = rest.fieldProps) === null || _rest$fieldProps7 === void 0 ? void 0 : (_rest$fieldProps7$onD = _rest$fieldProps7.onDropdownVisibleChange) === null || _rest$fieldProps7$onD === void 0 ? void 0 : _rest$fieldProps7$onD.call(_rest$fieldProps7, true);\n }\n });\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldCascader);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"layout\", \"renderFormItem\", \"mode\", \"render\"];\nimport { useStyle } from '@ant-design/pro-utils';\nimport { Checkbox, ConfigProvider, Form, Spin } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext, useImperativeHandle, useRef } from 'react';\nimport { ObjToMap, proFieldParsingText, useFieldFetchData } from \"../Select\";\n// 兼容代码-----------\nimport { useToken } from '@ant-design/pro-provider';\nimport \"antd/es/checkbox/style\";\n//----------------------\n/**\n * 多选组件\n *\n * @param param0\n * @param ref\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nvar FieldCheckbox = function FieldCheckbox(_ref, ref) {\n var _Form$Item, _Form$Item$useStatus;\n var _ref$layout = _ref.layout,\n layout = _ref$layout === void 0 ? 'horizontal' : _ref$layout,\n renderFormItem = _ref.renderFormItem,\n mode = _ref.mode,\n render = _ref.render,\n rest = _objectWithoutProperties(_ref, _excluded);\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var layoutClassName = getPrefixCls('pro-field-checkbox');\n var status = (_Form$Item = Form.Item) === null || _Form$Item === void 0 ? void 0 : (_Form$Item$useStatus = _Form$Item.useStatus) === null || _Form$Item$useStatus === void 0 ? void 0 : _Form$Item$useStatus.call(_Form$Item);\n var _useFieldFetchData = useFieldFetchData(rest),\n _useFieldFetchData2 = _slicedToArray(_useFieldFetchData, 3),\n loading = _useFieldFetchData2[0],\n options = _useFieldFetchData2[1],\n _fetchData = _useFieldFetchData2[2];\n\n // css\n var _useStyle = useStyle('Checkbox', function (token) {\n var _vertical;\n return _defineProperty({}, \".\".concat(layoutClassName), {\n '&-error': {\n span: {\n color: token.colorError\n }\n },\n '&-warning': {\n span: {\n color: token.colorWarning\n }\n },\n '&-vertical': (_vertical = {}, _defineProperty(_vertical, \"&\".concat(token.antCls, \"-checkbox-group\"), {\n display: 'inline-block'\n }), _defineProperty(_vertical, \"\".concat(token.antCls, \"-checkbox-wrapper+\").concat(token.antCls, \"-checkbox-wrapper\"), {\n 'margin-inline-start': '0 !important'\n }), _defineProperty(_vertical, \"\".concat(token.antCls, \"-checkbox-group-item\"), {\n display: 'flex',\n marginInlineEnd: 0\n }), _vertical)\n });\n }),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var _useToken = useToken === null || useToken === void 0 ? void 0 : useToken(),\n token = _useToken.token;\n var checkBoxRef = useRef();\n useImperativeHandle(ref, function () {\n return _objectSpread(_objectSpread({}, checkBoxRef.current || {}), {}, {\n fetchData: function fetchData(keyWord) {\n return _fetchData(keyWord);\n }\n });\n }, [_fetchData]);\n if (loading) {\n return /*#__PURE__*/_jsx(Spin, {\n size: \"small\"\n });\n }\n if (mode === 'read') {\n var optionsValueEnum = options !== null && options !== void 0 && options.length ? options === null || options === void 0 ? void 0 : options.reduce(function (pre, cur) {\n var _ref3;\n return _objectSpread(_objectSpread({}, pre), {}, _defineProperty({}, (_ref3 = cur.value) !== null && _ref3 !== void 0 ? _ref3 : '', cur.label));\n }, {}) : undefined;\n var dom = proFieldParsingText(rest.text, ObjToMap(rest.valueEnum || optionsValueEnum));\n if (render) {\n var _render;\n return (_render = render(rest.text, _objectSpread({\n mode: mode\n }, rest.fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n }))) !== null && _render !== void 0 ? _render : null;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n style: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: token.marginSM\n },\n children: dom\n });\n }\n if (mode === 'edit') {\n var _rest$fieldProps, _classNames;\n var _dom = wrapSSR( /*#__PURE__*/_jsx(Checkbox.Group, _objectSpread(_objectSpread({}, rest.fieldProps), {}, {\n className: classNames((_rest$fieldProps = rest.fieldProps) === null || _rest$fieldProps === void 0 ? void 0 : _rest$fieldProps.className, hashId, \"\".concat(layoutClassName, \"-\").concat(layout), (_classNames = {}, _defineProperty(_classNames, \"\".concat(layoutClassName, \"-error\"), (status === null || status === void 0 ? void 0 : status.status) === 'error'), _defineProperty(_classNames, \"\".concat(layoutClassName, \"-warning\"), (status === null || status === void 0 ? void 0 : status.status) === 'warning'), _classNames)),\n options: options\n })));\n if (renderFormItem) {\n var _renderFormItem;\n return (_renderFormItem = renderFormItem(rest.text, _objectSpread(_objectSpread({\n mode: mode\n }, rest.fieldProps), {}, {\n options: options,\n loading: loading\n }), _dom)) !== null && _renderFormItem !== void 0 ? _renderFormItem : null;\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldCheckbox);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { Input } from 'antd';\nimport React from 'react';\n// 兼容代码-----------\nimport { proTheme } from '@ant-design/pro-provider';\nimport \"antd/es/input/style\";\n//----------------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar languageFormat = function languageFormat(text, language) {\n if (typeof text !== 'string') {\n return text;\n }\n try {\n if (language === 'json') {\n return JSON.stringify(JSON.parse(text), null, 2);\n }\n } catch (error) {\n // console.log(error)\n }\n return text;\n};\n\n/**\n * 代码片段组件 这个组件为了显示简单的配置,复杂的请使用更加重型的组件\n *\n * @param\n */\nvar FieldCode = function FieldCode(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n _ref$language = _ref.language,\n language = _ref$language === void 0 ? 'text' : _ref$language,\n renderFormItem = _ref.renderFormItem,\n plain = _ref.plain,\n fieldProps = _ref.fieldProps;\n var code = languageFormat(text, language);\n var _proTheme$useToken = proTheme.useToken(),\n token = _proTheme$useToken.token;\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(\"pre\", _objectSpread(_objectSpread({\n ref: ref\n }, fieldProps), {}, {\n style: _objectSpread({\n padding: 16,\n overflow: 'auto',\n fontSize: '85%',\n lineHeight: 1.45,\n color: token.colorTextSecondary,\n fontFamily: token.fontFamilyCode,\n backgroundColor: 'rgba(150, 150, 150, 0.1)',\n borderRadius: 3,\n width: 'min-content'\n }, fieldProps.style),\n children: /*#__PURE__*/_jsx(\"code\", {\n children: code\n })\n }));\n if (render) {\n return render(code, _objectSpread(_objectSpread({\n mode: mode\n }, fieldProps), {}, {\n ref: ref\n }), dom);\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n fieldProps.value = code;\n var _dom = /*#__PURE__*/_jsx(Input.TextArea, _objectSpread(_objectSpread({\n rows: 5\n }, fieldProps), {}, {\n ref: ref\n }));\n if (plain) {\n _dom = /*#__PURE__*/_jsx(Input, _objectSpread(_objectSpread({}, fieldProps), {}, {\n ref: ref\n }));\n }\n if (renderFormItem) {\n var _renderFormItem;\n return (_renderFormItem = renderFormItem(code, _objectSpread(_objectSpread({\n mode: mode\n }, fieldProps), {}, {\n ref: ref\n }), _dom)) !== null && _renderFormItem !== void 0 ? _renderFormItem : null;\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldCode);","export var calculateChange = function calculateChange(e, hsl, direction, initialA, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n if (direction === 'vertical') {\n var a;\n if (top < 0) {\n a = 0;\n } else if (top > containerHeight) {\n a = 1;\n } else {\n a = Math.round(top * 100 / containerHeight) / 100;\n }\n if (hsl.a !== a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: a,\n source: 'rgb'\n };\n }\n } else {\n var _a;\n if (left < 0) {\n _a = 0;\n } else if (left > containerWidth) {\n _a = 1;\n } else {\n _a = Math.round(left * 100 / containerWidth) / 100;\n }\n if (initialA !== _a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: _a,\n source: 'rgb'\n };\n }\n }\n return null;\n};","var checkboardCache = {};\nexport var render = function render(c1, c2, size, serverCanvas) {\n if (typeof document === 'undefined' && !serverCanvas) {\n return null;\n }\n var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas');\n canvas.width = size * 2;\n canvas.height = size * 2;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n } // If no context can be found, return early.\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n};\nexport var get = function get(c1, c2, size, serverCanvas) {\n var key = \"\".concat(c1, \"-\").concat(c2, \"-\").concat(size).concat(serverCanvas ? '-server' : '');\n if (checkboardCache[key]) {\n return checkboardCache[key];\n }\n var checkboard = render(c1, c2, size, serverCanvas);\n checkboardCache[key] = checkboard;\n return checkboard;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { isValidElement } from 'react';\nimport reactCSS from 'reactcss';\nimport * as checkboard from '../../helpers/checkboard';\nexport var Checkboard = function Checkboard(_ref) {\n var white = _ref.white,\n grey = _ref.grey,\n size = _ref.size,\n renderers = _ref.renderers,\n borderRadius = _ref.borderRadius,\n boxShadow = _ref.boxShadow,\n children = _ref.children;\n var styles = reactCSS({\n default: {\n grid: {\n borderRadius: borderRadius,\n boxShadow: boxShadow,\n absolute: '0px 0px 0px 0px',\n background: \"url(\".concat(checkboard.get(white, grey, size, renderers.canvas), \") center left\")\n }\n }\n });\n return /*#__PURE__*/isValidElement(children) ? /*#__PURE__*/React.cloneElement(children, _objectSpread(_objectSpread({}, children.props), {}, {\n style: _objectSpread(_objectSpread({}, children.props.style), styles.grid)\n })) : /*#__PURE__*/React.createElement(\"div\", {\n style: styles.grid\n });\n};\nCheckboard.defaultProps = {\n size: 8,\n white: 'transparent',\n grey: 'rgba(0,0,0,.08)',\n renderers: {}\n};\nexport default Checkboard;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as alpha from '../../helpers/alpha';\nimport Checkboard from './Checkboard';\nexport var Alpha = /*#__PURE__*/function (_ref) {\n _inherits(Alpha, _ref);\n var _super = _createSuper(Alpha);\n function Alpha() {\n var _this;\n _classCallCheck(this, Alpha);\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.handleChange = function (e) {\n var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n };\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n };\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleChange);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n };\n return _this;\n }\n _createClass(Alpha, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var rgb = this.props.rgb;\n var styles = reactCSS({\n default: {\n alpha: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n checkboard: {\n absolute: '0px 0px 0px 0px',\n overflow: 'hidden',\n borderRadius: this.props.radius\n },\n gradient: {\n absolute: '0px 0px 0px 0px',\n background: \"linear-gradient(to right, rgba(\".concat(rgb.r, \",\").concat(rgb.g, \",\").concat(rgb.b, \", 0) 0%,\\n rgba(\").concat(rgb.r, \",\").concat(rgb.g, \",\").concat(rgb.b, \", 1) 100%)\"),\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n container: {\n position: 'relative',\n height: '100%',\n margin: '0 3px'\n },\n pointer: {\n position: 'absolute',\n left: \"\".concat(rgb.a * 100, \"%\")\n },\n slider: {\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n marginTop: '1px',\n transform: 'translateX(-2px)'\n }\n },\n vertical: {\n gradient: {\n background: \"linear-gradient(to bottom, rgba(\".concat(rgb.r, \",\").concat(rgb.g, \",\").concat(rgb.b, \", 0) 0%,\\n rgba(\").concat(rgb.r, \",\").concat(rgb.g, \",\").concat(rgb.b, \", 1) 100%)\")\n },\n pointer: {\n left: 0,\n top: \"\".concat(rgb.a * 100, \"%\")\n }\n },\n overwrite: _objectSpread({}, this.props.style)\n }, {\n vertical: this.props.direction === 'vertical',\n overwrite: true\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.alpha\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.checkboard\n }, /*#__PURE__*/React.createElement(Checkboard, {\n renderers: this.props.renderers\n })), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.gradient\n }), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.pointer\n }, this.props.pointer ? /*#__PURE__*/React.createElement(this.props.pointer, this.props) : /*#__PURE__*/React.createElement(\"div\", {\n style: styles.slider\n }))));\n }\n }]);\n return Alpha;\n}(PureComponent || Component);\nexport default Alpha;","export var calculateChange = function calculateChange(e, direction, hsl, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n if (direction === 'vertical') {\n var h;\n if (top < 0) {\n h = 359;\n } else if (top > containerHeight) {\n h = 0;\n } else {\n var percent = -(top * 100 / containerHeight) + 100;\n h = 360 * percent / 100;\n }\n if (hsl.h !== h) {\n return {\n h: h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n } else {\n var _h;\n if (left < 0) {\n _h = 0;\n } else if (left > containerWidth) {\n _h = 359;\n } else {\n var _percent = left * 100 / containerWidth;\n _h = 360 * _percent / 100;\n }\n if (hsl.h !== _h) {\n return {\n h: _h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n }\n return null;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as hue from '../../helpers/hue';\nexport var Hue = /*#__PURE__*/function (_ref) {\n _inherits(Hue, _ref);\n var _super = _createSuper(Hue);\n function Hue() {\n var _this;\n _classCallCheck(this, Hue);\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.handleChange = function (e) {\n var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n };\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n };\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n return _this;\n }\n _createClass(Hue, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: \"unbindEventListeners\",\n value: function unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props$direction = this.props.direction,\n direction = _this$props$direction === void 0 ? 'horizontal' : _this$props$direction;\n var styles = reactCSS({\n default: {\n hue: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius,\n boxShadow: this.props.shadow\n },\n container: {\n padding: '0 2px',\n position: 'relative',\n height: '100%',\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n left: \"\".concat(this.props.hsl.h * 100 / 360, \"%\")\n },\n slider: {\n marginTop: '1px',\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n transform: 'translateX(-2px)'\n }\n },\n vertical: {\n pointer: {\n left: '0px',\n top: \"\".concat(-(this.props.hsl.h * 100 / 360) + 100, \"%\")\n }\n }\n }, {\n vertical: direction === 'vertical'\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.hue\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"hue-\".concat(direction),\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n }, /*#__PURE__*/React.createElement(\"style\", null, \"\\n .hue-horizontal {\\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n\\n .hue-vertical {\\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n \"), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.pointer\n }, this.props.pointer ? /*#__PURE__*/React.createElement(this.props.pointer, this.props) : /*#__PURE__*/React.createElement(\"div\", {\n style: styles.slider\n }))));\n }\n }]);\n return Hue;\n}(PureComponent || Component);\nexport default Hue;","export var calculateChange = function calculateChange(e, hsl, container) {\n var _container$getBoundin = container.getBoundingClientRect(),\n containerWidth = _container$getBoundin.width,\n containerHeight = _container$getBoundin.height;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n if (left < 0) {\n left = 0;\n } else if (left > containerWidth) {\n left = containerWidth;\n }\n if (top < 0) {\n top = 0;\n } else if (top > containerHeight) {\n top = containerHeight;\n }\n var saturation = left / containerWidth;\n var bright = 1 - top / containerHeight;\n return {\n h: hsl.h,\n s: saturation,\n v: bright,\n a: hsl.a,\n source: 'hsv'\n };\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport throttle from 'lodash/throttle';\nimport * as saturation from '../../helpers/saturation';\nexport var Saturation = /*#__PURE__*/function (_ref) {\n _inherits(Saturation, _ref);\n var _super = _createSuper(Saturation);\n function Saturation(props) {\n var _this;\n _classCallCheck(this, Saturation);\n _this = _super.call(this, props);\n _this.handleChange = function (e) {\n typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e);\n };\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n var renderWindow = _this.getContainerRenderWindow();\n renderWindow.addEventListener('mousemove', _this.handleChange);\n renderWindow.addEventListener('mouseup', _this.handleMouseUp);\n };\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n _this.throttle = throttle(function (fn, data, e) {\n fn(data, e);\n }, 50);\n return _this;\n }\n _createClass(Saturation, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.throttle.cancel();\n this.unbindEventListeners();\n }\n }, {\n key: \"getContainerRenderWindow\",\n value: function getContainerRenderWindow() {\n var container = this.container;\n var renderWindow = window;\n while (!renderWindow.document.contains(container) && renderWindow.parent !== renderWindow) {\n renderWindow = renderWindow.parent;\n }\n return renderWindow;\n }\n }, {\n key: \"unbindEventListeners\",\n value: function unbindEventListeners() {\n var renderWindow = this.getContainerRenderWindow();\n renderWindow.removeEventListener('mousemove', this.handleChange);\n renderWindow.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _ref2 = this.props.style || {},\n color = _ref2.color,\n white = _ref2.white,\n black = _ref2.black,\n pointer = _ref2.pointer,\n circle = _ref2.circle;\n var styles = reactCSS({\n default: {\n color: {\n absolute: '0px 0px 0px 0px',\n background: \"hsl(\".concat(this.props.hsl.h, \",100%, 50%)\"),\n borderRadius: this.props.radius\n },\n white: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n black: {\n absolute: '0px 0px 0px 0px',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n top: \"\".concat(-(this.props.hsv.v * 100) + 100, \"%\"),\n left: \"\".concat(this.props.hsv.s * 100, \"%\"),\n cursor: 'default'\n },\n circle: {\n width: '4px',\n height: '4px',\n boxShadow: \"0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\\n 0 0 1px 2px rgba(0,0,0,.4)\",\n borderRadius: '50%',\n cursor: 'hand',\n transform: 'translate(-2px, -2px)'\n }\n },\n custom: {\n color: color,\n white: white,\n black: black,\n pointer: pointer,\n circle: circle\n }\n }, {\n custom: !!this.props.style\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.color,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n }, /*#__PURE__*/React.createElement(\"style\", null, \"\\n .saturation-white {\\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\\n }\\n .saturation-black {\\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\\n }\\n \"), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.white,\n className: \"saturation-white\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.black,\n className: \"saturation-black\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.pointer\n }, this.props.pointer ? /*#__PURE__*/React.createElement(this.props.pointer, this.props) : /*#__PURE__*/React.createElement(\"div\", {\n style: styles.circle\n }))));\n }\n }]);\n return Saturation;\n}(PureComponent || Component);\nexport default Saturation;","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n if (_typeof(color) == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n}\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n};\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\nfunction _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n}\nfunction _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba);\n};\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n};\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\nvar matchers = function () {\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n}();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n return false;\n}\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","import each from 'lodash/each';\nimport tinycolor from 'tinycolor2';\nexport var simpleCheckForValidColor = function simpleCheckForValidColor(data) {\n var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n var checked = 0;\n var passed = 0;\n each(keysToCheck, function (letter) {\n if (data[letter]) {\n checked += 1;\n // @ts-ignore\n if (!isNaN(data[letter])) {\n passed += 1;\n }\n if (letter === 's' || letter === 'l') {\n var percentPatt = /^\\d+%$/;\n if (percentPatt.test(data[letter])) {\n passed += 1;\n }\n }\n }\n });\n return checked === passed ? data : false;\n};\nexport var toState = function toState(data, oldHue) {\n // @ts-ignore\n var color = data.hex ? tinycolor(data.hex) : tinycolor(data);\n var hsl = color.toHsl();\n var hsv = color.toHsv();\n var rgb = color.toRgb();\n var hex = color.toHex();\n if (hsl.s === 0) {\n hsl.h = oldHue || 0;\n hsv.h = oldHue || 0;\n }\n var transparent = hex === '000000' && rgb.a === 0;\n return {\n hsl: hsl,\n hex: transparent ? 'transparent' : \"#\".concat(hex),\n rgb: rgb,\n hsv: hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source\n };\n};\nexport var isValidHex = function isValidHex(hex) {\n if (hex === 'transparent') {\n return true;\n }\n // disable hex4 and hex8\n var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n // @ts-ignore\n return hex.length !== 4 + lh && hex.length < 7 + lh && tinycolor(hex).isValid();\n};\nexport var getContrastingColor = function getContrastingColor(data) {\n if (!data) {\n return '#fff';\n }\n var col = toState(data);\n if (col.hex === 'transparent') {\n return 'rgba(0,0,0,0.4)';\n }\n var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n return yiq >= 128 ? '#000' : '#fff';\n};\nexport var red = {\n hsl: {\n a: 1,\n h: 0,\n l: 0.5,\n s: 1\n },\n hex: '#ff0000',\n rgb: {\n r: 255,\n g: 0,\n b: 0,\n a: 1\n },\n hsv: {\n h: 0,\n s: 1,\n v: 1,\n a: 1\n }\n};\nexport var isvalidColorString = function isvalidColorString(string, type) {\n var stringWithoutDegree = string.replace('°', '');\n // @ts-ignore\n return tinycolor(\"\".concat(type, \" (\").concat(stringWithoutDegree, \")\"))._ok;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { Component, PureComponent } from 'react';\nimport debounce from 'lodash/debounce';\nimport * as color from '../../helpers/color';\nexport var ColorWrap = function ColorWrap(Picker) {\n var ColorPicker = /*#__PURE__*/function (_ref) {\n _inherits(ColorPicker, _ref);\n var _super = _createSuper(ColorPicker);\n function ColorPicker(props) {\n var _this;\n _classCallCheck(this, ColorPicker);\n _this = _super.call(this);\n _this.handleChange = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.setState(colors);\n _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event);\n _this.props.onChange && _this.props.onChange(colors, event);\n }\n };\n _this.handleSwatchHover = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event);\n }\n };\n _this.state = _objectSpread({}, color.toState(props.color, 0));\n _this.debounce = debounce(function (fn, data, event) {\n fn(data, event);\n }, 100);\n return _this;\n }\n _createClass(ColorPicker, [{\n key: \"render\",\n value: function render() {\n var optionalEvents = {};\n if (this.props.onSwatchHover) {\n optionalEvents.onSwatchHover = this.handleSwatchHover;\n }\n return /*#__PURE__*/React.createElement(Picker, _extends({}, this.props, this.state, {\n onChange: this.handleChange\n }, optionalEvents));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, state) {\n return _objectSpread({}, color.toState(nextProps.color, state.oldHue));\n }\n }]);\n return ColorPicker;\n }(PureComponent || Component);\n ColorPicker.propTypes = _objectSpread({}, Picker.propTypes);\n ColorPicker.defaultProps = _objectSpread(_objectSpread({}, Picker.defaultProps), {}, {\n color: {\n h: 250,\n s: 0.5,\n l: 0.2,\n a: 1\n }\n });\n return ColorPicker;\n};\nexport default ColorWrap;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nvar DEFAULT_ARROW_OFFSET = 1;\nvar UP_KEY_CODE = 38;\nvar DOWN_KEY_CODE = 40;\nvar VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE];\nvar isValidKeyCode = function isValidKeyCode(keyCode) {\n return VALID_KEY_CODES.indexOf(keyCode) > -1;\n};\nvar getNumberValue = function getNumberValue(value) {\n return Number(String(value).replace(/%/g, ''));\n};\nvar idCounter = 1;\nexport var EditableInput = /*#__PURE__*/function (_ref) {\n _inherits(EditableInput, _ref);\n var _super = _createSuper(EditableInput);\n function EditableInput(props) {\n var _this;\n _classCallCheck(this, EditableInput);\n _this = _super.call(this);\n _this.handleBlur = function () {\n if (_this.state.blurValue) {\n _this.setState({\n value: _this.state.blurValue,\n blurValue: null\n });\n }\n };\n _this.handleChange = function (e) {\n _this.setUpdatedValue(e.target.value, e);\n };\n _this.handleKeyDown = function (e) {\n // In case `e.target.value` is a percentage remove the `%` character\n // and update accordingly with a percentage\n // https://github.com/casesandberg/react-color/issues/383\n var value = getNumberValue(e.target.value);\n if (!isNaN(value) && isValidKeyCode(e.keyCode)) {\n var offset = _this.getArrowOffset();\n var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset;\n _this.setUpdatedValue(updatedValue, e);\n }\n };\n _this.handleDrag = function (e) {\n if (_this.props.dragLabel) {\n var newValue = Math.round(_this.props.value + e.movementX);\n if (newValue >= 0 && newValue <= _this.props.dragMax) {\n _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e);\n }\n }\n };\n _this.handleMouseDown = function (e) {\n if (_this.props.dragLabel) {\n e.preventDefault();\n _this.handleDrag(e);\n window.addEventListener('mousemove', _this.handleDrag);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }\n };\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleDrag);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n };\n _this.state = {\n value: String(props.value).toUpperCase(),\n blurValue: String(props.value).toUpperCase()\n };\n _this.inputId = \"rc-editable-input-\".concat(idCounter++);\n return _this;\n }\n _createClass(EditableInput, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) {\n if (this.input === document.activeElement) {\n this.setState({\n blurValue: String(this.props.value).toUpperCase()\n });\n } else {\n this.setState({\n value: String(this.props.value).toUpperCase(),\n blurValue: !this.state.blurValue && String(this.props.value).toUpperCase()\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: \"getValueObjectWithLabel\",\n value: function getValueObjectWithLabel(value) {\n return _defineProperty({}, this.props.label, value);\n }\n }, {\n key: \"getArrowOffset\",\n value: function getArrowOffset() {\n return this.props.arrowOffset || DEFAULT_ARROW_OFFSET;\n }\n }, {\n key: \"setUpdatedValue\",\n value: function setUpdatedValue(value, e) {\n var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value;\n this.props.onChange && this.props.onChange(onChangeValue, e);\n this.setState({\n value: value\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var styles = reactCSS({\n 'default': {\n wrap: {\n position: 'relative'\n }\n },\n 'user-override': {\n wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {},\n input: this.props.style && this.props.style.input ? this.props.style.input : {},\n label: this.props.style && this.props.style.label ? this.props.style.label : {}\n },\n 'dragLabel-true': {\n label: {\n cursor: 'ew-resize'\n }\n }\n }, {\n 'user-override': true\n }, this.props);\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.wrap\n }, /*#__PURE__*/React.createElement(\"input\", {\n id: this.inputId,\n style: styles.input,\n ref: function ref(input) {\n return _this2.input = input;\n },\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n placeholder: this.props.placeholder,\n spellCheck: \"false\"\n }), this.props.label && !this.props.hideLabel ? /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: this.inputId,\n style: styles.label,\n onMouseDown: this.handleMouseDown\n }, this.props.label) : null);\n }\n }]);\n return EditableInput;\n}(PureComponent || Component);\nexport default EditableInput;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n/* eslint-disable no-invalid-this */\nimport React from 'react';\nexport var handleFocus = function handleFocus(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n return /*#__PURE__*/function (_React$Component) {\n _inherits(Focus, _React$Component);\n var _super = _createSuper(Focus);\n function Focus() {\n var _this;\n _classCallCheck(this, Focus);\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 focus: false\n };\n _this.handleFocus = function () {\n return _this.setState({\n focus: true\n });\n };\n _this.handleBlur = function () {\n return _this.setState({\n focus: false\n });\n };\n return _this;\n }\n _createClass(Focus, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(Span, {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n }, /*#__PURE__*/React.createElement(Component, _extends({}, this.props, this.state)));\n }\n }]);\n return Focus;\n }(React.Component);\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport { handleFocus } from '../../helpers/interaction';\nimport Checkboard from './Checkboard';\nvar ENTER = 13;\nexport var Swatch = function Swatch(_ref) {\n var color = _ref.color,\n style = _ref.style,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,\n onHover = _ref.onHover,\n _ref$title = _ref.title,\n title = _ref$title === void 0 ? color : _ref$title,\n children = _ref.children,\n focus = _ref.focus,\n _ref$focusStyle = _ref.focusStyle,\n focusStyle = _ref$focusStyle === void 0 ? {} : _ref$focusStyle;\n var transparent = color === 'transparent';\n var styles = reactCSS({\n default: {\n swatch: _objectSpread(_objectSpread({\n background: color,\n height: '100%',\n width: '100%',\n cursor: 'pointer',\n position: 'relative',\n outline: 'none'\n }, style), focus ? focusStyle : {})\n }\n });\n var handleClick = function handleClick(e) {\n return onClick(color, e);\n };\n var handleKeyDown = function handleKeyDown(e) {\n return e.keyCode === ENTER && onClick(color, e);\n };\n var handleHover = function handleHover(e) {\n return onHover(color, e);\n };\n var optionalEvents = {};\n if (onHover) {\n optionalEvents.onMouseOver = handleHover;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n style: styles.swatch,\n onClick: handleClick,\n title: title,\n tabIndex: 0,\n onKeyDown: handleKeyDown\n }, optionalEvents), children, transparent && /*#__PURE__*/React.createElement(Checkboard, {\n borderRadius: styles.swatch.borderRadius,\n boxShadow: \"inset 0 0 0 1px rgba(0,0,0,0.1)\"\n }));\n};\nexport default handleFocus(Swatch);","/* eslint-disable no-param-reassign */\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport { EditableInput } from '../common';\nexport var SketchFields = function SketchFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n disableAlpha = _ref.disableAlpha;\n var styles = reactCSS({\n default: {\n fields: {\n display: 'flex',\n paddingTop: '4px'\n },\n single: {\n flex: '1',\n paddingLeft: '6px'\n },\n alpha: {\n flex: '1',\n paddingLeft: '6px'\n },\n double: {\n flex: '2'\n },\n input: {\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #ccc',\n fontSize: '11px'\n },\n label: {\n display: 'block',\n textAlign: 'center',\n fontSize: '11px',\n color: '#222',\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize'\n }\n },\n disableAlpha: {\n alpha: {\n display: 'none'\n }\n }\n }, {\n disableAlpha: disableAlpha\n });\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && (onChange === null || onChange === void 0 ? void 0 : onChange({\n hex: data.hex,\n source: 'hex'\n }, e));\n } else if (data.r || data.g || data.b) {\n onChange === null || onChange === void 0 ? void 0 : onChange({\n r: data.r || (rgb === null || rgb === void 0 ? void 0 : rgb.r),\n g: data.g || (rgb === null || rgb === void 0 ? void 0 : rgb.g),\n b: data.b || (rgb === null || rgb === void 0 ? void 0 : rgb.b),\n a: rgb === null || rgb === void 0 ? void 0 : rgb.a,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 100) {\n data.a = 100;\n }\n data.a /= 100;\n onChange === null || onChange === void 0 ? void 0 : onChange({\n h: hsl === null || hsl === void 0 ? void 0 : hsl.h,\n s: hsl === null || hsl === void 0 ? void 0 : hsl.s,\n l: hsl === null || hsl === void 0 ? void 0 : hsl.l,\n a: data.a,\n source: 'rgb'\n }, e);\n }\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.fields,\n className: \"flexbox-fix\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.double\n }, /*#__PURE__*/React.createElement(EditableInput, {\n style: {\n input: styles.input,\n label: styles.label\n },\n label: \"hex\",\n value: hex === null || hex === void 0 ? void 0 : hex.replace('#', ''),\n onChange: handleChange\n })), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.single\n }, /*#__PURE__*/React.createElement(EditableInput, {\n style: {\n input: styles.input,\n label: styles.label\n },\n label: \"r\",\n value: rgb === null || rgb === void 0 ? void 0 : rgb.r,\n onChange: handleChange,\n dragLabel: \"true\",\n dragMax: \"255\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.single\n }, /*#__PURE__*/React.createElement(EditableInput, {\n style: {\n input: styles.input,\n label: styles.label\n },\n label: \"g\",\n value: rgb === null || rgb === void 0 ? void 0 : rgb.g,\n onChange: handleChange,\n dragLabel: \"true\",\n dragMax: \"255\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.single\n }, /*#__PURE__*/React.createElement(EditableInput, {\n style: {\n input: styles.input,\n label: styles.label\n },\n label: \"b\",\n value: rgb === null || rgb === void 0 ? void 0 : rgb.b,\n onChange: handleChange,\n dragLabel: \"true\",\n dragMax: \"255\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.alpha\n }, /*#__PURE__*/React.createElement(EditableInput, {\n style: {\n input: styles.input,\n label: styles.label\n },\n label: \"a\",\n value: Math.round(((rgb === null || rgb === void 0 ? void 0 : rgb.a) || 0) * 100),\n onChange: handleChange,\n dragLabel: \"true\",\n dragMax: \"100\"\n })));\n};\nexport default SketchFields;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React from 'react';\nimport { Swatch } from '../common';\nexport var SketchPresetColors = function SketchPresetColors(_ref) {\n var colors = _ref.colors,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover;\n var styles = {\n colors: {\n margin: '0 -10px',\n padding: '10px 0 0 10px',\n borderTop: '1px solid #eee',\n display: 'flex',\n flexWrap: 'wrap',\n position: 'relative'\n },\n swatchWrap: {\n width: '16px',\n height: '16px',\n margin: '0 10px 10px 0'\n },\n swatch: {\n msBorderRadius: '3px',\n MozBorderRadius: '3px',\n OBorderRadius: '3px',\n WebkitBorderRadius: '3px',\n borderRadius: '3px',\n msBoxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)',\n MozBoxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)',\n OBoxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)',\n WebkitBoxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)'\n }\n };\n var handleClick = function handleClick(hex, e) {\n onClick === null || onClick === void 0 ? void 0 : onClick({\n hex: hex,\n source: 'hex'\n }, e);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.colors,\n className: \"flexbox-fix\"\n }, colors === null || colors === void 0 ? void 0 : colors.map(function (colorObjOrString) {\n var c = typeof colorObjOrString === 'string' ? {\n color: colorObjOrString,\n title: undefined\n } : colorObjOrString;\n var key = \"\".concat(c.color).concat((c === null || c === void 0 ? void 0 : c.title) || '');\n return /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n style: styles.swatchWrap\n }, /*#__PURE__*/React.createElement(Swatch, _objectSpread(_objectSpread({}, c), {}, {\n style: styles.swatch,\n onClick: handleClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: \"inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px \".concat(c.color)\n }\n })));\n }));\n};\nexport default SketchPresetColors;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash/merge';\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport SketchFields from './SketchFields';\nimport SketchPresetColors from './SketchPresetColors';\nexport var Sketch = function Sketch(_ref) {\n var width = _ref.width,\n rgb = _ref.rgb,\n hex = _ref.hex,\n hsv = _ref.hsv,\n hsl = _ref.hsl,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n disableAlpha = _ref.disableAlpha,\n presetColors = _ref.presetColors,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === void 0 ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className;\n var styles = reactCSS(\n //@ts-ignore\n merge({\n default: _objectSpread({\n picker: {\n width: width,\n padding: '10px 10px 0',\n boxSizing: 'initial',\n background: '#fff',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)'\n },\n saturation: {\n width: '100%',\n paddingBottom: '75%',\n position: 'relative',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '3px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n controls: {\n display: 'flex'\n },\n sliders: {\n padding: '4px 0',\n flex: '1'\n },\n color: {\n width: '24px',\n height: '24px',\n position: 'relative',\n marginTop: '4px',\n marginLeft: '4px',\n borderRadius: '3px'\n },\n activeColor: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '2px',\n background: \"rgba(\".concat(rgb.r, \",\").concat(rgb.g, \",\").concat(rgb.b, \",\").concat(rgb.a, \")\"),\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n hue: {\n position: 'relative',\n height: '10px',\n overflow: 'hidden'\n },\n Hue: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n alpha: {\n position: 'relative',\n height: '10px',\n marginTop: '4px',\n overflow: 'hidden'\n },\n Alpha: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n }\n }, passedStyles),\n disableAlpha: {\n color: {\n height: '10px'\n },\n hue: {\n height: '10px'\n },\n alpha: {\n display: 'none'\n }\n }\n }, passedStyles), {\n disableAlpha: disableAlpha\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.picker,\n className: \"sketch-picker \".concat(className)\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.saturation\n }, /*#__PURE__*/React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n onChange: onChange\n })), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.controls,\n className: \"flexbox-fix\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.sliders\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.hue\n }, /*#__PURE__*/React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n onChange: onChange\n })), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.alpha\n }, /*#__PURE__*/React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n renderers: renderers,\n onChange: onChange\n }))), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.color\n }, /*#__PURE__*/React.createElement(Checkboard, null), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.activeColor\n }))), /*#__PURE__*/React.createElement(SketchFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n onChange: onChange,\n disableAlpha: disableAlpha\n }), /*#__PURE__*/React.createElement(SketchPresetColors, {\n colors: presetColors,\n onClick: onChange,\n onSwatchHover: onSwatchHover\n }));\n};\nSketch.defaultProps = {\n disableAlpha: false,\n width: 200,\n styles: {},\n presetColors: ['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF']\n};\nvar SketchPicker = ColorWrap(Sketch);\nexport { SketchPicker };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"mode\", \"popoverProps\"];\nimport { proTheme, useStyle } from '@ant-design/pro-provider';\nimport { SketchPicker } from '@chenshuai2144/sketch-color';\nimport { ConfigProvider, Popover } from 'antd';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { useContext, useImperativeHandle } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var DEFAULT_COLORS = ['#FF9D4E',\n// 0 - 橘黄色\n'#5BD8A6',\n// 1 - 绿色\n'#5B8FF9',\n// 2 - 蓝色\n'#F7664E',\n// 3 - 红色\n'#FF86B7',\n// 4 - 水红色\n'#2B9E9D',\n// 5 - 墨绿色\n'#9270CA',\n// 6 - 紫色\n'#6DC8EC',\n// 7 - 浅蓝色\n'#667796',\n// 8 - 黛蓝色\n'#F6BD16' // 9 - 黄色\n];\n\nexport var ColorPicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var mode = _ref.mode,\n popoverProps = _ref.popoverProps,\n rest = _objectWithoutProperties(_ref, _excluded);\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-field-color-picker');\n var _proTheme$useToken = proTheme.useToken(),\n token = _proTheme$useToken.token;\n var _useMergedState = useMergedState('#1890ff', {\n value: rest.value,\n onChange: rest.onChange\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n color = _useMergedState2[0],\n setColor = _useMergedState2[1];\n var _useStyle = useStyle('ProFiledColorPicker' + color, function () {\n return _defineProperty({}, \".\".concat(prefixCls), {\n width: 32,\n height: 32,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxSizing: 'border-box',\n border: \"1px solid \".concat(token.colorSplit),\n borderRadius: token.borderRadius,\n '&:hover': {\n borderColor: color\n }\n });\n }),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var readDom = wrapSSR( /*#__PURE__*/_jsx(\"div\", {\n className: \"\".concat(prefixCls, \" \").concat(hashId).trim(),\n style: {\n cursor: rest.disabled ? 'not-allowed' : 'pointer',\n backgroundColor: rest.disabled ? token.colorBgContainerDisabled : token.colorBgContainer\n },\n children: /*#__PURE__*/_jsx(\"div\", {\n style: {\n backgroundColor: color,\n width: 24,\n boxSizing: 'border-box',\n height: 24,\n borderRadius: token.borderRadius\n }\n })\n }));\n useImperativeHandle(ref, function () {});\n if (mode === 'read' || rest.disabled) {\n return readDom;\n }\n return /*#__PURE__*/_jsx(Popover, _objectSpread(_objectSpread({\n trigger: \"click\",\n placement: \"right\"\n }, popoverProps), {}, {\n content: /*#__PURE__*/_jsx(\"div\", {\n style: {\n margin: '-12px -16px'\n },\n children: /*#__PURE__*/_jsx(SketchPicker, _objectSpread(_objectSpread({}, rest), {}, {\n presetColors: rest.colors || rest.presetColors || DEFAULT_COLORS,\n color: color,\n onChange: function onChange(_ref3) {\n var hex = _ref3.hex,\n _ref3$rgb = _ref3.rgb,\n r = _ref3$rgb.r,\n g = _ref3$rgb.g,\n b = _ref3$rgb.b,\n a = _ref3$rgb.a;\n if (a && a < 1) {\n setColor(\"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(a, \")\"));\n return;\n }\n setColor(hex);\n }\n }))\n }),\n children: readDom\n }));\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { compareVersions } from '@ant-design/pro-utils';\nimport { ConfigProvider, version } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext, useMemo } from 'react';\nimport { ColorPicker as ColorPickerV4 } from \"./old\";\n// https://ant.design/components/color-picker-cn 示例颜色\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar DEFAULT_PRESETS = {\n label: 'Recommended',\n colors: ['#F5222D', '#FA8C16', '#FADB14', '#8BBB11', '#52C41A', '#13A8A8', '#1677FF', '#2F54EB', '#722ED1', '#EB2F96', '#F5222D4D', '#FA8C164D', '#FADB144D', '#8BBB114D', '#52C41A4D', '#13A8A84D', '#1677FF4D', '#2F54EB4D', '#722ED14D', '#EB2F964D']\n};\n/**\n * 判断是否是 5.5.0 以上的版本\n * @returns\n */\nfunction IsIt_Render_V5() {\n return compareVersions(version, '5.5.0') > -1;\n}\n/**\n * 获取颜色组件\n * @param {boolean} [old=false] 是否使用旧版本\n * @return {*}\n */\nfunction getColorPicker() {\n var old = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if ((typeof old === 'undefined' || old === false) && IsIt_Render_V5()) {\n var _require = require('antd'),\n ColorPicker = _require.ColorPicker;\n return ColorPicker;\n }\n return ColorPickerV4;\n}\n// const ColorPicker = getColorPicker();\n/**\n * 颜色组件\n * Antd > 5.5.0 的版本 使用 antd 的 ColorPicker\n * @param FieldColorPicker {\n * text: number;\n * moneySymbol?: string; }\n */\nvar FieldColorPicker = function FieldColorPicker(_ref, ref) {\n var text = _ref.text,\n type = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n old = _ref.old;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var ColorPicker = React.useMemo(function () {\n return getColorPicker(old);\n }, [old]);\n var prefixCls = getPrefixCls('pro-field-color-picker');\n // 5.5.0 以上版本追加 className\n var className = useMemo(function () {\n if (old) return '';\n return classNames(_defineProperty({}, prefixCls, IsIt_Render_V5()));\n }, [prefixCls, old]);\n if (type === 'read') {\n var dom = /*#__PURE__*/_jsx(ColorPicker, {\n value: text,\n mode: \"read\",\n ref: ref,\n className: className\n // 设置无法 open\n ,\n open: false\n });\n if (render) {\n return render(text, _objectSpread({\n mode: type\n }, fieldProps), dom);\n }\n return dom;\n }\n if (type === 'edit' || type === 'update') {\n // 解决 默认的 width 100% 问题\n var style = _objectSpread({\n display: 'table-cell'\n }, fieldProps.style);\n var _dom = /*#__PURE__*/_jsx(ColorPicker, _objectSpread(_objectSpread({\n ref: ref,\n presets: [DEFAULT_PRESETS]\n }, fieldProps), {}, {\n style: style,\n className: className\n }));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread(_objectSpread({\n mode: type\n }, fieldProps), {}, {\n style: style\n }), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldColorPicker);","import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { isNil } from \"../isNil\";\ndayjs.extend(customParseFormat);\n/**\n * 一个比较hack的moment判断工具\n * @param value\n * @returns\n */\nvar isMoment = function isMoment(value) {\n return !!(value !== null && value !== void 0 && value._isAMomentObject);\n};\nexport var parseValueToDay = function parseValueToDay(value, formatter) {\n if (isNil(value) || dayjs.isDayjs(value) || isMoment(value)) {\n if (isMoment(value)) {\n return dayjs(value);\n }\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(function (v) {\n return parseValueToDay(v, formatter);\n });\n }\n if (typeof value === 'number') return dayjs(value);\n return dayjs(value, formatter);\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { FieldLabel, parseValueToDay } from '@ant-design/pro-utils';\nimport { DatePicker } from 'antd';\nimport dayjs from 'dayjs';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport React, { useState } from 'react';\n// 兼容代码-----------\nimport \"antd/es/date-picker/style\";\n//----------------------\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\ndayjs.extend(weekOfYear);\nvar formatDate = function formatDate(text, format) {\n if (!text) return '-';\n if (typeof format === 'function') {\n return format(dayjs(text));\n } else {\n return dayjs(text).format(format || 'YYYY-MM-DD');\n }\n};\n\n/**\n * 日期选择组件\n *\n * @param\n */\nvar FieldDatePicker = function FieldDatePicker(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n format = _ref.format,\n label = _ref.label,\n light = _ref.light,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n plain = _ref.plain,\n showTime = _ref.showTime,\n fieldProps = _ref.fieldProps,\n picker = _ref.picker,\n bordered = _ref.bordered,\n lightLabel = _ref.lightLabel;\n var intl = useIntl();\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n if (mode === 'read') {\n var dom = formatDate(text, fieldProps.format || format);\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n }));\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n });\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom;\n var disabled = fieldProps.disabled,\n value = fieldProps.value,\n _fieldProps$placehold = fieldProps.placeholder,\n placeholder = _fieldProps$placehold === void 0 ? intl.getMessage('tableForm.selectPlaceholder', '请选择') : _fieldProps$placehold;\n var dayValue = parseValueToDay(value);\n if (light) {\n _dom = /*#__PURE__*/_jsx(FieldLabel, {\n label: label,\n onClick: function onClick() {\n var _fieldProps$onOpenCha;\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha === void 0 ? void 0 : _fieldProps$onOpenCha.call(fieldProps, true);\n setOpen(true);\n },\n style: dayValue ? {\n paddingInlineEnd: 0\n } : undefined,\n disabled: disabled,\n value: dayValue || open ? /*#__PURE__*/_jsx(DatePicker, _objectSpread(_objectSpread({\n picker: picker,\n showTime: showTime,\n format: format,\n ref: ref\n }, fieldProps), {}, {\n value: dayValue,\n onOpenChange: function onOpenChange(isOpen) {\n var _fieldProps$onOpenCha2;\n setOpen(isOpen);\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha2 = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha2 === void 0 ? void 0 : _fieldProps$onOpenCha2.call(fieldProps, isOpen);\n },\n bordered: false,\n open: open\n })) : undefined,\n allowClear: false,\n downIcon: dayValue || open ? false : undefined,\n bordered: bordered,\n ref: lightLabel\n });\n } else {\n _dom = /*#__PURE__*/_jsx(DatePicker, _objectSpread(_objectSpread({\n picker: picker,\n showTime: showTime,\n format: format,\n placeholder: placeholder,\n bordered: plain === undefined ? true : !plain,\n ref: ref\n }, fieldProps), {}, {\n value: dayValue\n }));\n }\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldDatePicker);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { isNil } from '@ant-design/pro-utils';\nimport { InputNumber } from 'antd';\nimport omit from 'omit.js';\nimport React, { useCallback } from 'react';\n// 兼容代码-----------\nimport { useIntl } from '@ant-design/pro-provider';\nimport \"antd/es/input-number/style\";\n//----------------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * 数字组件\n *\n * @param FieldDigitProps {\n * text: number;\n * moneySymbol?: string; }\n */\nvar FieldDigit = function FieldDigit(_ref, ref) {\n var text = _ref.text,\n type = _ref.mode,\n render = _ref.render,\n placeholder = _ref.placeholder,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps;\n var intl = useIntl();\n var placeholderValue = placeholder || intl.getMessage('tableForm.inputPlaceholder', '请输入');\n var proxyChange = useCallback(function (value) {\n var val = value !== null && value !== void 0 ? value : undefined;\n if (!fieldProps.stringMode && typeof val === 'string') {\n val = Number(val);\n }\n if (typeof val === 'number' && !isNil(val) && !isNil(fieldProps.precision)) {\n val = Number(val.toFixed(fieldProps.precision));\n }\n return val;\n }, [fieldProps]);\n if (type === 'read') {\n var _fieldProps$formatter;\n var fractionDigits = {};\n if (fieldProps !== null && fieldProps !== void 0 && fieldProps.precision) {\n fractionDigits = {\n minimumFractionDigits: Number(fieldProps.precision),\n maximumFractionDigits: Number(fieldProps.precision)\n };\n }\n var digit = new Intl.NumberFormat(undefined, _objectSpread(_objectSpread({}, fractionDigits), (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.intlProps) || {})).format(Number(text));\n var dom = /*#__PURE__*/_jsx(\"span\", {\n ref: ref,\n children: (fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$formatter = fieldProps.formatter) === null || _fieldProps$formatter === void 0 ? void 0 : _fieldProps$formatter.call(fieldProps, digit)) || digit\n });\n if (render) {\n return render(text, _objectSpread({\n mode: type\n }, fieldProps), dom);\n }\n return dom;\n }\n if (type === 'edit' || type === 'update') {\n var _dom = /*#__PURE__*/_jsx(InputNumber, _objectSpread(_objectSpread({\n ref: ref,\n min: 0,\n placeholder: placeholderValue\n }, omit(fieldProps, ['onChange', 'onBlur'])), {}, {\n onChange: function onChange(e) {\n var _fieldProps$onChange;\n return fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onChange = fieldProps.onChange) === null || _fieldProps$onChange === void 0 ? void 0 : _fieldProps$onChange.call(fieldProps, proxyChange(e));\n },\n onBlur: function onBlur(e) {\n var _fieldProps$onBlur;\n return fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onBlur = fieldProps.onBlur) === null || _fieldProps$onBlur === void 0 ? void 0 : _fieldProps$onBlur.call(fieldProps, proxyChange(e.target.value));\n }\n }));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: type\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldDigit);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { proTheme, useIntl } from '@ant-design/pro-provider';\nimport { Input, InputNumber, Space } from 'antd';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React from 'react';\n// 兼容代码-----------\nimport \"antd/es/input-number/style\";\n//----------------------\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * 数字范围组件\n *\n * @param FieldDigitRangeProps\n */\nvar FieldDigitRange = function FieldDigitRange(_ref, ref) {\n var text = _ref.text,\n type = _ref.mode,\n render = _ref.render,\n placeholder = _ref.placeholder,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n _ref$separator = _ref.separator,\n separator = _ref$separator === void 0 ? '~' : _ref$separator,\n _ref$separatorWidth = _ref.separatorWidth,\n separatorWidth = _ref$separatorWidth === void 0 ? 30 : _ref$separatorWidth;\n var value = fieldProps.value,\n defaultValue = fieldProps.defaultValue,\n onChange = fieldProps.onChange,\n id = fieldProps.id;\n var intl = useIntl();\n var _proTheme$useToken = proTheme.useToken(),\n token = _proTheme$useToken.token;\n var _useMergedState = useMergedState(function () {\n return defaultValue;\n }, {\n value: value,\n onChange: onChange\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n valuePair = _useMergedState2[0],\n setValuePair = _useMergedState2[1];\n if (type === 'read') {\n var getContent = function getContent(number) {\n var _fieldProps$formatter;\n var digit = new Intl.NumberFormat(undefined, _objectSpread({\n minimumSignificantDigits: 2\n }, (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.intlProps) || {})).format(Number(number));\n return (fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$formatter = fieldProps.formatter) === null || _fieldProps$formatter === void 0 ? void 0 : _fieldProps$formatter.call(fieldProps, digit)) || digit;\n };\n var dom = /*#__PURE__*/_jsxs(\"span\", {\n ref: ref,\n children: [getContent(text[0]), \" \", separator, \" \", getContent(text[1])]\n });\n if (render) {\n return render(text, _objectSpread({\n mode: type\n }, fieldProps), dom);\n }\n return dom;\n }\n if (type === 'edit' || type === 'update') {\n var handleGroupBlur = function handleGroupBlur() {\n if (Array.isArray(valuePair)) {\n // 仅在两个值均为数字时才做比较并转换\n var _valuePair = _slicedToArray(valuePair, 2),\n value0 = _valuePair[0],\n value1 = _valuePair[1];\n if (typeof value0 === 'number' && typeof value1 === 'number' && value0 > value1) {\n setValuePair([value1, value0]);\n } else if (value0 === undefined && value1 === undefined) {\n // 当两个值均为undefined时将值变为undefined,方便required处理\n setValuePair(undefined);\n }\n }\n };\n var handleChange = function handleChange(index, changedValue) {\n var newValuePair = _toConsumableArray(valuePair || []);\n newValuePair[index] = changedValue === null ? undefined : changedValue;\n setValuePair(newValuePair);\n };\n var placeholderValue = (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.placeholder) || placeholder || [intl.getMessage('tableForm.inputPlaceholder', '请输入'), intl.getMessage('tableForm.inputPlaceholder', '请输入')];\n var getInputNumberPlaceholder = function getInputNumberPlaceholder(index) {\n return Array.isArray(placeholderValue) ? placeholderValue[index] : placeholderValue;\n };\n var Compact = Space.Compact || Input.Group;\n var compactProps = !!Space.Compact ? {} : {\n compact: true\n };\n var _dom = /*#__PURE__*/_jsxs(Compact, _objectSpread(_objectSpread({}, compactProps), {}, {\n onBlur: handleGroupBlur,\n children: [/*#__PURE__*/_jsx(InputNumber, _objectSpread(_objectSpread({}, fieldProps), {}, {\n placeholder: getInputNumberPlaceholder(0),\n id: id !== null && id !== void 0 ? id : \"\".concat(id, \"-0\"),\n style: {\n width: \"calc((100% - \".concat(separatorWidth, \"px) / 2)\")\n },\n value: valuePair === null || valuePair === void 0 ? void 0 : valuePair[0],\n defaultValue: defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue[0],\n onChange: function onChange(changedValue) {\n return handleChange(0, changedValue);\n }\n })), /*#__PURE__*/_jsx(Input, {\n style: {\n width: separatorWidth,\n textAlign: 'center',\n borderInlineStart: 0,\n borderInlineEnd: 0,\n pointerEvents: 'none',\n backgroundColor: token === null || token === void 0 ? void 0 : token.colorBgContainer\n },\n placeholder: separator,\n disabled: true\n }), /*#__PURE__*/_jsx(InputNumber, _objectSpread(_objectSpread({}, fieldProps), {}, {\n placeholder: getInputNumberPlaceholder(1),\n id: id !== null && id !== void 0 ? id : \"\".concat(id, \"-1\"),\n style: {\n width: \"calc((100% - \".concat(separatorWidth, \"px) / 2)\"),\n borderInlineStart: 0\n },\n value: valuePair === null || valuePair === void 0 ? void 0 : valuePair[1],\n defaultValue: defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue[1],\n onChange: function onChange(changedValue) {\n return handleChange(1, changedValue);\n }\n }))]\n }));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: type\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldDigitRange);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { parseValueToDay } from '@ant-design/pro-utils';\nimport { DatePicker, Tooltip } from 'antd';\nimport dayjs from 'dayjs';\nimport relativeTime from 'dayjs/plugin/relativeTime';\n// 兼容代码-----------\nimport \"antd/es/date-picker/style\";\nimport React from 'react';\n//----------------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\ndayjs.extend(relativeTime);\n/**\n * 与当前的时间进行比较 http://momentjs.cn/docs/displaying/fromnow.html\n *\n * @param\n */\nvar FieldFromNow = function FieldFromNow(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n format = _ref.format,\n fieldProps = _ref.fieldProps;\n var intl = useIntl();\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(Tooltip, {\n title: dayjs(text).format((fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.format) || format || 'YYYY-MM-DD HH:mm:ss'),\n children: dayjs(text).fromNow()\n });\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n }));\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n });\n }\n if (mode === 'edit' || mode === 'update') {\n var placeholder = intl.getMessage('tableForm.selectPlaceholder', '请选择');\n var momentValue = parseValueToDay(fieldProps.value);\n var _dom = /*#__PURE__*/_jsx(DatePicker, _objectSpread(_objectSpread({\n ref: ref,\n placeholder: placeholder,\n showTime: true\n }, fieldProps), {}, {\n value: momentValue\n }));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldFromNow);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { Image, Input } from 'antd';\nimport React from 'react';\n// 兼容代码-----------\nimport \"antd/es/image/style\";\n//----------------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * 数字组件\n *\n * @param FieldImageProps {\n * text: number;\n * moneySymbol?: string; }\n */\nvar FieldImage = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var text = _ref.text,\n type = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n placeholder = _ref.placeholder,\n width = _ref.width;\n var intl = useIntl();\n var placeholderValue = placeholder || intl.getMessage('tableForm.inputPlaceholder', '请输入');\n if (type === 'read') {\n var dom = /*#__PURE__*/_jsx(Image, _objectSpread({\n ref: ref,\n width: width || 32,\n src: text\n }, fieldProps));\n if (render) {\n return render(text, _objectSpread({\n mode: type\n }, fieldProps), dom);\n }\n return dom;\n }\n if (type === 'edit' || type === 'update') {\n var _dom = /*#__PURE__*/_jsx(Input, _objectSpread({\n ref: ref,\n placeholder: placeholderValue\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: type\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n});\nexport default FieldImage;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle } from '@ant-design/pro-utils';\nimport { ConfigProvider } from 'antd';\nimport classnames from 'classnames';\nimport React, { useContext } from 'react';\n\n/**\n * 默认的 index 列容器,提供一个好看的 index\n *\n * @param param0\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar IndexColumn = function IndexColumn(_ref, ref) {\n var _classnames;\n var _ref$border = _ref.border,\n border = _ref$border === void 0 ? false : _ref$border,\n children = _ref.children;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var className = getPrefixCls('pro-field-index-column');\n\n // css\n var _useStyle = useStyle('IndexColumn', function () {\n return _defineProperty({}, \".\".concat(className), {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '18px',\n height: '18px',\n '&-border': {\n color: '#fff',\n fontSize: '12px',\n lineHeight: '12px',\n backgroundColor: '#314659',\n borderRadius: '9px',\n '&.top-three': {\n backgroundColor: '#979797'\n }\n }\n });\n }),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n return wrapSSR( /*#__PURE__*/_jsx(\"div\", {\n ref: ref,\n className: classnames(className, hashId, (_classnames = {}, _defineProperty(_classnames, \"\".concat(className, \"-border\"), border), _defineProperty(_classnames, 'top-three', children > 3), _classnames)),\n children: children\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(IndexColumn);","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"contentRender\", \"numberFormatOptions\", \"numberPopoverRender\", \"open\"],\n _excluded2 = [\"text\", \"mode\", \"render\", \"renderFormItem\", \"fieldProps\", \"proFieldKey\", \"plain\", \"valueEnum\", \"placeholder\", \"locale\", \"customSymbol\", \"numberFormatOptions\", \"numberPopoverRender\"];\nimport { intlMap as allIntlMap, useIntl } from '@ant-design/pro-provider';\nimport { InputNumber, Popover } from 'antd';\nimport omit from 'omit.js';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { useCallback, useMemo } from 'react';\n// 兼容代码-----------\nimport \"antd/es/input-number/style\";\nimport \"antd/es/popover/style\";\n//----------------------\n\nimport { openVisibleCompatible } from '@ant-design/pro-utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar defaultMoneyIntl = new Intl.NumberFormat('zh-Hans-CN', {\n currency: 'CNY',\n style: 'currency'\n});\nvar enMoneyIntl = {\n style: 'currency',\n currency: 'USD'\n};\nvar ruMoneyIntl = {\n style: 'currency',\n currency: 'RUB'\n};\nvar rsMoneyIntl = {\n style: 'currency',\n currency: 'RSD'\n};\nvar msMoneyIntl = {\n style: 'currency',\n currency: 'MYR'\n};\nvar ptMoneyIntl = {\n style: 'currency',\n currency: 'BRL'\n};\nvar intlMap = {\n default: defaultMoneyIntl,\n 'zh-Hans-CN': {\n currency: 'CNY',\n style: 'currency'\n },\n 'en-US': enMoneyIntl,\n 'ru-RU': ruMoneyIntl,\n 'ms-MY': msMoneyIntl,\n 'sr-RS': rsMoneyIntl,\n 'pt-BR': ptMoneyIntl\n};\n\n/**\n * A function that formats the number.\n * @param {string | false} moneySymbol - The currency symbol, which is the first parameter of the\n * formatMoney function.\n * @param {number | string | undefined} paramsText - The text to be formatted\n * @param {number} precision - number, // decimal places\n * @param {any} [config] - the configuration of the number format, which is the same as the\n * configuration of the number format in the Intl.NumberFormat method.\n * @returns A function that takes in 4 parameters and returns a string.\n */\nvar getTextByLocale = function getTextByLocale(moneySymbol, paramsText, precision, config) {\n var moneyText = paramsText === null || paramsText === void 0 ? void 0 : paramsText.toString().replaceAll(',', '');\n if (typeof moneyText === 'string') {\n var parsedNum = Number(moneyText);\n // 转换数字为NaN时,返回原始值展示\n if (Number.isNaN(parsedNum)) return moneyText;\n moneyText = parsedNum;\n }\n if (!moneyText && moneyText !== 0) return '';\n try {\n // Formatting the number, when readonly moneySymbol = false, unused currency.\n var finalMoneyText = new Intl.NumberFormat(moneySymbol || 'zh-Hans-CN', _objectSpread(_objectSpread({}, intlMap[moneySymbol || 'zh-Hans-CN'] || intlMap['zh-Hans-CN']), {}, {\n maximumFractionDigits: precision\n }, config))\n // fix: #6003 解决未指定货币符号时,金额文本格式化异常问题\n .format(moneyText);\n\n // 是否有金额符号,例如 ¥ $\n var hasMoneySymbol = moneySymbol === false;\n\n /**\n * 首字母判断是否是正负符号\n */\n var _ref = finalMoneyText || '',\n _ref2 = _slicedToArray(_ref, 1),\n operatorSymbol = _ref2[0];\n\n // 兼容正负号\n if (['+', '-'].includes(operatorSymbol)) {\n // 裁剪字符串,有符号截取两位,没有符号截取一位\n return \"\".concat(operatorSymbol).concat(finalMoneyText.substring(hasMoneySymbol ? 2 : 1));\n }\n\n // 没有正负符号截取一位\n return finalMoneyText.substring(hasMoneySymbol ? 1 : 0);\n } catch (error) {\n return moneyText;\n }\n};\n\n// 默认的代码类型\nvar DefaultPrecisionCont = 2;\n\n/**\n * input 的弹框,用于显示格式化之后的内容\n *\n * @result 10,000 -> 一万\n * @result 10, 00, 000, 000 -> 一亿\n */\nvar InputNumberPopover = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {\n var content = _ref3.contentRender,\n numberFormatOptions = _ref3.numberFormatOptions,\n numberPopoverRender = _ref3.numberPopoverRender,\n open = _ref3.open,\n rest = _objectWithoutProperties(_ref3, _excluded);\n var _useMergedState = useMergedState(function () {\n return rest.defaultValue;\n }, {\n value: rest.value,\n onChange: rest.onChange\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n onChange = _useMergedState2[1];\n\n /**\n * 如果content 存在要根据 content 渲染一下\n */\n var dom = content === null || content === void 0 ? void 0 : content(_objectSpread(_objectSpread({}, rest), {}, {\n value: value\n }));\n var props = openVisibleCompatible(dom ? open : false);\n return /*#__PURE__*/_jsx(Popover, _objectSpread(_objectSpread({\n placement: \"topLeft\"\n }, props), {}, {\n trigger: ['focus', 'click'],\n content: dom,\n getPopupContainer: function getPopupContainer(triggerNode) {\n return (triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode.parentElement) || document.body;\n },\n children: /*#__PURE__*/_jsx(InputNumber, _objectSpread(_objectSpread({\n ref: ref\n }, rest), {}, {\n value: value,\n onChange: onChange\n }))\n }));\n});\n\n/**\n * 金额组件\n *\n * @param FieldMoneyProps {\n * text: number;\n * moneySymbol?: string; }\n */\nvar FieldMoney = function FieldMoney(_ref4, ref) {\n var _fieldProps$customSym, _fieldProps$precision;\n var text = _ref4.text,\n type = _ref4.mode,\n render = _ref4.render,\n renderFormItem = _ref4.renderFormItem,\n fieldProps = _ref4.fieldProps,\n proFieldKey = _ref4.proFieldKey,\n plain = _ref4.plain,\n valueEnum = _ref4.valueEnum,\n placeholder = _ref4.placeholder,\n _ref4$locale = _ref4.locale,\n locale = _ref4$locale === void 0 ? (_fieldProps$customSym = fieldProps.customSymbol) !== null && _fieldProps$customSym !== void 0 ? _fieldProps$customSym : 'zh-Hans-CN' : _ref4$locale,\n _ref4$customSymbol = _ref4.customSymbol,\n customSymbol = _ref4$customSymbol === void 0 ? fieldProps.customSymbol : _ref4$customSymbol,\n _ref4$numberFormatOpt = _ref4.numberFormatOptions,\n numberFormatOptions = _ref4$numberFormatOpt === void 0 ? fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.numberFormatOptions : _ref4$numberFormatOpt,\n _ref4$numberPopoverRe = _ref4.numberPopoverRender,\n numberPopoverRender = _ref4$numberPopoverRe === void 0 ? (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.numberPopoverRender) || false : _ref4$numberPopoverRe,\n rest = _objectWithoutProperties(_ref4, _excluded2);\n var precision = (_fieldProps$precision = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.precision) !== null && _fieldProps$precision !== void 0 ? _fieldProps$precision : DefaultPrecisionCont;\n var intl = useIntl();\n // 当手动传入locale时,应该以传入的locale为准,未传入时则根据全局的locale进行国际化\n if (locale && allIntlMap[locale]) {\n intl = allIntlMap[locale];\n }\n var placeholderValue = placeholder || intl.getMessage('tableForm.inputPlaceholder', '请输入');\n\n /**\n * 获取货币的符号\n * 如果 customSymbol 存在直接使用 customSymbol\n * 如果 moneySymbol 为 false,返回空\n * 如果没有配置使用默认的\n */\n var moneySymbol = useMemo(function () {\n if (customSymbol) {\n return customSymbol;\n }\n if (rest.moneySymbol === false || fieldProps.moneySymbol === false) {\n return undefined;\n }\n return intl.getMessage('moneySymbol', '¥');\n }, [customSymbol, fieldProps.moneySymbol, intl, rest.moneySymbol]);\n\n /*\n * A function that formats the number.\n * 1000 -> 1,000\n */\n var getFormateValue = useCallback(function (value) {\n // 新建数字正则,需要配置小数点\n var reg = new RegExp(\"\\\\B(?=(\\\\d{\".concat(3 + Math.max(precision - DefaultPrecisionCont, 0), \"})+(?!\\\\d))\"), 'g');\n // 切分为 整数 和 小数 不同\n var _String$split = String(value).split('.'),\n _String$split2 = _slicedToArray(_String$split, 2),\n intStr = _String$split2[0],\n floatStr = _String$split2[1];\n\n // 最终的数据string,需要去掉 , 号。\n var resultInt = intStr.replace(reg, ',');\n\n // 计算最终的小数点\n var resultFloat = '';\n\n /* Taking the floatStr and slicing it to the precision. */\n if (floatStr && precision > 0) {\n resultFloat = \".\".concat(floatStr.slice(0, precision === undefined ? DefaultPrecisionCont : precision));\n }\n return \"\".concat(resultInt).concat(resultFloat);\n }, [precision]);\n\n // 如果是阅读模式,直接返回字符串\n if (type === 'read') {\n var dom = /*#__PURE__*/_jsx(\"span\", {\n ref: ref,\n children: getTextByLocale(moneySymbol ? locale : false, text, precision, numberFormatOptions !== null && numberFormatOptions !== void 0 ? numberFormatOptions : fieldProps.numberFormatOptions)\n });\n if (render) {\n return render(text, _objectSpread({\n mode: type\n }, fieldProps), dom);\n }\n return dom;\n }\n if (type === 'edit' || type === 'update') {\n var _dom = /*#__PURE__*/_jsx(InputNumberPopover, _objectSpread(_objectSpread({\n contentRender: function contentRender(props) {\n if (numberPopoverRender === false) return null;\n if (!props.value) return null;\n var localeText = getTextByLocale(moneySymbol ? locale : false, \"\".concat(getFormateValue(props.value)), precision, _objectSpread(_objectSpread({}, numberFormatOptions), {}, {\n notation: 'compact'\n }));\n if (typeof numberPopoverRender === 'function') {\n return numberPopoverRender === null || numberPopoverRender === void 0 ? void 0 : numberPopoverRender(props, localeText);\n }\n return localeText;\n },\n ref: ref,\n precision: precision\n // 删除默认min={0},允许输入一个负数的金额,用户可自行配置min来限制是否允许小于0的金额\n ,\n formatter: function formatter(value) {\n if (value && moneySymbol) {\n return \"\".concat(moneySymbol, \" \").concat(getFormateValue(value));\n }\n return value === null || value === void 0 ? void 0 : value.toString();\n },\n parser: function parser(value) {\n if (moneySymbol && value) {\n return value.replace(new RegExp(\"\\\\\".concat(moneySymbol, \"\\\\s?|(,*)\"), 'g'), '');\n }\n return value;\n },\n placeholder: placeholderValue\n }, omit(fieldProps, ['numberFormatOptions', 'precision', 'numberPopoverRender', 'customSymbol', 'moneySymbol', 'visible', 'open'])), {}, {\n onBlur: fieldProps.onBlur ? function (e) {\n var _fieldProps$onBlur;\n var value = e.target.value;\n if (moneySymbol && value) {\n value = value.replace(new RegExp(\"\\\\\".concat(moneySymbol, \"\\\\s?|(,*)\"), 'g'), '');\n }\n (_fieldProps$onBlur = fieldProps.onBlur) === null || _fieldProps$onBlur === void 0 ? void 0 : _fieldProps$onBlur.call(fieldProps, value);\n } : undefined\n }));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: type\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldMoney);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { ConfigProvider } from 'antd';\nimport React, { useContext, useImperativeHandle } from 'react';\n// 兼容代码-----------\nimport { proTheme } from '@ant-design/pro-provider';\nimport \"antd/es/space/style\";\n//----------------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nvar addArrayKeys = function addArrayKeys(doms) {\n return doms.map(function (dom, index) {\n var _dom$props;\n if (! /*#__PURE__*/React.isValidElement(dom)) {\n // eslint-disable-next-line react/no-array-index-key\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: dom\n }, index);\n }\n return /*#__PURE__*/React.cloneElement(dom, _objectSpread(_objectSpread({\n // eslint-disable-next-line react/no-array-index-key\n key: index\n }, dom === null || dom === void 0 ? void 0 : dom.props), {}, {\n style: _objectSpread({\n flex: 1\n }, dom === null || dom === void 0 ? void 0 : (_dom$props = dom.props) === null || _dom$props === void 0 ? void 0 : _dom$props.style)\n }));\n });\n};\n\n/**\n * 一般用于放多个按钮\n *\n * @param\n */\nvar FieldOptions = function FieldOptions(_ref, ref) {\n var text = _ref.text,\n type = _ref.mode,\n render = _ref.render,\n fieldProps = _ref.fieldProps;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var className = getPrefixCls('pro-field-option');\n var _proTheme$useToken = proTheme.useToken(),\n token = _proTheme$useToken.token;\n useImperativeHandle(ref, function () {\n return {};\n });\n if (render) {\n var doms = render(text, _objectSpread({\n mode: type\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {}));\n if (!doms || (doms === null || doms === void 0 ? void 0 : doms.length) < 1 || !Array.isArray(doms)) {\n return null;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n style: {\n display: 'flex',\n gap: token.margin,\n alignItems: 'center'\n },\n className: className,\n children: addArrayKeys(doms)\n });\n }\n if (!text || !Array.isArray(text)) {\n if (! /*#__PURE__*/React.isValidElement(text)) {\n return null;\n }\n return text;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n style: {\n display: 'flex',\n gap: token.margin,\n alignItems: 'center'\n },\n className: className,\n children: addArrayKeys(text)\n });\n};\nexport default /*#__PURE__*/React.forwardRef(FieldOptions);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"text\", \"mode\", \"render\", \"renderFormItem\", \"fieldProps\", \"proFieldKey\"];\nimport { EyeInvisibleOutlined, EyeOutlined } from '@ant-design/icons';\nimport { useIntl } from '@ant-design/pro-provider';\nimport { Input, Space } from 'antd';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React from 'react';\n// 兼容代码-----------\nimport \"antd/es/input/style\";\nimport \"antd/es/space/style\";\n//----------------------\n\n/**\n * 最基本的组件,就是个普通的 Input.Password\n *\n * @param\n */\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar FieldPassword = function FieldPassword(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n proFieldKey = _ref.proFieldKey,\n rest = _objectWithoutProperties(_ref, _excluded);\n var intl = useIntl();\n var _useMergedState = useMergedState(function () {\n return rest.open || rest.visible || false;\n }, {\n value: rest.open || rest.visible,\n onChange: rest.onOpenChange || rest.onVisible\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n open = _useMergedState2[0],\n setOpen = _useMergedState2[1];\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(_Fragment, {\n children: \"-\"\n });\n if (text) {\n dom = /*#__PURE__*/_jsxs(Space, {\n children: [/*#__PURE__*/_jsx(\"span\", {\n ref: ref,\n children: open ? text : '* * * * *'\n }), /*#__PURE__*/_jsx(\"a\", {\n onClick: function onClick() {\n return setOpen(!open);\n },\n children: open ? /*#__PURE__*/_jsx(EyeOutlined, {}) : /*#__PURE__*/_jsx(EyeInvisibleOutlined, {})\n })]\n });\n }\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), dom);\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom = /*#__PURE__*/_jsx(Input.Password, _objectSpread({\n placeholder: intl.getMessage('tableForm.inputPlaceholder', '请输入'),\n ref: ref\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldPassword);","/** 获取展示符号 */\nexport function getSymbolByRealValue(realValue) {\n if (realValue === 0) {\n return null;\n }\n if (realValue > 0) {\n return '+';\n }\n return '-';\n}\n\n/** 获取颜色 */\nexport function getColorByRealValue(realValue) {\n if (realValue === 0) {\n return '#595959';\n }\n return realValue > 0 ? '#ff4d4f' : '#52c41a';\n}\n\n/** 获取到最后展示的数字 */\nexport function getRealTextWithPrecision(realValue) {\n var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n return precision >= 0 ? realValue === null || realValue === void 0 ? void 0 : realValue.toFixed(precision) : realValue;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { InputNumber } from 'antd';\nimport toNumber from 'lodash.tonumber';\nimport React, { Fragment, useMemo } from 'react';\nimport { getColorByRealValue, getRealTextWithPrecision, getSymbolByRealValue } from \"./util\";\n\n// 兼容代码-----------\nimport \"antd/es/input-number/style\";\n//------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * 百分比组件\n *\n * @param PercentPropInt\n */\nvar FieldPercent = function FieldPercent(_ref, ref) {\n var text = _ref.text,\n prefix = _ref.prefix,\n precision = _ref.precision,\n _ref$suffix = _ref.suffix,\n suffix = _ref$suffix === void 0 ? '%' : _ref$suffix,\n mode = _ref.mode,\n _ref$showColor = _ref.showColor,\n showColor = _ref$showColor === void 0 ? false : _ref$showColor,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n placeholder = _ref.placeholder,\n propsShowSymbol = _ref.showSymbol;\n var intl = useIntl();\n var placeholderValue = placeholder || intl.getMessage('tableForm.inputPlaceholder', '请输入');\n var realValue = useMemo(function () {\n return typeof text === 'string' && text.includes('%') ? toNumber(text.replace('%', '')) : toNumber(text);\n }, [text]);\n var showSymbol = useMemo(function () {\n if (typeof propsShowSymbol === 'function') {\n return propsShowSymbol === null || propsShowSymbol === void 0 ? void 0 : propsShowSymbol(text);\n }\n return propsShowSymbol;\n }, [propsShowSymbol, text]);\n if (mode === 'read') {\n /** 颜色有待确定, 根据提供 colors: ['正', '负'] | boolean */\n var style = showColor ? {\n color: getColorByRealValue(realValue)\n } : {};\n var dom = /*#__PURE__*/_jsxs(\"span\", {\n style: style,\n ref: ref,\n children: [prefix && /*#__PURE__*/_jsx(\"span\", {\n children: prefix\n }), showSymbol && /*#__PURE__*/_jsxs(Fragment, {\n children: [getSymbolByRealValue(realValue), \" \"]\n }), getRealTextWithPrecision(Math.abs(realValue), precision), suffix && suffix]\n });\n if (render) {\n return render(text, _objectSpread(_objectSpread({\n mode: mode\n }, fieldProps), {}, {\n prefix: prefix,\n precision: precision,\n showSymbol: showSymbol,\n suffix: suffix\n }), dom);\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom = /*#__PURE__*/_jsx(InputNumber, _objectSpread({\n ref: ref,\n formatter: function formatter(value) {\n if (value && prefix) {\n return \"\".concat(prefix, \" \").concat(value).replace(/\\B(?=(\\d{3})+(?!\\d)$)/g, ',');\n }\n return value;\n },\n parser: function parser(value) {\n return value ? value.replace(/.*\\s|,/g, '') : '';\n },\n placeholder: placeholderValue\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldPercent);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { InputNumber, Progress } from 'antd';\nimport toNumber from 'lodash.tonumber';\nimport React, { useMemo } from 'react';\n// 兼容代码-----------\nimport \"antd/es/input-number/style\";\nimport \"antd/es/progress/style\";\n//------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function getProgressStatus(text) {\n if (text === 100) {\n return 'success';\n }\n if (text < 0) {\n return 'exception';\n }\n if (text < 100) {\n return 'active';\n }\n return 'normal';\n}\n\n/**\n * 进度条组件\n *\n * @param\n */\nvar FieldProgress = function FieldProgress(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n plain = _ref.plain,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n placeholder = _ref.placeholder;\n var intl = useIntl();\n var placeholderValue = placeholder || intl.getMessage('tableForm.inputPlaceholder', '请输入');\n var realValue = useMemo(function () {\n return typeof text === 'string' && text.includes('%') ? toNumber(text.replace('%', '')) : toNumber(text);\n }, [text]);\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(Progress, _objectSpread({\n ref: ref,\n size: \"small\",\n style: {\n minWidth: 100,\n maxWidth: 320\n },\n percent: realValue,\n steps: plain ? 10 : undefined,\n status: getProgressStatus(realValue)\n }, fieldProps));\n if (render) {\n return render(realValue, _objectSpread({\n mode: mode\n }, fieldProps), dom);\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom = /*#__PURE__*/_jsx(InputNumber, _objectSpread({\n ref: ref,\n placeholder: placeholderValue\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldProgress);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"radioType\", \"renderFormItem\", \"mode\", \"render\"];\nimport { useStyle } from '@ant-design/pro-utils';\nimport { ConfigProvider, Form, Radio, Spin } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext, useImperativeHandle, useRef } from 'react';\nimport { ObjToMap, proFieldParsingText, useFieldFetchData } from \"../Select\";\n\n// 兼容代码-----------\nimport \"antd/es/radio/style\";\n//------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\n/**\n * 单选组件\n *\n * @param param0\n * @param ref\n */\nvar FieldRadio = function FieldRadio(_ref, ref) {\n var _Form$Item, _Form$Item$useStatus;\n var radioType = _ref.radioType,\n renderFormItem = _ref.renderFormItem,\n mode = _ref.mode,\n render = _ref.render,\n rest = _objectWithoutProperties(_ref, _excluded);\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var layoutClassName = getPrefixCls('pro-field-radio');\n var _useFieldFetchData = useFieldFetchData(rest),\n _useFieldFetchData2 = _slicedToArray(_useFieldFetchData, 3),\n loading = _useFieldFetchData2[0],\n options = _useFieldFetchData2[1],\n _fetchData = _useFieldFetchData2[2];\n var radioRef = useRef();\n var status = (_Form$Item = Form.Item) === null || _Form$Item === void 0 ? void 0 : (_Form$Item$useStatus = _Form$Item.useStatus) === null || _Form$Item$useStatus === void 0 ? void 0 : _Form$Item$useStatus.call(_Form$Item);\n useImperativeHandle(ref, function () {\n return _objectSpread(_objectSpread({}, radioRef.current || {}), {}, {\n fetchData: function fetchData(keyWord) {\n return _fetchData(keyWord);\n }\n });\n }, [_fetchData]);\n\n // css\n var _useStyle = useStyle('FieldRadioRadio', function (token) {\n var _ref2;\n return _ref2 = {}, _defineProperty(_ref2, \".\".concat(layoutClassName, \"-error\"), {\n span: {\n color: token.colorError\n }\n }), _defineProperty(_ref2, \".\".concat(layoutClassName, \"-warning\"), {\n span: {\n color: token.colorWarning\n }\n }), _defineProperty(_ref2, \".\".concat(layoutClassName, \"-vertical\"), _defineProperty({}, \"\".concat(token.antCls, \"-radio-wrapper\"), {\n display: 'flex',\n marginInlineEnd: 0\n })), _ref2;\n }),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n if (loading) {\n return /*#__PURE__*/_jsx(Spin, {\n size: \"small\"\n });\n }\n if (mode === 'read') {\n var optionsValueEnum = options !== null && options !== void 0 && options.length ? options === null || options === void 0 ? void 0 : options.reduce(function (pre, cur) {\n var _ref3;\n return _objectSpread(_objectSpread({}, pre), {}, _defineProperty({}, (_ref3 = cur.value) !== null && _ref3 !== void 0 ? _ref3 : '', cur.label));\n }, {}) : undefined;\n var dom = /*#__PURE__*/_jsx(_Fragment, {\n children: proFieldParsingText(rest.text, ObjToMap(rest.valueEnum || optionsValueEnum))\n });\n if (render) {\n var _render;\n return (_render = render(rest.text, _objectSpread({\n mode: mode\n }, rest.fieldProps), dom)) !== null && _render !== void 0 ? _render : null;\n }\n return dom;\n }\n if (mode === 'edit') {\n var _rest$fieldProps, _classNames;\n var _dom = wrapSSR( /*#__PURE__*/_jsx(Radio.Group, _objectSpread(_objectSpread({\n ref: radioRef,\n optionType: radioType\n }, rest.fieldProps), {}, {\n className: classNames((_rest$fieldProps = rest.fieldProps) === null || _rest$fieldProps === void 0 ? void 0 : _rest$fieldProps.className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(layoutClassName, \"-error\"), (status === null || status === void 0 ? void 0 : status.status) === 'error'), _defineProperty(_classNames, \"\".concat(layoutClassName, \"-warning\"), (status === null || status === void 0 ? void 0 : status.status) === 'warning'), _classNames), hashId, \"\".concat(layoutClassName, \"-\").concat(rest.fieldProps.layout || 'horizontal')),\n options: options\n })));\n if (renderFormItem) {\n var _renderFormItem;\n return (_renderFormItem = renderFormItem(rest.text, _objectSpread(_objectSpread({\n mode: mode\n }, rest.fieldProps), {}, {\n options: options,\n loading: loading\n }), _dom)) !== null && _renderFormItem !== void 0 ? _renderFormItem : null;\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldRadio);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { FieldLabel, parseValueToDay } from '@ant-design/pro-utils';\nimport { DatePicker } from 'antd';\nimport dayjs from 'dayjs';\nimport React, { useCallback } from 'react';\n// 兼容代码-----------\nimport \"antd/es/date-picker/style\";\n//------------\n\n/**\n * 日期范围选择组件\n *\n * @param\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar FieldRangePicker = function FieldRangePicker(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n light = _ref.light,\n label = _ref.label,\n format = _ref.format,\n render = _ref.render,\n picker = _ref.picker,\n renderFormItem = _ref.renderFormItem,\n plain = _ref.plain,\n showTime = _ref.showTime,\n lightLabel = _ref.lightLabel,\n bordered = _ref.bordered,\n fieldProps = _ref.fieldProps;\n var intl = useIntl();\n var _ref2 = Array.isArray(text) ? text : [],\n _ref3 = _slicedToArray(_ref2, 2),\n startText = _ref3[0],\n endText = _ref3[1];\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n open = _React$useState2[0],\n setOpen = _React$useState2[1];\n // antd 改了一下 交互,这里要兼容一下,不然会导致无法选中第二个数据\n var genFormatText = useCallback(function (formatValue) {\n if (typeof (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.format) === 'function') {\n var _fieldProps$format;\n return fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$format = fieldProps.format) === null || _fieldProps$format === void 0 ? void 0 : _fieldProps$format.call(fieldProps, formatValue);\n }\n return (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.format) || format || 'YYYY-MM-DD';\n }, [fieldProps, format]);\n // activePickerIndex for https://github.com/ant-design/ant-design/issues/22158\n var parsedStartText = startText ? dayjs(startText).format(genFormatText(dayjs(startText))) : '';\n var parsedEndText = endText ? dayjs(endText).format(genFormatText(dayjs(endText))) : '';\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n children: [/*#__PURE__*/_jsx(\"div\", {\n children: parsedStartText || '-'\n }), /*#__PURE__*/_jsx(\"div\", {\n children: parsedEndText || '-'\n })]\n });\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(\"span\", {\n children: dom\n }));\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var dayValue = parseValueToDay(fieldProps.value);\n var _dom;\n if (light) {\n var _fieldProps$placehold;\n _dom = /*#__PURE__*/_jsx(FieldLabel, {\n label: label,\n onClick: function onClick() {\n var _fieldProps$onOpenCha;\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha === void 0 ? void 0 : _fieldProps$onOpenCha.call(fieldProps, true);\n setOpen(true);\n },\n style: dayValue ? {\n paddingInlineEnd: 0\n } : undefined,\n disabled: fieldProps.disabled,\n value: dayValue || open ? /*#__PURE__*/_jsx(DatePicker.RangePicker, _objectSpread(_objectSpread({\n picker: picker,\n showTime: showTime,\n format: format,\n bordered: false\n }, fieldProps), {}, {\n placeholder: (_fieldProps$placehold = fieldProps.placeholder) !== null && _fieldProps$placehold !== void 0 ? _fieldProps$placehold : [intl.getMessage('tableForm.selectPlaceholder', '请选择'), intl.getMessage('tableForm.selectPlaceholder', '请选择')],\n onClear: function onClear() {\n var _fieldProps$onClear;\n setOpen(false);\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onClear = fieldProps.onClear) === null || _fieldProps$onClear === void 0 ? void 0 : _fieldProps$onClear.call(fieldProps);\n },\n value: dayValue,\n onOpenChange: function onOpenChange(isOpen) {\n var _fieldProps$onOpenCha2;\n if (dayValue) setOpen(isOpen);\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha2 = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha2 === void 0 ? void 0 : _fieldProps$onOpenCha2.call(fieldProps, isOpen);\n }\n })) : null,\n allowClear: false,\n bordered: bordered,\n ref: lightLabel,\n downIcon: dayValue || open ? false : undefined\n });\n } else {\n _dom = /*#__PURE__*/_jsx(DatePicker.RangePicker, _objectSpread(_objectSpread({\n ref: ref,\n format: format,\n showTime: showTime,\n placeholder: [intl.getMessage('tableForm.selectPlaceholder', '请选择'), intl.getMessage('tableForm.selectPlaceholder', '请选择')],\n bordered: plain === undefined ? true : false\n }, fieldProps), {}, {\n value: dayValue\n }));\n }\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldRangePicker);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { Rate } from 'antd';\nimport React from 'react';\n// 兼容代码-----------\nimport \"antd/es/rate/style\";\n//------------\n\n/**\n * 评分组件\n *\n * @param\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nvar FieldRate = function FieldRate(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps;\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(Rate, _objectSpread(_objectSpread({\n allowHalf: true,\n disabled: true,\n ref: ref\n }, fieldProps), {}, {\n value: text\n }));\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n }));\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom = /*#__PURE__*/_jsx(Rate, _objectSpread({\n allowHalf: true,\n ref: ref\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldRate);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { InputNumber } from 'antd';\nimport React from 'react';\n// 兼容代码-----------\nimport \"antd/es/input-number/style\";\n//------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * 格式化秒\n *\n * @param result\n * @returns {string}\n */\nexport function formatSecond(result) {\n var formatText = '';\n var d = Math.floor(result / (3600 * 24));\n var h = Math.floor(result / 3600);\n var m = Math.floor(result / 60 % 60);\n var s = Math.floor(result % 60);\n formatText = \"\".concat(s, \"\\u79D2\");\n if (m > 0) {\n formatText = \"\".concat(m, \"\\u5206\\u949F\").concat(formatText);\n }\n if (h > 0) {\n formatText = \"\".concat(h, \"\\u5C0F\\u65F6\").concat(formatText);\n }\n if (d > 0) {\n formatText = \"\".concat(d, \"\\u5929\").concat(formatText);\n }\n return formatText;\n}\n\n/**\n * 格式化秒\n *\n * @param FieldSecond\n */\nvar Second = function Second(_ref, ref) {\n var text = _ref.text,\n type = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n placeholder = _ref.placeholder;\n var intl = useIntl();\n var placeholderValue = placeholder || intl.getMessage('tableForm.inputPlaceholder', '请输入');\n if (type === 'read') {\n var secondText = formatSecond(Number(text));\n var dom = /*#__PURE__*/_jsx(\"span\", {\n ref: ref,\n children: secondText\n });\n if (render) {\n return render(text, _objectSpread({\n mode: type\n }, fieldProps), dom);\n }\n return dom;\n }\n if (type === 'edit' || type === 'update') {\n var _dom = /*#__PURE__*/_jsx(InputNumber, _objectSpread({\n ref: ref,\n min: 0,\n style: {\n width: '100%'\n },\n placeholder: placeholderValue\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: type\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(Second);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"mode\", \"render\", \"renderFormItem\", \"fieldProps\", \"emptyText\"];\nimport { Segmented, Spin } from 'antd';\nimport omit from 'omit.js';\nimport React, { useImperativeHandle, useRef } from 'react';\nimport { ObjToMap, proFieldParsingText, useFieldFetchData } from \"../Select\";\nimport \"antd/es/segmented/style\";\nimport \"antd/es/spin/style\";\n\n/**\n * Segmented https://ant.design/components/segmented-cn/\n *\n * @param\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nvar FieldSegmented = function FieldSegmented(_ref, ref) {\n var mode = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n _ref$emptyText = _ref.emptyText,\n emptyText = _ref$emptyText === void 0 ? '-' : _ref$emptyText,\n rest = _objectWithoutProperties(_ref, _excluded);\n var inputRef = useRef();\n var _useFieldFetchData = useFieldFetchData(rest),\n _useFieldFetchData2 = _slicedToArray(_useFieldFetchData, 3),\n loading = _useFieldFetchData2[0],\n options = _useFieldFetchData2[1],\n _fetchData = _useFieldFetchData2[2];\n useImperativeHandle(ref, function () {\n return _objectSpread(_objectSpread({}, inputRef.current || {}), {}, {\n fetchData: function fetchData(keyWord) {\n return _fetchData(keyWord);\n }\n });\n }, [_fetchData]);\n if (loading) {\n return /*#__PURE__*/_jsx(Spin, {\n size: \"small\"\n });\n }\n if (mode === 'read') {\n var optionsValueEnum = options !== null && options !== void 0 && options.length ? options === null || options === void 0 ? void 0 : options.reduce(function (pre, cur) {\n var _ref2;\n return _objectSpread(_objectSpread({}, pre), {}, _defineProperty({}, (_ref2 = cur.value) !== null && _ref2 !== void 0 ? _ref2 : '', cur.label));\n }, {}) : undefined;\n var dom = /*#__PURE__*/_jsx(_Fragment, {\n children: proFieldParsingText(rest.text, ObjToMap(rest.valueEnum || optionsValueEnum))\n });\n if (render) {\n var _render;\n return (_render = render(rest.text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n }))) !== null && _render !== void 0 ? _render : emptyText;\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom = /*#__PURE__*/_jsx(Segmented, _objectSpread(_objectSpread({\n ref: inputRef\n }, omit(fieldProps || {}, ['allowClear'])), {}, {\n options: options\n }));\n if (renderFormItem) {\n return renderFormItem(rest.text, _objectSpread(_objectSpread({\n mode: mode\n }, fieldProps), {}, {\n options: options,\n loading: loading\n }), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldSegmented);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { Slider } from 'antd';\nimport React from 'react';\n// 兼容代码-----------\nimport \"antd/es/slider/style\";\n//------------\n/**\n * 评分组件\n *\n * @param\n */\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar FieldSlider = function FieldSlider(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps;\n if (mode === 'read') {\n var dom = text;\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n }));\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n });\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom = /*#__PURE__*/_jsx(Slider, _objectSpread(_objectSpread({\n ref: ref\n }, fieldProps), {}, {\n style: _objectSpread({\n minWidth: 120\n }, fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.style)\n }));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldSlider);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { Switch } from 'antd';\nimport Omit from 'omit.js';\nimport React, { useMemo } from 'react';\n// 兼容代码-----------\nimport { FieldLabel } from '@ant-design/pro-utils';\nimport \"antd/es/switch/style\";\n//------------\n\n/**\n * 评分组件\n *\n * @param\n */\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar FieldSwitch = function FieldSwitch(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n light = _ref.light,\n label = _ref.label,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps;\n var intl = useIntl();\n var dom = useMemo(function () {\n var _fieldProps$checkedCh, _fieldProps$unChecked;\n if (text === undefined || text === null || \"\".concat(text).length < 1) return '-';\n return text ? (_fieldProps$checkedCh = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.checkedChildren) !== null && _fieldProps$checkedCh !== void 0 ? _fieldProps$checkedCh : intl.getMessage('switch.open', '打开') : (_fieldProps$unChecked = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.unCheckedChildren) !== null && _fieldProps$unChecked !== void 0 ? _fieldProps$unChecked : intl.getMessage('switch.close', '关闭');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.checkedChildren, fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.unCheckedChildren, text]);\n if (mode === 'read') {\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n }));\n }\n return dom !== null && dom !== void 0 ? dom : '-';\n }\n if (mode === 'edit' || mode === 'update') {\n var _fieldProps$checked;\n var editDom = /*#__PURE__*/_jsx(Switch, _objectSpread(_objectSpread({\n ref: ref,\n size: light ? 'small' : undefined\n }, Omit(fieldProps, ['value'])), {}, {\n checked: (_fieldProps$checked = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.checked) !== null && _fieldProps$checked !== void 0 ? _fieldProps$checked : fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.value\n }));\n if (light) {\n var disabled = fieldProps.disabled,\n bordered = fieldProps.bordered;\n return /*#__PURE__*/_jsx(FieldLabel, {\n label: label,\n disabled: disabled,\n bordered: bordered,\n downIcon: false,\n value: /*#__PURE__*/_jsx(\"div\", {\n style: {\n paddingLeft: 8\n },\n children: editDom\n }),\n allowClear: false\n });\n }\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), editDom);\n }\n return editDom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldSwitch);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { Input } from 'antd';\nimport React, { useEffect, useImperativeHandle, useRef } from 'react';\n// 兼容代码-----------\nimport \"antd/es/input/style\";\n//------------\n\n/**\n * 最基本的组件,就是个普通的 Input\n *\n * @param\n */\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar FieldText = function FieldText(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n _ref$emptyText = _ref.emptyText,\n emptyText = _ref$emptyText === void 0 ? '-' : _ref$emptyText;\n var _ref2 = fieldProps || {},\n autoFocus = _ref2.autoFocus,\n _ref2$prefix = _ref2.prefix,\n prefix = _ref2$prefix === void 0 ? '' : _ref2$prefix,\n _ref2$suffix = _ref2.suffix,\n suffix = _ref2$suffix === void 0 ? '' : _ref2$suffix;\n var intl = useIntl();\n var inputRef = useRef();\n useImperativeHandle(ref, function () {\n return inputRef.current;\n }, []);\n useEffect(function () {\n if (autoFocus) {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n }\n }, [autoFocus]);\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsxs(_Fragment, {\n children: [prefix, text !== null && text !== void 0 ? text : emptyText, suffix]\n });\n if (render) {\n var _render;\n return (_render = render(text, _objectSpread({\n mode: mode\n }, fieldProps), dom)) !== null && _render !== void 0 ? _render : emptyText;\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var placeholder = intl.getMessage('tableForm.inputPlaceholder', '请输入');\n var _dom = /*#__PURE__*/_jsx(Input, _objectSpread({\n ref: inputRef,\n placeholder: placeholder,\n allowClear: true\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldText);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle } from '@ant-design/pro-utils';\nimport { ConfigProvider } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\n// 兼容代码-----------\nimport \"antd/es/input/style\";\n//------------\n\n/**\n * Input.TextArea 只读模式时渲染的组件\n *\n * @param\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar FieldTextAreaReadonly = function FieldTextAreaReadonly(_ref, ref) {\n var text = _ref.text;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var readonlyClassName = getPrefixCls('pro-field-readonly');\n var compClassName = \"\".concat(readonlyClassName, \"-textarea\");\n var _useStyle = useStyle('TextArea', function () {\n return _defineProperty({}, \".\".concat(compClassName), {\n display: 'inline-block',\n // padding: '4px 11px',\n lineHeight: '1.5715',\n maxWidth: '100%',\n whiteSpace: 'pre-wrap'\n });\n }),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n return wrapSSR( /*#__PURE__*/_jsx(\"span\", {\n ref: ref,\n className: classNames(hashId, readonlyClassName, compClassName),\n style: {},\n children: text !== null && text !== void 0 ? text : '-'\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(FieldTextAreaReadonly);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { Input } from 'antd';\nimport React from 'react';\nimport FieldTextAreaReadonly from \"./readonly\";\n\n// 兼容代码-----------\nimport \"antd/es/input/style\";\n//------------\n/**\n * 最基本的组件,就是个普通的 Input.TextArea\n *\n * @param\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar FieldTextArea = function FieldTextArea(props, ref) {\n var text = props.text,\n mode = props.mode,\n render = props.render,\n renderFormItem = props.renderFormItem,\n fieldProps = props.fieldProps;\n var intl = useIntl();\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(FieldTextAreaReadonly, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref\n }));\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), dom);\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom = /*#__PURE__*/_jsx(Input.TextArea, _objectSpread({\n ref: ref,\n rows: 3,\n onKeyPress: function onKeyPress(e) {\n if (e.key === 'Enter') e.stopPropagation();\n },\n placeholder: intl.getMessage('tableForm.inputPlaceholder', '请输入')\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldTextArea);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { FieldLabel, parseValueToDay } from '@ant-design/pro-utils';\nimport { DatePicker, TimePicker } from 'antd';\nimport dayjs from 'dayjs';\nimport React, { useState } from 'react';\n// 兼容代码-----------\nimport \"antd/es/date-picker/style\";\n//----------------------;\n\n/**\n * 时间选择组件\n *\n * @param\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar FieldTimePicker = function FieldTimePicker(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n light = _ref.light,\n label = _ref.label,\n format = _ref.format,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n plain = _ref.plain,\n fieldProps = _ref.fieldProps,\n lightLabel = _ref.lightLabel;\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n var intl = useIntl();\n var finalFormat = (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.format) || format || 'HH:mm:ss';\n var isNumberOrMoment = dayjs.isDayjs(text) || typeof text === 'number';\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(\"span\", {\n ref: ref,\n children: text ? dayjs(text, isNumberOrMoment ? undefined : finalFormat).format(finalFormat) : '-'\n });\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(\"span\", {\n children: dom\n }));\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom;\n var disabled = fieldProps.disabled,\n value = fieldProps.value;\n var dayValue = parseValueToDay(value, finalFormat);\n if (light) {\n var _fieldProps$placehold;\n _dom = /*#__PURE__*/_jsx(FieldLabel, {\n onClick: function onClick() {\n var _fieldProps$onOpenCha;\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha === void 0 ? void 0 : _fieldProps$onOpenCha.call(fieldProps, true);\n setOpen(true);\n },\n style: dayValue ? {\n paddingInlineEnd: 0\n } : undefined,\n label: label,\n disabled: disabled,\n value: dayValue || open ? /*#__PURE__*/_jsx(TimePicker, _objectSpread(_objectSpread({\n bordered: false,\n format: format,\n ref: ref\n }, fieldProps), {}, {\n placeholder: (_fieldProps$placehold = fieldProps.placeholder) !== null && _fieldProps$placehold !== void 0 ? _fieldProps$placehold : intl.getMessage('tableForm.selectPlaceholder', '请选择'),\n value: dayValue,\n onOpenChange: function onOpenChange(isOpen) {\n var _fieldProps$onOpenCha2;\n setOpen(isOpen);\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha2 = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha2 === void 0 ? void 0 : _fieldProps$onOpenCha2.call(fieldProps, isOpen);\n },\n open: open\n })) : null,\n downIcon: dayValue || open ? false : undefined,\n allowClear: false,\n ref: lightLabel\n });\n } else {\n _dom = /*#__PURE__*/_jsx(DatePicker.TimePicker, _objectSpread(_objectSpread({\n ref: ref,\n format: format,\n bordered: plain === undefined ? true : !plain\n }, fieldProps), {}, {\n value: dayValue\n }));\n }\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\n\n/**\n * 时间区间选择\n *\n * @param param0\n * @param ref\n */\nvar FieldTimeRangePickerComponents = function FieldTimeRangePickerComponents(_ref2, ref) {\n var text = _ref2.text,\n light = _ref2.light,\n label = _ref2.label,\n mode = _ref2.mode,\n lightLabel = _ref2.lightLabel,\n format = _ref2.format,\n render = _ref2.render,\n renderFormItem = _ref2.renderFormItem,\n plain = _ref2.plain,\n fieldProps = _ref2.fieldProps;\n var intl = useIntl();\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n open = _useState4[0],\n setOpen = _useState4[1];\n var finalFormat = (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.format) || format || 'HH:mm:ss';\n var _ref3 = Array.isArray(text) ? text : [],\n _ref4 = _slicedToArray(_ref3, 2),\n startText = _ref4[0],\n endText = _ref4[1];\n var startTextIsNumberOrMoment = dayjs.isDayjs(startText) || typeof startText === 'number';\n var endTextIsNumberOrMoment = dayjs.isDayjs(endText) || typeof endText === 'number';\n var parsedStartText = startText ? dayjs(startText, startTextIsNumberOrMoment ? undefined : finalFormat).format(finalFormat) : '';\n var parsedEndText = endText ? dayjs(endText, endTextIsNumberOrMoment ? undefined : finalFormat).format(finalFormat) : '';\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n children: [/*#__PURE__*/_jsx(\"div\", {\n children: parsedStartText || '-'\n }), /*#__PURE__*/_jsx(\"div\", {\n children: parsedEndText || '-'\n })]\n });\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(\"span\", {\n children: dom\n }));\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var dayValue = parseValueToDay(fieldProps.value, finalFormat);\n var _dom2;\n if (light) {\n var disabled = fieldProps.disabled,\n _fieldProps$placehold2 = fieldProps.placeholder,\n placeholder = _fieldProps$placehold2 === void 0 ? [intl.getMessage('tableForm.selectPlaceholder', '请选择'), intl.getMessage('tableForm.selectPlaceholder', '请选择')] : _fieldProps$placehold2;\n _dom2 = /*#__PURE__*/_jsx(FieldLabel, {\n onClick: function onClick() {\n var _fieldProps$onOpenCha3;\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha3 = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha3 === void 0 ? void 0 : _fieldProps$onOpenCha3.call(fieldProps, true);\n setOpen(true);\n },\n style: dayValue ? {\n paddingInlineEnd: 0\n } : undefined,\n label: label,\n disabled: disabled,\n placeholder: placeholder,\n value: dayValue || open ? /*#__PURE__*/_jsx(TimePicker.RangePicker, _objectSpread(_objectSpread({\n bordered: false,\n format: format,\n ref: ref\n }, fieldProps), {}, {\n placeholder: placeholder,\n value: dayValue,\n onOpenChange: function onOpenChange(isOpen) {\n var _fieldProps$onOpenCha4;\n setOpen(isOpen);\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha4 = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha4 === void 0 ? void 0 : _fieldProps$onOpenCha4.call(fieldProps, isOpen);\n },\n open: open\n })) : null,\n downIcon: dayValue || open ? false : undefined,\n allowClear: false,\n ref: lightLabel\n });\n } else {\n _dom2 = /*#__PURE__*/_jsx(TimePicker.RangePicker, _objectSpread(_objectSpread({\n ref: ref,\n format: format,\n bordered: plain === undefined ? true : !plain\n }, fieldProps), {}, {\n value: dayValue\n }));\n }\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom2);\n }\n return _dom2;\n }\n return null;\n};\nvar FieldTimeRangePicker = /*#__PURE__*/React.forwardRef(FieldTimeRangePickerComponents);\nexport { FieldTimeRangePicker };\nexport default /*#__PURE__*/React.forwardRef(FieldTimePicker);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"radioType\", \"renderFormItem\", \"mode\", \"light\", \"label\", \"render\"],\n _excluded2 = [\"onSearch\", \"onClear\", \"onChange\", \"onBlur\", \"showSearch\", \"autoClearSearchValue\", \"treeData\", \"fetchDataOnSearch\", \"searchValue\"];\nimport { useIntl } from '@ant-design/pro-provider';\nimport { FieldLabel } from '@ant-design/pro-utils';\nimport { ConfigProvider, Spin, TreeSelect } from 'antd';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { useContext, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { ObjToMap, proFieldParsingText, useFieldFetchData } from \"../Select\";\n\n// 兼容代码-----------\nimport \"antd/es/spin/style\";\nimport \"antd/es/tree-select/style\";\n//----------------------\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Tree select\n * A function that returns a React component.\n * @param ref\n */\nvar FieldTreeSelect = function FieldTreeSelect(_ref, ref) {\n var radioType = _ref.radioType,\n renderFormItem = _ref.renderFormItem,\n mode = _ref.mode,\n light = _ref.light,\n label = _ref.label,\n render = _ref.render,\n rest = _objectWithoutProperties(_ref, _excluded);\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var layoutClassName = getPrefixCls('pro-field-tree-select');\n var treeSelectRef = useRef(null);\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n var _ref2 = rest.fieldProps,\n onSearch = _ref2.onSearch,\n _onClear = _ref2.onClear,\n propsOnChange = _ref2.onChange,\n _onBlur = _ref2.onBlur,\n showSearch = _ref2.showSearch,\n autoClearSearchValue = _ref2.autoClearSearchValue,\n treeData = _ref2.treeData,\n fetchDataOnSearch = _ref2.fetchDataOnSearch,\n propsSearchValue = _ref2.searchValue,\n fieldProps = _objectWithoutProperties(_ref2, _excluded2);\n var intl = useIntl();\n var _useFieldFetchData = useFieldFetchData(_objectSpread(_objectSpread({}, rest), {}, {\n defaultKeyWords: propsSearchValue\n })),\n _useFieldFetchData2 = _slicedToArray(_useFieldFetchData, 3),\n loading = _useFieldFetchData2[0],\n options = _useFieldFetchData2[1],\n _fetchData = _useFieldFetchData2[2];\n var _useMergedState = useMergedState(undefined, {\n onChange: onSearch,\n value: propsSearchValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n searchValue = _useMergedState2[0],\n setSearchValue = _useMergedState2[1];\n useImperativeHandle(ref, function () {\n return _objectSpread(_objectSpread({}, treeSelectRef.current || {}), {}, {\n fetchData: function fetchData(keyWord) {\n return _fetchData(keyWord);\n }\n });\n });\n var optionsValueEnum = useMemo(function () {\n if (mode !== 'read') return;\n /**\n * Support TreeSelect fieldNames\n * @see https://ant.design/components/tree-select-cn\n */\n var _ref3 = (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.fieldNames) || {},\n _ref3$value = _ref3.value,\n valuePropsName = _ref3$value === void 0 ? 'value' : _ref3$value,\n _ref3$label = _ref3.label,\n labelPropsName = _ref3$label === void 0 ? 'label' : _ref3$label,\n _ref3$children = _ref3.children,\n childrenPropsName = _ref3$children === void 0 ? 'children' : _ref3$children;\n var valuesMap = new Map();\n var traverseOptions = function traverseOptions(_options) {\n if (!(_options !== null && _options !== void 0 && _options.length)) {\n return valuesMap;\n }\n var length = _options.length;\n var i = 0;\n while (i < length) {\n var cur = _options[i++];\n valuesMap.set(cur[valuePropsName], cur[labelPropsName]);\n traverseOptions(cur[childrenPropsName]);\n }\n return valuesMap;\n };\n return traverseOptions(options);\n }, [fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.fieldNames, mode, options]);\n var onChange = function onChange(value, optionList, extra) {\n // 将搜索框置空 和 antd 行为保持一致\n if (showSearch && autoClearSearchValue) {\n _fetchData(undefined);\n setSearchValue(undefined);\n }\n propsOnChange === null || propsOnChange === void 0 ? void 0 : propsOnChange(value, optionList, extra);\n };\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(_Fragment, {\n children: proFieldParsingText(rest.text, ObjToMap(rest.valueEnum || optionsValueEnum))\n });\n if (render) {\n var _render;\n return (_render = render(rest.text, _objectSpread({\n mode: mode\n }, fieldProps), dom)) !== null && _render !== void 0 ? _render : null;\n }\n return dom;\n }\n if (mode === 'edit') {\n var _fieldProps$value;\n var valuesLength = Array.isArray(fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.value) ? fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$value = fieldProps.value) === null || _fieldProps$value === void 0 ? void 0 : _fieldProps$value.length : 0;\n var _dom = /*#__PURE__*/_jsx(Spin, {\n spinning: loading,\n children: /*#__PURE__*/_jsx(TreeSelect, _objectSpread(_objectSpread({\n open: open,\n onDropdownVisibleChange: function onDropdownVisibleChange(isOpen) {\n var _fieldProps$onDropdow;\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onDropdow = fieldProps.onDropdownVisibleChange) === null || _fieldProps$onDropdow === void 0 ? void 0 : _fieldProps$onDropdow.call(fieldProps, isOpen);\n setOpen(isOpen);\n },\n ref: treeSelectRef,\n popupMatchSelectWidth: !light,\n placeholder: intl.getMessage('tableForm.selectPlaceholder', '请选择'),\n tagRender: light ? function (item) {\n var _fieldProps$value2;\n if (valuesLength < 2) return /*#__PURE__*/_jsx(_Fragment, {\n children: item.label\n });\n /**\n * 性能不好,等我给 antd 提个issue\n */\n var itemIndex = fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$value2 = fieldProps.value) === null || _fieldProps$value2 === void 0 ? void 0 : _fieldProps$value2.findIndex(function (v) {\n return v === item.value || v.value === item.value;\n });\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [item.label, \" \", itemIndex < valuesLength - 1 ? ',' : '']\n });\n } : undefined\n }, fieldProps), {}, {\n bordered: !light,\n treeData: options,\n showSearch: showSearch,\n style: _objectSpread({\n minWidth: 60\n }, fieldProps.style),\n allowClear: fieldProps.allowClear !== false,\n searchValue: searchValue,\n autoClearSearchValue: autoClearSearchValue,\n onClear: function onClear() {\n _onClear === null || _onClear === void 0 ? void 0 : _onClear();\n _fetchData(undefined);\n if (showSearch) {\n setSearchValue(undefined);\n }\n },\n onChange: onChange,\n onSearch: function onSearch(value) {\n // fix 不支持请求的情况下不刷新options\n if (fetchDataOnSearch && rest !== null && rest !== void 0 && rest.request) {\n _fetchData(value);\n }\n setSearchValue(value);\n },\n onBlur: function onBlur(event) {\n setSearchValue(undefined);\n _fetchData(undefined);\n _onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(event);\n },\n className: classNames(fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.className, layoutClassName)\n }))\n });\n if (renderFormItem) {\n var _renderFormItem;\n _dom = (_renderFormItem = renderFormItem(rest.text, _objectSpread(_objectSpread({\n mode: mode\n }, fieldProps), {}, {\n options: options,\n loading: loading\n }), _dom)) !== null && _renderFormItem !== void 0 ? _renderFormItem : null;\n }\n if (light) {\n var _fieldProps$value3;\n var disabled = fieldProps.disabled,\n placeholder = fieldProps.placeholder;\n var notEmpty = !!fieldProps.value && ((_fieldProps$value3 = fieldProps.value) === null || _fieldProps$value3 === void 0 ? void 0 : _fieldProps$value3.length) !== 0;\n return /*#__PURE__*/_jsx(FieldLabel, {\n label: label,\n disabled: disabled,\n placeholder: placeholder,\n onClick: function onClick() {\n var _fieldProps$onDropdow2;\n setOpen(true);\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onDropdow2 = fieldProps.onDropdownVisibleChange) === null || _fieldProps$onDropdow2 === void 0 ? void 0 : _fieldProps$onDropdow2.call(fieldProps, true);\n },\n bordered: rest.bordered,\n value: notEmpty || open ? _dom : null,\n style: notEmpty ? {\n paddingInlineEnd: 0\n } : undefined,\n allowClear: false,\n downIcon: false\n });\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldTreeSelect);","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport React, { useCallback, useRef, useState } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nfunction FieldHOC(props) {\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n labelTrigger = _useState2[0],\n setLabelTrigger = _useState2[1];\n var lightLabel = useRef(null);\n\n // 是label且不是label里面的clear图标触发事件\n var isTriggeredByLabel = useCallback(function (e) {\n var _lightLabel$current, _lightLabel$current$l, _lightLabel$current$l2, _lightLabel$current2, _lightLabel$current2$, _lightLabel$current2$2;\n // 两条语句结果分别命名,可读性好点\n var isLabelMouseDown = (_lightLabel$current = lightLabel.current) === null || _lightLabel$current === void 0 ? void 0 : (_lightLabel$current$l = _lightLabel$current.labelRef) === null || _lightLabel$current$l === void 0 ? void 0 : (_lightLabel$current$l2 = _lightLabel$current$l.current) === null || _lightLabel$current$l2 === void 0 ? void 0 : _lightLabel$current$l2.contains(e.target);\n var isClearMouseDown = (_lightLabel$current2 = lightLabel.current) === null || _lightLabel$current2 === void 0 ? void 0 : (_lightLabel$current2$ = _lightLabel$current2.clearRef) === null || _lightLabel$current2$ === void 0 ? void 0 : (_lightLabel$current2$2 = _lightLabel$current2$.current) === null || _lightLabel$current2$2 === void 0 ? void 0 : _lightLabel$current2$2.contains(e.target);\n return isLabelMouseDown && !isClearMouseDown;\n }, [lightLabel]);\n var handleMouseDown = function handleMouseDown(e) {\n if (isTriggeredByLabel(e)) {\n setLabelTrigger(true);\n }\n };\n var handleMouseUp = function handleMouseUp() {\n setLabelTrigger(false);\n };\n if (props.isLight) {\n return /*#__PURE__*/_jsx(\"div\", {\n onMouseDown: handleMouseDown,\n onMouseUp: handleMouseUp,\n children: /*#__PURE__*/React.cloneElement(props.children, {\n labelTrigger: labelTrigger,\n lightLabel: lightLabel\n })\n });\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: props.children\n });\n}\nexport default FieldHOC;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"fieldProps\"],\n _excluded2 = [\"fieldProps\"],\n _excluded3 = [\"fieldProps\"],\n _excluded4 = [\"fieldProps\"],\n _excluded5 = [\"text\", \"valueType\", \"mode\", \"onChange\", \"renderFormItem\", \"value\", \"readonly\", \"fieldProps\"],\n _excluded6 = [\"placeholder\"];\nimport ProConfigContext from '@ant-design/pro-provider';\nimport { omitUndefined, pickProProps, useRefFunction } from '@ant-design/pro-utils';\nimport { Avatar } from 'antd';\nimport { noteOnce } from \"rc-util/es/warning\";\nimport React, { useContext, useMemo } from 'react';\nimport FieldCascader from \"./components/Cascader\";\nimport FieldCheckbox from \"./components/Checkbox\";\nimport FieldCode from \"./components/Code\";\nimport FieldColorPicker from \"./components/ColorPicker\";\nimport FieldDatePicker from \"./components/DatePicker\";\nimport FieldDigit from \"./components/Digit\";\nimport FieldDigitRange from \"./components/DigitRange\";\nimport FieldFromNow from \"./components/FromNow\";\nimport FieldImage from \"./components/Image\";\nimport FieldIndexColumn from \"./components/IndexColumn\";\nimport FieldMoney from \"./components/Money\";\nimport FieldOptions from \"./components/Options\";\nimport FieldPassword from \"./components/Password\";\nimport FieldPercent from \"./components/Percent\";\nimport FieldProgress from \"./components/Progress\";\nimport FieldRadio from \"./components/Radio\";\nimport FieldRangePicker from \"./components/RangePicker\";\nimport FieldRate from \"./components/Rate\";\nimport FieldSecond from \"./components/Second\";\nimport FieldSegmented from \"./components/Segmented\";\nimport FieldSelect, { proFieldParsingText, proFieldParsingValueEnumToArray } from \"./components/Select\";\nimport FieldSlider from \"./components/Slider\";\nimport FieldStatus from \"./components/Status\";\nimport FieldSwitch from \"./components/Switch\";\nimport FieldText from \"./components/Text\";\nimport FieldTextArea from \"./components/TextArea\";\nimport FieldTimePicker, { FieldTimeRangePicker } from \"./components/TimePicker\";\nimport FieldTreeSelect from \"./components/TreeSelect\";\nimport FieldHOC from \"./FieldHOC\";\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport isoWeek from 'dayjs/plugin/isoWeek';\nimport localeData from 'dayjs/plugin/localeData';\nimport weekday from 'dayjs/plugin/weekday';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport dayjs from 'dayjs';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\ndayjs.extend(localeData);\ndayjs.extend(advancedFormat);\ndayjs.extend(isoWeek);\ndayjs.extend(weekOfYear);\ndayjs.extend(weekday);\nvar REQUEST_VALUE_TYPE = ['select', 'radio', 'radioButton', 'checkbook'];\n\n/** 默认的 Field 需要实现的功能 */ // eslint-disable-next-line @typescript-eslint/ban-types\n/** 轻量筛选的field属性 */\n/** Value type by function */\n/**\n * Render valueType object\n *\n * @param text String | number\n * @param valueType ProColumnsValueObjectType\n */\nvar defaultRenderTextByObject = function defaultRenderTextByObject(text, valueType, props) {\n var pickFormItemProps = pickProProps(props.fieldProps);\n if (valueType.type === 'progress') {\n return /*#__PURE__*/_jsx(FieldProgress, _objectSpread(_objectSpread({}, props), {}, {\n text: text,\n fieldProps: _objectSpread({\n status: valueType.status ? valueType.status : undefined\n }, pickFormItemProps)\n }));\n }\n if (valueType.type === 'money') {\n return /*#__PURE__*/_jsx(FieldMoney, _objectSpread(_objectSpread({\n locale: valueType.locale\n }, props), {}, {\n fieldProps: pickFormItemProps,\n text: text,\n moneySymbol: valueType.moneySymbol\n }));\n }\n if (valueType.type === 'percent') {\n return /*#__PURE__*/_jsx(FieldPercent, _objectSpread(_objectSpread({}, props), {}, {\n text: text,\n showSymbol: valueType.showSymbol,\n precision: valueType.precision,\n fieldProps: pickFormItemProps,\n showColor: valueType.showColor\n }));\n }\n if (valueType.type === 'image') {\n return /*#__PURE__*/_jsx(FieldImage, _objectSpread(_objectSpread({}, props), {}, {\n text: text,\n width: valueType.width\n }));\n }\n return text;\n};\n\n/**\n * 根据不同的类型来转化数值\n *\n * @param dataValue\n * @param valueType\n */\nvar defaultRenderText = function defaultRenderText(dataValue, valueType, props, valueTypeMap) {\n var _props$fieldProps;\n var _props$mode = props.mode,\n mode = _props$mode === void 0 ? 'read' : _props$mode,\n _props$emptyText = props.emptyText,\n emptyText = _props$emptyText === void 0 ? '-' : _props$emptyText;\n if (emptyText !== false && mode === 'read' && valueType !== 'option' && valueType !== 'switch') {\n if (typeof dataValue !== 'boolean' && typeof dataValue !== 'number' && !dataValue) {\n var fieldProps = props.fieldProps,\n render = props.render;\n if (render) {\n return render(dataValue, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: emptyText\n }));\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: emptyText\n });\n }\n }\n\n // eslint-disable-next-line no-param-reassign\n delete props.emptyText;\n if (_typeof(valueType) === 'object') {\n return defaultRenderTextByObject(dataValue, valueType, props);\n }\n var customValueTypeConfig = valueTypeMap && valueTypeMap[valueType];\n if (customValueTypeConfig) {\n // eslint-disable-next-line no-param-reassign\n delete props.ref;\n if (mode === 'read') {\n var _customValueTypeConfi;\n return (_customValueTypeConfi = customValueTypeConfig.render) === null || _customValueTypeConfi === void 0 ? void 0 : _customValueTypeConfi.call(customValueTypeConfig, dataValue, _objectSpread(_objectSpread({\n text: dataValue\n }, props), {}, {\n mode: mode || 'read'\n }), /*#__PURE__*/_jsx(_Fragment, {\n children: dataValue\n }));\n }\n if (mode === 'update' || mode === 'edit') {\n var _customValueTypeConfi2;\n return (_customValueTypeConfi2 = customValueTypeConfig.renderFormItem) === null || _customValueTypeConfi2 === void 0 ? void 0 : _customValueTypeConfi2.call(customValueTypeConfig, dataValue, _objectSpread({\n text: dataValue\n }, props), /*#__PURE__*/_jsx(_Fragment, {\n children: dataValue\n }));\n }\n }\n var needValueEnum = REQUEST_VALUE_TYPE.includes(valueType);\n var hasValueEnum = !!(props.valueEnum || props.request || props.options || (_props$fieldProps = props.fieldProps) !== null && _props$fieldProps !== void 0 && _props$fieldProps.options);\n noteOnce(!needValueEnum || hasValueEnum, \"\\u5982\\u679C\\u8BBE\\u7F6E\\u4E86 valueType \\u4E3A \".concat(REQUEST_VALUE_TYPE.join(','), \"\\u4E2D\\u4EFB\\u610F\\u4E00\\u4E2A\\uFF0C\\u5219\\u9700\\u8981\\u914D\\u7F6Eoptions\\uFF0Crequest, valueEnum \\u5176\\u4E2D\\u4E4B\\u4E00\\uFF0C\\u5426\\u5219\\u65E0\\u6CD5\\u751F\\u6210\\u9009\\u9879\\u3002\"));\n noteOnce(!needValueEnum || hasValueEnum, \"If you set valueType to any of \".concat(REQUEST_VALUE_TYPE.join(','), \", you need to configure options, request or valueEnum.\"));\n\n /** 如果是金额的值 */\n if (valueType === 'money') {\n return /*#__PURE__*/_jsx(FieldMoney, _objectSpread(_objectSpread({}, props), {}, {\n text: dataValue\n }));\n }\n\n /** 如果是日期的值 */\n if (valueType === 'date') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldDatePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-MM-DD\"\n }, props))\n });\n }\n\n /** 如果是周的值 */\n if (valueType === 'dateWeek') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldDatePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-wo\",\n picker: \"week\"\n }, props))\n });\n }\n\n /** 如果是周范围的值 */\n if (valueType === 'dateWeekRange') {\n var _fieldProps = props.fieldProps,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldRangePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-W\",\n showTime: true,\n fieldProps: _objectSpread({\n picker: 'week'\n }, _fieldProps)\n }, otherProps))\n });\n }\n\n /** 如果是月范围的值 */\n if (valueType === 'dateMonthRange') {\n var _fieldProps2 = props.fieldProps,\n _otherProps = _objectWithoutProperties(props, _excluded2);\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldRangePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-MM\",\n showTime: true,\n fieldProps: _objectSpread({\n picker: 'month'\n }, _fieldProps2)\n }, _otherProps))\n });\n }\n\n /** 如果是季范围的值 */\n if (valueType === 'dateQuarterRange') {\n var _fieldProps3 = props.fieldProps,\n _otherProps2 = _objectWithoutProperties(props, _excluded3);\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldRangePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-Q\",\n showTime: true,\n fieldProps: _objectSpread({\n picker: 'quarter'\n }, _fieldProps3)\n }, _otherProps2))\n });\n }\n\n /** 如果是年范围的值 */\n if (valueType === 'dateYearRange') {\n var _fieldProps4 = props.fieldProps,\n _otherProps3 = _objectWithoutProperties(props, _excluded4);\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldRangePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY\",\n showTime: true,\n fieldProps: _objectSpread({\n picker: 'year'\n }, _fieldProps4)\n }, _otherProps3))\n });\n }\n\n /** 如果是月的值 */\n if (valueType === 'dateMonth') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldDatePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-MM\",\n picker: \"month\"\n }, props))\n });\n }\n\n /** 如果是季度的值 */\n if (valueType === 'dateQuarter') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldDatePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-[Q]Q\",\n picker: \"quarter\"\n }, props))\n });\n }\n\n /** 如果是年的值 */\n if (valueType === 'dateYear') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldDatePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY\",\n picker: \"year\"\n }, props))\n });\n }\n\n /** 如果是日期范围的值 */\n if (valueType === 'dateRange') {\n return /*#__PURE__*/_jsx(FieldRangePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-MM-DD\"\n }, props));\n }\n\n /** 如果是日期加时间类型的值 */\n if (valueType === 'dateTime') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldDatePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-MM-DD HH:mm:ss\",\n showTime: true\n }, props))\n });\n }\n\n /** 如果是日期加时间类型的值的值 */\n if (valueType === 'dateTimeRange') {\n // 值不存在的时候显示 \"-\"\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldRangePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-MM-DD HH:mm:ss\",\n showTime: true\n }, props))\n });\n }\n\n /** 如果是时间类型的值 */\n if (valueType === 'time') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldTimePicker, _objectSpread({\n text: dataValue,\n format: \"HH:mm:ss\"\n }, props))\n });\n }\n\n /** 如果是时间类型的值 */\n if (valueType === 'timeRange') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldTimeRangePicker, _objectSpread({\n text: dataValue,\n format: \"HH:mm:ss\"\n }, props))\n });\n }\n if (valueType === 'fromNow') {\n return /*#__PURE__*/_jsx(FieldFromNow, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'index') {\n return /*#__PURE__*/_jsx(FieldIndexColumn, {\n children: dataValue + 1\n });\n }\n if (valueType === 'indexBorder') {\n return /*#__PURE__*/_jsx(FieldIndexColumn, {\n border: true,\n children: dataValue + 1\n });\n }\n if (valueType === 'progress') {\n return /*#__PURE__*/_jsx(FieldProgress, _objectSpread(_objectSpread({}, props), {}, {\n text: dataValue\n }));\n }\n /** 百分比, 默认展示符号, 不展示小数位 */\n if (valueType === 'percent') {\n return /*#__PURE__*/_jsx(FieldPercent, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'avatar' && typeof dataValue === 'string' && props.mode === 'read') {\n return /*#__PURE__*/_jsx(Avatar, {\n src: dataValue,\n size: 22,\n shape: \"circle\"\n });\n }\n if (valueType === 'code') {\n return /*#__PURE__*/_jsx(FieldCode, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'jsonCode') {\n return /*#__PURE__*/_jsx(FieldCode, _objectSpread({\n text: dataValue,\n language: \"json\"\n }, props));\n }\n if (valueType === 'textarea') {\n return /*#__PURE__*/_jsx(FieldTextArea, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'digit') {\n return /*#__PURE__*/_jsx(FieldDigit, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'digitRange') {\n return /*#__PURE__*/_jsx(FieldDigitRange, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'second') {\n return /*#__PURE__*/_jsx(FieldSecond, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'select' || valueType === 'text' && (props.valueEnum || props.request)) {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldSelect, _objectSpread({\n text: dataValue\n }, props))\n });\n }\n if (valueType === 'checkbox') {\n return /*#__PURE__*/_jsx(FieldCheckbox, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'radio') {\n return /*#__PURE__*/_jsx(FieldRadio, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'radioButton') {\n return /*#__PURE__*/_jsx(FieldRadio, _objectSpread({\n radioType: \"button\",\n text: dataValue\n }, props));\n }\n if (valueType === 'rate') {\n return /*#__PURE__*/_jsx(FieldRate, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'slider') {\n return /*#__PURE__*/_jsx(FieldSlider, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'switch') {\n return /*#__PURE__*/_jsx(FieldSwitch, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'option') {\n return /*#__PURE__*/_jsx(FieldOptions, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'password') {\n return /*#__PURE__*/_jsx(FieldPassword, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'image') {\n return /*#__PURE__*/_jsx(FieldImage, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'cascader') {\n return /*#__PURE__*/_jsx(FieldCascader, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'treeSelect') {\n return /*#__PURE__*/_jsx(FieldTreeSelect, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'color') {\n return /*#__PURE__*/_jsx(FieldColorPicker, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'segmented') {\n return /*#__PURE__*/_jsx(FieldSegmented, _objectSpread({\n text: dataValue\n }, props));\n }\n return /*#__PURE__*/_jsx(FieldText, _objectSpread({\n text: dataValue\n }, props));\n};\nexport { defaultRenderText };\nexport { FieldPercent, FieldIndexColumn, FieldProgress, FieldMoney, FieldDatePicker, FieldRangePicker, FieldCode, FieldTimePicker, FieldText, FieldStatus, FieldSelect, proFieldParsingText, proFieldParsingValueEnumToArray };\n\n/** ProField 的类型 */\n\nvar ProFieldComponent = function ProFieldComponent(_ref, ref) {\n var text = _ref.text,\n _ref$valueType = _ref.valueType,\n valueType = _ref$valueType === void 0 ? 'text' : _ref$valueType,\n _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? 'read' : _ref$mode,\n onChange = _ref.onChange,\n renderFormItem = _ref.renderFormItem,\n value = _ref.value,\n readonly = _ref.readonly,\n restFieldProps = _ref.fieldProps,\n rest = _objectWithoutProperties(_ref, _excluded5);\n var context = useContext(ProConfigContext);\n var onChangeCallBack = useRefFunction(function () {\n var _restFieldProps$onCha;\n for (var _len = arguments.length, restParams = new Array(_len), _key = 0; _key < _len; _key++) {\n restParams[_key] = arguments[_key];\n }\n restFieldProps === null || restFieldProps === void 0 ? void 0 : (_restFieldProps$onCha = restFieldProps.onChange) === null || _restFieldProps$onCha === void 0 ? void 0 : _restFieldProps$onCha.call.apply(_restFieldProps$onCha, [restFieldProps].concat(restParams));\n onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, restParams);\n });\n var fieldProps = useMemo(function () {\n return (value !== undefined || restFieldProps) && _objectSpread(_objectSpread({\n value: value\n }, omitUndefined(restFieldProps)), {}, {\n onChange: onChangeCallBack\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, restFieldProps, onChangeCallBack]);\n var renderedDom = useMemo(function () {\n var _ref2, _fieldProps$value, _ref3, _rest$placeholder, _rest$placeholder2;\n return defaultRenderText(mode === 'edit' ? (_ref2 = (_fieldProps$value = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.value) !== null && _fieldProps$value !== void 0 ? _fieldProps$value : text) !== null && _ref2 !== void 0 ? _ref2 : '' : (_ref3 = text !== null && text !== void 0 ? text : fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.value) !== null && _ref3 !== void 0 ? _ref3 : '', valueType || 'text', omitUndefined(_objectSpread(_objectSpread({\n ref: ref\n }, rest), {}, {\n mode: readonly ? 'read' : mode,\n renderFormItem: renderFormItem ? function (curText, props, dom) {\n var _placeholder = props.placeholder,\n restProps = _objectWithoutProperties(props, _excluded6);\n var newDom = renderFormItem(curText, restProps, dom);\n // renderFormItem 之后的dom可能没有props,这里会帮忙注入一下\n if ( /*#__PURE__*/React.isValidElement(newDom)) return /*#__PURE__*/React.cloneElement(newDom, _objectSpread(_objectSpread({}, fieldProps), newDom.props || {}));\n return newDom;\n } : undefined,\n placeholder: renderFormItem ? undefined : (_rest$placeholder = rest === null || rest === void 0 ? void 0 : rest.placeholder) !== null && _rest$placeholder !== void 0 ? _rest$placeholder : fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.placeholder,\n fieldProps: pickProProps(omitUndefined(_objectSpread(_objectSpread({}, fieldProps), {}, {\n placeholder: renderFormItem ? undefined : (_rest$placeholder2 = rest === null || rest === void 0 ? void 0 : rest.placeholder) !== null && _rest$placeholder2 !== void 0 ? _rest$placeholder2 : fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.placeholder\n })))\n })), context.valueTypeMap || {});\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [context.valueTypeMap, fieldProps, mode, readonly, ref, renderFormItem, rest, text, valueType]);\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: renderedDom\n });\n};\nexport var ProField = /*#__PURE__*/React.forwardRef(ProFieldComponent);\nexport default ProField;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"fieldProps\", \"children\", \"labelCol\", \"label\", \"autoFocus\", \"isDefaultDom\", \"render\", \"proFieldProps\", \"renderFormItem\", \"valueType\", \"initialValue\", \"onChange\", \"valueEnum\", \"params\", \"name\", \"dependenciesValues\", \"cacheForSwr\", \"valuePropName\"];\nimport ProField from '@ant-design/pro-field';\nimport { isDeepEqualReact, runFunction, useRefFunction } from '@ant-design/pro-utils';\nimport React, { memo, useContext, useMemo } from 'react';\nimport { createField } from \"../../BaseForm/createField\";\nimport { EditOrReadOnlyContext } from \"../../BaseForm/EditOrReadOnlyContext\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar BaseProFormField = function BaseProFormField(props) {\n var fieldProps = props.fieldProps,\n children = props.children,\n labelCol = props.labelCol,\n label = props.label,\n autoFocus = props.autoFocus,\n isDefaultDom = props.isDefaultDom,\n render = props.render,\n proFieldProps = props.proFieldProps,\n renderFormItem = props.renderFormItem,\n valueType = props.valueType,\n initialValue = props.initialValue,\n _onChange = props.onChange,\n valueEnum = props.valueEnum,\n params = props.params,\n name = props.name,\n dependenciesValues = props.dependenciesValues,\n _props$cacheForSwr = props.cacheForSwr,\n cacheForSwr = _props$cacheForSwr === void 0 ? false : _props$cacheForSwr,\n _props$valuePropName = props.valuePropName,\n valuePropName = _props$valuePropName === void 0 ? 'value' : _props$valuePropName,\n restProps = _objectWithoutProperties(props, _excluded);\n var modeContext = useContext(EditOrReadOnlyContext);\n var propsParams = useMemo(function () {\n // 使用dependencies时 dependenciesValues是有值的\n // 此时如果存在request,注入dependenciesValues\n return dependenciesValues && restProps.request ? _objectSpread(_objectSpread({}, params), dependenciesValues || {}) : params;\n }, [dependenciesValues, params, restProps.request]);\n var memoUnChange = useRefFunction(function () {\n if (fieldProps !== null && fieldProps !== void 0 && fieldProps.onChange) {\n var _fieldProps$onChange;\n for (var _len = arguments.length, restParams = new Array(_len), _key = 0; _key < _len; _key++) {\n restParams[_key] = arguments[_key];\n }\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onChange = fieldProps.onChange) === null || _fieldProps$onChange === void 0 ? void 0 : _fieldProps$onChange.call.apply(_fieldProps$onChange, [fieldProps].concat(restParams));\n return;\n }\n });\n var memoFieldProps = useMemo(function () {\n return _objectSpread(_objectSpread({\n autoFocus: autoFocus\n }, fieldProps), {}, {\n onChange: memoUnChange\n });\n }, [autoFocus, fieldProps, memoUnChange]);\n var childrenRender = useMemo(function () {\n // 防止 formItem 的值被吃掉\n if (children) {\n if ( /*#__PURE__*/React.isValidElement(children)) {\n return /*#__PURE__*/React.cloneElement(children, _objectSpread(_objectSpread({}, restProps), {}, {\n onChange: function onChange() {\n for (var _len2 = arguments.length, restParams = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restParams[_key2] = arguments[_key2];\n }\n if (fieldProps !== null && fieldProps !== void 0 && fieldProps.onChange) {\n var _fieldProps$onChange2;\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onChange2 = fieldProps.onChange) === null || _fieldProps$onChange2 === void 0 ? void 0 : _fieldProps$onChange2.call.apply(_fieldProps$onChange2, [fieldProps].concat(restParams));\n return;\n }\n _onChange === null || _onChange === void 0 ? void 0 : _onChange.apply(void 0, restParams);\n }\n }, children.props));\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: children\n });\n }\n return;\n }, [children, fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.onChange, _onChange, restProps]);\n if (childrenRender) {\n return childrenRender;\n }\n return /*#__PURE__*/_jsx(ProField, _objectSpread(_objectSpread(_objectSpread({\n text: fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps[valuePropName],\n render: render,\n renderFormItem: renderFormItem,\n valueType: valueType || 'text',\n cacheForSwr: cacheForSwr,\n fieldProps: memoFieldProps,\n valueEnum: runFunction(valueEnum)\n }, proFieldProps), restProps), {}, {\n mode: (proFieldProps === null || proFieldProps === void 0 ? void 0 : proFieldProps.mode) || modeContext.mode || 'edit',\n params: propsParams\n }));\n};\nvar ProFormField = createField( /*#__PURE__*/memo(BaseProFormField, function (prevProps, nextProps) {\n return isDeepEqualReact(nextProps, prevProps, ['onChange', 'onBlur']);\n}));\nexport default ProFormField;","export var isDropdownValueType = function isDropdownValueType(valueType) {\n var isDropdown = false;\n if (typeof valueType === 'string' && valueType.startsWith('date') && !valueType.endsWith('Range') || valueType === 'select' || valueType === 'time') {\n isDropdown = true;\n }\n return isDropdown;\n};","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport dayjs from 'dayjs';\n/**\n * 通过 format 来格式化日期,因为支持了function 所以需要单独的方法来处理\n * @param {any} endText\n * @param {FormatType} format\n * @return string\n */\nvar formatString = function formatString(endText, format) {\n if (typeof format === 'function') {\n return format(dayjs(endText));\n }\n return dayjs(endText).format(format);\n};\n/**\n * 格式化区域日期,如果是一个数组,会返回 start ~ end\n * @param {any} value\n * @param {FormatType | FormatType[]} format\n * returns string\n */\nexport var dateArrayFormatter = function dateArrayFormatter(value, format) {\n var _ref = Array.isArray(value) ? value : [],\n _ref2 = _slicedToArray(_ref, 2),\n startText = _ref2[0],\n endText = _ref2[1];\n var formatFirst;\n var formatEnd;\n if (Array.isArray(format)) {\n formatFirst = format[0];\n formatEnd = format[1];\n } else {\n formatFirst = format;\n formatEnd = format;\n }\n\n // activePickerIndex for https://github.com/ant-design/ant-design/issues/22158\n var parsedStartText = startText ? formatString(startText, formatFirst) : '';\n var parsedEndText = endText ? formatString(endText, formatEnd) : '';\n var valueStr = parsedStartText && parsedEndText ? \"\".concat(parsedStartText, \" ~ \").concat(parsedEndText) : '';\n return valueStr;\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle as useAntdStyle } from '@ant-design/pro-provider';\nvar genProStyle = function genProStyle(token) {\n var _ref;\n return _ref = {}, _defineProperty(_ref, \"\".concat(token.componentCls, \"-collapse-label\"), {\n paddingInline: 1,\n paddingBlock: 1\n }), _defineProperty(_ref, \"\".concat(token.componentCls, \"-container\"), _defineProperty({}, \"\".concat(token.antCls, \"-form-item\"), {\n marginBlockEnd: 0\n })), _ref;\n};\nexport function useStyle(prefixCls) {\n return useAntdStyle('LightWrapper', function (token) {\n var proToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls)\n });\n return [genProStyle(proToken)];\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"label\", \"size\", \"disabled\", \"onChange\", \"className\", \"style\", \"children\", \"valuePropName\", \"placeholder\", \"labelFormatter\", \"bordered\", \"footerRender\", \"allowClear\", \"otherFieldProps\", \"valueType\", \"placement\"];\nimport { dateArrayFormatter, dateFormatterMap, FieldLabel, FilterDropdown, useMountMergeState } from '@ant-design/pro-utils';\nimport { ConfigProvider } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext, useMemo, useState } from 'react';\nimport { useStyle } from \"./style\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar LightWrapper = function LightWrapper(props) {\n var _objectSpread2;\n var label = props.label,\n size = props.size,\n disabled = props.disabled,\n propsOnChange = props.onChange,\n className = props.className,\n style = props.style,\n children = props.children,\n valuePropName = props.valuePropName,\n placeholder = props.placeholder,\n labelFormatter = props.labelFormatter,\n bordered = props.bordered,\n footerRender = props.footerRender,\n allowClear = props.allowClear,\n otherFieldProps = props.otherFieldProps,\n valueType = props.valueType,\n placement = props.placement,\n rest = _objectWithoutProperties(props, _excluded);\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-field-light-wrapper');\n var _useStyle = useStyle(prefixCls),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var _useState = useState(props[valuePropName]),\n _useState2 = _slicedToArray(_useState, 2),\n tempValue = _useState2[0],\n setTempValue = _useState2[1];\n var _useMountMergeState = useMountMergeState(false),\n _useMountMergeState2 = _slicedToArray(_useMountMergeState, 2),\n open = _useMountMergeState2[0],\n setOpen = _useMountMergeState2[1];\n var onChange = function onChange() {\n var _otherFieldProps$onCh;\n for (var _len = arguments.length, restParams = new Array(_len), _key = 0; _key < _len; _key++) {\n restParams[_key] = arguments[_key];\n }\n otherFieldProps === null || otherFieldProps === void 0 ? void 0 : (_otherFieldProps$onCh = otherFieldProps.onChange) === null || _otherFieldProps$onCh === void 0 ? void 0 : _otherFieldProps$onCh.call.apply(_otherFieldProps$onCh, [otherFieldProps].concat(restParams));\n propsOnChange === null || propsOnChange === void 0 ? void 0 : propsOnChange.apply(void 0, restParams);\n };\n var labelValue = props[valuePropName];\n\n /** DataRange的转化,dayjs 的 toString 有点不好用 */\n var labelValueText = useMemo(function () {\n var _valueType$toLowerCas;\n if (!labelValue) return labelValue;\n if (valueType !== null && valueType !== void 0 && (_valueType$toLowerCas = valueType.toLowerCase()) !== null && _valueType$toLowerCas !== void 0 && _valueType$toLowerCas.endsWith('range') && valueType !== 'digitRange' && !labelFormatter) {\n return dateArrayFormatter(labelValue, dateFormatterMap[valueType] || 'YYYY-MM-DD');\n }\n if (Array.isArray(labelValue)) return labelValue.map(function (item) {\n if (_typeof(item) === 'object' && item.label && item.value) {\n return item.label;\n }\n return item;\n });\n return labelValue;\n }, [labelValue, valueType, labelFormatter]);\n return wrapSSR( /*#__PURE__*/_jsx(FilterDropdown, {\n disabled: disabled,\n open: open,\n onOpenChange: setOpen,\n placement: placement,\n label: /*#__PURE__*/_jsx(FieldLabel, {\n ellipsis: true,\n size: size,\n onClear: function onClear() {\n onChange === null || onChange === void 0 ? void 0 : onChange();\n setTempValue('');\n },\n bordered: bordered,\n style: style,\n className: className,\n label: label,\n placeholder: placeholder,\n value: labelValueText,\n disabled: disabled,\n formatter: labelFormatter,\n allowClear: allowClear\n }),\n footer: {\n onClear: function onClear() {\n return setTempValue('');\n },\n onConfirm: function onConfirm() {\n onChange === null || onChange === void 0 ? void 0 : onChange(tempValue);\n setOpen(false);\n }\n },\n footerRender: footerRender,\n children: /*#__PURE__*/_jsx(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-container\"), hashId, className),\n style: style,\n children: /*#__PURE__*/React.cloneElement(children, _objectSpread(_objectSpread({}, rest), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, valuePropName, tempValue), _defineProperty(_objectSpread2, \"onChange\", function onChange(e) {\n setTempValue(e !== null && e !== void 0 && e.target ? e.target.value : e);\n }), _objectSpread2), children.props))\n })\n }));\n};\nexport { LightWrapper };","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"onChange\", \"onBlur\", \"ignoreFormItem\", \"valuePropName\"],\n _excluded2 = [\"children\", \"addonAfter\", \"addonBefore\", \"valuePropName\", \"convertValue\"],\n _excluded3 = [\"valueType\", \"transform\", \"dataFormat\", \"ignoreFormItem\", \"lightProps\", \"children\"];\nimport { isDropdownValueType, omitUndefined, useRefFunction } from '@ant-design/pro-utils';\nimport { ConfigProvider, Form } from 'antd';\nimport React, { useContext, useEffect, useMemo } from 'react';\nimport { LightWrapper } from \"../../BaseForm\";\nimport FieldContext from \"../../FieldContext\";\nimport { FormListContext } from \"../List\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nvar FormItemProvide = /*#__PURE__*/React.createContext({});\n\n/**\n * 把value扔给 fieldProps,方便给自定义用\n *\n * @param param0\n * @returns\n */\nvar WithValueFomFiledProps = function WithValueFomFiledProps(formFieldProps) {\n var filedChildren = formFieldProps.children,\n onChange = formFieldProps.onChange,\n onBlur = formFieldProps.onBlur,\n ignoreFormItem = formFieldProps.ignoreFormItem,\n _formFieldProps$value = formFieldProps.valuePropName,\n valuePropName = _formFieldProps$value === void 0 ? 'value' : _formFieldProps$value,\n restProps = _objectWithoutProperties(formFieldProps, _excluded);\n var onChangeMemo = useRefFunction(function () {\n var _filedChildren$type, _filedChildren$props, _filedChildren$props$, _filedChildren$props2, _filedChildren$props3, _filedChildren$props4;\n for (var _len = arguments.length, restParams = new Array(_len), _key = 0; _key < _len; _key++) {\n restParams[_key] = arguments[_key];\n }\n onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, restParams);\n // @ts-ignore\n if ((filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$type = filedChildren.type) === null || _filedChildren$type === void 0 ? void 0 : _filedChildren$type.displayName) !== 'ProFormComponent') return;\n if (! /*#__PURE__*/React.isValidElement(filedChildren)) return undefined;\n filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$props = filedChildren.props) === null || _filedChildren$props === void 0 ? void 0 : (_filedChildren$props$ = _filedChildren$props.onChange) === null || _filedChildren$props$ === void 0 ? void 0 : _filedChildren$props$.call.apply(_filedChildren$props$, [_filedChildren$props].concat(restParams));\n filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$props2 = filedChildren.props) === null || _filedChildren$props2 === void 0 ? void 0 : (_filedChildren$props3 = _filedChildren$props2.fieldProps) === null || _filedChildren$props3 === void 0 ? void 0 : (_filedChildren$props4 = _filedChildren$props3.onChange) === null || _filedChildren$props4 === void 0 ? void 0 : _filedChildren$props4.call.apply(_filedChildren$props4, [_filedChildren$props3].concat(restParams));\n });\n var onBlurMemo = useRefFunction(function () {\n var _filedChildren$type2, _filedChildren$props5, _filedChildren$props6, _filedChildren$props7, _filedChildren$props8, _filedChildren$props9;\n // @ts-ignore\n if ((filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$type2 = filedChildren.type) === null || _filedChildren$type2 === void 0 ? void 0 : _filedChildren$type2.displayName) !== 'ProFormComponent') return;\n if (! /*#__PURE__*/React.isValidElement(filedChildren)) return;\n for (var _len2 = arguments.length, restParams = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restParams[_key2] = arguments[_key2];\n }\n onBlur === null || onBlur === void 0 ? void 0 : onBlur.apply(void 0, restParams);\n filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$props5 = filedChildren.props) === null || _filedChildren$props5 === void 0 ? void 0 : (_filedChildren$props6 = _filedChildren$props5.onBlur) === null || _filedChildren$props6 === void 0 ? void 0 : _filedChildren$props6.call.apply(_filedChildren$props6, [_filedChildren$props5].concat(restParams));\n filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$props7 = filedChildren.props) === null || _filedChildren$props7 === void 0 ? void 0 : (_filedChildren$props8 = _filedChildren$props7.fieldProps) === null || _filedChildren$props8 === void 0 ? void 0 : (_filedChildren$props9 = _filedChildren$props8.onBlur) === null || _filedChildren$props9 === void 0 ? void 0 : _filedChildren$props9.call.apply(_filedChildren$props9, [_filedChildren$props8].concat(restParams));\n });\n var fieldProps = useMemo(function () {\n var _filedChildren$type3, _filedChildren$props10;\n // @ts-ignore\n if ((filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$type3 = filedChildren.type) === null || _filedChildren$type3 === void 0 ? void 0 : _filedChildren$type3.displayName) !== 'ProFormComponent') return undefined;\n if (! /*#__PURE__*/React.isValidElement(filedChildren)) return undefined;\n return omitUndefined(_objectSpread(_objectSpread(_defineProperty({\n id: restProps.id\n }, valuePropName, formFieldProps[valuePropName]), (filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$props10 = filedChildren.props) === null || _filedChildren$props10 === void 0 ? void 0 : _filedChildren$props10.fieldProps) || {}), {}, {\n onBlur: onBlurMemo,\n // 这个 onChange 是 Form.Item 添加上的,\n // 要通过 fieldProps 透传给 ProField 调用\n onChange: onChangeMemo\n }));\n }, [filedChildren, formFieldProps, onBlurMemo, onChangeMemo, restProps.id, valuePropName]);\n var finalChange = useMemo(function () {\n if (fieldProps) return undefined;\n if (! /*#__PURE__*/React.isValidElement(filedChildren)) return undefined;\n return function () {\n var _filedChildren$props11, _filedChildren$props12;\n for (var _len3 = arguments.length, restParams = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n restParams[_key3] = arguments[_key3];\n }\n onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, restParams);\n filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$props11 = filedChildren.props) === null || _filedChildren$props11 === void 0 ? void 0 : (_filedChildren$props12 = _filedChildren$props11.onChange) === null || _filedChildren$props12 === void 0 ? void 0 : _filedChildren$props12.call.apply(_filedChildren$props12, [_filedChildren$props11].concat(restParams));\n };\n }, [fieldProps, filedChildren, onChange]);\n if (! /*#__PURE__*/React.isValidElement(filedChildren)) return /*#__PURE__*/_jsx(_Fragment, {\n children: filedChildren\n });\n return /*#__PURE__*/React.cloneElement(filedChildren, omitUndefined(_objectSpread(_objectSpread(_objectSpread({}, restProps), {}, _defineProperty({}, valuePropName, formFieldProps[valuePropName]), filedChildren.props), {}, {\n onChange: finalChange,\n fieldProps: fieldProps\n })));\n};\n/**\n * 支持了一下前置 dom 和后置的 dom 同时包一个provide\n *\n * @param WarpFormItemProps\n * @returns\n */\nvar WarpFormItem = function WarpFormItem(_ref) {\n var children = _ref.children,\n addonAfter = _ref.addonAfter,\n addonBefore = _ref.addonBefore,\n valuePropName = _ref.valuePropName,\n convertValue = _ref.convertValue,\n props = _objectWithoutProperties(_ref, _excluded2);\n var formDom = useMemo(function () {\n var getValuePropsFunc = function getValuePropsFunc(value) {\n var _convertValue;\n var newValue = (_convertValue = convertValue === null || convertValue === void 0 ? void 0 : convertValue(value, props.name)) !== null && _convertValue !== void 0 ? _convertValue : value;\n if (props.getValueProps) return props.getValueProps(newValue);\n return _defineProperty({}, valuePropName || 'value', newValue);\n };\n if (!convertValue && !props.getValueProps) {\n getValuePropsFunc = undefined;\n }\n if (!addonAfter && !addonBefore) {\n return /*#__PURE__*/_jsx(Form.Item, _objectSpread(_objectSpread({}, props), {}, {\n valuePropName: valuePropName,\n getValueProps: getValuePropsFunc,\n children: children\n }));\n }\n return /*#__PURE__*/_jsx(Form.Item, _objectSpread(_objectSpread(_objectSpread({}, props), {}, {\n valuePropName: valuePropName\n // @ts-ignore\n ,\n _internalItemRender: {\n mark: 'pro_table_render',\n render: function render(inputProps, doms) {\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsxs(\"div\", {\n style: {\n display: 'flex',\n alignItems: 'center'\n },\n children: [addonBefore ? /*#__PURE__*/_jsx(\"div\", {\n style: {\n marginInlineEnd: 8\n },\n children: addonBefore\n }) : null, doms.input, addonAfter ? /*#__PURE__*/_jsx(\"div\", {\n style: {\n marginInlineStart: 8\n },\n children: addonAfter\n }) : null]\n }), doms.extra, doms.errorList]\n });\n }\n }\n }, props), {}, {\n getValueProps: getValuePropsFunc,\n children: children\n }));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [addonAfter, addonBefore, children, convertValue === null || convertValue === void 0 ? void 0 : convertValue.toString(), props]);\n return /*#__PURE__*/_jsx(FormItemProvide.Provider, {\n value: {\n name: props.name,\n label: props.label\n },\n children: formDom\n });\n};\nvar ProFormItem = function ProFormItem(props) {\n var _ConfigProvider$useCo, _rest$name2, _rest$name3, _rest$name4;\n /** 从 context 中拿到的值 */\n var _ref3 = (ConfigProvider === null || ConfigProvider === void 0 ? void 0 : (_ConfigProvider$useCo = ConfigProvider.useConfig) === null || _ConfigProvider$useCo === void 0 ? void 0 : _ConfigProvider$useCo.call(ConfigProvider)) || {\n componentSize: 'middle'\n },\n componentSize = _ref3.componentSize;\n var size = componentSize;\n var valueType = props.valueType,\n transform = props.transform,\n dataFormat = props.dataFormat,\n ignoreFormItem = props.ignoreFormItem,\n _props$lightProps = props.lightProps,\n lightProps = _props$lightProps === void 0 ? {} : _props$lightProps,\n unusedChildren = props.children,\n rest = _objectWithoutProperties(props, _excluded3);\n var formListField = useContext(FormListContext);\n\n // ProFromList 的 filed,里面有name和key\n /** 从 context 中拿到的值 */\n var name = useMemo(function () {\n if (props.name === undefined) return props.name;\n if (formListField.name !== undefined) {\n return [formListField.name, props.name].flat(1);\n }\n return props.name;\n }, [formListField.name, props.name]);\n\n /** 从 context 中拿到的值 */\n var _React$useContext = React.useContext(FieldContext),\n setFieldValueType = _React$useContext.setFieldValueType,\n formItemProps = _React$useContext.formItemProps;\n useEffect(function () {\n // 如果 setFieldValueType 和 props.name 不存在不存入\n if (!setFieldValueType || !props.name) {\n return;\n }\n // Field.type === 'ProField' 时 props 里面是有 valueType 的,所以要设置一下\n // 写一个 ts 比较麻烦,用 any 顶一下\n setFieldValueType([formListField.listName, props.name].flat(1).filter(function (itemName) {\n return itemName !== undefined;\n }), {\n valueType: valueType || 'text',\n dateFormat: dataFormat,\n transform: transform\n });\n }, [formListField.listName, name, dataFormat, props.name, setFieldValueType, transform, valueType]);\n var isDropdown = /*#__PURE__*/React.isValidElement(props.children) && isDropdownValueType(valueType || props.children.props.valueType);\n var noLightFormItem = useMemo(function () {\n if (!lightProps.light || lightProps.customLightMode || isDropdown) {\n return true;\n }\n return false;\n }, [lightProps.customLightMode, isDropdown, lightProps.light]);\n\n // formItem 支持function,如果是function 我就直接不管了\n if (typeof props.children === 'function') {\n var _rest$name;\n return /*#__PURE__*/_createElement(WarpFormItem, _objectSpread(_objectSpread({}, rest), {}, {\n name: name,\n key: rest.proFormFieldKey || ((_rest$name = rest.name) === null || _rest$name === void 0 ? void 0 : _rest$name.toString())\n }), props.children);\n }\n var children = /*#__PURE__*/_jsx(WithValueFomFiledProps, {\n valuePropName: props.valuePropName,\n children: props.children\n }, rest.proFormFieldKey || ((_rest$name2 = rest.name) === null || _rest$name2 === void 0 ? void 0 : _rest$name2.toString()));\n var lightDom = noLightFormItem ? children : /*#__PURE__*/_createElement(LightWrapper, _objectSpread(_objectSpread({}, lightProps), {}, {\n key: rest.proFormFieldKey || ((_rest$name3 = rest.name) === null || _rest$name3 === void 0 ? void 0 : _rest$name3.toString()),\n size: size\n }), children);\n // 这里控制是否需要 LightWrapper,为了提升一点点性能\n if (ignoreFormItem) {\n return /*#__PURE__*/_jsx(_Fragment, {\n children: lightDom\n });\n }\n return /*#__PURE__*/_jsx(WarpFormItem, _objectSpread(_objectSpread(_objectSpread({}, formItemProps), rest), {}, {\n name: name,\n isListField: formListField.name !== undefined,\n children: lightDom\n }), rest.proFormFieldKey || ((_rest$name4 = rest.name) === null || _rest$name4 === void 0 ? void 0 : _rest$name4.toString()));\n};\nexport { FormItemProvide };\nexport default ProFormItem;","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"creatorButtonProps\", \"deleteIconProps\", \"copyIconProps\", \"itemContainerRender\", \"itemRender\", \"alwaysShowItemLabel\", \"prefixCls\", \"creatorRecord\", \"action\", \"actionGuard\", \"children\", \"actionRender\", \"fields\", \"meta\", \"field\", \"index\", \"formInstance\", \"originName\", \"containerClassName\", \"containerStyle\", \"min\", \"max\", \"count\"];\nimport { CopyOutlined, DeleteOutlined } from '@ant-design/icons';\nimport { ProProvider } from '@ant-design/pro-provider';\nimport { Spin, Tooltip } from 'antd';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport set from \"rc-util/es/utils/set\";\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { FormListContext } from '.';\nimport { useGridHelpers } from \"../../helpers\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/** Antd 自带的toArray 不支持方法,所以需要自己搞一个 */\nvar listToArray = function listToArray(children) {\n if (Array.isArray(children)) {\n return children;\n }\n if (typeof children === 'function') {\n return [children];\n }\n return toArray(children);\n};\nvar ProFormListItem = function ProFormListItem(props) {\n var _formInstance$getFiel2;\n var creatorButtonProps = props.creatorButtonProps,\n deleteIconProps = props.deleteIconProps,\n copyIconProps = props.copyIconProps,\n itemContainerRender = props.itemContainerRender,\n itemRender = props.itemRender,\n alwaysShowItemLabel = props.alwaysShowItemLabel,\n prefixCls = props.prefixCls,\n creatorRecord = props.creatorRecord,\n action = props.action,\n actionGuard = props.actionGuard,\n children = props.children,\n actionRender = props.actionRender,\n fields = props.fields,\n meta = props.meta,\n field = props.field,\n index = props.index,\n formInstance = props.formInstance,\n originName = props.originName,\n containerClassName = props.containerClassName,\n containerStyle = props.containerStyle,\n min = props.min,\n max = props.max,\n count = props.count,\n rest = _objectWithoutProperties(props, _excluded);\n var _useContext = useContext(ProProvider),\n hashId = _useContext.hashId;\n var listContext = useContext(FormListContext);\n var unmountedRef = useRef(false);\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n loadingRemove = _useState2[0],\n setLoadingRemove = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n loadingCopy = _useState4[0],\n setLoadingCopy = _useState4[1];\n useEffect(function () {\n return function () {\n unmountedRef.current = true;\n };\n }, []);\n var getCurrentRowData = function getCurrentRowData() {\n return formInstance.getFieldValue([listContext.listName, originName, index === null || index === void 0 ? void 0 : index.toString()].flat(1).filter(function (item) {\n return item !== null && item !== undefined;\n }));\n };\n var formListAction = {\n getCurrentRowData: getCurrentRowData,\n setCurrentRowData: function setCurrentRowData(data) {\n var _formInstance$getFiel;\n var oldTableDate = (formInstance === null || formInstance === void 0 ? void 0 : (_formInstance$getFiel = formInstance.getFieldsValue) === null || _formInstance$getFiel === void 0 ? void 0 : _formInstance$getFiel.call(formInstance)) || {};\n var rowKeyName = [listContext.listName, originName, index === null || index === void 0 ? void 0 : index.toString()].flat(1).filter(function (item) {\n return item !== null && item !== undefined;\n });\n var updateValues = set(oldTableDate, rowKeyName, _objectSpread(_objectSpread({}, getCurrentRowData()), data || {}));\n return formInstance.setFieldsValue(updateValues);\n }\n };\n var childrenArray = listToArray(children).map(function (childrenItem) {\n if (typeof childrenItem === 'function') {\n return childrenItem === null || childrenItem === void 0 ? void 0 : childrenItem(field, index, _objectSpread(_objectSpread({}, action), formListAction), count);\n }\n return childrenItem;\n }).map(function (childrenItem, itemIndex) {\n if ( /*#__PURE__*/React.isValidElement(childrenItem)) {\n var _childrenItem$props;\n return /*#__PURE__*/React.cloneElement(childrenItem, _objectSpread({\n key: childrenItem.key || (childrenItem === null || childrenItem === void 0 ? void 0 : (_childrenItem$props = childrenItem.props) === null || _childrenItem$props === void 0 ? void 0 : _childrenItem$props.name) || itemIndex\n }, (childrenItem === null || childrenItem === void 0 ? void 0 : childrenItem.props) || {}));\n }\n return childrenItem;\n });\n var copyIcon = useMemo(function () {\n /** 复制按钮的配置 */\n if (copyIconProps === false || max === count) return null;\n var _ref = copyIconProps,\n _ref$Icon = _ref.Icon,\n Icon = _ref$Icon === void 0 ? CopyOutlined : _ref$Icon,\n tooltipText = _ref.tooltipText;\n return /*#__PURE__*/_jsx(Tooltip, {\n title: tooltipText,\n children: /*#__PURE__*/_jsx(Spin, {\n spinning: loadingCopy,\n children: /*#__PURE__*/_jsx(Icon, {\n className: \"\".concat(prefixCls, \"-action-icon action-copy \").concat(hashId).trim(),\n onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var row;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n setLoadingCopy(true);\n row = formInstance === null || formInstance === void 0 ? void 0 : formInstance.getFieldValue([listContext.listName, originName, field.name].filter(function (item) {\n return item !== undefined;\n }).flat(1));\n _context.next = 4;\n return action.add(row);\n case 4:\n setLoadingCopy(false);\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }))\n })\n })\n }, \"copy\");\n }, [copyIconProps, max, count, loadingCopy, prefixCls, hashId, formInstance, listContext.listName, field.name, originName, action]);\n var deleteIcon = useMemo(function () {\n if (deleteIconProps === false || min === count) return null;\n var _ref3 = deleteIconProps,\n _ref3$Icon = _ref3.Icon,\n Icon = _ref3$Icon === void 0 ? DeleteOutlined : _ref3$Icon,\n tooltipText = _ref3.tooltipText;\n return /*#__PURE__*/_jsx(Tooltip, {\n title: tooltipText,\n children: /*#__PURE__*/_jsx(Spin, {\n spinning: loadingRemove,\n children: /*#__PURE__*/_jsx(Icon, {\n className: \"\".concat(prefixCls, \"-action-icon action-remove \").concat(hashId).trim(),\n onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n setLoadingRemove(true);\n _context2.next = 3;\n return action.remove(field.name);\n case 3:\n if (!unmountedRef.current) {\n setLoadingRemove(false);\n }\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }))\n })\n })\n }, \"delete\");\n }, [deleteIconProps, min, count, loadingRemove, prefixCls, hashId, action, field.name]);\n var defaultActionDom = useMemo(function () {\n return [copyIcon, deleteIcon].filter(function (item) {\n return item !== null && item !== undefined;\n });\n }, [copyIcon, deleteIcon]);\n var actions = (actionRender === null || actionRender === void 0 ? void 0 : actionRender(field, action, defaultActionDom, count)) || defaultActionDom;\n var dom = actions.length > 0 ? /*#__PURE__*/_jsx(\"div\", {\n className: \"\".concat(prefixCls, \"-action \").concat(hashId).trim(),\n children: actions\n }) : null;\n var options = {\n name: rest.name,\n field: field,\n index: index,\n record: formInstance === null || formInstance === void 0 ? void 0 : (_formInstance$getFiel2 = formInstance.getFieldValue) === null || _formInstance$getFiel2 === void 0 ? void 0 : _formInstance$getFiel2.call(formInstance, [listContext.listName, originName, field.name].filter(function (item) {\n return item !== undefined;\n }).flat(1)),\n fields: fields,\n operation: action,\n meta: meta\n };\n var _useGridHelpers = useGridHelpers(),\n grid = _useGridHelpers.grid;\n var itemContainer = (itemContainerRender === null || itemContainerRender === void 0 ? void 0 : itemContainerRender(childrenArray, options)) || childrenArray;\n var contentDom = (itemRender === null || itemRender === void 0 ? void 0 : itemRender({\n listDom: /*#__PURE__*/_jsx(\"div\", {\n className: \"\".concat(prefixCls, \"-container \").concat(containerClassName || '', \" \").concat(hashId || '').trim(),\n style: _objectSpread({\n width: grid ? '100%' : undefined\n }, containerStyle),\n children: itemContainer\n }),\n action: dom\n }, options)) || /*#__PURE__*/_jsxs(\"div\", {\n className: \"\".concat(prefixCls, \"-item \").concat(hashId, \" \\n \").concat(alwaysShowItemLabel === undefined && \"\".concat(prefixCls, \"-item-default\"), \"\\n \").concat(alwaysShowItemLabel ? \"\".concat(prefixCls, \"-item-show-label\") : ''),\n style: {\n display: 'flex',\n alignItems: 'flex-end'\n },\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"\".concat(prefixCls, \"-container \").concat(containerClassName || '', \" \").concat(hashId).trim(),\n style: _objectSpread({\n width: grid ? '100%' : undefined\n }, containerStyle),\n children: itemContainer\n }), dom]\n });\n return /*#__PURE__*/_jsx(FormListContext.Provider, {\n value: _objectSpread(_objectSpread({}, field), {}, {\n listName: [listContext.listName, originName, field.name].filter(function (item) {\n return item !== undefined;\n }).flat(1)\n }),\n children: contentDom\n });\n};\nexport { ProFormListItem };","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { PlusOutlined } from '@ant-design/icons';\nimport { ProProvider, useIntl } from '@ant-design/pro-provider';\nimport { nanoid, runFunction } from '@ant-design/pro-utils';\nimport { Button } from 'antd';\nimport omit from 'omit.js';\nimport { useContext, useMemo, useRef, useState } from 'react';\nimport { EditOrReadOnlyContext } from \"../../BaseForm/EditOrReadOnlyContext\";\nimport { ProFormListItem } from \"./ListItem\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar ProFormListContainer = function ProFormListContainer(props) {\n var intl = useIntl();\n var creatorButtonProps = props.creatorButtonProps,\n prefixCls = props.prefixCls,\n children = props.children,\n creatorRecord = props.creatorRecord,\n action = props.action,\n fields = props.fields,\n actionGuard = props.actionGuard,\n max = props.max,\n fieldExtraRender = props.fieldExtraRender,\n meta = props.meta,\n containerClassName = props.containerClassName,\n containerStyle = props.containerStyle,\n onAfterAdd = props.onAfterAdd,\n onAfterRemove = props.onAfterRemove;\n var _useContext = useContext(ProProvider),\n hashId = _useContext.hashId;\n var fieldKeyMap = useRef(new Map());\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n loading = _useState2[0],\n setLoading = _useState2[1];\n var uuidFields = useMemo(function () {\n return fields.map(function (field) {\n var _fieldKeyMap$current, _fieldKeyMap$current3;\n if (!((_fieldKeyMap$current = fieldKeyMap.current) !== null && _fieldKeyMap$current !== void 0 && _fieldKeyMap$current.has(field.key.toString()))) {\n var _fieldKeyMap$current2;\n (_fieldKeyMap$current2 = fieldKeyMap.current) === null || _fieldKeyMap$current2 === void 0 ? void 0 : _fieldKeyMap$current2.set(field.key.toString(), nanoid());\n }\n var uuid = (_fieldKeyMap$current3 = fieldKeyMap.current) === null || _fieldKeyMap$current3 === void 0 ? void 0 : _fieldKeyMap$current3.get(field.key.toString());\n return _objectSpread(_objectSpread({}, field), {}, {\n uuid: uuid\n });\n });\n }, [fields]);\n\n /**\n * 根据行为守卫包装action函数\n */\n var wrapperAction = useMemo(function () {\n var wrapAction = _objectSpread({}, action);\n var count = uuidFields.length;\n if (actionGuard !== null && actionGuard !== void 0 && actionGuard.beforeAddRow) {\n wrapAction.add = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _len,\n rest,\n _key,\n success,\n res,\n _args = arguments;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n for (_len = _args.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = _args[_key];\n }\n _context.next = 3;\n return actionGuard.beforeAddRow.apply(actionGuard, rest.concat([count]));\n case 3:\n success = _context.sent;\n if (!success) {\n _context.next = 8;\n break;\n }\n res = action.add.apply(action, rest);\n onAfterAdd === null || onAfterAdd === void 0 ? void 0 : onAfterAdd.apply(void 0, rest.concat([count + 1]));\n return _context.abrupt(\"return\", res);\n case 8:\n return _context.abrupt(\"return\", false);\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n } else {\n wrapAction.add = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _len2,\n rest,\n _key2,\n res,\n _args2 = arguments;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n for (_len2 = _args2.length, rest = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n rest[_key2] = _args2[_key2];\n }\n res = action.add.apply(action, rest);\n onAfterAdd === null || onAfterAdd === void 0 ? void 0 : onAfterAdd.apply(void 0, rest.concat([count + 1]));\n return _context2.abrupt(\"return\", res);\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n }\n if (actionGuard !== null && actionGuard !== void 0 && actionGuard.beforeRemoveRow) {\n wrapAction.remove = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var _len3,\n rest,\n _key3,\n success,\n res,\n _args3 = arguments;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n for (_len3 = _args3.length, rest = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n rest[_key3] = _args3[_key3];\n }\n _context3.next = 3;\n return actionGuard.beforeRemoveRow.apply(actionGuard, rest.concat([count]));\n case 3:\n success = _context3.sent;\n if (!success) {\n _context3.next = 8;\n break;\n }\n res = action.remove.apply(action, rest);\n onAfterRemove === null || onAfterRemove === void 0 ? void 0 : onAfterRemove.apply(void 0, rest.concat([count - 1]));\n return _context3.abrupt(\"return\", res);\n case 8:\n return _context3.abrupt(\"return\", false);\n case 9:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n } else {\n wrapAction.remove = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var _len4,\n rest,\n _key4,\n res,\n _args4 = arguments;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n for (_len4 = _args4.length, rest = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n rest[_key4] = _args4[_key4];\n }\n res = action.remove.apply(action, rest);\n onAfterRemove === null || onAfterRemove === void 0 ? void 0 : onAfterRemove.apply(void 0, rest.concat([count - 1]));\n return _context4.abrupt(\"return\", res);\n case 4:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n }\n return wrapAction;\n }, [action, actionGuard === null || actionGuard === void 0 ? void 0 : actionGuard.beforeAddRow, actionGuard === null || actionGuard === void 0 ? void 0 : actionGuard.beforeRemoveRow, onAfterAdd, onAfterRemove, uuidFields.length]);\n var creatorButton = useMemo(function () {\n if (creatorButtonProps === false || uuidFields.length === max) return null;\n var _ref5 = creatorButtonProps || {},\n _ref5$position = _ref5.position,\n position = _ref5$position === void 0 ? 'bottom' : _ref5$position,\n _ref5$creatorButtonTe = _ref5.creatorButtonText,\n creatorButtonText = _ref5$creatorButtonTe === void 0 ? intl.getMessage('editableTable.action.add', '添加一行数据') : _ref5$creatorButtonTe;\n return /*#__PURE__*/_jsx(Button, _objectSpread(_objectSpread({\n className: \"\".concat(prefixCls, \"-creator-button-\").concat(position, \" \").concat(hashId || '').trim(),\n type: \"dashed\",\n loading: loading,\n block: true,\n icon: /*#__PURE__*/_jsx(PlusOutlined, {})\n }, omit(creatorButtonProps || {}, ['position', 'creatorButtonText'])), {}, {\n onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var index;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n setLoading(true);\n // 如果不是从顶部开始添加,则插入的索引为当前行数\n index = uuidFields.length; // 如果是顶部,加到第一个,如果不是,为空就是最后一个\n if (position === 'top') index = 0;\n _context5.next = 5;\n return wrapperAction.add(runFunction(creatorRecord) || {}, index);\n case 5:\n setLoading(false);\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n })),\n children: creatorButtonText\n }));\n }, [creatorButtonProps, uuidFields.length, max, intl, prefixCls, hashId, loading, wrapperAction, creatorRecord]);\n var readOnlyContext = useContext(EditOrReadOnlyContext);\n var defaultStyle = _objectSpread({\n width: 'max-content',\n maxWidth: '100%',\n minWidth: '100%'\n }, containerStyle);\n var itemList = useMemo(function () {\n return uuidFields.map(function (field, index) {\n return /*#__PURE__*/_createElement(ProFormListItem, _objectSpread(_objectSpread({}, props), {}, {\n key: field.uuid,\n field: field,\n index: index,\n action: wrapperAction,\n count: uuidFields.length\n }), children);\n });\n }, [children, props, uuidFields, wrapperAction]);\n if (readOnlyContext.mode === 'read' || props.readonly === true) {\n return /*#__PURE__*/_jsx(_Fragment, {\n children: itemList\n });\n }\n return /*#__PURE__*/_jsxs(\"div\", {\n style: defaultStyle,\n className: containerClassName,\n children: [creatorButtonProps !== false && (creatorButtonProps === null || creatorButtonProps === void 0 ? void 0 : creatorButtonProps.position) === 'top' && creatorButton, itemList, fieldExtraRender && fieldExtraRender(wrapperAction, meta), creatorButtonProps !== false && (creatorButtonProps === null || creatorButtonProps === void 0 ? void 0 : creatorButtonProps.position) !== 'top' && creatorButton]\n });\n};\nexport { ProFormListContainer };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle as useAntdStyle } from '@ant-design/pro-provider';\nvar genProStyle = function genProStyle(token) {\n var _token$componentCls2, _ref;\n return _ref = {}, _defineProperty(_ref, \"\".concat(token.antCls, \"-pro\"), _defineProperty({}, \"\".concat(token.antCls, \"-form:not(\").concat(token.antCls, \"-form-horizontal)\"), _defineProperty({}, token.componentCls, _defineProperty({}, \"&-item:not(\".concat(token.componentCls, \"-item-show-label)\"), _defineProperty({}, \"\".concat(token.antCls, \"-form-item-label\"), {\n display: 'none'\n }))))), _defineProperty(_ref, token.componentCls, (_token$componentCls2 = {\n maxWidth: '100%',\n '&-item': {\n '&&-show-label': _defineProperty({}, \"\".concat(token.antCls, \"-form-item-label\"), {\n display: 'inline-block'\n }),\n '&&-default:first-child': {\n 'div:first-of-type': _defineProperty({}, \"\".concat(token.antCls, \"-form-item\"), _defineProperty({}, \"\".concat(token.antCls, \"-form-item-label\"), {\n display: 'inline-block'\n }))\n },\n '&&-default:not(:first-child)': {\n 'div:first-of-type': _defineProperty({}, \"\".concat(token.antCls, \"-form-item\"), _defineProperty({}, \"\".concat(token.antCls, \"-form-item-label\"), {\n display: 'none'\n }))\n }\n },\n '&-action': {\n display: 'flex',\n height: '32px',\n marginBlockEnd: '24px',\n lineHeight: '32px'\n },\n '&-action-icon': {\n marginInlineStart: 8,\n cursor: 'pointer',\n transition: 'color 0.3s ease-in-out',\n '&:hover': {\n color: token.colorPrimaryTextHover\n }\n }\n }, _defineProperty(_token$componentCls2, \"\".concat(token.proComponentsCls, \"-card \").concat(token.proComponentsCls, \"-card-extra\"), _defineProperty({}, token.componentCls, {\n '&-action': {\n marginBlockEnd: 0\n }\n })), _defineProperty(_token$componentCls2, '&-creator-button-top', {\n marginBlockEnd: 24\n }), _token$componentCls2)), _ref;\n};\nexport function useStyle(prefixCls) {\n return useAntdStyle('ProFormList', function (token) {\n var proToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls)\n });\n return [genProStyle(proToken)];\n });\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"actionRender\", \"creatorButtonProps\", \"label\", \"alwaysShowItemLabel\", \"tooltip\", \"creatorRecord\", \"itemRender\", \"rules\", \"itemContainerRender\", \"fieldExtraRender\", \"copyIconProps\", \"children\", \"deleteIconProps\", \"actionRef\", \"style\", \"prefixCls\", \"actionGuard\", \"min\", \"max\", \"colProps\", \"wrapperCol\", \"rowProps\", \"onAfterAdd\", \"onAfterRemove\", \"isValidateList\", \"emptyListMessage\", \"className\"];\nimport { CopyOutlined, DeleteOutlined } from '@ant-design/icons';\nimport { useIntl } from '@ant-design/pro-provider';\nimport { ProFormContext } from '@ant-design/pro-utils';\nimport { ConfigProvider, Form } from 'antd';\nimport classNames from 'classnames';\nimport { noteOnce } from \"rc-util/es/warning\";\nimport React, { useContext, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\nimport { useGridHelpers } from \"../../helpers\";\nimport { ProFormListContainer } from \"./ListContainer\";\nimport { useStyle } from \"./style\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar FormListContext = /*#__PURE__*/React.createContext({});\nfunction ProFormList(props) {\n var actionRefs = useRef();\n var context = useContext(ConfigProvider.ConfigContext);\n var listContext = useContext(FormListContext);\n var baseClassName = context.getPrefixCls('pro-form-list');\n // Internationalization\n var intl = useIntl();\n var actionRender = props.actionRender,\n creatorButtonProps = props.creatorButtonProps,\n label = props.label,\n alwaysShowItemLabel = props.alwaysShowItemLabel,\n tooltip = props.tooltip,\n creatorRecord = props.creatorRecord,\n itemRender = props.itemRender,\n rules = props.rules,\n itemContainerRender = props.itemContainerRender,\n fieldExtraRender = props.fieldExtraRender,\n _props$copyIconProps = props.copyIconProps,\n copyIconProps = _props$copyIconProps === void 0 ? {\n Icon: CopyOutlined,\n tooltipText: intl.getMessage('copyThisLine', '复制此项')\n } : _props$copyIconProps,\n _children = props.children,\n _props$deleteIconProp = props.deleteIconProps,\n deleteIconProps = _props$deleteIconProp === void 0 ? {\n Icon: DeleteOutlined,\n tooltipText: intl.getMessage('deleteThisLine', '删除此项')\n } : _props$deleteIconProp,\n actionRef = props.actionRef,\n style = props.style,\n prefixCls = props.prefixCls,\n actionGuard = props.actionGuard,\n min = props.min,\n max = props.max,\n colProps = props.colProps,\n wrapperCol = props.wrapperCol,\n rowProps = props.rowProps,\n _onAfterAdd = props.onAfterAdd,\n _onAfterRemove = props.onAfterRemove,\n _props$isValidateList = props.isValidateList,\n isValidateList = _props$isValidateList === void 0 ? false : _props$isValidateList,\n _props$emptyListMessa = props.emptyListMessage,\n emptyListMessage = _props$emptyListMessa === void 0 ? '列表不能为空' : _props$emptyListMessa,\n className = props.className,\n rest = _objectWithoutProperties(props, _excluded);\n var _useGridHelpers = useGridHelpers({\n colProps: colProps,\n rowProps: rowProps\n }),\n ColWrapper = _useGridHelpers.ColWrapper,\n RowWrapper = _useGridHelpers.RowWrapper;\n var proFormContext = useContext(ProFormContext);\n\n // 处理 list 的嵌套\n var name = useMemo(function () {\n if (listContext.name === undefined) {\n return [rest.name].flat(1);\n }\n return [listContext.name, rest.name].flat(1);\n }, [listContext.name, rest.name]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useImperativeHandle(actionRef, function () {\n return _objectSpread(_objectSpread({}, actionRefs.current), {}, {\n get: function get(index) {\n return proFormContext.formRef.current.getFieldValue([].concat(_toConsumableArray(name), [index]));\n },\n getList: function getList() {\n return proFormContext.formRef.current.getFieldValue(_toConsumableArray(name));\n }\n });\n }, [name, proFormContext.formRef]);\n useEffect(function () {\n noteOnce(!!proFormContext.formRef, \"ProFormList \\u5FC5\\u987B\\u8981\\u653E\\u5230 ProForm \\u4E2D,\\u5426\\u5219\\u4F1A\\u9020\\u6210\\u884C\\u4E3A\\u5F02\\u5E38\\u3002\");\n noteOnce(!!proFormContext.formRef, \"Proformlist must be placed in ProForm, otherwise it will cause abnormal behavior.\");\n }, [proFormContext.formRef]);\n var _useStyle = useStyle(baseClassName),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n if (!proFormContext.formRef) return null;\n return wrapSSR( /*#__PURE__*/_jsx(ColWrapper, {\n children: /*#__PURE__*/_jsx(\"div\", {\n className: classNames(baseClassName, hashId),\n style: style,\n children: /*#__PURE__*/_jsx(Form.Item, _objectSpread(_objectSpread({\n label: label,\n prefixCls: prefixCls,\n tooltip: tooltip,\n style: style,\n required: rules === null || rules === void 0 ? void 0 : rules.some(function (rule) {\n return rule.required;\n }),\n wrapperCol: wrapperCol,\n className: className\n }, rest), {}, {\n name: isValidateList ? name : undefined,\n rules: isValidateList ? [{\n validator: function validator(rule, value) {\n if (!value || value.length === 0) {\n return Promise.reject(new Error(emptyListMessage));\n }\n return Promise.resolve();\n },\n required: true\n }] : undefined,\n children: /*#__PURE__*/_jsx(Form.List, _objectSpread(_objectSpread({\n rules: rules\n }, rest), {}, {\n name: name,\n children: function children(fields, action, meta) {\n // 将 action 暴露给外部\n actionRefs.current = action;\n return /*#__PURE__*/_jsxs(RowWrapper, {\n children: [/*#__PURE__*/_jsx(ProFormListContainer, {\n name: name,\n readonly: !!rest.readonly,\n originName: rest.name,\n copyIconProps: copyIconProps,\n deleteIconProps: deleteIconProps,\n formInstance: proFormContext.formRef.current,\n prefixCls: baseClassName,\n meta: meta,\n fields: fields,\n itemContainerRender: itemContainerRender,\n itemRender: itemRender,\n fieldExtraRender: fieldExtraRender,\n creatorButtonProps: creatorButtonProps,\n creatorRecord: creatorRecord,\n actionRender: actionRender,\n action: action,\n actionGuard: actionGuard,\n alwaysShowItemLabel: alwaysShowItemLabel,\n min: min,\n max: max,\n count: fields.length,\n onAfterAdd: function onAfterAdd(defaultValue, insertIndex, count) {\n if (isValidateList) {\n proFormContext.formRef.current.validateFields([name]);\n }\n _onAfterAdd === null || _onAfterAdd === void 0 ? void 0 : _onAfterAdd(defaultValue, insertIndex, count);\n },\n onAfterRemove: function onAfterRemove(index, count) {\n if (isValidateList) {\n if (count === 0) {\n proFormContext.formRef.current.validateFields([name]);\n }\n }\n _onAfterRemove === null || _onAfterRemove === void 0 ? void 0 : _onAfterRemove(index, count);\n },\n children: _children\n }), /*#__PURE__*/_jsx(Form.ErrorList, {\n errors: meta.errors\n })]\n });\n }\n }))\n }))\n })\n }));\n}\nexport { FormListContext, ProFormList };","import _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 = [\"children\", \"Wrapper\"],\n _excluded2 = [\"children\", \"Wrapper\"];\nimport { Col, Row } from 'antd';\nimport { createContext, useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var GridContext = /*#__PURE__*/createContext({\n grid: false,\n colProps: undefined,\n rowProps: undefined\n});\nexport var gridHelpers = function gridHelpers(_ref) {\n var grid = _ref.grid,\n rowProps = _ref.rowProps,\n colProps = _ref.colProps;\n return {\n grid: !!grid,\n RowWrapper: function RowWrapper() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n children = _ref2.children,\n Wrapper = _ref2.Wrapper,\n props = _objectWithoutProperties(_ref2, _excluded);\n if (!grid) {\n return Wrapper ? /*#__PURE__*/_jsx(Wrapper, {\n children: children\n }) : children;\n }\n return /*#__PURE__*/_jsx(Row, _objectSpread(_objectSpread(_objectSpread({\n gutter: 8\n }, rowProps), props), {}, {\n children: children\n }));\n },\n ColWrapper: function ColWrapper() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n children = _ref3.children,\n Wrapper = _ref3.Wrapper,\n rest = _objectWithoutProperties(_ref3, _excluded2);\n var props = useMemo(function () {\n var originProps = _objectSpread(_objectSpread({}, colProps), rest);\n\n /**\n * `xs` takes precedence over `span`\n * avoid `span` doesn't work\n */\n if (typeof originProps.span === 'undefined' && typeof originProps.xs === 'undefined') {\n originProps.xs = 24;\n }\n return originProps;\n }, [rest]);\n if (!grid) {\n return Wrapper ? /*#__PURE__*/_jsx(Wrapper, {\n children: children\n }) : children;\n }\n return /*#__PURE__*/_jsx(Col, _objectSpread(_objectSpread({}, props), {}, {\n children: children\n }));\n }\n };\n};\nexport var useGridHelpers = function useGridHelpers(props) {\n var config = useMemo(function () {\n {\n if (_typeof(props) === 'object') {\n return props;\n }\n return {\n grid: props\n };\n }\n }, [props]);\n var _useContext = useContext(GridContext),\n grid = _useContext.grid,\n colProps = _useContext.colProps;\n return useMemo(function () {\n return gridHelpers({\n grid: !!(grid || config.grid),\n rowProps: config === null || config === void 0 ? void 0 : config.rowProps,\n colProps: (config === null || config === void 0 ? void 0 : config.colProps) || colProps,\n Wrapper: config === null || config === void 0 ? void 0 : config.Wrapper\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [config === null || config === void 0 ? void 0 : config.Wrapper, config.grid, grid,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify([colProps, config === null || config === void 0 ? void 0 : config.colProps, config === null || config === void 0 ? void 0 : config.rowProps])]);\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle as useAntdStyle } from '@ant-design/pro-provider';\nvar genProStyle = function genProStyle(token) {\n var _twoLine;\n return _defineProperty({}, token.componentCls, {\n '&-title': {\n marginBlockEnd: token.marginXL,\n fontWeight: 'bold'\n },\n '&-container': _defineProperty({\n flexWrap: 'wrap',\n maxWidth: '100%'\n }, \"> div\".concat(token.antCls, \"-space-item\"), {\n maxWidth: '100%'\n }),\n '&-twoLine': (_twoLine = {\n display: 'block',\n width: '100%'\n }, _defineProperty(_twoLine, \"\".concat(token.componentCls, \"-title\"), {\n width: '100%',\n margin: '8px 0'\n }), _defineProperty(_twoLine, \"\".concat(token.componentCls, \"-container\"), {\n paddingInlineStart: 16\n }), _defineProperty(_twoLine, \"\".concat(token.antCls, \"-space-item,\").concat(token.antCls, \"-form-item\"), {\n width: '100%'\n }), _defineProperty(_twoLine, \"\".concat(token.antCls, \"-form-item\"), {\n '&-control': {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n '&-input': {\n alignItems: 'center',\n justifyContent: 'flex-end',\n '&-content': {\n flex: 'none'\n }\n }\n }\n }), _twoLine)\n });\n};\nexport function useStyle(prefixCls) {\n return useAntdStyle('ProFormGroup', function (token) {\n var proToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls)\n });\n return [genProStyle(proToken)];\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { RightOutlined } from '@ant-design/icons';\nimport { LabelIconTip, useMountMergeState } from '@ant-design/pro-utils';\nimport { ConfigProvider, Space } from 'antd';\nimport classNames from 'classnames';\nimport React, { useCallback, useContext, useMemo } from 'react';\nimport FieldContext from \"../../FieldContext\";\nimport { useGridHelpers } from \"../../helpers\";\nimport { useStyle } from \"./style\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar Group = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(FieldContext),\n groupProps = _React$useContext.groupProps;\n var _groupProps$props = _objectSpread(_objectSpread({}, groupProps), props),\n children = _groupProps$props.children,\n collapsible = _groupProps$props.collapsible,\n defaultCollapsed = _groupProps$props.defaultCollapsed,\n style = _groupProps$props.style,\n labelLayout = _groupProps$props.labelLayout,\n _groupProps$props$tit = _groupProps$props.title,\n title = _groupProps$props$tit === void 0 ? props.label : _groupProps$props$tit,\n tooltip = _groupProps$props.tooltip,\n _groupProps$props$ali = _groupProps$props.align,\n align = _groupProps$props$ali === void 0 ? 'start' : _groupProps$props$ali,\n direction = _groupProps$props.direction,\n _groupProps$props$siz = _groupProps$props.size,\n size = _groupProps$props$siz === void 0 ? 32 : _groupProps$props$siz,\n titleStyle = _groupProps$props.titleStyle,\n titleRender = _groupProps$props.titleRender,\n spaceProps = _groupProps$props.spaceProps,\n extra = _groupProps$props.extra,\n autoFocus = _groupProps$props.autoFocus;\n var _useMountMergeState = useMountMergeState(function () {\n return defaultCollapsed || false;\n }, {\n value: props.collapsed,\n onChange: props.onCollapse\n }),\n _useMountMergeState2 = _slicedToArray(_useMountMergeState, 2),\n collapsed = _useMountMergeState2[0],\n setCollapsed = _useMountMergeState2[1];\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var _useGridHelpers = useGridHelpers(props),\n ColWrapper = _useGridHelpers.ColWrapper,\n RowWrapper = _useGridHelpers.RowWrapper;\n var className = getPrefixCls('pro-form-group');\n var _useStyle = useStyle(className),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var collapsibleButton = collapsible && /*#__PURE__*/_jsx(RightOutlined, {\n style: {\n marginInlineEnd: 8\n },\n rotate: !collapsed ? 90 : undefined\n });\n var label = /*#__PURE__*/_jsx(LabelIconTip, {\n label: collapsibleButton ? /*#__PURE__*/_jsxs(\"div\", {\n children: [collapsibleButton, title]\n }) : title,\n tooltip: tooltip\n });\n var Wrapper = useCallback(function (_ref) {\n var dom = _ref.children;\n return /*#__PURE__*/_jsx(Space, _objectSpread(_objectSpread({}, spaceProps), {}, {\n className: classNames(\"\".concat(className, \"-container \").concat(hashId), spaceProps === null || spaceProps === void 0 ? void 0 : spaceProps.className),\n size: size,\n align: align,\n direction: direction,\n style: _objectSpread({\n rowGap: 0\n }, spaceProps === null || spaceProps === void 0 ? void 0 : spaceProps.style),\n children: dom\n }));\n }, [align, className, direction, hashId, size, spaceProps]);\n var titleDom = titleRender ? titleRender(label, props) : label;\n var _useMemo = useMemo(function () {\n var hiddenChildren = [];\n var childrenList = React.Children.toArray(children).map(function (element, index) {\n var _element$props;\n if ( /*#__PURE__*/React.isValidElement(element) && element !== null && element !== void 0 && (_element$props = element.props) !== null && _element$props !== void 0 && _element$props.hidden) {\n hiddenChildren.push(element);\n return null;\n }\n if (index === 0 && /*#__PURE__*/React.isValidElement(element) && autoFocus) {\n return /*#__PURE__*/React.cloneElement(element, _objectSpread(_objectSpread({}, element.props), {}, {\n autoFocus: autoFocus\n }));\n }\n return element;\n });\n return [/*#__PURE__*/_jsx(RowWrapper, {\n Wrapper: Wrapper,\n children: childrenList\n }, \"children\"), hiddenChildren.length > 0 ? /*#__PURE__*/_jsx(\"div\", {\n style: {\n display: 'none'\n },\n children: hiddenChildren\n }) : null];\n }, [children, RowWrapper, Wrapper, autoFocus]),\n _useMemo2 = _slicedToArray(_useMemo, 2),\n childrenDoms = _useMemo2[0],\n hiddenDoms = _useMemo2[1];\n return wrapSSR( /*#__PURE__*/_jsx(ColWrapper, {\n children: /*#__PURE__*/_jsxs(\"div\", {\n className: classNames(className, hashId, _defineProperty({}, \"\".concat(className, \"-twoLine\"), labelLayout === 'twoLine')),\n style: style,\n ref: ref,\n children: [hiddenDoms, (title || tooltip || extra) && /*#__PURE__*/_jsx(\"div\", {\n className: \"\".concat(className, \"-title \").concat(hashId).trim(),\n style: titleStyle,\n onClick: function onClick() {\n setCollapsed(!collapsed);\n },\n children: extra ? /*#__PURE__*/_jsxs(\"div\", {\n style: {\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n children: [titleDom, /*#__PURE__*/_jsx(\"span\", {\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n children: extra\n })]\n }) : titleDom\n }), /*#__PURE__*/_jsx(\"div\", {\n style: {\n display: collapsible && collapsed ? 'none' : undefined\n },\n children: childrenDoms\n })]\n })\n }));\n});\nGroup.displayName = 'ProForm-Group';\nexport default Group;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { Form } from 'antd';\nimport React from 'react';\nimport { BaseForm } from \"../../BaseForm\";\nimport { EditOrReadOnlyContext } from \"../../BaseForm/EditOrReadOnlyContext\";\nimport { Group, ProFormItem } from \"../../components\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction ProForm(props) {\n return /*#__PURE__*/_jsx(BaseForm, _objectSpread({\n layout: \"vertical\",\n submitter: {\n // 反转按钮,在正常模式下,按钮应该是主按钮在前\n render: function render(_, dom) {\n return dom.reverse();\n }\n },\n contentRender: function contentRender(items, submitter) {\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [items, submitter]\n });\n }\n }, props));\n}\nProForm.Group = Group;\nProForm.useForm = Form.useForm;\nProForm.Item = ProFormItem;\nProForm.useWatch = Form.useWatch;\nProForm.ErrorList = Form.ErrorList;\nProForm.Provider = Form.Provider;\nProForm.useFormInstance = Form.useFormInstance;\nProForm.EditOrReadOnlyContext = EditOrReadOnlyContext;\nexport { ProForm };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle as useAntdStyle } from '@ant-design/pro-provider';\nvar genProStyle = function genProStyle(token) {\n var _$concat$concat, _icon, _small, _token$componentCls;\n return _defineProperty({}, token.componentCls, (_token$componentCls = {\n display: 'inline-flex',\n gap: token.marginXXS,\n alignItems: 'center',\n height: '30px',\n paddingBlock: 0,\n paddingInline: 8,\n fontSize: token.fontSize,\n lineHeight: '30px',\n borderRadius: '2px',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: token.colorBgTextHover\n },\n '&-active': _defineProperty({\n paddingBlock: 0,\n paddingInline: 8,\n backgroundColor: token.colorBgTextHover\n }, \"&\".concat(token.componentCls, \"-allow-clear:hover:not(\").concat(token.componentCls, \"-disabled)\"), (_$concat$concat = {}, _defineProperty(_$concat$concat, \"\".concat(token.componentCls, \"-arrow\"), {\n display: 'none'\n }), _defineProperty(_$concat$concat, \"\".concat(token.componentCls, \"-close\"), {\n display: 'inline-flex'\n }), _$concat$concat))\n }, _defineProperty(_token$componentCls, \"\".concat(token.antCls, \"-select\"), _defineProperty({}, \"\".concat(token.antCls, \"-select-clear\"), {\n borderRadius: '50%'\n })), _defineProperty(_token$componentCls, \"\".concat(token.antCls, \"-picker\"), _defineProperty({}, \"\".concat(token.antCls, \"-picker-clear\"), {\n borderRadius: '50%'\n })), _defineProperty(_token$componentCls, '&-icon', (_icon = {\n color: token.colorIcon,\n transition: 'color 0.3s',\n fontSize: 12,\n verticalAlign: 'middle'\n }, _defineProperty(_icon, \"&\".concat(token.componentCls, \"-close\"), {\n display: 'none',\n fontSize: 12,\n alignItems: 'center',\n justifyContent: 'center',\n color: token.colorTextPlaceholder,\n borderRadius: '50%'\n }), _defineProperty(_icon, '&:hover', {\n color: token.colorIconHover\n }), _icon)), _defineProperty(_token$componentCls, '&-disabled', _defineProperty({\n color: token.colorTextPlaceholder,\n cursor: 'not-allowed'\n }, \"\".concat(token.componentCls, \"-icon\"), {\n color: token.colorTextPlaceholder\n })), _defineProperty(_token$componentCls, '&-small', (_small = {\n height: '24px',\n paddingBlock: 0,\n paddingInline: 4,\n fontSize: token.fontSizeSM,\n lineHeight: '24px'\n }, _defineProperty(_small, \"&\".concat(token.componentCls, \"-active\"), {\n paddingBlock: 0,\n paddingInline: 8\n }), _defineProperty(_small, \"\".concat(token.componentCls, \"-icon\"), {\n paddingBlock: 0,\n paddingInline: 0\n }), _defineProperty(_small, \"\".concat(token.componentCls, \"-close\"), {\n marginBlockStart: '-2px',\n paddingBlock: 4,\n paddingInline: 4,\n fontSize: '6px'\n }), _small)), _defineProperty(_token$componentCls, '&-bordered', {\n height: '32px',\n paddingBlock: 0,\n paddingInline: 8,\n border: \"\".concat(token.lineWidth, \"px solid \").concat(token.colorBorder),\n borderRadius: '@border-radius-base'\n }), _defineProperty(_token$componentCls, '&-bordered&-small', {\n height: '24px',\n paddingBlock: 0,\n paddingInline: 8\n }), _defineProperty(_token$componentCls, '&-bordered&-active', {\n backgroundColor: token.colorBgContainer\n }), _token$componentCls));\n};\nexport function useStyle(prefixCls) {\n return useAntdStyle('FieldLabel', function (token) {\n var proToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls)\n });\n return [genProStyle(proToken)];\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { CloseCircleFilled, DownOutlined } from '@ant-design/icons';\nimport { useIntl } from '@ant-design/pro-provider';\nimport { ConfigProvider } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext, useImperativeHandle, useRef } from 'react';\nimport { useStyle } from \"./style\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar FieldLabelFunction = function FieldLabelFunction(props, ref) {\n var _ConfigProvider$useCo, _ref2, _props$size, _classNames;\n var label = props.label,\n onClear = props.onClear,\n value = props.value,\n disabled = props.disabled,\n onLabelClick = props.onLabelClick,\n ellipsis = props.ellipsis,\n placeholder = props.placeholder,\n className = props.className,\n formatter = props.formatter,\n bordered = props.bordered,\n style = props.style,\n downIcon = props.downIcon,\n _props$allowClear = props.allowClear,\n allowClear = _props$allowClear === void 0 ? true : _props$allowClear;\n var _ref = (ConfigProvider === null || ConfigProvider === void 0 ? void 0 : (_ConfigProvider$useCo = ConfigProvider.useConfig) === null || _ConfigProvider$useCo === void 0 ? void 0 : _ConfigProvider$useCo.call(ConfigProvider)) || {\n componentSize: 'middle'\n },\n componentSize = _ref.componentSize;\n var size = componentSize;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-core-field-label');\n var _useStyle = useStyle(prefixCls),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var intl = useIntl();\n var clearRef = useRef(null);\n var labelRef = useRef(null);\n useImperativeHandle(ref, function () {\n return {\n labelRef: labelRef,\n clearRef: clearRef\n };\n });\n var wrapElements = function wrapElements(array) {\n if (array.every(function (item) {\n return typeof item === 'string';\n })) return array.join(',');\n return array.map(function (item, index) {\n var comma = index === array.length - 1 ? '' : ',';\n if (typeof item === 'string') {\n return /*#__PURE__*/_jsxs(\"span\", {\n children: [item, comma]\n }, index);\n }\n return /*#__PURE__*/_jsxs(\"span\", {\n style: {\n display: 'flex'\n },\n children: [item, comma]\n }, index);\n });\n };\n var formatterText = function formatterText(aValue) {\n if (formatter) {\n return formatter(aValue);\n }\n return Array.isArray(aValue) ? wrapElements(aValue) : aValue;\n };\n var getTextByValue = function getTextByValue(aLabel, aValue) {\n if (aValue !== undefined && aValue !== null && aValue !== '' && (!Array.isArray(aValue) || aValue.length)) {\n var _str$toString, _str$toString$substr;\n var prefix = aLabel ? /*#__PURE__*/_jsxs(\"span\", {\n onClick: function onClick() {\n onLabelClick === null || onLabelClick === void 0 ? void 0 : onLabelClick();\n },\n className: \"\".concat(prefixCls, \"-text\"),\n children: [aLabel, ': ']\n }) : '';\n var str = formatterText(aValue);\n if (!ellipsis) {\n return /*#__PURE__*/_jsxs(\"span\", {\n style: {\n display: 'inline-flex',\n alignItems: 'center'\n },\n children: [prefix, formatterText(aValue)]\n });\n }\n // 普通表单值最大长度41,如2022-06-21 20:11:25 ~ 2022-06-22 20:11:25\n var VALUE_MAX_LENGTH = 41;\n var getText = function getText() {\n var isArrayValue = Array.isArray(aValue) && aValue.length > 1;\n var unitText = intl.getMessage('form.lightFilter.itemUnit', '项');\n if (typeof str === 'string' && str.length > VALUE_MAX_LENGTH && isArrayValue) {\n return \"...\".concat(aValue.length).concat(unitText);\n }\n return '';\n };\n var tail = getText();\n return /*#__PURE__*/_jsxs(\"span\", {\n title: typeof str === 'string' ? str : undefined,\n style: {\n display: 'inline-flex',\n alignItems: 'center'\n },\n children: [prefix, /*#__PURE__*/_jsx(\"span\", {\n style: {\n paddingInlineStart: 4,\n display: 'flex'\n },\n children: typeof str === 'string' ? str === null || str === void 0 ? void 0 : (_str$toString = str.toString()) === null || _str$toString === void 0 ? void 0 : (_str$toString$substr = _str$toString.substr) === null || _str$toString$substr === void 0 ? void 0 : _str$toString$substr.call(_str$toString, 0, VALUE_MAX_LENGTH) : str\n }), tail]\n });\n }\n return aLabel || placeholder;\n };\n return wrapSSR( /*#__PURE__*/_jsxs(\"span\", {\n className: classNames(prefixCls, hashId, \"\".concat(prefixCls, \"-\").concat((_ref2 = (_props$size = props.size) !== null && _props$size !== void 0 ? _props$size : size) !== null && _ref2 !== void 0 ? _ref2 : 'middle'), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-active\"), !!value || value === 0), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-bordered\"), bordered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-allow-clear\"), allowClear), _classNames), className),\n style: style,\n ref: labelRef,\n onClick: function onClick() {\n var _props$onClick;\n props === null || props === void 0 ? void 0 : (_props$onClick = props.onClick) === null || _props$onClick === void 0 ? void 0 : _props$onClick.call(props);\n },\n children: [getTextByValue(label, value), (value || value === 0) && allowClear && /*#__PURE__*/_jsx(CloseCircleFilled, {\n role: \"button\",\n title: intl.getMessage('form.lightFilter.clear', '清除'),\n className: classNames(\"\".concat(prefixCls, \"-icon\"), hashId, \"\".concat(prefixCls, \"-close\")),\n onClick: function onClick(e) {\n if (!disabled) onClear === null || onClear === void 0 ? void 0 : onClear();\n e.stopPropagation();\n },\n ref: clearRef\n }), downIcon !== false ? downIcon !== null && downIcon !== void 0 ? downIcon : /*#__PURE__*/_jsx(DownOutlined, {\n className: classNames(\"\".concat(prefixCls, \"-icon\"), hashId, \"\".concat(prefixCls, \"-arrow\"))\n }) : null]\n }));\n};\nexport var FieldLabel = /*#__PURE__*/React.forwardRef(FieldLabelFunction);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle as useAntdStyle } from '@ant-design/pro-provider';\nvar genProStyle = function genProStyle(token) {\n return _defineProperty({}, token.componentCls, {\n display: 'flex',\n justifyContent: 'space-between',\n paddingBlock: 8,\n paddingInlineStart: 8,\n paddingInlineEnd: 8,\n borderBlockStart: \"1px solid \".concat(token.colorSplit)\n });\n};\nexport function useStyle(prefixCls) {\n return useAntdStyle('DropdownFooter', function (token) {\n var proToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls)\n });\n return [genProStyle(proToken)];\n });\n}","import { useIntl } from '@ant-design/pro-provider';\nimport { Button, ConfigProvider } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport { useStyle } from \"./style\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar DropdownFooter = function DropdownFooter(props) {\n var intl = useIntl();\n var onClear = props.onClear,\n onConfirm = props.onConfirm,\n disabled = props.disabled,\n footerRender = props.footerRender;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-core-dropdown-footer');\n var _useStyle = useStyle(prefixCls),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var defaultFooter = [/*#__PURE__*/_jsx(Button, {\n style: {\n visibility: onClear ? 'visible' : 'hidden'\n },\n type: \"link\",\n size: \"small\",\n disabled: disabled,\n onClick: function onClick(e) {\n if (onClear) {\n onClear(e);\n }\n e.stopPropagation();\n },\n children: intl.getMessage('form.lightFilter.clear', '清除')\n }, \"clear\"), /*#__PURE__*/_jsx(Button, {\n \"data-type\": \"confirm\",\n type: \"primary\",\n size: \"small\",\n onClick: onConfirm,\n disabled: disabled,\n children: intl.getMessage('form.lightFilter.confirm', '确认')\n }, \"confirm\")];\n if (footerRender === false || (footerRender === null || footerRender === void 0 ? void 0 : footerRender(onConfirm, onClear)) === false) {\n return null;\n }\n var renderDom = (footerRender === null || footerRender === void 0 ? void 0 : footerRender(onConfirm, onClear)) || defaultFooter;\n return wrapSSR( /*#__PURE__*/_jsx(\"div\", {\n className: classNames(prefixCls, hashId),\n onClick: function onClick(e) {\n return e.target.getAttribute('data-type') !== 'confirm' && e.stopPropagation();\n },\n children: renderDom\n }));\n};\nexport { DropdownFooter };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle as useAntdStyle } from '@ant-design/pro-provider';\nvar genProStyle = function genProStyle(token) {\n var _ref;\n return _ref = {}, _defineProperty(_ref, \"\".concat(token.componentCls, \"-label\"), {\n cursor: 'pointer'\n }), _defineProperty(_ref, \"\".concat(token.componentCls, \"-overlay\"), {\n minWidth: '200px',\n marginBlockStart: '4px'\n }), _defineProperty(_ref, \"\".concat(token.componentCls, \"-content\"), {\n paddingBlock: 16,\n paddingInline: 16\n }), _ref;\n};\nexport function useStyle(prefixCls) {\n return useAntdStyle('FilterDropdown', function (token) {\n var proToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls)\n });\n return [genProStyle(proToken)];\n });\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { ConfigProvider, Popover } from 'antd';\nimport React, { useContext, useRef } from 'react';\nimport { DropdownFooter } from \"../DropdownFooter\";\nimport \"antd/es/dropdown/style\";\nimport classNames from 'classnames';\nimport { openVisibleCompatible } from \"../../compareVersions/openVisibleCompatible\";\nimport { useStyle } from \"./style\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar FilterDropdown = function FilterDropdown(props) {\n var _classNames;\n var children = props.children,\n label = props.label,\n footer = props.footer,\n open = props.open,\n onOpenChange = props.onOpenChange,\n disabled = props.disabled,\n onVisibleChange = props.onVisibleChange,\n visible = props.visible,\n footerRender = props.footerRender,\n placement = props.placement;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-core-field-dropdown');\n var _useStyle = useStyle(prefixCls),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var dropdownOpenProps = openVisibleCompatible(open || visible || false, onOpenChange || onVisibleChange);\n var htmlRef = useRef(null);\n return wrapSSR( /*#__PURE__*/_jsx(Popover, _objectSpread(_objectSpread({\n placement: placement,\n trigger: ['click']\n }, dropdownOpenProps), {}, {\n overlayInnerStyle: {\n padding: 0\n },\n content: /*#__PURE__*/_jsxs(\"div\", {\n ref: htmlRef,\n className: classNames(\"\".concat(prefixCls, \"-overlay\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-overlay-\").concat(placement), placement), _defineProperty(_classNames, \"hashId\", hashId), _classNames)),\n children: [/*#__PURE__*/_jsx(ConfigProvider, {\n getPopupContainer: function getPopupContainer() {\n return htmlRef.current || document.body;\n },\n children: /*#__PURE__*/_jsx(\"div\", {\n className: \"\".concat(prefixCls, \"-content \").concat(hashId).trim(),\n children: children\n })\n }), footer && /*#__PURE__*/_jsx(DropdownFooter, _objectSpread({\n disabled: disabled,\n footerRender: footerRender\n }, footer))]\n }),\n children: /*#__PURE__*/_jsx(\"span\", {\n className: \"\".concat(prefixCls, \"-label \").concat(hashId).trim(),\n children: label\n })\n })));\n};\nexport { FilterDropdown };","// This icon file is generated automatically.\nvar InfoCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"info-circle\", \"theme\": \"outlined\" };\nexport default InfoCircleOutlined;\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 InfoCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/InfoCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar InfoCircleOutlined = function InfoCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: InfoCircleOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n InfoCircleOutlined.displayName = 'InfoCircleOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(InfoCircleOutlined);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle as useAntdStyle } from '@ant-design/pro-provider';\nvar genProStyle = function genProStyle(token) {\n return _defineProperty({}, token.componentCls, {\n display: 'inline-flex',\n alignItems: 'center',\n maxWidth: '100%',\n '&-icon': {\n display: 'block',\n marginInlineStart: '4px',\n cursor: 'pointer',\n '&:hover': {\n color: token.colorPrimary\n }\n },\n '&-title': {\n display: 'inline-flex',\n flex: '1'\n },\n '&-subtitle ': {\n marginInlineStart: 8,\n color: token.colorTextSecondary,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n whiteSpace: 'nowrap'\n },\n '&-title-ellipsis': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n wordBreak: 'keep-all'\n }\n });\n};\nexport function useStyle(prefixCls) {\n return useAntdStyle('LabelIconTip', function (token) {\n var proToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls)\n });\n return [genProStyle(proToken)];\n });\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { InfoCircleOutlined } from '@ant-design/icons';\nimport { ConfigProvider, Tooltip } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport { useStyle } from \"./style\";\n\n/**\n * 在 form 的 label 后面增加一个 tips 来展示一些说明文案\n *\n * @param props\n */\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport var LabelIconTip = /*#__PURE__*/React.memo(function (props) {\n var label = props.label,\n tooltip = props.tooltip,\n ellipsis = props.ellipsis,\n subTitle = props.subTitle;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var className = getPrefixCls('pro-core-label-tip');\n var _useStyle = useStyle(className),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n if (!tooltip && !subTitle) {\n return /*#__PURE__*/_jsx(_Fragment, {\n children: label\n });\n }\n var tooltipProps = typeof tooltip === 'string' || /*#__PURE__*/React.isValidElement(tooltip) ? {\n title: tooltip\n } : tooltip;\n var icon = (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.icon) || /*#__PURE__*/_jsx(InfoCircleOutlined, {});\n return wrapSSR( /*#__PURE__*/_jsxs(\"div\", {\n className: classNames(className, hashId),\n onMouseDown: function onMouseDown(e) {\n return e.stopPropagation();\n },\n onMouseLeave: function onMouseLeave(e) {\n return e.stopPropagation();\n },\n onMouseMove: function onMouseMove(e) {\n return e.stopPropagation();\n },\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: classNames(\"\".concat(className, \"-title\"), hashId, _defineProperty({}, \"\".concat(className, \"-title-ellipsis\"), ellipsis)),\n children: label\n }), subTitle && /*#__PURE__*/_jsx(\"div\", {\n className: \"\".concat(className, \"-subtitle \").concat(hashId).trim(),\n children: subTitle\n }), tooltip && /*#__PURE__*/_jsx(Tooltip, _objectSpread(_objectSpread({}, tooltipProps), {}, {\n children: /*#__PURE__*/_jsx(\"span\", {\n className: \"\".concat(className, \"-icon \").concat(hashId).trim(),\n children: icon\n })\n }))]\n }));\n});","import React from 'react';\nexport var ProFormContext = /*#__PURE__*/React.createContext({});","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport dayjs from 'dayjs';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear';\nimport get from \"rc-util/es/utils/get\";\nimport { isNil } from \"../isNil\";\ndayjs.extend(quarterOfYear);\nexport var dateFormatterMap = {\n time: 'HH:mm:ss',\n timeRange: 'HH:mm:ss',\n date: 'YYYY-MM-DD',\n dateWeek: 'YYYY-wo',\n dateMonth: 'YYYY-MM',\n dateQuarter: 'YYYY-[Q]Q',\n dateYear: 'YYYY',\n dateRange: 'YYYY-MM-DD',\n dateTime: 'YYYY-MM-DD HH:mm:ss',\n dateTimeRange: 'YYYY-MM-DD HH:mm:ss'\n};\n/**\n * 判断是不是一个 object\n * @param {any} o\n * @returns boolean\n */\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n/**\n * 判断是否是一个的简单的 object\n * @param {{constructor:any}} o\n * @returns boolean\n */\nexport function isPlainObject(o) {\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n var ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n var prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\n/**\n * 一个比较hack的moment判断工具\n * @param {any} value\n * @returns boolean\n */\nvar isMoment = function isMoment(value) {\n return !!(value !== null && value !== void 0 && value._isAMomentObject);\n};\n\n/**\n * 根据不同的格式转化 dayjs\n * @param {dayjs.Dayjs} value\n * @param {string|((value:dayjs.Dayjs} dateFormatter\n * @param {string} valueType\n */\nexport var convertMoment = function convertMoment(value, dateFormatter, valueType) {\n if (!dateFormatter) {\n return value;\n }\n if (dayjs.isDayjs(value) || isMoment(value)) {\n if (dateFormatter === 'number') {\n return value.valueOf();\n }\n if (dateFormatter === 'string') {\n return value.format(dateFormatterMap[valueType] || 'YYYY-MM-DD HH:mm:ss');\n }\n if (typeof dateFormatter === 'string' && dateFormatter !== 'string') {\n return value.format(dateFormatter);\n }\n if (typeof dateFormatter === 'function') {\n return dateFormatter(value, valueType);\n }\n }\n return value;\n};\n\n/**\n * 这里主要是来转化一下数据 将 dayjs 转化为 string 将 all 默认删除\n * @param {T} value\n * @param {DateFormatter} dateFormatter\n * @param {Record} |{valueType\n * @param {boolean} omitNil?\n * @param {NamePath} parentKey?\n */\nexport var conversionMomentValue = function conversionMomentValue(value, dateFormatter, valueTypeMap, omitNil, parentKey) {\n var tmpValue = {};\n if (typeof window === 'undefined') return value;\n // 如果 value 是 string | null | Blob类型 其中之一,直接返回\n // 形如 {key: [File, File]} 的表单字段当进行第二次递归时会导致其直接越过 typeof value !== 'object' 这一判断 https://github.com/ant-design/pro-components/issues/2071\n if (_typeof(value) !== 'object' || isNil(value) || value instanceof Blob || Array.isArray(value)) {\n return value;\n }\n Object.keys(value).forEach(function (valueKey) {\n var namePath = parentKey ? [parentKey, valueKey].flat(1) : [valueKey];\n var valueFormatMap = get(valueTypeMap, namePath) || 'text';\n var valueType = 'text';\n var dateFormat;\n if (typeof valueFormatMap === 'string') {\n valueType = valueFormatMap;\n } else if (valueFormatMap) {\n valueType = valueFormatMap.valueType;\n dateFormat = valueFormatMap.dateFormat;\n }\n var itemValue = value[valueKey];\n if (isNil(itemValue) && omitNil) {\n return;\n }\n // 处理嵌套的情况\n if (isPlainObject(itemValue) &&\n // 不是数组\n !Array.isArray(itemValue) &&\n // 不是 dayjs\n !dayjs.isDayjs(itemValue) &&\n // 不是 moment\n !isMoment(itemValue)) {\n tmpValue[valueKey] = conversionMomentValue(itemValue, dateFormatter, valueTypeMap, omitNil, [valueKey]);\n return;\n }\n // 处理 FormList 的 value\n if (Array.isArray(itemValue)) {\n tmpValue[valueKey] = itemValue.map(function (arrayValue, index) {\n if (dayjs.isDayjs(arrayValue) || isMoment(arrayValue)) {\n return convertMoment(arrayValue, dateFormat || dateFormatter, valueType);\n }\n return conversionMomentValue(arrayValue, dateFormatter, valueTypeMap, omitNil, [valueKey, \"\".concat(index)].flat(1));\n });\n return;\n }\n tmpValue[valueKey] = convertMoment(itemValue, dateFormat || dateFormatter, valueType);\n });\n return tmpValue;\n};","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport { useEffect, useRef } from 'react';\nimport { isDeepEqualReact } from \"../../isDeepEqualReact\";\nimport { useDebounceFn } from \"../useDebounceFn\";\nexport var isDeepEqual = function isDeepEqual(a, b, ignoreKeys) {\n return isDeepEqualReact(a, b, ignoreKeys);\n};\nfunction useDeepCompareMemoize(value, ignoreKeys) {\n var ref = useRef();\n // it can be done by using useMemo as well\n // but useRef is rather cleaner and easier\n if (!isDeepEqual(value, ref.current, ignoreKeys)) {\n ref.current = value;\n }\n return ref.current;\n}\nexport function useDeepCompareEffect(effect, dependencies, ignoreKeys) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(effect, useDeepCompareMemoize(dependencies || [], ignoreKeys));\n}\nexport function useDeepCompareEffectDebounce(effect, dependencies, ignoreKeys, waitTime) {\n var effectDn = useDebounceFn( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n effect();\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n })), waitTime || 16);\n useEffect(function () {\n effectDn.run();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, useDeepCompareMemoize(dependencies || [], ignoreKeys));\n}","import { useRef } from 'react';\n\n/**\n * @see https://github.com/streamich/react-use/blob/master/docs/useLatest.md\n */\nexport var useLatest = function useLatest(value) {\n var ref = useRef(value);\n ref.current = value;\n return ref;\n};","import { useEffect, useRef } from 'react';\nexport var usePrevious = function usePrevious(state) {\n var ref = useRef();\n useEffect(function () {\n ref.current = state;\n });\n return ref.current;\n};","import _createForOfIteratorHelper from \"@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable no-restricted-syntax */\n/* eslint-disable no-continue */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable no-self-compare */\n/* eslint-disable eqeqeq */\n/* eslint-disable no-plusplus */\n// do not edit .js files directly - edit src/index.jst\n\nexport function isDeepEqualReact(a, b, ignoreKeys, debug) {\n if (a === b) return true;\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n if (a.constructor !== b.constructor) return false;\n var length;\n var i;\n var keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) if (!isDeepEqualReact(a[i], b[i], ignoreKeys, debug)) return false;\n return true;\n }\n if (a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n var _iterator = _createForOfIteratorHelper(a.entries()),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n i = _step.value;\n if (!b.has(i[0])) return false;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var _iterator2 = _createForOfIteratorHelper(a.entries()),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n i = _step2.value;\n if (!isDeepEqualReact(i[1], b.get(i[0]), ignoreKeys, debug)) return false;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return true;\n }\n if (a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n var _iterator3 = _createForOfIteratorHelper(a.entries()),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n i = _step3.value;\n if (!b.has(i[0])) return false;\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n return true;\n }\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n // @ts-ignore\n length = a.length;\n // @ts-ignore\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) if (a[i] !== b[i]) return false;\n return true;\n }\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf && a.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && a.toString) return a.toString() === b.toString();\n\n // eslint-disable-next-line prefer-const\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n if (ignoreKeys !== null && ignoreKeys !== void 0 && ignoreKeys.includes(key)) continue;\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n if (!isDeepEqualReact(a[key], b[key], ignoreKeys, debug)) {\n if (debug) {\n console.log(key);\n }\n return false;\n }\n }\n return true;\n }\n\n // true if both NaN, false otherwise\n return a !== a && b !== b;\n}","export var isNil = function isNil(value) {\n return value === null || value === undefined;\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable prefer-rest-params */\n\n/**\n * 用于合并 n 个对象\n * @param {any[]} ...rest\n * @returns T\n */\nvar merge = function merge() {\n var obj = {};\n for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n var il = rest.length;\n var key;\n var i = 0;\n for (; i < il; i += 1) {\n // eslint-disable-next-line no-restricted-syntax\n for (key in rest[i]) {\n if (rest[i].hasOwnProperty(key)) {\n if (_typeof(obj[key]) === 'object' && _typeof(rest[i][key]) === 'object' && obj[key] !== undefined && obj[key] !== null && !Array.isArray(obj[key]) && !Array.isArray(rest[i][key])) {\n obj[key] = _objectSpread(_objectSpread({}, obj[key]), rest[i][key]);\n } else {\n obj[key] = rest[i][key];\n }\n }\n }\n }\n return obj;\n};\nexport { merge };","/* eslint-disable prefer-const */\n\nvar index = 0;\nvar genNanoid = function genNanoid() {\n var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 21;\n if (typeof window === 'undefined') return (index += 1).toFixed(0);\n if (!window.crypto) return (index += 1).toFixed(0);\n var e = '',\n r = crypto.getRandomValues(new Uint8Array(t));\n // eslint-disable-next-line no-param-reassign\n for (; t--;) {\n var n = 63 & r[t];\n e += n < 36 ? n.toString(36) : n < 62 ? (n - 26).toString(36).toUpperCase() : n < 63 ? '_' : '-';\n }\n return e;\n};\n\n/**\n * 生成uuid,如果不支持 randomUUID,就用 genNanoid\n *\n * @returns string\n */\nexport var nanoid = function nanoid() {\n if (typeof window === 'undefined') return genNanoid();\n // @ts-ignore\n if (window.crypto && window.crypto.randomUUID && typeof crypto.randomUUID == 'function') {\n // @ts-ignore\n return crypto.randomUUID();\n }\n return genNanoid();\n};","/** 如果是个方法执行一下它 */\nexport function runFunction(valueEnum) {\n if (typeof valueEnum === 'function') {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n return valueEnum.apply(void 0, rest);\n }\n return valueEnum;\n}","import cjsModule from '../index.js'\n\nexport const configure = cjsModule.configure\n\nexport const stringify = cjsModule\nexport default cjsModule\n","import { configure } from 'safe-stable-stringify';\nvar stringify = configure({\n bigint: true,\n circularValue: 'Magic circle!',\n deterministic: false,\n maximumDepth: 4\n // maximumBreadth: 4,\n});\n\nexport { configure, stringify };\nexport default stringify;","export function isWindow(obj) {\n return obj !== null && obj !== undefined && obj === obj.window;\n}\nexport default function getScroll(target, top) {\n var _a, _b;\n if (typeof window === 'undefined') {\n return 0;\n }\n const method = top ? 'scrollTop' : 'scrollLeft';\n let result = 0;\n if (isWindow(target)) {\n result = target[top ? 'pageYOffset' : 'pageXOffset'];\n } else if (target instanceof Document) {\n result = target.documentElement[method];\n } else if (target instanceof HTMLElement) {\n result = target[method];\n } else if (target) {\n // According to the type inference, the `target` is `never` type.\n // Since we configured the loose mode type checking, and supports mocking the target with such shape below::\n // `{ documentElement: { scrollLeft: 200, scrollTop: 400 } }`,\n // the program may falls into this branch.\n // Check the corresponding tests for details. Don't sure what is the real scenario this happens.\n result = target[method];\n }\n if (target && !isWindow(target) && typeof result !== 'number') {\n result = (_b = ((_a = target.ownerDocument) !== null && _a !== void 0 ? _a : target).documentElement) === null || _b === void 0 ? void 0 : _b[method];\n }\n return result;\n}","// eslint-disable-next-line import/prefer-default-export\nexport function easeInOutCubic(t, b, c, d) {\n const cc = c - b;\n t /= d / 2;\n if (t < 1) {\n return cc / 2 * t * t * t + b;\n }\n // eslint-disable-next-line no-return-assign\n return cc / 2 * ((t -= 2) * t * t + 2) + b;\n}","import raf from \"rc-util/es/raf\";\nimport { easeInOutCubic } from './easings';\nimport getScroll, { isWindow } from './getScroll';\nexport default function scrollTo(y) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n getContainer = () => window,\n callback,\n duration = 450\n } = options;\n const container = getContainer();\n const scrollTop = getScroll(container, true);\n const startTime = Date.now();\n const frameFunc = () => {\n const timestamp = Date.now();\n const time = timestamp - startTime;\n const nextScrollTop = easeInOutCubic(time > duration ? duration : time, scrollTop, y, duration);\n if (isWindow(container)) {\n container.scrollTo(window.pageXOffset, nextScrollTop);\n } else if (container instanceof Document || container.constructor.name === 'HTMLDocument') {\n container.documentElement.scrollTop = nextScrollTop;\n } else {\n container.scrollTop = nextScrollTop;\n }\n if (time < duration) {\n raf(frameFunc);\n } else if (typeof callback === 'function') {\n callback();\n }\n };\n raf(frameFunc);\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/**\n * Wrap of sub component which need use as Button capacity (like Icon component).\n *\n * This helps accessibility reader to tread as a interactive button to operation.\n */\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nconst inlineStyle = {\n border: 0,\n background: 'transparent',\n padding: 0,\n lineHeight: 'inherit',\n display: 'inline-block'\n};\nconst TransButton = /*#__PURE__*/React.forwardRef((props, ref) => {\n const onKeyDown = event => {\n const {\n keyCode\n } = event;\n if (keyCode === KeyCode.ENTER) {\n event.preventDefault();\n }\n };\n const onKeyUp = event => {\n const {\n keyCode\n } = event;\n const {\n onClick\n } = props;\n if (keyCode === KeyCode.ENTER && onClick) {\n onClick();\n }\n };\n const {\n style,\n noStyle,\n disabled\n } = props,\n restProps = __rest(props, [\"style\", \"noStyle\", \"disabled\"]);\n let mergedStyle = {};\n if (!noStyle) {\n mergedStyle = Object.assign({}, inlineStyle);\n }\n if (disabled) {\n mergedStyle.pointerEvents = 'none';\n }\n mergedStyle = Object.assign(Object.assign({}, mergedStyle), style);\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n role: \"button\",\n tabIndex: 0,\n ref: ref\n }, restProps, {\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n style: mergedStyle\n }));\n});\nexport default TransButton;","import { Keyframes } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genComponentStyleHook, genPresetColor, mergeToken } from '../../theme/internal';\nconst antStatusProcessing = new Keyframes('antStatusProcessing', {\n '0%': {\n transform: 'scale(0.8)',\n opacity: 0.5\n },\n '100%': {\n transform: 'scale(2.4)',\n opacity: 0\n }\n});\nconst antZoomBadgeIn = new Keyframes('antZoomBadgeIn', {\n '0%': {\n transform: 'scale(0) translate(50%, -50%)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1) translate(50%, -50%)'\n }\n});\nconst antZoomBadgeOut = new Keyframes('antZoomBadgeOut', {\n '0%': {\n transform: 'scale(1) translate(50%, -50%)'\n },\n '100%': {\n transform: 'scale(0) translate(50%, -50%)',\n opacity: 0\n }\n});\nconst antNoWrapperZoomBadgeIn = new Keyframes('antNoWrapperZoomBadgeIn', {\n '0%': {\n transform: 'scale(0)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)'\n }\n});\nconst antNoWrapperZoomBadgeOut = new Keyframes('antNoWrapperZoomBadgeOut', {\n '0%': {\n transform: 'scale(1)'\n },\n '100%': {\n transform: 'scale(0)',\n opacity: 0\n }\n});\nconst antBadgeLoadingCircle = new Keyframes('antBadgeLoadingCircle', {\n '0%': {\n transformOrigin: '50%'\n },\n '100%': {\n transform: 'translate(50%, -50%) rotate(360deg)',\n transformOrigin: '50%'\n }\n});\nconst genSharedBadgeStyle = token => {\n const {\n componentCls,\n iconCls,\n antCls,\n badgeShadowSize,\n badgeHeightSm,\n motionDurationSlow,\n badgeStatusSize,\n marginXS\n } = token;\n const numberPrefixCls = `${antCls}-scroll-number`;\n const colorPreset = genPresetColor(token, (colorKey, _ref) => {\n let {\n darkColor\n } = _ref;\n return {\n [`&${componentCls} ${componentCls}-color-${colorKey}`]: {\n background: darkColor,\n [`&:not(${componentCls}-count)`]: {\n color: darkColor\n }\n }\n };\n });\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n width: 'fit-content',\n lineHeight: 1,\n [`${componentCls}-count`]: {\n zIndex: token.badgeZIndex,\n minWidth: token.badgeHeight,\n height: token.badgeHeight,\n color: token.badgeTextColor,\n fontWeight: token.badgeFontWeight,\n fontSize: token.badgeFontSize,\n lineHeight: `${token.badgeHeight}px`,\n whiteSpace: 'nowrap',\n textAlign: 'center',\n background: token.badgeColor,\n borderRadius: token.badgeHeight / 2,\n boxShadow: `0 0 0 ${badgeShadowSize}px ${token.badgeShadowColor}`,\n transition: `background ${token.motionDurationMid}`,\n a: {\n color: token.badgeTextColor\n },\n 'a:hover': {\n color: token.badgeTextColor\n },\n 'a:hover &': {\n background: token.badgeColorHover\n }\n },\n [`${componentCls}-count-sm`]: {\n minWidth: badgeHeightSm,\n height: badgeHeightSm,\n fontSize: token.badgeFontSizeSm,\n lineHeight: `${badgeHeightSm}px`,\n borderRadius: badgeHeightSm / 2\n },\n [`${componentCls}-multiple-words`]: {\n padding: `0 ${token.paddingXS}px`,\n bdi: {\n unicodeBidi: 'plaintext'\n }\n },\n [`${componentCls}-dot`]: {\n zIndex: token.badgeZIndex,\n width: token.badgeDotSize,\n minWidth: token.badgeDotSize,\n height: token.badgeDotSize,\n background: token.badgeColor,\n borderRadius: '100%',\n boxShadow: `0 0 0 ${badgeShadowSize}px ${token.badgeShadowColor}`\n },\n [`${componentCls}-dot${numberPrefixCls}`]: {\n transition: `background ${motionDurationSlow}`\n },\n [`${componentCls}-count, ${componentCls}-dot, ${numberPrefixCls}-custom-component`]: {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n transform: 'translate(50%, -50%)',\n transformOrigin: '100% 0%',\n [`&${iconCls}-spin`]: {\n animationName: antBadgeLoadingCircle,\n animationDuration: '1s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear'\n }\n },\n [`&${componentCls}-status`]: {\n lineHeight: 'inherit',\n verticalAlign: 'baseline',\n [`${componentCls}-status-dot`]: {\n position: 'relative',\n top: -1,\n display: 'inline-block',\n width: badgeStatusSize,\n height: badgeStatusSize,\n verticalAlign: 'middle',\n borderRadius: '50%'\n },\n [`${componentCls}-status-success`]: {\n backgroundColor: token.colorSuccess\n },\n [`${componentCls}-status-processing`]: {\n overflow: 'visible',\n color: token.colorPrimary,\n backgroundColor: token.colorPrimary,\n '&::after': {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n width: '100%',\n height: '100%',\n borderWidth: badgeShadowSize,\n borderStyle: 'solid',\n borderColor: 'inherit',\n borderRadius: '50%',\n animationName: antStatusProcessing,\n animationDuration: token.badgeProcessingDuration,\n animationIterationCount: 'infinite',\n animationTimingFunction: 'ease-in-out',\n content: '\"\"'\n }\n },\n [`${componentCls}-status-default`]: {\n backgroundColor: token.colorTextPlaceholder\n },\n [`${componentCls}-status-error`]: {\n backgroundColor: token.colorError\n },\n [`${componentCls}-status-warning`]: {\n backgroundColor: token.colorWarning\n },\n [`${componentCls}-status-text`]: {\n marginInlineStart: marginXS,\n color: token.colorText,\n fontSize: token.fontSize\n }\n }\n }), colorPreset), {\n [`${componentCls}-zoom-appear, ${componentCls}-zoom-enter`]: {\n animationName: antZoomBadgeIn,\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseOutBack,\n animationFillMode: 'both'\n },\n [`${componentCls}-zoom-leave`]: {\n animationName: antZoomBadgeOut,\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseOutBack,\n animationFillMode: 'both'\n },\n [`&${componentCls}-not-a-wrapper`]: {\n [`${componentCls}-zoom-appear, ${componentCls}-zoom-enter`]: {\n animationName: antNoWrapperZoomBadgeIn,\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseOutBack\n },\n [`${componentCls}-zoom-leave`]: {\n animationName: antNoWrapperZoomBadgeOut,\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseOutBack\n },\n [`&:not(${componentCls}-status)`]: {\n verticalAlign: 'middle'\n },\n [`${numberPrefixCls}-custom-component, ${componentCls}-count`]: {\n transform: 'none'\n },\n [`${numberPrefixCls}-custom-component, ${numberPrefixCls}`]: {\n position: 'relative',\n top: 'auto',\n display: 'block',\n transformOrigin: '50% 50%'\n }\n },\n [`${numberPrefixCls}`]: {\n overflow: 'hidden',\n [`${numberPrefixCls}-only`]: {\n position: 'relative',\n display: 'inline-block',\n height: token.badgeHeight,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseOutBack}`,\n WebkitTransformStyle: 'preserve-3d',\n WebkitBackfaceVisibility: 'hidden',\n [`> p${numberPrefixCls}-only-unit`]: {\n height: token.badgeHeight,\n margin: 0,\n WebkitTransformStyle: 'preserve-3d',\n WebkitBackfaceVisibility: 'hidden'\n }\n },\n [`${numberPrefixCls}-symbol`]: {\n verticalAlign: 'top'\n }\n },\n // ====================== RTL =======================\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-count, ${componentCls}-dot, ${numberPrefixCls}-custom-component`]: {\n transform: 'translate(-50%, -50%)'\n }\n }\n })\n };\n};\n// ============================== Export ==============================\nexport const prepareToken = token => {\n const {\n fontSize,\n lineHeight,\n fontSizeSM,\n lineWidth,\n marginXS,\n colorBorderBg\n } = token;\n const badgeFontHeight = Math.round(fontSize * lineHeight);\n const badgeShadowSize = lineWidth;\n const badgeZIndex = 'auto';\n const badgeHeight = badgeFontHeight - 2 * badgeShadowSize;\n const badgeTextColor = token.colorBgContainer;\n const badgeFontWeight = 'normal';\n const badgeFontSize = fontSizeSM;\n const badgeColor = token.colorError;\n const badgeColorHover = token.colorErrorHover;\n const badgeHeightSm = fontSize;\n const badgeDotSize = fontSizeSM / 2;\n const badgeFontSizeSm = fontSizeSM;\n const badgeStatusSize = fontSizeSM / 2;\n const badgeToken = mergeToken(token, {\n badgeFontHeight,\n badgeShadowSize,\n badgeZIndex,\n badgeHeight,\n badgeTextColor,\n badgeFontWeight,\n badgeFontSize,\n badgeColor,\n badgeColorHover,\n badgeShadowColor: colorBorderBg,\n badgeHeightSm,\n badgeDotSize,\n badgeFontSizeSm,\n badgeStatusSize,\n badgeProcessingDuration: '1.2s',\n badgeRibbonOffset: marginXS,\n // Follow token just by Design. Not related with token\n badgeRibbonCornerTransform: 'scaleY(0.75)',\n badgeRibbonCornerFilter: `brightness(75%)`\n });\n return badgeToken;\n};\nexport default genComponentStyleHook('Badge', token => {\n const badgeToken = prepareToken(token);\n return [genSharedBadgeStyle(badgeToken)];\n});","import { prepareToken } from '.';\nimport { resetComponent } from '../../style';\nimport { genComponentStyleHook, genPresetColor } from '../../theme/internal';\n// ============================== Ribbon ==============================\nconst genRibbonStyle = token => {\n const {\n antCls,\n badgeFontHeight,\n marginXS,\n badgeRibbonOffset\n } = token;\n const ribbonPrefixCls = `${antCls}-ribbon`;\n const ribbonWrapperPrefixCls = `${antCls}-ribbon-wrapper`;\n const statusRibbonPreset = genPresetColor(token, (colorKey, _ref) => {\n let {\n darkColor\n } = _ref;\n return {\n [`&${ribbonPrefixCls}-color-${colorKey}`]: {\n background: darkColor,\n color: darkColor\n }\n };\n });\n return {\n [`${ribbonWrapperPrefixCls}`]: {\n position: 'relative'\n },\n [`${ribbonPrefixCls}`]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: marginXS,\n padding: `0 ${token.paddingXS}px`,\n color: token.colorPrimary,\n lineHeight: `${badgeFontHeight}px`,\n whiteSpace: 'nowrap',\n backgroundColor: token.colorPrimary,\n borderRadius: token.borderRadiusSM,\n [`${ribbonPrefixCls}-text`]: {\n color: token.colorTextLightSolid\n },\n [`${ribbonPrefixCls}-corner`]: {\n position: 'absolute',\n top: '100%',\n width: badgeRibbonOffset,\n height: badgeRibbonOffset,\n color: 'currentcolor',\n border: `${badgeRibbonOffset / 2}px solid`,\n transform: token.badgeRibbonCornerTransform,\n transformOrigin: 'top',\n filter: token.badgeRibbonCornerFilter\n }\n }), statusRibbonPreset), {\n [`&${ribbonPrefixCls}-placement-end`]: {\n insetInlineEnd: -badgeRibbonOffset,\n borderEndEndRadius: 0,\n [`${ribbonPrefixCls}-corner`]: {\n insetInlineEnd: 0,\n borderInlineEndColor: 'transparent',\n borderBlockEndColor: 'transparent'\n }\n },\n [`&${ribbonPrefixCls}-placement-start`]: {\n insetInlineStart: -badgeRibbonOffset,\n borderEndStartRadius: 0,\n [`${ribbonPrefixCls}-corner`]: {\n insetInlineStart: 0,\n borderBlockEndColor: 'transparent',\n borderInlineStartColor: 'transparent'\n }\n },\n // ====================== RTL =======================\n '&-rtl': {\n direction: 'rtl'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook(['Badge', 'Ribbon'], token => {\n const badgeToken = prepareToken(token);\n return [genRibbonStyle(badgeToken)];\n});","import * as React from 'react';\nimport classNames from 'classnames';\nimport { isPresetColor } from '../_util/colors';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style/ribbon';\nconst Ribbon = props => {\n const {\n className,\n prefixCls: customizePrefixCls,\n style,\n color,\n children,\n text,\n placement = 'end'\n } = props;\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('ribbon', customizePrefixCls);\n const colorInPreset = isPresetColor(color, false);\n const ribbonCls = classNames(prefixCls, `${prefixCls}-placement-${placement}`, {\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-color-${color}`]: colorInPreset\n }, className);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const colorStyle = {};\n const cornerColorStyle = {};\n if (color && !colorInPreset) {\n colorStyle.background = color;\n cornerColorStyle.color = color;\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-wrapper`, hashId)\n }, children, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(ribbonCls, hashId),\n style: Object.assign(Object.assign({}, colorStyle), style)\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-text`\n }, text), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-corner`,\n style: cornerColorStyle\n }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Ribbon.displayName = 'Ribbon';\n}\nexport default Ribbon;","import classNames from 'classnames';\nimport * as React from 'react';\nfunction UnitNumber(_ref) {\n let {\n prefixCls,\n value,\n current,\n offset = 0\n } = _ref;\n let style;\n if (offset) {\n style = {\n position: 'absolute',\n top: `${offset}00%`,\n left: 0\n };\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n style: style,\n className: classNames(`${prefixCls}-only-unit`, {\n current\n })\n }, value);\n}\nfunction getOffset(start, end, unit) {\n let index = start;\n let offset = 0;\n while ((index + 10) % 10 !== end) {\n index += unit;\n offset += unit;\n }\n return offset;\n}\nexport default function SingleNumber(props) {\n const {\n prefixCls,\n count: originCount,\n value: originValue\n } = props;\n const value = Number(originValue);\n const count = Math.abs(originCount);\n const [prevValue, setPrevValue] = React.useState(value);\n const [prevCount, setPrevCount] = React.useState(count);\n // ============================= Events =============================\n const onTransitionEnd = () => {\n setPrevValue(value);\n setPrevCount(count);\n };\n // Fallback if transition event not support\n React.useEffect(() => {\n const timeout = setTimeout(() => {\n onTransitionEnd();\n }, 1000);\n return () => {\n clearTimeout(timeout);\n };\n }, [value]);\n // ============================= Render =============================\n // Render unit list\n let unitNodes;\n let offsetStyle;\n if (prevValue === value || Number.isNaN(value) || Number.isNaN(prevValue)) {\n // Nothing to change\n unitNodes = [/*#__PURE__*/React.createElement(UnitNumber, Object.assign({}, props, {\n key: value,\n current: true\n }))];\n offsetStyle = {\n transition: 'none'\n };\n } else {\n unitNodes = [];\n // Fill basic number units\n const end = value + 10;\n const unitNumberList = [];\n for (let index = value; index <= end; index += 1) {\n unitNumberList.push(index);\n }\n // Fill with number unit nodes\n const prevIndex = unitNumberList.findIndex(n => n % 10 === prevValue);\n unitNodes = unitNumberList.map((n, index) => {\n const singleUnit = n % 10;\n return /*#__PURE__*/React.createElement(UnitNumber, Object.assign({}, props, {\n key: n,\n value: singleUnit,\n offset: index - prevIndex,\n current: index === prevIndex\n }));\n });\n // Calculate container offset value\n const unit = prevCount < count ? 1 : -1;\n offsetStyle = {\n transform: `translateY(${-getOffset(prevValue, value, unit)}00%)`\n };\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-only`,\n style: offsetStyle,\n onTransitionEnd: onTransitionEnd\n }, unitNodes);\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 { cloneElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport SingleNumber from './SingleNumber';\nconst ScrollNumber = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n count,\n className,\n motionClassName,\n style,\n title,\n show,\n component: Component = 'sup',\n children\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"count\", \"className\", \"motionClassName\", \"style\", \"title\", \"show\", \"component\", \"children\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('scroll-number', customizePrefixCls);\n // ============================ Render ============================\n const newProps = Object.assign(Object.assign({}, restProps), {\n 'data-show': show,\n style,\n className: classNames(prefixCls, className, motionClassName),\n title: title\n });\n // Only integer need motion\n let numberNodes = count;\n if (count && Number(count) % 1 === 0) {\n const numberList = String(count).split('');\n numberNodes = /*#__PURE__*/React.createElement(\"bdi\", null, numberList.map((num, i) => /*#__PURE__*/React.createElement(SingleNumber, {\n prefixCls: prefixCls,\n count: Number(count),\n value: num,\n // eslint-disable-next-line react/no-array-index-key\n key: numberList.length - i\n })));\n }\n // allow specify the border\n // mock border-color by box-shadow for compatible with old usage:\n // \n if (style && style.borderColor) {\n newProps.style = Object.assign(Object.assign({}, style), {\n boxShadow: `0 0 0 1px ${style.borderColor} inset`\n });\n }\n if (children) {\n return cloneElement(children, oriProps => ({\n className: classNames(`${prefixCls}-custom-component`, oriProps === null || oriProps === void 0 ? void 0 : oriProps.className, motionClassName)\n }));\n }\n return /*#__PURE__*/React.createElement(Component, Object.assign({}, newProps, {\n ref: ref\n }), numberNodes);\n});\nexport default ScrollNumber;","'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 CSSMotion from 'rc-motion';\nimport * as React from 'react';\nimport { useMemo, useRef } from 'react';\nimport { isPresetColor } from '../_util/colors';\nimport { cloneElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport Ribbon from './Ribbon';\nimport ScrollNumber from './ScrollNumber';\nimport useStyle from './style';\nconst InternalBadge = (props, ref) => {\n var _a, _b, _c, _d, _e;\n const {\n prefixCls: customizePrefixCls,\n scrollNumberPrefixCls: customizeScrollNumberPrefixCls,\n children,\n status,\n text,\n color,\n count = null,\n overflowCount = 99,\n dot = false,\n size = 'default',\n title,\n offset,\n style,\n className,\n rootClassName,\n classNames,\n styles,\n showZero = false\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"scrollNumberPrefixCls\", \"children\", \"status\", \"text\", \"color\", \"count\", \"overflowCount\", \"dot\", \"size\", \"title\", \"offset\", \"style\", \"className\", \"rootClassName\", \"classNames\", \"styles\", \"showZero\"]);\n const {\n getPrefixCls,\n direction,\n badge\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('badge', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n // ================================ Misc ================================\n const numberedDisplayCount = count > overflowCount ? `${overflowCount}+` : count;\n const isZero = numberedDisplayCount === '0' || numberedDisplayCount === 0;\n const ignoreCount = count === null || isZero && !showZero;\n const hasStatus = (status !== null && status !== undefined || color !== null && color !== undefined) && ignoreCount;\n const showAsDot = dot && !isZero;\n const mergedCount = showAsDot ? '' : numberedDisplayCount;\n const isHidden = useMemo(() => {\n const isEmpty = mergedCount === null || mergedCount === undefined || mergedCount === '';\n return (isEmpty || isZero && !showZero) && !showAsDot;\n }, [mergedCount, isZero, showZero, showAsDot]);\n // Count should be cache in case hidden change it\n const countRef = useRef(count);\n if (!isHidden) {\n countRef.current = count;\n }\n const livingCount = countRef.current;\n // We need cache count since remove motion should not change count display\n const displayCountRef = useRef(mergedCount);\n if (!isHidden) {\n displayCountRef.current = mergedCount;\n }\n const displayCount = displayCountRef.current;\n // We will cache the dot status to avoid shaking on leaved motion\n const isDotRef = useRef(showAsDot);\n if (!isHidden) {\n isDotRef.current = showAsDot;\n }\n // =============================== Styles ===============================\n const mergedStyle = useMemo(() => {\n if (!offset) {\n return Object.assign(Object.assign({}, badge === null || badge === void 0 ? void 0 : badge.style), style);\n }\n const offsetStyle = {\n marginTop: offset[1]\n };\n if (direction === 'rtl') {\n offsetStyle.left = parseInt(offset[0], 10);\n } else {\n offsetStyle.right = -parseInt(offset[0], 10);\n }\n return Object.assign(Object.assign(Object.assign({}, offsetStyle), badge === null || badge === void 0 ? void 0 : badge.style), style);\n }, [direction, offset, style, badge === null || badge === void 0 ? void 0 : badge.style]);\n // =============================== Render ===============================\n // >>> Title\n const titleNode = title !== null && title !== void 0 ? title : typeof livingCount === 'string' || typeof livingCount === 'number' ? livingCount : undefined;\n // >>> Status Text\n const statusTextNode = isHidden || !text ? null : /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-status-text`\n }, text);\n // >>> Display Component\n const displayNode = !livingCount || typeof livingCount !== 'object' ? undefined : cloneElement(livingCount, oriProps => ({\n style: Object.assign(Object.assign({}, mergedStyle), oriProps.style)\n }));\n // InternalColor\n const isInternalColor = isPresetColor(color, false);\n // Shared styles\n const statusCls = classnames(classNames === null || classNames === void 0 ? void 0 : classNames.indicator, (_a = badge === null || badge === void 0 ? void 0 : badge.classNames) === null || _a === void 0 ? void 0 : _a.indicator, {\n [`${prefixCls}-status-dot`]: hasStatus,\n [`${prefixCls}-status-${status}`]: !!status,\n [`${prefixCls}-color-${color}`]: isInternalColor\n });\n const statusStyle = {};\n if (color && !isInternalColor) {\n statusStyle.color = color;\n statusStyle.background = color;\n }\n const badgeClassName = classnames(prefixCls, {\n [`${prefixCls}-status`]: hasStatus,\n [`${prefixCls}-not-a-wrapper`]: !children,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, badge === null || badge === void 0 ? void 0 : badge.className, (_b = badge === null || badge === void 0 ? void 0 : badge.classNames) === null || _b === void 0 ? void 0 : _b.root, classNames === null || classNames === void 0 ? void 0 : classNames.root, hashId);\n // \n if (!children && hasStatus) {\n const statusTextColor = mergedStyle.color;\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", Object.assign({}, restProps, {\n className: badgeClassName,\n style: Object.assign(Object.assign(Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.root), (_c = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _c === void 0 ? void 0 : _c.root), mergedStyle)\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: statusCls,\n style: Object.assign(Object.assign(Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.indicator), (_d = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _d === void 0 ? void 0 : _d.indicator), statusStyle)\n }), text && /*#__PURE__*/React.createElement(\"span\", {\n style: {\n color: statusTextColor\n },\n className: `${prefixCls}-status-text`\n }, text)));\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", Object.assign({\n ref: ref\n }, restProps, {\n className: badgeClassName,\n style: Object.assign(Object.assign({}, (_e = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _e === void 0 ? void 0 : _e.root), styles === null || styles === void 0 ? void 0 : styles.root)\n }), children, /*#__PURE__*/React.createElement(CSSMotion, {\n visible: !isHidden,\n motionName: `${prefixCls}-zoom`,\n motionAppear: false,\n motionDeadline: 1000\n }, _ref => {\n let {\n className: motionClassName,\n ref: scrollNumberRef\n } = _ref;\n var _a, _b;\n const scrollNumberPrefixCls = getPrefixCls('scroll-number', customizeScrollNumberPrefixCls);\n const isDot = isDotRef.current;\n const scrollNumberCls = classnames(classNames === null || classNames === void 0 ? void 0 : classNames.indicator, (_a = badge === null || badge === void 0 ? void 0 : badge.classNames) === null || _a === void 0 ? void 0 : _a.indicator, {\n [`${prefixCls}-dot`]: isDot,\n [`${prefixCls}-count`]: !isDot,\n [`${prefixCls}-count-sm`]: size === 'small',\n [`${prefixCls}-multiple-words`]: !isDot && displayCount && displayCount.toString().length > 1,\n [`${prefixCls}-status-${status}`]: !!status,\n [`${prefixCls}-color-${color}`]: isInternalColor\n });\n let scrollNumberStyle = Object.assign(Object.assign(Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.indicator), (_b = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _b === void 0 ? void 0 : _b.indicator), mergedStyle);\n if (color && !isInternalColor) {\n scrollNumberStyle = scrollNumberStyle || {};\n scrollNumberStyle.background = color;\n }\n return /*#__PURE__*/React.createElement(ScrollNumber, {\n prefixCls: scrollNumberPrefixCls,\n show: !isHidden,\n motionClassName: motionClassName,\n className: scrollNumberCls,\n count: displayCount,\n title: titleNode,\n style: scrollNumberStyle,\n key: \"scrollNumber\",\n ref: scrollNumberRef\n }, displayNode);\n }), statusTextNode));\n};\nconst Badge = /*#__PURE__*/React.forwardRef(InternalBadge);\nBadge.Ribbon = Ribbon;\nif (process.env.NODE_ENV !== 'production') {\n Badge.displayName = 'Badge';\n}\nexport default Badge;","import * as React from 'react';\nvar CascaderContext = /*#__PURE__*/React.createContext(null);\nexport default CascaderContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nexport var SEARCH_MARK = '__rc_cascader_search_mark__';\nvar defaultFilter = function defaultFilter(search, options, _ref) {\n var label = _ref.label;\n return options.some(function (opt) {\n return String(opt[label]).toLowerCase().includes(search.toLowerCase());\n });\n};\nvar defaultRender = function defaultRender(inputValue, path, prefixCls, fieldNames) {\n return path.map(function (opt) {\n return opt[fieldNames.label];\n }).join(' / ');\n};\nexport default (function (search, options, fieldNames, prefixCls, config, changeOnSelect) {\n var _config$filter = config.filter,\n filter = _config$filter === void 0 ? defaultFilter : _config$filter,\n _config$render = config.render,\n render = _config$render === void 0 ? defaultRender : _config$render,\n _config$limit = config.limit,\n limit = _config$limit === void 0 ? 50 : _config$limit,\n sort = config.sort;\n return React.useMemo(function () {\n var filteredOptions = [];\n if (!search) {\n return [];\n }\n function dig(list, pathOptions) {\n list.forEach(function (option) {\n // Perf saving when `sort` is disabled and `limit` is provided\n if (!sort && limit > 0 && filteredOptions.length >= limit) {\n return;\n }\n var connectedPathOptions = [].concat(_toConsumableArray(pathOptions), [option]);\n var children = option[fieldNames.children];\n\n // If current option is filterable\n if (\n // If is leaf option\n !children || children.length === 0 ||\n // If is changeOnSelect\n changeOnSelect) {\n if (filter(search, connectedPathOptions, {\n label: fieldNames.label\n })) {\n var _objectSpread2;\n filteredOptions.push(_objectSpread(_objectSpread({}, option), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, fieldNames.label, render(search, connectedPathOptions, prefixCls, fieldNames)), _defineProperty(_objectSpread2, SEARCH_MARK, connectedPathOptions), _defineProperty(_objectSpread2, fieldNames.children, undefined), _objectSpread2)));\n }\n }\n if (children) {\n dig(option[fieldNames.children], connectedPathOptions);\n }\n });\n }\n dig(options, []);\n\n // Do sort\n if (sort) {\n filteredOptions.sort(function (a, b) {\n return sort(a[SEARCH_MARK], b[SEARCH_MARK], search, fieldNames);\n });\n }\n return limit > 0 ? filteredOptions.slice(0, limit) : filteredOptions;\n }, [search, options, fieldNames, prefixCls, render, changeOnSelect, filter, sort, limit]);\n});","import { SEARCH_MARK } from \"../hooks/useSearchOptions\";\nexport var VALUE_SPLIT = '__RC_CASCADER_SPLIT__';\nexport var SHOW_PARENT = 'SHOW_PARENT';\nexport var SHOW_CHILD = 'SHOW_CHILD';\n\n/**\n * Will convert value to string, and join with `VALUE_SPLIT`\n */\nexport function toPathKey(value) {\n return value.join(VALUE_SPLIT);\n}\n\n/**\n * Batch convert value to string, and join with `VALUE_SPLIT`\n */\nexport function toPathKeys(value) {\n return value.map(toPathKey);\n}\nexport function toPathValueStr(pathKey) {\n return pathKey.split(VALUE_SPLIT);\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n label = _ref.label,\n value = _ref.value,\n children = _ref.children;\n var val = value || 'value';\n return {\n label: label || 'label',\n value: val,\n key: val,\n children: children || 'children'\n };\n}\nexport function isLeaf(option, fieldNames) {\n var _option$isLeaf, _option$fieldNames$ch;\n return (_option$isLeaf = option.isLeaf) !== null && _option$isLeaf !== void 0 ? _option$isLeaf : !((_option$fieldNames$ch = option[fieldNames.children]) !== null && _option$fieldNames$ch !== void 0 && _option$fieldNames$ch.length);\n}\nexport function scrollIntoParentView(element) {\n var parent = element.parentElement;\n if (!parent) {\n return;\n }\n var elementToParent = element.offsetTop - parent.offsetTop; // offsetParent may not be parent.\n if (elementToParent - parent.scrollTop < 0) {\n parent.scrollTo({\n top: elementToParent\n });\n } else if (elementToParent + element.offsetHeight - parent.scrollTop > parent.offsetHeight) {\n parent.scrollTo({\n top: elementToParent + element.offsetHeight - parent.offsetHeight\n });\n }\n}\nexport function getFullPathKeys(options, fieldNames) {\n return options.map(function (item) {\n var _item$SEARCH_MARK;\n return (_item$SEARCH_MARK = item[SEARCH_MARK]) === null || _item$SEARCH_MARK === void 0 ? void 0 : _item$SEARCH_MARK.map(function (opt) {\n return opt[fieldNames.value];\n });\n });\n}","import { SHOW_CHILD } from \"./commonUtil\";\nexport function formatStrategyValues(pathKeys, getKeyPathEntities, showCheckedStrategy) {\n var valueSet = new Set(pathKeys);\n var keyPathEntities = getKeyPathEntities();\n return pathKeys.filter(function (key) {\n var entity = keyPathEntities[key];\n var parent = entity ? entity.parent : null;\n var children = entity ? entity.children : null;\n if (entity && entity.node.disabled) {\n return true;\n }\n return showCheckedStrategy === SHOW_CHILD ? !(children && children.some(function (child) {\n return child.key && valueSet.has(child.key);\n })) : !(parent && !parent.node.disabled && valueSet.has(parent.key));\n });\n}\nexport function toPathOptions(valueCells, options, fieldNames) {\n var stringMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var currentList = options;\n var valueOptions = [];\n var _loop = function _loop() {\n var _currentList, _currentList2, _foundOption$fieldNam;\n var valueCell = valueCells[i];\n var foundIndex = (_currentList = currentList) === null || _currentList === void 0 ? void 0 : _currentList.findIndex(function (option) {\n var val = option[fieldNames.value];\n return stringMode ? String(val) === String(valueCell) : val === valueCell;\n });\n var foundOption = foundIndex !== -1 ? (_currentList2 = currentList) === null || _currentList2 === void 0 ? void 0 : _currentList2[foundIndex] : null;\n valueOptions.push({\n value: (_foundOption$fieldNam = foundOption === null || foundOption === void 0 ? void 0 : foundOption[fieldNames.value]) !== null && _foundOption$fieldNam !== void 0 ? _foundOption$fieldNam : valueCell,\n index: foundIndex,\n option: foundOption\n });\n currentList = foundOption === null || foundOption === void 0 ? void 0 : foundOption[fieldNames.children];\n };\n for (var i = 0; i < valueCells.length; i += 1) {\n _loop();\n }\n return valueOptions;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { toPathOptions } from \"../utils/treeUtil\";\nimport * as React from 'react';\nimport { toPathKey } from \"../utils/commonUtil\";\nexport default (function (rawValues, options, fieldNames, multiple, displayRender) {\n return React.useMemo(function () {\n var mergedDisplayRender = displayRender ||\n // Default displayRender\n function (labels) {\n var mergedLabels = multiple ? labels.slice(-1) : labels;\n var SPLIT = ' / ';\n if (mergedLabels.every(function (label) {\n return ['string', 'number'].includes(_typeof(label));\n })) {\n return mergedLabels.join(SPLIT);\n }\n\n // If exist non-string value, use ReactNode instead\n return mergedLabels.reduce(function (list, label, index) {\n var keyedLabel = /*#__PURE__*/React.isValidElement(label) ? /*#__PURE__*/React.cloneElement(label, {\n key: index\n }) : label;\n if (index === 0) {\n return [keyedLabel];\n }\n return [].concat(_toConsumableArray(list), [SPLIT, keyedLabel]);\n }, []);\n };\n return rawValues.map(function (valueCells) {\n var _valueOptions, _valueOptions$option;\n var valueOptions = toPathOptions(valueCells, options, fieldNames);\n var label = mergedDisplayRender(valueOptions.map(function (_ref) {\n var _option$fieldNames$la;\n var option = _ref.option,\n value = _ref.value;\n return (_option$fieldNames$la = option === null || option === void 0 ? void 0 : option[fieldNames.label]) !== null && _option$fieldNames$la !== void 0 ? _option$fieldNames$la : value;\n }), valueOptions.map(function (_ref2) {\n var option = _ref2.option;\n return option;\n }));\n var value = toPathKey(valueCells);\n return {\n label: label,\n value: value,\n key: value,\n valueCells: valueCells,\n disabled: (_valueOptions = valueOptions[valueOptions.length - 1]) === null || _valueOptions === void 0 ? void 0 : (_valueOptions$option = _valueOptions.option) === null || _valueOptions$option === void 0 ? void 0 : _valueOptions$option.disabled\n };\n });\n }, [rawValues, options, fieldNames, displayRender, multiple]);\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport { VALUE_SPLIT } from \"../utils/commonUtil\";\n/** Lazy parse options data into conduct-able info to avoid perf issue in single mode */\nexport default (function (options, fieldNames) {\n var cacheRef = React.useRef({\n options: null,\n info: null\n });\n var getEntities = React.useCallback(function () {\n if (cacheRef.current.options !== options) {\n cacheRef.current.options = options;\n cacheRef.current.info = convertDataToEntities(options, {\n fieldNames: fieldNames,\n initWrapper: function initWrapper(wrapper) {\n return _objectSpread(_objectSpread({}, wrapper), {}, {\n pathKeyEntities: {}\n });\n },\n processEntity: function processEntity(entity, wrapper) {\n var pathKey = entity.nodes.map(function (node) {\n return node[fieldNames.value];\n }).join(VALUE_SPLIT);\n wrapper.pathKeyEntities[pathKey] = entity;\n\n // Overwrite origin key.\n // this is very hack but we need let conduct logic work with connect path\n entity.key = pathKey;\n }\n });\n }\n return cacheRef.current.info.pathKeyEntities;\n }, [fieldNames, options]);\n return getEntities;\n});","import * as React from 'react';\nimport { toPathOptions } from \"../utils/treeUtil\";\nexport default (function (options, fieldNames) {\n return React.useCallback(function (rawValues) {\n var missingValues = [];\n var existsValues = [];\n rawValues.forEach(function (valueCell) {\n var pathOptions = toPathOptions(valueCell, options, fieldNames);\n if (pathOptions.every(function (opt) {\n return opt.option;\n })) {\n existsValues.push(valueCell);\n } else {\n missingValues.push(valueCell);\n }\n });\n return [existsValues, missingValues];\n }, [options, fieldNames]);\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\n// Convert `showSearch` to unique config\nexport default function useSearchConfig(showSearch) {\n return React.useMemo(function () {\n if (!showSearch) {\n return [false, {}];\n }\n var searchConfig = {\n matchInputWidth: true,\n limit: 50\n };\n if (showSearch && _typeof(showSearch) === 'object') {\n searchConfig = _objectSpread(_objectSpread({}, searchConfig), showSearch);\n }\n if (searchConfig.limit <= 0) {\n delete searchConfig.limit;\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"'limit' of showSearch should be positive number or false.\");\n }\n }\n return [true, searchConfig];\n }, [showSearch]);\n}","import * as React from 'react';\nvar CacheContent = /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (_, next) {\n return !next.open;\n});\nif (process.env.NODE_ENV !== 'production') {\n CacheContent.displayName = 'CacheContent';\n}\nexport default CacheContent;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CascaderContext from \"../context\";\nexport default function Checkbox(_ref) {\n var _classNames;\n var prefixCls = _ref.prefixCls,\n checked = _ref.checked,\n halfChecked = _ref.halfChecked,\n disabled = _ref.disabled,\n onClick = _ref.onClick,\n disableCheckbox = _ref.disableCheckbox;\n var _React$useContext = React.useContext(CascaderContext),\n checkable = _React$useContext.checkable;\n var customCheckbox = typeof checkable !== 'boolean' ? checkable : null;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checked\"), checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-indeterminate\"), !checked && halfChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled || disableCheckbox), _classNames)),\n onClick: onClick\n }, customCheckbox);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport CascaderContext from \"../context\";\nimport { SEARCH_MARK } from \"../hooks/useSearchOptions\";\nimport { isLeaf, toPathKey } from \"../utils/commonUtil\";\nimport Checkbox from \"./Checkbox\";\nexport var FIX_LABEL = '__cascader_fix_label__';\nexport default function Column(_ref) {\n var prefixCls = _ref.prefixCls,\n multiple = _ref.multiple,\n options = _ref.options,\n activeValue = _ref.activeValue,\n prevValuePath = _ref.prevValuePath,\n onToggleOpen = _ref.onToggleOpen,\n onSelect = _ref.onSelect,\n onActive = _ref.onActive,\n checkedSet = _ref.checkedSet,\n halfCheckedSet = _ref.halfCheckedSet,\n loadingKeys = _ref.loadingKeys,\n isSelectable = _ref.isSelectable,\n searchValue = _ref.searchValue;\n var menuPrefixCls = \"\".concat(prefixCls, \"-menu\");\n var menuItemPrefixCls = \"\".concat(prefixCls, \"-menu-item\");\n var _React$useContext = React.useContext(CascaderContext),\n fieldNames = _React$useContext.fieldNames,\n changeOnSelect = _React$useContext.changeOnSelect,\n expandTrigger = _React$useContext.expandTrigger,\n expandIcon = _React$useContext.expandIcon,\n loadingIcon = _React$useContext.loadingIcon,\n dropdownMenuColumnStyle = _React$useContext.dropdownMenuColumnStyle;\n var hoverOpen = expandTrigger === 'hover';\n\n // ============================ Option ============================\n var optionInfoList = React.useMemo(function () {\n return options.map(function (option) {\n var _option$FIX_LABEL;\n var disabled = option.disabled,\n disableCheckbox = option.disableCheckbox;\n var searchOptions = option[SEARCH_MARK];\n var label = (_option$FIX_LABEL = option[FIX_LABEL]) !== null && _option$FIX_LABEL !== void 0 ? _option$FIX_LABEL : option[fieldNames.label];\n var value = option[fieldNames.value];\n var isMergedLeaf = isLeaf(option, fieldNames);\n\n // Get real value of option. Search option is different way.\n var fullPath = searchOptions ? searchOptions.map(function (opt) {\n return opt[fieldNames.value];\n }) : [].concat(_toConsumableArray(prevValuePath), [value]);\n var fullPathKey = toPathKey(fullPath);\n var isLoading = loadingKeys.includes(fullPathKey);\n\n // >>>>> checked\n var checked = checkedSet.has(fullPathKey);\n\n // >>>>> halfChecked\n var halfChecked = halfCheckedSet.has(fullPathKey);\n return {\n disabled: disabled,\n label: label,\n value: value,\n isLeaf: isMergedLeaf,\n isLoading: isLoading,\n checked: checked,\n halfChecked: halfChecked,\n option: option,\n disableCheckbox: disableCheckbox,\n fullPath: fullPath,\n fullPathKey: fullPathKey\n };\n });\n }, [options, checkedSet, fieldNames, halfCheckedSet, loadingKeys, prevValuePath]);\n\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: menuPrefixCls,\n role: \"menu\"\n }, optionInfoList.map(function (_ref2) {\n var _classNames;\n var disabled = _ref2.disabled,\n label = _ref2.label,\n value = _ref2.value,\n isMergedLeaf = _ref2.isLeaf,\n isLoading = _ref2.isLoading,\n checked = _ref2.checked,\n halfChecked = _ref2.halfChecked,\n option = _ref2.option,\n fullPath = _ref2.fullPath,\n fullPathKey = _ref2.fullPathKey,\n disableCheckbox = _ref2.disableCheckbox;\n // >>>>> Open\n var triggerOpenPath = function triggerOpenPath() {\n if (disabled || searchValue) {\n return;\n }\n var nextValueCells = _toConsumableArray(fullPath);\n if (hoverOpen && isMergedLeaf) {\n nextValueCells.pop();\n }\n onActive(nextValueCells);\n };\n\n // >>>>> Selection\n var triggerSelect = function triggerSelect() {\n if (isSelectable(option)) {\n onSelect(fullPath, isMergedLeaf);\n }\n };\n\n // >>>>> Title\n var title;\n if (typeof option.title === 'string') {\n title = option.title;\n } else if (typeof label === 'string') {\n title = label;\n }\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(\"li\", {\n key: fullPathKey,\n className: classNames(menuItemPrefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(menuItemPrefixCls, \"-expand\"), !isMergedLeaf), _defineProperty(_classNames, \"\".concat(menuItemPrefixCls, \"-active\"), activeValue === value || activeValue === fullPathKey), _defineProperty(_classNames, \"\".concat(menuItemPrefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(menuItemPrefixCls, \"-loading\"), isLoading), _classNames)),\n style: dropdownMenuColumnStyle,\n role: \"menuitemcheckbox\",\n title: title,\n \"aria-checked\": checked,\n \"data-path-key\": fullPathKey,\n onClick: function onClick() {\n triggerOpenPath();\n if (disableCheckbox) {\n return;\n }\n if (!multiple || isMergedLeaf) {\n triggerSelect();\n }\n },\n onDoubleClick: function onDoubleClick() {\n if (changeOnSelect) {\n onToggleOpen(false);\n }\n },\n onMouseEnter: function onMouseEnter() {\n if (hoverOpen) {\n triggerOpenPath();\n }\n },\n onMouseDown: function onMouseDown(e) {\n // Prevent selector from blurring\n e.preventDefault();\n }\n }, multiple && /*#__PURE__*/React.createElement(Checkbox, {\n prefixCls: \"\".concat(prefixCls, \"-checkbox\"),\n checked: checked,\n halfChecked: halfChecked,\n disabled: disabled || disableCheckbox,\n disableCheckbox: disableCheckbox,\n onClick: function onClick(e) {\n if (disableCheckbox) {\n return;\n }\n e.stopPropagation();\n triggerSelect();\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(menuItemPrefixCls, \"-content\")\n }, label), !isLoading && expandIcon && !isMergedLeaf && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(menuItemPrefixCls, \"-expand-icon\")\n }, expandIcon), isLoading && loadingIcon && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(menuItemPrefixCls, \"-loading-icon\")\n }, loadingIcon));\n }));\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport CascaderContext from \"../context\";\nimport { useBaseProps } from 'rc-select';\n\n/**\n * Control the active open options path.\n */\nexport default (function () {\n var _useBaseProps = useBaseProps(),\n multiple = _useBaseProps.multiple,\n open = _useBaseProps.open;\n var _React$useContext = React.useContext(CascaderContext),\n values = _React$useContext.values;\n\n // Record current dropdown active options\n // This also control the open status\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeValueCells = _React$useState2[0],\n setActiveValueCells = _React$useState2[1];\n React.useEffect(function () {\n if (open && !multiple) {\n var firstValueCells = values[0];\n setActiveValueCells(firstValueCells || []);\n }\n }, /* eslint-disable react-hooks/exhaustive-deps */\n [open]\n /* eslint-enable react-hooks/exhaustive-deps */);\n\n return [activeValueCells, setActiveValueCells];\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useBaseProps } from 'rc-select';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { SEARCH_MARK } from \"../hooks/useSearchOptions\";\nimport { getFullPathKeys, toPathKey } from \"../utils/commonUtil\";\nexport default (function (ref, options, fieldNames, activeValueCells, setActiveValueCells, onKeyBoardSelect) {\n var _useBaseProps = useBaseProps(),\n direction = _useBaseProps.direction,\n searchValue = _useBaseProps.searchValue,\n toggleOpen = _useBaseProps.toggleOpen,\n open = _useBaseProps.open;\n var rtl = direction === 'rtl';\n var _React$useMemo = React.useMemo(function () {\n var activeIndex = -1;\n var currentOptions = options;\n var mergedActiveIndexes = [];\n var mergedActiveValueCells = [];\n var len = activeValueCells.length;\n var pathKeys = getFullPathKeys(options, fieldNames);\n\n // Fill validate active value cells and index\n var _loop = function _loop(i) {\n // Mark the active index for current options\n var nextActiveIndex = currentOptions.findIndex(function (option, index) {\n return (pathKeys[index] ? toPathKey(pathKeys[index]) : option[fieldNames.value]) === activeValueCells[i];\n });\n if (nextActiveIndex === -1) {\n return \"break\";\n }\n activeIndex = nextActiveIndex;\n mergedActiveIndexes.push(activeIndex);\n mergedActiveValueCells.push(activeValueCells[i]);\n currentOptions = currentOptions[activeIndex][fieldNames.children];\n };\n for (var i = 0; i < len && currentOptions; i += 1) {\n var _ret = _loop(i);\n if (_ret === \"break\") break;\n }\n\n // Fill last active options\n var activeOptions = options;\n for (var _i = 0; _i < mergedActiveIndexes.length - 1; _i += 1) {\n activeOptions = activeOptions[mergedActiveIndexes[_i]][fieldNames.children];\n }\n return [mergedActiveValueCells, activeIndex, activeOptions, pathKeys];\n }, [activeValueCells, fieldNames, options]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 4),\n validActiveValueCells = _React$useMemo2[0],\n lastActiveIndex = _React$useMemo2[1],\n lastActiveOptions = _React$useMemo2[2],\n fullPathKeys = _React$useMemo2[3];\n\n // Update active value cells and scroll to target element\n var internalSetActiveValueCells = function internalSetActiveValueCells(next) {\n setActiveValueCells(next);\n };\n\n // Same options offset\n var offsetActiveOption = function offsetActiveOption(offset) {\n var len = lastActiveOptions.length;\n var currentIndex = lastActiveIndex;\n if (currentIndex === -1 && offset < 0) {\n currentIndex = len;\n }\n for (var i = 0; i < len; i += 1) {\n currentIndex = (currentIndex + offset + len) % len;\n var _option = lastActiveOptions[currentIndex];\n if (_option && !_option.disabled) {\n var nextActiveCells = validActiveValueCells.slice(0, -1).concat(fullPathKeys[currentIndex] ? toPathKey(fullPathKeys[currentIndex]) : _option[fieldNames.value]);\n internalSetActiveValueCells(nextActiveCells);\n return;\n }\n }\n };\n\n // Different options offset\n var prevColumn = function prevColumn() {\n if (validActiveValueCells.length > 1) {\n var nextActiveCells = validActiveValueCells.slice(0, -1);\n internalSetActiveValueCells(nextActiveCells);\n } else {\n toggleOpen(false);\n }\n };\n var nextColumn = function nextColumn() {\n var _lastActiveOptions$la;\n var nextOptions = ((_lastActiveOptions$la = lastActiveOptions[lastActiveIndex]) === null || _lastActiveOptions$la === void 0 ? void 0 : _lastActiveOptions$la[fieldNames.children]) || [];\n var nextOption = nextOptions.find(function (option) {\n return !option.disabled;\n });\n if (nextOption) {\n var nextActiveCells = [].concat(_toConsumableArray(validActiveValueCells), [nextOption[fieldNames.value]]);\n internalSetActiveValueCells(nextActiveCells);\n }\n };\n React.useImperativeHandle(ref, function () {\n return {\n // scrollTo: treeRef.current?.scrollTo,\n onKeyDown: function onKeyDown(event) {\n var which = event.which;\n switch (which) {\n // >>> Arrow keys\n case KeyCode.UP:\n case KeyCode.DOWN:\n {\n var offset = 0;\n if (which === KeyCode.UP) {\n offset = -1;\n } else if (which === KeyCode.DOWN) {\n offset = 1;\n }\n if (offset !== 0) {\n offsetActiveOption(offset);\n }\n break;\n }\n case KeyCode.LEFT:\n {\n if (searchValue) {\n break;\n }\n if (rtl) {\n nextColumn();\n } else {\n prevColumn();\n }\n break;\n }\n case KeyCode.RIGHT:\n {\n if (searchValue) {\n break;\n }\n if (rtl) {\n prevColumn();\n } else {\n nextColumn();\n }\n break;\n }\n case KeyCode.BACKSPACE:\n {\n if (!searchValue) {\n prevColumn();\n }\n break;\n }\n\n // >>> Select\n case KeyCode.ENTER:\n {\n if (validActiveValueCells.length) {\n var _option2 = lastActiveOptions[lastActiveIndex];\n\n // Search option should revert back of origin options\n var originOptions = (_option2 === null || _option2 === void 0 ? void 0 : _option2[SEARCH_MARK]) || [];\n if (originOptions.length) {\n onKeyBoardSelect(originOptions.map(function (opt) {\n return opt[fieldNames.value];\n }), originOptions[originOptions.length - 1]);\n } else {\n onKeyBoardSelect(validActiveValueCells, lastActiveOptions[lastActiveIndex]);\n }\n }\n break;\n }\n\n // >>> Close\n case KeyCode.ESC:\n {\n toggleOpen(false);\n if (open) {\n event.stopPropagation();\n }\n }\n }\n },\n onKeyUp: function onKeyUp() {}\n };\n });\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 _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/* eslint-disable default-case */\nimport classNames from 'classnames';\nimport { useBaseProps } from 'rc-select';\nimport * as React from 'react';\nimport CascaderContext from \"../context\";\nimport { getFullPathKeys, isLeaf, scrollIntoParentView, toPathKey, toPathKeys, toPathValueStr } from \"../utils/commonUtil\";\nimport { toPathOptions } from \"../utils/treeUtil\";\nimport CacheContent from \"./CacheContent\";\nimport Column, { FIX_LABEL } from \"./Column\";\nimport useActive from \"./useActive\";\nimport useKeyboard from \"./useKeyboard\";\nvar RefOptionList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _optionColumns$, _optionColumns$$optio, _ref3, _classNames;\n var _useBaseProps = useBaseProps(),\n prefixCls = _useBaseProps.prefixCls,\n multiple = _useBaseProps.multiple,\n searchValue = _useBaseProps.searchValue,\n toggleOpen = _useBaseProps.toggleOpen,\n notFoundContent = _useBaseProps.notFoundContent,\n direction = _useBaseProps.direction,\n open = _useBaseProps.open;\n var containerRef = React.useRef();\n var rtl = direction === 'rtl';\n var _React$useContext = React.useContext(CascaderContext),\n options = _React$useContext.options,\n values = _React$useContext.values,\n halfValues = _React$useContext.halfValues,\n fieldNames = _React$useContext.fieldNames,\n changeOnSelect = _React$useContext.changeOnSelect,\n onSelect = _React$useContext.onSelect,\n searchOptions = _React$useContext.searchOptions,\n dropdownPrefixCls = _React$useContext.dropdownPrefixCls,\n loadData = _React$useContext.loadData,\n expandTrigger = _React$useContext.expandTrigger;\n var mergedPrefixCls = dropdownPrefixCls || prefixCls;\n\n // ========================= loadData =========================\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n loadingKeys = _React$useState2[0],\n setLoadingKeys = _React$useState2[1];\n var internalLoadData = function internalLoadData(valueCells) {\n // Do not load when search\n if (!loadData || searchValue) {\n return;\n }\n var optionList = toPathOptions(valueCells, options, fieldNames);\n var rawOptions = optionList.map(function (_ref) {\n var option = _ref.option;\n return option;\n });\n var lastOption = rawOptions[rawOptions.length - 1];\n if (lastOption && !isLeaf(lastOption, fieldNames)) {\n var pathKey = toPathKey(valueCells);\n setLoadingKeys(function (keys) {\n return [].concat(_toConsumableArray(keys), [pathKey]);\n });\n loadData(rawOptions);\n }\n };\n\n // zombieJ: This is bad. We should make this same as `rc-tree` to use Promise instead.\n React.useEffect(function () {\n if (loadingKeys.length) {\n loadingKeys.forEach(function (loadingKey) {\n var valueStrCells = toPathValueStr(loadingKey);\n var optionList = toPathOptions(valueStrCells, options, fieldNames, true).map(function (_ref2) {\n var option = _ref2.option;\n return option;\n });\n var lastOption = optionList[optionList.length - 1];\n if (!lastOption || lastOption[fieldNames.children] || isLeaf(lastOption, fieldNames)) {\n setLoadingKeys(function (keys) {\n return keys.filter(function (key) {\n return key !== loadingKey;\n });\n });\n }\n });\n }\n }, [options, loadingKeys, fieldNames]);\n\n // ========================== Values ==========================\n var checkedSet = React.useMemo(function () {\n return new Set(toPathKeys(values));\n }, [values]);\n var halfCheckedSet = React.useMemo(function () {\n return new Set(toPathKeys(halfValues));\n }, [halfValues]);\n\n // ====================== Accessibility =======================\n var _useActive = useActive(),\n _useActive2 = _slicedToArray(_useActive, 2),\n activeValueCells = _useActive2[0],\n setActiveValueCells = _useActive2[1];\n\n // =========================== Path ===========================\n var onPathOpen = function onPathOpen(nextValueCells) {\n setActiveValueCells(nextValueCells);\n\n // Trigger loadData\n internalLoadData(nextValueCells);\n };\n var isSelectable = function isSelectable(option) {\n var disabled = option.disabled;\n var isMergedLeaf = isLeaf(option, fieldNames);\n return !disabled && (isMergedLeaf || changeOnSelect || multiple);\n };\n var onPathSelect = function onPathSelect(valuePath, leaf) {\n var fromKeyboard = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n onSelect(valuePath);\n if (!multiple && (leaf || changeOnSelect && (expandTrigger === 'hover' || fromKeyboard))) {\n toggleOpen(false);\n }\n };\n\n // ========================== Option ==========================\n var mergedOptions = React.useMemo(function () {\n if (searchValue) {\n return searchOptions;\n }\n return options;\n }, [searchValue, searchOptions, options]);\n\n // ========================== Column ==========================\n var optionColumns = React.useMemo(function () {\n var optionList = [{\n options: mergedOptions\n }];\n var currentList = mergedOptions;\n var fullPathKeys = getFullPathKeys(currentList, fieldNames);\n var _loop = function _loop() {\n var activeValueCell = activeValueCells[i];\n var currentOption = currentList.find(function (option, index) {\n return (fullPathKeys[index] ? toPathKey(fullPathKeys[index]) : option[fieldNames.value]) === activeValueCell;\n });\n var subOptions = currentOption === null || currentOption === void 0 ? void 0 : currentOption[fieldNames.children];\n if (!(subOptions !== null && subOptions !== void 0 && subOptions.length)) {\n return \"break\";\n }\n currentList = subOptions;\n optionList.push({\n options: subOptions\n });\n };\n for (var i = 0; i < activeValueCells.length; i += 1) {\n var _ret = _loop();\n if (_ret === \"break\") break;\n }\n return optionList;\n }, [mergedOptions, activeValueCells, fieldNames]);\n\n // ========================= Keyboard =========================\n var onKeyboardSelect = function onKeyboardSelect(selectValueCells, option) {\n if (isSelectable(option)) {\n onPathSelect(selectValueCells, isLeaf(option, fieldNames), true);\n }\n };\n useKeyboard(ref, mergedOptions, fieldNames, activeValueCells, onPathOpen, onKeyboardSelect);\n\n // >>>>> Active Scroll\n React.useEffect(function () {\n for (var i = 0; i < activeValueCells.length; i += 1) {\n var _containerRef$current;\n var cellPath = activeValueCells.slice(0, i + 1);\n var cellKeyPath = toPathKey(cellPath);\n var ele = (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.querySelector(\"li[data-path-key=\\\"\".concat(cellKeyPath.replace(/\\\\{0,2}\"/g, '\\\\\"'), \"\\\"]\") // matches unescaped double quotes\n );\n if (ele) {\n scrollIntoParentView(ele);\n }\n }\n }, [activeValueCells]);\n\n // ========================== Render ==========================\n // >>>>> Empty\n var isEmpty = !((_optionColumns$ = optionColumns[0]) !== null && _optionColumns$ !== void 0 && (_optionColumns$$optio = _optionColumns$.options) !== null && _optionColumns$$optio !== void 0 && _optionColumns$$optio.length);\n var emptyList = [(_ref3 = {}, _defineProperty(_ref3, fieldNames.value, '__EMPTY__'), _defineProperty(_ref3, FIX_LABEL, notFoundContent), _defineProperty(_ref3, \"disabled\", true), _ref3)];\n var columnProps = _objectSpread(_objectSpread({}, props), {}, {\n multiple: !isEmpty && multiple,\n onSelect: onPathSelect,\n onActive: onPathOpen,\n onToggleOpen: toggleOpen,\n checkedSet: checkedSet,\n halfCheckedSet: halfCheckedSet,\n loadingKeys: loadingKeys,\n isSelectable: isSelectable\n });\n\n // >>>>> Columns\n var mergedOptionColumns = isEmpty ? [{\n options: emptyList\n }] : optionColumns;\n var columnNodes = mergedOptionColumns.map(function (col, index) {\n var prevValuePath = activeValueCells.slice(0, index);\n var activeValue = activeValueCells[index];\n return /*#__PURE__*/React.createElement(Column, _extends({\n key: index\n }, columnProps, {\n searchValue: searchValue,\n prefixCls: mergedPrefixCls,\n options: col.options,\n prevValuePath: prevValuePath,\n activeValue: activeValue\n }));\n });\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(CacheContent, {\n open: open\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(mergedPrefixCls, \"-menus\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(mergedPrefixCls, \"-menu-empty\"), isEmpty), _defineProperty(_classNames, \"\".concat(mergedPrefixCls, \"-rtl\"), rtl), _classNames)),\n ref: containerRef\n }, columnNodes));\n});\nexport default RefOptionList;","import warning from \"rc-util/es/warning\";\nfunction warningProps(props) {\n var onPopupVisibleChange = props.onPopupVisibleChange,\n popupVisible = props.popupVisible,\n popupClassName = props.popupClassName,\n popupPlacement = props.popupPlacement;\n warning(!onPopupVisibleChange, '`onPopupVisibleChange` is deprecated. Please use `onDropdownVisibleChange` instead.');\n warning(popupVisible === undefined, '`popupVisible` is deprecated. Please use `open` instead.');\n warning(popupClassName === undefined, '`popupClassName` is deprecated. Please use `dropdownClassName` instead.');\n warning(popupPlacement === undefined, '`popupPlacement` is deprecated. Please use `placement` instead.');\n}\n\n// value in Cascader options should not be null\nexport function warningNullOptions(options, fieldNames) {\n if (options) {\n var recursiveOptions = function recursiveOptions(optionsList) {\n for (var i = 0; i < optionsList.length; i++) {\n var option = optionsList[i];\n if (option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value] === null) {\n warning(false, '`value` in Cascader options should not be `null`.');\n return true;\n }\n if (Array.isArray(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children]) && recursiveOptions(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children])) {\n return true;\n }\n }\n };\n recursiveOptions(options);\n }\n}\nexport default warningProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"fieldNames\", \"defaultValue\", \"value\", \"changeOnSelect\", \"onChange\", \"displayRender\", \"checkable\", \"searchValue\", \"onSearch\", \"showSearch\", \"expandTrigger\", \"options\", \"dropdownPrefixCls\", \"loadData\", \"popupVisible\", \"open\", \"popupClassName\", \"dropdownClassName\", \"dropdownMenuColumnStyle\", \"popupPlacement\", \"placement\", \"onDropdownVisibleChange\", \"onPopupVisibleChange\", \"expandIcon\", \"loadingIcon\", \"children\", \"dropdownMatchSelectWidth\", \"showCheckedStrategy\"];\nimport { BaseSelect } from 'rc-select';\nimport useId from \"rc-select/es/hooks/useId\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport CascaderContext from \"./context\";\nimport useDisplayValues from \"./hooks/useDisplayValues\";\nimport useEntities from \"./hooks/useEntities\";\nimport useMissingValues from \"./hooks/useMissingValues\";\nimport useSearchConfig from \"./hooks/useSearchConfig\";\nimport useSearchOptions from \"./hooks/useSearchOptions\";\nimport OptionList from \"./OptionList\";\nimport { fillFieldNames, SHOW_CHILD, SHOW_PARENT, toPathKey, toPathKeys } from \"./utils/commonUtil\";\nimport { formatStrategyValues, toPathOptions } from \"./utils/treeUtil\";\nimport warningProps, { warningNullOptions } from \"./utils/warningPropsUtil\";\nfunction isMultipleValue(value) {\n return Array.isArray(value) && Array.isArray(value[0]);\n}\nfunction toRawValues(value) {\n if (!value) {\n return [];\n }\n if (isMultipleValue(value)) {\n return value;\n }\n return (value.length === 0 ? [] : [value]).map(function (val) {\n return Array.isArray(val) ? val : [val];\n });\n}\nvar Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var id = props.id,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-cascader' : _props$prefixCls,\n fieldNames = props.fieldNames,\n defaultValue = props.defaultValue,\n value = props.value,\n changeOnSelect = props.changeOnSelect,\n onChange = props.onChange,\n displayRender = props.displayRender,\n checkable = props.checkable,\n searchValue = props.searchValue,\n onSearch = props.onSearch,\n showSearch = props.showSearch,\n expandTrigger = props.expandTrigger,\n options = props.options,\n dropdownPrefixCls = props.dropdownPrefixCls,\n loadData = props.loadData,\n popupVisible = props.popupVisible,\n open = props.open,\n popupClassName = props.popupClassName,\n dropdownClassName = props.dropdownClassName,\n dropdownMenuColumnStyle = props.dropdownMenuColumnStyle,\n popupPlacement = props.popupPlacement,\n placement = props.placement,\n onDropdownVisibleChange = props.onDropdownVisibleChange,\n onPopupVisibleChange = props.onPopupVisibleChange,\n _props$expandIcon = props.expandIcon,\n expandIcon = _props$expandIcon === void 0 ? '>' : _props$expandIcon,\n loadingIcon = props.loadingIcon,\n children = props.children,\n _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? false : _props$dropdownMatchS,\n _props$showCheckedStr = props.showCheckedStrategy,\n showCheckedStrategy = _props$showCheckedStr === void 0 ? SHOW_PARENT : _props$showCheckedStr,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedId = useId(id);\n var multiple = !!checkable;\n\n // =========================== Values ===========================\n var _useMergedState = useMergedState(defaultValue, {\n value: value,\n postState: toRawValues\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n rawValues = _useMergedState2[0],\n setRawValues = _useMergedState2[1];\n\n // ========================= FieldNames =========================\n var mergedFieldNames = React.useMemo(function () {\n return fillFieldNames(fieldNames);\n }, /* eslint-disable react-hooks/exhaustive-deps */\n [JSON.stringify(fieldNames)]\n /* eslint-enable react-hooks/exhaustive-deps */);\n\n // =========================== Option ===========================\n var mergedOptions = React.useMemo(function () {\n return options || [];\n }, [options]);\n\n // Only used in multiple mode, this fn will not call in single mode\n var getPathKeyEntities = useEntities(mergedOptions, mergedFieldNames);\n\n /** Convert path key back to value format */\n var getValueByKeyPath = React.useCallback(function (pathKeys) {\n var keyPathEntities = getPathKeyEntities();\n return pathKeys.map(function (pathKey) {\n var nodes = keyPathEntities[pathKey].nodes;\n return nodes.map(function (node) {\n return node[mergedFieldNames.value];\n });\n });\n }, [getPathKeyEntities, mergedFieldNames]);\n\n // =========================== Search ===========================\n var _useMergedState3 = useMergedState('', {\n value: searchValue,\n postState: function postState(search) {\n return search || '';\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedSearchValue = _useMergedState4[0],\n setSearchValue = _useMergedState4[1];\n var onInternalSearch = function onInternalSearch(searchText, info) {\n setSearchValue(searchText);\n if (info.source !== 'blur' && onSearch) {\n onSearch(searchText);\n }\n };\n var _useSearchConfig = useSearchConfig(showSearch),\n _useSearchConfig2 = _slicedToArray(_useSearchConfig, 2),\n mergedShowSearch = _useSearchConfig2[0],\n searchConfig = _useSearchConfig2[1];\n var searchOptions = useSearchOptions(mergedSearchValue, mergedOptions, mergedFieldNames, dropdownPrefixCls || prefixCls, searchConfig, changeOnSelect);\n\n // =========================== Values ===========================\n var getMissingValues = useMissingValues(mergedOptions, mergedFieldNames);\n\n // Fill `rawValues` with checked conduction values\n var _React$useMemo = React.useMemo(function () {\n var _getMissingValues = getMissingValues(rawValues),\n _getMissingValues2 = _slicedToArray(_getMissingValues, 2),\n existValues = _getMissingValues2[0],\n missingValues = _getMissingValues2[1];\n if (!multiple || !rawValues.length) {\n return [existValues, [], missingValues];\n }\n var keyPathValues = toPathKeys(existValues);\n var keyPathEntities = getPathKeyEntities();\n var _conductCheck = conductCheck(keyPathValues, true, keyPathEntities),\n checkedKeys = _conductCheck.checkedKeys,\n halfCheckedKeys = _conductCheck.halfCheckedKeys;\n\n // Convert key back to value cells\n return [getValueByKeyPath(checkedKeys), getValueByKeyPath(halfCheckedKeys), missingValues];\n }, [multiple, rawValues, getPathKeyEntities, getValueByKeyPath, getMissingValues]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 3),\n checkedValues = _React$useMemo2[0],\n halfCheckedValues = _React$useMemo2[1],\n missingCheckedValues = _React$useMemo2[2];\n var deDuplicatedValues = React.useMemo(function () {\n var checkedKeys = toPathKeys(checkedValues);\n var deduplicateKeys = formatStrategyValues(checkedKeys, getPathKeyEntities, showCheckedStrategy);\n return [].concat(_toConsumableArray(missingCheckedValues), _toConsumableArray(getValueByKeyPath(deduplicateKeys)));\n }, [checkedValues, getPathKeyEntities, getValueByKeyPath, missingCheckedValues, showCheckedStrategy]);\n var displayValues = useDisplayValues(deDuplicatedValues, mergedOptions, mergedFieldNames, multiple, displayRender);\n\n // =========================== Change ===========================\n var triggerChange = useEvent(function (nextValues) {\n setRawValues(nextValues);\n\n // Save perf if no need trigger event\n if (onChange) {\n var nextRawValues = toRawValues(nextValues);\n var valueOptions = nextRawValues.map(function (valueCells) {\n return toPathOptions(valueCells, mergedOptions, mergedFieldNames).map(function (valueOpt) {\n return valueOpt.option;\n });\n });\n var triggerValues = multiple ? nextRawValues : nextRawValues[0];\n var triggerOptions = multiple ? valueOptions : valueOptions[0];\n onChange(triggerValues, triggerOptions);\n }\n });\n\n // =========================== Select ===========================\n var onInternalSelect = useEvent(function (valuePath) {\n setSearchValue('');\n if (!multiple) {\n triggerChange(valuePath);\n } else {\n // Prepare conduct required info\n var pathKey = toPathKey(valuePath);\n var checkedPathKeys = toPathKeys(checkedValues);\n var halfCheckedPathKeys = toPathKeys(halfCheckedValues);\n var existInChecked = checkedPathKeys.includes(pathKey);\n var existInMissing = missingCheckedValues.some(function (valueCells) {\n return toPathKey(valueCells) === pathKey;\n });\n\n // Do update\n var nextCheckedValues = checkedValues;\n var nextMissingValues = missingCheckedValues;\n if (existInMissing && !existInChecked) {\n // Missing value only do filter\n nextMissingValues = missingCheckedValues.filter(function (valueCells) {\n return toPathKey(valueCells) !== pathKey;\n });\n } else {\n // Update checked key first\n var nextRawCheckedKeys = existInChecked ? checkedPathKeys.filter(function (key) {\n return key !== pathKey;\n }) : [].concat(_toConsumableArray(checkedPathKeys), [pathKey]);\n var pathKeyEntities = getPathKeyEntities();\n\n // Conduction by selected or not\n var checkedKeys;\n if (existInChecked) {\n var _conductCheck2 = conductCheck(nextRawCheckedKeys, {\n checked: false,\n halfCheckedKeys: halfCheckedPathKeys\n }, pathKeyEntities);\n checkedKeys = _conductCheck2.checkedKeys;\n } else {\n var _conductCheck3 = conductCheck(nextRawCheckedKeys, true, pathKeyEntities);\n checkedKeys = _conductCheck3.checkedKeys;\n }\n\n // Roll up to parent level keys\n var deDuplicatedKeys = formatStrategyValues(checkedKeys, getPathKeyEntities, showCheckedStrategy);\n nextCheckedValues = getValueByKeyPath(deDuplicatedKeys);\n }\n triggerChange([].concat(_toConsumableArray(nextMissingValues), _toConsumableArray(nextCheckedValues)));\n }\n });\n\n // Display Value change logic\n var onDisplayValuesChange = function onDisplayValuesChange(_, info) {\n if (info.type === 'clear') {\n triggerChange([]);\n return;\n }\n\n // Cascader do not support `add` type. Only support `remove`\n var _ref = info.values[0],\n valueCells = _ref.valueCells;\n onInternalSelect(valueCells);\n };\n\n // ============================ Open ============================\n var mergedOpen = open !== undefined ? open : popupVisible;\n var mergedDropdownClassName = dropdownClassName || popupClassName;\n var mergedPlacement = placement || popupPlacement;\n var onInternalDropdownVisibleChange = function onInternalDropdownVisibleChange(nextVisible) {\n onDropdownVisibleChange === null || onDropdownVisibleChange === void 0 ? void 0 : onDropdownVisibleChange(nextVisible);\n onPopupVisibleChange === null || onPopupVisibleChange === void 0 ? void 0 : onPopupVisibleChange(nextVisible);\n };\n\n // ========================== Warning ===========================\n if (process.env.NODE_ENV !== 'production') {\n warningProps(props);\n warningNullOptions(mergedOptions, mergedFieldNames);\n }\n\n // ========================== Context ===========================\n var cascaderContext = React.useMemo(function () {\n return {\n options: mergedOptions,\n fieldNames: mergedFieldNames,\n values: checkedValues,\n halfValues: halfCheckedValues,\n changeOnSelect: changeOnSelect,\n onSelect: onInternalSelect,\n checkable: checkable,\n searchOptions: searchOptions,\n dropdownPrefixCls: dropdownPrefixCls,\n loadData: loadData,\n expandTrigger: expandTrigger,\n expandIcon: expandIcon,\n loadingIcon: loadingIcon,\n dropdownMenuColumnStyle: dropdownMenuColumnStyle\n };\n }, [mergedOptions, mergedFieldNames, checkedValues, halfCheckedValues, changeOnSelect, onInternalSelect, checkable, searchOptions, dropdownPrefixCls, loadData, expandTrigger, expandIcon, loadingIcon, dropdownMenuColumnStyle]);\n\n // ==============================================================\n // == Render ==\n // ==============================================================\n var emptyOptions = !(mergedSearchValue ? searchOptions : mergedOptions).length;\n var dropdownStyle =\n // Search to match width\n mergedSearchValue && searchConfig.matchInputWidth ||\n // Empty keep the width\n emptyOptions ? {} : {\n minWidth: 'auto'\n };\n return /*#__PURE__*/React.createElement(CascaderContext.Provider, {\n value: cascaderContext\n }, /*#__PURE__*/React.createElement(BaseSelect, _extends({}, restProps, {\n // MISC\n ref: ref,\n id: mergedId,\n prefixCls: prefixCls,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n dropdownStyle: dropdownStyle\n // Value\n ,\n displayValues: displayValues,\n onDisplayValuesChange: onDisplayValuesChange,\n mode: multiple ? 'multiple' : undefined\n // Search\n ,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch,\n showSearch: mergedShowSearch\n // Options\n ,\n OptionList: OptionList,\n emptyOptions: emptyOptions\n // Open\n ,\n open: mergedOpen,\n dropdownClassName: mergedDropdownClassName,\n placement: mergedPlacement,\n onDropdownVisibleChange: onInternalDropdownVisibleChange\n // Children\n ,\n getRawInputElement: function getRawInputElement() {\n return children;\n }\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Cascader.displayName = 'Cascader';\n}\nCascader.SHOW_PARENT = SHOW_PARENT;\nCascader.SHOW_CHILD = SHOW_CHILD;\nexport default Cascader;","import Cascader from \"./Cascader\";\nexport default Cascader;","import { getStyle as getCheckboxStyle } from '../../checkbox/style';\nimport { textEllipsis } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genComponentStyleHook } from '../../theme/internal';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n prefixCls,\n componentCls,\n antCls\n } = token;\n const cascaderMenuItemCls = `${componentCls}-menu-item`;\n const iconCls = `\n &${cascaderMenuItemCls}-expand ${cascaderMenuItemCls}-expand-icon,\n ${cascaderMenuItemCls}-loading-icon\n `;\n const itemPaddingVertical = Math.round((token.controlHeight - token.fontSize * token.lineHeight) / 2);\n return [\n // =====================================================\n // == Control ==\n // =====================================================\n {\n [componentCls]: {\n width: token.controlWidth\n }\n },\n // =====================================================\n // == Popup ==\n // =====================================================\n {\n [`${componentCls}-dropdown`]: [\n // ==================== Checkbox ====================\n getCheckboxStyle(`${prefixCls}-checkbox`, token), {\n [`&${antCls}-select-dropdown`]: {\n padding: 0\n }\n }, {\n [componentCls]: {\n // ================== Checkbox ==================\n '&-checkbox': {\n top: 0,\n marginInlineEnd: token.paddingXS\n },\n // ==================== Menu ====================\n // >>> Menus\n '&-menus': {\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n [`&${componentCls}-menu-empty`]: {\n [`${componentCls}-menu`]: {\n width: '100%',\n height: 'auto',\n [cascaderMenuItemCls]: {\n color: token.colorTextDisabled\n }\n }\n }\n },\n // >>> Menu\n '&-menu': {\n flexGrow: 1,\n minWidth: token.controlItemWidth,\n height: token.dropdownHeight,\n margin: 0,\n padding: token.paddingXXS,\n overflow: 'auto',\n verticalAlign: 'top',\n listStyle: 'none',\n '-ms-overflow-style': '-ms-autohiding-scrollbar',\n '&:not(:last-child)': {\n borderInlineEnd: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`\n },\n '&-item': Object.assign(Object.assign({}, textEllipsis), {\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'center',\n padding: `${itemPaddingVertical}px ${token.paddingSM}px`,\n lineHeight: token.lineHeight,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}`,\n borderRadius: token.borderRadiusSM,\n '&:hover': {\n background: token.controlItemBgHover\n },\n '&-disabled': {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n '&:hover': {\n background: 'transparent'\n },\n [iconCls]: {\n color: token.colorTextDisabled\n }\n },\n [`&-active:not(${cascaderMenuItemCls}-disabled)`]: {\n [`&, &:hover`]: {\n fontWeight: token.fontWeightStrong,\n backgroundColor: token.controlItemBgActive\n }\n },\n '&-content': {\n flex: 'auto'\n },\n [iconCls]: {\n marginInlineStart: token.paddingXXS,\n color: token.colorTextDescription,\n fontSize: token.fontSizeIcon\n },\n '&-keyword': {\n color: token.colorHighlight\n }\n })\n }\n }\n }]\n },\n // =====================================================\n // == RTL ==\n // =====================================================\n {\n [`${componentCls}-dropdown-rtl`]: {\n direction: 'rtl'\n }\n },\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(token)];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Cascader', token => [genBaseStyle(token)], {\n controlWidth: 184,\n controlItemWidth: 111,\n dropdownHeight: 180\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 * as React from 'react';\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcCascader from 'rc-cascader';\nimport omit from \"rc-util/es/omit\";\nimport { getTransitionName } from '../_util/motion';\nimport genPurePanel from '../_util/PurePanel';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../form/context';\nimport useSelectStyle from '../select/style';\nimport useBuiltinPlacements from '../select/useBuiltinPlacements';\nimport useShowArrow from '../select/useShowArrow';\nimport getIcons from '../select/utils/iconUtil';\nimport { useCompactItemContext } from '../space/Compact';\nimport useStyle from './style';\nconst {\n SHOW_CHILD,\n SHOW_PARENT\n} = RcCascader;\nfunction highlightKeyword(str, lowerKeyword, prefixCls) {\n const cells = str.toLowerCase().split(lowerKeyword).reduce((list, cur, index) => index === 0 ? [cur] : [].concat(_toConsumableArray(list), [lowerKeyword, cur]), []);\n const fillCells = [];\n let start = 0;\n cells.forEach((cell, index) => {\n const end = start + cell.length;\n let originWorld = str.slice(start, end);\n start = end;\n if (index % 2 === 1) {\n originWorld =\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"span\", {\n className: `${prefixCls}-menu-item-keyword`,\n key: `separator-${index}`\n }, originWorld);\n }\n fillCells.push(originWorld);\n });\n return fillCells;\n}\nconst defaultSearchRender = (inputValue, path, prefixCls, fieldNames) => {\n const optionList = [];\n // We do lower here to save perf\n const lower = inputValue.toLowerCase();\n path.forEach((node, index) => {\n if (index !== 0) {\n optionList.push(' / ');\n }\n let label = node[fieldNames.label];\n const type = typeof label;\n if (type === 'string' || type === 'number') {\n label = highlightKeyword(String(label), lower, prefixCls);\n }\n optionList.push(label);\n });\n return optionList;\n};\nconst Cascader = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n size: customizeSize,\n disabled: customDisabled,\n className,\n rootClassName,\n multiple,\n bordered = true,\n transitionName,\n choiceTransitionName = '',\n popupClassName,\n dropdownClassName,\n expandIcon,\n placement,\n showSearch,\n allowClear = true,\n notFoundContent,\n direction,\n getPopupContainer,\n status: customStatus,\n showArrow,\n builtinPlacements,\n style\n } = props,\n rest = __rest(props, [\"prefixCls\", \"size\", \"disabled\", \"className\", \"rootClassName\", \"multiple\", \"bordered\", \"transitionName\", \"choiceTransitionName\", \"popupClassName\", \"dropdownClassName\", \"expandIcon\", \"placement\", \"showSearch\", \"allowClear\", \"notFoundContent\", \"direction\", \"getPopupContainer\", \"status\", \"showArrow\", \"builtinPlacements\", \"style\"]);\n const restProps = omit(rest, ['suffixIcon']);\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n renderEmpty,\n direction: rootDirection,\n popupOverflow,\n cascader\n } = React.useContext(ConfigContext);\n const mergedDirection = direction || rootDirection;\n const isRtl = mergedDirection === 'rtl';\n // =================== Form =====================\n const {\n status: contextStatus,\n hasFeedback,\n isFormItemInput,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'Cascader', '`dropdownClassName` is deprecated. Please use `popupClassName` instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!('showArrow' in props), 'Cascader', '`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 // =================== No Found ====================\n const mergedNotFoundContent = notFoundContent || (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Cascader')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Cascader\"\n });\n // ==================== Prefix =====================\n const rootPrefixCls = getPrefixCls();\n const prefixCls = getPrefixCls('select', customizePrefixCls);\n const cascaderPrefixCls = getPrefixCls('cascader', customizePrefixCls);\n const [wrapSelectSSR, hashId] = useSelectStyle(prefixCls);\n const [wrapCascaderSSR] = useStyle(cascaderPrefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n // =================== Dropdown ====================\n const mergedDropdownClassName = classNames(popupClassName || dropdownClassName, `${cascaderPrefixCls}-dropdown`, {\n [`${cascaderPrefixCls}-dropdown-rtl`]: mergedDirection === 'rtl'\n }, rootClassName, hashId);\n // ==================== Search =====================\n const mergedShowSearch = React.useMemo(() => {\n if (!showSearch) {\n return showSearch;\n }\n let searchConfig = {\n render: defaultSearchRender\n };\n if (typeof showSearch === 'object') {\n searchConfig = Object.assign(Object.assign({}, searchConfig), showSearch);\n }\n return searchConfig;\n }, [showSearch]);\n // ===================== Size ======================\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 // ===================== Icon ======================\n let mergedExpandIcon = expandIcon;\n if (!expandIcon) {\n mergedExpandIcon = isRtl ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null);\n }\n const loadingIcon = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-menu-item-loading-icon`\n }, /*#__PURE__*/React.createElement(LoadingOutlined, {\n spin: true\n }));\n // =================== Multiple ====================\n const checkable = React.useMemo(() => multiple ? /*#__PURE__*/React.createElement(\"span\", {\n className: `${cascaderPrefixCls}-checkbox-inner`\n }) : false, [multiple]);\n // ===================== Icons =====================\n const showSuffixIcon = useShowArrow(props.suffixIcon, showArrow);\n const {\n suffixIcon,\n removeIcon,\n clearIcon\n } = getIcons(Object.assign(Object.assign({}, props), {\n hasFeedback,\n feedbackIcon,\n showSuffixIcon,\n multiple,\n prefixCls,\n componentName: 'Cascader'\n }));\n // ===================== Placement =====================\n const memoPlacement = React.useMemo(() => {\n if (placement !== undefined) {\n return placement;\n }\n return isRtl ? 'bottomRight' : 'bottomLeft';\n }, [placement, isRtl]);\n const mergedBuiltinPlacements = useBuiltinPlacements(builtinPlacements, popupOverflow);\n const mergedAllowClear = allowClear === true ? {\n clearIcon\n } : allowClear;\n // ==================== Render =====================\n const renderNode = /*#__PURE__*/React.createElement(RcCascader, Object.assign({\n prefixCls: prefixCls,\n className: classNames(!customizePrefixCls && cascaderPrefixCls, {\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-rtl`]: isRtl,\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-in-form-item`]: isFormItemInput\n }, getStatusClassNames(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, cascader === null || cascader === void 0 ? void 0 : cascader.className, className, rootClassName, hashId),\n disabled: mergedDisabled,\n style: Object.assign(Object.assign({}, cascader === null || cascader === void 0 ? void 0 : cascader.style), style)\n }, restProps, {\n builtinPlacements: mergedBuiltinPlacements,\n direction: mergedDirection,\n placement: memoPlacement,\n notFoundContent: mergedNotFoundContent,\n allowClear: mergedAllowClear,\n showSearch: mergedShowSearch,\n expandIcon: mergedExpandIcon,\n suffixIcon: suffixIcon,\n removeIcon: removeIcon,\n loadingIcon: loadingIcon,\n checkable: checkable,\n dropdownClassName: mergedDropdownClassName,\n dropdownPrefixCls: customizePrefixCls || cascaderPrefixCls,\n choiceTransitionName: getTransitionName(rootPrefixCls, '', choiceTransitionName),\n transitionName: getTransitionName(rootPrefixCls, 'slide-up', transitionName),\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n ref: ref\n }));\n return wrapCascaderSSR(wrapSelectSSR(renderNode));\n});\nif (process.env.NODE_ENV !== 'production') {\n Cascader.displayName = 'Cascader';\n}\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(Cascader);\nCascader.SHOW_PARENT = SHOW_PARENT;\nCascader.SHOW_CHILD = SHOW_CHILD;\nCascader._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Cascader;","'use client';\n\nimport { Col } from '../grid';\nexport default Col;","// This icon file is generated automatically.\nvar CalendarOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z\" } }] }, \"name\": \"calendar\", \"theme\": \"outlined\" };\nexport default CalendarOutlined;\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 CalendarOutlinedSvg from \"@ant-design/icons-svg/es/asn/CalendarOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CalendarOutlined = function CalendarOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CalendarOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CalendarOutlined.displayName = 'CalendarOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(CalendarOutlined);","// This icon file is generated automatically.\nvar ClockCircleOutlined = { \"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\": \"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z\" } }] }, \"name\": \"clock-circle\", \"theme\": \"outlined\" };\nexport default ClockCircleOutlined;\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 ClockCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ClockCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ClockCircleOutlined = function ClockCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ClockCircleOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n ClockCircleOutlined.displayName = 'ClockCircleOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(ClockCircleOutlined);","// This icon file is generated automatically.\nvar SwapRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z\" } }] }, \"name\": \"swap-right\", \"theme\": \"outlined\" };\nexport default SwapRightOutlined;\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 SwapRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/SwapRightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar SwapRightOutlined = function SwapRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: SwapRightOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n SwapRightOutlined.displayName = 'SwapRightOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(SwapRightOutlined);","export function getPlaceholder(locale, picker, customizePlaceholder) {\n if (customizePlaceholder !== undefined) {\n return customizePlaceholder;\n }\n if (picker === 'year' && locale.lang.yearPlaceholder) {\n return locale.lang.yearPlaceholder;\n }\n if (picker === 'quarter' && locale.lang.quarterPlaceholder) {\n return locale.lang.quarterPlaceholder;\n }\n if (picker === 'month' && locale.lang.monthPlaceholder) {\n return locale.lang.monthPlaceholder;\n }\n if (picker === 'week' && locale.lang.weekPlaceholder) {\n return locale.lang.weekPlaceholder;\n }\n if (picker === 'time' && locale.timePickerLocale.placeholder) {\n return locale.timePickerLocale.placeholder;\n }\n return locale.lang.placeholder;\n}\nexport function getRangePlaceholder(locale, picker, customizePlaceholder) {\n if (customizePlaceholder !== undefined) {\n return customizePlaceholder;\n }\n if (picker === 'year' && locale.lang.yearPlaceholder) {\n return locale.lang.rangeYearPlaceholder;\n }\n if (picker === 'quarter' && locale.lang.quarterPlaceholder) {\n return locale.lang.rangeQuarterPlaceholder;\n }\n if (picker === 'month' && locale.lang.monthPlaceholder) {\n return locale.lang.rangeMonthPlaceholder;\n }\n if (picker === 'week' && locale.lang.weekPlaceholder) {\n return locale.lang.rangeWeekPlaceholder;\n }\n if (picker === 'time' && locale.timePickerLocale.placeholder) {\n return locale.timePickerLocale.rangePlaceholder;\n }\n return locale.lang.rangePlaceholder;\n}\nexport function transPlacement2DropdownAlign(direction, placement) {\n const overflow = {\n adjustX: 1,\n adjustY: 1\n };\n switch (placement) {\n case 'bottomLeft':\n {\n return {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow\n };\n }\n case 'bottomRight':\n {\n return {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow\n };\n }\n case 'topLeft':\n {\n return {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow\n };\n }\n case 'topRight':\n {\n return {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow\n };\n }\n default:\n {\n return {\n points: direction === 'rtl' ? ['tr', 'br'] : ['tl', 'bl'],\n offset: [0, 4],\n overflow\n };\n }\n }\n}\nfunction toArray(list) {\n if (!list) {\n return [];\n }\n return Array.isArray(list) ? list : [list];\n}\nexport function getTimeProps(props) {\n const {\n format,\n picker,\n showHour,\n showMinute,\n showSecond,\n use12Hours\n } = props;\n const firstFormat = toArray(format)[0];\n const showTimeObj = Object.assign({}, props);\n // https://github.com/ant-design/ant-design/issues/44275\n if (format && Array.isArray(format)) {\n showTimeObj.format = firstFormat;\n }\n if (firstFormat && typeof firstFormat === 'string') {\n if (!firstFormat.includes('s') && showSecond === undefined) {\n showTimeObj.showSecond = false;\n }\n if (!firstFormat.includes('m') && showMinute === undefined) {\n showTimeObj.showMinute = false;\n }\n if (!firstFormat.includes('H') && !firstFormat.includes('h') && !firstFormat.includes('K') && !firstFormat.includes('k') && showHour === undefined) {\n showTimeObj.showHour = false;\n }\n if ((firstFormat.includes('a') || firstFormat.includes('A')) && use12Hours === undefined) {\n showTimeObj.use12Hours = true;\n }\n }\n if (picker === 'time') {\n return showTimeObj;\n }\n if (typeof firstFormat === 'function') {\n // format of showTime should use default when format is custom format function\n delete showTimeObj.format;\n }\n return {\n showTime: showTimeObj\n };\n}\nexport function mergeAllowClear(allowClear, clearIcon, defaultClearIcon) {\n if (allowClear === false) {\n return false;\n }\n const defaults = {\n clearIcon: clearIcon !== null && clearIcon !== void 0 ? clearIcon : defaultClearIcon\n };\n return typeof allowClear === 'object' ? Object.assign(Object.assign({}, defaults), allowClear) : defaults;\n}","import * as React from 'react';\nimport Button from '../button';\nexport default function PickerButton(props) {\n return /*#__PURE__*/React.createElement(Button, Object.assign({\n size: \"small\",\n type: \"primary\"\n }, props));\n}","import PickerButton from '../PickerButton';\nconst Components = {\n button: PickerButton\n};\nexport default Components;","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 CalendarOutlined from \"@ant-design/icons/es/icons/CalendarOutlined\";\nimport ClockCircleOutlined from \"@ant-design/icons/es/icons/ClockCircleOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport SwapRightOutlined from \"@ant-design/icons/es/icons/SwapRightOutlined\";\nimport classNames from 'classnames';\nimport { RangePicker as RCRangePicker } from 'rc-picker';\nimport * as React from 'react';\nimport { forwardRef, useContext, useImperativeHandle } 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 } from '../../form/context';\nimport { useLocale } from '../../locale';\nimport { useCompactItemContext } from '../../space/Compact';\nimport enUS from '../locale/en_US';\nimport useStyle from '../style';\nimport { getRangePlaceholder, getTimeProps, mergeAllowClear, transPlacement2DropdownAlign } from '../util';\nimport Components from './Components';\nexport default function generateRangePicker(generateConfig) {\n const RangePicker = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n getPopupContainer: customGetPopupContainer,\n className,\n placement,\n size: customizeSize,\n disabled: customDisabled,\n bordered = true,\n placeholder,\n popupClassName,\n dropdownClassName,\n status: customStatus,\n clearIcon,\n allowClear\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"getPopupContainer\", \"className\", \"placement\", \"size\", \"disabled\", \"bordered\", \"placeholder\", \"popupClassName\", \"dropdownClassName\", \"status\", \"clearIcon\", \"allowClear\"]);\n const innerRef = React.useRef(null);\n const {\n getPrefixCls,\n direction,\n getPopupContainer\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('picker', customizePrefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const {\n format,\n showTime,\n picker\n } = props;\n const rootPrefixCls = getPrefixCls();\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const additionalOverrideProps = Object.assign(Object.assign({}, showTime ? getTimeProps(Object.assign({\n format,\n picker\n }, showTime)) : {}), picker === 'time' ? getTimeProps(Object.assign(Object.assign({\n format\n }, props), {\n picker\n })) : {});\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'DatePicker.RangePicker', '`dropdownClassName` is deprecated. Please use `popupClassName` instead.') : void 0;\n }\n // ===================== Size =====================\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 // ===================== FormItemInput =====================\n const formItemContext = useContext(FormItemInputContext);\n const {\n hasFeedback,\n status: contextStatus,\n feedbackIcon\n } = formItemContext;\n const suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, picker === 'time' ? /*#__PURE__*/React.createElement(ClockCircleOutlined, null) : /*#__PURE__*/React.createElement(CalendarOutlined, null), hasFeedback && feedbackIcon);\n useImperativeHandle(ref, () => ({\n focus: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n },\n blur: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n }));\n const [contextLocale] = useLocale('Calendar', enUS);\n const locale = Object.assign(Object.assign({}, contextLocale), props.locale);\n return wrapSSR( /*#__PURE__*/React.createElement(RCRangePicker, Object.assign({\n separator: /*#__PURE__*/React.createElement(\"span\", {\n \"aria-label\": \"to\",\n className: `${prefixCls}-separator`\n }, /*#__PURE__*/React.createElement(SwapRightOutlined, null)),\n disabled: mergedDisabled,\n ref: innerRef,\n dropdownAlign: transPlacement2DropdownAlign(direction, placement),\n placeholder: getRangePlaceholder(locale, picker, placeholder),\n suffixIcon: suffixNode,\n prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-prev-icon`\n }),\n nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-next-icon`\n }),\n superPrevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-prev-icon`\n }),\n superNextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-next-icon`\n }),\n transitionName: `${rootPrefixCls}-slide-up`\n }, restProps, additionalOverrideProps, {\n className: classNames({\n [`${prefixCls}-${mergedSize}`]: mergedSize,\n [`${prefixCls}-borderless`]: !bordered\n }, getStatusClassNames(prefixCls, getMergedStatus(contextStatus, customStatus), hasFeedback), hashId, compactItemClassnames, className),\n locale: locale.lang,\n prefixCls: prefixCls,\n getPopupContainer: customGetPopupContainer || getPopupContainer,\n generateConfig: generateConfig,\n components: Components,\n direction: direction,\n dropdownClassName: classNames(hashId, popupClassName || dropdownClassName),\n allowClear: mergeAllowClear(allowClear, clearIcon, /*#__PURE__*/React.createElement(CloseCircleFilled, null))\n })));\n });\n if (process.env.NODE_ENV !== 'production') {\n RangePicker.displayName = 'RangePicker';\n }\n return RangePicker;\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 CalendarOutlined from \"@ant-design/icons/es/icons/CalendarOutlined\";\nimport ClockCircleOutlined from \"@ant-design/icons/es/icons/ClockCircleOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport RCPicker from 'rc-picker';\nimport * as React from 'react';\nimport { forwardRef, useContext, useImperativeHandle } 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 } from '../../form/context';\nimport { useLocale } from '../../locale';\nimport { useCompactItemContext } from '../../space/Compact';\nimport enUS from '../locale/en_US';\nimport useStyle from '../style';\nimport { getPlaceholder, getTimeProps, mergeAllowClear, transPlacement2DropdownAlign } from '../util';\nimport Components from './Components';\nexport default function generatePicker(generateConfig) {\n function getPicker(picker, displayName) {\n const consumerName = displayName === 'TimePicker' ? 'timePicker' : 'datePicker';\n const Picker = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n getPopupContainer: customizeGetPopupContainer,\n style,\n className,\n rootClassName,\n size: customizeSize,\n bordered = true,\n placement,\n placeholder,\n popupClassName,\n dropdownClassName,\n disabled: customDisabled,\n status: customStatus,\n clearIcon,\n allowClear\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"getPopupContainer\", \"style\", \"className\", \"rootClassName\", \"size\", \"bordered\", \"placement\", \"placeholder\", \"popupClassName\", \"dropdownClassName\", \"disabled\", \"status\", \"clearIcon\", \"allowClear\"]);\n const {\n getPrefixCls,\n direction,\n getPopupContainer,\n // Consume different styles according to different names\n [consumerName]: consumerStyle\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('picker', customizePrefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const innerRef = React.useRef(null);\n const {\n format,\n showTime\n } = props;\n const [wrapSSR, hashId] = useStyle(prefixCls);\n useImperativeHandle(ref, () => ({\n focus: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n },\n blur: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n }));\n const additionalProps = {\n showToday: true\n };\n let additionalOverrideProps = {};\n if (picker) {\n additionalOverrideProps.picker = picker;\n }\n const mergedPicker = picker || props.picker;\n additionalOverrideProps = Object.assign(Object.assign(Object.assign({}, additionalOverrideProps), showTime ? getTimeProps(Object.assign({\n format,\n picker: mergedPicker\n }, showTime)) : {}), mergedPicker === 'time' ? getTimeProps(Object.assign(Object.assign({\n format\n }, props), {\n picker: mergedPicker\n })) : {});\n const rootPrefixCls = getPrefixCls();\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(picker !== 'quarter', displayName, `DatePicker.${displayName} is legacy usage. Please use DatePicker[picker='${picker}'] directly.`) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, displayName || 'DatePicker', '`dropdownClassName` is deprecated. Please use `popupClassName` instead.') : void 0;\n }\n // ===================== Size =====================\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 // ===================== FormItemInput =====================\n const formItemContext = useContext(FormItemInputContext);\n const {\n hasFeedback,\n status: contextStatus,\n feedbackIcon\n } = formItemContext;\n const suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, mergedPicker === 'time' ? /*#__PURE__*/React.createElement(ClockCircleOutlined, null) : /*#__PURE__*/React.createElement(CalendarOutlined, null), hasFeedback && feedbackIcon);\n const [contextLocale] = useLocale('DatePicker', enUS);\n const locale = Object.assign(Object.assign({}, contextLocale), props.locale);\n return wrapSSR( /*#__PURE__*/React.createElement(RCPicker, Object.assign({\n ref: innerRef,\n placeholder: getPlaceholder(locale, mergedPicker, placeholder),\n suffixIcon: suffixNode,\n dropdownAlign: transPlacement2DropdownAlign(direction, placement),\n prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-prev-icon`\n }),\n nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-next-icon`\n }),\n superPrevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-prev-icon`\n }),\n superNextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-next-icon`\n }),\n transitionName: `${rootPrefixCls}-slide-up`\n }, additionalProps, restProps, additionalOverrideProps, {\n locale: locale.lang,\n className: classNames({\n [`${prefixCls}-${mergedSize}`]: mergedSize,\n [`${prefixCls}-borderless`]: !bordered\n }, getStatusClassNames(prefixCls, getMergedStatus(contextStatus, customStatus), hasFeedback), hashId, compactItemClassnames, consumerStyle === null || consumerStyle === void 0 ? void 0 : consumerStyle.className, className, rootClassName),\n style: Object.assign(Object.assign({}, consumerStyle === null || consumerStyle === void 0 ? void 0 : consumerStyle.style), style),\n prefixCls: prefixCls,\n getPopupContainer: customizeGetPopupContainer || getPopupContainer,\n generateConfig: generateConfig,\n components: Components,\n direction: direction,\n disabled: mergedDisabled,\n dropdownClassName: classNames(hashId, rootClassName, popupClassName || dropdownClassName),\n allowClear: mergeAllowClear(allowClear, clearIcon, /*#__PURE__*/React.createElement(CloseCircleFilled, null))\n })));\n });\n if (displayName) {\n Picker.displayName = displayName;\n }\n return Picker;\n }\n const DatePicker = getPicker();\n const WeekPicker = getPicker('week', 'WeekPicker');\n const MonthPicker = getPicker('month', 'MonthPicker');\n const YearPicker = getPicker('year', 'YearPicker');\n const TimePicker = getPicker('time', 'TimePicker');\n const QuarterPicker = getPicker('quarter', 'QuarterPicker');\n return {\n DatePicker,\n WeekPicker,\n MonthPicker,\n YearPicker,\n TimePicker,\n QuarterPicker\n };\n}","import generateRangePicker from './generateRangePicker';\nimport generateSinglePicker from './generateSinglePicker';\nconst DataPickerPlacements = ['bottomLeft', 'bottomRight', 'topLeft', 'topRight'];\nfunction generatePicker(generateConfig) {\n // =========================== Picker ===========================\n const {\n DatePicker,\n WeekPicker,\n MonthPicker,\n YearPicker,\n TimePicker,\n QuarterPicker\n } = generateSinglePicker(generateConfig);\n // ======================== Range Picker ========================\n const RangePicker = generateRangePicker(generateConfig);\n const MergedDatePicker = DatePicker;\n MergedDatePicker.WeekPicker = WeekPicker;\n MergedDatePicker.MonthPicker = MonthPicker;\n MergedDatePicker.YearPicker = YearPicker;\n MergedDatePicker.RangePicker = RangePicker;\n MergedDatePicker.TimePicker = TimePicker;\n MergedDatePicker.QuarterPicker = QuarterPicker;\n if (process.env.NODE_ENV !== 'production') {\n MergedDatePicker.displayName = 'DatePicker';\n }\n return MergedDatePicker;\n}\nexport default generatePicker;","'use client';\n\nimport dayjsGenerateConfig from \"rc-picker/es/generate/dayjs\";\nimport genPurePanel from '../_util/PurePanel';\nimport generatePicker from './generatePicker';\nimport { transPlacement2DropdownAlign } from './util';\nconst DatePicker = generatePicker(dayjsGenerateConfig);\nfunction postPureProps(props) {\n const dropdownAlign = transPlacement2DropdownAlign(props.direction, props.placement);\n dropdownAlign.overflow.adjustY = false;\n dropdownAlign.overflow.adjustX = false;\n return Object.assign(Object.assign({}, props), {\n dropdownAlign\n });\n}\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(DatePicker, 'picker', null, postPureProps);\nDatePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nconst PureRangePanel = genPurePanel(DatePicker.RangePicker, 'picker', null, postPureProps);\nDatePicker._InternalRangePanelDoNotUseOrYouWillBeFired = PureRangePanel;\nDatePicker.generatePicker = generatePicker;\nexport default DatePicker;","import { TinyColor } from '@ctrl/tinycolor';\nimport { genActiveStyle, genBasicInputStyle, genHoverStyle, initInputToken } from '../../input/style';\nimport { resetComponent, roundedArrow, textEllipsis } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { initMoveMotion, initSlideMotion, slideDownIn, slideDownOut, slideUpIn, slideUpOut } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genPikerPadding = (token, inputHeight, fontSize, paddingHorizontal) => {\n const {\n lineHeight\n } = token;\n const fontHeight = Math.floor(fontSize * lineHeight) + 2;\n const paddingTop = Math.max((inputHeight - fontHeight) / 2, 0);\n const paddingBottom = Math.max(inputHeight - fontHeight - paddingTop, 0);\n return {\n padding: `${paddingTop}px ${paddingHorizontal}px ${paddingBottom}px`\n };\n};\nconst genPickerCellInnerStyle = token => {\n const {\n componentCls,\n pickerCellCls,\n pickerCellInnerCls,\n pickerPanelCellHeight,\n motionDurationSlow,\n borderRadiusSM,\n motionDurationMid,\n controlItemBgHover,\n lineWidth,\n lineType,\n colorPrimary,\n controlItemBgActive,\n colorTextLightSolid,\n controlHeightSM,\n pickerDateHoverRangeBorderColor,\n pickerCellBorderGap,\n pickerBasicCellHoverWithRangeColor,\n pickerPanelCellWidth,\n colorTextDisabled,\n colorBgContainerDisabled\n } = token;\n return {\n '&::before': {\n position: 'absolute',\n top: '50%',\n insetInlineStart: 0,\n insetInlineEnd: 0,\n zIndex: 1,\n height: pickerPanelCellHeight,\n transform: 'translateY(-50%)',\n transition: `all ${motionDurationSlow}`,\n content: '\"\"'\n },\n // >>> Default\n [pickerCellInnerCls]: {\n position: 'relative',\n zIndex: 2,\n display: 'inline-block',\n minWidth: pickerPanelCellHeight,\n height: pickerPanelCellHeight,\n lineHeight: `${pickerPanelCellHeight}px`,\n borderRadius: borderRadiusSM,\n transition: `background ${motionDurationMid}, border ${motionDurationMid}`\n },\n [`&-range-hover-start, &-range-hover-end`]: {\n [pickerCellInnerCls]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n // >>> Hover\n [`&:hover:not(${pickerCellCls}-in-view),\n &:hover:not(${pickerCellCls}-selected):not(${pickerCellCls}-range-start):not(${pickerCellCls}-range-end):not(${pickerCellCls}-range-hover-start):not(${pickerCellCls}-range-hover-end)`]: {\n [pickerCellInnerCls]: {\n background: controlItemBgHover\n }\n },\n // >>> Today\n [`&-in-view${pickerCellCls}-today ${pickerCellInnerCls}`]: {\n '&::before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n zIndex: 1,\n border: `${lineWidth}px ${lineType} ${colorPrimary}`,\n borderRadius: borderRadiusSM,\n content: '\"\"'\n }\n },\n // >>> In Range\n [`&-in-view${pickerCellCls}-in-range`]: {\n position: 'relative',\n '&::before': {\n background: controlItemBgActive\n }\n },\n // >>> Selected\n [`&-in-view${pickerCellCls}-selected ${pickerCellInnerCls},\n &-in-view${pickerCellCls}-range-start ${pickerCellInnerCls},\n &-in-view${pickerCellCls}-range-end ${pickerCellInnerCls}`]: {\n color: colorTextLightSolid,\n background: colorPrimary\n },\n [`&-in-view${pickerCellCls}-range-start:not(${pickerCellCls}-range-start-single),\n &-in-view${pickerCellCls}-range-end:not(${pickerCellCls}-range-end-single)`]: {\n '&::before': {\n background: controlItemBgActive\n }\n },\n [`&-in-view${pickerCellCls}-range-start::before`]: {\n insetInlineStart: '50%'\n },\n [`&-in-view${pickerCellCls}-range-end::before`]: {\n insetInlineEnd: '50%'\n },\n // >>> Range Hover\n [`&-in-view${pickerCellCls}-range-hover-start:not(${pickerCellCls}-in-range):not(${pickerCellCls}-range-start):not(${pickerCellCls}-range-end),\n &-in-view${pickerCellCls}-range-hover-end:not(${pickerCellCls}-in-range):not(${pickerCellCls}-range-start):not(${pickerCellCls}-range-end),\n &-in-view${pickerCellCls}-range-hover-start${pickerCellCls}-range-start-single,\n &-in-view${pickerCellCls}-range-hover-start${pickerCellCls}-range-start${pickerCellCls}-range-end${pickerCellCls}-range-end-near-hover,\n &-in-view${pickerCellCls}-range-hover-end${pickerCellCls}-range-start${pickerCellCls}-range-end${pickerCellCls}-range-start-near-hover,\n &-in-view${pickerCellCls}-range-hover-end${pickerCellCls}-range-end-single,\n &-in-view${pickerCellCls}-range-hover:not(${pickerCellCls}-in-range)`]: {\n '&::after': {\n position: 'absolute',\n top: '50%',\n zIndex: 0,\n height: controlHeightSM,\n borderTop: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n borderBottom: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n transform: 'translateY(-50%)',\n transition: `all ${motionDurationSlow}`,\n content: '\"\"'\n }\n },\n // Add space for stash\n [`&-range-hover-start::after,\n &-range-hover-end::after,\n &-range-hover::after`]: {\n insetInlineEnd: 0,\n insetInlineStart: pickerCellBorderGap\n },\n // Hover with in range\n [`&-in-view${pickerCellCls}-in-range${pickerCellCls}-range-hover::before,\n &-in-view${pickerCellCls}-in-range${pickerCellCls}-range-hover-start::before,\n &-in-view${pickerCellCls}-in-range${pickerCellCls}-range-hover-end::before,\n &-in-view${pickerCellCls}-range-start${pickerCellCls}-range-hover::before,\n &-in-view${pickerCellCls}-range-end${pickerCellCls}-range-hover::before,\n &-in-view${pickerCellCls}-range-start:not(${pickerCellCls}-range-start-single)${pickerCellCls}-range-hover-start::before,\n &-in-view${pickerCellCls}-range-end:not(${pickerCellCls}-range-end-single)${pickerCellCls}-range-hover-end::before,\n ${componentCls}-panel\n > :not(${componentCls}-date-panel)\n &-in-view${pickerCellCls}-in-range${pickerCellCls}-range-hover-start::before,\n ${componentCls}-panel\n > :not(${componentCls}-date-panel)\n &-in-view${pickerCellCls}-in-range${pickerCellCls}-range-hover-end::before`]: {\n background: pickerBasicCellHoverWithRangeColor\n },\n // range start border-radius\n [`&-in-view${pickerCellCls}-range-start:not(${pickerCellCls}-range-start-single):not(${pickerCellCls}-range-end) ${pickerCellInnerCls}`]: {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n },\n // range end border-radius\n [`&-in-view${pickerCellCls}-range-end:not(${pickerCellCls}-range-end-single):not(${pickerCellCls}-range-start) ${pickerCellInnerCls}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n },\n [`&-range-hover${pickerCellCls}-range-end::after`]: {\n insetInlineStart: '50%'\n },\n // Edge start\n [`tr > &-in-view${pickerCellCls}-range-hover:first-child::after,\n tr > &-in-view${pickerCellCls}-range-hover-end:first-child::after,\n &-in-view${pickerCellCls}-start${pickerCellCls}-range-hover-edge-start${pickerCellCls}-range-hover-edge-start-near-range::after,\n &-in-view${pickerCellCls}-range-hover-edge-start:not(${pickerCellCls}-range-hover-edge-start-near-range)::after,\n &-in-view${pickerCellCls}-range-hover-start::after`]: {\n insetInlineStart: (pickerPanelCellWidth - pickerPanelCellHeight) / 2,\n borderInlineStart: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM\n },\n // Edge end\n [`tr > &-in-view${pickerCellCls}-range-hover:last-child::after,\n tr > &-in-view${pickerCellCls}-range-hover-start:last-child::after,\n &-in-view${pickerCellCls}-end${pickerCellCls}-range-hover-edge-end${pickerCellCls}-range-hover-edge-end-near-range::after,\n &-in-view${pickerCellCls}-range-hover-edge-end:not(${pickerCellCls}-range-hover-edge-end-near-range)::after,\n &-in-view${pickerCellCls}-range-hover-end::after`]: {\n insetInlineEnd: (pickerPanelCellWidth - pickerPanelCellHeight) / 2,\n borderInlineEnd: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n },\n // >>> Disabled\n '&-disabled': {\n color: colorTextDisabled,\n pointerEvents: 'none',\n [pickerCellInnerCls]: {\n background: 'transparent'\n },\n '&::before': {\n background: colorBgContainerDisabled\n }\n },\n [`&-disabled${pickerCellCls}-today ${pickerCellInnerCls}::before`]: {\n borderColor: colorTextDisabled\n }\n };\n};\nexport const genPanelStyle = token => {\n const {\n componentCls,\n pickerCellCls,\n pickerCellInnerCls,\n pickerYearMonthCellWidth,\n pickerControlIconSize,\n pickerPanelCellWidth,\n paddingSM,\n paddingXS,\n paddingXXS,\n colorBgContainer,\n lineWidth,\n lineType,\n borderRadiusLG,\n colorPrimary,\n colorTextHeading,\n colorSplit,\n pickerControlIconBorderWidth,\n colorIcon,\n pickerTextHeight,\n motionDurationMid,\n colorIconHover,\n fontWeightStrong,\n pickerPanelCellHeight,\n pickerCellPaddingVertical,\n colorTextDisabled,\n colorText,\n fontSize,\n pickerBasicCellHoverWithRangeColor,\n motionDurationSlow,\n pickerPanelWithoutTimeCellHeight,\n pickerQuarterPanelContentHeight,\n colorLink,\n colorLinkActive,\n colorLinkHover,\n pickerDateHoverRangeBorderColor,\n borderRadiusSM,\n colorTextLightSolid,\n controlItemBgHover,\n pickerTimePanelColumnHeight,\n pickerTimePanelColumnWidth,\n pickerTimePanelCellHeight,\n controlItemBgActive,\n marginXXS,\n pickerDatePanelPaddingHorizontal\n } = token;\n const pickerPanelWidth = pickerPanelCellWidth * 7 + pickerDatePanelPaddingHorizontal * 2;\n const commonHoverCellFixedDistance = (pickerPanelWidth - paddingXS * 2) / 3 - pickerYearMonthCellWidth - paddingSM;\n const quarterHoverCellFixedDistance = (pickerPanelWidth - paddingXS * 2) / 4 - pickerYearMonthCellWidth;\n return {\n [componentCls]: {\n '&-panel': {\n display: 'inline-flex',\n flexDirection: 'column',\n textAlign: 'center',\n background: colorBgContainer,\n border: `${lineWidth}px ${lineType} ${colorSplit}`,\n borderRadius: borderRadiusLG,\n outline: 'none',\n '&-focused': {\n borderColor: colorPrimary\n },\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-prev-icon,\n ${componentCls}-super-prev-icon`]: {\n transform: 'rotate(45deg)'\n },\n [`${componentCls}-next-icon,\n ${componentCls}-super-next-icon`]: {\n transform: 'rotate(-135deg)'\n }\n }\n },\n // ========================================================\n // = Shared Panel =\n // ========================================================\n [`&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel,\n &-week-panel,\n &-date-panel,\n &-time-panel`]: {\n display: 'flex',\n flexDirection: 'column',\n width: pickerPanelWidth\n },\n // ======================= Header =======================\n '&-header': {\n display: 'flex',\n padding: `0 ${paddingXS}px`,\n color: colorTextHeading,\n borderBottom: `${lineWidth}px ${lineType} ${colorSplit}`,\n '> *': {\n flex: 'none'\n },\n button: {\n padding: 0,\n color: colorIcon,\n lineHeight: `${pickerTextHeight}px`,\n background: 'transparent',\n border: 0,\n cursor: 'pointer',\n transition: `color ${motionDurationMid}`,\n fontSize: 'inherit'\n },\n '> button': {\n minWidth: '1.6em',\n fontSize,\n '&:hover': {\n color: colorIconHover\n }\n },\n '&-view': {\n flex: 'auto',\n fontWeight: fontWeightStrong,\n lineHeight: `${pickerTextHeight}px`,\n button: {\n color: 'inherit',\n fontWeight: 'inherit',\n verticalAlign: 'top',\n '&:not(:first-child)': {\n marginInlineStart: paddingXS\n },\n '&:hover': {\n color: colorPrimary\n }\n }\n }\n },\n // Arrow button\n [`&-prev-icon,\n &-next-icon,\n &-super-prev-icon,\n &-super-next-icon`]: {\n position: 'relative',\n display: 'inline-block',\n width: pickerControlIconSize,\n height: pickerControlIconSize,\n '&::before': {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n display: 'inline-block',\n width: pickerControlIconSize,\n height: pickerControlIconSize,\n border: `0 solid currentcolor`,\n borderBlockStartWidth: pickerControlIconBorderWidth,\n borderBlockEndWidth: 0,\n borderInlineStartWidth: pickerControlIconBorderWidth,\n borderInlineEndWidth: 0,\n content: '\"\"'\n }\n },\n [`&-super-prev-icon,\n &-super-next-icon`]: {\n '&::after': {\n position: 'absolute',\n top: Math.ceil(pickerControlIconSize / 2),\n insetInlineStart: Math.ceil(pickerControlIconSize / 2),\n display: 'inline-block',\n width: pickerControlIconSize,\n height: pickerControlIconSize,\n border: '0 solid currentcolor',\n borderBlockStartWidth: pickerControlIconBorderWidth,\n borderBlockEndWidth: 0,\n borderInlineStartWidth: pickerControlIconBorderWidth,\n borderInlineEndWidth: 0,\n content: '\"\"'\n }\n },\n [`&-prev-icon,\n &-super-prev-icon`]: {\n transform: 'rotate(-45deg)'\n },\n [`&-next-icon,\n &-super-next-icon`]: {\n transform: 'rotate(135deg)'\n },\n // ======================== Body ========================\n '&-content': {\n width: '100%',\n tableLayout: 'fixed',\n borderCollapse: 'collapse',\n 'th, td': {\n position: 'relative',\n minWidth: pickerPanelCellHeight,\n fontWeight: 'normal'\n },\n th: {\n height: pickerPanelCellHeight + pickerCellPaddingVertical * 2,\n color: colorText,\n verticalAlign: 'middle'\n }\n },\n '&-cell': Object.assign({\n padding: `${pickerCellPaddingVertical}px 0`,\n color: colorTextDisabled,\n cursor: 'pointer',\n // In view\n '&-in-view': {\n color: colorText\n }\n }, genPickerCellInnerStyle(token)),\n // DatePanel only\n [`&-date-panel ${componentCls}-cell-in-view${componentCls}-cell-in-range${componentCls}-cell-range-hover-start ${pickerCellInnerCls},\n &-date-panel ${componentCls}-cell-in-view${componentCls}-cell-in-range${componentCls}-cell-range-hover-end ${pickerCellInnerCls}`]: {\n '&::after': {\n position: 'absolute',\n top: 0,\n bottom: 0,\n zIndex: -1,\n background: pickerBasicCellHoverWithRangeColor,\n transition: `all ${motionDurationSlow}`,\n content: '\"\"'\n }\n },\n [`&-date-panel\n ${componentCls}-cell-in-view${componentCls}-cell-in-range${componentCls}-cell-range-hover-start\n ${pickerCellInnerCls}::after`]: {\n insetInlineEnd: -(pickerPanelCellWidth - pickerPanelCellHeight) / 2,\n insetInlineStart: 0\n },\n [`&-date-panel ${componentCls}-cell-in-view${componentCls}-cell-in-range${componentCls}-cell-range-hover-end ${pickerCellInnerCls}::after`]: {\n insetInlineEnd: 0,\n insetInlineStart: -(pickerPanelCellWidth - pickerPanelCellHeight) / 2\n },\n // Hover with range start & end\n [`&-range-hover${componentCls}-range-start::after`]: {\n insetInlineEnd: '50%'\n },\n [`&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel`]: {\n [`${componentCls}-content`]: {\n height: pickerPanelWithoutTimeCellHeight * 4\n },\n [pickerCellInnerCls]: {\n padding: `0 ${paddingXS}px`\n }\n },\n '&-quarter-panel': {\n [`${componentCls}-content`]: {\n height: pickerQuarterPanelContentHeight\n },\n // Quarter Panel Special Style\n [`${componentCls}-cell-range-hover-start::after`]: {\n insetInlineStart: quarterHoverCellFixedDistance,\n borderInlineStart: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n [`${componentCls}-panel-rtl &`]: {\n insetInlineEnd: quarterHoverCellFixedDistance,\n borderInlineEnd: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`\n }\n },\n [`${componentCls}-cell-range-hover-end::after`]: {\n insetInlineEnd: quarterHoverCellFixedDistance,\n borderInlineEnd: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n [`${componentCls}-panel-rtl &`]: {\n insetInlineStart: quarterHoverCellFixedDistance,\n borderInlineStart: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`\n }\n }\n },\n // ======================== Footer ========================\n [`&-panel ${componentCls}-footer`]: {\n borderTop: `${lineWidth}px ${lineType} ${colorSplit}`\n },\n '&-footer': {\n width: 'min-content',\n minWidth: '100%',\n lineHeight: `${pickerTextHeight - 2 * lineWidth}px`,\n textAlign: 'center',\n '&-extra': {\n padding: `0 ${paddingSM}`,\n lineHeight: `${pickerTextHeight - 2 * lineWidth}px`,\n textAlign: 'start',\n '&:not(:last-child)': {\n borderBottom: `${lineWidth}px ${lineType} ${colorSplit}`\n }\n }\n },\n '&-now': {\n textAlign: 'start'\n },\n '&-today-btn': {\n color: colorLink,\n '&:hover': {\n color: colorLinkHover\n },\n '&:active': {\n color: colorLinkActive\n },\n [`&${componentCls}-today-btn-disabled`]: {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n },\n // ========================================================\n // = Special =\n // ========================================================\n // ===================== Decade Panel =====================\n '&-decade-panel': {\n [pickerCellInnerCls]: {\n padding: `0 ${paddingXS / 2}px`\n },\n [`${componentCls}-cell::before`]: {\n display: 'none'\n }\n },\n // ============= Year & Quarter & Month Panel =============\n [`&-year-panel,\n &-quarter-panel,\n &-month-panel`]: {\n [`${componentCls}-body`]: {\n padding: `0 ${paddingXS}px`\n },\n [pickerCellInnerCls]: {\n width: pickerYearMonthCellWidth\n },\n [`${componentCls}-cell-range-hover-start::after`]: {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n [`${componentCls}-panel-rtl &`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n }\n },\n [`${componentCls}-cell-range-hover-end::after`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM,\n [`${componentCls}-panel-rtl &`]: {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n }\n },\n [`&-year-panel,\n &-month-panel`]: {\n [`${componentCls}-cell-range-hover-start::after`]: {\n insetInlineStart: commonHoverCellFixedDistance,\n borderInlineStart: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n [`${componentCls}-panel-rtl &`]: {\n insetInlineEnd: commonHoverCellFixedDistance,\n borderInlineEnd: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`\n }\n },\n [`${componentCls}-cell-range-hover-end::after`]: {\n insetInlineEnd: commonHoverCellFixedDistance,\n borderInlineEnd: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n [`${componentCls}-panel-rtl &`]: {\n insetInlineStart: commonHoverCellFixedDistance,\n borderInlineStart: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`\n }\n }\n },\n // ====================== Week Panel ======================\n '&-week-panel': {\n [`${componentCls}-body`]: {\n padding: `${paddingXS}px ${paddingSM}px`\n },\n // Clear cell style\n [`${componentCls}-cell`]: {\n [`&:hover ${pickerCellInnerCls},\n &-selected ${pickerCellInnerCls},\n ${pickerCellInnerCls}`]: {\n background: 'transparent !important'\n }\n },\n '&-row': {\n td: {\n '&:before': {\n transition: `background ${motionDurationMid}`\n },\n '&:first-child:before': {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM\n },\n '&:last-child:before': {\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n }\n },\n [`&:hover td`]: {\n '&:before': {\n background: controlItemBgHover\n }\n },\n [`&-range-start td,\n &-range-end td,\n &-selected td`]: {\n // Rise priority to override hover style\n [`&${pickerCellCls}`]: {\n '&:before': {\n background: colorPrimary\n },\n [`&${componentCls}-cell-week`]: {\n color: new TinyColor(colorTextLightSolid).setAlpha(0.5).toHexString()\n },\n [pickerCellInnerCls]: {\n color: colorTextLightSolid\n }\n }\n },\n [`&-range-hover td:before`]: {\n background: controlItemBgActive\n }\n }\n },\n // ====================== Date Panel ======================\n '&-date-panel': {\n [`${componentCls}-body`]: {\n padding: `${paddingXS}px ${pickerDatePanelPaddingHorizontal}px`\n },\n [`${componentCls}-content`]: {\n width: pickerPanelCellWidth * 7,\n th: {\n width: pickerPanelCellWidth,\n boxSizing: 'border-box',\n padding: 0\n }\n }\n },\n // ==================== Datetime Panel ====================\n '&-datetime-panel': {\n display: 'flex',\n [`${componentCls}-time-panel`]: {\n borderInlineStart: `${lineWidth}px ${lineType} ${colorSplit}`\n },\n [`${componentCls}-date-panel,\n ${componentCls}-time-panel`]: {\n transition: `opacity ${motionDurationSlow}`\n },\n // Keyboard\n '&-active': {\n [`${componentCls}-date-panel,\n ${componentCls}-time-panel`]: {\n opacity: 0.3,\n '&-active': {\n opacity: 1\n }\n }\n }\n },\n // ====================== Time Panel ======================\n '&-time-panel': {\n width: 'auto',\n minWidth: 'auto',\n direction: 'ltr',\n [`${componentCls}-content`]: {\n display: 'flex',\n flex: 'auto',\n height: pickerTimePanelColumnHeight\n },\n '&-column': {\n flex: '1 0 auto',\n width: pickerTimePanelColumnWidth,\n margin: `${paddingXXS}px 0`,\n padding: 0,\n overflowY: 'hidden',\n textAlign: 'start',\n listStyle: 'none',\n transition: `background ${motionDurationMid}`,\n overflowX: 'hidden',\n '&::after': {\n display: 'block',\n height: pickerTimePanelColumnHeight - pickerTimePanelCellHeight,\n content: '\"\"'\n },\n '&:not(:first-child)': {\n borderInlineStart: `${lineWidth}px ${lineType} ${colorSplit}`\n },\n '&-active': {\n background: new TinyColor(controlItemBgActive).setAlpha(0.2).toHexString()\n },\n '&:hover': {\n overflowY: 'auto'\n },\n '> li': {\n margin: 0,\n padding: 0,\n [`&${componentCls}-time-panel-cell`]: {\n marginInline: marginXXS,\n [`${componentCls}-time-panel-cell-inner`]: {\n display: 'block',\n width: pickerTimePanelColumnWidth - 2 * marginXXS,\n height: pickerTimePanelCellHeight,\n margin: 0,\n paddingBlock: 0,\n paddingInlineEnd: 0,\n paddingInlineStart: (pickerTimePanelColumnWidth - pickerTimePanelCellHeight) / 2,\n color: colorText,\n lineHeight: `${pickerTimePanelCellHeight}px`,\n borderRadius: borderRadiusSM,\n cursor: 'pointer',\n transition: `background ${motionDurationMid}`,\n '&:hover': {\n background: controlItemBgHover\n }\n },\n '&-selected': {\n [`${componentCls}-time-panel-cell-inner`]: {\n background: controlItemBgActive\n }\n },\n '&-disabled': {\n [`${componentCls}-time-panel-cell-inner`]: {\n color: colorTextDisabled,\n background: 'transparent',\n cursor: 'not-allowed'\n }\n }\n }\n }\n }\n },\n // https://github.com/ant-design/ant-design/issues/39227\n [`&-datetime-panel ${componentCls}-time-panel-column:after`]: {\n height: pickerTimePanelColumnHeight - pickerTimePanelCellHeight + paddingXXS * 2\n }\n }\n };\n};\nconst genPickerStatusStyle = token => {\n const {\n componentCls,\n colorBgContainer,\n colorError,\n colorErrorOutline,\n colorWarning,\n colorWarningOutline\n } = token;\n return {\n [`${componentCls}:not(${componentCls}-disabled)`]: {\n [`&${componentCls}-status-error`]: {\n '&, &:not([disabled]):hover': {\n backgroundColor: colorBgContainer,\n borderColor: colorError\n },\n [`&${componentCls}-focused, &:focus`]: Object.assign({}, genActiveStyle(mergeToken(token, {\n inputBorderActiveColor: colorError,\n inputBorderHoverColor: colorError,\n controlOutline: colorErrorOutline\n }))),\n [`${componentCls}-active-bar`]: {\n background: colorError\n }\n },\n [`&${componentCls}-status-warning`]: {\n '&, &:not([disabled]):hover': {\n backgroundColor: colorBgContainer,\n borderColor: colorWarning\n },\n [`&${componentCls}-focused, &:focus`]: Object.assign({}, genActiveStyle(mergeToken(token, {\n inputBorderActiveColor: colorWarning,\n inputBorderHoverColor: colorWarning,\n controlOutline: colorWarningOutline\n }))),\n [`${componentCls}-active-bar`]: {\n background: colorWarning\n }\n }\n }\n };\n};\nconst genPickerStyle = token => {\n const {\n componentCls,\n antCls,\n controlHeight,\n fontSize,\n inputPaddingHorizontal,\n colorBgContainer,\n lineWidth,\n lineType,\n colorBorder,\n borderRadius,\n motionDurationMid,\n colorBgContainerDisabled,\n colorTextDisabled,\n colorTextPlaceholder,\n controlHeightLG,\n fontSizeLG,\n controlHeightSM,\n inputPaddingHorizontalSM,\n paddingXS,\n marginXS,\n colorTextDescription,\n lineWidthBold,\n lineHeight,\n colorPrimary,\n motionDurationSlow,\n zIndexPopup,\n paddingXXS,\n paddingSM,\n pickerTextHeight,\n controlItemBgActive,\n colorPrimaryBorder,\n sizePopupArrow,\n borderRadiusXS,\n borderRadiusOuter,\n colorBgElevated,\n borderRadiusLG,\n boxShadowSecondary,\n borderRadiusSM,\n colorSplit,\n controlItemBgHover,\n presetsWidth,\n presetsMaxWidth,\n boxShadowPopoverArrow,\n colorTextQuaternary\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genPikerPadding(token, controlHeight, fontSize, inputPaddingHorizontal)), {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n background: colorBgContainer,\n lineHeight: 1,\n border: `${lineWidth}px ${lineType} ${colorBorder}`,\n borderRadius,\n transition: `border ${motionDurationMid}, box-shadow ${motionDurationMid}`,\n '&:hover, &-focused': Object.assign({}, genHoverStyle(token)),\n '&-focused': Object.assign({}, genActiveStyle(token)),\n [`&${componentCls}-disabled`]: {\n background: colorBgContainerDisabled,\n borderColor: colorBorder,\n cursor: 'not-allowed',\n [`${componentCls}-suffix`]: {\n color: colorTextQuaternary\n }\n },\n [`&${componentCls}-borderless`]: {\n backgroundColor: 'transparent !important',\n borderColor: 'transparent !important',\n boxShadow: 'none !important'\n },\n // ======================== Input =========================\n [`${componentCls}-input`]: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n width: '100%',\n '> input': Object.assign(Object.assign({}, genBasicInputStyle(token)), {\n flex: 'auto',\n // Fix Firefox flex not correct:\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n minWidth: 1,\n height: 'auto',\n padding: 0,\n background: 'transparent',\n border: 0,\n borderRadius: 0,\n '&:focus': {\n boxShadow: 'none'\n },\n '&[disabled]': {\n background: 'transparent'\n }\n }),\n '&:hover': {\n [`${componentCls}-clear`]: {\n opacity: 1\n }\n },\n '&-placeholder': {\n '> input': {\n color: colorTextPlaceholder\n }\n }\n },\n // Size\n '&-large': Object.assign(Object.assign({}, genPikerPadding(token, controlHeightLG, fontSizeLG, inputPaddingHorizontal)), {\n [`${componentCls}-input > input`]: {\n fontSize: fontSizeLG\n }\n }),\n '&-small': Object.assign({}, genPikerPadding(token, controlHeightSM, fontSize, inputPaddingHorizontalSM)),\n [`${componentCls}-suffix`]: {\n display: 'flex',\n flex: 'none',\n alignSelf: 'center',\n marginInlineStart: paddingXS / 2,\n color: colorTextDisabled,\n lineHeight: 1,\n pointerEvents: 'none',\n '> *': {\n verticalAlign: 'top',\n '&:not(:last-child)': {\n marginInlineEnd: marginXS\n }\n }\n },\n [`${componentCls}-clear`]: {\n position: 'absolute',\n top: '50%',\n insetInlineEnd: 0,\n color: colorTextDisabled,\n lineHeight: 1,\n background: colorBgContainer,\n transform: 'translateY(-50%)',\n cursor: 'pointer',\n opacity: 0,\n transition: `opacity ${motionDurationMid}, color ${motionDurationMid}`,\n '> *': {\n verticalAlign: 'top'\n },\n '&:hover': {\n color: colorTextDescription\n }\n },\n [`${componentCls}-separator`]: {\n position: 'relative',\n display: 'inline-block',\n width: '1em',\n height: fontSizeLG,\n color: colorTextDisabled,\n fontSize: fontSizeLG,\n verticalAlign: 'top',\n cursor: 'default',\n [`${componentCls}-focused &`]: {\n color: colorTextDescription\n },\n [`${componentCls}-range-separator &`]: {\n [`${componentCls}-disabled &`]: {\n cursor: 'not-allowed'\n }\n }\n },\n // ======================== Range =========================\n '&-range': {\n position: 'relative',\n display: 'inline-flex',\n // Clear\n [`${componentCls}-clear`]: {\n insetInlineEnd: inputPaddingHorizontal\n },\n '&:hover': {\n [`${componentCls}-clear`]: {\n opacity: 1\n }\n },\n // Active bar\n [`${componentCls}-active-bar`]: {\n bottom: -lineWidth,\n height: lineWidthBold,\n marginInlineStart: inputPaddingHorizontal,\n background: colorPrimary,\n opacity: 0,\n transition: `all ${motionDurationSlow} ease-out`,\n pointerEvents: 'none'\n },\n [`&${componentCls}-focused`]: {\n [`${componentCls}-active-bar`]: {\n opacity: 1\n }\n },\n [`${componentCls}-range-separator`]: {\n alignItems: 'center',\n padding: `0 ${paddingXS}px`,\n lineHeight: 1\n },\n [`&${componentCls}-small`]: {\n [`${componentCls}-clear`]: {\n insetInlineEnd: inputPaddingHorizontalSM\n },\n [`${componentCls}-active-bar`]: {\n marginInlineStart: inputPaddingHorizontalSM\n }\n }\n },\n // ======================= Dropdown =======================\n '&-dropdown': Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genPanelStyle(token)), {\n position: 'absolute',\n // Fix incorrect position of picker popup\n // https://github.com/ant-design/ant-design/issues/35590\n top: -9999,\n left: {\n _skip_check_: true,\n value: -9999\n },\n zIndex: zIndexPopup,\n [`&${componentCls}-dropdown-hidden`]: {\n display: 'none'\n },\n [`&${componentCls}-dropdown-placement-bottomLeft`]: {\n [`${componentCls}-range-arrow`]: {\n top: 0,\n display: 'block',\n transform: 'translateY(-100%)'\n }\n },\n [`&${componentCls}-dropdown-placement-topLeft`]: {\n [`${componentCls}-range-arrow`]: {\n bottom: 0,\n display: 'block',\n transform: 'translateY(100%) rotate(180deg)'\n }\n },\n [`&${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-topRight,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-topRight`]: {\n animationName: slideDownIn\n },\n [`&${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-bottomRight,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-bottomRight`]: {\n animationName: slideUpIn\n },\n [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-topRight`]: {\n animationName: slideDownOut\n },\n [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-bottomRight`]: {\n animationName: slideUpOut\n },\n // Time picker with additional style\n [`${componentCls}-panel > ${componentCls}-time-panel`]: {\n paddingTop: paddingXXS\n },\n // ======================== Ranges ========================\n [`${componentCls}-ranges`]: {\n marginBottom: 0,\n padding: `${paddingXXS}px ${paddingSM}px`,\n overflow: 'hidden',\n lineHeight: `${pickerTextHeight - 2 * lineWidth - paddingXS / 2}px`,\n textAlign: 'start',\n listStyle: 'none',\n display: 'flex',\n justifyContent: 'space-between',\n '> li': {\n display: 'inline-block'\n },\n // https://github.com/ant-design/ant-design/issues/23687\n [`${componentCls}-preset > ${antCls}-tag-blue`]: {\n color: colorPrimary,\n background: controlItemBgActive,\n borderColor: colorPrimaryBorder,\n cursor: 'pointer'\n },\n [`${componentCls}-ok`]: {\n marginInlineStart: 'auto'\n }\n },\n [`${componentCls}-range-wrapper`]: {\n display: 'flex',\n position: 'relative'\n },\n [`${componentCls}-range-arrow`]: Object.assign({\n position: 'absolute',\n zIndex: 1,\n display: 'none',\n marginInlineStart: inputPaddingHorizontal * 1.5,\n transition: `left ${motionDurationSlow} ease-out`\n }, roundedArrow(sizePopupArrow, borderRadiusXS, borderRadiusOuter, colorBgElevated, boxShadowPopoverArrow)),\n [`${componentCls}-panel-container`]: {\n overflow: 'hidden',\n verticalAlign: 'top',\n background: colorBgElevated,\n borderRadius: borderRadiusLG,\n boxShadow: boxShadowSecondary,\n transition: `margin ${motionDurationSlow}`,\n // ======================== Layout ========================\n [`${componentCls}-panel-layout`]: {\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'stretch'\n },\n // ======================== Preset ========================\n [`${componentCls}-presets`]: {\n display: 'flex',\n flexDirection: 'column',\n minWidth: presetsWidth,\n maxWidth: presetsMaxWidth,\n ul: {\n height: 0,\n flex: 'auto',\n listStyle: 'none',\n overflow: 'auto',\n margin: 0,\n padding: paddingXS,\n borderInlineEnd: `${lineWidth}px ${lineType} ${colorSplit}`,\n li: Object.assign(Object.assign({}, textEllipsis), {\n borderRadius: borderRadiusSM,\n paddingInline: paddingXS,\n paddingBlock: (controlHeightSM - Math.round(fontSize * lineHeight)) / 2,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '+ li': {\n marginTop: marginXS\n },\n '&:hover': {\n background: controlItemBgHover\n }\n })\n }\n },\n // ======================== Panels ========================\n [`${componentCls}-panels`]: {\n display: 'inline-flex',\n flexWrap: 'nowrap',\n direction: 'ltr',\n [`${componentCls}-panel`]: {\n borderWidth: `0 0 ${lineWidth}px`\n },\n '&:last-child': {\n [`${componentCls}-panel`]: {\n borderWidth: 0\n }\n }\n },\n [`${componentCls}-panel`]: {\n verticalAlign: 'top',\n background: 'transparent',\n borderRadius: 0,\n borderWidth: 0,\n [`${componentCls}-content,\n table`]: {\n textAlign: 'center'\n },\n '&-focused': {\n borderColor: colorBorder\n }\n }\n }\n }),\n '&-dropdown-range': {\n padding: `${sizePopupArrow * 2 / 3}px 0`,\n '&-hidden': {\n display: 'none'\n }\n },\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-separator`]: {\n transform: 'rotate(180deg)'\n },\n [`${componentCls}-footer`]: {\n '&-extra': {\n direction: 'rtl'\n }\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')];\n};\nexport const initPickerPanelToken = token => {\n const pickerTimePanelCellHeight = 28;\n const {\n componentCls,\n controlHeightLG,\n controlHeightSM,\n colorPrimary,\n paddingXXS,\n padding\n } = token;\n return {\n pickerCellCls: `${componentCls}-cell`,\n pickerCellInnerCls: `${componentCls}-cell-inner`,\n pickerTextHeight: controlHeightLG,\n pickerPanelCellWidth: controlHeightSM * 1.5,\n pickerPanelCellHeight: controlHeightSM,\n pickerDateHoverRangeBorderColor: new TinyColor(colorPrimary).lighten(20).toHexString(),\n pickerBasicCellHoverWithRangeColor: new TinyColor(colorPrimary).lighten(35).toHexString(),\n pickerPanelWithoutTimeCellHeight: controlHeightLG * 1.65,\n pickerYearMonthCellWidth: controlHeightLG * 1.5,\n pickerTimePanelColumnHeight: pickerTimePanelCellHeight * 8,\n pickerTimePanelColumnWidth: controlHeightLG * 1.4,\n pickerTimePanelCellHeight,\n pickerQuarterPanelContentHeight: controlHeightLG * 1.4,\n pickerCellPaddingVertical: paddingXXS + paddingXXS / 2,\n pickerCellBorderGap: 2,\n pickerControlIconSize: 7,\n pickerControlIconBorderWidth: 1.5,\n pickerDatePanelPaddingHorizontal: padding + paddingXXS / 2 // 18 in normal\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('DatePicker', token => {\n const pickerToken = mergeToken(initInputToken(token), initPickerPanelToken(token));\n return [genPickerStyle(pickerToken), genPickerStatusStyle(pickerToken),\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(token, {\n focusElCls: `${token.componentCls}-focused`\n })];\n}, token => ({\n presetsWidth: 120,\n presetsMaxWidth: 200,\n zIndexPopup: token.zIndexPopupBase + 50\n}));","'use client';\n\nimport Col from './col';\nimport useInternalBreakpoint from './hooks/useBreakpoint';\nimport Row from './row';\n// Do not export params\nfunction useBreakpoint() {\n return useInternalBreakpoint();\n}\nexport { Col, Row };\nexport default {\n useBreakpoint\n};","export var COMMON_PROPS = ['crossOrigin', 'decoding', 'draggable', 'loading', 'referrerPolicy', 'sizes', 'srcSet', 'useMap', 'alt'];","import * as React from 'react';\nexport var PreviewGroupContext = /*#__PURE__*/React.createContext(null);","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { PreviewGroupContext } from \"../context\";\nvar uid = 0;\nexport default function useRegisterImage(canPreview, data) {\n var _React$useState = React.useState(function () {\n uid += 1;\n return String(uid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n var groupContext = React.useContext(PreviewGroupContext);\n var registerData = {\n data: data,\n canPreview: canPreview\n };\n\n // Keep order start\n // Resolve https://github.com/ant-design/ant-design/issues/28881\n // Only need unRegister when component unMount\n React.useEffect(function () {\n if (groupContext) {\n return groupContext.register(id, registerData);\n }\n }, []);\n React.useEffect(function () {\n if (groupContext) {\n groupContext.register(id, registerData);\n }\n }, [canPreview, data]);\n return id;\n}","export function isImageValid(src) {\n return new Promise(function (resolve) {\n var img = document.createElement('img');\n img.onerror = function () {\n return resolve(false);\n };\n img.onload = function () {\n return resolve(true);\n };\n img.src = src;\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef, useState } from 'react';\nimport { isImageValid } from \"../util\";\nexport default function useStatus(_ref) {\n var src = _ref.src,\n isCustomPlaceholder = _ref.isCustomPlaceholder,\n fallback = _ref.fallback;\n var _useState = useState(isCustomPlaceholder ? 'loading' : 'normal'),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setStatus = _useState2[1];\n var isLoaded = useRef(false);\n var isError = status === 'error';\n\n // https://github.com/react-component/image/pull/187\n useEffect(function () {\n isImageValid(src).then(function (isValid) {\n if (!isValid) {\n setStatus('error');\n }\n });\n }, [src]);\n useEffect(function () {\n if (isCustomPlaceholder && !isLoaded.current) {\n setStatus('loading');\n } else if (isError) {\n setStatus('normal');\n }\n }, [src]);\n var onLoad = function onLoad() {\n setStatus('normal');\n };\n var getImgRef = function getImgRef(img) {\n isLoaded.current = false;\n if (status !== 'loading') {\n return;\n }\n if (img !== null && img !== void 0 && img.complete && (img.naturalWidth || img.naturalHeight)) {\n isLoaded.current = true;\n onLoad();\n }\n };\n var srcAndOnload = isError && fallback ? {\n src: fallback\n } : {\n onLoad: onLoad,\n src: src\n };\n return [getImgRef, srcAndOnload, status];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { getClientSize } from \"rc-util/es/Dom/css\";\nfunction fixPoint(key, start, width, clientWidth) {\n var startAddWidth = start + width;\n var offsetStart = (width - clientWidth) / 2;\n if (width > clientWidth) {\n if (start > 0) {\n return _defineProperty({}, key, offsetStart);\n }\n if (start < 0 && startAddWidth < clientWidth) {\n return _defineProperty({}, key, -offsetStart);\n }\n } else if (start < 0 || startAddWidth > clientWidth) {\n return _defineProperty({}, key, start < 0 ? offsetStart : -offsetStart);\n }\n return {};\n}\n\n/**\n * Fix positon x,y point when\n *\n * Ele width && height < client\n * - Back origin\n *\n * - Ele width | height > clientWidth | clientHeight\n * - left | top > 0 -> Back 0\n * - left | top + width | height < clientWidth | clientHeight -> Back left | top + width | height === clientWidth | clientHeight\n *\n * Regardless of other\n */\nexport default function getFixScaleEleTransPosition(width, height, left, top) {\n var _getClientSize = getClientSize(),\n clientWidth = _getClientSize.width,\n clientHeight = _getClientSize.height;\n var fixPos = null;\n if (width <= clientWidth && height <= clientHeight) {\n fixPos = {\n x: 0,\n y: 0\n };\n } else if (width > clientWidth || height > clientHeight) {\n fixPos = _objectSpread(_objectSpread({}, fixPoint('x', left, width, clientWidth)), fixPoint('y', top, height, clientHeight));\n }\n return fixPos;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { getClientSize } from \"rc-util/es/Dom/css\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport raf from \"rc-util/es/raf\";\nimport { useRef, useState } from 'react';\nvar initialTransform = {\n x: 0,\n y: 0,\n rotate: 0,\n scale: 1,\n flipX: false,\n flipY: false\n};\nexport default function useImageTransform(imgRef, minScale, maxScale, onTransform) {\n var frame = useRef(null);\n var queue = useRef([]);\n var _useState = useState(initialTransform),\n _useState2 = _slicedToArray(_useState, 2),\n transform = _useState2[0],\n setTransform = _useState2[1];\n var resetTransform = function resetTransform(action) {\n setTransform(initialTransform);\n if (onTransform && !isEqual(initialTransform, transform)) {\n onTransform({\n transform: initialTransform,\n action: action\n });\n }\n };\n\n /** Direct update transform */\n var updateTransform = function updateTransform(newTransform, action) {\n if (frame.current === null) {\n queue.current = [];\n frame.current = raf(function () {\n setTransform(function (preState) {\n var memoState = preState;\n queue.current.forEach(function (queueState) {\n memoState = _objectSpread(_objectSpread({}, memoState), queueState);\n });\n frame.current = null;\n onTransform === null || onTransform === void 0 ? void 0 : onTransform({\n transform: memoState,\n action: action\n });\n return memoState;\n });\n });\n }\n queue.current.push(_objectSpread(_objectSpread({}, transform), newTransform));\n };\n\n /** Scale according to the position of clientX and clientY */\n var dispatchZoomChange = function dispatchZoomChange(ratio, action, clientX, clientY) {\n var _imgRef$current = imgRef.current,\n width = _imgRef$current.width,\n height = _imgRef$current.height,\n offsetWidth = _imgRef$current.offsetWidth,\n offsetHeight = _imgRef$current.offsetHeight,\n offsetLeft = _imgRef$current.offsetLeft,\n offsetTop = _imgRef$current.offsetTop;\n var newRatio = ratio;\n var newScale = transform.scale * ratio;\n if (newScale > maxScale) {\n newRatio = maxScale / transform.scale;\n newScale = maxScale;\n } else if (newScale < minScale) {\n newRatio = minScale / transform.scale;\n newScale = minScale;\n }\n\n /** Default center point scaling */\n var mergedClientX = clientX !== null && clientX !== void 0 ? clientX : innerWidth / 2;\n var mergedClientY = clientY !== null && clientY !== void 0 ? clientY : innerHeight / 2;\n var diffRatio = newRatio - 1;\n /** Deviation calculated from image size */\n var diffImgX = diffRatio * width * 0.5;\n var diffImgY = diffRatio * height * 0.5;\n /** The difference between the click position and the edge of the document */\n var diffOffsetLeft = diffRatio * (mergedClientX - transform.x - offsetLeft);\n var diffOffsetTop = diffRatio * (mergedClientY - transform.y - offsetTop);\n /** Final positioning */\n var newX = transform.x - (diffOffsetLeft - diffImgX);\n var newY = transform.y - (diffOffsetTop - diffImgY);\n\n /**\n * When zooming the image\n * When the image size is smaller than the width and height of the window, the position is initialized\n */\n if (ratio < 1 && newScale === 1) {\n var mergedWidth = offsetWidth * newScale;\n var mergedHeight = offsetHeight * newScale;\n var _getClientSize = getClientSize(),\n clientWidth = _getClientSize.width,\n clientHeight = _getClientSize.height;\n if (mergedWidth <= clientWidth && mergedHeight <= clientHeight) {\n newX = 0;\n newY = 0;\n }\n }\n updateTransform({\n x: newX,\n y: newY,\n scale: newScale\n }, action);\n };\n return {\n transform: transform,\n resetTransform: resetTransform,\n updateTransform: updateTransform,\n dispatchZoomChange: dispatchZoomChange\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport Portal from '@rc-component/portal';\nimport classnames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { PreviewGroupContext } from \"./context\";\nvar Operations = function Operations(props) {\n var visible = props.visible,\n maskTransitionName = props.maskTransitionName,\n getContainer = props.getContainer,\n prefixCls = props.prefixCls,\n rootClassName = props.rootClassName,\n icons = props.icons,\n countRender = props.countRender,\n showSwitch = props.showSwitch,\n showProgress = props.showProgress,\n current = props.current,\n transform = props.transform,\n count = props.count,\n scale = props.scale,\n minScale = props.minScale,\n maxScale = props.maxScale,\n closeIcon = props.closeIcon,\n onSwitchLeft = props.onSwitchLeft,\n onSwitchRight = props.onSwitchRight,\n onClose = props.onClose,\n onZoomIn = props.onZoomIn,\n onZoomOut = props.onZoomOut,\n onRotateRight = props.onRotateRight,\n onRotateLeft = props.onRotateLeft,\n onFlipX = props.onFlipX,\n onFlipY = props.onFlipY,\n toolbarRender = props.toolbarRender;\n var groupContext = useContext(PreviewGroupContext);\n var rotateLeft = icons.rotateLeft,\n rotateRight = icons.rotateRight,\n zoomIn = icons.zoomIn,\n zoomOut = icons.zoomOut,\n close = icons.close,\n left = icons.left,\n right = icons.right,\n flipX = icons.flipX,\n flipY = icons.flipY;\n var toolClassName = \"\".concat(prefixCls, \"-operations-operation\");\n React.useEffect(function () {\n var onKeyDown = function onKeyDown(e) {\n if (e.keyCode === KeyCode.ESC) {\n onClose();\n }\n };\n if (visible) {\n window.addEventListener('keydown', onKeyDown);\n }\n return function () {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [visible]);\n var tools = [{\n icon: flipY,\n onClick: onFlipY,\n type: 'flipY'\n }, {\n icon: flipX,\n onClick: onFlipX,\n type: 'flipX'\n }, {\n icon: rotateLeft,\n onClick: onRotateLeft,\n type: 'rotateLeft'\n }, {\n icon: rotateRight,\n onClick: onRotateRight,\n type: 'rotateRight'\n }, {\n icon: zoomOut,\n onClick: onZoomOut,\n type: 'zoomOut',\n disabled: scale === minScale\n }, {\n icon: zoomIn,\n onClick: onZoomIn,\n type: 'zoomIn',\n disabled: scale === maxScale\n }];\n var toolsNode = tools.map(function (_ref) {\n var _classnames;\n var icon = _ref.icon,\n onClick = _ref.onClick,\n type = _ref.type,\n disabled = _ref.disabled;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(toolClassName, (_classnames = {}, _defineProperty(_classnames, \"\".concat(prefixCls, \"-operations-operation-\").concat(type), true), _defineProperty(_classnames, \"\".concat(prefixCls, \"-operations-operation-disabled\"), !!disabled), _classnames)),\n onClick: onClick,\n key: type\n }, icon);\n });\n var toolbarNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-operations\")\n }, toolsNode);\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n motionName: maskTransitionName\n }, function (_ref2) {\n var className = _ref2.className,\n style = _ref2.style;\n return /*#__PURE__*/React.createElement(Portal, {\n open: true,\n getContainer: getContainer !== null && getContainer !== void 0 ? getContainer : document.body\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-operations-wrapper\"), className, rootClassName),\n style: style\n }, closeIcon === null ? null : /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-close\"),\n onClick: onClose\n }, closeIcon || close), showSwitch && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-switch-left\"), _defineProperty({}, \"\".concat(prefixCls, \"-switch-left-disabled\"), current === 0)),\n onClick: onSwitchLeft\n }, left), /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-switch-right\"), _defineProperty({}, \"\".concat(prefixCls, \"-switch-right-disabled\"), current === count - 1)),\n onClick: onSwitchRight\n }, right)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, showProgress && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-progress\")\n }, countRender ? countRender(current + 1, count) : \"\".concat(current + 1, \" / \").concat(count)), toolbarRender ? toolbarRender(toolbarNode, _objectSpread({\n icons: {\n flipYIcon: toolsNode[0],\n flipXIcon: toolsNode[1],\n rotateLeftIcon: toolsNode[2],\n rotateRightIcon: toolsNode[3],\n zoomOutIcon: toolsNode[4],\n zoomInIcon: toolsNode[5]\n },\n actions: {\n onFlipY: onFlipY,\n onFlipX: onFlipX,\n onRotateLeft: onRotateLeft,\n onRotateRight: onRotateRight,\n onZoomOut: onZoomOut,\n onZoomIn: onZoomIn\n },\n transform: transform\n }, groupContext ? {\n current: current,\n total: count\n } : {})) : toolbarNode)));\n });\n};\nexport default Operations;","/** Scale the ratio base */\nexport var BASE_SCALE_RATIO = 1;\n/** The maximum zoom ratio when the mouse zooms in, adjustable */\nexport var WHEEL_MAX_SCALE_RATIO = 1;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"fallback\", \"src\", \"imgRef\"],\n _excluded2 = [\"prefixCls\", \"src\", \"alt\", \"fallback\", \"movable\", \"onClose\", \"visible\", \"icons\", \"rootClassName\", \"closeIcon\", \"getContainer\", \"current\", \"count\", \"countRender\", \"scaleStep\", \"minScale\", \"maxScale\", \"transitionName\", \"maskTransitionName\", \"imageRender\", \"imgCommonProps\", \"toolbarRender\", \"onTransform\", \"onChange\"];\nimport classnames from 'classnames';\nimport Dialog from 'rc-dialog';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport { warning } from \"rc-util/es/warning\";\nimport React, { useContext, useEffect, useRef, useState } from 'react';\nimport { PreviewGroupContext } from \"./context\";\nimport getFixScaleEleTransPosition from \"./getFixScaleEleTransPosition\";\nimport useImageTransform from \"./hooks/useImageTransform\";\nimport useStatus from \"./hooks/useStatus\";\nimport Operations from \"./Operations\";\nimport { BASE_SCALE_RATIO, WHEEL_MAX_SCALE_RATIO } from \"./previewConfig\";\nvar PreviewImage = function PreviewImage(_ref) {\n var fallback = _ref.fallback,\n src = _ref.src,\n imgRef = _ref.imgRef,\n props = _objectWithoutProperties(_ref, _excluded);\n var _useStatus = useStatus({\n src: src,\n fallback: fallback\n }),\n _useStatus2 = _slicedToArray(_useStatus, 2),\n getImgRef = _useStatus2[0],\n srcAndOnload = _useStatus2[1];\n return /*#__PURE__*/React.createElement(\"img\", _extends({\n ref: function ref(_ref2) {\n imgRef.current = _ref2;\n getImgRef(_ref2);\n }\n }, props, srcAndOnload));\n};\nvar Preview = function Preview(props) {\n var prefixCls = props.prefixCls,\n src = props.src,\n alt = props.alt,\n fallback = props.fallback,\n _props$movable = props.movable,\n movable = _props$movable === void 0 ? true : _props$movable,\n onClose = props.onClose,\n visible = props.visible,\n _props$icons = props.icons,\n icons = _props$icons === void 0 ? {} : _props$icons,\n rootClassName = props.rootClassName,\n closeIcon = props.closeIcon,\n getContainer = props.getContainer,\n _props$current = props.current,\n current = _props$current === void 0 ? 0 : _props$current,\n _props$count = props.count,\n count = _props$count === void 0 ? 1 : _props$count,\n countRender = props.countRender,\n _props$scaleStep = props.scaleStep,\n scaleStep = _props$scaleStep === void 0 ? 0.5 : _props$scaleStep,\n _props$minScale = props.minScale,\n minScale = _props$minScale === void 0 ? 1 : _props$minScale,\n _props$maxScale = props.maxScale,\n maxScale = _props$maxScale === void 0 ? 50 : _props$maxScale,\n _props$transitionName = props.transitionName,\n transitionName = _props$transitionName === void 0 ? 'zoom' : _props$transitionName,\n _props$maskTransition = props.maskTransitionName,\n maskTransitionName = _props$maskTransition === void 0 ? 'fade' : _props$maskTransition,\n imageRender = props.imageRender,\n imgCommonProps = props.imgCommonProps,\n toolbarRender = props.toolbarRender,\n onTransform = props.onTransform,\n onChange = props.onChange,\n restProps = _objectWithoutProperties(props, _excluded2);\n var imgRef = useRef();\n var downPositionRef = useRef({\n deltaX: 0,\n deltaY: 0,\n transformX: 0,\n transformY: 0\n });\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isMoving = _useState2[0],\n setMoving = _useState2[1];\n var groupContext = useContext(PreviewGroupContext);\n var showLeftOrRightSwitches = groupContext && count > 1;\n var showOperationsProgress = groupContext && count >= 1;\n var _useImageTransform = useImageTransform(imgRef, minScale, maxScale, onTransform),\n transform = _useImageTransform.transform,\n resetTransform = _useImageTransform.resetTransform,\n updateTransform = _useImageTransform.updateTransform,\n dispatchZoomChange = _useImageTransform.dispatchZoomChange;\n var _useState3 = useState(true),\n _useState4 = _slicedToArray(_useState3, 2),\n enableTransition = _useState4[0],\n setEnableTransition = _useState4[1];\n var rotate = transform.rotate,\n scale = transform.scale,\n x = transform.x,\n y = transform.y;\n var wrapClassName = classnames(_defineProperty({}, \"\".concat(prefixCls, \"-moving\"), isMoving));\n useEffect(function () {\n if (!enableTransition) {\n setEnableTransition(true);\n }\n }, [enableTransition]);\n var onAfterClose = function onAfterClose() {\n resetTransform('close');\n };\n var onZoomIn = function onZoomIn() {\n dispatchZoomChange(BASE_SCALE_RATIO + scaleStep, 'zoomIn');\n };\n var onZoomOut = function onZoomOut() {\n dispatchZoomChange(BASE_SCALE_RATIO / (BASE_SCALE_RATIO + scaleStep), 'zoomOut');\n };\n var onRotateRight = function onRotateRight() {\n updateTransform({\n rotate: rotate + 90\n }, 'rotateRight');\n };\n var onRotateLeft = function onRotateLeft() {\n updateTransform({\n rotate: rotate - 90\n }, 'rotateLeft');\n };\n var onFlipX = function onFlipX() {\n updateTransform({\n flipX: !transform.flipX\n }, 'flipX');\n };\n var onFlipY = function onFlipY() {\n updateTransform({\n flipY: !transform.flipY\n }, 'flipY');\n };\n var onSwitchLeft = function onSwitchLeft(event) {\n event === null || event === void 0 ? void 0 : event.preventDefault();\n event === null || event === void 0 ? void 0 : event.stopPropagation();\n if (current > 0) {\n setEnableTransition(false);\n resetTransform('prev');\n onChange === null || onChange === void 0 ? void 0 : onChange(current - 1, current);\n }\n };\n var onSwitchRight = function onSwitchRight(event) {\n event === null || event === void 0 ? void 0 : event.preventDefault();\n event === null || event === void 0 ? void 0 : event.stopPropagation();\n if (current < count - 1) {\n setEnableTransition(false);\n resetTransform('next');\n onChange === null || onChange === void 0 ? void 0 : onChange(current + 1, current);\n }\n };\n var onMouseUp = function onMouseUp() {\n if (visible && isMoving) {\n setMoving(false);\n /** No need to restore the position when the picture is not moved, So as not to interfere with the click */\n var _downPositionRef$curr = downPositionRef.current,\n transformX = _downPositionRef$curr.transformX,\n transformY = _downPositionRef$curr.transformY;\n var hasChangedPosition = x !== transformX && y !== transformY;\n if (!hasChangedPosition) {\n return;\n }\n var width = imgRef.current.offsetWidth * scale;\n var height = imgRef.current.offsetHeight * scale;\n // eslint-disable-next-line @typescript-eslint/no-shadow\n var _imgRef$current$getBo = imgRef.current.getBoundingClientRect(),\n left = _imgRef$current$getBo.left,\n top = _imgRef$current$getBo.top;\n var isRotate = rotate % 180 !== 0;\n var fixState = getFixScaleEleTransPosition(isRotate ? height : width, isRotate ? width : height, left, top);\n if (fixState) {\n updateTransform(_objectSpread({}, fixState), 'dragRebound');\n }\n }\n };\n var onMouseDown = function onMouseDown(event) {\n // Only allow main button\n if (!movable || event.button !== 0) return;\n event.preventDefault();\n event.stopPropagation();\n downPositionRef.current = {\n deltaX: event.pageX - transform.x,\n deltaY: event.pageY - transform.y,\n transformX: transform.x,\n transformY: transform.y\n };\n setMoving(true);\n };\n var onMouseMove = function onMouseMove(event) {\n if (visible && isMoving) {\n updateTransform({\n x: event.pageX - downPositionRef.current.deltaX,\n y: event.pageY - downPositionRef.current.deltaY\n }, 'move');\n }\n };\n var onWheel = function onWheel(event) {\n if (!visible || event.deltaY == 0) return;\n // Scale ratio depends on the deltaY size\n var scaleRatio = Math.abs(event.deltaY / 100);\n // Limit the maximum scale ratio\n var mergedScaleRatio = Math.min(scaleRatio, WHEEL_MAX_SCALE_RATIO);\n // Scale the ratio each time\n var ratio = BASE_SCALE_RATIO + mergedScaleRatio * scaleStep;\n if (event.deltaY > 0) {\n ratio = BASE_SCALE_RATIO / ratio;\n }\n dispatchZoomChange(ratio, 'wheel', event.clientX, event.clientY);\n };\n var onKeyDown = function onKeyDown(event) {\n if (!visible || !showLeftOrRightSwitches) return;\n if (event.keyCode === KeyCode.LEFT) {\n onSwitchLeft();\n } else if (event.keyCode === KeyCode.RIGHT) {\n onSwitchRight();\n }\n };\n var onDoubleClick = function onDoubleClick(event) {\n if (visible) {\n if (scale !== 1) {\n updateTransform({\n x: 0,\n y: 0,\n scale: 1\n }, 'doubleClick');\n } else {\n dispatchZoomChange(BASE_SCALE_RATIO + scaleStep, 'doubleClick', event.clientX, event.clientY);\n }\n }\n };\n useEffect(function () {\n var onTopMouseUpListener;\n var onTopMouseMoveListener;\n var onMouseUpListener;\n var onMouseMoveListener;\n if (movable) {\n onMouseUpListener = addEventListener(window, 'mouseup', onMouseUp, false);\n onMouseMoveListener = addEventListener(window, 'mousemove', onMouseMove, false);\n try {\n // Resolve if in iframe lost event\n /* istanbul ignore next */\n if (window.top !== window.self) {\n onTopMouseUpListener = addEventListener(window.top, 'mouseup', onMouseUp, false);\n onTopMouseMoveListener = addEventListener(window.top, 'mousemove', onMouseMove, false);\n }\n } catch (error) {\n /* istanbul ignore next */\n warning(false, \"[rc-image] \".concat(error));\n }\n }\n return function () {\n var _onMouseUpListener, _onMouseMoveListener, _onTopMouseUpListener, _onTopMouseMoveListen;\n (_onMouseUpListener = onMouseUpListener) === null || _onMouseUpListener === void 0 ? void 0 : _onMouseUpListener.remove();\n (_onMouseMoveListener = onMouseMoveListener) === null || _onMouseMoveListener === void 0 ? void 0 : _onMouseMoveListener.remove();\n /* istanbul ignore next */\n (_onTopMouseUpListener = onTopMouseUpListener) === null || _onTopMouseUpListener === void 0 ? void 0 : _onTopMouseUpListener.remove();\n /* istanbul ignore next */\n (_onTopMouseMoveListen = onTopMouseMoveListener) === null || _onTopMouseMoveListen === void 0 ? void 0 : _onTopMouseMoveListen.remove();\n };\n }, [visible, isMoving, x, y, rotate, movable]);\n useEffect(function () {\n var onKeyDownListener = addEventListener(window, 'keydown', onKeyDown, false);\n return function () {\n onKeyDownListener.remove();\n };\n }, [visible, showLeftOrRightSwitches, current]);\n var imgNode = /*#__PURE__*/React.createElement(PreviewImage, _extends({}, imgCommonProps, {\n width: props.width,\n height: props.height,\n imgRef: imgRef,\n className: \"\".concat(prefixCls, \"-img\"),\n alt: alt,\n style: {\n transform: \"translate3d(\".concat(transform.x, \"px, \").concat(transform.y, \"px, 0) scale3d(\").concat(transform.flipX ? '-' : '').concat(scale, \", \").concat(transform.flipY ? '-' : '').concat(scale, \", 1) rotate(\").concat(rotate, \"deg)\"),\n transitionDuration: !enableTransition && '0s'\n },\n fallback: fallback,\n src: src,\n onWheel: onWheel,\n onMouseDown: onMouseDown,\n onDoubleClick: onDoubleClick\n }));\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Dialog, _extends({\n transitionName: transitionName,\n maskTransitionName: maskTransitionName,\n closable: false,\n keyboard: true,\n prefixCls: prefixCls,\n onClose: onClose,\n visible: visible,\n wrapClassName: wrapClassName,\n rootClassName: rootClassName,\n getContainer: getContainer\n }, restProps, {\n afterClose: onAfterClose\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-img-wrapper\")\n }, imageRender ? imageRender(imgNode, _objectSpread({\n transform: transform\n }, groupContext ? {\n current: current\n } : {})) : imgNode)), /*#__PURE__*/React.createElement(Operations, {\n visible: visible,\n transform: transform,\n maskTransitionName: maskTransitionName,\n closeIcon: closeIcon,\n getContainer: getContainer,\n prefixCls: prefixCls,\n rootClassName: rootClassName,\n icons: icons,\n countRender: countRender,\n showSwitch: showLeftOrRightSwitches,\n showProgress: showOperationsProgress,\n current: current,\n count: count,\n scale: scale,\n minScale: minScale,\n maxScale: maxScale,\n toolbarRender: toolbarRender,\n onSwitchLeft: onSwitchLeft,\n onSwitchRight: onSwitchRight,\n onZoomIn: onZoomIn,\n onZoomOut: onZoomOut,\n onRotateRight: onRotateRight,\n onRotateLeft: onRotateLeft,\n onFlipX: onFlipX,\n onFlipY: onFlipY,\n onClose: onClose\n }));\n};\nexport default Preview;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { COMMON_PROPS } from \"../common\";\n/**\n * Merge props provided `items` or context collected images\n */\nexport default function usePreviewItems(items) {\n // Context collection image data\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n images = _React$useState2[0],\n setImages = _React$useState2[1];\n var registerImage = React.useCallback(function (id, data) {\n setImages(function (imgs) {\n return _objectSpread(_objectSpread({}, imgs), {}, _defineProperty({}, id, data));\n });\n return function () {\n setImages(function (imgs) {\n var cloneImgs = _objectSpread({}, imgs);\n delete cloneImgs[id];\n return cloneImgs;\n });\n };\n }, []);\n\n // items\n var mergedItems = React.useMemo(function () {\n if (items) {\n return items.map(function (item) {\n if (typeof item === 'string') {\n return {\n data: {\n src: item\n }\n };\n }\n var data = {};\n Object.keys(item).forEach(function (key) {\n if (['src'].concat(_toConsumableArray(COMMON_PROPS)).includes(key)) {\n data[key] = item[key];\n }\n });\n return {\n data: data\n };\n });\n }\n return Object.keys(images).reduce(function (total, id) {\n var _images$id = images[id],\n canPreview = _images$id.canPreview,\n data = _images$id.data;\n if (canPreview) {\n total.push({\n data: data,\n id: id\n });\n }\n return total;\n }, []);\n }, [items, images]);\n return [mergedItems, registerImage];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\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 = [\"visible\", \"onVisibleChange\", \"getContainer\", \"current\", \"movable\", \"minScale\", \"maxScale\", \"countRender\", \"closeIcon\", \"onChange\", \"onTransform\", \"toolbarRender\", \"imageRender\"],\n _excluded2 = [\"src\"];\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport { PreviewGroupContext } from \"./context\";\nimport usePreviewItems from \"./hooks/usePreviewItems\";\nimport Preview from \"./Preview\";\nvar Group = function Group(_ref) {\n var _mergedItems$current;\n var _ref$previewPrefixCls = _ref.previewPrefixCls,\n previewPrefixCls = _ref$previewPrefixCls === void 0 ? 'rc-image-preview' : _ref$previewPrefixCls,\n children = _ref.children,\n _ref$icons = _ref.icons,\n icons = _ref$icons === void 0 ? {} : _ref$icons,\n items = _ref.items,\n preview = _ref.preview,\n fallback = _ref.fallback;\n var _ref2 = _typeof(preview) === 'object' ? preview : {},\n previewVisible = _ref2.visible,\n onVisibleChange = _ref2.onVisibleChange,\n getContainer = _ref2.getContainer,\n currentIndex = _ref2.current,\n movable = _ref2.movable,\n minScale = _ref2.minScale,\n maxScale = _ref2.maxScale,\n countRender = _ref2.countRender,\n closeIcon = _ref2.closeIcon,\n onChange = _ref2.onChange,\n onTransform = _ref2.onTransform,\n toolbarRender = _ref2.toolbarRender,\n imageRender = _ref2.imageRender,\n dialogProps = _objectWithoutProperties(_ref2, _excluded);\n\n // ========================== Items ===========================\n var _usePreviewItems = usePreviewItems(items),\n _usePreviewItems2 = _slicedToArray(_usePreviewItems, 2),\n mergedItems = _usePreviewItems2[0],\n register = _usePreviewItems2[1];\n\n // ========================= Preview ==========================\n // >>> Index\n var _useMergedState = useMergedState(0, {\n value: currentIndex\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n current = _useMergedState2[0],\n setCurrent = _useMergedState2[1];\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n keepOpenIndex = _useState2[0],\n setKeepOpenIndex = _useState2[1];\n\n // >>> Image\n var _ref3 = ((_mergedItems$current = mergedItems[current]) === null || _mergedItems$current === void 0 ? void 0 : _mergedItems$current.data) || {},\n src = _ref3.src,\n imgCommonProps = _objectWithoutProperties(_ref3, _excluded2);\n // >>> Visible\n var _useMergedState3 = useMergedState(!!previewVisible, {\n value: previewVisible,\n onChange: function onChange(val, prevVal) {\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(val, prevVal, current);\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n isShowPreview = _useMergedState4[0],\n setShowPreview = _useMergedState4[1];\n\n // >>> Position\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n mousePosition = _useState4[0],\n setMousePosition = _useState4[1];\n var onPreviewFromImage = React.useCallback(function (id, mouseX, mouseY) {\n var index = mergedItems.findIndex(function (item) {\n return item.id === id;\n });\n setShowPreview(true);\n setMousePosition({\n x: mouseX,\n y: mouseY\n });\n setCurrent(index < 0 ? 0 : index);\n setKeepOpenIndex(true);\n }, [mergedItems]);\n\n // Reset current when reopen\n React.useEffect(function () {\n if (isShowPreview) {\n if (!keepOpenIndex) {\n setCurrent(0);\n }\n } else {\n setKeepOpenIndex(false);\n }\n }, [isShowPreview]);\n\n // ========================== Events ==========================\n var onInternalChange = function onInternalChange(next, prev) {\n setCurrent(next);\n onChange === null || onChange === void 0 ? void 0 : onChange(next, prev);\n };\n var onPreviewClose = function onPreviewClose() {\n setShowPreview(false);\n setMousePosition(null);\n };\n\n // ========================= Context ==========================\n var previewGroupContext = React.useMemo(function () {\n return {\n register: register,\n onPreview: onPreviewFromImage\n };\n }, [register, onPreviewFromImage]);\n\n // ========================== Render ==========================\n return /*#__PURE__*/React.createElement(PreviewGroupContext.Provider, {\n value: previewGroupContext\n }, children, /*#__PURE__*/React.createElement(Preview, _extends({\n \"aria-hidden\": !isShowPreview,\n movable: movable,\n visible: isShowPreview,\n prefixCls: previewPrefixCls,\n closeIcon: closeIcon,\n onClose: onPreviewClose,\n mousePosition: mousePosition,\n imgCommonProps: imgCommonProps,\n src: src,\n fallback: fallback,\n icons: icons,\n minScale: minScale,\n maxScale: maxScale,\n getContainer: getContainer,\n current: current,\n count: mergedItems.length,\n countRender: countRender,\n onTransform: onTransform,\n toolbarRender: toolbarRender,\n imageRender: imageRender,\n onChange: onInternalChange\n }, dialogProps)));\n};\nexport default Group;","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 _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 = [\"src\", \"alt\", \"onPreviewClose\", \"prefixCls\", \"previewPrefixCls\", \"placeholder\", \"fallback\", \"width\", \"height\", \"style\", \"preview\", \"className\", \"onClick\", \"onError\", \"wrapperClassName\", \"wrapperStyle\", \"rootClassName\"],\n _excluded2 = [\"src\", \"visible\", \"onVisibleChange\", \"getContainer\", \"mask\", \"maskClassName\", \"movable\", \"icons\", \"scaleStep\", \"minScale\", \"maxScale\", \"imageRender\", \"toolbarRender\"];\nimport cn from 'classnames';\nimport { getOffset } from \"rc-util/es/Dom/css\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { useContext, useMemo, useState } from 'react';\nimport { COMMON_PROPS } from \"./common\";\nimport { PreviewGroupContext } from \"./context\";\nimport useRegisterImage from \"./hooks/useRegisterImage\";\nimport useStatus from \"./hooks/useStatus\";\nimport Preview from \"./Preview\";\nimport PreviewGroup from \"./PreviewGroup\";\nvar ImageInternal = function ImageInternal(props) {\n var imgSrc = props.src,\n alt = props.alt,\n onInitialPreviewClose = props.onPreviewClose,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-image' : _props$prefixCls,\n _props$previewPrefixC = props.previewPrefixCls,\n previewPrefixCls = _props$previewPrefixC === void 0 ? \"\".concat(prefixCls, \"-preview\") : _props$previewPrefixC,\n placeholder = props.placeholder,\n fallback = props.fallback,\n width = props.width,\n height = props.height,\n style = props.style,\n _props$preview = props.preview,\n preview = _props$preview === void 0 ? true : _props$preview,\n className = props.className,\n onClick = props.onClick,\n onError = props.onError,\n wrapperClassName = props.wrapperClassName,\n wrapperStyle = props.wrapperStyle,\n rootClassName = props.rootClassName,\n otherProps = _objectWithoutProperties(props, _excluded);\n var isCustomPlaceholder = placeholder && placeholder !== true;\n var _ref = _typeof(preview) === 'object' ? preview : {},\n previewSrc = _ref.src,\n _ref$visible = _ref.visible,\n previewVisible = _ref$visible === void 0 ? undefined : _ref$visible,\n _ref$onVisibleChange = _ref.onVisibleChange,\n onPreviewVisibleChange = _ref$onVisibleChange === void 0 ? onInitialPreviewClose : _ref$onVisibleChange,\n _ref$getContainer = _ref.getContainer,\n getPreviewContainer = _ref$getContainer === void 0 ? undefined : _ref$getContainer,\n previewMask = _ref.mask,\n maskClassName = _ref.maskClassName,\n movable = _ref.movable,\n icons = _ref.icons,\n scaleStep = _ref.scaleStep,\n minScale = _ref.minScale,\n maxScale = _ref.maxScale,\n imageRender = _ref.imageRender,\n toolbarRender = _ref.toolbarRender,\n dialogProps = _objectWithoutProperties(_ref, _excluded2);\n var src = previewSrc !== null && previewSrc !== void 0 ? previewSrc : imgSrc;\n var _useMergedState = useMergedState(!!previewVisible, {\n value: previewVisible,\n onChange: onPreviewVisibleChange\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n isShowPreview = _useMergedState2[0],\n setShowPreview = _useMergedState2[1];\n var _useStatus = useStatus({\n src: imgSrc,\n isCustomPlaceholder: isCustomPlaceholder,\n fallback: fallback\n }),\n _useStatus2 = _slicedToArray(_useStatus, 3),\n getImgRef = _useStatus2[0],\n srcAndOnload = _useStatus2[1],\n status = _useStatus2[2];\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n mousePosition = _useState2[0],\n setMousePosition = _useState2[1];\n var groupContext = useContext(PreviewGroupContext);\n var canPreview = !!preview;\n var onPreviewClose = function onPreviewClose() {\n setShowPreview(false);\n setMousePosition(null);\n };\n var wrapperClass = cn(prefixCls, wrapperClassName, rootClassName, _defineProperty({}, \"\".concat(prefixCls, \"-error\"), status === 'error'));\n\n // ========================= ImageProps =========================\n var imgCommonProps = useMemo(function () {\n var obj = {};\n COMMON_PROPS.forEach(function (prop) {\n if (props[prop] !== undefined) {\n obj[prop] = props[prop];\n }\n });\n return obj;\n }, COMMON_PROPS.map(function (prop) {\n return props[prop];\n }));\n\n // ========================== Register ==========================\n var registerData = useMemo(function () {\n return _objectSpread(_objectSpread({}, imgCommonProps), {}, {\n src: src\n });\n }, [src, imgCommonProps]);\n var imageId = useRegisterImage(canPreview, registerData);\n\n // ========================== Preview ===========================\n var onPreview = function onPreview(e) {\n var _getOffset = getOffset(e.target),\n left = _getOffset.left,\n top = _getOffset.top;\n if (groupContext) {\n groupContext.onPreview(imageId, left, top);\n } else {\n setMousePosition({\n x: left,\n y: top\n });\n setShowPreview(true);\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n\n // =========================== Render ===========================\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", _extends({}, otherProps, {\n className: wrapperClass,\n onClick: canPreview ? onPreview : onClick,\n style: _objectSpread({\n width: width,\n height: height\n }, wrapperStyle)\n }), /*#__PURE__*/React.createElement(\"img\", _extends({}, imgCommonProps, {\n className: cn(\"\".concat(prefixCls, \"-img\"), _defineProperty({}, \"\".concat(prefixCls, \"-img-placeholder\"), placeholder === true), className),\n style: _objectSpread({\n height: height\n }, style),\n ref: getImgRef\n }, srcAndOnload, {\n width: width,\n height: height,\n onError: onError\n })), status === 'loading' && /*#__PURE__*/React.createElement(\"div\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-placeholder\")\n }, placeholder), previewMask && canPreview && /*#__PURE__*/React.createElement(\"div\", {\n className: cn(\"\".concat(prefixCls, \"-mask\"), maskClassName),\n style: {\n display: (style === null || style === void 0 ? void 0 : style.display) === 'none' ? 'none' : undefined\n }\n }, previewMask)), !groupContext && canPreview && /*#__PURE__*/React.createElement(Preview, _extends({\n \"aria-hidden\": !isShowPreview,\n visible: isShowPreview,\n prefixCls: previewPrefixCls,\n onClose: onPreviewClose,\n mousePosition: mousePosition,\n src: src,\n alt: alt,\n fallback: fallback,\n getContainer: getPreviewContainer,\n icons: icons,\n movable: movable,\n scaleStep: scaleStep,\n minScale: minScale,\n maxScale: maxScale,\n rootClassName: rootClassName,\n imageRender: imageRender,\n imgCommonProps: imgCommonProps,\n toolbarRender: toolbarRender\n }, dialogProps)));\n};\nImageInternal.PreviewGroup = PreviewGroup;\nImageInternal.displayName = 'Image';\nexport default ImageInternal;","import Image from \"./Image\";\nexport * from \"./Image\";\nexport default Image;","// This icon file is generated automatically.\nvar RotateLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z\" } }] }, \"name\": \"rotate-left\", \"theme\": \"outlined\" };\nexport default RotateLeftOutlined;\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 RotateLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/RotateLeftOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar RotateLeftOutlined = function RotateLeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: RotateLeftOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n RotateLeftOutlined.displayName = 'RotateLeftOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(RotateLeftOutlined);","// This icon file is generated automatically.\nvar RotateRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-.4-12.6 6.1l-.2 64c-118.6.5-235.8 53.4-314.6 154.2A399.75 399.75 0 00123.5 631h74.9c-.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H396V494h440v326z\" } }] }, \"name\": \"rotate-right\", \"theme\": \"outlined\" };\nexport default RotateRightOutlined;\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 RotateRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RotateRightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar RotateRightOutlined = function RotateRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: RotateRightOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n RotateRightOutlined.displayName = 'RotateRightOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(RotateRightOutlined);","// This icon file is generated automatically.\nvar SwapOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"swap\", \"theme\": \"outlined\" };\nexport default SwapOutlined;\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 SwapOutlinedSvg from \"@ant-design/icons-svg/es/asn/SwapOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar SwapOutlined = function SwapOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: SwapOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n SwapOutlined.displayName = 'SwapOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(SwapOutlined);","import { TinyColor } from '@ctrl/tinycolor';\nimport { genModalMaskStyle } from '../../modal/style';\nimport { textEllipsis } from '../../style';\nimport { initFadeMotion, initZoomMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nexport const genBoxStyle = position => ({\n position: position || 'absolute',\n inset: 0\n});\nexport const genImageMaskStyle = token => {\n const {\n iconCls,\n motionDurationSlow,\n paddingXXS,\n marginXXS,\n prefixCls,\n colorTextLightSolid\n } = token;\n return {\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: colorTextLightSolid,\n background: new TinyColor('#000').setAlpha(0.5).toRgbString(),\n cursor: 'pointer',\n opacity: 0,\n transition: `opacity ${motionDurationSlow}`,\n [`.${prefixCls}-mask-info`]: Object.assign(Object.assign({}, textEllipsis), {\n padding: `0 ${paddingXXS}px`,\n [iconCls]: {\n marginInlineEnd: marginXXS,\n svg: {\n verticalAlign: 'baseline'\n }\n }\n })\n };\n};\nexport const genPreviewOperationsStyle = token => {\n const {\n previewCls,\n modalMaskBg,\n paddingSM,\n marginXL,\n margin,\n paddingLG,\n previewOperationColorDisabled,\n previewOperationHoverColor,\n motionDurationSlow,\n iconCls,\n colorTextLightSolid\n } = token;\n const operationBg = new TinyColor(modalMaskBg).setAlpha(0.1);\n const operationBgHover = operationBg.clone().setAlpha(0.2);\n return {\n [`${previewCls}-footer`]: {\n position: 'fixed',\n bottom: marginXL,\n left: {\n _skip_check_: true,\n value: 0\n },\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n color: token.previewOperationColor\n },\n [`${previewCls}-progress`]: {\n marginBottom: margin\n },\n [`${previewCls}-close`]: {\n position: 'fixed',\n top: marginXL,\n right: {\n _skip_check_: true,\n value: marginXL\n },\n display: 'flex',\n color: colorTextLightSolid,\n backgroundColor: operationBg.toRgbString(),\n borderRadius: '50%',\n padding: paddingSM,\n outline: 0,\n border: 0,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n backgroundColor: operationBgHover.toRgbString()\n },\n [`& > ${iconCls}`]: {\n fontSize: token.previewOperationSize\n }\n },\n [`${previewCls}-operations`]: {\n display: 'flex',\n alignItems: 'center',\n padding: `0 ${paddingLG}px`,\n backgroundColor: operationBg.toRgbString(),\n borderRadius: 100,\n '&-operation': {\n marginInlineStart: paddingSM,\n padding: paddingSM,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n userSelect: 'none',\n [`&:not(${previewCls}-operations-operation-disabled):hover > ${iconCls}`]: {\n color: previewOperationHoverColor\n },\n '&-disabled': {\n color: previewOperationColorDisabled,\n cursor: 'not-allowed'\n },\n '&:first-of-type': {\n marginInlineStart: 0\n },\n [`& > ${iconCls}`]: {\n fontSize: token.previewOperationSize\n }\n }\n }\n };\n};\nexport const genPreviewSwitchStyle = token => {\n const {\n modalMaskBg,\n iconCls,\n previewOperationColorDisabled,\n previewCls,\n zIndexPopup,\n motionDurationSlow\n } = token;\n const operationBg = new TinyColor(modalMaskBg).setAlpha(0.1);\n const operationBgHover = operationBg.clone().setAlpha(0.2);\n return {\n [`${previewCls}-switch-left, ${previewCls}-switch-right`]: {\n position: 'fixed',\n insetBlockStart: '50%',\n zIndex: zIndexPopup + 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: token.imagePreviewSwitchSize,\n height: token.imagePreviewSwitchSize,\n marginTop: -token.imagePreviewSwitchSize / 2,\n color: token.previewOperationColor,\n background: operationBg.toRgbString(),\n borderRadius: '50%',\n transform: `translateY(-50%)`,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n userSelect: 'none',\n '&:hover': {\n background: operationBgHover.toRgbString()\n },\n [`&-disabled`]: {\n '&, &:hover': {\n color: previewOperationColorDisabled,\n background: 'transparent',\n cursor: 'not-allowed',\n [`> ${iconCls}`]: {\n cursor: 'not-allowed'\n }\n }\n },\n [`> ${iconCls}`]: {\n fontSize: token.previewOperationSize\n }\n },\n [`${previewCls}-switch-left`]: {\n insetInlineStart: token.marginSM\n },\n [`${previewCls}-switch-right`]: {\n insetInlineEnd: token.marginSM\n }\n };\n};\nexport const genImagePreviewStyle = token => {\n const {\n motionEaseOut,\n previewCls,\n motionDurationSlow,\n componentCls\n } = token;\n return [{\n [`${componentCls}-preview-root`]: {\n [previewCls]: {\n height: '100%',\n textAlign: 'center',\n pointerEvents: 'none'\n },\n [`${previewCls}-body`]: Object.assign(Object.assign({}, genBoxStyle()), {\n overflow: 'hidden'\n }),\n [`${previewCls}-img`]: {\n maxWidth: '100%',\n maxHeight: '70%',\n verticalAlign: 'middle',\n transform: 'scale3d(1, 1, 1)',\n cursor: 'grab',\n transition: `transform ${motionDurationSlow} ${motionEaseOut} 0s`,\n userSelect: 'none',\n '&-wrapper': Object.assign(Object.assign({}, genBoxStyle()), {\n transition: `transform ${motionDurationSlow} ${motionEaseOut} 0s`,\n // https://github.com/ant-design/ant-design/issues/39913\n // TailwindCSS will reset img default style.\n // Let's set back.\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n '& > *': {\n pointerEvents: 'auto'\n },\n '&::before': {\n display: 'inline-block',\n width: 1,\n height: '50%',\n marginInlineEnd: -1,\n content: '\"\"'\n }\n })\n },\n [`${previewCls}-moving`]: {\n [`${previewCls}-preview-img`]: {\n cursor: 'grabbing',\n '&-wrapper': {\n transitionDuration: '0s'\n }\n }\n }\n }\n },\n // Override\n {\n [`${componentCls}-preview-root`]: {\n [`${previewCls}-wrap`]: {\n zIndex: token.zIndexPopup\n }\n }\n },\n // Preview operations & switch\n {\n [`${componentCls}-preview-operations-wrapper`]: {\n position: 'fixed',\n zIndex: token.zIndexPopup + 1\n },\n '&': [genPreviewOperationsStyle(token), genPreviewSwitchStyle(token)]\n }];\n};\nconst genImageStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // ============================== image ==============================\n [componentCls]: {\n position: 'relative',\n display: 'inline-block',\n [`${componentCls}-img`]: {\n width: '100%',\n height: 'auto',\n verticalAlign: 'middle'\n },\n [`${componentCls}-img-placeholder`]: {\n backgroundColor: token.colorBgContainerDisabled,\n backgroundImage: \"url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=')\",\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center center',\n backgroundSize: '30%'\n },\n [`${componentCls}-mask`]: Object.assign({}, genImageMaskStyle(token)),\n [`${componentCls}-mask:hover`]: {\n opacity: 1\n },\n [`${componentCls}-placeholder`]: Object.assign({}, genBoxStyle())\n }\n };\n};\nconst genPreviewMotion = token => {\n const {\n previewCls\n } = token;\n return {\n [`${previewCls}-root`]: initZoomMotion(token, 'zoom'),\n [`&`]: initFadeMotion(token, true)\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Image', token => {\n const previewCls = `${token.componentCls}-preview`;\n const imageToken = mergeToken(token, {\n previewCls,\n modalMaskBg: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n imagePreviewSwitchSize: token.controlHeightLG\n });\n return [genImageStyle(imageToken), genImagePreviewStyle(imageToken), genModalMaskStyle(mergeToken(imageToken, {\n componentCls: previewCls\n })), genPreviewMotion(imageToken)];\n}, token => ({\n zIndexPopup: token.zIndexPopupBase + 80,\n previewOperationColor: new TinyColor(token.colorTextLightSolid).setAlpha(0.65).toRgbString(),\n previewOperationHoverColor: new TinyColor(token.colorTextLightSolid).setAlpha(0.85).toRgbString(),\n previewOperationColorDisabled: new TinyColor(token.colorTextLightSolid).setAlpha(0.25).toRgbString(),\n previewOperationSize: token.fontSizeIcon * 1.5 // FIXME: fontSizeIconLG\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 LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport RotateLeftOutlined from \"@ant-design/icons/es/icons/RotateLeftOutlined\";\nimport RotateRightOutlined from \"@ant-design/icons/es/icons/RotateRightOutlined\";\nimport SwapOutlined from \"@ant-design/icons/es/icons/SwapOutlined\";\nimport ZoomInOutlined from \"@ant-design/icons/es/icons/ZoomInOutlined\";\nimport ZoomOutOutlined from \"@ant-design/icons/es/icons/ZoomOutOutlined\";\nimport RcImage from 'rc-image';\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport { getTransitionName } from '../_util/motion';\n// CSSINJS\nimport useStyle from './style';\nexport const icons = {\n rotateLeft: /*#__PURE__*/React.createElement(RotateLeftOutlined, null),\n rotateRight: /*#__PURE__*/React.createElement(RotateRightOutlined, null),\n zoomIn: /*#__PURE__*/React.createElement(ZoomInOutlined, null),\n zoomOut: /*#__PURE__*/React.createElement(ZoomOutOutlined, null),\n close: /*#__PURE__*/React.createElement(CloseOutlined, null),\n left: /*#__PURE__*/React.createElement(LeftOutlined, null),\n right: /*#__PURE__*/React.createElement(RightOutlined, null),\n flipX: /*#__PURE__*/React.createElement(SwapOutlined, null),\n flipY: /*#__PURE__*/React.createElement(SwapOutlined, {\n rotate: 90\n })\n};\nconst InternalPreviewGroup = _a => {\n var {\n previewPrefixCls: customizePrefixCls,\n preview\n } = _a,\n props = __rest(_a, [\"previewPrefixCls\", \"preview\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('image', customizePrefixCls);\n const previewPrefixCls = `${prefixCls}-preview`;\n const rootPrefixCls = getPrefixCls();\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergedPreview = React.useMemo(() => {\n var _a;\n if (preview === false) {\n return preview;\n }\n const _preview = typeof preview === 'object' ? preview : {};\n const mergedRootClassName = classNames(hashId, (_a = _preview.rootClassName) !== null && _a !== void 0 ? _a : '');\n return Object.assign(Object.assign({}, _preview), {\n transitionName: getTransitionName(rootPrefixCls, 'zoom', _preview.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', _preview.maskTransitionName),\n rootClassName: mergedRootClassName\n });\n }, [preview]);\n return wrapSSR( /*#__PURE__*/React.createElement(RcImage.PreviewGroup, Object.assign({\n preview: mergedPreview,\n previewPrefixCls: previewPrefixCls,\n icons: icons\n }, props)));\n};\nexport default InternalPreviewGroup;","'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 * as React from 'react';\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport RcImage from 'rc-image';\nimport { getTransitionName } from '../_util/motion';\nimport { ConfigContext } from '../config-provider';\nimport defaultLocale from '../locale/en_US';\n// CSSINJS\nimport PreviewGroup, { icons } from './PreviewGroup';\nimport useStyle from './style';\nconst Image = props => {\n const {\n prefixCls: customizePrefixCls,\n preview,\n className,\n rootClassName,\n style\n } = props,\n otherProps = __rest(props, [\"prefixCls\", \"preview\", \"className\", \"rootClassName\", \"style\"]);\n const {\n getPrefixCls,\n locale: contextLocale = defaultLocale,\n getPopupContainer: getContextPopupContainer,\n image\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('image', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const imageLocale = contextLocale.Image || defaultLocale.Image;\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergedRootClassName = classNames(rootClassName, hashId);\n const mergedClassName = classNames(className, hashId, image === null || image === void 0 ? void 0 : image.className);\n const mergedPreview = React.useMemo(() => {\n if (preview === false) {\n return preview;\n }\n const _preview = typeof preview === 'object' ? preview : {};\n const {\n getContainer\n } = _preview,\n restPreviewProps = __rest(_preview, [\"getContainer\"]);\n return Object.assign(Object.assign({\n mask: /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-mask-info`\n }, /*#__PURE__*/React.createElement(EyeOutlined, null), imageLocale === null || imageLocale === void 0 ? void 0 : imageLocale.preview),\n icons\n }, restPreviewProps), {\n getContainer: getContainer || getContextPopupContainer,\n transitionName: getTransitionName(rootPrefixCls, 'zoom', _preview.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', _preview.maskTransitionName)\n });\n }, [preview, imageLocale]);\n const mergedStyle = Object.assign(Object.assign({}, image === null || image === void 0 ? void 0 : image.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(RcImage, Object.assign({\n prefixCls: prefixCls,\n preview: mergedPreview,\n rootClassName: mergedRootClassName,\n className: mergedClassName,\n style: mergedStyle\n }, otherProps)));\n};\nImage.PreviewGroup = PreviewGroup;\nif (process.env.NODE_ENV !== 'production') {\n Image.displayName = 'Image';\n}\nexport default Image;","import * as React from 'react';\nconst AnchorContext = /*#__PURE__*/React.createContext(undefined);\nexport default AnchorContext;","import classNames from 'classnames';\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport AnchorContext from './context';\nconst AnchorLink = props => {\n const {\n href,\n title,\n prefixCls: customizePrefixCls,\n children,\n className,\n target,\n replace\n } = props;\n const context = React.useContext(AnchorContext);\n const {\n registerLink,\n unregisterLink,\n scrollTo,\n onClick,\n activeLink,\n direction\n } = context || {};\n React.useEffect(() => {\n registerLink === null || registerLink === void 0 ? void 0 : registerLink(href);\n return () => {\n unregisterLink === null || unregisterLink === void 0 ? void 0 : unregisterLink(href);\n };\n }, [href]);\n const handleClick = e => {\n if (replace) {\n e.preventDefault();\n window.location.replace(href);\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e, {\n title,\n href\n });\n scrollTo === null || scrollTo === void 0 ? void 0 : scrollTo(href);\n };\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!children || direction !== 'horizontal', 'Anchor.Link', '`Anchor.Link children` is not supported when `Anchor` direction is horizontal') : void 0;\n }\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('anchor', customizePrefixCls);\n const active = activeLink === href;\n const wrapperClassName = classNames(`${prefixCls}-link`, className, {\n [`${prefixCls}-link-active`]: active\n });\n const titleClassName = classNames(`${prefixCls}-link-title`, {\n [`${prefixCls}-link-title-active`]: active\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClassName\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: titleClassName,\n href: href,\n title: typeof title === 'string' ? title : '',\n target: target,\n onClick: handleClick\n }, title), direction !== 'horizontal' ? children : null);\n};\nexport default AnchorLink;","import { resetComponent, textEllipsis } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Shared ==============================\nconst genSharedAnchorStyle = token => {\n const {\n componentCls,\n holderOffsetBlock,\n motionDurationSlow,\n lineWidthBold,\n colorPrimary,\n lineType,\n colorSplit\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n marginBlockStart: -holderOffsetBlock,\n paddingBlockStart: holderOffsetBlock,\n // delete overflow: auto\n // overflow: 'auto',\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n paddingInlineStart: lineWidthBold,\n [`${componentCls}-link`]: {\n paddingBlock: token.linkPaddingBlock,\n paddingInline: `${token.linkPaddingInlineStart}px 0`,\n '&-title': Object.assign(Object.assign({}, textEllipsis), {\n position: 'relative',\n display: 'block',\n marginBlockEnd: token.anchorTitleBlock,\n color: token.colorText,\n transition: `all ${token.motionDurationSlow}`,\n '&:only-child': {\n marginBlockEnd: 0\n }\n }),\n [`&-active > ${componentCls}-link-title`]: {\n color: token.colorPrimary\n },\n // link link\n [`${componentCls}-link`]: {\n paddingBlock: token.anchorPaddingBlockSecondary\n }\n }\n }),\n [`&:not(${componentCls}-wrapper-horizontal)`]: {\n [componentCls]: {\n '&::before': {\n position: 'absolute',\n insetInlineStart: 0,\n top: 0,\n height: '100%',\n borderInlineStart: `${lineWidthBold}px ${lineType} ${colorSplit}`,\n content: '\" \"'\n },\n [`${componentCls}-ink`]: {\n position: 'absolute',\n insetInlineStart: 0,\n display: 'none',\n transform: 'translateY(-50%)',\n transition: `top ${motionDurationSlow} ease-in-out`,\n width: lineWidthBold,\n backgroundColor: colorPrimary,\n [`&${componentCls}-ink-visible`]: {\n display: 'inline-block'\n }\n }\n }\n },\n [`${componentCls}-fixed ${componentCls}-ink ${componentCls}-ink`]: {\n display: 'none'\n }\n }\n };\n};\nconst genSharedAnchorHorizontalStyle = token => {\n const {\n componentCls,\n motionDurationSlow,\n lineWidthBold,\n colorPrimary\n } = token;\n return {\n [`${componentCls}-wrapper-horizontal`]: {\n position: 'relative',\n '&::before': {\n position: 'absolute',\n left: {\n _skip_check_: true,\n value: 0\n },\n right: {\n _skip_check_: true,\n value: 0\n },\n bottom: 0,\n borderBottom: `1px ${token.lineType} ${token.colorSplit}`,\n content: '\" \"'\n },\n [componentCls]: {\n overflowX: 'scroll',\n position: 'relative',\n display: 'flex',\n scrollbarWidth: 'none' /* Firefox */,\n '&::-webkit-scrollbar': {\n display: 'none' /* Safari and Chrome */\n },\n\n [`${componentCls}-link:first-of-type`]: {\n paddingInline: 0\n },\n [`${componentCls}-ink`]: {\n position: 'absolute',\n bottom: 0,\n transition: `left ${motionDurationSlow} ease-in-out, width ${motionDurationSlow} ease-in-out`,\n height: lineWidthBold,\n backgroundColor: colorPrimary\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Anchor', token => {\n const {\n fontSize,\n fontSizeLG,\n paddingXXS\n } = token;\n const anchorToken = mergeToken(token, {\n holderOffsetBlock: paddingXXS,\n anchorPaddingBlockSecondary: paddingXXS / 2,\n anchorTitleBlock: fontSize / 14 * 3,\n anchorBallSize: fontSizeLG / 2\n });\n return [genSharedAnchorStyle(anchorToken), genSharedAnchorHorizontalStyle(anchorToken)];\n}, token => ({\n linkPaddingBlock: token.paddingXXS,\n linkPaddingInlineStart: token.padding\n}));","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport * as React from 'react';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport getScroll from '../_util/getScroll';\nimport scrollTo from '../_util/scrollTo';\nimport warning from '../_util/warning';\nimport Affix from '../affix';\nimport { ConfigContext } from '../config-provider';\nimport AnchorLink from './AnchorLink';\nimport AnchorContext from './context';\nimport useStyle from './style';\nfunction getDefaultContainer() {\n return window;\n}\nfunction getOffsetTop(element, container) {\n if (!element.getClientRects().length) {\n return 0;\n }\n const rect = element.getBoundingClientRect();\n if (rect.width || rect.height) {\n if (container === window) {\n container = element.ownerDocument.documentElement;\n return rect.top - container.clientTop;\n }\n return rect.top - container.getBoundingClientRect().top;\n }\n return rect.top;\n}\nconst sharpMatcherRegex = /#([\\S ]+)$/;\nconst AnchorContent = props => {\n var _a;\n const {\n rootClassName,\n anchorPrefixCls: prefixCls,\n className,\n style,\n offsetTop,\n affix = true,\n showInkInFixed = false,\n children,\n items,\n direction: anchorDirection = 'vertical',\n bounds,\n targetOffset,\n onClick,\n onChange,\n getContainer,\n getCurrentAnchor,\n replace\n } = props;\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!children, 'Anchor', '`Anchor children` is deprecated. Please use `items` instead.') : void 0;\n }\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(anchorDirection === 'horizontal' && (items === null || items === void 0 ? void 0 : items.some(n => 'children' in n))), 'Anchor', '`Anchor items#children` is not supported when `Anchor` direction is horizontal.') : void 0;\n }\n const [links, setLinks] = React.useState([]);\n const [activeLink, setActiveLink] = React.useState(null);\n const activeLinkRef = React.useRef(activeLink);\n const wrapperRef = React.useRef(null);\n const spanLinkNode = React.useRef(null);\n const animating = React.useRef(false);\n const {\n direction,\n getTargetContainer,\n anchor\n } = React.useContext(ConfigContext);\n const getCurrentContainer = (_a = getContainer !== null && getContainer !== void 0 ? getContainer : getTargetContainer) !== null && _a !== void 0 ? _a : getDefaultContainer;\n const dependencyListItem = JSON.stringify(links);\n const registerLink = useEvent(link => {\n if (!links.includes(link)) {\n setLinks(prev => [].concat(_toConsumableArray(prev), [link]));\n }\n });\n const unregisterLink = useEvent(link => {\n if (links.includes(link)) {\n setLinks(prev => prev.filter(i => i !== link));\n }\n });\n const updateInk = () => {\n var _a;\n const linkNode = (_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(`.${prefixCls}-link-title-active`);\n if (linkNode && spanLinkNode.current) {\n const {\n style: inkStyle\n } = spanLinkNode.current;\n const horizontalAnchor = anchorDirection === 'horizontal';\n inkStyle.top = horizontalAnchor ? '' : `${linkNode.offsetTop + linkNode.clientHeight / 2}px`;\n inkStyle.height = horizontalAnchor ? '' : `${linkNode.clientHeight}px`;\n inkStyle.left = horizontalAnchor ? `${linkNode.offsetLeft}px` : '';\n inkStyle.width = horizontalAnchor ? `${linkNode.clientWidth}px` : '';\n if (horizontalAnchor) {\n scrollIntoView(linkNode, {\n scrollMode: 'if-needed',\n block: 'nearest'\n });\n }\n }\n };\n const getInternalCurrentAnchor = function (_links) {\n let _offsetTop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let _bounds = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5;\n const linkSections = [];\n const container = getCurrentContainer();\n _links.forEach(link => {\n const sharpLinkMatch = sharpMatcherRegex.exec(link === null || link === void 0 ? void 0 : link.toString());\n if (!sharpLinkMatch) {\n return;\n }\n const target = document.getElementById(sharpLinkMatch[1]);\n if (target) {\n const top = getOffsetTop(target, container);\n if (top < _offsetTop + _bounds) {\n linkSections.push({\n link,\n top\n });\n }\n }\n });\n if (linkSections.length) {\n const maxSection = linkSections.reduce((prev, curr) => curr.top > prev.top ? curr : prev);\n return maxSection.link;\n }\n return '';\n };\n const setCurrentActiveLink = useEvent(link => {\n // FIXME: Seems a bug since this compare is not equals\n // `activeLinkRef` is parsed value which will always trigger `onChange` event.\n if (activeLinkRef.current === link) {\n return;\n }\n // https://github.com/ant-design/ant-design/issues/30584\n const newLink = typeof getCurrentAnchor === 'function' ? getCurrentAnchor(link) : link;\n setActiveLink(newLink);\n activeLinkRef.current = newLink;\n // onChange should respect the original link (which may caused by\n // window scroll or user click), not the new link\n onChange === null || onChange === void 0 ? void 0 : onChange(link);\n });\n const handleScroll = React.useCallback(() => {\n if (animating.current) {\n return;\n }\n const currentActiveLink = getInternalCurrentAnchor(links, targetOffset !== undefined ? targetOffset : offsetTop || 0, bounds);\n setCurrentActiveLink(currentActiveLink);\n }, [dependencyListItem, targetOffset, offsetTop]);\n const handleScrollTo = React.useCallback(link => {\n setCurrentActiveLink(link);\n const sharpLinkMatch = sharpMatcherRegex.exec(link);\n if (!sharpLinkMatch) {\n return;\n }\n const targetElement = document.getElementById(sharpLinkMatch[1]);\n if (!targetElement) {\n return;\n }\n const container = getCurrentContainer();\n const scrollTop = getScroll(container, true);\n const eleOffsetTop = getOffsetTop(targetElement, container);\n let y = scrollTop + eleOffsetTop;\n y -= targetOffset !== undefined ? targetOffset : offsetTop || 0;\n animating.current = true;\n scrollTo(y, {\n getContainer: getCurrentContainer,\n callback() {\n animating.current = false;\n }\n });\n }, [targetOffset, offsetTop]);\n const wrapperClass = classNames(rootClassName, `${prefixCls}-wrapper`, {\n [`${prefixCls}-wrapper-horizontal`]: anchorDirection === 'horizontal',\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, anchor === null || anchor === void 0 ? void 0 : anchor.className);\n const anchorClass = classNames(prefixCls, {\n [`${prefixCls}-fixed`]: !affix && !showInkInFixed\n });\n const inkClass = classNames(`${prefixCls}-ink`, {\n [`${prefixCls}-ink-visible`]: activeLink\n });\n const wrapperStyle = Object.assign(Object.assign({\n maxHeight: offsetTop ? `calc(100vh - ${offsetTop}px)` : '100vh'\n }, anchor === null || anchor === void 0 ? void 0 : anchor.style), style);\n const createNestedLink = options => Array.isArray(options) ? options.map(item => /*#__PURE__*/React.createElement(AnchorLink, Object.assign({\n replace: replace\n }, item, {\n key: item.key\n }), anchorDirection === 'vertical' && createNestedLink(item.children))) : null;\n const anchorContent = /*#__PURE__*/React.createElement(\"div\", {\n ref: wrapperRef,\n className: wrapperClass,\n style: wrapperStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: anchorClass\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: inkClass,\n ref: spanLinkNode\n }), 'items' in props ? createNestedLink(items) : children));\n React.useEffect(() => {\n const scrollContainer = getCurrentContainer();\n handleScroll();\n scrollContainer === null || scrollContainer === void 0 ? void 0 : scrollContainer.addEventListener('scroll', handleScroll);\n return () => {\n scrollContainer === null || scrollContainer === void 0 ? void 0 : scrollContainer.removeEventListener('scroll', handleScroll);\n };\n }, [dependencyListItem]);\n React.useEffect(() => {\n if (typeof getCurrentAnchor === 'function') {\n setCurrentActiveLink(getCurrentAnchor(activeLinkRef.current || ''));\n }\n }, [getCurrentAnchor]);\n React.useEffect(() => {\n updateInk();\n }, [anchorDirection, getCurrentAnchor, dependencyListItem, activeLink]);\n const memoizedContextValue = React.useMemo(() => ({\n registerLink,\n unregisterLink,\n scrollTo: handleScrollTo,\n activeLink,\n onClick,\n direction: anchorDirection\n }), [activeLink, onClick, handleScrollTo, anchorDirection]);\n return /*#__PURE__*/React.createElement(AnchorContext.Provider, {\n value: memoizedContextValue\n }, affix ? /*#__PURE__*/React.createElement(Affix, {\n offsetTop: offsetTop,\n target: getCurrentContainer\n }, anchorContent) : anchorContent);\n};\nconst Anchor = props => {\n const {\n prefixCls: customizePrefixCls,\n rootClassName\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const anchorPrefixCls = getPrefixCls('anchor', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(anchorPrefixCls);\n return wrapSSR( /*#__PURE__*/React.createElement(AnchorContent, Object.assign({}, props, {\n rootClassName: classNames(hashId, rootClassName),\n anchorPrefixCls: anchorPrefixCls\n })));\n};\nif (process.env.NODE_ENV !== 'production') {\n Anchor.displayName = 'Anchor';\n}\nexport default Anchor;","'use client';\n\nimport InternalAnchor from './Anchor';\nimport AnchorLink from './AnchorLink';\nconst Anchor = InternalAnchor;\nAnchor.Link = AnchorLink;\nexport default Anchor;","import React from 'react';\nexport const AppConfigContext = /*#__PURE__*/React.createContext({});\nconst AppContext = /*#__PURE__*/React.createContext({\n message: {},\n notification: {},\n modal: {}\n});\nexport default AppContext;","import { genComponentStyleHook } from '../../theme/internal';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n colorText,\n fontSize,\n lineHeight,\n fontFamily\n } = token;\n return {\n [componentCls]: {\n color: colorText,\n fontSize,\n lineHeight,\n fontFamily\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('App', token => [genBaseStyle(token)]);","'use client';\n\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useMessage from '../message/useMessage';\nimport useModal from '../modal/useModal';\nimport useNotification from '../notification/useNotification';\nimport AppContext, { AppConfigContext } from './context';\nimport useStyle from './style';\nconst useApp = () => React.useContext(AppContext);\nconst App = props => {\n const {\n prefixCls: customizePrefixCls,\n children,\n className,\n rootClassName,\n message,\n notification,\n style\n } = props;\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('app', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const customClassName = classNames(hashId, prefixCls, className, rootClassName);\n const appConfig = useContext(AppConfigContext);\n const mergedAppConfig = React.useMemo(() => ({\n message: Object.assign(Object.assign({}, appConfig.message), message),\n notification: Object.assign(Object.assign({}, appConfig.notification), notification)\n }), [message, notification, appConfig.message, appConfig.notification]);\n const [messageApi, messageContextHolder] = useMessage(mergedAppConfig.message);\n const [notificationApi, notificationContextHolder] = useNotification(mergedAppConfig.notification);\n const [ModalApi, ModalContextHolder] = useModal();\n const memoizedContextValue = React.useMemo(() => ({\n message: messageApi,\n notification: notificationApi,\n modal: ModalApi\n }), [messageApi, notificationApi, ModalApi]);\n return wrapSSR( /*#__PURE__*/React.createElement(AppContext.Provider, {\n value: memoizedContextValue\n }, /*#__PURE__*/React.createElement(AppConfigContext.Provider, {\n value: mergedAppConfig\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: customClassName,\n style: style\n }, ModalContextHolder, messageContextHolder, notificationContextHolder, children))));\n};\nif (process.env.NODE_ENV !== 'production') {\n App.displayName = 'App';\n}\nApp.useApp = useApp;\nexport default App;","'use client';\n\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport genPurePanel from '../_util/PurePanel';\nimport { isValidElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport Select from '../select';\nconst {\n Option\n} = Select;\nfunction isSelectOptionOrSelectOptGroup(child) {\n return child && child.type && (child.type.isSelectOption || child.type.isSelectOptGroup);\n}\nconst AutoComplete = (props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n popupClassName,\n dropdownClassName,\n children,\n dataSource\n } = props;\n const childNodes = toArray(children);\n // ============================= Input =============================\n let customizeInput;\n if (childNodes.length === 1 && isValidElement(childNodes[0]) && !isSelectOptionOrSelectOptGroup(childNodes[0])) {\n [customizeInput] = childNodes;\n }\n const getInputElement = customizeInput ? () => customizeInput : undefined;\n // ============================ Options ============================\n let optionChildren;\n // [Legacy] convert `children` or `dataSource` into option children\n if (childNodes.length && isSelectOptionOrSelectOptGroup(childNodes[0])) {\n optionChildren = children;\n } else {\n optionChildren = dataSource ? dataSource.map(item => {\n if (isValidElement(item)) {\n return item;\n }\n switch (typeof item) {\n case 'string':\n return /*#__PURE__*/React.createElement(Option, {\n key: item,\n value: item\n }, item);\n case 'object':\n {\n const {\n value: optionValue\n } = item;\n return /*#__PURE__*/React.createElement(Option, {\n key: optionValue,\n value: optionValue\n }, item.text);\n }\n default:\n process.env.NODE_ENV !== \"production\" ? warning(false, 'AutoComplete', '`dataSource` is only supports type `string[] | Object[]`.') : void 0;\n return undefined;\n }\n }) : [];\n }\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!('dataSource' in props), 'AutoComplete', '`dataSource` is deprecated, please use `options` instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!customizeInput || !('size' in props), 'AutoComplete', 'You need to control style self instead of setting `size` when using customize input.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'AutoComplete', '`dropdownClassName` is deprecated, please use `popupClassName` instead.') : void 0;\n }\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('select', customizePrefixCls);\n return /*#__PURE__*/React.createElement(Select, Object.assign({\n ref: ref,\n suffixIcon: null\n }, omit(props, ['dataSource', 'dropdownClassName']), {\n prefixCls: prefixCls,\n popupClassName: popupClassName || dropdownClassName,\n className: classNames(`${prefixCls}-auto-complete`, className),\n mode: Select.SECRET_COMBOBOX_MODE_DO_NOT_USE,\n // Internal api\n getInputElement\n }), optionChildren);\n};\nconst RefAutoComplete = /*#__PURE__*/React.forwardRef(AutoComplete);\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(RefAutoComplete);\nRefAutoComplete.Option = Option;\nRefAutoComplete._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nif (process.env.NODE_ENV !== 'production') {\n RefAutoComplete.displayName = 'AutoComplete';\n}\nexport default RefAutoComplete;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent } from '../../style';\n// ============================== Shared ==============================\nconst genSharedBackTopStyle = token => {\n const {\n componentCls,\n backTopFontSize,\n backTopSize,\n zIndexPopup\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'fixed',\n insetInlineEnd: token.backTopInlineEnd,\n insetBlockEnd: token.backTopBlockEnd,\n zIndex: zIndexPopup,\n width: 40,\n height: 40,\n cursor: 'pointer',\n '&:empty': {\n display: 'none'\n },\n [`${componentCls}-content`]: {\n width: backTopSize,\n height: backTopSize,\n overflow: 'hidden',\n color: token.backTopColor,\n textAlign: 'center',\n backgroundColor: token.backTopBackground,\n borderRadius: backTopSize,\n transition: `all ${token.motionDurationMid}`,\n '&:hover': {\n backgroundColor: token.backTopHoverBackground,\n transition: `all ${token.motionDurationMid}`\n }\n },\n // change to .backtop .backtop-icon\n [`${componentCls}-icon`]: {\n fontSize: backTopFontSize,\n lineHeight: `${backTopSize}px`\n }\n })\n };\n};\nconst genMediaBackTopStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`@media (max-width: ${token.screenMD}px)`]: {\n [componentCls]: {\n insetInlineEnd: token.backTopInlineEndMD\n }\n },\n [`@media (max-width: ${token.screenXS}px)`]: {\n [componentCls]: {\n insetInlineEnd: token.backTopInlineEndXS\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('BackTop', token => {\n const {\n fontSizeHeading3,\n colorTextDescription,\n colorTextLightSolid,\n colorText,\n controlHeightLG\n } = token;\n const backTopToken = mergeToken(token, {\n backTopBackground: colorTextDescription,\n backTopColor: colorTextLightSolid,\n backTopHoverBackground: colorText,\n backTopFontSize: fontSizeHeading3,\n backTopSize: controlHeightLG,\n backTopBlockEnd: controlHeightLG * 1.25,\n backTopInlineEnd: controlHeightLG * 2.5,\n backTopInlineEndMD: controlHeightLG * 1.5,\n backTopInlineEndXS: controlHeightLG * 0.5\n });\n return [genSharedBackTopStyle(backTopToken), genMediaBackTopStyle(backTopToken)];\n}, token => ({\n zIndexPopup: token.zIndexBase + 10\n}));","'use client';\n\nimport VerticalAlignTopOutlined from \"@ant-design/icons/es/icons/VerticalAlignTopOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport getScroll from '../_util/getScroll';\nimport { cloneElement } from '../_util/reactNode';\nimport scrollTo from '../_util/scrollTo';\nimport throttleByAnimationFrame from '../_util/throttleByAnimationFrame';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst BackTop = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n visibilityHeight = 400,\n target,\n onClick,\n duration = 450\n } = props;\n const [visible, setVisible] = React.useState(visibilityHeight === 0);\n const ref = React.useRef(null);\n const getDefaultTarget = () => ref.current && ref.current.ownerDocument ? ref.current.ownerDocument : window;\n const handleScroll = throttleByAnimationFrame(e => {\n const scrollTop = getScroll(e.target, true);\n setVisible(scrollTop >= visibilityHeight);\n });\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'BackTop', '`BackTop` is deprecated, please use `FloatButton.BackTop` instead.') : void 0;\n }\n React.useEffect(() => {\n const getTarget = target || getDefaultTarget;\n const container = getTarget();\n handleScroll({\n target: container\n });\n container === null || container === void 0 ? void 0 : container.addEventListener('scroll', handleScroll);\n return () => {\n handleScroll.cancel();\n container === null || container === void 0 ? void 0 : container.removeEventListener('scroll', handleScroll);\n };\n }, [target]);\n const scrollToTop = e => {\n scrollTo(0, {\n getContainer: target || getDefaultTarget,\n duration\n });\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('back-top', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const classString = classNames(hashId, prefixCls, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName);\n // fix https://fb.me/react-unknown-prop\n const divProps = omit(props, ['prefixCls', 'className', 'rootClassName', 'children', 'visibilityHeight', 'target']);\n const defaultElement = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-content`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-icon`\n }, /*#__PURE__*/React.createElement(VerticalAlignTopOutlined, null)));\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({}, divProps, {\n className: classString,\n onClick: scrollToTop,\n ref: ref\n }), /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n motionName: `${rootPrefixCls}-fade`\n }, _ref => {\n let {\n className: motionClassName\n } = _ref;\n return cloneElement(props.children || defaultElement, _ref2 => {\n let {\n className: cloneCls\n } = _ref2;\n return {\n className: classNames(motionClassName, cloneCls)\n };\n });\n })));\n};\nif (process.env.NODE_ENV !== 'production') {\n BackTop.displayName = 'BackTop';\n}\nexport default BackTop;","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { FormItemInputContext } from '../form/context';\nimport { Button, Group } from '../radio';\nimport Select from '../select';\nconst YearSelectOffset = 10;\nconst YearSelectTotal = 20;\nfunction YearSelect(props) {\n const {\n fullscreen,\n validRange,\n generateConfig,\n locale,\n prefixCls,\n value,\n onChange,\n divRef\n } = props;\n const year = generateConfig.getYear(value || generateConfig.getNow());\n let start = year - YearSelectOffset;\n let end = start + YearSelectTotal;\n if (validRange) {\n start = generateConfig.getYear(validRange[0]);\n end = generateConfig.getYear(validRange[1]) + 1;\n }\n const suffix = locale && locale.year === '年' ? '年' : '';\n const options = [];\n for (let index = start; index < end; index++) {\n options.push({\n label: `${index}${suffix}`,\n value: index\n });\n }\n return /*#__PURE__*/React.createElement(Select, {\n size: fullscreen ? undefined : 'small',\n options: options,\n value: year,\n className: `${prefixCls}-year-select`,\n onChange: numYear => {\n let newDate = generateConfig.setYear(value, numYear);\n if (validRange) {\n const [startDate, endDate] = validRange;\n const newYear = generateConfig.getYear(newDate);\n const newMonth = generateConfig.getMonth(newDate);\n if (newYear === generateConfig.getYear(endDate) && newMonth > generateConfig.getMonth(endDate)) {\n newDate = generateConfig.setMonth(newDate, generateConfig.getMonth(endDate));\n }\n if (newYear === generateConfig.getYear(startDate) && newMonth < generateConfig.getMonth(startDate)) {\n newDate = generateConfig.setMonth(newDate, generateConfig.getMonth(startDate));\n }\n }\n onChange(newDate);\n },\n getPopupContainer: () => divRef.current\n });\n}\nfunction MonthSelect(props) {\n const {\n prefixCls,\n fullscreen,\n validRange,\n value,\n generateConfig,\n locale,\n onChange,\n divRef\n } = props;\n const month = generateConfig.getMonth(value || generateConfig.getNow());\n let start = 0;\n let end = 11;\n if (validRange) {\n const [rangeStart, rangeEnd] = validRange;\n const currentYear = generateConfig.getYear(value);\n if (generateConfig.getYear(rangeEnd) === currentYear) {\n end = generateConfig.getMonth(rangeEnd);\n }\n if (generateConfig.getYear(rangeStart) === currentYear) {\n start = generateConfig.getMonth(rangeStart);\n }\n }\n const months = locale.shortMonths || generateConfig.locale.getShortMonths(locale.locale);\n const options = [];\n for (let index = start; index <= end; index += 1) {\n options.push({\n label: months[index],\n value: index\n });\n }\n return /*#__PURE__*/React.createElement(Select, {\n size: fullscreen ? undefined : 'small',\n className: `${prefixCls}-month-select`,\n value: month,\n options: options,\n onChange: newMonth => {\n onChange(generateConfig.setMonth(value, newMonth));\n },\n getPopupContainer: () => divRef.current\n });\n}\nfunction ModeSwitch(props) {\n const {\n prefixCls,\n locale,\n mode,\n fullscreen,\n onModeChange\n } = props;\n return /*#__PURE__*/React.createElement(Group, {\n onChange: _ref => {\n let {\n target: {\n value\n }\n } = _ref;\n onModeChange(value);\n },\n value: mode,\n size: fullscreen ? undefined : 'small',\n className: `${prefixCls}-mode-switch`\n }, /*#__PURE__*/React.createElement(Button, {\n value: \"month\"\n }, locale.month), /*#__PURE__*/React.createElement(Button, {\n value: \"year\"\n }, locale.year));\n}\nfunction CalendarHeader(props) {\n const {\n prefixCls,\n fullscreen,\n mode,\n onChange,\n onModeChange\n } = props;\n const divRef = React.useRef(null);\n const formItemInputContext = useContext(FormItemInputContext);\n const mergedFormItemInputContext = useMemo(() => Object.assign(Object.assign({}, formItemInputContext), {\n isFormItemInput: false\n }), [formItemInputContext]);\n const sharedProps = Object.assign(Object.assign({}, props), {\n fullscreen,\n divRef\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-header`,\n ref: divRef\n }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: mergedFormItemInputContext\n }, /*#__PURE__*/React.createElement(YearSelect, Object.assign({}, sharedProps, {\n onChange: v => {\n onChange(v, 'year');\n }\n })), mode === 'month' && /*#__PURE__*/React.createElement(MonthSelect, Object.assign({}, sharedProps, {\n onChange: v => {\n onChange(v, 'month');\n }\n }))), /*#__PURE__*/React.createElement(ModeSwitch, Object.assign({}, sharedProps, {\n onModeChange: onModeChange\n })));\n}\nexport default CalendarHeader;","import { genPanelStyle, initPickerPanelToken } from '../../date-picker/style';\nimport { initInputToken } from '../../input/style';\nimport { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nexport const genCalendarStyles = token => {\n const {\n calendarCls,\n componentCls,\n fullBg,\n fullPanelBg,\n itemActiveBg\n } = token;\n return {\n [calendarCls]: Object.assign(Object.assign(Object.assign({}, genPanelStyle(token)), resetComponent(token)), {\n background: fullBg,\n '&-rtl': {\n direction: 'rtl'\n },\n [`${calendarCls}-header`]: {\n display: 'flex',\n justifyContent: 'flex-end',\n padding: `${token.paddingSM}px 0`,\n [`${calendarCls}-year-select`]: {\n minWidth: token.yearControlWidth\n },\n [`${calendarCls}-month-select`]: {\n minWidth: token.monthControlWidth,\n marginInlineStart: token.marginXS\n },\n [`${calendarCls}-mode-switch`]: {\n marginInlineStart: token.marginXS\n }\n }\n }),\n [`${calendarCls} ${componentCls}-panel`]: {\n background: fullPanelBg,\n border: 0,\n borderTop: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`,\n borderRadius: 0,\n [`${componentCls}-month-panel, ${componentCls}-date-panel`]: {\n width: 'auto'\n },\n [`${componentCls}-body`]: {\n padding: `${token.paddingXS}px 0`\n },\n [`${componentCls}-content`]: {\n width: '100%'\n }\n },\n [`${calendarCls}-mini`]: {\n borderRadius: token.borderRadiusLG,\n [`${calendarCls}-header`]: {\n paddingInlineEnd: token.paddingXS,\n paddingInlineStart: token.paddingXS\n },\n [`${componentCls}-panel`]: {\n borderRadius: `0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px`\n },\n [`${componentCls}-content`]: {\n height: token.miniContentHeight,\n th: {\n height: 'auto',\n padding: 0,\n lineHeight: `${token.weekHeight}px`\n }\n },\n [`${componentCls}-cell::before`]: {\n pointerEvents: 'none'\n }\n },\n [`${calendarCls}${calendarCls}-full`]: {\n [`${componentCls}-panel`]: {\n display: 'block',\n width: '100%',\n textAlign: 'end',\n background: fullBg,\n border: 0,\n [`${componentCls}-body`]: {\n 'th, td': {\n padding: 0\n },\n th: {\n height: 'auto',\n paddingInlineEnd: token.paddingSM,\n paddingBottom: token.paddingXXS,\n lineHeight: `${token.weekHeight}px`\n }\n }\n },\n [`${componentCls}-cell`]: {\n '&::before': {\n display: 'none'\n },\n '&:hover': {\n [`${calendarCls}-date`]: {\n background: token.controlItemBgHover\n }\n },\n [`${calendarCls}-date-today::before`]: {\n display: 'none'\n },\n // >>> Selected\n [`&-in-view${componentCls}-cell-selected`]: {\n [`${calendarCls}-date, ${calendarCls}-date-today`]: {\n background: itemActiveBg\n }\n },\n '&-selected, &-selected:hover': {\n [`${calendarCls}-date, ${calendarCls}-date-today`]: {\n [`${calendarCls}-date-value`]: {\n color: token.colorPrimary\n }\n }\n }\n },\n [`${calendarCls}-date`]: {\n display: 'block',\n width: 'auto',\n height: 'auto',\n margin: `0 ${token.marginXS / 2}px`,\n padding: `${token.paddingXS / 2}px ${token.paddingXS}px 0`,\n border: 0,\n borderTop: `${token.lineWidthBold}px ${token.lineType} ${token.colorSplit}`,\n borderRadius: 0,\n transition: `background ${token.motionDurationSlow}`,\n '&-value': {\n lineHeight: `${token.dateValueHeight}px`,\n transition: `color ${token.motionDurationSlow}`\n },\n '&-content': {\n position: 'static',\n width: 'auto',\n height: token.dateContentHeight,\n overflowY: 'auto',\n color: token.colorText,\n lineHeight: token.lineHeight,\n textAlign: 'start'\n },\n '&-today': {\n borderColor: token.colorPrimary,\n [`${calendarCls}-date-value`]: {\n color: token.colorText\n }\n }\n }\n },\n [`@media only screen and (max-width: ${token.screenXS}px) `]: {\n [`${calendarCls}`]: {\n [`${calendarCls}-header`]: {\n display: 'block',\n [`${calendarCls}-year-select`]: {\n width: '50%'\n },\n [`${calendarCls}-month-select`]: {\n width: `calc(50% - ${token.paddingXS}px)`\n },\n [`${calendarCls}-mode-switch`]: {\n width: '100%',\n marginTop: token.marginXS,\n marginInlineStart: 0,\n '> label': {\n width: '50%',\n textAlign: 'center'\n }\n }\n }\n }\n }\n };\n};\nexport default genComponentStyleHook('Calendar', token => {\n const calendarCls = `${token.componentCls}-calendar`;\n const calendarToken = mergeToken(initInputToken(token), initPickerPanelToken(token), {\n calendarCls,\n pickerCellInnerCls: `${token.componentCls}-cell-inner`,\n dateValueHeight: token.controlHeightSM,\n weekHeight: token.controlHeightSM * 0.75,\n dateContentHeight: (token.fontSizeSM * token.lineHeightSM + token.marginXS) * 3 + token.lineWidth * 2\n });\n return [genCalendarStyles(calendarToken)];\n}, token => ({\n fullBg: token.colorBgContainer,\n fullPanelBg: token.colorBgContainer,\n itemActiveBg: token.controlItemBgActive,\n yearControlWidth: 80,\n monthControlWidth: 70,\n miniContentHeight: 256\n}));","import classNames from 'classnames';\nimport { PickerPanel as RCPickerPanel } from 'rc-picker';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { useLocale } from '../locale';\nimport CalendarHeader from './Header';\nimport enUS from './locale/en_US';\nimport warning from '../_util/warning';\nimport useStyle from './style';\nfunction generateCalendar(generateConfig) {\n function isSameYear(date1, date2) {\n return date1 && date2 && generateConfig.getYear(date1) === generateConfig.getYear(date2);\n }\n function isSameMonth(date1, date2) {\n return isSameYear(date1, date2) && generateConfig.getMonth(date1) === generateConfig.getMonth(date2);\n }\n function isSameDate(date1, date2) {\n return isSameMonth(date1, date2) && generateConfig.getDate(date1) === generateConfig.getDate(date2);\n }\n const Calendar = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n dateFullCellRender,\n dateCellRender,\n monthFullCellRender,\n monthCellRender,\n cellRender,\n fullCellRender,\n headerRender,\n value,\n defaultValue,\n disabledDate,\n mode,\n validRange,\n fullscreen = true,\n onChange,\n onPanelChange,\n onSelect\n } = props;\n const {\n getPrefixCls,\n direction,\n calendar\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('picker', customizePrefixCls);\n const calendarPrefixCls = `${prefixCls}-calendar`;\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const today = generateConfig.getNow();\n // ====================== Warning =======================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!dateFullCellRender, 'Calendar', '`dateFullCellRender` is deprecated. Please use `fullCellRender` instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!dateCellRender, 'Calendar', '`dateCellRender` is deprecated. Please use `cellRender` instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!monthFullCellRender, 'Calendar', '`monthFullCellRender` is deprecated. Please use `fullCellRender` instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!monthCellRender, 'Calendar', '`monthCellRender` is deprecated. Please use `cellRender` instead.') : void 0;\n }\n // ====================== State =======================\n // Value\n const [mergedValue, setMergedValue] = useMergedState(() => value || generateConfig.getNow(), {\n defaultValue,\n value\n });\n // Mode\n const [mergedMode, setMergedMode] = useMergedState('month', {\n value: mode\n });\n const panelMode = React.useMemo(() => mergedMode === 'year' ? 'month' : 'date', [mergedMode]);\n // Disabled Date\n const mergedDisabledDate = React.useCallback(date => {\n const notInRange = validRange ? generateConfig.isAfter(validRange[0], date) || generateConfig.isAfter(date, validRange[1]) : false;\n return notInRange || !!(disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date));\n }, [disabledDate, validRange]);\n // ====================== Events ======================\n const triggerPanelChange = (date, newMode) => {\n onPanelChange === null || onPanelChange === void 0 ? void 0 : onPanelChange(date, newMode);\n };\n const triggerChange = date => {\n setMergedValue(date);\n if (!isSameDate(date, mergedValue)) {\n // Trigger when month panel switch month\n if (panelMode === 'date' && !isSameMonth(date, mergedValue) || panelMode === 'month' && !isSameYear(date, mergedValue)) {\n triggerPanelChange(date, mergedMode);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(date);\n }\n };\n const triggerModeChange = newMode => {\n setMergedMode(newMode);\n triggerPanelChange(mergedValue, newMode);\n };\n const onInternalSelect = (date, source) => {\n triggerChange(date);\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, {\n source\n });\n };\n // ====================== Locale ======================\n const getDefaultLocale = () => {\n const {\n locale\n } = props;\n const result = Object.assign(Object.assign({}, enUS), locale);\n result.lang = Object.assign(Object.assign({}, result.lang), (locale || {}).lang);\n return result;\n };\n // ====================== Render ======================\n const dateRender = React.useCallback((date, info) => {\n if (fullCellRender) {\n return fullCellRender(date, info);\n }\n if (dateFullCellRender) {\n return dateFullCellRender(date);\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-cell-inner`, `${calendarPrefixCls}-date`, {\n [`${calendarPrefixCls}-date-today`]: isSameDate(today, date)\n })\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${calendarPrefixCls}-date-value`\n }, String(generateConfig.getDate(date)).padStart(2, '0')), /*#__PURE__*/React.createElement(\"div\", {\n className: `${calendarPrefixCls}-date-content`\n }, cellRender ? cellRender(date, info) : dateCellRender && dateCellRender(date)));\n }, [dateFullCellRender, dateCellRender, cellRender, fullCellRender]);\n const monthRender = React.useCallback((date, info) => {\n if (fullCellRender) {\n return fullCellRender(date, info);\n }\n if (monthFullCellRender) {\n return monthFullCellRender(date);\n }\n const months = info.locale.shortMonths || generateConfig.locale.getShortMonths(info.locale.locale);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-cell-inner`, `${calendarPrefixCls}-date`, {\n [`${calendarPrefixCls}-date-today`]: isSameMonth(today, date)\n })\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${calendarPrefixCls}-date-value`\n }, months[generateConfig.getMonth(date)]), /*#__PURE__*/React.createElement(\"div\", {\n className: `${calendarPrefixCls}-date-content`\n }, cellRender ? cellRender(date, info) : monthCellRender && monthCellRender(date)));\n }, [monthFullCellRender, monthCellRender, cellRender, fullCellRender]);\n const [contextLocale] = useLocale('Calendar', getDefaultLocale);\n const mergedCellRender = (current, info) => {\n if (info.type === 'date') {\n return dateRender(current, info);\n }\n if (info.type === 'month') {\n return monthRender(current, Object.assign(Object.assign({}, info), {\n locale: contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.lang\n }));\n }\n };\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(calendarPrefixCls, {\n [`${calendarPrefixCls}-full`]: fullscreen,\n [`${calendarPrefixCls}-mini`]: !fullscreen,\n [`${calendarPrefixCls}-rtl`]: direction === 'rtl'\n }, calendar === null || calendar === void 0 ? void 0 : calendar.className, className, rootClassName, hashId),\n style: Object.assign(Object.assign({}, calendar === null || calendar === void 0 ? void 0 : calendar.style), style)\n }, headerRender ? headerRender({\n value: mergedValue,\n type: mergedMode,\n onChange: nextDate => {\n onInternalSelect(nextDate, 'customize');\n },\n onTypeChange: triggerModeChange\n }) : /*#__PURE__*/React.createElement(CalendarHeader, {\n prefixCls: calendarPrefixCls,\n value: mergedValue,\n generateConfig: generateConfig,\n mode: mergedMode,\n fullscreen: fullscreen,\n locale: contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.lang,\n validRange: validRange,\n onChange: onInternalSelect,\n onModeChange: triggerModeChange\n }), /*#__PURE__*/React.createElement(RCPickerPanel, {\n value: mergedValue,\n prefixCls: prefixCls,\n locale: contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.lang,\n generateConfig: generateConfig,\n cellRender: mergedCellRender,\n onSelect: nextDate => {\n onInternalSelect(nextDate, panelMode);\n },\n mode: panelMode,\n picker: panelMode,\n disabledDate: mergedDisabledDate,\n hideHeader: true\n })));\n };\n if (process.env.NODE_ENV !== 'production') {\n Calendar.displayName = 'Calendar';\n }\n return Calendar;\n}\nexport default generateCalendar;","'use client';\n\nimport dayjsGenerateConfig from \"rc-picker/es/generate/dayjs\";\nimport generateCalendar from './generateCalendar';\nconst Calendar = generateCalendar(dayjsGenerateConfig);\nCalendar.generateCalendar = generateCalendar;\nexport default Calendar;","var initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nexport default initialState;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from \"react\";\nexport function clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\nexport var safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\nexport var getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n return onDemandSlides;\n};\n\n// return list of slides that need to be present\nexport var getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n return requiredSlides;\n};\n\n// startIndex that needs to be present\nexport var lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\nexport var lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\nexport var lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\nexport var lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n};\n\n// get width of an element\nexport var getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\nexport var getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\nexport var getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n return \"vertical\";\n};\n\n// whether or not we can go next\nexport var canGoNext = function canGoNext(spec) {\n var canGo = true;\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nexport var extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n};\n\n// get initialized state\nexport var initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = React.Children.count(spec.children);\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n return state;\n};\nexport var slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n return {\n state: state,\n nextState: nextState\n };\n};\nexport var changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n return targetSlide;\n};\nexport var keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\nexport var swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\nexport var swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n return state;\n};\nexport var swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n // reset the state of touch related state variables.\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n if (scrolling) {\n return state;\n }\n if (!touchObject.swipeLength) {\n return state;\n }\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n default:\n slideCount = activeSlide;\n }\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n return state;\n};\nexport var getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n return indexes;\n};\nexport var checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n prevNavigable = navigables[n];\n }\n }\n return index;\n};\nexport var getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n return true;\n });\n if (!swipedSlide) {\n return 0;\n }\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\nexport var checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return (\n // eslint-disable-next-line no-prototype-builtins\n keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec)\n );\n};\nexport var getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight;\n\n // Fallback for IE8\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n return style;\n};\nexport var getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec);\n // useCSS is true by default so it can be undefined\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nexport var getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n var slidesToOffset = 0;\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n }\n // shift current slide to center of the frame\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n return targetLeft;\n};\nexport var getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\nexport var getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n return spec.slideCount;\n};\nexport var getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\nexport var siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n return \"left\";\n }\n};\nexport var slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n if (rtl) {\n return 0;\n }\n return slidesToShow - 1;\n};\nexport var slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n if (rtl) {\n return slidesToShow - 1;\n }\n return 0;\n};\nexport var canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};","\"use strict\";\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from \"react\";\nimport classnames from \"classnames\";\nimport { lazyStartIndex, lazyEndIndex, getPreClones } from \"./utils/innerSliderUtils\";\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n slickCloned = index < 0 || index >= spec.slideCount;\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n var focusedSlide;\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n if (spec.fade) {\n style.position = \"relative\";\n if (spec.vertical && spec.slideHeight) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getKey = function getKey(child, fallbackKey) {\n return child.key + \"-\" + fallbackKey;\n};\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n var childrenCount = React.Children.count(spec.children);\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n React.Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n };\n\n // in case of lazyLoad, whether or not we want to fetch the slide\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/React.createElement(\"div\", null);\n }\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n // push a cloned element of the desired slide\n slides.push( /*#__PURE__*/React.cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: classnames(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n\n // if slide needs to be precloned or postcloned\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n if (preCloneNo <= getPreClones(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n if (key >= startIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/React.cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: classnames(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n if (key < endIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/React.cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: classnames(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\nexport var Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n var _super = _createSuper(Track);\n function Track() {\n var _this;\n _classCallCheck(this, Track);\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 _defineProperty(_assertThisInitialized(_this), \"node\", null);\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n return _this;\n }\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n return Track;\n}(React.PureComponent);","\"use strict\";\n\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 React from \"react\";\nimport classnames from \"classnames\";\nimport { clamp } from \"./utils/innerSliderUtils\";\nvar getDotCount = function getDotCount(spec) {\n var dots;\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n return dots;\n};\nexport var Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n var _super = _createSuper(Dots);\n function Dots() {\n _classCallCheck(this, Dots);\n return _super.apply(this, arguments);\n }\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n var rightBound = infinite ? _rightBound : clamp(_rightBound, 0, slideCount - 1);\n var _leftBound = rightBound - (slidesToScroll - 1);\n var leftBound = infinite ? _leftBound : clamp(_leftBound, 0, slideCount - 1);\n var className = classnames({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/React.createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/React.cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n return /*#__PURE__*/React.cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n return Dots;\n}(React.PureComponent);","\"use strict\";\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\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 React from \"react\";\nimport classnames from \"classnames\";\nimport { canGoNext } from \"./utils/innerSliderUtils\";\nexport var PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n var _super = _createSuper(PrevArrow);\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n return _super.apply(this, arguments);\n }\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: classnames(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/React.cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/React.createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n return prevArrow;\n }\n }]);\n return PrevArrow;\n}(React.PureComponent);\nexport var NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n var _super2 = _createSuper(NextArrow);\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n return _super2.apply(this, arguments);\n }\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n if (!canGoNext(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: classnames(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/React.cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/React.createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n return nextArrow;\n }\n }]);\n return NextArrow;\n}(React.PureComponent);","\"use strict\";\n\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\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 _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"animating\"];\nimport React from \"react\";\nimport initialState from \"./initial-state\";\nimport { debounce } from \"throttle-debounce\";\nimport classnames from \"classnames\";\nimport { getOnDemandLazySlides, extractObject, initializedState, getHeight, canGoNext, slideHandler, changeSlide, keyHandler, swipeStart, swipeMove, swipeEnd, getPreClones, getPostClones, getTrackLeft, getTrackCSS } from \"./utils/innerSliderUtils\";\nimport { Track } from \"./track\";\nimport { Dots } from \"./dots\";\nimport { PrevArrow, NextArrow } from \"./arrows\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nexport var InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n var _super = _createSuper(InnerSlider);\n function InnerSlider(props) {\n var _this;\n _classCallCheck(this, InnerSlider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n _this.list.style.height = getHeight(elem) + \"px\";\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n _this.props.autoplay && _this.autoPlay(\"playing\");\n });\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n _this.ro = new ResizeObserver(function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n _this.ro.observe(_this.list);\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n _this.callbackTimers = [];\n }\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n _this.ro.disconnect();\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n _this.props.onReInit && _this.props.onReInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n _this.adaptHeight();\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n var setTrackStyle = _this.didPropsChange(prevProps);\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= React.Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: React.Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n if (prevProps.autoplay !== _this.props.autoplay || prevProps.autoplaySpeed !== _this.props.autoplaySpeed) {\n if (!prevProps.autoplay && _this.props.autoplay) {\n _this.autoPlay(\"playing\");\n } else if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = debounce(50, function () {\n return _this.resizeWindow(setTrackStyle);\n });\n _this.debouncedResize();\n });\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node);\n // prevent warning: setting state on unmounted component (server side rendering)\n if (!isTrackMounted) return;\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n });\n // animating state should be cleared while resizing, otherwise autoplay stops working\n _this.setState({\n animating: false\n });\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = initializedState(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = getTrackLeft(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = getTrackCSS(spec);\n if (setTrackStyle || React.Children.count(_this.props.children) !== React.Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n _this.setState(updatedState, callback);\n });\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = getPreClones(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = getPostClones(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n return {\n trackStyle: _trackStyle\n };\n }\n var childrenCount = React.Children.count(_this.props.children);\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n var slideCount = getPreClones(spec) + getPostClones(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * (getPreClones(spec) + _this.state.currentSlide) * trackWidth / 100;\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n image.onclick = function (e) {\n prevClickHandler(e);\n image.parentNode.focus();\n };\n }\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + getPostClones(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n for (var _index = _this.state.currentSlide - 1; _index >= -getPreClones(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange;\n // capture currentslide before state is updated\n var currentSlide = _this.state.currentSlide;\n var _slideHandler = slideHandler(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, _excluded);\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var targetSlide = changeSlide(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n _this.props.autoplay && _this.autoPlay(\"update\");\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n nodes[0] && nodes[0].focus();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = keyHandler(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n window.ontouchmove = preventDefault;\n });\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n var state = swipeStart(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = swipeMove(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = swipeEnd(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n _this.setState(state);\n if (triggerSlideHandler === undefined) return;\n _this.slideHandler(triggerSlideHandler);\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if (canGoNext(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n _this.slideHandler(nextIndex);\n });\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n var autoplaying = _this.state.autoplaying;\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n var autoplaying = _this.state.autoplaying;\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = classnames(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var trackProps = extractObject(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = extractObject(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/React.createElement(Dots, dotProps);\n }\n var prevArrow, nextArrow;\n var arrowProps = extractObject(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/React.createElement(PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/React.createElement(NextArrow, arrowProps);\n }\n var verticalHeightStyle = null;\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n var centerPaddingStyle = null;\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className,\n style: _this.props.style\n };\n }\n return /*#__PURE__*/React.createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/React.createElement(Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, initialState), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: React.Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n var ssrState = _this.ssrInit();\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n // eslint-disable-next-line no-prototype-builtins\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n return setTrackStyle || React.Children.count(this.props.children) !== React.Children.count(prevProps.children);\n }\n }]);\n return InnerSlider;\n}(React.Component);","import React from \"react\";\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/React.createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/React.createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nexport default defaultProps;","\"use strict\";\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\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 _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport React from \"react\";\nimport { InnerSlider } from \"./inner-slider\";\nimport json2mq from \"json2mq\";\nimport defaultProps from \"./default-props\";\nimport { canUseDOM } from \"./utils/innerSliderUtils\";\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n var _super = _createSuper(Slider);\n function Slider(props) {\n var _this;\n _classCallCheck(this, Slider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n var mql = window.matchMedia(query);\n var listener = function listener(_ref) {\n var matches = _ref.matches;\n if (matches) {\n handler();\n }\n };\n mql.addListener(listener);\n listener(mql);\n this._responsiveMediaHandlers.push({\n mql: mql,\n query: query,\n listener: listener\n });\n }\n\n // handles responsive breakpoints\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n });\n // sort them in increasing order of their numerical value\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n if (index === 0) {\n bQuery = json2mq({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = json2mq({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n }\n // when not using server side rendering\n canUseDOM() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n });\n\n // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n var query = json2mq({\n minWidth: breakpoints.slice(-1)[0]\n });\n canUseDOM() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n obj.mql.removeListener(obj.listener);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var settings;\n var newProps;\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, defaultProps), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, defaultProps), this.props);\n }\n\n // force scrolling by one if centerMode is on\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n settings.slidesToScroll = 1;\n }\n // force showing one slide and scrolling by one if the fade mode is on\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n }\n\n // makes sure that children is an array, even when there is only 1 child\n var children = React.Children.toArray(this.props.children);\n\n // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n return !!child;\n });\n\n // rows and slidesPerRow logic is handled here\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n var newChildren = [];\n var currentWidth = null;\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n if (k >= children.length) break;\n row.push( /*#__PURE__*/React.cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n newSlide.push( /*#__PURE__*/React.createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/React.createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n return /*#__PURE__*/React.createElement(InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n return Slider;\n}(React.Component);\nexport { Slider as default };","import Slider from \"./slider\";\nexport default Slider;","import { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genCarouselStyle = token => {\n const {\n componentCls,\n antCls,\n carouselArrowSize,\n carouselDotOffset,\n marginXXS\n } = token;\n const arrowOffset = -carouselArrowSize * 1.25;\n const carouselDotMargin = marginXXS;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n '.slick-slider': {\n position: 'relative',\n display: 'block',\n boxSizing: 'border-box',\n touchAction: 'pan-y',\n WebkitTouchCallout: 'none',\n WebkitTapHighlightColor: 'transparent',\n '.slick-track, .slick-list': {\n transform: 'translate3d(0, 0, 0)',\n touchAction: 'pan-y'\n }\n },\n '.slick-list': {\n position: 'relative',\n display: 'block',\n margin: 0,\n padding: 0,\n overflow: 'hidden',\n '&:focus': {\n outline: 'none'\n },\n '&.dragging': {\n cursor: 'pointer'\n },\n '.slick-slide': {\n pointerEvents: 'none',\n // https://github.com/ant-design/ant-design/issues/23294\n [`input${antCls}-radio-input, input${antCls}-checkbox-input`]: {\n visibility: 'hidden'\n },\n '&.slick-active': {\n pointerEvents: 'auto',\n [`input${antCls}-radio-input, input${antCls}-checkbox-input`]: {\n visibility: 'visible'\n }\n },\n // fix Carousel content height not match parent node\n // when children is empty node\n // https://github.com/ant-design/ant-design/issues/25878\n '> div > div': {\n verticalAlign: 'bottom'\n }\n }\n },\n '.slick-track': {\n position: 'relative',\n top: 0,\n insetInlineStart: 0,\n display: 'block',\n '&::before, &::after': {\n display: 'table',\n content: '\"\"'\n },\n '&::after': {\n clear: 'both'\n }\n },\n '.slick-slide': {\n display: 'none',\n float: 'left',\n height: '100%',\n minHeight: 1,\n img: {\n display: 'block'\n },\n '&.dragging img': {\n pointerEvents: 'none'\n }\n },\n '.slick-initialized .slick-slide': {\n display: 'block'\n },\n '.slick-vertical .slick-slide': {\n display: 'block',\n height: 'auto'\n },\n '.slick-arrow.slick-hidden': {\n display: 'none'\n },\n // Arrows\n '.slick-prev, .slick-next': {\n position: 'absolute',\n top: '50%',\n display: 'block',\n width: carouselArrowSize,\n height: carouselArrowSize,\n marginTop: -carouselArrowSize / 2,\n padding: 0,\n color: 'transparent',\n fontSize: 0,\n lineHeight: 0,\n background: 'transparent',\n border: 0,\n outline: 'none',\n cursor: 'pointer',\n '&:hover, &:focus': {\n color: 'transparent',\n background: 'transparent',\n outline: 'none',\n '&::before': {\n opacity: 1\n }\n },\n '&.slick-disabled::before': {\n opacity: 0.25\n }\n },\n '.slick-prev': {\n insetInlineStart: arrowOffset,\n '&::before': {\n content: '\"←\"'\n }\n },\n '.slick-next': {\n insetInlineEnd: arrowOffset,\n '&::before': {\n content: '\"→\"'\n }\n },\n // Dots\n '.slick-dots': {\n position: 'absolute',\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n zIndex: 15,\n display: 'flex !important',\n justifyContent: 'center',\n paddingInlineStart: 0,\n margin: 0,\n listStyle: 'none',\n '&-bottom': {\n bottom: carouselDotOffset\n },\n '&-top': {\n top: carouselDotOffset,\n bottom: 'auto'\n },\n li: {\n position: 'relative',\n display: 'inline-block',\n flex: '0 1 auto',\n boxSizing: 'content-box',\n width: token.dotWidth,\n height: token.dotHeight,\n marginInline: carouselDotMargin,\n padding: 0,\n textAlign: 'center',\n textIndent: -999,\n verticalAlign: 'top',\n transition: `all ${token.motionDurationSlow}`,\n button: {\n position: 'relative',\n display: 'block',\n width: '100%',\n height: token.dotHeight,\n padding: 0,\n color: 'transparent',\n fontSize: 0,\n background: token.colorBgContainer,\n border: 0,\n borderRadius: 1,\n outline: 'none',\n cursor: 'pointer',\n opacity: 0.3,\n transition: `all ${token.motionDurationSlow}`,\n '&: hover, &:focus': {\n opacity: 0.75\n },\n '&::after': {\n position: 'absolute',\n inset: -carouselDotMargin,\n content: '\"\"'\n }\n },\n '&.slick-active': {\n width: token.dotActiveWidth,\n '& button': {\n background: token.colorBgContainer,\n opacity: 1\n },\n '&: hover, &:focus': {\n opacity: 1\n }\n }\n }\n }\n })\n };\n};\nconst genCarouselVerticalStyle = token => {\n const {\n componentCls,\n carouselDotOffset,\n marginXXS\n } = token;\n const reverseSizeOfDot = {\n width: token.dotHeight,\n height: token.dotWidth\n };\n return {\n [`${componentCls}-vertical`]: {\n '.slick-dots': {\n top: '50%',\n bottom: 'auto',\n flexDirection: 'column',\n width: token.dotHeight,\n height: 'auto',\n margin: 0,\n transform: 'translateY(-50%)',\n '&-left': {\n insetInlineEnd: 'auto',\n insetInlineStart: carouselDotOffset\n },\n '&-right': {\n insetInlineEnd: carouselDotOffset,\n insetInlineStart: 'auto'\n },\n li: Object.assign(Object.assign({}, reverseSizeOfDot), {\n margin: `${marginXXS}px 0`,\n verticalAlign: 'baseline',\n button: reverseSizeOfDot,\n '&.slick-active': Object.assign(Object.assign({}, reverseSizeOfDot), {\n button: reverseSizeOfDot\n })\n })\n }\n }\n };\n};\nconst genCarouselRtlStyle = token => {\n const {\n componentCls\n } = token;\n return [{\n [`${componentCls}-rtl`]: {\n direction: 'rtl',\n // Dots\n '.slick-dots': {\n [`${componentCls}-rtl&`]: {\n flexDirection: 'row-reverse'\n }\n }\n }\n }, {\n [`${componentCls}-vertical`]: {\n '.slick-dots': {\n [`${componentCls}-rtl&`]: {\n flexDirection: 'column'\n }\n }\n }\n }];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Carousel', token => {\n const {\n controlHeightLG,\n controlHeightSM\n } = token;\n const carouselToken = mergeToken(token, {\n carouselArrowSize: controlHeightLG / 2,\n carouselDotOffset: controlHeightSM / 2\n });\n return [genCarouselStyle(carouselToken), genCarouselVerticalStyle(carouselToken), genCarouselRtlStyle(carouselToken)];\n}, () => {\n const dotActiveWidth = 24;\n return {\n dotWidth: 16,\n dotHeight: 3,\n dotWidthActive: dotActiveWidth,\n dotActiveWidth\n };\n}, {\n deprecatedTokens: [['dotWidthActive', 'dotActiveWidth']]\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 * as React from 'react';\nimport SlickCarousel from '@ant-design/react-slick';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst Carousel = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n dots = true,\n arrows = false,\n draggable = false,\n waitForAnimate = false,\n dotPosition = 'bottom',\n vertical = dotPosition === 'left' || dotPosition === 'right',\n rootClassName,\n className: customClassName,\n style,\n id\n } = props,\n otherProps = __rest(props, [\"dots\", \"arrows\", \"draggable\", \"waitForAnimate\", \"dotPosition\", \"vertical\", \"rootClassName\", \"className\", \"style\", \"id\"]);\n const {\n getPrefixCls,\n direction,\n carousel\n } = React.useContext(ConfigContext);\n const slickRef = React.useRef();\n const goTo = function (slide) {\n let dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slickRef.current.slickGoTo(slide, dontAnimate);\n };\n React.useImperativeHandle(ref, () => ({\n goTo,\n autoPlay: slickRef.current.innerSlider.autoPlay,\n innerSlider: slickRef.current.innerSlider,\n prev: slickRef.current.slickPrev,\n next: slickRef.current.slickNext\n }), [slickRef.current]);\n const prevCount = React.useRef(React.Children.count(props.children));\n React.useEffect(() => {\n if (prevCount.current !== React.Children.count(props.children)) {\n goTo(props.initialSlide || 0, false);\n prevCount.current = React.Children.count(props.children);\n }\n }, [props.children]);\n const newProps = Object.assign({\n vertical,\n className: classNames(customClassName, carousel === null || carousel === void 0 ? void 0 : carousel.className),\n style: Object.assign(Object.assign({}, carousel === null || carousel === void 0 ? void 0 : carousel.style), style)\n }, otherProps);\n if (newProps.effect === 'fade') {\n newProps.fade = true;\n }\n const prefixCls = getPrefixCls('carousel', newProps.prefixCls);\n const dotsClass = 'slick-dots';\n const enableDots = !!dots;\n const dsClass = classNames(dotsClass, `${dotsClass}-${dotPosition}`, typeof dots === 'boolean' ? false : dots === null || dots === void 0 ? void 0 : dots.className);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const className = classNames(prefixCls, {\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-vertical`]: newProps.vertical\n }, hashId, rootClassName);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n id: id\n }, /*#__PURE__*/React.createElement(SlickCarousel, Object.assign({\n ref: slickRef\n }, newProps, {\n dots: enableDots,\n dotsClass: dsClass,\n arrows: arrows,\n draggable: draggable,\n verticalSwiping: vertical,\n waitForAnimate: waitForAnimate\n }))));\n});\nif (process.env.NODE_ENV !== 'production') {\n Carousel.displayName = 'Carousel';\n}\nexport default Carousel;","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 _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"b\"],\n _excluded2 = [\"v\"];\nimport { TinyColor } from '@ctrl/tinycolor';\nexport var getRoundNumber = function getRoundNumber(value) {\n return Math.round(Number(value || 0));\n};\nvar convertHsb2Hsv = function convertHsb2Hsv(color) {\n if (color && _typeof(color) === 'object' && 'h' in color && 'b' in color) {\n var _ref = color,\n b = _ref.b,\n resets = _objectWithoutProperties(_ref, _excluded);\n return _objectSpread(_objectSpread({}, resets), {}, {\n v: b\n });\n }\n if (typeof color === 'string' && /hsb/.test(color)) {\n return color.replace(/hsb/, 'hsv');\n }\n return color;\n};\nexport var Color = /*#__PURE__*/function (_TinyColor) {\n _inherits(Color, _TinyColor);\n var _super = _createSuper(Color);\n function Color(color) {\n _classCallCheck(this, Color);\n return _super.call(this, convertHsb2Hsv(color));\n }\n _createClass(Color, [{\n key: \"toHsbString\",\n value: function toHsbString() {\n var hsb = this.toHsb();\n var saturation = getRoundNumber(hsb.s * 100);\n var lightness = getRoundNumber(hsb.b * 100);\n var hue = getRoundNumber(hsb.h);\n var alpha = hsb.a;\n var hsbString = \"hsb(\".concat(hue, \", \").concat(saturation, \"%, \").concat(lightness, \"%)\");\n var hsbaString = \"hsba(\".concat(hue, \", \").concat(saturation, \"%, \").concat(lightness, \"%, \").concat(alpha.toFixed(alpha === 0 ? 0 : 2), \")\");\n return alpha === 1 ? hsbString : hsbaString;\n }\n }, {\n key: \"toHsb\",\n value: function toHsb() {\n var hsv = this.toHsv();\n if (_typeof(this.originalInput) === 'object' && this.originalInput) {\n if ('h' in this.originalInput) {\n hsv = this.originalInput;\n }\n }\n var _hsv = hsv,\n v = _hsv.v,\n resets = _objectWithoutProperties(_hsv, _excluded2);\n return _objectSpread(_objectSpread({}, resets), {}, {\n b: hsv.v\n });\n }\n }]);\n return Color;\n}(TinyColor);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { Color } from \"./color\";\nexport var ColorPickerPrefixCls = 'rc-color-picker';\nexport var generateColor = function generateColor(color) {\n if (color instanceof Color) {\n return color;\n }\n return new Color(color);\n};\nexport var defaultColor = generateColor('#1677ff');\nexport var calculateColor = function calculateColor(props) {\n var offset = props.offset,\n targetRef = props.targetRef,\n containerRef = props.containerRef,\n color = props.color,\n type = props.type;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var _targetRef$current$ge = targetRef.current.getBoundingClientRect(),\n targetWidth = _targetRef$current$ge.width,\n targetHeight = _targetRef$current$ge.height;\n var centerOffsetX = targetWidth / 2;\n var centerOffsetY = targetHeight / 2;\n var saturation = (offset.x + centerOffsetX) / width;\n var bright = 1 - (offset.y + centerOffsetY) / height;\n var hsb = color.toHsb();\n var alphaOffset = saturation;\n var hueOffset = (offset.x + centerOffsetX) / width * 360;\n if (type) {\n switch (type) {\n case 'hue':\n return generateColor(_objectSpread(_objectSpread({}, hsb), {}, {\n h: hueOffset <= 0 ? 0 : hueOffset\n }));\n case 'alpha':\n return generateColor(_objectSpread(_objectSpread({}, hsb), {}, {\n a: alphaOffset <= 0 ? 0 : alphaOffset\n }));\n }\n }\n return generateColor({\n h: hsb.h,\n s: saturation <= 0 ? 0 : saturation,\n b: bright >= 1 ? 1 : bright,\n a: hsb.a\n });\n};\nexport var calculateOffset = function calculateOffset(containerRef, targetRef, color, type) {\n var _containerRef$current2 = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current2.width,\n height = _containerRef$current2.height;\n var _targetRef$current$ge2 = targetRef.current.getBoundingClientRect(),\n targetWidth = _targetRef$current$ge2.width,\n targetHeight = _targetRef$current$ge2.height;\n var centerOffsetX = targetWidth / 2;\n var centerOffsetY = targetHeight / 2;\n var hsb = color.toHsb();\n\n // Exclusion of boundary cases\n if (targetWidth === 0 && targetHeight === 0 || targetWidth !== targetHeight) {\n return;\n }\n if (type) {\n switch (type) {\n case 'hue':\n return {\n x: hsb.h / 360 * width - centerOffsetX,\n y: -centerOffsetY / 3\n };\n case 'alpha':\n return {\n x: hsb.a / 1 * width - centerOffsetX,\n y: -centerOffsetY / 3\n };\n }\n }\n return {\n x: hsb.s * width - centerOffsetX,\n y: (1 - hsb.b) * height - centerOffsetY\n };\n};","import classNames from 'classnames';\nimport React from 'react';\nvar ColorBlock = function ColorBlock(_ref) {\n var color = _ref.color,\n prefixCls = _ref.prefixCls,\n className = _ref.className,\n style = _ref.style,\n onClick = _ref.onClick;\n var colorBlockCls = \"\".concat(prefixCls, \"-color-block\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(colorBlockCls, className),\n style: style,\n onClick: onClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(colorBlockCls, \"-inner\"),\n style: {\n background: color\n }\n }));\n};\nexport default ColorBlock;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef, useState } from 'react';\nfunction getPosition(e) {\n var obj = 'touches' in e ? e.touches[0] : e;\n var scrollXOffset = document.documentElement.scrollLeft || document.body.scrollLeft || window.pageXOffset;\n var scrollYOffset = document.documentElement.scrollTop || document.body.scrollTop || window.pageYOffset;\n return {\n pageX: obj.pageX - scrollXOffset,\n pageY: obj.pageY - scrollYOffset\n };\n}\nfunction useColorDrag(props) {\n var offset = props.offset,\n targetRef = props.targetRef,\n containerRef = props.containerRef,\n direction = props.direction,\n onDragChange = props.onDragChange,\n onDragChangeComplete = props.onDragChangeComplete,\n calculate = props.calculate,\n color = props.color,\n disabledDrag = props.disabledDrag;\n var _useState = useState(offset || {\n x: 0,\n y: 0\n }),\n _useState2 = _slicedToArray(_useState, 2),\n offsetValue = _useState2[0],\n setOffsetValue = _useState2[1];\n var mouseMoveRef = useRef(null);\n var mouseUpRef = useRef(null);\n var dragRef = useRef({\n flag: false\n });\n useEffect(function () {\n if (dragRef.current.flag === false) {\n var calcOffset = calculate === null || calculate === void 0 ? void 0 : calculate(containerRef);\n if (calcOffset) {\n setOffsetValue(calcOffset);\n }\n }\n }, [color, containerRef]);\n useEffect(function () {\n return function () {\n document.removeEventListener('mousemove', mouseMoveRef.current);\n document.removeEventListener('mouseup', mouseUpRef.current);\n document.removeEventListener('touchmove', mouseMoveRef.current);\n document.removeEventListener('touchend', mouseUpRef.current);\n mouseMoveRef.current = null;\n mouseUpRef.current = null;\n };\n }, []);\n var updateOffset = function updateOffset(e) {\n var _getPosition = getPosition(e),\n pageX = _getPosition.pageX,\n pageY = _getPosition.pageY;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n rectX = _containerRef$current.x,\n rectY = _containerRef$current.y,\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var _targetRef$current$ge = targetRef.current.getBoundingClientRect(),\n targetWidth = _targetRef$current$ge.width,\n targetHeight = _targetRef$current$ge.height;\n var centerOffsetX = targetWidth / 2;\n var centerOffsetY = targetHeight / 2;\n var offsetX = Math.max(0, Math.min(pageX - rectX, width)) - centerOffsetX;\n var offsetY = Math.max(0, Math.min(pageY - rectY, height)) - centerOffsetY;\n var calcOffset = {\n x: offsetX,\n y: direction === 'x' ? offsetValue.y : offsetY\n };\n\n // Exclusion of boundary cases\n if (targetWidth === 0 && targetHeight === 0 || targetWidth !== targetHeight) {\n return false;\n }\n setOffsetValue(calcOffset);\n onDragChange === null || onDragChange === void 0 ? void 0 : onDragChange(calcOffset);\n };\n var onDragMove = function onDragMove(e) {\n e.preventDefault();\n updateOffset(e);\n };\n var onDragStop = function onDragStop(e) {\n e.preventDefault();\n dragRef.current.flag = false;\n document.removeEventListener('mousemove', mouseMoveRef.current);\n document.removeEventListener('mouseup', mouseUpRef.current);\n document.removeEventListener('touchmove', mouseMoveRef.current);\n document.removeEventListener('touchend', mouseUpRef.current);\n mouseMoveRef.current = null;\n mouseUpRef.current = null;\n onDragChangeComplete === null || onDragChangeComplete === void 0 ? void 0 : onDragChangeComplete();\n };\n var onDragStart = function onDragStart(e) {\n // https://github.com/ant-design/ant-design/issues/43529\n document.removeEventListener('mousemove', mouseMoveRef.current);\n document.removeEventListener('mouseup', mouseUpRef.current);\n if (disabledDrag) {\n return;\n }\n updateOffset(e);\n dragRef.current.flag = true;\n document.addEventListener('mousemove', onDragMove);\n document.addEventListener('mouseup', onDragStop);\n document.addEventListener('touchmove', onDragMove);\n document.addEventListener('touchend', onDragStop);\n mouseMoveRef.current = onDragMove;\n mouseUpRef.current = onDragStop;\n };\n return [offsetValue, onDragStart];\n}\nexport default useColorDrag;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport React from 'react';\nvar Handler = function Handler(_ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 'default' : _ref$size,\n color = _ref.color,\n prefixCls = _ref.prefixCls;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-handler\"), _defineProperty({}, \"\".concat(prefixCls, \"-handler-sm\"), size === 'small')),\n style: {\n backgroundColor: color\n }\n });\n};\nexport default Handler;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from 'react';\nvar Palette = function Palette(_ref) {\n var children = _ref.children,\n style = _ref.style,\n prefixCls = _ref.prefixCls;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-palette\"),\n style: _objectSpread({\n position: 'relative'\n }, style)\n }, children);\n};\nexport default Palette;","import React, { forwardRef } from 'react';\nvar Transform = /*#__PURE__*/forwardRef(function (props, ref) {\n var children = props.children,\n offset = props.offset;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n style: {\n position: 'absolute',\n left: offset.x,\n top: offset.y,\n zIndex: 1\n }\n }, children);\n});\nexport default Transform;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport React, { useRef } from 'react';\nimport useColorDrag from \"../hooks/useColorDrag\";\nimport { calculateColor, calculateOffset } from \"../util\";\nimport Handler from \"./Handler\";\nimport Palette from \"./Palette\";\nimport Transform from \"./Transform\";\nvar Picker = function Picker(_ref) {\n var color = _ref.color,\n onChange = _ref.onChange,\n prefixCls = _ref.prefixCls,\n onChangeComplete = _ref.onChangeComplete,\n disabled = _ref.disabled;\n var pickerRef = useRef();\n var transformRef = useRef();\n var colorRef = useRef(color);\n var _useColorDrag = useColorDrag({\n color: color,\n containerRef: pickerRef,\n targetRef: transformRef,\n calculate: function calculate(containerRef) {\n return calculateOffset(containerRef, transformRef, color);\n },\n onDragChange: function onDragChange(offsetValue) {\n var calcColor = calculateColor({\n offset: offsetValue,\n targetRef: transformRef,\n containerRef: pickerRef,\n color: color\n });\n colorRef.current = calcColor;\n onChange(calcColor);\n },\n onDragChangeComplete: function onDragChangeComplete() {\n return onChangeComplete === null || onChangeComplete === void 0 ? void 0 : onChangeComplete(colorRef.current);\n },\n disabledDrag: disabled\n }),\n _useColorDrag2 = _slicedToArray(_useColorDrag, 2),\n offset = _useColorDrag2[0],\n dragStartHandle = _useColorDrag2[1];\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: pickerRef,\n className: \"\".concat(prefixCls, \"-select\"),\n onMouseDown: dragStartHandle,\n onTouchStart: dragStartHandle\n }, /*#__PURE__*/React.createElement(Palette, {\n prefixCls: prefixCls\n }, /*#__PURE__*/React.createElement(Transform, {\n offset: offset,\n ref: transformRef\n }, /*#__PURE__*/React.createElement(Handler, {\n color: color.toRgbString(),\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-saturation\"),\n style: {\n backgroundColor: \"hsl(\".concat(color.toHsb().h, \",100%, 50%)\"),\n backgroundImage: 'linear-gradient(0deg, #000, transparent),linear-gradient(90deg, #fff, hsla(0, 0%, 100%, 0))'\n }\n })));\n};\nexport default Picker;","import React, { useMemo } from 'react';\nimport { generateColor } from \"../util\";\nvar Gradient = function Gradient(_ref) {\n var colors = _ref.colors,\n children = _ref.children,\n _ref$direction = _ref.direction,\n direction = _ref$direction === void 0 ? 'to right' : _ref$direction,\n type = _ref.type,\n prefixCls = _ref.prefixCls;\n var gradientColors = useMemo(function () {\n return colors.map(function (color, idx) {\n var result = generateColor(color);\n if (type === 'alpha' && idx === colors.length - 1) {\n result.setAlpha(1);\n }\n return result.toRgbString();\n }).join(',');\n }, [colors, type]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-gradient\"),\n style: {\n position: 'absolute',\n inset: 0,\n background: \"linear-gradient(\".concat(direction, \", \").concat(gradientColors, \")\")\n }\n }, children);\n};\nexport default Gradient;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport React, { useRef } from 'react';\nimport useColorDrag from \"../hooks/useColorDrag\";\nimport { calculateColor, calculateOffset } from \"../util\";\nimport Palette from \"./Palette\";\nimport Gradient from \"./Gradient\";\nimport Handler from \"./Handler\";\nimport Transform from \"./Transform\";\nvar Slider = function Slider(_ref) {\n var gradientColors = _ref.gradientColors,\n direction = _ref.direction,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'hue' : _ref$type,\n color = _ref.color,\n value = _ref.value,\n onChange = _ref.onChange,\n onChangeComplete = _ref.onChangeComplete,\n disabled = _ref.disabled,\n prefixCls = _ref.prefixCls;\n var sliderRef = useRef();\n var transformRef = useRef();\n var colorRef = useRef(color);\n var _useColorDrag = useColorDrag({\n color: color,\n targetRef: transformRef,\n containerRef: sliderRef,\n calculate: function calculate(containerRef) {\n return calculateOffset(containerRef, transformRef, color, type);\n },\n onDragChange: function onDragChange(offsetValue) {\n var calcColor = calculateColor({\n offset: offsetValue,\n targetRef: transformRef,\n containerRef: sliderRef,\n color: color,\n type: type\n });\n colorRef.current = calcColor;\n onChange(calcColor);\n },\n onDragChangeComplete: function onDragChangeComplete() {\n onChangeComplete === null || onChangeComplete === void 0 ? void 0 : onChangeComplete(colorRef.current, type);\n },\n direction: 'x',\n disabledDrag: disabled\n }),\n _useColorDrag2 = _slicedToArray(_useColorDrag, 2),\n offset = _useColorDrag2[0],\n dragStartHandle = _useColorDrag2[1];\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: sliderRef,\n className: classNames(\"\".concat(prefixCls, \"-slider\"), \"\".concat(prefixCls, \"-slider-\").concat(type)),\n onMouseDown: dragStartHandle,\n onTouchStart: dragStartHandle\n }, /*#__PURE__*/React.createElement(Palette, {\n prefixCls: prefixCls\n }, /*#__PURE__*/React.createElement(Transform, {\n offset: offset,\n ref: transformRef\n }, /*#__PURE__*/React.createElement(Handler, {\n size: \"small\",\n color: value,\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(Gradient, {\n colors: gradientColors,\n direction: direction,\n type: type,\n prefixCls: prefixCls\n })));\n};\nexport default Slider;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState } from 'react';\nimport { generateColor } from \"../util\";\nfunction hasValue(value) {\n return value !== undefined;\n}\nvar useColorState = function useColorState(defaultStateValue, option) {\n var defaultValue = option.defaultValue,\n value = option.value;\n var _useState = useState(function () {\n var mergeState;\n if (hasValue(value)) {\n mergeState = value;\n } else if (hasValue(defaultValue)) {\n mergeState = defaultValue;\n } else {\n mergeState = defaultStateValue;\n }\n return generateColor(mergeState);\n }),\n _useState2 = _slicedToArray(_useState, 2),\n colorValue = _useState2[0],\n setColorValue = _useState2[1];\n useEffect(function () {\n if (value) {\n setColorValue(generateColor(value));\n }\n }, [value]);\n return [colorValue, setColorValue];\n};\nexport default useColorState;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport React, { forwardRef, useMemo } from 'react';\nimport { ColorPickerPrefixCls, defaultColor, generateColor } from \"./util\";\nimport classNames from 'classnames';\nimport ColorBlock from \"./components/ColorBlock\";\nimport Picker from \"./components/Picker\";\nimport Slider from \"./components/Slider\";\nimport useColorState from \"./hooks/useColorState\";\nvar hueColor = ['rgb(255, 0, 0) 0%', 'rgb(255, 255, 0) 17%', 'rgb(0, 255, 0) 33%', 'rgb(0, 255, 255) 50%', 'rgb(0, 0, 255) 67%', 'rgb(255, 0, 255) 83%', 'rgb(255, 0, 0) 100%'];\nexport default /*#__PURE__*/forwardRef(function (props, ref) {\n var value = props.value,\n defaultValue = props.defaultValue,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? ColorPickerPrefixCls : _props$prefixCls,\n onChange = props.onChange,\n onChangeComplete = props.onChangeComplete,\n className = props.className,\n style = props.style,\n panelRender = props.panelRender,\n _props$disabledAlpha = props.disabledAlpha,\n disabledAlpha = _props$disabledAlpha === void 0 ? false : _props$disabledAlpha,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled;\n var _useColorState = useColorState(defaultColor, {\n value: value,\n defaultValue: defaultValue\n }),\n _useColorState2 = _slicedToArray(_useColorState, 2),\n colorValue = _useColorState2[0],\n setColorValue = _useColorState2[1];\n var alphaColor = useMemo(function () {\n var rgb = generateColor(colorValue.toRgbString());\n // alpha color need equal 1 for base color\n rgb.setAlpha(1);\n return rgb.toRgbString();\n }, [colorValue]);\n var mergeCls = classNames(\"\".concat(prefixCls, \"-panel\"), className, _defineProperty({}, \"\".concat(prefixCls, \"-panel-disabled\"), disabled));\n var basicProps = {\n prefixCls: prefixCls,\n onChangeComplete: onChangeComplete,\n disabled: disabled\n };\n var handleChange = function handleChange(data, type) {\n if (!value) {\n setColorValue(data);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(data, type);\n };\n var defaultPanel = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Picker, _extends({\n color: colorValue,\n onChange: handleChange\n }, basicProps)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-slider-container\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-slider-group\"), _defineProperty({}, \"\".concat(prefixCls, \"-slider-group-disabled-alpha\"), disabledAlpha))\n }, /*#__PURE__*/React.createElement(Slider, _extends({\n gradientColors: hueColor,\n color: colorValue,\n value: \"hsl(\".concat(colorValue.toHsb().h, \",100%, 50%)\"),\n onChange: function onChange(color) {\n return handleChange(color, 'hue');\n }\n }, basicProps)), !disabledAlpha && /*#__PURE__*/React.createElement(Slider, _extends({\n type: \"alpha\",\n gradientColors: ['rgba(255, 0, 4, 0) 0%', alphaColor],\n color: colorValue,\n value: colorValue.toRgbString(),\n onChange: function onChange(color) {\n return handleChange(color, 'alpha');\n }\n }, basicProps))), /*#__PURE__*/React.createElement(ColorBlock, {\n color: colorValue.toRgbString(),\n prefixCls: prefixCls\n })));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: mergeCls,\n style: style,\n ref: ref\n }, typeof panelRender === 'function' ? panelRender(defaultPanel) : defaultPanel);\n});","import ColorPicker from \"./ColorPicker\";\nexport { Color } from \"./color\";\nexport { default as ColorBlock } from \"./components/ColorBlock\";\nexport * from \"./interface\";\nexport default ColorPicker;","import React from 'react';\nexport const PanelPickerContext = /*#__PURE__*/React.createContext({});\nexport const PanelPresetsContext = /*#__PURE__*/React.createContext({});\nexport const {\n Provider: PanelPickerProvider\n} = PanelPickerContext;\nexport const {\n Provider: PanelPresetsProvider\n} = PanelPresetsContext;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport { Color as RcColor } from '@rc-component/color-picker';\nexport const toHexFormat = (value, alpha) => (value === null || value === void 0 ? void 0 : value.replace(/[^\\w/]/gi, '').slice(0, alpha ? 8 : 6)) || '';\nexport const getHex = (value, alpha) => value ? toHexFormat(value, alpha) : '';\nexport let ColorFactory = /*#__PURE__*/function () {\n function ColorFactory(color) {\n _classCallCheck(this, ColorFactory);\n this.metaColor = new RcColor(color);\n if (!color) {\n this.metaColor.setAlpha(0);\n }\n }\n _createClass(ColorFactory, [{\n key: \"toHsb\",\n value: function toHsb() {\n return this.metaColor.toHsb();\n }\n }, {\n key: \"toHsbString\",\n value: function toHsbString() {\n return this.metaColor.toHsbString();\n }\n }, {\n key: \"toHex\",\n value: function toHex() {\n return getHex(this.toHexString(), this.metaColor.getAlpha() < 1);\n }\n }, {\n key: \"toHexString\",\n value: function toHexString() {\n return this.metaColor.getAlpha() === 1 ? this.metaColor.toHexString() : this.metaColor.toHex8String();\n }\n }, {\n key: \"toRgb\",\n value: function toRgb() {\n return this.metaColor.toRgb();\n }\n }, {\n key: \"toRgbString\",\n value: function toRgbString() {\n return this.metaColor.toRgbString();\n }\n }]);\n return ColorFactory;\n}();","import { ColorFactory } from './color';\nexport const customizePrefixCls = 'ant-color-picker';\nexport const generateColor = color => {\n if (color instanceof ColorFactory) {\n return color;\n }\n return new ColorFactory(color);\n};\nexport const getRoundNumber = value => Math.round(Number(value || 0));\nexport const getAlphaColor = color => getRoundNumber(color.toHsb().a * 100);\nexport const genAlphaColor = (color, alpha) => {\n const hsba = color.toHsb();\n hsba.a = alpha || 1;\n return generateColor(hsba);\n};","import React from 'react';\nimport { generateColor } from '../util';\nconst ColorClear = _ref => {\n let {\n prefixCls,\n value,\n colorCleared,\n onChange\n } = _ref;\n const handleClick = () => {\n if (value && !colorCleared) {\n const hsba = value.toHsb();\n hsba.a = 0;\n const genColor = generateColor(hsba);\n onChange === null || onChange === void 0 ? void 0 : onChange(genColor);\n }\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-clear`,\n onClick: handleClick\n });\n};\nexport default ColorClear;","export var ColorFormat;\n(function (ColorFormat) {\n ColorFormat[\"hex\"] = \"hex\";\n ColorFormat[\"rgb\"] = \"rgb\";\n ColorFormat[\"hsb\"] = \"hsb\";\n})(ColorFormat || (ColorFormat = {}));","import classNames from 'classnames';\nimport React, { useEffect, useState } from 'react';\nimport InputNumber from '../../input-number';\nconst ColorSteppers = _ref => {\n let {\n prefixCls,\n min = 0,\n max = 100,\n value,\n onChange,\n className,\n formatter\n } = _ref;\n const colorSteppersPrefixCls = `${prefixCls}-steppers`;\n const [stepValue, setStepValue] = useState(value);\n // Update step value\n useEffect(() => {\n if (!Number.isNaN(value)) {\n setStepValue(value);\n }\n }, [value]);\n return /*#__PURE__*/React.createElement(InputNumber, {\n className: classNames(colorSteppersPrefixCls, className),\n min: min,\n max: max,\n value: stepValue,\n formatter: formatter,\n size: \"small\",\n onChange: step => {\n if (!value) {\n setStepValue(step || 0);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(step);\n }\n });\n};\nexport default ColorSteppers;","import React, { useEffect, useState } from 'react';\nimport { generateColor, getAlphaColor } from '../util';\nimport ColorSteppers from './ColorSteppers';\nconst ColorAlphaInput = _ref => {\n let {\n prefixCls,\n value,\n onChange\n } = _ref;\n const colorAlphaInputPrefixCls = `${prefixCls}-alpha-input`;\n const [alphaValue, setAlphaValue] = useState(generateColor(value || '#000'));\n // Update step value\n useEffect(() => {\n if (value) {\n setAlphaValue(value);\n }\n }, [value]);\n const handleAlphaChange = step => {\n const hsba = alphaValue.toHsb();\n hsba.a = (step || 0) / 100;\n const genColor = generateColor(hsba);\n if (!value) {\n setAlphaValue(genColor);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(genColor);\n };\n return /*#__PURE__*/React.createElement(ColorSteppers, {\n value: getAlphaColor(alphaValue),\n prefixCls: prefixCls,\n formatter: step => `${step}%`,\n className: colorAlphaInputPrefixCls,\n onChange: handleAlphaChange\n });\n};\nexport default ColorAlphaInput;","import React, { useEffect, useState } from 'react';\nimport Input from '../../input';\nimport { toHexFormat } from '../color';\nimport { generateColor } from '../util';\nconst hexReg = /(^#[\\da-f]{6}$)|(^#[\\da-f]{8}$)/i;\nconst isHexString = hex => hexReg.test(`#${hex}`);\nconst ColorHexInput = _ref => {\n let {\n prefixCls,\n value,\n onChange\n } = _ref;\n const colorHexInputPrefixCls = `${prefixCls}-hex-input`;\n const [hexValue, setHexValue] = useState(value === null || value === void 0 ? void 0 : value.toHex());\n // Update step value\n useEffect(() => {\n const hex = value === null || value === void 0 ? void 0 : value.toHex();\n if (isHexString(hex) && value) {\n setHexValue(toHexFormat(hex));\n }\n }, [value]);\n const handleHexChange = e => {\n const originValue = e.target.value;\n setHexValue(toHexFormat(originValue));\n if (isHexString(toHexFormat(originValue, true))) {\n onChange === null || onChange === void 0 ? void 0 : onChange(generateColor(originValue));\n }\n };\n return /*#__PURE__*/React.createElement(Input, {\n className: colorHexInputPrefixCls,\n value: hexValue,\n prefix: \"#\",\n onChange: handleHexChange,\n size: \"small\"\n });\n};\nexport default ColorHexInput;","import React, { useEffect, useState } from 'react';\nimport { generateColor, getRoundNumber } from '../util';\nimport ColorSteppers from './ColorSteppers';\nconst ColorHsbInput = _ref => {\n let {\n prefixCls,\n value,\n onChange\n } = _ref;\n const colorHsbInputPrefixCls = `${prefixCls}-hsb-input`;\n const [hsbValue, setHsbValue] = useState(generateColor(value || '#000'));\n // Update step value\n useEffect(() => {\n if (value) {\n setHsbValue(value);\n }\n }, [value]);\n const handleHsbChange = (step, type) => {\n const hsb = hsbValue.toHsb();\n hsb[type] = type === 'h' ? step : (step || 0) / 100;\n const genColor = generateColor(hsb);\n if (!value) {\n setHsbValue(genColor);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(genColor);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: colorHsbInputPrefixCls\n }, /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 360,\n min: 0,\n value: Number(hsbValue.toHsb().h),\n prefixCls: prefixCls,\n className: colorHsbInputPrefixCls,\n formatter: step => getRoundNumber(step || 0).toString(),\n onChange: step => handleHsbChange(Number(step), 'h')\n }), /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 100,\n min: 0,\n value: Number(hsbValue.toHsb().s) * 100,\n prefixCls: prefixCls,\n className: colorHsbInputPrefixCls,\n formatter: step => `${getRoundNumber(step || 0)}%`,\n onChange: step => handleHsbChange(Number(step), 's')\n }), /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 100,\n min: 0,\n value: Number(hsbValue.toHsb().b) * 100,\n prefixCls: prefixCls,\n className: colorHsbInputPrefixCls,\n formatter: step => `${getRoundNumber(step || 0)}%`,\n onChange: step => handleHsbChange(Number(step), 'b')\n }));\n};\nexport default ColorHsbInput;","import React, { useEffect, useState } from 'react';\nimport { generateColor } from '../util';\nimport ColorSteppers from './ColorSteppers';\nconst ColorRgbInput = _ref => {\n let {\n prefixCls,\n value,\n onChange\n } = _ref;\n const colorRgbInputPrefixCls = `${prefixCls}-rgb-input`;\n const [rgbValue, setRgbValue] = useState(generateColor(value || '#000'));\n // Update step value\n useEffect(() => {\n if (value) {\n setRgbValue(value);\n }\n }, [value]);\n const handleRgbChange = (step, type) => {\n const rgb = rgbValue.toRgb();\n rgb[type] = step || 0;\n const genColor = generateColor(rgb);\n if (!value) {\n setRgbValue(genColor);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(genColor);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: colorRgbInputPrefixCls\n }, /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 255,\n min: 0,\n value: Number(rgbValue.toRgb().r),\n prefixCls: prefixCls,\n className: colorRgbInputPrefixCls,\n onChange: step => handleRgbChange(Number(step), 'r')\n }), /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 255,\n min: 0,\n value: Number(rgbValue.toRgb().g),\n prefixCls: prefixCls,\n className: colorRgbInputPrefixCls,\n onChange: step => handleRgbChange(Number(step), 'g')\n }), /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 255,\n min: 0,\n value: Number(rgbValue.toRgb().b),\n prefixCls: prefixCls,\n className: colorRgbInputPrefixCls,\n onChange: step => handleRgbChange(Number(step), 'b')\n }));\n};\nexport default ColorRgbInput;","import useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { useMemo } from 'react';\nimport Select from '../../select';\nimport { ColorFormat } from '../interface';\nimport ColorAlphaInput from './ColorAlphaInput';\nimport ColorHexInput from './ColorHexInput';\nimport ColorHsbInput from './ColorHsbInput';\nimport ColorRgbInput from './ColorRgbInput';\nconst selectOptions = [ColorFormat.hex, ColorFormat.hsb, ColorFormat.rgb].map(format => ({\n value: format,\n label: format.toLocaleUpperCase()\n}));\nconst ColorInput = props => {\n const {\n prefixCls,\n format,\n value,\n disabledAlpha,\n onFormatChange,\n onChange\n } = props;\n const [colorFormat, setColorFormat] = useMergedState(ColorFormat.hex, {\n value: format,\n onChange: onFormatChange\n });\n const colorInputPrefixCls = `${prefixCls}-input`;\n const handleFormatChange = newFormat => {\n setColorFormat(newFormat);\n };\n const steppersNode = useMemo(() => {\n const inputProps = {\n value,\n prefixCls,\n onChange\n };\n switch (colorFormat) {\n case ColorFormat.hsb:\n return /*#__PURE__*/React.createElement(ColorHsbInput, Object.assign({}, inputProps));\n case ColorFormat.rgb:\n return /*#__PURE__*/React.createElement(ColorRgbInput, Object.assign({}, inputProps));\n case ColorFormat.hex:\n default:\n return /*#__PURE__*/React.createElement(ColorHexInput, Object.assign({}, inputProps));\n }\n }, [colorFormat, prefixCls, value, onChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${colorInputPrefixCls}-container`\n }, /*#__PURE__*/React.createElement(Select, {\n value: colorFormat,\n bordered: false,\n getPopupContainer: current => current,\n popupMatchSelectWidth: 68,\n placement: \"bottomRight\",\n onChange: handleFormatChange,\n className: `${prefixCls}-format-select`,\n size: \"small\",\n options: selectOptions\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: colorInputPrefixCls\n }, steppersNode), !disabledAlpha && /*#__PURE__*/React.createElement(ColorAlphaInput, {\n prefixCls: prefixCls,\n value: value,\n onChange: onChange\n }));\n};\nexport default ColorInput;","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 RcColorPicker from '@rc-component/color-picker';\nimport React, { useContext } from 'react';\nimport { PanelPickerContext } from '../context';\nimport ColorClear from './ColorClear';\nimport ColorInput from './ColorInput';\nconst PanelPicker = () => {\n const _a = useContext(PanelPickerContext),\n {\n prefixCls,\n colorCleared,\n allowClear,\n value,\n disabledAlpha,\n onChange,\n onClear,\n onChangeComplete\n } = _a,\n injectProps = __rest(_a, [\"prefixCls\", \"colorCleared\", \"allowClear\", \"value\", \"disabledAlpha\", \"onChange\", \"onClear\", \"onChangeComplete\"]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, allowClear && /*#__PURE__*/React.createElement(ColorClear, Object.assign({\n prefixCls: prefixCls,\n value: value,\n colorCleared: colorCleared,\n onChange: clearColor => {\n onChange === null || onChange === void 0 ? void 0 : onChange(clearColor);\n onClear === null || onClear === void 0 ? void 0 : onClear();\n }\n }, injectProps)), /*#__PURE__*/React.createElement(RcColorPicker, {\n prefixCls: prefixCls,\n value: value === null || value === void 0 ? void 0 : value.toHsb(),\n disabledAlpha: disabledAlpha,\n onChange: (colorValue, type) => onChange === null || onChange === void 0 ? void 0 : onChange(colorValue, type, true),\n onChangeComplete: onChangeComplete\n }), /*#__PURE__*/React.createElement(ColorInput, Object.assign({\n value: value,\n onChange: onChange,\n prefixCls: prefixCls,\n disabledAlpha: disabledAlpha\n }, injectProps)));\n};\nexport default PanelPicker;","import { ColorBlock, Color as RcColor } from '@rc-component/color-picker';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { useMemo } from 'react';\nimport Collapse from '../../collapse';\nimport { useLocale } from '../../locale';\nimport theme from '../../theme';\nimport { generateColor } from '../util';\nconst genPresetColor = list => list.map(value => {\n value.colors = value.colors.map(generateColor);\n return value;\n});\nconst isBright = (value, bgColorToken) => {\n const {\n r,\n g,\n b,\n a\n } = value.toRgb();\n const hsv = new RcColor(value.toRgbString()).onBackground(bgColorToken).toHsv();\n if (a <= 0.5) {\n // Adapted to dark mode\n return hsv.v > 0.5;\n }\n return r * 0.299 + g * 0.587 + b * 0.114 > 192;\n};\nconst ColorPresets = _ref => {\n let {\n prefixCls,\n presets,\n value: color,\n onChange\n } = _ref;\n const [locale] = useLocale('ColorPicker');\n const {\n token: {\n colorBgElevated\n }\n } = theme.useToken();\n const [presetsValue] = useMergedState(genPresetColor(presets), {\n value: genPresetColor(presets),\n postState: genPresetColor\n });\n const colorPresetsPrefixCls = `${prefixCls}-presets`;\n const activeKeys = useMemo(() => presetsValue.map(preset => `panel-${preset.label}`), [presetsValue]);\n const handleClick = colorValue => {\n onChange === null || onChange === void 0 ? void 0 : onChange(colorValue);\n };\n const items = presetsValue.map(preset => {\n var _a;\n return {\n key: `panel-${preset.label}`,\n label: /*#__PURE__*/React.createElement(\"div\", {\n className: `${colorPresetsPrefixCls}-label`\n }, preset === null || preset === void 0 ? void 0 : preset.label),\n children: /*#__PURE__*/React.createElement(\"div\", {\n className: `${colorPresetsPrefixCls}-items`\n }, Array.isArray(preset === null || preset === void 0 ? void 0 : preset.colors) && ((_a = preset.colors) === null || _a === void 0 ? void 0 : _a.length) > 0 ? preset.colors.map((presetColor, index) => /*#__PURE__*/React.createElement(ColorBlock\n // eslint-disable-next-line react/no-array-index-key\n , {\n // eslint-disable-next-line react/no-array-index-key\n key: `preset-${index}-${presetColor.toHexString()}`,\n color: generateColor(presetColor).toRgbString(),\n prefixCls: prefixCls,\n className: classNames(`${colorPresetsPrefixCls}-color`, {\n [`${colorPresetsPrefixCls}-color-checked`]: presetColor.toHexString() === (color === null || color === void 0 ? void 0 : color.toHexString()),\n [`${colorPresetsPrefixCls}-color-bright`]: isBright(presetColor, colorBgElevated)\n }),\n onClick: () => handleClick(presetColor)\n })) : /*#__PURE__*/React.createElement(\"span\", {\n className: `${colorPresetsPrefixCls}-empty`\n }, locale.presetEmpty))\n };\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: colorPresetsPrefixCls\n }, /*#__PURE__*/React.createElement(Collapse, {\n defaultActiveKey: activeKeys,\n ghost: true,\n items: items\n }));\n};\nexport default ColorPresets;","import React, { useContext } from 'react';\nimport { PanelPresetsContext } from '../context';\nimport ColorPresets from './ColorPresets';\nconst PanelPresets = () => {\n const {\n prefixCls,\n value,\n presets,\n onChange\n } = useContext(PanelPresetsContext);\n return Array.isArray(presets) ? /*#__PURE__*/React.createElement(ColorPresets, {\n value: value,\n presets: presets,\n prefixCls: prefixCls,\n onChange: onChange\n }) : null;\n};\nexport default PanelPresets;","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 React from 'react';\nimport Divider from '../divider';\nimport PanelPicker from './components/PanelPicker';\nimport PanelPresets from './components/PanelPresets';\nimport { PanelPickerProvider, PanelPresetsProvider } from './context';\nconst ColorPickerPanel = props => {\n const {\n prefixCls,\n presets,\n panelRender,\n color,\n onChange,\n onClear\n } = props,\n injectProps = __rest(props, [\"prefixCls\", \"presets\", \"panelRender\", \"color\", \"onChange\", \"onClear\"]);\n const colorPickerPanelPrefixCls = `${prefixCls}-inner-content`;\n // ==== Inject props ===\n const panelPickerProps = Object.assign({\n prefixCls,\n value: color,\n onChange,\n onClear\n }, injectProps);\n const panelPresetsProps = React.useMemo(() => ({\n prefixCls,\n value: color,\n presets,\n onChange\n }), [prefixCls, color, presets, onChange]);\n // ====================== Render ======================\n const innerPanel = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(PanelPicker, null), Array.isArray(presets) && /*#__PURE__*/React.createElement(Divider, {\n className: `${colorPickerPanelPrefixCls}-divider`\n }), /*#__PURE__*/React.createElement(PanelPresets, null));\n return /*#__PURE__*/React.createElement(PanelPickerProvider, {\n value: panelPickerProps\n }, /*#__PURE__*/React.createElement(PanelPresetsProvider, {\n value: panelPresetsProps\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: colorPickerPanelPrefixCls\n }, typeof panelRender === 'function' ? panelRender(innerPanel, {\n components: {\n Picker: PanelPicker,\n Presets: PanelPresets\n }\n }) : innerPanel)));\n};\nif (process.env.NODE_ENV !== 'production') {\n ColorPickerPanel.displayName = 'ColorPickerPanel';\n}\nexport default ColorPickerPanel;","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 { ColorBlock } from '@rc-component/color-picker';\nimport classNames from 'classnames';\nimport React, { forwardRef, useMemo } from 'react';\nimport { getAlphaColor } from '../util';\nimport ColorClear from './ColorClear';\nconst ColorTrigger = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n color,\n prefixCls,\n open,\n colorCleared,\n disabled,\n format,\n className,\n showText\n } = props,\n rest = __rest(props, [\"color\", \"prefixCls\", \"open\", \"colorCleared\", \"disabled\", \"format\", \"className\", \"showText\"]);\n const colorTriggerPrefixCls = `${prefixCls}-trigger`;\n const containerNode = useMemo(() => colorCleared ? /*#__PURE__*/React.createElement(ColorClear, {\n prefixCls: prefixCls\n }) : /*#__PURE__*/React.createElement(ColorBlock, {\n prefixCls: prefixCls,\n color: color.toRgbString()\n }), [color, colorCleared, prefixCls]);\n const genColorString = () => {\n const hexString = color.toHexString().toUpperCase();\n const alpha = getAlphaColor(color);\n switch (format) {\n case 'rgb':\n return color.toRgbString();\n case 'hsb':\n return color.toHsbString();\n case 'hex':\n default:\n return alpha < 100 ? `${hexString.slice(0, 7)},${alpha}%` : hexString;\n }\n };\n const renderText = () => {\n if (typeof showText === 'function') {\n return showText(color);\n }\n if (showText) {\n return genColorString();\n }\n };\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n ref: ref,\n className: classNames(colorTriggerPrefixCls, className, {\n [`${colorTriggerPrefixCls}-active`]: open,\n [`${colorTriggerPrefixCls}-disabled`]: disabled\n })\n }, rest), containerNode, showText && /*#__PURE__*/React.createElement(\"div\", {\n className: `${colorTriggerPrefixCls}-text`\n }, renderText()));\n});\nexport default ColorTrigger;","import { useEffect, useState } from 'react';\nimport { generateColor } from '../util';\nfunction hasValue(value) {\n return value !== undefined;\n}\nconst useColorState = (defaultStateValue, option) => {\n const {\n defaultValue,\n value\n } = option;\n const [colorValue, setColorValue] = useState(() => {\n let mergeState;\n if (hasValue(value)) {\n mergeState = value;\n } else if (hasValue(defaultValue)) {\n mergeState = defaultValue;\n } else {\n mergeState = defaultStateValue;\n }\n return generateColor(mergeState || '');\n });\n useEffect(() => {\n if (value) {\n setColorValue(generateColor(value));\n }\n }, [value]);\n return [colorValue, setColorValue];\n};\nexport default useColorState;","/**\n * @private Internal usage only\n */\nexport const getTransBg = (size, colorFill) => ({\n backgroundImage: `conic-gradient(${colorFill} 0 25%, transparent 0 50%, ${colorFill} 0 75%, transparent 0)`,\n backgroundSize: `${size} ${size}`\n});\nconst genColorBlockStyle = (token, size) => {\n const {\n componentCls,\n borderRadiusSM,\n colorPickerInsetShadow,\n lineWidth,\n colorFillSecondary\n } = token;\n return {\n [`${componentCls}-color-block`]: Object.assign(Object.assign({\n position: 'relative',\n borderRadius: borderRadiusSM,\n width: size,\n height: size,\n boxShadow: colorPickerInsetShadow\n }, getTransBg('50%', token.colorFillSecondary)), {\n [`${componentCls}-color-block-inner`]: {\n width: '100%',\n height: '100%',\n border: `${lineWidth}px solid ${colorFillSecondary}`,\n borderRadius: 'inherit'\n }\n })\n };\n};\nexport default genColorBlockStyle;","const genInputStyle = token => {\n const {\n componentCls,\n antCls,\n fontSizeSM,\n lineHeightSM,\n colorPickerAlphaInputWidth,\n marginXXS,\n paddingXXS,\n controlHeightSM,\n marginXS,\n fontSizeIcon,\n paddingXS,\n colorTextPlaceholder,\n colorPickerInputNumberHandleWidth,\n lineWidth\n } = token;\n return {\n [`${componentCls}-input-container`]: {\n display: 'flex',\n [`${componentCls}-steppers${antCls}-input-number`]: {\n fontSize: fontSizeSM,\n lineHeight: lineHeightSM,\n [`${antCls}-input-number-input`]: {\n paddingInlineStart: paddingXXS,\n paddingInlineEnd: 0\n },\n [`${antCls}-input-number-handler-wrap`]: {\n width: colorPickerInputNumberHandleWidth\n }\n },\n [`${componentCls}-steppers${componentCls}-alpha-input`]: {\n flex: `0 0 ${colorPickerAlphaInputWidth}px`,\n marginInlineStart: marginXXS\n },\n [`${componentCls}-format-select${antCls}-select`]: {\n marginInlineEnd: marginXS,\n width: 'auto',\n '&-single': {\n [`${antCls}-select-selector`]: {\n padding: 0,\n border: 0\n },\n [`${antCls}-select-arrow`]: {\n insetInlineEnd: 0\n },\n [`${antCls}-select-selection-item`]: {\n paddingInlineEnd: fontSizeIcon + marginXXS,\n fontSize: fontSizeSM,\n lineHeight: `${controlHeightSM}px`\n },\n [`${antCls}-select-item-option-content`]: {\n fontSize: fontSizeSM,\n lineHeight: lineHeightSM\n },\n [`${antCls}-select-dropdown`]: {\n [`${antCls}-select-item`]: {\n minHeight: 'auto'\n }\n }\n }\n },\n [`${componentCls}-input`]: {\n gap: marginXXS,\n alignItems: 'center',\n flex: 1,\n width: 0,\n [`${componentCls}-hsb-input,${componentCls}-rgb-input`]: {\n display: 'flex',\n gap: marginXXS,\n alignItems: 'center'\n },\n [`${componentCls}-steppers`]: {\n flex: 1\n },\n [`${componentCls}-hex-input${antCls}-input-affix-wrapper`]: {\n flex: 1,\n padding: `0 ${paddingXS}px`,\n [`${antCls}-input`]: {\n fontSize: fontSizeSM,\n textTransform: 'uppercase',\n lineHeight: `${controlHeightSM - 2 * lineWidth}px`\n },\n [`${antCls}-input-prefix`]: {\n color: colorTextPlaceholder\n }\n }\n }\n }\n };\n};\nexport default genInputStyle;","import { getTransBg } from './color-block';\nconst genPickerStyle = token => {\n const {\n componentCls,\n controlHeightLG,\n borderRadiusSM,\n colorPickerInsetShadow,\n marginSM,\n colorBgElevated,\n colorFillSecondary,\n lineWidthBold,\n colorPickerHandlerSize,\n colorPickerHandlerSizeSM,\n colorPickerSliderHeight\n } = token;\n return {\n [`${componentCls}-select`]: {\n [`${componentCls}-palette`]: {\n minHeight: controlHeightLG * 4,\n overflow: 'hidden',\n borderRadius: borderRadiusSM\n },\n [`${componentCls}-saturation`]: {\n position: 'absolute',\n borderRadius: 'inherit',\n boxShadow: colorPickerInsetShadow,\n inset: 0\n },\n marginBottom: marginSM\n },\n [`${componentCls}-handler`]: {\n width: colorPickerHandlerSize,\n height: colorPickerHandlerSize,\n border: `${lineWidthBold}px solid ${colorBgElevated}`,\n position: 'relative',\n borderRadius: '50%',\n cursor: 'pointer',\n boxShadow: `${colorPickerInsetShadow}, 0 0 0 1px ${colorFillSecondary}`,\n '&-sm': {\n width: colorPickerHandlerSizeSM,\n height: colorPickerHandlerSizeSM\n }\n },\n [`${componentCls}-slider`]: {\n borderRadius: colorPickerSliderHeight / 2,\n [`${componentCls}-palette`]: {\n height: colorPickerSliderHeight\n },\n [`${componentCls}-gradient`]: {\n borderRadius: colorPickerSliderHeight / 2,\n boxShadow: colorPickerInsetShadow\n },\n '&-alpha': getTransBg(`${colorPickerSliderHeight}px`, token.colorFillSecondary),\n '&-hue': {\n marginBottom: marginSM\n }\n },\n [`${componentCls}-slider-container`]: {\n display: 'flex',\n gap: marginSM,\n marginBottom: marginSM,\n [`${componentCls}-slider-group`]: {\n flex: 1,\n '&-disabled-alpha': {\n display: 'flex',\n alignItems: 'center',\n [`${componentCls}-slider`]: {\n flex: 1,\n marginBottom: 0\n }\n }\n }\n }\n };\n};\nexport default genPickerStyle;","const genPresetsStyle = token => {\n const {\n componentCls,\n antCls,\n colorTextQuaternary,\n paddingXXS,\n colorPickerPresetColorSize,\n fontSizeSM,\n colorText,\n lineHeightSM,\n lineWidth,\n borderRadius,\n colorFill,\n colorWhite,\n marginXXS,\n paddingXS\n } = token;\n return {\n [`${componentCls}-presets`]: {\n [`${antCls}-collapse-item > ${antCls}-collapse-header`]: {\n padding: 0,\n [`${antCls}-collapse-expand-icon`]: {\n height: fontSizeSM * lineHeightSM,\n color: colorTextQuaternary,\n paddingInlineEnd: paddingXXS\n }\n },\n [`${antCls}-collapse`]: {\n display: 'flex',\n flexDirection: 'column',\n gap: marginXXS\n },\n [`${antCls}-collapse-item > ${antCls}-collapse-content > ${antCls}-collapse-content-box`]: {\n padding: `${paddingXS}px 0`\n },\n '&-label': {\n fontSize: fontSizeSM,\n color: colorText,\n lineHeight: lineHeightSM\n },\n '&-items': {\n display: 'flex',\n flexWrap: 'wrap',\n gap: marginXXS * 1.5,\n [`${componentCls}-presets-color`]: {\n position: 'relative',\n cursor: 'pointer',\n width: colorPickerPresetColorSize,\n height: colorPickerPresetColorSize,\n '&::before': {\n content: '\"\"',\n pointerEvents: 'none',\n width: colorPickerPresetColorSize + 4 * lineWidth,\n height: colorPickerPresetColorSize + 4 * lineWidth,\n position: 'absolute',\n top: -2 * lineWidth,\n insetInlineStart: -2 * lineWidth,\n borderRadius,\n border: `${lineWidth}px solid transparent`,\n transition: `border-color ${token.motionDurationMid} ${token.motionEaseInBack}`\n },\n '&:hover::before': {\n borderColor: colorFill\n },\n '&::after': {\n boxSizing: 'border-box',\n position: 'absolute',\n top: '50%',\n insetInlineStart: '21.5%',\n display: 'table',\n width: colorPickerPresetColorSize / 13 * 5,\n height: colorPickerPresetColorSize / 13 * 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 [`&${componentCls}-presets-color-checked`]: {\n '&::after': {\n opacity: 1,\n borderColor: colorWhite,\n transform: 'rotate(45deg) scale(1) translate(-50%,-50%)',\n transition: `transform ${token.motionDurationMid} ${token.motionEaseOutBack} ${token.motionDurationFast}`\n },\n [`&${componentCls}-presets-color-bright`]: {\n '&::after': {\n borderColor: 'rgba(0, 0, 0, 0.45)'\n }\n }\n }\n }\n },\n '&-empty': {\n fontSize: fontSizeSM,\n color: colorTextQuaternary\n }\n }\n };\n};\nexport default genPresetsStyle;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genColorBlockStyle from './color-block';\nimport genInputStyle from './input';\nimport genPickerStyle from './picker';\nimport genPresetsStyle from './presets';\nexport const genActiveStyle = token => ({\n boxShadow: `0 0 0 ${token.controlOutlineWidth}px ${token.controlOutline}`,\n borderInlineEndWidth: token.lineWidth,\n outline: 0\n});\nconst genRtlStyle = token => {\n const {\n componentCls\n } = token;\n return {\n '&-rtl': {\n [`${componentCls}-presets-color`]: {\n '&::after': {\n direction: 'ltr'\n }\n },\n [`${componentCls}-clear`]: {\n '&::after': {\n direction: 'ltr'\n }\n }\n }\n };\n};\nconst genClearStyle = (token, size, extraStyle) => {\n const {\n componentCls,\n borderRadiusSM,\n lineWidth,\n colorSplit,\n red6\n } = token;\n return {\n [`${componentCls}-clear`]: Object.assign(Object.assign({\n width: size,\n height: size,\n borderRadius: borderRadiusSM,\n border: `${lineWidth}px solid ${colorSplit}`,\n position: 'relative',\n cursor: 'pointer',\n overflow: 'hidden'\n }, extraStyle), {\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n insetInlineEnd: lineWidth,\n top: 0,\n display: 'block',\n width: 40,\n height: 2,\n transformOrigin: 'right',\n transform: 'rotate(-45deg)',\n backgroundColor: red6\n }\n })\n };\n};\nconst genStatusStyle = token => {\n const {\n componentCls,\n colorError,\n colorWarning,\n colorErrorBorderHover,\n colorWarningBorderHover,\n colorErrorOutline,\n colorWarningOutline\n } = token;\n return {\n [`&${componentCls}-status-error`]: {\n borderColor: colorError,\n '&:hover': {\n borderColor: colorErrorBorderHover\n },\n [`&${componentCls}-trigger-active`]: Object.assign({}, genActiveStyle(mergeToken(token, {\n controlOutline: colorErrorOutline\n })))\n },\n [`&${componentCls}-status-warning`]: {\n borderColor: colorWarning,\n '&:hover': {\n borderColor: colorWarningBorderHover\n },\n [`&${componentCls}-trigger-active`]: Object.assign({}, genActiveStyle(mergeToken(token, {\n controlOutline: colorWarningOutline\n })))\n }\n };\n};\nconst genSizeStyle = token => {\n const {\n componentCls,\n controlHeightLG,\n controlHeightSM,\n controlHeight,\n controlHeightXS,\n borderRadius,\n borderRadiusSM,\n borderRadiusXS,\n borderRadiusLG,\n fontSizeLG\n } = token;\n return {\n [`&${componentCls}-lg`]: {\n minWidth: controlHeightLG,\n height: controlHeightLG,\n borderRadius: borderRadiusLG,\n [`${componentCls}-color-block, ${componentCls}-clear`]: {\n width: controlHeight,\n height: controlHeight,\n borderRadius\n },\n [`${componentCls}-trigger-text`]: {\n fontSize: fontSizeLG\n }\n },\n [`&${componentCls}-sm`]: {\n minWidth: controlHeightSM,\n height: controlHeightSM,\n borderRadius: borderRadiusSM,\n [`${componentCls}-color-block, ${componentCls}-clear`]: {\n width: controlHeightXS,\n height: controlHeightXS,\n borderRadius: borderRadiusXS\n }\n }\n };\n};\nconst genColorPickerStyle = token => {\n const {\n componentCls,\n colorPickerWidth,\n colorPrimary,\n motionDurationMid,\n colorBgElevated,\n colorTextDisabled,\n colorText,\n colorBgContainerDisabled,\n borderRadius,\n marginXS,\n marginSM,\n controlHeight,\n controlHeightSM,\n colorBgTextActive,\n colorPickerPresetColorSize,\n colorPickerPreviewSize,\n lineWidth,\n colorBorder,\n paddingXXS,\n fontSize\n } = token;\n return [{\n [componentCls]: Object.assign({\n [`${componentCls}-inner-content`]: Object.assign(Object.assign(Object.assign(Object.assign({\n display: 'flex',\n flexDirection: 'column',\n width: colorPickerWidth,\n '&-divider': {\n margin: `${marginSM}px 0 ${marginXS}px`\n },\n [`${componentCls}-panel`]: Object.assign({}, genPickerStyle(token))\n }, genColorBlockStyle(token, colorPickerPreviewSize)), genInputStyle(token)), genPresetsStyle(token)), genClearStyle(token, colorPickerPresetColorSize, {\n marginInlineStart: 'auto',\n marginBottom: marginXS\n })),\n '&-trigger': Object.assign(Object.assign(Object.assign(Object.assign({\n minWidth: controlHeight,\n height: controlHeight,\n borderRadius,\n border: `${lineWidth}px solid ${colorBorder}`,\n cursor: 'pointer',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: `all ${motionDurationMid}`,\n background: colorBgElevated,\n padding: paddingXXS - lineWidth,\n [`${componentCls}-trigger-text`]: {\n marginInlineStart: marginXS,\n marginInlineEnd: marginXS - (paddingXXS - lineWidth),\n fontSize,\n color: colorText\n },\n '&-active': Object.assign(Object.assign({}, genActiveStyle(token)), {\n borderColor: colorPrimary\n }),\n '&:hover': {\n borderColor: colorPrimary\n },\n '&-disabled': {\n color: colorTextDisabled,\n background: colorBgContainerDisabled,\n cursor: 'not-allowed',\n '&:hover': {\n borderColor: colorBgTextActive\n },\n [`${componentCls}-trigger-text`]: {\n color: colorTextDisabled\n }\n }\n }, genClearStyle(token, controlHeightSM)), genColorBlockStyle(token, controlHeightSM)), genStatusStyle(token)), genSizeStyle(token))\n }, genRtlStyle(token))\n }];\n};\nexport default genComponentStyleHook('ColorPicker', token => {\n const {\n colorTextQuaternary,\n marginSM\n } = token;\n const colorPickerSliderHeight = 8;\n const colorPickerToken = mergeToken(token, {\n colorPickerWidth: 234,\n colorPickerHandlerSize: 16,\n colorPickerHandlerSizeSM: 12,\n colorPickerAlphaInputWidth: 44,\n colorPickerInputNumberHandleWidth: 16,\n colorPickerPresetColorSize: 18,\n colorPickerInsetShadow: `inset 0 0 1px 0 ${colorTextQuaternary}`,\n colorPickerSliderHeight,\n colorPickerPreviewSize: colorPickerSliderHeight * 2 + marginSM\n });\n return [genColorPickerStyle(colorPickerToken)];\n});","import React, { useContext, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport genPurePanel from '../_util/PurePanel';\nimport { getStatusClassNames } from '../_util/statusUtils';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider/context';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext, NoFormStyle } from '../form/context';\nimport Popover from '../popover';\nimport theme from '../theme';\nimport ColorPickerPanel from './ColorPickerPanel';\nimport ColorTrigger from './components/ColorTrigger';\nimport useColorState from './hooks/useColorState';\nimport useStyle from './style/index';\nimport { customizePrefixCls, genAlphaColor, generateColor, getAlphaColor } from './util';\nconst ColorPicker = props => {\n const {\n value,\n defaultValue,\n format,\n allowClear = false,\n presets,\n children,\n trigger = 'click',\n open,\n disabled,\n placement = 'bottomLeft',\n arrow = true,\n panelRender,\n showText,\n style,\n className,\n size: customizeSize,\n rootClassName,\n styles,\n disabledAlpha = false,\n onFormatChange,\n onChange,\n onClear,\n onOpenChange,\n onChangeComplete,\n getPopupContainer,\n autoAdjustOverflow = true,\n destroyTooltipOnHide\n } = props;\n const {\n getPrefixCls,\n direction,\n colorPicker\n } = useContext(ConfigContext);\n const {\n token\n } = theme.useToken();\n const [colorValue, setColorValue] = useColorState(token.colorPrimary, {\n value,\n defaultValue\n });\n const [popupOpen, setPopupOpen] = useMergedState(false, {\n value: open,\n postState: openData => !disabled && openData,\n onChange: onOpenChange\n });\n const [formatValue, setFormatValue] = useMergedState(format, {\n value: format,\n onChange: onFormatChange\n });\n const [colorCleared, setColorCleared] = useState(false);\n const prefixCls = getPrefixCls('color-picker', customizePrefixCls);\n const isAlphaColor = useMemo(() => getAlphaColor(colorValue) < 100, [colorValue]);\n // ===================== Form Status =====================\n const {\n status: contextStatus\n } = React.useContext(FormItemInputContext);\n // ===================== Style =====================\n const mergedSize = useSize(customizeSize);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const rtlCls = {\n [`${prefixCls}-rtl`]: direction\n };\n const mergeRootCls = classNames(rootClassName, rtlCls);\n const mergeCls = classNames(getStatusClassNames(prefixCls, contextStatus), {\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large'\n }, colorPicker === null || colorPicker === void 0 ? void 0 : colorPicker.className, mergeRootCls, className, hashId);\n const mergePopupCls = classNames(prefixCls, rtlCls);\n const popupAllowCloseRef = useRef(true);\n // ===================== Warning ======================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(disabledAlpha && isAlphaColor), 'ColorPicker', '`disabledAlpha` will make the alpha to be 100% when use alpha color.') : void 0;\n }\n const handleChange = (data, type, pickColor) => {\n let color = generateColor(data);\n const isNull = value === null || !value && defaultValue === null;\n if (colorCleared || isNull) {\n setColorCleared(false);\n // ignore alpha slider\n if (getAlphaColor(colorValue) === 0 && type !== 'alpha') {\n color = genAlphaColor(color);\n }\n }\n // ignore alpha color\n if (disabledAlpha && isAlphaColor) {\n color = genAlphaColor(color);\n }\n // Only for drag-and-drop color picking\n if (pickColor) {\n popupAllowCloseRef.current = false;\n } else {\n onChangeComplete === null || onChangeComplete === void 0 ? void 0 : onChangeComplete(color);\n }\n setColorValue(color);\n onChange === null || onChange === void 0 ? void 0 : onChange(color, color.toHexString());\n };\n const handleClear = () => {\n setColorCleared(true);\n onClear === null || onClear === void 0 ? void 0 : onClear();\n };\n const handleChangeComplete = color => {\n popupAllowCloseRef.current = true;\n let changeColor = generateColor(color);\n // ignore alpha color\n if (disabledAlpha && isAlphaColor) {\n changeColor = genAlphaColor(color);\n }\n onChangeComplete === null || onChangeComplete === void 0 ? void 0 : onChangeComplete(changeColor);\n };\n const popoverProps = {\n open: popupOpen,\n trigger,\n placement,\n arrow,\n rootClassName,\n getPopupContainer,\n autoAdjustOverflow,\n destroyTooltipOnHide\n };\n const colorBaseProps = {\n prefixCls,\n color: colorValue,\n allowClear,\n colorCleared,\n disabled,\n disabledAlpha,\n presets,\n panelRender,\n format: formatValue,\n onFormatChange: setFormatValue,\n onChangeComplete: handleChangeComplete\n };\n const mergedStyle = Object.assign(Object.assign({}, colorPicker === null || colorPicker === void 0 ? void 0 : colorPicker.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(Popover, Object.assign({\n style: styles === null || styles === void 0 ? void 0 : styles.popup,\n overlayInnerStyle: styles === null || styles === void 0 ? void 0 : styles.popupOverlayInner,\n onOpenChange: visible => {\n if (popupAllowCloseRef.current) {\n setPopupOpen(visible);\n }\n },\n content: /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, /*#__PURE__*/React.createElement(ColorPickerPanel, Object.assign({}, colorBaseProps, {\n onChange: handleChange,\n onChangeComplete: handleChangeComplete,\n onClear: handleClear\n }))),\n overlayClassName: mergePopupCls\n }, popoverProps), children || /*#__PURE__*/React.createElement(ColorTrigger, {\n open: popupOpen,\n className: mergeCls,\n style: mergedStyle,\n color: value ? generateColor(value) : colorValue,\n prefixCls: prefixCls,\n disabled: disabled,\n colorCleared: colorCleared,\n showText: showText,\n format: formatValue\n })));\n};\nif (process.env.NODE_ENV !== 'production') {\n ColorPicker.displayName = 'ColorPicker';\n}\nconst PurePanel = genPurePanel(ColorPicker, 'color-picker', /* istanbul ignore next */\nprefixCls => prefixCls, props => Object.assign(Object.assign({}, props), {\n placement: 'bottom',\n autoAdjustOverflow: false\n}));\nColorPicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default ColorPicker;","'use client';\n\nimport ColorPicker from './ColorPicker';\nexport default ColorPicker;","import React from 'react';\nconst DescriptionsContext = /*#__PURE__*/React.createContext({});\nexport default DescriptionsContext;","const DescriptionsItem = _ref => {\n let {\n children\n } = _ref;\n return children;\n};\nexport default DescriptionsItem;","import classNames from 'classnames';\nimport * as React from 'react';\nfunction notEmpty(val) {\n return val !== undefined && val !== null;\n}\nconst Cell = props => {\n const {\n itemPrefixCls,\n component,\n span,\n className,\n style,\n labelStyle,\n contentStyle,\n bordered,\n label,\n content,\n colon\n } = props;\n const Component = component;\n if (bordered) {\n return /*#__PURE__*/React.createElement(Component, {\n className: classNames({\n [`${itemPrefixCls}-item-label`]: notEmpty(label),\n [`${itemPrefixCls}-item-content`]: notEmpty(content)\n }, className),\n style: style,\n colSpan: span\n }, notEmpty(label) && /*#__PURE__*/React.createElement(\"span\", {\n style: labelStyle\n }, label), notEmpty(content) && /*#__PURE__*/React.createElement(\"span\", {\n style: contentStyle\n }, content));\n }\n return /*#__PURE__*/React.createElement(Component, {\n className: classNames(`${itemPrefixCls}-item`, className),\n style: style,\n colSpan: span\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${itemPrefixCls}-item-container`\n }, (label || label === 0) && /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${itemPrefixCls}-item-label`, {\n [`${itemPrefixCls}-item-no-colon`]: !colon\n }),\n style: labelStyle\n }, label), (content || content === 0) && /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${itemPrefixCls}-item-content`),\n style: contentStyle\n }, content)));\n};\nexport default Cell;","import * as React from 'react';\nimport Cell from './Cell';\nimport DescriptionsContext from './DescriptionsContext';\nfunction renderCells(items, _ref, _ref2) {\n let {\n colon,\n prefixCls,\n bordered\n } = _ref;\n let {\n component,\n type,\n showLabel,\n showContent,\n labelStyle: rootLabelStyle,\n contentStyle: rootContentStyle\n } = _ref2;\n return items.map((_ref3, index) => {\n let {\n label,\n children,\n prefixCls: itemPrefixCls = prefixCls,\n className,\n style,\n labelStyle,\n contentStyle,\n span = 1,\n key\n } = _ref3;\n if (typeof component === 'string') {\n return /*#__PURE__*/React.createElement(Cell, {\n key: `${type}-${key || index}`,\n className: className,\n style: style,\n labelStyle: Object.assign(Object.assign({}, rootLabelStyle), labelStyle),\n contentStyle: Object.assign(Object.assign({}, rootContentStyle), contentStyle),\n span: span,\n colon: colon,\n component: component,\n itemPrefixCls: itemPrefixCls,\n bordered: bordered,\n label: showLabel ? label : null,\n content: showContent ? children : null\n });\n }\n return [/*#__PURE__*/React.createElement(Cell, {\n key: `label-${key || index}`,\n className: className,\n style: Object.assign(Object.assign(Object.assign({}, rootLabelStyle), style), labelStyle),\n span: 1,\n colon: colon,\n component: component[0],\n itemPrefixCls: itemPrefixCls,\n bordered: bordered,\n label: label\n }), /*#__PURE__*/React.createElement(Cell, {\n key: `content-${key || index}`,\n className: className,\n style: Object.assign(Object.assign(Object.assign({}, rootContentStyle), style), contentStyle),\n span: span * 2 - 1,\n component: component[1],\n itemPrefixCls: itemPrefixCls,\n bordered: bordered,\n content: children\n })];\n });\n}\nconst Row = props => {\n const descContext = React.useContext(DescriptionsContext);\n const {\n prefixCls,\n vertical,\n row,\n index,\n bordered\n } = props;\n if (vertical) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"tr\", {\n key: `label-${index}`,\n className: `${prefixCls}-row`\n }, renderCells(row, props, Object.assign({\n component: 'th',\n type: 'label',\n showLabel: true\n }, descContext))), /*#__PURE__*/React.createElement(\"tr\", {\n key: `content-${index}`,\n className: `${prefixCls}-row`\n }, renderCells(row, props, Object.assign({\n component: 'td',\n type: 'content',\n showContent: true\n }, descContext))));\n }\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: index,\n className: `${prefixCls}-row`\n }, renderCells(row, props, Object.assign({\n component: bordered ? ['th', 'td'] : 'td',\n type: 'item',\n showLabel: true,\n showContent: true\n }, descContext)));\n};\nexport default Row;","import toArray from \"rc-util/es/Children/toArray\";\nimport { useMemo } from 'react';\nimport warning from '../../_util/warning';\nfunction getFilledItem(rowItem, rowRestCol, span) {\n let clone = rowItem;\n if (span === undefined || span > rowRestCol) {\n clone = Object.assign(Object.assign({}, rowItem), {\n span: rowRestCol\n });\n process.env.NODE_ENV !== \"production\" ? warning(span === undefined, 'Descriptions', 'Sum of column `span` in a line not match `column` of Descriptions.') : void 0;\n }\n return clone;\n}\n// Convert children into items\nconst transChildren2Items = childNodes => toArray(childNodes).map(node => Object.assign({}, node === null || node === void 0 ? void 0 : node.props));\n// Calculate the sum of span in a row\nfunction getCalcRows(rowItems, mergedColumn) {\n const rows = [];\n let tmpRow = [];\n let rowRestCol = mergedColumn;\n rowItems.filter(n => n).forEach((rowItem, index) => {\n const span = rowItem === null || rowItem === void 0 ? void 0 : rowItem.span;\n const mergedSpan = span || 1;\n // Additional handle last one\n if (index === rowItems.length - 1) {\n tmpRow.push(getFilledItem(rowItem, rowRestCol, span));\n rows.push(tmpRow);\n return;\n }\n if (mergedSpan < rowRestCol) {\n rowRestCol -= mergedSpan;\n tmpRow.push(rowItem);\n } else {\n tmpRow.push(getFilledItem(rowItem, rowRestCol, mergedSpan));\n rows.push(tmpRow);\n rowRestCol = mergedColumn;\n tmpRow = [];\n }\n });\n return rows;\n}\nconst useRow = (mergedColumn, items, children) => {\n const rows = useMemo(() => {\n if (Array.isArray(items)) {\n return getCalcRows(items, mergedColumn);\n }\n return getCalcRows(transChildren2Items(children), mergedColumn);\n }, [items, children, mergedColumn]);\n return rows;\n};\nexport default useRow;","import { resetComponent, textEllipsis } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genBorderedStyle = token => {\n const {\n componentCls,\n labelBg\n } = token;\n return {\n [`&${componentCls}-bordered`]: {\n [`> ${componentCls}-view`]: {\n border: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`,\n '> table': {\n tableLayout: 'auto',\n borderCollapse: 'collapse'\n },\n [`${componentCls}-row`]: {\n borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`,\n '&:last-child': {\n borderBottom: 'none'\n },\n [`> ${componentCls}-item-label, > ${componentCls}-item-content`]: {\n padding: `${token.padding}px ${token.paddingLG}px`,\n borderInlineEnd: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`,\n '&:last-child': {\n borderInlineEnd: 'none'\n }\n },\n [`> ${componentCls}-item-label`]: {\n color: token.colorTextSecondary,\n backgroundColor: labelBg,\n '&::after': {\n display: 'none'\n }\n }\n }\n },\n [`&${componentCls}-middle`]: {\n [`${componentCls}-row`]: {\n [`> ${componentCls}-item-label, > ${componentCls}-item-content`]: {\n padding: `${token.paddingSM}px ${token.paddingLG}px`\n }\n }\n },\n [`&${componentCls}-small`]: {\n [`${componentCls}-row`]: {\n [`> ${componentCls}-item-label, > ${componentCls}-item-content`]: {\n padding: `${token.paddingXS}px ${token.padding}px`\n }\n }\n }\n }\n };\n};\nconst genDescriptionStyles = token => {\n const {\n componentCls,\n extraColor,\n itemPaddingBottom,\n colonMarginRight,\n colonMarginLeft,\n titleMarginBottom\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genBorderedStyle(token)), {\n [`&-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-header`]: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: titleMarginBottom\n },\n [`${componentCls}-title`]: Object.assign(Object.assign({}, textEllipsis), {\n flex: 'auto',\n color: token.colorText,\n fontWeight: token.fontWeightStrong,\n fontSize: token.fontSizeLG,\n lineHeight: token.lineHeightLG\n }),\n [`${componentCls}-extra`]: {\n marginInlineStart: 'auto',\n color: extraColor,\n fontSize: token.fontSize\n },\n [`${componentCls}-view`]: {\n width: '100%',\n borderRadius: token.borderRadiusLG,\n table: {\n width: '100%',\n tableLayout: 'fixed'\n }\n },\n [`${componentCls}-row`]: {\n '> th, > td': {\n paddingBottom: itemPaddingBottom\n },\n '&:last-child': {\n borderBottom: 'none'\n }\n },\n [`${componentCls}-item-label`]: {\n color: token.colorTextTertiary,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n textAlign: `start`,\n '&::after': {\n content: '\":\"',\n position: 'relative',\n top: -0.5,\n marginInline: `${colonMarginLeft}px ${colonMarginRight}px`\n },\n [`&${componentCls}-item-no-colon::after`]: {\n content: '\"\"'\n }\n },\n [`${componentCls}-item-no-label`]: {\n '&::after': {\n margin: 0,\n content: '\"\"'\n }\n },\n [`${componentCls}-item-content`]: {\n display: 'table-cell',\n flex: 1,\n color: token.colorText,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n wordBreak: 'break-word',\n overflowWrap: 'break-word'\n },\n [`${componentCls}-item`]: {\n paddingBottom: 0,\n verticalAlign: 'top',\n '&-container': {\n display: 'flex',\n [`${componentCls}-item-label`]: {\n display: 'inline-flex',\n alignItems: 'baseline'\n },\n [`${componentCls}-item-content`]: {\n display: 'inline-flex',\n alignItems: 'baseline'\n }\n }\n },\n '&-middle': {\n [`${componentCls}-row`]: {\n '> th, > td': {\n paddingBottom: token.paddingSM\n }\n }\n },\n '&-small': {\n [`${componentCls}-row`]: {\n '> th, > td': {\n paddingBottom: token.paddingXS\n }\n }\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Descriptions', token => {\n const descriptionToken = mergeToken(token, {});\n return [genDescriptionStyles(descriptionToken)];\n}, token => ({\n labelBg: token.colorFillAlter,\n titleMarginBottom: token.fontSizeSM * token.lineHeightSM,\n itemPaddingBottom: token.padding,\n colonMarginRight: token.marginXS,\n colonMarginLeft: token.marginXXS / 2,\n extraColor: token.colorText\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};\n/* eslint-disable react/no-array-index-key */\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport useResponsiveObserver, { responsiveArray } from '../_util/responsiveObserver';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport DescriptionsContext from './DescriptionsContext';\nimport DescriptionsItem from './Item';\nimport Row from './Row';\nimport useRow from './hooks/useRow';\nimport useStyle from './style';\nconst DEFAULT_COLUMN_MAP = {\n xxl: 3,\n xl: 3,\n lg: 3,\n md: 3,\n sm: 2,\n xs: 1\n};\nfunction getColumn(column, screens) {\n if (typeof column === 'number') {\n return column;\n }\n if (typeof column === 'object') {\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint = responsiveArray[i];\n if (screens[breakpoint] && column[breakpoint] !== undefined) {\n return column[breakpoint] || DEFAULT_COLUMN_MAP[breakpoint];\n }\n }\n }\n return 3;\n}\nconst Descriptions = props => {\n const {\n prefixCls: customizePrefixCls,\n title,\n extra,\n column = DEFAULT_COLUMN_MAP,\n colon = true,\n bordered,\n layout,\n children,\n className,\n rootClassName,\n style,\n size: customizeSize,\n labelStyle,\n contentStyle,\n items\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"title\", \"extra\", \"column\", \"colon\", \"bordered\", \"layout\", \"children\", \"className\", \"rootClassName\", \"style\", \"size\", \"labelStyle\", \"contentStyle\", \"items\"]);\n const {\n getPrefixCls,\n direction,\n descriptions\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('descriptions', customizePrefixCls);\n const [screens, setScreens] = React.useState({});\n const mergedColumn = getColumn(column, screens);\n const mergedSize = useSize(customizeSize);\n const rows = useRow(mergedColumn, items, children);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const responsiveObserver = useResponsiveObserver();\n // Responsive\n React.useEffect(() => {\n const token = responsiveObserver.subscribe(newScreens => {\n if (typeof column !== 'object') {\n return;\n }\n setScreens(newScreens);\n });\n return () => {\n responsiveObserver.unsubscribe(token);\n };\n }, []);\n // ======================== Render ========================\n const contextValue = React.useMemo(() => ({\n labelStyle,\n contentStyle\n }), [labelStyle, contentStyle]);\n return wrapSSR( /*#__PURE__*/React.createElement(DescriptionsContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classNames(prefixCls, descriptions === null || descriptions === void 0 ? void 0 : descriptions.className, {\n [`${prefixCls}-${mergedSize}`]: mergedSize && mergedSize !== 'default',\n [`${prefixCls}-bordered`]: !!bordered,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId),\n style: Object.assign(Object.assign({}, descriptions === null || descriptions === void 0 ? void 0 : descriptions.style), style)\n }, restProps), (title || extra) && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-header`\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, title), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-extra`\n }, extra)), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-view`\n }, /*#__PURE__*/React.createElement(\"table\", null, /*#__PURE__*/React.createElement(\"tbody\", null, rows.map((row, index) => /*#__PURE__*/React.createElement(Row, {\n key: index,\n index: index,\n colon: colon,\n prefixCls: prefixCls,\n vertical: layout === 'vertical',\n bordered: bordered,\n row: row\n }))))))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Descriptions.displayName = 'Descriptions';\n}\nexport { DescriptionsContext };\nDescriptions.Item = DescriptionsItem;\nexport default Descriptions;","// This icon file is generated automatically.\nvar FileTextOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"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.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z\" } }] }, \"name\": \"file-text\", \"theme\": \"outlined\" };\nexport default FileTextOutlined;\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 FileTextOutlinedSvg from \"@ant-design/icons-svg/es/asn/FileTextOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FileTextOutlined = function FileTextOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FileTextOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n FileTextOutlined.displayName = 'FileTextOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(FileTextOutlined);","import React, { memo } from 'react';\nimport FileTextOutlined from \"@ant-design/icons/es/icons/FileTextOutlined\";\nimport classNames from 'classnames';\nconst FloatButtonContent = props => {\n const {\n icon,\n description,\n prefixCls,\n className\n } = props;\n const defaultElement = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-icon`\n }, /*#__PURE__*/React.createElement(FileTextOutlined, null));\n return /*#__PURE__*/React.createElement(\"div\", {\n onClick: props.onClick,\n onFocus: props.onFocus,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n className: classNames(className, `${prefixCls}-content`)\n }, icon || description ? /*#__PURE__*/React.createElement(React.Fragment, null, icon && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-icon`\n }, icon), description && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-description`\n }, description)) : defaultElement);\n};\nexport default /*#__PURE__*/memo(FloatButtonContent);","import React from 'react';\nconst FloatButtonGroupContext = /*#__PURE__*/React.createContext(undefined);\nexport const {\n Provider: FloatButtonGroupProvider\n} = FloatButtonGroupContext;\nexport default FloatButtonGroupContext;","const getOffset = radius => {\n if (radius === 0) {\n return 0;\n }\n // 如果要考虑通用性,这里应该用三角函数 Math.sin(45)\n // 但是这个场景比较特殊,始终是等腰直角三角形,所以直接用 Math.sqrt() 开方即可\n return radius - Math.sqrt(Math.pow(radius, 2) / 2);\n};\nexport default getOffset;","import { Keyframes } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { initFadeMotion } from '../../style/motion/fade';\nimport { initMotion } from '../../style/motion/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport getOffset from '../util';\nconst initFloatButtonGroupMotion = token => {\n const {\n componentCls,\n floatButtonSize,\n motionDurationSlow,\n motionEaseInOutCirc\n } = token;\n const groupPrefixCls = `${componentCls}-group`;\n const moveDownIn = new Keyframes('antFloatButtonMoveDownIn', {\n '0%': {\n transform: `translate3d(0, ${floatButtonSize}px, 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 });\n const moveDownOut = new Keyframes('antFloatButtonMoveDownOut', {\n '0%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n },\n '100%': {\n transform: `translate3d(0, ${floatButtonSize}px, 0)`,\n transformOrigin: '0 0',\n opacity: 0\n }\n });\n return [{\n [`${groupPrefixCls}-wrap`]: Object.assign({}, initMotion(`${groupPrefixCls}-wrap`, moveDownIn, moveDownOut, motionDurationSlow, true))\n }, {\n [`${groupPrefixCls}-wrap`]: {\n [`\n &${groupPrefixCls}-wrap-enter,\n &${groupPrefixCls}-wrap-appear\n `]: {\n opacity: 0,\n animationTimingFunction: motionEaseInOutCirc\n },\n [`&${groupPrefixCls}-wrap-leave`]: {\n animationTimingFunction: motionEaseInOutCirc\n }\n }\n }];\n};\n// ============================== Group ==============================\nconst floatButtonGroupStyle = token => {\n const {\n antCls,\n componentCls,\n floatButtonSize,\n margin,\n borderRadiusLG,\n borderRadiusSM,\n badgeOffset,\n floatButtonBodyPadding\n } = token;\n const groupPrefixCls = `${componentCls}-group`;\n return {\n [groupPrefixCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n zIndex: 99,\n display: 'block',\n border: 'none',\n position: 'fixed',\n width: floatButtonSize,\n height: 'auto',\n boxShadow: 'none',\n minHeight: floatButtonSize,\n insetInlineEnd: token.floatButtonInsetInlineEnd,\n insetBlockEnd: token.floatButtonInsetBlockEnd,\n borderRadius: borderRadiusLG,\n [`${groupPrefixCls}-wrap`]: {\n zIndex: -1,\n display: 'block',\n position: 'relative',\n marginBottom: margin\n },\n [`&${groupPrefixCls}-rtl`]: {\n direction: 'rtl'\n },\n [componentCls]: {\n position: 'static'\n }\n }),\n [`${groupPrefixCls}-circle`]: {\n [`${componentCls}-circle:not(:last-child)`]: {\n marginBottom: token.margin,\n [`${componentCls}-body`]: {\n width: floatButtonSize,\n height: floatButtonSize,\n borderRadius: '50%'\n }\n }\n },\n [`${groupPrefixCls}-square`]: {\n [`${componentCls}-square`]: {\n borderRadius: 0,\n padding: 0,\n '&:first-child': {\n borderStartStartRadius: borderRadiusLG,\n borderStartEndRadius: borderRadiusLG\n },\n '&:last-child': {\n borderEndStartRadius: borderRadiusLG,\n borderEndEndRadius: borderRadiusLG\n },\n '&:not(:last-child)': {\n borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`\n },\n [`${antCls}-badge`]: {\n [`${antCls}-badge-count`]: {\n top: -(floatButtonBodyPadding + badgeOffset),\n insetInlineEnd: -(floatButtonBodyPadding + badgeOffset)\n }\n }\n },\n [`${groupPrefixCls}-wrap`]: {\n display: 'block',\n borderRadius: borderRadiusLG,\n boxShadow: token.boxShadowSecondary,\n [`${componentCls}-square`]: {\n boxShadow: 'none',\n marginTop: 0,\n borderRadius: 0,\n padding: floatButtonBodyPadding,\n '&:first-child': {\n borderStartStartRadius: borderRadiusLG,\n borderStartEndRadius: borderRadiusLG\n },\n '&:last-child': {\n borderEndStartRadius: borderRadiusLG,\n borderEndEndRadius: borderRadiusLG\n },\n '&:not(:last-child)': {\n borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`\n },\n [`${componentCls}-body`]: {\n width: token.floatButtonBodySize,\n height: token.floatButtonBodySize\n }\n }\n }\n },\n [`${groupPrefixCls}-circle-shadow`]: {\n boxShadow: 'none'\n },\n [`${groupPrefixCls}-square-shadow`]: {\n boxShadow: token.boxShadowSecondary,\n [`${componentCls}-square`]: {\n boxShadow: 'none',\n padding: floatButtonBodyPadding,\n [`${componentCls}-body`]: {\n width: token.floatButtonBodySize,\n height: token.floatButtonBodySize,\n borderRadius: borderRadiusSM\n }\n }\n }\n };\n};\n// ============================== Shared ==============================\nconst sharedFloatButtonStyle = token => {\n const {\n antCls,\n componentCls,\n floatButtonBodyPadding,\n floatButtonIconSize,\n floatButtonSize,\n borderRadiusLG,\n badgeOffset,\n dotOffsetInSquare,\n dotOffsetInCircle\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n border: 'none',\n position: 'fixed',\n cursor: 'pointer',\n zIndex: 99,\n display: 'block',\n justifyContent: 'center',\n alignItems: 'center',\n width: floatButtonSize,\n height: floatButtonSize,\n insetInlineEnd: token.floatButtonInsetInlineEnd,\n insetBlockEnd: token.floatButtonInsetBlockEnd,\n boxShadow: token.boxShadowSecondary,\n // Pure Panel\n '&-pure': {\n position: 'relative',\n inset: 'auto'\n },\n '&:empty': {\n display: 'none'\n },\n [`${antCls}-badge`]: {\n width: '100%',\n height: '100%',\n [`${antCls}-badge-count`]: {\n transform: 'translate(0, 0)',\n transformOrigin: 'center',\n top: -badgeOffset,\n insetInlineEnd: -badgeOffset\n }\n },\n [`${componentCls}-body`]: {\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n transition: `all ${token.motionDurationMid}`,\n [`${componentCls}-content`]: {\n overflow: 'hidden',\n textAlign: 'center',\n minHeight: floatButtonSize,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n padding: `${floatButtonBodyPadding / 2}px ${floatButtonBodyPadding}px`,\n [`${componentCls}-icon`]: {\n textAlign: 'center',\n margin: 'auto',\n width: floatButtonIconSize,\n fontSize: floatButtonIconSize,\n lineHeight: 1\n }\n }\n }\n }),\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-circle`]: {\n height: floatButtonSize,\n borderRadius: '50%',\n [`${antCls}-badge`]: {\n [`${antCls}-badge-dot`]: {\n top: dotOffsetInCircle,\n insetInlineEnd: dotOffsetInCircle\n }\n },\n [`${componentCls}-body`]: {\n borderRadius: '50%'\n }\n },\n [`${componentCls}-square`]: {\n height: 'auto',\n minHeight: floatButtonSize,\n borderRadius: borderRadiusLG,\n [`${antCls}-badge`]: {\n [`${antCls}-badge-dot`]: {\n top: dotOffsetInSquare,\n insetInlineEnd: dotOffsetInSquare\n }\n },\n [`${componentCls}-body`]: {\n height: 'auto',\n borderRadius: borderRadiusLG\n }\n },\n [`${componentCls}-default`]: {\n backgroundColor: token.floatButtonBackgroundColor,\n transition: `background-color ${token.motionDurationMid}`,\n [`${componentCls}-body`]: {\n backgroundColor: token.floatButtonBackgroundColor,\n transition: `background-color ${token.motionDurationMid}`,\n '&:hover': {\n backgroundColor: token.colorFillContent\n },\n [`${componentCls}-content`]: {\n [`${componentCls}-icon`]: {\n color: token.colorText\n },\n [`${componentCls}-description`]: {\n display: 'flex',\n alignItems: 'center',\n lineHeight: `${token.fontSizeLG}px`,\n color: token.colorText,\n fontSize: token.fontSizeSM\n }\n }\n }\n },\n [`${componentCls}-primary`]: {\n backgroundColor: token.colorPrimary,\n [`${componentCls}-body`]: {\n backgroundColor: token.colorPrimary,\n transition: `background-color ${token.motionDurationMid}`,\n '&:hover': {\n backgroundColor: token.colorPrimaryHover\n },\n [`${componentCls}-content`]: {\n [`${componentCls}-icon`]: {\n color: token.colorTextLightSolid\n },\n [`${componentCls}-description`]: {\n display: 'flex',\n alignItems: 'center',\n lineHeight: `${token.fontSizeLG}px`,\n color: token.colorTextLightSolid,\n fontSize: token.fontSizeSM\n }\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('FloatButton', token => {\n const {\n colorTextLightSolid,\n colorBgElevated,\n controlHeightLG,\n marginXXL,\n marginLG,\n fontSize,\n fontSizeIcon,\n controlItemBgHover,\n paddingXXS,\n borderRadiusLG\n } = token;\n const floatButtonToken = mergeToken(token, {\n floatButtonBackgroundColor: colorBgElevated,\n floatButtonColor: colorTextLightSolid,\n floatButtonHoverBackgroundColor: controlItemBgHover,\n floatButtonFontSize: fontSize,\n floatButtonIconSize: fontSizeIcon * 1.5,\n floatButtonSize: controlHeightLG,\n floatButtonInsetBlockEnd: marginXXL,\n floatButtonInsetInlineEnd: marginLG,\n floatButtonBodySize: controlHeightLG - paddingXXS * 2,\n // 这里的 paddingXXS 是简写,完整逻辑是 (controlHeightLG - (controlHeightLG - paddingXXS * 2)) / 2,\n floatButtonBodyPadding: paddingXXS,\n badgeOffset: paddingXXS * 1.5,\n dotOffsetInCircle: getOffset(controlHeightLG / 2),\n dotOffsetInSquare: getOffset(borderRadiusLG)\n });\n return [floatButtonGroupStyle(floatButtonToken), sharedFloatButtonStyle(floatButtonToken), initFadeMotion(token), initFloatButtonGroupMotion(floatButtonToken)];\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 React, { useContext, useMemo } from 'react';\nimport warning from '../_util/warning';\nimport Badge from '../badge';\nimport { ConfigContext } from '../config-provider';\nimport Tooltip from '../tooltip';\nimport Content from './FloatButtonContent';\nimport FloatButtonGroupContext from './context';\nimport useStyle from './style';\nexport const floatButtonPrefixCls = 'float-btn';\nconst FloatButton = (props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n type = 'default',\n shape = 'circle',\n icon,\n description,\n tooltip,\n badge = {}\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"type\", \"shape\", \"icon\", \"description\", \"tooltip\", \"badge\"]);\n const {\n getPrefixCls,\n direction\n } = useContext(ConfigContext);\n const groupShape = useContext(FloatButtonGroupContext);\n const prefixCls = getPrefixCls(floatButtonPrefixCls, customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergeShape = groupShape || shape;\n const classString = classNames(hashId, prefixCls, className, rootClassName, `${prefixCls}-${type}`, `${prefixCls}-${mergeShape}`, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n });\n // 虽然在 ts 中已经 omit 过了,但是为了防止多余的属性被透传进来,这里再 omit 一遍,以防万一\n const badgeProps = useMemo(() => omit(badge, ['title', 'children', 'status', 'text']), [badge]);\n const contentProps = useMemo(() => ({\n prefixCls,\n description,\n icon,\n type\n }), [prefixCls, description, icon, type]);\n let buttonNode = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-body`\n }, /*#__PURE__*/React.createElement(Content, Object.assign({}, contentProps)));\n if ('badge' in props) {\n buttonNode = /*#__PURE__*/React.createElement(Badge, Object.assign({}, badgeProps), buttonNode);\n }\n if ('tooltip' in props) {\n buttonNode = /*#__PURE__*/React.createElement(Tooltip, {\n title: tooltip,\n placement: direction === 'rtl' ? 'right' : 'left'\n }, buttonNode);\n }\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(shape === 'circle' && description), 'FloatButton', 'supported only when `shape` is `square`. Due to narrow space for text, short sentence is recommended.') : void 0;\n }\n return wrapSSR(props.href ? /*#__PURE__*/React.createElement(\"a\", Object.assign({\n ref: ref\n }, restProps, {\n className: classString\n }), buttonNode) : /*#__PURE__*/React.createElement(\"button\", Object.assign({\n ref: ref\n }, restProps, {\n className: classString,\n type: \"button\"\n }), buttonNode));\n};\nconst ForwardFloatButton = /*#__PURE__*/React.forwardRef(FloatButton);\nif (process.env.NODE_ENV !== 'production') {\n ForwardFloatButton.displayName = 'FloatButton';\n}\nexport default ForwardFloatButton;","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 VerticalAlignTopOutlined from \"@ant-design/icons/es/icons/VerticalAlignTopOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport React, { memo, useContext, useEffect, useRef, useState } from 'react';\nimport FloatButton, { floatButtonPrefixCls } from './FloatButton';\nimport { ConfigContext } from '../config-provider';\nimport getScroll from '../_util/getScroll';\nimport scrollTo from '../_util/scrollTo';\nimport throttleByAnimationFrame from '../_util/throttleByAnimationFrame';\nimport FloatButtonGroupContext from './context';\nimport useStyle from './style';\nconst BackTop = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n type = 'default',\n shape = 'circle',\n visibilityHeight = 400,\n icon = /*#__PURE__*/React.createElement(VerticalAlignTopOutlined, null),\n target,\n onClick,\n duration = 450\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"type\", \"shape\", \"visibilityHeight\", \"icon\", \"target\", \"onClick\", \"duration\"]);\n const [visible, setVisible] = useState(visibilityHeight === 0);\n const ref = useRef(null);\n const getDefaultTarget = () => ref.current && ref.current.ownerDocument ? ref.current.ownerDocument : window;\n const handleScroll = throttleByAnimationFrame(e => {\n const scrollTop = getScroll(e.target, true);\n setVisible(scrollTop >= visibilityHeight);\n });\n useEffect(() => {\n const getTarget = target || getDefaultTarget;\n const container = getTarget();\n handleScroll({\n target: container\n });\n container === null || container === void 0 ? void 0 : container.addEventListener('scroll', handleScroll);\n return () => {\n handleScroll.cancel();\n container === null || container === void 0 ? void 0 : container.removeEventListener('scroll', handleScroll);\n };\n }, [target]);\n const scrollToTop = e => {\n scrollTo(0, {\n getContainer: target || getDefaultTarget,\n duration\n });\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls(floatButtonPrefixCls, customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const [wrapSSR] = useStyle(prefixCls);\n const groupShape = useContext(FloatButtonGroupContext);\n const mergeShape = groupShape || shape;\n const contentProps = Object.assign({\n prefixCls,\n icon,\n type,\n shape: mergeShape\n }, restProps);\n return wrapSSR( /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n motionName: `${rootPrefixCls}-fade`\n }, _ref => {\n let {\n className: motionClassName\n } = _ref;\n return /*#__PURE__*/React.createElement(FloatButton, Object.assign({\n ref: ref\n }, contentProps, {\n onClick: scrollToTop,\n className: classNames(className, motionClassName)\n }));\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n BackTop.displayName = 'BackTop';\n}\nexport default /*#__PURE__*/memo(BackTop);","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 FileTextOutlined from \"@ant-design/icons/es/icons/FileTextOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { memo, useCallback, useContext, useEffect, useMemo, useRef } from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport FloatButton, { floatButtonPrefixCls } from './FloatButton';\nimport { FloatButtonGroupProvider } from './context';\nimport useStyle from './style';\nconst FloatButtonGroup = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n style,\n shape = 'circle',\n type = 'default',\n icon = /*#__PURE__*/React.createElement(FileTextOutlined, null),\n closeIcon = /*#__PURE__*/React.createElement(CloseOutlined, null),\n description,\n trigger,\n children,\n onOpenChange,\n open: customOpen\n } = props,\n floatButtonProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"shape\", \"type\", \"icon\", \"closeIcon\", \"description\", \"trigger\", \"children\", \"onOpenChange\", \"open\"]);\n const {\n direction,\n getPrefixCls\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls(floatButtonPrefixCls, customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const groupPrefixCls = `${prefixCls}-group`;\n const groupCls = classNames(groupPrefixCls, hashId, className, {\n [`${groupPrefixCls}-rtl`]: direction === 'rtl',\n [`${groupPrefixCls}-${shape}`]: shape,\n [`${groupPrefixCls}-${shape}-shadow`]: !trigger\n });\n const wrapperCls = classNames(hashId, `${groupPrefixCls}-wrap`);\n const [open, setOpen] = useMergedState(false, {\n value: customOpen\n });\n const floatButtonGroupRef = useRef(null);\n const floatButtonRef = useRef(null);\n const hoverAction = useMemo(() => {\n const hoverTypeAction = {\n onMouseEnter() {\n setOpen(true);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(true);\n },\n onMouseLeave() {\n setOpen(false);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(false);\n }\n };\n return trigger === 'hover' ? hoverTypeAction : {};\n }, [trigger]);\n const handleOpenChange = () => {\n setOpen(prevState => {\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(!prevState);\n return !prevState;\n });\n };\n const onClick = useCallback(e => {\n var _a, _b;\n if ((_a = floatButtonGroupRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target)) {\n if ((_b = floatButtonRef.current) === null || _b === void 0 ? void 0 : _b.contains(e.target)) {\n handleOpenChange();\n }\n return;\n }\n setOpen(false);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(false);\n }, [trigger]);\n useEffect(() => {\n if (trigger === 'click') {\n document.addEventListener('click', onClick);\n return () => {\n document.removeEventListener('click', onClick);\n };\n }\n }, [trigger]);\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!('open' in props) || !!trigger, 'FloatButton.Group', '`open` need to be used together with `trigger`') : void 0;\n }\n return wrapSSR( /*#__PURE__*/React.createElement(FloatButtonGroupProvider, {\n value: shape\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({\n ref: floatButtonGroupRef,\n className: groupCls,\n style: style\n }, hoverAction), trigger && ['click', 'hover'].includes(trigger) ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CSSMotion, {\n visible: open,\n motionName: `${groupPrefixCls}-wrap`\n }, _ref => {\n let {\n className: motionClassName\n } = _ref;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(motionClassName, wrapperCls)\n }, children);\n }), /*#__PURE__*/React.createElement(FloatButton, Object.assign({\n ref: floatButtonRef,\n type: type,\n shape: shape,\n icon: open ? closeIcon : icon,\n description: description,\n \"aria-label\": props['aria-label']\n }, floatButtonProps))) : children)));\n};\nexport default /*#__PURE__*/memo(FloatButtonGroup);","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/no-array-index-key */\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport BackTop from './BackTop';\nimport FloatButton, { floatButtonPrefixCls } from './FloatButton';\nimport FloatButtonGroup from './FloatButtonGroup';\nconst PureFloatButton = _a => {\n var {\n backTop\n } = _a,\n props = __rest(_a, [\"backTop\"]);\n return backTop ? /*#__PURE__*/React.createElement(BackTop, Object.assign({}, props, {\n visibilityHeight: 0\n })) : /*#__PURE__*/React.createElement(FloatButton, Object.assign({}, props));\n};\n/** @private Internal Component. Do not use in your production. */\nconst PurePanel = _a => {\n var {\n className,\n items\n } = _a,\n props = __rest(_a, [\"className\", \"items\"]);\n const {\n prefixCls: customizePrefixCls\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls(floatButtonPrefixCls, customizePrefixCls);\n const pureCls = `${prefixCls}-pure`;\n if (items) {\n return /*#__PURE__*/React.createElement(FloatButtonGroup, Object.assign({\n className: classNames(className, pureCls)\n }, props), items.map((item, index) => /*#__PURE__*/React.createElement(PureFloatButton, Object.assign({\n key: index\n }, item))));\n }\n return /*#__PURE__*/React.createElement(PureFloatButton, Object.assign({\n className: classNames(className, pureCls)\n }, props));\n};\nexport default PurePanel;","'use client';\n\nimport BackTop from './BackTop';\nimport FloatButton from './FloatButton';\nimport FloatButtonGroup from './FloatButtonGroup';\nimport PurePanel from './PurePanel';\nFloatButton.BackTop = BackTop;\nFloatButton.Group = FloatButtonGroup;\nFloatButton._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default FloatButton;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useCallback, useEffect } from 'react';\n/**\n * Trigger a callback on state change\n */\nexport default function useEffectState() {\n var _useState = useState({\n id: 0,\n callback: null\n }),\n _useState2 = _slicedToArray(_useState, 2),\n effectId = _useState2[0],\n setEffectId = _useState2[1];\n var update = useCallback(function (callback) {\n setEffectId(function (_ref) {\n var id = _ref.id;\n return {\n id: id + 1,\n callback: callback\n };\n });\n }, []);\n useEffect(function () {\n var _effectId$callback;\n (_effectId$callback = effectId.callback) === null || _effectId$callback === void 0 ? void 0 : _effectId$callback.call(effectId);\n }, [effectId]);\n return update;\n}","/* tslint:disable: no-object-literal-type-assertion */\nimport * as React from 'react';\n// We will never use default, here only to fix TypeScript warning\nvar MentionsContext = /*#__PURE__*/React.createContext(null);\nexport default MentionsContext;","import Menu, { MenuItem } from 'rc-menu';\nimport * as React from 'react';\nimport MentionsContext from \"./MentionsContext\";\n/**\n * We only use Menu to display the candidate.\n * The focus is controlled by textarea to make accessibility easy.\n */\nfunction DropdownMenu(props) {\n var _React$useContext = React.useContext(MentionsContext),\n notFoundContent = _React$useContext.notFoundContent,\n activeIndex = _React$useContext.activeIndex,\n setActiveIndex = _React$useContext.setActiveIndex,\n selectOption = _React$useContext.selectOption,\n onFocus = _React$useContext.onFocus,\n onBlur = _React$useContext.onBlur;\n var prefixCls = props.prefixCls,\n options = props.options;\n var activeOption = options[activeIndex] || {};\n return /*#__PURE__*/React.createElement(Menu, {\n prefixCls: \"\".concat(prefixCls, \"-menu\"),\n activeKey: activeOption.key,\n onSelect: function onSelect(_ref) {\n var key = _ref.key;\n var option = options.find(function (_ref2) {\n var optionKey = _ref2.key;\n return optionKey === key;\n });\n selectOption(option);\n },\n onFocus: onFocus,\n onBlur: onBlur\n }, options.map(function (option, index) {\n var key = option.key,\n disabled = option.disabled,\n className = option.className,\n style = option.style,\n label = option.label;\n return /*#__PURE__*/React.createElement(MenuItem, {\n key: key,\n disabled: disabled,\n className: className,\n style: style,\n onMouseEnter: function onMouseEnter() {\n setActiveIndex(index);\n }\n }, label);\n }), !options.length && /*#__PURE__*/React.createElement(MenuItem, {\n disabled: true\n }, notFoundContent));\n}\nexport default DropdownMenu;","import Trigger from '@rc-component/trigger';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport DropdownMenu from \"./DropdownMenu\";\nvar BUILT_IN_PLACEMENTS = {\n bottomRight: {\n points: ['tl', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n bottomLeft: {\n points: ['tr', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n topRight: {\n points: ['bl', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['br', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n }\n};\nvar KeywordTrigger = function KeywordTrigger(props) {\n var prefixCls = props.prefixCls,\n options = props.options,\n children = props.children,\n visible = props.visible,\n transitionName = props.transitionName,\n getPopupContainer = props.getPopupContainer,\n dropdownClassName = props.dropdownClassName,\n direction = props.direction,\n placement = props.placement;\n var dropdownPrefix = \"\".concat(prefixCls, \"-dropdown\");\n var dropdownElement = /*#__PURE__*/React.createElement(DropdownMenu, {\n prefixCls: dropdownPrefix,\n options: options\n });\n var dropdownPlacement = useMemo(function () {\n var popupPlacement;\n if (direction === 'rtl') {\n popupPlacement = placement === 'top' ? 'topLeft' : 'bottomLeft';\n } else {\n popupPlacement = placement === 'top' ? 'topRight' : 'bottomRight';\n }\n return popupPlacement;\n }, [direction, placement]);\n return /*#__PURE__*/React.createElement(Trigger, {\n prefixCls: dropdownPrefix,\n popupVisible: visible,\n popup: dropdownElement,\n popupPlacement: dropdownPlacement,\n popupTransitionName: transitionName,\n builtinPlacements: BUILT_IN_PLACEMENTS,\n getPopupContainer: getPopupContainer,\n popupClassName: dropdownClassName\n }, children);\n};\nexport default KeywordTrigger;","var Option = function Option() {\n return null;\n};\nexport default Option;","/**\n * Cut input selection into 2 part and return text before selection start\n */\nexport function getBeforeSelectionText(input) {\n var selectionStart = input.selectionStart;\n return input.value.slice(0, selectionStart);\n}\n/**\n * Find the last match prefix index\n */\nexport function getLastMeasureIndex(text, prefix) {\n return prefix.reduce(function (lastMatch, prefixStr) {\n var lastIndex = text.lastIndexOf(prefixStr);\n if (lastIndex > lastMatch.location) {\n return {\n location: lastIndex,\n prefix: prefixStr\n };\n }\n return lastMatch;\n }, {\n location: -1,\n prefix: ''\n });\n}\nfunction lower(char) {\n return (char || '').toLowerCase();\n}\nfunction reduceText(text, targetText, split) {\n var firstChar = text[0];\n if (!firstChar || firstChar === split) {\n return text;\n }\n\n // Reuse rest text as it can\n var restText = text;\n var targetTextLen = targetText.length;\n for (var i = 0; i < targetTextLen; i += 1) {\n if (lower(restText[i]) !== lower(targetText[i])) {\n restText = restText.slice(i);\n break;\n } else if (i === targetTextLen - 1) {\n restText = restText.slice(targetTextLen);\n }\n }\n return restText;\n}\n\n/**\n * Paint targetText into current text:\n * text: little@litest\n * targetText: light\n * => little @light test\n */\nexport function replaceWithMeasure(text, measureConfig) {\n var measureLocation = measureConfig.measureLocation,\n prefix = measureConfig.prefix,\n targetText = measureConfig.targetText,\n selectionStart = measureConfig.selectionStart,\n split = measureConfig.split;\n\n // Before text will append one space if have other text\n var beforeMeasureText = text.slice(0, measureLocation);\n if (beforeMeasureText[beforeMeasureText.length - split.length] === split) {\n beforeMeasureText = beforeMeasureText.slice(0, beforeMeasureText.length - split.length);\n }\n if (beforeMeasureText) {\n beforeMeasureText = \"\".concat(beforeMeasureText).concat(split);\n }\n\n // Cut duplicate string with current targetText\n var restText = reduceText(text.slice(selectionStart), targetText.slice(selectionStart - measureLocation - prefix.length), split);\n if (restText.slice(0, split.length) === split) {\n restText = restText.slice(split.length);\n }\n var connectedStartText = \"\".concat(beforeMeasureText).concat(prefix).concat(targetText).concat(split);\n return {\n text: \"\".concat(connectedStartText).concat(restText),\n selectionLocation: connectedStartText.length\n };\n}\nexport function setInputSelection(input, location) {\n input.setSelectionRange(location, location);\n\n /**\n * Reset caret into view.\n * Since this function always called by user control, it's safe to focus element.\n */\n input.blur();\n input.focus();\n}\nexport function validateSearch(text, split) {\n return !split || text.indexOf(split) === -1;\n}\nexport function filterOption(input, _ref) {\n var _ref$value = _ref.value,\n value = _ref$value === void 0 ? '' : _ref$value;\n var lowerCase = input.toLowerCase();\n return value.toLowerCase().indexOf(lowerCase) !== -1;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"style\", \"prefix\", \"split\", \"notFoundContent\", \"value\", \"defaultValue\", \"children\", \"options\", \"open\", \"validateSearch\", \"filterOption\", \"onChange\", \"onKeyDown\", \"onKeyUp\", \"onPressEnter\", \"onSearch\", \"onSelect\", \"onFocus\", \"onBlur\", \"transitionName\", \"placement\", \"direction\", \"getPopupContainer\", \"dropdownClassName\", \"rows\"],\n _excluded2 = [\"suffix\", \"prefixCls\", \"classes\", \"value\"];\nimport classNames from 'classnames';\nimport { BaseInput } from 'rc-input';\nimport TextArea from 'rc-textarea';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport warning from \"rc-util/es/warning\";\nimport React, { forwardRef, useEffect, useMemo, useRef, useState } from 'react';\nimport useEffectState from \"./hooks/useEffectState\";\nimport KeywordTrigger from \"./KeywordTrigger\";\nimport MentionsContext from \"./MentionsContext\";\nimport Option from \"./Option\";\nimport { filterOption as defaultFilterOption, getBeforeSelectionText, getLastMeasureIndex, replaceWithMeasure, setInputSelection, validateSearch as defaultValidateSearch } from \"./util\";\nvar InternalMentions = /*#__PURE__*/forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-mentions' : _props$prefixCls,\n className = props.className,\n style = props.style,\n _props$prefix = props.prefix,\n prefix = _props$prefix === void 0 ? '@' : _props$prefix,\n _props$split = props.split,\n split = _props$split === void 0 ? ' ' : _props$split,\n _props$notFoundConten = props.notFoundContent,\n notFoundContent = _props$notFoundConten === void 0 ? 'Not Found' : _props$notFoundConten,\n value = props.value,\n defaultValue = props.defaultValue,\n children = props.children,\n options = props.options,\n open = props.open,\n _props$validateSearch = props.validateSearch,\n validateSearch = _props$validateSearch === void 0 ? defaultValidateSearch : _props$validateSearch,\n _props$filterOption = props.filterOption,\n filterOption = _props$filterOption === void 0 ? defaultFilterOption : _props$filterOption,\n onChange = props.onChange,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp,\n onPressEnter = props.onPressEnter,\n onSearch = props.onSearch,\n onSelect = props.onSelect,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n transitionName = props.transitionName,\n placement = props.placement,\n direction = props.direction,\n getPopupContainer = props.getPopupContainer,\n dropdownClassName = props.dropdownClassName,\n _props$rows = props.rows,\n rows = _props$rows === void 0 ? 1 : _props$rows,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedPrefix = useMemo(function () {\n return Array.isArray(prefix) ? prefix : [prefix];\n }, [prefix]);\n\n // =============================== Refs ===============================\n var textareaRef = useRef(null);\n var measureRef = useRef(null);\n var getTextArea = function getTextArea() {\n var _textareaRef$current, _textareaRef$current$;\n return (_textareaRef$current = textareaRef.current) === null || _textareaRef$current === void 0 ? void 0 : (_textareaRef$current$ = _textareaRef$current.resizableTextArea) === null || _textareaRef$current$ === void 0 ? void 0 : _textareaRef$current$.textArea;\n };\n React.useImperativeHandle(ref, function () {\n var _textareaRef$current4, _textareaRef$current5;\n return {\n focus: function focus() {\n var _textareaRef$current2;\n return (_textareaRef$current2 = textareaRef.current) === null || _textareaRef$current2 === void 0 ? void 0 : _textareaRef$current2.focus();\n },\n blur: function blur() {\n var _textareaRef$current3;\n return (_textareaRef$current3 = textareaRef.current) === null || _textareaRef$current3 === void 0 ? void 0 : _textareaRef$current3.blur();\n },\n textarea: (_textareaRef$current4 = textareaRef.current) === null || _textareaRef$current4 === void 0 ? void 0 : (_textareaRef$current5 = _textareaRef$current4.resizableTextArea) === null || _textareaRef$current5 === void 0 ? void 0 : _textareaRef$current5.textArea\n };\n });\n\n // ============================== State ===============================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n measuring = _useState2[0],\n setMeasuring = _useState2[1];\n var _useState3 = useState(''),\n _useState4 = _slicedToArray(_useState3, 2),\n measureText = _useState4[0],\n setMeasureText = _useState4[1];\n var _useState5 = useState(''),\n _useState6 = _slicedToArray(_useState5, 2),\n measurePrefix = _useState6[0],\n setMeasurePrefix = _useState6[1];\n var _useState7 = useState(0),\n _useState8 = _slicedToArray(_useState7, 2),\n measureLocation = _useState8[0],\n setMeasureLocation = _useState8[1];\n var _useState9 = useState(0),\n _useState10 = _slicedToArray(_useState9, 2),\n activeIndex = _useState10[0],\n setActiveIndex = _useState10[1];\n var _useState11 = useState(false),\n _useState12 = _slicedToArray(_useState11, 2),\n isFocus = _useState12[0],\n setIsFocus = _useState12[1];\n\n // ============================== Value ===============================\n var _useMergedState = useMergedState('', {\n defaultValue: defaultValue,\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setMergedValue = _useMergedState2[1];\n\n // =============================== Open ===============================\n useEffect(function () {\n // Sync measure div top with textarea for rc-trigger usage\n if (measuring && measureRef.current) {\n measureRef.current.scrollTop = getTextArea().scrollTop;\n }\n }, [measuring]);\n var _React$useMemo = React.useMemo(function () {\n if (open) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`open` of Mentions is only used for debug usage. Do not use in you production.');\n }\n for (var i = 0; i < mergedPrefix.length; i += 1) {\n var curPrefix = mergedPrefix[i];\n var index = mergedValue.lastIndexOf(curPrefix);\n if (index >= 0) {\n return [true, '', curPrefix, index];\n }\n }\n }\n return [measuring, measureText, measurePrefix, measureLocation];\n }, [open, measuring, mergedPrefix, mergedValue, measureText, measurePrefix, measureLocation]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 4),\n mergedMeasuring = _React$useMemo2[0],\n mergedMeasureText = _React$useMemo2[1],\n mergedMeasurePrefix = _React$useMemo2[2],\n mergedMeasureLocation = _React$useMemo2[3];\n\n // ============================== Option ==============================\n var getOptions = React.useCallback(function (targetMeasureText) {\n var list;\n if (options && options.length > 0) {\n list = options.map(function (item) {\n var _item$key;\n return _objectSpread(_objectSpread({}, item), {}, {\n key: (_item$key = item === null || item === void 0 ? void 0 : item.key) !== null && _item$key !== void 0 ? _item$key : item.value\n });\n });\n } else {\n list = toArray(children).map(function (_ref) {\n var optionProps = _ref.props,\n key = _ref.key;\n return _objectSpread(_objectSpread({}, optionProps), {}, {\n label: optionProps.children,\n key: key || optionProps.value\n });\n });\n }\n return list.filter(function (option) {\n /** Return all result if `filterOption` is false. */\n if (filterOption === false) {\n return true;\n }\n return filterOption(targetMeasureText, option);\n });\n }, [children, options, filterOption]);\n var mergedOptions = React.useMemo(function () {\n return getOptions(mergedMeasureText);\n }, [getOptions, mergedMeasureText]);\n\n // ============================= Measure ==============================\n // Mark that we will reset input selection to target position when user select option\n var onSelectionEffect = useEffectState();\n var startMeasure = function startMeasure(nextMeasureText, nextMeasurePrefix, nextMeasureLocation) {\n setMeasuring(true);\n setMeasureText(nextMeasureText);\n setMeasurePrefix(nextMeasurePrefix);\n setMeasureLocation(nextMeasureLocation);\n setActiveIndex(0);\n };\n var stopMeasure = function stopMeasure(callback) {\n setMeasuring(false);\n setMeasureLocation(0);\n setMeasureText('');\n onSelectionEffect(callback);\n };\n\n // ============================== Change ==============================\n var triggerChange = function triggerChange(nextValue) {\n setMergedValue(nextValue);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue);\n };\n var onInternalChange = function onInternalChange(_ref2) {\n var nextValue = _ref2.target.value;\n triggerChange(nextValue);\n };\n var selectOption = function selectOption(option) {\n var _getTextArea;\n var _option$value = option.value,\n mentionValue = _option$value === void 0 ? '' : _option$value;\n var _replaceWithMeasure = replaceWithMeasure(mergedValue, {\n measureLocation: mergedMeasureLocation,\n targetText: mentionValue,\n prefix: mergedMeasurePrefix,\n selectionStart: (_getTextArea = getTextArea()) === null || _getTextArea === void 0 ? void 0 : _getTextArea.selectionStart,\n split: split\n }),\n text = _replaceWithMeasure.text,\n selectionLocation = _replaceWithMeasure.selectionLocation;\n triggerChange(text);\n stopMeasure(function () {\n // We need restore the selection position\n setInputSelection(getTextArea(), selectionLocation);\n });\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(option, mergedMeasurePrefix);\n };\n\n // ============================= KeyEvent =============================\n // Check if hit the measure keyword\n var onInternalKeyDown = function onInternalKeyDown(event) {\n var which = event.which;\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n\n // Skip if not measuring\n if (!mergedMeasuring) {\n return;\n }\n if (which === KeyCode.UP || which === KeyCode.DOWN) {\n // Control arrow function\n var optionLen = mergedOptions.length;\n var offset = which === KeyCode.UP ? -1 : 1;\n var newActiveIndex = (activeIndex + offset + optionLen) % optionLen;\n setActiveIndex(newActiveIndex);\n event.preventDefault();\n } else if (which === KeyCode.ESC) {\n stopMeasure();\n } else if (which === KeyCode.ENTER) {\n // Measure hit\n event.preventDefault();\n if (!mergedOptions.length) {\n stopMeasure();\n return;\n }\n var _option = mergedOptions[activeIndex];\n selectOption(_option);\n }\n };\n\n /**\n * When to start measure:\n * 1. When user press `prefix`\n * 2. When measureText !== prevMeasureText\n * - If measure hit\n * - If measuring\n *\n * When to stop measure:\n * 1. Selection is out of range\n * 2. Contains `space`\n * 3. ESC or select one\n */\n var onInternalKeyUp = function onInternalKeyUp(event) {\n var key = event.key,\n which = event.which;\n var target = event.target;\n var selectionStartText = getBeforeSelectionText(target);\n var _getLastMeasureIndex = getLastMeasureIndex(selectionStartText, mergedPrefix),\n measureIndex = _getLastMeasureIndex.location,\n nextMeasurePrefix = _getLastMeasureIndex.prefix;\n\n // If the client implements an onKeyUp handler, call it\n onKeyUp === null || onKeyUp === void 0 ? void 0 : onKeyUp(event);\n\n // Skip if match the white key list\n if ([KeyCode.ESC, KeyCode.UP, KeyCode.DOWN, KeyCode.ENTER].indexOf(which) !== -1) {\n return;\n }\n if (measureIndex !== -1) {\n var nextMeasureText = selectionStartText.slice(measureIndex + nextMeasurePrefix.length);\n var validateMeasure = validateSearch(nextMeasureText, split);\n var matchOption = !!getOptions(nextMeasureText).length;\n if (validateMeasure) {\n if (key === nextMeasurePrefix || key === 'Shift' || mergedMeasuring || nextMeasureText !== mergedMeasureText && matchOption) {\n startMeasure(nextMeasureText, nextMeasurePrefix, measureIndex);\n }\n } else if (mergedMeasuring) {\n // Stop if measureText is invalidate\n stopMeasure();\n }\n\n /**\n * We will trigger `onSearch` to developer since they may use for async update.\n * If met `space` means user finished searching.\n */\n if (onSearch && validateMeasure) {\n onSearch(nextMeasureText, nextMeasurePrefix);\n }\n } else if (mergedMeasuring) {\n stopMeasure();\n }\n };\n var onInternalPressEnter = function onInternalPressEnter(event) {\n if (!mergedMeasuring && onPressEnter) {\n onPressEnter(event);\n }\n };\n\n // ============================ Focus Blur ============================\n var focusRef = useRef();\n var onInternalFocus = function onInternalFocus(event) {\n window.clearTimeout(focusRef.current);\n if (!isFocus && event && onFocus) {\n onFocus(event);\n }\n setIsFocus(true);\n };\n var onInternalBlur = function onInternalBlur(event) {\n focusRef.current = window.setTimeout(function () {\n setIsFocus(false);\n stopMeasure();\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);\n }, 0);\n };\n var onDropdownFocus = function onDropdownFocus() {\n onInternalFocus();\n };\n var onDropdownBlur = function onDropdownBlur() {\n onInternalBlur();\n };\n\n // ============================== Render ==============================\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, className),\n style: style\n }, /*#__PURE__*/React.createElement(TextArea, _extends({\n ref: textareaRef,\n value: mergedValue\n }, restProps, {\n rows: rows,\n onChange: onInternalChange,\n onKeyDown: onInternalKeyDown,\n onKeyUp: onInternalKeyUp,\n onPressEnter: onInternalPressEnter,\n onFocus: onInternalFocus,\n onBlur: onInternalBlur\n })), mergedMeasuring && /*#__PURE__*/React.createElement(\"div\", {\n ref: measureRef,\n className: \"\".concat(prefixCls, \"-measure\")\n }, mergedValue.slice(0, mergedMeasureLocation), /*#__PURE__*/React.createElement(MentionsContext.Provider, {\n value: {\n notFoundContent: notFoundContent,\n activeIndex: activeIndex,\n setActiveIndex: setActiveIndex,\n selectOption: selectOption,\n onFocus: onDropdownFocus,\n onBlur: onDropdownBlur\n }\n }, /*#__PURE__*/React.createElement(KeywordTrigger, {\n prefixCls: prefixCls,\n transitionName: transitionName,\n placement: placement,\n direction: direction,\n options: mergedOptions,\n visible: true,\n getPopupContainer: getPopupContainer,\n dropdownClassName: dropdownClassName\n }, /*#__PURE__*/React.createElement(\"span\", null, mergedMeasurePrefix))), mergedValue.slice(mergedMeasureLocation + mergedMeasurePrefix.length)));\n});\nvar Mentions = /*#__PURE__*/forwardRef(function (_ref3, ref) {\n var suffix = _ref3.suffix,\n prefixCls = _ref3.prefixCls,\n classes = _ref3.classes,\n value = _ref3.value,\n rest = _objectWithoutProperties(_ref3, _excluded2);\n return /*#__PURE__*/React.createElement(BaseInput, {\n inputElement: /*#__PURE__*/React.createElement(InternalMentions, _extends({\n prefixCls: prefixCls,\n ref: ref\n }, rest)),\n suffix: suffix,\n prefixCls: prefixCls,\n classes: classes,\n value: value\n });\n});\nMentions.Option = Option;\nexport default Mentions;","import Mentions from \"./Mentions\";\nexport default Mentions;","import { genBasicInputStyle, genDisabledStyle, genPlaceholderStyle, genStatusStyle, initInputToken } from '../../input/style';\nimport { resetComponent, textEllipsis } from '../../style';\nimport { genComponentStyleHook } from '../../theme/internal';\nconst genMentionsStyle = token => {\n const {\n componentCls,\n colorTextDisabled,\n controlItemBgHover,\n controlPaddingHorizontal,\n colorText,\n motionDurationSlow,\n lineHeight,\n controlHeight,\n inputPaddingHorizontal,\n inputPaddingVertical,\n fontSize,\n colorBgElevated,\n paddingXXS,\n borderRadius,\n borderRadiusLG,\n boxShadowSecondary\n } = token;\n const itemPaddingVertical = Math.round((token.controlHeight - token.fontSize * token.lineHeight) / 2);\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genBasicInputStyle(token)), {\n position: 'relative',\n display: 'inline-block',\n height: 'auto',\n padding: 0,\n overflow: 'hidden',\n lineHeight,\n whiteSpace: 'pre-wrap',\n verticalAlign: 'bottom'\n }), genStatusStyle(token, componentCls)), {\n '&-disabled': {\n '> textarea': Object.assign({}, genDisabledStyle(token))\n },\n [`&-affix-wrapper ${componentCls}-suffix`]: {\n position: 'absolute',\n top: 0,\n insetInlineEnd: inputPaddingHorizontal,\n bottom: 0,\n zIndex: 1,\n display: 'inline-flex',\n alignItems: 'center',\n margin: 'auto'\n },\n // ================= Input Area =================\n [`> textarea, ${componentCls}-measure`]: {\n color: colorText,\n boxSizing: 'border-box',\n minHeight: controlHeight - 2,\n margin: 0,\n padding: `${inputPaddingVertical}px ${inputPaddingHorizontal}px`,\n overflow: 'inherit',\n overflowX: 'hidden',\n overflowY: 'auto',\n fontWeight: 'inherit',\n fontSize: 'inherit',\n fontFamily: 'inherit',\n fontStyle: 'inherit',\n fontVariant: 'inherit',\n fontSizeAdjust: 'inherit',\n fontStretch: 'inherit',\n lineHeight: 'inherit',\n direction: 'inherit',\n letterSpacing: 'inherit',\n whiteSpace: 'inherit',\n textAlign: 'inherit',\n verticalAlign: 'top',\n wordWrap: 'break-word',\n wordBreak: 'inherit',\n tabSize: 'inherit'\n },\n '> textarea': Object.assign({\n width: '100%',\n border: 'none',\n outline: 'none',\n resize: 'none',\n backgroundColor: 'inherit'\n }, genPlaceholderStyle(token.colorTextPlaceholder)),\n [`${componentCls}-measure`]: {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n zIndex: -1,\n color: 'transparent',\n pointerEvents: 'none',\n '> span': {\n display: 'inline-block',\n minHeight: '1em'\n }\n },\n // ================== Dropdown ==================\n '&-dropdown': Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: -9999,\n insetInlineStart: -9999,\n zIndex: token.zIndexPopup,\n boxSizing: 'border-box',\n fontSize,\n fontVariant: 'initial',\n padding: paddingXXS,\n backgroundColor: colorBgElevated,\n borderRadius: borderRadiusLG,\n outline: 'none',\n boxShadow: boxShadowSecondary,\n '&-hidden': {\n display: 'none'\n },\n [`${componentCls}-dropdown-menu`]: {\n maxHeight: token.dropdownHeight,\n margin: 0,\n paddingInlineStart: 0,\n overflow: 'auto',\n listStyle: 'none',\n outline: 'none',\n '&-item': Object.assign(Object.assign({}, textEllipsis), {\n position: 'relative',\n display: 'block',\n minWidth: token.controlItemWidth,\n padding: `${itemPaddingVertical}px ${controlPaddingHorizontal}px`,\n color: colorText,\n borderRadius,\n fontWeight: 'normal',\n lineHeight,\n cursor: 'pointer',\n transition: `background ${motionDurationSlow} ease`,\n '&:hover': {\n backgroundColor: controlItemBgHover\n },\n '&-disabled': {\n color: colorTextDisabled,\n cursor: 'not-allowed',\n '&:hover': {\n color: colorTextDisabled,\n backgroundColor: controlItemBgHover,\n cursor: 'not-allowed'\n }\n },\n '&-selected': {\n color: colorText,\n fontWeight: token.fontWeightStrong,\n backgroundColor: controlItemBgHover\n },\n '&-active': {\n backgroundColor: controlItemBgHover\n }\n })\n }\n })\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Mentions', token => {\n const mentionsToken = initInputToken(token);\n return [genMentionsStyle(mentionsToken)];\n}, token => ({\n dropdownHeight: 250,\n controlItemWidth: 100,\n zIndexPopup: token.zIndexPopupBase + 50\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 RcMentions from 'rc-mentions';\nimport { composeRef } from \"rc-util/es/ref\";\n// eslint-disable-next-line import/no-named-as-default\nimport * as React from 'react';\nimport genPurePanel from '../_util/PurePanel';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport { FormItemInputContext } from '../form/context';\nimport Spin from '../spin';\nimport useStyle from './style';\nexport const {\n Option\n} = RcMentions;\nfunction loadingFilterOption() {\n return true;\n}\nconst InternalMentions = (props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n disabled,\n loading,\n filterOption,\n children,\n notFoundContent,\n options,\n status: customStatus,\n popupClassName,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"disabled\", \"loading\", \"filterOption\", \"children\", \"notFoundContent\", \"options\", \"status\", \"popupClassName\", \"style\"]);\n const [focused, setFocused] = React.useState(false);\n const innerRef = React.useRef(null);\n const mergedRef = composeRef(ref, innerRef);\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!children, 'Mentions', '`Mentions.Option` is deprecated. Please use `options` instead.') : void 0;\n }\n const {\n getPrefixCls,\n renderEmpty,\n direction,\n mentions: contextMentions\n } = React.useContext(ConfigContext);\n const {\n status: contextStatus,\n hasFeedback,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n const onFocus = function () {\n if (restProps.onFocus) {\n restProps.onFocus.apply(restProps, arguments);\n }\n setFocused(true);\n };\n const onBlur = function () {\n if (restProps.onBlur) {\n restProps.onBlur.apply(restProps, arguments);\n }\n setFocused(false);\n };\n const notFoundContentEle = React.useMemo(() => {\n if (notFoundContent !== undefined) {\n return notFoundContent;\n }\n return (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Select')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Select\"\n });\n }, [notFoundContent, renderEmpty]);\n const mentionOptions = React.useMemo(() => {\n if (loading) {\n return /*#__PURE__*/React.createElement(Option, {\n value: \"ANTD_SEARCHING\",\n disabled: true\n }, /*#__PURE__*/React.createElement(Spin, {\n size: \"small\"\n }));\n }\n return children;\n }, [loading, children]);\n const mergedOptions = loading ? [{\n value: 'ANTD_SEARCHING',\n disabled: true,\n label: /*#__PURE__*/React.createElement(Spin, {\n size: \"small\"\n })\n }] : options;\n const mentionsfilterOption = loading ? loadingFilterOption : filterOption;\n const prefixCls = getPrefixCls('mentions', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergedClassName = classNames({\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-focused`]: focused,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, getStatusClassNames(prefixCls, mergedStatus), contextMentions === null || contextMentions === void 0 ? void 0 : contextMentions.className, !hasFeedback && className, rootClassName, hashId);\n const mentions = /*#__PURE__*/React.createElement(RcMentions, Object.assign({\n prefixCls: prefixCls,\n notFoundContent: notFoundContentEle,\n className: mergedClassName,\n disabled: disabled,\n direction: direction,\n style: Object.assign(Object.assign({}, contextMentions === null || contextMentions === void 0 ? void 0 : contextMentions.style), style)\n }, restProps, {\n filterOption: mentionsfilterOption,\n onFocus: onFocus,\n onBlur: onBlur,\n dropdownClassName: classNames(popupClassName, rootClassName, hashId),\n ref: mergedRef,\n options: mergedOptions,\n suffix: hasFeedback && feedbackIcon,\n classes: {\n affixWrapper: classNames(hashId, className)\n }\n }), mentionOptions);\n return wrapSSR(mentions);\n};\nconst Mentions = /*#__PURE__*/React.forwardRef(InternalMentions);\nif (process.env.NODE_ENV !== 'production') {\n Mentions.displayName = 'Mentions';\n}\nMentions.Option = Option;\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(Mentions, 'mentions');\nMentions._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nMentions.getMentions = function () {\n let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n let config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n prefix = '@',\n split = ' '\n } = config;\n const prefixList = Array.isArray(prefix) ? prefix : [prefix];\n return value.split(split).map(function () {\n let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n let hitPrefix = null;\n prefixList.some(prefixStr => {\n const startStr = str.slice(0, prefixStr.length);\n if (startStr === prefixStr) {\n hitPrefix = prefixStr;\n return true;\n }\n return false;\n });\n if (hitPrefix !== null) {\n return {\n prefix: hitPrefix,\n value: str.slice(hitPrefix.length)\n };\n }\n return null;\n }).filter(entity => !!entity && !!entity.value);\n};\nexport default Mentions;","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};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\n\n// src/index.tsx\nimport React, { useRef, useEffect, useState } from \"react\";\n\n// src/third-party/qrcodegen/index.ts\n/**\n * @license QR Code generator library (TypeScript)\n * Copyright (c) Project Nayuki.\n * SPDX-License-Identifier: MIT\n */\nvar qrcodegen;\n((qrcodegen2) => {\n const _QrCode = class {\n constructor(version, errorCorrectionLevel, dataCodewords, msk) {\n this.version = version;\n this.errorCorrectionLevel = errorCorrectionLevel;\n this.modules = [];\n this.isFunction = [];\n if (version < _QrCode.MIN_VERSION || version > _QrCode.MAX_VERSION)\n throw new RangeError(\"Version value out of range\");\n if (msk < -1 || msk > 7)\n throw new RangeError(\"Mask value out of range\");\n this.size = version * 4 + 17;\n let row = [];\n for (let i = 0; i < this.size; i++)\n row.push(false);\n for (let i = 0; i < this.size; i++) {\n this.modules.push(row.slice());\n this.isFunction.push(row.slice());\n }\n this.drawFunctionPatterns();\n const allCodewords = this.addEccAndInterleave(dataCodewords);\n this.drawCodewords(allCodewords);\n if (msk == -1) {\n let minPenalty = 1e9;\n for (let i = 0; i < 8; i++) {\n this.applyMask(i);\n this.drawFormatBits(i);\n const penalty = this.getPenaltyScore();\n if (penalty < minPenalty) {\n msk = i;\n minPenalty = penalty;\n }\n this.applyMask(i);\n }\n }\n assert(0 <= msk && msk <= 7);\n this.mask = msk;\n this.applyMask(msk);\n this.drawFormatBits(msk);\n this.isFunction = [];\n }\n static encodeText(text, ecl) {\n const segs = qrcodegen2.QrSegment.makeSegments(text);\n return _QrCode.encodeSegments(segs, ecl);\n }\n static encodeBinary(data, ecl) {\n const seg = qrcodegen2.QrSegment.makeBytes(data);\n return _QrCode.encodeSegments([seg], ecl);\n }\n static encodeSegments(segs, ecl, minVersion = 1, maxVersion = 40, mask = -1, boostEcl = true) {\n if (!(_QrCode.MIN_VERSION <= minVersion && minVersion <= maxVersion && maxVersion <= _QrCode.MAX_VERSION) || mask < -1 || mask > 7)\n throw new RangeError(\"Invalid value\");\n let version;\n let dataUsedBits;\n for (version = minVersion; ; version++) {\n const dataCapacityBits2 = _QrCode.getNumDataCodewords(version, ecl) * 8;\n const usedBits = QrSegment.getTotalBits(segs, version);\n if (usedBits <= dataCapacityBits2) {\n dataUsedBits = usedBits;\n break;\n }\n if (version >= maxVersion)\n throw new RangeError(\"Data too long\");\n }\n for (const newEcl of [_QrCode.Ecc.MEDIUM, _QrCode.Ecc.QUARTILE, _QrCode.Ecc.HIGH]) {\n if (boostEcl && dataUsedBits <= _QrCode.getNumDataCodewords(version, newEcl) * 8)\n ecl = newEcl;\n }\n let bb = [];\n for (const seg of segs) {\n appendBits(seg.mode.modeBits, 4, bb);\n appendBits(seg.numChars, seg.mode.numCharCountBits(version), bb);\n for (const b of seg.getData())\n bb.push(b);\n }\n assert(bb.length == dataUsedBits);\n const dataCapacityBits = _QrCode.getNumDataCodewords(version, ecl) * 8;\n assert(bb.length <= dataCapacityBits);\n appendBits(0, Math.min(4, dataCapacityBits - bb.length), bb);\n appendBits(0, (8 - bb.length % 8) % 8, bb);\n assert(bb.length % 8 == 0);\n for (let padByte = 236; bb.length < dataCapacityBits; padByte ^= 236 ^ 17)\n appendBits(padByte, 8, bb);\n let dataCodewords = [];\n while (dataCodewords.length * 8 < bb.length)\n dataCodewords.push(0);\n bb.forEach((b, i) => dataCodewords[i >>> 3] |= b << 7 - (i & 7));\n return new _QrCode(version, ecl, dataCodewords, mask);\n }\n getModule(x, y) {\n return 0 <= x && x < this.size && 0 <= y && y < this.size && this.modules[y][x];\n }\n getModules() {\n return this.modules;\n }\n drawFunctionPatterns() {\n for (let i = 0; i < this.size; i++) {\n this.setFunctionModule(6, i, i % 2 == 0);\n this.setFunctionModule(i, 6, i % 2 == 0);\n }\n this.drawFinderPattern(3, 3);\n this.drawFinderPattern(this.size - 4, 3);\n this.drawFinderPattern(3, this.size - 4);\n const alignPatPos = this.getAlignmentPatternPositions();\n const numAlign = alignPatPos.length;\n for (let i = 0; i < numAlign; i++) {\n for (let j = 0; j < numAlign; j++) {\n if (!(i == 0 && j == 0 || i == 0 && j == numAlign - 1 || i == numAlign - 1 && j == 0))\n this.drawAlignmentPattern(alignPatPos[i], alignPatPos[j]);\n }\n }\n this.drawFormatBits(0);\n this.drawVersion();\n }\n drawFormatBits(mask) {\n const data = this.errorCorrectionLevel.formatBits << 3 | mask;\n let rem = data;\n for (let i = 0; i < 10; i++)\n rem = rem << 1 ^ (rem >>> 9) * 1335;\n const bits = (data << 10 | rem) ^ 21522;\n assert(bits >>> 15 == 0);\n for (let i = 0; i <= 5; i++)\n this.setFunctionModule(8, i, getBit(bits, i));\n this.setFunctionModule(8, 7, getBit(bits, 6));\n this.setFunctionModule(8, 8, getBit(bits, 7));\n this.setFunctionModule(7, 8, getBit(bits, 8));\n for (let i = 9; i < 15; i++)\n this.setFunctionModule(14 - i, 8, getBit(bits, i));\n for (let i = 0; i < 8; i++)\n this.setFunctionModule(this.size - 1 - i, 8, getBit(bits, i));\n for (let i = 8; i < 15; i++)\n this.setFunctionModule(8, this.size - 15 + i, getBit(bits, i));\n this.setFunctionModule(8, this.size - 8, true);\n }\n drawVersion() {\n if (this.version < 7)\n return;\n let rem = this.version;\n for (let i = 0; i < 12; i++)\n rem = rem << 1 ^ (rem >>> 11) * 7973;\n const bits = this.version << 12 | rem;\n assert(bits >>> 18 == 0);\n for (let i = 0; i < 18; i++) {\n const color = getBit(bits, i);\n const a = this.size - 11 + i % 3;\n const b = Math.floor(i / 3);\n this.setFunctionModule(a, b, color);\n this.setFunctionModule(b, a, color);\n }\n }\n drawFinderPattern(x, y) {\n for (let dy = -4; dy <= 4; dy++) {\n for (let dx = -4; dx <= 4; dx++) {\n const dist = Math.max(Math.abs(dx), Math.abs(dy));\n const xx = x + dx;\n const yy = y + dy;\n if (0 <= xx && xx < this.size && 0 <= yy && yy < this.size)\n this.setFunctionModule(xx, yy, dist != 2 && dist != 4);\n }\n }\n }\n drawAlignmentPattern(x, y) {\n for (let dy = -2; dy <= 2; dy++) {\n for (let dx = -2; dx <= 2; dx++)\n this.setFunctionModule(x + dx, y + dy, Math.max(Math.abs(dx), Math.abs(dy)) != 1);\n }\n }\n setFunctionModule(x, y, isDark) {\n this.modules[y][x] = isDark;\n this.isFunction[y][x] = true;\n }\n addEccAndInterleave(data) {\n const ver = this.version;\n const ecl = this.errorCorrectionLevel;\n if (data.length != _QrCode.getNumDataCodewords(ver, ecl))\n throw new RangeError(\"Invalid argument\");\n const numBlocks = _QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n const blockEccLen = _QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver];\n const rawCodewords = Math.floor(_QrCode.getNumRawDataModules(ver) / 8);\n const numShortBlocks = numBlocks - rawCodewords % numBlocks;\n const shortBlockLen = Math.floor(rawCodewords / numBlocks);\n let blocks = [];\n const rsDiv = _QrCode.reedSolomonComputeDivisor(blockEccLen);\n for (let i = 0, k = 0; i < numBlocks; i++) {\n let dat = data.slice(k, k + shortBlockLen - blockEccLen + (i < numShortBlocks ? 0 : 1));\n k += dat.length;\n const ecc = _QrCode.reedSolomonComputeRemainder(dat, rsDiv);\n if (i < numShortBlocks)\n dat.push(0);\n blocks.push(dat.concat(ecc));\n }\n let result = [];\n for (let i = 0; i < blocks[0].length; i++) {\n blocks.forEach((block, j) => {\n if (i != shortBlockLen - blockEccLen || j >= numShortBlocks)\n result.push(block[i]);\n });\n }\n assert(result.length == rawCodewords);\n return result;\n }\n drawCodewords(data) {\n if (data.length != Math.floor(_QrCode.getNumRawDataModules(this.version) / 8))\n throw new RangeError(\"Invalid argument\");\n let i = 0;\n for (let right = this.size - 1; right >= 1; right -= 2) {\n if (right == 6)\n right = 5;\n for (let vert = 0; vert < this.size; vert++) {\n for (let j = 0; j < 2; j++) {\n const x = right - j;\n const upward = (right + 1 & 2) == 0;\n const y = upward ? this.size - 1 - vert : vert;\n if (!this.isFunction[y][x] && i < data.length * 8) {\n this.modules[y][x] = getBit(data[i >>> 3], 7 - (i & 7));\n i++;\n }\n }\n }\n }\n assert(i == data.length * 8);\n }\n applyMask(mask) {\n if (mask < 0 || mask > 7)\n throw new RangeError(\"Mask value out of range\");\n for (let y = 0; y < this.size; y++) {\n for (let x = 0; x < this.size; x++) {\n let invert;\n switch (mask) {\n case 0:\n invert = (x + y) % 2 == 0;\n break;\n case 1:\n invert = y % 2 == 0;\n break;\n case 2:\n invert = x % 3 == 0;\n break;\n case 3:\n invert = (x + y) % 3 == 0;\n break;\n case 4:\n invert = (Math.floor(x / 3) + Math.floor(y / 2)) % 2 == 0;\n break;\n case 5:\n invert = x * y % 2 + x * y % 3 == 0;\n break;\n case 6:\n invert = (x * y % 2 + x * y % 3) % 2 == 0;\n break;\n case 7:\n invert = ((x + y) % 2 + x * y % 3) % 2 == 0;\n break;\n default:\n throw new Error(\"Unreachable\");\n }\n if (!this.isFunction[y][x] && invert)\n this.modules[y][x] = !this.modules[y][x];\n }\n }\n }\n getPenaltyScore() {\n let result = 0;\n for (let y = 0; y < this.size; y++) {\n let runColor = false;\n let runX = 0;\n let runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (let x = 0; x < this.size; x++) {\n if (this.modules[y][x] == runColor) {\n runX++;\n if (runX == 5)\n result += _QrCode.PENALTY_N1;\n else if (runX > 5)\n result++;\n } else {\n this.finderPenaltyAddHistory(runX, runHistory);\n if (!runColor)\n result += this.finderPenaltyCountPatterns(runHistory) * _QrCode.PENALTY_N3;\n runColor = this.modules[y][x];\n runX = 1;\n }\n }\n result += this.finderPenaltyTerminateAndCount(runColor, runX, runHistory) * _QrCode.PENALTY_N3;\n }\n for (let x = 0; x < this.size; x++) {\n let runColor = false;\n let runY = 0;\n let runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (let y = 0; y < this.size; y++) {\n if (this.modules[y][x] == runColor) {\n runY++;\n if (runY == 5)\n result += _QrCode.PENALTY_N1;\n else if (runY > 5)\n result++;\n } else {\n this.finderPenaltyAddHistory(runY, runHistory);\n if (!runColor)\n result += this.finderPenaltyCountPatterns(runHistory) * _QrCode.PENALTY_N3;\n runColor = this.modules[y][x];\n runY = 1;\n }\n }\n result += this.finderPenaltyTerminateAndCount(runColor, runY, runHistory) * _QrCode.PENALTY_N3;\n }\n for (let y = 0; y < this.size - 1; y++) {\n for (let x = 0; x < this.size - 1; x++) {\n const color = this.modules[y][x];\n if (color == this.modules[y][x + 1] && color == this.modules[y + 1][x] && color == this.modules[y + 1][x + 1])\n result += _QrCode.PENALTY_N2;\n }\n }\n let dark = 0;\n for (const row of this.modules)\n dark = row.reduce((sum, color) => sum + (color ? 1 : 0), dark);\n const total = this.size * this.size;\n const k = Math.ceil(Math.abs(dark * 20 - total * 10) / total) - 1;\n assert(0 <= k && k <= 9);\n result += k * _QrCode.PENALTY_N4;\n assert(0 <= result && result <= 2568888);\n return result;\n }\n getAlignmentPatternPositions() {\n if (this.version == 1)\n return [];\n else {\n const numAlign = Math.floor(this.version / 7) + 2;\n const step = this.version == 32 ? 26 : Math.ceil((this.version * 4 + 4) / (numAlign * 2 - 2)) * 2;\n let result = [6];\n for (let pos = this.size - 7; result.length < numAlign; pos -= step)\n result.splice(1, 0, pos);\n return result;\n }\n }\n static getNumRawDataModules(ver) {\n if (ver < _QrCode.MIN_VERSION || ver > _QrCode.MAX_VERSION)\n throw new RangeError(\"Version number out of range\");\n let result = (16 * ver + 128) * ver + 64;\n if (ver >= 2) {\n const numAlign = Math.floor(ver / 7) + 2;\n result -= (25 * numAlign - 10) * numAlign - 55;\n if (ver >= 7)\n result -= 36;\n }\n assert(208 <= result && result <= 29648);\n return result;\n }\n static getNumDataCodewords(ver, ecl) {\n return Math.floor(_QrCode.getNumRawDataModules(ver) / 8) - _QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver] * _QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n }\n static reedSolomonComputeDivisor(degree) {\n if (degree < 1 || degree > 255)\n throw new RangeError(\"Degree out of range\");\n let result = [];\n for (let i = 0; i < degree - 1; i++)\n result.push(0);\n result.push(1);\n let root = 1;\n for (let i = 0; i < degree; i++) {\n for (let j = 0; j < result.length; j++) {\n result[j] = _QrCode.reedSolomonMultiply(result[j], root);\n if (j + 1 < result.length)\n result[j] ^= result[j + 1];\n }\n root = _QrCode.reedSolomonMultiply(root, 2);\n }\n return result;\n }\n static reedSolomonComputeRemainder(data, divisor) {\n let result = divisor.map((_) => 0);\n for (const b of data) {\n const factor = b ^ result.shift();\n result.push(0);\n divisor.forEach((coef, i) => result[i] ^= _QrCode.reedSolomonMultiply(coef, factor));\n }\n return result;\n }\n static reedSolomonMultiply(x, y) {\n if (x >>> 8 != 0 || y >>> 8 != 0)\n throw new RangeError(\"Byte out of range\");\n let z = 0;\n for (let i = 7; i >= 0; i--) {\n z = z << 1 ^ (z >>> 7) * 285;\n z ^= (y >>> i & 1) * x;\n }\n assert(z >>> 8 == 0);\n return z;\n }\n finderPenaltyCountPatterns(runHistory) {\n const n = runHistory[1];\n assert(n <= this.size * 3);\n const core = n > 0 && runHistory[2] == n && runHistory[3] == n * 3 && runHistory[4] == n && runHistory[5] == n;\n return (core && runHistory[0] >= n * 4 && runHistory[6] >= n ? 1 : 0) + (core && runHistory[6] >= n * 4 && runHistory[0] >= n ? 1 : 0);\n }\n finderPenaltyTerminateAndCount(currentRunColor, currentRunLength, runHistory) {\n if (currentRunColor) {\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n currentRunLength = 0;\n }\n currentRunLength += this.size;\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n return this.finderPenaltyCountPatterns(runHistory);\n }\n finderPenaltyAddHistory(currentRunLength, runHistory) {\n if (runHistory[0] == 0)\n currentRunLength += this.size;\n runHistory.pop();\n runHistory.unshift(currentRunLength);\n }\n };\n let QrCode = _QrCode;\n QrCode.MIN_VERSION = 1;\n QrCode.MAX_VERSION = 40;\n QrCode.PENALTY_N1 = 3;\n QrCode.PENALTY_N2 = 3;\n QrCode.PENALTY_N3 = 40;\n QrCode.PENALTY_N4 = 10;\n QrCode.ECC_CODEWORDS_PER_BLOCK = [\n [-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],\n [-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28],\n [-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],\n [-1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30]\n ];\n QrCode.NUM_ERROR_CORRECTION_BLOCKS = [\n [-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25],\n [-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49],\n [-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68],\n [-1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81]\n ];\n qrcodegen2.QrCode = QrCode;\n function appendBits(val, len, bb) {\n if (len < 0 || len > 31 || val >>> len != 0)\n throw new RangeError(\"Value out of range\");\n for (let i = len - 1; i >= 0; i--)\n bb.push(val >>> i & 1);\n }\n function getBit(x, i) {\n return (x >>> i & 1) != 0;\n }\n function assert(cond) {\n if (!cond)\n throw new Error(\"Assertion error\");\n }\n const _QrSegment = class {\n constructor(mode, numChars, bitData) {\n this.mode = mode;\n this.numChars = numChars;\n this.bitData = bitData;\n if (numChars < 0)\n throw new RangeError(\"Invalid argument\");\n this.bitData = bitData.slice();\n }\n static makeBytes(data) {\n let bb = [];\n for (const b of data)\n appendBits(b, 8, bb);\n return new _QrSegment(_QrSegment.Mode.BYTE, data.length, bb);\n }\n static makeNumeric(digits) {\n if (!_QrSegment.isNumeric(digits))\n throw new RangeError(\"String contains non-numeric characters\");\n let bb = [];\n for (let i = 0; i < digits.length; ) {\n const n = Math.min(digits.length - i, 3);\n appendBits(parseInt(digits.substr(i, n), 10), n * 3 + 1, bb);\n i += n;\n }\n return new _QrSegment(_QrSegment.Mode.NUMERIC, digits.length, bb);\n }\n static makeAlphanumeric(text) {\n if (!_QrSegment.isAlphanumeric(text))\n throw new RangeError(\"String contains unencodable characters in alphanumeric mode\");\n let bb = [];\n let i;\n for (i = 0; i + 2 <= text.length; i += 2) {\n let temp = _QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)) * 45;\n temp += _QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i + 1));\n appendBits(temp, 11, bb);\n }\n if (i < text.length)\n appendBits(_QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)), 6, bb);\n return new _QrSegment(_QrSegment.Mode.ALPHANUMERIC, text.length, bb);\n }\n static makeSegments(text) {\n if (text == \"\")\n return [];\n else if (_QrSegment.isNumeric(text))\n return [_QrSegment.makeNumeric(text)];\n else if (_QrSegment.isAlphanumeric(text))\n return [_QrSegment.makeAlphanumeric(text)];\n else\n return [_QrSegment.makeBytes(_QrSegment.toUtf8ByteArray(text))];\n }\n static makeEci(assignVal) {\n let bb = [];\n if (assignVal < 0)\n throw new RangeError(\"ECI assignment value out of range\");\n else if (assignVal < 1 << 7)\n appendBits(assignVal, 8, bb);\n else if (assignVal < 1 << 14) {\n appendBits(2, 2, bb);\n appendBits(assignVal, 14, bb);\n } else if (assignVal < 1e6) {\n appendBits(6, 3, bb);\n appendBits(assignVal, 21, bb);\n } else\n throw new RangeError(\"ECI assignment value out of range\");\n return new _QrSegment(_QrSegment.Mode.ECI, 0, bb);\n }\n static isNumeric(text) {\n return _QrSegment.NUMERIC_REGEX.test(text);\n }\n static isAlphanumeric(text) {\n return _QrSegment.ALPHANUMERIC_REGEX.test(text);\n }\n getData() {\n return this.bitData.slice();\n }\n static getTotalBits(segs, version) {\n let result = 0;\n for (const seg of segs) {\n const ccbits = seg.mode.numCharCountBits(version);\n if (seg.numChars >= 1 << ccbits)\n return Infinity;\n result += 4 + ccbits + seg.bitData.length;\n }\n return result;\n }\n static toUtf8ByteArray(str) {\n str = encodeURI(str);\n let result = [];\n for (let i = 0; i < str.length; i++) {\n if (str.charAt(i) != \"%\")\n result.push(str.charCodeAt(i));\n else {\n result.push(parseInt(str.substr(i + 1, 2), 16));\n i += 2;\n }\n }\n return result;\n }\n };\n let QrSegment = _QrSegment;\n QrSegment.NUMERIC_REGEX = /^[0-9]*$/;\n QrSegment.ALPHANUMERIC_REGEX = /^[A-Z0-9 $%*+.\\/:-]*$/;\n QrSegment.ALPHANUMERIC_CHARSET = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:\";\n qrcodegen2.QrSegment = QrSegment;\n})(qrcodegen || (qrcodegen = {}));\n((qrcodegen2) => {\n let QrCode;\n ((QrCode2) => {\n const _Ecc = class {\n constructor(ordinal, formatBits) {\n this.ordinal = ordinal;\n this.formatBits = formatBits;\n }\n };\n let Ecc = _Ecc;\n Ecc.LOW = new _Ecc(0, 1);\n Ecc.MEDIUM = new _Ecc(1, 0);\n Ecc.QUARTILE = new _Ecc(2, 3);\n Ecc.HIGH = new _Ecc(3, 2);\n QrCode2.Ecc = Ecc;\n })(QrCode = qrcodegen2.QrCode || (qrcodegen2.QrCode = {}));\n})(qrcodegen || (qrcodegen = {}));\n((qrcodegen2) => {\n let QrSegment;\n ((QrSegment2) => {\n const _Mode = class {\n constructor(modeBits, numBitsCharCount) {\n this.modeBits = modeBits;\n this.numBitsCharCount = numBitsCharCount;\n }\n numCharCountBits(ver) {\n return this.numBitsCharCount[Math.floor((ver + 7) / 17)];\n }\n };\n let Mode = _Mode;\n Mode.NUMERIC = new _Mode(1, [10, 12, 14]);\n Mode.ALPHANUMERIC = new _Mode(2, [9, 11, 13]);\n Mode.BYTE = new _Mode(4, [8, 16, 16]);\n Mode.KANJI = new _Mode(8, [8, 10, 12]);\n Mode.ECI = new _Mode(7, [0, 0, 0]);\n QrSegment2.Mode = Mode;\n })(QrSegment = qrcodegen2.QrSegment || (qrcodegen2.QrSegment = {}));\n})(qrcodegen || (qrcodegen = {}));\nvar qrcodegen_default = qrcodegen;\n\n// src/index.tsx\n/**\n * @license qrcode.react\n * Copyright (c) Paul O'Shannessy\n * SPDX-License-Identifier: ISC\n */\nvar ERROR_LEVEL_MAP = {\n L: qrcodegen_default.QrCode.Ecc.LOW,\n M: qrcodegen_default.QrCode.Ecc.MEDIUM,\n Q: qrcodegen_default.QrCode.Ecc.QUARTILE,\n H: qrcodegen_default.QrCode.Ecc.HIGH\n};\nvar DEFAULT_SIZE = 128;\nvar DEFAULT_LEVEL = \"L\";\nvar DEFAULT_BGCOLOR = \"#FFFFFF\";\nvar DEFAULT_FGCOLOR = \"#000000\";\nvar DEFAULT_INCLUDEMARGIN = false;\nvar MARGIN_SIZE = 4;\nvar DEFAULT_IMG_SCALE = 0.1;\nfunction generatePath(modules, margin = 0) {\n const ops = [];\n modules.forEach(function(row, y) {\n let start = null;\n row.forEach(function(cell, x) {\n if (!cell && start !== null) {\n ops.push(`M${start + margin} ${y + margin}h${x - start}v1H${start + margin}z`);\n start = null;\n return;\n }\n if (x === row.length - 1) {\n if (!cell) {\n return;\n }\n if (start === null) {\n ops.push(`M${x + margin},${y + margin} h1v1H${x + margin}z`);\n } else {\n ops.push(`M${start + margin},${y + margin} h${x + 1 - start}v1H${start + margin}z`);\n }\n return;\n }\n if (cell && start === null) {\n start = x;\n }\n });\n });\n return ops.join(\"\");\n}\nfunction excavateModules(modules, excavation) {\n return modules.slice().map((row, y) => {\n if (y < excavation.y || y >= excavation.y + excavation.h) {\n return row;\n }\n return row.map((cell, x) => {\n if (x < excavation.x || x >= excavation.x + excavation.w) {\n return cell;\n }\n return false;\n });\n });\n}\nfunction getImageSettings(cells, size, includeMargin, imageSettings) {\n if (imageSettings == null) {\n return null;\n }\n const margin = includeMargin ? MARGIN_SIZE : 0;\n const numCells = cells.length + margin * 2;\n const defaultSize = Math.floor(size * DEFAULT_IMG_SCALE);\n const scale = numCells / size;\n const w = (imageSettings.width || defaultSize) * scale;\n const h = (imageSettings.height || defaultSize) * scale;\n const x = imageSettings.x == null ? cells.length / 2 - w / 2 : imageSettings.x * scale;\n const y = imageSettings.y == null ? cells.length / 2 - h / 2 : imageSettings.y * scale;\n let excavation = null;\n if (imageSettings.excavate) {\n let floorX = Math.floor(x);\n let floorY = Math.floor(y);\n let ceilW = Math.ceil(w + x - floorX);\n let ceilH = Math.ceil(h + y - floorY);\n excavation = { x: floorX, y: floorY, w: ceilW, h: ceilH };\n }\n return { x, y, h, w, excavation };\n}\nvar SUPPORTS_PATH2D = function() {\n try {\n new Path2D().addPath(new Path2D());\n } catch (e) {\n return false;\n }\n return true;\n}();\nfunction QRCodeCanvas(props) {\n const _a = props, {\n value,\n size = DEFAULT_SIZE,\n level = DEFAULT_LEVEL,\n bgColor = DEFAULT_BGCOLOR,\n fgColor = DEFAULT_FGCOLOR,\n includeMargin = DEFAULT_INCLUDEMARGIN,\n style,\n imageSettings\n } = _a, otherProps = __objRest(_a, [\n \"value\",\n \"size\",\n \"level\",\n \"bgColor\",\n \"fgColor\",\n \"includeMargin\",\n \"style\",\n \"imageSettings\"\n ]);\n const imgSrc = imageSettings == null ? void 0 : imageSettings.src;\n const _canvas = useRef(null);\n const _image = useRef(null);\n const [isImgLoaded, setIsImageLoaded] = useState(false);\n useEffect(() => {\n if (_canvas.current != null) {\n const canvas = _canvas.current;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n return;\n }\n let cells = qrcodegen_default.QrCode.encodeText(value, ERROR_LEVEL_MAP[level]).getModules();\n const margin = includeMargin ? MARGIN_SIZE : 0;\n const numCells = cells.length + margin * 2;\n const calculatedImageSettings = getImageSettings(cells, size, includeMargin, imageSettings);\n const image = _image.current;\n const haveImageToRender = calculatedImageSettings != null && image !== null && image.complete && image.naturalHeight !== 0 && image.naturalWidth !== 0;\n if (haveImageToRender) {\n if (calculatedImageSettings.excavation != null) {\n cells = excavateModules(cells, calculatedImageSettings.excavation);\n }\n }\n const pixelRatio = window.devicePixelRatio || 1;\n canvas.height = canvas.width = size * pixelRatio;\n const scale = size / numCells * pixelRatio;\n ctx.scale(scale, scale);\n ctx.fillStyle = bgColor;\n ctx.fillRect(0, 0, numCells, numCells);\n ctx.fillStyle = fgColor;\n if (SUPPORTS_PATH2D) {\n ctx.fill(new Path2D(generatePath(cells, margin)));\n } else {\n cells.forEach(function(row, rdx) {\n row.forEach(function(cell, cdx) {\n if (cell) {\n ctx.fillRect(cdx + margin, rdx + margin, 1, 1);\n }\n });\n });\n }\n if (haveImageToRender) {\n ctx.drawImage(image, calculatedImageSettings.x + margin, calculatedImageSettings.y + margin, calculatedImageSettings.w, calculatedImageSettings.h);\n }\n }\n });\n useEffect(() => {\n setIsImageLoaded(false);\n }, [imgSrc]);\n const canvasStyle = __spreadValues({ height: size, width: size }, style);\n let img = null;\n if (imgSrc != null) {\n img = /* @__PURE__ */ React.createElement(\"img\", {\n src: imgSrc,\n key: imgSrc,\n style: { display: \"none\" },\n onLoad: () => {\n setIsImageLoaded(true);\n },\n ref: _image\n });\n }\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"canvas\", __spreadValues({\n style: canvasStyle,\n height: size,\n width: size,\n ref: _canvas\n }, otherProps)), img);\n}\nfunction QRCodeSVG(props) {\n const _a = props, {\n value,\n size = DEFAULT_SIZE,\n level = DEFAULT_LEVEL,\n bgColor = DEFAULT_BGCOLOR,\n fgColor = DEFAULT_FGCOLOR,\n includeMargin = DEFAULT_INCLUDEMARGIN,\n imageSettings\n } = _a, otherProps = __objRest(_a, [\n \"value\",\n \"size\",\n \"level\",\n \"bgColor\",\n \"fgColor\",\n \"includeMargin\",\n \"imageSettings\"\n ]);\n let cells = qrcodegen_default.QrCode.encodeText(value, ERROR_LEVEL_MAP[level]).getModules();\n const margin = includeMargin ? MARGIN_SIZE : 0;\n const numCells = cells.length + margin * 2;\n const calculatedImageSettings = getImageSettings(cells, size, includeMargin, imageSettings);\n let image = null;\n if (imageSettings != null && calculatedImageSettings != null) {\n if (calculatedImageSettings.excavation != null) {\n cells = excavateModules(cells, calculatedImageSettings.excavation);\n }\n image = /* @__PURE__ */ React.createElement(\"image\", {\n xlinkHref: imageSettings.src,\n height: calculatedImageSettings.h,\n width: calculatedImageSettings.w,\n x: calculatedImageSettings.x + margin,\n y: calculatedImageSettings.y + margin,\n preserveAspectRatio: \"none\"\n });\n }\n const fgPath = generatePath(cells, margin);\n return /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({\n height: size,\n width: size,\n viewBox: `0 0 ${numCells} ${numCells}`\n }, otherProps), /* @__PURE__ */ React.createElement(\"path\", {\n fill: bgColor,\n d: `M0,0 h${numCells}v${numCells}H0z`,\n shapeRendering: \"crispEdges\"\n }), /* @__PURE__ */ React.createElement(\"path\", {\n fill: fgColor,\n d: fgPath,\n shapeRendering: \"crispEdges\"\n }), image);\n}\nvar QRCode = (props) => {\n const _a = props, { renderAs } = _a, otherProps = __objRest(_a, [\"renderAs\"]);\n if (renderAs === \"svg\") {\n return /* @__PURE__ */ React.createElement(QRCodeSVG, __spreadValues({}, otherProps));\n }\n return /* @__PURE__ */ React.createElement(QRCodeCanvas, __spreadValues({}, otherProps));\n};\nexport {\n QRCodeCanvas,\n QRCodeSVG,\n QRCode as default\n};\n","import { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genQRCodeStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: token.paddingSM,\n backgroundColor: token.colorWhite,\n borderRadius: token.borderRadiusLG,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`,\n position: 'relative',\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n [`& > ${componentCls}-mask`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n zIndex: 10,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n width: '100%',\n height: '100%',\n color: token.colorText,\n lineHeight: token.lineHeight,\n background: token.QRCodeMaskBackgroundColor,\n textAlign: 'center',\n [`& > ${componentCls}-expired`]: {\n color: token.QRCodeExpiredTextColor\n }\n },\n '&-icon': {\n marginBlockEnd: token.marginXS,\n fontSize: token.controlHeight\n }\n }),\n [`${componentCls}-borderless`]: {\n borderColor: 'transparent'\n }\n };\n};\nexport default genComponentStyleHook('QRCode', token => genQRCodeStyle(mergeToken(token, {\n QRCodeExpiredTextColor: 'rgba(0, 0, 0, 0.88)',\n QRCodeMaskBackgroundColor: 'rgba(255, 255, 255, 0.96)'\n})));","'use client';\n\nimport ReloadOutlined from \"@ant-design/icons/es/icons/ReloadOutlined\";\nimport classNames from 'classnames';\nimport { QRCodeCanvas, QRCodeSVG } from 'qrcode.react';\nimport React, { useContext } from 'react';\nimport warning from '../_util/warning';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport { useLocale } from '../locale';\nimport Spin from '../spin';\nimport theme from '../theme';\nimport useStyle from './style/index';\nconst {\n useToken\n} = theme;\nconst QRCode = props => {\n const {\n token\n } = useToken();\n const {\n value,\n type = 'canvas',\n icon = '',\n size = 160,\n iconSize = 40,\n color = token.colorText,\n errorLevel = 'M',\n status = 'active',\n bordered = true,\n onRefresh,\n style,\n className,\n rootClassName,\n prefixCls: customizePrefixCls,\n bgColor = 'transparent'\n } = props;\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('qrcode', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const imageSettings = {\n src: icon,\n x: undefined,\n y: undefined,\n height: iconSize,\n width: iconSize,\n excavate: true\n };\n const qrCodeProps = {\n value,\n size: size - (token.paddingSM + token.lineWidth) * 2,\n level: errorLevel,\n bgColor,\n fgColor: color,\n imageSettings: icon ? imageSettings : undefined\n };\n const [locale] = useLocale('QRCode');\n if (!value) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'QRCode', 'need to receive `value` props') : void 0;\n }\n return null;\n }\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(icon && errorLevel === 'L'), 'QRCode', 'ErrorLevel `L` is not recommended to be used with `icon`, for scanning result would be affected by low level.') : void 0;\n }\n const cls = classNames(prefixCls, className, rootClassName, hashId, {\n [`${prefixCls}-borderless`]: !bordered\n });\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n style: Object.assign(Object.assign({}, style), {\n width: size,\n height: size,\n backgroundColor: bgColor\n }),\n className: cls\n }, status !== 'active' && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-mask`\n }, status === 'loading' && /*#__PURE__*/React.createElement(Spin, null), status === 'expired' && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", {\n className: `${prefixCls}-expired`\n }, locale === null || locale === void 0 ? void 0 : locale.expired), onRefresh && /*#__PURE__*/React.createElement(Button, {\n type: \"link\",\n icon: /*#__PURE__*/React.createElement(ReloadOutlined, null),\n onClick: onRefresh\n }, locale === null || locale === void 0 ? void 0 : locale.refresh))), type === 'canvas' ? /*#__PURE__*/React.createElement(QRCodeCanvas, Object.assign({}, qrCodeProps)) : /*#__PURE__*/React.createElement(QRCodeSVG, Object.assign({}, qrCodeProps))));\n};\nif (process.env.NODE_ENV !== 'production') {\n QRCode.displayName = 'QRCode';\n}\nexport default QRCode;","import * as React from 'react';\nconst StatisticNumber = props => {\n const {\n value,\n formatter,\n precision,\n decimalSeparator,\n groupSeparator = '',\n prefixCls\n } = props;\n let valueNode;\n if (typeof formatter === 'function') {\n // Customize formatter\n valueNode = formatter(value);\n } else {\n // Internal formatter\n const val = String(value);\n const cells = val.match(/^(-?)(\\d*)(\\.(\\d+))?$/);\n // Process if illegal number\n if (!cells || val === '-') {\n valueNode = val;\n } else {\n const negative = cells[1];\n let int = cells[2] || '0';\n let decimal = cells[4] || '';\n int = int.replace(/\\B(?=(\\d{3})+(?!\\d))/g, groupSeparator);\n if (typeof precision === 'number') {\n decimal = decimal.padEnd(precision, '0').slice(0, precision > 0 ? precision : 0);\n }\n if (decimal) {\n decimal = `${decimalSeparator}${decimal}`;\n }\n valueNode = [/*#__PURE__*/React.createElement(\"span\", {\n key: \"int\",\n className: `${prefixCls}-content-value-int`\n }, negative, int), decimal && /*#__PURE__*/React.createElement(\"span\", {\n key: \"decimal\",\n className: `${prefixCls}-content-value-decimal`\n }, decimal)];\n }\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-content-value`\n }, valueNode);\n};\nexport default StatisticNumber;","import { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genStatisticStyle = token => {\n const {\n componentCls,\n marginXXS,\n padding,\n colorTextDescription,\n titleFontSize,\n colorTextHeading,\n contentFontSize,\n fontFamily\n } = token;\n return {\n [`${componentCls}`]: Object.assign(Object.assign({}, resetComponent(token)), {\n [`${componentCls}-title`]: {\n marginBottom: marginXXS,\n color: colorTextDescription,\n fontSize: titleFontSize\n },\n [`${componentCls}-skeleton`]: {\n paddingTop: padding\n },\n [`${componentCls}-content`]: {\n color: colorTextHeading,\n fontSize: contentFontSize,\n fontFamily,\n [`${componentCls}-content-value`]: {\n display: 'inline-block',\n direction: 'ltr'\n },\n [`${componentCls}-content-prefix, ${componentCls}-content-suffix`]: {\n display: 'inline-block'\n },\n [`${componentCls}-content-prefix`]: {\n marginInlineEnd: marginXXS\n },\n [`${componentCls}-content-suffix`]: {\n marginInlineStart: marginXXS\n }\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Statistic', token => {\n const statisticToken = mergeToken(token, {});\n return [genStatisticStyle(statisticToken)];\n}, token => {\n const {\n fontSizeHeading3,\n fontSize\n } = token;\n return {\n titleFontSize: fontSize,\n contentFontSize: fontSizeHeading3\n };\n});","import classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Skeleton from '../skeleton';\nimport StatisticNumber from './Number';\nimport useStyle from './style';\nconst Statistic = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n valueStyle,\n value = 0,\n title,\n valueRender,\n prefix,\n suffix,\n loading = false,\n onMouseEnter,\n onMouseLeave,\n decimalSeparator = '.',\n groupSeparator = ','\n } = props;\n const {\n getPrefixCls,\n direction,\n statistic\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('statistic', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const valueNode = /*#__PURE__*/React.createElement(StatisticNumber, Object.assign({\n decimalSeparator: decimalSeparator,\n groupSeparator: groupSeparator,\n prefixCls: prefixCls\n }, props, {\n value: value\n }));\n const cls = classNames(prefixCls, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, statistic === null || statistic === void 0 ? void 0 : statistic.className, className, rootClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: Object.assign(Object.assign({}, statistic === null || statistic === void 0 ? void 0 : statistic.style), style),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, title), /*#__PURE__*/React.createElement(Skeleton, {\n paragraph: false,\n loading: loading,\n className: `${prefixCls}-skeleton`\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: valueStyle,\n className: `${prefixCls}-content`\n }, prefix && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-content-prefix`\n }, prefix), valueRender ? valueRender(valueNode) : valueNode, suffix && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-content-suffix`\n }, suffix)))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Statistic.displayName = 'Statistic';\n}\nexport default Statistic;","// Countdown\nconst timeUnits = [['Y', 1000 * 60 * 60 * 24 * 365], ['M', 1000 * 60 * 60 * 24 * 30], ['D', 1000 * 60 * 60 * 24], ['H', 1000 * 60 * 60], ['m', 1000 * 60], ['s', 1000], ['S', 1] // million seconds\n];\n\nexport function formatTimeStr(duration, format) {\n let leftDuration = duration;\n const escapeRegex = /\\[[^\\]]*]/g;\n const keepList = (format.match(escapeRegex) || []).map(str => str.slice(1, -1));\n const templateText = format.replace(escapeRegex, '[]');\n const replacedText = timeUnits.reduce((current, _ref) => {\n let [name, unit] = _ref;\n if (current.includes(name)) {\n const value = Math.floor(leftDuration / unit);\n leftDuration -= value * unit;\n return current.replace(new RegExp(`${name}+`, 'g'), match => {\n const len = match.length;\n return value.toString().padStart(len, '0');\n });\n }\n return current;\n }, templateText);\n let index = 0;\n return replacedText.replace(escapeRegex, () => {\n const match = keepList[index];\n index += 1;\n return match;\n });\n}\nexport function formatCountdown(value, config) {\n const {\n format = ''\n } = config;\n const target = new Date(value).getTime();\n const current = Date.now();\n const diff = Math.max(target - current, 0);\n return formatTimeStr(diff, format);\n}","import * as React from 'react';\nimport useForceUpdate from '../_util/hooks/useForceUpdate';\nimport { cloneElement } from '../_util/reactNode';\nimport Statistic from './Statistic';\nimport { formatCountdown } from './utils';\nconst REFRESH_INTERVAL = 1000 / 30;\nfunction getTime(value) {\n return new Date(value).getTime();\n}\nconst Countdown = props => {\n const {\n value,\n format = 'HH:mm:ss',\n onChange,\n onFinish\n } = props;\n const forceUpdate = useForceUpdate();\n const countdown = React.useRef(null);\n const stopTimer = () => {\n onFinish === null || onFinish === void 0 ? void 0 : onFinish();\n if (countdown.current) {\n clearInterval(countdown.current);\n countdown.current = null;\n }\n };\n const syncTimer = () => {\n const timestamp = getTime(value);\n if (timestamp >= Date.now()) {\n countdown.current = setInterval(() => {\n forceUpdate();\n onChange === null || onChange === void 0 ? void 0 : onChange(timestamp - Date.now());\n if (timestamp < Date.now()) {\n stopTimer();\n }\n }, REFRESH_INTERVAL);\n }\n };\n React.useEffect(() => {\n syncTimer();\n return () => {\n if (countdown.current) {\n clearInterval(countdown.current);\n countdown.current = null;\n }\n };\n }, [value]);\n const formatter = (formatValue, config) => formatCountdown(formatValue, Object.assign(Object.assign({}, config), {\n format\n }));\n const valueRender = node => cloneElement(node, {\n title: undefined\n });\n return /*#__PURE__*/React.createElement(Statistic, Object.assign({}, props, {\n valueRender: valueRender,\n formatter: formatter\n }));\n};\nexport default /*#__PURE__*/React.memo(Countdown);","'use client';\n\nimport Countdown from './Countdown';\nimport Statistic from './Statistic';\nStatistic.Countdown = Countdown;\nexport default Statistic;","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 TimelineItem = _a => {\n var {\n prefixCls: customizePrefixCls,\n className,\n color = 'blue',\n dot,\n pending = false,\n position /** Dead, but do not pass in
  • {\n var {\n prefixCls,\n className,\n pending = false,\n children,\n items,\n rootClassName,\n reverse = false,\n direction,\n hashId,\n pendingDot,\n mode = ''\n } = _a,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"pending\", \"children\", \"items\", \"rootClassName\", \"reverse\", \"direction\", \"hashId\", \"pendingDot\", \"mode\"]);\n const getPositionCls = (position, idx) => {\n if (mode === 'alternate') {\n if (position === 'right') return `${prefixCls}-item-right`;\n if (position === 'left') return `${prefixCls}-item-left`;\n return idx % 2 === 0 ? `${prefixCls}-item-left` : `${prefixCls}-item-right`;\n }\n if (mode === 'left') return `${prefixCls}-item-left`;\n if (mode === 'right') return `${prefixCls}-item-right`;\n if (position === 'right') return `${prefixCls}-item-right`;\n return '';\n };\n const mergedItems = _toConsumableArray(items || []);\n const pendingNode = typeof pending === 'boolean' ? null : pending;\n if (pending) {\n mergedItems.push({\n pending: !!pending,\n dot: pendingDot || /*#__PURE__*/React.createElement(LoadingOutlined, null),\n children: pendingNode\n });\n }\n if (reverse) {\n mergedItems.reverse();\n }\n const itemsCount = mergedItems.length;\n const lastCls = `${prefixCls}-item-last`;\n const itemsList = mergedItems.filter(item => !!item).map((item, idx) => {\n var _a;\n const pendingClass = idx === itemsCount - 2 ? lastCls : '';\n const readyClass = idx === itemsCount - 1 ? lastCls : '';\n const {\n className: itemClassName\n } = item,\n itemProps = __rest(item, [\"className\"]);\n return /*#__PURE__*/React.createElement(TimelineItem, Object.assign({}, itemProps, {\n className: classNames([itemClassName, !reverse && !!pending ? pendingClass : readyClass, getPositionCls((_a = item === null || item === void 0 ? void 0 : item.position) !== null && _a !== void 0 ? _a : '', idx)]),\n /* eslint-disable-next-line react/no-array-index-key */\n key: (item === null || item === void 0 ? void 0 : item.key) || idx\n }));\n });\n const hasLabelItem = mergedItems.some(item => !!(item === null || item === void 0 ? void 0 : item.label));\n const classString = classNames(prefixCls, {\n [`${prefixCls}-pending`]: !!pending,\n [`${prefixCls}-reverse`]: !!reverse,\n [`${prefixCls}-${mode}`]: !!mode && !hasLabelItem,\n [`${prefixCls}-label`]: hasLabelItem,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId);\n return /*#__PURE__*/React.createElement(\"ul\", Object.assign({}, restProps, {\n className: classString\n }), itemsList);\n};\nexport default TimelineItemList;","import toArray from \"rc-util/es/Children/toArray\";\nfunction useItems(items, children) {\n if (items && Array.isArray(items)) return items;\n return toArray(children).map(ele => {\n var _a, _b;\n return Object.assign({\n children: (_b = (_a = ele === null || ele === void 0 ? void 0 : ele.props) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : ''\n }, ele.props);\n });\n}\nexport default useItems;","import { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genTimelineStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n margin: 0,\n padding: 0,\n listStyle: 'none',\n [`${componentCls}-item`]: {\n position: 'relative',\n margin: 0,\n paddingBottom: token.itemPaddingBottom,\n fontSize: token.fontSize,\n listStyle: 'none',\n '&-tail': {\n position: 'absolute',\n insetBlockStart: token.itemHeadSize,\n insetInlineStart: (token.itemHeadSize - token.tailWidth) / 2,\n height: `calc(100% - ${token.itemHeadSize}px)`,\n borderInlineStart: `${token.tailWidth}px ${token.lineType} ${token.tailColor}`\n },\n '&-pending': {\n [`${componentCls}-item-head`]: {\n fontSize: token.fontSizeSM,\n backgroundColor: 'transparent'\n },\n [`${componentCls}-item-tail`]: {\n display: 'none'\n }\n },\n '&-head': {\n position: 'absolute',\n width: token.itemHeadSize,\n height: token.itemHeadSize,\n backgroundColor: token.dotBg,\n border: `${token.dotBorderWidth}px ${token.lineType} transparent`,\n borderRadius: '50%',\n '&-blue': {\n color: token.colorPrimary,\n borderColor: token.colorPrimary\n },\n '&-red': {\n color: token.colorError,\n borderColor: token.colorError\n },\n '&-green': {\n color: token.colorSuccess,\n borderColor: token.colorSuccess\n },\n '&-gray': {\n color: token.colorTextDisabled,\n borderColor: token.colorTextDisabled\n }\n },\n '&-head-custom': {\n position: 'absolute',\n insetBlockStart: token.itemHeadSize / 2,\n insetInlineStart: token.itemHeadSize / 2,\n width: 'auto',\n height: 'auto',\n marginBlockStart: 0,\n paddingBlock: token.customHeadPaddingVertical,\n lineHeight: 1,\n textAlign: 'center',\n border: 0,\n borderRadius: 0,\n transform: `translate(-50%, -50%)`\n },\n '&-content': {\n position: 'relative',\n insetBlockStart: -(token.fontSize * token.lineHeight - token.fontSize) + token.lineWidth,\n marginInlineStart: token.margin + token.itemHeadSize,\n marginInlineEnd: 0,\n marginBlockStart: 0,\n marginBlockEnd: 0,\n wordBreak: 'break-word'\n },\n '&-last': {\n [`> ${componentCls}-item-tail`]: {\n display: 'none'\n },\n [`> ${componentCls}-item-content`]: {\n minHeight: token.controlHeightLG * 1.2\n }\n }\n },\n [`&${componentCls}-alternate,\n &${componentCls}-right,\n &${componentCls}-label`]: {\n [`${componentCls}-item`]: {\n '&-tail, &-head, &-head-custom': {\n insetInlineStart: '50%'\n },\n '&-head': {\n marginInlineStart: `-${token.marginXXS}px`,\n '&-custom': {\n marginInlineStart: token.tailWidth / 2\n }\n },\n '&-left': {\n [`${componentCls}-item-content`]: {\n insetInlineStart: `calc(50% - ${token.marginXXS}px)`,\n width: `calc(50% - ${token.marginSM}px)`,\n textAlign: 'start'\n }\n },\n '&-right': {\n [`${componentCls}-item-content`]: {\n width: `calc(50% - ${token.marginSM}px)`,\n margin: 0,\n textAlign: 'end'\n }\n }\n }\n },\n [`&${componentCls}-right`]: {\n [`${componentCls}-item-right`]: {\n [`${componentCls}-item-tail,\n ${componentCls}-item-head,\n ${componentCls}-item-head-custom`]: {\n insetInlineStart: `calc(100% - ${(token.itemHeadSize + token.tailWidth) / 2}px)`\n },\n [`${componentCls}-item-content`]: {\n width: `calc(100% - ${token.itemHeadSize + token.marginXS}px)`\n }\n }\n },\n [`&${componentCls}-pending\n ${componentCls}-item-last\n ${componentCls}-item-tail`]: {\n display: 'block',\n height: `calc(100% - ${token.margin}px)`,\n borderInlineStart: `${token.tailWidth}px dotted ${token.tailColor}`\n },\n [`&${componentCls}-reverse\n ${componentCls}-item-last\n ${componentCls}-item-tail`]: {\n display: 'none'\n },\n [`&${componentCls}-reverse ${componentCls}-item-pending`]: {\n [`${componentCls}-item-tail`]: {\n insetBlockStart: token.margin,\n display: 'block',\n height: `calc(100% - ${token.margin}px)`,\n borderInlineStart: `${token.tailWidth}px dotted ${token.tailColor}`\n },\n [`${componentCls}-item-content`]: {\n minHeight: token.controlHeightLG * 1.2\n }\n },\n [`&${componentCls}-label`]: {\n [`${componentCls}-item-label`]: {\n position: 'absolute',\n insetBlockStart: -(token.fontSize * token.lineHeight - token.fontSize) + token.tailWidth,\n width: `calc(50% - ${token.marginSM}px)`,\n textAlign: 'end'\n },\n [`${componentCls}-item-right`]: {\n [`${componentCls}-item-label`]: {\n insetInlineStart: `calc(50% + ${token.marginSM}px)`,\n width: `calc(50% - ${token.marginSM}px)`,\n textAlign: 'start'\n }\n }\n },\n // ====================== RTL =======================\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-item-head-custom`]: {\n transform: `translate(50%, -50%)`\n }\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Timeline', token => {\n const timeLineToken = mergeToken(token, {\n itemHeadSize: 10,\n customHeadPaddingVertical: token.paddingXXS,\n paddingInlineEnd: 2\n });\n return [genTimelineStyle(timeLineToken)];\n}, token => ({\n tailColor: token.colorSplit,\n tailWidth: token.lineWidthBold,\n dotBorderWidth: token.wireframe ? token.lineWidthBold : token.lineWidth * 3,\n dotBg: token.colorBgContainer,\n itemPaddingBottom: token.padding * 1.25\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 warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport TimelineItem from './TimelineItem';\nimport TimelineItemList from './TimelineItemList';\nimport useItems from './useItems';\n// CSSINJS\nimport useStyle from './style';\nconst Timeline = props => {\n const {\n getPrefixCls,\n direction,\n timeline\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n children,\n items,\n className,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"children\", \"items\", \"className\", \"style\"]);\n const prefixCls = getPrefixCls('timeline', customizePrefixCls);\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!children, 'Timeline', '`Timeline.Item` is deprecated. Please use `items` instead.') : void 0;\n }\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergedItems = useItems(items, children);\n return wrapSSR( /*#__PURE__*/React.createElement(TimelineItemList, Object.assign({}, restProps, {\n className: classNames(timeline === null || timeline === void 0 ? void 0 : timeline.className, className),\n style: Object.assign(Object.assign({}, timeline === null || timeline === void 0 ? void 0 : timeline.style), style),\n prefixCls: prefixCls,\n direction: direction,\n items: mergedItems,\n hashId: hashId\n })));\n};\nTimeline.Item = TimelineItem;\nif (process.env.NODE_ENV !== 'production') {\n Timeline.displayName = 'Timeline';\n}\nexport default Timeline;","'use client';\n\nimport Timeline from './Timeline';\nexport default Timeline;","export function isInViewPort(element) {\n var viewWidth = window.innerWidth || document.documentElement.clientWidth;\n var viewHeight = window.innerHeight || document.documentElement.clientHeight;\n var _element$getBoundingC = element.getBoundingClientRect(),\n top = _element$getBoundingC.top,\n right = _element$getBoundingC.right,\n bottom = _element$getBoundingC.bottom,\n left = _element$getBoundingC.left;\n return top >= 0 && left >= 0 && right <= viewWidth && bottom <= viewHeight;\n}\nexport function getPlacement(targetElement, placement, stepPlacement) {\n var _ref;\n return (_ref = stepPlacement !== null && stepPlacement !== void 0 ? stepPlacement : placement) !== null && _ref !== void 0 ? _ref : targetElement === null ? 'center' : 'bottom';\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useMemo } from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { isInViewPort } from \"../util\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nexport default function useTarget(target, open, gap, scrollIntoViewOptions) {\n // ========================= Target =========================\n // We trade `undefined` as not get target by function yet.\n // `null` as empty target.\n var _useState = useState(undefined),\n _useState2 = _slicedToArray(_useState, 2),\n targetElement = _useState2[0],\n setTargetElement = _useState2[1];\n useLayoutEffect(function () {\n var nextElement = typeof target === 'function' ? target() : target;\n setTargetElement(nextElement || null);\n });\n\n // ========================= Align ==========================\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n posInfo = _useState4[0],\n setPosInfo = _useState4[1];\n var updatePos = useEvent(function () {\n if (targetElement) {\n // Exist target element. We should scroll and get target position\n if (!isInViewPort(targetElement) && open) {\n targetElement.scrollIntoView(scrollIntoViewOptions);\n }\n var _targetElement$getBou = targetElement.getBoundingClientRect(),\n left = _targetElement$getBou.left,\n top = _targetElement$getBou.top,\n width = _targetElement$getBou.width,\n height = _targetElement$getBou.height;\n var nextPosInfo = {\n left: left,\n top: top,\n width: width,\n height: height,\n radius: 0\n };\n setPosInfo(function (origin) {\n if (JSON.stringify(origin) !== JSON.stringify(nextPosInfo)) {\n return nextPosInfo;\n }\n return origin;\n });\n } else {\n // Not exist target which means we just show in center\n setPosInfo(null);\n }\n });\n useLayoutEffect(function () {\n updatePos();\n // update when window resize\n window.addEventListener('resize', updatePos);\n return function () {\n window.removeEventListener('resize', updatePos);\n };\n }, [targetElement, open, updatePos]);\n\n // ======================== PosInfo =========================\n var mergedPosInfo = useMemo(function () {\n if (!posInfo) {\n return posInfo;\n }\n var gapOffset = (gap === null || gap === void 0 ? void 0 : gap.offset) || 6;\n var gapRadius = (gap === null || gap === void 0 ? void 0 : gap.radius) || 2;\n return {\n left: posInfo.left - gapOffset,\n top: posInfo.top - gapOffset,\n width: posInfo.width + gapOffset * 2,\n height: posInfo.height + gapOffset * 2,\n radius: gapRadius\n };\n }, [posInfo, gap]);\n return [mergedPosInfo, targetElement];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport Portal from '@rc-component/portal';\nimport useId from \"rc-util/es/hooks/useId\";\nvar COVER_PROPS = {\n fill: 'transparent',\n pointerEvents: 'auto'\n};\nvar Mask = function Mask(props) {\n var prefixCls = props.prefixCls,\n rootClassName = props.rootClassName,\n pos = props.pos,\n showMask = props.showMask,\n _props$style = props.style,\n style = _props$style === void 0 ? {} : _props$style,\n _props$fill = props.fill,\n fill = _props$fill === void 0 ? \"rgba(0,0,0,0.5)\" : _props$fill,\n open = props.open,\n animated = props.animated,\n zIndex = props.zIndex;\n var id = useId();\n var maskId = \"\".concat(prefixCls, \"-mask-\").concat(id);\n var mergedAnimated = _typeof(animated) === 'object' ? animated === null || animated === void 0 ? void 0 : animated.placeholder : animated;\n return /*#__PURE__*/React.createElement(Portal, {\n open: open,\n autoLock: true\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-mask\"), rootClassName),\n style: _objectSpread({\n position: 'fixed',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n zIndex: zIndex,\n pointerEvents: 'none'\n }, style)\n }, showMask ? /*#__PURE__*/React.createElement(\"svg\", {\n style: {\n width: '100%',\n height: '100%'\n }\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"mask\", {\n id: maskId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: \"0\",\n y: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n fill: \"white\"\n }), pos && /*#__PURE__*/React.createElement(\"rect\", {\n x: pos.left,\n y: pos.top,\n rx: pos.radius,\n width: pos.width,\n height: pos.height,\n fill: \"black\",\n className: mergedAnimated ? \"\".concat(prefixCls, \"-placeholder-animated\") : ''\n }))), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"0\",\n y: \"0\",\n width: \"100%\",\n height: \"100%\",\n fill: fill,\n mask: \"url(#\".concat(maskId, \")\")\n }), pos && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", _extends({}, COVER_PROPS, {\n x: \"0\",\n y: \"0\",\n width: \"100%\",\n height: pos.top\n })), /*#__PURE__*/React.createElement(\"rect\", _extends({}, COVER_PROPS, {\n x: \"0\",\n y: \"0\",\n width: pos.left,\n height: \"100%\"\n })), /*#__PURE__*/React.createElement(\"rect\", _extends({}, COVER_PROPS, {\n x: \"0\",\n y: pos.top + pos.height,\n width: \"100%\",\n height: \"calc(100vh - \".concat(pos.top + pos.height, \"px)\")\n })), /*#__PURE__*/React.createElement(\"rect\", _extends({}, COVER_PROPS, {\n x: pos.left + pos.width,\n y: \"0\",\n width: \"calc(100vw - \".concat(pos.left + pos.width, \"px)\"),\n height: \"100%\"\n })))) : null));\n};\nexport default Mask;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar basePlacements = {\n left: {\n points: ['cr', 'cl'],\n offset: [-8, 0]\n },\n right: {\n points: ['cl', 'cr'],\n offset: [8, 0]\n },\n top: {\n points: ['bc', 'tc'],\n offset: [0, -8]\n },\n bottom: {\n points: ['tc', 'bc'],\n offset: [0, 8]\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -8]\n },\n leftTop: {\n points: ['tr', 'tl'],\n offset: [-8, 0]\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -8]\n },\n rightTop: {\n points: ['tl', 'tr'],\n offset: [8, 0]\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 8]\n },\n rightBottom: {\n points: ['bl', 'br'],\n offset: [8, 0]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 8]\n },\n leftBottom: {\n points: ['br', 'bl'],\n offset: [-8, 0]\n }\n};\nexport function getPlacements() {\n var arrowPointAtCenter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var placements = {};\n Object.keys(basePlacements).forEach(function (key) {\n placements[key] = _objectSpread(_objectSpread({}, basePlacements[key]), {}, {\n autoArrow: arrowPointAtCenter,\n targetOffset: targetOffset\n });\n });\n return placements;\n}\nexport var placements = getPlacements();","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nexport default function DefaultPanel(props) {\n var prefixCls = props.prefixCls,\n current = props.current,\n total = props.total,\n title = props.title,\n description = props.description,\n onClose = props.onClose,\n onPrev = props.onPrev,\n onNext = props.onNext,\n onFinish = props.onFinish,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), className)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\")\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onClose,\n \"aria-label\": \"Close\",\n className: \"\".concat(prefixCls, \"-close\")\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, \"\\xD7\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, title)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, description), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-sliders\")\n }, total > 1 ? _toConsumableArray(Array.from({\n length: total\n }).keys()).map(function (item, index) {\n return /*#__PURE__*/React.createElement(\"span\", {\n key: item,\n className: index === current ? 'active' : ''\n });\n }) : null), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-buttons\")\n }, current !== 0 ? /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-prev-btn\"),\n onClick: onPrev\n }, \"Prev\") : null, current === total - 1 ? /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-finish-btn\"),\n onClick: onFinish\n }, \"Finish\") : /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-next-btn\"),\n onClick: onNext\n }, \"Next\")))));\n}","import * as React from 'react';\nimport DefaultPanel from \"./DefaultPanel\";\nvar TourStep = function TourStep(props) {\n var current = props.current,\n renderPanel = props.renderPanel;\n return /*#__PURE__*/React.createElement(React.Fragment, null, typeof renderPanel === 'function' ? renderPanel(props, current) : /*#__PURE__*/React.createElement(DefaultPanel, props));\n};\nexport default TourStep;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\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\", \"steps\", \"defaultCurrent\", \"current\", \"onChange\", \"onClose\", \"onFinish\", \"open\", \"mask\", \"arrow\", \"rootClassName\", \"placement\", \"renderPanel\", \"gap\", \"animated\", \"scrollIntoViewOptions\", \"zIndex\"];\nimport * as React from 'react';\nimport Portal from '@rc-component/portal';\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport useTarget from \"./hooks/useTarget\";\nimport Mask from \"./Mask\";\nimport { getPlacements } from \"./placements\";\nimport TourStep from \"./TourStep\";\nimport { getPlacement } from \"./util\";\nvar CENTER_PLACEHOLDER = {\n left: '50%',\n top: '50%',\n width: 1,\n height: 1\n};\nvar Tour = function Tour(props) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tour' : _props$prefixCls,\n _props$steps = props.steps,\n steps = _props$steps === void 0 ? [] : _props$steps,\n defaultCurrent = props.defaultCurrent,\n current = props.current,\n onChange = props.onChange,\n onClose = props.onClose,\n _onFinish = props.onFinish,\n open = props.open,\n _props$mask = props.mask,\n mask = _props$mask === void 0 ? true : _props$mask,\n _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? true : _props$arrow,\n rootClassName = props.rootClassName,\n placement = props.placement,\n renderPanel = props.renderPanel,\n gap = props.gap,\n animated = props.animated,\n _props$scrollIntoView = props.scrollIntoViewOptions,\n scrollIntoViewOptions = _props$scrollIntoView === void 0 ? true : _props$scrollIntoView,\n _props$zIndex = props.zIndex,\n zIndex = _props$zIndex === void 0 ? 1001 : _props$zIndex,\n restProps = _objectWithoutProperties(props, _excluded);\n var triggerRef = React.useRef();\n var _useMergedState = useMergedState(0, {\n value: current,\n defaultValue: defaultCurrent\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedCurrent = _useMergedState2[0],\n setMergedCurrent = _useMergedState2[1];\n var _useMergedState3 = useMergedState(undefined, {\n value: open,\n postState: function postState(origin) {\n return mergedCurrent < 0 || mergedCurrent >= steps.length ? false : origin !== null && origin !== void 0 ? origin : true;\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedOpen = _useMergedState4[0],\n setMergedOpen = _useMergedState4[1];\n var openRef = React.useRef(mergedOpen);\n useLayoutEffect(function () {\n if (mergedOpen && !openRef.current) {\n setMergedCurrent(0);\n }\n openRef.current = mergedOpen;\n }, [mergedOpen]);\n var _ref = steps[mergedCurrent] || {},\n target = _ref.target,\n stepPlacement = _ref.placement,\n stepStyle = _ref.style,\n stepArrow = _ref.arrow,\n stepClassName = _ref.className,\n stepMask = _ref.mask,\n stepScrollIntoViewOptions = _ref.scrollIntoViewOptions;\n var mergedMask = mergedOpen && (stepMask !== null && stepMask !== void 0 ? stepMask : mask);\n var mergedScrollIntoViewOptions = stepScrollIntoViewOptions !== null && stepScrollIntoViewOptions !== void 0 ? stepScrollIntoViewOptions : scrollIntoViewOptions;\n var _useTarget = useTarget(target, open, gap, mergedScrollIntoViewOptions),\n _useTarget2 = _slicedToArray(_useTarget, 2),\n posInfo = _useTarget2[0],\n targetElement = _useTarget2[1];\n var mergedPlacement = getPlacement(targetElement, placement, stepPlacement);\n\n // ========================= arrow =========================\n var mergedArrow = targetElement ? typeof stepArrow === 'undefined' ? arrow : stepArrow : false;\n var arrowPointAtCenter = _typeof(mergedArrow) === 'object' ? mergedArrow.pointAtCenter : false;\n useLayoutEffect(function () {\n var _triggerRef$current;\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.forceAlign();\n }, [arrowPointAtCenter, mergedCurrent]);\n\n // ========================= Change =========================\n var onInternalChange = function onInternalChange(nextCurrent) {\n setMergedCurrent(nextCurrent);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextCurrent);\n };\n\n // ========================= Render =========================\n // Skip if not init yet\n if (targetElement === undefined) {\n return null;\n }\n var handleClose = function handleClose() {\n setMergedOpen(false);\n onClose === null || onClose === void 0 ? void 0 : onClose(mergedCurrent);\n };\n var getPopupElement = function getPopupElement() {\n return /*#__PURE__*/React.createElement(TourStep, _extends({\n arrow: mergedArrow,\n key: \"content\",\n prefixCls: prefixCls,\n total: steps.length,\n renderPanel: renderPanel,\n onPrev: function onPrev() {\n onInternalChange(mergedCurrent - 1);\n },\n onNext: function onNext() {\n onInternalChange(mergedCurrent + 1);\n },\n onClose: handleClose,\n current: mergedCurrent,\n onFinish: function onFinish() {\n handleClose();\n _onFinish === null || _onFinish === void 0 ? void 0 : _onFinish();\n }\n }, steps[mergedCurrent]));\n };\n var mergedShowMask = typeof mergedMask === 'boolean' ? mergedMask : !!mergedMask;\n var mergedMaskStyle = typeof mergedMask === 'boolean' ? undefined : mergedMask;\n\n // when targetElement is not exist, use body as triggerDOMNode\n var getTriggerDOMNode = function getTriggerDOMNode(node) {\n return node || targetElement || document.body;\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Mask, {\n zIndex: zIndex,\n prefixCls: prefixCls,\n pos: posInfo,\n showMask: mergedShowMask,\n style: mergedMaskStyle === null || mergedMaskStyle === void 0 ? void 0 : mergedMaskStyle.style,\n fill: mergedMaskStyle === null || mergedMaskStyle === void 0 ? void 0 : mergedMaskStyle.color,\n open: mergedOpen,\n animated: animated,\n rootClassName: rootClassName\n }), /*#__PURE__*/React.createElement(Trigger, _extends({\n builtinPlacements: getPlacements(arrowPointAtCenter)\n }, restProps, {\n ref: triggerRef,\n popupStyle: stepStyle,\n popupPlacement: mergedPlacement,\n popupVisible: mergedOpen,\n popupClassName: classNames(rootClassName, stepClassName),\n prefixCls: prefixCls,\n popup: getPopupElement,\n forceRender: false,\n destroyPopupOnHide: true,\n zIndex: zIndex,\n getTriggerDOMNode: getTriggerDOMNode,\n arrow: !!mergedArrow\n }), /*#__PURE__*/React.createElement(Portal, {\n open: mergedOpen,\n autoLock: true\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(rootClassName, \"\".concat(prefixCls, \"-target-placeholder\")),\n style: _objectSpread(_objectSpread({}, posInfo || CENTER_PLACEHOLDER), {}, {\n position: 'fixed',\n pointerEvents: 'none'\n })\n }))));\n};\nexport default Tour;","import Tour from \"./Tour\";\nexport default Tour;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport Button from '../button';\nimport { useLocale } from '../locale';\nimport defaultLocale from '../locale/en_US';\nfunction isValidNode(node) {\n return node !== undefined && node !== null;\n}\nconst TourPanel = _ref => {\n let {\n stepProps,\n current,\n type,\n indicatorsRender\n } = _ref;\n var _a, _b;\n const {\n prefixCls,\n total = 1,\n title,\n onClose,\n onPrev,\n onNext,\n onFinish,\n cover,\n description,\n nextButtonProps,\n prevButtonProps,\n type: stepType,\n className\n } = stepProps;\n const mergedType = stepType !== null && stepType !== void 0 ? stepType : type;\n const isLastStep = current === total - 1;\n const prevBtnClick = () => {\n var _a;\n onPrev === null || onPrev === void 0 ? void 0 : onPrev();\n (_a = prevButtonProps === null || prevButtonProps === void 0 ? void 0 : prevButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(prevButtonProps);\n };\n const nextBtnClick = () => {\n var _a;\n if (isLastStep) {\n onFinish === null || onFinish === void 0 ? void 0 : onFinish();\n } else {\n onNext === null || onNext === void 0 ? void 0 : onNext();\n }\n (_a = nextButtonProps === null || nextButtonProps === void 0 ? void 0 : nextButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(nextButtonProps);\n };\n const headerNode = isValidNode(title) ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-header`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, title)) : null;\n const descriptionNode = isValidNode(description) ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-description`\n }, description) : null;\n const coverNode = isValidNode(cover) ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-cover`\n }, cover) : null;\n let mergeIndicatorNode;\n if (indicatorsRender) {\n mergeIndicatorNode = indicatorsRender(current, total);\n } else {\n mergeIndicatorNode = _toConsumableArray(Array.from({\n length: total\n }).keys()).map((stepItem, index) => /*#__PURE__*/React.createElement(\"span\", {\n key: stepItem,\n className: classNames(index === current && `${prefixCls}-indicator-active`, `${prefixCls}-indicator`)\n }));\n }\n const mainBtnType = mergedType === 'primary' ? 'default' : 'primary';\n const secondaryBtnProps = {\n type: 'default',\n ghost: mergedType === 'primary'\n };\n const [contextLocale] = useLocale('Tour', defaultLocale.Tour);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(className, `${prefixCls}-content`)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inner`\n }, /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close`,\n onClick: onClose\n }), coverNode, headerNode, descriptionNode, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-footer`\n }, total > 1 && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-indicators`\n }, mergeIndicatorNode), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-buttons`\n }, current !== 0 ? /*#__PURE__*/React.createElement(Button, Object.assign({}, secondaryBtnProps, prevButtonProps, {\n onClick: prevBtnClick,\n size: \"small\",\n className: classNames(`${prefixCls}-prev-btn`, prevButtonProps === null || prevButtonProps === void 0 ? void 0 : prevButtonProps.className)\n }), (_a = prevButtonProps === null || prevButtonProps === void 0 ? void 0 : prevButtonProps.children) !== null && _a !== void 0 ? _a : contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.Previous) : null, /*#__PURE__*/React.createElement(Button, Object.assign({\n type: mainBtnType\n }, nextButtonProps, {\n onClick: nextBtnClick,\n size: \"small\",\n className: classNames(`${prefixCls}-next-btn`, nextButtonProps === null || nextButtonProps === void 0 ? void 0 : nextButtonProps.className)\n }), (_b = nextButtonProps === null || nextButtonProps === void 0 ? void 0 : nextButtonProps.children) !== null && _b !== void 0 ? _b : isLastStep ? contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.Finish : contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.Next)))));\n};\nexport default TourPanel;","import { TinyColor } from '@ctrl/tinycolor';\nimport { resetComponent } from '../../style';\nimport getArrowStyle, { MAX_VERTICAL_CONTENT_RADIUS } from '../../style/placementArrow';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n lineHeight,\n padding,\n paddingXS,\n borderRadius,\n borderRadiusXS,\n colorPrimary,\n colorText,\n colorFill,\n indicatorHeight,\n indicatorWidth,\n boxShadowTertiary,\n tourZIndexPopup,\n fontSize,\n colorBgElevated,\n fontWeightStrong,\n marginXS,\n colorTextLightSolid,\n tourBorderRadius,\n colorWhite,\n colorBgTextHover,\n tourCloseSize,\n motionDurationSlow,\n antCls\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n color: colorText,\n position: 'absolute',\n zIndex: tourZIndexPopup,\n display: 'block',\n visibility: 'visible',\n fontSize,\n lineHeight,\n width: 520,\n '--antd-arrow-background-color': colorBgElevated,\n '&-pure': {\n maxWidth: '100%',\n position: 'relative'\n },\n [`&${componentCls}-hidden`]: {\n display: 'none'\n },\n // ============================= panel content ============================\n [`${componentCls}-content`]: {\n position: 'relative'\n },\n [`${componentCls}-inner`]: {\n textAlign: 'start',\n textDecoration: 'none',\n borderRadius: tourBorderRadius,\n boxShadow: boxShadowTertiary,\n position: 'relative',\n backgroundColor: colorBgElevated,\n border: 'none',\n backgroundClip: 'padding-box',\n [`${componentCls}-close`]: {\n position: 'absolute',\n top: padding,\n insetInlineEnd: padding,\n color: token.colorIcon,\n outline: 'none',\n width: tourCloseSize,\n height: tourCloseSize,\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 [`${componentCls}-cover`]: {\n textAlign: 'center',\n padding: `${padding + tourCloseSize + paddingXS}px ${padding}px 0`,\n img: {\n width: '100%'\n }\n },\n [`${componentCls}-header`]: {\n padding: `${padding}px ${padding}px ${paddingXS}px`,\n [`${componentCls}-title`]: {\n lineHeight,\n fontSize,\n fontWeight: fontWeightStrong\n }\n },\n [`${componentCls}-description`]: {\n padding: `0 ${padding}px`,\n lineHeight,\n wordWrap: 'break-word'\n },\n [`${componentCls}-footer`]: {\n padding: `${paddingXS}px ${padding}px ${padding}px`,\n textAlign: 'end',\n borderRadius: `0 0 ${borderRadiusXS}px ${borderRadiusXS}px`,\n display: 'flex',\n [`${componentCls}-indicators`]: {\n display: 'inline-block',\n [`${componentCls}-indicator`]: {\n width: indicatorWidth,\n height: indicatorHeight,\n display: 'inline-block',\n borderRadius: '50%',\n background: colorFill,\n '&:not(:last-child)': {\n marginInlineEnd: indicatorHeight\n },\n '&-active': {\n background: colorPrimary\n }\n }\n },\n [`${componentCls}-buttons`]: {\n marginInlineStart: 'auto',\n [`${antCls}-btn`]: {\n marginInlineStart: marginXS\n }\n }\n }\n },\n // ============================= primary type ===========================\n // `$` for panel, `&$` for pure panel\n [`${componentCls}-primary, &${componentCls}-primary`]: {\n '--antd-arrow-background-color': colorPrimary,\n [`${componentCls}-inner`]: {\n color: colorTextLightSolid,\n textAlign: 'start',\n textDecoration: 'none',\n backgroundColor: colorPrimary,\n borderRadius,\n boxShadow: boxShadowTertiary,\n [`${componentCls}-close`]: {\n color: colorTextLightSolid\n },\n [`${componentCls}-indicators`]: {\n [`${componentCls}-indicator`]: {\n background: new TinyColor(colorTextLightSolid).setAlpha(0.15).toRgbString(),\n '&-active': {\n background: colorTextLightSolid\n }\n }\n },\n [`${componentCls}-prev-btn`]: {\n color: colorTextLightSolid,\n borderColor: new TinyColor(colorTextLightSolid).setAlpha(0.15).toRgbString(),\n backgroundColor: colorPrimary,\n '&:hover': {\n backgroundColor: new TinyColor(colorTextLightSolid).setAlpha(0.15).toRgbString(),\n borderColor: 'transparent'\n }\n },\n [`${componentCls}-next-btn`]: {\n color: colorPrimary,\n borderColor: 'transparent',\n background: colorWhite,\n '&:hover': {\n background: new TinyColor(colorBgTextHover).onBackground(colorWhite).toRgbString()\n }\n }\n }\n }\n }),\n // ============================= mask ===========================\n [`${componentCls}-mask`]: {\n [`${componentCls}-placeholder-animated`]: {\n transition: `all ${motionDurationSlow}`\n }\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(tourBorderRadius, MAX_VERTICAL_CONTENT_RADIUS)\n }\n }\n },\n // ============================= Arrow ===========================\n getArrowStyle(token, {\n colorBg: 'var(--antd-arrow-background-color)',\n contentRadius: tourBorderRadius,\n limitVerticalRadius: true\n })];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Tour', token => {\n const {\n borderRadiusLG,\n fontSize,\n lineHeight\n } = token;\n const TourToken = mergeToken(token, {\n tourZIndexPopup: token.zIndexPopupBase + 70,\n indicatorWidth: 6,\n indicatorHeight: 6,\n tourBorderRadius: borderRadiusLG,\n tourCloseSize: fontSize * lineHeight\n });\n return [genBaseStyle(TourToken)];\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 { RawPurePanel as PopoverRawPurePanel } from '../popover/PurePanel';\nimport TourPanel from './panelRender';\nimport useStyle from './style';\nimport { withPureRenderTheme } from '../_util/PurePanel';\nconst PurePanel = props => {\n const {\n prefixCls: customizePrefixCls,\n current = 0,\n total = 6,\n className,\n style,\n type\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"current\", \"total\", \"className\", \"style\", \"type\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('tour', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n return wrapSSR( /*#__PURE__*/React.createElement(PopoverRawPurePanel, {\n prefixCls: prefixCls,\n hashId: hashId,\n className: classNames(className, `${prefixCls}-pure`, type && `${prefixCls}-${type}`),\n style: style\n }, /*#__PURE__*/React.createElement(TourPanel, {\n stepProps: Object.assign(Object.assign({}, restProps), {\n prefixCls,\n total\n }),\n current: current,\n type: type\n })));\n};\nexport default withPureRenderTheme(PurePanel);","import useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport { useLayoutEffect } from 'react';\n/**\n * returns the merged type of a step or the default type.\n */\nconst useMergedType = _ref => {\n let {\n defaultType,\n steps = [],\n current,\n defaultCurrent\n } = _ref;\n var _a;\n const [innerCurrent, updateInnerCurrent] = useMergedState(defaultCurrent, {\n value: current\n });\n useLayoutEffect(() => {\n if (current === undefined) return;\n updateInnerCurrent(current);\n }, [current]);\n const innerType = typeof innerCurrent === 'number' ? (_a = steps[innerCurrent]) === null || _a === void 0 ? void 0 : _a.type : defaultType;\n const currentMergedType = innerType !== null && innerType !== void 0 ? innerType : defaultType;\n return {\n currentMergedType,\n updateInnerCurrent\n };\n};\nexport default useMergedType;","'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 RCTour from '@rc-component/tour';\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport getPlacements from '../_util/placements';\nimport { ConfigContext } from '../config-provider';\nimport theme from '../theme';\nimport PurePanel from './PurePanel';\nimport TourPanel from './panelRender';\nimport useStyle from './style';\nimport useMergedType from './useMergedType';\nconst Tour = props => {\n const {\n prefixCls: customizePrefixCls,\n current,\n defaultCurrent,\n type,\n rootClassName,\n indicatorsRender,\n steps\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"current\", \"defaultCurrent\", \"type\", \"rootClassName\", \"indicatorsRender\", \"steps\"]);\n const {\n getPrefixCls,\n direction\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('tour', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const {\n token\n } = theme.useToken();\n const {\n currentMergedType,\n updateInnerCurrent\n } = useMergedType({\n defaultType: type,\n steps,\n current,\n defaultCurrent\n });\n const builtinPlacements = getPlacements({\n arrowPointAtCenter: true,\n autoAdjustOverflow: true,\n offset: token.marginXXS,\n arrowWidth: token.sizePopupArrow,\n borderRadius: token.borderRadius\n });\n const customClassName = classNames({\n [`${prefixCls}-primary`]: currentMergedType === 'primary',\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, hashId, rootClassName);\n const mergedRenderPanel = (stepProps, stepCurrent) => /*#__PURE__*/React.createElement(TourPanel, {\n type: type,\n stepProps: stepProps,\n current: stepCurrent,\n indicatorsRender: indicatorsRender\n });\n const onStepChange = stepCurrent => {\n var _a;\n updateInnerCurrent(stepCurrent);\n (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, stepCurrent);\n };\n return wrapSSR( /*#__PURE__*/React.createElement(RCTour, Object.assign({}, restProps, {\n rootClassName: customClassName,\n prefixCls: prefixCls,\n current: current,\n defaultCurrent: defaultCurrent,\n animated: true,\n renderPanel: mergedRenderPanel,\n builtinPlacements: builtinPlacements,\n onChange: onStepChange,\n steps: steps\n })));\n};\nif (process.env.NODE_ENV !== 'production') {\n Tour.displayName = 'Tour';\n}\nTour._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Tour;","export const groupKeysMap = keys => {\n const map = new Map();\n keys.forEach((key, index) => {\n map.set(key, index);\n });\n return map;\n};\nexport const groupDisabledKeysMap = dataSource => {\n const map = new Map();\n dataSource.forEach((_ref, index) => {\n let {\n disabled,\n key\n } = _ref;\n if (disabled) {\n map.set(key, index);\n }\n });\n return map;\n};","import * as React from 'react';\nimport { groupKeysMap } from '../../_util/transKeys';\nfunction useData(dataSource, rowKey, targetKeys) {\n const mergedDataSource = React.useMemo(() => (dataSource || []).map(record => {\n if (rowKey) {\n record = Object.assign(Object.assign({}, record), {\n key: rowKey(record)\n });\n }\n return record;\n }), [dataSource, rowKey]);\n const [leftDataSource, rightDataSource] = React.useMemo(() => {\n const leftData = [];\n const rightData = new Array((targetKeys || []).length);\n const targetKeysMap = groupKeysMap(targetKeys || []);\n mergedDataSource.forEach(record => {\n // rightData should be ordered by targetKeys\n // leftData should be ordered by dataSource\n if (targetKeysMap.has(record.key)) {\n rightData[targetKeysMap.get(record.key)] = record;\n } else {\n leftData.push(record);\n }\n });\n return [leftData, rightData];\n }, [mergedDataSource, targetKeys, rowKey]);\n return [mergedDataSource, leftDataSource, rightDataSource];\n}\nexport default useData;","import * as React from 'react';\nconst EMPTY_KEYS = [];\nfunction filterKeys(keys, dataKeys) {\n const filteredKeys = keys.filter(key => dataKeys.has(key));\n return keys.length === filteredKeys.length ? keys : filteredKeys;\n}\nfunction flattenKeys(keys) {\n return Array.from(keys).join(';');\n}\nexport default function useSelection(leftDataSource, rightDataSource) {\n let selectedKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_KEYS;\n // Prepare `dataSource` keys\n const [leftKeys, rightKeys] = React.useMemo(() => [new Set(leftDataSource.map(src => src.key)), new Set(rightDataSource.map(src => src.key))], [leftDataSource, rightDataSource]);\n // Selected Keys\n const [sourceSelectedKeys, setSourceSelectedKeys] = React.useState(() => filterKeys(selectedKeys, leftKeys));\n const [targetSelectedKeys, setTargetSelectedKeys] = React.useState(() => filterKeys(selectedKeys, rightKeys));\n // Fill selected keys\n React.useEffect(() => {\n setSourceSelectedKeys(filterKeys(selectedKeys, leftKeys));\n setTargetSelectedKeys(filterKeys(selectedKeys, rightKeys));\n }, [selectedKeys]);\n // Reset when data changed\n React.useEffect(() => {\n setSourceSelectedKeys(filterKeys(sourceSelectedKeys, leftKeys));\n setTargetSelectedKeys(filterKeys(targetSelectedKeys, rightKeys));\n }, [flattenKeys(leftKeys), flattenKeys(rightKeys)]);\n return [\n // Keys\n sourceSelectedKeys, targetSelectedKeys,\n // Updater\n setSourceSelectedKeys, setTargetSelectedKeys];\n}","import DeleteOutlined from \"@ant-design/icons/es/icons/DeleteOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport TransButton from '../_util/transButton';\nimport Checkbox from '../checkbox';\nimport { useLocale } from '../locale';\nimport defaultLocale from '../locale/en_US';\nconst ListItem = props => {\n const {\n renderedText,\n renderedEl,\n item,\n checked,\n disabled,\n prefixCls,\n onClick,\n onRemove,\n showRemove\n } = props;\n const className = classNames(`${prefixCls}-content-item`, {\n [`${prefixCls}-content-item-disabled`]: disabled || item.disabled,\n [`${prefixCls}-content-item-checked`]: checked\n });\n let title;\n if (typeof renderedText === 'string' || typeof renderedText === 'number') {\n title = String(renderedText);\n }\n const [contextLocale] = useLocale('Transfer', defaultLocale.Transfer);\n const liProps = {\n className,\n title\n };\n const labelNode = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-content-item-text`\n }, renderedEl);\n if (showRemove) {\n return /*#__PURE__*/React.createElement(\"li\", Object.assign({}, liProps), labelNode, /*#__PURE__*/React.createElement(TransButton, {\n disabled: disabled || item.disabled,\n className: `${prefixCls}-content-item-remove`,\n \"aria-label\": contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.remove,\n onClick: () => {\n onRemove === null || onRemove === void 0 ? void 0 : onRemove(item);\n }\n }, /*#__PURE__*/React.createElement(DeleteOutlined, null)));\n }\n // Default click to select\n liProps.onClick = disabled || item.disabled ? undefined : () => onClick(item);\n return /*#__PURE__*/React.createElement(\"li\", Object.assign({}, liProps), /*#__PURE__*/React.createElement(Checkbox, {\n className: `${prefixCls}-checkbox`,\n checked: checked,\n disabled: disabled || item.disabled\n }), labelNode);\n};\nexport default /*#__PURE__*/React.memo(ListItem);","import classNames from 'classnames';\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Pagination from '../pagination';\nimport ListItem from './ListItem';\nexport const OmitProps = ['handleFilter', 'handleClear', 'checkedKeys'];\nconst parsePagination = pagination => {\n const defaultPagination = {\n simple: true,\n showSizeChanger: false,\n showLessItems: false\n };\n return Object.assign(Object.assign({}, defaultPagination), pagination);\n};\nconst TransferListBody = (props, ref) => {\n const {\n prefixCls,\n filteredRenderItems,\n selectedKeys,\n disabled: globalDisabled,\n showRemove,\n pagination,\n onScroll,\n onItemSelect,\n onItemRemove\n } = props;\n const [current, setCurrent] = React.useState(1);\n const mergedPagination = React.useMemo(() => {\n if (!pagination) {\n return null;\n }\n const convertPagination = typeof pagination === 'object' ? pagination : {};\n return parsePagination(convertPagination);\n }, [pagination]);\n const [pageSize, setPageSize] = useMergedState(10, {\n value: mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.pageSize\n });\n React.useEffect(() => {\n if (mergedPagination) {\n const maxPageCount = Math.ceil(filteredRenderItems.length / pageSize);\n setCurrent(Math.min(current, maxPageCount));\n }\n }, [filteredRenderItems, mergedPagination, pageSize]);\n const onClick = item => {\n onItemSelect === null || onItemSelect === void 0 ? void 0 : onItemSelect(item.key, !selectedKeys.includes(item.key));\n };\n const onRemove = item => {\n onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove([item.key]);\n };\n const onPageChange = cur => {\n setCurrent(cur);\n };\n const onSizeChange = (cur, size) => {\n setCurrent(cur);\n setPageSize(size);\n };\n const memoizedItems = React.useMemo(() => {\n const displayItems = mergedPagination ? filteredRenderItems.slice((current - 1) * pageSize, current * pageSize) : filteredRenderItems;\n return displayItems;\n }, [current, filteredRenderItems, mergedPagination, pageSize]);\n React.useImperativeHandle(ref, () => ({\n items: memoizedItems\n }));\n const paginationNode = mergedPagination ? /*#__PURE__*/React.createElement(Pagination, {\n size: \"small\",\n disabled: globalDisabled,\n simple: mergedPagination.simple,\n pageSize: pageSize,\n showLessItems: mergedPagination.showLessItems,\n showSizeChanger: mergedPagination.showSizeChanger,\n className: `${prefixCls}-pagination`,\n total: filteredRenderItems.length,\n current: current,\n onChange: onPageChange,\n onShowSizeChange: onSizeChange\n }) : null;\n const cls = classNames(`${prefixCls}-content`, {\n [`${prefixCls}-content-show-remove`]: showRemove\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"ul\", {\n className: cls,\n onScroll: onScroll\n }, (memoizedItems || []).map(_ref => {\n let {\n renderedEl,\n renderedText,\n item\n } = _ref;\n return /*#__PURE__*/React.createElement(ListItem, {\n key: item.key,\n item: item,\n renderedText: renderedText,\n renderedEl: renderedEl,\n prefixCls: prefixCls,\n showRemove: showRemove,\n onClick: onClick,\n onRemove: onRemove,\n checked: selectedKeys.includes(item.key),\n disabled: globalDisabled || item.disabled\n });\n })), paginationNode);\n};\nif (process.env.NODE_ENV !== 'production') {\n TransferListBody.displayName = 'TransferListBody';\n}\nexport default /*#__PURE__*/React.forwardRef(TransferListBody);","import SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport * as React from 'react';\nimport Input from '../input';\nconst Search = props => {\n const {\n placeholder = '',\n value,\n prefixCls,\n disabled,\n onChange,\n handleClear\n } = props;\n const handleChange = React.useCallback(e => {\n onChange === null || onChange === void 0 ? void 0 : onChange(e);\n if (e.target.value === '') {\n handleClear === null || handleClear === void 0 ? void 0 : handleClear();\n }\n }, [onChange]);\n return /*#__PURE__*/React.createElement(Input, {\n placeholder: placeholder,\n className: prefixCls,\n value: value,\n onChange: handleChange,\n disabled: disabled,\n allowClear: true,\n prefix: /*#__PURE__*/React.createElement(SearchOutlined, null)\n });\n};\nif (process.env.NODE_ENV !== 'production') {\n Search.displayName = 'Search';\n}\nexport default Search;","import DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport React, { useMemo, useRef, useState } from 'react';\nimport { isValidElement } from '../_util/reactNode';\nimport { groupKeysMap } from '../_util/transKeys';\nimport Checkbox from '../checkbox';\nimport Dropdown from '../dropdown';\nimport DefaultListBody, { OmitProps } from './ListBody';\nimport Search from './search';\nconst defaultRender = () => null;\nfunction isRenderResultPlainObject(result) {\n return !!(result && !isValidElement(result) && Object.prototype.toString.call(result) === '[object Object]');\n}\nfunction getEnabledItemKeys(items) {\n return items.filter(data => !data.disabled).map(data => data.key);\n}\nconst isValidIcon = icon => icon !== undefined;\nconst TransferList = props => {\n const {\n prefixCls,\n dataSource = [],\n titleText = '',\n checkedKeys,\n disabled,\n showSearch = false,\n style,\n searchPlaceholder,\n notFoundContent,\n selectAll,\n selectCurrent,\n selectInvert,\n removeAll,\n removeCurrent,\n showSelectAll = true,\n showRemove,\n pagination,\n direction,\n itemsUnit,\n itemUnit,\n selectAllLabel,\n selectionsIcon,\n footer,\n renderList,\n onItemSelectAll,\n onItemRemove,\n handleFilter,\n handleClear,\n filterOption,\n render = defaultRender\n } = props;\n const [filterValue, setFilterValue] = useState('');\n const listBodyRef = useRef({});\n const internalHandleFilter = e => {\n setFilterValue(e.target.value);\n handleFilter(e);\n };\n const internalHandleClear = () => {\n setFilterValue('');\n handleClear();\n };\n const matchFilter = (text, item) => {\n if (filterOption) {\n return filterOption(filterValue, item);\n }\n return text.includes(filterValue);\n };\n const renderListBody = listProps => {\n let bodyContent = renderList ? renderList(listProps) : null;\n const customize = !!bodyContent;\n if (!customize) {\n bodyContent = /*#__PURE__*/React.createElement(DefaultListBody, Object.assign({\n ref: listBodyRef\n }, listProps));\n }\n return {\n customize,\n bodyContent\n };\n };\n const renderItem = item => {\n const renderResult = render(item);\n const isRenderResultPlain = isRenderResultPlainObject(renderResult);\n return {\n item,\n renderedEl: isRenderResultPlain ? renderResult.label : renderResult,\n renderedText: isRenderResultPlain ? renderResult.value : renderResult\n };\n };\n const notFoundContentEle = useMemo(() => Array.isArray(notFoundContent) ? notFoundContent[direction === 'left' ? 0 : 1] : notFoundContent, [notFoundContent, direction]);\n const [filteredItems, filteredRenderItems] = useMemo(() => {\n const filterItems = [];\n const filterRenderItems = [];\n dataSource.forEach(item => {\n const renderedItem = renderItem(item);\n if (filterValue && !matchFilter(renderedItem.renderedText, item)) {\n return;\n }\n filterItems.push(item);\n filterRenderItems.push(renderedItem);\n });\n return [filterItems, filterRenderItems];\n }, [dataSource, filterValue]);\n const checkStatus = useMemo(() => {\n if (checkedKeys.length === 0) {\n return 'none';\n }\n const checkedKeysMap = groupKeysMap(checkedKeys);\n if (filteredItems.every(item => checkedKeysMap.has(item.key) || !!item.disabled)) {\n return 'all';\n }\n return 'part';\n }, [checkedKeys, filteredItems]);\n const listBody = useMemo(() => {\n const search = showSearch ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-body-search-wrapper`\n }, /*#__PURE__*/React.createElement(Search, {\n prefixCls: `${prefixCls}-search`,\n onChange: internalHandleFilter,\n handleClear: internalHandleClear,\n placeholder: searchPlaceholder,\n value: filterValue,\n disabled: disabled\n })) : null;\n const {\n customize,\n bodyContent\n } = renderListBody(Object.assign(Object.assign({}, omit(props, OmitProps)), {\n filteredItems,\n filteredRenderItems,\n selectedKeys: checkedKeys\n }));\n let bodyNode;\n // We should wrap customize list body in a classNamed div to use flex layout.\n if (customize) {\n bodyNode = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-body-customize-wrapper`\n }, bodyContent);\n } else {\n bodyNode = filteredItems.length ? bodyContent : /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-body-not-found`\n }, notFoundContentEle);\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(showSearch ? `${prefixCls}-body ${prefixCls}-body-with-search` : `${prefixCls}-body`)\n }, search, bodyNode);\n }, [showSearch, prefixCls, searchPlaceholder, filterValue, disabled, checkedKeys, filteredItems, filteredRenderItems, notFoundContentEle]);\n const checkBox = /*#__PURE__*/React.createElement(Checkbox, {\n disabled: dataSource.length === 0 || disabled,\n checked: checkStatus === 'all',\n indeterminate: checkStatus === 'part',\n className: `${prefixCls}-checkbox`,\n onChange: () => {\n // Only select enabled items\n onItemSelectAll === null || onItemSelectAll === void 0 ? void 0 : onItemSelectAll(filteredItems.filter(item => !item.disabled).map(_ref => {\n let {\n key\n } = _ref;\n return key;\n }), checkStatus !== 'all');\n }\n });\n const getSelectAllLabel = (selectedCount, totalCount) => {\n if (selectAllLabel) {\n return typeof selectAllLabel === 'function' ? selectAllLabel({\n selectedCount,\n totalCount\n }) : selectAllLabel;\n }\n const unit = totalCount > 1 ? itemsUnit : itemUnit;\n return /*#__PURE__*/React.createElement(React.Fragment, null, (selectedCount > 0 ? `${selectedCount}/` : '') + totalCount, \" \", unit);\n };\n // Custom Layout\n const footerDom = footer && (footer.length < 2 ? footer(props) : footer(props, {\n direction\n }));\n const listCls = classNames(prefixCls, {\n [`${prefixCls}-with-pagination`]: !!pagination,\n [`${prefixCls}-with-footer`]: !!footerDom\n });\n // ====================== Get filtered, checked item list ======================\n const listFooter = footerDom ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-footer`\n }, footerDom) : null;\n const checkAllCheckbox = !showRemove && !pagination && checkBox;\n let items;\n if (showRemove) {\n items = [/* Remove Current Page */\n pagination ? {\n key: 'removeCurrent',\n label: removeCurrent,\n onClick() {\n var _a;\n const pageKeys = getEnabledItemKeys((((_a = listBodyRef.current) === null || _a === void 0 ? void 0 : _a.items) || []).map(entity => entity.item));\n onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove(pageKeys);\n }\n } : null, /* Remove All */\n {\n key: 'removeAll',\n label: removeAll,\n onClick() {\n onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove(getEnabledItemKeys(filteredItems));\n }\n }].filter(Boolean);\n } else {\n items = [{\n key: 'selectAll',\n label: selectAll,\n onClick() {\n const keys = getEnabledItemKeys(filteredItems);\n onItemSelectAll === null || onItemSelectAll === void 0 ? void 0 : onItemSelectAll(keys, keys.length !== checkedKeys.length);\n }\n }, pagination ? {\n key: 'selectCurrent',\n label: selectCurrent,\n onClick() {\n var _a;\n const pageItems = ((_a = listBodyRef.current) === null || _a === void 0 ? void 0 : _a.items) || [];\n onItemSelectAll === null || onItemSelectAll === void 0 ? void 0 : onItemSelectAll(getEnabledItemKeys(pageItems.map(entity => entity.item)), true);\n }\n } : null, {\n key: 'selectInvert',\n label: selectInvert,\n onClick() {\n var _a;\n const availableKeys = getEnabledItemKeys(pagination ? (((_a = listBodyRef.current) === null || _a === void 0 ? void 0 : _a.items) || []).map(entity => entity.item) : filteredItems);\n const checkedKeySet = new Set(checkedKeys);\n const newCheckedKeys = [];\n const newUnCheckedKeys = [];\n availableKeys.forEach(key => {\n if (checkedKeySet.has(key)) {\n newUnCheckedKeys.push(key);\n } else {\n newCheckedKeys.push(key);\n }\n });\n onItemSelectAll === null || onItemSelectAll === void 0 ? void 0 : onItemSelectAll(newCheckedKeys, 'replace');\n }\n }];\n }\n const dropdown = /*#__PURE__*/React.createElement(Dropdown, {\n className: `${prefixCls}-header-dropdown`,\n menu: {\n items\n },\n disabled: disabled\n }, isValidIcon(selectionsIcon) ? selectionsIcon : /*#__PURE__*/React.createElement(DownOutlined, null));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: listCls,\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-header`\n }, showSelectAll ? /*#__PURE__*/React.createElement(React.Fragment, null, checkAllCheckbox, dropdown) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-header-selected`\n }, getSelectAllLabel(checkedKeys.length, filteredItems.length)), /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-header-title`\n }, titleText)), listBody, listFooter);\n};\nif (process.env.NODE_ENV !== 'production') {\n TransferList.displayName = 'TransferList';\n}\nexport default TransferList;","import LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport * as React from 'react';\nimport Button from '../button';\nconst Operation = props => {\n const {\n disabled,\n moveToLeft,\n moveToRight,\n leftArrowText = '',\n rightArrowText = '',\n leftActive,\n rightActive,\n className,\n style,\n direction,\n oneWay\n } = props;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: style\n }, /*#__PURE__*/React.createElement(Button, {\n type: \"primary\",\n size: \"small\",\n disabled: disabled || !rightActive,\n onClick: moveToRight,\n icon: direction !== 'rtl' ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null)\n }, rightArrowText), !oneWay && /*#__PURE__*/React.createElement(Button, {\n type: \"primary\",\n size: \"small\",\n disabled: disabled || !leftActive,\n onClick: moveToLeft,\n icon: direction !== 'rtl' ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null)\n }, leftArrowText));\n};\nif (process.env.NODE_ENV !== 'production') {\n Operation.displayName = 'Operation';\n}\nexport default Operation;","import { resetComponent, resetIcon, textEllipsis } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genTransferCustomizeStyle = token => {\n const {\n antCls,\n componentCls,\n listHeight,\n controlHeightLG,\n marginXXS,\n margin\n } = token;\n const tableCls = `${antCls}-table`;\n const inputCls = `${antCls}-input`;\n return {\n [`${componentCls}-customize-list`]: {\n [`${componentCls}-list`]: {\n flex: '1 1 50%',\n width: 'auto',\n height: 'auto',\n minHeight: listHeight\n },\n // =================== Hook Components ===================\n [`${tableCls}-wrapper`]: {\n [`${tableCls}-small`]: {\n border: 0,\n borderRadius: 0,\n [`${tableCls}-selection-column`]: {\n width: controlHeightLG,\n minWidth: controlHeightLG\n }\n },\n [`${tableCls}-pagination${tableCls}-pagination`]: {\n margin: `${margin}px 0 ${marginXXS}px`\n }\n },\n [`${inputCls}[disabled]`]: {\n backgroundColor: 'transparent'\n }\n }\n };\n};\nconst genTransferStatusColor = (token, color) => {\n const {\n componentCls,\n colorBorder\n } = token;\n return {\n [`${componentCls}-list`]: {\n borderColor: color,\n '&-search:not([disabled])': {\n borderColor: colorBorder\n }\n }\n };\n};\nconst genTransferStatusStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-status-error`]: Object.assign({}, genTransferStatusColor(token, token.colorError)),\n [`${componentCls}-status-warning`]: Object.assign({}, genTransferStatusColor(token, token.colorWarning))\n };\n};\nconst genTransferListStyle = token => {\n const {\n componentCls,\n colorBorder,\n colorSplit,\n lineWidth,\n itemHeight,\n headerHeight,\n transferHeaderVerticalPadding,\n itemPaddingBlock,\n controlItemBgActive,\n colorTextDisabled,\n listHeight,\n listWidth,\n listWidthLG,\n fontSizeIcon,\n marginXS,\n paddingSM,\n lineType,\n antCls,\n iconCls,\n motionDurationSlow,\n controlItemBgHover,\n borderRadiusLG,\n colorBgContainer,\n colorText,\n controlItemBgActiveHover\n } = token;\n return {\n display: 'flex',\n flexDirection: 'column',\n width: listWidth,\n height: listHeight,\n border: `${lineWidth}px ${lineType} ${colorBorder}`,\n borderRadius: token.borderRadiusLG,\n '&-with-pagination': {\n width: listWidthLG,\n height: 'auto'\n },\n '&-search': {\n [`${iconCls}-search`]: {\n color: colorTextDisabled\n }\n },\n '&-header': {\n display: 'flex',\n flex: 'none',\n alignItems: 'center',\n height: headerHeight,\n // border-top is on the transfer dom. We should minus 1px for this\n padding: `${transferHeaderVerticalPadding - lineWidth}px ${paddingSM}px ${transferHeaderVerticalPadding}px`,\n color: colorText,\n background: colorBgContainer,\n borderBottom: `${lineWidth}px ${lineType} ${colorSplit}`,\n borderRadius: `${borderRadiusLG}px ${borderRadiusLG}px 0 0`,\n '> *:not(:last-child)': {\n marginInlineEnd: 4 // This is magic and fixed number, DO NOT use token since it may change.\n },\n\n '> *': {\n flex: 'none'\n },\n '&-title': Object.assign(Object.assign({}, textEllipsis), {\n flex: 'auto',\n textAlign: 'end'\n }),\n '&-dropdown': Object.assign(Object.assign({}, resetIcon()), {\n fontSize: fontSizeIcon,\n transform: 'translateY(10%)',\n cursor: 'pointer',\n '&[disabled]': {\n cursor: 'not-allowed'\n }\n })\n },\n '&-body': {\n display: 'flex',\n flex: 'auto',\n flexDirection: 'column',\n fontSize: token.fontSize,\n // https://blog.csdn.net/qq449245884/article/details/107373672/\n minHeight: 0,\n '&-search-wrapper': {\n position: 'relative',\n flex: 'none',\n padding: paddingSM\n }\n },\n '&-content': {\n flex: 'auto',\n margin: 0,\n padding: 0,\n overflow: 'auto',\n listStyle: 'none',\n '&-item': {\n display: 'flex',\n alignItems: 'center',\n minHeight: itemHeight,\n padding: `${itemPaddingBlock}px ${paddingSM}px`,\n transition: `all ${motionDurationSlow}`,\n '> *:not(:last-child)': {\n marginInlineEnd: marginXS\n },\n '> *': {\n flex: 'none'\n },\n '&-text': Object.assign(Object.assign({}, textEllipsis), {\n flex: 'auto'\n }),\n '&-remove': {\n position: 'relative',\n color: colorBorder,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n color: token.colorLinkHover\n },\n '&::after': {\n position: 'absolute',\n inset: `-${itemPaddingBlock}px -50%`,\n content: '\"\"'\n }\n },\n [`&:not(${componentCls}-list-content-item-disabled)`]: {\n '&:hover': {\n backgroundColor: controlItemBgHover,\n cursor: 'pointer'\n },\n [`&${componentCls}-list-content-item-checked:hover`]: {\n backgroundColor: controlItemBgActiveHover\n }\n },\n '&-checked': {\n backgroundColor: controlItemBgActive\n },\n '&-disabled': {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n },\n // Do not change hover style when `oneWay` mode\n [`&-show-remove ${componentCls}-list-content-item:not(${componentCls}-list-content-item-disabled):hover`]: {\n background: 'transparent',\n cursor: 'default'\n }\n },\n '&-pagination': {\n padding: `${token.paddingXS}px 0`,\n textAlign: 'end',\n borderTop: `${lineWidth}px ${lineType} ${colorSplit}`,\n [`${antCls}-pagination-options`]: {\n paddingInlineEnd: token.paddingXS\n }\n },\n '&-body-not-found': {\n flex: 'none',\n width: '100%',\n margin: 'auto 0',\n color: colorTextDisabled,\n textAlign: 'center'\n },\n '&-footer': {\n borderTop: `${lineWidth}px ${lineType} ${colorSplit}`\n }\n };\n};\nconst genTransferStyle = token => {\n const {\n antCls,\n iconCls,\n componentCls,\n headerHeight,\n marginXS,\n marginXXS,\n fontSizeIcon,\n fontSize,\n lineHeight,\n colorBgContainerDisabled\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'flex',\n alignItems: 'stretch',\n [`${componentCls}-disabled`]: {\n [`${componentCls}-list`]: {\n background: colorBgContainerDisabled\n }\n },\n [`${componentCls}-list`]: genTransferListStyle(token),\n [`${componentCls}-operation`]: {\n display: 'flex',\n flex: 'none',\n flexDirection: 'column',\n alignSelf: 'center',\n margin: `0 ${marginXS}px`,\n verticalAlign: 'middle',\n [`${antCls}-btn`]: {\n display: 'block',\n '&:first-child': {\n marginBottom: marginXXS\n },\n [iconCls]: {\n fontSize: fontSizeIcon\n }\n }\n },\n [`${antCls}-empty-image`]: {\n maxHeight: headerHeight / 2 - Math.round(fontSize * lineHeight)\n }\n })\n };\n};\nconst genTransferRTLStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Transfer', token => {\n const {\n fontSize,\n lineHeight,\n lineWidth,\n controlHeightLG\n } = token;\n const fontHeight = Math.round(fontSize * lineHeight);\n const transferToken = mergeToken(token, {\n transferHeaderVerticalPadding: Math.ceil((controlHeightLG - lineWidth - fontHeight) / 2)\n });\n return [genTransferStyle(transferToken), genTransferCustomizeStyle(transferToken), genTransferStatusStyle(transferToken), genTransferRTLStyle(transferToken)];\n}, token => {\n const {\n fontSize,\n lineHeight,\n controlHeight,\n controlHeightLG\n } = token;\n const fontHeight = Math.round(fontSize * lineHeight);\n return {\n listWidth: 180,\n listHeight: 200,\n listWidthLG: 250,\n headerHeight: controlHeightLG,\n itemHeight: controlHeight,\n itemPaddingBlock: (controlHeight - fontHeight) / 2\n };\n});","'use client';\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport React, { useCallback, useContext } from 'react';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { groupDisabledKeysMap, groupKeysMap } from '../_util/transKeys';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport { FormItemInputContext } from '../form/context';\nimport { useLocale } from '../locale';\nimport defaultLocale from '../locale/en_US';\nimport useData from './hooks/useData';\nimport useSelection from './hooks/useSelection';\nimport List from './list';\nimport Operation from './operation';\nimport Search from './search';\nimport useStyle from './style';\nconst Transfer = props => {\n const {\n dataSource,\n targetKeys = [],\n selectedKeys,\n selectAllLabels = [],\n operations = [],\n style = {},\n listStyle = {},\n locale = {},\n titles,\n disabled,\n showSearch = false,\n operationStyle,\n showSelectAll,\n oneWay,\n pagination,\n status: customStatus,\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n selectionsIcon,\n filterOption,\n render,\n footer,\n children,\n rowKey,\n onScroll,\n onChange,\n onSearch,\n onSelectChange\n } = props;\n const {\n getPrefixCls,\n renderEmpty,\n direction: dir,\n transfer\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('transfer', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n // Fill record with `key`\n const [mergedDataSource, leftDataSource, rightDataSource] = useData(dataSource, rowKey, targetKeys);\n // Get direction selected keys\n const [\n // Keys\n sourceSelectedKeys, targetSelectedKeys,\n // Setters\n setSourceSelectedKeys, setTargetSelectedKeys] = useSelection(leftDataSource, rightDataSource, selectedKeys);\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!pagination || !children, 'Transfer', '`pagination` not support customize render list.') : void 0;\n }\n const setStateKeys = useCallback((direction, keys) => {\n if (direction === 'left') {\n const nextKeys = typeof keys === 'function' ? keys(sourceSelectedKeys || []) : keys;\n setSourceSelectedKeys(nextKeys);\n } else {\n const nextKeys = typeof keys === 'function' ? keys(targetSelectedKeys || []) : keys;\n setTargetSelectedKeys(nextKeys);\n }\n }, [sourceSelectedKeys, targetSelectedKeys]);\n const handleSelectChange = useCallback((direction, holder) => {\n if (direction === 'left') {\n onSelectChange === null || onSelectChange === void 0 ? void 0 : onSelectChange(holder, targetSelectedKeys);\n } else {\n onSelectChange === null || onSelectChange === void 0 ? void 0 : onSelectChange(sourceSelectedKeys, holder);\n }\n }, [sourceSelectedKeys, targetSelectedKeys]);\n const getTitles = transferLocale => {\n var _a;\n return (_a = titles !== null && titles !== void 0 ? titles : transferLocale.titles) !== null && _a !== void 0 ? _a : [];\n };\n const handleLeftScroll = e => {\n onScroll === null || onScroll === void 0 ? void 0 : onScroll('left', e);\n };\n const handleRightScroll = e => {\n onScroll === null || onScroll === void 0 ? void 0 : onScroll('right', e);\n };\n const moveTo = direction => {\n const moveKeys = direction === 'right' ? sourceSelectedKeys : targetSelectedKeys;\n const dataSourceDisabledKeysMap = groupDisabledKeysMap(mergedDataSource);\n // filter the disabled options\n const newMoveKeys = moveKeys.filter(key => !dataSourceDisabledKeysMap.has(key));\n const newMoveKeysMap = groupKeysMap(newMoveKeys);\n // move items to target box\n const newTargetKeys = direction === 'right' ? newMoveKeys.concat(targetKeys) : targetKeys.filter(targetKey => !newMoveKeysMap.has(targetKey));\n // empty checked keys\n const oppositeDirection = direction === 'right' ? 'left' : 'right';\n setStateKeys(oppositeDirection, []);\n handleSelectChange(oppositeDirection, []);\n onChange === null || onChange === void 0 ? void 0 : onChange(newTargetKeys, direction, newMoveKeys);\n };\n const moveToLeft = () => {\n moveTo('left');\n };\n const moveToRight = () => {\n moveTo('right');\n };\n const onItemSelectAll = (direction, keys, checkAll) => {\n setStateKeys(direction, prevKeys => {\n let mergedCheckedKeys = [];\n if (checkAll === 'replace') {\n mergedCheckedKeys = keys;\n } else if (checkAll) {\n // Merge current keys with origin key\n mergedCheckedKeys = Array.from(new Set([].concat(_toConsumableArray(prevKeys), _toConsumableArray(keys))));\n } else {\n const selectedKeysMap = groupKeysMap(keys);\n // Remove current keys from origin keys\n mergedCheckedKeys = prevKeys.filter(key => !selectedKeysMap.has(key));\n }\n handleSelectChange(direction, mergedCheckedKeys);\n return mergedCheckedKeys;\n });\n };\n const onLeftItemSelectAll = (keys, checkAll) => {\n onItemSelectAll('left', keys, checkAll);\n };\n const onRightItemSelectAll = (keys, checkAll) => {\n onItemSelectAll('right', keys, checkAll);\n };\n const leftFilter = e => onSearch === null || onSearch === void 0 ? void 0 : onSearch('left', e.target.value);\n const rightFilter = e => onSearch === null || onSearch === void 0 ? void 0 : onSearch('right', e.target.value);\n const handleLeftClear = () => onSearch === null || onSearch === void 0 ? void 0 : onSearch('left', '');\n const handleRightClear = () => onSearch === null || onSearch === void 0 ? void 0 : onSearch('right', '');\n const onItemSelect = (direction, selectedKey, checked) => {\n const holder = _toConsumableArray(direction === 'left' ? sourceSelectedKeys : targetSelectedKeys);\n const index = holder.indexOf(selectedKey);\n if (index > -1) {\n holder.splice(index, 1);\n }\n if (checked) {\n holder.push(selectedKey);\n }\n handleSelectChange(direction, holder);\n if (!props.selectedKeys) {\n setStateKeys(direction, holder);\n }\n };\n const onLeftItemSelect = (selectedKey, checked) => {\n onItemSelect('left', selectedKey, checked);\n };\n const onRightItemSelect = (selectedKey, checked) => {\n onItemSelect('right', selectedKey, checked);\n };\n const onRightItemRemove = keys => {\n setStateKeys('right', []);\n onChange === null || onChange === void 0 ? void 0 : onChange(targetKeys.filter(key => !keys.includes(key)), 'left', _toConsumableArray(keys));\n };\n const handleListStyle = direction => {\n if (typeof listStyle === 'function') {\n return listStyle({\n direction\n });\n }\n return listStyle || {};\n };\n const formItemContext = useContext(FormItemInputContext);\n const {\n hasFeedback,\n status\n } = formItemContext;\n const getLocale = transferLocale => Object.assign(Object.assign(Object.assign({}, transferLocale), {\n notFoundContent: (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Transfer')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Transfer\"\n })\n }), locale);\n const mergedStatus = getMergedStatus(status, customStatus);\n const mergedPagination = !children && pagination;\n const leftActive = targetSelectedKeys.length > 0;\n const rightActive = sourceSelectedKeys.length > 0;\n const cls = classNames(prefixCls, {\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-customize-list`]: !!children,\n [`${prefixCls}-rtl`]: dir === 'rtl'\n }, getStatusClassNames(prefixCls, mergedStatus, hasFeedback), transfer === null || transfer === void 0 ? void 0 : transfer.className, className, rootClassName, hashId);\n const [contextLocale] = useLocale('Transfer', defaultLocale.Transfer);\n const listLocale = getLocale(contextLocale);\n const [leftTitle, rightTitle] = getTitles(listLocale);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: Object.assign(Object.assign({}, transfer === null || transfer === void 0 ? void 0 : transfer.style), style)\n }, /*#__PURE__*/React.createElement(List, Object.assign({\n prefixCls: `${prefixCls}-list`,\n titleText: leftTitle,\n dataSource: leftDataSource,\n filterOption: filterOption,\n style: handleListStyle('left'),\n checkedKeys: sourceSelectedKeys,\n handleFilter: leftFilter,\n handleClear: handleLeftClear,\n onItemSelect: onLeftItemSelect,\n onItemSelectAll: onLeftItemSelectAll,\n render: render,\n showSearch: showSearch,\n renderList: children,\n footer: footer,\n onScroll: handleLeftScroll,\n disabled: disabled,\n direction: dir === 'rtl' ? 'right' : 'left',\n showSelectAll: showSelectAll,\n selectAllLabel: selectAllLabels[0],\n pagination: mergedPagination,\n selectionsIcon: selectionsIcon\n }, listLocale)), /*#__PURE__*/React.createElement(Operation, {\n className: `${prefixCls}-operation`,\n rightActive: rightActive,\n rightArrowText: operations[0],\n moveToRight: moveToRight,\n leftActive: leftActive,\n leftArrowText: operations[1],\n moveToLeft: moveToLeft,\n style: operationStyle,\n disabled: disabled,\n direction: dir,\n oneWay: oneWay\n }), /*#__PURE__*/React.createElement(List, Object.assign({\n prefixCls: `${prefixCls}-list`,\n titleText: rightTitle,\n dataSource: rightDataSource,\n filterOption: filterOption,\n style: handleListStyle('right'),\n checkedKeys: targetSelectedKeys,\n handleFilter: rightFilter,\n handleClear: handleRightClear,\n onItemSelect: onRightItemSelect,\n onItemSelectAll: onRightItemSelectAll,\n onItemRemove: onRightItemRemove,\n render: render,\n showSearch: showSearch,\n renderList: children,\n footer: footer,\n onScroll: handleRightScroll,\n disabled: disabled,\n direction: dir === 'rtl' ? 'left' : 'right',\n showSelectAll: showSelectAll,\n selectAllLabel: selectAllLabels[1],\n showRemove: oneWay,\n pagination: mergedPagination,\n selectionsIcon: selectionsIcon\n }, listLocale))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Transfer.displayName = 'Transfer';\n}\nTransfer.List = List;\nTransfer.Search = Search;\nTransfer.Operation = Operation;\nexport default Transfer;","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 React from 'react';\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport default DomWrapper;","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport * as React from 'react';\nvar defaultOptions = {\n subtree: true,\n childList: true,\n attributeFilter: ['style', 'class']\n};\nexport default function useMutateObserver(nodeOrList, callback) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultOptions;\n React.useEffect(function () {\n if (!canUseDom() || !nodeOrList) {\n return;\n }\n var instance;\n var nodeList = Array.isArray(nodeOrList) ? nodeOrList : [nodeOrList];\n if ('MutationObserver' in window) {\n instance = new MutationObserver(callback);\n nodeList.forEach(function (element) {\n instance.observe(element, options);\n });\n }\n return function () {\n var _instance, _instance2;\n (_instance = instance) === null || _instance === void 0 ? void 0 : _instance.takeRecords();\n (_instance2 = instance) === null || _instance2 === void 0 ? void 0 : _instance2.disconnect();\n };\n }, [options, nodeOrList]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport DomWrapper from \"./wrapper\";\nimport useMutateObserver from \"./useMutateObserver\";\nvar MutateObserver = function MutateObserver(props) {\n var children = props.children,\n options = props.options,\n _props$onMutate = props.onMutate,\n onMutate = _props$onMutate === void 0 ? function () {} : _props$onMutate;\n var callback = useEvent(onMutate);\n var wrapperRef = React.useRef(null);\n var elementRef = React.useRef(null);\n var canRef = /*#__PURE__*/React.isValidElement(children) && supportRef(children);\n var mergedRef = useComposeRef(elementRef, canRef ? children.ref : null);\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n target = _React$useState2[0],\n setTarget = _React$useState2[1];\n useMutateObserver(target, callback, options);\n\n // =========================== Effect ===========================\n // Bind target\n useLayoutEffect(function () {\n setTarget(findDOMNode(elementRef.current) || findDOMNode(wrapperRef.current));\n });\n\n // =========================== Render ===========================\n if (!children) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('MutationObserver need children props');\n }\n return null;\n }\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperRef\n }, canRef ? /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n }) : children);\n};\nexport default MutateObserver;","import MutateObserver from \"./MutateObserver\";\nimport useMutateObserver from \"./useMutateObserver\";\nexport { useMutateObserver };\nexport default MutateObserver;","export const FontGap = 3;\nfunction prepareCanvas(width, height) {\n let ratio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const realWidth = width * ratio;\n const realHeight = height * ratio;\n canvas.setAttribute('width', `${realWidth}px`);\n canvas.setAttribute('height', `${realHeight}px`);\n ctx.save();\n return [ctx, canvas, realWidth, realHeight];\n}\n/**\n * Get the clips of text content.\n * This is a lazy hook function since SSR no need this\n */\nexport default function useClips() {\n // Get single clips\n function getClips(content, rotate, ratio, width, height, font, gapX, gapY) {\n // ================= Text / Image =================\n const [ctx, canvas, contentWidth, contentHeight] = prepareCanvas(width, height, ratio);\n if (content instanceof HTMLImageElement) {\n // Image\n ctx.drawImage(content, 0, 0, contentWidth, contentHeight);\n } else {\n // Text\n const {\n color,\n fontSize,\n fontStyle,\n fontWeight,\n fontFamily\n } = font;\n const mergedFontSize = Number(fontSize) * ratio;\n ctx.font = `${fontStyle} normal ${fontWeight} ${mergedFontSize}px/${height}px ${fontFamily}`;\n ctx.fillStyle = color;\n ctx.textAlign = 'center';\n ctx.textBaseline = 'top';\n const contents = Array.isArray(content) ? content : [content];\n contents === null || contents === void 0 ? void 0 : contents.forEach((item, index) => {\n ctx.fillText(item !== null && item !== void 0 ? item : '', contentWidth / 2, index * (mergedFontSize + FontGap * ratio));\n });\n }\n // ==================== Rotate ====================\n const angle = Math.PI / 180 * Number(rotate);\n const maxSize = Math.max(width, height);\n const [rCtx, rCanvas, realMaxSize] = prepareCanvas(maxSize, maxSize, ratio);\n // Copy from `ctx` and rotate\n rCtx.translate(realMaxSize / 2, realMaxSize / 2);\n rCtx.rotate(angle);\n rCtx.drawImage(canvas, -contentWidth / 2, -contentHeight / 2);\n // Get boundary of rotated text\n function getRotatePos(x, y) {\n const targetX = x * Math.cos(angle) - y * Math.sin(angle);\n const targetY = x * Math.sin(angle) + y * Math.cos(angle);\n return [targetX, targetY];\n }\n let left = 0;\n let right = 0;\n let top = 0;\n let bottom = 0;\n const halfWidth = contentWidth / 2;\n const halfHeight = contentHeight / 2;\n const points = [[0 - halfWidth, 0 - halfHeight], [0 + halfWidth, 0 - halfHeight], [0 + halfWidth, 0 + halfHeight], [0 - halfWidth, 0 + halfHeight]];\n points.forEach(_ref => {\n let [x, y] = _ref;\n const [targetX, targetY] = getRotatePos(x, y);\n left = Math.min(left, targetX);\n right = Math.max(right, targetX);\n top = Math.min(top, targetY);\n bottom = Math.max(bottom, targetY);\n });\n const cutLeft = left + realMaxSize / 2;\n const cutTop = top + realMaxSize / 2;\n const cutWidth = right - left;\n const cutHeight = bottom - top;\n // ================ Fill Alternate ================\n const realGapX = gapX * ratio;\n const realGapY = gapY * ratio;\n const filledWidth = (cutWidth + realGapX) * 2;\n const filledHeight = cutHeight + realGapY;\n const [fCtx, fCanvas] = prepareCanvas(filledWidth, filledHeight);\n function drawImg() {\n let targetX = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let targetY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n fCtx.drawImage(rCanvas, cutLeft, cutTop, cutWidth, cutHeight, targetX, targetY, cutWidth, cutHeight);\n }\n drawImg();\n drawImg(cutWidth + realGapX, -cutHeight / 2 - realGapY / 2);\n drawImg(cutWidth + realGapX, +cutHeight / 2 + realGapY / 2);\n return [fCanvas.toDataURL(), filledWidth / ratio, filledHeight / ratio];\n }\n return getClips;\n}","/** converting camel-cased strings to be lowercase and link it with Separato */\nexport function toLowercaseSeparator(key) {\n return key.replace(/([A-Z])/g, '-$1').toLowerCase();\n}\nexport function getStyleStr(style) {\n return Object.keys(style).map(key => `${toLowercaseSeparator(key)}: ${style[key]};`).join(' ');\n}\n/** Returns the ratio of the device's physical pixel resolution to the css pixel resolution */\nexport function getPixelRatio() {\n return window.devicePixelRatio || 1;\n}\n/** Whether to re-render the watermark */\nexport const reRendering = (mutation, watermarkElement) => {\n let flag = false;\n // Whether to delete the watermark node\n if (mutation.removedNodes.length) {\n flag = Array.from(mutation.removedNodes).some(node => node === watermarkElement);\n }\n // Whether the watermark dom property value has been modified\n if (mutation.type === 'attributes' && mutation.target === watermarkElement) {\n flag = true;\n }\n return flag;\n};","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport React, { useEffect, useRef } from 'react';\nimport MutateObserver from '@rc-component/mutate-observer';\nimport classNames from 'classnames';\nimport theme from '../theme';\nimport useClips, { FontGap } from './useClips';\nimport { getPixelRatio, getStyleStr, reRendering } from './utils';\nconst Watermark = props => {\n var _a, _b;\n const {\n /**\n * The antd content layer zIndex is basically below 10\n * https://github.com/ant-design/ant-design/blob/6192403b2ce517c017f9e58a32d58774921c10cd/components/style/themes/default.less#L335\n */\n zIndex = 9,\n rotate = -22,\n width,\n height,\n image,\n content,\n font = {},\n style,\n className,\n rootClassName,\n gap = [100, 100],\n offset,\n children\n } = props;\n const {\n token\n } = theme.useToken();\n const {\n color = token.colorFill,\n fontSize = token.fontSizeLG,\n fontWeight = 'normal',\n fontStyle = 'normal',\n fontFamily = 'sans-serif'\n } = font;\n const [gapX, gapY] = gap;\n const gapXCenter = gapX / 2;\n const gapYCenter = gapY / 2;\n const offsetLeft = (_a = offset === null || offset === void 0 ? void 0 : offset[0]) !== null && _a !== void 0 ? _a : gapXCenter;\n const offsetTop = (_b = offset === null || offset === void 0 ? void 0 : offset[1]) !== null && _b !== void 0 ? _b : gapYCenter;\n const getMarkStyle = () => {\n const markStyle = {\n zIndex,\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n backgroundRepeat: 'repeat'\n };\n /** Calculate the style of the offset */\n let positionLeft = offsetLeft - gapXCenter;\n let positionTop = offsetTop - gapYCenter;\n if (positionLeft > 0) {\n markStyle.left = `${positionLeft}px`;\n markStyle.width = `calc(100% - ${positionLeft}px)`;\n positionLeft = 0;\n }\n if (positionTop > 0) {\n markStyle.top = `${positionTop}px`;\n markStyle.height = `calc(100% - ${positionTop}px)`;\n positionTop = 0;\n }\n markStyle.backgroundPosition = `${positionLeft}px ${positionTop}px`;\n return markStyle;\n };\n const containerRef = useRef(null);\n const watermarkRef = useRef();\n const stopObservation = useRef(false);\n const destroyWatermark = () => {\n if (watermarkRef.current) {\n watermarkRef.current.remove();\n watermarkRef.current = undefined;\n }\n };\n const appendWatermark = (base64Url, markWidth) => {\n var _a;\n if (containerRef.current && watermarkRef.current) {\n stopObservation.current = true;\n watermarkRef.current.setAttribute('style', getStyleStr(Object.assign(Object.assign({}, getMarkStyle()), {\n backgroundImage: `url('${base64Url}')`,\n backgroundSize: `${Math.floor(markWidth)}px`\n })));\n (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.append(watermarkRef.current);\n // Delayed execution\n setTimeout(() => {\n stopObservation.current = false;\n });\n }\n };\n /**\n * Get the width and height of the watermark. The default values are as follows\n * Image: [120, 64]; Content: It's calculated by content;\n */\n const getMarkSize = ctx => {\n let defaultWidth = 120;\n let defaultHeight = 64;\n if (!image && ctx.measureText) {\n ctx.font = `${Number(fontSize)}px ${fontFamily}`;\n const contents = Array.isArray(content) ? content : [content];\n const sizes = contents.map(item => {\n const metrics = ctx.measureText(item);\n return [metrics.width, metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent];\n });\n defaultWidth = Math.ceil(Math.max.apply(Math, _toConsumableArray(sizes.map(size => size[0]))));\n defaultHeight = Math.ceil(Math.max.apply(Math, _toConsumableArray(sizes.map(size => size[1])))) * contents.length + (contents.length - 1) * FontGap;\n }\n return [width !== null && width !== void 0 ? width : defaultWidth, height !== null && height !== void 0 ? height : defaultHeight];\n };\n const getClips = useClips();\n const renderWatermark = () => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n if (ctx) {\n if (!watermarkRef.current) {\n watermarkRef.current = document.createElement('div');\n }\n const ratio = getPixelRatio();\n const [markWidth, markHeight] = getMarkSize(ctx);\n const drawCanvas = drawContent => {\n const [textClips, clipWidth] = getClips(drawContent || '', rotate, ratio, markWidth, markHeight, {\n color,\n fontSize,\n fontStyle,\n fontWeight,\n fontFamily\n }, gapX, gapY);\n appendWatermark(textClips, clipWidth);\n };\n if (image) {\n const img = new Image();\n img.onload = () => {\n drawCanvas(img);\n };\n img.onerror = () => {\n drawCanvas(content);\n };\n img.crossOrigin = 'anonymous';\n img.referrerPolicy = 'no-referrer';\n img.src = image;\n } else {\n drawCanvas(content);\n }\n }\n };\n const onMutate = mutations => {\n if (stopObservation.current) {\n return;\n }\n mutations.forEach(mutation => {\n if (reRendering(mutation, watermarkRef.current)) {\n destroyWatermark();\n renderWatermark();\n }\n });\n };\n useEffect(renderWatermark, [rotate, zIndex, width, height, image, content, color, fontSize, fontWeight, fontStyle, fontFamily, gapX, gapY, offsetLeft, offsetTop]);\n return /*#__PURE__*/React.createElement(MutateObserver, {\n onMutate: onMutate\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: classNames(className, rootClassName),\n style: Object.assign({\n position: 'relative'\n }, style)\n }, children));\n};\nif (process.env.NODE_ENV !== 'production') {\n Watermark.displayName = 'Watermark';\n}\nexport default Watermark;","import { genComponentStyleHook } from '../../theme/internal';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n iconCls,\n antCls,\n zIndexPopup,\n colorText,\n colorWarning,\n marginXXS,\n marginXS,\n fontSize,\n fontWeightStrong,\n colorTextHeading\n } = token;\n return {\n [componentCls]: {\n zIndex: zIndexPopup,\n [`&${antCls}-popover`]: {\n fontSize\n },\n [`${componentCls}-message`]: {\n marginBottom: marginXS,\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'start',\n [`> ${componentCls}-message-icon ${iconCls}`]: {\n color: colorWarning,\n fontSize,\n lineHeight: 1,\n marginInlineEnd: marginXS\n },\n [`${componentCls}-title`]: {\n fontWeight: fontWeightStrong,\n color: colorTextHeading,\n '&:only-child': {\n fontWeight: 'normal'\n }\n },\n [`${componentCls}-description`]: {\n marginTop: marginXXS,\n color: colorText\n }\n },\n [`${componentCls}-buttons`]: {\n textAlign: 'end',\n whiteSpace: 'nowrap',\n button: {\n marginInlineStart: marginXS\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Popconfirm', token => genBaseStyle(token), token => {\n const {\n zIndexPopupBase\n } = token;\n return {\n zIndexPopup: zIndexPopupBase + 60\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 ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport ActionButton from '../_util/ActionButton';\nimport { getRenderPropValue } from '../_util/getRenderPropValue';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nimport { ConfigContext } from '../config-provider';\nimport { useLocale } from '../locale';\nimport defaultLocale from '../locale/en_US';\nimport PopoverPurePanel from '../popover/PurePanel';\nimport useStyle from './style';\nexport const Overlay = props => {\n const {\n prefixCls,\n okButtonProps,\n cancelButtonProps,\n title,\n description,\n cancelText,\n okText,\n okType = 'primary',\n icon = /*#__PURE__*/React.createElement(ExclamationCircleFilled, null),\n showCancel = true,\n close,\n onConfirm,\n onCancel,\n onPopupClick\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const [contextLocale] = useLocale('Popconfirm', defaultLocale.Popconfirm);\n const theTitle = getRenderPropValue(title);\n const theDescription = getRenderPropValue(description);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inner-content`,\n onClick: onPopupClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-message`\n }, icon && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-message-icon`\n }, icon), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-message-text`\n }, theTitle && /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-title`)\n }, theTitle), theDescription && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-description`\n }, theDescription))), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-buttons`\n }, showCancel && /*#__PURE__*/React.createElement(Button, Object.assign({\n onClick: onCancel,\n size: \"small\"\n }, cancelButtonProps), cancelText !== null && cancelText !== void 0 ? cancelText : contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.cancelText), /*#__PURE__*/React.createElement(ActionButton, {\n buttonProps: Object.assign(Object.assign({\n size: 'small'\n }, convertLegacyProps(okType)), okButtonProps),\n actionFn: onConfirm,\n close: close,\n prefixCls: getPrefixCls('btn'),\n quitOnNullishReturnValue: true,\n emitEvent: true\n }, okText !== null && okText !== void 0 ? okText : contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.okText)));\n};\nconst PurePanel = props => {\n const {\n prefixCls: customizePrefixCls,\n placement,\n className,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"placement\", \"className\", \"style\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('popconfirm', customizePrefixCls);\n const [wrapSSR] = useStyle(prefixCls);\n return wrapSSR( /*#__PURE__*/React.createElement(PopoverPurePanel, {\n placement: placement,\n className: classNames(prefixCls, className),\n style: style,\n content: /*#__PURE__*/React.createElement(Overlay, Object.assign({\n prefixCls: prefixCls\n }, restProps))\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 ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { cloneElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport Popover from '../popover';\nimport PurePanel, { Overlay } from './PurePanel';\nimport usePopconfirmStyle from './style';\nconst Popconfirm = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n placement = 'top',\n trigger = 'click',\n okType = 'primary',\n icon = /*#__PURE__*/React.createElement(ExclamationCircleFilled, null),\n children,\n overlayClassName,\n onOpenChange,\n onVisibleChange\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"placement\", \"trigger\", \"okType\", \"icon\", \"children\", \"overlayClassName\", \"onOpenChange\", \"onVisibleChange\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const [open, setOpen] = useMergedState(false, {\n value: props.open,\n defaultValue: props.defaultOpen\n });\n // const isDestroyed = useDestroyed();\n const settingOpen = (value, e) => {\n setOpen(value, true);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(value);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(value, e);\n };\n const close = e => {\n settingOpen(false, e);\n };\n const onConfirm = e => {\n var _a;\n return (_a = props.onConfirm) === null || _a === void 0 ? void 0 : _a.call(this, e);\n };\n const onCancel = e => {\n var _a;\n settingOpen(false, e);\n (_a = props.onCancel) === null || _a === void 0 ? void 0 : _a.call(this, e);\n };\n const onKeyDown = e => {\n if (e.keyCode === KeyCode.ESC && open) {\n settingOpen(false, e);\n }\n };\n const onInternalOpenChange = value => {\n const {\n disabled = false\n } = props;\n if (disabled) {\n return;\n }\n settingOpen(value);\n };\n const prefixCls = getPrefixCls('popconfirm', customizePrefixCls);\n const overlayClassNames = classNames(prefixCls, overlayClassName);\n const [wrapSSR] = usePopconfirmStyle(prefixCls);\n return wrapSSR( /*#__PURE__*/React.createElement(Popover, Object.assign({}, omit(restProps, ['title']), {\n trigger: trigger,\n placement: placement,\n onOpenChange: onInternalOpenChange,\n open: open,\n ref: ref,\n overlayClassName: overlayClassNames,\n content: /*#__PURE__*/React.createElement(Overlay, Object.assign({\n okType: okType,\n icon: icon\n }, props, {\n prefixCls: prefixCls,\n close: close,\n onConfirm: onConfirm,\n onCancel: onCancel\n })),\n \"data-popover-inject\": true\n }), cloneElement(children, {\n onKeyDown: e => {\n var _a, _b;\n if ( /*#__PURE__*/React.isValidElement(children)) {\n (_b = children === null || children === void 0 ? void 0 : (_a = children.props).onKeyDown) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n }\n onKeyDown(e);\n }\n })));\n});\n// We don't care debug panel\n/* istanbul ignore next */\nPopconfirm._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nif (process.env.NODE_ENV !== 'production') {\n Popconfirm.displayName = 'Popconfirm';\n}\nexport default Popconfirm;","// This icon file is generated automatically.\nvar StarFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0046.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z\" } }] }, \"name\": \"star\", \"theme\": \"filled\" };\nexport default StarFilled;\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 StarFilledSvg from \"@ant-design/icons-svg/es/asn/StarFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar StarFilled = function StarFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: StarFilledSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n StarFilled.displayName = 'StarFilled';\n}\nexport default /*#__PURE__*/React.forwardRef(StarFilled);","import React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport classNames from 'classnames';\nfunction Star(props, ref) {\n var disabled = props.disabled,\n prefixCls = props.prefixCls,\n character = props.character,\n characterRender = props.characterRender,\n index = props.index,\n count = props.count,\n value = props.value,\n allowHalf = props.allowHalf,\n focused = props.focused,\n onHover = props.onHover,\n onClick = props.onClick;\n // =========================== Events ===========================\n var onInternalHover = function onInternalHover(e) {\n onHover(e, index);\n };\n var onInternalClick = function onInternalClick(e) {\n onClick(e, index);\n };\n var onInternalKeyDown = function onInternalKeyDown(e) {\n if (e.keyCode === KeyCode.ENTER) {\n onClick(e, index);\n }\n };\n // =========================== Render ===========================\n // >>>>> ClassName\n var starValue = index + 1;\n var classNameList = new Set([prefixCls]);\n // TODO: Current we just refactor from CC to FC. This logic seems can be optimized.\n if (value === 0 && index === 0 && focused) {\n classNameList.add(\"\".concat(prefixCls, \"-focused\"));\n } else if (allowHalf && value + 0.5 >= starValue && value < starValue) {\n classNameList.add(\"\".concat(prefixCls, \"-half\"));\n classNameList.add(\"\".concat(prefixCls, \"-active\"));\n if (focused) {\n classNameList.add(\"\".concat(prefixCls, \"-focused\"));\n }\n } else {\n if (starValue <= value) {\n classNameList.add(\"\".concat(prefixCls, \"-full\"));\n } else {\n classNameList.add(\"\".concat(prefixCls, \"-zero\"));\n }\n if (starValue === value && focused) {\n classNameList.add(\"\".concat(prefixCls, \"-focused\"));\n }\n }\n // >>>>> Node\n var characterNode = typeof character === 'function' ? character(props) : character;\n var start = /*#__PURE__*/React.createElement(\"li\", {\n className: classNames(Array.from(classNameList)),\n ref: ref\n }, /*#__PURE__*/React.createElement(\"div\", {\n onClick: disabled ? null : onInternalClick,\n onKeyDown: disabled ? null : onInternalKeyDown,\n onMouseMove: disabled ? null : onInternalHover,\n role: \"radio\",\n \"aria-checked\": value > index ? 'true' : 'false',\n \"aria-posinset\": index + 1,\n \"aria-setsize\": count,\n tabIndex: disabled ? -1 : 0\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-first\")\n }, characterNode), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-second\")\n }, characterNode)));\n if (characterRender) {\n start = characterRender(start, props);\n }\n return start;\n}\nexport default /*#__PURE__*/React.forwardRef(Star);","import * as React from 'react';\nexport default function useRefs() {\n var nodeRef = React.useRef({});\n function getRef(index) {\n return nodeRef.current[index];\n }\n function setRef(index) {\n return function (node) {\n nodeRef.current[index] = node;\n };\n }\n return [getRef, setRef];\n}","function getScroll(w) {\n var ret = w.pageXOffset;\n var method = 'scrollLeft';\n if (typeof ret !== 'number') {\n var d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\nfunction getClientPosition(elem) {\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement;\n var box = elem.getBoundingClientRect();\n x = box.left;\n y = box.top;\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\nexport function getOffsetLeft(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n // Only IE use `parentWindow`\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScroll(w);\n return pos.left;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"defaultValue\", \"value\", \"count\", \"allowHalf\", \"allowClear\", \"character\", \"characterRender\", \"disabled\", \"direction\", \"tabIndex\", \"autoFocus\", \"onHoverChange\", \"onChange\", \"onFocus\", \"onBlur\", \"onKeyDown\", \"onMouseLeave\"];\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport React from 'react';\nimport Star from './Star';\nimport useRefs from './useRefs';\nimport { getOffsetLeft } from './util';\nfunction Rate(props, ref) {\n var _classNames;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-rate' : _props$prefixCls,\n className = props.className,\n defaultValue = props.defaultValue,\n propValue = props.value,\n _props$count = props.count,\n count = _props$count === void 0 ? 5 : _props$count,\n _props$allowHalf = props.allowHalf,\n allowHalf = _props$allowHalf === void 0 ? false : _props$allowHalf,\n _props$allowClear = props.allowClear,\n allowClear = _props$allowClear === void 0 ? true : _props$allowClear,\n _props$character = props.character,\n character = _props$character === void 0 ? '★' : _props$character,\n characterRender = props.characterRender,\n disabled = props.disabled,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'ltr' : _props$direction,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n autoFocus = props.autoFocus,\n onHoverChange = props.onHoverChange,\n onChange = props.onChange,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onKeyDown = props.onKeyDown,\n onMouseLeave = props.onMouseLeave,\n restProps = _objectWithoutProperties(props, _excluded);\n var _useRefs = useRefs(),\n _useRefs2 = _slicedToArray(_useRefs, 2),\n getStarRef = _useRefs2[0],\n setStarRef = _useRefs2[1];\n var rateRef = React.useRef(null);\n // ============================ Ref =============================\n var triggerFocus = function triggerFocus() {\n if (!disabled) {\n var _rateRef$current;\n (_rateRef$current = rateRef.current) === null || _rateRef$current === void 0 ? void 0 : _rateRef$current.focus();\n }\n };\n React.useImperativeHandle(ref, function () {\n return {\n focus: triggerFocus,\n blur: function blur() {\n if (!disabled) {\n var _rateRef$current2;\n (_rateRef$current2 = rateRef.current) === null || _rateRef$current2 === void 0 ? void 0 : _rateRef$current2.blur();\n }\n }\n };\n });\n // =========================== Value ============================\n var _useMergedState = useMergedState(defaultValue || 0, {\n value: propValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var _useMergedState3 = useMergedState(null),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n cleanedValue = _useMergedState4[0],\n setCleanedValue = _useMergedState4[1];\n var getStarValue = function getStarValue(index, x) {\n var reverse = direction === 'rtl';\n var starValue = index + 1;\n if (allowHalf) {\n var starEle = getStarRef(index);\n var leftDis = getOffsetLeft(starEle);\n var width = starEle.clientWidth;\n if (reverse && x - leftDis > width / 2) {\n starValue -= 0.5;\n } else if (!reverse && x - leftDis < width / 2) {\n starValue -= 0.5;\n }\n }\n return starValue;\n };\n // >>>>> Change\n var changeValue = function changeValue(nextValue) {\n setValue(nextValue);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue);\n };\n // =========================== Focus ============================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n focused = _React$useState2[0],\n setFocused = _React$useState2[1];\n var onInternalFocus = function onInternalFocus() {\n setFocused(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus();\n };\n var onInternalBlur = function onInternalBlur() {\n setFocused(false);\n onBlur === null || onBlur === void 0 ? void 0 : onBlur();\n };\n // =========================== Hover ============================\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n hoverValue = _React$useState4[0],\n setHoverValue = _React$useState4[1];\n var onHover = function onHover(event, index) {\n var nextHoverValue = getStarValue(index, event.pageX);\n if (nextHoverValue !== cleanedValue) {\n setHoverValue(nextHoverValue);\n setCleanedValue(null);\n }\n onHoverChange === null || onHoverChange === void 0 ? void 0 : onHoverChange(nextHoverValue);\n };\n var onMouseLeaveCallback = function onMouseLeaveCallback(event) {\n if (!disabled) {\n setHoverValue(null);\n setCleanedValue(null);\n onHoverChange === null || onHoverChange === void 0 ? void 0 : onHoverChange(undefined);\n }\n if (event) {\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(event);\n }\n };\n // =========================== Click ============================\n var onClick = function onClick(event, index) {\n var newValue = getStarValue(index, event.pageX);\n var isReset = false;\n if (allowClear) {\n isReset = newValue === value;\n }\n onMouseLeaveCallback();\n changeValue(isReset ? 0 : newValue);\n setCleanedValue(isReset ? newValue : null);\n };\n var onInternalKeyDown = function onInternalKeyDown(event) {\n var keyCode = event.keyCode;\n var reverse = direction === 'rtl';\n var nextValue = value;\n if (keyCode === KeyCode.RIGHT && nextValue < count && !reverse) {\n if (allowHalf) {\n nextValue += 0.5;\n } else {\n nextValue += 1;\n }\n changeValue(nextValue);\n event.preventDefault();\n } else if (keyCode === KeyCode.LEFT && nextValue > 0 && !reverse) {\n if (allowHalf) {\n nextValue -= 0.5;\n } else {\n nextValue -= 1;\n }\n changeValue(nextValue);\n event.preventDefault();\n } else if (keyCode === KeyCode.RIGHT && nextValue > 0 && reverse) {\n if (allowHalf) {\n nextValue -= 0.5;\n } else {\n nextValue -= 1;\n }\n changeValue(nextValue);\n event.preventDefault();\n } else if (keyCode === KeyCode.LEFT && nextValue < count && reverse) {\n if (allowHalf) {\n nextValue += 0.5;\n } else {\n nextValue += 1;\n }\n changeValue(nextValue);\n event.preventDefault();\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n };\n // =========================== Effect ===========================\n React.useEffect(function () {\n if (autoFocus && !disabled) {\n triggerFocus();\n }\n }, []);\n // =========================== Render ===========================\n // >>> Star\n var starNodes = new Array(count).fill(0).map(function (item, index) {\n return /*#__PURE__*/React.createElement(Star, {\n ref: setStarRef(index),\n index: index,\n count: count,\n disabled: disabled,\n prefixCls: \"\".concat(prefixCls, \"-star\"),\n allowHalf: allowHalf,\n value: hoverValue === null ? value : hoverValue,\n onClick: onClick,\n onHover: onHover,\n key: item || index,\n character: character,\n characterRender: characterRender,\n focused: focused\n });\n });\n var classString = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames));\n // >>> Node\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classString,\n onMouseLeave: onMouseLeaveCallback,\n tabIndex: disabled ? -1 : tabIndex,\n onFocus: disabled ? null : onInternalFocus,\n onBlur: disabled ? null : onInternalBlur,\n onKeyDown: disabled ? null : onInternalKeyDown,\n ref: rateRef,\n role: \"radiogroup\"\n }, pickAttrs(restProps, {\n aria: true,\n data: true,\n attr: true\n })), starNodes);\n}\nexport default /*#__PURE__*/React.forwardRef(Rate);","import Rate from './Rate';\nexport default Rate;","import { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genRateStarStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-star`]: {\n position: 'relative',\n display: 'inline-block',\n color: 'inherit',\n cursor: 'pointer',\n '&:not(:last-child)': {\n marginInlineEnd: token.marginXS\n },\n '> div': {\n transition: `all ${token.motionDurationMid}, outline 0s`,\n '&:hover': {\n transform: token.starHoverScale\n },\n '&:focus': {\n outline: 0\n },\n '&:focus-visible': {\n outline: `${token.lineWidth}px dashed ${token.starColor}`,\n transform: token.starHoverScale\n }\n },\n '&-first, &-second': {\n color: token.starBg,\n transition: `all ${token.motionDurationMid}`,\n userSelect: 'none',\n [token.iconCls]: {\n verticalAlign: 'middle'\n }\n },\n '&-first': {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n width: '50%',\n height: '100%',\n overflow: 'hidden',\n opacity: 0\n },\n [`&-half ${componentCls}-star-first, &-half ${componentCls}-star-second`]: {\n opacity: 1\n },\n [`&-half ${componentCls}-star-first, &-full ${componentCls}-star-second`]: {\n color: 'inherit'\n }\n }\n };\n};\nconst genRateRtlStyle = token => ({\n [`&-rtl${token.componentCls}`]: {\n direction: 'rtl'\n }\n});\nconst genRateStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n margin: 0,\n padding: 0,\n color: token.starColor,\n fontSize: token.starSize,\n lineHeight: 'unset',\n listStyle: 'none',\n outline: 'none',\n // disable styles\n [`&-disabled${componentCls} ${componentCls}-star`]: {\n cursor: 'default',\n '> div:hover': {\n transform: 'scale(1)'\n }\n }\n }), genRateStarStyle(token)), {\n // text styles\n [`+ ${componentCls}-text`]: {\n display: 'inline-block',\n marginInlineStart: token.marginXS,\n fontSize: token.fontSize\n }\n }), genRateRtlStyle(token))\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Rate', token => {\n const rateToken = mergeToken(token, {});\n return [genRateStyle(rateToken)];\n}, token => ({\n starColor: token.yellow6,\n starSize: token.controlHeightLG * 0.5,\n starHoverScale: 'scale(1.1)',\n starBg: token.colorFillContent\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 StarFilled from \"@ant-design/icons/es/icons/StarFilled\";\nimport classNames from 'classnames';\nimport RcRate from 'rc-rate';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Tooltip from '../tooltip';\nimport useStyle from './style';\nconst Rate = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls,\n className,\n rootClassName,\n style,\n tooltips,\n character = /*#__PURE__*/React.createElement(StarFilled, null)\n } = props,\n rest = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"style\", \"tooltips\", \"character\"]);\n const characterRender = (node, _ref) => {\n let {\n index\n } = _ref;\n if (!tooltips) {\n return node;\n }\n return /*#__PURE__*/React.createElement(Tooltip, {\n title: tooltips[index]\n }, node);\n };\n const {\n getPrefixCls,\n direction,\n rate\n } = React.useContext(ConfigContext);\n const ratePrefixCls = getPrefixCls('rate', prefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(ratePrefixCls);\n const mergedStyle = Object.assign(Object.assign({}, rate === null || rate === void 0 ? void 0 : rate.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(RcRate, Object.assign({\n ref: ref,\n character: character,\n characterRender: characterRender\n }, rest, {\n className: classNames(className, rootClassName, hashId, rate === null || rate === void 0 ? void 0 : rate.className),\n style: mergedStyle,\n prefixCls: ratePrefixCls,\n direction: direction\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Rate.displayName = 'Rate';\n}\nexport default Rate;","'use client';\n\nimport { Row } from '../grid';\nexport default Row;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nvar calcThumbStyle = function calcThumbStyle(targetElement) {\n return targetElement ? {\n left: targetElement.offsetLeft,\n right: targetElement.parentElement.clientWidth - targetElement.clientWidth - targetElement.offsetLeft,\n width: targetElement.clientWidth\n } : null;\n};\nvar toPX = function toPX(value) {\n return value !== undefined ? \"\".concat(value, \"px\") : undefined;\n};\nexport default function MotionThumb(props) {\n var prefixCls = props.prefixCls,\n containerRef = props.containerRef,\n value = props.value,\n getValueIndex = props.getValueIndex,\n motionName = props.motionName,\n onMotionStart = props.onMotionStart,\n onMotionEnd = props.onMotionEnd,\n direction = props.direction;\n var thumbRef = React.useRef(null);\n var _React$useState = React.useState(value),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevValue = _React$useState2[0],\n setPrevValue = _React$useState2[1];\n\n // =========================== Effect ===========================\n var findValueElement = function findValueElement(val) {\n var _containerRef$current;\n var index = getValueIndex(val);\n var ele = (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.querySelectorAll(\".\".concat(prefixCls, \"-item\"))[index];\n return (ele === null || ele === void 0 ? void 0 : ele.offsetParent) && ele;\n };\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n prevStyle = _React$useState4[0],\n setPrevStyle = _React$useState4[1];\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n nextStyle = _React$useState6[0],\n setNextStyle = _React$useState6[1];\n useLayoutEffect(function () {\n if (prevValue !== value) {\n var prev = findValueElement(prevValue);\n var next = findValueElement(value);\n var calcPrevStyle = calcThumbStyle(prev);\n var calcNextStyle = calcThumbStyle(next);\n setPrevValue(value);\n setPrevStyle(calcPrevStyle);\n setNextStyle(calcNextStyle);\n if (prev && next) {\n onMotionStart();\n } else {\n onMotionEnd();\n }\n }\n }, [value]);\n var thumbStart = React.useMemo(function () {\n return direction === 'rtl' ? toPX(-(prevStyle === null || prevStyle === void 0 ? void 0 : prevStyle.right)) : toPX(prevStyle === null || prevStyle === void 0 ? void 0 : prevStyle.left);\n }, [direction, prevStyle]);\n var thumbActive = React.useMemo(function () {\n return direction === 'rtl' ? toPX(-(nextStyle === null || nextStyle === void 0 ? void 0 : nextStyle.right)) : toPX(nextStyle === null || nextStyle === void 0 ? void 0 : nextStyle.left);\n }, [direction, nextStyle]);\n\n // =========================== Motion ===========================\n var onAppearStart = function onAppearStart() {\n return {\n transform: \"translateX(var(--thumb-start-left))\",\n width: \"var(--thumb-start-width)\"\n };\n };\n var onAppearActive = function onAppearActive() {\n return {\n transform: \"translateX(var(--thumb-active-left))\",\n width: \"var(--thumb-active-width)\"\n };\n };\n var onVisibleChanged = function onVisibleChanged() {\n setPrevStyle(null);\n setNextStyle(null);\n onMotionEnd();\n };\n\n // =========================== Render ===========================\n // No need motion when nothing exist in queue\n if (!prevStyle || !nextStyle) {\n return null;\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: true,\n motionName: motionName,\n motionAppear: true,\n onAppearStart: onAppearStart,\n onAppearActive: onAppearActive,\n onVisibleChanged: onVisibleChanged\n }, function (_ref, ref) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedStyle = _objectSpread(_objectSpread({}, motionStyle), {}, {\n '--thumb-start-left': thumbStart,\n '--thumb-start-width': toPX(prevStyle === null || prevStyle === void 0 ? void 0 : prevStyle.width),\n '--thumb-active-left': thumbActive,\n '--thumb-active-width': toPX(nextStyle === null || nextStyle === void 0 ? void 0 : nextStyle.width)\n });\n\n // It's little ugly which should be refactor when @umi/test update to latest jsdom\n var motionProps = {\n ref: composeRef(thumbRef, ref),\n style: mergedStyle,\n className: classNames(\"\".concat(prefixCls, \"-thumb\"), motionClassName)\n };\n if (process.env.NODE_ENV === 'test') {\n motionProps['data-test-style'] = JSON.stringify(mergedStyle);\n }\n return /*#__PURE__*/React.createElement(\"div\", motionProps);\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"prefixCls\", \"direction\", \"options\", \"disabled\", \"defaultValue\", \"value\", \"onChange\", \"className\", \"motionName\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport omit from \"rc-util/es/omit\";\nimport MotionThumb from \"./MotionThumb\";\nfunction getValidTitle(option) {\n if (typeof option.title !== 'undefined') {\n return option.title;\n }\n\n // read `label` when title is `undefined`\n if (_typeof(option.label) !== 'object') {\n var _option$label;\n return (_option$label = option.label) === null || _option$label === void 0 ? void 0 : _option$label.toString();\n }\n}\nfunction normalizeOptions(options) {\n return options.map(function (option) {\n if (_typeof(option) === 'object' && option !== null) {\n var validTitle = getValidTitle(option);\n return _objectSpread(_objectSpread({}, option), {}, {\n title: validTitle\n });\n }\n return {\n label: option === null || option === void 0 ? void 0 : option.toString(),\n title: option === null || option === void 0 ? void 0 : option.toString(),\n value: option\n };\n });\n}\nvar InternalSegmentedOption = function InternalSegmentedOption(_ref) {\n var prefixCls = _ref.prefixCls,\n className = _ref.className,\n disabled = _ref.disabled,\n checked = _ref.checked,\n label = _ref.label,\n title = _ref.title,\n value = _ref.value,\n onChange = _ref.onChange;\n var handleChange = function handleChange(event) {\n if (disabled) {\n return;\n }\n onChange(event, value);\n };\n return /*#__PURE__*/React.createElement(\"label\", {\n className: classNames(className, _defineProperty({}, \"\".concat(prefixCls, \"-item-disabled\"), disabled))\n }, /*#__PURE__*/React.createElement(\"input\", {\n className: \"\".concat(prefixCls, \"-item-input\"),\n type: \"radio\",\n disabled: disabled,\n checked: checked,\n onChange: handleChange\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-label\"),\n title: title\n }, label));\n};\nvar Segmented = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _segmentedOptions$, _classNames2;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-segmented' : _props$prefixCls,\n direction = props.direction,\n options = props.options,\n disabled = props.disabled,\n defaultValue = props.defaultValue,\n value = props.value,\n onChange = props.onChange,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n _props$motionName = props.motionName,\n motionName = _props$motionName === void 0 ? 'thumb-motion' : _props$motionName,\n restProps = _objectWithoutProperties(props, _excluded);\n var containerRef = React.useRef(null);\n var mergedRef = React.useMemo(function () {\n return composeRef(containerRef, ref);\n }, [containerRef, ref]);\n var segmentedOptions = React.useMemo(function () {\n return normalizeOptions(options);\n }, [options]);\n\n // Note: We should not auto switch value when value not exist in options\n // which may break single source of truth.\n var _useMergedState = useMergedState((_segmentedOptions$ = segmentedOptions[0]) === null || _segmentedOptions$ === void 0 ? void 0 : _segmentedOptions$.value, {\n value: value,\n defaultValue: defaultValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n rawValue = _useMergedState2[0],\n setRawValue = _useMergedState2[1];\n\n // ======================= Change ========================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n thumbShow = _React$useState2[0],\n setThumbShow = _React$useState2[1];\n var handleChange = function handleChange(event, val) {\n if (disabled) {\n return;\n }\n setRawValue(val);\n onChange === null || onChange === void 0 ? void 0 : onChange(val);\n };\n var divProps = omit(restProps, ['children']);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n className: classNames(prefixCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames2), className),\n ref: mergedRef\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-group\")\n }, /*#__PURE__*/React.createElement(MotionThumb, {\n prefixCls: prefixCls,\n value: rawValue,\n containerRef: containerRef,\n motionName: \"\".concat(prefixCls, \"-\").concat(motionName),\n direction: direction,\n getValueIndex: function getValueIndex(val) {\n return segmentedOptions.findIndex(function (n) {\n return n.value === val;\n });\n },\n onMotionStart: function onMotionStart() {\n setThumbShow(true);\n },\n onMotionEnd: function onMotionEnd() {\n setThumbShow(false);\n }\n }), segmentedOptions.map(function (segmentedOption) {\n return /*#__PURE__*/React.createElement(InternalSegmentedOption, _extends({}, segmentedOption, {\n key: segmentedOption.value,\n prefixCls: prefixCls,\n className: classNames(segmentedOption.className, \"\".concat(prefixCls, \"-item\"), _defineProperty({}, \"\".concat(prefixCls, \"-item-selected\"), segmentedOption.value === rawValue && !thumbShow)),\n checked: segmentedOption.value === rawValue,\n onChange: handleChange,\n disabled: !!disabled || !!segmentedOption.disabled\n }));\n })));\n});\nSegmented.displayName = 'Segmented';\nSegmented.defaultProps = {\n options: []\n};\nexport default Segmented;","import { resetComponent, textEllipsis } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Mixins ==============================\nfunction getItemDisabledStyle(cls, token) {\n return {\n [`${cls}, ${cls}:hover, ${cls}:focus`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n };\n}\nfunction getItemSelectedStyle(token) {\n return {\n backgroundColor: token.itemSelectedBg,\n boxShadow: token.boxShadowTertiary\n };\n}\nconst segmentedTextEllipsisCss = Object.assign({\n overflow: 'hidden'\n}, textEllipsis);\n// ============================== Styles ==============================\nconst genSegmentedStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n padding: token.segmentedPadding,\n color: token.itemColor,\n backgroundColor: token.segmentedBgColor,\n borderRadius: token.borderRadius,\n transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n [`${componentCls}-group`]: {\n position: 'relative',\n display: 'flex',\n alignItems: 'stretch',\n justifyItems: 'flex-start',\n width: '100%'\n },\n // RTL styles\n [`&${componentCls}-rtl`]: {\n direction: 'rtl'\n },\n // block styles\n [`&${componentCls}-block`]: {\n display: 'flex'\n },\n [`&${componentCls}-block ${componentCls}-item`]: {\n flex: 1,\n minWidth: 0\n },\n // item styles\n [`${componentCls}-item`]: {\n position: 'relative',\n textAlign: 'center',\n cursor: 'pointer',\n transition: `color ${token.motionDurationMid} ${token.motionEaseInOut}`,\n borderRadius: token.borderRadiusSM,\n '&-selected': Object.assign(Object.assign({}, getItemSelectedStyle(token)), {\n color: token.itemHoverColor\n }),\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n insetInlineStart: 0,\n borderRadius: 'inherit',\n transition: `background-color ${token.motionDurationMid}`,\n // This is mandatory to make it not clickable or hoverable\n // Ref: https://github.com/ant-design/ant-design/issues/40888\n pointerEvents: 'none'\n },\n [`&:hover:not(${componentCls}-item-selected):not(${componentCls}-item-disabled)`]: {\n color: token.itemHoverColor,\n '&::after': {\n backgroundColor: token.itemHoverBg\n }\n },\n [`&:active:not(${componentCls}-item-selected):not(${componentCls}-item-disabled)`]: {\n color: token.itemHoverColor,\n '&::after': {\n backgroundColor: token.itemActiveBg\n }\n },\n '&-label': Object.assign({\n minHeight: token.controlHeight - token.segmentedPadding * 2,\n lineHeight: `${token.controlHeight - token.segmentedPadding * 2}px`,\n padding: `0 ${token.segmentedPaddingHorizontal}px`\n }, segmentedTextEllipsisCss),\n // syntactic sugar to add `icon` for Segmented Item\n '&-icon + *': {\n marginInlineStart: token.marginSM / 2\n },\n '&-input': {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n width: 0,\n height: 0,\n opacity: 0,\n pointerEvents: 'none'\n }\n },\n // thumb styles\n [`${componentCls}-thumb`]: Object.assign(Object.assign({}, getItemSelectedStyle(token)), {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n width: 0,\n height: '100%',\n padding: `${token.paddingXXS}px 0`,\n borderRadius: token.borderRadiusSM,\n [`& ~ ${componentCls}-item:not(${componentCls}-item-selected):not(${componentCls}-item-disabled)::after`]: {\n backgroundColor: 'transparent'\n }\n }),\n // size styles\n [`&${componentCls}-lg`]: {\n borderRadius: token.borderRadiusLG,\n [`${componentCls}-item-label`]: {\n minHeight: token.controlHeightLG - token.segmentedPadding * 2,\n lineHeight: `${token.controlHeightLG - token.segmentedPadding * 2}px`,\n padding: `0 ${token.segmentedPaddingHorizontal}px`,\n fontSize: token.fontSizeLG\n },\n [`${componentCls}-item, ${componentCls}-thumb`]: {\n borderRadius: token.borderRadius\n }\n },\n [`&${componentCls}-sm`]: {\n borderRadius: token.borderRadiusSM,\n [`${componentCls}-item-label`]: {\n minHeight: token.controlHeightSM - token.segmentedPadding * 2,\n lineHeight: `${token.controlHeightSM - token.segmentedPadding * 2}px`,\n padding: `0 ${token.segmentedPaddingHorizontalSM}px`\n },\n [`${componentCls}-item, ${componentCls}-thumb`]: {\n borderRadius: token.borderRadiusXS\n }\n }\n }), getItemDisabledStyle(`&-disabled ${componentCls}-item`, token)), getItemDisabledStyle(`${componentCls}-item-disabled`, token)), {\n // transition effect when `appear-active`\n [`${componentCls}-thumb-motion-appear-active`]: {\n transition: `transform ${token.motionDurationSlow} ${token.motionEaseInOut}, width ${token.motionDurationSlow} ${token.motionEaseInOut}`,\n willChange: 'transform, width'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Segmented', token => {\n const {\n lineWidth,\n lineWidthBold,\n colorBgLayout\n } = token;\n const segmentedToken = mergeToken(token, {\n segmentedPadding: lineWidthBold,\n segmentedBgColor: colorBgLayout,\n segmentedPaddingHorizontal: token.controlPaddingHorizontal - lineWidth,\n segmentedPaddingHorizontalSM: token.controlPaddingHorizontalSM - lineWidth\n });\n return [genSegmentedStyle(segmentedToken)];\n}, token => {\n const {\n colorTextLabel,\n colorText,\n colorFillSecondary,\n colorBgElevated,\n colorFill\n } = token;\n return {\n itemColor: colorTextLabel,\n itemHoverColor: colorText,\n itemHoverBg: colorFillSecondary,\n itemSelectedBg: colorBgElevated,\n itemActiveBg: colorFill\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 RcSegmented from 'rc-segmented';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport useStyle from './style';\nfunction isSegmentedLabeledOptionWithIcon(option) {\n return typeof option === 'object' && !!(option === null || option === void 0 ? void 0 : option.icon);\n}\nconst Segmented = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n block,\n options = [],\n size: customSize = 'middle',\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"block\", \"options\", \"size\", \"style\"]);\n const {\n getPrefixCls,\n direction,\n segmented\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('segmented', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n // ===================== Size =====================\n const mergedSize = useSize(customSize);\n // syntactic sugar to support `icon` for Segmented Item\n const extendedOptions = React.useMemo(() => options.map(option => {\n if (isSegmentedLabeledOptionWithIcon(option)) {\n const {\n icon,\n label\n } = option,\n restOption = __rest(option, [\"icon\", \"label\"]);\n return Object.assign(Object.assign({}, restOption), {\n label: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-item-icon`\n }, icon), label && /*#__PURE__*/React.createElement(\"span\", null, label))\n });\n }\n return option;\n }), [options, prefixCls]);\n const cls = classNames(className, rootClassName, segmented === null || segmented === void 0 ? void 0 : segmented.className, {\n [`${prefixCls}-block`]: block,\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large'\n }, hashId);\n const mergedStyle = Object.assign(Object.assign({}, segmented === null || segmented === void 0 ? void 0 : segmented.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(RcSegmented, Object.assign({}, restProps, {\n className: cls,\n style: mergedStyle,\n options: extendedOptions,\n ref: ref,\n prefixCls: prefixCls,\n direction: direction\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Segmented.displayName = 'Segmented';\n}\nexport default Segmented;","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 = [\"className\", \"prefixCls\", \"style\", \"active\", \"status\", \"iconPrefix\", \"icon\", \"wrapperStyle\", \"stepNumber\", \"disabled\", \"description\", \"title\", \"subTitle\", \"progressDot\", \"stepIcon\", \"tailContent\", \"icons\", \"stepIndex\", \"onStepClick\", \"onClick\", \"render\"];\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nfunction isString(str) {\n return typeof str === 'string';\n}\nfunction Step(props) {\n var _classNames2;\n var className = props.className,\n prefixCls = props.prefixCls,\n style = props.style,\n active = props.active,\n status = props.status,\n iconPrefix = props.iconPrefix,\n icon = props.icon,\n wrapperStyle = props.wrapperStyle,\n stepNumber = props.stepNumber,\n disabled = props.disabled,\n description = props.description,\n title = props.title,\n subTitle = props.subTitle,\n progressDot = props.progressDot,\n stepIcon = props.stepIcon,\n tailContent = props.tailContent,\n icons = props.icons,\n stepIndex = props.stepIndex,\n onStepClick = props.onStepClick,\n onClick = props.onClick,\n render = props.render,\n restProps = _objectWithoutProperties(props, _excluded);\n\n // ========================= Click ==========================\n var clickable = !!onStepClick && !disabled;\n var accessibilityProps = {};\n if (clickable) {\n accessibilityProps.role = 'button';\n accessibilityProps.tabIndex = 0;\n accessibilityProps.onClick = function (e) {\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n onStepClick(stepIndex);\n };\n accessibilityProps.onKeyDown = function (e) {\n var which = e.which;\n if (which === KeyCode.ENTER || which === KeyCode.SPACE) {\n onStepClick(stepIndex);\n }\n };\n }\n\n // ========================= Render =========================\n var renderIconNode = function renderIconNode() {\n var _classNames;\n var iconNode;\n var iconClassName = classNames(\"\".concat(prefixCls, \"-icon\"), \"\".concat(iconPrefix, \"icon\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-\").concat(icon), icon && isString(icon)), _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-check\"), !icon && status === 'finish' && (icons && !icons.finish || !icons)), _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-cross\"), !icon && status === 'error' && (icons && !icons.error || !icons)), _classNames));\n var iconDot = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon-dot\")\n });\n // `progressDot` enjoy the highest priority\n if (progressDot) {\n if (typeof progressDot === 'function') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, progressDot(iconDot, {\n index: stepNumber - 1,\n status: status,\n title: title,\n description: description\n }));\n } else {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, iconDot);\n }\n } else if (icon && !isString(icon)) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icon);\n } else if (icons && icons.finish && status === 'finish') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icons.finish);\n } else if (icons && icons.error && status === 'error') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icons.error);\n } else if (icon || status === 'finish' || status === 'error') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n } else {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, stepNumber);\n }\n if (stepIcon) {\n iconNode = stepIcon({\n index: stepNumber - 1,\n status: status,\n title: title,\n description: description,\n node: iconNode\n });\n }\n return iconNode;\n };\n var mergedStatus = status || 'wait';\n var classString = classNames(\"\".concat(prefixCls, \"-item\"), \"\".concat(prefixCls, \"-item-\").concat(mergedStatus), className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-custom\"), icon), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-active\"), active), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-disabled\"), disabled === true), _classNames2));\n var stepItemStyle = _objectSpread({}, style);\n var stepNode = /*#__PURE__*/React.createElement(\"div\", _extends({}, restProps, {\n className: classString,\n style: stepItemStyle\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n onClick: onClick\n }, accessibilityProps, {\n className: \"\".concat(prefixCls, \"-item-container\")\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-tail\")\n }, tailContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-icon\")\n }, renderIconNode()), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-content\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-title\")\n }, title, subTitle && /*#__PURE__*/React.createElement(\"div\", {\n title: typeof subTitle === 'string' ? subTitle : undefined,\n className: \"\".concat(prefixCls, \"-item-subtitle\")\n }, subTitle)), description && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-description\")\n }, description))));\n if (render) {\n stepNode = render(stepNode) || null;\n }\n return stepNode;\n}\nexport default Step;","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\", \"style\", \"className\", \"children\", \"direction\", \"type\", \"labelPlacement\", \"iconPrefix\", \"status\", \"size\", \"current\", \"progressDot\", \"stepIcon\", \"initial\", \"icons\", \"onChange\", \"itemRender\", \"items\"];\n/* eslint react/no-did-mount-set-state: 0, react/prop-types: 0 */\nimport classNames from 'classnames';\nimport React from 'react';\nimport Step from \"./Step\";\nfunction Steps(props) {\n var _classNames;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-steps' : _props$prefixCls,\n _props$style = props.style,\n style = _props$style === void 0 ? {} : _props$style,\n className = props.className,\n children = props.children,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'horizontal' : _props$direction,\n _props$type = props.type,\n type = _props$type === void 0 ? 'default' : _props$type,\n _props$labelPlacement = props.labelPlacement,\n labelPlacement = _props$labelPlacement === void 0 ? 'horizontal' : _props$labelPlacement,\n _props$iconPrefix = props.iconPrefix,\n iconPrefix = _props$iconPrefix === void 0 ? 'rc' : _props$iconPrefix,\n _props$status = props.status,\n status = _props$status === void 0 ? 'process' : _props$status,\n size = props.size,\n _props$current = props.current,\n current = _props$current === void 0 ? 0 : _props$current,\n _props$progressDot = props.progressDot,\n progressDot = _props$progressDot === void 0 ? false : _props$progressDot,\n stepIcon = props.stepIcon,\n _props$initial = props.initial,\n initial = _props$initial === void 0 ? 0 : _props$initial,\n icons = props.icons,\n onChange = props.onChange,\n itemRender = props.itemRender,\n _props$items = props.items,\n items = _props$items === void 0 ? [] : _props$items,\n restProps = _objectWithoutProperties(props, _excluded);\n var isNav = type === 'navigation';\n var isInline = type === 'inline';\n\n // inline type requires fixed progressDot direction size.\n var mergedProgressDot = isInline || progressDot;\n var mergedDirection = isInline ? 'horizontal' : direction;\n var mergedSize = isInline ? undefined : size;\n var adjustedLabelPlacement = mergedProgressDot ? 'vertical' : labelPlacement;\n var classString = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(mergedDirection), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(mergedSize), mergedSize), _defineProperty(_classNames, \"\".concat(prefixCls, \"-label-\").concat(adjustedLabelPlacement), mergedDirection === 'horizontal'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot\"), !!mergedProgressDot), _defineProperty(_classNames, \"\".concat(prefixCls, \"-navigation\"), isNav), _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline\"), isInline), _classNames));\n var onStepClick = function onStepClick(next) {\n if (onChange && current !== next) {\n onChange(next);\n }\n };\n var renderStep = function renderStep(item, index) {\n var mergedItem = _objectSpread({}, item);\n var stepNumber = initial + index;\n // fix tail color\n if (status === 'error' && index === current - 1) {\n mergedItem.className = \"\".concat(prefixCls, \"-next-error\");\n }\n if (!mergedItem.status) {\n if (stepNumber === current) {\n mergedItem.status = status;\n } else if (stepNumber < current) {\n mergedItem.status = 'finish';\n } else {\n mergedItem.status = 'wait';\n }\n }\n if (isInline) {\n mergedItem.icon = undefined;\n mergedItem.subTitle = undefined;\n }\n if (!mergedItem.render && itemRender) {\n mergedItem.render = function (stepItem) {\n return itemRender(mergedItem, stepItem);\n };\n }\n return /*#__PURE__*/React.createElement(Step, _extends({}, mergedItem, {\n active: stepNumber === current,\n stepNumber: stepNumber + 1,\n stepIndex: stepNumber,\n key: stepNumber,\n prefixCls: prefixCls,\n iconPrefix: iconPrefix,\n wrapperStyle: style,\n progressDot: mergedProgressDot,\n stepIcon: stepIcon,\n icons: icons,\n onStepClick: onChange && onStepClick\n }));\n };\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classString,\n style: style\n }, restProps), items.filter(function (item) {\n return item;\n }).map(renderStep));\n}\nSteps.Step = Step;\nexport default Steps;","import Steps from \"./Steps\";\nimport Step from \"./Step\";\nexport { Step };\nexport default Steps;","const genStepsCustomIconStyle = token => {\n const {\n componentCls,\n customIconTop,\n customIconSize,\n customIconFontSize\n } = token;\n return {\n [`${componentCls}-item-custom`]: {\n [`> ${componentCls}-item-container > ${componentCls}-item-icon`]: {\n height: 'auto',\n background: 'none',\n border: 0,\n [`> ${componentCls}-icon`]: {\n top: customIconTop,\n width: customIconSize,\n height: customIconSize,\n fontSize: customIconFontSize,\n lineHeight: `${customIconFontSize}px`\n }\n }\n },\n // Only adjust horizontal customize icon width\n [`&:not(${componentCls}-vertical)`]: {\n [`${componentCls}-item-custom`]: {\n [`${componentCls}-item-icon`]: {\n width: 'auto',\n background: 'none'\n }\n }\n }\n };\n};\nexport default genStepsCustomIconStyle;","const genStepsInlineStyle = token => {\n const {\n componentCls,\n inlineDotSize,\n inlineTitleColor,\n inlineTailColor\n } = token;\n const containerPaddingTop = token.paddingXS + token.lineWidth;\n const titleStyle = {\n [`${componentCls}-item-container ${componentCls}-item-content ${componentCls}-item-title`]: {\n color: inlineTitleColor\n }\n };\n return {\n [`&${componentCls}-inline`]: {\n width: 'auto',\n display: 'inline-flex',\n [`${componentCls}-item`]: {\n flex: 'none',\n '&-container': {\n padding: `${containerPaddingTop}px ${token.paddingXXS}px 0`,\n margin: `0 ${token.marginXXS / 2}px`,\n borderRadius: token.borderRadiusSM,\n cursor: 'pointer',\n transition: `background-color ${token.motionDurationMid}`,\n '&:hover': {\n background: token.controlItemBgHover\n },\n [`&[role='button']:hover`]: {\n opacity: 1\n }\n },\n '&-icon': {\n width: inlineDotSize,\n height: inlineDotSize,\n marginInlineStart: `calc(50% - ${inlineDotSize / 2}px)`,\n [`> ${componentCls}-icon`]: {\n top: 0\n },\n [`${componentCls}-icon-dot`]: {\n borderRadius: token.fontSizeSM / 4\n }\n },\n '&-content': {\n width: 'auto',\n marginTop: token.marginXS - token.lineWidth\n },\n '&-title': {\n color: inlineTitleColor,\n fontSize: token.fontSizeSM,\n lineHeight: token.lineHeightSM,\n fontWeight: 'normal',\n marginBottom: token.marginXXS / 2\n },\n '&-description': {\n display: 'none'\n },\n '&-tail': {\n marginInlineStart: 0,\n top: containerPaddingTop + inlineDotSize / 2,\n transform: `translateY(-50%)`,\n '&:after': {\n width: '100%',\n height: token.lineWidth,\n borderRadius: 0,\n marginInlineStart: 0,\n background: inlineTailColor\n }\n },\n [`&:first-child ${componentCls}-item-tail`]: {\n width: '50%',\n marginInlineStart: '50%'\n },\n [`&:last-child ${componentCls}-item-tail`]: {\n display: 'block',\n width: '50%'\n },\n '&-wait': Object.assign({\n [`${componentCls}-item-icon ${componentCls}-icon ${componentCls}-icon-dot`]: {\n backgroundColor: token.colorBorderBg,\n border: `${token.lineWidth}px ${token.lineType} ${inlineTailColor}`\n }\n }, titleStyle),\n '&-finish': Object.assign({\n [`${componentCls}-item-tail::after`]: {\n backgroundColor: inlineTailColor\n },\n [`${componentCls}-item-icon ${componentCls}-icon ${componentCls}-icon-dot`]: {\n backgroundColor: inlineTailColor,\n border: `${token.lineWidth}px ${token.lineType} ${inlineTailColor}`\n }\n }, titleStyle),\n '&-error': titleStyle,\n '&-active, &-process': Object.assign({\n [`${componentCls}-item-icon`]: {\n width: inlineDotSize,\n height: inlineDotSize,\n marginInlineStart: `calc(50% - ${inlineDotSize / 2}px)`,\n top: 0\n }\n }, titleStyle),\n [`&:not(${componentCls}-item-active) > ${componentCls}-item-container[role='button']:hover`]: {\n [`${componentCls}-item-title`]: {\n color: inlineTitleColor\n }\n }\n }\n }\n };\n};\nexport default genStepsInlineStyle;","const genStepsLabelPlacementStyle = token => {\n const {\n componentCls,\n iconSize,\n lineHeight,\n iconSizeSM\n } = token;\n return {\n [`&${componentCls}-label-vertical`]: {\n [`${componentCls}-item`]: {\n overflow: 'visible',\n '&-tail': {\n marginInlineStart: iconSize / 2 + token.controlHeightLG,\n padding: `${token.paddingXXS}px ${token.paddingLG}px`\n },\n '&-content': {\n display: 'block',\n width: (iconSize / 2 + token.controlHeightLG) * 2,\n marginTop: token.marginSM,\n textAlign: 'center'\n },\n '&-icon': {\n display: 'inline-block',\n marginInlineStart: token.controlHeightLG\n },\n '&-title': {\n paddingInlineEnd: 0,\n paddingInlineStart: 0,\n '&::after': {\n display: 'none'\n }\n },\n '&-subtitle': {\n display: 'block',\n marginBottom: token.marginXXS,\n marginInlineStart: 0,\n lineHeight\n }\n },\n [`&${componentCls}-small:not(${componentCls}-dot)`]: {\n [`${componentCls}-item`]: {\n '&-icon': {\n marginInlineStart: token.controlHeightLG + (iconSize - iconSizeSM) / 2\n }\n }\n }\n }\n };\n};\nexport default genStepsLabelPlacementStyle;","import { textEllipsis } from '../../style';\nconst genStepsNavStyle = token => {\n const {\n componentCls,\n navContentMaxWidth,\n navArrowColor,\n stepsNavActiveColor,\n motionDurationSlow\n } = token;\n return {\n [`&${componentCls}-navigation`]: {\n paddingTop: token.paddingSM,\n [`&${componentCls}-small`]: {\n [`${componentCls}-item`]: {\n '&-container': {\n marginInlineStart: -token.marginSM\n }\n }\n },\n [`${componentCls}-item`]: {\n overflow: 'visible',\n textAlign: 'center',\n '&-container': {\n display: 'inline-block',\n height: '100%',\n marginInlineStart: -token.margin,\n paddingBottom: token.paddingSM,\n textAlign: 'start',\n transition: `opacity ${motionDurationSlow}`,\n [`${componentCls}-item-content`]: {\n maxWidth: navContentMaxWidth\n },\n [`${componentCls}-item-title`]: Object.assign(Object.assign({\n maxWidth: '100%',\n paddingInlineEnd: 0\n }, textEllipsis), {\n '&::after': {\n display: 'none'\n }\n })\n },\n [`&:not(${componentCls}-item-active)`]: {\n [`${componentCls}-item-container[role='button']`]: {\n cursor: 'pointer',\n '&:hover': {\n opacity: 0.85\n }\n }\n },\n '&:last-child': {\n flex: 1,\n '&::after': {\n display: 'none'\n }\n },\n '&::after': {\n position: 'absolute',\n top: `calc(50% - ${token.paddingSM / 2}px)`,\n insetInlineStart: '100%',\n display: 'inline-block',\n width: token.fontSizeIcon,\n height: token.fontSizeIcon,\n borderTop: `${token.lineWidth}px ${token.lineType} ${navArrowColor}`,\n borderBottom: 'none',\n borderInlineStart: 'none',\n borderInlineEnd: `${token.lineWidth}px ${token.lineType} ${navArrowColor}`,\n transform: 'translateY(-50%) translateX(-50%) rotate(45deg)',\n content: '\"\"'\n },\n '&::before': {\n position: 'absolute',\n bottom: 0,\n insetInlineStart: '50%',\n display: 'inline-block',\n width: 0,\n height: token.lineWidthBold,\n backgroundColor: stepsNavActiveColor,\n transition: `width ${motionDurationSlow}, inset-inline-start ${motionDurationSlow}`,\n transitionTimingFunction: 'ease-out',\n content: '\"\"'\n }\n },\n [`${componentCls}-item${componentCls}-item-active::before`]: {\n insetInlineStart: 0,\n width: '100%'\n }\n },\n [`&${componentCls}-navigation${componentCls}-vertical`]: {\n [`> ${componentCls}-item`]: {\n marginInlineEnd: 0,\n '&::before': {\n display: 'none'\n },\n [`&${componentCls}-item-active::before`]: {\n top: 0,\n insetInlineEnd: 0,\n insetInlineStart: 'unset',\n display: 'block',\n width: token.lineWidth * 3,\n height: `calc(100% - ${token.marginLG}px)`\n },\n '&::after': {\n position: 'relative',\n insetInlineStart: '50%',\n display: 'block',\n width: token.controlHeight * 0.25,\n height: token.controlHeight * 0.25,\n marginBottom: token.marginXS,\n textAlign: 'center',\n transform: 'translateY(-50%) translateX(-50%) rotate(135deg)'\n },\n [`> ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n visibility: 'hidden'\n }\n }\n },\n [`&${componentCls}-navigation${componentCls}-horizontal`]: {\n [`> ${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n visibility: 'hidden'\n }\n }\n };\n};\nexport default genStepsNavStyle;","const genStepsProgressStyle = token => {\n const {\n antCls,\n componentCls\n } = token;\n return {\n [`&${componentCls}-with-progress`]: {\n [`${componentCls}-item`]: {\n paddingTop: token.paddingXXS,\n [`&-process ${componentCls}-item-container ${componentCls}-item-icon ${componentCls}-icon`]: {\n color: token.processIconColor\n }\n },\n [`&${componentCls}-vertical > ${componentCls}-item `]: {\n paddingInlineStart: token.paddingXXS,\n [`> ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n top: token.marginXXS,\n insetInlineStart: token.iconSize / 2 - token.lineWidth + token.paddingXXS\n }\n },\n [`&, &${componentCls}-small`]: {\n [`&${componentCls}-horizontal ${componentCls}-item:first-child`]: {\n paddingBottom: token.paddingXXS,\n paddingInlineStart: token.paddingXXS\n }\n },\n [`&${componentCls}-small${componentCls}-vertical > ${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n insetInlineStart: token.iconSizeSM / 2 - token.lineWidth + token.paddingXXS\n },\n [`&${componentCls}-label-vertical`]: {\n [`${componentCls}-item ${componentCls}-item-tail`]: {\n top: token.margin - 2 * token.lineWidth\n }\n },\n [`${componentCls}-item-icon`]: {\n position: 'relative',\n [`${antCls}-progress`]: {\n position: 'absolute',\n insetBlockStart: (token.iconSize - token.stepsProgressSize - token.lineWidth * 2) / 2,\n insetInlineStart: (token.iconSize - token.stepsProgressSize - token.lineWidth * 2) / 2\n }\n }\n }\n };\n};\nexport default genStepsProgressStyle;","const genStepsProgressDotStyle = token => {\n const {\n componentCls,\n descriptionMaxWidth,\n lineHeight,\n dotCurrentSize,\n dotSize,\n motionDurationSlow\n } = token;\n return {\n [`&${componentCls}-dot, &${componentCls}-dot${componentCls}-small`]: {\n [`${componentCls}-item`]: {\n '&-title': {\n lineHeight\n },\n '&-tail': {\n top: Math.floor((token.dotSize - token.lineWidth * 3) / 2),\n width: '100%',\n marginTop: 0,\n marginBottom: 0,\n marginInline: `${descriptionMaxWidth / 2}px 0`,\n padding: 0,\n '&::after': {\n width: `calc(100% - ${token.marginSM * 2}px)`,\n height: token.lineWidth * 3,\n marginInlineStart: token.marginSM\n }\n },\n '&-icon': {\n width: dotSize,\n height: dotSize,\n marginInlineStart: (token.descriptionMaxWidth - dotSize) / 2,\n paddingInlineEnd: 0,\n lineHeight: `${dotSize}px`,\n background: 'transparent',\n border: 0,\n [`${componentCls}-icon-dot`]: {\n position: 'relative',\n float: 'left',\n width: '100%',\n height: '100%',\n borderRadius: 100,\n transition: `all ${motionDurationSlow}`,\n /* expand hover area */\n '&::after': {\n position: 'absolute',\n top: -token.marginSM,\n insetInlineStart: (dotSize - token.controlHeightLG * 1.5) / 2,\n width: token.controlHeightLG * 1.5,\n height: token.controlHeight,\n background: 'transparent',\n content: '\"\"'\n }\n }\n },\n '&-content': {\n width: descriptionMaxWidth\n },\n [`&-process ${componentCls}-item-icon`]: {\n position: 'relative',\n top: (dotSize - dotCurrentSize) / 2,\n width: dotCurrentSize,\n height: dotCurrentSize,\n lineHeight: `${dotCurrentSize}px`,\n background: 'none',\n marginInlineStart: (token.descriptionMaxWidth - dotCurrentSize) / 2\n },\n [`&-process ${componentCls}-icon`]: {\n [`&:first-child ${componentCls}-icon-dot`]: {\n insetInlineStart: 0\n }\n }\n }\n },\n [`&${componentCls}-vertical${componentCls}-dot`]: {\n [`${componentCls}-item-icon`]: {\n marginTop: (token.controlHeight - dotSize) / 2,\n marginInlineStart: 0,\n background: 'none'\n },\n [`${componentCls}-item-process ${componentCls}-item-icon`]: {\n marginTop: (token.controlHeight - dotCurrentSize) / 2,\n top: 0,\n insetInlineStart: (dotSize - dotCurrentSize) / 2,\n marginInlineStart: 0\n },\n // https://github.com/ant-design/ant-design/issues/18354\n [`${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n top: (token.controlHeight - dotSize) / 2,\n insetInlineStart: 0,\n margin: 0,\n padding: `${dotSize + token.paddingXS}px 0 ${token.paddingXS}px`,\n '&::after': {\n marginInlineStart: (dotSize - token.lineWidth) / 2\n }\n },\n [`&${componentCls}-small`]: {\n [`${componentCls}-item-icon`]: {\n marginTop: (token.controlHeightSM - dotSize) / 2\n },\n [`${componentCls}-item-process ${componentCls}-item-icon`]: {\n marginTop: (token.controlHeightSM - dotCurrentSize) / 2\n },\n [`${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n top: (token.controlHeightSM - dotSize) / 2\n }\n },\n [`${componentCls}-item:first-child ${componentCls}-icon-dot`]: {\n insetInlineStart: 0\n },\n [`${componentCls}-item-content`]: {\n width: 'inherit'\n }\n }\n };\n};\nexport default genStepsProgressDotStyle;","const genStepsRTLStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`&${componentCls}-rtl`]: {\n direction: 'rtl',\n [`${componentCls}-item`]: {\n '&-subtitle': {\n float: 'left'\n }\n },\n // nav\n [`&${componentCls}-navigation`]: {\n [`${componentCls}-item::after`]: {\n transform: 'rotate(-45deg)'\n }\n },\n // vertical\n [`&${componentCls}-vertical`]: {\n [`> ${componentCls}-item`]: {\n '&::after': {\n transform: 'rotate(225deg)'\n },\n [`${componentCls}-item-icon`]: {\n float: 'right'\n }\n }\n },\n // progress-dot\n [`&${componentCls}-dot`]: {\n [`${componentCls}-item-icon ${componentCls}-icon-dot, &${componentCls}-small ${componentCls}-item-icon ${componentCls}-icon-dot`]: {\n float: 'right'\n }\n }\n }\n };\n};\nexport default genStepsRTLStyle;","const genStepsSmallStyle = token => {\n const {\n componentCls,\n iconSizeSM,\n // stepsSmallIconMargin,\n fontSizeSM,\n fontSize,\n colorTextDescription\n } = token;\n return {\n [`&${componentCls}-small`]: {\n [`&${componentCls}-horizontal:not(${componentCls}-label-vertical) ${componentCls}-item`]: {\n paddingInlineStart: token.paddingSM,\n '&:first-child': {\n paddingInlineStart: 0\n }\n },\n [`${componentCls}-item-icon`]: {\n width: iconSizeSM,\n height: iconSizeSM,\n // margin: stepsSmallIconMargin,\n marginTop: 0,\n marginBottom: 0,\n marginInline: `0 ${token.marginXS}px`,\n fontSize: fontSizeSM,\n lineHeight: `${iconSizeSM}px`,\n textAlign: 'center',\n borderRadius: iconSizeSM\n },\n [`${componentCls}-item-title`]: {\n paddingInlineEnd: token.paddingSM,\n fontSize,\n lineHeight: `${iconSizeSM}px`,\n '&::after': {\n top: iconSizeSM / 2\n }\n },\n [`${componentCls}-item-description`]: {\n color: colorTextDescription,\n fontSize\n },\n [`${componentCls}-item-tail`]: {\n top: iconSizeSM / 2 - token.paddingXXS\n },\n [`${componentCls}-item-custom ${componentCls}-item-icon`]: {\n width: 'inherit',\n height: 'inherit',\n lineHeight: 'inherit',\n background: 'none',\n border: 0,\n borderRadius: 0,\n [`> ${componentCls}-icon`]: {\n fontSize: iconSizeSM,\n lineHeight: `${iconSizeSM}px`,\n transform: 'none'\n }\n }\n }\n };\n};\nexport default genStepsSmallStyle;","const genStepsVerticalStyle = token => {\n const {\n componentCls,\n iconSizeSM,\n iconSize\n } = token;\n return {\n [`&${componentCls}-vertical`]: {\n display: 'flex',\n flexDirection: 'column',\n [`> ${componentCls}-item`]: {\n display: 'block',\n flex: '1 0 auto',\n paddingInlineStart: 0,\n overflow: 'visible',\n [`${componentCls}-item-icon`]: {\n float: 'left',\n marginInlineEnd: token.margin\n },\n [`${componentCls}-item-content`]: {\n display: 'block',\n minHeight: token.controlHeight * 1.5,\n overflow: 'hidden'\n },\n [`${componentCls}-item-title`]: {\n lineHeight: `${iconSize}px`\n },\n [`${componentCls}-item-description`]: {\n paddingBottom: token.paddingSM\n }\n },\n [`> ${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n position: 'absolute',\n top: 0,\n insetInlineStart: iconSize / 2 - token.lineWidth,\n width: token.lineWidth,\n height: '100%',\n padding: `${iconSize + token.marginXXS * 1.5}px 0 ${token.marginXXS * 1.5}px`,\n '&::after': {\n width: token.lineWidth,\n height: '100%'\n }\n },\n [`> ${componentCls}-item:not(:last-child) > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n display: 'block'\n },\n [` > ${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-content > ${componentCls}-item-title`]: {\n '&::after': {\n display: 'none'\n }\n },\n [`&${componentCls}-small ${componentCls}-item-container`]: {\n [`${componentCls}-item-tail`]: {\n position: 'absolute',\n top: 0,\n insetInlineStart: iconSizeSM / 2 - token.lineWidth,\n padding: `${iconSizeSM + token.marginXXS * 1.5}px 0 ${token.marginXXS * 1.5}px`\n },\n [`${componentCls}-item-title`]: {\n lineHeight: `${iconSizeSM}px`\n }\n }\n }\n };\n};\nexport default genStepsVerticalStyle;","import { genFocusOutline, resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genStepsCustomIconStyle from './custom-icon';\nimport genStepsInlineStyle from './inline';\nimport genStepsLabelPlacementStyle from './label-placement';\nimport genStepsNavStyle from './nav';\nimport genStepsProgressStyle from './progress';\nimport genStepsProgressDotStyle from './progress-dot';\nimport genStepsRTLStyle from './rtl';\nimport genStepsSmallStyle from './small';\nimport genStepsVerticalStyle from './vertical';\nvar StepItemStatusEnum;\n(function (StepItemStatusEnum) {\n StepItemStatusEnum[\"wait\"] = \"wait\";\n StepItemStatusEnum[\"process\"] = \"process\";\n StepItemStatusEnum[\"finish\"] = \"finish\";\n StepItemStatusEnum[\"error\"] = \"error\";\n})(StepItemStatusEnum || (StepItemStatusEnum = {}));\nconst genStepsItemStatusStyle = (status, token) => {\n const prefix = `${token.componentCls}-item`;\n const iconColorKey = `${status}IconColor`;\n const titleColorKey = `${status}TitleColor`;\n const descriptionColorKey = `${status}DescriptionColor`;\n const tailColorKey = `${status}TailColor`;\n const iconBgColorKey = `${status}IconBgColor`;\n const iconBorderColorKey = `${status}IconBorderColor`;\n const dotColorKey = `${status}DotColor`;\n return {\n [`${prefix}-${status} ${prefix}-icon`]: {\n backgroundColor: token[iconBgColorKey],\n borderColor: token[iconBorderColorKey],\n [`> ${token.componentCls}-icon`]: {\n color: token[iconColorKey],\n [`${token.componentCls}-icon-dot`]: {\n background: token[dotColorKey]\n }\n }\n },\n [`${prefix}-${status}${prefix}-custom ${prefix}-icon`]: {\n [`> ${token.componentCls}-icon`]: {\n color: token[dotColorKey]\n }\n },\n [`${prefix}-${status} > ${prefix}-container > ${prefix}-content > ${prefix}-title`]: {\n color: token[titleColorKey],\n '&::after': {\n backgroundColor: token[tailColorKey]\n }\n },\n [`${prefix}-${status} > ${prefix}-container > ${prefix}-content > ${prefix}-description`]: {\n color: token[descriptionColorKey]\n },\n [`${prefix}-${status} > ${prefix}-container > ${prefix}-tail::after`]: {\n backgroundColor: token[tailColorKey]\n }\n };\n};\nconst genStepsItemStyle = token => {\n const {\n componentCls,\n motionDurationSlow\n } = token;\n const stepsItemCls = `${componentCls}-item`; // .ant-steps-item\n const stepItemIconCls = `${stepsItemCls}-icon`;\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n [stepsItemCls]: {\n position: 'relative',\n display: 'inline-block',\n flex: 1,\n overflow: 'hidden',\n verticalAlign: 'top',\n '&:last-child': {\n flex: 'none',\n [`> ${stepsItemCls}-container > ${stepsItemCls}-tail, > ${stepsItemCls}-container > ${stepsItemCls}-content > ${stepsItemCls}-title::after`]: {\n display: 'none'\n }\n }\n },\n [`${stepsItemCls}-container`]: {\n outline: 'none',\n [`&:focus-visible`]: {\n [stepItemIconCls]: Object.assign({}, genFocusOutline(token))\n }\n },\n [`${stepItemIconCls}, ${stepsItemCls}-content`]: {\n display: 'inline-block',\n verticalAlign: 'top'\n },\n [stepItemIconCls]: {\n width: token.iconSize,\n height: token.iconSize,\n marginTop: 0,\n marginBottom: 0,\n marginInlineStart: 0,\n marginInlineEnd: token.marginXS,\n fontSize: token.iconFontSize,\n fontFamily: token.fontFamily,\n lineHeight: `${token.iconSize}px`,\n textAlign: 'center',\n borderRadius: token.iconSize,\n border: `${token.lineWidth}px ${token.lineType} transparent`,\n transition: `background-color ${motionDurationSlow}, border-color ${motionDurationSlow}`,\n [`${componentCls}-icon`]: {\n position: 'relative',\n top: token.iconTop,\n color: token.colorPrimary,\n lineHeight: 1\n }\n },\n [`${stepsItemCls}-tail`]: {\n position: 'absolute',\n top: token.iconSize / 2 - token.paddingXXS,\n insetInlineStart: 0,\n width: '100%',\n '&::after': {\n display: 'inline-block',\n width: '100%',\n height: token.lineWidth,\n background: token.colorSplit,\n borderRadius: token.lineWidth,\n transition: `background ${motionDurationSlow}`,\n content: '\"\"'\n }\n },\n [`${stepsItemCls}-title`]: {\n position: 'relative',\n display: 'inline-block',\n paddingInlineEnd: token.padding,\n color: token.colorText,\n fontSize: token.fontSizeLG,\n lineHeight: `${token.titleLineHeight}px`,\n '&::after': {\n position: 'absolute',\n top: token.titleLineHeight / 2,\n insetInlineStart: '100%',\n display: 'block',\n width: 9999,\n height: token.lineWidth,\n background: token.processTailColor,\n content: '\"\"'\n }\n },\n [`${stepsItemCls}-subtitle`]: {\n display: 'inline',\n marginInlineStart: token.marginXS,\n color: token.colorTextDescription,\n fontWeight: 'normal',\n fontSize: token.fontSize\n },\n [`${stepsItemCls}-description`]: {\n color: token.colorTextDescription,\n fontSize: token.fontSize\n }\n }, genStepsItemStatusStyle(StepItemStatusEnum.wait, token)), genStepsItemStatusStyle(StepItemStatusEnum.process, token)), {\n [`${stepsItemCls}-process > ${stepsItemCls}-container > ${stepsItemCls}-title`]: {\n fontWeight: token.fontWeightStrong\n }\n }), genStepsItemStatusStyle(StepItemStatusEnum.finish, token)), genStepsItemStatusStyle(StepItemStatusEnum.error, token)), {\n [`${stepsItemCls}${componentCls}-next-error > ${componentCls}-item-title::after`]: {\n background: token.colorError\n },\n [`${stepsItemCls}-disabled`]: {\n cursor: 'not-allowed'\n }\n });\n};\n// ============================= Clickable ===========================\nconst genStepsClickableStyle = token => {\n const {\n componentCls,\n motionDurationSlow\n } = token;\n return {\n [`& ${componentCls}-item`]: {\n [`&:not(${componentCls}-item-active)`]: {\n [`& > ${componentCls}-item-container[role='button']`]: {\n cursor: 'pointer',\n [`${componentCls}-item`]: {\n [`&-title, &-subtitle, &-description, &-icon ${componentCls}-icon`]: {\n transition: `color ${motionDurationSlow}`\n }\n },\n '&:hover': {\n [`${componentCls}-item`]: {\n [`&-title, &-subtitle, &-description`]: {\n color: token.colorPrimary\n }\n }\n }\n },\n [`&:not(${componentCls}-item-process)`]: {\n [`& > ${componentCls}-item-container[role='button']:hover`]: {\n [`${componentCls}-item`]: {\n '&-icon': {\n borderColor: token.colorPrimary,\n [`${componentCls}-icon`]: {\n color: token.colorPrimary\n }\n }\n }\n }\n }\n }\n },\n [`&${componentCls}-horizontal:not(${componentCls}-label-vertical)`]: {\n [`${componentCls}-item`]: {\n paddingInlineStart: token.padding,\n whiteSpace: 'nowrap',\n '&:first-child': {\n paddingInlineStart: 0\n },\n [`&:last-child ${componentCls}-item-title`]: {\n paddingInlineEnd: 0\n },\n '&-tail': {\n display: 'none'\n },\n '&-description': {\n maxWidth: token.descriptionMaxWidth,\n whiteSpace: 'normal'\n }\n }\n }\n };\n};\nconst genStepsStyle = token => {\n const {\n componentCls\n } = token; // .ant-steps\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'flex',\n width: '100%',\n fontSize: 0,\n textAlign: 'initial'\n }), genStepsItemStyle(token)), genStepsClickableStyle(token)), genStepsCustomIconStyle(token)), genStepsSmallStyle(token)), genStepsVerticalStyle(token)), genStepsLabelPlacementStyle(token)), genStepsProgressDotStyle(token)), genStepsNavStyle(token)), genStepsRTLStyle(token)), genStepsProgressStyle(token)), genStepsInlineStyle(token))\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Steps', token => {\n const {\n wireframe,\n colorTextDisabled,\n controlHeightLG,\n colorTextLightSolid,\n colorText,\n colorPrimary,\n colorTextLabel,\n colorTextDescription,\n colorTextQuaternary,\n colorFillContent,\n controlItemBgActive,\n colorError,\n colorBgContainer,\n colorBorderSecondary,\n colorSplit\n } = token;\n const stepsToken = mergeToken(token, {\n // Steps component less variable\n processIconColor: colorTextLightSolid,\n processTitleColor: colorText,\n processDescriptionColor: colorText,\n processIconBgColor: colorPrimary,\n processIconBorderColor: colorPrimary,\n processDotColor: colorPrimary,\n processTailColor: colorSplit,\n waitIconColor: wireframe ? colorTextDisabled : colorTextLabel,\n waitTitleColor: colorTextDescription,\n waitDescriptionColor: colorTextDescription,\n waitTailColor: colorSplit,\n waitIconBgColor: wireframe ? colorBgContainer : colorFillContent,\n waitIconBorderColor: wireframe ? colorTextDisabled : 'transparent',\n waitDotColor: colorTextDisabled,\n finishIconColor: colorPrimary,\n finishTitleColor: colorText,\n finishDescriptionColor: colorTextDescription,\n finishTailColor: colorPrimary,\n finishIconBgColor: wireframe ? colorBgContainer : controlItemBgActive,\n finishIconBorderColor: wireframe ? colorPrimary : controlItemBgActive,\n finishDotColor: colorPrimary,\n errorIconColor: colorTextLightSolid,\n errorTitleColor: colorError,\n errorDescriptionColor: colorError,\n errorTailColor: colorSplit,\n errorIconBgColor: colorError,\n errorIconBorderColor: colorError,\n errorDotColor: colorError,\n stepsNavActiveColor: colorPrimary,\n stepsProgressSize: controlHeightLG,\n // Steps inline variable\n inlineDotSize: 6,\n inlineTitleColor: colorTextQuaternary,\n inlineTailColor: colorBorderSecondary\n });\n return [genStepsStyle(stepsToken)];\n}, token => {\n const {\n colorTextDisabled,\n fontSize,\n controlHeightSM,\n controlHeight,\n controlHeightLG,\n fontSizeHeading3\n } = token;\n return {\n titleLineHeight: controlHeight,\n customIconSize: controlHeight,\n customIconTop: 0,\n customIconFontSize: controlHeightSM,\n iconSize: controlHeight,\n iconTop: -0.5,\n iconFontSize: fontSize,\n iconSizeSM: fontSizeHeading3,\n dotSize: controlHeight / 4,\n dotCurrentSize: controlHeightLG / 4,\n navArrowColor: colorTextDisabled,\n navContentMaxWidth: 'auto',\n descriptionMaxWidth: 140\n };\n});","import * 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, 'Steps', 'Step is deprecated. Please use `items` directly.') : void 0;\n const childrenItems = toArray(children).map(node => {\n if ( /*#__PURE__*/React.isValidElement(node)) {\n const {\n props\n } = node;\n const item = Object.assign({}, props);\n return item;\n }\n return null;\n });\n return filter(childrenItems);\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 CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport RcSteps from 'rc-steps';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport Progress from '../progress';\nimport Tooltip from '../tooltip';\nimport useStyle from './style';\nimport useLegacyItems from './useLegacyItems';\nconst Steps = props => {\n const {\n percent,\n size: customizeSize,\n className,\n rootClassName,\n direction,\n items,\n responsive = true,\n current = 0,\n children,\n style\n } = props,\n restProps = __rest(props, [\"percent\", \"size\", \"className\", \"rootClassName\", \"direction\", \"items\", \"responsive\", \"current\", \"children\", \"style\"]);\n const {\n xs\n } = useBreakpoint(responsive);\n const {\n getPrefixCls,\n direction: rtlDirection,\n steps\n } = React.useContext(ConfigContext);\n const realDirectionValue = React.useMemo(() => responsive && xs ? 'vertical' : direction, [xs, direction]);\n const size = useSize(customizeSize);\n const prefixCls = getPrefixCls('steps', props.prefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const isInline = props.type === 'inline';\n const iconPrefix = getPrefixCls('', props.iconPrefix);\n const mergedItems = useLegacyItems(items, children);\n const mergedPercent = isInline ? undefined : percent;\n const mergedStyle = Object.assign(Object.assign({}, steps === null || steps === void 0 ? void 0 : steps.style), style);\n const stepsClassName = classNames(steps === null || steps === void 0 ? void 0 : steps.className, {\n [`${prefixCls}-rtl`]: rtlDirection === 'rtl',\n [`${prefixCls}-with-progress`]: mergedPercent !== undefined\n }, className, rootClassName, hashId);\n const icons = {\n finish: /*#__PURE__*/React.createElement(CheckOutlined, {\n className: `${prefixCls}-finish-icon`\n }),\n error: /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-error-icon`\n })\n };\n const stepIconRender = _ref => {\n let {\n node,\n status\n } = _ref;\n if (status === 'process' && mergedPercent !== undefined) {\n // currently it's hard-coded, since we can't easily read the actually width of icon\n const progressWidth = size === 'small' ? 32 : 40;\n // iconWithProgress\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-progress-icon`\n }, /*#__PURE__*/React.createElement(Progress, {\n type: \"circle\",\n percent: mergedPercent,\n size: progressWidth,\n strokeWidth: 4,\n format: () => null\n }), node);\n }\n return node;\n };\n const itemRender = (item, stepItem) => item.description ? /*#__PURE__*/React.createElement(Tooltip, {\n title: item.description\n }, stepItem) : stepItem;\n return wrapSSR( /*#__PURE__*/React.createElement(RcSteps, Object.assign({\n icons: icons\n }, restProps, {\n style: mergedStyle,\n current: current,\n size: size,\n items: mergedItems,\n itemRender: isInline ? itemRender : undefined,\n stepIcon: stepIconRender,\n direction: realDirectionValue,\n prefixCls: prefixCls,\n iconPrefix: iconPrefix,\n className: stepsClassName\n })));\n};\nSteps.Step = RcSteps.Step;\nif (process.env.NODE_ENV !== 'production') {\n Steps.displayName = 'Steps';\n}\nexport default Steps;","// eslint-disable-next-line import/prefer-default-export\nexport const operationUnit = token => ({\n // FIXME: This use link but is a operation unit. Seems should be a colorPrimary.\n // And Typography use this to generate link style which should not do this.\n color: token.colorLink,\n textDecoration: 'none',\n outline: 'none',\n cursor: 'pointer',\n transition: `color ${token.motionDurationSlow}`,\n '&:focus, &:hover': {\n color: token.colorLinkHover\n },\n '&:active': {\n color: token.colorLinkActive\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"checked\", \"defaultChecked\", \"disabled\", \"loadingIcon\", \"checkedChildren\", \"unCheckedChildren\", \"onClick\", \"onChange\", \"onKeyDown\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nvar Switch = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var _classNames;\n var _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-switch' : _ref$prefixCls,\n className = _ref.className,\n checked = _ref.checked,\n defaultChecked = _ref.defaultChecked,\n disabled = _ref.disabled,\n loadingIcon = _ref.loadingIcon,\n checkedChildren = _ref.checkedChildren,\n unCheckedChildren = _ref.unCheckedChildren,\n onClick = _ref.onClick,\n onChange = _ref.onChange,\n onKeyDown = _ref.onKeyDown,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _useMergedState = useMergedState(false, {\n value: checked,\n defaultValue: defaultChecked\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n innerChecked = _useMergedState2[0],\n setInnerChecked = _useMergedState2[1];\n function triggerChange(newChecked, event) {\n var mergedChecked = innerChecked;\n if (!disabled) {\n mergedChecked = newChecked;\n setInnerChecked(mergedChecked);\n onChange === null || onChange === void 0 ? void 0 : onChange(mergedChecked, event);\n }\n return mergedChecked;\n }\n function onInternalKeyDown(e) {\n if (e.which === KeyCode.LEFT) {\n triggerChange(false, e);\n } else if (e.which === KeyCode.RIGHT) {\n triggerChange(true, e);\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n }\n function onInternalClick(e) {\n var ret = triggerChange(!innerChecked, e);\n // [Legacy] trigger onClick with value\n onClick === null || onClick === void 0 ? void 0 : onClick(ret, e);\n }\n var switchClassName = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checked\"), innerChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames));\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, restProps, {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": innerChecked,\n disabled: disabled,\n className: switchClassName,\n ref: ref,\n onKeyDown: onInternalKeyDown,\n onClick: onInternalClick\n }), loadingIcon, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner\")\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner-checked\")\n }, checkedChildren), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner-unchecked\")\n }, unCheckedChildren)));\n});\nSwitch.displayName = 'Switch';\nexport default Switch;","import { TinyColor } from '@ctrl/tinycolor';\nimport { genFocusStyle, resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genSwitchSmallStyle = token => {\n const {\n componentCls\n } = token;\n const switchInnerCls = `${componentCls}-inner`;\n return {\n [componentCls]: {\n [`&${componentCls}-small`]: {\n minWidth: token.switchMinWidthSM,\n height: token.switchHeightSM,\n lineHeight: `${token.switchHeightSM}px`,\n [`${componentCls}-inner`]: {\n paddingInlineStart: token.switchInnerMarginMaxSM,\n paddingInlineEnd: token.switchInnerMarginMinSM,\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: `calc(-100% + ${token.switchPinSizeSM + token.switchPadding * 2}px - ${token.switchInnerMarginMaxSM * 2}px)`,\n marginInlineEnd: `calc(100% - ${token.switchPinSizeSM + token.switchPadding * 2}px + ${token.switchInnerMarginMaxSM * 2}px)`\n },\n [`${switchInnerCls}-unchecked`]: {\n marginTop: -token.switchHeightSM,\n marginInlineStart: 0,\n marginInlineEnd: 0\n }\n },\n [`${componentCls}-handle`]: {\n width: token.switchPinSizeSM,\n height: token.switchPinSizeSM\n },\n [`${componentCls}-loading-icon`]: {\n top: (token.switchPinSizeSM - token.switchLoadingIconSize) / 2,\n fontSize: token.switchLoadingIconSize\n },\n [`&${componentCls}-checked`]: {\n [`${componentCls}-inner`]: {\n paddingInlineStart: token.switchInnerMarginMinSM,\n paddingInlineEnd: token.switchInnerMarginMaxSM,\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: 0,\n marginInlineEnd: 0\n },\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: `calc(100% - ${token.switchPinSizeSM + token.switchPadding * 2}px + ${token.switchInnerMarginMaxSM * 2}px)`,\n marginInlineEnd: `calc(-100% + ${token.switchPinSizeSM + token.switchPadding * 2}px - ${token.switchInnerMarginMaxSM * 2}px)`\n }\n },\n [`${componentCls}-handle`]: {\n insetInlineStart: `calc(100% - ${token.switchPinSizeSM + token.switchPadding}px)`\n }\n },\n [`&:not(${componentCls}-disabled):active`]: {\n [`&:not(${componentCls}-checked) ${switchInnerCls}`]: {\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: token.marginXXS / 2,\n marginInlineEnd: -token.marginXXS / 2\n }\n },\n [`&${componentCls}-checked ${switchInnerCls}`]: {\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: -token.marginXXS / 2,\n marginInlineEnd: token.marginXXS / 2\n }\n }\n }\n }\n }\n };\n};\nconst genSwitchLoadingStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n [`${componentCls}-loading-icon${token.iconCls}`]: {\n position: 'relative',\n top: (token.switchPinSize - token.fontSize) / 2,\n color: token.switchLoadingIconColor,\n verticalAlign: 'top'\n },\n [`&${componentCls}-checked ${componentCls}-loading-icon`]: {\n color: token.switchColor\n }\n }\n };\n};\nconst genSwitchHandleStyle = token => {\n const {\n componentCls,\n motion\n } = token;\n const switchHandleCls = `${componentCls}-handle`;\n return {\n [componentCls]: {\n [switchHandleCls]: {\n position: 'absolute',\n top: token.switchPadding,\n insetInlineStart: token.switchPadding,\n width: token.switchPinSize,\n height: token.switchPinSize,\n transition: `all ${token.switchDuration} ease-in-out`,\n '&::before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n backgroundColor: token.colorWhite,\n borderRadius: token.switchPinSize / 2,\n boxShadow: token.switchHandleShadow,\n transition: `all ${token.switchDuration} ease-in-out`,\n content: '\"\"'\n }\n },\n [`&${componentCls}-checked ${switchHandleCls}`]: {\n insetInlineStart: `calc(100% - ${token.switchPinSize + token.switchPadding}px)`\n },\n [`&:not(${componentCls}-disabled):active`]: motion ? {\n [`${switchHandleCls}::before`]: {\n insetInlineEnd: token.switchHandleActiveInset,\n insetInlineStart: 0\n },\n [`&${componentCls}-checked ${switchHandleCls}::before`]: {\n insetInlineEnd: 0,\n insetInlineStart: token.switchHandleActiveInset\n }\n } : /* istanbul ignore next */\n {}\n }\n };\n};\nconst genSwitchInnerStyle = token => {\n const {\n componentCls\n } = token;\n const switchInnerCls = `${componentCls}-inner`;\n return {\n [componentCls]: {\n [switchInnerCls]: {\n display: 'block',\n overflow: 'hidden',\n borderRadius: 100,\n height: '100%',\n paddingInlineStart: token.switchInnerMarginMax,\n paddingInlineEnd: token.switchInnerMarginMin,\n transition: `padding-inline-start ${token.switchDuration} ease-in-out, padding-inline-end ${token.switchDuration} ease-in-out`,\n [`${switchInnerCls}-checked, ${switchInnerCls}-unchecked`]: {\n display: 'block',\n color: token.colorTextLightSolid,\n fontSize: token.fontSizeSM,\n transition: `margin-inline-start ${token.switchDuration} ease-in-out, margin-inline-end ${token.switchDuration} ease-in-out`,\n pointerEvents: 'none'\n },\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: `calc(-100% + ${token.switchPinSize + token.switchPadding * 2}px - ${token.switchInnerMarginMax * 2}px)`,\n marginInlineEnd: `calc(100% - ${token.switchPinSize + token.switchPadding * 2}px + ${token.switchInnerMarginMax * 2}px)`\n },\n [`${switchInnerCls}-unchecked`]: {\n marginTop: -token.switchHeight,\n marginInlineStart: 0,\n marginInlineEnd: 0\n }\n },\n [`&${componentCls}-checked ${switchInnerCls}`]: {\n paddingInlineStart: token.switchInnerMarginMin,\n paddingInlineEnd: token.switchInnerMarginMax,\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: 0,\n marginInlineEnd: 0\n },\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: `calc(100% - ${token.switchPinSize + token.switchPadding * 2}px + ${token.switchInnerMarginMax * 2}px)`,\n marginInlineEnd: `calc(-100% + ${token.switchPinSize + token.switchPadding * 2}px - ${token.switchInnerMarginMax * 2}px)`\n }\n },\n [`&:not(${componentCls}-disabled):active`]: {\n [`&:not(${componentCls}-checked) ${switchInnerCls}`]: {\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: token.switchPadding * 2,\n marginInlineEnd: -token.switchPadding * 2\n }\n },\n [`&${componentCls}-checked ${switchInnerCls}`]: {\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: -token.switchPadding * 2,\n marginInlineEnd: token.switchPadding * 2\n }\n }\n }\n }\n };\n};\nconst genSwitchStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n boxSizing: 'border-box',\n minWidth: token.switchMinWidth,\n height: token.switchHeight,\n lineHeight: `${token.switchHeight}px`,\n verticalAlign: 'middle',\n background: token.colorTextQuaternary,\n border: '0',\n borderRadius: 100,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}`,\n userSelect: 'none',\n [`&:hover:not(${componentCls}-disabled)`]: {\n background: token.colorTextTertiary\n }\n }), genFocusStyle(token)), {\n [`&${componentCls}-checked`]: {\n background: token.switchColor,\n [`&:hover:not(${componentCls}-disabled)`]: {\n background: token.colorPrimaryHover\n }\n },\n [`&${componentCls}-loading, &${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n opacity: token.switchDisabledOpacity,\n '*': {\n boxShadow: 'none',\n cursor: 'not-allowed'\n }\n },\n // rtl style\n [`&${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Switch', token => {\n const switchHeight = token.fontSize * token.lineHeight;\n const switchHeightSM = token.controlHeight / 2;\n const switchPadding = 2; // This is magic\n const switchPinSize = switchHeight - switchPadding * 2;\n const switchPinSizeSM = switchHeightSM - switchPadding * 2;\n const switchToken = mergeToken(token, {\n switchMinWidth: switchPinSize * 2 + switchPadding * 4,\n switchHeight,\n switchDuration: token.motionDurationMid,\n switchColor: token.colorPrimary,\n switchDisabledOpacity: token.opacityLoading,\n switchInnerMarginMin: switchPinSize / 2,\n switchInnerMarginMax: switchPinSize + switchPadding + switchPadding * 2,\n switchPadding,\n switchPinSize,\n switchBg: token.colorBgContainer,\n switchMinWidthSM: switchPinSizeSM * 2 + switchPadding * 2,\n switchHeightSM,\n switchInnerMarginMinSM: switchPinSizeSM / 2,\n switchInnerMarginMaxSM: switchPinSizeSM + switchPadding + switchPadding * 2,\n switchPinSizeSM,\n switchHandleShadow: `0 2px 4px 0 ${new TinyColor('#00230b').setAlpha(0.2).toRgbString()}`,\n switchLoadingIconSize: token.fontSizeIcon * 0.75,\n switchLoadingIconColor: `rgba(0, 0, 0, ${token.opacityLoading})`,\n switchHandleActiveInset: '-30%'\n });\n return [genSwitchStyle(switchToken),\n // inner style\n genSwitchInnerStyle(switchToken),\n // handle style\n genSwitchHandleStyle(switchToken),\n // loading style\n genSwitchLoadingStyle(switchToken),\n // small style\n genSwitchSmallStyle(switchToken)];\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 LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport RcSwitch from 'rc-switch';\nimport * as React 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 useStyle from './style';\nconst Switch = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n size: customizeSize,\n disabled: customDisabled,\n loading,\n className,\n rootClassName,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"size\", \"disabled\", \"loading\", \"className\", \"rootClassName\", \"style\"]);\n process.env.NODE_ENV !== \"production\" ? warning('checked' in props || !('value' in props), 'Switch', '`value` is not a valid prop, do you mean `checked`?') : void 0;\n const {\n getPrefixCls,\n direction,\n switch: SWITCH\n } = React.useContext(ConfigContext);\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = (customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled) || loading;\n const prefixCls = getPrefixCls('switch', customizePrefixCls);\n const loadingIcon = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-handle`\n }, loading && /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: `${prefixCls}-loading-icon`\n }));\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergedSize = useSize(customizeSize);\n const classes = classNames(SWITCH === null || SWITCH === void 0 ? void 0 : SWITCH.className, {\n [`${prefixCls}-small`]: mergedSize === 'small',\n [`${prefixCls}-loading`]: loading,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId);\n const mergedStyle = Object.assign(Object.assign({}, SWITCH === null || SWITCH === void 0 ? void 0 : SWITCH.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(Wave, {\n component: \"Switch\"\n }, /*#__PURE__*/React.createElement(RcSwitch, Object.assign({}, restProps, {\n prefixCls: prefixCls,\n className: classes,\n style: mergedStyle,\n disabled: mergedDisabled,\n ref: ref,\n loadingIcon: loadingIcon\n }))));\n});\nSwitch.__ANT_SWITCH = true;\nif (process.env.NODE_ENV !== 'production') {\n Switch.displayName = 'Switch';\n}\nexport default Switch;","import * as React from 'react';\nexport default function useLazyKVMap(data, childrenColumnName, getRowKey) {\n const mapCacheRef = React.useRef({});\n function getRecordByKey(key) {\n if (!mapCacheRef.current || mapCacheRef.current.data !== data || mapCacheRef.current.childrenColumnName !== childrenColumnName || mapCacheRef.current.getRowKey !== getRowKey) {\n const kvMap = new Map();\n /* eslint-disable no-inner-declarations */\n function dig(records) {\n records.forEach((record, index) => {\n const rowKey = getRowKey(record, index);\n kvMap.set(rowKey, record);\n if (record && typeof record === 'object' && childrenColumnName in record) {\n dig(record[childrenColumnName] || []);\n }\n });\n }\n /* eslint-enable */\n dig(data);\n mapCacheRef.current = {\n data,\n childrenColumnName,\n kvMap,\n getRowKey\n };\n }\n return mapCacheRef.current.kvMap.get(key);\n }\n return [getRecordByKey];\n}","export var EXPAND_COLUMN = {};\nexport var INTERNAL_HOOKS = 'rc-table-internal-hook';","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nexport function createContext(defaultValue) {\n var Context = /*#__PURE__*/React.createContext(undefined);\n var Provider = function Provider(_ref) {\n var value = _ref.value,\n children = _ref.children;\n var valueRef = React.useRef(value);\n valueRef.current = value;\n var _React$useState = React.useState(function () {\n return {\n getValue: function getValue() {\n return valueRef.current;\n },\n listeners: new Set()\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n context = _React$useState2[0];\n useLayoutEffect(function () {\n unstable_batchedUpdates(function () {\n context.listeners.forEach(function (listener) {\n listener(value);\n });\n });\n }, [value]);\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: context\n }, children);\n };\n return {\n Context: Context,\n Provider: Provider,\n defaultValue: defaultValue\n };\n}\n\n/** e.g. useSelect(userContext) => user */\n\n/** e.g. useSelect(userContext, user => user.name) => user.name */\n\n/** e.g. useSelect(userContext, ['name', 'age']) => user { name, age } */\n\n/** e.g. useSelect(userContext, 'name') => user.name */\n\nexport function useContext(holder, selector) {\n var eventSelector = useEvent(typeof selector === 'function' ? selector : function (ctx) {\n if (selector === undefined) {\n return ctx;\n }\n if (!Array.isArray(selector)) {\n return ctx[selector];\n }\n var obj = {};\n selector.forEach(function (key) {\n obj[key] = ctx[key];\n });\n return obj;\n });\n var context = React.useContext(holder === null || holder === void 0 ? void 0 : holder.Context);\n var _ref2 = context || {},\n listeners = _ref2.listeners,\n getValue = _ref2.getValue;\n var valueRef = React.useRef();\n valueRef.current = eventSelector(context ? getValue() : holder === null || holder === void 0 ? void 0 : holder.defaultValue);\n var _React$useState3 = React.useState({}),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n forceUpdate = _React$useState4[1];\n useLayoutEffect(function () {\n if (!context) {\n return;\n }\n function trigger(nextValue) {\n var nextSelectorValue = eventSelector(nextValue);\n if (!isEqual(valueRef.current, nextSelectorValue, true)) {\n forceUpdate({});\n }\n }\n listeners.add(trigger);\n return function () {\n listeners.delete(trigger);\n };\n }, [context]);\n return valueRef.current;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\n/**\n * Create Immutable pair for `makeImmutable` and `responseImmutable`.\n */\nexport default function createImmutable() {\n var ImmutableContext = /*#__PURE__*/React.createContext(null);\n\n /**\n * Get render update mark by `makeImmutable` root.\n * Do not deps on the return value as render times\n * but only use for `useMemo` or `useCallback` deps.\n */\n function useImmutableMark() {\n return React.useContext(ImmutableContext);\n }\n\n /**\n * Wrapped Component will be marked as Immutable.\n * When Component parent trigger render,\n * it will notice children component (use with `responseImmutable`) node that parent has updated.\n * @param Component Passed Component\n * @param triggerRender Customize trigger `responseImmutable` children re-render logic. Default will always trigger re-render when this component re-render.\n */\n function makeImmutable(Component, shouldTriggerRender) {\n var refAble = supportRef(Component);\n var ImmutableComponent = function ImmutableComponent(props, ref) {\n var refProps = refAble ? {\n ref: ref\n } : {};\n var renderTimesRef = React.useRef(0);\n var prevProps = React.useRef(props);\n\n // If parent has the context, we do not wrap it\n var mark = useImmutableMark();\n if (mark !== null) {\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps));\n }\n if (\n // Always trigger re-render if not provide `notTriggerRender`\n !shouldTriggerRender || shouldTriggerRender(prevProps.current, props)) {\n renderTimesRef.current += 1;\n }\n prevProps.current = props;\n return /*#__PURE__*/React.createElement(ImmutableContext.Provider, {\n value: renderTimesRef.current\n }, /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps)));\n };\n if (process.env.NODE_ENV !== 'production') {\n ImmutableComponent.displayName = \"ImmutableRoot(\".concat(Component.displayName || Component.name, \")\");\n }\n return refAble ? /*#__PURE__*/React.forwardRef(ImmutableComponent) : ImmutableComponent;\n }\n\n /**\n * Wrapped Component with `React.memo`.\n * But will rerender when parent with `makeImmutable` rerender.\n */\n function responseImmutable(Component, propsAreEqual) {\n var refAble = supportRef(Component);\n var ImmutableComponent = function ImmutableComponent(props, ref) {\n var refProps = refAble ? {\n ref: ref\n } : {};\n useImmutableMark();\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps));\n };\n if (process.env.NODE_ENV !== 'production') {\n ImmutableComponent.displayName = \"ImmutableResponse(\".concat(Component.displayName || Component.name, \")\");\n }\n return refAble ? /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(ImmutableComponent), propsAreEqual) : /*#__PURE__*/React.memo(ImmutableComponent, propsAreEqual);\n }\n return {\n makeImmutable: makeImmutable,\n responseImmutable: responseImmutable,\n useImmutableMark: useImmutableMark\n };\n}","import { createContext, useContext } from \"./context\";\nimport createImmutable from \"./Immutable\";\n\n// For legacy usage, we export it directly\nvar _createImmutable = createImmutable(),\n makeImmutable = _createImmutable.makeImmutable,\n responseImmutable = _createImmutable.responseImmutable,\n useImmutableMark = _createImmutable.useImmutableMark;\nexport { createContext, useContext, createImmutable, makeImmutable, responseImmutable, useImmutableMark };","import { createContext } from '@rc-component/context';\nvar TableContext = createContext();\nexport default TableContext;","/* istanbul ignore file */\nimport * as React from 'react';\nfunction useRenderTimes(props, debug) {\n // Render times\n var timesRef = React.useRef(0);\n timesRef.current += 1;\n\n // Props changed\n var propsRef = React.useRef(props);\n var keys = [];\n Object.keys(props || {}).map(function (key) {\n var _propsRef$current;\n if ((props === null || props === void 0 ? void 0 : props[key]) !== ((_propsRef$current = propsRef.current) === null || _propsRef$current === void 0 ? void 0 : _propsRef$current[key])) {\n keys.push(key);\n }\n });\n propsRef.current = props;\n\n // Cache keys since React rerender may cause it lost\n var keysRef = React.useRef([]);\n if (keys.length) {\n keysRef.current = keys;\n }\n React.useDebugValue(timesRef.current);\n React.useDebugValue(keysRef.current.join(', '));\n if (debug) {\n console.log(\"\".concat(debug, \":\"), timesRef.current, keysRef.current);\n }\n return timesRef.current;\n}\nexport default process.env.NODE_ENV !== 'production' ? useRenderTimes : function () {};\nexport var RenderBlock = /*#__PURE__*/React.memo(function () {\n var times = useRenderTimes();\n return /*#__PURE__*/React.createElement(\"h1\", null, \"Render Times: \", times);\n});\nRenderBlock.displayName = 'RenderBlock';","import * as React from 'react';\n// TODO: Remove when use `responsiveImmutable`\nvar PerfContext = /*#__PURE__*/React.createContext({\n renderWithProps: false\n});\nexport default PerfContext;","var INTERNAL_KEY_PREFIX = 'RC_TABLE_KEY';\nfunction toArray(arr) {\n if (arr === undefined || arr === null) {\n return [];\n }\n return Array.isArray(arr) ? arr : [arr];\n}\nexport function getColumnsKey(columns) {\n var columnKeys = [];\n var keys = {};\n columns.forEach(function (column) {\n var _ref = column || {},\n key = _ref.key,\n dataIndex = _ref.dataIndex;\n var mergedKey = key || toArray(dataIndex).join('-') || INTERNAL_KEY_PREFIX;\n while (keys[mergedKey]) {\n mergedKey = \"\".concat(mergedKey, \"_next\");\n }\n keys[mergedKey] = true;\n columnKeys.push(mergedKey);\n });\n return columnKeys;\n}\nexport function validateValue(val) {\n return val !== null && val !== undefined;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { useImmutableMark } from '@rc-component/context';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport getValue from \"rc-util/es/utils/get\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport PerfContext from \"../context/PerfContext\";\nimport { validateValue } from \"../utils/valueUtil\";\nfunction isRenderCell(data) {\n return data && _typeof(data) === 'object' && !Array.isArray(data) && ! /*#__PURE__*/React.isValidElement(data);\n}\nexport default function useCellRender(record, dataIndex, renderIndex, children, render, shouldCellUpdate) {\n // TODO: Remove this after next major version\n var perfRecord = React.useContext(PerfContext);\n var mark = useImmutableMark();\n\n // ======================== Render ========================\n var retData = useMemo(function () {\n if (validateValue(children)) {\n return [children];\n }\n var path = dataIndex === null || dataIndex === undefined || dataIndex === '' ? [] : Array.isArray(dataIndex) ? dataIndex : [dataIndex];\n var value = getValue(record, path);\n\n // Customize render node\n var returnChildNode = value;\n var returnCellProps = undefined;\n if (render) {\n var renderData = render(value, record, renderIndex);\n if (isRenderCell(renderData)) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`columns.render` return cell props is deprecated with perf issue, please use `onCell` instead.');\n }\n returnChildNode = renderData.children;\n returnCellProps = renderData.props;\n perfRecord.renderWithProps = true;\n } else {\n returnChildNode = renderData;\n }\n }\n return [returnChildNode, returnCellProps];\n }, [\n // Force update deps\n mark,\n // Normal deps\n record, children, dataIndex, render, renderIndex], function (prev, next) {\n if (shouldCellUpdate) {\n var _prev = _slicedToArray(prev, 2),\n prevRecord = _prev[1];\n var _next = _slicedToArray(next, 2),\n nextRecord = _next[1];\n return shouldCellUpdate(nextRecord, prevRecord);\n }\n\n // Legacy mode should always update\n if (perfRecord.renderWithProps) {\n return true;\n }\n return !isEqual(prev, next, true);\n });\n return retData;\n}","import { useContext } from '@rc-component/context';\nimport TableContext from \"../context/TableContext\";\n/** Check if cell is in hover range */\nfunction inHoverRange(cellStartRow, cellRowSpan, startRow, endRow) {\n var cellEndRow = cellStartRow + cellRowSpan - 1;\n return cellStartRow <= endRow && cellEndRow >= startRow;\n}\nexport default function useHoverState(rowIndex, rowSpan) {\n return useContext(TableContext, function (ctx) {\n var hovering = inHoverRange(rowIndex, rowSpan || 1, ctx.hoverStartRow, ctx.hoverEndRow);\n return [hovering, ctx.onHover];\n });\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 _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport useCellRender from \"./useCellRender\";\nimport useHoverState from \"./useHoverState\";\nvar getTitleFromCellRenderChildren = function getTitleFromCellRenderChildren(_ref) {\n var ellipsis = _ref.ellipsis,\n rowType = _ref.rowType,\n children = _ref.children;\n var title;\n var ellipsisConfig = ellipsis === true ? {\n showTitle: true\n } : ellipsis;\n if (ellipsisConfig && (ellipsisConfig.showTitle || rowType === 'header')) {\n if (typeof children === 'string' || typeof children === 'number') {\n title = children.toString();\n } else if ( /*#__PURE__*/React.isValidElement(children) && typeof children.props.children === 'string') {\n title = children.props.children;\n }\n }\n return title;\n};\nfunction Cell(props) {\n var _ref2, _ref3, _legacyCellProps$colS, _ref4, _ref5, _legacyCellProps$rowS, _additionalProps$titl, _classNames;\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var Component = props.component,\n children = props.children,\n ellipsis = props.ellipsis,\n scope = props.scope,\n prefixCls = props.prefixCls,\n className = props.className,\n align = props.align,\n record = props.record,\n render = props.render,\n dataIndex = props.dataIndex,\n renderIndex = props.renderIndex,\n shouldCellUpdate = props.shouldCellUpdate,\n index = props.index,\n rowType = props.rowType,\n colSpan = props.colSpan,\n rowSpan = props.rowSpan,\n fixLeft = props.fixLeft,\n fixRight = props.fixRight,\n firstFixLeft = props.firstFixLeft,\n lastFixLeft = props.lastFixLeft,\n firstFixRight = props.firstFixRight,\n lastFixRight = props.lastFixRight,\n appendNode = props.appendNode,\n _props$additionalProp = props.additionalProps,\n additionalProps = _props$additionalProp === void 0 ? {} : _props$additionalProp,\n isSticky = props.isSticky;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var _useContext = useContext(TableContext, ['supportSticky', 'allColumnsFixedLeft']),\n supportSticky = _useContext.supportSticky,\n allColumnsFixedLeft = _useContext.allColumnsFixedLeft;\n\n // ====================== Value =======================\n var _useCellRender = useCellRender(record, dataIndex, renderIndex, children, render, shouldCellUpdate),\n _useCellRender2 = _slicedToArray(_useCellRender, 2),\n childNode = _useCellRender2[0],\n legacyCellProps = _useCellRender2[1];\n\n // ====================== Fixed =======================\n var fixedStyle = {};\n var isFixLeft = typeof fixLeft === 'number' && supportSticky;\n var isFixRight = typeof fixRight === 'number' && supportSticky;\n if (isFixLeft) {\n fixedStyle.position = 'sticky';\n fixedStyle.left = fixLeft;\n }\n if (isFixRight) {\n fixedStyle.position = 'sticky';\n fixedStyle.right = fixRight;\n }\n\n // ================ RowSpan & ColSpan =================\n var mergedColSpan = (_ref2 = (_ref3 = (_legacyCellProps$colS = legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.colSpan) !== null && _legacyCellProps$colS !== void 0 ? _legacyCellProps$colS : additionalProps.colSpan) !== null && _ref3 !== void 0 ? _ref3 : colSpan) !== null && _ref2 !== void 0 ? _ref2 : 1;\n var mergedRowSpan = (_ref4 = (_ref5 = (_legacyCellProps$rowS = legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.rowSpan) !== null && _legacyCellProps$rowS !== void 0 ? _legacyCellProps$rowS : additionalProps.rowSpan) !== null && _ref5 !== void 0 ? _ref5 : rowSpan) !== null && _ref4 !== void 0 ? _ref4 : 1;\n\n // ====================== Hover =======================\n var _useHoverState = useHoverState(index, mergedRowSpan),\n _useHoverState2 = _slicedToArray(_useHoverState, 2),\n hovering = _useHoverState2[0],\n onHover = _useHoverState2[1];\n var onMouseEnter = function onMouseEnter(event) {\n var _additionalProps$onMo;\n if (record) {\n onHover(index, index + mergedRowSpan - 1);\n }\n additionalProps === null || additionalProps === void 0 ? void 0 : (_additionalProps$onMo = additionalProps.onMouseEnter) === null || _additionalProps$onMo === void 0 ? void 0 : _additionalProps$onMo.call(additionalProps, event);\n };\n var onMouseLeave = function onMouseLeave(event) {\n var _additionalProps$onMo2;\n if (record) {\n onHover(-1, -1);\n }\n additionalProps === null || additionalProps === void 0 ? void 0 : (_additionalProps$onMo2 = additionalProps.onMouseLeave) === null || _additionalProps$onMo2 === void 0 ? void 0 : _additionalProps$onMo2.call(additionalProps, event);\n };\n\n // ====================== Render ======================\n if (mergedColSpan === 0 || mergedRowSpan === 0) {\n return null;\n }\n\n // >>>>> Title\n var title = (_additionalProps$titl = additionalProps.title) !== null && _additionalProps$titl !== void 0 ? _additionalProps$titl : getTitleFromCellRenderChildren({\n rowType: rowType,\n ellipsis: ellipsis,\n children: childNode\n });\n\n // >>>>> ClassName\n var mergedClassName = classNames(cellPrefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left\"), isFixLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left-first\"), firstFixLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left-last\"), lastFixLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left-all\"), lastFixLeft && allColumnsFixedLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-right\"), isFixRight && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-right-first\"), firstFixRight && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-right-last\"), lastFixRight && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-ellipsis\"), ellipsis), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-with-append\"), appendNode), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-sticky\"), (isFixLeft || isFixRight) && isSticky && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-row-hover\"), !legacyCellProps && hovering), _classNames), additionalProps.className, legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.className);\n\n // >>>>> Style\n var alignStyle = {};\n if (align) {\n alignStyle.textAlign = align;\n }\n var mergedStyle = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, additionalProps.style), alignStyle), fixedStyle), legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.style);\n\n // >>>>> Children Node\n var mergedChildNode = childNode;\n\n // Not crash if final `childNode` is not validate ReactNode\n if (_typeof(mergedChildNode) === 'object' && !Array.isArray(mergedChildNode) && ! /*#__PURE__*/React.isValidElement(mergedChildNode)) {\n mergedChildNode = null;\n }\n if (ellipsis && (lastFixLeft || firstFixRight)) {\n mergedChildNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(cellPrefixCls, \"-content\")\n }, mergedChildNode);\n }\n return /*#__PURE__*/React.createElement(Component, _extends({}, legacyCellProps, additionalProps, {\n className: mergedClassName,\n style: mergedStyle\n // A11y\n ,\n title: title,\n scope: scope\n // Hover\n ,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n //Span\n ,\n colSpan: mergedColSpan !== 1 ? mergedColSpan : null,\n rowSpan: mergedRowSpan !== 1 ? mergedRowSpan : null\n }), appendNode, mergedChildNode);\n}\nexport default /*#__PURE__*/React.memo(Cell);","export function getCellFixedInfo(colStart, colEnd, columns, stickyOffsets, direction, curColumns) {\n var startColumn = columns[colStart] || {};\n var endColumn = columns[colEnd] || {};\n var fixLeft;\n var fixRight;\n if (startColumn.fixed === 'left') {\n fixLeft = stickyOffsets.left[direction === 'rtl' ? colEnd : colStart];\n } else if (endColumn.fixed === 'right') {\n fixRight = stickyOffsets.right[direction === 'rtl' ? colStart : colEnd];\n }\n var lastFixLeft = false;\n var firstFixRight = false;\n var lastFixRight = false;\n var firstFixLeft = false;\n var nextColumn = columns[colEnd + 1];\n var prevColumn = columns[colStart - 1];\n\n // no children only\n var canLastFix = !(curColumns !== null && curColumns !== void 0 && curColumns.children);\n if (direction === 'rtl') {\n if (fixLeft !== undefined) {\n var prevFixLeft = prevColumn && prevColumn.fixed === 'left';\n firstFixLeft = !prevFixLeft && canLastFix;\n } else if (fixRight !== undefined) {\n var nextFixRight = nextColumn && nextColumn.fixed === 'right';\n lastFixRight = !nextFixRight && canLastFix;\n }\n } else if (fixLeft !== undefined) {\n var nextFixLeft = nextColumn && nextColumn.fixed === 'left';\n lastFixLeft = !nextFixLeft && canLastFix;\n } else if (fixRight !== undefined) {\n var prevFixRight = prevColumn && prevColumn.fixed === 'right';\n firstFixRight = !prevFixRight && canLastFix;\n }\n return {\n fixLeft: fixLeft,\n fixRight: fixRight,\n lastFixLeft: lastFixLeft,\n firstFixRight: firstFixRight,\n lastFixRight: lastFixRight,\n firstFixLeft: firstFixLeft,\n isSticky: stickyOffsets.isSticky\n };\n}","import * as React from 'react';\nvar SummaryContext = /*#__PURE__*/React.createContext({});\nexport default SummaryContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport { useContext } from '@rc-component/context';\nimport { getCellFixedInfo } from \"../utils/fixUtil\";\nimport SummaryContext from \"./SummaryContext\";\nexport default function SummaryCell(_ref) {\n var className = _ref.className,\n index = _ref.index,\n children = _ref.children,\n _ref$colSpan = _ref.colSpan,\n colSpan = _ref$colSpan === void 0 ? 1 : _ref$colSpan,\n rowSpan = _ref.rowSpan,\n align = _ref.align;\n var _useContext = useContext(TableContext, ['prefixCls', 'direction']),\n prefixCls = _useContext.prefixCls,\n direction = _useContext.direction;\n var _React$useContext = React.useContext(SummaryContext),\n scrollColumnIndex = _React$useContext.scrollColumnIndex,\n stickyOffsets = _React$useContext.stickyOffsets,\n flattenColumns = _React$useContext.flattenColumns,\n columns = _React$useContext.columns;\n var lastIndex = index + colSpan - 1;\n var mergedColSpan = lastIndex + 1 === scrollColumnIndex ? colSpan + 1 : colSpan;\n var fixedInfo = getCellFixedInfo(index, index + mergedColSpan - 1, flattenColumns, stickyOffsets, direction, columns === null || columns === void 0 ? void 0 : columns[index]);\n return /*#__PURE__*/React.createElement(Cell, _extends({\n className: className,\n index: index,\n component: \"td\",\n prefixCls: prefixCls,\n record: null,\n dataIndex: null,\n align: align,\n colSpan: mergedColSpan,\n rowSpan: rowSpan,\n render: function render() {\n return children;\n }\n }, fixedInfo));\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport default function FooterRow(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"tr\", props, children);\n}","import Cell from \"./Cell\";\nimport Row from \"./Row\";\n/**\n * Syntactic sugar. Do not support HOC.\n */\nfunction Summary(_ref) {\n var children = _ref.children;\n return children;\n}\nSummary.Row = Row;\nSummary.Cell = Cell;\nexport default Summary;","import { responseImmutable, useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport Summary from \"./Summary\";\nimport SummaryContext from \"./SummaryContext\";\nfunction Footer(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var children = props.children,\n stickyOffsets = props.stickyOffsets,\n flattenColumns = props.flattenColumns,\n columns = props.columns;\n var prefixCls = useContext(TableContext, 'prefixCls');\n var lastColumnIndex = flattenColumns.length - 1;\n var scrollColumn = flattenColumns[lastColumnIndex];\n var summaryContext = React.useMemo(function () {\n return {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns,\n scrollColumnIndex: scrollColumn !== null && scrollColumn !== void 0 && scrollColumn.scrollbar ? lastColumnIndex : null,\n columns: columns\n };\n }, [scrollColumn, flattenColumns, lastColumnIndex, stickyOffsets, columns]);\n return /*#__PURE__*/React.createElement(SummaryContext.Provider, {\n value: summaryContext\n }, /*#__PURE__*/React.createElement(\"tfoot\", {\n className: \"\".concat(prefixCls, \"-summary\")\n }, children));\n}\nexport default responseImmutable(Footer);\nexport var FooterComponents = Summary;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\n// recursion (flat tree structure)\nfunction flatRecord(record, indent, childrenColumnName, expandedKeys, getRowKey, index) {\n var arr = [];\n arr.push({\n record: record,\n indent: indent,\n index: index\n });\n var key = getRowKey(record);\n var expanded = expandedKeys === null || expandedKeys === void 0 ? void 0 : expandedKeys.has(key);\n if (record && Array.isArray(record[childrenColumnName]) && expanded) {\n // expanded state, flat record\n for (var i = 0; i < record[childrenColumnName].length; i += 1) {\n var tempArr = flatRecord(record[childrenColumnName][i], indent + 1, childrenColumnName, expandedKeys, getRowKey, i);\n arr.push.apply(arr, _toConsumableArray(tempArr));\n }\n }\n return arr;\n}\n\n/**\n * flat tree data on expanded state\n *\n * @export\n * @template T\n * @param {*} data : table data\n * @param {string} childrenColumnName : 指定树形结构的列名\n * @param {Set} expandedKeys : 展开的行对应的keys\n * @param {GetRowKey} getRowKey : 获取当前rowKey的方法\n * @returns flattened data\n */\nexport default function useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey) {\n var arr = React.useMemo(function () {\n if (expandedKeys !== null && expandedKeys !== void 0 && expandedKeys.size) {\n var temp = [];\n\n // collect flattened record\n for (var i = 0; i < (data === null || data === void 0 ? void 0 : data.length); i += 1) {\n var _temp;\n var record = data[i];\n\n // using array.push or spread operator may cause \"Maximum call stack size exceeded\" exception if array size is big enough.\n temp = (_temp = temp).concat.apply(_temp, _toConsumableArray(flatRecord(record, 0, childrenColumnName, expandedKeys, getRowKey, i)));\n }\n return temp;\n }\n return data === null || data === void 0 ? void 0 : data.map(function (item, index) {\n return {\n record: item,\n indent: 0,\n index: index\n };\n });\n }, [data, childrenColumnName, expandedKeys, getRowKey]);\n return arr;\n}","import { useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nfunction ExpandedRow(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var prefixCls = props.prefixCls,\n children = props.children,\n Component = props.component,\n cellComponent = props.cellComponent,\n className = props.className,\n expanded = props.expanded,\n colSpan = props.colSpan,\n isEmpty = props.isEmpty;\n var _useContext = useContext(TableContext, ['scrollbarSize', 'fixHeader', 'fixColumn', 'componentWidth', 'horizonScroll']),\n scrollbarSize = _useContext.scrollbarSize,\n fixHeader = _useContext.fixHeader,\n fixColumn = _useContext.fixColumn,\n componentWidth = _useContext.componentWidth,\n horizonScroll = _useContext.horizonScroll;\n\n // Cache render node\n var contentNode = children;\n if (isEmpty ? horizonScroll : fixColumn) {\n contentNode = /*#__PURE__*/React.createElement(\"div\", {\n style: {\n width: componentWidth - (fixHeader ? scrollbarSize : 0),\n position: 'sticky',\n left: 0,\n overflow: 'hidden'\n },\n className: \"\".concat(prefixCls, \"-expanded-row-fixed\")\n }, componentWidth !== 0 && contentNode);\n }\n return /*#__PURE__*/React.createElement(Component, {\n className: className,\n style: {\n display: expanded ? null : 'none'\n }\n }, /*#__PURE__*/React.createElement(Cell, {\n component: cellComponent,\n prefixCls: prefixCls,\n colSpan: colSpan\n }, contentNode));\n}\nexport default ExpandedRow;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { responseImmutable, useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport { getColumnsKey } from \"../utils/valueUtil\";\nimport ExpandedRow from \"./ExpandedRow\";\nfunction BodyRow(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var className = props.className,\n style = props.style,\n record = props.record,\n index = props.index,\n renderIndex = props.renderIndex,\n rowKey = props.rowKey,\n rowExpandable = props.rowExpandable,\n expandedKeys = props.expandedKeys,\n onRow = props.onRow,\n _props$indent = props.indent,\n indent = _props$indent === void 0 ? 0 : _props$indent,\n RowComponent = props.rowComponent,\n cellComponent = props.cellComponent,\n scopeCellComponent = props.scopeCellComponent,\n childrenColumnName = props.childrenColumnName;\n var _useContext = useContext(TableContext, ['prefixCls', 'fixedInfoList', 'flattenColumns', 'expandableType', 'expandRowByClick', 'onTriggerExpand', 'rowClassName', 'expandedRowClassName', 'indentSize', 'expandIcon', 'expandedRowRender', 'expandIconColumnIndex']),\n prefixCls = _useContext.prefixCls,\n fixedInfoList = _useContext.fixedInfoList,\n flattenColumns = _useContext.flattenColumns,\n expandableType = _useContext.expandableType,\n expandRowByClick = _useContext.expandRowByClick,\n onTriggerExpand = _useContext.onTriggerExpand,\n rowClassName = _useContext.rowClassName,\n expandedRowClassName = _useContext.expandedRowClassName,\n indentSize = _useContext.indentSize,\n expandIcon = _useContext.expandIcon,\n expandedRowRender = _useContext.expandedRowRender,\n expandIconColumnIndex = _useContext.expandIconColumnIndex;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n expandRended = _React$useState2[0],\n setExpandRended = _React$useState2[1];\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var expanded = expandedKeys && expandedKeys.has(rowKey);\n React.useEffect(function () {\n if (expanded) {\n setExpandRended(true);\n }\n }, [expanded]);\n var rowSupportExpand = expandableType === 'row' && (!rowExpandable || rowExpandable(record));\n // Only when row is not expandable and `children` exist in record\n var nestExpandable = expandableType === 'nest';\n var hasNestChildren = childrenColumnName && record && record[childrenColumnName];\n var mergedExpandable = rowSupportExpand || nestExpandable;\n\n // ======================== Expandable =========================\n var onExpandRef = React.useRef(onTriggerExpand);\n onExpandRef.current = onTriggerExpand;\n var onInternalTriggerExpand = function onInternalTriggerExpand() {\n onExpandRef.current.apply(onExpandRef, arguments);\n };\n\n // =========================== onRow ===========================\n var additionalProps = onRow === null || onRow === void 0 ? void 0 : onRow(record, index);\n var onClick = function onClick(event) {\n var _additionalProps$onCl;\n if (expandRowByClick && mergedExpandable) {\n onInternalTriggerExpand(record, event);\n }\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 additionalProps === null || additionalProps === void 0 ? void 0 : (_additionalProps$onCl = additionalProps.onClick) === null || _additionalProps$onCl === void 0 ? void 0 : _additionalProps$onCl.call.apply(_additionalProps$onCl, [additionalProps, event].concat(args));\n };\n\n // ======================== Base tr row ========================\n var computeRowClassName;\n if (typeof rowClassName === 'string') {\n computeRowClassName = rowClassName;\n } else if (typeof rowClassName === 'function') {\n computeRowClassName = rowClassName(record, index, indent);\n }\n var columnsKey = getColumnsKey(flattenColumns);\n var baseRowNode = /*#__PURE__*/React.createElement(RowComponent, _extends({}, additionalProps, {\n \"data-row-key\": rowKey,\n className: classNames(className, \"\".concat(prefixCls, \"-row\"), \"\".concat(prefixCls, \"-row-level-\").concat(indent), computeRowClassName, additionalProps && additionalProps.className),\n style: _objectSpread(_objectSpread({}, style), additionalProps ? additionalProps.style : null),\n onClick: onClick\n }), flattenColumns.map(function (column, colIndex) {\n var render = column.render,\n dataIndex = column.dataIndex,\n columnClassName = column.className;\n var key = columnsKey[colIndex];\n var fixedInfo = fixedInfoList[colIndex];\n\n // ============= Used for nest expandable =============\n var appendCellNode;\n if (colIndex === (expandIconColumnIndex || 0) && nestExpandable) {\n appendCellNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n style: {\n paddingLeft: \"\".concat(indentSize * indent, \"px\")\n },\n className: \"\".concat(prefixCls, \"-row-indent indent-level-\").concat(indent)\n }), expandIcon({\n prefixCls: prefixCls,\n expanded: expanded,\n expandable: hasNestChildren,\n record: record,\n onExpand: onInternalTriggerExpand\n }));\n }\n var additionalCellProps;\n if (column.onCell) {\n additionalCellProps = column.onCell(record, index);\n }\n return /*#__PURE__*/React.createElement(Cell, _extends({\n className: columnClassName,\n ellipsis: column.ellipsis,\n align: column.align,\n scope: column.rowScope,\n component: column.rowScope ? scopeCellComponent : cellComponent,\n prefixCls: prefixCls,\n key: key,\n record: record,\n index: index,\n renderIndex: renderIndex,\n dataIndex: dataIndex,\n render: render,\n shouldCellUpdate: column.shouldCellUpdate,\n expanded: appendCellNode && expanded\n }, fixedInfo, {\n appendNode: appendCellNode,\n additionalProps: additionalCellProps\n }));\n }));\n\n // ======================== Expand Row =========================\n var expandRowNode;\n if (rowSupportExpand && (expandRended || expanded)) {\n var expandContent = expandedRowRender(record, index, indent + 1, expanded);\n var computedExpandedRowClassName = expandedRowClassName && expandedRowClassName(record, index, indent);\n expandRowNode = /*#__PURE__*/React.createElement(ExpandedRow, {\n expanded: expanded,\n className: classNames(\"\".concat(prefixCls, \"-expanded-row\"), \"\".concat(prefixCls, \"-expanded-row-level-\").concat(indent + 1), computedExpandedRowClassName),\n prefixCls: prefixCls,\n component: RowComponent,\n cellComponent: cellComponent,\n colSpan: flattenColumns.length,\n isEmpty: false\n }, expandContent);\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, baseRowNode, expandRowNode);\n}\nBodyRow.displayName = 'BodyRow';\nexport default responseImmutable(BodyRow);","import * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nexport default function MeasureCell(_ref) {\n var columnKey = _ref.columnKey,\n onColumnResize = _ref.onColumnResize;\n var cellRef = React.useRef();\n React.useEffect(function () {\n if (cellRef.current) {\n onColumnResize(columnKey, cellRef.current.offsetWidth);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n data: columnKey\n }, /*#__PURE__*/React.createElement(\"td\", {\n ref: cellRef,\n style: {\n padding: 0,\n border: 0,\n height: 0\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n height: 0,\n overflow: 'hidden'\n }\n }, \"\\xA0\")));\n}","import * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport MeasureCell from \"./MeasureCell\";\nexport default function MeasureRow(_ref) {\n var prefixCls = _ref.prefixCls,\n columnsKey = _ref.columnsKey,\n onColumnResize = _ref.onColumnResize;\n return /*#__PURE__*/React.createElement(\"tr\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-measure-row\"),\n style: {\n height: 0,\n fontSize: 0\n }\n }, /*#__PURE__*/React.createElement(ResizeObserver.Collection, {\n onBatchResize: function onBatchResize(infoList) {\n infoList.forEach(function (_ref2) {\n var columnKey = _ref2.data,\n size = _ref2.size;\n onColumnResize(columnKey, size.offsetWidth);\n });\n }\n }, columnsKey.map(function (columnKey) {\n return /*#__PURE__*/React.createElement(MeasureCell, {\n key: columnKey,\n columnKey: columnKey,\n onColumnResize: onColumnResize\n });\n })));\n}","import { responseImmutable, useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport PerfContext from \"../context/PerfContext\";\nimport TableContext from \"../context/TableContext\";\nimport useFlattenRecords from \"../hooks/useFlattenRecords\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport { getColumnsKey } from \"../utils/valueUtil\";\nimport BodyRow from \"./BodyRow\";\nimport ExpandedRow from \"./ExpandedRow\";\nimport MeasureRow from \"./MeasureRow\";\nfunction Body(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var data = props.data,\n getRowKey = props.getRowKey,\n measureColumnWidth = props.measureColumnWidth,\n expandedKeys = props.expandedKeys,\n onRow = props.onRow,\n rowExpandable = props.rowExpandable,\n emptyNode = props.emptyNode,\n childrenColumnName = props.childrenColumnName;\n var _useContext = useContext(TableContext, ['prefixCls', 'getComponent', 'onColumnResize', 'flattenColumns']),\n prefixCls = _useContext.prefixCls,\n getComponent = _useContext.getComponent,\n onColumnResize = _useContext.onColumnResize,\n flattenColumns = _useContext.flattenColumns;\n var flattenData = useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey);\n\n // =================== Performance ====================\n var perfRef = React.useRef({\n renderWithProps: false\n });\n\n // ====================== Render ======================\n var WrapperComponent = getComponent(['body', 'wrapper'], 'tbody');\n var trComponent = getComponent(['body', 'row'], 'tr');\n var tdComponent = getComponent(['body', 'cell'], 'td');\n var thComponent = getComponent(['body', 'cell'], 'th');\n var rows;\n if (data.length) {\n rows = flattenData.map(function (item, idx) {\n var record = item.record,\n indent = item.indent,\n renderIndex = item.index;\n var key = getRowKey(record, idx);\n return /*#__PURE__*/React.createElement(BodyRow, {\n key: key,\n rowKey: key,\n record: record,\n index: idx,\n renderIndex: renderIndex,\n rowComponent: trComponent,\n cellComponent: tdComponent,\n scopeCellComponent: thComponent,\n expandedKeys: expandedKeys,\n onRow: onRow,\n getRowKey: getRowKey,\n rowExpandable: rowExpandable,\n childrenColumnName: childrenColumnName,\n indent: indent\n });\n });\n } else {\n rows = /*#__PURE__*/React.createElement(ExpandedRow, {\n expanded: true,\n className: \"\".concat(prefixCls, \"-placeholder\"),\n prefixCls: prefixCls,\n component: trComponent,\n cellComponent: tdComponent,\n colSpan: flattenColumns.length,\n isEmpty: true\n }, emptyNode);\n }\n var columnsKey = getColumnsKey(flattenColumns);\n return /*#__PURE__*/React.createElement(PerfContext.Provider, {\n value: perfRef.current\n }, /*#__PURE__*/React.createElement(WrapperComponent, {\n className: \"\".concat(prefixCls, \"-tbody\")\n }, measureColumnWidth && /*#__PURE__*/React.createElement(MeasureRow, {\n prefixCls: prefixCls,\n columnsKey: columnsKey,\n onColumnResize: onColumnResize\n }), rows));\n}\nBody.displayName = 'Body';\nexport default responseImmutable(Body);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"expandable\"];\nimport warning from \"rc-util/es/warning\";\nexport var INTERNAL_COL_DEFINE = 'RC_TABLE_INTERNAL_COL_DEFINE';\nexport function getExpandableProps(props) {\n var expandable = props.expandable,\n legacyExpandableConfig = _objectWithoutProperties(props, _excluded);\n var config;\n if ('expandable' in props) {\n config = _objectSpread(_objectSpread({}, legacyExpandableConfig), expandable);\n } else {\n if (process.env.NODE_ENV !== 'production' && ['indentSize', 'expandedRowKeys', 'defaultExpandedRowKeys', 'defaultExpandAllRows', 'expandedRowRender', 'expandRowByClick', 'expandIcon', 'onExpand', 'onExpandedRowsChange', 'expandedRowClassName', 'expandIconColumnIndex', 'showExpandColumn', 'title'].some(function (prop) {\n return prop in props;\n })) {\n warning(false, 'expanded related props have been moved into `expandable`.');\n }\n config = legacyExpandableConfig;\n }\n if (config.showExpandColumn === false) {\n config.expandIconColumnIndex = -1;\n }\n return config;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"columnType\"];\nimport * as React from 'react';\nimport { INTERNAL_COL_DEFINE } from \"./utils/legacyUtil\";\nfunction ColGroup(_ref) {\n var colWidths = _ref.colWidths,\n columns = _ref.columns,\n columCount = _ref.columCount;\n var cols = [];\n var len = columCount || columns.length;\n\n // Only insert col with width & additional props\n // Skip if rest col do not have any useful info\n var mustInsert = false;\n for (var i = len - 1; i >= 0; i -= 1) {\n var width = colWidths[i];\n var column = columns && columns[i];\n var additionalProps = column && column[INTERNAL_COL_DEFINE];\n if (width || additionalProps || mustInsert) {\n var _ref2 = additionalProps || {},\n columnType = _ref2.columnType,\n restAdditionalProps = _objectWithoutProperties(_ref2, _excluded);\n cols.unshift( /*#__PURE__*/React.createElement(\"col\", _extends({\n key: i,\n style: {\n width: width\n }\n }, restAdditionalProps)));\n mustInsert = true;\n }\n }\n return /*#__PURE__*/React.createElement(\"colgroup\", null, cols);\n}\nexport default ColGroup;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"noData\", \"columns\", \"flattenColumns\", \"colWidths\", \"columCount\", \"stickyOffsets\", \"direction\", \"fixHeader\", \"stickyTopOffset\", \"stickyBottomOffset\", \"stickyClassName\", \"onScroll\", \"maxContentScroll\", \"children\"];\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport { fillRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport ColGroup from \"../ColGroup\";\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nfunction useColumnWidth(colWidths, columCount) {\n return useMemo(function () {\n var cloneColumns = [];\n for (var i = 0; i < columCount; i += 1) {\n var val = colWidths[i];\n if (val !== undefined) {\n cloneColumns[i] = val;\n } else {\n return null;\n }\n }\n return cloneColumns;\n }, [colWidths.join('_'), columCount]);\n}\nvar FixedHolder = /*#__PURE__*/React.forwardRef(function (props, ref) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var className = props.className,\n noData = props.noData,\n columns = props.columns,\n flattenColumns = props.flattenColumns,\n colWidths = props.colWidths,\n columCount = props.columCount,\n stickyOffsets = props.stickyOffsets,\n direction = props.direction,\n fixHeader = props.fixHeader,\n stickyTopOffset = props.stickyTopOffset,\n stickyBottomOffset = props.stickyBottomOffset,\n stickyClassName = props.stickyClassName,\n onScroll = props.onScroll,\n maxContentScroll = props.maxContentScroll,\n children = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n var _useContext = useContext(TableContext, ['prefixCls', 'scrollbarSize', 'isSticky']),\n prefixCls = _useContext.prefixCls,\n scrollbarSize = _useContext.scrollbarSize,\n isSticky = _useContext.isSticky;\n var combinationScrollBarSize = isSticky && !fixHeader ? 0 : scrollbarSize;\n\n // Pass wheel to scroll event\n var scrollRef = React.useRef(null);\n var setScrollRef = React.useCallback(function (element) {\n fillRef(ref, element);\n fillRef(scrollRef, element);\n }, []);\n React.useEffect(function () {\n var _scrollRef$current;\n function onWheel(e) {\n var _ref = e,\n currentTarget = _ref.currentTarget,\n deltaX = _ref.deltaX;\n if (deltaX) {\n onScroll({\n currentTarget: currentTarget,\n scrollLeft: currentTarget.scrollLeft + deltaX\n });\n e.preventDefault();\n }\n }\n (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.addEventListener('wheel', onWheel);\n return function () {\n var _scrollRef$current2;\n (_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 ? void 0 : _scrollRef$current2.removeEventListener('wheel', onWheel);\n };\n }, []);\n\n // Check if all flattenColumns has width\n var allFlattenColumnsWithWidth = React.useMemo(function () {\n return flattenColumns.every(function (column) {\n return column.width >= 0;\n });\n }, [flattenColumns]);\n\n // Add scrollbar column\n var lastColumn = flattenColumns[flattenColumns.length - 1];\n var ScrollBarColumn = {\n fixed: lastColumn ? lastColumn.fixed : null,\n scrollbar: true,\n onHeaderCell: function onHeaderCell() {\n return {\n className: \"\".concat(prefixCls, \"-cell-scrollbar\")\n };\n }\n };\n var columnsWithScrollbar = useMemo(function () {\n return combinationScrollBarSize ? [].concat(_toConsumableArray(columns), [ScrollBarColumn]) : columns;\n }, [combinationScrollBarSize, columns]);\n var flattenColumnsWithScrollbar = useMemo(function () {\n return combinationScrollBarSize ? [].concat(_toConsumableArray(flattenColumns), [ScrollBarColumn]) : flattenColumns;\n }, [combinationScrollBarSize, flattenColumns]);\n\n // Calculate the sticky offsets\n var headerStickyOffsets = useMemo(function () {\n var right = stickyOffsets.right,\n left = stickyOffsets.left;\n return _objectSpread(_objectSpread({}, stickyOffsets), {}, {\n left: direction === 'rtl' ? [].concat(_toConsumableArray(left.map(function (width) {\n return width + combinationScrollBarSize;\n })), [0]) : left,\n right: direction === 'rtl' ? right : [].concat(_toConsumableArray(right.map(function (width) {\n return width + combinationScrollBarSize;\n })), [0]),\n isSticky: isSticky\n });\n }, [combinationScrollBarSize, stickyOffsets, isSticky]);\n var mergedColumnWidth = useColumnWidth(colWidths, columCount);\n return /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread({\n overflow: 'hidden'\n }, isSticky ? {\n top: stickyTopOffset,\n bottom: stickyBottomOffset\n } : {}),\n ref: setScrollRef,\n className: classNames(className, _defineProperty({}, stickyClassName, !!stickyClassName))\n }, /*#__PURE__*/React.createElement(\"table\", {\n style: {\n tableLayout: 'fixed',\n visibility: noData || mergedColumnWidth ? null : 'hidden'\n }\n }, (!noData || !maxContentScroll || allFlattenColumnsWithWidth) && /*#__PURE__*/React.createElement(ColGroup, {\n colWidths: mergedColumnWidth ? [].concat(_toConsumableArray(mergedColumnWidth), [combinationScrollBarSize]) : [],\n columCount: columCount + 1,\n columns: flattenColumnsWithScrollbar\n }), children(_objectSpread(_objectSpread({}, restProps), {}, {\n stickyOffsets: headerStickyOffsets,\n columns: columnsWithScrollbar,\n flattenColumns: flattenColumnsWithScrollbar\n }))));\n});\nFixedHolder.displayName = 'FixedHolder';\n\n/** Return a table in div as fixed element which contains sticky info */\n// export default responseImmutable(FixedHolder);\nexport default /*#__PURE__*/React.memo(FixedHolder);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport { useContext } from '@rc-component/context';\nimport { getCellFixedInfo } from \"../utils/fixUtil\";\nimport { getColumnsKey } from \"../utils/valueUtil\";\nfunction HeaderRow(_ref) {\n var cells = _ref.cells,\n stickyOffsets = _ref.stickyOffsets,\n flattenColumns = _ref.flattenColumns,\n RowComponent = _ref.rowComponent,\n CellComponent = _ref.cellComponent,\n tdCellComponent = _ref.tdCellComponent,\n onHeaderRow = _ref.onHeaderRow,\n index = _ref.index;\n var _useContext = useContext(TableContext, ['prefixCls', 'direction']),\n prefixCls = _useContext.prefixCls,\n direction = _useContext.direction;\n var rowProps;\n if (onHeaderRow) {\n rowProps = onHeaderRow(cells.map(function (cell) {\n return cell.column;\n }), index);\n }\n var columnsKey = getColumnsKey(cells.map(function (cell) {\n return cell.column;\n }));\n return /*#__PURE__*/React.createElement(RowComponent, rowProps, cells.map(function (cell, cellIndex) {\n var column = cell.column;\n var fixedInfo = getCellFixedInfo(cell.colStart, cell.colEnd, flattenColumns, stickyOffsets, direction, column);\n var additionalProps;\n if (column && column.onHeaderCell) {\n additionalProps = cell.column.onHeaderCell(column);\n }\n return /*#__PURE__*/React.createElement(Cell, _extends({}, cell, {\n scope: column.title ? cell.colSpan > 1 ? 'colgroup' : 'col' : null,\n ellipsis: column.ellipsis,\n align: column.align,\n component: column.title ? CellComponent : tdCellComponent,\n prefixCls: prefixCls,\n key: columnsKey[cellIndex]\n }, fixedInfo, {\n additionalProps: additionalProps,\n rowType: \"header\"\n }));\n }));\n}\nHeaderRow.displayName = 'HeaderRow';\nexport default HeaderRow;","import { responseImmutable, useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport HeaderRow from \"./HeaderRow\";\nfunction parseHeaderRows(rootColumns) {\n var rows = [];\n function fillRowCells(columns, colIndex) {\n var rowIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n // Init rows\n rows[rowIndex] = rows[rowIndex] || [];\n var currentColIndex = colIndex;\n var colSpans = columns.filter(Boolean).map(function (column) {\n var cell = {\n key: column.key,\n className: column.className || '',\n children: column.title,\n column: column,\n colStart: currentColIndex\n };\n var colSpan = 1;\n var subColumns = column.children;\n if (subColumns && subColumns.length > 0) {\n colSpan = fillRowCells(subColumns, currentColIndex, rowIndex + 1).reduce(function (total, count) {\n return total + count;\n }, 0);\n cell.hasSubColumns = true;\n }\n if ('colSpan' in column) {\n colSpan = column.colSpan;\n }\n if ('rowSpan' in column) {\n cell.rowSpan = column.rowSpan;\n }\n cell.colSpan = colSpan;\n cell.colEnd = cell.colStart + colSpan - 1;\n rows[rowIndex].push(cell);\n currentColIndex += colSpan;\n return colSpan;\n });\n return colSpans;\n }\n\n // Generate `rows` cell data\n fillRowCells(rootColumns, 0);\n\n // Handle `rowSpan`\n var rowCount = rows.length;\n var _loop = function _loop(rowIndex) {\n rows[rowIndex].forEach(function (cell) {\n if (!('rowSpan' in cell) && !cell.hasSubColumns) {\n // eslint-disable-next-line no-param-reassign\n cell.rowSpan = rowCount - rowIndex;\n }\n });\n };\n for (var rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\n _loop(rowIndex);\n }\n return rows;\n}\nfunction Header(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var stickyOffsets = props.stickyOffsets,\n columns = props.columns,\n flattenColumns = props.flattenColumns,\n onHeaderRow = props.onHeaderRow;\n var _useContext = useContext(TableContext, ['prefixCls', 'getComponent']),\n prefixCls = _useContext.prefixCls,\n getComponent = _useContext.getComponent;\n var rows = React.useMemo(function () {\n return parseHeaderRows(columns);\n }, [columns]);\n var WrapperComponent = getComponent(['header', 'wrapper'], 'thead');\n var trComponent = getComponent(['header', 'row'], 'tr');\n var thComponent = getComponent(['header', 'cell'], 'th');\n var tdComponent = getComponent(['header', 'cell'], 'td');\n return /*#__PURE__*/React.createElement(WrapperComponent, {\n className: \"\".concat(prefixCls, \"-thead\")\n }, rows.map(function (row, rowIndex) {\n var rowNode = /*#__PURE__*/React.createElement(HeaderRow, {\n key: rowIndex,\n flattenColumns: flattenColumns,\n cells: row,\n stickyOffsets: stickyOffsets,\n rowComponent: trComponent,\n cellComponent: thComponent,\n tdCellComponent: tdComponent,\n onHeaderRow: onHeaderRow,\n index: rowIndex\n });\n return rowNode;\n }));\n}\nexport default responseImmutable(Header);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\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 = [\"children\"],\n _excluded2 = [\"fixed\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { EXPAND_COLUMN } from \"../constant\";\nimport { INTERNAL_COL_DEFINE } from \"../utils/legacyUtil\";\nexport function convertChildrenToColumns(children) {\n return toArray(children).filter(function (node) {\n return /*#__PURE__*/React.isValidElement(node);\n }).map(function (_ref) {\n var key = _ref.key,\n props = _ref.props;\n var nodeChildren = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n var column = _objectSpread({\n key: key\n }, restProps);\n if (nodeChildren) {\n column.children = convertChildrenToColumns(nodeChildren);\n }\n return column;\n });\n}\nfunction flatColumns(columns) {\n return columns.filter(function (column) {\n return column && _typeof(column) === 'object';\n }).reduce(function (list, column) {\n var fixed = column.fixed;\n // Convert `fixed='true'` to `fixed='left'` instead\n var parsedFixed = fixed === true ? 'left' : fixed;\n var subColumns = column.children;\n if (subColumns && subColumns.length > 0) {\n return [].concat(_toConsumableArray(list), _toConsumableArray(flatColumns(subColumns).map(function (subColum) {\n return _objectSpread({\n fixed: parsedFixed\n }, subColum);\n })));\n }\n return [].concat(_toConsumableArray(list), [_objectSpread(_objectSpread({}, column), {}, {\n fixed: parsedFixed\n })]);\n }, []);\n}\nfunction warningFixed(flattenColumns) {\n var allFixLeft = true;\n for (var i = 0; i < flattenColumns.length; i += 1) {\n var col = flattenColumns[i];\n if (allFixLeft && col.fixed !== 'left') {\n allFixLeft = false;\n } else if (!allFixLeft && col.fixed === 'left') {\n warning(false, \"Index \".concat(i - 1, \" of `columns` missing `fixed='left'` prop.\"));\n break;\n }\n }\n var allFixRight = true;\n for (var _i = flattenColumns.length - 1; _i >= 0; _i -= 1) {\n var _col = flattenColumns[_i];\n if (allFixRight && _col.fixed !== 'right') {\n allFixRight = false;\n } else if (!allFixRight && _col.fixed === 'right') {\n warning(false, \"Index \".concat(_i + 1, \" of `columns` missing `fixed='right'` prop.\"));\n break;\n }\n }\n}\nfunction revertForRtl(columns) {\n return columns.map(function (column) {\n var fixed = column.fixed,\n restProps = _objectWithoutProperties(column, _excluded2);\n\n // Convert `fixed='left'` to `fixed='right'` instead\n var parsedFixed = fixed;\n if (fixed === 'left') {\n parsedFixed = 'right';\n } else if (fixed === 'right') {\n parsedFixed = 'left';\n }\n return _objectSpread({\n fixed: parsedFixed\n }, restProps);\n });\n}\n\n/**\n * Parse `columns` & `children` into `columns`.\n */\nfunction useColumns(_ref2, transformColumns) {\n var prefixCls = _ref2.prefixCls,\n columns = _ref2.columns,\n children = _ref2.children,\n expandable = _ref2.expandable,\n expandedKeys = _ref2.expandedKeys,\n columnTitle = _ref2.columnTitle,\n getRowKey = _ref2.getRowKey,\n onTriggerExpand = _ref2.onTriggerExpand,\n expandIcon = _ref2.expandIcon,\n rowExpandable = _ref2.rowExpandable,\n expandIconColumnIndex = _ref2.expandIconColumnIndex,\n direction = _ref2.direction,\n expandRowByClick = _ref2.expandRowByClick,\n columnWidth = _ref2.columnWidth,\n fixed = _ref2.fixed;\n var baseColumns = React.useMemo(function () {\n return columns || convertChildrenToColumns(children);\n }, [columns, children]);\n\n // ========================== Expand ==========================\n var withExpandColumns = React.useMemo(function () {\n if (expandable) {\n var _expandColumn;\n var cloneColumns = baseColumns.slice();\n\n // >>> Warning if use `expandIconColumnIndex`\n if (process.env.NODE_ENV !== 'production' && expandIconColumnIndex >= 0) {\n warning(false, '`expandIconColumnIndex` is deprecated. Please use `Table.EXPAND_COLUMN` in `columns` instead.');\n }\n\n // >>> Insert expand column if not exist\n if (!cloneColumns.includes(EXPAND_COLUMN)) {\n var expandColIndex = expandIconColumnIndex || 0;\n if (expandColIndex >= 0) {\n cloneColumns.splice(expandColIndex, 0, EXPAND_COLUMN);\n }\n }\n\n // >>> Deduplicate additional expand column\n if (process.env.NODE_ENV !== 'production' && cloneColumns.filter(function (c) {\n return c === EXPAND_COLUMN;\n }).length > 1) {\n warning(false, 'There exist more than one `EXPAND_COLUMN` in `columns`.');\n }\n var expandColumnIndex = cloneColumns.indexOf(EXPAND_COLUMN);\n cloneColumns = cloneColumns.filter(function (column, index) {\n return column !== EXPAND_COLUMN || index === expandColumnIndex;\n });\n\n // >>> Check if expand column need to fixed\n var prevColumn = baseColumns[expandColumnIndex];\n var fixedColumn;\n if ((fixed === 'left' || fixed) && !expandIconColumnIndex) {\n fixedColumn = 'left';\n } else if ((fixed === 'right' || fixed) && expandIconColumnIndex === baseColumns.length) {\n fixedColumn = 'right';\n } else {\n fixedColumn = prevColumn ? prevColumn.fixed : null;\n }\n\n // >>> Create expandable column\n var expandColumn = (_expandColumn = {}, _defineProperty(_expandColumn, INTERNAL_COL_DEFINE, {\n className: \"\".concat(prefixCls, \"-expand-icon-col\"),\n columnType: 'EXPAND_COLUMN'\n }), _defineProperty(_expandColumn, \"title\", columnTitle), _defineProperty(_expandColumn, \"fixed\", fixedColumn), _defineProperty(_expandColumn, \"className\", \"\".concat(prefixCls, \"-row-expand-icon-cell\")), _defineProperty(_expandColumn, \"width\", columnWidth), _defineProperty(_expandColumn, \"render\", function render(_, record, index) {\n var rowKey = getRowKey(record, index);\n var expanded = expandedKeys.has(rowKey);\n var recordExpandable = rowExpandable ? rowExpandable(record) : true;\n var icon = expandIcon({\n prefixCls: prefixCls,\n expanded: expanded,\n expandable: recordExpandable,\n record: record,\n onExpand: onTriggerExpand\n });\n if (expandRowByClick) {\n return /*#__PURE__*/React.createElement(\"span\", {\n onClick: function onClick(e) {\n return e.stopPropagation();\n }\n }, icon);\n }\n return icon;\n }), _expandColumn);\n return cloneColumns.map(function (col) {\n return col === EXPAND_COLUMN ? expandColumn : col;\n });\n }\n if (process.env.NODE_ENV !== 'production' && baseColumns.includes(EXPAND_COLUMN)) {\n warning(false, '`expandable` is not config but there exist `EXPAND_COLUMN` in `columns`.');\n }\n return baseColumns.filter(function (col) {\n return col !== EXPAND_COLUMN;\n });\n }, [expandable, baseColumns, getRowKey, expandedKeys, expandIcon, direction]);\n\n // ========================= Transform ========================\n var mergedColumns = React.useMemo(function () {\n var finalColumns = withExpandColumns;\n if (transformColumns) {\n finalColumns = transformColumns(finalColumns);\n }\n\n // Always provides at least one column for table display\n if (!finalColumns.length) {\n finalColumns = [{\n render: function render() {\n return null;\n }\n }];\n }\n return finalColumns;\n }, [transformColumns, withExpandColumns, direction]);\n\n // ========================== Flatten =========================\n var flattenColumns = React.useMemo(function () {\n if (direction === 'rtl') {\n return revertForRtl(flatColumns(mergedColumns));\n }\n return flatColumns(mergedColumns);\n }, [mergedColumns, direction]);\n // Only check out of production since it's waste for each render\n if (process.env.NODE_ENV !== 'production') {\n warningFixed(direction === 'rtl' ? flattenColumns.slice().reverse() : flattenColumns);\n }\n return [mergedColumns, flattenColumns];\n}\nexport default useColumns;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nexport function renderExpandIcon(_ref) {\n var _classNames;\n var prefixCls = _ref.prefixCls,\n record = _ref.record,\n onExpand = _ref.onExpand,\n expanded = _ref.expanded,\n expandable = _ref.expandable;\n var expandClassName = \"\".concat(prefixCls, \"-row-expand-icon\");\n if (!expandable) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(expandClassName, \"\".concat(prefixCls, \"-row-spaced\"))\n });\n }\n var onClick = function onClick(event) {\n onExpand(record, event);\n event.stopPropagation();\n };\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(expandClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-row-expanded\"), expanded), _defineProperty(_classNames, \"\".concat(prefixCls, \"-row-collapsed\"), !expanded), _classNames)),\n onClick: onClick\n });\n}\nexport function findAllChildrenKeys(data, getRowKey, childrenColumnName) {\n var keys = [];\n function dig(list) {\n (list || []).forEach(function (item, index) {\n keys.push(getRowKey(item, index));\n dig(item[childrenColumnName]);\n });\n }\n dig(data);\n return keys;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { INTERNAL_HOOKS } from \"../constant\";\nimport { findAllChildrenKeys, renderExpandIcon } from \"../utils/expandUtil\";\nimport { getExpandableProps } from \"../utils/legacyUtil\";\nexport default function useExpand(props, mergedData, getRowKey) {\n var expandableConfig = getExpandableProps(props);\n var expandIcon = expandableConfig.expandIcon,\n expandedRowKeys = expandableConfig.expandedRowKeys,\n defaultExpandedRowKeys = expandableConfig.defaultExpandedRowKeys,\n defaultExpandAllRows = expandableConfig.defaultExpandAllRows,\n expandedRowRender = expandableConfig.expandedRowRender,\n onExpand = expandableConfig.onExpand,\n onExpandedRowsChange = expandableConfig.onExpandedRowsChange,\n childrenColumnName = expandableConfig.childrenColumnName;\n var mergedExpandIcon = expandIcon || renderExpandIcon;\n var mergedChildrenColumnName = childrenColumnName || 'children';\n var expandableType = React.useMemo(function () {\n if (expandedRowRender) {\n return 'row';\n }\n /* eslint-disable no-underscore-dangle */\n /**\n * Fix https://github.com/ant-design/ant-design/issues/21154\n * This is a workaround to not to break current behavior.\n * We can remove follow code after final release.\n *\n * To other developer:\n * Do not use `__PARENT_RENDER_ICON__` in prod since we will remove this when refactor\n */\n if (props.expandable && props.internalHooks === INTERNAL_HOOKS && props.expandable.__PARENT_RENDER_ICON__ || mergedData.some(function (record) {\n return record && _typeof(record) === 'object' && record[mergedChildrenColumnName];\n })) {\n return 'nest';\n }\n /* eslint-enable */\n return false;\n }, [!!expandedRowRender, mergedData]);\n var _React$useState = React.useState(function () {\n if (defaultExpandedRowKeys) {\n return defaultExpandedRowKeys;\n }\n if (defaultExpandAllRows) {\n return findAllChildrenKeys(mergedData, getRowKey, mergedChildrenColumnName);\n }\n return [];\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerExpandedKeys = _React$useState2[0],\n setInnerExpandedKeys = _React$useState2[1];\n var mergedExpandedKeys = React.useMemo(function () {\n return new Set(expandedRowKeys || innerExpandedKeys || []);\n }, [expandedRowKeys, innerExpandedKeys]);\n var onTriggerExpand = React.useCallback(function (record) {\n var key = getRowKey(record, mergedData.indexOf(record));\n var newExpandedKeys;\n var hasKey = mergedExpandedKeys.has(key);\n if (hasKey) {\n mergedExpandedKeys.delete(key);\n newExpandedKeys = _toConsumableArray(mergedExpandedKeys);\n } else {\n newExpandedKeys = [].concat(_toConsumableArray(mergedExpandedKeys), [key]);\n }\n setInnerExpandedKeys(newExpandedKeys);\n if (onExpand) {\n onExpand(!hasKey, record);\n }\n if (onExpandedRowsChange) {\n onExpandedRowsChange(newExpandedKeys);\n }\n }, [getRowKey, mergedExpandedKeys, mergedData, onExpand, onExpandedRowsChange]);\n\n // Warning if use `expandedRowRender` and nest children in the same time\n if (process.env.NODE_ENV !== 'production' && expandedRowRender && mergedData.some(function (record) {\n return Array.isArray(record === null || record === void 0 ? void 0 : record[mergedChildrenColumnName]);\n })) {\n warning(false, '`expandedRowRender` should not use with nested Table');\n }\n return [expandableConfig, expandableType, mergedExpandedKeys, mergedExpandIcon, mergedChildrenColumnName, onTriggerExpand];\n}","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport { getCellFixedInfo } from \"../utils/fixUtil\";\nexport default function useFixedInfo(flattenColumns, stickyOffsets, direction, columns) {\n var fixedInfoList = flattenColumns.map(function (_, colIndex) {\n return getCellFixedInfo(colIndex, colIndex, flattenColumns, stickyOffsets, direction, columns === null || columns === void 0 ? void 0 : columns[colIndex]);\n });\n return useMemo(function () {\n return fixedInfoList;\n }, [fixedInfoList], function (prev, next) {\n return !isEqual(prev, next);\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef, useState, useEffect } from 'react';\n/**\n * Execute code before next frame but async\n */\nexport function useLayoutState(defaultState) {\n var stateRef = useRef(defaultState);\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n var lastPromiseRef = useRef(null);\n var updateBatchRef = useRef([]);\n function setFrameState(updater) {\n updateBatchRef.current.push(updater);\n var promise = Promise.resolve();\n lastPromiseRef.current = promise;\n promise.then(function () {\n if (lastPromiseRef.current === promise) {\n var prevBatch = updateBatchRef.current;\n var prevState = stateRef.current;\n updateBatchRef.current = [];\n prevBatch.forEach(function (batchUpdater) {\n stateRef.current = batchUpdater(stateRef.current);\n });\n lastPromiseRef.current = null;\n if (prevState !== stateRef.current) {\n forceUpdate({});\n }\n }\n });\n }\n useEffect(function () {\n return function () {\n lastPromiseRef.current = null;\n };\n }, []);\n return [stateRef.current, setFrameState];\n}\n\n/** Lock frame, when frame pass reset the lock. */\nexport function useTimeoutLock(defaultState) {\n var frameRef = useRef(defaultState || null);\n var timeoutRef = useRef();\n function cleanUp() {\n window.clearTimeout(timeoutRef.current);\n }\n function setState(newState) {\n frameRef.current = newState;\n cleanUp();\n timeoutRef.current = window.setTimeout(function () {\n frameRef.current = null;\n timeoutRef.current = undefined;\n }, 100);\n }\n function getState() {\n return frameRef.current;\n }\n useEffect(function () {\n return cleanUp;\n }, []);\n return [setState, getState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useHover() {\n var _React$useState = React.useState(-1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n startRow = _React$useState2[0],\n setStartRow = _React$useState2[1];\n var _React$useState3 = React.useState(-1),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n endRow = _React$useState4[0],\n setEndRow = _React$useState4[1];\n var onHover = React.useCallback(function (start, end) {\n setStartRow(start);\n setEndRow(end);\n }, []);\n return [startRow, endRow, onHover];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\n// fix ssr render\nvar defaultContainer = canUseDom() ? window : null;\n\n/** Sticky header hooks */\nexport default function useSticky(sticky, prefixCls) {\n var _ref = _typeof(sticky) === 'object' ? sticky : {},\n _ref$offsetHeader = _ref.offsetHeader,\n offsetHeader = _ref$offsetHeader === void 0 ? 0 : _ref$offsetHeader,\n _ref$offsetSummary = _ref.offsetSummary,\n offsetSummary = _ref$offsetSummary === void 0 ? 0 : _ref$offsetSummary,\n _ref$offsetScroll = _ref.offsetScroll,\n offsetScroll = _ref$offsetScroll === void 0 ? 0 : _ref$offsetScroll,\n _ref$getContainer = _ref.getContainer,\n getContainer = _ref$getContainer === void 0 ? function () {\n return defaultContainer;\n } : _ref$getContainer;\n var container = getContainer() || defaultContainer;\n return React.useMemo(function () {\n var isSticky = !!sticky;\n return {\n isSticky: isSticky,\n stickyClassName: isSticky ? \"\".concat(prefixCls, \"-sticky-holder\") : '',\n offsetHeader: offsetHeader,\n offsetSummary: offsetSummary,\n offsetScroll: offsetScroll,\n container: container\n };\n }, [offsetScroll, offsetHeader, offsetSummary, prefixCls, container]);\n}","import { useMemo } from 'react';\n/**\n * Get sticky column offset width\n */\nfunction useStickyOffsets(colWidths, columnCount, direction) {\n var stickyOffsets = useMemo(function () {\n var leftOffsets = [];\n var rightOffsets = [];\n var left = 0;\n var right = 0;\n for (var start = 0; start < columnCount; start += 1) {\n if (direction === 'rtl') {\n // Left offset\n rightOffsets[start] = right;\n right += colWidths[start] || 0;\n\n // Right offset\n var end = columnCount - start - 1;\n leftOffsets[end] = left;\n left += colWidths[end] || 0;\n } else {\n // Left offset\n leftOffsets[start] = left;\n left += colWidths[start] || 0;\n\n // Right offset\n var _end = columnCount - start - 1;\n rightOffsets[_end] = right;\n right += colWidths[_end] || 0;\n }\n }\n return {\n left: leftOffsets,\n right: rightOffsets\n };\n }, [colWidths, columnCount, direction]);\n return stickyOffsets;\n}\nexport default useStickyOffsets;","import * as React from 'react';\nfunction Panel(_ref) {\n var className = _ref.className,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, children);\n}\nexport default Panel;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { getOffset } from \"rc-util/es/Dom/css\";\nimport getScrollBarSize from \"rc-util/es/getScrollBarSize\";\nimport * as React from 'react';\nimport TableContext from \"./context/TableContext\";\nimport { useLayoutState } from \"./hooks/useFrame\";\nvar StickyScrollBar = function StickyScrollBar(_ref, ref) {\n var _scrollBodyRef$curren, _scrollBodyRef$curren2;\n var scrollBodyRef = _ref.scrollBodyRef,\n onScroll = _ref.onScroll,\n offsetScroll = _ref.offsetScroll,\n container = _ref.container;\n var prefixCls = useContext(TableContext, 'prefixCls');\n var bodyScrollWidth = ((_scrollBodyRef$curren = scrollBodyRef.current) === null || _scrollBodyRef$curren === void 0 ? void 0 : _scrollBodyRef$curren.scrollWidth) || 0;\n var bodyWidth = ((_scrollBodyRef$curren2 = scrollBodyRef.current) === null || _scrollBodyRef$curren2 === void 0 ? void 0 : _scrollBodyRef$curren2.clientWidth) || 0;\n var scrollBarWidth = bodyScrollWidth && bodyWidth * (bodyWidth / bodyScrollWidth);\n var scrollBarRef = React.useRef();\n var _useLayoutState = useLayoutState({\n scrollLeft: 0,\n isHiddenScrollBar: false\n }),\n _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n scrollState = _useLayoutState2[0],\n setScrollState = _useLayoutState2[1];\n var refState = React.useRef({\n delta: 0,\n x: 0\n });\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n isActive = _React$useState2[0],\n setActive = _React$useState2[1];\n var onMouseUp = function onMouseUp() {\n setActive(false);\n };\n var onMouseDown = function onMouseDown(event) {\n event.persist();\n refState.current.delta = event.pageX - scrollState.scrollLeft;\n refState.current.x = 0;\n setActive(true);\n event.preventDefault();\n };\n var onMouseMove = function onMouseMove(event) {\n var _window;\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons\n var _ref2 = event || ((_window = window) === null || _window === void 0 ? void 0 : _window.event),\n buttons = _ref2.buttons;\n if (!isActive || buttons === 0) {\n // If out body mouse up, we can set isActive false when mouse move\n if (isActive) {\n setActive(false);\n }\n return;\n }\n var left = refState.current.x + event.pageX - refState.current.x - refState.current.delta;\n if (left <= 0) {\n left = 0;\n }\n if (left + scrollBarWidth >= bodyWidth) {\n left = bodyWidth - scrollBarWidth;\n }\n onScroll({\n scrollLeft: left / bodyWidth * (bodyScrollWidth + 2)\n });\n refState.current.x = event.pageX;\n };\n var onContainerScroll = function onContainerScroll() {\n if (!scrollBodyRef.current) {\n return;\n }\n var tableOffsetTop = getOffset(scrollBodyRef.current).top;\n var tableBottomOffset = tableOffsetTop + scrollBodyRef.current.offsetHeight;\n var currentClientOffset = container === window ? document.documentElement.scrollTop + window.innerHeight : getOffset(container).top + container.clientHeight;\n if (tableBottomOffset - getScrollBarSize() <= currentClientOffset || tableOffsetTop >= currentClientOffset - offsetScroll) {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n isHiddenScrollBar: true\n });\n });\n } else {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n isHiddenScrollBar: false\n });\n });\n }\n };\n var setScrollLeft = function setScrollLeft(left) {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n scrollLeft: left / bodyScrollWidth * bodyWidth || 0\n });\n });\n };\n React.useImperativeHandle(ref, function () {\n return {\n setScrollLeft: setScrollLeft\n };\n });\n React.useEffect(function () {\n var onMouseUpListener = addEventListener(document.body, 'mouseup', onMouseUp, false);\n var onMouseMoveListener = addEventListener(document.body, 'mousemove', onMouseMove, false);\n onContainerScroll();\n return function () {\n onMouseUpListener.remove();\n onMouseMoveListener.remove();\n };\n }, [scrollBarWidth, isActive]);\n React.useEffect(function () {\n var onScrollListener = addEventListener(container, 'scroll', onContainerScroll, false);\n var onResizeListener = addEventListener(window, 'resize', onContainerScroll, false);\n return function () {\n onScrollListener.remove();\n onResizeListener.remove();\n };\n }, [container]);\n React.useEffect(function () {\n if (!scrollState.isHiddenScrollBar) {\n setScrollState(function (state) {\n var bodyNode = scrollBodyRef.current;\n if (!bodyNode) {\n return state;\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n scrollLeft: bodyNode.scrollLeft / bodyNode.scrollWidth * bodyNode.clientWidth\n });\n });\n }\n }, [scrollState.isHiddenScrollBar]);\n if (bodyScrollWidth <= bodyWidth || !scrollBarWidth || scrollState.isHiddenScrollBar) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n height: getScrollBarSize(),\n width: bodyWidth,\n bottom: offsetScroll\n },\n className: \"\".concat(prefixCls, \"-sticky-scroll\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n onMouseDown: onMouseDown,\n ref: scrollBarRef,\n className: classNames(\"\".concat(prefixCls, \"-sticky-scroll-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-sticky-scroll-bar-active\"), isActive)),\n style: {\n width: \"\".concat(scrollBarWidth, \"px\"),\n transform: \"translate3d(\".concat(scrollState.scrollLeft, \"px, 0, 0)\")\n }\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(StickyScrollBar);","/* istanbul ignore next */\n/**\n * This is a syntactic sugar for `columns` prop.\n * So HOC will not work on this.\n */ // eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction Column(_) {\n return null;\n}\nexport default Column;","/* istanbul ignore next */\n/**\n * This is a syntactic sugar for `columns` prop.\n * So HOC will not work on this.\n */ // eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction ColumnGroup(_) {\n return null;\n}\nexport default ColumnGroup;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n/**\n * Feature:\n * - fixed not need to set width\n * - support `rowExpandable` to config row expand logic\n * - add `summary` to support `() => ReactNode`\n *\n * Update:\n * - `dataIndex` is `array[]` now\n * - `expandable` wrap all the expand related props\n *\n * Removed:\n * - expandIconAsCell\n * - useFixedHeader\n * - rowRef\n * - columns[number].onCellClick\n * - onRowClick\n * - onRowDoubleClick\n * - onRowMouseEnter\n * - onRowMouseLeave\n * - getBodyWrapper\n * - bodyStyle\n *\n * Deprecated:\n * - All expanded props, move into expandable\n */\n\nimport { makeImmutable } from '@rc-component/context';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport getValue from \"rc-util/es/utils/get\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport Body from \"./Body\";\nimport ColGroup from \"./ColGroup\";\nimport { EXPAND_COLUMN, INTERNAL_HOOKS } from \"./constant\";\nimport TableContext from \"./context/TableContext\";\nimport FixedHolder from \"./FixedHolder\";\nimport Footer, { FooterComponents } from \"./Footer\";\nimport Summary from \"./Footer/Summary\";\nimport Header from \"./Header/Header\";\nimport useColumns from \"./hooks/useColumns\";\nimport useExpand from \"./hooks/useExpand\";\nimport useFixedInfo from \"./hooks/useFixedInfo\";\nimport { useLayoutState, useTimeoutLock } from \"./hooks/useFrame\";\nimport useHover from \"./hooks/useHover\";\nimport useSticky from \"./hooks/useSticky\";\nimport useStickyOffsets from \"./hooks/useStickyOffsets\";\nimport Panel from \"./Panel\";\nimport StickyScrollBar from \"./stickyScrollBar\";\nimport Column from \"./sugar/Column\";\nimport ColumnGroup from \"./sugar/ColumnGroup\";\nimport { getColumnsKey, validateValue } from \"./utils/valueUtil\";\n\n// Used for conditions cache\nvar EMPTY_DATA = [];\n\n// Used for customize scroll\nvar EMPTY_SCROLL_TARGET = {};\nfunction defaultEmpty() {\n return 'No Data';\n}\nfunction Table(tableProps) {\n var _classNames;\n var props = _objectSpread({\n rowKey: 'key',\n prefixCls: 'rc-table',\n emptyText: defaultEmpty\n }, tableProps);\n var prefixCls = props.prefixCls,\n className = props.className,\n rowClassName = props.rowClassName,\n style = props.style,\n data = props.data,\n rowKey = props.rowKey,\n scroll = props.scroll,\n tableLayout = props.tableLayout,\n direction = props.direction,\n title = props.title,\n footer = props.footer,\n summary = props.summary,\n caption = props.caption,\n id = props.id,\n showHeader = props.showHeader,\n components = props.components,\n emptyText = props.emptyText,\n onRow = props.onRow,\n onHeaderRow = props.onHeaderRow,\n internalHooks = props.internalHooks,\n transformColumns = props.transformColumns,\n internalRefs = props.internalRefs,\n sticky = props.sticky;\n var mergedData = data || EMPTY_DATA;\n var hasData = !!mergedData.length;\n\n // ===================== Warning ======================\n if (process.env.NODE_ENV !== 'production') {\n ['onRowClick', 'onRowDoubleClick', 'onRowContextMenu', 'onRowMouseEnter', 'onRowMouseLeave'].forEach(function (name) {\n warning(props[name] === undefined, \"`\".concat(name, \"` is removed, please use `onRow` instead.\"));\n });\n warning(!('getBodyWrapper' in props), '`getBodyWrapper` is deprecated, please use custom `components` instead.');\n }\n\n // ==================== Customize =====================\n var getComponent = React.useCallback(function (path, defaultComponent) {\n return getValue(components, path) || defaultComponent;\n }, [components]);\n var getRowKey = React.useMemo(function () {\n if (typeof rowKey === 'function') {\n return rowKey;\n }\n return function (record) {\n var key = record && record[rowKey];\n if (process.env.NODE_ENV !== 'production') {\n warning(key !== undefined, 'Each record in table should have a unique `key` prop, or set `rowKey` to an unique primary key.');\n }\n return key;\n };\n }, [rowKey]);\n\n // ====================== Hover =======================\n var _useHover = useHover(),\n _useHover2 = _slicedToArray(_useHover, 3),\n startRow = _useHover2[0],\n endRow = _useHover2[1],\n onHover = _useHover2[2];\n\n // ====================== Expand ======================\n var _useExpand = useExpand(props, mergedData, getRowKey),\n _useExpand2 = _slicedToArray(_useExpand, 6),\n expandableConfig = _useExpand2[0],\n expandableType = _useExpand2[1],\n mergedExpandedKeys = _useExpand2[2],\n mergedExpandIcon = _useExpand2[3],\n mergedChildrenColumnName = _useExpand2[4],\n onTriggerExpand = _useExpand2[5];\n\n // ====================== Column ======================\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n componentWidth = _React$useState2[0],\n setComponentWidth = _React$useState2[1];\n var _useColumns = useColumns(_objectSpread(_objectSpread(_objectSpread({}, props), expandableConfig), {}, {\n expandable: !!expandableConfig.expandedRowRender,\n columnTitle: expandableConfig.columnTitle,\n expandedKeys: mergedExpandedKeys,\n getRowKey: getRowKey,\n // https://github.com/ant-design/ant-design/issues/23894\n onTriggerExpand: onTriggerExpand,\n expandIcon: mergedExpandIcon,\n expandIconColumnIndex: expandableConfig.expandIconColumnIndex,\n direction: direction\n }), internalHooks === INTERNAL_HOOKS ? transformColumns : null),\n _useColumns2 = _slicedToArray(_useColumns, 2),\n columns = _useColumns2[0],\n flattenColumns = _useColumns2[1];\n var columnContext = React.useMemo(function () {\n return {\n columns: columns,\n flattenColumns: flattenColumns\n };\n }, [columns, flattenColumns]);\n\n // ====================== Scroll ======================\n var fullTableRef = React.useRef();\n var scrollHeaderRef = React.useRef();\n var scrollBodyRef = React.useRef();\n var scrollBodyContainerRef = React.useRef();\n var scrollSummaryRef = React.useRef();\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n pingedLeft = _React$useState4[0],\n setPingedLeft = _React$useState4[1];\n var _React$useState5 = React.useState(false),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n pingedRight = _React$useState6[0],\n setPingedRight = _React$useState6[1];\n var _useLayoutState = useLayoutState(new Map()),\n _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n colsWidths = _useLayoutState2[0],\n updateColsWidths = _useLayoutState2[1];\n\n // Convert map to number width\n var colsKeys = getColumnsKey(flattenColumns);\n var pureColWidths = colsKeys.map(function (columnKey) {\n return colsWidths.get(columnKey);\n });\n var colWidths = React.useMemo(function () {\n return pureColWidths;\n }, [pureColWidths.join('_')]);\n var stickyOffsets = useStickyOffsets(colWidths, flattenColumns.length, direction);\n var fixHeader = scroll && validateValue(scroll.y);\n var horizonScroll = scroll && validateValue(scroll.x) || Boolean(expandableConfig.fixed);\n var fixColumn = horizonScroll && flattenColumns.some(function (_ref) {\n var fixed = _ref.fixed;\n return fixed;\n });\n\n // Sticky\n var stickyRef = React.useRef();\n var _useSticky = useSticky(sticky, prefixCls),\n isSticky = _useSticky.isSticky,\n offsetHeader = _useSticky.offsetHeader,\n offsetSummary = _useSticky.offsetSummary,\n offsetScroll = _useSticky.offsetScroll,\n stickyClassName = _useSticky.stickyClassName,\n container = _useSticky.container;\n\n // Footer (Fix footer must fixed header)\n var summaryNode = React.useMemo(function () {\n return summary === null || summary === void 0 ? void 0 : summary(mergedData);\n }, [summary, mergedData]);\n var fixFooter = (fixHeader || isSticky) && /*#__PURE__*/React.isValidElement(summaryNode) && summaryNode.type === Summary && summaryNode.props.fixed;\n\n // Scroll\n var scrollXStyle;\n var scrollYStyle;\n var scrollTableStyle;\n if (fixHeader) {\n scrollYStyle = {\n overflowY: 'scroll',\n maxHeight: scroll.y\n };\n }\n if (horizonScroll) {\n scrollXStyle = {\n overflowX: 'auto'\n };\n // When no vertical scrollbar, should hide it\n // https://github.com/ant-design/ant-design/pull/20705\n // https://github.com/ant-design/ant-design/issues/21879\n if (!fixHeader) {\n scrollYStyle = {\n overflowY: 'hidden'\n };\n }\n scrollTableStyle = {\n width: (scroll === null || scroll === void 0 ? void 0 : scroll.x) === true ? 'auto' : scroll === null || scroll === void 0 ? void 0 : scroll.x,\n minWidth: '100%'\n };\n }\n var onColumnResize = React.useCallback(function (columnKey, width) {\n if (isVisible(fullTableRef.current)) {\n updateColsWidths(function (widths) {\n if (widths.get(columnKey) !== width) {\n var newWidths = new Map(widths);\n newWidths.set(columnKey, width);\n return newWidths;\n }\n return widths;\n });\n }\n }, []);\n var _useTimeoutLock = useTimeoutLock(null),\n _useTimeoutLock2 = _slicedToArray(_useTimeoutLock, 2),\n setScrollTarget = _useTimeoutLock2[0],\n getScrollTarget = _useTimeoutLock2[1];\n function forceScroll(scrollLeft, target) {\n if (!target) {\n return;\n }\n if (typeof target === 'function') {\n target(scrollLeft);\n } else if (target.scrollLeft !== scrollLeft) {\n target.scrollLeft = scrollLeft;\n\n // Delay to force scroll position if not sync\n // ref: https://github.com/ant-design/ant-design/issues/37179\n if (target.scrollLeft !== scrollLeft) {\n setTimeout(function () {\n target.scrollLeft = scrollLeft;\n }, 0);\n }\n }\n }\n var onScroll = useEvent(function (_ref2) {\n var currentTarget = _ref2.currentTarget,\n scrollLeft = _ref2.scrollLeft;\n var isRTL = direction === 'rtl';\n var mergedScrollLeft = typeof scrollLeft === 'number' ? scrollLeft : currentTarget.scrollLeft;\n var compareTarget = currentTarget || EMPTY_SCROLL_TARGET;\n if (!getScrollTarget() || getScrollTarget() === compareTarget) {\n var _stickyRef$current;\n setScrollTarget(compareTarget);\n forceScroll(mergedScrollLeft, scrollHeaderRef.current);\n forceScroll(mergedScrollLeft, scrollBodyRef.current);\n forceScroll(mergedScrollLeft, scrollSummaryRef.current);\n forceScroll(mergedScrollLeft, (_stickyRef$current = stickyRef.current) === null || _stickyRef$current === void 0 ? void 0 : _stickyRef$current.setScrollLeft);\n }\n if (currentTarget) {\n var scrollWidth = currentTarget.scrollWidth,\n clientWidth = currentTarget.clientWidth;\n // There is no space to scroll\n if (scrollWidth === clientWidth) {\n setPingedLeft(false);\n setPingedRight(false);\n return;\n }\n if (isRTL) {\n setPingedLeft(-mergedScrollLeft < scrollWidth - clientWidth);\n setPingedRight(-mergedScrollLeft > 0);\n } else {\n setPingedLeft(mergedScrollLeft > 0);\n setPingedRight(mergedScrollLeft < scrollWidth - clientWidth);\n }\n }\n });\n var triggerOnScroll = function triggerOnScroll() {\n if (horizonScroll && scrollBodyRef.current) {\n onScroll({\n currentTarget: scrollBodyRef.current\n });\n } else {\n setPingedLeft(false);\n setPingedRight(false);\n }\n };\n var onFullTableResize = function onFullTableResize(_ref3) {\n var width = _ref3.width;\n if (width !== componentWidth) {\n triggerOnScroll();\n setComponentWidth(fullTableRef.current ? fullTableRef.current.offsetWidth : width);\n }\n };\n\n // Sync scroll bar when init or `horizonScroll`, `data` and `columns.length` changed\n var mounted = React.useRef(false);\n React.useEffect(function () {\n // onFullTableResize will be trigger once when ResizeObserver is mounted\n // This will reduce one duplicated triggerOnScroll time\n if (mounted.current) {\n triggerOnScroll();\n }\n }, [horizonScroll, data, columns.length]);\n React.useEffect(function () {\n mounted.current = true;\n }, []);\n\n // ===================== Effects ======================\n var _React$useState7 = React.useState(0),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n scrollbarSize = _React$useState8[0],\n setScrollbarSize = _React$useState8[1];\n var _React$useState9 = React.useState(true),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n supportSticky = _React$useState10[0],\n setSupportSticky = _React$useState10[1]; // Only IE not support, we mark as support first\n\n React.useEffect(function () {\n if (scrollBodyRef.current instanceof Element) {\n setScrollbarSize(getTargetScrollBarSize(scrollBodyRef.current).width);\n } else {\n setScrollbarSize(getTargetScrollBarSize(scrollBodyContainerRef.current).width);\n }\n setSupportSticky(isStyleSupport('position', 'sticky'));\n }, []);\n\n // ================== INTERNAL HOOKS ==================\n React.useEffect(function () {\n if (internalHooks === INTERNAL_HOOKS && internalRefs) {\n internalRefs.body.current = scrollBodyRef.current;\n }\n });\n\n // ========================================================================\n // == Render ==\n // ========================================================================\n // =================== Render: Func ===================\n var renderFixedHeaderTable = React.useCallback(function (fixedHolderPassProps) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header, fixedHolderPassProps), fixFooter === 'top' && /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode));\n }, [fixFooter, summaryNode]);\n var renderFixedFooterTable = React.useCallback(function (fixedHolderPassProps) {\n return /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode);\n }, [summaryNode]);\n\n // =================== Render: Node ===================\n var TableComponent = getComponent(['table'], 'table');\n\n // Table layout\n var mergedTableLayout = React.useMemo(function () {\n if (tableLayout) {\n return tableLayout;\n }\n // https://github.com/ant-design/ant-design/issues/25227\n // When scroll.x is max-content, no need to fix table layout\n // it's width should stretch out to fit content\n if (fixColumn) {\n return (scroll === null || scroll === void 0 ? void 0 : scroll.x) === 'max-content' ? 'auto' : 'fixed';\n }\n if (fixHeader || isSticky || flattenColumns.some(function (_ref4) {\n var ellipsis = _ref4.ellipsis;\n return ellipsis;\n })) {\n return 'fixed';\n }\n return 'auto';\n }, [fixHeader, fixColumn, flattenColumns, tableLayout, isSticky]);\n var groupTableNode;\n\n // Header props\n var headerProps = {\n colWidths: colWidths,\n columCount: flattenColumns.length,\n stickyOffsets: stickyOffsets,\n onHeaderRow: onHeaderRow,\n fixHeader: fixHeader,\n scroll: scroll\n };\n\n // Empty\n var emptyNode = React.useMemo(function () {\n if (hasData) {\n return null;\n }\n if (typeof emptyText === 'function') {\n return emptyText();\n }\n return emptyText;\n }, [hasData, emptyText]);\n\n // Body\n var bodyTable = /*#__PURE__*/React.createElement(Body, {\n data: mergedData,\n measureColumnWidth: fixHeader || horizonScroll || isSticky,\n expandedKeys: mergedExpandedKeys,\n rowExpandable: expandableConfig.rowExpandable,\n getRowKey: getRowKey,\n onRow: onRow,\n emptyNode: emptyNode,\n childrenColumnName: mergedChildrenColumnName\n });\n var bodyColGroup = /*#__PURE__*/React.createElement(ColGroup, {\n colWidths: flattenColumns.map(function (_ref5) {\n var width = _ref5.width;\n return width;\n }),\n columns: flattenColumns\n });\n var captionElement = caption !== null && caption !== undefined ? /*#__PURE__*/React.createElement(\"caption\", {\n className: \"\".concat(prefixCls, \"-caption\")\n }, caption) : undefined;\n var customizeScrollBody = getComponent(['body']);\n if (process.env.NODE_ENV !== 'production' && typeof customizeScrollBody === 'function' && hasData && !fixHeader) {\n warning(false, '`components.body` with render props is only work on `scroll.y`.');\n }\n var dataProps = pickAttrs(props, {\n data: true\n });\n var ariaProps = pickAttrs(props, {\n aria: true\n });\n if (fixHeader || isSticky) {\n // >>>>>> Fixed Header\n var bodyContent;\n if (typeof customizeScrollBody === 'function') {\n bodyContent = customizeScrollBody(mergedData, {\n scrollbarSize: scrollbarSize,\n ref: scrollBodyRef,\n onScroll: onScroll\n });\n headerProps.colWidths = flattenColumns.map(function (_ref6, index) {\n var width = _ref6.width;\n var colWidth = index === flattenColumns.length - 1 ? width - scrollbarSize : width;\n if (typeof colWidth === 'number' && !Number.isNaN(colWidth)) {\n return colWidth;\n }\n if (process.env.NODE_ENV !== 'production') {\n warning(props.columns.length === 0, 'When use `components.body` with render props. Each column should have a fixed `width` value.');\n }\n return 0;\n });\n } else {\n bodyContent = /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n onScroll: onScroll,\n ref: scrollBodyRef,\n className: classNames(\"\".concat(prefixCls, \"-body\"))\n }, /*#__PURE__*/React.createElement(TableComponent, _extends({\n style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n tableLayout: mergedTableLayout\n })\n }, ariaProps), captionElement, bodyColGroup, bodyTable, !fixFooter && summaryNode && /*#__PURE__*/React.createElement(Footer, {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns,\n columns: columns\n }, summaryNode)));\n }\n\n // Fixed holder share the props\n var fixedHolderProps = _objectSpread(_objectSpread(_objectSpread({\n noData: !mergedData.length,\n maxContentScroll: horizonScroll && scroll.x === 'max-content'\n }, headerProps), columnContext), {}, {\n direction: direction,\n stickyClassName: stickyClassName,\n onScroll: onScroll\n });\n groupTableNode = /*#__PURE__*/React.createElement(React.Fragment, null, showHeader !== false && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n stickyTopOffset: offsetHeader,\n className: \"\".concat(prefixCls, \"-header\"),\n ref: scrollHeaderRef\n }), renderFixedHeaderTable), bodyContent, fixFooter && fixFooter !== 'top' && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n stickyBottomOffset: offsetSummary,\n className: \"\".concat(prefixCls, \"-summary\"),\n ref: scrollSummaryRef\n }), renderFixedFooterTable), isSticky && /*#__PURE__*/React.createElement(StickyScrollBar, {\n ref: stickyRef,\n offsetScroll: offsetScroll,\n scrollBodyRef: scrollBodyRef,\n onScroll: onScroll,\n container: container\n }));\n } else {\n // >>>>>> Unique table\n groupTableNode = /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n className: classNames(\"\".concat(prefixCls, \"-content\")),\n onScroll: onScroll,\n ref: scrollBodyRef\n }, /*#__PURE__*/React.createElement(TableComponent, _extends({\n style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n tableLayout: mergedTableLayout\n })\n }, ariaProps), captionElement, bodyColGroup, showHeader !== false && /*#__PURE__*/React.createElement(Header, _extends({}, headerProps, columnContext)), bodyTable, summaryNode && /*#__PURE__*/React.createElement(Footer, {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns,\n columns: columns\n }, summaryNode)));\n }\n var fullTable = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ping-left\"), pingedLeft), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ping-right\"), pingedRight), _defineProperty(_classNames, \"\".concat(prefixCls, \"-layout-fixed\"), tableLayout === 'fixed'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-fixed-header\"), fixHeader), _defineProperty(_classNames, \"\".concat(prefixCls, \"-fixed-column\"), fixColumn), _defineProperty(_classNames, \"\".concat(prefixCls, \"-scroll-horizontal\"), horizonScroll), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-fix-left\"), flattenColumns[0] && flattenColumns[0].fixed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-fix-right\"), flattenColumns[flattenColumns.length - 1] && flattenColumns[flattenColumns.length - 1].fixed === 'right'), _classNames)),\n style: style,\n id: id,\n ref: fullTableRef\n }, dataProps), title && /*#__PURE__*/React.createElement(Panel, {\n className: \"\".concat(prefixCls, \"-title\")\n }, title(mergedData)), /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollBodyContainerRef,\n className: \"\".concat(prefixCls, \"-container\")\n }, groupTableNode), footer && /*#__PURE__*/React.createElement(Panel, {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer(mergedData)));\n if (horizonScroll) {\n fullTable = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onFullTableResize\n }, fullTable);\n }\n var fixedInfoList = useFixedInfo(flattenColumns, stickyOffsets, direction, columns);\n var TableContextValue = React.useMemo(function () {\n return {\n // Table\n prefixCls: prefixCls,\n getComponent: getComponent,\n scrollbarSize: scrollbarSize,\n direction: direction,\n fixedInfoList: fixedInfoList,\n isSticky: isSticky,\n supportSticky: supportSticky,\n componentWidth: componentWidth,\n fixHeader: fixHeader,\n fixColumn: fixColumn,\n horizonScroll: horizonScroll,\n // Body\n\n tableLayout: mergedTableLayout,\n rowClassName: rowClassName,\n expandedRowClassName: expandableConfig.expandedRowClassName,\n expandIcon: mergedExpandIcon,\n expandableType: expandableType,\n expandRowByClick: expandableConfig.expandRowByClick,\n expandedRowRender: expandableConfig.expandedRowRender,\n onTriggerExpand: onTriggerExpand,\n expandIconColumnIndex: expandableConfig.expandIconColumnIndex,\n indentSize: expandableConfig.indentSize,\n allColumnsFixedLeft: flattenColumns.every(function (col) {\n return col.fixed === 'left';\n }),\n // Column\n columns: columns,\n flattenColumns: flattenColumns,\n onColumnResize: onColumnResize,\n // Row\n hoverStartRow: startRow,\n hoverEndRow: endRow,\n onHover: onHover\n };\n }, [\n // Table\n prefixCls, getComponent, scrollbarSize, direction, fixedInfoList, isSticky, supportSticky, componentWidth, fixHeader, fixColumn, horizonScroll,\n // Body\n mergedTableLayout, rowClassName, expandableConfig.expandedRowClassName, mergedExpandIcon, expandableType, expandableConfig.expandRowByClick, expandableConfig.expandedRowRender, onTriggerExpand, expandableConfig.expandIconColumnIndex, expandableConfig.indentSize,\n // Column\n columns, flattenColumns, onColumnResize,\n // Row\n startRow, endRow, onHover]);\n return /*#__PURE__*/React.createElement(TableContext.Provider, {\n value: TableContextValue\n }, fullTable);\n}\nexport function genTable(shouldTriggerRender) {\n return makeImmutable(Table, shouldTriggerRender);\n}\nvar ImmutableTable = genTable();\nImmutableTable.EXPAND_COLUMN = EXPAND_COLUMN;\nImmutableTable.INTERNAL_HOOKS = INTERNAL_HOOKS;\nImmutableTable.Column = Column;\nImmutableTable.ColumnGroup = ColumnGroup;\nImmutableTable.Summary = FooterComponents;\nexport default ImmutableTable;","import { EXPAND_COLUMN, INTERNAL_HOOKS } from \"./constant\";\nimport { FooterComponents as Summary } from \"./Footer\";\nimport Column from \"./sugar/Column\";\nimport ColumnGroup from \"./sugar/ColumnGroup\";\nimport Table, { genTable } from \"./Table\";\nimport { INTERNAL_COL_DEFINE } from \"./utils/legacyUtil\";\nexport { genTable, Summary, Column, ColumnGroup, INTERNAL_COL_DEFINE, EXPAND_COLUMN, INTERNAL_HOOKS };\nexport default Table;","/* istanbul ignore next */\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\n// eslint-disable-next-line no-unused-vars\nfunction Column(_) {\n return null;\n}\nexport default Column;","/* istanbul ignore next */\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\n// eslint-disable-next-line no-unused-vars\nfunction ColumnGroup(_) {\n return null;\n}\nexport default ColumnGroup;","import classNames from 'classnames';\nimport * as React from 'react';\nfunction renderExpandIcon(locale) {\n return function expandIcon(_ref) {\n let {\n prefixCls,\n onExpand,\n record,\n expanded,\n expandable\n } = _ref;\n const iconPrefix = `${prefixCls}-row-expand-icon`;\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: e => {\n onExpand(record, e);\n e.stopPropagation();\n },\n className: classNames(iconPrefix, {\n [`${iconPrefix}-spaced`]: !expandable,\n [`${iconPrefix}-expanded`]: expandable && expanded,\n [`${iconPrefix}-collapsed`]: expandable && !expanded\n }),\n \"aria-label\": expanded ? locale.collapse : locale.expand,\n \"aria-expanded\": expanded\n });\n };\n}\nexport default renderExpandIcon;","import { genTable } from 'rc-table';\n/**\n * Same as `rc-table` but we modify trigger children update logic instead.\n */\nexport default genTable((prev, next) => {\n const {\n _renderTimes: prevRenderTimes\n } = prev;\n const {\n _renderTimes: nextRenderTimes\n } = next;\n return prevRenderTimes !== nextRenderTimes;\n});","export function getColumnKey(column, defaultKey) {\n if ('key' in column && column.key !== undefined && column.key !== null) {\n return column.key;\n }\n if (column.dataIndex) {\n return Array.isArray(column.dataIndex) ? column.dataIndex.join('.') : column.dataIndex;\n }\n return defaultKey;\n}\nexport function getColumnPos(index, pos) {\n return pos ? `${pos}-${index}` : `${index}`;\n}\nexport function renderColumnTitle(title, props) {\n if (typeof title === 'function') {\n return title(props);\n }\n return title;\n}\n/**\n * Safe get column title\n *\n * Should filter [object Object]\n *\n * @param title\n * @returns\n */\nexport function safeColumnTitle(title, props) {\n const res = renderColumnTitle(title, props);\n if (Object.prototype.toString.call(res) === '[object Object]') return '';\n return res;\n}","// This icon file is generated automatically.\nvar FilterFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z\" } }] }, \"name\": \"filter\", \"theme\": \"filled\" };\nexport default FilterFilled;\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 FilterFilledSvg from \"@ant-design/icons-svg/es/asn/FilterFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FilterFilled = function FilterFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FilterFilledSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n FilterFilled.displayName = 'FilterFilled';\n}\nexport default /*#__PURE__*/React.forwardRef(FilterFilled);","import * as React from 'react';\nimport useForceUpdate from './useForceUpdate';\nexport default function useSyncState(initialValue) {\n const ref = React.useRef(initialValue);\n const forceUpdate = useForceUpdate();\n return [() => ref.current, newValue => {\n ref.current = newValue;\n // re-render\n forceUpdate();\n }];\n}","import SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport * as React from 'react';\nimport Input from '../../../input';\nfunction FilterSearch(_ref) {\n let {\n value,\n onChange,\n filterSearch,\n tablePrefixCls,\n locale\n } = _ref;\n if (!filterSearch) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${tablePrefixCls}-filter-dropdown-search`\n }, /*#__PURE__*/React.createElement(Input, {\n prefix: /*#__PURE__*/React.createElement(SearchOutlined, null),\n placeholder: locale.filterSearchPlaceholder,\n onChange: onChange,\n value: value,\n // for skip min-width of input\n htmlSize: 1,\n className: `${tablePrefixCls}-filter-dropdown-search-input`\n }));\n}\nexport default FilterSearch;","import KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nconst onKeyDown = event => {\n const {\n keyCode\n } = event;\n if (keyCode === KeyCode.ENTER) {\n event.stopPropagation();\n }\n};\nconst FilterDropdownMenuWrapper = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(\"div\", {\n className: props.className,\n onClick: e => e.stopPropagation(),\n onKeyDown: onKeyDown,\n ref: ref\n}, props.children));\nif (process.env.NODE_ENV !== 'production') {\n FilterDropdownMenuWrapper.displayName = 'FilterDropdownMenuWrapper';\n}\nexport default FilterDropdownMenuWrapper;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport FilterFilled from \"@ant-design/icons/es/icons/FilterFilled\";\nimport classNames from 'classnames';\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport useSyncState from '../../../_util/hooks/useSyncState';\nimport warning from '../../../_util/warning';\nimport Button from '../../../button';\nimport Checkbox from '../../../checkbox';\nimport { ConfigContext } from '../../../config-provider/context';\nimport Dropdown from '../../../dropdown';\nimport Empty from '../../../empty';\nimport Menu from '../../../menu';\nimport { OverrideProvider } from '../../../menu/OverrideContext';\nimport Radio from '../../../radio';\nimport Tree from '../../../tree';\nimport FilterSearch from './FilterSearch';\nimport FilterDropdownMenuWrapper from './FilterWrapper';\nexport function flattenKeys(filters) {\n let keys = [];\n (filters || []).forEach(_ref => {\n let {\n value,\n children\n } = _ref;\n keys.push(value);\n if (children) {\n keys = [].concat(_toConsumableArray(keys), _toConsumableArray(flattenKeys(children)));\n }\n });\n return keys;\n}\nfunction hasSubMenu(filters) {\n return filters.some(_ref2 => {\n let {\n children\n } = _ref2;\n return children;\n });\n}\nfunction searchValueMatched(searchValue, text) {\n if (typeof text === 'string' || typeof text === 'number') {\n return text === null || text === void 0 ? void 0 : text.toString().toLowerCase().includes(searchValue.trim().toLowerCase());\n }\n return false;\n}\nfunction renderFilterItems(_ref3) {\n let {\n filters,\n prefixCls,\n filteredKeys,\n filterMultiple,\n searchValue,\n filterSearch\n } = _ref3;\n return filters.map((filter, index) => {\n const key = String(filter.value);\n if (filter.children) {\n return {\n key: key || index,\n label: filter.text,\n popupClassName: `${prefixCls}-dropdown-submenu`,\n children: renderFilterItems({\n filters: filter.children,\n prefixCls,\n filteredKeys,\n filterMultiple,\n searchValue,\n filterSearch\n })\n };\n }\n const Component = filterMultiple ? Checkbox : Radio;\n const item = {\n key: filter.value !== undefined ? key : index,\n label: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Component, {\n checked: filteredKeys.includes(key)\n }), /*#__PURE__*/React.createElement(\"span\", null, filter.text))\n };\n if (searchValue.trim()) {\n if (typeof filterSearch === 'function') {\n return filterSearch(searchValue, filter) ? item : null;\n }\n return searchValueMatched(searchValue, filter.text) ? item : null;\n }\n return item;\n });\n}\nfunction FilterDropdown(props) {\n var _a, _b;\n const {\n tablePrefixCls,\n prefixCls,\n column,\n dropdownPrefixCls,\n columnKey,\n filterMultiple,\n filterMode = 'menu',\n filterSearch = false,\n filterState,\n triggerFilter,\n locale,\n children,\n getPopupContainer\n } = props;\n const {\n filterDropdownOpen,\n onFilterDropdownOpenChange,\n filterResetToDefaultFilteredValue,\n defaultFilteredValue,\n // Deprecated\n filterDropdownVisible,\n onFilterDropdownVisibleChange\n } = column;\n const [visible, setVisible] = React.useState(false);\n const filtered = !!(filterState && (((_a = filterState.filteredKeys) === null || _a === void 0 ? void 0 : _a.length) || filterState.forceFiltered));\n const triggerVisible = newVisible => {\n setVisible(newVisible);\n onFilterDropdownOpenChange === null || onFilterDropdownOpenChange === void 0 ? void 0 : onFilterDropdownOpenChange(newVisible);\n onFilterDropdownVisibleChange === null || onFilterDropdownVisibleChange === void 0 ? void 0 : onFilterDropdownVisibleChange(newVisible);\n };\n if (process.env.NODE_ENV !== 'production') {\n [['filterDropdownVisible', 'filterDropdownOpen', filterDropdownVisible], ['onFilterDropdownVisibleChange', 'onFilterDropdownOpenChange', onFilterDropdownVisibleChange]].forEach(_ref4 => {\n let [deprecatedName, newName, prop] = _ref4;\n process.env.NODE_ENV !== \"production\" ? warning(prop === undefined || prop === null, 'Table', `\\`${deprecatedName}\\` is deprecated. Please use \\`${newName}\\` instead.`) : void 0;\n });\n }\n const mergedVisible = (_b = filterDropdownOpen !== null && filterDropdownOpen !== void 0 ? filterDropdownOpen : filterDropdownVisible) !== null && _b !== void 0 ? _b : visible;\n // ===================== Select Keys =====================\n const propFilteredKeys = filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys;\n const [getFilteredKeysSync, setFilteredKeysSync] = useSyncState(propFilteredKeys || []);\n const onSelectKeys = _ref5 => {\n let {\n selectedKeys\n } = _ref5;\n setFilteredKeysSync(selectedKeys);\n };\n const onCheck = (keys, _ref6) => {\n let {\n node,\n checked\n } = _ref6;\n if (!filterMultiple) {\n onSelectKeys({\n selectedKeys: checked && node.key ? [node.key] : []\n });\n } else {\n onSelectKeys({\n selectedKeys: keys\n });\n }\n };\n React.useEffect(() => {\n if (!visible) {\n return;\n }\n onSelectKeys({\n selectedKeys: propFilteredKeys || []\n });\n }, [propFilteredKeys]);\n // ====================== Open Keys ======================\n const [openKeys, setOpenKeys] = React.useState([]);\n const onOpenChange = keys => {\n setOpenKeys(keys);\n };\n // search in tree mode column filter\n const [searchValue, setSearchValue] = React.useState('');\n const onSearch = e => {\n const {\n value\n } = e.target;\n setSearchValue(value);\n };\n // clear search value after close filter dropdown\n React.useEffect(() => {\n if (!visible) {\n setSearchValue('');\n }\n }, [visible]);\n // ======================= Submit ========================\n const internalTriggerFilter = keys => {\n const mergedKeys = keys && keys.length ? keys : null;\n if (mergedKeys === null && (!filterState || !filterState.filteredKeys)) {\n return null;\n }\n if (isEqual(mergedKeys, filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys, true)) {\n return null;\n }\n triggerFilter({\n column,\n key: columnKey,\n filteredKeys: mergedKeys\n });\n };\n const onConfirm = () => {\n triggerVisible(false);\n internalTriggerFilter(getFilteredKeysSync());\n };\n const onReset = function () {\n let {\n confirm,\n closeDropdown\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n confirm: false,\n closeDropdown: false\n };\n if (confirm) {\n internalTriggerFilter([]);\n }\n if (closeDropdown) {\n triggerVisible(false);\n }\n setSearchValue('');\n if (filterResetToDefaultFilteredValue) {\n setFilteredKeysSync((defaultFilteredValue || []).map(key => String(key)));\n } else {\n setFilteredKeysSync([]);\n }\n };\n const doFilter = function () {\n let {\n closeDropdown\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n closeDropdown: true\n };\n if (closeDropdown) {\n triggerVisible(false);\n }\n internalTriggerFilter(getFilteredKeysSync());\n };\n const onVisibleChange = newVisible => {\n if (newVisible && propFilteredKeys !== undefined) {\n // Sync filteredKeys on appear in controlled mode (propFilteredKeys !== undefined)\n setFilteredKeysSync(propFilteredKeys || []);\n }\n triggerVisible(newVisible);\n // Default will filter when closed\n if (!newVisible && !column.filterDropdown) {\n onConfirm();\n }\n };\n // ======================== Style ========================\n const dropdownMenuClass = classNames({\n [`${dropdownPrefixCls}-menu-without-submenu`]: !hasSubMenu(column.filters || [])\n });\n const onCheckAll = e => {\n if (e.target.checked) {\n const allFilterKeys = flattenKeys(column === null || column === void 0 ? void 0 : column.filters).map(key => String(key));\n setFilteredKeysSync(allFilterKeys);\n } else {\n setFilteredKeysSync([]);\n }\n };\n const getTreeData = _ref7 => {\n let {\n filters\n } = _ref7;\n return (filters || []).map((filter, index) => {\n const key = String(filter.value);\n const item = {\n title: filter.text,\n key: filter.value !== undefined ? key : index\n };\n if (filter.children) {\n item.children = getTreeData({\n filters: filter.children\n });\n }\n return item;\n });\n };\n const getFilterData = node => {\n var _a;\n return Object.assign(Object.assign({}, node), {\n text: node.title,\n value: node.key,\n children: ((_a = node.children) === null || _a === void 0 ? void 0 : _a.map(item => getFilterData(item))) || []\n });\n };\n let dropdownContent;\n if (typeof column.filterDropdown === 'function') {\n dropdownContent = column.filterDropdown({\n prefixCls: `${dropdownPrefixCls}-custom`,\n setSelectedKeys: selectedKeys => onSelectKeys({\n selectedKeys\n }),\n selectedKeys: getFilteredKeysSync(),\n confirm: doFilter,\n clearFilters: onReset,\n filters: column.filters,\n visible: mergedVisible,\n close: () => {\n triggerVisible(false);\n }\n });\n } else if (column.filterDropdown) {\n dropdownContent = column.filterDropdown;\n } else {\n const selectedKeys = getFilteredKeysSync() || [];\n const getFilterComponent = () => {\n if ((column.filters || []).length === 0) {\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE,\n description: locale.filterEmptyText,\n imageStyle: {\n height: 24\n },\n style: {\n margin: 0,\n padding: '16px 0'\n }\n });\n }\n if (filterMode === 'tree') {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n filterSearch: filterSearch,\n value: searchValue,\n onChange: onSearch,\n tablePrefixCls: tablePrefixCls,\n locale: locale\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: `${tablePrefixCls}-filter-dropdown-tree`\n }, filterMultiple ? /*#__PURE__*/React.createElement(Checkbox, {\n checked: selectedKeys.length === flattenKeys(column.filters).length,\n indeterminate: selectedKeys.length > 0 && selectedKeys.length < flattenKeys(column.filters).length,\n className: `${tablePrefixCls}-filter-dropdown-checkall`,\n onChange: onCheckAll\n }, locale.filterCheckall) : null, /*#__PURE__*/React.createElement(Tree, {\n checkable: true,\n selectable: false,\n blockNode: true,\n multiple: filterMultiple,\n checkStrictly: !filterMultiple,\n className: `${dropdownPrefixCls}-menu`,\n onCheck: onCheck,\n checkedKeys: selectedKeys,\n selectedKeys: selectedKeys,\n showIcon: false,\n treeData: getTreeData({\n filters: column.filters\n }),\n autoExpandParent: true,\n defaultExpandAll: true,\n filterTreeNode: searchValue.trim() ? node => {\n if (typeof filterSearch === 'function') {\n return filterSearch(searchValue, getFilterData(node));\n }\n return searchValueMatched(searchValue, node.title);\n } : undefined\n })));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n filterSearch: filterSearch,\n value: searchValue,\n onChange: onSearch,\n tablePrefixCls: tablePrefixCls,\n locale: locale\n }), /*#__PURE__*/React.createElement(Menu, {\n selectable: true,\n multiple: filterMultiple,\n prefixCls: `${dropdownPrefixCls}-menu`,\n className: dropdownMenuClass,\n onSelect: onSelectKeys,\n onDeselect: onSelectKeys,\n selectedKeys: selectedKeys,\n getPopupContainer: getPopupContainer,\n openKeys: openKeys,\n onOpenChange: onOpenChange,\n items: renderFilterItems({\n filters: column.filters || [],\n filterSearch,\n prefixCls,\n filteredKeys: getFilteredKeysSync(),\n filterMultiple,\n searchValue\n })\n }));\n };\n const getResetDisabled = () => {\n if (filterResetToDefaultFilteredValue) {\n return isEqual((defaultFilteredValue || []).map(key => String(key)), selectedKeys, true);\n }\n return selectedKeys.length === 0;\n };\n dropdownContent = /*#__PURE__*/React.createElement(React.Fragment, null, getFilterComponent(), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-dropdown-btns`\n }, /*#__PURE__*/React.createElement(Button, {\n type: \"link\",\n size: \"small\",\n disabled: getResetDisabled(),\n onClick: () => onReset()\n }, locale.filterReset), /*#__PURE__*/React.createElement(Button, {\n type: \"primary\",\n size: \"small\",\n onClick: onConfirm\n }, locale.filterConfirm)));\n }\n // We should not block customize Menu with additional props\n if (column.filterDropdown) {\n dropdownContent = /*#__PURE__*/React.createElement(OverrideProvider, {\n selectable: undefined\n }, dropdownContent);\n }\n const menu = () => /*#__PURE__*/React.createElement(FilterDropdownMenuWrapper, {\n className: `${prefixCls}-dropdown`\n }, dropdownContent);\n let filterIcon;\n if (typeof column.filterIcon === 'function') {\n filterIcon = column.filterIcon(filtered);\n } else if (column.filterIcon) {\n filterIcon = column.filterIcon;\n } else {\n filterIcon = /*#__PURE__*/React.createElement(FilterFilled, null);\n }\n const {\n direction\n } = React.useContext(ConfigContext);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-column`\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${tablePrefixCls}-column-title`\n }, children), /*#__PURE__*/React.createElement(Dropdown, {\n dropdownRender: menu,\n trigger: ['click'],\n open: mergedVisible,\n onOpenChange: onVisibleChange,\n getPopupContainer: getPopupContainer,\n placement: direction === 'rtl' ? 'bottomLeft' : 'bottomRight'\n }, /*#__PURE__*/React.createElement(\"span\", {\n role: \"button\",\n tabIndex: -1,\n className: classNames(`${prefixCls}-trigger`, {\n active: filtered\n }),\n onClick: e => {\n e.stopPropagation();\n }\n }, filterIcon)));\n}\nexport default FilterDropdown;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from '../../../_util/warning';\nimport { getColumnKey, getColumnPos, renderColumnTitle } from '../../util';\nimport FilterDropdown, { flattenKeys } from './FilterDropdown';\nfunction collectFilterStates(columns, init, pos) {\n let filterStates = [];\n (columns || []).forEach((column, index) => {\n var _a;\n const columnPos = getColumnPos(index, pos);\n if (column.filters || 'filterDropdown' in column || 'onFilter' in column) {\n if ('filteredValue' in column) {\n // Controlled\n let filteredValues = column.filteredValue;\n if (!('filterDropdown' in column)) {\n filteredValues = (_a = filteredValues === null || filteredValues === void 0 ? void 0 : filteredValues.map(String)) !== null && _a !== void 0 ? _a : filteredValues;\n }\n filterStates.push({\n column,\n key: getColumnKey(column, columnPos),\n filteredKeys: filteredValues,\n forceFiltered: column.filtered\n });\n } else {\n // Uncontrolled\n filterStates.push({\n column,\n key: getColumnKey(column, columnPos),\n filteredKeys: init && column.defaultFilteredValue ? column.defaultFilteredValue : undefined,\n forceFiltered: column.filtered\n });\n }\n }\n if ('children' in column) {\n filterStates = [].concat(_toConsumableArray(filterStates), _toConsumableArray(collectFilterStates(column.children, init, columnPos)));\n }\n });\n return filterStates;\n}\nfunction injectFilter(prefixCls, dropdownPrefixCls, columns, filterStates, locale, triggerFilter, getPopupContainer, pos) {\n return columns.map((column, index) => {\n const columnPos = getColumnPos(index, pos);\n const {\n filterMultiple = true,\n filterMode,\n filterSearch\n } = column;\n let newColumn = column;\n if (newColumn.filters || newColumn.filterDropdown) {\n const columnKey = getColumnKey(newColumn, columnPos);\n const filterState = filterStates.find(_ref => {\n let {\n key\n } = _ref;\n return columnKey === key;\n });\n newColumn = Object.assign(Object.assign({}, newColumn), {\n title: renderProps => /*#__PURE__*/React.createElement(FilterDropdown, {\n tablePrefixCls: prefixCls,\n prefixCls: `${prefixCls}-filter`,\n dropdownPrefixCls: dropdownPrefixCls,\n column: newColumn,\n columnKey: columnKey,\n filterState: filterState,\n filterMultiple: filterMultiple,\n filterMode: filterMode,\n filterSearch: filterSearch,\n triggerFilter: triggerFilter,\n locale: locale,\n getPopupContainer: getPopupContainer\n }, renderColumnTitle(column.title, renderProps))\n });\n }\n if ('children' in newColumn) {\n newColumn = Object.assign(Object.assign({}, newColumn), {\n children: injectFilter(prefixCls, dropdownPrefixCls, newColumn.children, filterStates, locale, triggerFilter, getPopupContainer, columnPos)\n });\n }\n return newColumn;\n });\n}\nfunction generateFilterInfo(filterStates) {\n const currentFilters = {};\n filterStates.forEach(_ref2 => {\n let {\n key,\n filteredKeys,\n column\n } = _ref2;\n const {\n filters,\n filterDropdown\n } = column;\n if (filterDropdown) {\n currentFilters[key] = filteredKeys || null;\n } else if (Array.isArray(filteredKeys)) {\n const keys = flattenKeys(filters);\n currentFilters[key] = keys.filter(originKey => filteredKeys.includes(String(originKey)));\n } else {\n currentFilters[key] = null;\n }\n });\n return currentFilters;\n}\nexport function getFilterData(data, filterStates) {\n return filterStates.reduce((currentData, filterState) => {\n const {\n column: {\n onFilter,\n filters\n },\n filteredKeys\n } = filterState;\n if (onFilter && filteredKeys && filteredKeys.length) {\n return currentData.filter(record => filteredKeys.some(key => {\n const keys = flattenKeys(filters);\n const keyIndex = keys.findIndex(k => String(k) === String(key));\n const realKey = keyIndex !== -1 ? keys[keyIndex] : key;\n return onFilter(realKey, record);\n }));\n }\n return currentData;\n }, data);\n}\nconst getMergedColumns = rawMergedColumns => rawMergedColumns.flatMap(column => {\n if ('children' in column) {\n return [column].concat(_toConsumableArray(getMergedColumns(column.children || [])));\n }\n return [column];\n});\nfunction useFilter(_ref3) {\n let {\n prefixCls,\n dropdownPrefixCls,\n mergedColumns: rawMergedColumns,\n onFilterChange,\n getPopupContainer,\n locale: tableLocale\n } = _ref3;\n const mergedColumns = React.useMemo(() => getMergedColumns(rawMergedColumns || []), [rawMergedColumns]);\n const [filterStates, setFilterStates] = React.useState(() => collectFilterStates(mergedColumns, true));\n const mergedFilterStates = React.useMemo(() => {\n const collectedStates = collectFilterStates(mergedColumns, false);\n if (collectedStates.length === 0) {\n return collectedStates;\n }\n let filteredKeysIsAllNotControlled = true;\n let filteredKeysIsAllControlled = true;\n collectedStates.forEach(_ref4 => {\n let {\n filteredKeys\n } = _ref4;\n if (filteredKeys !== undefined) {\n filteredKeysIsAllNotControlled = false;\n } else {\n filteredKeysIsAllControlled = false;\n }\n });\n // Return if not controlled\n if (filteredKeysIsAllNotControlled) {\n // Filter column may have been removed\n const keyList = (mergedColumns || []).map((column, index) => getColumnKey(column, getColumnPos(index)));\n return filterStates.filter(_ref5 => {\n let {\n key\n } = _ref5;\n return keyList.includes(key);\n }).map(item => {\n const col = mergedColumns[keyList.findIndex(key => key === item.key)];\n return Object.assign(Object.assign({}, item), {\n column: Object.assign(Object.assign({}, item.column), col),\n forceFiltered: col.filtered\n });\n });\n }\n process.env.NODE_ENV !== \"production\" ? warning(filteredKeysIsAllControlled, 'Table', 'Columns should all contain `filteredValue` or not contain `filteredValue`.') : void 0;\n return collectedStates;\n }, [mergedColumns, filterStates]);\n const filters = React.useMemo(() => generateFilterInfo(mergedFilterStates), [mergedFilterStates]);\n const triggerFilter = filterState => {\n const newFilterStates = mergedFilterStates.filter(_ref6 => {\n let {\n key\n } = _ref6;\n return key !== filterState.key;\n });\n newFilterStates.push(filterState);\n setFilterStates(newFilterStates);\n onFilterChange(generateFilterInfo(newFilterStates), newFilterStates);\n };\n const transformColumns = innerColumns => injectFilter(prefixCls, dropdownPrefixCls, innerColumns, mergedFilterStates, tableLocale, triggerFilter, getPopupContainer);\n return [transformColumns, mergedFilterStates, filters];\n}\nexport { flattenKeys };\nexport default useFilter;","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 { useState } from 'react';\nimport extendsObject from '../../_util/extendsObject';\nexport const DEFAULT_PAGE_SIZE = 10;\nexport function getPaginationParam(mergedPagination, pagination) {\n const param = {\n current: mergedPagination.current,\n pageSize: mergedPagination.pageSize\n };\n const paginationObj = pagination && typeof pagination === 'object' ? pagination : {};\n Object.keys(paginationObj).forEach(pageProp => {\n const value = mergedPagination[pageProp];\n if (typeof value !== 'function') {\n param[pageProp] = value;\n }\n });\n return param;\n}\nfunction usePagination(total, onChange, pagination) {\n const _a = pagination && typeof pagination === 'object' ? pagination : {},\n {\n total: paginationTotal = 0\n } = _a,\n paginationObj = __rest(_a, [\"total\"]);\n const [innerPagination, setInnerPagination] = useState(() => ({\n current: 'defaultCurrent' in paginationObj ? paginationObj.defaultCurrent : 1,\n pageSize: 'defaultPageSize' in paginationObj ? paginationObj.defaultPageSize : DEFAULT_PAGE_SIZE\n }));\n // ============ Basic Pagination Config ============\n const mergedPagination = extendsObject(innerPagination, paginationObj, {\n total: paginationTotal > 0 ? paginationTotal : total\n });\n // Reset `current` if data length or pageSize changed\n const maxPage = Math.ceil((paginationTotal || total) / mergedPagination.pageSize);\n if (mergedPagination.current > maxPage) {\n // Prevent a maximum page count of 0\n mergedPagination.current = maxPage || 1;\n }\n const refreshPagination = (current, pageSize) => {\n setInnerPagination({\n current: current !== null && current !== void 0 ? current : 1,\n pageSize: pageSize || mergedPagination.pageSize\n });\n };\n const onInternalChange = (current, pageSize) => {\n var _a;\n if (pagination) {\n (_a = pagination.onChange) === null || _a === void 0 ? void 0 : _a.call(pagination, current, pageSize);\n }\n refreshPagination(current, pageSize);\n onChange(current, pageSize || (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.pageSize));\n };\n if (pagination === false) {\n return [{}, () => {}];\n }\n return [Object.assign(Object.assign({}, mergedPagination), {\n onChange: onInternalChange\n }), refreshPagination];\n}\nexport default usePagination;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport classNames from 'classnames';\nimport { INTERNAL_COL_DEFINE } from 'rc-table';\nimport { arrAdd, arrDel } from \"rc-tree/es/util\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { useCallback, useMemo, useState } from 'react';\nimport warning from '../../_util/warning';\nimport Checkbox from '../../checkbox';\nimport Dropdown from '../../dropdown';\nimport Radio from '../../radio';\n// TODO: warning if use ajax!!!\nexport const SELECTION_COLUMN = {};\nexport const SELECTION_ALL = 'SELECT_ALL';\nexport const SELECTION_INVERT = 'SELECT_INVERT';\nexport const SELECTION_NONE = 'SELECT_NONE';\nconst EMPTY_LIST = [];\nconst flattenData = (childrenColumnName, data) => {\n let list = [];\n (data || []).forEach(record => {\n list.push(record);\n if (record && typeof record === 'object' && childrenColumnName in record) {\n list = [].concat(_toConsumableArray(list), _toConsumableArray(flattenData(childrenColumnName, record[childrenColumnName])));\n }\n });\n return list;\n};\nconst useSelection = (config, rowSelection) => {\n const {\n preserveSelectedRowKeys,\n selectedRowKeys,\n defaultSelectedRowKeys,\n getCheckboxProps,\n onChange: onSelectionChange,\n onSelect,\n onSelectAll,\n onSelectInvert,\n onSelectNone,\n onSelectMultiple,\n columnWidth: selectionColWidth,\n type: selectionType,\n selections,\n fixed,\n renderCell: customizeRenderCell,\n hideSelectAll,\n checkStrictly = true\n } = rowSelection || {};\n const {\n prefixCls,\n data,\n pageData,\n getRecordByKey,\n getRowKey,\n expandType,\n childrenColumnName,\n locale: tableLocale,\n getPopupContainer\n } = config;\n // ========================= Keys =========================\n const [mergedSelectedKeys, setMergedSelectedKeys] = useMergedState(selectedRowKeys || defaultSelectedRowKeys || EMPTY_LIST, {\n value: selectedRowKeys\n });\n // ======================== Caches ========================\n const preserveRecordsRef = React.useRef(new Map());\n const updatePreserveRecordsCache = useCallback(keys => {\n if (preserveSelectedRowKeys) {\n const newCache = new Map();\n // Keep key if mark as preserveSelectedRowKeys\n keys.forEach(key => {\n let record = getRecordByKey(key);\n if (!record && preserveRecordsRef.current.has(key)) {\n record = preserveRecordsRef.current.get(key);\n }\n newCache.set(key, record);\n });\n // Refresh to new cache\n preserveRecordsRef.current = newCache;\n }\n }, [getRecordByKey, preserveSelectedRowKeys]);\n // Update cache with selectedKeys\n React.useEffect(() => {\n updatePreserveRecordsCache(mergedSelectedKeys);\n }, [mergedSelectedKeys]);\n const {\n keyEntities\n } = useMemo(() => {\n if (checkStrictly) {\n return {\n keyEntities: null\n };\n }\n let convertData = data;\n if (preserveSelectedRowKeys) {\n const keysSet = new Set(data.map((record, index) => getRowKey(record, index)));\n // remove preserveRecords that duplicate data\n const preserveRecords = Array.from(preserveRecordsRef.current).reduce((total, _ref) => {\n let [key, value] = _ref;\n return keysSet.has(key) ? total : total.concat(value);\n }, []);\n convertData = [].concat(_toConsumableArray(convertData), _toConsumableArray(preserveRecords));\n }\n return convertDataToEntities(convertData, {\n externalGetKey: getRowKey,\n childrenPropName: childrenColumnName\n });\n }, [data, getRowKey, checkStrictly, childrenColumnName, preserveSelectedRowKeys]);\n // Get flatten data\n const flattedData = useMemo(() => flattenData(childrenColumnName, pageData), [childrenColumnName, pageData]);\n // Get all checkbox props\n const checkboxPropsMap = useMemo(() => {\n const map = new Map();\n flattedData.forEach((record, index) => {\n const key = getRowKey(record, index);\n const checkboxProps = (getCheckboxProps ? getCheckboxProps(record) : null) || {};\n map.set(key, checkboxProps);\n process.env.NODE_ENV !== \"production\" ? warning(!('checked' in checkboxProps || 'defaultChecked' in checkboxProps), 'Table', 'Do not set `checked` or `defaultChecked` in `getCheckboxProps`. Please use `selectedRowKeys` instead.') : void 0;\n });\n return map;\n }, [flattedData, getRowKey, getCheckboxProps]);\n const isCheckboxDisabled = useCallback(r => {\n var _a;\n return !!((_a = checkboxPropsMap.get(getRowKey(r))) === null || _a === void 0 ? void 0 : _a.disabled);\n }, [checkboxPropsMap, getRowKey]);\n const [derivedSelectedKeys, derivedHalfSelectedKeys] = useMemo(() => {\n if (checkStrictly) {\n return [mergedSelectedKeys || [], []];\n }\n const {\n checkedKeys,\n halfCheckedKeys\n } = conductCheck(mergedSelectedKeys, true, keyEntities, isCheckboxDisabled);\n return [checkedKeys || [], halfCheckedKeys];\n }, [mergedSelectedKeys, checkStrictly, keyEntities, isCheckboxDisabled]);\n const derivedSelectedKeySet = useMemo(() => {\n const keys = selectionType === 'radio' ? derivedSelectedKeys.slice(0, 1) : derivedSelectedKeys;\n return new Set(keys);\n }, [derivedSelectedKeys, selectionType]);\n const derivedHalfSelectedKeySet = useMemo(() => selectionType === 'radio' ? new Set() : new Set(derivedHalfSelectedKeys), [derivedHalfSelectedKeys, selectionType]);\n // Save last selected key to enable range selection\n const [lastSelectedKey, setLastSelectedKey] = useState(null);\n // Reset if rowSelection reset\n React.useEffect(() => {\n if (!rowSelection) {\n setMergedSelectedKeys(EMPTY_LIST);\n }\n }, [!!rowSelection]);\n const setSelectedKeys = useCallback((keys, method) => {\n let availableKeys;\n let records;\n updatePreserveRecordsCache(keys);\n if (preserveSelectedRowKeys) {\n availableKeys = keys;\n records = keys.map(key => preserveRecordsRef.current.get(key));\n } else {\n // Filter key which not exist in the `dataSource`\n availableKeys = [];\n records = [];\n keys.forEach(key => {\n const record = getRecordByKey(key);\n if (record !== undefined) {\n availableKeys.push(key);\n records.push(record);\n }\n });\n }\n setMergedSelectedKeys(availableKeys);\n onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(availableKeys, records, {\n type: method\n });\n }, [setMergedSelectedKeys, getRecordByKey, onSelectionChange, preserveSelectedRowKeys]);\n // ====================== Selections ======================\n // Trigger single `onSelect` event\n const triggerSingleSelection = useCallback((key, selected, keys, event) => {\n if (onSelect) {\n const rows = keys.map(k => getRecordByKey(k));\n onSelect(getRecordByKey(key), selected, rows, event);\n }\n setSelectedKeys(keys, 'single');\n }, [onSelect, getRecordByKey, setSelectedKeys]);\n const mergedSelections = useMemo(() => {\n if (!selections || hideSelectAll) {\n return null;\n }\n const selectionList = selections === true ? [SELECTION_ALL, SELECTION_INVERT, SELECTION_NONE] : selections;\n return selectionList.map(selection => {\n if (selection === SELECTION_ALL) {\n return {\n key: 'all',\n text: tableLocale.selectionAll,\n onSelect() {\n setSelectedKeys(data.map((record, index) => getRowKey(record, index)).filter(key => {\n const checkProps = checkboxPropsMap.get(key);\n return !(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled) || derivedSelectedKeySet.has(key);\n }), 'all');\n }\n };\n }\n if (selection === SELECTION_INVERT) {\n return {\n key: 'invert',\n text: tableLocale.selectInvert,\n onSelect() {\n const keySet = new Set(derivedSelectedKeySet);\n pageData.forEach((record, index) => {\n const key = getRowKey(record, index);\n const checkProps = checkboxPropsMap.get(key);\n if (!(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled)) {\n if (keySet.has(key)) {\n keySet.delete(key);\n } else {\n keySet.add(key);\n }\n }\n });\n const keys = Array.from(keySet);\n if (onSelectInvert) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Table', '`onSelectInvert` will be removed in future. Please use `onChange` instead.') : void 0;\n onSelectInvert(keys);\n }\n setSelectedKeys(keys, 'invert');\n }\n };\n }\n if (selection === SELECTION_NONE) {\n return {\n key: 'none',\n text: tableLocale.selectNone,\n onSelect() {\n onSelectNone === null || onSelectNone === void 0 ? void 0 : onSelectNone();\n setSelectedKeys(Array.from(derivedSelectedKeySet).filter(key => {\n const checkProps = checkboxPropsMap.get(key);\n return checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled;\n }), 'none');\n }\n };\n }\n return selection;\n }).map(selection => Object.assign(Object.assign({}, selection), {\n onSelect: function () {\n var _a2;\n var _a;\n for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n (_a = selection.onSelect) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [selection].concat(rest));\n setLastSelectedKey(null);\n }\n }));\n }, [selections, derivedSelectedKeySet, pageData, getRowKey, onSelectInvert, setSelectedKeys]);\n // ======================= Columns ========================\n const transformColumns = useCallback(columns => {\n var _a;\n // >>>>>>>>>>> Skip if not exists `rowSelection`\n if (!rowSelection) {\n process.env.NODE_ENV !== \"production\" ? warning(!columns.includes(SELECTION_COLUMN), 'Table', '`rowSelection` is not config but `SELECTION_COLUMN` exists in the `columns`.') : void 0;\n return columns.filter(col => col !== SELECTION_COLUMN);\n }\n // >>>>>>>>>>> Support selection\n let cloneColumns = _toConsumableArray(columns);\n const keySet = new Set(derivedSelectedKeySet);\n // Record key only need check with enabled\n const recordKeys = flattedData.map(getRowKey).filter(key => !checkboxPropsMap.get(key).disabled);\n const checkedCurrentAll = recordKeys.every(key => keySet.has(key));\n const checkedCurrentSome = recordKeys.some(key => keySet.has(key));\n const onSelectAllChange = () => {\n const changeKeys = [];\n if (checkedCurrentAll) {\n recordKeys.forEach(key => {\n keySet.delete(key);\n changeKeys.push(key);\n });\n } else {\n recordKeys.forEach(key => {\n if (!keySet.has(key)) {\n keySet.add(key);\n changeKeys.push(key);\n }\n });\n }\n const keys = Array.from(keySet);\n onSelectAll === null || onSelectAll === void 0 ? void 0 : onSelectAll(!checkedCurrentAll, keys.map(k => getRecordByKey(k)), changeKeys.map(k => getRecordByKey(k)));\n setSelectedKeys(keys, 'all');\n setLastSelectedKey(null);\n };\n // ===================== Render =====================\n // Title Cell\n let title;\n if (selectionType !== 'radio') {\n let customizeSelections;\n if (mergedSelections) {\n const menu = {\n getPopupContainer,\n items: mergedSelections.map((selection, index) => {\n const {\n key,\n text,\n onSelect: onSelectionClick\n } = selection;\n return {\n key: key !== null && key !== void 0 ? key : index,\n onClick: () => {\n onSelectionClick === null || onSelectionClick === void 0 ? void 0 : onSelectionClick(recordKeys);\n },\n label: text\n };\n })\n };\n customizeSelections = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-selection-extra`\n }, /*#__PURE__*/React.createElement(Dropdown, {\n menu: menu,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(DownOutlined, null))));\n }\n const allDisabledData = flattedData.map((record, index) => {\n const key = getRowKey(record, index);\n const checkboxProps = checkboxPropsMap.get(key) || {};\n return Object.assign({\n checked: keySet.has(key)\n }, checkboxProps);\n }).filter(_ref2 => {\n let {\n disabled\n } = _ref2;\n return disabled;\n });\n const allDisabled = !!allDisabledData.length && allDisabledData.length === flattedData.length;\n const allDisabledAndChecked = allDisabled && allDisabledData.every(_ref3 => {\n let {\n checked\n } = _ref3;\n return checked;\n });\n const allDisabledSomeChecked = allDisabled && allDisabledData.some(_ref4 => {\n let {\n checked\n } = _ref4;\n return checked;\n });\n title = !hideSelectAll && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-selection`\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: !allDisabled ? !!flattedData.length && checkedCurrentAll : allDisabledAndChecked,\n indeterminate: !allDisabled ? !checkedCurrentAll && checkedCurrentSome : !allDisabledAndChecked && allDisabledSomeChecked,\n onChange: onSelectAllChange,\n disabled: flattedData.length === 0 || allDisabled,\n \"aria-label\": customizeSelections ? 'Custom selection' : 'Select all',\n skipGroup: true\n }), customizeSelections);\n }\n // Body Cell\n let renderCell;\n if (selectionType === 'radio') {\n renderCell = (_, record, index) => {\n const key = getRowKey(record, index);\n const checked = keySet.has(key);\n return {\n node: /*#__PURE__*/React.createElement(Radio, Object.assign({}, checkboxPropsMap.get(key), {\n checked: checked,\n onClick: e => e.stopPropagation(),\n onChange: event => {\n if (!keySet.has(key)) {\n triggerSingleSelection(key, true, [key], event.nativeEvent);\n }\n }\n })),\n checked\n };\n };\n } else {\n renderCell = (_, record, index) => {\n var _a;\n const key = getRowKey(record, index);\n const checked = keySet.has(key);\n const indeterminate = derivedHalfSelectedKeySet.has(key);\n const checkboxProps = checkboxPropsMap.get(key);\n let mergedIndeterminate;\n if (expandType === 'nest') {\n mergedIndeterminate = indeterminate;\n process.env.NODE_ENV !== \"production\" ? warning(typeof (checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== 'boolean', 'Table', 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.') : void 0;\n } else {\n mergedIndeterminate = (_a = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== null && _a !== void 0 ? _a : indeterminate;\n }\n // Record checked\n return {\n node: /*#__PURE__*/React.createElement(Checkbox, Object.assign({}, checkboxProps, {\n indeterminate: mergedIndeterminate,\n checked: checked,\n skipGroup: true,\n onClick: e => e.stopPropagation(),\n onChange: _ref5 => {\n let {\n nativeEvent\n } = _ref5;\n const {\n shiftKey\n } = nativeEvent;\n let startIndex = -1;\n let endIndex = -1;\n // Get range of this\n if (shiftKey && checkStrictly) {\n const pointKeys = new Set([lastSelectedKey, key]);\n recordKeys.some((recordKey, recordIndex) => {\n if (pointKeys.has(recordKey)) {\n if (startIndex === -1) {\n startIndex = recordIndex;\n } else {\n endIndex = recordIndex;\n return true;\n }\n }\n return false;\n });\n }\n if (endIndex !== -1 && startIndex !== endIndex && checkStrictly) {\n // Batch update selections\n const rangeKeys = recordKeys.slice(startIndex, endIndex + 1);\n const changedKeys = [];\n if (checked) {\n rangeKeys.forEach(recordKey => {\n if (keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet.delete(recordKey);\n }\n });\n } else {\n rangeKeys.forEach(recordKey => {\n if (!keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet.add(recordKey);\n }\n });\n }\n const keys = Array.from(keySet);\n onSelectMultiple === null || onSelectMultiple === void 0 ? void 0 : onSelectMultiple(!checked, keys.map(recordKey => getRecordByKey(recordKey)), changedKeys.map(recordKey => getRecordByKey(recordKey)));\n setSelectedKeys(keys, 'multiple');\n } else {\n // Single record selected\n const originCheckedKeys = derivedSelectedKeys;\n if (checkStrictly) {\n const checkedKeys = checked ? arrDel(originCheckedKeys, key) : arrAdd(originCheckedKeys, key);\n triggerSingleSelection(key, !checked, checkedKeys, nativeEvent);\n } else {\n // Always fill first\n const result = conductCheck([].concat(_toConsumableArray(originCheckedKeys), [key]), true, keyEntities, isCheckboxDisabled);\n const {\n checkedKeys,\n halfCheckedKeys\n } = result;\n let nextCheckedKeys = checkedKeys;\n // If remove, we do it again to correction\n if (checked) {\n const tempKeySet = new Set(checkedKeys);\n tempKeySet.delete(key);\n nextCheckedKeys = conductCheck(Array.from(tempKeySet), {\n checked: false,\n halfCheckedKeys\n }, keyEntities, isCheckboxDisabled).checkedKeys;\n }\n triggerSingleSelection(key, !checked, nextCheckedKeys, nativeEvent);\n }\n }\n if (checked) {\n setLastSelectedKey(null);\n } else {\n setLastSelectedKey(key);\n }\n }\n })),\n checked\n };\n };\n }\n const renderSelectionCell = (_, record, index) => {\n const {\n node,\n checked\n } = renderCell(_, record, index);\n if (customizeRenderCell) {\n return customizeRenderCell(checked, record, index, node);\n }\n return node;\n };\n // Insert selection column if not exist\n if (!cloneColumns.includes(SELECTION_COLUMN)) {\n // Always after expand icon\n if (cloneColumns.findIndex(col => {\n var _a;\n return ((_a = col[INTERNAL_COL_DEFINE]) === null || _a === void 0 ? void 0 : _a.columnType) === 'EXPAND_COLUMN';\n }) === 0) {\n const [expandColumn, ...restColumns] = cloneColumns;\n cloneColumns = [expandColumn, SELECTION_COLUMN].concat(_toConsumableArray(restColumns));\n } else {\n // Normal insert at first column\n cloneColumns = [SELECTION_COLUMN].concat(_toConsumableArray(cloneColumns));\n }\n }\n // Deduplicate selection column\n const selectionColumnIndex = cloneColumns.indexOf(SELECTION_COLUMN);\n process.env.NODE_ENV !== \"production\" ? warning(cloneColumns.filter(col => col === SELECTION_COLUMN).length <= 1, 'Table', 'Multiple `SELECTION_COLUMN` exist in `columns`.') : void 0;\n cloneColumns = cloneColumns.filter((column, index) => column !== SELECTION_COLUMN || index === selectionColumnIndex);\n // Fixed column logic\n const prevCol = cloneColumns[selectionColumnIndex - 1];\n const nextCol = cloneColumns[selectionColumnIndex + 1];\n let mergedFixed = fixed;\n if (mergedFixed === undefined) {\n if ((nextCol === null || nextCol === void 0 ? void 0 : nextCol.fixed) !== undefined) {\n mergedFixed = nextCol.fixed;\n } else if ((prevCol === null || prevCol === void 0 ? void 0 : prevCol.fixed) !== undefined) {\n mergedFixed = prevCol.fixed;\n }\n }\n if (mergedFixed && prevCol && ((_a = prevCol[INTERNAL_COL_DEFINE]) === null || _a === void 0 ? void 0 : _a.columnType) === 'EXPAND_COLUMN' && prevCol.fixed === undefined) {\n prevCol.fixed = mergedFixed;\n }\n const columnCls = classNames(`${prefixCls}-selection-col`, {\n [`${prefixCls}-selection-col-with-dropdown`]: selections && selectionType === 'checkbox'\n });\n // Replace with real selection column\n const selectionColumn = {\n fixed: mergedFixed,\n width: selectionColWidth,\n className: `${prefixCls}-selection-column`,\n title: rowSelection.columnTitle || title,\n render: renderSelectionCell,\n onCell: rowSelection.onCell,\n [INTERNAL_COL_DEFINE]: {\n className: columnCls\n }\n };\n return cloneColumns.map(col => col === SELECTION_COLUMN ? selectionColumn : col);\n }, [getRowKey, flattedData, rowSelection, derivedSelectedKeys, derivedSelectedKeySet, derivedHalfSelectedKeySet, selectionColWidth, mergedSelections, expandType, lastSelectedKey, checkboxPropsMap, onSelectMultiple, triggerSingleSelection, isCheckboxDisabled]);\n return [transformColumns, derivedSelectedKeySet];\n};\nexport default useSelection;","// This icon file is generated automatically.\nvar CaretDownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\" } }] }, \"name\": \"caret-down\", \"theme\": \"outlined\" };\nexport default CaretDownOutlined;\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 CaretDownOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretDownOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CaretDownOutlined = function CaretDownOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CaretDownOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CaretDownOutlined.displayName = 'CaretDownOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(CaretDownOutlined);","// This icon file is generated automatically.\nvar CaretUpOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z\" } }] }, \"name\": \"caret-up\", \"theme\": \"outlined\" };\nexport default CaretUpOutlined;\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 CaretUpOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretUpOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CaretUpOutlined = function CaretUpOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CaretUpOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CaretUpOutlined.displayName = 'CaretUpOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(CaretUpOutlined);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport CaretDownOutlined from \"@ant-design/icons/es/icons/CaretDownOutlined\";\nimport CaretUpOutlined from \"@ant-design/icons/es/icons/CaretUpOutlined\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport Tooltip from '../../tooltip';\nimport { getColumnKey, getColumnPos, renderColumnTitle, safeColumnTitle } from '../util';\nconst ASCEND = 'ascend';\nconst DESCEND = 'descend';\nfunction getMultiplePriority(column) {\n if (typeof column.sorter === 'object' && typeof column.sorter.multiple === 'number') {\n return column.sorter.multiple;\n }\n return false;\n}\nfunction getSortFunction(sorter) {\n if (typeof sorter === 'function') {\n return sorter;\n }\n if (sorter && typeof sorter === 'object' && sorter.compare) {\n return sorter.compare;\n }\n return false;\n}\nfunction nextSortDirection(sortDirections, current) {\n if (!current) {\n return sortDirections[0];\n }\n return sortDirections[sortDirections.indexOf(current) + 1];\n}\nfunction collectSortStates(columns, init, pos) {\n let sortStates = [];\n function pushState(column, columnPos) {\n sortStates.push({\n column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.sortOrder\n });\n }\n (columns || []).forEach((column, index) => {\n const columnPos = getColumnPos(index, pos);\n if (column.children) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n }\n sortStates = [].concat(_toConsumableArray(sortStates), _toConsumableArray(collectSortStates(column.children, init, columnPos)));\n } else if (column.sorter) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n } else if (init && column.defaultSortOrder) {\n // Default sorter\n sortStates.push({\n column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.defaultSortOrder\n });\n }\n }\n });\n return sortStates;\n}\nfunction injectSorter(prefixCls, columns, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, pos) {\n return (columns || []).map((column, index) => {\n const columnPos = getColumnPos(index, pos);\n let newColumn = column;\n if (newColumn.sorter) {\n const sortDirections = newColumn.sortDirections || defaultSortDirections;\n const showSorterTooltip = newColumn.showSorterTooltip === undefined ? tableShowSorterTooltip : newColumn.showSorterTooltip;\n const columnKey = getColumnKey(newColumn, columnPos);\n const sorterState = sorterStates.find(_ref => {\n let {\n key\n } = _ref;\n return key === columnKey;\n });\n const sortOrder = sorterState ? sorterState.sortOrder : null;\n const nextSortOrder = nextSortDirection(sortDirections, sortOrder);\n let sorter;\n if (column.sortIcon) {\n sorter = column.sortIcon({\n sortOrder\n });\n } else {\n const upNode = sortDirections.includes(ASCEND) && /*#__PURE__*/React.createElement(CaretUpOutlined, {\n className: classNames(`${prefixCls}-column-sorter-up`, {\n active: sortOrder === ASCEND\n })\n });\n const downNode = sortDirections.includes(DESCEND) && /*#__PURE__*/React.createElement(CaretDownOutlined, {\n className: classNames(`${prefixCls}-column-sorter-down`, {\n active: sortOrder === DESCEND\n })\n });\n sorter = /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${prefixCls}-column-sorter`, {\n [`${prefixCls}-column-sorter-full`]: !!(upNode && downNode)\n })\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-column-sorter-inner`,\n \"aria-hidden\": \"true\"\n }, upNode, downNode));\n }\n const {\n cancelSort,\n triggerAsc,\n triggerDesc\n } = tableLocale || {};\n let sortTip = cancelSort;\n if (nextSortOrder === DESCEND) {\n sortTip = triggerDesc;\n } else if (nextSortOrder === ASCEND) {\n sortTip = triggerAsc;\n }\n const tooltipProps = typeof showSorterTooltip === 'object' ? showSorterTooltip : {\n title: sortTip\n };\n newColumn = Object.assign(Object.assign({}, newColumn), {\n className: classNames(newColumn.className, {\n [`${prefixCls}-column-sort`]: sortOrder\n }),\n title: renderProps => {\n const renderSortTitle = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-column-sorters`\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-column-title`\n }, renderColumnTitle(column.title, renderProps)), sorter);\n return showSorterTooltip ? /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps), renderSortTitle) : renderSortTitle;\n },\n onHeaderCell: col => {\n const cell = column.onHeaderCell && column.onHeaderCell(col) || {};\n const originOnClick = cell.onClick;\n const originOKeyDown = cell.onKeyDown;\n cell.onClick = event => {\n triggerSorter({\n column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOnClick === null || originOnClick === void 0 ? void 0 : originOnClick(event);\n };\n cell.onKeyDown = event => {\n if (event.keyCode === KeyCode.ENTER) {\n triggerSorter({\n column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOKeyDown === null || originOKeyDown === void 0 ? void 0 : originOKeyDown(event);\n }\n };\n const renderTitle = safeColumnTitle(column.title, {});\n const displayTitle = renderTitle === null || renderTitle === void 0 ? void 0 : renderTitle.toString();\n // Inform the screen-reader so it can tell the visually impaired user which column is sorted\n if (sortOrder) {\n cell['aria-sort'] = sortOrder === 'ascend' ? 'ascending' : 'descending';\n } else {\n cell['aria-label'] = displayTitle || '';\n }\n cell.className = classNames(cell.className, `${prefixCls}-column-has-sorters`);\n cell.tabIndex = 0;\n if (column.ellipsis) {\n cell.title = (renderTitle !== null && renderTitle !== void 0 ? renderTitle : '').toString();\n }\n return cell;\n }\n });\n }\n if ('children' in newColumn) {\n newColumn = Object.assign(Object.assign({}, newColumn), {\n children: injectSorter(prefixCls, newColumn.children, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, columnPos)\n });\n }\n return newColumn;\n });\n}\nfunction stateToInfo(sorterStates) {\n const {\n column,\n sortOrder\n } = sorterStates;\n return {\n column,\n order: sortOrder,\n field: column.dataIndex,\n columnKey: column.key\n };\n}\nfunction generateSorterInfo(sorterStates) {\n const list = sorterStates.filter(_ref2 => {\n let {\n sortOrder\n } = _ref2;\n return sortOrder;\n }).map(stateToInfo);\n // =========== Legacy compatible support ===========\n // https://github.com/ant-design/ant-design/pull/19226\n if (list.length === 0 && sorterStates.length) {\n return Object.assign(Object.assign({}, stateToInfo(sorterStates[sorterStates.length - 1])), {\n column: undefined\n });\n }\n if (list.length <= 1) {\n return list[0] || {};\n }\n return list;\n}\nexport function getSortData(data, sortStates, childrenColumnName) {\n const innerSorterStates = sortStates.slice().sort((a, b) => b.multiplePriority - a.multiplePriority);\n const cloneData = data.slice();\n const runningSorters = innerSorterStates.filter(_ref3 => {\n let {\n column: {\n sorter\n },\n sortOrder\n } = _ref3;\n return getSortFunction(sorter) && sortOrder;\n });\n // Skip if no sorter needed\n if (!runningSorters.length) {\n return cloneData;\n }\n return cloneData.sort((record1, record2) => {\n for (let i = 0; i < runningSorters.length; i += 1) {\n const sorterState = runningSorters[i];\n const {\n column: {\n sorter\n },\n sortOrder\n } = sorterState;\n const compareFn = getSortFunction(sorter);\n if (compareFn && sortOrder) {\n const compareResult = compareFn(record1, record2, sortOrder);\n if (compareResult !== 0) {\n return sortOrder === ASCEND ? compareResult : -compareResult;\n }\n }\n }\n return 0;\n }).map(record => {\n const subRecords = record[childrenColumnName];\n if (subRecords) {\n return Object.assign(Object.assign({}, record), {\n [childrenColumnName]: getSortData(subRecords, sortStates, childrenColumnName)\n });\n }\n return record;\n });\n}\nexport default function useFilterSorter(_ref4) {\n let {\n prefixCls,\n mergedColumns,\n onSorterChange,\n sortDirections,\n tableLocale,\n showSorterTooltip\n } = _ref4;\n const [sortStates, setSortStates] = React.useState(collectSortStates(mergedColumns, true));\n const mergedSorterStates = React.useMemo(() => {\n let validate = true;\n const collectedStates = collectSortStates(mergedColumns, false);\n // Return if not controlled\n if (!collectedStates.length) {\n return sortStates;\n }\n const validateStates = [];\n function patchStates(state) {\n if (validate) {\n validateStates.push(state);\n } else {\n validateStates.push(Object.assign(Object.assign({}, state), {\n sortOrder: null\n }));\n }\n }\n let multipleMode = null;\n collectedStates.forEach(state => {\n if (multipleMode === null) {\n patchStates(state);\n if (state.sortOrder) {\n if (state.multiplePriority === false) {\n validate = false;\n } else {\n multipleMode = true;\n }\n }\n } else if (multipleMode && state.multiplePriority !== false) {\n patchStates(state);\n } else {\n validate = false;\n patchStates(state);\n }\n });\n return validateStates;\n }, [mergedColumns, sortStates]);\n // Get render columns title required props\n const columnTitleSorterProps = React.useMemo(() => {\n const sortColumns = mergedSorterStates.map(_ref5 => {\n let {\n column,\n sortOrder\n } = _ref5;\n return {\n column,\n order: sortOrder\n };\n });\n return {\n sortColumns,\n // Legacy\n sortColumn: sortColumns[0] && sortColumns[0].column,\n sortOrder: sortColumns[0] && sortColumns[0].order\n };\n }, [mergedSorterStates]);\n function triggerSorter(sortState) {\n let newSorterStates;\n if (sortState.multiplePriority === false || !mergedSorterStates.length || mergedSorterStates[0].multiplePriority === false) {\n newSorterStates = [sortState];\n } else {\n newSorterStates = [].concat(_toConsumableArray(mergedSorterStates.filter(_ref6 => {\n let {\n key\n } = _ref6;\n return key !== sortState.key;\n })), [sortState]);\n }\n setSortStates(newSorterStates);\n onSorterChange(generateSorterInfo(newSorterStates), newSorterStates);\n }\n const transformColumns = innerColumns => injectSorter(prefixCls, innerColumns, mergedSorterStates, triggerSorter, sortDirections, tableLocale, showSorterTooltip);\n const getSorters = () => generateSorterInfo(mergedSorterStates);\n return [transformColumns, mergedSorterStates, columnTitleSorterProps, getSorters];\n}","import * as React from 'react';\nimport { renderColumnTitle } from '../util';\nfunction fillTitle(columns, columnTitleProps) {\n return columns.map(column => {\n const cloneColumn = Object.assign({}, column);\n cloneColumn.title = renderColumnTitle(column.title, columnTitleProps);\n if ('children' in cloneColumn) {\n cloneColumn.children = fillTitle(cloneColumn.children, columnTitleProps);\n }\n return cloneColumn;\n });\n}\nexport default function useTitleColumns(columnTitleProps) {\n const filledColumns = React.useCallback(columns => fillTitle(columns, columnTitleProps), [columnTitleProps]);\n return [filledColumns];\n}","const genBorderedStyle = token => {\n const {\n componentCls\n } = token;\n const tableBorder = `${token.lineWidth}px ${token.lineType} ${token.tableBorderColor}`;\n const getSizeBorderStyle = (size, paddingVertical, paddingHorizontal) => ({\n [`&${componentCls}-${size}`]: {\n [`> ${componentCls}-container`]: {\n [`> ${componentCls}-content, > ${componentCls}-body`]: {\n [`\n > table > tbody > tr > th,\n > table > tbody > tr > td\n `]: {\n [`> ${componentCls}-expanded-row-fixed`]: {\n margin: `-${paddingVertical}px -${paddingHorizontal + token.lineWidth}px`\n }\n }\n }\n }\n }\n });\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}${componentCls}-bordered`]: Object.assign(Object.assign(Object.assign({\n // ============================ Title =============================\n [`> ${componentCls}-title`]: {\n border: tableBorder,\n borderBottom: 0\n },\n // ============================ Content ============================\n [`> ${componentCls}-container`]: {\n borderInlineStart: tableBorder,\n borderTop: tableBorder,\n [`\n > ${componentCls}-content,\n > ${componentCls}-header,\n > ${componentCls}-body,\n > ${componentCls}-summary\n `]: {\n '> table': {\n // ============================= Cell =============================\n [`\n > thead > tr > th,\n > thead > tr > td,\n > tbody > tr > th,\n > tbody > tr > td,\n > tfoot > tr > th,\n > tfoot > tr > td\n `]: {\n borderInlineEnd: tableBorder\n },\n // ============================ Header ============================\n '> thead': {\n '> tr:not(:last-child) > th': {\n borderBottom: tableBorder\n },\n '> tr > th::before': {\n backgroundColor: 'transparent !important'\n }\n },\n // Fixed right should provides additional border\n [`\n > thead > tr,\n > tbody > tr,\n > tfoot > tr\n `]: {\n [`> ${componentCls}-cell-fix-right-first::after`]: {\n borderInlineEnd: tableBorder\n }\n },\n // ========================== Expandable ==========================\n [`\n > tbody > tr > th,\n > tbody > tr > td\n `]: {\n [`> ${componentCls}-expanded-row-fixed`]: {\n margin: `-${token.tablePaddingVertical}px -${token.tablePaddingHorizontal + token.lineWidth}px`,\n '&::after': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: token.lineWidth,\n bottom: 0,\n borderInlineEnd: tableBorder,\n content: '\"\"'\n }\n }\n }\n }\n }\n },\n // ============================ Scroll ============================\n [`&${componentCls}-scroll-horizontal`]: {\n [`> ${componentCls}-container > ${componentCls}-body`]: {\n '> table > tbody': {\n [`\n > tr${componentCls}-expanded-row,\n > tr${componentCls}-placeholder\n `]: {\n [`> th, > td`]: {\n borderInlineEnd: 0\n }\n }\n }\n }\n }\n }, getSizeBorderStyle('middle', token.tablePaddingVerticalMiddle, token.tablePaddingHorizontalMiddle)), getSizeBorderStyle('small', token.tablePaddingVerticalSmall, token.tablePaddingHorizontalSmall)), {\n // ============================ Footer ============================\n [`> ${componentCls}-footer`]: {\n border: tableBorder,\n borderTop: 0\n }\n }),\n // ============================ Nested ============================\n [`${componentCls}-cell`]: {\n [`${componentCls}-container:first-child`]: {\n // :first-child to avoid the case when bordered and title is set\n borderTop: 0\n },\n // https://github.com/ant-design/ant-design/issues/35577\n '&-scrollbar:not([rowspan])': {\n boxShadow: `0 ${token.lineWidth}px 0 ${token.lineWidth}px ${token.tableHeaderBg}`\n }\n },\n [`${componentCls}-bordered ${componentCls}-cell-scrollbar`]: {\n borderInlineEnd: tableBorder\n }\n }\n };\n};\nexport default genBorderedStyle;","import { textEllipsis } from '../../style';\nconst genEllipsisStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-cell-ellipsis`]: Object.assign(Object.assign({}, textEllipsis), {\n wordBreak: 'keep-all',\n // Fixed first or last should special process\n [`\n &${componentCls}-cell-fix-left-last,\n &${componentCls}-cell-fix-right-first\n `]: {\n overflow: 'visible',\n [`${componentCls}-cell-content`]: {\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n }\n },\n [`${componentCls}-column-title`]: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n wordBreak: 'keep-all'\n }\n })\n }\n };\n};\nexport default genEllipsisStyle;","// ========================= Placeholder ==========================\nconst genEmptyStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-tbody > tr${componentCls}-placeholder`]: {\n textAlign: 'center',\n color: token.colorTextDisabled,\n [`\n &:hover > th,\n &:hover > td,\n `]: {\n background: token.colorBgContainer\n }\n }\n }\n };\n};\nexport default genEmptyStyle;","import { operationUnit } from '../../style';\nconst genExpandStyle = token => {\n const {\n componentCls,\n antCls,\n controlInteractiveSize: checkboxSize,\n motionDurationSlow,\n lineWidth,\n paddingXS,\n lineType,\n tableBorderColor,\n tableExpandIconBg,\n tableExpandColumnWidth,\n borderRadius,\n fontSize,\n fontSizeSM,\n lineHeight,\n tablePaddingVertical,\n tablePaddingHorizontal,\n tableExpandedRowBg,\n paddingXXS\n } = token;\n const halfInnerSize = checkboxSize / 2 - lineWidth;\n // must be odd number, unless it cannot align center\n const expandIconSize = halfInnerSize * 2 + lineWidth * 3;\n const tableBorder = `${lineWidth}px ${lineType} ${tableBorderColor}`;\n const expandIconLineOffset = paddingXXS - lineWidth;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-expand-icon-col`]: {\n width: tableExpandColumnWidth\n },\n [`${componentCls}-row-expand-icon-cell`]: {\n textAlign: 'center',\n [`${componentCls}-row-expand-icon`]: {\n display: 'inline-flex',\n float: 'none',\n verticalAlign: 'sub'\n }\n },\n [`${componentCls}-row-indent`]: {\n height: 1,\n float: 'left'\n },\n [`${componentCls}-row-expand-icon`]: Object.assign(Object.assign({}, operationUnit(token)), {\n position: 'relative',\n float: 'left',\n boxSizing: 'border-box',\n width: expandIconSize,\n height: expandIconSize,\n padding: 0,\n color: 'inherit',\n lineHeight: `${expandIconSize}px`,\n background: tableExpandIconBg,\n border: tableBorder,\n borderRadius,\n transform: `scale(${checkboxSize / expandIconSize})`,\n transition: `all ${motionDurationSlow}`,\n userSelect: 'none',\n [`&:focus, &:hover, &:active`]: {\n borderColor: 'currentcolor'\n },\n [`&::before, &::after`]: {\n position: 'absolute',\n background: 'currentcolor',\n transition: `transform ${motionDurationSlow} ease-out`,\n content: '\"\"'\n },\n '&::before': {\n top: halfInnerSize,\n insetInlineEnd: expandIconLineOffset,\n insetInlineStart: expandIconLineOffset,\n height: lineWidth\n },\n '&::after': {\n top: expandIconLineOffset,\n bottom: expandIconLineOffset,\n insetInlineStart: halfInnerSize,\n width: lineWidth,\n transform: 'rotate(90deg)'\n },\n // Motion effect\n '&-collapsed::before': {\n transform: 'rotate(-180deg)'\n },\n '&-collapsed::after': {\n transform: 'rotate(0deg)'\n },\n '&-spaced': {\n '&::before, &::after': {\n display: 'none',\n content: 'none'\n },\n background: 'transparent',\n border: 0,\n visibility: 'hidden'\n }\n }),\n [`${componentCls}-row-indent + ${componentCls}-row-expand-icon`]: {\n marginTop: (fontSize * lineHeight - lineWidth * 3) / 2 - Math.ceil((fontSizeSM * 1.4 - lineWidth * 3) / 2),\n marginInlineEnd: paddingXS\n },\n [`tr${componentCls}-expanded-row`]: {\n '&, &:hover': {\n [`> th, > td`]: {\n background: tableExpandedRowBg\n }\n },\n // https://github.com/ant-design/ant-design/issues/25573\n [`${antCls}-descriptions-view`]: {\n display: 'flex',\n table: {\n flex: 'auto',\n width: 'auto'\n }\n }\n },\n // With fixed\n [`${componentCls}-expanded-row-fixed`]: {\n position: 'relative',\n margin: `-${tablePaddingVertical}px -${tablePaddingHorizontal}px`,\n padding: `${tablePaddingVertical}px ${tablePaddingHorizontal}px`\n }\n }\n };\n};\nexport default genExpandStyle;","import { resetComponent } from '../../style';\nconst genFilterStyle = token => {\n const {\n componentCls,\n antCls,\n iconCls,\n tableFilterDropdownWidth,\n tableFilterDropdownSearchWidth,\n paddingXXS,\n paddingXS,\n colorText,\n lineWidth,\n lineType,\n tableBorderColor,\n tableHeaderIconColor,\n fontSizeSM,\n tablePaddingHorizontal,\n borderRadius,\n motionDurationSlow,\n colorTextDescription,\n colorPrimary,\n tableHeaderFilterActiveBg,\n colorTextDisabled,\n tableFilterDropdownBg,\n tableFilterDropdownHeight,\n controlItemBgHover,\n controlItemBgActive,\n boxShadowSecondary\n } = token;\n const dropdownPrefixCls = `${antCls}-dropdown`;\n const tableFilterDropdownPrefixCls = `${componentCls}-filter-dropdown`;\n const treePrefixCls = `${antCls}-tree`;\n const tableBorder = `${lineWidth}px ${lineType} ${tableBorderColor}`;\n return [{\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-filter-column`]: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n [`${componentCls}-filter-trigger`]: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n marginBlock: -paddingXXS,\n marginInline: `${paddingXXS}px ${-tablePaddingHorizontal / 2}px`,\n padding: `0 ${paddingXXS}px`,\n color: tableHeaderIconColor,\n fontSize: fontSizeSM,\n borderRadius,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n color: colorTextDescription,\n background: tableHeaderFilterActiveBg\n },\n '&.active': {\n color: colorPrimary\n }\n }\n }\n }, {\n // Dropdown\n [`${antCls}-dropdown`]: {\n [tableFilterDropdownPrefixCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n minWidth: tableFilterDropdownWidth,\n backgroundColor: tableFilterDropdownBg,\n borderRadius,\n boxShadow: boxShadowSecondary,\n overflow: 'hidden',\n // Reset menu\n [`${dropdownPrefixCls}-menu`]: {\n // https://github.com/ant-design/ant-design/issues/4916\n // https://github.com/ant-design/ant-design/issues/19542\n maxHeight: tableFilterDropdownHeight,\n overflowX: 'hidden',\n border: 0,\n boxShadow: 'none',\n borderRadius: 'unset',\n '&:empty::after': {\n display: 'block',\n padding: `${paddingXS}px 0`,\n color: colorTextDisabled,\n fontSize: fontSizeSM,\n textAlign: 'center',\n content: '\"Not Found\"'\n }\n },\n [`${tableFilterDropdownPrefixCls}-tree`]: {\n paddingBlock: `${paddingXS}px 0`,\n paddingInline: paddingXS,\n [treePrefixCls]: {\n padding: 0\n },\n [`${treePrefixCls}-treenode ${treePrefixCls}-node-content-wrapper:hover`]: {\n backgroundColor: controlItemBgHover\n },\n [`${treePrefixCls}-treenode-checkbox-checked ${treePrefixCls}-node-content-wrapper`]: {\n '&, &:hover': {\n backgroundColor: controlItemBgActive\n }\n }\n },\n [`${tableFilterDropdownPrefixCls}-search`]: {\n padding: paddingXS,\n borderBottom: tableBorder,\n '&-input': {\n input: {\n minWidth: tableFilterDropdownSearchWidth\n },\n [iconCls]: {\n color: colorTextDisabled\n }\n }\n },\n [`${tableFilterDropdownPrefixCls}-checkall`]: {\n width: '100%',\n marginBottom: paddingXXS,\n marginInlineStart: paddingXXS\n },\n // Operation\n [`${tableFilterDropdownPrefixCls}-btns`]: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: `${paddingXS - lineWidth}px ${paddingXS}px`,\n overflow: 'hidden',\n borderTop: tableBorder\n }\n })\n }\n },\n // Dropdown Menu & SubMenu\n {\n // submenu of table filter dropdown\n [`${antCls}-dropdown ${tableFilterDropdownPrefixCls}, ${tableFilterDropdownPrefixCls}-submenu`]: {\n // Checkbox\n [`${antCls}-checkbox-wrapper + span`]: {\n paddingInlineStart: paddingXS,\n color: colorText\n },\n [`> ul`]: {\n maxHeight: 'calc(100vh - 130px)',\n overflowX: 'hidden',\n overflowY: 'auto'\n }\n }\n }];\n};\nexport default genFilterStyle;","const genFixedStyle = token => {\n const {\n componentCls,\n lineWidth,\n colorSplit,\n motionDurationSlow,\n zIndexTableFixed,\n tableBg,\n zIndexTableSticky\n } = token;\n const shadowColor = colorSplit;\n // Follow style is magic of shadow which should not follow token:\n return {\n [`${componentCls}-wrapper`]: {\n [`\n ${componentCls}-cell-fix-left,\n ${componentCls}-cell-fix-right\n `]: {\n position: 'sticky !important',\n zIndex: zIndexTableFixed,\n background: tableBg\n },\n [`\n ${componentCls}-cell-fix-left-first::after,\n ${componentCls}-cell-fix-left-last::after\n `]: {\n position: 'absolute',\n top: 0,\n right: {\n _skip_check_: true,\n value: 0\n },\n bottom: -lineWidth,\n width: 30,\n transform: 'translateX(100%)',\n transition: `box-shadow ${motionDurationSlow}`,\n content: '\"\"',\n pointerEvents: 'none'\n },\n [`${componentCls}-cell-fix-left-all::after`]: {\n display: 'none'\n },\n [`\n ${componentCls}-cell-fix-right-first::after,\n ${componentCls}-cell-fix-right-last::after\n `]: {\n position: 'absolute',\n top: 0,\n bottom: -lineWidth,\n left: {\n _skip_check_: true,\n value: 0\n },\n width: 30,\n transform: 'translateX(-100%)',\n transition: `box-shadow ${motionDurationSlow}`,\n content: '\"\"',\n pointerEvents: 'none'\n },\n [`${componentCls}-container`]: {\n '&::before, &::after': {\n position: 'absolute',\n top: 0,\n bottom: 0,\n zIndex: zIndexTableSticky + 1,\n width: 30,\n transition: `box-shadow ${motionDurationSlow}`,\n content: '\"\"',\n pointerEvents: 'none'\n },\n '&::before': {\n insetInlineStart: 0\n },\n '&::after': {\n insetInlineEnd: 0\n }\n },\n [`${componentCls}-ping-left`]: {\n [`&:not(${componentCls}-has-fix-left) ${componentCls}-container`]: {\n position: 'relative',\n '&::before': {\n boxShadow: `inset 10px 0 8px -8px ${shadowColor}`\n }\n },\n [`\n ${componentCls}-cell-fix-left-first::after,\n ${componentCls}-cell-fix-left-last::after\n `]: {\n boxShadow: `inset 10px 0 8px -8px ${shadowColor}`\n },\n [`${componentCls}-cell-fix-left-last::before`]: {\n backgroundColor: 'transparent !important'\n }\n },\n [`${componentCls}-ping-right`]: {\n [`&:not(${componentCls}-has-fix-right) ${componentCls}-container`]: {\n position: 'relative',\n '&::after': {\n boxShadow: `inset -10px 0 8px -8px ${shadowColor}`\n }\n },\n [`\n ${componentCls}-cell-fix-right-first::after,\n ${componentCls}-cell-fix-right-last::after\n `]: {\n boxShadow: `inset -10px 0 8px -8px ${shadowColor}`\n }\n }\n }\n };\n};\nexport default genFixedStyle;","const genPaginationStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n // ========================== Pagination ==========================\n [`${componentCls}-pagination${antCls}-pagination`]: {\n margin: `${token.margin}px 0`\n },\n [`${componentCls}-pagination`]: {\n display: 'flex',\n flexWrap: 'wrap',\n rowGap: token.paddingXS,\n '> *': {\n flex: 'none'\n },\n '&-left': {\n justifyContent: 'flex-start'\n },\n '&-center': {\n justifyContent: 'center'\n },\n '&-right': {\n justifyContent: 'flex-end'\n }\n }\n }\n };\n};\nexport default genPaginationStyle;","const genRadiusStyle = token => {\n const {\n componentCls,\n tableRadius\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [componentCls]: {\n // https://github.com/ant-design/ant-design/issues/39115#issuecomment-1362314574\n [`${componentCls}-title, ${componentCls}-header`]: {\n borderRadius: `${tableRadius}px ${tableRadius}px 0 0`\n },\n [`${componentCls}-title + ${componentCls}-container`]: {\n borderStartStartRadius: 0,\n borderStartEndRadius: 0,\n // https://github.com/ant-design/ant-design/issues/41975\n [`${componentCls}-header, table`]: {\n borderRadius: 0\n },\n 'table > thead > tr:first-child': {\n 'th:first-child, th:last-child, td:first-child, td:last-child': {\n borderRadius: 0\n }\n }\n },\n '&-container': {\n borderStartStartRadius: tableRadius,\n borderStartEndRadius: tableRadius,\n 'table > thead > tr:first-child': {\n '> *:first-child': {\n borderStartStartRadius: tableRadius\n },\n '> *:last-child': {\n borderStartEndRadius: tableRadius\n }\n }\n },\n '&-footer': {\n borderRadius: `0 0 ${tableRadius}px ${tableRadius}px`\n }\n }\n }\n };\n};\nexport default genRadiusStyle;","const genStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-wrapper-rtl`]: {\n direction: 'rtl',\n table: {\n direction: 'rtl'\n },\n [`${componentCls}-pagination-left`]: {\n justifyContent: 'flex-end'\n },\n [`${componentCls}-pagination-right`]: {\n justifyContent: 'flex-start'\n },\n [`${componentCls}-row-expand-icon`]: {\n float: 'right',\n '&::after': {\n transform: 'rotate(-90deg)'\n },\n '&-collapsed::before': {\n transform: 'rotate(180deg)'\n },\n '&-collapsed::after': {\n transform: 'rotate(0deg)'\n }\n },\n [`${componentCls}-container`]: {\n '&::before': {\n insetInlineStart: 'unset',\n insetInlineEnd: 0\n },\n '&::after': {\n insetInlineStart: 0,\n insetInlineEnd: 'unset'\n },\n [`${componentCls}-row-indent`]: {\n float: 'right'\n }\n }\n }\n };\n};\nexport default genStyle;","const genSelectionStyle = token => {\n const {\n componentCls,\n antCls,\n iconCls,\n fontSizeIcon,\n padding,\n paddingXS,\n tableHeaderIconColor,\n tableHeaderIconColorHover,\n tableSelectionColumnWidth\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n // ========================== Selections ==========================\n [`${componentCls}-selection-col`]: {\n width: tableSelectionColumnWidth,\n [`&${componentCls}-selection-col-with-dropdown`]: {\n width: tableSelectionColumnWidth + fontSizeIcon + padding / 4\n }\n },\n [`${componentCls}-bordered ${componentCls}-selection-col`]: {\n width: tableSelectionColumnWidth + paddingXS * 2,\n [`&${componentCls}-selection-col-with-dropdown`]: {\n width: tableSelectionColumnWidth + fontSizeIcon + padding / 4 + paddingXS * 2\n }\n },\n [`\n table tr th${componentCls}-selection-column,\n table tr td${componentCls}-selection-column\n `]: {\n paddingInlineEnd: token.paddingXS,\n paddingInlineStart: token.paddingXS,\n textAlign: 'center',\n [`${antCls}-radio-wrapper`]: {\n marginInlineEnd: 0\n }\n },\n [`table tr th${componentCls}-selection-column${componentCls}-cell-fix-left`]: {\n zIndex: token.zIndexTableFixed + 1\n },\n [`table tr th${componentCls}-selection-column::after`]: {\n backgroundColor: 'transparent !important'\n },\n [`${componentCls}-selection`]: {\n position: 'relative',\n display: 'inline-flex',\n flexDirection: 'column'\n },\n [`${componentCls}-selection-extra`]: {\n position: 'absolute',\n top: 0,\n zIndex: 1,\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n marginInlineStart: '100%',\n paddingInlineStart: `${token.tablePaddingHorizontal / 4}px`,\n [iconCls]: {\n color: tableHeaderIconColor,\n fontSize: fontSizeIcon,\n verticalAlign: 'baseline',\n '&:hover': {\n color: tableHeaderIconColorHover\n }\n }\n }\n }\n };\n};\nexport default genSelectionStyle;","const genSizeStyle = token => {\n const {\n componentCls\n } = token;\n const getSizeStyle = (size, paddingVertical, paddingHorizontal, fontSize) => ({\n [`${componentCls}${componentCls}-${size}`]: {\n fontSize,\n [`\n ${componentCls}-title,\n ${componentCls}-footer,\n ${componentCls}-thead > tr > th,\n ${componentCls}-tbody > tr > th,\n ${componentCls}-tbody > tr > td,\n tfoot > tr > th,\n tfoot > tr > td\n `]: {\n padding: `${paddingVertical}px ${paddingHorizontal}px`\n },\n [`${componentCls}-filter-trigger`]: {\n marginInlineEnd: `-${paddingHorizontal / 2}px`\n },\n [`${componentCls}-expanded-row-fixed`]: {\n margin: `-${paddingVertical}px -${paddingHorizontal}px`\n },\n [`${componentCls}-tbody`]: {\n // ========================= Nest Table ===========================\n [`${componentCls}-wrapper:only-child ${componentCls}`]: {\n marginBlock: `-${paddingVertical}px`,\n marginInline: `${token.tableExpandColumnWidth - paddingHorizontal}px -${paddingHorizontal}px`\n }\n },\n // https://github.com/ant-design/ant-design/issues/35167\n [`${componentCls}-selection-column`]: {\n paddingInlineStart: `${paddingHorizontal / 4}px`\n }\n }\n });\n return {\n [`${componentCls}-wrapper`]: Object.assign(Object.assign({}, getSizeStyle('middle', token.tablePaddingVerticalMiddle, token.tablePaddingHorizontalMiddle, token.tableFontSizeMiddle)), getSizeStyle('small', token.tablePaddingVerticalSmall, token.tablePaddingHorizontalSmall, token.tableFontSizeSmall))\n };\n};\nexport default genSizeStyle;","const genSorterStyle = token => {\n const {\n componentCls,\n marginXXS,\n fontSizeIcon,\n tableHeaderIconColor,\n tableHeaderIconColorHover\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-thead th${componentCls}-column-has-sorters`]: {\n outline: 'none',\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n '&:hover': {\n background: token.tableHeaderSortHoverBg,\n '&::before': {\n backgroundColor: 'transparent !important'\n }\n },\n '&:focus-visible': {\n color: token.colorPrimary\n },\n // https://github.com/ant-design/ant-design/issues/30969\n [`\n &${componentCls}-cell-fix-left:hover,\n &${componentCls}-cell-fix-right:hover\n `]: {\n background: token.tableFixedHeaderSortActiveBg\n }\n },\n [`${componentCls}-thead th${componentCls}-column-sort`]: {\n background: token.tableHeaderSortBg,\n '&::before': {\n backgroundColor: 'transparent !important'\n }\n },\n [`td${componentCls}-column-sort`]: {\n background: token.tableBodySortBg\n },\n [`${componentCls}-column-title`]: {\n position: 'relative',\n zIndex: 1,\n flex: 1\n },\n [`${componentCls}-column-sorters`]: {\n display: 'flex',\n flex: 'auto',\n alignItems: 'center',\n justifyContent: 'space-between',\n '&::after': {\n position: 'absolute',\n inset: 0,\n width: '100%',\n height: '100%',\n content: '\"\"'\n }\n },\n [`${componentCls}-column-sorter`]: {\n marginInlineStart: marginXXS,\n color: tableHeaderIconColor,\n fontSize: 0,\n transition: `color ${token.motionDurationSlow}`,\n '&-inner': {\n display: 'inline-flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n '&-up, &-down': {\n fontSize: fontSizeIcon,\n '&.active': {\n color: token.colorPrimary\n }\n },\n [`${componentCls}-column-sorter-up + ${componentCls}-column-sorter-down`]: {\n marginTop: '-0.3em'\n }\n },\n [`${componentCls}-column-sorters:hover ${componentCls}-column-sorter`]: {\n color: tableHeaderIconColorHover\n }\n }\n };\n};\nexport default genSorterStyle;","const genStickyStyle = token => {\n const {\n componentCls,\n opacityLoading,\n tableScrollThumbBg,\n tableScrollThumbBgHover,\n tableScrollThumbSize,\n tableScrollBg,\n zIndexTableSticky\n } = token;\n const tableBorder = `${token.lineWidth}px ${token.lineType} ${token.tableBorderColor}`;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-sticky`]: {\n '&-holder': {\n position: 'sticky',\n zIndex: zIndexTableSticky,\n background: token.colorBgContainer\n },\n '&-scroll': {\n position: 'sticky',\n bottom: 0,\n height: `${tableScrollThumbSize}px !important`,\n zIndex: zIndexTableSticky,\n display: 'flex',\n alignItems: 'center',\n background: tableScrollBg,\n borderTop: tableBorder,\n opacity: opacityLoading,\n '&:hover': {\n transformOrigin: 'center bottom'\n },\n // fake scrollbar style of sticky\n '&-bar': {\n height: tableScrollThumbSize,\n backgroundColor: tableScrollThumbBg,\n borderRadius: 100,\n transition: `all ${token.motionDurationSlow}, transform none`,\n position: 'absolute',\n bottom: 0,\n '&:hover, &-active': {\n backgroundColor: tableScrollThumbBgHover\n }\n }\n }\n }\n }\n };\n};\nexport default genStickyStyle;","const genSummaryStyle = token => {\n const {\n componentCls,\n lineWidth,\n tableBorderColor\n } = token;\n const tableBorder = `${lineWidth}px ${token.lineType} ${tableBorderColor}`;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-summary`]: {\n position: 'relative',\n zIndex: token.zIndexTableFixed,\n background: token.tableBg,\n '> tr': {\n '> th, > td': {\n borderBottom: tableBorder\n }\n }\n },\n [`div${componentCls}-summary`]: {\n boxShadow: `0 -${lineWidth}px 0 ${tableBorderColor}`\n }\n }\n };\n};\nexport default genSummaryStyle;","import { TinyColor } from '@ctrl/tinycolor';\nimport { clearFix, resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genBorderedStyle from './bordered';\nimport genEllipsisStyle from './ellipsis';\nimport genEmptyStyle from './empty';\nimport genExpandStyle from './expand';\nimport genFilterStyle from './filter';\nimport genFixedStyle from './fixed';\nimport genPaginationStyle from './pagination';\nimport genRadiusStyle from './radius';\nimport genRtlStyle from './rtl';\nimport genSelectionStyle from './selection';\nimport genSizeStyle from './size';\nimport genSorterStyle from './sorter';\nimport genStickyStyle from './sticky';\nimport genSummaryStyle from './summary';\nconst genTableStyle = token => {\n const {\n componentCls,\n fontWeightStrong,\n tablePaddingVertical,\n tablePaddingHorizontal,\n lineWidth,\n lineType,\n tableBorderColor,\n tableFontSize,\n tableBg,\n tableRadius,\n tableHeaderTextColor,\n motionDurationMid,\n tableHeaderBg,\n tableHeaderCellSplitColor,\n tableRowHoverBg,\n tableSelectedRowBg,\n tableSelectedRowHoverBg,\n tableFooterTextColor,\n tableFooterBg,\n paddingContentVerticalLG\n } = token;\n const tableBorder = `${lineWidth}px ${lineType} ${tableBorderColor}`;\n return {\n [`${componentCls}-wrapper`]: Object.assign(Object.assign({\n clear: 'both',\n maxWidth: '100%'\n }, clearFix()), {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n fontSize: tableFontSize,\n background: tableBg,\n borderRadius: `${tableRadius}px ${tableRadius}px 0 0`\n }),\n // https://github.com/ant-design/ant-design/issues/17611\n table: {\n width: '100%',\n textAlign: 'start',\n borderRadius: `${tableRadius}px ${tableRadius}px 0 0`,\n borderCollapse: 'separate',\n borderSpacing: 0\n },\n // ============================= Cell =============================\n [`\n ${componentCls}-thead > tr > th,\n ${componentCls}-tbody > tr > th,\n ${componentCls}-tbody > tr > td,\n tfoot > tr > th,\n tfoot > tr > td\n `]: {\n position: 'relative',\n padding: `${paddingContentVerticalLG}px ${tablePaddingHorizontal}px`,\n overflowWrap: 'break-word'\n },\n // ============================ Title =============================\n [`${componentCls}-title`]: {\n padding: `${tablePaddingVertical}px ${tablePaddingHorizontal}px`\n },\n // ============================ Header ============================\n [`${componentCls}-thead`]: {\n [`\n > tr > th,\n > tr > td\n `]: {\n position: 'relative',\n color: tableHeaderTextColor,\n fontWeight: fontWeightStrong,\n textAlign: 'start',\n background: tableHeaderBg,\n borderBottom: tableBorder,\n transition: `background ${motionDurationMid} ease`,\n \"&[colspan]:not([colspan='1'])\": {\n textAlign: 'center'\n },\n [`&:not(:last-child):not(${componentCls}-selection-column):not(${componentCls}-row-expand-icon-cell):not([colspan])::before`]: {\n position: 'absolute',\n top: '50%',\n insetInlineEnd: 0,\n width: 1,\n height: '1.6em',\n backgroundColor: tableHeaderCellSplitColor,\n transform: 'translateY(-50%)',\n transition: `background-color ${motionDurationMid}`,\n content: '\"\"'\n }\n },\n '> tr:not(:last-child) > th[colspan]': {\n borderBottom: 0\n }\n },\n // ============================ Body ============================\n [`${componentCls}-tbody`]: {\n '> tr': {\n [`> th, > td`]: {\n transition: `background ${motionDurationMid}, border-color ${motionDurationMid}`,\n borderBottom: tableBorder,\n // ========================= Nest Table ===========================\n [`\n > ${componentCls}-wrapper:only-child,\n > ${componentCls}-expanded-row-fixed > ${componentCls}-wrapper:only-child\n `]: {\n [componentCls]: {\n marginBlock: `-${tablePaddingVertical}px`,\n marginInline: `${token.tableExpandColumnWidth - tablePaddingHorizontal}px -${tablePaddingHorizontal}px`,\n [`${componentCls}-tbody > tr:last-child > td`]: {\n borderBottom: 0,\n '&:first-child, &:last-child': {\n borderRadius: 0\n }\n }\n }\n }\n },\n '> th': {\n position: 'relative',\n color: tableHeaderTextColor,\n fontWeight: fontWeightStrong,\n textAlign: 'start',\n background: tableHeaderBg,\n borderBottom: tableBorder,\n transition: `background ${motionDurationMid} ease`\n },\n [`\n &${componentCls}-row:hover > th,\n &${componentCls}-row:hover > td,\n > th${componentCls}-cell-row-hover,\n > td${componentCls}-cell-row-hover\n `]: {\n background: tableRowHoverBg\n },\n [`&${componentCls}-row-selected`]: {\n [`> th, > td`]: {\n background: tableSelectedRowBg\n },\n [`&:hover > th, &:hover > td`]: {\n background: tableSelectedRowHoverBg\n }\n }\n }\n },\n // ============================ Footer ============================\n [`${componentCls}-footer`]: {\n padding: `${tablePaddingVertical}px ${tablePaddingHorizontal}px`,\n color: tableFooterTextColor,\n background: tableFooterBg\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Table', token => {\n const {\n controlItemBgActive,\n controlItemBgActiveHover,\n colorTextPlaceholder,\n colorTextHeading,\n colorSplit,\n colorBorderSecondary,\n fontSize,\n padding,\n paddingXS,\n paddingSM,\n controlHeight,\n colorFillAlter,\n colorIcon,\n colorIconHover,\n opacityLoading,\n colorBgContainer,\n borderRadiusLG,\n colorFillContent,\n colorFillSecondary,\n controlInteractiveSize: checkboxSize\n } = token;\n const baseColorAction = new TinyColor(colorIcon);\n const baseColorActionHover = new TinyColor(colorIconHover);\n const tableSelectedRowBg = controlItemBgActive;\n const zIndexTableFixed = 2;\n const colorFillSecondarySolid = new TinyColor(colorFillSecondary).onBackground(colorBgContainer).toHexShortString();\n const colorFillContentSolid = new TinyColor(colorFillContent).onBackground(colorBgContainer).toHexShortString();\n const colorFillAlterSolid = new TinyColor(colorFillAlter).onBackground(colorBgContainer).toHexShortString();\n const tableToken = mergeToken(token, {\n tableFontSize: fontSize,\n tableBg: colorBgContainer,\n tableRadius: borderRadiusLG,\n tablePaddingVertical: padding,\n tablePaddingHorizontal: padding,\n tablePaddingVerticalMiddle: paddingSM,\n tablePaddingHorizontalMiddle: paddingXS,\n tablePaddingVerticalSmall: paddingXS,\n tablePaddingHorizontalSmall: paddingXS,\n tableBorderColor: colorBorderSecondary,\n tableHeaderTextColor: colorTextHeading,\n tableHeaderBg: colorFillAlterSolid,\n tableFooterTextColor: colorTextHeading,\n tableFooterBg: colorFillAlterSolid,\n tableHeaderCellSplitColor: colorBorderSecondary,\n tableHeaderSortBg: colorFillSecondarySolid,\n tableHeaderSortHoverBg: colorFillContentSolid,\n tableHeaderIconColor: baseColorAction.clone().setAlpha(baseColorAction.getAlpha() * opacityLoading).toRgbString(),\n tableHeaderIconColorHover: baseColorActionHover.clone().setAlpha(baseColorActionHover.getAlpha() * opacityLoading).toRgbString(),\n tableBodySortBg: colorFillAlterSolid,\n tableFixedHeaderSortActiveBg: colorFillSecondarySolid,\n tableHeaderFilterActiveBg: colorFillContent,\n tableFilterDropdownBg: colorBgContainer,\n tableRowHoverBg: colorFillAlterSolid,\n tableSelectedRowBg,\n tableSelectedRowHoverBg: controlItemBgActiveHover,\n zIndexTableFixed,\n zIndexTableSticky: zIndexTableFixed + 1,\n tableFontSizeMiddle: fontSize,\n tableFontSizeSmall: fontSize,\n tableSelectionColumnWidth: controlHeight,\n tableExpandIconBg: colorBgContainer,\n tableExpandColumnWidth: checkboxSize + 2 * token.padding,\n tableExpandedRowBg: colorFillAlter,\n // Dropdown\n tableFilterDropdownWidth: 120,\n tableFilterDropdownHeight: 264,\n tableFilterDropdownSearchWidth: 140,\n // Virtual Scroll Bar\n tableScrollThumbSize: 8,\n tableScrollThumbBg: colorTextPlaceholder,\n tableScrollThumbBgHover: colorTextHeading,\n tableScrollBg: colorSplit\n });\n return [genTableStyle(tableToken), genPaginationStyle(tableToken), genSummaryStyle(tableToken), genSorterStyle(tableToken), genFilterStyle(tableToken), genBorderedStyle(tableToken), genRadiusStyle(tableToken), genExpandStyle(tableToken), genSummaryStyle(tableToken), genEmptyStyle(tableToken), genSelectionStyle(tableToken), genFixedStyle(tableToken), genStickyStyle(tableToken), genEllipsisStyle(tableToken), genSizeStyle(tableToken), genRtlStyle(tableToken)];\n});","import classNames from 'classnames';\nimport { INTERNAL_HOOKS } from 'rc-table';\nimport { convertChildrenToColumns } from \"rc-table/es/hooks/useColumns\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport scrollTo from '../_util/scrollTo';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider/context';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport useSize from '../config-provider/hooks/useSize';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport defaultLocale from '../locale/en_US';\nimport Pagination from '../pagination';\nimport Spin from '../spin';\nimport renderExpandIcon from './ExpandIcon';\nimport RcTable from './RcTable';\nimport useFilter, { getFilterData } from './hooks/useFilter';\nimport useLazyKVMap from './hooks/useLazyKVMap';\nimport usePagination, { DEFAULT_PAGE_SIZE, getPaginationParam } from './hooks/usePagination';\nimport useSelection from './hooks/useSelection';\nimport useSorter, { getSortData } from './hooks/useSorter';\nimport useTitleColumns from './hooks/useTitleColumns';\nimport useStyle from './style';\nconst EMPTY_LIST = [];\nconst InternalTable = (props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n size: customizeSize,\n bordered,\n dropdownPrefixCls: customizeDropdownPrefixCls,\n dataSource,\n pagination,\n rowSelection,\n rowKey = 'key',\n rowClassName,\n columns,\n children,\n childrenColumnName: legacyChildrenColumnName,\n onChange,\n getPopupContainer,\n loading,\n expandIcon,\n expandable,\n expandedRowRender,\n expandIconColumnIndex,\n indentSize,\n scroll,\n sortDirections,\n locale,\n showSorterTooltip = true\n } = props;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof rowKey === 'function' && rowKey.length > 1), 'Table', '`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected.') : void 0;\n }\n const baseColumns = React.useMemo(() => columns || convertChildrenToColumns(children), [columns, children]);\n const needResponsive = React.useMemo(() => baseColumns.some(col => col.responsive), [baseColumns]);\n const screens = useBreakpoint(needResponsive);\n const mergedColumns = React.useMemo(() => {\n const matched = new Set(Object.keys(screens).filter(m => screens[m]));\n return baseColumns.filter(c => !c.responsive || c.responsive.some(r => matched.has(r)));\n }, [baseColumns, screens]);\n const tableProps = omit(props, ['className', 'style', 'columns']);\n const {\n locale: contextLocale = defaultLocale,\n direction,\n table,\n renderEmpty,\n getPrefixCls,\n getPopupContainer: getContextPopupContainer\n } = React.useContext(ConfigContext);\n const mergedSize = useSize(customizeSize);\n const tableLocale = Object.assign(Object.assign({}, contextLocale.Table), locale);\n const rawData = dataSource || EMPTY_LIST;\n const prefixCls = getPrefixCls('table', customizePrefixCls);\n const dropdownPrefixCls = getPrefixCls('dropdown', customizeDropdownPrefixCls);\n const mergedExpandable = Object.assign({\n childrenColumnName: legacyChildrenColumnName,\n expandIconColumnIndex\n }, expandable);\n const {\n childrenColumnName = 'children'\n } = mergedExpandable;\n const expandType = React.useMemo(() => {\n if (rawData.some(item => item === null || item === void 0 ? void 0 : item[childrenColumnName])) {\n return 'nest';\n }\n if (expandedRowRender || expandable && expandable.expandedRowRender) {\n return 'row';\n }\n return null;\n }, [rawData]);\n const internalRefs = {\n body: React.useRef()\n };\n // ============================ RowKey ============================\n const getRowKey = React.useMemo(() => {\n if (typeof rowKey === 'function') {\n return rowKey;\n }\n return record => record === null || record === void 0 ? void 0 : record[rowKey];\n }, [rowKey]);\n const [getRecordByKey] = useLazyKVMap(rawData, childrenColumnName, getRowKey);\n // ============================ Events =============================\n const changeEventInfo = {};\n const triggerOnChange = function (info, action) {\n let reset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _a, _b, _c;\n const changeInfo = Object.assign(Object.assign({}, changeEventInfo), info);\n if (reset) {\n (_a = changeEventInfo.resetPagination) === null || _a === void 0 ? void 0 : _a.call(changeEventInfo);\n // Reset event param\n if ((_b = changeInfo.pagination) === null || _b === void 0 ? void 0 : _b.current) {\n changeInfo.pagination.current = 1;\n }\n // Trigger pagination events\n if (pagination && pagination.onChange) {\n pagination.onChange(1, (_c = changeInfo.pagination) === null || _c === void 0 ? void 0 : _c.pageSize);\n }\n }\n if (scroll && scroll.scrollToFirstRowOnChange !== false && internalRefs.body.current) {\n scrollTo(0, {\n getContainer: () => internalRefs.body.current\n });\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(changeInfo.pagination, changeInfo.filters, changeInfo.sorter, {\n currentDataSource: getFilterData(getSortData(rawData, changeInfo.sorterStates, childrenColumnName), changeInfo.filterStates),\n action\n });\n };\n /**\n * Controlled state in `columns` is not a good idea that makes too many code (1000+ line?) to read\n * state out and then put it back to title render. Move these code into `hooks` but still too\n * complex. We should provides Table props like `sorter` & `filter` to handle control in next big\n * version.\n */\n // ============================ Sorter =============================\n const onSorterChange = (sorter, sorterStates) => {\n triggerOnChange({\n sorter,\n sorterStates\n }, 'sort', false);\n };\n const [transformSorterColumns, sortStates, sorterTitleProps, getSorters] = useSorter({\n prefixCls,\n mergedColumns,\n onSorterChange,\n sortDirections: sortDirections || ['ascend', 'descend'],\n tableLocale,\n showSorterTooltip\n });\n const sortedData = React.useMemo(() => getSortData(rawData, sortStates, childrenColumnName), [rawData, sortStates]);\n changeEventInfo.sorter = getSorters();\n changeEventInfo.sorterStates = sortStates;\n // ============================ Filter ============================\n const onFilterChange = (filters, filterStates) => {\n triggerOnChange({\n filters,\n filterStates\n }, 'filter', true);\n };\n const [transformFilterColumns, filterStates, filters] = useFilter({\n prefixCls,\n locale: tableLocale,\n dropdownPrefixCls,\n mergedColumns,\n onFilterChange,\n getPopupContainer: getPopupContainer || getContextPopupContainer\n });\n const mergedData = getFilterData(sortedData, filterStates);\n changeEventInfo.filters = filters;\n changeEventInfo.filterStates = filterStates;\n // ============================ Column ============================\n const columnTitleProps = React.useMemo(() => {\n const mergedFilters = {};\n Object.keys(filters).forEach(filterKey => {\n if (filters[filterKey] !== null) {\n mergedFilters[filterKey] = filters[filterKey];\n }\n });\n return Object.assign(Object.assign({}, sorterTitleProps), {\n filters: mergedFilters\n });\n }, [sorterTitleProps, filters]);\n const [transformTitleColumns] = useTitleColumns(columnTitleProps);\n // ========================== Pagination ==========================\n const onPaginationChange = (current, pageSize) => {\n triggerOnChange({\n pagination: Object.assign(Object.assign({}, changeEventInfo.pagination), {\n current,\n pageSize\n })\n }, 'paginate');\n };\n const [mergedPagination, resetPagination] = usePagination(mergedData.length, onPaginationChange, pagination);\n changeEventInfo.pagination = pagination === false ? {} : getPaginationParam(mergedPagination, pagination);\n changeEventInfo.resetPagination = resetPagination;\n // ============================= Data =============================\n const pageData = React.useMemo(() => {\n if (pagination === false || !mergedPagination.pageSize) {\n return mergedData;\n }\n const {\n current = 1,\n total,\n pageSize = DEFAULT_PAGE_SIZE\n } = mergedPagination;\n process.env.NODE_ENV !== \"production\" ? warning(current > 0, 'Table', '`current` should be positive number.') : void 0;\n // Dynamic table data\n if (mergedData.length < total) {\n if (mergedData.length > pageSize) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Table', '`dataSource` length is less than `pagination.total` but large than `pagination.pageSize`. Please make sure your config correct data with async mode.') : void 0;\n return mergedData.slice((current - 1) * pageSize, current * pageSize);\n }\n return mergedData;\n }\n return mergedData.slice((current - 1) * pageSize, current * pageSize);\n }, [!!pagination, mergedData, mergedPagination && mergedPagination.current, mergedPagination && mergedPagination.pageSize, mergedPagination && mergedPagination.total]);\n // ========================== Selections ==========================\n const [transformSelectionColumns, selectedKeySet] = useSelection({\n prefixCls,\n data: mergedData,\n pageData,\n getRowKey,\n getRecordByKey,\n expandType,\n childrenColumnName,\n locale: tableLocale,\n getPopupContainer: getPopupContainer || getContextPopupContainer\n }, rowSelection);\n const internalRowClassName = (record, index, indent) => {\n let mergedRowClassName;\n if (typeof rowClassName === 'function') {\n mergedRowClassName = classNames(rowClassName(record, index, indent));\n } else {\n mergedRowClassName = classNames(rowClassName);\n }\n return classNames({\n [`${prefixCls}-row-selected`]: selectedKeySet.has(getRowKey(record, index))\n }, mergedRowClassName);\n };\n // ========================== Expandable ==========================\n // Pass origin render status into `rc-table`, this can be removed when refactor with `rc-table`\n mergedExpandable.__PARENT_RENDER_ICON__ = mergedExpandable.expandIcon;\n // Customize expandable icon\n mergedExpandable.expandIcon = mergedExpandable.expandIcon || expandIcon || renderExpandIcon(tableLocale);\n // Adjust expand icon index, no overwrite expandIconColumnIndex if set.\n if (expandType === 'nest' && mergedExpandable.expandIconColumnIndex === undefined) {\n mergedExpandable.expandIconColumnIndex = rowSelection ? 1 : 0;\n } else if (mergedExpandable.expandIconColumnIndex > 0 && rowSelection) {\n mergedExpandable.expandIconColumnIndex -= 1;\n }\n // Indent size\n if (typeof mergedExpandable.indentSize !== 'number') {\n mergedExpandable.indentSize = typeof indentSize === 'number' ? indentSize : 15;\n }\n // ============================ Render ============================\n const transformColumns = React.useCallback(innerColumns => transformTitleColumns(transformSelectionColumns(transformFilterColumns(transformSorterColumns(innerColumns)))), [transformSorterColumns, transformFilterColumns, transformSelectionColumns]);\n let topPaginationNode;\n let bottomPaginationNode;\n if (pagination !== false && (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.total)) {\n let paginationSize;\n if (mergedPagination.size) {\n paginationSize = mergedPagination.size;\n } else {\n paginationSize = mergedSize === 'small' || mergedSize === 'middle' ? 'small' : undefined;\n }\n const renderPagination = position => /*#__PURE__*/React.createElement(Pagination, Object.assign({}, mergedPagination, {\n className: classNames(`${prefixCls}-pagination ${prefixCls}-pagination-${position}`, mergedPagination.className),\n size: paginationSize\n }));\n const defaultPosition = direction === 'rtl' ? 'left' : 'right';\n const {\n position\n } = mergedPagination;\n if (position !== null && Array.isArray(position)) {\n const topPos = position.find(p => p.includes('top'));\n const bottomPos = position.find(p => p.includes('bottom'));\n const isDisable = position.every(p => `${p}` === 'none');\n if (!topPos && !bottomPos && !isDisable) {\n bottomPaginationNode = renderPagination(defaultPosition);\n }\n if (topPos) {\n topPaginationNode = renderPagination(topPos.toLowerCase().replace('top', ''));\n }\n if (bottomPos) {\n bottomPaginationNode = renderPagination(bottomPos.toLowerCase().replace('bottom', ''));\n }\n } else {\n bottomPaginationNode = renderPagination(defaultPosition);\n }\n }\n // >>>>>>>>> Spinning\n let spinProps;\n if (typeof loading === 'boolean') {\n spinProps = {\n spinning: loading\n };\n } else if (typeof loading === 'object') {\n spinProps = Object.assign({\n spinning: true\n }, loading);\n }\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const wrapperClassNames = classNames(`${prefixCls}-wrapper`, table === null || table === void 0 ? void 0 : table.className, {\n [`${prefixCls}-wrapper-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId);\n const mergedStyle = Object.assign(Object.assign({}, table === null || table === void 0 ? void 0 : table.style), style);\n const emptyText = locale && locale.emptyText || (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Table')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Table\"\n });\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n className: wrapperClassNames,\n style: mergedStyle\n }, /*#__PURE__*/React.createElement(Spin, Object.assign({\n spinning: false\n }, spinProps), topPaginationNode, /*#__PURE__*/React.createElement(RcTable, Object.assign({}, tableProps, {\n columns: mergedColumns,\n direction: direction,\n expandable: mergedExpandable,\n prefixCls: prefixCls,\n className: classNames({\n [`${prefixCls}-middle`]: mergedSize === 'middle',\n [`${prefixCls}-small`]: mergedSize === 'small',\n [`${prefixCls}-bordered`]: bordered,\n [`${prefixCls}-empty`]: rawData.length === 0\n }),\n data: pageData,\n rowKey: getRowKey,\n rowClassName: internalRowClassName,\n emptyText: emptyText,\n // Internal\n internalHooks: INTERNAL_HOOKS,\n internalRefs: internalRefs,\n transformColumns: transformColumns\n })), bottomPaginationNode)));\n};\nexport default /*#__PURE__*/React.forwardRef(InternalTable);","import { EXPAND_COLUMN, Summary } from 'rc-table';\nimport * as React from 'react';\nimport Column from './Column';\nimport ColumnGroup from './ColumnGroup';\nimport InternalTable from './InternalTable';\nimport { SELECTION_ALL, SELECTION_COLUMN, SELECTION_INVERT, SELECTION_NONE } from './hooks/useSelection';\nconst Table = (props, ref) => {\n const renderTimesRef = React.useRef(0);\n renderTimesRef.current += 1;\n return /*#__PURE__*/React.createElement(InternalTable, Object.assign({}, props, {\n ref: ref,\n _renderTimes: renderTimesRef.current\n }));\n};\nconst ForwardTable = /*#__PURE__*/React.forwardRef(Table);\nForwardTable.SELECTION_COLUMN = SELECTION_COLUMN;\nForwardTable.EXPAND_COLUMN = EXPAND_COLUMN;\nForwardTable.SELECTION_ALL = SELECTION_ALL;\nForwardTable.SELECTION_INVERT = SELECTION_INVERT;\nForwardTable.SELECTION_NONE = SELECTION_NONE;\nForwardTable.Column = Column;\nForwardTable.ColumnGroup = ColumnGroup;\nForwardTable.Summary = Summary;\nif (process.env.NODE_ENV !== 'production') {\n ForwardTable.displayName = 'Table';\n}\nexport default ForwardTable;","'use client';\n\nimport Table from './Table';\nexport default Table;","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;","'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 * as React from 'react';\nimport genPurePanel from '../_util/PurePanel';\nimport warning from '../_util/warning';\nimport DatePicker from '../date-picker';\nconst {\n TimePicker: InternalTimePicker,\n RangePicker: InternalRangePicker\n} = DatePicker;\nconst RangePicker = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(InternalRangePicker, Object.assign({}, props, {\n picker: \"time\",\n mode: undefined,\n ref: ref\n})));\nconst TimePicker = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n addon,\n renderExtraFooter\n } = _a,\n restProps = __rest(_a, [\"addon\", \"renderExtraFooter\"]);\n const internalRenderExtraFooter = React.useMemo(() => {\n if (renderExtraFooter) {\n return renderExtraFooter;\n }\n if (addon) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'TimePicker', '`addon` is deprecated. Please use `renderExtraFooter` instead.') : void 0;\n return addon;\n }\n return undefined;\n }, [addon, renderExtraFooter]);\n return /*#__PURE__*/React.createElement(InternalTimePicker, Object.assign({}, restProps, {\n mode: undefined,\n ref: ref,\n renderExtraFooter: internalRenderExtraFooter\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n TimePicker.displayName = 'TimePicker';\n}\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(TimePicker, 'picker');\nTimePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nTimePicker.RangePicker = RangePicker;\nTimePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default TimePicker;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\n/**\n * This function will try to call requestIdleCallback if available to save performance.\n * No need `getLabel` here since already fetch on `rawLabeledValue`.\n */\nexport default (function (values) {\n var cacheRef = React.useRef({\n valueLabels: new Map()\n });\n return React.useMemo(function () {\n var valueLabels = cacheRef.current.valueLabels;\n var valueLabelsCache = new Map();\n var filledValues = values.map(function (item) {\n var _item$label;\n var value = item.value;\n var mergedLabel = (_item$label = item.label) !== null && _item$label !== void 0 ? _item$label : valueLabels.get(value);\n\n // Save in cache\n valueLabelsCache.set(value, mergedLabel);\n return _objectSpread(_objectSpread({}, item), {}, {\n label: mergedLabel\n });\n });\n cacheRef.current.valueLabels = valueLabelsCache;\n return [filledValues];\n }, [values]);\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nexport default (function (rawLabeledValues, rawHalfCheckedValues, treeConduction, keyEntities) {\n return React.useMemo(function () {\n var checkedKeys = rawLabeledValues.map(function (_ref) {\n var value = _ref.value;\n return value;\n });\n var halfCheckedKeys = rawHalfCheckedValues.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n });\n var missingValues = checkedKeys.filter(function (key) {\n return !keyEntities[key];\n });\n if (treeConduction) {\n var _conductCheck = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = _conductCheck.checkedKeys;\n halfCheckedKeys = _conductCheck.halfCheckedKeys;\n }\n return [\n // Checked keys should fill with missing keys which should de-duplicated\n Array.from(new Set([].concat(_toConsumableArray(missingValues), _toConsumableArray(checkedKeys)))),\n // Half checked keys\n halfCheckedKeys];\n }, [rawLabeledValues, rawHalfCheckedValues, treeConduction, keyEntities]);\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport warning from \"rc-util/es/warning\";\nimport { isNil } from \"../utils/valueUtil\";\nexport default (function (treeData, fieldNames) {\n return React.useMemo(function () {\n var collection = convertDataToEntities(treeData, {\n fieldNames: fieldNames,\n initWrapper: function initWrapper(wrapper) {\n return _objectSpread(_objectSpread({}, wrapper), {}, {\n valueEntities: new Map()\n });\n },\n processEntity: function processEntity(entity, wrapper) {\n var val = entity.node[fieldNames.value];\n\n // Check if exist same value\n if (process.env.NODE_ENV !== 'production') {\n var key = entity.node.key;\n warning(!isNil(val), 'TreeNode `value` is invalidate: undefined');\n warning(!wrapper.valueEntities.has(val), \"Same `value` exist in the tree: \".concat(val));\n warning(!key || String(key) === String(val), \"`key` or `value` with TreeNode must be the same or you can remove one of them. key: \".concat(key, \", value: \").concat(val, \".\"));\n }\n wrapper.valueEntities.set(val, entity);\n }\n });\n return collection;\n }, [treeData, fieldNames]);\n});","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar TreeNode = function TreeNode() {\n return null;\n};\nexport default TreeNode;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"value\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport TreeNode from \"../TreeNode\";\nexport function convertChildrenToData(nodes) {\n return toArray(nodes).map(function (node) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return null;\n }\n var _ref = node,\n key = _ref.key,\n _ref$props = _ref.props,\n children = _ref$props.children,\n value = _ref$props.value,\n restProps = _objectWithoutProperties(_ref$props, _excluded);\n var data = _objectSpread({\n key: key,\n value: value\n }, restProps);\n var childData = convertChildrenToData(children);\n if (childData.length) {\n data.children = childData;\n }\n return data;\n }).filter(function (data) {\n return data;\n });\n}\nexport function fillLegacyProps(dataNode) {\n if (!dataNode) {\n return dataNode;\n }\n var cloneNode = _objectSpread({}, dataNode);\n if (!('props' in cloneNode)) {\n Object.defineProperty(cloneNode, 'props', {\n get: function get() {\n warning(false, 'New `rc-tree-select` not support return node instance as argument anymore. Please consider to remove `props` access.');\n return cloneNode;\n }\n });\n }\n return cloneNode;\n}\nexport function fillAdditionalInfo(extra, triggerValue, checkedValues, treeData, showPosition, fieldNames) {\n var triggerNode = null;\n var nodeList = null;\n function generateMap() {\n function dig(list) {\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';\n var parentIncluded = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return list.map(function (option, index) {\n var pos = \"\".concat(level, \"-\").concat(index);\n var value = option[fieldNames.value];\n var included = checkedValues.includes(value);\n var children = dig(option[fieldNames.children] || [], pos, included);\n var node = /*#__PURE__*/React.createElement(TreeNode, option, children.map(function (child) {\n return child.node;\n }));\n\n // Link with trigger node\n if (triggerValue === value) {\n triggerNode = node;\n }\n if (included) {\n var checkedNode = {\n pos: pos,\n node: node,\n children: children\n };\n if (!parentIncluded) {\n nodeList.push(checkedNode);\n }\n return checkedNode;\n }\n return null;\n }).filter(function (node) {\n return node;\n });\n }\n if (!nodeList) {\n nodeList = [];\n dig(treeData);\n\n // Sort to keep the checked node length\n nodeList.sort(function (_ref2, _ref3) {\n var val1 = _ref2.node.props.value;\n var val2 = _ref3.node.props.value;\n var index1 = checkedValues.indexOf(val1);\n var index2 = checkedValues.indexOf(val2);\n return index1 - index2;\n });\n }\n }\n Object.defineProperty(extra, 'triggerNode', {\n get: function get() {\n warning(false, '`triggerNode` is deprecated. Please consider decoupling data with node.');\n generateMap();\n return triggerNode;\n }\n });\n Object.defineProperty(extra, 'allCheckedNodes', {\n get: function get() {\n warning(false, '`allCheckedNodes` is deprecated. Please consider decoupling data with node.');\n generateMap();\n if (showPosition) {\n return nodeList;\n }\n return nodeList.map(function (_ref4) {\n var node = _ref4.node;\n return node;\n });\n }\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { fillLegacyProps } from \"../utils/legacyUtil\";\nexport default (function (treeData, searchValue, _ref) {\n var treeNodeFilterProp = _ref.treeNodeFilterProp,\n filterTreeNode = _ref.filterTreeNode,\n fieldNames = _ref.fieldNames;\n var fieldChildren = fieldNames.children;\n return React.useMemo(function () {\n if (!searchValue || filterTreeNode === false) {\n return treeData;\n }\n var filterOptionFunc;\n if (typeof filterTreeNode === 'function') {\n filterOptionFunc = filterTreeNode;\n } else {\n var upperStr = searchValue.toUpperCase();\n filterOptionFunc = function filterOptionFunc(_, dataNode) {\n var value = dataNode[treeNodeFilterProp];\n return String(value).toUpperCase().includes(upperStr);\n };\n }\n function dig(list) {\n var keepAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return list.reduce(function (total, dataNode) {\n var children = dataNode[fieldChildren];\n var match = keepAll || filterOptionFunc(searchValue, fillLegacyProps(dataNode));\n var childList = dig(children || [], match);\n if (match || childList.length) {\n total.push(_objectSpread(_objectSpread({}, dataNode), {}, _defineProperty({\n isLeaf: undefined\n }, fieldChildren, childList)));\n }\n return total;\n }, []);\n }\n return dig(treeData);\n }, [treeData, searchValue, fieldChildren, treeNodeFilterProp, filterTreeNode]);\n});","import * as React from 'react';\n\n/**\n * Same as `React.useCallback` but always return a memoized function\n * but redirect to real function.\n */\nexport default function useRefFunc(callback) {\n var funcRef = React.useRef();\n funcRef.current = callback;\n var cacheFn = React.useCallback(function () {\n return funcRef.current.apply(funcRef, arguments);\n }, []);\n return cacheFn;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { convertChildrenToData } from \"../utils/legacyUtil\";\nfunction parseSimpleTreeData(treeData, _ref) {\n var id = _ref.id,\n pId = _ref.pId,\n rootPId = _ref.rootPId;\n var keyNodes = {};\n var rootNodeList = [];\n\n // Fill in the map\n var nodeList = treeData.map(function (node) {\n var clone = _objectSpread({}, node);\n var key = clone[id];\n keyNodes[key] = clone;\n clone.key = clone.key || key;\n return clone;\n });\n\n // Connect tree\n nodeList.forEach(function (node) {\n var parentKey = node[pId];\n var parent = keyNodes[parentKey];\n\n // Fill parent\n if (parent) {\n parent.children = parent.children || [];\n parent.children.push(node);\n }\n\n // Fill root tree node\n if (parentKey === rootPId || !parent && rootPId === null) {\n rootNodeList.push(node);\n }\n });\n return rootNodeList;\n}\n\n/**\n * Convert `treeData` or `children` into formatted `treeData`.\n * Will not re-calculate if `treeData` or `children` not change.\n */\nexport default function useTreeData(treeData, children, simpleMode) {\n return React.useMemo(function () {\n if (treeData) {\n return simpleMode ? parseSimpleTreeData(treeData, _objectSpread({\n id: 'id',\n pId: 'pId',\n rootPId: null\n }, simpleMode !== true ? simpleMode : {})) : treeData;\n }\n return convertChildrenToData(children);\n }, [children, simpleMode, treeData]);\n}","import * as React from 'react';\nvar LegacySelectContext = /*#__PURE__*/React.createContext(null);\nexport default LegacySelectContext;","import * as React from 'react';\nvar TreeSelectContext = /*#__PURE__*/React.createContext(null);\nexport default TreeSelectContext;","export function toArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n return value !== undefined ? [value] : [];\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n label = _ref.label,\n value = _ref.value,\n children = _ref.children;\n var mergedValue = value || 'value';\n return {\n _title: label ? [label] : ['title', 'label'],\n value: mergedValue,\n key: mergedValue,\n children: children || 'children'\n };\n}\nexport function isCheckDisabled(node) {\n return !node || node.disabled || node.disableCheckbox || node.checkable === false;\n}\n\n/** Loop fetch all the keys exist in the tree */\nexport function getAllKeys(treeData, fieldNames) {\n var keys = [];\n function dig(list) {\n list.forEach(function (item) {\n var children = item[fieldNames.children];\n if (children) {\n keys.push(item[fieldNames.value]);\n dig(children);\n }\n });\n }\n dig(treeData);\n return keys;\n}\nexport function isNil(val) {\n return val === null || val === undefined;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport { useBaseProps } from 'rc-select';\nimport Tree from 'rc-tree';\nimport LegacyContext from \"./LegacyContext\";\nimport TreeSelectContext from \"./TreeSelectContext\";\nimport { getAllKeys, isCheckDisabled } from \"./utils/valueUtil\";\nvar HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0\n};\nvar OptionList = function OptionList(_, ref) {\n var _useBaseProps = useBaseProps(),\n prefixCls = _useBaseProps.prefixCls,\n multiple = _useBaseProps.multiple,\n searchValue = _useBaseProps.searchValue,\n toggleOpen = _useBaseProps.toggleOpen,\n open = _useBaseProps.open,\n notFoundContent = _useBaseProps.notFoundContent;\n var _React$useContext = React.useContext(TreeSelectContext),\n virtual = _React$useContext.virtual,\n listHeight = _React$useContext.listHeight,\n listItemHeight = _React$useContext.listItemHeight,\n treeData = _React$useContext.treeData,\n fieldNames = _React$useContext.fieldNames,\n onSelect = _React$useContext.onSelect,\n dropdownMatchSelectWidth = _React$useContext.dropdownMatchSelectWidth,\n treeExpandAction = _React$useContext.treeExpandAction;\n var _React$useContext2 = React.useContext(LegacyContext),\n checkable = _React$useContext2.checkable,\n checkedKeys = _React$useContext2.checkedKeys,\n halfCheckedKeys = _React$useContext2.halfCheckedKeys,\n treeExpandedKeys = _React$useContext2.treeExpandedKeys,\n treeDefaultExpandAll = _React$useContext2.treeDefaultExpandAll,\n treeDefaultExpandedKeys = _React$useContext2.treeDefaultExpandedKeys,\n onTreeExpand = _React$useContext2.onTreeExpand,\n treeIcon = _React$useContext2.treeIcon,\n showTreeIcon = _React$useContext2.showTreeIcon,\n switcherIcon = _React$useContext2.switcherIcon,\n treeLine = _React$useContext2.treeLine,\n treeNodeFilterProp = _React$useContext2.treeNodeFilterProp,\n loadData = _React$useContext2.loadData,\n treeLoadedKeys = _React$useContext2.treeLoadedKeys,\n treeMotion = _React$useContext2.treeMotion,\n onTreeLoad = _React$useContext2.onTreeLoad,\n keyEntities = _React$useContext2.keyEntities;\n var treeRef = React.useRef();\n var memoTreeData = useMemo(function () {\n return treeData;\n }, [open, treeData], function (prev, next) {\n return next[0] && prev[1] !== next[1];\n });\n\n // ========================== Values ==========================\n var mergedCheckedKeys = React.useMemo(function () {\n if (!checkable) {\n return null;\n }\n return {\n checked: checkedKeys,\n halfChecked: halfCheckedKeys\n };\n }, [checkable, checkedKeys, halfCheckedKeys]);\n\n // ========================== Scroll ==========================\n React.useEffect(function () {\n // Single mode should scroll to current key\n if (open && !multiple && checkedKeys.length) {\n var _treeRef$current;\n (_treeRef$current = treeRef.current) === null || _treeRef$current === void 0 ? void 0 : _treeRef$current.scrollTo({\n key: checkedKeys[0]\n });\n }\n }, [open]);\n\n // ========================== Search ==========================\n var lowerSearchValue = String(searchValue).toLowerCase();\n var filterTreeNode = function filterTreeNode(treeNode) {\n if (!lowerSearchValue) {\n return false;\n }\n return String(treeNode[treeNodeFilterProp]).toLowerCase().includes(lowerSearchValue);\n };\n\n // =========================== Keys ===========================\n var _React$useState = React.useState(treeDefaultExpandedKeys),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n expandedKeys = _React$useState2[0],\n setExpandedKeys = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n searchExpandedKeys = _React$useState4[0],\n setSearchExpandedKeys = _React$useState4[1];\n var mergedExpandedKeys = React.useMemo(function () {\n if (treeExpandedKeys) {\n return _toConsumableArray(treeExpandedKeys);\n }\n return searchValue ? searchExpandedKeys : expandedKeys;\n }, [expandedKeys, searchExpandedKeys, treeExpandedKeys, searchValue]);\n React.useEffect(function () {\n if (searchValue) {\n setSearchExpandedKeys(getAllKeys(treeData, fieldNames));\n }\n }, [searchValue]);\n var onInternalExpand = function onInternalExpand(keys) {\n setExpandedKeys(keys);\n setSearchExpandedKeys(keys);\n if (onTreeExpand) {\n onTreeExpand(keys);\n }\n };\n\n // ========================== Events ==========================\n var onListMouseDown = function onListMouseDown(event) {\n event.preventDefault();\n };\n var onInternalSelect = function onInternalSelect(__, info) {\n var node = info.node;\n if (checkable && isCheckDisabled(node)) {\n return;\n }\n onSelect(node.key, {\n selected: !checkedKeys.includes(node.key)\n });\n if (!multiple) {\n toggleOpen(false);\n }\n };\n\n // ========================= Keyboard =========================\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n activeKey = _React$useState6[0],\n setActiveKey = _React$useState6[1];\n var activeEntity = keyEntities[activeKey];\n React.useImperativeHandle(ref, function () {\n var _treeRef$current2;\n return {\n scrollTo: (_treeRef$current2 = treeRef.current) === null || _treeRef$current2 === void 0 ? void 0 : _treeRef$current2.scrollTo,\n onKeyDown: function onKeyDown(event) {\n var _treeRef$current3;\n var which = event.which;\n switch (which) {\n // >>> Arrow keys\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n (_treeRef$current3 = treeRef.current) === null || _treeRef$current3 === void 0 ? void 0 : _treeRef$current3.onKeyDown(event);\n break;\n\n // >>> Select item\n case KeyCode.ENTER:\n {\n if (activeEntity) {\n var _ref = (activeEntity === null || activeEntity === void 0 ? void 0 : activeEntity.node) || {},\n selectable = _ref.selectable,\n value = _ref.value;\n if (selectable !== false) {\n onInternalSelect(null, {\n node: {\n key: activeKey\n },\n selected: !checkedKeys.includes(value)\n });\n }\n }\n break;\n }\n\n // >>> Close\n case KeyCode.ESC:\n {\n toggleOpen(false);\n }\n }\n },\n onKeyUp: function onKeyUp() {}\n };\n });\n\n // ========================== Render ==========================\n if (memoTreeData.length === 0) {\n return /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n className: \"\".concat(prefixCls, \"-empty\"),\n onMouseDown: onListMouseDown\n }, notFoundContent);\n }\n var treeProps = {\n fieldNames: fieldNames\n };\n if (treeLoadedKeys) {\n treeProps.loadedKeys = treeLoadedKeys;\n }\n if (mergedExpandedKeys) {\n treeProps.expandedKeys = mergedExpandedKeys;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n onMouseDown: onListMouseDown\n }, activeEntity && open && /*#__PURE__*/React.createElement(\"span\", {\n style: HIDDEN_STYLE,\n \"aria-live\": \"assertive\"\n }, activeEntity.node.value), /*#__PURE__*/React.createElement(Tree, _extends({\n ref: treeRef,\n focusable: false,\n prefixCls: \"\".concat(prefixCls, \"-tree\"),\n treeData: memoTreeData,\n height: listHeight,\n itemHeight: listItemHeight,\n virtual: virtual !== false && dropdownMatchSelectWidth !== false,\n multiple: multiple,\n icon: treeIcon,\n showIcon: showTreeIcon,\n switcherIcon: switcherIcon,\n showLine: treeLine,\n loadData: searchValue ? null : loadData,\n motion: treeMotion,\n activeKey: activeKey\n // We handle keys by out instead tree self\n ,\n checkable: checkable,\n checkStrictly: true,\n checkedKeys: mergedCheckedKeys,\n selectedKeys: !checkable ? checkedKeys : [],\n defaultExpandAll: treeDefaultExpandAll\n }, treeProps, {\n // Proxy event out\n onActiveChange: setActiveKey,\n onSelect: onInternalSelect,\n onCheck: onInternalSelect,\n onExpand: onInternalExpand,\n onLoad: onTreeLoad,\n filterTreeNode: filterTreeNode,\n expandAction: treeExpandAction\n })));\n};\nvar RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);\nRefOptionList.displayName = 'OptionList';\nexport default RefOptionList;","import { isCheckDisabled } from \"./valueUtil\";\nexport var SHOW_ALL = 'SHOW_ALL';\nexport var SHOW_PARENT = 'SHOW_PARENT';\nexport var SHOW_CHILD = 'SHOW_CHILD';\nexport function formatStrategyValues(values, strategy, keyEntities, fieldNames) {\n var valueSet = new Set(values);\n if (strategy === SHOW_CHILD) {\n return values.filter(function (key) {\n var entity = keyEntities[key];\n if (entity && entity.children && entity.children.some(function (_ref) {\n var node = _ref.node;\n return valueSet.has(node[fieldNames.value]);\n }) && entity.children.every(function (_ref2) {\n var node = _ref2.node;\n return isCheckDisabled(node) || valueSet.has(node[fieldNames.value]);\n })) {\n return false;\n }\n return true;\n });\n }\n if (strategy === SHOW_PARENT) {\n return values.filter(function (key) {\n var entity = keyEntities[key];\n var parent = entity ? entity.parent : null;\n if (parent && !isCheckDisabled(parent.node) && valueSet.has(parent.key)) {\n return false;\n }\n return true;\n });\n }\n return values;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"rc-util/es/warning\";\nimport { toArray } from \"./valueUtil\";\nfunction warningProps(props) {\n var searchPlaceholder = props.searchPlaceholder,\n treeCheckStrictly = props.treeCheckStrictly,\n treeCheckable = props.treeCheckable,\n labelInValue = props.labelInValue,\n value = props.value,\n multiple = props.multiple;\n warning(!searchPlaceholder, '`searchPlaceholder` has been removed.');\n if (treeCheckStrictly && labelInValue === false) {\n warning(false, '`treeCheckStrictly` will force set `labelInValue` to `true`.');\n }\n if (labelInValue || treeCheckStrictly) {\n warning(toArray(value).every(function (val) {\n return val && _typeof(val) === 'object' && 'value' in val;\n }), 'Invalid prop `value` supplied to `TreeSelect`. You should use { label: string, value: string | number } or [{ label: string, value: string | number }] instead.');\n }\n if (treeCheckStrictly || multiple || treeCheckable) {\n warning(!value || Array.isArray(value), '`value` should be an array when `TreeSelect` is checkable or multiple.');\n } else {\n warning(!Array.isArray(value), '`value` should not be array when `TreeSelect` is single mode.');\n }\n}\nexport default warningProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\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 _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"id\", \"prefixCls\", \"value\", \"defaultValue\", \"onChange\", \"onSelect\", \"onDeselect\", \"searchValue\", \"inputValue\", \"onSearch\", \"autoClearSearchValue\", \"filterTreeNode\", \"treeNodeFilterProp\", \"showCheckedStrategy\", \"treeNodeLabelProp\", \"multiple\", \"treeCheckable\", \"treeCheckStrictly\", \"labelInValue\", \"fieldNames\", \"treeDataSimpleMode\", \"treeData\", \"children\", \"loadData\", \"treeLoadedKeys\", \"onTreeLoad\", \"treeDefaultExpandAll\", \"treeExpandedKeys\", \"treeDefaultExpandedKeys\", \"onTreeExpand\", \"treeExpandAction\", \"virtual\", \"listHeight\", \"listItemHeight\", \"onDropdownVisibleChange\", \"dropdownMatchSelectWidth\", \"treeLine\", \"treeIcon\", \"showTreeIcon\", \"switcherIcon\", \"treeMotion\"];\nimport { BaseSelect } from 'rc-select';\nimport useId from \"rc-select/es/hooks/useId\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport useCache from \"./hooks/useCache\";\nimport useCheckedKeys from \"./hooks/useCheckedKeys\";\nimport useDataEntities from \"./hooks/useDataEntities\";\nimport useFilterTreeData from \"./hooks/useFilterTreeData\";\nimport useRefFunc from \"./hooks/useRefFunc\";\nimport useTreeData from \"./hooks/useTreeData\";\nimport LegacyContext from \"./LegacyContext\";\nimport OptionList from \"./OptionList\";\nimport TreeNode from \"./TreeNode\";\nimport TreeSelectContext from \"./TreeSelectContext\";\nimport { fillAdditionalInfo, fillLegacyProps } from \"./utils/legacyUtil\";\nimport { formatStrategyValues, SHOW_ALL, SHOW_CHILD, SHOW_PARENT } from \"./utils/strategyUtil\";\nimport { fillFieldNames, isNil, toArray } from \"./utils/valueUtil\";\nimport warningProps from \"./utils/warningPropsUtil\";\n\n/** @deprecated This is only used for legacy compatible. Not works on new code. */\n\nfunction isRawValue(value) {\n return !value || _typeof(value) !== 'object';\n}\nvar TreeSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var id = props.id,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tree-select' : _props$prefixCls,\n value = props.value,\n defaultValue = props.defaultValue,\n onChange = props.onChange,\n onSelect = props.onSelect,\n onDeselect = props.onDeselect,\n searchValue = props.searchValue,\n inputValue = props.inputValue,\n onSearch = props.onSearch,\n _props$autoClearSearc = props.autoClearSearchValue,\n autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n filterTreeNode = props.filterTreeNode,\n _props$treeNodeFilter = props.treeNodeFilterProp,\n treeNodeFilterProp = _props$treeNodeFilter === void 0 ? 'value' : _props$treeNodeFilter,\n showCheckedStrategy = props.showCheckedStrategy,\n treeNodeLabelProp = props.treeNodeLabelProp,\n multiple = props.multiple,\n treeCheckable = props.treeCheckable,\n treeCheckStrictly = props.treeCheckStrictly,\n labelInValue = props.labelInValue,\n fieldNames = props.fieldNames,\n treeDataSimpleMode = props.treeDataSimpleMode,\n treeData = props.treeData,\n children = props.children,\n loadData = props.loadData,\n treeLoadedKeys = props.treeLoadedKeys,\n onTreeLoad = props.onTreeLoad,\n treeDefaultExpandAll = props.treeDefaultExpandAll,\n treeExpandedKeys = props.treeExpandedKeys,\n treeDefaultExpandedKeys = props.treeDefaultExpandedKeys,\n onTreeExpand = props.onTreeExpand,\n treeExpandAction = props.treeExpandAction,\n virtual = props.virtual,\n _props$listHeight = props.listHeight,\n listHeight = _props$listHeight === void 0 ? 200 : _props$listHeight,\n _props$listItemHeight = props.listItemHeight,\n listItemHeight = _props$listItemHeight === void 0 ? 20 : _props$listItemHeight,\n onDropdownVisibleChange = props.onDropdownVisibleChange,\n _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n treeLine = props.treeLine,\n treeIcon = props.treeIcon,\n showTreeIcon = props.showTreeIcon,\n switcherIcon = props.switcherIcon,\n treeMotion = props.treeMotion,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedId = useId(id);\n var treeConduction = treeCheckable && !treeCheckStrictly;\n var mergedCheckable = treeCheckable || treeCheckStrictly;\n var mergedLabelInValue = treeCheckStrictly || labelInValue;\n var mergedMultiple = mergedCheckable || multiple;\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n internalValue = _useMergedState2[0],\n setInternalValue = _useMergedState2[1];\n\n // `multiple` && `!treeCheckable` should be show all\n var mergedShowCheckedStrategy = React.useMemo(function () {\n if (!treeCheckable) {\n return SHOW_ALL;\n }\n return showCheckedStrategy || SHOW_CHILD;\n }, [showCheckedStrategy, treeCheckable]);\n\n // ========================== Warning ===========================\n if (process.env.NODE_ENV !== 'production') {\n warningProps(props);\n }\n\n // ========================= FieldNames =========================\n var mergedFieldNames = React.useMemo(function () {\n return fillFieldNames(fieldNames);\n }, /* eslint-disable react-hooks/exhaustive-deps */\n [JSON.stringify(fieldNames)]\n /* eslint-enable react-hooks/exhaustive-deps */);\n\n // =========================== Search ===========================\n var _useMergedState3 = useMergedState('', {\n value: searchValue !== undefined ? searchValue : inputValue,\n postState: function postState(search) {\n return search || '';\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedSearchValue = _useMergedState4[0],\n setSearchValue = _useMergedState4[1];\n var onInternalSearch = function onInternalSearch(searchText) {\n setSearchValue(searchText);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchText);\n };\n\n // ============================ Data ============================\n // `useTreeData` only do convert of `children` or `simpleMode`.\n // Else will return origin `treeData` for perf consideration.\n // Do not do anything to loop the data.\n var mergedTreeData = useTreeData(treeData, children, treeDataSimpleMode);\n var _useDataEntities = useDataEntities(mergedTreeData, mergedFieldNames),\n keyEntities = _useDataEntities.keyEntities,\n valueEntities = _useDataEntities.valueEntities;\n\n /** Get `missingRawValues` which not exist in the tree yet */\n var splitRawValues = React.useCallback(function (newRawValues) {\n var missingRawValues = [];\n var existRawValues = [];\n\n // Keep missing value in the cache\n newRawValues.forEach(function (val) {\n if (valueEntities.has(val)) {\n existRawValues.push(val);\n } else {\n missingRawValues.push(val);\n }\n });\n return {\n missingRawValues: missingRawValues,\n existRawValues: existRawValues\n };\n }, [valueEntities]);\n\n // Filtered Tree\n var filteredTreeData = useFilterTreeData(mergedTreeData, mergedSearchValue, {\n fieldNames: mergedFieldNames,\n treeNodeFilterProp: treeNodeFilterProp,\n filterTreeNode: filterTreeNode\n });\n\n // =========================== Label ============================\n var getLabel = React.useCallback(function (item) {\n if (item) {\n if (treeNodeLabelProp) {\n return item[treeNodeLabelProp];\n }\n\n // Loop from fieldNames\n var titleList = mergedFieldNames._title;\n for (var i = 0; i < titleList.length; i += 1) {\n var title = item[titleList[i]];\n if (title !== undefined) {\n return title;\n }\n }\n }\n }, [mergedFieldNames, treeNodeLabelProp]);\n\n // ========================= Wrap Value =========================\n var toLabeledValues = React.useCallback(function (draftValues) {\n var values = toArray(draftValues);\n return values.map(function (val) {\n if (isRawValue(val)) {\n return {\n value: val\n };\n }\n return val;\n });\n }, []);\n var convert2LabelValues = React.useCallback(function (draftValues) {\n var values = toLabeledValues(draftValues);\n return values.map(function (item) {\n var rawLabel = item.label;\n var rawValue = item.value,\n rawHalfChecked = item.halfChecked;\n var rawDisabled;\n var entity = valueEntities.get(rawValue);\n\n // Fill missing label & status\n if (entity) {\n var _rawLabel;\n rawLabel = (_rawLabel = rawLabel) !== null && _rawLabel !== void 0 ? _rawLabel : getLabel(entity.node);\n rawDisabled = entity.node.disabled;\n } else if (rawLabel === undefined) {\n // We try to find in current `labelInValue` value\n var labelInValueItem = toLabeledValues(internalValue).find(function (labeledItem) {\n return labeledItem.value === rawValue;\n });\n rawLabel = labelInValueItem.label;\n }\n return {\n label: rawLabel,\n value: rawValue,\n halfChecked: rawHalfChecked,\n disabled: rawDisabled\n };\n });\n }, [valueEntities, getLabel, toLabeledValues, internalValue]);\n\n // =========================== Values ===========================\n var rawMixedLabeledValues = React.useMemo(function () {\n return toLabeledValues(internalValue);\n }, [toLabeledValues, internalValue]);\n\n // Split value into full check and half check\n var _React$useMemo = React.useMemo(function () {\n var fullCheckValues = [];\n var halfCheckValues = [];\n rawMixedLabeledValues.forEach(function (item) {\n if (item.halfChecked) {\n halfCheckValues.push(item);\n } else {\n fullCheckValues.push(item);\n }\n });\n return [fullCheckValues, halfCheckValues];\n }, [rawMixedLabeledValues]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n rawLabeledValues = _React$useMemo2[0],\n rawHalfLabeledValues = _React$useMemo2[1];\n\n // const [mergedValues] = useCache(rawLabeledValues);\n var rawValues = React.useMemo(function () {\n return rawLabeledValues.map(function (item) {\n return item.value;\n });\n }, [rawLabeledValues]);\n\n // Convert value to key. Will fill missed keys for conduct check.\n var _useCheckedKeys = useCheckedKeys(rawLabeledValues, rawHalfLabeledValues, treeConduction, keyEntities),\n _useCheckedKeys2 = _slicedToArray(_useCheckedKeys, 2),\n rawCheckedValues = _useCheckedKeys2[0],\n rawHalfCheckedValues = _useCheckedKeys2[1];\n\n // Convert rawCheckedKeys to check strategy related values\n var displayValues = React.useMemo(function () {\n // Collect keys which need to show\n var displayKeys = formatStrategyValues(rawCheckedValues, mergedShowCheckedStrategy, keyEntities, mergedFieldNames);\n\n // Convert to value and filled with label\n var values = displayKeys.map(function (key) {\n var _keyEntities$key$node, _keyEntities$key, _keyEntities$key$node2;\n return (_keyEntities$key$node = (_keyEntities$key = keyEntities[key]) === null || _keyEntities$key === void 0 ? void 0 : (_keyEntities$key$node2 = _keyEntities$key.node) === null || _keyEntities$key$node2 === void 0 ? void 0 : _keyEntities$key$node2[mergedFieldNames.value]) !== null && _keyEntities$key$node !== void 0 ? _keyEntities$key$node : key;\n });\n\n // Back fill with origin label\n var labeledValues = values.map(function (val) {\n var targetItem = rawLabeledValues.find(function (item) {\n return item.value === val;\n });\n return {\n value: val,\n label: targetItem === null || targetItem === void 0 ? void 0 : targetItem.label\n };\n });\n var rawDisplayValues = convert2LabelValues(labeledValues);\n var firstVal = rawDisplayValues[0];\n if (!mergedMultiple && firstVal && isNil(firstVal.value) && isNil(firstVal.label)) {\n return [];\n }\n return rawDisplayValues.map(function (item) {\n var _item$label;\n return _objectSpread(_objectSpread({}, item), {}, {\n label: (_item$label = item.label) !== null && _item$label !== void 0 ? _item$label : item.value\n });\n });\n }, [mergedFieldNames, mergedMultiple, rawCheckedValues, rawLabeledValues, convert2LabelValues, mergedShowCheckedStrategy, keyEntities]);\n var _useCache = useCache(displayValues),\n _useCache2 = _slicedToArray(_useCache, 1),\n cachedDisplayValues = _useCache2[0];\n\n // =========================== Change ===========================\n var triggerChange = useRefFunc(function (newRawValues, extra, source) {\n var labeledValues = convert2LabelValues(newRawValues);\n setInternalValue(labeledValues);\n\n // Clean up if needed\n if (autoClearSearchValue) {\n setSearchValue('');\n }\n\n // Generate rest parameters is costly, so only do it when necessary\n if (onChange) {\n var eventValues = newRawValues;\n if (treeConduction) {\n var formattedKeyList = formatStrategyValues(newRawValues, mergedShowCheckedStrategy, keyEntities, mergedFieldNames);\n eventValues = formattedKeyList.map(function (key) {\n var entity = valueEntities.get(key);\n return entity ? entity.node[mergedFieldNames.value] : key;\n });\n }\n var _ref = extra || {\n triggerValue: undefined,\n selected: undefined\n },\n triggerValue = _ref.triggerValue,\n selected = _ref.selected;\n var returnRawValues = eventValues;\n\n // We need fill half check back\n if (treeCheckStrictly) {\n var halfValues = rawHalfLabeledValues.filter(function (item) {\n return !eventValues.includes(item.value);\n });\n returnRawValues = [].concat(_toConsumableArray(returnRawValues), _toConsumableArray(halfValues));\n }\n var returnLabeledValues = convert2LabelValues(returnRawValues);\n var additionalInfo = {\n // [Legacy] Always return as array contains label & value\n preValue: rawLabeledValues,\n triggerValue: triggerValue\n };\n\n // [Legacy] Fill legacy data if user query.\n // This is expansive that we only fill when user query\n // https://github.com/react-component/tree-select/blob/fe33eb7c27830c9ac70cd1fdb1ebbe7bc679c16a/src/Select.jsx\n var showPosition = true;\n if (treeCheckStrictly || source === 'selection' && !selected) {\n showPosition = false;\n }\n fillAdditionalInfo(additionalInfo, triggerValue, newRawValues, mergedTreeData, showPosition, mergedFieldNames);\n if (mergedCheckable) {\n additionalInfo.checked = selected;\n } else {\n additionalInfo.selected = selected;\n }\n var returnValues = mergedLabelInValue ? returnLabeledValues : returnLabeledValues.map(function (item) {\n return item.value;\n });\n onChange(mergedMultiple ? returnValues : returnValues[0], mergedLabelInValue ? null : returnLabeledValues.map(function (item) {\n return item.label;\n }), additionalInfo);\n }\n });\n\n // ========================== Options ===========================\n /** Trigger by option list */\n var onOptionSelect = React.useCallback(function (selectedKey, _ref2) {\n var _node$mergedFieldName;\n var selected = _ref2.selected,\n source = _ref2.source;\n var entity = keyEntities[selectedKey];\n var node = entity === null || entity === void 0 ? void 0 : entity.node;\n var selectedValue = (_node$mergedFieldName = node === null || node === void 0 ? void 0 : node[mergedFieldNames.value]) !== null && _node$mergedFieldName !== void 0 ? _node$mergedFieldName : selectedKey;\n\n // Never be falsy but keep it safe\n if (!mergedMultiple) {\n // Single mode always set value\n triggerChange([selectedValue], {\n selected: true,\n triggerValue: selectedValue\n }, 'option');\n } else {\n var newRawValues = selected ? [].concat(_toConsumableArray(rawValues), [selectedValue]) : rawCheckedValues.filter(function (v) {\n return v !== selectedValue;\n });\n\n // Add keys if tree conduction\n if (treeConduction) {\n // Should keep missing values\n var _splitRawValues = splitRawValues(newRawValues),\n missingRawValues = _splitRawValues.missingRawValues,\n existRawValues = _splitRawValues.existRawValues;\n var keyList = existRawValues.map(function (val) {\n return valueEntities.get(val).key;\n });\n\n // Conduction by selected or not\n var checkedKeys;\n if (selected) {\n var _conductCheck = conductCheck(keyList, true, keyEntities);\n checkedKeys = _conductCheck.checkedKeys;\n } else {\n var _conductCheck2 = conductCheck(keyList, {\n checked: false,\n halfCheckedKeys: rawHalfCheckedValues\n }, keyEntities);\n checkedKeys = _conductCheck2.checkedKeys;\n }\n\n // Fill back of keys\n newRawValues = [].concat(_toConsumableArray(missingRawValues), _toConsumableArray(checkedKeys.map(function (key) {\n return keyEntities[key].node[mergedFieldNames.value];\n })));\n }\n triggerChange(newRawValues, {\n selected: selected,\n triggerValue: selectedValue\n }, source || 'option');\n }\n\n // Trigger select event\n if (selected || !mergedMultiple) {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedValue, fillLegacyProps(node));\n } else {\n onDeselect === null || onDeselect === void 0 ? void 0 : onDeselect(selectedValue, fillLegacyProps(node));\n }\n }, [splitRawValues, valueEntities, keyEntities, mergedFieldNames, mergedMultiple, rawValues, triggerChange, treeConduction, onSelect, onDeselect, rawCheckedValues, rawHalfCheckedValues]);\n\n // ========================== Dropdown ==========================\n var onInternalDropdownVisibleChange = React.useCallback(function (open) {\n if (onDropdownVisibleChange) {\n var legacyParam = {};\n Object.defineProperty(legacyParam, 'documentClickClose', {\n get: function get() {\n warning(false, 'Second param of `onDropdownVisibleChange` has been removed.');\n return false;\n }\n });\n onDropdownVisibleChange(open, legacyParam);\n }\n }, [onDropdownVisibleChange]);\n\n // ====================== Display Change ========================\n var onDisplayValuesChange = useRefFunc(function (newValues, info) {\n var newRawValues = newValues.map(function (item) {\n return item.value;\n });\n if (info.type === 'clear') {\n triggerChange(newRawValues, {}, 'selection');\n return;\n }\n\n // TreeSelect only have multiple mode which means display change only has remove\n if (info.values.length) {\n onOptionSelect(info.values[0].value, {\n selected: false,\n source: 'selection'\n });\n }\n });\n\n // ========================== Context ===========================\n var treeSelectContext = React.useMemo(function () {\n return {\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n treeData: filteredTreeData,\n fieldNames: mergedFieldNames,\n onSelect: onOptionSelect,\n treeExpandAction: treeExpandAction\n };\n }, [virtual, dropdownMatchSelectWidth, listHeight, listItemHeight, filteredTreeData, mergedFieldNames, onOptionSelect, treeExpandAction]);\n\n // ======================= Legacy Context =======================\n var legacyContext = React.useMemo(function () {\n return {\n checkable: mergedCheckable,\n loadData: loadData,\n treeLoadedKeys: treeLoadedKeys,\n onTreeLoad: onTreeLoad,\n checkedKeys: rawCheckedValues,\n halfCheckedKeys: rawHalfCheckedValues,\n treeDefaultExpandAll: treeDefaultExpandAll,\n treeExpandedKeys: treeExpandedKeys,\n treeDefaultExpandedKeys: treeDefaultExpandedKeys,\n onTreeExpand: onTreeExpand,\n treeIcon: treeIcon,\n treeMotion: treeMotion,\n showTreeIcon: showTreeIcon,\n switcherIcon: switcherIcon,\n treeLine: treeLine,\n treeNodeFilterProp: treeNodeFilterProp,\n keyEntities: keyEntities\n };\n }, [mergedCheckable, loadData, treeLoadedKeys, onTreeLoad, rawCheckedValues, rawHalfCheckedValues, treeDefaultExpandAll, treeExpandedKeys, treeDefaultExpandedKeys, onTreeExpand, treeIcon, treeMotion, showTreeIcon, switcherIcon, treeLine, treeNodeFilterProp, keyEntities]);\n\n // =========================== Render ===========================\n return /*#__PURE__*/React.createElement(TreeSelectContext.Provider, {\n value: treeSelectContext\n }, /*#__PURE__*/React.createElement(LegacyContext.Provider, {\n value: legacyContext\n }, /*#__PURE__*/React.createElement(BaseSelect, _extends({\n ref: ref\n }, restProps, {\n // >>> MISC\n id: mergedId,\n prefixCls: prefixCls,\n mode: mergedMultiple ? 'multiple' : undefined\n // >>> Display Value\n ,\n displayValues: cachedDisplayValues,\n onDisplayValuesChange: onDisplayValuesChange\n // >>> Search\n ,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch\n // >>> Options\n ,\n OptionList: OptionList,\n emptyOptions: !mergedTreeData.length,\n onDropdownVisibleChange: onInternalDropdownVisibleChange,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n }))));\n});\n\n// Assign name for Debug\nif (process.env.NODE_ENV !== 'production') {\n TreeSelect.displayName = 'TreeSelect';\n}\nvar GenericTreeSelect = TreeSelect;\nGenericTreeSelect.TreeNode = TreeNode;\nGenericTreeSelect.SHOW_ALL = SHOW_ALL;\nGenericTreeSelect.SHOW_PARENT = SHOW_PARENT;\nGenericTreeSelect.SHOW_CHILD = SHOW_CHILD;\nexport default GenericTreeSelect;","import TreeSelect from \"./TreeSelect\";\nimport TreeNode from \"./TreeNode\";\nimport { SHOW_ALL, SHOW_CHILD, SHOW_PARENT } from \"./utils/strategyUtil\";\nexport { TreeNode, SHOW_ALL, SHOW_CHILD, SHOW_PARENT };\nexport default TreeSelect;","import { getStyle as getCheckboxStyle } from '../../checkbox/style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { genTreeStyle } from '../../tree/style';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n treePrefixCls,\n colorBgElevated\n } = token;\n const treeCls = `.${treePrefixCls}`;\n return [\n // ======================================================\n // == Dropdown ==\n // ======================================================\n {\n [`${componentCls}-dropdown`]: [{\n padding: `${token.paddingXS}px ${token.paddingXS / 2}px`\n },\n // ====================== Tree ======================\n genTreeStyle(treePrefixCls, mergeToken(token, {\n colorBgContainer: colorBgElevated\n })), {\n [treeCls]: {\n borderRadius: 0,\n [`${treeCls}-list-holder-inner`]: {\n alignItems: 'stretch',\n [`${treeCls}-treenode`]: {\n [`${treeCls}-node-content-wrapper`]: {\n flex: 'auto'\n }\n }\n }\n }\n },\n // ==================== Checkbox ====================\n getCheckboxStyle(`${treePrefixCls}-checkbox`, token),\n // ====================== RTL =======================\n {\n '&-rtl': {\n direction: 'rtl',\n [`${treeCls}-switcher${treeCls}-switcher_close`]: {\n [`${treeCls}-switcher-icon svg`]: {\n transform: 'rotate(90deg)'\n }\n }\n }\n }]\n }];\n};\n// ============================== Export ==============================\nexport default function useTreeSelectStyle(prefixCls, treePrefixCls) {\n return genComponentStyleHook('TreeSelect', token => {\n const treeSelectToken = mergeToken(token, {\n treePrefixCls\n });\n return [genBaseStyle(treeSelectToken)];\n })(prefixCls);\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 RcTreeSelect, { SHOW_ALL, SHOW_CHILD, SHOW_PARENT, TreeNode } from 'rc-tree-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 useSelectStyle from '../select/style';\nimport useBuiltinPlacements from '../select/useBuiltinPlacements';\nimport useShowArrow from '../select/useShowArrow';\nimport getIcons from '../select/utils/iconUtil';\nimport { useCompactItemContext } from '../space/Compact';\nimport SwitcherIconCom from '../tree/utils/iconUtil';\nimport useStyle from './style';\nconst InternalTreeSelect = (_a, ref) => {\n var _b;\n var {\n prefixCls: customizePrefixCls,\n size: customizeSize,\n disabled: customDisabled,\n bordered = true,\n className,\n rootClassName,\n treeCheckable,\n multiple,\n listHeight = 256,\n listItemHeight = 26,\n placement,\n notFoundContent,\n switcherIcon,\n treeLine,\n getPopupContainer,\n popupClassName,\n dropdownClassName,\n treeIcon = false,\n transitionName,\n choiceTransitionName = '',\n status: customStatus,\n treeExpandAction,\n builtinPlacements,\n dropdownMatchSelectWidth,\n popupMatchSelectWidth,\n allowClear\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"size\", \"disabled\", \"bordered\", \"className\", \"rootClassName\", \"treeCheckable\", \"multiple\", \"listHeight\", \"listItemHeight\", \"placement\", \"notFoundContent\", \"switcherIcon\", \"treeLine\", \"getPopupContainer\", \"popupClassName\", \"dropdownClassName\", \"treeIcon\", \"transitionName\", \"choiceTransitionName\", \"status\", \"treeExpandAction\", \"builtinPlacements\", \"dropdownMatchSelectWidth\", \"popupMatchSelectWidth\", \"allowClear\"]);\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n renderEmpty,\n direction,\n virtual,\n popupMatchSelectWidth: contextPopupMatchSelectWidth,\n popupOverflow\n } = React.useContext(ConfigContext);\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(multiple !== false || !treeCheckable, 'TreeSelect', '`multiple` will always be `true` when `treeCheckable` is true') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'TreeSelect', '`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), 'TreeSelect', '`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 const rootPrefixCls = getPrefixCls();\n const prefixCls = getPrefixCls('select', customizePrefixCls);\n const treePrefixCls = getPrefixCls('select-tree', customizePrefixCls);\n const treeSelectPrefixCls = getPrefixCls('tree-select', customizePrefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const [wrapSelectSSR, hashId] = useSelectStyle(prefixCls);\n const [wrapTreeSelectSSR] = useStyle(treeSelectPrefixCls, treePrefixCls);\n const mergedDropdownClassName = classNames(popupClassName || dropdownClassName, `${treeSelectPrefixCls}-dropdown`, {\n [`${treeSelectPrefixCls}-dropdown-rtl`]: direction === 'rtl'\n }, rootClassName, hashId);\n const isMultiple = !!(treeCheckable || multiple);\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 =====================\n const {\n status: contextStatus,\n hasFeedback,\n isFormItemInput,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Icons =====================\n const {\n suffixIcon,\n removeIcon,\n clearIcon\n } = getIcons(Object.assign(Object.assign({}, props), {\n multiple: isMultiple,\n showSuffixIcon,\n hasFeedback,\n feedbackIcon,\n prefixCls,\n componentName: 'TreeSelect'\n }));\n const mergedAllowClear = allowClear === true ? {\n clearIcon\n } : allowClear;\n // ===================== Empty =====================\n let mergedNotFound;\n if (notFoundContent !== undefined) {\n mergedNotFound = notFoundContent;\n } else {\n mergedNotFound = (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Select')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Select\"\n });\n }\n // ==================== Render =====================\n const selectProps = omit(props, ['suffixIcon', 'itemIcon', 'removeIcon', 'clearIcon', 'switcherIcon']);\n // ===================== Placement =====================\n const memoizedPlacement = 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 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(!customizePrefixCls && treeSelectPrefixCls, {\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, className, rootClassName, hashId);\n const renderSwitcherIcon = nodeProps => /*#__PURE__*/React.createElement(SwitcherIconCom, {\n prefixCls: treePrefixCls,\n switcherIcon: switcherIcon,\n treeNodeProps: nodeProps,\n showLine: treeLine\n });\n const returnNode = /*#__PURE__*/React.createElement(RcTreeSelect, Object.assign({\n virtual: virtual,\n disabled: mergedDisabled\n }, selectProps, {\n dropdownMatchSelectWidth: mergedPopupMatchSelectWidth,\n builtinPlacements: mergedBuiltinPlacements,\n ref: ref,\n prefixCls: prefixCls,\n className: mergedClassName,\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n treeCheckable: treeCheckable ? /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-tree-checkbox-inner`\n }) : treeCheckable,\n treeLine: !!treeLine,\n suffixIcon: suffixIcon,\n multiple: isMultiple,\n placement: memoizedPlacement,\n removeIcon: removeIcon,\n allowClear: mergedAllowClear,\n switcherIcon: renderSwitcherIcon,\n showTreeIcon: treeIcon,\n notFoundContent: mergedNotFound,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n treeMotion: null,\n dropdownClassName: mergedDropdownClassName,\n choiceTransitionName: getTransitionName(rootPrefixCls, '', choiceTransitionName),\n transitionName: getTransitionName(rootPrefixCls, 'slide-up', transitionName),\n treeExpandAction: treeExpandAction\n }));\n return wrapSelectSSR(wrapTreeSelectSSR(returnNode));\n};\nconst TreeSelectRef = /*#__PURE__*/React.forwardRef(InternalTreeSelect);\nconst TreeSelect = TreeSelectRef;\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(TreeSelect);\nTreeSelect.TreeNode = TreeNode;\nTreeSelect.SHOW_ALL = SHOW_ALL;\nTreeSelect.SHOW_PARENT = SHOW_PARENT;\nTreeSelect.SHOW_CHILD = SHOW_CHILD;\nTreeSelect._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nif (process.env.NODE_ENV !== 'production') {\n TreeSelect.displayName = 'TreeSelect';\n}\nexport { TreeNode };\nexport default TreeSelect;","// This icon file is generated automatically.\nvar FolderOpenOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z\" } }] }, \"name\": \"folder-open\", \"theme\": \"outlined\" };\nexport default FolderOpenOutlined;\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 FolderOpenOutlinedSvg from \"@ant-design/icons-svg/es/asn/FolderOpenOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FolderOpenOutlined = function FolderOpenOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FolderOpenOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n FolderOpenOutlined.displayName = 'FolderOpenOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(FolderOpenOutlined);","// This icon file is generated automatically.\nvar FolderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z\" } }] }, \"name\": \"folder\", \"theme\": \"outlined\" };\nexport default FolderOutlined;\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 FolderOutlinedSvg from \"@ant-design/icons-svg/es/asn/FolderOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FolderOutlined = function FolderOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FolderOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n FolderOutlined.displayName = 'FolderOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(FolderOutlined);","// This icon file is generated automatically.\nvar HolderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z\" } }] }, \"name\": \"holder\", \"theme\": \"outlined\" };\nexport default HolderOutlined;\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 HolderOutlinedSvg from \"@ant-design/icons-svg/es/asn/HolderOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar HolderOutlined = function HolderOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: HolderOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n HolderOutlined.displayName = 'HolderOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(HolderOutlined);","import React from 'react';\nexport const offset = 4;\nexport default function dropIndicatorRender(props) {\n const {\n dropPosition,\n dropLevelOffset,\n prefixCls,\n indent,\n direction = 'ltr'\n } = props;\n const startPosition = direction === 'ltr' ? 'left' : 'right';\n const endPosition = direction === 'ltr' ? 'right' : 'left';\n const style = {\n [startPosition]: -dropLevelOffset * indent + offset,\n [endPosition]: 0\n };\n switch (dropPosition) {\n case -1:\n style.top = -3;\n break;\n case 1:\n style.bottom = -3;\n break;\n default:\n // dropPosition === 0\n style.bottom = -3;\n style[startPosition] = indent + offset;\n break;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style,\n className: `${prefixCls}-drop-indicator`\n });\n}","import HolderOutlined from \"@ant-design/icons/es/icons/HolderOutlined\";\nimport classNames from 'classnames';\nimport RcTree from 'rc-tree';\nimport React from 'react';\nimport initCollapseMotion from '../_util/motion';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport dropIndicatorRender from './utils/dropIndicator';\nimport SwitcherIconCom from './utils/iconUtil';\nconst Tree = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction,\n virtual,\n tree\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n showIcon = false,\n showLine,\n switcherIcon,\n blockNode = false,\n children,\n checkable = false,\n selectable = true,\n draggable,\n motion: customMotion,\n style\n } = props;\n const prefixCls = getPrefixCls('tree', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const motion = customMotion !== null && customMotion !== void 0 ? customMotion : Object.assign(Object.assign({}, initCollapseMotion(rootPrefixCls)), {\n motionAppear: false\n });\n const newProps = Object.assign(Object.assign({}, props), {\n checkable,\n selectable,\n showIcon,\n motion,\n blockNode,\n showLine: Boolean(showLine),\n dropIndicatorRender\n });\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const draggableConfig = React.useMemo(() => {\n if (!draggable) {\n return false;\n }\n let mergedDraggable = {};\n switch (typeof draggable) {\n case 'function':\n mergedDraggable.nodeDraggable = draggable;\n break;\n case 'object':\n mergedDraggable = Object.assign({}, draggable);\n break;\n default:\n break;\n // Do nothing\n }\n\n if (mergedDraggable.icon !== false) {\n mergedDraggable.icon = mergedDraggable.icon || /*#__PURE__*/React.createElement(HolderOutlined, null);\n }\n return mergedDraggable;\n }, [draggable]);\n const renderSwitcherIcon = nodeProps => /*#__PURE__*/React.createElement(SwitcherIconCom, {\n prefixCls: prefixCls,\n switcherIcon: switcherIcon,\n treeNodeProps: nodeProps,\n showLine: showLine\n });\n return wrapSSR( /*#__PURE__*/React.createElement(RcTree, Object.assign({\n itemHeight: 20,\n ref: ref,\n virtual: virtual\n }, newProps, {\n // newProps may contain style so declare style below it\n style: Object.assign(Object.assign({}, tree === null || tree === void 0 ? void 0 : tree.style), style),\n prefixCls: prefixCls,\n className: classNames({\n [`${prefixCls}-icon-hide`]: !showIcon,\n [`${prefixCls}-block-node`]: blockNode,\n [`${prefixCls}-unselectable`]: !selectable,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, tree === null || tree === void 0 ? void 0 : tree.className, className, hashId),\n direction: direction,\n checkable: checkable ? /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-checkbox-inner`\n }) : checkable,\n selectable: selectable,\n switcherIcon: renderSwitcherIcon,\n draggable: draggableConfig\n }), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Tree.displayName = 'Tree';\n}\nexport default Tree;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar Record;\n(function (Record) {\n Record[Record[\"None\"] = 0] = \"None\";\n Record[Record[\"Start\"] = 1] = \"Start\";\n Record[Record[\"End\"] = 2] = \"End\";\n})(Record || (Record = {}));\nfunction traverseNodesKey(treeData, callback) {\n function processNode(dataNode) {\n const {\n key,\n children\n } = dataNode;\n if (callback(key, dataNode) !== false) {\n traverseNodesKey(children || [], callback);\n }\n }\n treeData.forEach(processNode);\n}\n/** 计算选中范围,只考虑expanded情况以优化性能 */\nexport function calcRangeKeys(_ref) {\n let {\n treeData,\n expandedKeys,\n startKey,\n endKey\n } = _ref;\n const keys = [];\n let record = Record.None;\n if (startKey && startKey === endKey) {\n return [startKey];\n }\n if (!startKey || !endKey) {\n return [];\n }\n function matchKey(key) {\n return key === startKey || key === endKey;\n }\n traverseNodesKey(treeData, key => {\n if (record === Record.End) {\n return false;\n }\n if (matchKey(key)) {\n // Match test\n keys.push(key);\n if (record === Record.None) {\n record = Record.Start;\n } else if (record === Record.Start) {\n record = Record.End;\n return false;\n }\n } else if (record === Record.Start) {\n // Append selection\n keys.push(key);\n }\n return expandedKeys.includes(key);\n });\n return keys;\n}\nexport function convertDirectoryKeysToNodes(treeData, keys) {\n const restKeys = _toConsumableArray(keys);\n const nodes = [];\n traverseNodesKey(treeData, (key, node) => {\n const index = restKeys.indexOf(key);\n if (index !== -1) {\n nodes.push(node);\n restKeys.splice(index, 1);\n }\n return !!restKeys.length;\n });\n return nodes;\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 FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport FolderOpenOutlined from \"@ant-design/icons/es/icons/FolderOpenOutlined\";\nimport FolderOutlined from \"@ant-design/icons/es/icons/FolderOutlined\";\nimport classNames from 'classnames';\nimport { conductExpandParent } from \"rc-tree/es/util\";\nimport { convertDataToEntities, convertTreeToData } from \"rc-tree/es/utils/treeUtil\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Tree from './Tree';\nimport { calcRangeKeys, convertDirectoryKeysToNodes } from './utils/dictUtil';\nfunction getIcon(props) {\n const {\n isLeaf,\n expanded\n } = props;\n if (isLeaf) {\n return /*#__PURE__*/React.createElement(FileOutlined, null);\n }\n return expanded ? /*#__PURE__*/React.createElement(FolderOpenOutlined, null) : /*#__PURE__*/React.createElement(FolderOutlined, null);\n}\nfunction getTreeData(_ref) {\n let {\n treeData,\n children\n } = _ref;\n return treeData || convertTreeToData(children);\n}\nconst DirectoryTree = (_a, ref) => {\n var {\n defaultExpandAll,\n defaultExpandParent,\n defaultExpandedKeys\n } = _a,\n props = __rest(_a, [\"defaultExpandAll\", \"defaultExpandParent\", \"defaultExpandedKeys\"]);\n // Shift click usage\n const lastSelectedKey = React.useRef();\n const cachedSelectedKeys = React.useRef();\n const getInitExpandedKeys = () => {\n const {\n keyEntities\n } = convertDataToEntities(getTreeData(props));\n let initExpandedKeys;\n // Expanded keys\n if (defaultExpandAll) {\n initExpandedKeys = Object.keys(keyEntities);\n } else if (defaultExpandParent) {\n initExpandedKeys = conductExpandParent(props.expandedKeys || defaultExpandedKeys || [], keyEntities);\n } else {\n initExpandedKeys = props.expandedKeys || defaultExpandedKeys;\n }\n return initExpandedKeys;\n };\n const [selectedKeys, setSelectedKeys] = React.useState(props.selectedKeys || props.defaultSelectedKeys || []);\n const [expandedKeys, setExpandedKeys] = React.useState(() => getInitExpandedKeys());\n React.useEffect(() => {\n if ('selectedKeys' in props) {\n setSelectedKeys(props.selectedKeys);\n }\n }, [props.selectedKeys]);\n React.useEffect(() => {\n if ('expandedKeys' in props) {\n setExpandedKeys(props.expandedKeys);\n }\n }, [props.expandedKeys]);\n const onExpand = (keys, info) => {\n var _a;\n if (!('expandedKeys' in props)) {\n setExpandedKeys(keys);\n }\n // Call origin function\n return (_a = props.onExpand) === null || _a === void 0 ? void 0 : _a.call(props, keys, info);\n };\n const onSelect = (keys, event) => {\n var _a;\n const {\n multiple\n } = props;\n const {\n node,\n nativeEvent\n } = event;\n const {\n key = ''\n } = node;\n const treeData = getTreeData(props);\n // const newState: DirectoryTreeState = {};\n // We need wrap this event since some value is not same\n const newEvent = Object.assign(Object.assign({}, event), {\n selected: true\n });\n // Windows / Mac single pick\n const ctrlPick = (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.ctrlKey) || (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.metaKey);\n const shiftPick = nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.shiftKey;\n // Generate new selected keys\n let newSelectedKeys;\n if (multiple && ctrlPick) {\n // Control click\n newSelectedKeys = keys;\n lastSelectedKey.current = key;\n cachedSelectedKeys.current = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n } else if (multiple && shiftPick) {\n // Shift click\n newSelectedKeys = Array.from(new Set([].concat(_toConsumableArray(cachedSelectedKeys.current || []), _toConsumableArray(calcRangeKeys({\n treeData,\n expandedKeys,\n startKey: key,\n endKey: lastSelectedKey.current\n })))));\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n } else {\n // Single click\n newSelectedKeys = [key];\n lastSelectedKey.current = key;\n cachedSelectedKeys.current = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n }\n (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, newSelectedKeys, newEvent);\n if (!('selectedKeys' in props)) {\n setSelectedKeys(newSelectedKeys);\n }\n };\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n showIcon = true,\n expandAction = 'click'\n } = props,\n otherProps = __rest(props, [\"prefixCls\", \"className\", \"showIcon\", \"expandAction\"]);\n const prefixCls = getPrefixCls('tree', customizePrefixCls);\n const connectClassName = classNames(`${prefixCls}-directory`, {\n [`${prefixCls}-directory-rtl`]: direction === 'rtl'\n }, className);\n return /*#__PURE__*/React.createElement(Tree, Object.assign({\n icon: getIcon,\n ref: ref,\n blockNode: true\n }, otherProps, {\n showIcon: showIcon,\n expandAction: expandAction,\n prefixCls: prefixCls,\n className: connectClassName,\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n onSelect: onSelect,\n onExpand: onExpand\n }));\n};\nconst ForwardDirectoryTree = /*#__PURE__*/React.forwardRef(DirectoryTree);\nif (process.env.NODE_ENV !== 'production') {\n ForwardDirectoryTree.displayName = 'DirectoryTree';\n}\nexport default ForwardDirectoryTree;","'use client';\n\nimport { TreeNode } from 'rc-tree';\nimport DirectoryTree from './DirectoryTree';\nimport TreePure from './Tree';\nconst Tree = TreePure;\nTree.DirectoryTree = DirectoryTree;\nTree.TreeNode = TreeNode;\nexport default Tree;","import { Keyframes } from '@ant-design/cssinjs';\nimport { getStyle as getCheckboxStyle } from '../../checkbox/style';\nimport { genFocusOutline, resetComponent } from '../../style';\nimport { genCollapseMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================ Keyframes =============================\nconst treeNodeFX = new Keyframes('ant-tree-node-fx-do-not-use', {\n '0%': {\n opacity: 0\n },\n '100%': {\n opacity: 1\n }\n});\n// ============================== Switch ==============================\nconst getSwitchStyle = (prefixCls, token) => ({\n [`.${prefixCls}-switcher-icon`]: {\n display: 'inline-block',\n fontSize: 10,\n verticalAlign: 'baseline',\n svg: {\n transition: `transform ${token.motionDurationSlow}`\n }\n }\n});\n// =============================== Drop ===============================\nconst getDropIndicatorStyle = (prefixCls, token) => ({\n [`.${prefixCls}-drop-indicator`]: {\n position: 'absolute',\n // it should displayed over the following node\n zIndex: 1,\n height: 2,\n backgroundColor: token.colorPrimary,\n borderRadius: 1,\n pointerEvents: 'none',\n '&:after': {\n position: 'absolute',\n top: -3,\n insetInlineStart: -6,\n width: 8,\n height: 8,\n backgroundColor: 'transparent',\n border: `${token.lineWidthBold}px solid ${token.colorPrimary}`,\n borderRadius: '50%',\n content: '\"\"'\n }\n }\n});\nexport const genBaseStyle = (prefixCls, token) => {\n const {\n treeCls,\n treeNodeCls,\n treeNodePadding,\n treeTitleHeight\n } = token;\n const treeCheckBoxMarginHorizontal = token.paddingXS;\n return {\n [treeCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n background: token.colorBgContainer,\n borderRadius: token.borderRadius,\n transition: `background-color ${token.motionDurationSlow}`,\n [`&${treeCls}-rtl`]: {\n // >>> Switcher\n [`${treeCls}-switcher`]: {\n '&_close': {\n [`${treeCls}-switcher-icon`]: {\n svg: {\n transform: 'rotate(90deg)'\n }\n }\n }\n }\n },\n [`&-focused:not(:hover):not(${treeCls}-active-focused)`]: Object.assign({}, genFocusOutline(token)),\n // =================== Virtual List ===================\n [`${treeCls}-list-holder-inner`]: {\n alignItems: 'flex-start'\n },\n [`&${treeCls}-block-node`]: {\n [`${treeCls}-list-holder-inner`]: {\n alignItems: 'stretch',\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n flex: 'auto'\n },\n // >>> Drag\n [`${treeNodeCls}.dragging`]: {\n position: 'relative',\n '&:after': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: treeNodePadding,\n insetInlineStart: 0,\n border: `1px solid ${token.colorPrimary}`,\n opacity: 0,\n animationName: treeNodeFX,\n animationDuration: token.motionDurationSlow,\n animationPlayState: 'running',\n animationFillMode: 'forwards',\n content: '\"\"',\n pointerEvents: 'none'\n }\n }\n }\n },\n // ===================== TreeNode =====================\n [`${treeNodeCls}`]: {\n display: 'flex',\n alignItems: 'flex-start',\n padding: `0 0 ${treeNodePadding}px 0`,\n outline: 'none',\n '&-rtl': {\n direction: 'rtl'\n },\n // Disabled\n '&-disabled': {\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n '&:hover': {\n background: 'transparent'\n }\n }\n },\n [`&-active ${treeCls}-node-content-wrapper`]: Object.assign({}, genFocusOutline(token)),\n [`&:not(${treeNodeCls}-disabled).filter-node ${treeCls}-title`]: {\n color: 'inherit',\n fontWeight: 500\n },\n '&-draggable': {\n [`${treeCls}-draggable-icon`]: {\n // https://github.com/ant-design/ant-design/issues/41915\n flexShrink: 0,\n width: treeTitleHeight,\n lineHeight: `${treeTitleHeight}px`,\n textAlign: 'center',\n visibility: 'visible',\n opacity: 0.2,\n transition: `opacity ${token.motionDurationSlow}`,\n [`${treeNodeCls}:hover &`]: {\n opacity: 0.45\n }\n },\n [`&${treeNodeCls}-disabled`]: {\n [`${treeCls}-draggable-icon`]: {\n visibility: 'hidden'\n }\n }\n }\n },\n // >>> Indent\n [`${treeCls}-indent`]: {\n alignSelf: 'stretch',\n whiteSpace: 'nowrap',\n userSelect: 'none',\n '&-unit': {\n display: 'inline-block',\n width: treeTitleHeight\n }\n },\n // >>> Drag Handler\n [`${treeCls}-draggable-icon`]: {\n visibility: 'hidden'\n },\n // >>> Switcher\n [`${treeCls}-switcher`]: Object.assign(Object.assign({}, getSwitchStyle(prefixCls, token)), {\n position: 'relative',\n flex: 'none',\n alignSelf: 'stretch',\n width: treeTitleHeight,\n margin: 0,\n lineHeight: `${treeTitleHeight}px`,\n textAlign: 'center',\n cursor: 'pointer',\n userSelect: 'none',\n '&-noop': {\n cursor: 'default'\n },\n '&_close': {\n [`${treeCls}-switcher-icon`]: {\n svg: {\n transform: 'rotate(-90deg)'\n }\n }\n },\n '&-loading-icon': {\n color: token.colorPrimary\n },\n '&-leaf-line': {\n position: 'relative',\n zIndex: 1,\n display: 'inline-block',\n width: '100%',\n height: '100%',\n // https://github.com/ant-design/ant-design/issues/31884\n '&:before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: treeTitleHeight / 2,\n bottom: -treeNodePadding,\n marginInlineStart: -1,\n borderInlineEnd: `1px solid ${token.colorBorder}`,\n content: '\"\"'\n },\n '&:after': {\n position: 'absolute',\n width: treeTitleHeight / 2 * 0.8,\n height: treeTitleHeight / 2,\n borderBottom: `1px solid ${token.colorBorder}`,\n content: '\"\"'\n }\n }\n }),\n // >>> Checkbox\n [`${treeCls}-checkbox`]: {\n top: 'initial',\n marginInlineEnd: treeCheckBoxMarginHorizontal\n },\n // >>> Title\n // add `${treeCls}-checkbox + span` to cover checkbox `${checkboxCls} + span`\n [`${treeCls}-node-content-wrapper, ${treeCls}-checkbox + span`]: {\n position: 'relative',\n zIndex: 'auto',\n minHeight: treeTitleHeight,\n margin: 0,\n padding: `0 ${token.paddingXS / 2}px`,\n color: 'inherit',\n lineHeight: `${treeTitleHeight}px`,\n background: 'transparent',\n borderRadius: token.borderRadius,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}, border 0s, line-height 0s, box-shadow 0s`,\n '&:hover': {\n backgroundColor: token.controlItemBgHover\n },\n [`&${treeCls}-node-selected`]: {\n backgroundColor: token.controlItemBgActive\n },\n // Icon\n [`${treeCls}-iconEle`]: {\n display: 'inline-block',\n width: treeTitleHeight,\n height: treeTitleHeight,\n lineHeight: `${treeTitleHeight}px`,\n textAlign: 'center',\n verticalAlign: 'top',\n '&:empty': {\n display: 'none'\n }\n }\n },\n // https://github.com/ant-design/ant-design/issues/28217\n [`${treeCls}-unselectable ${treeCls}-node-content-wrapper:hover`]: {\n backgroundColor: 'transparent'\n },\n // ==================== Draggable =====================\n [`${treeCls}-node-content-wrapper`]: Object.assign({\n lineHeight: `${treeTitleHeight}px`,\n userSelect: 'none'\n }, getDropIndicatorStyle(prefixCls, token)),\n [`${treeNodeCls}.drop-container`]: {\n '> [draggable]': {\n boxShadow: `0 0 0 2px ${token.colorPrimary}`\n }\n },\n // ==================== Show Line =====================\n '&-show-line': {\n // ================ Indent lines ================\n [`${treeCls}-indent`]: {\n '&-unit': {\n position: 'relative',\n height: '100%',\n '&:before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: treeTitleHeight / 2,\n bottom: -treeNodePadding,\n borderInlineEnd: `1px solid ${token.colorBorder}`,\n content: '\"\"'\n },\n '&-end': {\n '&:before': {\n display: 'none'\n }\n }\n }\n },\n // ============== Cover Background ==============\n [`${treeCls}-switcher`]: {\n background: 'transparent',\n '&-line-icon': {\n // https://github.com/ant-design/ant-design/issues/32813\n verticalAlign: '-0.15em'\n }\n }\n },\n [`${treeNodeCls}-leaf-last`]: {\n [`${treeCls}-switcher`]: {\n '&-leaf-line': {\n '&:before': {\n top: 'auto !important',\n bottom: 'auto !important',\n height: `${treeTitleHeight / 2}px !important`\n }\n }\n }\n }\n })\n };\n};\n// ============================ Directory =============================\nexport const genDirectoryStyle = token => {\n const {\n treeCls,\n treeNodeCls,\n treeNodePadding\n } = token;\n return {\n [`${treeCls}${treeCls}-directory`]: {\n // ================== TreeNode ==================\n [treeNodeCls]: {\n position: 'relative',\n // Hover color\n '&:before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: treeNodePadding,\n insetInlineStart: 0,\n transition: `background-color ${token.motionDurationMid}`,\n content: '\"\"',\n pointerEvents: 'none'\n },\n '&:hover': {\n '&:before': {\n background: token.controlItemBgHover\n }\n },\n // Elements\n '> *': {\n zIndex: 1\n },\n // >>> Switcher\n [`${treeCls}-switcher`]: {\n transition: `color ${token.motionDurationMid}`\n },\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n borderRadius: 0,\n userSelect: 'none',\n '&:hover': {\n background: 'transparent'\n },\n [`&${treeCls}-node-selected`]: {\n color: token.colorTextLightSolid,\n background: 'transparent'\n }\n },\n // ============= Selected =============\n '&-selected': {\n [`\n &:hover::before,\n &::before\n `]: {\n background: token.colorPrimary\n },\n // >>> Switcher\n [`${treeCls}-switcher`]: {\n color: token.colorTextLightSolid\n },\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n color: token.colorTextLightSolid,\n background: 'transparent'\n }\n }\n }\n }\n };\n};\n// ============================== Merged ==============================\nexport const genTreeStyle = (prefixCls, token) => {\n const treeCls = `.${prefixCls}`;\n const treeNodeCls = `${treeCls}-treenode`;\n const treeNodePadding = token.paddingXS / 2;\n const treeTitleHeight = token.controlHeightSM;\n const treeToken = mergeToken(token, {\n treeCls,\n treeNodeCls,\n treeNodePadding,\n treeTitleHeight\n });\n return [\n // Basic\n genBaseStyle(prefixCls, treeToken),\n // Directory\n genDirectoryStyle(treeToken)];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Tree', (token, _ref) => {\n let {\n prefixCls\n } = _ref;\n return [{\n [token.componentCls]: getCheckboxStyle(`${prefixCls}-checkbox`, token)\n }, genTreeStyle(prefixCls, token), genCollapseMotion(token)];\n});","// This icon file is generated automatically.\nvar CaretDownFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\" } }] }, \"name\": \"caret-down\", \"theme\": \"filled\" };\nexport default CaretDownFilled;\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 CaretDownFilledSvg from \"@ant-design/icons-svg/es/asn/CaretDownFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CaretDownFilled = function CaretDownFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CaretDownFilledSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CaretDownFilled.displayName = 'CaretDownFilled';\n}\nexport default /*#__PURE__*/React.forwardRef(CaretDownFilled);","// This icon file is generated automatically.\nvar MinusSquareOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"minus-square\", \"theme\": \"outlined\" };\nexport default MinusSquareOutlined;\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 MinusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/MinusSquareOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar MinusSquareOutlined = function MinusSquareOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: MinusSquareOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n MinusSquareOutlined.displayName = 'MinusSquareOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(MinusSquareOutlined);","// This icon file is generated automatically.\nvar PlusSquareOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"plus-square\", \"theme\": \"outlined\" };\nexport default PlusSquareOutlined;\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 PlusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusSquareOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PlusSquareOutlined = function PlusSquareOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: PlusSquareOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n PlusSquareOutlined.displayName = 'PlusSquareOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(PlusSquareOutlined);","import CaretDownFilled from \"@ant-design/icons/es/icons/CaretDownFilled\";\nimport FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport MinusSquareOutlined from \"@ant-design/icons/es/icons/MinusSquareOutlined\";\nimport PlusSquareOutlined from \"@ant-design/icons/es/icons/PlusSquareOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from '../../_util/reactNode';\nconst SwitcherIconCom = props => {\n const {\n prefixCls,\n switcherIcon,\n treeNodeProps,\n showLine\n } = props;\n const {\n isLeaf,\n expanded,\n loading\n } = treeNodeProps;\n if (loading) {\n return /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: `${prefixCls}-switcher-loading-icon`\n });\n }\n let showLeafIcon;\n if (showLine && typeof showLine === 'object') {\n showLeafIcon = showLine.showLeafIcon;\n }\n if (isLeaf) {\n if (!showLine) {\n return null;\n }\n if (typeof showLeafIcon !== 'boolean' && !!showLeafIcon) {\n const leafIcon = typeof showLeafIcon === 'function' ? showLeafIcon(treeNodeProps) : showLeafIcon;\n const leafCls = `${prefixCls}-switcher-line-custom-icon`;\n if (isValidElement(leafIcon)) {\n return cloneElement(leafIcon, {\n className: classNames(leafIcon.props.className || '', leafCls)\n });\n }\n return leafIcon;\n }\n return showLeafIcon ? /*#__PURE__*/React.createElement(FileOutlined, {\n className: `${prefixCls}-switcher-line-icon`\n }) : /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-switcher-leaf-line`\n });\n }\n const switcherCls = `${prefixCls}-switcher-icon`;\n const switcher = typeof switcherIcon === 'function' ? switcherIcon(treeNodeProps) : switcherIcon;\n if (isValidElement(switcher)) {\n return cloneElement(switcher, {\n className: classNames(switcher.props.className || '', switcherCls)\n });\n }\n if (switcher !== undefined) {\n return switcher;\n }\n if (showLine) {\n return expanded ? /*#__PURE__*/React.createElement(MinusSquareOutlined, {\n className: `${prefixCls}-switcher-line-icon`\n }) : /*#__PURE__*/React.createElement(PlusSquareOutlined, {\n className: `${prefixCls}-switcher-line-icon`\n });\n }\n return /*#__PURE__*/React.createElement(CaretDownFilled, {\n className: switcherCls\n });\n};\nexport default SwitcherIconCom;","// This icon file is generated automatically.\nvar EditOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z\" } }] }, \"name\": \"edit\", \"theme\": \"outlined\" };\nexport default EditOutlined;\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 EditOutlinedSvg from \"@ant-design/icons-svg/es/asn/EditOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EditOutlined = function EditOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EditOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n EditOutlined.displayName = 'EditOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(EditOutlined);","// This icon file is generated automatically.\nvar EnterOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"enter\", \"theme\": \"outlined\" };\nexport default EnterOutlined;\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 EnterOutlinedSvg from \"@ant-design/icons-svg/es/asn/EnterOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EnterOutlined = function EnterOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EnterOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n EnterOutlined.displayName = 'EnterOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(EnterOutlined);","/*\n.typography-title(@fontSize; @fontWeight; @lineHeight; @headingColor; @headingMarginBottom;) {\n margin-bottom: @headingMarginBottom;\n color: @headingColor;\n font-weight: @fontWeight;\n fontSize: @fontSize;\n line-height: @lineHeight;\n}\n*/\nimport { gold } from '@ant-design/colors';\nimport { initInputToken } from '../../input/style';\nimport { operationUnit } from '../../style';\n// eslint-disable-next-line import/prefer-default-export\nconst getTitleStyle = (fontSize, lineHeight, color, token) => {\n const {\n titleMarginBottom,\n fontWeightStrong\n } = token;\n return {\n marginBottom: titleMarginBottom,\n color,\n fontWeight: fontWeightStrong,\n fontSize,\n lineHeight\n };\n};\n// eslint-disable-next-line import/prefer-default-export\nexport const getTitleStyles = token => {\n const headings = [1, 2, 3, 4, 5];\n const styles = {};\n headings.forEach(headingLevel => {\n styles[`\n h${headingLevel}&,\n div&-h${headingLevel},\n div&-h${headingLevel} > textarea,\n h${headingLevel}\n `] = getTitleStyle(token[`fontSizeHeading${headingLevel}`], token[`lineHeightHeading${headingLevel}`], token.colorTextHeading, token);\n });\n return styles;\n};\nexport const getLinkStyles = token => {\n const {\n componentCls\n } = token;\n return {\n 'a&, a': Object.assign(Object.assign({}, operationUnit(token)), {\n textDecoration: token.linkDecoration,\n '&:active, &:hover': {\n textDecoration: token.linkHoverDecoration\n },\n [`&[disabled], &${componentCls}-disabled`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n '&:active, &:hover': {\n color: token.colorTextDisabled\n },\n '&:active': {\n pointerEvents: 'none'\n }\n }\n })\n };\n};\nexport const getResetStyles = token => ({\n code: {\n margin: '0 0.2em',\n paddingInline: '0.4em',\n paddingBlock: '0.2em 0.1em',\n fontSize: '85%',\n fontFamily: token.fontFamilyCode,\n background: 'rgba(150, 150, 150, 0.1)',\n border: '1px solid rgba(100, 100, 100, 0.2)',\n borderRadius: 3\n },\n kbd: {\n margin: '0 0.2em',\n paddingInline: '0.4em',\n paddingBlock: '0.15em 0.1em',\n fontSize: '90%',\n fontFamily: token.fontFamilyCode,\n background: 'rgba(150, 150, 150, 0.06)',\n border: '1px solid rgba(100, 100, 100, 0.2)',\n borderBottomWidth: 2,\n borderRadius: 3\n },\n mark: {\n padding: 0,\n // FIXME hardcode in v4\n backgroundColor: gold[2]\n },\n 'u, ins': {\n textDecoration: 'underline',\n textDecorationSkipInk: 'auto'\n },\n 's, del': {\n textDecoration: 'line-through'\n },\n strong: {\n fontWeight: 600\n },\n // list\n 'ul, ol': {\n marginInline: 0,\n marginBlock: '0 1em',\n padding: 0,\n li: {\n marginInline: '20px 0',\n marginBlock: 0,\n paddingInline: '4px 0',\n paddingBlock: 0\n }\n },\n ul: {\n listStyleType: 'circle',\n ul: {\n listStyleType: 'disc'\n }\n },\n ol: {\n listStyleType: 'decimal'\n },\n // pre & block\n 'pre, blockquote': {\n margin: '1em 0'\n },\n pre: {\n padding: '0.4em 0.6em',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n background: 'rgba(150, 150, 150, 0.1)',\n border: '1px solid rgba(100, 100, 100, 0.2)',\n borderRadius: 3,\n fontFamily: token.fontFamilyCode,\n // Compatible for marked\n code: {\n display: 'inline',\n margin: 0,\n padding: 0,\n fontSize: 'inherit',\n fontFamily: 'inherit',\n background: 'transparent',\n border: 0\n }\n },\n blockquote: {\n paddingInline: '0.6em 0',\n paddingBlock: 0,\n borderInlineStart: '4px solid rgba(100, 100, 100, 0.2)',\n opacity: 0.85\n }\n});\nexport const getEditableStyles = token => {\n const {\n componentCls\n } = token;\n const inputToken = initInputToken(token);\n const inputShift = inputToken.inputPaddingVertical + 1;\n return {\n '&-edit-content': {\n position: 'relative',\n 'div&': {\n insetInlineStart: -token.paddingSM,\n marginTop: -inputShift,\n marginBottom: `calc(1em - ${inputShift}px)`\n },\n [`${componentCls}-edit-content-confirm`]: {\n position: 'absolute',\n insetInlineEnd: token.marginXS + 2,\n insetBlockEnd: token.marginXS,\n color: token.colorTextDescription,\n // default style\n fontWeight: 'normal',\n fontSize: token.fontSize,\n fontStyle: 'normal',\n pointerEvents: 'none'\n },\n textarea: {\n margin: '0!important',\n // Fix Editable Textarea flash in Firefox\n MozTransition: 'none',\n height: '1em'\n }\n }\n };\n};\nexport const getCopyableStyles = token => ({\n '&-copy-success': {\n [`\n &,\n &:hover,\n &:focus`]: {\n color: token.colorSuccess\n }\n }\n});\nexport const getEllipsisStyles = () => ({\n [`\n a&-ellipsis,\n span&-ellipsis\n `]: {\n display: 'inline-block',\n maxWidth: '100%'\n },\n '&-single-line': {\n whiteSpace: 'nowrap'\n },\n '&-ellipsis-single-line': {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n // https://blog.csdn.net/iefreer/article/details/50421025\n 'a&, span&': {\n verticalAlign: 'bottom'\n }\n },\n '&-ellipsis-multiple-line': {\n display: '-webkit-box',\n overflow: 'hidden',\n WebkitLineClamp: 3,\n WebkitBoxOrient: 'vertical'\n }\n});","import { operationUnit } from '../../style';\nimport { genComponentStyleHook } from '../../theme/internal';\nimport { getCopyableStyles, getEditableStyles, getEllipsisStyles, getLinkStyles, getResetStyles, getTitleStyles } from './mixins';\nconst genTypographyStyle = token => {\n const {\n componentCls,\n titleMarginTop\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n color: token.colorText,\n wordBreak: 'break-word',\n lineHeight: token.lineHeight,\n [`&${componentCls}-secondary`]: {\n color: token.colorTextDescription\n },\n [`&${componentCls}-success`]: {\n color: token.colorSuccess\n },\n [`&${componentCls}-warning`]: {\n color: token.colorWarning\n },\n [`&${componentCls}-danger`]: {\n color: token.colorError,\n 'a&:active, a&:focus': {\n color: token.colorErrorActive\n },\n 'a&:hover': {\n color: token.colorErrorHover\n }\n },\n [`&${componentCls}-disabled`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n userSelect: 'none'\n },\n [`\n div&,\n p\n `]: {\n marginBottom: '1em'\n }\n }, getTitleStyles(token)), {\n [`\n & + h1${componentCls},\n & + h2${componentCls},\n & + h3${componentCls},\n & + h4${componentCls},\n & + h5${componentCls}\n `]: {\n marginTop: titleMarginTop\n },\n [`\n div,\n ul,\n li,\n p,\n h1,\n h2,\n h3,\n h4,\n h5`]: {\n [`\n + h1,\n + h2,\n + h3,\n + h4,\n + h5\n `]: {\n marginTop: titleMarginTop\n }\n }\n }), getResetStyles(token)), getLinkStyles(token)), {\n // Operation\n [`\n ${componentCls}-expand,\n ${componentCls}-edit,\n ${componentCls}-copy\n `]: Object.assign(Object.assign({}, operationUnit(token)), {\n marginInlineStart: token.marginXXS\n })\n }), getEditableStyles(token)), getCopyableStyles(token)), getEllipsisStyles()), {\n '&-rtl': {\n direction: 'rtl'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Typography', token => [genTypographyStyle(token)], () => ({\n titleMarginTop: '1.2em',\n titleMarginBottom: '0.5em'\n}));","import EnterOutlined from \"@ant-design/icons/es/icons/EnterOutlined\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { cloneElement } from '../_util/reactNode';\nimport TextArea from '../input/TextArea';\nimport useStyle from './style';\nconst Editable = props => {\n const {\n prefixCls,\n 'aria-label': ariaLabel,\n className,\n style,\n direction,\n maxLength,\n autoSize = true,\n value,\n onSave,\n onCancel,\n onEnd,\n component,\n enterIcon = /*#__PURE__*/React.createElement(EnterOutlined, null)\n } = props;\n const ref = React.useRef(null);\n const inComposition = React.useRef(false);\n const lastKeyCode = React.useRef();\n const [current, setCurrent] = React.useState(value);\n React.useEffect(() => {\n setCurrent(value);\n }, [value]);\n React.useEffect(() => {\n if (ref.current && ref.current.resizableTextArea) {\n const {\n textArea\n } = ref.current.resizableTextArea;\n textArea.focus();\n const {\n length\n } = textArea.value;\n textArea.setSelectionRange(length, length);\n }\n }, []);\n const onChange = _ref => {\n let {\n target\n } = _ref;\n setCurrent(target.value.replace(/[\\n\\r]/g, ''));\n };\n const onCompositionStart = () => {\n inComposition.current = true;\n };\n const onCompositionEnd = () => {\n inComposition.current = false;\n };\n const onKeyDown = _ref2 => {\n let {\n keyCode\n } = _ref2;\n // We don't record keyCode when IME is using\n if (inComposition.current) return;\n lastKeyCode.current = keyCode;\n };\n const confirmChange = () => {\n onSave(current.trim());\n };\n const onKeyUp = _ref3 => {\n let {\n keyCode,\n ctrlKey,\n altKey,\n metaKey,\n shiftKey\n } = _ref3;\n // Check if it's a real key\n if (lastKeyCode.current === keyCode && !inComposition.current && !ctrlKey && !altKey && !metaKey && !shiftKey) {\n if (keyCode === KeyCode.ENTER) {\n confirmChange();\n onEnd === null || onEnd === void 0 ? void 0 : onEnd();\n } else if (keyCode === KeyCode.ESC) {\n onCancel();\n }\n }\n };\n const onBlur = () => {\n confirmChange();\n };\n const textClassName = component ? `${prefixCls}-${component}` : '';\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const textAreaClassName = classNames(prefixCls, `${prefixCls}-edit-content`, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, textClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: textAreaClassName,\n style: style\n }, /*#__PURE__*/React.createElement(TextArea, {\n ref: ref,\n maxLength: maxLength,\n value: current,\n onChange: onChange,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onCompositionStart: onCompositionStart,\n onCompositionEnd: onCompositionEnd,\n onBlur: onBlur,\n \"aria-label\": ariaLabel,\n rows: 1,\n autoSize: autoSize\n }), enterIcon !== null ? cloneElement(enterIcon, {\n className: `${prefixCls}-edit-content-confirm`\n }) : null));\n};\nexport default Editable;","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 { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst Typography = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n component: Component = 'article',\n className,\n rootClassName,\n setContentRef,\n children,\n direction: typographyDirection,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"component\", \"className\", \"rootClassName\", \"setContentRef\", \"children\", \"direction\", \"style\"]);\n const {\n getPrefixCls,\n direction: contextDirection,\n typography\n } = React.useContext(ConfigContext);\n const direction = typographyDirection !== null && typographyDirection !== void 0 ? typographyDirection : contextDirection;\n let mergedRef = ref;\n if (setContentRef) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Typography', '`setContentRef` is deprecated. Please use `ref` instead.') : void 0;\n mergedRef = composeRef(ref, setContentRef);\n }\n const prefixCls = getPrefixCls('typography', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const componentClassName = classNames(prefixCls, typography === null || typography === void 0 ? void 0 : typography.className, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId);\n const mergedStyle = Object.assign(Object.assign({}, typography === null || typography === void 0 ? void 0 : typography.style), style);\n return wrapSSR(\n /*#__PURE__*/\n // @ts-expect-error: Expression produces a union type that is too complex to represent.\n React.createElement(Component, Object.assign({\n className: componentClassName,\n style: mergedStyle,\n ref: mergedRef\n }, restProps), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Typography.displayName = 'Typography';\n}\n// es default export should use const instead of let\nexport default Typography;","import * as React from 'react';\nexport default function useMergedConfig(propConfig, templateConfig) {\n return React.useMemo(() => {\n const support = !!propConfig;\n return [support, Object.assign(Object.assign({}, templateConfig), support && typeof propConfig === 'object' ? propConfig : null)];\n }, [propConfig]);\n}","import * as React from 'react';\n/** Similar with `useEffect` but only trigger after mounted */\nconst useUpdatedEffect = (callback, conditions) => {\n const mountRef = React.useRef(false);\n React.useEffect(() => {\n if (mountRef.current) {\n callback();\n } else {\n mountRef.current = true;\n }\n }, conditions);\n};\nexport default useUpdatedEffect;","import toArray from \"rc-util/es/Children/toArray\";\nimport useIsomorphicLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nfunction cuttable(node) {\n const type = typeof node;\n return type === 'string' || type === 'number';\n}\nfunction getNodesLen(nodeList) {\n let totalLen = 0;\n nodeList.forEach(node => {\n if (cuttable(node)) {\n totalLen += String(node).length;\n } else {\n totalLen += 1;\n }\n });\n return totalLen;\n}\nfunction sliceNodes(nodeList, len) {\n let currLen = 0;\n const currentNodeList = [];\n for (let i = 0; i < nodeList.length; i += 1) {\n // Match to return\n if (currLen === len) {\n return currentNodeList;\n }\n const node = nodeList[i];\n const canCut = cuttable(node);\n const nodeLen = canCut ? String(node).length : 1;\n const nextLen = currLen + nodeLen;\n // Exceed but current not which means we need cut this\n // This will not happen on validate ReactElement\n if (nextLen > len) {\n const restLen = len - currLen;\n currentNodeList.push(String(node).slice(0, restLen));\n return currentNodeList;\n }\n currentNodeList.push(node);\n currLen = nextLen;\n }\n return nodeList;\n}\nconst NONE = 0;\nconst PREPARE = 1;\nconst WALKING = 2;\nconst DONE_WITH_ELLIPSIS = 3;\nconst DONE_WITHOUT_ELLIPSIS = 4;\nconst Ellipsis = _ref => {\n let {\n enabledMeasure,\n children,\n text,\n width,\n fontSize,\n rows,\n onEllipsis\n } = _ref;\n const [[startLen, midLen, endLen], setCutLength] = React.useState([0, 0, 0]);\n const [walkingState, setWalkingState] = React.useState(NONE);\n const [singleRowHeight, setSingleRowHeight] = React.useState(0);\n const singleRowRef = React.useRef(null);\n const midRowRef = React.useRef(null);\n const nodeList = React.useMemo(() => toArray(text), [text]);\n const totalLen = React.useMemo(() => getNodesLen(nodeList), [nodeList]);\n const mergedChildren = React.useMemo(() => {\n if (!enabledMeasure || walkingState !== DONE_WITH_ELLIPSIS) {\n return children(nodeList, false);\n }\n return children(sliceNodes(nodeList, midLen), midLen < totalLen);\n }, [enabledMeasure, walkingState, children, nodeList, midLen, totalLen]);\n // ======================== Walk ========================\n useIsomorphicLayoutEffect(() => {\n if (enabledMeasure && width && fontSize && totalLen) {\n setWalkingState(PREPARE);\n setCutLength([0, Math.ceil(totalLen / 2), totalLen]);\n }\n }, [enabledMeasure, width, fontSize, text, totalLen, rows]);\n useIsomorphicLayoutEffect(() => {\n var _a;\n if (walkingState === PREPARE) {\n setSingleRowHeight(((_a = singleRowRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0);\n }\n }, [walkingState]);\n useIsomorphicLayoutEffect(() => {\n var _a, _b;\n if (singleRowHeight) {\n if (walkingState === PREPARE) {\n // Ignore if position is enough\n const midHeight = ((_a = midRowRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0;\n const maxHeight = rows * singleRowHeight;\n if (midHeight <= maxHeight) {\n setWalkingState(DONE_WITHOUT_ELLIPSIS);\n onEllipsis(false);\n } else {\n setWalkingState(WALKING);\n }\n } else if (walkingState === WALKING) {\n if (startLen !== endLen) {\n const midHeight = ((_b = midRowRef.current) === null || _b === void 0 ? void 0 : _b.offsetHeight) || 0;\n const maxHeight = rows * singleRowHeight;\n let nextStartLen = startLen;\n let nextEndLen = endLen;\n // We reach the last round\n if (startLen === endLen - 1) {\n nextEndLen = startLen;\n } else if (midHeight <= maxHeight) {\n nextStartLen = midLen;\n } else {\n nextEndLen = midLen;\n }\n const nextMidLen = Math.ceil((nextStartLen + nextEndLen) / 2);\n setCutLength([nextStartLen, nextMidLen, nextEndLen]);\n } else {\n setWalkingState(DONE_WITH_ELLIPSIS);\n onEllipsis(true);\n }\n }\n }\n }, [walkingState, startLen, endLen, rows, singleRowHeight]);\n // ======================= Render =======================\n const measureStyle = {\n width,\n whiteSpace: 'normal',\n margin: 0,\n padding: 0\n };\n const renderMeasure = (content, ref, style) => /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true,\n ref: ref,\n style: Object.assign({\n position: 'fixed',\n display: 'block',\n left: 0,\n top: 0,\n zIndex: -9999,\n visibility: 'hidden',\n pointerEvents: 'none',\n fontSize: Math.floor(fontSize / 2) * 2\n }, style)\n }, content);\n const renderMeasureSlice = (len, ref) => {\n const sliceNodeList = sliceNodes(nodeList, len);\n return renderMeasure(children(sliceNodeList, true), ref, measureStyle);\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, mergedChildren, enabledMeasure && walkingState !== DONE_WITH_ELLIPSIS && walkingState !== DONE_WITHOUT_ELLIPSIS && /*#__PURE__*/React.createElement(React.Fragment, null, renderMeasure('lg', singleRowRef, {\n wordBreak: 'keep-all',\n whiteSpace: 'nowrap'\n }), walkingState === PREPARE ? renderMeasure(children(nodeList, false), midRowRef, measureStyle) : renderMeasureSlice(midLen, midRowRef)));\n};\nif (process.env.NODE_ENV !== 'production') {\n Ellipsis.displayName = 'Ellipsis';\n}\nexport default Ellipsis;","import * as React from 'react';\nimport Tooltip from '../../tooltip';\nconst EllipsisTooltip = _ref => {\n let {\n enabledEllipsis,\n isEllipsis,\n children,\n tooltipProps\n } = _ref;\n if (!(tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.title) || !enabledEllipsis) {\n return children;\n }\n return /*#__PURE__*/React.createElement(Tooltip, Object.assign({\n open: isEllipsis ? undefined : false\n }, tooltipProps), children);\n};\nif (process.env.NODE_ENV !== 'production') {\n EllipsisTooltip.displayName = 'EllipsisTooltip';\n}\nexport default EllipsisTooltip;","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 CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CopyOutlined from \"@ant-design/icons/es/icons/CopyOutlined\";\nimport EditOutlined from \"@ant-design/icons/es/icons/EditOutlined\";\nimport classNames from 'classnames';\nimport copy from 'copy-to-clipboard';\nimport ResizeObserver from 'rc-resize-observer';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport useIsomorphicLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { isStyleSupport } from '../../_util/styleChecker';\nimport TransButton from '../../_util/transButton';\nimport { ConfigContext } from '../../config-provider';\nimport useLocale from '../../locale/useLocale';\nimport Tooltip from '../../tooltip';\nimport Editable from '../Editable';\nimport Typography from '../Typography';\nimport useMergedConfig from '../hooks/useMergedConfig';\nimport useUpdatedEffect from '../hooks/useUpdatedEffect';\nimport Ellipsis from './Ellipsis';\nimport EllipsisTooltip from './EllipsisTooltip';\nfunction wrapperDecorations(_ref, content) {\n let {\n mark,\n code,\n underline,\n delete: del,\n strong,\n keyboard,\n italic\n } = _ref;\n let currentContent = content;\n function wrap(tag, needed) {\n if (!needed) {\n return;\n }\n currentContent = /*#__PURE__*/React.createElement(tag, {}, currentContent);\n }\n wrap('strong', strong);\n wrap('u', underline);\n wrap('del', del);\n wrap('code', code);\n wrap('mark', mark);\n wrap('kbd', keyboard);\n wrap('i', italic);\n return currentContent;\n}\nfunction getNode(dom, defaultNode, needDom) {\n if (dom === true || dom === undefined) {\n return defaultNode;\n }\n return dom || needDom && defaultNode;\n}\nfunction toList(val) {\n if (val === false) {\n return [false, false];\n }\n return Array.isArray(val) ? val : [val];\n}\nconst ELLIPSIS_STR = '...';\nconst Base = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a, _b, _c;\n const {\n prefixCls: customizePrefixCls,\n className,\n style,\n type,\n disabled,\n children,\n ellipsis,\n editable,\n copyable,\n component,\n title\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"type\", \"disabled\", \"children\", \"ellipsis\", \"editable\", \"copyable\", \"component\", \"title\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const [textLocale] = useLocale('Text');\n const typographyRef = React.useRef(null);\n const editIconRef = React.useRef(null);\n // ============================ MISC ============================\n const prefixCls = getPrefixCls('typography', customizePrefixCls);\n const textProps = omit(restProps, ['mark', 'code', 'delete', 'underline', 'strong', 'keyboard', 'italic']);\n // ========================== Editable ==========================\n const [enableEdit, editConfig] = useMergedConfig(editable);\n const [editing, setEditing] = useMergedState(false, {\n value: editConfig.editing\n });\n const {\n triggerType = ['icon']\n } = editConfig;\n const triggerEdit = edit => {\n var _a;\n if (edit) {\n (_a = editConfig.onStart) === null || _a === void 0 ? void 0 : _a.call(editConfig);\n }\n setEditing(edit);\n };\n // Focus edit icon when back\n useUpdatedEffect(() => {\n var _a;\n if (!editing) {\n (_a = editIconRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }, [editing]);\n const onEditClick = e => {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n triggerEdit(true);\n };\n const onEditChange = value => {\n var _a;\n (_a = editConfig.onChange) === null || _a === void 0 ? void 0 : _a.call(editConfig, value);\n triggerEdit(false);\n };\n const onEditCancel = () => {\n var _a;\n (_a = editConfig.onCancel) === null || _a === void 0 ? void 0 : _a.call(editConfig);\n triggerEdit(false);\n };\n // ========================== Copyable ==========================\n const [enableCopy, copyConfig] = useMergedConfig(copyable);\n const [copied, setCopied] = React.useState(false);\n const copyIdRef = React.useRef(null);\n const copyOptions = {};\n if (copyConfig.format) {\n copyOptions.format = copyConfig.format;\n }\n const cleanCopyId = () => {\n if (copyIdRef.current) {\n clearTimeout(copyIdRef.current);\n }\n };\n const onCopyClick = e => {\n var _a;\n e === null || e === void 0 ? void 0 : e.preventDefault();\n e === null || e === void 0 ? void 0 : e.stopPropagation();\n copy(copyConfig.text || String(children) || '', copyOptions);\n setCopied(true);\n // Trigger tips update\n cleanCopyId();\n copyIdRef.current = setTimeout(() => {\n setCopied(false);\n }, 3000);\n (_a = copyConfig.onCopy) === null || _a === void 0 ? void 0 : _a.call(copyConfig, e);\n };\n React.useEffect(() => cleanCopyId, []);\n // ========================== Ellipsis ==========================\n const [isLineClampSupport, setIsLineClampSupport] = React.useState(false);\n const [isTextOverflowSupport, setIsTextOverflowSupport] = React.useState(false);\n const [expanded, setExpanded] = React.useState(false);\n const [isJsEllipsis, setIsJsEllipsis] = React.useState(false);\n const [isNativeEllipsis, setIsNativeEllipsis] = React.useState(false);\n const [isNativeVisible, setIsNativeVisible] = React.useState(true);\n const [enableEllipsis, ellipsisConfig] = useMergedConfig(ellipsis, {\n expandable: false\n });\n const mergedEnableEllipsis = enableEllipsis && !expanded;\n // Shared prop to reduce bundle size\n const {\n rows = 1\n } = ellipsisConfig;\n const needMeasureEllipsis = React.useMemo(() =>\n // Disable ellipsis\n !mergedEnableEllipsis ||\n // Provide suffix\n ellipsisConfig.suffix !== undefined || ellipsisConfig.onEllipsis ||\n // Can't use css ellipsis since we need to provide the place for button\n ellipsisConfig.expandable || enableEdit || enableCopy, [mergedEnableEllipsis, ellipsisConfig, enableEdit, enableCopy]);\n useIsomorphicLayoutEffect(() => {\n if (enableEllipsis && !needMeasureEllipsis) {\n setIsLineClampSupport(isStyleSupport('webkitLineClamp'));\n setIsTextOverflowSupport(isStyleSupport('textOverflow'));\n }\n }, [needMeasureEllipsis, enableEllipsis]);\n const cssEllipsis = React.useMemo(() => {\n if (needMeasureEllipsis) {\n return false;\n }\n if (rows === 1) {\n return isTextOverflowSupport;\n }\n return isLineClampSupport;\n }, [needMeasureEllipsis, isTextOverflowSupport, isLineClampSupport]);\n const isMergedEllipsis = mergedEnableEllipsis && (cssEllipsis ? isNativeEllipsis : isJsEllipsis);\n const cssTextOverflow = mergedEnableEllipsis && rows === 1 && cssEllipsis;\n const cssLineClamp = mergedEnableEllipsis && rows > 1 && cssEllipsis;\n // >>>>> Expand\n const onExpandClick = e => {\n var _a;\n setExpanded(true);\n (_a = ellipsisConfig.onExpand) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, e);\n };\n const [ellipsisWidth, setEllipsisWidth] = React.useState(0);\n const [ellipsisFontSize, setEllipsisFontSize] = React.useState(0);\n const onResize = (_ref2, element) => {\n let {\n offsetWidth\n } = _ref2;\n var _a;\n setEllipsisWidth(offsetWidth);\n setEllipsisFontSize(parseInt((_a = window.getComputedStyle) === null || _a === void 0 ? void 0 : _a.call(window, element).fontSize, 10) || 0);\n };\n // >>>>> JS Ellipsis\n const onJsEllipsis = jsEllipsis => {\n var _a;\n setIsJsEllipsis(jsEllipsis);\n // Trigger if changed\n if (isJsEllipsis !== jsEllipsis) {\n (_a = ellipsisConfig.onEllipsis) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, jsEllipsis);\n }\n };\n // >>>>> Native ellipsis\n React.useEffect(() => {\n const textEle = typographyRef.current;\n if (enableEllipsis && cssEllipsis && textEle) {\n const currentEllipsis = cssLineClamp ? textEle.offsetHeight < textEle.scrollHeight : textEle.offsetWidth < textEle.scrollWidth;\n if (isNativeEllipsis !== currentEllipsis) {\n setIsNativeEllipsis(currentEllipsis);\n }\n }\n }, [enableEllipsis, cssEllipsis, children, cssLineClamp, isNativeVisible]);\n // https://github.com/ant-design/ant-design/issues/36786\n // Use IntersectionObserver to check if element is invisible\n React.useEffect(() => {\n const textEle = typographyRef.current;\n if (typeof IntersectionObserver === 'undefined' || !textEle || !cssEllipsis || !mergedEnableEllipsis) {\n return;\n }\n /* eslint-disable-next-line compat/compat */\n const observer = new IntersectionObserver(() => {\n setIsNativeVisible(!!textEle.offsetParent);\n });\n observer.observe(textEle);\n return () => {\n observer.disconnect();\n };\n }, [cssEllipsis, mergedEnableEllipsis]);\n // ========================== Tooltip ===========================\n let tooltipProps = {};\n if (ellipsisConfig.tooltip === true) {\n tooltipProps = {\n title: (_a = editConfig.text) !== null && _a !== void 0 ? _a : children\n };\n } else if ( /*#__PURE__*/React.isValidElement(ellipsisConfig.tooltip)) {\n tooltipProps = {\n title: ellipsisConfig.tooltip\n };\n } else if (typeof ellipsisConfig.tooltip === 'object') {\n tooltipProps = Object.assign({\n title: (_b = editConfig.text) !== null && _b !== void 0 ? _b : children\n }, ellipsisConfig.tooltip);\n } else {\n tooltipProps = {\n title: ellipsisConfig.tooltip\n };\n }\n const topAriaLabel = React.useMemo(() => {\n const isValid = val => ['string', 'number'].includes(typeof val);\n if (!enableEllipsis || cssEllipsis) {\n return undefined;\n }\n if (isValid(editConfig.text)) {\n return editConfig.text;\n }\n if (isValid(children)) {\n return children;\n }\n if (isValid(title)) {\n return title;\n }\n if (isValid(tooltipProps.title)) {\n return tooltipProps.title;\n }\n return undefined;\n }, [enableEllipsis, cssEllipsis, title, tooltipProps.title, isMergedEllipsis]);\n // =========================== Render ===========================\n // >>>>>>>>>>> Editing input\n if (editing) {\n return /*#__PURE__*/React.createElement(Editable, {\n value: (_c = editConfig.text) !== null && _c !== void 0 ? _c : typeof children === 'string' ? children : '',\n onSave: onEditChange,\n onCancel: onEditCancel,\n onEnd: editConfig.onEnd,\n prefixCls: prefixCls,\n className: className,\n style: style,\n direction: direction,\n component: component,\n maxLength: editConfig.maxLength,\n autoSize: editConfig.autoSize,\n enterIcon: editConfig.enterIcon\n });\n }\n // >>>>>>>>>>> Typography\n // Expand\n const renderExpand = () => {\n const {\n expandable,\n symbol\n } = ellipsisConfig;\n if (!expandable) return null;\n let expandContent;\n if (symbol) {\n expandContent = symbol;\n } else {\n expandContent = textLocale === null || textLocale === void 0 ? void 0 : textLocale.expand;\n }\n return /*#__PURE__*/React.createElement(\"a\", {\n key: \"expand\",\n className: `${prefixCls}-expand`,\n onClick: onExpandClick,\n \"aria-label\": textLocale === null || textLocale === void 0 ? void 0 : textLocale.expand\n }, expandContent);\n };\n // Edit\n const renderEdit = () => {\n if (!enableEdit) return;\n const {\n icon,\n tooltip\n } = editConfig;\n const editTitle = toArray(tooltip)[0] || (textLocale === null || textLocale === void 0 ? void 0 : textLocale.edit);\n const ariaLabel = typeof editTitle === 'string' ? editTitle : '';\n return triggerType.includes('icon') ? /*#__PURE__*/React.createElement(Tooltip, {\n key: \"edit\",\n title: tooltip === false ? '' : editTitle\n }, /*#__PURE__*/React.createElement(TransButton, {\n ref: editIconRef,\n className: `${prefixCls}-edit`,\n onClick: onEditClick,\n \"aria-label\": ariaLabel\n }, icon || /*#__PURE__*/React.createElement(EditOutlined, {\n role: \"button\"\n }))) : null;\n };\n // Copy\n const renderCopy = () => {\n if (!enableCopy) return;\n const {\n tooltips,\n icon\n } = copyConfig;\n const tooltipNodes = toList(tooltips);\n const iconNodes = toList(icon);\n const copyTitle = copied ? getNode(tooltipNodes[1], textLocale === null || textLocale === void 0 ? void 0 : textLocale.copied) : getNode(tooltipNodes[0], textLocale === null || textLocale === void 0 ? void 0 : textLocale.copy);\n const systemStr = copied ? textLocale === null || textLocale === void 0 ? void 0 : textLocale.copied : textLocale === null || textLocale === void 0 ? void 0 : textLocale.copy;\n const ariaLabel = typeof copyTitle === 'string' ? copyTitle : systemStr;\n return /*#__PURE__*/React.createElement(Tooltip, {\n key: \"copy\",\n title: copyTitle\n }, /*#__PURE__*/React.createElement(TransButton, {\n className: classNames(`${prefixCls}-copy`, copied && `${prefixCls}-copy-success`),\n onClick: onCopyClick,\n \"aria-label\": ariaLabel\n }, copied ? getNode(iconNodes[1], /*#__PURE__*/React.createElement(CheckOutlined, null), true) : getNode(iconNodes[0], /*#__PURE__*/React.createElement(CopyOutlined, null), true)));\n };\n const renderOperations = renderExpanded => [renderExpanded && renderExpand(), renderEdit(), renderCopy()];\n const renderEllipsis = needEllipsis => [needEllipsis && /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true,\n key: \"ellipsis\"\n }, ELLIPSIS_STR), ellipsisConfig.suffix, renderOperations(needEllipsis)];\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onResize,\n disabled: !mergedEnableEllipsis || cssEllipsis\n }, resizeRef => /*#__PURE__*/React.createElement(EllipsisTooltip, {\n tooltipProps: tooltipProps,\n enabledEllipsis: mergedEnableEllipsis,\n isEllipsis: isMergedEllipsis\n }, /*#__PURE__*/React.createElement(Typography, Object.assign({\n className: classNames({\n [`${prefixCls}-${type}`]: type,\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-ellipsis`]: enableEllipsis,\n [`${prefixCls}-single-line`]: mergedEnableEllipsis && rows === 1,\n [`${prefixCls}-ellipsis-single-line`]: cssTextOverflow,\n [`${prefixCls}-ellipsis-multiple-line`]: cssLineClamp\n }, className),\n prefixCls: customizePrefixCls,\n style: Object.assign(Object.assign({}, style), {\n WebkitLineClamp: cssLineClamp ? rows : undefined\n }),\n component: component,\n ref: composeRef(resizeRef, typographyRef, ref),\n direction: direction,\n onClick: triggerType.includes('text') ? onEditClick : undefined,\n \"aria-label\": topAriaLabel === null || topAriaLabel === void 0 ? void 0 : topAriaLabel.toString(),\n title: title\n }, textProps), /*#__PURE__*/React.createElement(Ellipsis, {\n enabledMeasure: mergedEnableEllipsis && !cssEllipsis,\n text: children,\n rows: rows,\n width: ellipsisWidth,\n fontSize: ellipsisFontSize,\n onEllipsis: onJsEllipsis\n }, (node, needEllipsis) => {\n let renderNode = node;\n if (node.length && needEllipsis && topAriaLabel) {\n renderNode = /*#__PURE__*/React.createElement(\"span\", {\n key: \"show-content\",\n \"aria-hidden\": true\n }, renderNode);\n }\n const wrappedContext = wrapperDecorations(props, /*#__PURE__*/React.createElement(React.Fragment, null, renderNode, renderEllipsis(needEllipsis)));\n return wrappedContext;\n }))));\n});\nexport default Base;","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 warning from '../_util/warning';\nimport Base from './Base';\nconst Link = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n ellipsis,\n rel\n } = _a,\n restProps = __rest(_a, [\"ellipsis\", \"rel\"]);\n process.env.NODE_ENV !== \"production\" ? warning(typeof ellipsis !== 'object', 'Typography.Link', '`ellipsis` only supports boolean value.') : void 0;\n const mergedProps = Object.assign(Object.assign({}, restProps), {\n rel: rel === undefined && restProps.target === '_blank' ? 'noopener noreferrer' : rel\n });\n // @ts-expect-error: https://github.com/ant-design/ant-design/issues/26622\n delete mergedProps.navigate;\n return /*#__PURE__*/React.createElement(Base, Object.assign({}, mergedProps, {\n ref: ref,\n ellipsis: !!ellipsis,\n component: \"a\"\n }));\n});\nexport default Link;","import * as React from 'react';\nimport Base from './Base';\nconst Paragraph = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(Base, Object.assign({\n ref: ref\n}, props, {\n component: \"div\"\n})));\nexport default Paragraph;","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 omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport Base from './Base';\nconst Text = (_a, ref) => {\n var {\n ellipsis\n } = _a,\n restProps = __rest(_a, [\"ellipsis\"]);\n const mergedEllipsis = React.useMemo(() => {\n if (ellipsis && typeof ellipsis === 'object') {\n return omit(ellipsis, ['expandable', 'rows']);\n }\n return ellipsis;\n }, [ellipsis]);\n process.env.NODE_ENV !== \"production\" ? warning(typeof ellipsis !== 'object' || !ellipsis || !('expandable' in ellipsis) && !('rows' in ellipsis), 'Typography.Text', '`ellipsis` do not support `expandable` or `rows` props.') : void 0;\n return /*#__PURE__*/React.createElement(Base, Object.assign({\n ref: ref\n }, restProps, {\n ellipsis: mergedEllipsis,\n component: \"span\"\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(Text);","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 warning from '../_util/warning';\nimport Base from './Base';\nconst TITLE_ELE_LIST = [1, 2, 3, 4, 5];\nconst Title = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n level = 1\n } = props,\n restProps = __rest(props, [\"level\"]);\n let component;\n if (TITLE_ELE_LIST.includes(level)) {\n component = `h${level}`;\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Typography.Title', 'Title only accept `1 | 2 | 3 | 4 | 5` as `level` value. And `5` need 4.6.0+ version.') : void 0;\n component = 'h1';\n }\n return /*#__PURE__*/React.createElement(Base, Object.assign({\n ref: ref\n }, restProps, {\n component: component\n }));\n});\nexport default Title;","'use client';\n\nimport Link from './Link';\nimport Paragraph from './Paragraph';\nimport Text from './Text';\nimport Title from './Title';\nimport OriginTypography from './Typography';\nconst Typography = OriginTypography;\nTypography.Text = Text;\nTypography.Link = Link;\nTypography.Title = Title;\nTypography.Paragraph = Paragraph;\nexport default Typography;","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={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\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(r=\"undefined\"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){\"use strict\";return function(r,e,t){r=r||{};var n=e.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],m=h.length,c=0;c0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekday=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,i=this.$W,n=(i\n * Build: `lodash modularize exports=\"npm\" -o ./`\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\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\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 proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\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/**\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 to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\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/** 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/** 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\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\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 */\nfunction 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 * 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\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\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\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\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\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 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 * 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/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\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/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.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 symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\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 */\nvar 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 * 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/**\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\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\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\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\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\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\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/**\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\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\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\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\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\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\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/**\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\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\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\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\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\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\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/**\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\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\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\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\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\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\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\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 */\nfunction 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 */\nfunction 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 */\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\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 */\nfunction 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 `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 */\nvar baseFor = createBaseFor();\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\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\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\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\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 */\nfunction 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 `_.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 */\nfunction 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 */\nfunction 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 `_.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 */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), 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 */\nvar 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 * 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 */\nfunction 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 */\nfunction 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 `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 */\nfunction 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 * 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 */\nfunction 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 */\nfunction 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 * 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 */\nfunction 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 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 */\nfunction 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 * 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\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\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\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 */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\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 */\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\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 */\nfunction 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 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\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\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\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 */\nfunction 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 */\nfunction 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 */\nfunction 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 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 */\nfunction 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 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 */\nvar setToString = shortOut(baseSetToString);\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 */\nfunction 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 * 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\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\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\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\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\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 */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\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 */\nvar isBuffer = nativeIsBuffer || stubFalse;\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\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\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\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\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 */\nfunction 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 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\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 */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\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 */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\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 */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\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 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/** 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/**\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 = toNumber;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\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 */\nfunction 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\nmodule.exports = assignMergeValue;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\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 */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var createBaseFor = require('./_createBaseFor');\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 */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\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 */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\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 */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\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 */\nfunction 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\nmodule.exports = baseIsMatch;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\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 */\nfunction 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\nmodule.exports = baseIteratee;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\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 */\nfunction 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\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\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 */\nfunction 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\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\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 */\nfunction 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\nmodule.exports = baseMatchesProperty;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\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 */\nfunction 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\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\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 */\nfunction 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\nmodule.exports = baseMergeDeep;\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 */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\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 */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var identity = require('./identity');\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 */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var isArrayLike = require('./isArrayLike');\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 */\nfunction 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\nmodule.exports = createBaseEach;\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 */\nfunction 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\nmodule.exports = createBaseFor;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\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 */\nfunction 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\nmodule.exports = getMatchData;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\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 */\nfunction 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\nmodule.exports = hasPath;\n","var isObject = require('./isObject');\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 */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\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 */\nfunction 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\nmodule.exports = matchesStrictComparable;\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 */\nfunction 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\nmodule.exports = safeGet;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\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 */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","module.exports = require('./forEach');\n","var arrayEach = require('./_arrayEach'),\n baseEach = require('./_baseEach'),\n castFunction = require('./_castFunction'),\n isArray = require('./isArray');\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 */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\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 */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","var baseGet = require('./_baseGet');\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 */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\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 */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\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 */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\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 */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\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 */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\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 */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\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 */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","import dayjs from 'dayjs';\nimport { noteOnce } from \"rc-util/es/warning\";\nimport weekday from 'dayjs/plugin/weekday';\nimport localeData from 'dayjs/plugin/localeData';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport weekYear from 'dayjs/plugin/weekYear';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\ndayjs.extend(customParseFormat);\ndayjs.extend(advancedFormat);\ndayjs.extend(weekday);\ndayjs.extend(localeData);\ndayjs.extend(weekOfYear);\ndayjs.extend(weekYear);\ndayjs.extend(function (o, c) {\n // todo support Wo (ISO week)\n var proto = c.prototype;\n var oldFormat = proto.format;\n proto.format = function f(formatStr) {\n var str = (formatStr || '').replace('Wo', 'wo');\n return oldFormat.bind(this)(str);\n };\n});\nvar localeMap = {\n // ar_EG:\n // az_AZ:\n // bg_BG:\n bn_BD: 'bn-bd',\n by_BY: 'be',\n // ca_ES:\n // cs_CZ:\n // da_DK:\n // de_DE:\n // el_GR:\n en_GB: 'en-gb',\n en_US: 'en',\n // es_ES:\n // et_EE:\n // fa_IR:\n // fi_FI:\n fr_BE: 'fr',\n // todo: dayjs has no fr_BE locale, use fr at present\n fr_CA: 'fr-ca',\n // fr_FR:\n // ga_IE:\n // gl_ES:\n // he_IL:\n // hi_IN:\n // hr_HR:\n // hu_HU:\n hy_AM: 'hy-am',\n // id_ID:\n // is_IS:\n // it_IT:\n // ja_JP:\n // ka_GE:\n // kk_KZ:\n // km_KH:\n kmr_IQ: 'ku',\n // kn_IN:\n // ko_KR:\n // ku_IQ: // previous ku in antd\n // lt_LT:\n // lv_LV:\n // mk_MK:\n // ml_IN:\n // mn_MN:\n // ms_MY:\n // nb_NO:\n // ne_NP:\n nl_BE: 'nl-be',\n // nl_NL:\n // pl_PL:\n pt_BR: 'pt-br',\n // pt_PT:\n // ro_RO:\n // ru_RU:\n // sk_SK:\n // sl_SI:\n // sr_RS:\n // sv_SE:\n // ta_IN:\n // th_TH:\n // tr_TR:\n // uk_UA:\n // ur_PK:\n // vi_VN:\n zh_CN: 'zh-cn',\n zh_HK: 'zh-hk',\n zh_TW: 'zh-tw'\n};\nvar parseLocale = function parseLocale(locale) {\n var mapLocale = localeMap[locale];\n return mapLocale || locale.split('_')[0];\n};\nvar parseNoMatchNotice = function parseNoMatchNotice() {\n /* istanbul ignore next */\n noteOnce(false, 'Not match any format. Please help to fire a issue about this.');\n};\nvar generateConfig = {\n // get\n getNow: function getNow() {\n return dayjs();\n },\n getFixedDate: function getFixedDate(string) {\n return dayjs(string, ['YYYY-M-DD', 'YYYY-MM-DD']);\n },\n getEndDate: function getEndDate(date) {\n return date.endOf('month');\n },\n getWeekDay: function getWeekDay(date) {\n var clone = date.locale('en');\n return clone.weekday() + clone.localeData().firstDayOfWeek();\n },\n getYear: function getYear(date) {\n return date.year();\n },\n getMonth: function getMonth(date) {\n return date.month();\n },\n getDate: function getDate(date) {\n return date.date();\n },\n getHour: function getHour(date) {\n return date.hour();\n },\n getMinute: function getMinute(date) {\n return date.minute();\n },\n getSecond: function getSecond(date) {\n return date.second();\n },\n // set\n addYear: function addYear(date, diff) {\n return date.add(diff, 'year');\n },\n addMonth: function addMonth(date, diff) {\n return date.add(diff, 'month');\n },\n addDate: function addDate(date, diff) {\n return date.add(diff, 'day');\n },\n setYear: function setYear(date, year) {\n return date.year(year);\n },\n setMonth: function setMonth(date, month) {\n return date.month(month);\n },\n setDate: function setDate(date, num) {\n return date.date(num);\n },\n setHour: function setHour(date, hour) {\n return date.hour(hour);\n },\n setMinute: function setMinute(date, minute) {\n return date.minute(minute);\n },\n setSecond: function setSecond(date, second) {\n return date.second(second);\n },\n // Compare\n isAfter: function isAfter(date1, date2) {\n return date1.isAfter(date2);\n },\n isValidate: function isValidate(date) {\n return date.isValid();\n },\n locale: {\n getWeekFirstDay: function getWeekFirstDay(locale) {\n return dayjs().locale(parseLocale(locale)).localeData().firstDayOfWeek();\n },\n getWeekFirstDate: function getWeekFirstDate(locale, date) {\n return date.locale(parseLocale(locale)).weekday(0);\n },\n getWeek: function getWeek(locale, date) {\n return date.locale(parseLocale(locale)).week();\n },\n getShortWeekDays: function getShortWeekDays(locale) {\n return dayjs().locale(parseLocale(locale)).localeData().weekdaysMin();\n },\n getShortMonths: function getShortMonths(locale) {\n return dayjs().locale(parseLocale(locale)).localeData().monthsShort();\n },\n format: function format(locale, date, _format) {\n return date.locale(parseLocale(locale)).format(_format);\n },\n parse: function parse(locale, text, formats) {\n var localeStr = parseLocale(locale);\n for (var i = 0; i < formats.length; i += 1) {\n var format = formats[i];\n var formatText = text;\n if (format.includes('wo') || format.includes('Wo')) {\n // parse Wo\n var year = formatText.split('-')[0];\n var weekStr = formatText.split('-')[1];\n var firstWeek = dayjs(year, 'YYYY').startOf('year').locale(localeStr);\n for (var j = 0; j <= 52; j += 1) {\n var nextWeek = firstWeek.add(j, 'week');\n if (nextWeek.format('Wo') === weekStr) {\n return nextWeek;\n }\n }\n parseNoMatchNotice();\n return null;\n }\n var date = dayjs(formatText, format, true).locale(localeStr);\n if (date.isValid()) {\n return date;\n }\n }\n if (text) {\n parseNoMatchNotice();\n }\n return null;\n }\n }\n};\nexport default generateConfig;","export var DECADE_UNIT_DIFF = 10;\nexport var DECADE_DISTANCE_COUNT = DECADE_UNIT_DIFF * 10;","import { DECADE_UNIT_DIFF } from \"../panels/DecadePanel/constant\";\nexport var WEEK_DAY_COUNT = 7;\nexport function isNullEqual(value1, value2) {\n if (!value1 && !value2) {\n return true;\n }\n if (!value1 || !value2) {\n return false;\n }\n return undefined;\n}\nexport function isSameDecade(generateConfig, decade1, decade2) {\n var equal = isNullEqual(decade1, decade2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n var num1 = Math.floor(generateConfig.getYear(decade1) / 10);\n var num2 = Math.floor(generateConfig.getYear(decade2) / 10);\n return num1 === num2;\n}\nexport function isSameYear(generateConfig, year1, year2) {\n var equal = isNullEqual(year1, year2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return generateConfig.getYear(year1) === generateConfig.getYear(year2);\n}\nexport function getQuarter(generateConfig, date) {\n var quota = Math.floor(generateConfig.getMonth(date) / 3);\n return quota + 1;\n}\nexport function isSameQuarter(generateConfig, quarter1, quarter2) {\n var equal = isNullEqual(quarter1, quarter2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return isSameYear(generateConfig, quarter1, quarter2) && getQuarter(generateConfig, quarter1) === getQuarter(generateConfig, quarter2);\n}\nexport function isSameMonth(generateConfig, month1, month2) {\n var equal = isNullEqual(month1, month2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return isSameYear(generateConfig, month1, month2) && generateConfig.getMonth(month1) === generateConfig.getMonth(month2);\n}\nexport function isSameDate(generateConfig, date1, date2) {\n var equal = isNullEqual(date1, date2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return generateConfig.getYear(date1) === generateConfig.getYear(date2) && generateConfig.getMonth(date1) === generateConfig.getMonth(date2) && generateConfig.getDate(date1) === generateConfig.getDate(date2);\n}\nexport function isSameTime(generateConfig, time1, time2) {\n var equal = isNullEqual(time1, time2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return generateConfig.getHour(time1) === generateConfig.getHour(time2) && generateConfig.getMinute(time1) === generateConfig.getMinute(time2) && generateConfig.getSecond(time1) === generateConfig.getSecond(time2);\n}\nexport function isSameWeek(generateConfig, locale, date1, date2) {\n var equal = isNullEqual(date1, date2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return isSameYear(generateConfig, date1, date2) && generateConfig.locale.getWeek(locale, date1) === generateConfig.locale.getWeek(locale, date2);\n}\nexport function isEqual(generateConfig, value1, value2) {\n return isSameDate(generateConfig, value1, value2) && isSameTime(generateConfig, value1, value2);\n}\n\n/** Between in date but not equal of date */\nexport function isInRange(generateConfig, startDate, endDate, current) {\n if (!startDate || !endDate || !current) {\n return false;\n }\n return !isSameDate(generateConfig, startDate, current) && !isSameDate(generateConfig, endDate, current) && generateConfig.isAfter(current, startDate) && generateConfig.isAfter(endDate, current);\n}\nexport function getWeekStartDate(locale, generateConfig, value) {\n var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale);\n var monthStartDate = generateConfig.setDate(value, 1);\n var startDateWeekDay = generateConfig.getWeekDay(monthStartDate);\n var alignStartDate = generateConfig.addDate(monthStartDate, weekFirstDay - startDateWeekDay);\n if (generateConfig.getMonth(alignStartDate) === generateConfig.getMonth(value) && generateConfig.getDate(alignStartDate) > 1) {\n alignStartDate = generateConfig.addDate(alignStartDate, -7);\n }\n return alignStartDate;\n}\nexport function getClosingViewDate(viewDate, picker, generateConfig) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n switch (picker) {\n case 'year':\n return generateConfig.addYear(viewDate, offset * 10);\n case 'quarter':\n case 'month':\n return generateConfig.addYear(viewDate, offset);\n default:\n return generateConfig.addMonth(viewDate, offset);\n }\n}\nexport function formatValue(value, _ref) {\n var generateConfig = _ref.generateConfig,\n locale = _ref.locale,\n format = _ref.format;\n return typeof format === 'function' ? format(value) : generateConfig.locale.format(locale.locale, value, format);\n}\nexport function parseValue(value, _ref2) {\n var generateConfig = _ref2.generateConfig,\n locale = _ref2.locale,\n formatList = _ref2.formatList;\n if (!value || typeof formatList[0] === 'function') {\n return null;\n }\n return generateConfig.locale.parse(locale.locale, value, formatList);\n}\n\n// eslint-disable-next-line consistent-return\nexport function getCellDateDisabled(_ref3) {\n var cellDate = _ref3.cellDate,\n mode = _ref3.mode,\n disabledDate = _ref3.disabledDate,\n generateConfig = _ref3.generateConfig;\n if (!disabledDate) return false;\n // Whether cellDate is disabled in range\n var getDisabledFromRange = function getDisabledFromRange(currentMode, start, end) {\n var current = start;\n while (current <= end) {\n var _date = void 0;\n switch (currentMode) {\n case 'date':\n {\n _date = generateConfig.setDate(cellDate, current);\n if (!disabledDate(_date)) {\n return false;\n }\n break;\n }\n case 'month':\n {\n _date = generateConfig.setMonth(cellDate, current);\n if (!getCellDateDisabled({\n cellDate: _date,\n mode: 'month',\n generateConfig: generateConfig,\n disabledDate: disabledDate\n })) {\n return false;\n }\n break;\n }\n case 'year':\n {\n _date = generateConfig.setYear(cellDate, current);\n if (!getCellDateDisabled({\n cellDate: _date,\n mode: 'year',\n generateConfig: generateConfig,\n disabledDate: disabledDate\n })) {\n return false;\n }\n break;\n }\n }\n current += 1;\n }\n return true;\n };\n switch (mode) {\n case 'date':\n case 'week':\n {\n return disabledDate(cellDate);\n }\n case 'month':\n {\n var startDate = 1;\n var endDate = generateConfig.getDate(generateConfig.getEndDate(cellDate));\n return getDisabledFromRange('date', startDate, endDate);\n }\n case 'quarter':\n {\n var startMonth = Math.floor(generateConfig.getMonth(cellDate) / 3) * 3;\n var endMonth = startMonth + 2;\n return getDisabledFromRange('month', startMonth, endMonth);\n }\n case 'year':\n {\n return getDisabledFromRange('month', 0, 11);\n }\n case 'decade':\n {\n var year = generateConfig.getYear(cellDate);\n var startYear = Math.floor(year / DECADE_UNIT_DIFF) * DECADE_UNIT_DIFF;\n var endYear = startYear + DECADE_UNIT_DIFF - 1;\n return getDisabledFromRange('year', startYear, endYear);\n }\n }\n}","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport shallowEqual from \"rc-util/es/isEqual\";\nimport { formatValue, isEqual } from \"../utils/dateUtil\";\nexport default function useValueTexts(value, _ref) {\n var formatList = _ref.formatList,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale;\n return useMemo(function () {\n if (!value) {\n return [[''], ''];\n }\n\n // We will convert data format back to first format\n var firstValueText = '';\n var fullValueTexts = [];\n for (var i = 0; i < formatList.length; i += 1) {\n var format = formatList[i];\n var formatStr = formatValue(value, {\n generateConfig: generateConfig,\n locale: locale,\n format: format\n });\n fullValueTexts.push(formatStr);\n if (i === 0) {\n firstValueText = formatStr;\n }\n }\n return [fullValueTexts, firstValueText];\n }, [value, formatList, locale], function (prev, next) {\n return (\n // Not Same Date\n !isEqual(generateConfig, prev[0], next[0]) ||\n // Not Same format\n !shallowEqual(prev[1], next[1], true) ||\n // Not Same locale\n !shallowEqual(prev[2], next[2], true)\n );\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport useValueTexts from \"./useValueTexts\";\nexport default function useHoverValue(valueText, _ref) {\n var formatList = _ref.formatList,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale;\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n internalSetValue = _useState2[1];\n var raf = useRef(null);\n function setValue(val) {\n var immediately = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n cancelAnimationFrame(raf.current);\n if (immediately) {\n internalSetValue(val);\n return;\n }\n raf.current = requestAnimationFrame(function () {\n internalSetValue(val);\n });\n }\n var _useValueTexts = useValueTexts(value, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n firstText = _useValueTexts2[1];\n function onEnter(date) {\n setValue(date);\n }\n function onLeave() {\n var immediately = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n setValue(null, immediately);\n }\n useEffect(function () {\n onLeave(true);\n }, [valueText]);\n useEffect(function () {\n return function () {\n return cancelAnimationFrame(raf.current);\n };\n }, []);\n return [firstText, onEnter, onLeave];\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nvar scrollIds = new Map();\n\n/** Trigger when element is visible in view */\nexport function waitElementReady(element, callback) {\n var id;\n function tryOrNextFrame() {\n if (isVisible(element)) {\n callback();\n } else {\n id = raf(function () {\n tryOrNextFrame();\n });\n }\n }\n tryOrNextFrame();\n return function () {\n raf.cancel(id);\n };\n}\n\n/* eslint-disable no-param-reassign */\nexport function scrollTo(element, to, duration) {\n if (scrollIds.get(element)) {\n cancelAnimationFrame(scrollIds.get(element));\n }\n\n // jump to target if duration zero\n if (duration <= 0) {\n scrollIds.set(element, requestAnimationFrame(function () {\n element.scrollTop = to;\n }));\n return;\n }\n var difference = to - element.scrollTop;\n var perTick = difference / duration * 10;\n scrollIds.set(element, requestAnimationFrame(function () {\n element.scrollTop += perTick;\n if (element.scrollTop !== to) {\n scrollTo(element, to, duration - 10);\n }\n }));\n}\n/* eslint-enable */\n\nexport function createKeyDownHandler(event, _ref) {\n var onLeftRight = _ref.onLeftRight,\n onCtrlLeftRight = _ref.onCtrlLeftRight,\n onUpDown = _ref.onUpDown,\n onPageUpDown = _ref.onPageUpDown,\n onEnter = _ref.onEnter;\n var which = event.which,\n ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n switch (which) {\n case KeyCode.LEFT:\n if (ctrlKey || metaKey) {\n if (onCtrlLeftRight) {\n onCtrlLeftRight(-1);\n return true;\n }\n } else if (onLeftRight) {\n onLeftRight(-1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.RIGHT:\n if (ctrlKey || metaKey) {\n if (onCtrlLeftRight) {\n onCtrlLeftRight(1);\n return true;\n }\n } else if (onLeftRight) {\n onLeftRight(1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.UP:\n if (onUpDown) {\n onUpDown(-1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.DOWN:\n if (onUpDown) {\n onUpDown(1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.PAGE_UP:\n if (onPageUpDown) {\n onPageUpDown(-1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.PAGE_DOWN:\n if (onPageUpDown) {\n onPageUpDown(1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.ENTER:\n if (onEnter) {\n onEnter();\n return true;\n }\n /* istanbul ignore next */\n break;\n }\n return false;\n}\n\n// ===================== Format =====================\nexport function getDefaultFormat(format, picker, showTime, use12Hours) {\n var mergedFormat = format;\n if (!mergedFormat) {\n switch (picker) {\n case 'time':\n mergedFormat = use12Hours ? 'hh:mm:ss a' : 'HH:mm:ss';\n break;\n case 'week':\n mergedFormat = 'gggg-wo';\n break;\n case 'month':\n mergedFormat = 'YYYY-MM';\n break;\n case 'quarter':\n mergedFormat = 'YYYY-[Q]Q';\n break;\n case 'year':\n mergedFormat = 'YYYY';\n break;\n default:\n mergedFormat = showTime ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';\n }\n }\n return mergedFormat;\n}\nexport function getInputSize(picker, format, generateConfig) {\n var defaultSize = picker === 'time' ? 8 : 10;\n var length = typeof format === 'function' ? format(generateConfig.getNow()).length : format.length;\n return Math.max(defaultSize, length) + 2;\n}\n\n// ===================== Window =====================\n\nvar globalClickFunc = null;\nvar clickCallbacks = new Set();\nexport function addGlobalMouseDownEvent(callback) {\n if (!globalClickFunc && typeof window !== 'undefined' && window.addEventListener) {\n globalClickFunc = function globalClickFunc(e) {\n // Clone a new list to avoid repeat trigger events\n _toConsumableArray(clickCallbacks).forEach(function (queueFunc) {\n queueFunc(e);\n });\n };\n window.addEventListener('mousedown', globalClickFunc);\n }\n clickCallbacks.add(callback);\n return function () {\n clickCallbacks.delete(callback);\n if (clickCallbacks.size === 0) {\n window.removeEventListener('mousedown', globalClickFunc);\n globalClickFunc = null;\n }\n };\n}\nexport function getTargetFromEvent(e) {\n var target = e.target;\n\n // get target if in shadow dom\n if (e.composed && target.shadowRoot) {\n var _e$composedPath;\n return ((_e$composedPath = e.composedPath) === null || _e$composedPath === void 0 ? void 0 : _e$composedPath.call(e)[0]) || target;\n }\n return target;\n}\n\n// ====================== Mode ======================\nvar getYearNextMode = function getYearNextMode(next) {\n if (next === 'month' || next === 'date') {\n return 'year';\n }\n return next;\n};\nvar getMonthNextMode = function getMonthNextMode(next) {\n if (next === 'date') {\n return 'month';\n }\n return next;\n};\nvar getQuarterNextMode = function getQuarterNextMode(next) {\n if (next === 'month' || next === 'date') {\n return 'quarter';\n }\n return next;\n};\nvar getWeekNextMode = function getWeekNextMode(next) {\n if (next === 'date') {\n return 'week';\n }\n return next;\n};\nexport var PickerModeMap = {\n year: getYearNextMode,\n month: getMonthNextMode,\n quarter: getQuarterNextMode,\n week: getWeekNextMode,\n time: null,\n date: null\n};\nexport function elementsContains(elements, target) {\n return elements.some(function (ele) {\n return ele && ele.contains(target);\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { useEffect, useRef, useState } from 'react';\nimport { addGlobalMouseDownEvent, getTargetFromEvent } from \"../utils/uiUtil\";\nexport default function usePickerInput(_ref) {\n var open = _ref.open,\n value = _ref.value,\n isClickOutside = _ref.isClickOutside,\n triggerOpen = _ref.triggerOpen,\n forwardKeyDown = _ref.forwardKeyDown,\n _onKeyDown = _ref.onKeyDown,\n blurToCancel = _ref.blurToCancel,\n onSubmit = _ref.onSubmit,\n onCancel = _ref.onCancel,\n _onFocus = _ref.onFocus,\n _onBlur = _ref.onBlur,\n changeOnBlur = _ref.changeOnBlur;\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n typing = _useState2[0],\n setTyping = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n focused = _useState4[0],\n setFocused = _useState4[1];\n\n /**\n * We will prevent blur to handle open event when user click outside,\n * since this will repeat trigger `onOpenChange` event.\n */\n var preventBlurRef = useRef(false);\n var valueChangedRef = useRef(false);\n var preventDefaultRef = useRef(false);\n var inputProps = {\n onMouseDown: function onMouseDown() {\n setTyping(true);\n triggerOpen(true);\n },\n onKeyDown: function onKeyDown(e) {\n var preventDefault = function preventDefault() {\n preventDefaultRef.current = true;\n };\n _onKeyDown(e, preventDefault);\n if (preventDefaultRef.current) return;\n switch (e.which) {\n case KeyCode.ENTER:\n {\n if (!open) {\n triggerOpen(true);\n } else if (onSubmit() !== false) {\n setTyping(true);\n }\n e.preventDefault();\n return;\n }\n case KeyCode.TAB:\n {\n if (typing && open && !e.shiftKey) {\n setTyping(false);\n e.preventDefault();\n } else if (!typing && open) {\n if (!forwardKeyDown(e) && e.shiftKey) {\n setTyping(true);\n e.preventDefault();\n }\n }\n return;\n }\n case KeyCode.ESC:\n {\n setTyping(true);\n onCancel();\n return;\n }\n }\n if (!open && ![KeyCode.SHIFT].includes(e.which)) {\n triggerOpen(true);\n } else if (!typing) {\n // Let popup panel handle keyboard\n forwardKeyDown(e);\n }\n },\n onFocus: function onFocus(e) {\n setTyping(true);\n setFocused(true);\n if (_onFocus) {\n _onFocus(e);\n }\n },\n onBlur: function onBlur(e) {\n if (preventBlurRef.current || !isClickOutside(document.activeElement)) {\n preventBlurRef.current = false;\n return;\n }\n if (blurToCancel) {\n setTimeout(function () {\n var _document = document,\n activeElement = _document.activeElement;\n while (activeElement && activeElement.shadowRoot) {\n activeElement = activeElement.shadowRoot.activeElement;\n }\n if (isClickOutside(activeElement)) {\n onCancel();\n }\n }, 0);\n } else if (open) {\n triggerOpen(false);\n if (valueChangedRef.current) {\n onSubmit();\n }\n }\n setFocused(false);\n _onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(e);\n }\n };\n\n // check if value changed\n useEffect(function () {\n valueChangedRef.current = false;\n }, [open]);\n useEffect(function () {\n valueChangedRef.current = true;\n }, [value]);\n\n // Global click handler\n useEffect(function () {\n return addGlobalMouseDownEvent(function (e) {\n var target = getTargetFromEvent(e);\n var clickedOutside = isClickOutside(target);\n if (open) {\n if (!clickedOutside) {\n preventBlurRef.current = true;\n\n // Always set back in case `onBlur` prevented by user\n raf(function () {\n preventBlurRef.current = false;\n });\n } else if (!changeOnBlur && (!focused || clickedOutside)) {\n triggerOpen(false);\n }\n }\n });\n });\n return [inputProps, {\n focused: focused,\n typing: typing\n }];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nexport default function usePresets(presets, legacyRanges) {\n return React.useMemo(function () {\n if (presets) {\n return presets;\n }\n if (legacyRanges) {\n warning(false, '`ranges` is deprecated. Please use `presets` instead.');\n return Object.entries(legacyRanges).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n label = _ref2[0],\n value = _ref2[1];\n return {\n label: label,\n value: value\n };\n });\n }\n return [];\n }, [presets, legacyRanges]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nexport default function useTextValueMapping(_ref) {\n var valueTexts = _ref.valueTexts,\n onTextChange = _ref.onTextChange;\n var _React$useState = React.useState(''),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n text = _React$useState2[0],\n setInnerText = _React$useState2[1];\n var valueTextsRef = React.useRef([]);\n valueTextsRef.current = valueTexts;\n function triggerTextChange(value) {\n setInnerText(value);\n onTextChange(value);\n }\n function resetText() {\n setInnerText(valueTextsRef.current[0]);\n }\n useLayoutEffect(function () {\n if (valueTexts.every(function (valText) {\n return valText !== text;\n })) {\n resetText();\n }\n }, [valueTexts.join('||')]);\n return [text, triggerTextChange, resetText];\n}","import * as React from 'react';\nvar PanelContext = /*#__PURE__*/React.createContext({});\nexport default PanelContext;","import React from 'react';\nexport function useCellRender(_ref) {\n var cellRender = _ref.cellRender,\n monthCellRender = _ref.monthCellRender,\n dateRender = _ref.dateRender;\n var mergedCellRender = React.useMemo(function () {\n if (cellRender) return cellRender;\n if (!monthCellRender && !dateRender) return undefined;\n return function (current, info) {\n var date = current;\n if (dateRender && info.type === 'date') {\n return dateRender(date, info.today);\n }\n if (monthCellRender && info.type === 'month') {\n return monthCellRender(date, info.locale);\n }\n return info.originNode;\n };\n }, [cellRender, monthCellRender, dateRender]);\n return mergedCellRender;\n}","export function leftPad(str, length) {\n var fill = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n var current = String(str);\n while (current.length < length) {\n current = \"\".concat(fill).concat(str);\n }\n return current;\n}\nexport var tuple = function tuple() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args;\n};\nexport function toArray(val) {\n if (val === null || val === undefined) {\n return [];\n }\n return Array.isArray(val) ? val : [val];\n}\nexport function getValue(values, index) {\n return values ? values[index] : null;\n}\nexport function updateValues(values, value, index) {\n var newValues = [getValue(values, 0), getValue(values, 1)];\n newValues[index] = typeof value === 'function' ? value(newValues[index]) : value;\n if (!newValues[0] && !newValues[1]) {\n return null;\n }\n return newValues;\n}\nexport function executeValue(value) {\n return typeof value === 'function' ? value() : value;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isInRange } from \"../utils/dateUtil\";\nimport { getValue } from \"../utils/miscUtil\";\nexport default function useCellClassName(_ref) {\n var cellPrefixCls = _ref.cellPrefixCls,\n generateConfig = _ref.generateConfig,\n rangedValue = _ref.rangedValue,\n hoverRangedValue = _ref.hoverRangedValue,\n isInView = _ref.isInView,\n isSameCell = _ref.isSameCell,\n offsetCell = _ref.offsetCell,\n today = _ref.today,\n value = _ref.value;\n function getClassName(currentDate) {\n var _ref2;\n var prevDate = offsetCell(currentDate, -1);\n var nextDate = offsetCell(currentDate, 1);\n var rangeStart = getValue(rangedValue, 0);\n var rangeEnd = getValue(rangedValue, 1);\n var hoverStart = getValue(hoverRangedValue, 0);\n var hoverEnd = getValue(hoverRangedValue, 1);\n var isRangeHovered = isInRange(generateConfig, hoverStart, hoverEnd, currentDate);\n function isRangeStart(date) {\n return isSameCell(rangeStart, date);\n }\n function isRangeEnd(date) {\n return isSameCell(rangeEnd, date);\n }\n var isHoverStart = isSameCell(hoverStart, currentDate);\n var isHoverEnd = isSameCell(hoverEnd, currentDate);\n var isHoverEdgeStart = (isRangeHovered || isHoverEnd) && (!isInView(prevDate) || isRangeEnd(prevDate));\n var isHoverEdgeEnd = (isRangeHovered || isHoverStart) && (!isInView(nextDate) || isRangeStart(nextDate));\n return _ref2 = {}, _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-in-view\"), isInView(currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-in-range\"), isInRange(generateConfig, rangeStart, rangeEnd, currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-start\"), isRangeStart(currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-end\"), isRangeEnd(currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-start-single\"), isRangeStart(currentDate) && !rangeEnd), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-end-single\"), isRangeEnd(currentDate) && !rangeStart), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-start-near-hover\"), isRangeStart(currentDate) && (isSameCell(prevDate, hoverStart) || isInRange(generateConfig, hoverStart, hoverEnd, prevDate))), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-end-near-hover\"), isRangeEnd(currentDate) && (isSameCell(nextDate, hoverEnd) || isInRange(generateConfig, hoverStart, hoverEnd, nextDate))), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover\"), isRangeHovered), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-start\"), isHoverStart), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-end\"), isHoverEnd), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-start\"), isHoverEdgeStart), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-end\"), isHoverEdgeEnd), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-start-near-range\"), isHoverEdgeStart && isSameCell(prevDate, rangeEnd)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-end-near-range\"), isHoverEdgeEnd && isSameCell(nextDate, rangeStart)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-today\"), isSameCell(today, currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-selected\"), isSameCell(value, currentDate)), _ref2;\n }\n return getClassName;\n}","import * as React from 'react';\nvar RangeContext = /*#__PURE__*/React.createContext({});\nexport default RangeContext;","export function setTime(generateConfig, date, hour, minute, second) {\n var nextTime = generateConfig.setHour(date, hour);\n nextTime = generateConfig.setMinute(nextTime, minute);\n nextTime = generateConfig.setSecond(nextTime, second);\n return nextTime;\n}\nexport function setDateTime(generateConfig, date, defaultDate) {\n if (!defaultDate) {\n return date;\n }\n var newDate = date;\n newDate = generateConfig.setHour(newDate, generateConfig.getHour(defaultDate));\n newDate = generateConfig.setMinute(newDate, generateConfig.getMinute(defaultDate));\n newDate = generateConfig.setSecond(newDate, generateConfig.getSecond(defaultDate));\n return newDate;\n}\nexport function getLowerBoundTime(hour, minute, second, hourStep, minuteStep, secondStep) {\n var lowerBoundHour = Math.floor(hour / hourStep) * hourStep;\n if (lowerBoundHour < hour) {\n return [lowerBoundHour, 60 - minuteStep, 60 - secondStep];\n }\n var lowerBoundMinute = Math.floor(minute / minuteStep) * minuteStep;\n if (lowerBoundMinute < minute) {\n return [lowerBoundHour, lowerBoundMinute, 60 - secondStep];\n }\n var lowerBoundSecond = Math.floor(second / secondStep) * secondStep;\n return [lowerBoundHour, lowerBoundMinute, lowerBoundSecond];\n}\nexport function getLastDay(generateConfig, date) {\n var year = generateConfig.getYear(date);\n var month = generateConfig.getMonth(date) + 1;\n var endDate = generateConfig.getEndDate(generateConfig.getFixedDate(\"\".concat(year, \"-\").concat(month, \"-01\")));\n var lastDay = generateConfig.getDate(endDate);\n var monthShow = month < 10 ? \"0\".concat(month) : \"\".concat(month);\n return \"\".concat(year, \"-\").concat(monthShow, \"-\").concat(lastDay);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport PanelContext from \"../PanelContext\";\nimport { getCellDateDisabled } from \"../utils/dateUtil\";\nimport { getLastDay } from \"../utils/timeUtil\";\nexport default function PanelBody(_ref) {\n var prefixCls = _ref.prefixCls,\n disabledDate = _ref.disabledDate,\n onSelect = _ref.onSelect,\n picker = _ref.picker,\n rowNum = _ref.rowNum,\n colNum = _ref.colNum,\n prefixColumn = _ref.prefixColumn,\n rowClassName = _ref.rowClassName,\n baseDate = _ref.baseDate,\n getCellClassName = _ref.getCellClassName,\n getCellText = _ref.getCellText,\n getCellNode = _ref.getCellNode,\n getCellDate = _ref.getCellDate,\n generateConfig = _ref.generateConfig,\n titleCell = _ref.titleCell,\n headerCells = _ref.headerCells;\n var _React$useContext = React.useContext(PanelContext),\n onDateMouseEnter = _React$useContext.onDateMouseEnter,\n onDateMouseLeave = _React$useContext.onDateMouseLeave,\n mode = _React$useContext.mode;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n\n // =============================== Body ===============================\n var rows = [];\n for (var i = 0; i < rowNum; i += 1) {\n var row = [];\n var rowStartDate = void 0;\n var _loop = function _loop() {\n var _objectSpread2;\n var offset = i * colNum + j;\n var currentDate = getCellDate(baseDate, offset);\n var disabled = getCellDateDisabled({\n cellDate: currentDate,\n mode: mode,\n disabledDate: disabledDate,\n generateConfig: generateConfig\n });\n if (j === 0) {\n rowStartDate = currentDate;\n if (prefixColumn) {\n row.push(prefixColumn(rowStartDate));\n }\n }\n var title = titleCell && titleCell(currentDate);\n var inner = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, getCellText(currentDate));\n row.push( /*#__PURE__*/React.createElement(\"td\", {\n key: j,\n title: title,\n className: classNames(cellPrefixCls, _objectSpread((_objectSpread2 = {}, _defineProperty(_objectSpread2, \"\".concat(cellPrefixCls, \"-disabled\"), disabled), _defineProperty(_objectSpread2, \"\".concat(cellPrefixCls, \"-start\"), getCellText(currentDate) === 1 || picker === 'year' && Number(title) % 10 === 0), _defineProperty(_objectSpread2, \"\".concat(cellPrefixCls, \"-end\"), title === getLastDay(generateConfig, currentDate) || picker === 'year' && Number(title) % 10 === 9), _objectSpread2), getCellClassName(currentDate))),\n onClick: function onClick() {\n if (!disabled) {\n onSelect(currentDate);\n }\n },\n onMouseEnter: function onMouseEnter() {\n if (!disabled && onDateMouseEnter) {\n onDateMouseEnter(currentDate);\n }\n },\n onMouseLeave: function onMouseLeave() {\n if (!disabled && onDateMouseLeave) {\n onDateMouseLeave(currentDate);\n }\n }\n }, getCellNode ? getCellNode(currentDate, inner) : inner));\n };\n for (var j = 0; j < colNum; j += 1) {\n _loop();\n }\n rows.push( /*#__PURE__*/React.createElement(\"tr\", {\n key: i,\n className: rowClassName && rowClassName(rowStartDate)\n }, row));\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\")\n }, /*#__PURE__*/React.createElement(\"table\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, headerCells && /*#__PURE__*/React.createElement(\"thead\", null, /*#__PURE__*/React.createElement(\"tr\", null, headerCells)), /*#__PURE__*/React.createElement(\"tbody\", null, rows)));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useCellClassName from \"../../hooks/useCellClassName\";\nimport RangeContext from \"../../RangeContext\";\nimport { formatValue, getWeekStartDate, isSameDate, isSameMonth, WEEK_DAY_COUNT } from \"../../utils/dateUtil\";\nimport PanelBody from \"../PanelBody\";\nfunction DateBody(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n prefixColumn = props.prefixColumn,\n locale = props.locale,\n rowCount = props.rowCount,\n viewDate = props.viewDate,\n value = props.value,\n cellRender = props.cellRender,\n isSameCell = props.isSameCell;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var baseDate = getWeekStartDate(locale.locale, generateConfig, viewDate);\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale.locale);\n var today = generateConfig.getNow();\n\n // ============================== Header ==============================\n var headerCells = [];\n var weekDaysLocale = locale.shortWeekDays || (generateConfig.locale.getShortWeekDays ? generateConfig.locale.getShortWeekDays(locale.locale) : []);\n if (prefixColumn) {\n headerCells.push( /*#__PURE__*/React.createElement(\"th\", {\n key: \"empty\",\n \"aria-label\": \"empty cell\"\n }));\n }\n for (var i = 0; i < WEEK_DAY_COUNT; i += 1) {\n headerCells.push( /*#__PURE__*/React.createElement(\"th\", {\n key: i\n }, weekDaysLocale[(i + weekFirstDay) % WEEK_DAY_COUNT]));\n }\n\n // =============================== Body ===============================\n var getCellClassName = useCellClassName({\n cellPrefixCls: cellPrefixCls,\n today: today,\n value: value,\n generateConfig: generateConfig,\n rangedValue: prefixColumn ? null : rangedValue,\n hoverRangedValue: prefixColumn ? null : hoverRangedValue,\n isSameCell: isSameCell || function (current, target) {\n return isSameDate(generateConfig, current, target);\n },\n isInView: function isInView(date) {\n return isSameMonth(generateConfig, date, viewDate);\n },\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addDate(date, offset);\n }\n });\n var getCellNode = cellRender ? function (date, wrapperNode) {\n return cellRender(date, {\n originNode: wrapperNode,\n today: today,\n type: 'date',\n locale: locale\n });\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: rowCount,\n colNum: WEEK_DAY_COUNT,\n baseDate: baseDate,\n getCellNode: getCellNode,\n getCellText: generateConfig.getDate,\n getCellClassName: getCellClassName,\n getCellDate: generateConfig.addDate,\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY-MM-DD',\n generateConfig: generateConfig\n });\n },\n headerCells: headerCells\n }));\n}\nexport default DateBody;","import * as React from 'react';\nimport PanelContext from \"../PanelContext\";\nvar HIDDEN_STYLE = {\n visibility: 'hidden'\n};\nfunction Header(_ref) {\n var prefixCls = _ref.prefixCls,\n _ref$prevIcon = _ref.prevIcon,\n prevIcon = _ref$prevIcon === void 0 ? \"\\u2039\" : _ref$prevIcon,\n _ref$nextIcon = _ref.nextIcon,\n nextIcon = _ref$nextIcon === void 0 ? \"\\u203A\" : _ref$nextIcon,\n _ref$superPrevIcon = _ref.superPrevIcon,\n superPrevIcon = _ref$superPrevIcon === void 0 ? \"\\xAB\" : _ref$superPrevIcon,\n _ref$superNextIcon = _ref.superNextIcon,\n superNextIcon = _ref$superNextIcon === void 0 ? \"\\xBB\" : _ref$superNextIcon,\n onSuperPrev = _ref.onSuperPrev,\n onSuperNext = _ref.onSuperNext,\n onPrev = _ref.onPrev,\n onNext = _ref.onNext,\n children = _ref.children;\n var _React$useContext = React.useContext(PanelContext),\n hideNextBtn = _React$useContext.hideNextBtn,\n hidePrevBtn = _React$useContext.hidePrevBtn;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: prefixCls\n }, onSuperPrev && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onSuperPrev,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-super-prev-btn\"),\n style: hidePrevBtn ? HIDDEN_STYLE : {}\n }, superPrevIcon), onPrev && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onPrev,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-prev-btn\"),\n style: hidePrevBtn ? HIDDEN_STYLE : {}\n }, prevIcon), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-view\")\n }, children), onNext && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onNext,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-next-btn\"),\n style: hideNextBtn ? HIDDEN_STYLE : {}\n }, nextIcon), onSuperNext && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onSuperNext,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-super-next-btn\"),\n style: hideNextBtn ? HIDDEN_STYLE : {}\n }, superNextIcon));\n}\nexport default Header;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from \"../Header\";\nimport PanelContext from \"../../PanelContext\";\nimport { formatValue } from \"../../utils/dateUtil\";\nfunction DateHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n viewDate = props.viewDate,\n onNextMonth = props.onNextMonth,\n onPrevMonth = props.onPrevMonth,\n onNextYear = props.onNextYear,\n onPrevYear = props.onPrevYear,\n onYearClick = props.onYearClick,\n onMonthClick = props.onMonthClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);\n var month = generateConfig.getMonth(viewDate);\n\n // =================== Month & Year ===================\n var yearNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"year\",\n onClick: onYearClick,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(viewDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }));\n var monthNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"month\",\n onClick: onMonthClick,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-month-btn\")\n }, locale.monthFormat ? formatValue(viewDate, {\n locale: locale,\n format: locale.monthFormat,\n generateConfig: generateConfig\n }) : monthsLocale[month]);\n var monthYearNodes = locale.monthBeforeYear ? [monthNode, yearNode] : [yearNode, monthNode];\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevYear,\n onPrev: onPrevMonth,\n onNext: onNextMonth,\n onSuperNext: onNextYear\n }), monthYearNodes);\n}\nexport default DateHeader;","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 classNames from 'classnames';\nimport * as React from 'react';\nimport { WEEK_DAY_COUNT } from \"../../utils/dateUtil\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\nimport DateBody from \"./DateBody\";\nimport DateHeader from \"./DateHeader\";\nvar DATE_ROW_COUNT = 6;\nfunction DatePanel(props) {\n var prefixCls = props.prefixCls,\n _props$panelName = props.panelName,\n panelName = _props$panelName === void 0 ? 'date' : _props$panelName,\n keyboardConfig = props.keyboardConfig,\n active = props.active,\n operationRef = props.operationRef,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n onViewDateChange = props.onViewDateChange,\n onPanelChange = props.onPanelChange,\n _onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-\").concat(panelName, \"-panel\");\n\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, _objectSpread({\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addDate(value || viewDate, diff), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addDate(value || viewDate, diff * WEEK_DAY_COUNT), 'key');\n },\n onPageUpDown: function onPageUpDown(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');\n }\n }, keyboardConfig));\n }\n };\n\n // ==================== View Operation ====================\n var onYearChange = function onYearChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n var onMonthChange = function onMonthChange(diff) {\n var newDate = generateConfig.addMonth(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, _defineProperty({}, \"\".concat(panelPrefixCls, \"-active\"), active))\n }, /*#__PURE__*/React.createElement(DateHeader, _extends({}, props, {\n prefixCls: prefixCls,\n value: value,\n viewDate: viewDate\n // View Operation\n ,\n onPrevYear: function onPrevYear() {\n onYearChange(-1);\n },\n onNextYear: function onNextYear() {\n onYearChange(1);\n },\n onPrevMonth: function onPrevMonth() {\n onMonthChange(-1);\n },\n onNextMonth: function onNextMonth() {\n onMonthChange(1);\n },\n onMonthClick: function onMonthClick() {\n onPanelChange('month', viewDate);\n },\n onYearClick: function onYearClick() {\n onPanelChange('year', viewDate);\n }\n })), /*#__PURE__*/React.createElement(DateBody, _extends({}, props, {\n onSelect: function onSelect(date) {\n return _onSelect(date, 'mouse');\n },\n prefixCls: prefixCls,\n value: value,\n viewDate: viewDate,\n rowCount: DATE_ROW_COUNT\n })));\n}\nexport default DatePanel;","import * as React from 'react';\nimport Header from \"../Header\";\nimport PanelContext from \"../../PanelContext\";\nimport { formatValue } from \"../../utils/dateUtil\";\nfunction TimeHeader(props) {\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n value = props.value,\n format = props.format;\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n return /*#__PURE__*/React.createElement(Header, {\n prefixCls: headerPrefixCls\n }, value ? formatValue(value, {\n locale: locale,\n format: format,\n generateConfig: generateConfig\n }) : \"\\xA0\");\n}\nexport default TimeHeader;","import { setTime as utilSetTime } from \"../utils/timeUtil\";\nexport default function useTimeSelection(_ref) {\n var value = _ref.value,\n generateConfig = _ref.generateConfig,\n disabledMinutes = _ref.disabledMinutes,\n disabledSeconds = _ref.disabledSeconds,\n minutes = _ref.minutes,\n seconds = _ref.seconds,\n use12Hours = _ref.use12Hours;\n var setTime = function setTime(isNewPM, newHour, newMinute, newSecond) {\n var newDate = value || generateConfig.getNow();\n var mergedHour = Math.max(0, newHour);\n var mergedMinute = Math.max(0, newMinute);\n var mergedSecond = Math.max(0, newSecond);\n var newDisabledMinutes = disabledMinutes && disabledMinutes(mergedHour);\n if (newDisabledMinutes !== null && newDisabledMinutes !== void 0 && newDisabledMinutes.includes(mergedMinute)) {\n // find the first available minute in minutes\n var availableMinute = minutes.find(function (i) {\n return !newDisabledMinutes.includes(i.value);\n });\n if (availableMinute) {\n mergedMinute = availableMinute.value;\n } else {\n return null;\n }\n }\n var newDisabledSeconds = disabledSeconds && disabledSeconds(mergedHour, mergedMinute);\n if (newDisabledSeconds !== null && newDisabledSeconds !== void 0 && newDisabledSeconds.includes(mergedSecond)) {\n // find the first available second in seconds\n var availableSecond = seconds.find(function (i) {\n return !newDisabledSeconds.includes(i.value);\n });\n if (availableSecond) {\n mergedSecond = availableSecond.value;\n } else {\n return null;\n }\n }\n newDate = utilSetTime(generateConfig, newDate, !use12Hours || !isNewPM ? mergedHour : mergedHour + 12, mergedMinute, mergedSecond);\n return newDate;\n };\n return setTime;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport { useRef, useLayoutEffect } from 'react';\nimport classNames from 'classnames';\nimport { scrollTo, waitElementReady } from \"../../utils/uiUtil\";\nimport PanelContext from \"../../PanelContext\";\nfunction TimeUnitColumn(props) {\n var prefixCls = props.prefixCls,\n units = props.units,\n onSelect = props.onSelect,\n value = props.value,\n active = props.active,\n hideDisabledOptions = props.hideDisabledOptions,\n info = props.info,\n type = props.type;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var _React$useContext = React.useContext(PanelContext),\n open = _React$useContext.open;\n var ulRef = useRef(null);\n var liRefs = useRef(new Map());\n var scrollRef = useRef();\n\n // `useLayoutEffect` here to avoid blink by duration is 0\n useLayoutEffect(function () {\n var li = liRefs.current.get(value);\n if (li && open !== false) {\n scrollTo(ulRef.current, li.offsetTop, 120);\n }\n }, [value]);\n useLayoutEffect(function () {\n if (open) {\n var li = liRefs.current.get(value);\n if (li) {\n scrollRef.current = waitElementReady(li, function () {\n scrollTo(ulRef.current, li.offsetTop, 0);\n });\n }\n }\n return function () {\n var _scrollRef$current;\n (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.call(scrollRef);\n };\n }, [open]);\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: classNames(\"\".concat(prefixCls, \"-column\"), _defineProperty({}, \"\".concat(prefixCls, \"-column-active\"), active)),\n ref: ulRef,\n style: {\n position: 'relative'\n }\n }, units.map(function (unit) {\n var _classNames2;\n if (hideDisabledOptions && unit.disabled) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n key: unit.value,\n ref: function ref(element) {\n liRefs.current.set(unit.value, element);\n },\n className: classNames(cellPrefixCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(cellPrefixCls, \"-disabled\"), unit.disabled), _defineProperty(_classNames2, \"\".concat(cellPrefixCls, \"-selected\"), value === unit.value), _classNames2)),\n onClick: function onClick() {\n if (unit.disabled) {\n return;\n }\n onSelect(unit.value);\n }\n }, info.cellRender ? info.cellRender(unit.value, {\n today: info.today,\n locale: info.locale,\n originNode: /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, unit.label),\n type: 'time',\n subType: type\n }) : /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, unit.label));\n }));\n}\nexport default TimeUnitColumn;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport * as React from 'react';\nimport useTimeSelection from \"../../hooks/useTimeSelection\";\nimport { leftPad } from \"../../utils/miscUtil\";\nimport TimeUnitColumn from \"./TimeUnitColumn\";\nfunction shouldUnitsUpdate(prevUnits, nextUnits) {\n if (prevUnits.length !== nextUnits.length) return true;\n // if any unit's disabled status is different, the units should be re-evaluted\n for (var i = 0; i < prevUnits.length; i += 1) {\n if (prevUnits[i].disabled !== nextUnits[i].disabled) return true;\n }\n return false;\n}\nfunction generateUnits(start, end, step, disabledUnits) {\n var units = [];\n var integerStep = step >= 1 ? step | 0 : 1;\n for (var i = start; i <= end; i += integerStep) {\n units.push({\n label: leftPad(i, 2),\n value: i,\n disabled: (disabledUnits || []).includes(i)\n });\n }\n return units;\n}\nfunction TimeBody(props) {\n var generateConfig = props.generateConfig,\n prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n activeColumnIndex = props.activeColumnIndex,\n value = props.value,\n showHour = props.showHour,\n showMinute = props.showMinute,\n showSecond = props.showSecond,\n use12Hours = props.use12Hours,\n _props$hourStep = props.hourStep,\n hourStep = _props$hourStep === void 0 ? 1 : _props$hourStep,\n _props$minuteStep = props.minuteStep,\n minuteStep = _props$minuteStep === void 0 ? 1 : _props$minuteStep,\n _props$secondStep = props.secondStep,\n secondStep = _props$secondStep === void 0 ? 1 : _props$secondStep,\n disabledHours = props.disabledHours,\n disabledMinutes = props.disabledMinutes,\n disabledSeconds = props.disabledSeconds,\n disabledTime = props.disabledTime,\n hideDisabledOptions = props.hideDisabledOptions,\n onSelect = props.onSelect,\n cellRender = props.cellRender,\n locale = props.locale;\n\n // Misc\n var columns = [];\n var contentPrefixCls = \"\".concat(prefixCls, \"-content\");\n var columnPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n var isPM;\n var originHour = value ? generateConfig.getHour(value) : -1;\n var hour = originHour;\n var minute = value ? generateConfig.getMinute(value) : -1;\n var second = value ? generateConfig.getSecond(value) : -1;\n\n // Disabled Time\n var now = generateConfig.getNow();\n var _React$useMemo = React.useMemo(function () {\n if (disabledTime) {\n var disabledConfig = disabledTime(now);\n return [disabledConfig.disabledHours, disabledConfig.disabledMinutes, disabledConfig.disabledSeconds];\n }\n return [disabledHours, disabledMinutes, disabledSeconds];\n }, [disabledHours, disabledMinutes, disabledSeconds, disabledTime, now]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 3),\n mergedDisabledHours = _React$useMemo2[0],\n mergedDisabledMinutes = _React$useMemo2[1],\n mergedDisabledSeconds = _React$useMemo2[2];\n\n // ========================= Unit =========================\n var rawHours = generateUnits(0, 23, hourStep, mergedDisabledHours && mergedDisabledHours());\n var memorizedRawHours = useMemo(function () {\n return rawHours;\n }, rawHours, shouldUnitsUpdate);\n\n // Should additional logic to handle 12 hours\n if (use12Hours) {\n isPM = hour >= 12; // -1 means should display AM\n hour %= 12;\n }\n var _React$useMemo3 = React.useMemo(function () {\n if (!use12Hours) {\n return [false, false];\n }\n var AMPMDisabled = [true, true];\n memorizedRawHours.forEach(function (_ref) {\n var disabled = _ref.disabled,\n hourValue = _ref.value;\n if (disabled) return;\n if (hourValue >= 12) {\n AMPMDisabled[1] = false;\n } else {\n AMPMDisabled[0] = false;\n }\n });\n return AMPMDisabled;\n }, [use12Hours, memorizedRawHours]),\n _React$useMemo4 = _slicedToArray(_React$useMemo3, 2),\n AMDisabled = _React$useMemo4[0],\n PMDisabled = _React$useMemo4[1];\n var hours = React.useMemo(function () {\n if (!use12Hours) return memorizedRawHours;\n return memorizedRawHours.filter(isPM ? function (hourMeta) {\n return hourMeta.value >= 12;\n } : function (hourMeta) {\n return hourMeta.value < 12;\n }).map(function (hourMeta) {\n var hourValue = hourMeta.value % 12;\n var hourLabel = hourValue === 0 ? '12' : leftPad(hourValue, 2);\n return _objectSpread(_objectSpread({}, hourMeta), {}, {\n label: hourLabel,\n value: hourValue\n });\n });\n }, [use12Hours, isPM, memorizedRawHours]);\n var minutes = generateUnits(0, 59, minuteStep, mergedDisabledMinutes && mergedDisabledMinutes(originHour));\n var seconds = generateUnits(0, 59, secondStep, mergedDisabledSeconds && mergedDisabledSeconds(originHour, minute));\n\n // Set Time\n var setTime = useTimeSelection({\n value: value,\n generateConfig: generateConfig,\n disabledMinutes: mergedDisabledMinutes,\n disabledSeconds: mergedDisabledSeconds,\n minutes: minutes,\n seconds: seconds,\n use12Hours: use12Hours\n });\n\n // ====================== Operations ======================\n operationRef.current = {\n onUpDown: function onUpDown(diff) {\n var column = columns[activeColumnIndex];\n if (column) {\n var valueIndex = column.units.findIndex(function (unit) {\n return unit.value === column.value;\n });\n var unitLen = column.units.length;\n for (var i = 1; i < unitLen; i += 1) {\n var nextUnit = column.units[(valueIndex + diff * i + unitLen) % unitLen];\n if (nextUnit.disabled !== true) {\n column.onSelect(nextUnit.value);\n break;\n }\n }\n }\n }\n };\n\n // ======================== Render ========================\n function addColumnNode(condition, node, columnValue, units, onColumnSelect) {\n if (condition !== false) {\n columns.push({\n node: /*#__PURE__*/React.cloneElement(node, {\n prefixCls: columnPrefixCls,\n value: columnValue,\n active: activeColumnIndex === columns.length,\n onSelect: onColumnSelect,\n units: units,\n hideDisabledOptions: hideDisabledOptions\n }),\n onSelect: onColumnSelect,\n value: columnValue,\n units: units\n });\n }\n }\n\n // Hour\n addColumnNode(showHour, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"hour\",\n type: \"hour\",\n info: {\n today: now,\n locale: locale,\n cellRender: cellRender\n }\n }), hour, hours, function (num) {\n onSelect(setTime(isPM, num, minute, second), 'mouse');\n });\n\n // Minute\n addColumnNode(showMinute, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"minute\",\n type: \"minute\",\n info: {\n today: now,\n locale: locale,\n cellRender: cellRender\n }\n }), minute, minutes, function (num) {\n onSelect(setTime(isPM, hour, num, second), 'mouse');\n });\n\n // Second\n addColumnNode(showSecond, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"second\",\n type: \"second\",\n info: {\n today: now,\n locale: locale,\n cellRender: cellRender\n }\n }), second, seconds, function (num) {\n onSelect(setTime(isPM, hour, minute, num), 'mouse');\n });\n\n // 12 Hours\n var PMIndex = -1;\n if (typeof isPM === 'boolean') {\n PMIndex = isPM ? 1 : 0;\n }\n addColumnNode(use12Hours === true, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"meridiem\",\n type: \"meridiem\",\n info: {\n today: now,\n locale: locale,\n cellRender: cellRender\n }\n }), PMIndex, [{\n label: 'AM',\n value: 0,\n disabled: AMDisabled\n }, {\n label: 'PM',\n value: 1,\n disabled: PMDisabled\n }], function (num) {\n onSelect(setTime(!!num, hour, minute, second), 'mouse');\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: contentPrefixCls\n }, columns.map(function (_ref2) {\n var node = _ref2.node;\n return node;\n }));\n}\nexport default TimeBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport TimeHeader from \"./TimeHeader\";\nimport TimeBody from \"./TimeBody\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\nvar countBoolean = function countBoolean(boolList) {\n return boolList.filter(function (bool) {\n return bool !== false;\n }).length;\n};\nfunction TimePanel(props) {\n var generateConfig = props.generateConfig,\n _props$format = props.format,\n format = _props$format === void 0 ? 'HH:mm:ss' : _props$format,\n prefixCls = props.prefixCls,\n active = props.active,\n operationRef = props.operationRef,\n showHour = props.showHour,\n showMinute = props.showMinute,\n showSecond = props.showSecond,\n _props$use12Hours = props.use12Hours,\n use12Hours = _props$use12Hours === void 0 ? false : _props$use12Hours,\n onSelect = props.onSelect,\n value = props.value;\n var panelPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n var bodyOperationRef = React.useRef();\n\n // ======================= Keyboard =======================\n var _React$useState = React.useState(-1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeColumnIndex = _React$useState2[0],\n setActiveColumnIndex = _React$useState2[1];\n var columnsCount = countBoolean([showHour, showMinute, showSecond, use12Hours]);\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n setActiveColumnIndex((activeColumnIndex + diff + columnsCount) % columnsCount);\n },\n onUpDown: function onUpDown(diff) {\n if (activeColumnIndex === -1) {\n setActiveColumnIndex(0);\n } else if (bodyOperationRef.current) {\n bodyOperationRef.current.onUpDown(diff);\n }\n },\n onEnter: function onEnter() {\n onSelect(value || generateConfig.getNow(), 'key');\n setActiveColumnIndex(-1);\n }\n });\n },\n onBlur: function onBlur() {\n setActiveColumnIndex(-1);\n }\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, _defineProperty({}, \"\".concat(panelPrefixCls, \"-active\"), active))\n }, /*#__PURE__*/React.createElement(TimeHeader, _extends({}, props, {\n format: format,\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(TimeBody, _extends({}, props, {\n prefixCls: prefixCls,\n activeColumnIndex: activeColumnIndex,\n operationRef: bodyOperationRef\n })));\n}\nexport default TimePanel;","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 _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { tuple } from \"../../utils/miscUtil\";\nimport { setDateTime as setTime } from \"../../utils/timeUtil\";\nimport DatePanel from \"../DatePanel\";\nimport TimePanel from \"../TimePanel\";\nvar ACTIVE_PANEL = tuple('date', 'time');\nfunction DatetimePanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n generateConfig = props.generateConfig,\n value = props.value,\n defaultValue = props.defaultValue,\n disabledTime = props.disabledTime,\n showTime = props.showTime,\n onSelect = props.onSelect,\n cellRender = props.cellRender;\n var panelPrefixCls = \"\".concat(prefixCls, \"-datetime-panel\");\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activePanel = _React$useState2[0],\n setActivePanel = _React$useState2[1];\n var dateOperationRef = React.useRef({});\n var timeOperationRef = React.useRef({});\n var timeProps = _typeof(showTime) === 'object' ? _objectSpread({}, showTime) : {};\n\n // ======================= Keyboard =======================\n function getNextActive(offset) {\n var activeIndex = ACTIVE_PANEL.indexOf(activePanel) + offset;\n var nextActivePanel = ACTIVE_PANEL[activeIndex] || null;\n return nextActivePanel;\n }\n var onBlur = function onBlur(e) {\n if (timeOperationRef.current.onBlur) {\n timeOperationRef.current.onBlur(e);\n }\n setActivePanel(null);\n };\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n // Switch active panel\n if (event.which === KeyCode.TAB) {\n var nextActivePanel = getNextActive(event.shiftKey ? -1 : 1);\n setActivePanel(nextActivePanel);\n if (nextActivePanel) {\n event.preventDefault();\n }\n return true;\n }\n\n // Operate on current active panel\n if (activePanel) {\n var ref = activePanel === 'date' ? dateOperationRef : timeOperationRef;\n if (ref.current && ref.current.onKeyDown) {\n ref.current.onKeyDown(event);\n }\n return true;\n }\n\n // Switch first active panel if operate without panel\n if ([KeyCode.LEFT, KeyCode.RIGHT, KeyCode.UP, KeyCode.DOWN].includes(event.which)) {\n setActivePanel('date');\n return true;\n }\n return false;\n },\n onBlur: onBlur,\n onClose: onBlur\n };\n\n // ======================== Events ========================\n var onInternalSelect = function onInternalSelect(date, source) {\n var selectedDate = date;\n if (source === 'date' && !value && timeProps.defaultValue) {\n // Date with time defaultValue\n selectedDate = generateConfig.setHour(selectedDate, generateConfig.getHour(timeProps.defaultValue));\n selectedDate = generateConfig.setMinute(selectedDate, generateConfig.getMinute(timeProps.defaultValue));\n selectedDate = generateConfig.setSecond(selectedDate, generateConfig.getSecond(timeProps.defaultValue));\n } else if (source === 'time' && !value && defaultValue) {\n selectedDate = generateConfig.setYear(selectedDate, generateConfig.getYear(defaultValue));\n selectedDate = generateConfig.setMonth(selectedDate, generateConfig.getMonth(defaultValue));\n selectedDate = generateConfig.setDate(selectedDate, generateConfig.getDate(defaultValue));\n }\n if (onSelect) {\n onSelect(selectedDate, 'mouse');\n }\n };\n\n // ======================== Render ========================\n var disabledTimes = disabledTime ? disabledTime(value || null) : {};\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, _defineProperty({}, \"\".concat(panelPrefixCls, \"-active\"), activePanel))\n }, /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {\n cellRender: cellRender,\n operationRef: dateOperationRef,\n active: activePanel === 'date',\n onSelect: function onSelect(date) {\n onInternalSelect(setTime(generateConfig, date, !value && _typeof(showTime) === 'object' ? showTime.defaultValue : null), 'date');\n }\n })), /*#__PURE__*/React.createElement(TimePanel, _extends({}, props, {\n cellRender: cellRender ? function (current, info) {\n return cellRender(current, _objectSpread(_objectSpread({}, info), {}, {\n type: 'time'\n }));\n } : undefined,\n format: undefined\n }, timeProps, disabledTimes, {\n disabledTime: null,\n defaultValue: undefined,\n operationRef: timeOperationRef,\n active: activePanel === 'time',\n onSelect: function onSelect(date) {\n onInternalSelect(date, 'time');\n }\n })));\n}\nexport default DatetimePanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from \"../Header\";\nimport { DECADE_DISTANCE_COUNT } from \"./constant\";\nimport PanelContext from \"../../PanelContext\";\nfunction DecadeHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n viewDate = props.viewDate,\n onPrevDecades = props.onPrevDecades,\n onNextDecades = props.onNextDecades;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var yearNumber = generateConfig.getYear(viewDate);\n var startYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;\n var endYear = startYear + DECADE_DISTANCE_COUNT - 1;\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevDecades,\n onSuperNext: onNextDecades\n }), startYear, \"-\", endYear);\n}\nexport default DecadeHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport { DECADE_DISTANCE_COUNT, DECADE_UNIT_DIFF } from \"./constant\";\nimport PanelBody from \"../PanelBody\";\nexport var DECADE_COL_COUNT = 3;\nvar DECADE_ROW_COUNT = 4;\nfunction DecadeBody(props) {\n var DECADE_UNIT_DIFF_DES = DECADE_UNIT_DIFF - 1;\n var prefixCls = props.prefixCls,\n viewDate = props.viewDate,\n generateConfig = props.generateConfig,\n cellRender = props.cellRender,\n locale = props.locale;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var yearNumber = generateConfig.getYear(viewDate);\n var decadeYearNumber = Math.floor(yearNumber / DECADE_UNIT_DIFF) * DECADE_UNIT_DIFF;\n var startDecadeYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;\n var endDecadeYear = startDecadeYear + DECADE_DISTANCE_COUNT - 1;\n var baseDecadeYear = generateConfig.setYear(viewDate, startDecadeYear - Math.ceil((DECADE_COL_COUNT * DECADE_ROW_COUNT * DECADE_UNIT_DIFF - DECADE_DISTANCE_COUNT) / 2));\n var getCellClassName = function getCellClassName(date) {\n var _ref;\n var startDecadeNumber = generateConfig.getYear(date);\n var endDecadeNumber = startDecadeNumber + DECADE_UNIT_DIFF_DES;\n return _ref = {}, _defineProperty(_ref, \"\".concat(cellPrefixCls, \"-in-view\"), startDecadeYear <= startDecadeNumber && endDecadeNumber <= endDecadeYear), _defineProperty(_ref, \"\".concat(cellPrefixCls, \"-selected\"), startDecadeNumber === decadeYearNumber), _ref;\n };\n var getCellNode = cellRender ? function (date, wrapperNode) {\n return cellRender(date, {\n originNode: wrapperNode,\n today: generateConfig.getNow(),\n type: 'decade',\n locale: locale\n });\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: DECADE_ROW_COUNT,\n colNum: DECADE_COL_COUNT,\n baseDate: baseDecadeYear,\n getCellNode: getCellNode,\n getCellText: function getCellText(date) {\n var startDecadeNumber = generateConfig.getYear(date);\n return \"\".concat(startDecadeNumber, \"-\").concat(startDecadeNumber + DECADE_UNIT_DIFF_DES);\n },\n getCellClassName: getCellClassName,\n getCellDate: function getCellDate(date, offset) {\n return generateConfig.addYear(date, offset * DECADE_UNIT_DIFF);\n }\n }));\n}\nexport default DecadeBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport DecadeHeader from \"./DecadeHeader\";\nimport DecadeBody, { DECADE_COL_COUNT } from \"./DecadeBody\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\nimport { DECADE_DISTANCE_COUNT, DECADE_UNIT_DIFF } from \"./constant\";\nexport { DECADE_DISTANCE_COUNT, DECADE_UNIT_DIFF };\nfunction DecadePanel(props) {\n var prefixCls = props.prefixCls,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n viewDate = props.viewDate,\n operationRef = props.operationRef,\n onSelect = props.onSelect,\n onPanelChange = props.onPanelChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-decade-panel\");\n\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n onSelect(generateConfig.addYear(viewDate, diff * DECADE_UNIT_DIFF), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n onSelect(generateConfig.addYear(viewDate, diff * DECADE_DISTANCE_COUNT), 'key');\n },\n onUpDown: function onUpDown(diff) {\n onSelect(generateConfig.addYear(viewDate, diff * DECADE_UNIT_DIFF * DECADE_COL_COUNT), 'key');\n },\n onEnter: function onEnter() {\n onPanelChange('year', viewDate);\n }\n });\n }\n };\n\n // ==================== View Operation ====================\n var onDecadesChange = function onDecadesChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff * DECADE_DISTANCE_COUNT);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n var onInternalSelect = function onInternalSelect(date) {\n onSelect(date, 'mouse');\n onPanelChange('year', date);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(DecadeHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevDecades: function onPrevDecades() {\n onDecadesChange(-1);\n },\n onNextDecades: function onNextDecades() {\n onDecadesChange(1);\n }\n })), /*#__PURE__*/React.createElement(DecadeBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: onInternalSelect\n })));\n}\nexport default DecadePanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from \"../Header\";\nimport PanelContext from \"../../PanelContext\";\nimport { formatValue } from \"../../utils/dateUtil\";\nfunction MonthHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n viewDate = props.viewDate,\n onNextYear = props.onNextYear,\n onPrevYear = props.onPrevYear,\n onYearClick = props.onYearClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevYear,\n onSuperNext: onNextYear\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onYearClick,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(viewDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n })));\n}\nexport default MonthHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useCellClassName from \"../../hooks/useCellClassName\";\nimport RangeContext from \"../../RangeContext\";\nimport { formatValue, isSameMonth } from \"../../utils/dateUtil\";\nimport PanelBody from \"../PanelBody\";\nexport var MONTH_COL_COUNT = 3;\nvar MONTH_ROW_COUNT = 4;\nfunction MonthBody(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n value = props.value,\n viewDate = props.viewDate,\n generateConfig = props.generateConfig,\n cellRender = props.cellRender;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var getCellClassName = useCellClassName({\n cellPrefixCls: cellPrefixCls,\n value: value,\n generateConfig: generateConfig,\n rangedValue: rangedValue,\n hoverRangedValue: hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameMonth(generateConfig, current, target);\n },\n isInView: function isInView() {\n return true;\n },\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addMonth(date, offset);\n }\n });\n var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);\n var baseMonth = generateConfig.setMonth(viewDate, 0);\n var getCellNode = cellRender ? function (date, wrapperNode) {\n return cellRender(date, {\n originNode: wrapperNode,\n locale: locale,\n today: generateConfig.getNow(),\n type: 'month'\n });\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: MONTH_ROW_COUNT,\n colNum: MONTH_COL_COUNT,\n baseDate: baseMonth,\n getCellNode: getCellNode,\n getCellText: function getCellText(date) {\n return locale.monthFormat ? formatValue(date, {\n locale: locale,\n format: locale.monthFormat,\n generateConfig: generateConfig\n }) : monthsLocale[generateConfig.getMonth(date)];\n },\n getCellClassName: getCellClassName,\n getCellDate: generateConfig.addMonth,\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY-MM',\n generateConfig: generateConfig\n });\n }\n }));\n}\nexport default MonthBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport MonthHeader from \"./MonthHeader\";\nimport MonthBody, { MONTH_COL_COUNT } from \"./MonthBody\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\nfunction MonthPanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n onPanelChange = props.onPanelChange,\n _onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-month-panel\");\n\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff * MONTH_COL_COUNT), 'key');\n },\n onEnter: function onEnter() {\n onPanelChange('date', value || viewDate);\n }\n });\n }\n };\n\n // ==================== View Operation ====================\n var onYearChange = function onYearChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(MonthHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevYear: function onPrevYear() {\n onYearChange(-1);\n },\n onNextYear: function onNextYear() {\n onYearChange(1);\n },\n onYearClick: function onYearClick() {\n onPanelChange('year', viewDate);\n }\n })), /*#__PURE__*/React.createElement(MonthBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: function onSelect(date) {\n _onSelect(date, 'mouse');\n onPanelChange('date', date);\n }\n })));\n}\nexport default MonthPanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from \"../Header\";\nimport PanelContext from \"../../PanelContext\";\nimport { formatValue } from \"../../utils/dateUtil\";\nfunction QuarterHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n viewDate = props.viewDate,\n onNextYear = props.onNextYear,\n onPrevYear = props.onPrevYear,\n onYearClick = props.onYearClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevYear,\n onSuperNext: onNextYear\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onYearClick,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(viewDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n })));\n}\nexport default QuarterHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { formatValue, isSameQuarter } from \"../../utils/dateUtil\";\nimport RangeContext from \"../../RangeContext\";\nimport useCellClassName from \"../../hooks/useCellClassName\";\nimport PanelBody from \"../PanelBody\";\nexport var QUARTER_COL_COUNT = 4;\nvar QUARTER_ROW_COUNT = 1;\nfunction QuarterBody(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n value = props.value,\n viewDate = props.viewDate,\n generateConfig = props.generateConfig,\n cellRender = props.cellRender;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var getCellClassName = useCellClassName({\n cellPrefixCls: cellPrefixCls,\n value: value,\n generateConfig: generateConfig,\n rangedValue: rangedValue,\n hoverRangedValue: hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameQuarter(generateConfig, current, target);\n },\n isInView: function isInView() {\n return true;\n },\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addMonth(date, offset * 3);\n }\n });\n var baseQuarter = generateConfig.setDate(generateConfig.setMonth(viewDate, 0), 1);\n var getCellNode = cellRender ? function (date, wrapperNode) {\n return cellRender(date, {\n originNode: wrapperNode,\n locale: locale,\n today: generateConfig.getNow(),\n type: 'quarter'\n });\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: QUARTER_ROW_COUNT,\n colNum: QUARTER_COL_COUNT,\n baseDate: baseQuarter,\n getCellNode: getCellNode,\n getCellText: function getCellText(date) {\n return formatValue(date, {\n locale: locale,\n format: locale.quarterFormat || '[Q]Q',\n generateConfig: generateConfig\n });\n },\n getCellClassName: getCellClassName,\n getCellDate: function getCellDate(date, offset) {\n return generateConfig.addMonth(date, offset * 3);\n },\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY-[Q]Q',\n generateConfig: generateConfig\n });\n }\n }));\n}\nexport default QuarterBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport QuarterHeader from \"./QuarterHeader\";\nimport QuarterBody from \"./QuarterBody\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\nfunction QuarterPanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n onPanelChange = props.onPanelChange,\n _onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-quarter-panel\");\n\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff * 3), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n }\n });\n }\n };\n\n // ==================== View Operation ====================\n var onYearChange = function onYearChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(QuarterHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevYear: function onPrevYear() {\n onYearChange(-1);\n },\n onNextYear: function onNextYear() {\n onYearChange(1);\n },\n onYearClick: function onYearClick() {\n onPanelChange('year', viewDate);\n }\n })), /*#__PURE__*/React.createElement(QuarterBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: function onSelect(date) {\n _onSelect(date, 'mouse');\n }\n })));\n}\nexport default QuarterPanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport PanelContext from \"../../PanelContext\";\nimport RangeContext from \"../../RangeContext\";\nimport { getCellDateDisabled, isInRange, isSameWeek } from \"../../utils/dateUtil\";\nimport DatePanel from \"../DatePanel\";\nfunction WeekPanel(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n value = props.value,\n disabledDate = props.disabledDate,\n onSelect = props.onSelect;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var _React$useContext2 = React.useContext(PanelContext),\n onDateMouseEnter = _React$useContext2.onDateMouseEnter,\n onDateMouseLeave = _React$useContext2.onDateMouseLeave;\n var rangeStart = (hoverRangedValue === null || hoverRangedValue === void 0 ? void 0 : hoverRangedValue[0]) || (rangedValue === null || rangedValue === void 0 ? void 0 : rangedValue[0]);\n var rangeEnd = (hoverRangedValue === null || hoverRangedValue === void 0 ? void 0 : hoverRangedValue[1]) || (rangedValue === null || rangedValue === void 0 ? void 0 : rangedValue[1]);\n\n // Render additional column\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var prefixColumn = function prefixColumn(date) {\n // >>> Additional check for disabled\n var disabled = getCellDateDisabled({\n cellDate: date,\n mode: 'week',\n disabledDate: disabledDate,\n generateConfig: generateConfig\n });\n return /*#__PURE__*/React.createElement(\"td\", {\n key: \"week\",\n className: classNames(cellPrefixCls, \"\".concat(cellPrefixCls, \"-week\"))\n // Operation: Same as code in PanelBody\n ,\n onClick: function onClick() {\n if (!disabled) {\n onSelect(date, 'mouse');\n }\n },\n onMouseEnter: function onMouseEnter() {\n if (!disabled && onDateMouseEnter) {\n onDateMouseEnter(date);\n }\n },\n onMouseLeave: function onMouseLeave() {\n if (!disabled && onDateMouseLeave) {\n onDateMouseLeave(date);\n }\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, generateConfig.locale.getWeek(locale.locale, date)));\n };\n\n // Add row className\n var rowPrefixCls = \"\".concat(prefixCls, \"-week-panel-row\");\n var rowClassName = function rowClassName(date) {\n var _classNames;\n var isRangeStart = isSameWeek(generateConfig, locale.locale, rangeStart, date);\n var isRangeEnd = isSameWeek(generateConfig, locale.locale, rangeEnd, date);\n return classNames(rowPrefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(rowPrefixCls, \"-selected\"), !rangedValue && isSameWeek(generateConfig, locale.locale, value, date)), _defineProperty(_classNames, \"\".concat(rowPrefixCls, \"-range-start\"), isRangeStart), _defineProperty(_classNames, \"\".concat(rowPrefixCls, \"-range-end\"), isRangeEnd), _defineProperty(_classNames, \"\".concat(rowPrefixCls, \"-range-hover\"), !isRangeStart && !isRangeEnd && isInRange(generateConfig, rangeStart, rangeEnd, date)), _classNames));\n };\n return /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {\n panelName: \"week\",\n prefixColumn: prefixColumn,\n rowClassName: rowClassName,\n keyboardConfig: {\n onLeftRight: null\n }\n // No need check cell level\n ,\n isSameCell: function isSameCell() {\n return false;\n }\n }));\n}\nexport default WeekPanel;","export var YEAR_DECADE_COUNT = 10;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from \"../Header\";\nimport { YEAR_DECADE_COUNT } from \"./constant\";\nimport PanelContext from \"../../PanelContext\";\nfunction YearHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n viewDate = props.viewDate,\n onPrevDecade = props.onPrevDecade,\n onNextDecade = props.onNextDecade,\n onDecadeClick = props.onDecadeClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var yearNumber = generateConfig.getYear(viewDate);\n var startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;\n var endYear = startYear + YEAR_DECADE_COUNT - 1;\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevDecade,\n onSuperNext: onNextDecade\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onDecadeClick,\n className: \"\".concat(prefixCls, \"-decade-btn\")\n }, startYear, \"-\", endYear));\n}\nexport default YearHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { YEAR_DECADE_COUNT } from \"./constant\";\nimport useCellClassName from \"../../hooks/useCellClassName\";\nimport { formatValue, isSameYear } from \"../../utils/dateUtil\";\nimport RangeContext from \"../../RangeContext\";\nimport PanelBody from \"../PanelBody\";\nexport var YEAR_COL_COUNT = 3;\nvar YEAR_ROW_COUNT = 4;\nfunction YearBody(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n viewDate = props.viewDate,\n locale = props.locale,\n generateConfig = props.generateConfig,\n cellRender = props.cellRender;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var yearPrefixCls = \"\".concat(prefixCls, \"-cell\");\n\n // =============================== Year ===============================\n var yearNumber = generateConfig.getYear(viewDate);\n var startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;\n var endYear = startYear + YEAR_DECADE_COUNT - 1;\n var baseYear = generateConfig.setYear(viewDate, startYear - Math.ceil((YEAR_COL_COUNT * YEAR_ROW_COUNT - YEAR_DECADE_COUNT) / 2));\n var today = generateConfig.getNow();\n var isInView = function isInView(date) {\n var currentYearNumber = generateConfig.getYear(date);\n return startYear <= currentYearNumber && currentYearNumber <= endYear;\n };\n var getCellClassName = useCellClassName({\n cellPrefixCls: yearPrefixCls,\n value: value,\n generateConfig: generateConfig,\n rangedValue: rangedValue,\n hoverRangedValue: hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameYear(generateConfig, current, target);\n },\n isInView: isInView,\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addYear(date, offset);\n }\n });\n var getCellNode = cellRender ? function (date, wrapperNode) {\n return cellRender(date, {\n originNode: wrapperNode,\n today: today,\n type: 'year',\n locale: locale\n });\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: YEAR_ROW_COUNT,\n colNum: YEAR_COL_COUNT,\n baseDate: baseYear,\n getCellNode: getCellNode,\n getCellText: generateConfig.getYear,\n getCellClassName: getCellClassName,\n getCellDate: generateConfig.addYear,\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY',\n generateConfig: generateConfig\n });\n }\n }));\n}\nexport default YearBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport YearHeader from \"./YearHeader\";\nimport YearBody, { YEAR_COL_COUNT } from \"./YearBody\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\nimport { YEAR_DECADE_COUNT } from \"./constant\";\nexport { YEAR_DECADE_COUNT };\nfunction YearPanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n sourceMode = props.sourceMode,\n _onSelect = props.onSelect,\n onPanelChange = props.onPanelChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-year-panel\");\n\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_DECADE_COUNT), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_COL_COUNT), 'key');\n },\n onEnter: function onEnter() {\n onPanelChange(sourceMode === 'date' ? 'date' : 'month', value || viewDate);\n }\n });\n }\n };\n\n // ==================== View Operation ====================\n var onDecadeChange = function onDecadeChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff * 10);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(YearHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevDecade: function onPrevDecade() {\n onDecadeChange(-1);\n },\n onNextDecade: function onNextDecade() {\n onDecadeChange(1);\n },\n onDecadeClick: function onDecadeClick() {\n onPanelChange('decade', viewDate);\n }\n })), /*#__PURE__*/React.createElement(YearBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: function onSelect(date) {\n onPanelChange(sourceMode === 'date' ? 'date' : 'month', date);\n _onSelect(date, 'mouse');\n }\n })));\n}\nexport default YearPanel;","import * as React from 'react';\nexport default function getExtraFooter(prefixCls, mode, renderExtraFooter) {\n if (!renderExtraFooter) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer-extra\")\n }, renderExtraFooter(mode));\n}","import * as React from 'react';\nexport default function getRanges(_ref) {\n var prefixCls = _ref.prefixCls,\n _ref$components = _ref.components,\n components = _ref$components === void 0 ? {} : _ref$components,\n needConfirmButton = _ref.needConfirmButton,\n onNow = _ref.onNow,\n onOk = _ref.onOk,\n okDisabled = _ref.okDisabled,\n showNow = _ref.showNow,\n locale = _ref.locale;\n var presetNode;\n var okNode;\n if (needConfirmButton) {\n var Button = components.button || 'button';\n if (onNow && showNow !== false) {\n presetNode = /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-now\")\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-now-btn\"),\n onClick: onNow\n }, locale.now));\n }\n okNode = needConfirmButton && /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-ok\")\n }, /*#__PURE__*/React.createElement(Button, {\n disabled: okDisabled,\n onClick: onOk\n }, locale.ok));\n }\n if (!presetNode && !okNode) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-ranges\")\n }, presetNode, okNode);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * Logic:\n * When `mode` === `picker`,\n * click will trigger `onSelect` (if value changed trigger `onChange` also).\n * Panel change will not trigger `onSelect` but trigger `onPanelChange`\n */\n\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useCellRender } from \"./hooks/useCellRender\";\nimport PanelContext from \"./PanelContext\";\nimport DatePanel from \"./panels/DatePanel\";\nimport DatetimePanel from \"./panels/DatetimePanel\";\nimport DecadePanel from \"./panels/DecadePanel\";\nimport MonthPanel from \"./panels/MonthPanel\";\nimport { MONTH_COL_COUNT } from \"./panels/MonthPanel/MonthBody\";\nimport QuarterPanel from \"./panels/QuarterPanel\";\nimport TimePanel from \"./panels/TimePanel\";\nimport WeekPanel from \"./panels/WeekPanel\";\nimport YearPanel from \"./panels/YearPanel\";\nimport RangeContext from \"./RangeContext\";\nimport { isEqual, WEEK_DAY_COUNT } from \"./utils/dateUtil\";\nimport getExtraFooter from \"./utils/getExtraFooter\";\nimport getRanges from \"./utils/getRanges\";\nimport { getLowerBoundTime, setDateTime, setTime } from \"./utils/timeUtil\";\nimport { PickerModeMap } from \"./utils/uiUtil\";\n\n// TMP type to fit for ts 3.9.2\n\n// Calendar picker type\nvar CALENDAR_PANEL_MODE = ['date', 'month'];\nfunction PickerPanel(props) {\n var _classNames;\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-picker' : _ref$prefixCls,\n className = _ref.className,\n style = _ref.style,\n locale = _ref.locale,\n generateConfig = _ref.generateConfig,\n value = _ref.value,\n defaultValue = _ref.defaultValue,\n pickerValue = _ref.pickerValue,\n defaultPickerValue = _ref.defaultPickerValue,\n disabledDate = _ref.disabledDate,\n mode = _ref.mode,\n _ref$picker = _ref.picker,\n picker = _ref$picker === void 0 ? 'date' : _ref$picker,\n _ref$tabIndex = _ref.tabIndex,\n tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,\n showNow = _ref.showNow,\n showTime = _ref.showTime,\n showToday = _ref.showToday,\n renderExtraFooter = _ref.renderExtraFooter,\n hideHeader = _ref.hideHeader,\n onSelect = _ref.onSelect,\n onChange = _ref.onChange,\n onPanelChange = _ref.onPanelChange,\n onMouseDown = _ref.onMouseDown,\n onPickerValueChange = _ref.onPickerValueChange,\n _onOk = _ref.onOk,\n components = _ref.components,\n direction = _ref.direction,\n _ref$hourStep = _ref.hourStep,\n hourStep = _ref$hourStep === void 0 ? 1 : _ref$hourStep,\n _ref$minuteStep = _ref.minuteStep,\n minuteStep = _ref$minuteStep === void 0 ? 1 : _ref$minuteStep,\n _ref$secondStep = _ref.secondStep,\n secondStep = _ref$secondStep === void 0 ? 1 : _ref$secondStep,\n dateRender = _ref.dateRender,\n monthCellRender = _ref.monthCellRender,\n cellRender = _ref.cellRender;\n var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n var isHourStepValid = 24 % hourStep === 0;\n var isMinuteStepValid = 60 % minuteStep === 0;\n var isSecondStepValid = 60 % secondStep === 0;\n if (process.env.NODE_ENV !== 'production') {\n warning(!value || generateConfig.isValidate(value), 'Invalidate date pass to `value`.');\n warning(!value || generateConfig.isValidate(value), 'Invalidate date pass to `defaultValue`.');\n warning(isHourStepValid, \"`hourStep` \".concat(hourStep, \" is invalid. It should be a factor of 24.\"));\n warning(isMinuteStepValid, \"`minuteStep` \".concat(minuteStep, \" is invalid. It should be a factor of 60.\"));\n warning(isSecondStepValid, \"`secondStep` \".concat(secondStep, \" is invalid. It should be a factor of 60.\"));\n warning(!dateRender, \"'dateRender' is deprecated. Please use 'cellRender' instead.\");\n warning(!monthCellRender, \"'monthCellRender' is deprecated. Please use 'cellRender' instead.\");\n }\n\n // ============================ State =============================\n\n var panelContext = React.useContext(PanelContext);\n var operationRef = panelContext.operationRef,\n onContextSelect = panelContext.onSelect,\n hideRanges = panelContext.hideRanges,\n defaultOpenValue = panelContext.defaultOpenValue;\n var _React$useContext = React.useContext(RangeContext),\n inRange = _React$useContext.inRange,\n panelPosition = _React$useContext.panelPosition,\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var panelRef = React.useRef({});\n\n // Handle init logic\n var initRef = React.useRef(true);\n\n // Value\n var _useMergedState = useMergedState(null, {\n value: value,\n defaultValue: defaultValue,\n postState: function postState(val) {\n if (!val && defaultOpenValue && picker === 'time') {\n return defaultOpenValue;\n }\n return val;\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setInnerValue = _useMergedState2[1];\n\n // View date control\n var _useMergedState3 = useMergedState(null, {\n value: pickerValue,\n defaultValue: defaultPickerValue || mergedValue,\n postState: function postState(date) {\n var now = generateConfig.getNow();\n if (!date) {\n return now;\n }\n // When value is null and set showTime\n if (!mergedValue && showTime) {\n var defaultDateObject = _typeof(showTime) === 'object' ? showTime.defaultValue : defaultValue;\n return setDateTime(generateConfig, Array.isArray(date) ? date[0] : date, defaultDateObject || now);\n }\n return Array.isArray(date) ? date[0] : date;\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n viewDate = _useMergedState4[0],\n setInnerViewDate = _useMergedState4[1];\n var setViewDate = function setViewDate(date) {\n setInnerViewDate(date);\n if (onPickerValueChange) {\n onPickerValueChange(date);\n }\n };\n\n // Panel control\n var getInternalNextMode = function getInternalNextMode(nextMode) {\n var getNextMode = PickerModeMap[picker];\n if (getNextMode) {\n return getNextMode(nextMode);\n }\n return nextMode;\n };\n\n // Save panel is changed from which panel\n var _useMergedState5 = useMergedState(function () {\n if (picker === 'time') {\n return 'time';\n }\n return getInternalNextMode('date');\n }, {\n value: mode\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedMode = _useMergedState6[0],\n setInnerMode = _useMergedState6[1];\n React.useEffect(function () {\n setInnerMode(picker);\n }, [picker]);\n var _React$useState = React.useState(function () {\n return mergedMode;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n sourceMode = _React$useState2[0],\n setSourceMode = _React$useState2[1];\n var onInternalPanelChange = function onInternalPanelChange(newMode, viewValue) {\n var nextMode = getInternalNextMode(newMode || mergedMode);\n setSourceMode(mergedMode);\n setInnerMode(nextMode);\n if (onPanelChange && (mergedMode !== nextMode || isEqual(generateConfig, viewDate, viewDate))) {\n onPanelChange(viewValue, nextMode);\n }\n };\n var triggerSelect = function triggerSelect(date, type) {\n var forceTriggerSelect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (mergedMode === picker || forceTriggerSelect) {\n setInnerValue(date);\n if (onSelect) {\n onSelect(date);\n }\n if (onContextSelect) {\n onContextSelect(date, type);\n }\n if (onChange && !isEqual(generateConfig, date, mergedValue) && !(disabledDate !== null && disabledDate !== void 0 && disabledDate(date))) {\n onChange(date);\n }\n }\n };\n var isSelectable = function isSelectable(key) {\n if (CALENDAR_PANEL_MODE.includes(mergedMode)) {\n var _date;\n var operationFnc;\n var isDateMode = mergedMode === 'date';\n if (key === KeyCode.PAGE_UP || key === KeyCode.PAGE_DOWN) {\n operationFnc = isDateMode ? generateConfig.addMonth : generateConfig.addYear;\n } else {\n operationFnc = isDateMode ? generateConfig.addDate : generateConfig.addMonth;\n }\n switch (key) {\n case KeyCode.LEFT:\n case KeyCode.PAGE_UP:\n _date = operationFnc(viewDate, -1);\n break;\n case KeyCode.RIGHT:\n case KeyCode.PAGE_DOWN:\n _date = operationFnc(viewDate, 1);\n break;\n case KeyCode.UP:\n case KeyCode.DOWN:\n _date = operationFnc(viewDate, Number(\"\".concat(key === KeyCode.UP ? '-' : '').concat(isDateMode ? WEEK_DAY_COUNT : MONTH_COL_COUNT)));\n break;\n }\n if (_date) {\n return !(disabledDate !== null && disabledDate !== void 0 && disabledDate(_date));\n }\n }\n return true;\n };\n\n // ========================= Interactive ==========================\n var onInternalKeyDown = function onInternalKeyDown(e) {\n if (panelRef.current && panelRef.current.onKeyDown) {\n var selectable = true;\n var which = e.which;\n if ([KeyCode.LEFT, KeyCode.RIGHT, KeyCode.UP, KeyCode.DOWN, KeyCode.PAGE_UP, KeyCode.PAGE_DOWN, KeyCode.ENTER].includes(which)) {\n e.preventDefault();\n if (which !== KeyCode.ENTER && tabIndex === 0) {\n selectable = isSelectable(which);\n }\n }\n\n // Cannot use keyboard to select disabled date\n if (selectable) {\n return panelRef.current.onKeyDown(e);\n }\n }\n\n /* istanbul ignore next */\n /* eslint-disable no-lone-blocks */\n {\n warning(false, 'Panel not correct handle keyDown event. Please help to fire issue about this.');\n return false;\n }\n /* eslint-enable no-lone-blocks */\n };\n\n var onInternalBlur = function onInternalBlur(e) {\n if (panelRef.current && panelRef.current.onBlur) {\n panelRef.current.onBlur(e);\n }\n };\n if (operationRef && panelPosition !== 'right') {\n operationRef.current = {\n onKeyDown: onInternalKeyDown,\n onClose: function onClose() {\n if (panelRef.current && panelRef.current.onClose) {\n panelRef.current.onClose();\n }\n }\n };\n }\n\n // ============================ Effect ============================\n React.useEffect(function () {\n if (value && !initRef.current) {\n setInnerViewDate(value);\n }\n }, [value]);\n React.useEffect(function () {\n initRef.current = false;\n }, []);\n\n // ============================ Panels ============================\n var panelNode;\n var mergedCellRender = useCellRender({\n cellRender: cellRender,\n monthCellRender: monthCellRender,\n dateRender: dateRender\n });\n var pickerProps = _objectSpread(_objectSpread({}, props), {}, {\n cellRender: mergedCellRender,\n operationRef: panelRef,\n prefixCls: prefixCls,\n viewDate: viewDate,\n value: mergedValue,\n onViewDateChange: setViewDate,\n sourceMode: sourceMode,\n onPanelChange: onInternalPanelChange,\n disabledDate: disabledDate\n });\n delete pickerProps.onChange;\n delete pickerProps.onSelect;\n switch (mergedMode) {\n case 'decade':\n panelNode = /*#__PURE__*/React.createElement(DecadePanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'year':\n panelNode = /*#__PURE__*/React.createElement(YearPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'month':\n panelNode = /*#__PURE__*/React.createElement(MonthPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'quarter':\n panelNode = /*#__PURE__*/React.createElement(QuarterPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'week':\n panelNode = /*#__PURE__*/React.createElement(WeekPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'time':\n delete pickerProps.showTime;\n panelNode = /*#__PURE__*/React.createElement(TimePanel, _extends({}, pickerProps, _typeof(showTime) === 'object' ? showTime : null, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n default:\n if (showTime) {\n panelNode = /*#__PURE__*/React.createElement(DatetimePanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n } else {\n panelNode = /*#__PURE__*/React.createElement(DatePanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n }\n }\n\n // ============================ Footer ============================\n var extraFooter;\n var rangesNode;\n var onNow = function onNow() {\n var now = generateConfig.getNow();\n var lowerBoundTime = getLowerBoundTime(generateConfig.getHour(now), generateConfig.getMinute(now), generateConfig.getSecond(now), isHourStepValid ? hourStep : 1, isMinuteStepValid ? minuteStep : 1, isSecondStepValid ? secondStep : 1);\n var adjustedNow = setTime(generateConfig, now, lowerBoundTime[0],\n // hour\n lowerBoundTime[1],\n // minute\n lowerBoundTime[2] // second\n );\n\n triggerSelect(adjustedNow, 'submit');\n };\n if (!hideRanges) {\n extraFooter = getExtraFooter(prefixCls, mergedMode, renderExtraFooter);\n\n // This content is not displayed when the header switches year and month\n if (showTime && mergedMode !== 'date') {\n rangesNode = null;\n } else {\n rangesNode = getRanges({\n prefixCls: prefixCls,\n components: components,\n needConfirmButton: needConfirmButton,\n okDisabled: !mergedValue || disabledDate && disabledDate(mergedValue),\n locale: locale,\n showNow: showNow,\n onNow: needConfirmButton && onNow,\n onOk: function onOk() {\n if (mergedValue) {\n triggerSelect(mergedValue, 'submit', true);\n if (_onOk) {\n _onOk(mergedValue);\n }\n }\n }\n });\n }\n }\n var todayNode;\n if (showToday && mergedMode === 'date' && picker === 'date' && !showTime) {\n var now = generateConfig.getNow();\n var todayCls = \"\".concat(prefixCls, \"-today-btn\");\n var disabled = disabledDate && disabledDate(now);\n todayNode = /*#__PURE__*/React.createElement(\"a\", {\n className: classNames(todayCls, disabled && \"\".concat(todayCls, \"-disabled\")),\n \"aria-disabled\": disabled,\n onClick: function onClick() {\n if (!disabled) {\n triggerSelect(now, 'mouse', true);\n }\n }\n }, locale.today);\n }\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: _objectSpread(_objectSpread({}, panelContext), {}, {\n mode: mergedMode,\n hideHeader: 'hideHeader' in props ? hideHeader : panelContext.hideHeader,\n hidePrevBtn: inRange && panelPosition === 'right',\n hideNextBtn: inRange && panelPosition === 'left'\n })\n }, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: tabIndex,\n className: classNames(\"\".concat(prefixCls, \"-panel\"), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-panel-has-range\"), rangedValue && rangedValue[0] && rangedValue[1]), _defineProperty(_classNames, \"\".concat(prefixCls, \"-panel-has-range-hover\"), hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1]), _defineProperty(_classNames, \"\".concat(prefixCls, \"-panel-rtl\"), direction === 'rtl'), _classNames)),\n style: style,\n onKeyDown: onInternalKeyDown,\n onBlur: onInternalBlur,\n onMouseDown: onMouseDown\n }, panelNode, extraFooter || rangesNode || todayNode ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, extraFooter, rangesNode, todayNode) : null));\n}\nexport default PickerPanel;\n/* eslint-enable */","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Trigger from '@rc-component/trigger';\nvar BUILT_IN_PLACEMENTS = {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n }\n};\nfunction PickerTrigger(_ref) {\n var _classNames;\n var prefixCls = _ref.prefixCls,\n popupElement = _ref.popupElement,\n popupStyle = _ref.popupStyle,\n visible = _ref.visible,\n dropdownClassName = _ref.dropdownClassName,\n dropdownAlign = _ref.dropdownAlign,\n transitionName = _ref.transitionName,\n getPopupContainer = _ref.getPopupContainer,\n children = _ref.children,\n range = _ref.range,\n popupPlacement = _ref.popupPlacement,\n direction = _ref.direction;\n var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n var getPopupPlacement = function getPopupPlacement() {\n if (popupPlacement !== undefined) {\n return popupPlacement;\n }\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n };\n return /*#__PURE__*/React.createElement(Trigger, {\n showAction: [],\n hideAction: [],\n popupPlacement: getPopupPlacement(),\n builtinPlacements: BUILT_IN_PLACEMENTS,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: transitionName,\n popup: popupElement,\n popupAlign: dropdownAlign,\n popupVisible: visible,\n popupClassName: classNames(dropdownClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(dropdownPrefixCls, \"-range\"), range), _defineProperty(_classNames, \"\".concat(dropdownPrefixCls, \"-rtl\"), direction === 'rtl'), _classNames)),\n popupStyle: popupStyle,\n getPopupContainer: getPopupContainer\n }, children);\n}\nexport default PickerTrigger;","import * as React from 'react';\nimport { executeValue } from \"./utils/miscUtil\";\nexport default function PresetPanel(props) {\n var prefixCls = props.prefixCls,\n presets = props.presets,\n _onClick = props.onClick,\n onHover = props.onHover;\n if (!presets.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-presets\")\n }, /*#__PURE__*/React.createElement(\"ul\", null, presets.map(function (_ref, index) {\n var label = _ref.label,\n value = _ref.value;\n return /*#__PURE__*/React.createElement(\"li\", {\n key: index,\n onClick: function onClick() {\n return _onClick === null || _onClick === void 0 ? void 0 : _onClick(executeValue(value));\n },\n onMouseEnter: function onMouseEnter() {\n return onHover === null || onHover === void 0 ? void 0 : onHover(executeValue(value));\n },\n onMouseLeave: function onMouseLeave() {\n return onHover === null || onHover === void 0 ? void 0 : onHover(null);\n }\n }, label);\n })));\n}","import warning from \"rc-util/es/warning\";\nexport function legacyPropsWarning(props) {\n var picker = props.picker,\n disabledHours = props.disabledHours,\n disabledMinutes = props.disabledMinutes,\n disabledSeconds = props.disabledSeconds;\n if (picker === 'time' && (disabledHours || disabledMinutes || disabledSeconds)) {\n warning(false, \"'disabledHours', 'disabledMinutes', 'disabledSeconds' will be removed in the next major version, please use 'disabledTime' instead.\");\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from \"react\";\nexport function getClearIcon(prefixCls, allowClear, clearIcon) {\n var mergedClearIcon = _typeof(allowClear) === \"object\" ? allowClear.clearIcon : clearIcon;\n return mergedClearIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-clear-btn\")\n });\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _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\";\n/**\n * Removed:\n * - getCalendarContainer: use `getPopupContainer` instead\n * - onOk\n *\n * New Feature:\n * - picker\n * - allowEmpty\n * - selectable\n *\n * Tips: Should add faq about `datetime` mode with `defaultValue`\n */\n\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport useHoverValue from \"./hooks/useHoverValue\";\nimport usePickerInput from \"./hooks/usePickerInput\";\nimport usePresets from \"./hooks/usePresets\";\nimport useTextValueMapping from \"./hooks/useTextValueMapping\";\nimport useValueTexts from \"./hooks/useValueTexts\";\nimport PanelContext from \"./PanelContext\";\nimport PickerPanel from \"./PickerPanel\";\nimport PickerTrigger from \"./PickerTrigger\";\nimport PresetPanel from \"./PresetPanel\";\nimport { formatValue, isEqual, parseValue } from \"./utils/dateUtil\";\nimport { toArray } from \"./utils/miscUtil\";\nimport { elementsContains, getDefaultFormat, getInputSize } from \"./utils/uiUtil\";\nimport { legacyPropsWarning } from \"./utils/warnUtil\";\nimport { getClearIcon } from \"./utils/getClearIcon\";\n\n// TMP type to fit for ts 3.9.2\n\nfunction InnerPicker(props) {\n var _classNames2;\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-picker' : _ref$prefixCls,\n id = _ref.id,\n name = _ref.name,\n tabIndex = _ref.tabIndex,\n style = _ref.style,\n className = _ref.className,\n dropdownClassName = _ref.dropdownClassName,\n dropdownAlign = _ref.dropdownAlign,\n popupStyle = _ref.popupStyle,\n transitionName = _ref.transitionName,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale,\n inputReadOnly = _ref.inputReadOnly,\n allowClear = _ref.allowClear,\n autoFocus = _ref.autoFocus,\n showTime = _ref.showTime,\n _ref$picker = _ref.picker,\n picker = _ref$picker === void 0 ? 'date' : _ref$picker,\n format = _ref.format,\n use12Hours = _ref.use12Hours,\n value = _ref.value,\n defaultValue = _ref.defaultValue,\n presets = _ref.presets,\n open = _ref.open,\n defaultOpen = _ref.defaultOpen,\n defaultOpenValue = _ref.defaultOpenValue,\n suffixIcon = _ref.suffixIcon,\n clearIcon = _ref.clearIcon,\n disabled = _ref.disabled,\n disabledDate = _ref.disabledDate,\n placeholder = _ref.placeholder,\n getPopupContainer = _ref.getPopupContainer,\n pickerRef = _ref.pickerRef,\n panelRender = _ref.panelRender,\n onChange = _ref.onChange,\n onOpenChange = _ref.onOpenChange,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onMouseDown = _ref.onMouseDown,\n onMouseUp = _ref.onMouseUp,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave,\n onContextMenu = _ref.onContextMenu,\n onClick = _ref.onClick,\n _onKeyDown = _ref.onKeyDown,\n _onSelect = _ref.onSelect,\n direction = _ref.direction,\n _ref$autoComplete = _ref.autoComplete,\n autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,\n inputRender = _ref.inputRender,\n changeOnBlur = _ref.changeOnBlur;\n var inputRef = React.useRef(null);\n var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n var presetList = usePresets(presets);\n\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n legacyPropsWarning(props);\n }\n\n // ============================= State =============================\n var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours));\n\n // Panel ref\n var panelDivRef = React.useRef(null);\n var inputDivRef = React.useRef(null);\n var containerRef = React.useRef(null);\n\n // Real value\n var _useMergedState = useMergedState(null, {\n value: value,\n defaultValue: defaultValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setInnerValue = _useMergedState2[1];\n\n // Selected value\n var _React$useState = React.useState(mergedValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n selectedValue = _React$useState2[0],\n setSelectedValue = _React$useState2[1];\n\n // Operation ref\n var operationRef = React.useRef(null);\n\n // Open\n var _useMergedState3 = useMergedState(false, {\n value: open,\n defaultValue: defaultOpen,\n postState: function postState(postOpen) {\n return disabled ? false : postOpen;\n },\n onChange: function onChange(newOpen) {\n if (onOpenChange) {\n onOpenChange(newOpen);\n }\n if (!newOpen && operationRef.current && operationRef.current.onClose) {\n operationRef.current.onClose();\n }\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedOpen = _useMergedState4[0],\n triggerInnerOpen = _useMergedState4[1];\n\n // ============================= Text ==============================\n var _useValueTexts = useValueTexts(selectedValue, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n valueTexts = _useValueTexts2[0],\n firstValueText = _useValueTexts2[1];\n var _useTextValueMapping = useTextValueMapping({\n valueTexts: valueTexts,\n onTextChange: function onTextChange(newText) {\n var inputDate = parseValue(newText, {\n locale: locale,\n formatList: formatList,\n generateConfig: generateConfig\n });\n if (inputDate && (!disabledDate || !disabledDate(inputDate))) {\n setSelectedValue(inputDate);\n }\n }\n }),\n _useTextValueMapping2 = _slicedToArray(_useTextValueMapping, 3),\n text = _useTextValueMapping2[0],\n triggerTextChange = _useTextValueMapping2[1],\n resetText = _useTextValueMapping2[2];\n\n // ============================ Trigger ============================\n var triggerChange = function triggerChange(newValue) {\n setSelectedValue(newValue);\n setInnerValue(newValue);\n if (onChange && !isEqual(generateConfig, mergedValue, newValue)) {\n onChange(newValue, newValue ? formatValue(newValue, {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n }) : '');\n }\n };\n var triggerOpen = function triggerOpen(newOpen) {\n if (disabled && newOpen) {\n return;\n }\n triggerInnerOpen(newOpen);\n };\n var forwardKeyDown = function forwardKeyDown(e) {\n if (mergedOpen && operationRef.current && operationRef.current.onKeyDown) {\n // Let popup panel handle keyboard\n return operationRef.current.onKeyDown(e);\n }\n\n /* istanbul ignore next */\n /* eslint-disable no-lone-blocks */\n {\n warning(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');\n return false;\n }\n };\n var onInternalClick = function onInternalClick() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n onClick === null || onClick === void 0 ? void 0 : onClick.apply(void 0, args);\n if (inputRef.current) {\n inputRef.current.focus();\n triggerOpen(true);\n }\n };\n\n // ============================= Input =============================\n var onInternalBlur = function onInternalBlur(e) {\n if (changeOnBlur) {\n triggerChange(selectedValue);\n }\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n var _usePickerInput = usePickerInput({\n blurToCancel: needConfirmButton,\n open: mergedOpen,\n value: text,\n triggerOpen: triggerOpen,\n forwardKeyDown: forwardKeyDown,\n isClickOutside: function isClickOutside(target) {\n return !elementsContains([panelDivRef.current, inputDivRef.current, containerRef.current], target);\n },\n onSubmit: function onSubmit() {\n if (\n // When user typing disabledDate with keyboard and enter, this value will be empty\n !selectedValue ||\n // Normal disabled check\n disabledDate && disabledDate(selectedValue)) {\n return false;\n }\n triggerChange(selectedValue);\n triggerOpen(false);\n resetText();\n return true;\n },\n onCancel: function onCancel() {\n triggerOpen(false);\n setSelectedValue(mergedValue);\n resetText();\n },\n onKeyDown: function onKeyDown(e, preventDefault) {\n _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e, preventDefault);\n },\n onFocus: onFocus,\n onBlur: onInternalBlur,\n changeOnBlur: changeOnBlur\n }),\n _usePickerInput2 = _slicedToArray(_usePickerInput, 2),\n inputProps = _usePickerInput2[0],\n _usePickerInput2$ = _usePickerInput2[1],\n focused = _usePickerInput2$.focused,\n typing = _usePickerInput2$.typing;\n\n // ============================= Sync ==============================\n // Close should sync back with text value\n React.useEffect(function () {\n if (!mergedOpen) {\n setSelectedValue(mergedValue);\n if (!valueTexts.length || valueTexts[0] === '') {\n triggerTextChange('');\n } else if (firstValueText !== text) {\n resetText();\n }\n }\n }, [mergedOpen, valueTexts]);\n\n // Change picker should sync back with text value\n React.useEffect(function () {\n if (!mergedOpen) {\n resetText();\n }\n }, [picker]);\n\n // Sync innerValue with control mode\n React.useEffect(function () {\n // Sync select value\n setSelectedValue(mergedValue);\n }, [mergedValue]);\n\n // ============================ Private ============================\n if (pickerRef) {\n pickerRef.current = {\n focus: function focus() {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n },\n blur: function blur() {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.blur();\n }\n };\n }\n var _useHoverValue = useHoverValue(text, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useHoverValue2 = _slicedToArray(_useHoverValue, 3),\n hoverValue = _useHoverValue2[0],\n onEnter = _useHoverValue2[1],\n onLeave = _useHoverValue2[2];\n\n // ============================= Panel =============================\n var panelProps = _objectSpread(_objectSpread({}, props), {}, {\n className: undefined,\n style: undefined,\n pickerValue: undefined,\n onPickerValueChange: undefined,\n onChange: null\n });\n var panelNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-layout\")\n }, /*#__PURE__*/React.createElement(PresetPanel, {\n prefixCls: prefixCls,\n presets: presetList,\n onClick: function onClick(nextValue) {\n triggerChange(nextValue);\n triggerOpen(false);\n }\n }), /*#__PURE__*/React.createElement(PickerPanel, _extends({}, panelProps, {\n generateConfig: generateConfig,\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-panel-focused\"), !typing)),\n value: selectedValue,\n locale: locale,\n tabIndex: -1,\n onSelect: function onSelect(date) {\n _onSelect === null || _onSelect === void 0 ? void 0 : _onSelect(date);\n setSelectedValue(date);\n },\n direction: direction,\n onPanelChange: function onPanelChange(viewDate, mode) {\n var onPanelChange = props.onPanelChange;\n onLeave(true);\n onPanelChange === null || onPanelChange === void 0 ? void 0 : onPanelChange(viewDate, mode);\n }\n })));\n if (panelRender) {\n panelNode = panelRender(panelNode);\n }\n var panel = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-container\"),\n ref: panelDivRef,\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n }, panelNode);\n var suffixNode;\n if (suffixIcon) {\n suffixNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\"),\n onMouseDown: function onMouseDown(e) {\n // Not lost focus\n e.preventDefault();\n }\n }, suffixIcon);\n }\n\n // ============================ Clear ============================\n if (process.env.NODE_ENV !== 'production') {\n warning(!props.clearIcon, '`clearIcon` will be removed in future. Please use `allowClear` instead.');\n }\n var mergedClearIcon = getClearIcon(prefixCls, allowClear, clearIcon);\n var clearNode = /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n onMouseUp: function onMouseUp(e) {\n e.preventDefault();\n e.stopPropagation();\n triggerChange(null);\n triggerOpen(false);\n },\n className: \"\".concat(prefixCls, \"-clear\"),\n role: \"button\"\n }, mergedClearIcon);\n var mergedAllowClear = !!allowClear && mergedValue && !disabled;\n var mergedInputProps = _objectSpread(_objectSpread(_objectSpread({\n id: id,\n tabIndex: tabIndex,\n disabled: disabled,\n readOnly: inputReadOnly || typeof formatList[0] === 'function' || !typing,\n value: hoverValue || text,\n onChange: function onChange(e) {\n triggerTextChange(e.target.value);\n },\n autoFocus: autoFocus,\n placeholder: placeholder,\n ref: inputRef,\n title: text\n }, inputProps), {}, {\n size: getInputSize(picker, formatList[0], generateConfig),\n name: name\n }, pickAttrs(props, {\n aria: true,\n data: true\n })), {}, {\n autoComplete: autoComplete\n });\n var inputNode = inputRender ? inputRender(mergedInputProps) : /*#__PURE__*/React.createElement(\"input\", mergedInputProps);\n\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n warning(!defaultOpenValue, '`defaultOpenValue` may confuse user for the current value status. Please use `defaultValue` instead.');\n }\n\n // ============================ Return =============================\n var onContextSelect = function onContextSelect(date, type) {\n if (type === 'submit' || type !== 'key' && !needConfirmButton) {\n // triggerChange will also update selected values\n triggerChange(date);\n triggerOpen(false);\n }\n };\n var popupPlacement = direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: {\n operationRef: operationRef,\n hideHeader: picker === 'time',\n onSelect: onContextSelect,\n open: mergedOpen,\n defaultOpenValue: defaultOpenValue,\n onDateMouseEnter: onEnter,\n onDateMouseLeave: onLeave\n }\n }, /*#__PURE__*/React.createElement(PickerTrigger, {\n visible: mergedOpen,\n popupElement: panel,\n popupStyle: popupStyle,\n prefixCls: prefixCls,\n dropdownClassName: dropdownClassName,\n dropdownAlign: dropdownAlign,\n getPopupContainer: getPopupContainer,\n transitionName: transitionName,\n popupPlacement: popupPlacement,\n direction: direction\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: classNames(prefixCls, className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), focused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames2)),\n style: style,\n onMouseDown: onMouseDown,\n onMouseUp: onMouseUp,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onContextMenu: onContextMenu,\n onClick: onInternalClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), _defineProperty({}, \"\".concat(prefixCls, \"-input-placeholder\"), !!hoverValue)),\n ref: inputDivRef\n }, inputNode, suffixNode, mergedAllowClear && clearNode))));\n}\n\n// Wrap with class component to enable pass generic with instance method\nvar Picker = /*#__PURE__*/function (_React$Component) {\n _inherits(Picker, _React$Component);\n var _super = _createSuper(Picker);\n function Picker() {\n var _this;\n _classCallCheck(this, Picker);\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"pickerRef\", /*#__PURE__*/React.createRef());\n _defineProperty(_assertThisInitialized(_this), \"focus\", function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.focus();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"blur\", function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.blur();\n }\n });\n return _this;\n }\n _createClass(Picker, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(InnerPicker, _extends({}, this.props, {\n pickerRef: this.pickerRef\n }));\n }\n }]);\n return Picker;\n}(React.Component);\nexport default Picker;","import * as React from 'react';\nimport { getQuarter, isSameDate } from \"../utils/dateUtil\";\nimport { getValue } from \"../utils/miscUtil\";\nexport default function useRangeDisabled(_ref, firstTimeOpen) {\n var picker = _ref.picker,\n locale = _ref.locale,\n selectedValue = _ref.selectedValue,\n disabledDate = _ref.disabledDate,\n disabled = _ref.disabled,\n generateConfig = _ref.generateConfig;\n var startDate = getValue(selectedValue, 0);\n var endDate = getValue(selectedValue, 1);\n function weekFirstDate(date) {\n return generateConfig.locale.getWeekFirstDate(locale.locale, date);\n }\n function monthNumber(date) {\n var year = generateConfig.getYear(date);\n var month = generateConfig.getMonth(date);\n return year * 100 + month;\n }\n function quarterNumber(date) {\n var year = generateConfig.getYear(date);\n var quarter = getQuarter(generateConfig, date);\n return year * 10 + quarter;\n }\n var disabledStartDate = React.useCallback(function (date) {\n if (disabled[0] || disabledDate && disabledDate(date)) {\n return true;\n }\n\n // Disabled range\n if (disabled[1] && endDate) {\n return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(date, endDate);\n }\n\n // Disabled part\n if (!firstTimeOpen && endDate) {\n switch (picker) {\n case 'quarter':\n return quarterNumber(date) > quarterNumber(endDate);\n case 'month':\n return monthNumber(date) > monthNumber(endDate);\n case 'week':\n return weekFirstDate(date) > weekFirstDate(endDate);\n default:\n return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(date, endDate);\n }\n }\n return false;\n }, [disabledDate, disabled[1], endDate, firstTimeOpen]);\n var disabledEndDate = React.useCallback(function (date) {\n if (disabled[1] || disabledDate && disabledDate(date)) {\n return true;\n }\n\n // Disabled range\n if (disabled[0] && startDate) {\n return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(startDate, date);\n }\n\n // Disabled part\n if (!firstTimeOpen && startDate) {\n switch (picker) {\n case 'quarter':\n return quarterNumber(date) < quarterNumber(startDate);\n case 'month':\n return monthNumber(date) < monthNumber(startDate);\n case 'week':\n return weekFirstDate(date) < weekFirstDate(startDate);\n default:\n return !isSameDate(generateConfig, date, startDate) && generateConfig.isAfter(startDate, date);\n }\n }\n return false;\n }, [disabledDate, disabled[0], startDate, firstTimeOpen]);\n return [disabledStartDate, disabledEndDate];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useMergedState } from 'rc-util';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\n\n/**\n * 1. Click input to show picker\n * 2. Calculate next open index\n *\n * If click `confirm`:\n * 3. Hide current picker\n * 4. Open next index picker if exist\n *\n * If not `changeOnBlur` and click outside:\n * 3. Hide picker\n *\n * If `changeOnBlur` and click outside:\n * 3. Hide current picker\n * 4. Open next index picker if exist\n */\n\n/**\n * Auto control of open state\n */\nexport default function useRangeOpen(defaultOpen, open, activePickerIndex, changeOnBlur, startInputRef, endInputRef, startSelectedValue, endSelectedValue, disabled, onOpenChange) {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n firstTimeOpen = _React$useState2[0],\n setFirstTimeOpen = _React$useState2[1];\n var _useMergedState = useMergedState(defaultOpen || false, {\n value: open\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n afferentOpen = _useMergedState2[0],\n setAfferentOpen = _useMergedState2[1];\n var _useMergedState3 = useMergedState(defaultOpen || false, {\n value: open,\n onChange: function onChange(nextOpen) {\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedOpen = _useMergedState4[0],\n setMergedOpen = _useMergedState4[1];\n var _useMergedState5 = useMergedState(0, {\n value: activePickerIndex\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedActivePickerIndex = _useMergedState6[0],\n setMergedActivePickerIndex = _useMergedState6[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n nextActiveIndex = _React$useState4[0],\n setNextActiveIndex = _React$useState4[1];\n React.useEffect(function () {\n if (mergedOpen) {\n setFirstTimeOpen(true);\n }\n }, [mergedOpen]);\n var queryNextIndex = function queryNextIndex(index) {\n return index === 0 ? 1 : 0;\n };\n var triggerOpen = useEvent(function (nextOpen, index, source) {\n if (index === false) {\n // Only when `nextOpen` is false and no need open to next index\n setMergedOpen(nextOpen);\n } else if (nextOpen) {\n setMergedActivePickerIndex(index);\n setMergedOpen(nextOpen);\n var nextIndex = queryNextIndex(index);\n\n // Record next open index\n if (!mergedOpen ||\n // Also set next index if next is empty\n ![startSelectedValue, endSelectedValue][nextIndex]) {\n setNextActiveIndex(nextIndex);\n } else {\n setFirstTimeOpen(false);\n if (nextActiveIndex !== null) {\n setNextActiveIndex(null);\n }\n }\n } else if (source === 'confirm' || source === 'blur' && changeOnBlur) {\n var customNextActiveIndex = afferentOpen ? queryNextIndex(index) : nextActiveIndex;\n if (customNextActiveIndex !== null) {\n setFirstTimeOpen(false);\n setMergedActivePickerIndex(customNextActiveIndex);\n }\n setNextActiveIndex(null);\n\n // Focus back\n if (customNextActiveIndex !== null && !disabled[customNextActiveIndex]) {\n raf(function () {\n var _ref$current;\n var ref = [startInputRef, endInputRef][customNextActiveIndex];\n (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.focus();\n });\n } else {\n setMergedOpen(false);\n }\n } else {\n setMergedOpen(false);\n setAfferentOpen(false);\n }\n });\n return [mergedOpen, mergedActivePickerIndex, firstTimeOpen, triggerOpen];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { getValue, updateValues } from \"../utils/miscUtil\";\nimport { getClosingViewDate, isSameYear, isSameMonth, isSameDecade } from \"../utils/dateUtil\";\nfunction getStartEndDistance(startDate, endDate, picker, generateConfig) {\n var startNext = getClosingViewDate(startDate, picker, generateConfig, 1);\n function getDistance(compareFunc) {\n if (compareFunc(startDate, endDate)) {\n return 'same';\n }\n if (compareFunc(startNext, endDate)) {\n return 'closing';\n }\n return 'far';\n }\n switch (picker) {\n case 'year':\n return getDistance(function (start, end) {\n return isSameDecade(generateConfig, start, end);\n });\n case 'quarter':\n case 'month':\n return getDistance(function (start, end) {\n return isSameYear(generateConfig, start, end);\n });\n default:\n return getDistance(function (start, end) {\n return isSameMonth(generateConfig, start, end);\n });\n }\n}\nfunction getRangeViewDate(values, index, picker, generateConfig) {\n var startDate = getValue(values, 0);\n var endDate = getValue(values, 1);\n if (index === 0) {\n return startDate;\n }\n if (startDate && endDate) {\n var distance = getStartEndDistance(startDate, endDate, picker, generateConfig);\n switch (distance) {\n case 'same':\n return startDate;\n case 'closing':\n return startDate;\n default:\n return getClosingViewDate(endDate, picker, generateConfig, -1);\n }\n }\n return startDate;\n}\nexport default function useRangeViewDates(_ref) {\n var values = _ref.values,\n picker = _ref.picker,\n defaultDates = _ref.defaultDates,\n generateConfig = _ref.generateConfig;\n var _React$useState = React.useState(function () {\n return [getValue(defaultDates, 0), getValue(defaultDates, 1)];\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n defaultViewDates = _React$useState2[0],\n setDefaultViewDates = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n viewDates = _React$useState4[0],\n setInternalViewDates = _React$useState4[1];\n var startDate = getValue(values, 0);\n var endDate = getValue(values, 1);\n function getViewDate(index) {\n // If set default view date, use it\n if (defaultViewDates[index]) {\n return defaultViewDates[index];\n }\n return getValue(viewDates, index) || getRangeViewDate(values, index, picker, generateConfig) || startDate || endDate || generateConfig.getNow();\n }\n function setViewDate(viewDate, index) {\n if (viewDate) {\n var newViewDates = updateValues(viewDates, viewDate, index);\n // Set view date will clean up default one\n setDefaultViewDates(\n // Should always be an array\n updateValues(defaultViewDates, null, index) || [null, null]);\n\n // Reset another one when not have value\n var anotherIndex = (index + 1) % 2;\n if (!getValue(values, anotherIndex)) {\n newViewDates = updateValues(newViewDates, viewDate, anotherIndex);\n }\n setInternalViewDates(newViewDates);\n } else if (startDate || endDate) {\n // Reset all when has values when `viewDate` is `null` which means from open trigger\n setInternalViewDates(null);\n }\n }\n return [getViewDate, setViewDate];\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport raf from \"rc-util/es/raf\";\nimport warning from \"rc-util/es/warning\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport { useCellRender } from \"./hooks/useCellRender\";\nimport useHoverValue from \"./hooks/useHoverValue\";\nimport usePickerInput from \"./hooks/usePickerInput\";\nimport usePresets from \"./hooks/usePresets\";\nimport useRangeDisabled from \"./hooks/useRangeDisabled\";\nimport useRangeOpen from \"./hooks/useRangeOpen\";\nimport useRangeViewDates from \"./hooks/useRangeViewDates\";\nimport useTextValueMapping from \"./hooks/useTextValueMapping\";\nimport useValueTexts from \"./hooks/useValueTexts\";\nimport PanelContext from \"./PanelContext\";\nimport PickerPanel from \"./PickerPanel\";\nimport PickerTrigger from \"./PickerTrigger\";\nimport PresetPanel from \"./PresetPanel\";\nimport RangeContext from \"./RangeContext\";\nimport { formatValue, getClosingViewDate, isEqual, isSameDate, isSameQuarter, isSameWeek, parseValue } from \"./utils/dateUtil\";\nimport getExtraFooter from \"./utils/getExtraFooter\";\nimport getRanges from \"./utils/getRanges\";\nimport { getValue, toArray, updateValues } from \"./utils/miscUtil\";\nimport { elementsContains, getDefaultFormat, getInputSize } from \"./utils/uiUtil\";\nimport { legacyPropsWarning } from \"./utils/warnUtil\";\nimport { getClearIcon } from \"./utils/getClearIcon\";\nfunction reorderValues(values, generateConfig) {\n if (values && values[0] && values[1] && generateConfig.isAfter(values[0], values[1])) {\n return [values[1], values[0]];\n }\n return values;\n}\nfunction canValueTrigger(value, index, disabled, allowEmpty) {\n if (value) {\n return true;\n }\n if (allowEmpty && allowEmpty[index]) {\n return true;\n }\n if (disabled[(index + 1) % 2]) {\n return true;\n }\n return false;\n}\n\n// TMP type to fit for ts 3.9.2\n\nfunction InnerRangePicker(props) {\n var _classNames2, _classNames3, _classNames4;\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-picker' : _ref$prefixCls,\n id = _ref.id,\n style = _ref.style,\n className = _ref.className,\n popupStyle = _ref.popupStyle,\n dropdownClassName = _ref.dropdownClassName,\n transitionName = _ref.transitionName,\n dropdownAlign = _ref.dropdownAlign,\n getPopupContainer = _ref.getPopupContainer,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale,\n placeholder = _ref.placeholder,\n autoFocus = _ref.autoFocus,\n disabled = _ref.disabled,\n format = _ref.format,\n _ref$picker = _ref.picker,\n picker = _ref$picker === void 0 ? 'date' : _ref$picker,\n showTime = _ref.showTime,\n use12Hours = _ref.use12Hours,\n _ref$separator = _ref.separator,\n separator = _ref$separator === void 0 ? '~' : _ref$separator,\n value = _ref.value,\n defaultValue = _ref.defaultValue,\n defaultPickerValue = _ref.defaultPickerValue,\n open = _ref.open,\n defaultOpen = _ref.defaultOpen,\n disabledDate = _ref.disabledDate,\n _disabledTime = _ref.disabledTime,\n dateRender = _ref.dateRender,\n monthCellRender = _ref.monthCellRender,\n cellRender = _ref.cellRender,\n panelRender = _ref.panelRender,\n presets = _ref.presets,\n ranges = _ref.ranges,\n allowEmpty = _ref.allowEmpty,\n allowClear = _ref.allowClear,\n suffixIcon = _ref.suffixIcon,\n clearIcon = _ref.clearIcon,\n pickerRef = _ref.pickerRef,\n inputReadOnly = _ref.inputReadOnly,\n mode = _ref.mode,\n renderExtraFooter = _ref.renderExtraFooter,\n onChange = _ref.onChange,\n onOpenChange = _ref.onOpenChange,\n onPanelChange = _ref.onPanelChange,\n onCalendarChange = _ref.onCalendarChange,\n _onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onMouseDown = _ref.onMouseDown,\n onMouseUp = _ref.onMouseUp,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave,\n onClick = _ref.onClick,\n _onOk = _ref.onOk,\n _onKeyDown = _ref.onKeyDown,\n components = _ref.components,\n order = _ref.order,\n direction = _ref.direction,\n activePickerIndex = _ref.activePickerIndex,\n _ref$autoComplete = _ref.autoComplete,\n autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,\n changeOnBlur = _ref.changeOnBlur;\n var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n var containerRef = useRef(null);\n var panelDivRef = useRef(null);\n var startInputDivRef = useRef(null);\n var endInputDivRef = useRef(null);\n var separatorRef = useRef(null);\n var startInputRef = useRef(null);\n var endInputRef = useRef(null);\n var arrowRef = useRef(null);\n\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n legacyPropsWarning(props);\n }\n\n // ============================= Misc ==============================\n var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours));\n\n // Operation ref\n var operationRef = useRef(null);\n var mergedDisabled = React.useMemo(function () {\n if (Array.isArray(disabled)) {\n return disabled;\n }\n return [disabled || false, disabled || false];\n }, [disabled]);\n\n // ============================= Value =============================\n var _useMergedState = useMergedState(null, {\n value: value,\n defaultValue: defaultValue,\n postState: function postState(values) {\n return picker === 'time' && !order ? values : reorderValues(values, generateConfig);\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setInnerValue = _useMergedState2[1];\n\n // =========================== View Date ===========================\n // Config view panel\n var _useRangeViewDates = useRangeViewDates({\n values: mergedValue,\n picker: picker,\n defaultDates: defaultPickerValue,\n generateConfig: generateConfig\n }),\n _useRangeViewDates2 = _slicedToArray(_useRangeViewDates, 2),\n getViewDate = _useRangeViewDates2[0],\n setViewDate = _useRangeViewDates2[1];\n\n // ========================= Select Values =========================\n var _useMergedState3 = useMergedState(mergedValue, {\n postState: function postState(values) {\n var postValues = values;\n if (mergedDisabled[0] && mergedDisabled[1]) {\n return postValues;\n }\n\n // Fill disabled unit\n for (var i = 0; i < 2; i += 1) {\n if (mergedDisabled[i] && !postValues && !getValue(postValues, i) && !getValue(allowEmpty, i)) {\n postValues = updateValues(postValues, generateConfig.getNow(), i);\n }\n }\n return postValues;\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n selectedValue = _useMergedState4[0],\n setSelectedValue = _useMergedState4[1];\n\n // ============================= Modes =============================\n var _useMergedState5 = useMergedState([picker, picker], {\n value: mode\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedModes = _useMergedState6[0],\n setInnerModes = _useMergedState6[1];\n useEffect(function () {\n setInnerModes([picker, picker]);\n }, [picker]);\n var triggerModesChange = function triggerModesChange(modes, values) {\n setInnerModes(modes);\n if (onPanelChange) {\n onPanelChange(values, modes);\n }\n };\n\n // ============================= Open ==============================\n var _useRangeOpen = useRangeOpen(defaultOpen, open, activePickerIndex, changeOnBlur, startInputRef, endInputRef, getValue(selectedValue, 0), getValue(selectedValue, 1), mergedDisabled, onOpenChange),\n _useRangeOpen2 = _slicedToArray(_useRangeOpen, 4),\n mergedOpen = _useRangeOpen2[0],\n mergedActivePickerIndex = _useRangeOpen2[1],\n firstTimeOpen = _useRangeOpen2[2],\n _triggerOpen = _useRangeOpen2[3];\n var startOpen = mergedOpen && mergedActivePickerIndex === 0;\n var endOpen = mergedOpen && mergedActivePickerIndex === 1;\n\n // ========================= Disable Date ==========================\n var _useRangeDisabled = useRangeDisabled({\n picker: picker,\n selectedValue: selectedValue,\n locale: locale,\n disabled: mergedDisabled,\n disabledDate: disabledDate,\n generateConfig: generateConfig\n }, !mergedOpen || firstTimeOpen),\n _useRangeDisabled2 = _slicedToArray(_useRangeDisabled, 2),\n disabledStartDate = _useRangeDisabled2[0],\n disabledEndDate = _useRangeDisabled2[1];\n\n // ============================= Popup =============================\n // Popup min width\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n popupMinWidth = _useState2[0],\n setPopupMinWidth = _useState2[1];\n useEffect(function () {\n if (!mergedOpen && containerRef.current) {\n setPopupMinWidth(containerRef.current.offsetWidth);\n }\n }, [mergedOpen]);\n\n // ============================ Trigger ============================\n function triggerOpenAndFocus(index) {\n _triggerOpen(true, index, 'open');\n // Use setTimeout to make sure panel DOM exists\n raf(function () {\n var _inputRef$current;\n var inputRef = [startInputRef, endInputRef][index];\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n }, 0);\n }\n function triggerChange(newValue, sourceIndex) {\n var values = newValue;\n var startValue = getValue(values, 0);\n var endValue = getValue(values, 1);\n\n // >>>>> Format start & end values\n if (startValue && endValue && generateConfig.isAfter(startValue, endValue)) {\n if (\n // WeekPicker only compare week\n picker === 'week' && !isSameWeek(generateConfig, locale.locale, startValue, endValue) ||\n // QuotaPicker only compare week\n picker === 'quarter' && !isSameQuarter(generateConfig, startValue, endValue) ||\n // Other non-TimePicker compare date\n picker !== 'week' && picker !== 'quarter' && picker !== 'time' && !isSameDate(generateConfig, startValue, endValue)) {\n // Clean up end date when start date is after end date\n if (sourceIndex === 0) {\n values = [startValue, null];\n endValue = null;\n } else {\n startValue = null;\n values = [null, endValue];\n }\n } else if (picker !== 'time' || order !== false) {\n // Reorder when in same date\n values = reorderValues(values, generateConfig);\n }\n }\n setSelectedValue(values);\n var startStr = values && values[0] ? formatValue(values[0], {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n }) : '';\n var endStr = values && values[1] ? formatValue(values[1], {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n }) : '';\n if (onCalendarChange) {\n var _info = {\n range: sourceIndex === 0 ? 'start' : 'end'\n };\n onCalendarChange(values, [startStr, endStr], _info);\n }\n\n // >>>>> Trigger `onChange` event\n var canStartValueTrigger = canValueTrigger(startValue, 0, mergedDisabled, allowEmpty);\n var canEndValueTrigger = canValueTrigger(endValue, 1, mergedDisabled, allowEmpty);\n var canTrigger = values === null || canStartValueTrigger && canEndValueTrigger;\n if (canTrigger) {\n // Trigger onChange only when value is validate\n setInnerValue(values);\n if (onChange && (!isEqual(generateConfig, getValue(mergedValue, 0), startValue) || !isEqual(generateConfig, getValue(mergedValue, 1), endValue))) {\n onChange(values, [startStr, endStr]);\n }\n }\n }\n var forwardKeyDown = function forwardKeyDown(e) {\n if (mergedOpen && operationRef.current && operationRef.current.onKeyDown) {\n // Let popup panel handle keyboard\n return operationRef.current.onKeyDown(e);\n }\n\n /* istanbul ignore next */\n /* eslint-disable no-lone-blocks */\n {\n warning(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');\n return false;\n }\n };\n\n // ============================= Text ==============================\n var sharedTextHooksProps = {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n };\n var _useValueTexts = useValueTexts(getValue(selectedValue, 0), sharedTextHooksProps),\n _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n startValueTexts = _useValueTexts2[0],\n firstStartValueText = _useValueTexts2[1];\n var _useValueTexts3 = useValueTexts(getValue(selectedValue, 1), sharedTextHooksProps),\n _useValueTexts4 = _slicedToArray(_useValueTexts3, 2),\n endValueTexts = _useValueTexts4[0],\n firstEndValueText = _useValueTexts4[1];\n var _onTextChange = function onTextChange(newText, index) {\n var inputDate = parseValue(newText, {\n locale: locale,\n formatList: formatList,\n generateConfig: generateConfig\n });\n var disabledFunc = index === 0 ? disabledStartDate : disabledEndDate;\n if (inputDate && !disabledFunc(inputDate)) {\n setSelectedValue(updateValues(selectedValue, inputDate, index));\n setViewDate(inputDate, index);\n }\n };\n var _useTextValueMapping = useTextValueMapping({\n valueTexts: startValueTexts,\n onTextChange: function onTextChange(newText) {\n return _onTextChange(newText, 0);\n }\n }),\n _useTextValueMapping2 = _slicedToArray(_useTextValueMapping, 3),\n startText = _useTextValueMapping2[0],\n triggerStartTextChange = _useTextValueMapping2[1],\n resetStartText = _useTextValueMapping2[2];\n var _useTextValueMapping3 = useTextValueMapping({\n valueTexts: endValueTexts,\n onTextChange: function onTextChange(newText) {\n return _onTextChange(newText, 1);\n }\n }),\n _useTextValueMapping4 = _slicedToArray(_useTextValueMapping3, 3),\n endText = _useTextValueMapping4[0],\n triggerEndTextChange = _useTextValueMapping4[1],\n resetEndText = _useTextValueMapping4[2];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n rangeHoverValue = _useState4[0],\n setRangeHoverValue = _useState4[1];\n\n // ========================== Hover Range ==========================\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n hoverRangedValue = _useState6[0],\n setHoverRangedValue = _useState6[1];\n var _useHoverValue = useHoverValue(startText, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useHoverValue2 = _slicedToArray(_useHoverValue, 3),\n startHoverValue = _useHoverValue2[0],\n onStartEnter = _useHoverValue2[1],\n onStartLeave = _useHoverValue2[2];\n var _useHoverValue3 = useHoverValue(endText, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useHoverValue4 = _slicedToArray(_useHoverValue3, 3),\n endHoverValue = _useHoverValue4[0],\n onEndEnter = _useHoverValue4[1],\n onEndLeave = _useHoverValue4[2];\n var onDateMouseEnter = function onDateMouseEnter(date) {\n setHoverRangedValue(updateValues(selectedValue, date, mergedActivePickerIndex));\n if (mergedActivePickerIndex === 0) {\n onStartEnter(date);\n } else {\n onEndEnter(date);\n }\n };\n var onDateMouseLeave = function onDateMouseLeave() {\n setHoverRangedValue(updateValues(selectedValue, null, mergedActivePickerIndex));\n if (mergedActivePickerIndex === 0) {\n onStartLeave();\n } else {\n onEndLeave();\n }\n };\n\n // ============================= Input =============================\n // We call effect to update `delayOpen` here since\n // when popup closed and input focused, should not trigger change when click another input\n var _React$useState = React.useState(mergedOpen),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n delayOpen = _React$useState2[0],\n setDelayOpen = _React$useState2[1];\n React.useEffect(function () {\n setDelayOpen(mergedOpen);\n }, [mergedOpen]);\n var onInternalBlur = function onInternalBlur(e) {\n if (changeOnBlur && delayOpen) {\n var selectedIndexValue = getValue(selectedValue, mergedActivePickerIndex);\n if (selectedIndexValue) {\n triggerChange(selectedValue, mergedActivePickerIndex);\n }\n }\n return onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n var getSharedInputHookProps = function getSharedInputHookProps(index, resetText) {\n return {\n blurToCancel: !changeOnBlur && needConfirmButton,\n forwardKeyDown: forwardKeyDown,\n onBlur: onInternalBlur,\n isClickOutside: function isClickOutside(target) {\n return !elementsContains([panelDivRef.current, startInputDivRef.current, endInputDivRef.current, containerRef.current], target);\n },\n onFocus: function onFocus(e) {\n if (_onFocus) {\n _onFocus(e);\n }\n },\n triggerOpen: function triggerOpen(newOpen) {\n if (newOpen) {\n _triggerOpen(newOpen, index, 'open');\n } else {\n _triggerOpen(newOpen,\n // Close directly if no selected value provided\n getValue(selectedValue, index) ? index : false, 'blur');\n }\n },\n onSubmit: function onSubmit() {\n if (\n // When user typing disabledDate with keyboard and enter, this value will be empty\n !selectedValue ||\n // Normal disabled check\n disabledDate && disabledDate(selectedValue[index])) {\n return false;\n }\n triggerChange(selectedValue, index);\n resetText();\n\n // Switch\n _triggerOpen(false, mergedActivePickerIndex, 'confirm');\n },\n onCancel: function onCancel() {\n _triggerOpen(false, index, 'cancel');\n setSelectedValue(mergedValue);\n resetText();\n }\n };\n };\n var sharedPickerInput = {\n onKeyDown: function onKeyDown(e, preventDefault) {\n _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e, preventDefault);\n },\n changeOnBlur: changeOnBlur\n };\n var _usePickerInput = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(0, resetStartText)), {}, {\n open: startOpen,\n value: startText\n }, sharedPickerInput)),\n _usePickerInput2 = _slicedToArray(_usePickerInput, 2),\n startInputProps = _usePickerInput2[0],\n _usePickerInput2$ = _usePickerInput2[1],\n startFocused = _usePickerInput2$.focused,\n startTyping = _usePickerInput2$.typing;\n var _usePickerInput3 = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(1, resetEndText)), {}, {\n open: endOpen,\n value: endText\n }, sharedPickerInput)),\n _usePickerInput4 = _slicedToArray(_usePickerInput3, 2),\n endInputProps = _usePickerInput4[0],\n _usePickerInput4$ = _usePickerInput4[1],\n endFocused = _usePickerInput4$.focused,\n endTyping = _usePickerInput4$.typing;\n\n // ========================== Click Picker ==========================\n var onPickerClick = function onPickerClick(e) {\n // When click inside the picker & outside the picker's input elements\n // the panel should still be opened\n if (onClick) {\n onClick(e);\n }\n if (!mergedOpen && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n if (!mergedDisabled[0]) {\n triggerOpenAndFocus(0);\n } else if (!mergedDisabled[1]) {\n triggerOpenAndFocus(1);\n }\n }\n };\n var onPickerMouseDown = function onPickerMouseDown(e) {\n // shouldn't affect input elements if picker is active\n if (onMouseDown) {\n onMouseDown(e);\n }\n if (mergedOpen && (startFocused || endFocused) && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n e.preventDefault();\n }\n };\n\n // ============================= Sync ==============================\n // Close should sync back with text value\n var startStr = mergedValue && mergedValue[0] ? formatValue(mergedValue[0], {\n locale: locale,\n format: 'YYYYMMDDHHmmss',\n generateConfig: generateConfig\n }) : '';\n var endStr = mergedValue && mergedValue[1] ? formatValue(mergedValue[1], {\n locale: locale,\n format: 'YYYYMMDDHHmmss',\n generateConfig: generateConfig\n }) : '';\n useEffect(function () {\n if (!mergedOpen) {\n setSelectedValue(mergedValue);\n if (!startValueTexts.length || startValueTexts[0] === '') {\n triggerStartTextChange('');\n } else if (firstStartValueText !== startText) {\n resetStartText();\n }\n if (!endValueTexts.length || endValueTexts[0] === '') {\n triggerEndTextChange('');\n } else if (firstEndValueText !== endText) {\n resetEndText();\n }\n }\n }, [mergedOpen, startValueTexts, endValueTexts]);\n\n // Sync innerValue with control mode\n useEffect(function () {\n setSelectedValue(mergedValue);\n }, [startStr, endStr]);\n var mergedCellRender = useCellRender({\n cellRender: cellRender,\n monthCellRender: monthCellRender,\n dateRender: dateRender\n });\n var panelDateRender = React.useMemo(function () {\n if (!mergedCellRender) return undefined;\n return function (date, info) {\n return mergedCellRender(date, _objectSpread(_objectSpread({}, info), {}, {\n range: mergedActivePickerIndex ? 'end' : 'start'\n }));\n };\n }, [mergedActivePickerIndex, mergedCellRender]);\n\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n if (value && Array.isArray(disabled) && (getValue(disabled, 0) && !getValue(value, 0) || getValue(disabled, 1) && !getValue(value, 1))) {\n warning(false, '`disabled` should not set with empty `value`. You should set `allowEmpty` or `value` instead.');\n }\n warning(!dateRender, \"'dateRender' is deprecated. Please use 'cellRender' instead.\");\n warning(!monthCellRender, \"'monthCellRender' is deprecated. Please use 'cellRender' instead.\");\n warning(!clearIcon, '`clearIcon` will be removed in future. Please use `allowClear` instead.');\n }\n\n // ============================ Private ============================\n if (pickerRef) {\n pickerRef.current = {\n focus: function focus() {\n if (startInputRef.current) {\n startInputRef.current.focus();\n }\n },\n blur: function blur() {\n if (startInputRef.current) {\n startInputRef.current.blur();\n }\n if (endInputRef.current) {\n endInputRef.current.blur();\n }\n }\n };\n }\n\n // ============================ Ranges =============================\n var presetList = usePresets(presets, ranges);\n\n // ============================= Panel =============================\n function renderPanel() {\n var panelPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var panelProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var panelHoverRangedValue = null;\n if (mergedOpen && hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1] && generateConfig.isAfter(hoverRangedValue[1], hoverRangedValue[0])) {\n panelHoverRangedValue = hoverRangedValue;\n }\n var panelShowTime = showTime;\n if (showTime && _typeof(showTime) === 'object' && showTime.defaultValue) {\n var timeDefaultValues = showTime.defaultValue;\n panelShowTime = _objectSpread(_objectSpread({}, showTime), {}, {\n defaultValue: getValue(timeDefaultValues, mergedActivePickerIndex) || undefined\n });\n }\n return /*#__PURE__*/React.createElement(RangeContext.Provider, {\n value: {\n inRange: true,\n panelPosition: panelPosition,\n rangedValue: rangeHoverValue || selectedValue,\n hoverRangedValue: panelHoverRangedValue\n }\n }, /*#__PURE__*/React.createElement(PickerPanel, _extends({}, props, panelProps, {\n cellRender: panelDateRender,\n showTime: panelShowTime,\n mode: mergedModes[mergedActivePickerIndex],\n generateConfig: generateConfig,\n style: undefined,\n direction: direction,\n disabledDate: mergedActivePickerIndex === 0 ? disabledStartDate : disabledEndDate,\n disabledTime: function disabledTime(date) {\n if (_disabledTime) {\n return _disabledTime(date, mergedActivePickerIndex === 0 ? 'start' : 'end');\n }\n return false;\n },\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-panel-focused\"), mergedActivePickerIndex === 0 ? !startTyping : !endTyping)),\n value: getValue(selectedValue, mergedActivePickerIndex),\n locale: locale,\n tabIndex: -1,\n onPanelChange: function onPanelChange(date, newMode) {\n // clear hover value when panel change\n if (mergedActivePickerIndex === 0) {\n onStartLeave(true);\n }\n if (mergedActivePickerIndex === 1) {\n onEndLeave(true);\n }\n triggerModesChange(updateValues(mergedModes, newMode, mergedActivePickerIndex), updateValues(selectedValue, date, mergedActivePickerIndex));\n var viewDate = date;\n if (panelPosition === 'right' && mergedModes[mergedActivePickerIndex] === newMode) {\n viewDate = getClosingViewDate(viewDate, newMode, generateConfig, -1);\n }\n setViewDate(viewDate, mergedActivePickerIndex);\n },\n onOk: null,\n onSelect: undefined,\n onChange: undefined,\n defaultValue: mergedActivePickerIndex === 0 ? getValue(selectedValue, 1) : getValue(selectedValue, 0)\n // defaultPickerValue={undefined}\n })));\n }\n\n var arrowLeft = 0;\n var panelLeft = 0;\n if (mergedActivePickerIndex && startInputDivRef.current && separatorRef.current && panelDivRef.current && arrowRef.current) {\n // Arrow offset\n arrowLeft = startInputDivRef.current.offsetWidth + separatorRef.current.offsetWidth;\n\n // If panelWidth - arrowWidth - arrowMarginLeft < arrowLeft, panel should move to right side.\n // If arrowOffsetLeft > arrowLeft, arrowMarginLeft = arrowOffsetLeft - arrowLeft\n var arrowMarginLeft = arrowRef.current.offsetLeft > arrowLeft ? arrowRef.current.offsetLeft - arrowLeft : arrowRef.current.offsetLeft;\n var panelWidth = panelDivRef.current.offsetWidth;\n var arrowWidth = arrowRef.current.offsetWidth;\n if (panelWidth && arrowWidth && arrowLeft > panelWidth - arrowWidth - (direction === 'rtl' ? 0 : arrowMarginLeft)) {\n panelLeft = arrowLeft;\n }\n }\n var arrowPositionStyle = direction === 'rtl' ? {\n right: arrowLeft\n } : {\n left: arrowLeft\n };\n function renderPanels() {\n var panels;\n var extraNode = getExtraFooter(prefixCls, mergedModes[mergedActivePickerIndex], renderExtraFooter);\n var rangesNode = getRanges({\n prefixCls: prefixCls,\n components: components,\n needConfirmButton: needConfirmButton,\n okDisabled: !getValue(selectedValue, mergedActivePickerIndex) || disabledDate && disabledDate(selectedValue[mergedActivePickerIndex]),\n locale: locale,\n // rangeList,\n onOk: function onOk() {\n var selectedIndexValue = getValue(selectedValue, mergedActivePickerIndex);\n if (selectedIndexValue) {\n triggerChange(selectedValue, mergedActivePickerIndex);\n _onOk === null || _onOk === void 0 ? void 0 : _onOk(selectedValue);\n\n // Switch\n _triggerOpen(false, mergedActivePickerIndex, 'confirm');\n }\n }\n });\n if (picker !== 'time' && !showTime) {\n var viewDate = getViewDate(mergedActivePickerIndex);\n var nextViewDate = getClosingViewDate(viewDate, picker, generateConfig);\n var currentMode = mergedModes[mergedActivePickerIndex];\n var showDoublePanel = currentMode === picker;\n var leftPanel = renderPanel(showDoublePanel ? 'left' : false, {\n pickerValue: viewDate,\n onPickerValueChange: function onPickerValueChange(newViewDate) {\n setViewDate(newViewDate, mergedActivePickerIndex);\n }\n });\n var rightPanel = renderPanel('right', {\n pickerValue: nextViewDate,\n onPickerValueChange: function onPickerValueChange(newViewDate) {\n setViewDate(getClosingViewDate(newViewDate, picker, generateConfig, -1), mergedActivePickerIndex);\n }\n });\n if (direction === 'rtl') {\n panels = /*#__PURE__*/React.createElement(React.Fragment, null, rightPanel, showDoublePanel && leftPanel);\n } else {\n panels = /*#__PURE__*/React.createElement(React.Fragment, null, leftPanel, showDoublePanel && rightPanel);\n }\n } else {\n panels = renderPanel();\n }\n var mergedNodes = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-layout\")\n }, /*#__PURE__*/React.createElement(PresetPanel, {\n prefixCls: prefixCls,\n presets: presetList,\n onClick: function onClick(nextValue) {\n triggerChange(nextValue, null);\n _triggerOpen(false, mergedActivePickerIndex, 'preset');\n },\n onHover: function onHover(hoverValue) {\n setRangeHoverValue(hoverValue);\n }\n }), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panels\")\n }, panels), (extraNode || rangesNode) && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, extraNode, rangesNode)));\n if (panelRender) {\n mergedNodes = panelRender(mergedNodes);\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-container\"),\n style: {\n marginLeft: panelLeft\n },\n ref: panelDivRef,\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n }, mergedNodes);\n }\n var rangePanel = /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-range-wrapper\"), \"\".concat(prefixCls, \"-\").concat(picker, \"-range-wrapper\")),\n style: {\n minWidth: popupMinWidth\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: arrowRef,\n className: \"\".concat(prefixCls, \"-range-arrow\"),\n style: arrowPositionStyle\n }), renderPanels());\n\n // ============================= Icons =============================\n var suffixNode;\n if (suffixIcon) {\n suffixNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\"),\n onMouseDown: function onMouseDown(e) {\n // Not lost focus\n e.preventDefault();\n }\n }, suffixIcon);\n }\n var mergedClearIcon = getClearIcon(prefixCls, allowClear, clearIcon);\n var clearNode = /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n onMouseUp: function onMouseUp(e) {\n e.preventDefault();\n e.stopPropagation();\n var values = mergedValue;\n if (!mergedDisabled[0]) {\n values = updateValues(values, null, 0);\n }\n if (!mergedDisabled[1]) {\n values = updateValues(values, null, 1);\n }\n triggerChange(values, null);\n _triggerOpen(false, mergedActivePickerIndex, 'clear');\n },\n className: \"\".concat(prefixCls, \"-clear\"),\n role: \"button\"\n }, mergedClearIcon);\n var mergedAllowClear = allowClear && (getValue(mergedValue, 0) && !mergedDisabled[0] || getValue(mergedValue, 1) && !mergedDisabled[1]);\n var inputSharedProps = {\n size: getInputSize(picker, formatList[0], generateConfig)\n };\n var activeBarLeft = 0;\n var activeBarWidth = 0;\n if (startInputDivRef.current && endInputDivRef.current && separatorRef.current) {\n if (mergedActivePickerIndex === 0) {\n activeBarWidth = startInputDivRef.current.offsetWidth;\n } else {\n activeBarLeft = arrowLeft;\n activeBarWidth = endInputDivRef.current.offsetWidth;\n }\n }\n var activeBarPositionStyle = direction === 'rtl' ? {\n right: activeBarLeft\n } : {\n left: activeBarLeft\n };\n // ============================ Return =============================\n var onContextSelect = function onContextSelect(date, type) {\n var values = updateValues(selectedValue, date, mergedActivePickerIndex);\n if (type === 'submit' || type !== 'key' && !needConfirmButton) {\n // triggerChange will also update selected values\n triggerChange(values, mergedActivePickerIndex);\n // clear hover value style\n if (mergedActivePickerIndex === 0) {\n onStartLeave();\n } else {\n onEndLeave();\n }\n\n // Switch\n var nextActivePickerIndex = mergedActivePickerIndex === 0 ? 1 : 0;\n if (mergedDisabled[nextActivePickerIndex]) {\n _triggerOpen(false, false, 'confirm');\n } else {\n _triggerOpen(false, mergedActivePickerIndex, 'confirm');\n }\n } else {\n setSelectedValue(values);\n }\n };\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: {\n operationRef: operationRef,\n hideHeader: picker === 'time',\n onDateMouseEnter: onDateMouseEnter,\n onDateMouseLeave: onDateMouseLeave,\n hideRanges: true,\n onSelect: onContextSelect,\n open: mergedOpen\n }\n }, /*#__PURE__*/React.createElement(PickerTrigger, {\n visible: mergedOpen,\n popupElement: rangePanel,\n popupStyle: popupStyle,\n prefixCls: prefixCls,\n dropdownClassName: dropdownClassName,\n dropdownAlign: dropdownAlign,\n getPopupContainer: getPopupContainer,\n transitionName: transitionName,\n range: true,\n direction: direction\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: containerRef,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-range\"), className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), mergedDisabled[0] && mergedDisabled[1]), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), mergedActivePickerIndex === 0 ? startFocused : endFocused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames2)),\n style: style,\n onClick: onPickerClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDown: onPickerMouseDown,\n onMouseUp: onMouseUp\n }, pickAttrs(props, {\n aria: true,\n data: true\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), (_classNames3 = {}, _defineProperty(_classNames3, \"\".concat(prefixCls, \"-input-active\"), mergedActivePickerIndex === 0), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-input-placeholder\"), !!startHoverValue), _classNames3)),\n ref: startInputDivRef\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n id: id,\n disabled: mergedDisabled[0],\n readOnly: inputReadOnly || typeof formatList[0] === 'function' || !startTyping,\n value: startHoverValue || startText,\n onChange: function onChange(e) {\n triggerStartTextChange(e.target.value);\n },\n autoFocus: autoFocus,\n placeholder: getValue(placeholder, 0) || '',\n ref: startInputRef\n }, startInputProps, inputSharedProps, {\n autoComplete: autoComplete\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-range-separator\"),\n ref: separatorRef\n }, separator), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), (_classNames4 = {}, _defineProperty(_classNames4, \"\".concat(prefixCls, \"-input-active\"), mergedActivePickerIndex === 1), _defineProperty(_classNames4, \"\".concat(prefixCls, \"-input-placeholder\"), !!endHoverValue), _classNames4)),\n ref: endInputDivRef\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n disabled: mergedDisabled[1],\n readOnly: inputReadOnly || typeof formatList[0] === 'function' || !endTyping,\n value: endHoverValue || endText,\n onChange: function onChange(e) {\n triggerEndTextChange(e.target.value);\n },\n placeholder: getValue(placeholder, 1) || '',\n ref: endInputRef\n }, endInputProps, inputSharedProps, {\n autoComplete: autoComplete\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-active-bar\"),\n style: _objectSpread(_objectSpread({}, activeBarPositionStyle), {}, {\n width: activeBarWidth,\n position: 'absolute'\n })\n }), suffixNode, mergedAllowClear && clearNode)));\n}\n\n// Wrap with class component to enable pass generic with instance method\nvar RangePicker = /*#__PURE__*/function (_React$Component) {\n _inherits(RangePicker, _React$Component);\n var _super = _createSuper(RangePicker);\n function RangePicker() {\n var _this;\n _classCallCheck(this, RangePicker);\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 _defineProperty(_assertThisInitialized(_this), \"pickerRef\", /*#__PURE__*/React.createRef());\n _defineProperty(_assertThisInitialized(_this), \"focus\", function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.focus();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"blur\", function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.blur();\n }\n });\n return _this;\n }\n _createClass(RangePicker, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(InnerRangePicker, _extends({}, this.props, {\n pickerRef: this.pickerRef\n }));\n }\n }]);\n return RangePicker;\n}(React.Component);\nexport default RangePicker;","import Picker from \"./Picker\";\nimport PickerPanel from \"./PickerPanel\";\nimport RangePicker from \"./RangePicker\";\nexport { PickerPanel, RangePicker };\nexport default Picker;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nvar Indent = function Indent(_ref) {\n var prefixCls = _ref.prefixCls,\n level = _ref.level,\n isStart = _ref.isStart,\n isEnd = _ref.isEnd;\n var baseClassName = \"\".concat(prefixCls, \"-indent-unit\");\n var list = [];\n for (var i = 0; i < level; i += 1) {\n var _classNames;\n list.push( /*#__PURE__*/React.createElement(\"span\", {\n key: i,\n className: classNames(baseClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(baseClassName, \"-start\"), isStart[i]), _defineProperty(_classNames, \"\".concat(baseClassName, \"-end\"), isEnd[i]), _classNames))\n }));\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-indent\")\n }, list);\n};\nexport default /*#__PURE__*/React.memo(Indent);","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 _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"eventKey\", \"className\", \"style\", \"dragOver\", \"dragOverGapTop\", \"dragOverGapBottom\", \"isLeaf\", \"isStart\", \"isEnd\", \"expanded\", \"selected\", \"checked\", \"halfChecked\", \"loading\", \"domRef\", \"active\", \"data\", \"onMouseMove\", \"selectable\"];\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\n// @ts-ignore\nimport { TreeContext } from './contextTypes';\nimport Indent from './Indent';\nimport { convertNodePropsToEventData } from './utils/treeUtil';\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\nvar defaultTitle = '---';\nvar InternalTreeNode = /*#__PURE__*/function (_React$Component) {\n _inherits(InternalTreeNode, _React$Component);\n var _super = _createSuper(InternalTreeNode);\n function InternalTreeNode() {\n var _this;\n _classCallCheck(this, InternalTreeNode);\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 dragNodeHighlight: false\n };\n _this.selectHandle = void 0;\n _this.cacheIndent = void 0;\n _this.onSelectorClick = function (e) {\n // Click trigger before select/check operation\n var onNodeClick = _this.props.context.onNodeClick;\n onNodeClick(e, convertNodePropsToEventData(_this.props));\n if (_this.isSelectable()) {\n _this.onSelect(e);\n } else {\n _this.onCheck(e);\n }\n };\n _this.onSelectorDoubleClick = function (e) {\n var onNodeDoubleClick = _this.props.context.onNodeDoubleClick;\n onNodeDoubleClick(e, convertNodePropsToEventData(_this.props));\n };\n _this.onSelect = function (e) {\n if (_this.isDisabled()) return;\n var onNodeSelect = _this.props.context.onNodeSelect;\n onNodeSelect(e, convertNodePropsToEventData(_this.props));\n };\n _this.onCheck = function (e) {\n if (_this.isDisabled()) return;\n var _this$props = _this.props,\n disableCheckbox = _this$props.disableCheckbox,\n checked = _this$props.checked;\n var onNodeCheck = _this.props.context.onNodeCheck;\n if (!_this.isCheckable() || disableCheckbox) return;\n var targetChecked = !checked;\n onNodeCheck(e, convertNodePropsToEventData(_this.props), targetChecked);\n };\n _this.onMouseEnter = function (e) {\n var onNodeMouseEnter = _this.props.context.onNodeMouseEnter;\n onNodeMouseEnter(e, convertNodePropsToEventData(_this.props));\n };\n _this.onMouseLeave = function (e) {\n var onNodeMouseLeave = _this.props.context.onNodeMouseLeave;\n onNodeMouseLeave(e, convertNodePropsToEventData(_this.props));\n };\n _this.onContextMenu = function (e) {\n var onNodeContextMenu = _this.props.context.onNodeContextMenu;\n onNodeContextMenu(e, convertNodePropsToEventData(_this.props));\n };\n _this.onDragStart = function (e) {\n var onNodeDragStart = _this.props.context.onNodeDragStart;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: true\n });\n onNodeDragStart(e, _assertThisInitialized(_this));\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n };\n _this.onDragEnter = function (e) {\n var onNodeDragEnter = _this.props.context.onNodeDragEnter;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, _assertThisInitialized(_this));\n };\n _this.onDragOver = function (e) {\n var onNodeDragOver = _this.props.context.onNodeDragOver;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, _assertThisInitialized(_this));\n };\n _this.onDragLeave = function (e) {\n var onNodeDragLeave = _this.props.context.onNodeDragLeave;\n e.stopPropagation();\n onNodeDragLeave(e, _assertThisInitialized(_this));\n };\n _this.onDragEnd = function (e) {\n var onNodeDragEnd = _this.props.context.onNodeDragEnd;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDragEnd(e, _assertThisInitialized(_this));\n };\n _this.onDrop = function (e) {\n var onNodeDrop = _this.props.context.onNodeDrop;\n e.preventDefault();\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDrop(e, _assertThisInitialized(_this));\n };\n // Disabled item still can be switch\n _this.onExpand = function (e) {\n var _this$props2 = _this.props,\n loading = _this$props2.loading,\n onNodeExpand = _this$props2.context.onNodeExpand;\n if (loading) return;\n onNodeExpand(e, convertNodePropsToEventData(_this.props));\n };\n // Drag usage\n _this.setSelectHandle = function (node) {\n _this.selectHandle = node;\n };\n _this.getNodeState = function () {\n var expanded = _this.props.expanded;\n if (_this.isLeaf()) {\n return null;\n }\n return expanded ? ICON_OPEN : ICON_CLOSE;\n };\n _this.hasChildren = function () {\n var eventKey = _this.props.eventKey;\n var keyEntities = _this.props.context.keyEntities;\n var _ref = keyEntities[eventKey] || {},\n children = _ref.children;\n return !!(children || []).length;\n };\n _this.isLeaf = function () {\n var _this$props3 = _this.props,\n isLeaf = _this$props3.isLeaf,\n loaded = _this$props3.loaded;\n var loadData = _this.props.context.loadData;\n var hasChildren = _this.hasChildren();\n if (isLeaf === false) {\n return false;\n }\n return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;\n };\n _this.isDisabled = function () {\n var disabled = _this.props.disabled;\n var treeDisabled = _this.props.context.disabled;\n return !!(treeDisabled || disabled);\n };\n _this.isCheckable = function () {\n var checkable = _this.props.checkable;\n var treeCheckable = _this.props.context.checkable;\n // Return false if tree or treeNode is not checkable\n if (!treeCheckable || checkable === false) return false;\n return treeCheckable;\n };\n // Load data to avoid default expanded tree without data\n _this.syncLoadData = function (props) {\n var expanded = props.expanded,\n loading = props.loading,\n loaded = props.loaded;\n var _this$props$context = _this.props.context,\n loadData = _this$props$context.loadData,\n onNodeLoad = _this$props$context.onNodeLoad;\n if (loading) {\n return;\n }\n // read from state to avoid loadData at same time\n if (loadData && expanded && !_this.isLeaf()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n if (!_this.hasChildren() && !loaded) {\n onNodeLoad(convertNodePropsToEventData(_this.props));\n }\n }\n };\n _this.isDraggable = function () {\n var _this$props4 = _this.props,\n data = _this$props4.data,\n draggable = _this$props4.context.draggable;\n return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data)));\n };\n // ==================== Render: Drag Handler ====================\n _this.renderDragHandler = function () {\n var _this$props$context2 = _this.props.context,\n draggable = _this$props$context2.draggable,\n prefixCls = _this$props$context2.prefixCls;\n return (draggable === null || draggable === void 0 ? void 0 : draggable.icon) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-draggable-icon\")\n }, draggable.icon) : null;\n };\n // ====================== Render: Switcher ======================\n _this.renderSwitcherIconDom = function (isLeaf) {\n var switcherIconFromProps = _this.props.switcherIcon;\n var switcherIconFromCtx = _this.props.context.switcherIcon;\n var switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n // if switcherIconDom is null, no render switcher span\n if (typeof switcherIcon === 'function') {\n return switcherIcon(_objectSpread(_objectSpread({}, _this.props), {}, {\n isLeaf: isLeaf\n }));\n }\n return switcherIcon;\n };\n // Switcher\n _this.renderSwitcher = function () {\n var expanded = _this.props.expanded;\n var prefixCls = _this.props.context.prefixCls;\n if (_this.isLeaf()) {\n // if switcherIconDom is null, no render switcher span\n var _switcherIconDom = _this.renderSwitcherIconDom(true);\n return _switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher-noop\"))\n }, _switcherIconDom) : null;\n }\n var switcherCls = classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher_\").concat(expanded ? ICON_OPEN : ICON_CLOSE));\n var switcherIconDom = _this.renderSwitcherIconDom(false);\n return switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: _this.onExpand,\n className: switcherCls\n }, switcherIconDom) : null;\n };\n // ====================== Render: Checkbox ======================\n // Checkbox\n _this.renderCheckbox = function () {\n var _this$props5 = _this.props,\n checked = _this$props5.checked,\n halfChecked = _this$props5.halfChecked,\n disableCheckbox = _this$props5.disableCheckbox;\n var prefixCls = _this.props.context.prefixCls;\n var disabled = _this.isDisabled();\n var checkable = _this.isCheckable();\n if (!checkable) return null;\n // [Legacy] Custom element should be separate with `checkable` in future\n var $custom = typeof checkable !== 'boolean' ? checkable : null;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-checkbox\"), checked && \"\".concat(prefixCls, \"-checkbox-checked\"), !checked && halfChecked && \"\".concat(prefixCls, \"-checkbox-indeterminate\"), (disabled || disableCheckbox) && \"\".concat(prefixCls, \"-checkbox-disabled\")),\n onClick: _this.onCheck\n }, $custom);\n };\n // ==================== Render: Title + Icon ====================\n _this.renderIcon = function () {\n var loading = _this.props.loading;\n var prefixCls = _this.props.context.prefixCls;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__\").concat(_this.getNodeState() || 'docu'), loading && \"\".concat(prefixCls, \"-icon_loading\"))\n });\n };\n // Icon + Title\n _this.renderSelector = function () {\n var dragNodeHighlight = _this.state.dragNodeHighlight;\n var _this$props6 = _this.props,\n _this$props6$title = _this$props6.title,\n title = _this$props6$title === void 0 ? defaultTitle : _this$props6$title,\n selected = _this$props6.selected,\n icon = _this$props6.icon,\n loading = _this$props6.loading,\n data = _this$props6.data;\n var _this$props$context3 = _this.props.context,\n prefixCls = _this$props$context3.prefixCls,\n showIcon = _this$props$context3.showIcon,\n treeIcon = _this$props$context3.icon,\n loadData = _this$props$context3.loadData,\n titleRender = _this$props$context3.titleRender;\n var disabled = _this.isDisabled();\n var wrapClass = \"\".concat(prefixCls, \"-node-content-wrapper\");\n // Icon - Still show loading icon when loading without showIcon\n var $icon;\n if (showIcon) {\n var currentIcon = icon || treeIcon;\n $icon = currentIcon ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__customize\"))\n }, typeof currentIcon === 'function' ? currentIcon(_this.props) : currentIcon) : _this.renderIcon();\n } else if (loadData && loading) {\n $icon = _this.renderIcon();\n }\n // Title\n var titleNode;\n if (typeof title === 'function') {\n titleNode = title(data);\n } else if (titleRender) {\n titleNode = titleRender(data);\n } else {\n titleNode = title;\n }\n var $title = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, titleNode);\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: _this.setSelectHandle,\n title: typeof title === 'string' ? title : '',\n className: classNames(\"\".concat(wrapClass), \"\".concat(wrapClass, \"-\").concat(_this.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && \"\".concat(prefixCls, \"-node-selected\")),\n onMouseEnter: _this.onMouseEnter,\n onMouseLeave: _this.onMouseLeave,\n onContextMenu: _this.onContextMenu,\n onClick: _this.onSelectorClick,\n onDoubleClick: _this.onSelectorDoubleClick\n }, $icon, $title, _this.renderDropIndicator());\n };\n // =================== Render: Drop Indicator ===================\n _this.renderDropIndicator = function () {\n var _this$props7 = _this.props,\n disabled = _this$props7.disabled,\n eventKey = _this$props7.eventKey;\n var _this$props$context4 = _this.props.context,\n draggable = _this$props$context4.draggable,\n dropLevelOffset = _this$props$context4.dropLevelOffset,\n dropPosition = _this$props$context4.dropPosition,\n prefixCls = _this$props$context4.prefixCls,\n indent = _this$props$context4.indent,\n dropIndicatorRender = _this$props$context4.dropIndicatorRender,\n dragOverNodeKey = _this$props$context4.dragOverNodeKey,\n direction = _this$props$context4.direction;\n var rootDraggable = !!draggable;\n // allowDrop is calculated in Tree.tsx, there is no need for calc it here\n var showIndicator = !disabled && rootDraggable && dragOverNodeKey === eventKey;\n // This is a hot fix which is already fixed in\n // https://github.com/react-component/tree/pull/743/files\n // But some case need break point so we hack on this\n // ref https://github.com/ant-design/ant-design/issues/43493\n var mergedIndent = indent !== null && indent !== void 0 ? indent : _this.cacheIndent;\n _this.cacheIndent = indent;\n return showIndicator ? dropIndicatorRender({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n indent: mergedIndent,\n prefixCls: prefixCls,\n direction: direction\n }) : null;\n };\n return _this;\n }\n _createClass(InternalTreeNode, [{\n key: \"componentDidMount\",\n value:\n // Isomorphic needn't load data in server side\n function componentDidMount() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"isSelectable\",\n value: function isSelectable() {\n var selectable = this.props.selectable;\n var treeSelectable = this.props.context.selectable;\n // Ignore when selectable is undefined or null\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n return treeSelectable;\n }\n }, {\n key: \"render\",\n value:\n // =========================== Render ===========================\n function render() {\n var _classNames;\n var _this$props8 = this.props,\n eventKey = _this$props8.eventKey,\n className = _this$props8.className,\n style = _this$props8.style,\n dragOver = _this$props8.dragOver,\n dragOverGapTop = _this$props8.dragOverGapTop,\n dragOverGapBottom = _this$props8.dragOverGapBottom,\n isLeaf = _this$props8.isLeaf,\n isStart = _this$props8.isStart,\n isEnd = _this$props8.isEnd,\n expanded = _this$props8.expanded,\n selected = _this$props8.selected,\n checked = _this$props8.checked,\n halfChecked = _this$props8.halfChecked,\n loading = _this$props8.loading,\n domRef = _this$props8.domRef,\n active = _this$props8.active,\n data = _this$props8.data,\n onMouseMove = _this$props8.onMouseMove,\n selectable = _this$props8.selectable,\n otherProps = _objectWithoutProperties(_this$props8, _excluded);\n var _this$props$context5 = this.props.context,\n prefixCls = _this$props$context5.prefixCls,\n filterTreeNode = _this$props$context5.filterTreeNode,\n keyEntities = _this$props$context5.keyEntities,\n dropContainerKey = _this$props$context5.dropContainerKey,\n dropTargetKey = _this$props$context5.dropTargetKey,\n draggingNodeKey = _this$props$context5.draggingNodeKey;\n var disabled = this.isDisabled();\n var dataOrAriaAttributeProps = pickAttrs(otherProps, {\n aria: true,\n data: true\n });\n var _ref2 = keyEntities[eventKey] || {},\n level = _ref2.level;\n var isEndNode = isEnd[isEnd.length - 1];\n var mergedDraggable = this.isDraggable();\n var draggableWithoutDisabled = !disabled && mergedDraggable;\n var dragging = draggingNodeKey === eventKey;\n var ariaSelected = selectable !== undefined ? {\n 'aria-selected': !!selectable\n } : undefined;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: domRef,\n className: classNames(className, \"\".concat(prefixCls, \"-treenode\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-switcher-\").concat(expanded ? 'open' : 'close'), !isLeaf), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-checked\"), checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-indeterminate\"), halfChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-selected\"), selected), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-active\"), active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-leaf-last\"), isEndNode), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-draggable\"), mergedDraggable), _defineProperty(_classNames, \"dragging\", dragging), _defineProperty(_classNames, 'drop-target', dropTargetKey === eventKey), _defineProperty(_classNames, 'drop-container', dropContainerKey === eventKey), _defineProperty(_classNames, 'drag-over', !disabled && dragOver), _defineProperty(_classNames, 'drag-over-gap-top', !disabled && dragOverGapTop), _defineProperty(_classNames, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), _defineProperty(_classNames, 'filter-node', filterTreeNode && filterTreeNode(convertNodePropsToEventData(this.props))), _classNames)),\n style: style\n // Draggable config\n ,\n draggable: draggableWithoutDisabled,\n \"aria-grabbed\": dragging,\n onDragStart: draggableWithoutDisabled ? this.onDragStart : undefined\n // Drop config\n ,\n onDragEnter: mergedDraggable ? this.onDragEnter : undefined,\n onDragOver: mergedDraggable ? this.onDragOver : undefined,\n onDragLeave: mergedDraggable ? this.onDragLeave : undefined,\n onDrop: mergedDraggable ? this.onDrop : undefined,\n onDragEnd: mergedDraggable ? this.onDragEnd : undefined,\n onMouseMove: onMouseMove\n }, ariaSelected, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(Indent, {\n prefixCls: prefixCls,\n level: level,\n isStart: isStart,\n isEnd: isEnd\n }), this.renderDragHandler(), this.renderSwitcher(), this.renderCheckbox(), this.renderSelector());\n }\n }]);\n return InternalTreeNode;\n}(React.Component);\nvar ContextTreeNode = function ContextTreeNode(props) {\n return /*#__PURE__*/React.createElement(TreeContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalTreeNode, _extends({}, props, {\n context: context\n }));\n });\n};\nContextTreeNode.displayName = 'TreeNode';\nContextTreeNode.isTreeNode = 1;\nexport default ContextTreeNode;","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\nimport * as React from 'react';\nexport var TreeContext = /*#__PURE__*/React.createContext(null);","export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Trigger only when component unmount\n */\nexport default function useUnmount(triggerStart, triggerEnd) {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n firstMount = _React$useState2[0],\n setFirstMount = _React$useState2[1];\n React.useLayoutEffect(function () {\n if (firstMount) {\n triggerStart();\n return function () {\n triggerEnd();\n };\n }\n }, [firstMount]);\n React.useLayoutEffect(function () {\n setFirstMount(true);\n return function () {\n setFirstMount(false);\n };\n }, []);\n}","import _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"style\", \"motion\", \"motionNodes\", \"motionType\", \"onMotionStart\", \"onMotionEnd\", \"active\", \"treeNodeRequiredProps\"];\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { TreeContext } from './contextTypes';\nimport TreeNode from './TreeNode';\nimport useUnmount from './useUnmount';\nimport { getTreeNodeProps } from './utils/treeUtil';\nvar MotionTreeNode = function MotionTreeNode(_ref, ref) {\n var className = _ref.className,\n style = _ref.style,\n motion = _ref.motion,\n motionNodes = _ref.motionNodes,\n motionType = _ref.motionType,\n onOriginMotionStart = _ref.onMotionStart,\n onOriginMotionEnd = _ref.onMotionEnd,\n active = _ref.active,\n treeNodeRequiredProps = _ref.treeNodeRequiredProps,\n props = _objectWithoutProperties(_ref, _excluded);\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n var _React$useContext = React.useContext(TreeContext),\n prefixCls = _React$useContext.prefixCls;\n // Calculate target visible here.\n // And apply in effect to make `leave` motion work.\n var targetVisible = motionNodes && motionType !== 'hide';\n useLayoutEffect(function () {\n if (motionNodes) {\n if (targetVisible !== visible) {\n setVisible(targetVisible);\n }\n }\n }, [motionNodes]);\n var triggerMotionStart = function triggerMotionStart() {\n if (motionNodes) {\n onOriginMotionStart();\n }\n };\n // Should only trigger once\n var triggerMotionEndRef = React.useRef(false);\n var triggerMotionEnd = function triggerMotionEnd() {\n if (motionNodes && !triggerMotionEndRef.current) {\n triggerMotionEndRef.current = true;\n onOriginMotionEnd();\n }\n };\n // Effect if unmount\n useUnmount(triggerMotionStart, triggerMotionEnd);\n // Motion end event\n var onVisibleChanged = function onVisibleChanged(nextVisible) {\n if (targetVisible === nextVisible) {\n triggerMotionEnd();\n }\n };\n if (motionNodes) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n ref: ref,\n visible: visible\n }, motion, {\n motionAppear: motionType === 'show',\n onVisibleChanged: onVisibleChanged\n }), function (_ref2, motionRef) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: classNames(\"\".concat(prefixCls, \"-treenode-motion\"), motionClassName),\n style: motionStyle\n }, motionNodes.map(function (treeNode) {\n var restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(key, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: active,\n data: treeNode.data,\n key: key,\n isStart: isStart,\n isEnd: isEnd\n }));\n }));\n });\n }\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n domRef: ref,\n className: className,\n style: style\n }, props, {\n active: active\n }));\n};\nMotionTreeNode.displayName = 'MotionTreeNode';\nvar RefMotionTreeNode = /*#__PURE__*/React.forwardRef(MotionTreeNode);\nexport default RefMotionTreeNode;","export function findExpandedKeys() {\n var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var prevLen = prev.length;\n var nextLen = next.length;\n if (Math.abs(prevLen - nextLen) !== 1) {\n return {\n add: false,\n key: null\n };\n }\n function find(shorter, longer) {\n var cache = new Map();\n shorter.forEach(function (key) {\n cache.set(key, true);\n });\n var keys = longer.filter(function (key) {\n return !cache.has(key);\n });\n return keys.length === 1 ? keys[0] : null;\n }\n if (prevLen < nextLen) {\n return {\n add: true,\n key: find(prev, next)\n };\n }\n return {\n add: false,\n key: find(next, prev)\n };\n}\nexport function getExpandRange(shorter, longer, key) {\n var shorterStartIndex = shorter.findIndex(function (data) {\n return data.key === key;\n });\n var shorterEndNode = shorter[shorterStartIndex + 1];\n var longerStartIndex = longer.findIndex(function (data) {\n return data.key === key;\n });\n if (shorterEndNode) {\n var longerEndIndex = longer.findIndex(function (data) {\n return data.key === shorterEndNode.key;\n });\n return longer.slice(longerStartIndex + 1, longerEndIndex);\n }\n return longer.slice(longerStartIndex + 1);\n}","import _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"selectable\", \"checkable\", \"expandedKeys\", \"selectedKeys\", \"checkedKeys\", \"loadedKeys\", \"loadingKeys\", \"halfCheckedKeys\", \"keyEntities\", \"disabled\", \"dragging\", \"dragOverNodeKey\", \"dropPosition\", \"motion\", \"height\", \"itemHeight\", \"virtual\", \"focusable\", \"activeItem\", \"focused\", \"tabIndex\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onActiveChange\", \"onListChangeStart\", \"onListChangeEnd\"];\n/**\n * Handle virtual list of the TreeNodes.\n */\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport VirtualList from 'rc-virtual-list';\nimport * as React from 'react';\nimport MotionTreeNode from './MotionTreeNode';\nimport { findExpandedKeys, getExpandRange } from './utils/diffUtil';\nimport { getKey, getTreeNodeProps } from './utils/treeUtil';\nvar HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0\n};\nvar noop = function noop() {};\nexport var MOTION_KEY = \"RC_TREE_MOTION_\".concat(Math.random());\nvar MotionNode = {\n key: MOTION_KEY\n};\nexport var MotionEntity = {\n key: MOTION_KEY,\n level: 0,\n index: 0,\n pos: '0',\n node: MotionNode,\n nodes: [MotionNode]\n};\nvar MotionFlattenData = {\n parent: null,\n children: [],\n pos: MotionEntity.pos,\n data: MotionNode,\n title: null,\n key: MOTION_KEY,\n /** Hold empty list here since we do not use it */\n isStart: [],\n isEnd: []\n};\n/**\n * We only need get visible content items to play the animation.\n */\nexport function getMinimumRangeTransitionRange(list, virtual, height, itemHeight) {\n if (virtual === false || !height) {\n return list;\n }\n return list.slice(0, Math.ceil(height / itemHeight) + 1);\n}\nfunction itemKey(item) {\n var key = item.key,\n pos = item.pos;\n return getKey(key, pos);\n}\nfunction getAccessibilityPath(item) {\n var path = String(item.data.key);\n var current = item;\n while (current.parent) {\n current = current.parent;\n path = \"\".concat(current.data.key, \" > \").concat(path);\n }\n return path;\n}\nvar NodeList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n data = props.data,\n selectable = props.selectable,\n checkable = props.checkable,\n expandedKeys = props.expandedKeys,\n selectedKeys = props.selectedKeys,\n checkedKeys = props.checkedKeys,\n loadedKeys = props.loadedKeys,\n loadingKeys = props.loadingKeys,\n halfCheckedKeys = props.halfCheckedKeys,\n keyEntities = props.keyEntities,\n disabled = props.disabled,\n dragging = props.dragging,\n dragOverNodeKey = props.dragOverNodeKey,\n dropPosition = props.dropPosition,\n motion = props.motion,\n height = props.height,\n itemHeight = props.itemHeight,\n virtual = props.virtual,\n focusable = props.focusable,\n activeItem = props.activeItem,\n focused = props.focused,\n tabIndex = props.tabIndex,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onActiveChange = props.onActiveChange,\n onListChangeStart = props.onListChangeStart,\n onListChangeEnd = props.onListChangeEnd,\n domProps = _objectWithoutProperties(props, _excluded);\n // =============================== Ref ================================\n var listRef = React.useRef(null);\n var indentMeasurerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n scrollTo: function scrollTo(scroll) {\n listRef.current.scrollTo(scroll);\n },\n getIndentWidth: function getIndentWidth() {\n return indentMeasurerRef.current.offsetWidth;\n }\n };\n });\n // ============================== Motion ==============================\n var _React$useState = React.useState(expandedKeys),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevExpandedKeys = _React$useState2[0],\n setPrevExpandedKeys = _React$useState2[1];\n var _React$useState3 = React.useState(data),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n prevData = _React$useState4[0],\n setPrevData = _React$useState4[1];\n var _React$useState5 = React.useState(data),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n transitionData = _React$useState6[0],\n setTransitionData = _React$useState6[1];\n var _React$useState7 = React.useState([]),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n transitionRange = _React$useState8[0],\n setTransitionRange = _React$useState8[1];\n var _React$useState9 = React.useState(null),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n motionType = _React$useState10[0],\n setMotionType = _React$useState10[1];\n // When motion end but data change, this will makes data back to previous one\n var dataRef = React.useRef(data);\n dataRef.current = data;\n function onMotionEnd() {\n var latestData = dataRef.current;\n setPrevData(latestData);\n setTransitionData(latestData);\n setTransitionRange([]);\n setMotionType(null);\n onListChangeEnd();\n }\n // Do animation if expanded keys changed\n // layoutEffect here to avoid blink of node removing\n useLayoutEffect(function () {\n setPrevExpandedKeys(expandedKeys);\n var diffExpanded = findExpandedKeys(prevExpandedKeys, expandedKeys);\n if (diffExpanded.key !== null) {\n if (diffExpanded.add) {\n var keyIndex = prevData.findIndex(function (_ref) {\n var key = _ref.key;\n return key === diffExpanded.key;\n });\n var rangeNodes = getMinimumRangeTransitionRange(getExpandRange(prevData, data, diffExpanded.key), virtual, height, itemHeight);\n var newTransitionData = prevData.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('show');\n } else {\n var _keyIndex = data.findIndex(function (_ref2) {\n var key = _ref2.key;\n return key === diffExpanded.key;\n });\n var _rangeNodes = getMinimumRangeTransitionRange(getExpandRange(data, prevData, diffExpanded.key), virtual, height, itemHeight);\n var _newTransitionData = data.slice();\n _newTransitionData.splice(_keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(_newTransitionData);\n setTransitionRange(_rangeNodes);\n setMotionType('hide');\n }\n } else if (prevData !== data) {\n // If whole data changed, we just refresh the list\n setPrevData(data);\n setTransitionData(data);\n }\n }, [expandedKeys, data]);\n // We should clean up motion if is changed by dragging\n React.useEffect(function () {\n if (!dragging) {\n onMotionEnd();\n }\n }, [dragging]);\n var mergedData = motion ? transitionData : data;\n var treeNodeRequiredProps = {\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n loadedKeys: loadedKeys,\n loadingKeys: loadingKeys,\n checkedKeys: checkedKeys,\n halfCheckedKeys: halfCheckedKeys,\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, focused && activeItem && /*#__PURE__*/React.createElement(\"span\", {\n style: HIDDEN_STYLE,\n \"aria-live\": \"assertive\"\n }, getAccessibilityPath(activeItem)), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"input\", {\n style: HIDDEN_STYLE,\n disabled: focusable === false || disabled,\n tabIndex: focusable !== false ? tabIndex : null,\n onKeyDown: onKeyDown,\n onFocus: onFocus,\n onBlur: onBlur,\n value: \"\",\n onChange: noop,\n \"aria-label\": \"for screen reader\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-treenode\"),\n \"aria-hidden\": true,\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n visibility: 'hidden',\n height: 0,\n overflow: 'hidden',\n border: 0,\n padding: 0\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-indent\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: indentMeasurerRef,\n className: \"\".concat(prefixCls, \"-indent-unit\")\n }))), /*#__PURE__*/React.createElement(VirtualList, _extends({}, domProps, {\n data: mergedData,\n itemKey: itemKey,\n height: height,\n fullHeight: false,\n virtual: virtual,\n itemHeight: itemHeight,\n prefixCls: \"\".concat(prefixCls, \"-list\"),\n ref: listRef,\n onVisibleChange: function onVisibleChange(originList, fullList) {\n var originSet = new Set(originList);\n var restList = fullList.filter(function (item) {\n return !originSet.has(item);\n });\n // Motion node is not render. Skip motion\n if (restList.some(function (item) {\n return itemKey(item) === MOTION_KEY;\n })) {\n onMotionEnd();\n }\n }\n }), function (treeNode) {\n var pos = treeNode.pos,\n restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n var mergedKey = getKey(key, pos);\n delete restProps.key;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(mergedKey, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(MotionTreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: !!activeItem && key === activeItem.key,\n pos: pos,\n data: treeNode.data,\n isStart: isStart,\n isEnd: isEnd,\n motion: motion,\n motionNodes: key === MOTION_KEY ? transitionRange : null,\n motionType: motionType,\n onMotionStart: onListChangeStart,\n onMotionEnd: onMotionEnd,\n treeNodeRequiredProps: treeNodeRequiredProps,\n onMouseMove: function onMouseMove() {\n onActiveChange(null);\n }\n }));\n }));\n});\nNodeList.displayName = 'NodeList';\nexport default NodeList;","import * as React from 'react';\nexport default function DropIndicator(_ref) {\n var dropPosition = _ref.dropPosition,\n dropLevelOffset = _ref.dropLevelOffset,\n indent = _ref.indent;\n var style = {\n pointerEvents: 'none',\n position: 'absolute',\n right: 0,\n backgroundColor: 'red',\n height: 2\n };\n switch (dropPosition) {\n case -1:\n style.top = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 1:\n style.bottom = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 0:\n style.bottom = 0;\n style.left = indent;\n break;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style\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 _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\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 _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n// TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html\n// Fully accessibility support\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport warning from \"rc-util/es/warning\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport classNames from 'classnames';\nimport { TreeContext } from './contextTypes';\nimport { getDragChildrenKeys, parseCheckedKeys, conductExpandParent, calcSelectedKeys, calcDropPosition, arrAdd, arrDel, posToArr } from './util';\nimport { flattenTreeData, convertTreeToData, convertDataToEntities, warningWithoutKey, convertNodePropsToEventData, getTreeNodeProps, fillFieldNames } from './utils/treeUtil';\nimport NodeList, { MOTION_KEY, MotionEntity } from './NodeList';\nimport TreeNode from './TreeNode';\nimport { conductCheck } from './utils/conductUtil';\nimport DropIndicator from './DropIndicator';\nvar MAX_RETRY_TIMES = 10;\nvar Tree = /*#__PURE__*/function (_React$Component) {\n _inherits(Tree, _React$Component);\n var _super = _createSuper(Tree);\n function Tree() {\n var _this;\n _classCallCheck(this, Tree);\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.destroyed = false;\n _this.delayedDragEnterLogic = void 0;\n _this.loadingRetryTimes = {};\n _this.state = {\n keyEntities: {},\n indent: null,\n selectedKeys: [],\n checkedKeys: [],\n halfCheckedKeys: [],\n loadedKeys: [],\n loadingKeys: [],\n expandedKeys: [],\n draggingNodeKey: null,\n dragChildrenKeys: [],\n // dropTargetKey is the key of abstract-drop-node\n // the abstract-drop-node is the real drop node when drag and drop\n // not the DOM drag over node\n dropTargetKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropLevelOffset: null,\n dropTargetPos: null,\n dropAllowed: true,\n // the abstract-drag-over-node\n // if mouse is on the bottom of top dom node or no the top of the bottom dom node\n // abstract-drag-over-node is the top node\n dragOverNodeKey: null,\n treeData: [],\n flattenNodes: [],\n focused: false,\n activeKey: null,\n listChanging: false,\n prevProps: null,\n fieldNames: fillFieldNames()\n };\n _this.dragStartMousePosition = null;\n _this.dragNode = void 0;\n _this.currentMouseOverDroppableNodeKey = null;\n _this.listRef = /*#__PURE__*/React.createRef();\n _this.onNodeDragStart = function (event, node) {\n var _this$state = _this.state,\n expandedKeys = _this$state.expandedKeys,\n keyEntities = _this$state.keyEntities;\n var onDragStart = _this.props.onDragStart;\n var eventKey = node.props.eventKey;\n _this.dragNode = node;\n _this.dragStartMousePosition = {\n x: event.clientX,\n y: event.clientY\n };\n var newExpandedKeys = arrDel(expandedKeys, eventKey);\n _this.setState({\n draggingNodeKey: eventKey,\n dragChildrenKeys: getDragChildrenKeys(eventKey, keyEntities),\n indent: _this.listRef.current.getIndentWidth()\n });\n _this.setExpandedKeys(newExpandedKeys);\n window.addEventListener('dragend', _this.onWindowDragEnd);\n onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n /**\n * [Legacy] Select handler is smaller than node,\n * so that this will trigger when drag enter node or select handler.\n * This is a little tricky if customize css without padding.\n * Better for use mouse move event to refresh drag state.\n * But let's just keep it to avoid event trigger logic change.\n */\n _this.onNodeDragEnter = function (event, node) {\n var _this$state2 = _this.state,\n expandedKeys = _this$state2.expandedKeys,\n keyEntities = _this$state2.keyEntities,\n dragChildrenKeys = _this$state2.dragChildrenKeys,\n flattenNodes = _this$state2.flattenNodes,\n indent = _this$state2.indent;\n var _this$props = _this.props,\n onDragEnter = _this$props.onDragEnter,\n onExpand = _this$props.onExpand,\n allowDrop = _this$props.allowDrop,\n direction = _this$props.direction;\n var _node$props = node.props,\n pos = _node$props.pos,\n eventKey = _node$props.eventKey;\n var _assertThisInitialize = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize.dragNode;\n // record the key of node which is latest entered, used in dragleave event.\n if (_this.currentMouseOverDroppableNodeKey !== eventKey) {\n _this.currentMouseOverDroppableNodeKey = eventKey;\n }\n if (!dragNode) {\n _this.resetDragState();\n return;\n }\n var _calcDropPosition = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition.dropPosition,\n dropLevelOffset = _calcDropPosition.dropLevelOffset,\n dropTargetKey = _calcDropPosition.dropTargetKey,\n dropContainerKey = _calcDropPosition.dropContainerKey,\n dropTargetPos = _calcDropPosition.dropTargetPos,\n dropAllowed = _calcDropPosition.dropAllowed,\n dragOverNodeKey = _calcDropPosition.dragOverNodeKey;\n if (\n // don't allow drop inside its children\n dragChildrenKeys.indexOf(dropTargetKey) !== -1 ||\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n !dropAllowed) {\n _this.resetDragState();\n return;\n }\n // Side effect for delay drag\n if (!_this.delayedDragEnterLogic) {\n _this.delayedDragEnterLogic = {};\n }\n Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {\n clearTimeout(_this.delayedDragEnterLogic[key]);\n });\n if (dragNode.props.eventKey !== node.props.eventKey) {\n // hoist expand logic here\n // since if logic is on the bottom\n // it will be blocked by abstract dragover node check\n // => if you dragenter from top, you mouse will still be consider as in the top node\n event.persist();\n _this.delayedDragEnterLogic[pos] = window.setTimeout(function () {\n if (_this.state.draggingNodeKey === null) return;\n var newExpandedKeys = _toConsumableArray(expandedKeys);\n var entity = keyEntities[node.props.eventKey];\n if (entity && (entity.children || []).length) {\n newExpandedKeys = arrAdd(expandedKeys, node.props.eventKey);\n }\n if (!('expandedKeys' in _this.props)) {\n _this.setExpandedKeys(newExpandedKeys);\n }\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(newExpandedKeys, {\n node: convertNodePropsToEventData(node.props),\n expanded: true,\n nativeEvent: event.nativeEvent\n });\n }, 800);\n }\n // Skip if drag node is self\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n _this.resetDragState();\n return;\n }\n // Update drag over node and drag state\n _this.setState({\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed\n });\n onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter({\n event: event,\n node: convertNodePropsToEventData(node.props),\n expandedKeys: expandedKeys\n });\n };\n _this.onNodeDragOver = function (event, node) {\n var _this$state3 = _this.state,\n dragChildrenKeys = _this$state3.dragChildrenKeys,\n flattenNodes = _this$state3.flattenNodes,\n keyEntities = _this$state3.keyEntities,\n expandedKeys = _this$state3.expandedKeys,\n indent = _this$state3.indent;\n var _this$props2 = _this.props,\n onDragOver = _this$props2.onDragOver,\n allowDrop = _this$props2.allowDrop,\n direction = _this$props2.direction;\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize2.dragNode;\n if (!dragNode) {\n return;\n }\n var _calcDropPosition2 = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition2.dropPosition,\n dropLevelOffset = _calcDropPosition2.dropLevelOffset,\n dropTargetKey = _calcDropPosition2.dropTargetKey,\n dropContainerKey = _calcDropPosition2.dropContainerKey,\n dropAllowed = _calcDropPosition2.dropAllowed,\n dropTargetPos = _calcDropPosition2.dropTargetPos,\n dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;\n if (dragChildrenKeys.indexOf(dropTargetKey) !== -1 || !dropAllowed) {\n // don't allow drop inside its children\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n return;\n }\n // Update drag position\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n if (!(_this.state.dropPosition === null && _this.state.dropLevelOffset === null && _this.state.dropTargetKey === null && _this.state.dropContainerKey === null && _this.state.dropTargetPos === null && _this.state.dropAllowed === false && _this.state.dragOverNodeKey === null)) {\n _this.resetDragState();\n }\n } else if (!(dropPosition === _this.state.dropPosition && dropLevelOffset === _this.state.dropLevelOffset && dropTargetKey === _this.state.dropTargetKey && dropContainerKey === _this.state.dropContainerKey && dropTargetPos === _this.state.dropTargetPos && dropAllowed === _this.state.dropAllowed && dragOverNodeKey === _this.state.dragOverNodeKey)) {\n _this.setState({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed,\n dragOverNodeKey: dragOverNodeKey\n });\n }\n onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n _this.onNodeDragLeave = function (event, node) {\n // if it is outside the droppable area\n // currentMouseOverDroppableNodeKey will be updated in dragenter event when into another droppable receiver.\n if (_this.currentMouseOverDroppableNodeKey === node.props.eventKey && !event.currentTarget.contains(event.relatedTarget)) {\n _this.resetDragState();\n _this.currentMouseOverDroppableNodeKey = null;\n }\n var onDragLeave = _this.props.onDragLeave;\n onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n // since stopPropagation() is called in treeNode\n // if onWindowDrag is called, whice means state is keeped, drag state should be cleared\n _this.onWindowDragEnd = function (event) {\n _this.onNodeDragEnd(event, null, true);\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n };\n // if onNodeDragEnd is called, onWindowDragEnd won't be called since stopPropagation() is called\n _this.onNodeDragEnd = function (event, node) {\n var onDragEnd = _this.props.onDragEnd;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n _this.dragNode = null;\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n };\n _this.onNodeDrop = function (event, node) {\n var _this$getActiveItem;\n var outsideTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _this$state4 = _this.state,\n dragChildrenKeys = _this$state4.dragChildrenKeys,\n dropPosition = _this$state4.dropPosition,\n dropTargetKey = _this$state4.dropTargetKey,\n dropTargetPos = _this$state4.dropTargetPos,\n dropAllowed = _this$state4.dropAllowed;\n if (!dropAllowed) return;\n var onDrop = _this.props.onDrop;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n if (dropTargetKey === null) return;\n var abstractDropNodeProps = _objectSpread(_objectSpread({}, getTreeNodeProps(dropTargetKey, _this.getTreeNodeRequiredProps())), {}, {\n active: ((_this$getActiveItem = _this.getActiveItem()) === null || _this$getActiveItem === void 0 ? void 0 : _this$getActiveItem.key) === dropTargetKey,\n data: _this.state.keyEntities[dropTargetKey].node\n });\n var dropToChild = dragChildrenKeys.indexOf(dropTargetKey) !== -1;\n warning(!dropToChild, \"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.\");\n var posArr = posToArr(dropTargetPos);\n var dropResult = {\n event: event,\n node: convertNodePropsToEventData(abstractDropNodeProps),\n dragNode: _this.dragNode ? convertNodePropsToEventData(_this.dragNode.props) : null,\n dragNodesKeys: [_this.dragNode.props.eventKey].concat(dragChildrenKeys),\n dropToGap: dropPosition !== 0,\n dropPosition: dropPosition + Number(posArr[posArr.length - 1])\n };\n if (!outsideTree) {\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(dropResult);\n }\n _this.dragNode = null;\n };\n _this.cleanDragState = function () {\n var draggingNodeKey = _this.state.draggingNodeKey;\n if (draggingNodeKey !== null) {\n _this.setState({\n draggingNodeKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropTargetKey: null,\n dropLevelOffset: null,\n dropAllowed: true,\n dragOverNodeKey: null\n });\n }\n _this.dragStartMousePosition = null;\n _this.currentMouseOverDroppableNodeKey = null;\n };\n _this.triggerExpandActionExpand = function (e, treeNode) {\n var _this$state5 = _this.state,\n expandedKeys = _this$state5.expandedKeys,\n flattenNodes = _this$state5.flattenNodes;\n var expanded = treeNode.expanded,\n key = treeNode.key,\n isLeaf = treeNode.isLeaf;\n if (isLeaf || e.shiftKey || e.metaKey || e.ctrlKey) {\n return;\n }\n var node = flattenNodes.filter(function (nodeItem) {\n return nodeItem.key === key;\n })[0];\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(key, _this.getTreeNodeRequiredProps())), {}, {\n data: node.data\n }));\n _this.setExpandedKeys(expanded ? arrDel(expandedKeys, key) : arrAdd(expandedKeys, key));\n _this.onNodeExpand(e, eventNode);\n };\n _this.onNodeClick = function (e, treeNode) {\n var _this$props3 = _this.props,\n onClick = _this$props3.onClick,\n expandAction = _this$props3.expandAction;\n if (expandAction === 'click') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e, treeNode);\n };\n _this.onNodeDoubleClick = function (e, treeNode) {\n var _this$props4 = _this.props,\n onDoubleClick = _this$props4.onDoubleClick,\n expandAction = _this$props4.expandAction;\n if (expandAction === 'doubleClick') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick(e, treeNode);\n };\n _this.onNodeSelect = function (e, treeNode) {\n var selectedKeys = _this.state.selectedKeys;\n var _this$state6 = _this.state,\n keyEntities = _this$state6.keyEntities,\n fieldNames = _this$state6.fieldNames;\n var _this$props5 = _this.props,\n onSelect = _this$props5.onSelect,\n multiple = _this$props5.multiple;\n var selected = treeNode.selected;\n var key = treeNode[fieldNames.key];\n var targetSelected = !selected;\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, key);\n } else if (!multiple) {\n selectedKeys = [key];\n } else {\n selectedKeys = arrAdd(selectedKeys, key);\n }\n // [Legacy] Not found related usage in doc or upper libs\n var selectedNodes = selectedKeys.map(function (selectedKey) {\n var entity = keyEntities[selectedKey];\n if (!entity) return null;\n return entity.node;\n }).filter(function (node) {\n return node;\n });\n _this.setUncontrolledState({\n selectedKeys: selectedKeys\n });\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedKeys, {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes: selectedNodes,\n nativeEvent: e.nativeEvent\n });\n };\n _this.onNodeCheck = function (e, treeNode, checked) {\n var _this$state7 = _this.state,\n keyEntities = _this$state7.keyEntities,\n oriCheckedKeys = _this$state7.checkedKeys,\n oriHalfCheckedKeys = _this$state7.halfCheckedKeys;\n var _this$props6 = _this.props,\n checkStrictly = _this$props6.checkStrictly,\n onCheck = _this$props6.onCheck;\n var key = treeNode.key;\n // Prepare trigger arguments\n var checkedObj;\n var eventObj = {\n event: 'check',\n node: treeNode,\n checked: checked,\n nativeEvent: e.nativeEvent\n };\n if (checkStrictly) {\n var checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);\n var halfCheckedKeys = arrDel(oriHalfCheckedKeys, key);\n checkedObj = {\n checked: checkedKeys,\n halfChecked: halfCheckedKeys\n };\n eventObj.checkedNodes = checkedKeys.map(function (checkedKey) {\n return keyEntities[checkedKey];\n }).filter(function (entity) {\n return entity;\n }).map(function (entity) {\n return entity.node;\n });\n _this.setUncontrolledState({\n checkedKeys: checkedKeys\n });\n } else {\n // Always fill first\n var _conductCheck = conductCheck([].concat(_toConsumableArray(oriCheckedKeys), [key]), true, keyEntities),\n _checkedKeys = _conductCheck.checkedKeys,\n _halfCheckedKeys = _conductCheck.halfCheckedKeys;\n // If remove, we do it again to correction\n if (!checked) {\n var keySet = new Set(_checkedKeys);\n keySet.delete(key);\n var _conductCheck2 = conductCheck(Array.from(keySet), {\n checked: false,\n halfCheckedKeys: _halfCheckedKeys\n }, keyEntities);\n _checkedKeys = _conductCheck2.checkedKeys;\n _halfCheckedKeys = _conductCheck2.halfCheckedKeys;\n }\n checkedObj = _checkedKeys;\n // [Legacy] This is used for `rc-tree-select`\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = _halfCheckedKeys;\n _checkedKeys.forEach(function (checkedKey) {\n var entity = keyEntities[checkedKey];\n if (!entity) return;\n var node = entity.node,\n pos = entity.pos;\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({\n node: node,\n pos: pos\n });\n });\n _this.setUncontrolledState({\n checkedKeys: _checkedKeys\n }, false, {\n halfCheckedKeys: _halfCheckedKeys\n });\n }\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(checkedObj, eventObj);\n };\n _this.onNodeLoad = function (treeNode) {\n var key = treeNode.key;\n var loadPromise = new Promise(function (resolve, reject) {\n // We need to get the latest state of loading/loaded keys\n _this.setState(function (_ref) {\n var _ref$loadedKeys = _ref.loadedKeys,\n loadedKeys = _ref$loadedKeys === void 0 ? [] : _ref$loadedKeys,\n _ref$loadingKeys = _ref.loadingKeys,\n loadingKeys = _ref$loadingKeys === void 0 ? [] : _ref$loadingKeys;\n var _this$props7 = _this.props,\n loadData = _this$props7.loadData,\n onLoad = _this$props7.onLoad;\n if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {\n return null;\n }\n // Process load data\n var promise = loadData(treeNode);\n promise.then(function () {\n var currentLoadedKeys = _this.state.loadedKeys;\n var newLoadedKeys = arrAdd(currentLoadedKeys, key);\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(newLoadedKeys, {\n event: 'load',\n node: treeNode\n });\n _this.setUncontrolledState({\n loadedKeys: newLoadedKeys\n });\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n resolve();\n }).catch(function (e) {\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n // If exceed max retry times, we give up retry\n _this.loadingRetryTimes[key] = (_this.loadingRetryTimes[key] || 0) + 1;\n if (_this.loadingRetryTimes[key] >= MAX_RETRY_TIMES) {\n var currentLoadedKeys = _this.state.loadedKeys;\n warning(false, 'Retry for `loadData` many times but still failed. No more retry.');\n _this.setUncontrolledState({\n loadedKeys: arrAdd(currentLoadedKeys, key)\n });\n resolve();\n }\n reject(e);\n });\n return {\n loadingKeys: arrAdd(loadingKeys, key)\n };\n });\n });\n // Not care warning if we ignore this\n loadPromise.catch(function () {});\n return loadPromise;\n };\n _this.onNodeMouseEnter = function (event, node) {\n var onMouseEnter = _this.props.onMouseEnter;\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n event: event,\n node: node\n });\n };\n _this.onNodeMouseLeave = function (event, node) {\n var onMouseLeave = _this.props.onMouseLeave;\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n event: event,\n node: node\n });\n };\n _this.onNodeContextMenu = function (event, node) {\n var onRightClick = _this.props.onRightClick;\n if (onRightClick) {\n event.preventDefault();\n onRightClick({\n event: event,\n node: node\n });\n }\n };\n _this.onFocus = function () {\n var onFocus = _this.props.onFocus;\n _this.setState({\n focused: true\n });\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n onFocus === null || onFocus === void 0 ? void 0 : onFocus.apply(void 0, args);\n };\n _this.onBlur = function () {\n var onBlur = _this.props.onBlur;\n _this.setState({\n focused: false\n });\n _this.onActiveChange(null);\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n onBlur === null || onBlur === void 0 ? void 0 : onBlur.apply(void 0, args);\n };\n _this.getTreeNodeRequiredProps = function () {\n var _this$state8 = _this.state,\n expandedKeys = _this$state8.expandedKeys,\n selectedKeys = _this$state8.selectedKeys,\n loadedKeys = _this$state8.loadedKeys,\n loadingKeys = _this$state8.loadingKeys,\n checkedKeys = _this$state8.checkedKeys,\n halfCheckedKeys = _this$state8.halfCheckedKeys,\n dragOverNodeKey = _this$state8.dragOverNodeKey,\n dropPosition = _this$state8.dropPosition,\n keyEntities = _this$state8.keyEntities;\n return {\n expandedKeys: expandedKeys || [],\n selectedKeys: selectedKeys || [],\n loadedKeys: loadedKeys || [],\n loadingKeys: loadingKeys || [],\n checkedKeys: checkedKeys || [],\n halfCheckedKeys: halfCheckedKeys || [],\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n };\n // =========================== Expanded ===========================\n /** Set uncontrolled `expandedKeys`. This will also auto update `flattenNodes`. */\n _this.setExpandedKeys = function (expandedKeys) {\n var _this$state9 = _this.state,\n treeData = _this$state9.treeData,\n fieldNames = _this$state9.fieldNames;\n var flattenNodes = flattenTreeData(treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n expandedKeys: expandedKeys,\n flattenNodes: flattenNodes\n }, true);\n };\n _this.onNodeExpand = function (e, treeNode) {\n var expandedKeys = _this.state.expandedKeys;\n var _this$state10 = _this.state,\n listChanging = _this$state10.listChanging,\n fieldNames = _this$state10.fieldNames;\n var _this$props8 = _this.props,\n onExpand = _this$props8.onExpand,\n loadData = _this$props8.loadData;\n var expanded = treeNode.expanded;\n var key = treeNode[fieldNames.key];\n // Do nothing when motion is in progress\n if (listChanging) {\n return;\n }\n // Update selected keys\n var index = expandedKeys.indexOf(key);\n var targetExpanded = !expanded;\n warning(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, key);\n } else {\n expandedKeys = arrDel(expandedKeys, key);\n }\n _this.setExpandedKeys(expandedKeys);\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e.nativeEvent\n });\n // Async Load data\n if (targetExpanded && loadData) {\n var loadPromise = _this.onNodeLoad(treeNode);\n if (loadPromise) {\n loadPromise.then(function () {\n // [Legacy] Refresh logic\n var newFlattenTreeData = flattenTreeData(_this.state.treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n flattenNodes: newFlattenTreeData\n });\n }).catch(function () {\n var currentExpandedKeys = _this.state.expandedKeys;\n var expandedKeysToRestore = arrDel(currentExpandedKeys, key);\n _this.setExpandedKeys(expandedKeysToRestore);\n });\n }\n }\n };\n _this.onListChangeStart = function () {\n _this.setUncontrolledState({\n listChanging: true\n });\n };\n _this.onListChangeEnd = function () {\n setTimeout(function () {\n _this.setUncontrolledState({\n listChanging: false\n });\n });\n };\n // =========================== Keyboard ===========================\n _this.onActiveChange = function (newActiveKey) {\n var activeKey = _this.state.activeKey;\n var onActiveChange = _this.props.onActiveChange;\n if (activeKey === newActiveKey) {\n return;\n }\n _this.setState({\n activeKey: newActiveKey\n });\n if (newActiveKey !== null) {\n _this.scrollTo({\n key: newActiveKey\n });\n }\n onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(newActiveKey);\n };\n _this.getActiveItem = function () {\n var _this$state11 = _this.state,\n activeKey = _this$state11.activeKey,\n flattenNodes = _this$state11.flattenNodes;\n if (activeKey === null) {\n return null;\n }\n return flattenNodes.find(function (_ref2) {\n var key = _ref2.key;\n return key === activeKey;\n }) || null;\n };\n _this.offsetActiveKey = function (offset) {\n var _this$state12 = _this.state,\n flattenNodes = _this$state12.flattenNodes,\n activeKey = _this$state12.activeKey;\n var index = flattenNodes.findIndex(function (_ref3) {\n var key = _ref3.key;\n return key === activeKey;\n });\n // Align with index\n if (index === -1 && offset < 0) {\n index = flattenNodes.length;\n }\n index = (index + offset + flattenNodes.length) % flattenNodes.length;\n var item = flattenNodes[index];\n if (item) {\n var key = item.key;\n _this.onActiveChange(key);\n } else {\n _this.onActiveChange(null);\n }\n };\n _this.onKeyDown = function (event) {\n var _this$state13 = _this.state,\n activeKey = _this$state13.activeKey,\n expandedKeys = _this$state13.expandedKeys,\n checkedKeys = _this$state13.checkedKeys,\n fieldNames = _this$state13.fieldNames;\n var _this$props9 = _this.props,\n onKeyDown = _this$props9.onKeyDown,\n checkable = _this$props9.checkable,\n selectable = _this$props9.selectable;\n // >>>>>>>>>> Direction\n switch (event.which) {\n case KeyCode.UP:\n {\n _this.offsetActiveKey(-1);\n event.preventDefault();\n break;\n }\n case KeyCode.DOWN:\n {\n _this.offsetActiveKey(1);\n event.preventDefault();\n break;\n }\n }\n // >>>>>>>>>> Expand & Selection\n var activeItem = _this.getActiveItem();\n if (activeItem && activeItem.data) {\n var treeNodeRequiredProps = _this.getTreeNodeRequiredProps();\n var expandable = activeItem.data.isLeaf === false || !!(activeItem.data[fieldNames.children] || []).length;\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(activeKey, treeNodeRequiredProps)), {}, {\n data: activeItem.data,\n active: true\n }));\n switch (event.which) {\n // >>> Expand\n case KeyCode.LEFT:\n {\n // Collapse if possible\n if (expandable && expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.parent) {\n _this.onActiveChange(activeItem.parent.key);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.RIGHT:\n {\n // Expand if possible\n if (expandable && !expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.children && activeItem.children.length) {\n _this.onActiveChange(activeItem.children[0].key);\n }\n event.preventDefault();\n break;\n }\n // Selection\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n {\n if (checkable && !eventNode.disabled && eventNode.checkable !== false && !eventNode.disableCheckbox) {\n _this.onNodeCheck({}, eventNode, !checkedKeys.includes(activeKey));\n } else if (!checkable && selectable && !eventNode.disabled && eventNode.selectable !== false) {\n _this.onNodeSelect({}, eventNode);\n }\n break;\n }\n }\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n };\n /**\n * Only update the value which is not in props\n */\n _this.setUncontrolledState = function (state) {\n var atomic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var forceState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!_this.destroyed) {\n var needSync = false;\n var allPassed = true;\n var newState = {};\n Object.keys(state).forEach(function (name) {\n if (name in _this.props) {\n allPassed = false;\n return;\n }\n needSync = true;\n newState[name] = state[name];\n });\n if (needSync && (!atomic || allPassed)) {\n _this.setState(_objectSpread(_objectSpread({}, newState), forceState));\n }\n }\n };\n _this.scrollTo = function (scroll) {\n _this.listRef.current.scrollTo(scroll);\n };\n return _this;\n }\n _createClass(Tree, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.destroyed = false;\n this.onUpdated();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onUpdated();\n }\n }, {\n key: \"onUpdated\",\n value: function onUpdated() {\n var activeKey = this.props.activeKey;\n if (activeKey !== undefined && activeKey !== this.state.activeKey) {\n this.setState({\n activeKey: activeKey\n });\n if (activeKey !== null) {\n this.scrollTo({\n key: activeKey\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener('dragend', this.onWindowDragEnd);\n this.destroyed = true;\n }\n }, {\n key: \"resetDragState\",\n value: function resetDragState() {\n this.setState({\n dragOverNodeKey: null,\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n var _this$state14 = this.state,\n focused = _this$state14.focused,\n flattenNodes = _this$state14.flattenNodes,\n keyEntities = _this$state14.keyEntities,\n draggingNodeKey = _this$state14.draggingNodeKey,\n activeKey = _this$state14.activeKey,\n dropLevelOffset = _this$state14.dropLevelOffset,\n dropContainerKey = _this$state14.dropContainerKey,\n dropTargetKey = _this$state14.dropTargetKey,\n dropPosition = _this$state14.dropPosition,\n dragOverNodeKey = _this$state14.dragOverNodeKey,\n indent = _this$state14.indent;\n var _this$props10 = this.props,\n prefixCls = _this$props10.prefixCls,\n className = _this$props10.className,\n style = _this$props10.style,\n showLine = _this$props10.showLine,\n focusable = _this$props10.focusable,\n _this$props10$tabInde = _this$props10.tabIndex,\n tabIndex = _this$props10$tabInde === void 0 ? 0 : _this$props10$tabInde,\n selectable = _this$props10.selectable,\n showIcon = _this$props10.showIcon,\n icon = _this$props10.icon,\n switcherIcon = _this$props10.switcherIcon,\n draggable = _this$props10.draggable,\n checkable = _this$props10.checkable,\n checkStrictly = _this$props10.checkStrictly,\n disabled = _this$props10.disabled,\n motion = _this$props10.motion,\n loadData = _this$props10.loadData,\n filterTreeNode = _this$props10.filterTreeNode,\n height = _this$props10.height,\n itemHeight = _this$props10.itemHeight,\n virtual = _this$props10.virtual,\n titleRender = _this$props10.titleRender,\n dropIndicatorRender = _this$props10.dropIndicatorRender,\n onContextMenu = _this$props10.onContextMenu,\n onScroll = _this$props10.onScroll,\n direction = _this$props10.direction,\n rootClassName = _this$props10.rootClassName,\n rootStyle = _this$props10.rootStyle;\n var domProps = pickAttrs(this.props, {\n aria: true,\n data: true\n });\n // It's better move to hooks but we just simply keep here\n var draggableConfig;\n if (draggable) {\n if (_typeof(draggable) === 'object') {\n draggableConfig = draggable;\n } else if (typeof draggable === 'function') {\n draggableConfig = {\n nodeDraggable: draggable\n };\n } else {\n draggableConfig = {};\n }\n }\n return /*#__PURE__*/React.createElement(TreeContext.Provider, {\n value: {\n prefixCls: prefixCls,\n selectable: selectable,\n showIcon: showIcon,\n icon: icon,\n switcherIcon: switcherIcon,\n draggable: draggableConfig,\n draggingNodeKey: draggingNodeKey,\n checkable: checkable,\n checkStrictly: checkStrictly,\n disabled: disabled,\n keyEntities: keyEntities,\n dropLevelOffset: dropLevelOffset,\n dropContainerKey: dropContainerKey,\n dropTargetKey: dropTargetKey,\n dropPosition: dropPosition,\n dragOverNodeKey: dragOverNodeKey,\n indent: indent,\n direction: direction,\n dropIndicatorRender: dropIndicatorRender,\n loadData: loadData,\n filterTreeNode: filterTreeNode,\n titleRender: titleRender,\n onNodeClick: this.onNodeClick,\n onNodeDoubleClick: this.onNodeDoubleClick,\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeCheck: this.onNodeCheck,\n onNodeLoad: this.onNodeLoad,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tree\",\n className: classNames(prefixCls, className, rootClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-line\"), showLine), _defineProperty(_classNames, \"\".concat(prefixCls, \"-focused\"), focused), _defineProperty(_classNames, \"\".concat(prefixCls, \"-active-focused\"), activeKey !== null), _classNames)),\n style: rootStyle\n }, /*#__PURE__*/React.createElement(NodeList, _extends({\n ref: this.listRef,\n prefixCls: prefixCls,\n style: style,\n data: flattenNodes,\n disabled: disabled,\n selectable: selectable,\n checkable: !!checkable,\n motion: motion,\n dragging: draggingNodeKey !== null,\n height: height,\n itemHeight: itemHeight,\n virtual: virtual,\n focusable: focusable,\n focused: focused,\n tabIndex: tabIndex,\n activeItem: this.getActiveItem(),\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.onKeyDown,\n onActiveChange: this.onActiveChange,\n onListChangeStart: this.onListChangeStart,\n onListChangeEnd: this.onListChangeEnd,\n onContextMenu: onContextMenu,\n onScroll: onScroll\n }, this.getTreeNodeRequiredProps(), domProps))));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var prevProps = prevState.prevProps;\n var newState = {\n prevProps: props\n };\n function needSync(name) {\n return !prevProps && name in props || prevProps && prevProps[name] !== props[name];\n }\n // ================== Tree Node ==================\n var treeData;\n // fieldNames\n var fieldNames = prevState.fieldNames;\n if (needSync('fieldNames')) {\n fieldNames = fillFieldNames(props.fieldNames);\n newState.fieldNames = fieldNames;\n }\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n treeData = props.treeData;\n } else if (needSync('children')) {\n warning(false, '`children` of Tree is deprecated. Please use `treeData` instead.');\n treeData = convertTreeToData(props.children);\n }\n // Save flatten nodes info and convert `treeData` into keyEntities\n if (treeData) {\n newState.treeData = treeData;\n var entitiesMap = convertDataToEntities(treeData, {\n fieldNames: fieldNames\n });\n newState.keyEntities = _objectSpread(_defineProperty({}, MOTION_KEY, MotionEntity), entitiesMap.keyEntities);\n // Warning if treeNode not provide key\n if (process.env.NODE_ENV !== 'production') {\n warningWithoutKey(treeData, fieldNames);\n }\n }\n var keyEntities = newState.keyEntities || prevState.keyEntities;\n // ================ expandedKeys =================\n if (needSync('expandedKeys') || prevProps && needSync('autoExpandParent')) {\n newState.expandedKeys = props.autoExpandParent || !prevProps && props.defaultExpandParent ? conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;\n } else if (!prevProps && props.defaultExpandAll) {\n var cloneKeyEntities = _objectSpread({}, keyEntities);\n delete cloneKeyEntities[MOTION_KEY];\n newState.expandedKeys = Object.keys(cloneKeyEntities).map(function (key) {\n return cloneKeyEntities[key].key;\n });\n } else if (!prevProps && props.defaultExpandedKeys) {\n newState.expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n }\n if (!newState.expandedKeys) {\n delete newState.expandedKeys;\n }\n // ================ flattenNodes =================\n if (treeData || newState.expandedKeys) {\n var flattenNodes = flattenTreeData(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys, fieldNames);\n newState.flattenNodes = flattenNodes;\n }\n // ================ selectedKeys =================\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n } else if (!prevProps && props.defaultSelectedKeys) {\n newState.selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n }\n // ================= checkedKeys =================\n if (props.checkable) {\n var checkedKeyEntity;\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeData) {\n // If `treeData` changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState.checkedKeys,\n halfCheckedKeys: prevState.halfCheckedKeys\n };\n }\n if (checkedKeyEntity) {\n var _checkedKeyEntity = checkedKeyEntity,\n _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,\n checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,\n _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,\n halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;\n if (!props.checkStrictly) {\n var conductKeys = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = conductKeys.checkedKeys;\n halfCheckedKeys = conductKeys.halfCheckedKeys;\n }\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n }\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState.loadedKeys = props.loadedKeys;\n }\n return newState;\n }\n }]);\n return Tree;\n}(React.Component);\nTree.defaultProps = {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: [],\n dropIndicatorRender: DropIndicator,\n allowDrop: function allowDrop() {\n return true;\n },\n expandAction: false\n};\nTree.TreeNode = TreeNode;\nexport default Tree;","import Tree from './Tree';\nimport TreeNode from './TreeNode';\nexport { TreeNode };\nexport default Tree;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\n/* eslint-disable no-lonely-if */\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\nimport React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport TreeNode from './TreeNode';\nexport { getPosition, isTreeNode } from './utils/treeUtil';\nexport function arrDel(list, value) {\n if (!list) return [];\n var clone = list.slice();\n var index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\nexport function arrAdd(list, value) {\n var clone = (list || []).slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\nexport function posToArr(pos) {\n return pos.split('-');\n}\nexport function getDragChildrenKeys(dragNodeKey, keyEntities) {\n // not contains self\n // self for left or right drag\n var dragChildrenKeys = [];\n var entity = keyEntities[dragNodeKey];\n function dig() {\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n list.forEach(function (_ref) {\n var key = _ref.key,\n children = _ref.children;\n dragChildrenKeys.push(key);\n dig(children);\n });\n }\n dig(entity.children);\n return dragChildrenKeys;\n}\nexport function isLastChild(treeNodeEntity) {\n if (treeNodeEntity.parent) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n }\n return false;\n}\nexport function isFirstChild(treeNodeEntity) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === 0;\n}\n// Only used when drag, not affect SSR.\nexport function calcDropPosition(event, dragNode, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {\n var _abstractDropNodeEnti;\n var clientX = event.clientX,\n clientY = event.clientY;\n var _event$target$getBoun = event.target.getBoundingClientRect(),\n top = _event$target$getBoun.top,\n height = _event$target$getBoun.height;\n // optional chain for testing\n var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);\n var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent;\n // find abstract drop node by horizontal offset\n var abstractDropNodeEntity = keyEntities[targetNode.props.eventKey];\n if (clientY < top + height / 2) {\n // first half, set abstract drop node to previous node\n var nodeIndex = flattenedNodes.findIndex(function (flattenedNode) {\n return flattenedNode.key === abstractDropNodeEntity.key;\n });\n var prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n var prevNodeKey = flattenedNodes[prevNodeIndex].key;\n abstractDropNodeEntity = keyEntities[prevNodeKey];\n }\n var initialAbstractDropNodeKey = abstractDropNodeEntity.key;\n var abstractDragOverEntity = abstractDropNodeEntity;\n var dragOverNodeKey = abstractDropNodeEntity.key;\n var dropPosition = 0;\n var dropLevelOffset = 0;\n // Only allow cross level drop when dragging on a non-expanded node\n if (!expandKeys.includes(initialAbstractDropNodeKey)) {\n for (var i = 0; i < rawDropLevelOffset; i += 1) {\n if (isLastChild(abstractDropNodeEntity)) {\n abstractDropNodeEntity = abstractDropNodeEntity.parent;\n dropLevelOffset += 1;\n } else {\n break;\n }\n }\n }\n var abstractDragDataNode = dragNode.props.data;\n var abstractDropDataNode = abstractDropNodeEntity.node;\n var dropAllowed = true;\n if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: -1\n }) && abstractDropNodeEntity.key === targetNode.props.eventKey) {\n // first half of first node in first level\n dropPosition = -1;\n } else if ((abstractDragOverEntity.children || []).length && expandKeys.includes(dragOverNodeKey)) {\n // drop on expanded node\n // only allow drop inside\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else {\n dropAllowed = false;\n }\n } else if (dropLevelOffset === 0) {\n if (rawDropLevelOffset > -1.5) {\n // | Node | <- abstractDropNode\n // | -^-===== | <- mousePosition\n // 1. try drop after\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n } else {\n // | Node | <- abstractDropNode\n // | ---==^== | <- mousePosition\n // whether it has children or doesn't has children\n // always\n // 1. try drop inside\n // 2. try drop after\n // 3. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n } else {\n // | Node1 | <- abstractDropNode\n // | Node2 |\n // --^--|----=====| <- mousePosition\n // 1. try insert after Node1\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n return {\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: abstractDropNodeEntity.key,\n dropTargetPos: abstractDropNodeEntity.pos,\n dragOverNodeKey: dragOverNodeKey,\n dropContainerKey: dropPosition === 0 ? null : ((_abstractDropNodeEnti = abstractDropNodeEntity.parent) === null || _abstractDropNodeEnti === void 0 ? void 0 : _abstractDropNodeEnti.key) || null,\n dropAllowed: dropAllowed\n };\n}\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) return undefined;\n var multiple = props.multiple;\n if (multiple) {\n return selectedKeys.slice();\n }\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\nvar internalProcessProps = function internalProcessProps(props) {\n return props;\n};\nexport function convertDataToTree(treeData, processor) {\n if (!treeData) return [];\n var _ref2 = processor || {},\n _ref2$processProps = _ref2.processProps,\n processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref3) {\n var children = _ref3.children,\n props = _objectWithoutProperties(_ref3, _excluded);\n var childrenNodes = convertDataToTree(children, processor);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n key: props.key\n }, processProps(props)), childrenNodes);\n });\n}\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n }\n // Convert keys to object format\n var keyProps;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined\n };\n } else if (_typeof(keys) === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n return keyProps;\n}\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = new Set();\n function conductUp(key) {\n if (expandedKeys.has(key)) return;\n var entity = keyEntities[key];\n if (!entity) return;\n expandedKeys.add(key);\n var parent = entity.parent,\n node = entity.node;\n if (node.disabled) return;\n if (parent) {\n conductUp(parent.key);\n }\n }\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n return _toConsumableArray(expandedKeys);\n}","import warning from \"rc-util/es/warning\";\nfunction removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {\n var filteredKeys = new Set();\n halfCheckedKeys.forEach(function (key) {\n if (!checkedKeys.has(key)) {\n filteredKeys.add(key);\n }\n });\n return filteredKeys;\n}\nexport function isCheckDisabled(node) {\n var _ref = node || {},\n disabled = _ref.disabled,\n disableCheckbox = _ref.disableCheckbox,\n checkable = _ref.checkable;\n return !!(disabled || disableCheckbox) || checkable === false;\n}\n// Fill miss keys\nfunction fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set();\n // Add checked keys top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children = entity.children,\n children = _entity$children === void 0 ? [] : _entity$children;\n if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.add(childEntity.key);\n });\n }\n });\n }\n // Add checked keys from bottom to top\n var visitedKeys = new Set();\n for (var _level = maxLevel; _level >= 0; _level -= 1) {\n var _entities = levelEntities.get(_level) || new Set();\n _entities.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref2) {\n var key = _ref2.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (allChecked) {\n checkedKeys.add(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n// Remove useless key\nfunction cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set(halfKeys);\n // Remove checked keys from top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children2 = entity.children,\n children = _entity$children2 === void 0 ? [] : _entity$children2;\n if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.delete(childEntity.key);\n });\n }\n });\n }\n // Remove checked keys form bottom to top\n halfCheckedKeys = new Set();\n var visitedKeys = new Set();\n for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {\n var _entities2 = levelEntities.get(_level2) || new Set();\n _entities2.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref3) {\n var key = _ref3.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (!allChecked) {\n checkedKeys.delete(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\nexport function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {\n var warningMissKeys = [];\n var syntheticGetCheckDisabled;\n if (getCheckDisabled) {\n syntheticGetCheckDisabled = getCheckDisabled;\n } else {\n syntheticGetCheckDisabled = isCheckDisabled;\n }\n // We only handle exist keys\n var keys = new Set(keyList.filter(function (key) {\n var hasEntity = !!keyEntities[key];\n if (!hasEntity) {\n warningMissKeys.push(key);\n }\n return hasEntity;\n }));\n var levelEntities = new Map();\n var maxLevel = 0;\n // Convert entities by level for calculation\n Object.keys(keyEntities).forEach(function (key) {\n var entity = keyEntities[key];\n var level = entity.level;\n var levelSet = levelEntities.get(level);\n if (!levelSet) {\n levelSet = new Set();\n levelEntities.set(level, levelSet);\n }\n levelSet.add(entity);\n maxLevel = Math.max(maxLevel, level);\n });\n warning(!warningMissKeys.length, \"Tree missing follow keys: \".concat(warningMissKeys.slice(0, 100).map(function (key) {\n return \"'\".concat(key, \"'\");\n }).join(', ')));\n var result;\n if (checked === true) {\n result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n } else {\n result = cleanConductCheck(keys, checked.halfCheckedKeys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n }\n return result;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport warning from \"rc-util/es/warning\";\nexport function getPosition(level, index) {\n return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\nexport function getKey(key, pos) {\n if (key !== null && key !== undefined) {\n return key;\n }\n return pos;\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n title = _ref.title,\n _title = _ref._title,\n key = _ref.key,\n children = _ref.children;\n var mergedTitle = title || 'title';\n return {\n title: mergedTitle,\n _title: _title || [mergedTitle],\n key: key || 'key',\n children: children || 'children'\n };\n}\n/**\n * Warning if TreeNode do not provides key\n */\nexport function warningWithoutKey(treeData, fieldNames) {\n var keys = new Map();\n function dig(list) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (list || []).forEach(function (treeNode) {\n var key = treeNode[fieldNames.key];\n var children = treeNode[fieldNames.children];\n warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n var recordKey = String(key);\n warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n keys.set(recordKey, true);\n dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n });\n }\n dig(treeData);\n}\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\nexport function convertTreeToData(rootNodes) {\n function dig(node) {\n var treeNodes = toArray(node);\n return treeNodes.map(function (treeNode) {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n return null;\n }\n var key = treeNode.key;\n var _treeNode$props = treeNode.props,\n children = _treeNode$props.children,\n rest = _objectWithoutProperties(_treeNode$props, _excluded);\n var dataNode = _objectSpread({\n key: key\n }, rest);\n var parsedChildren = dig(children);\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n return dataNode;\n }).filter(function (dataNode) {\n return dataNode;\n });\n }\n return dig(rootNodes);\n}\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\nexport function flattenTreeData(treeNodeList, expandedKeys, fieldNames) {\n var _fillFieldNames = fillFieldNames(fieldNames),\n fieldTitles = _fillFieldNames._title,\n fieldKey = _fillFieldNames.key,\n fieldChildren = _fillFieldNames.children;\n var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n var flattenList = [];\n function dig(list) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return list.map(function (treeNode, index) {\n var pos = getPosition(parent ? parent.pos : '0', index);\n var mergedKey = getKey(treeNode[fieldKey], pos);\n // Pick matched title in field title list\n var mergedTitle;\n for (var i = 0; i < fieldTitles.length; i += 1) {\n var fieldTitle = fieldTitles[i];\n if (treeNode[fieldTitle] !== undefined) {\n mergedTitle = treeNode[fieldTitle];\n break;\n }\n }\n // Add FlattenDataNode into list\n var flattenNode = _objectSpread(_objectSpread({}, omit(treeNode, [].concat(_toConsumableArray(fieldTitles), [fieldKey, fieldChildren]))), {}, {\n title: mergedTitle,\n key: mergedKey,\n parent: parent,\n pos: pos,\n children: null,\n data: treeNode,\n isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n });\n flattenList.push(flattenNode);\n // Loop treeNode children\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);\n } else {\n flattenNode.children = [];\n }\n return flattenNode;\n });\n }\n dig(treeNodeList);\n return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\nexport function traverseDataNodes(dataNodes, callback,\n// To avoid too many params, let use config instead of origin param\nconfig) {\n var mergedConfig = {};\n if (_typeof(config) === 'object') {\n mergedConfig = config;\n } else {\n mergedConfig = {\n externalGetKey: config\n };\n }\n mergedConfig = mergedConfig || {};\n // Init config\n var _mergedConfig = mergedConfig,\n childrenPropName = _mergedConfig.childrenPropName,\n externalGetKey = _mergedConfig.externalGetKey,\n fieldNames = _mergedConfig.fieldNames;\n var _fillFieldNames2 = fillFieldNames(fieldNames),\n fieldKey = _fillFieldNames2.key,\n fieldChildren = _fillFieldNames2.children;\n var mergeChildrenPropName = childrenPropName || fieldChildren;\n // Get keys\n var syntheticGetKey;\n if (externalGetKey) {\n if (typeof externalGetKey === 'string') {\n syntheticGetKey = function syntheticGetKey(node) {\n return node[externalGetKey];\n };\n } else if (typeof externalGetKey === 'function') {\n syntheticGetKey = function syntheticGetKey(node) {\n return externalGetKey(node);\n };\n }\n } else {\n syntheticGetKey = function syntheticGetKey(node, pos) {\n return getKey(node[fieldKey], pos);\n };\n }\n // Process\n function processNode(node, index, parent, pathNodes) {\n var children = node ? node[mergeChildrenPropName] : dataNodes;\n var pos = node ? getPosition(parent.pos, index) : '0';\n var connectNodes = node ? [].concat(_toConsumableArray(pathNodes), [node]) : [];\n // Process node if is not root\n if (node) {\n var key = syntheticGetKey(node, pos);\n var data = {\n node: node,\n index: index,\n pos: pos,\n key: key,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1,\n nodes: connectNodes\n };\n callback(data);\n }\n // Process children node\n if (children) {\n children.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, {\n node: node,\n pos: pos,\n level: parent ? parent.level + 1 : -1\n }, connectNodes);\n });\n }\n }\n processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\nexport function convertDataToEntities(dataNodes) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref2.initWrapper,\n processEntity = _ref2.processEntity,\n onProcessFinished = _ref2.onProcessFinished,\n externalGetKey = _ref2.externalGetKey,\n childrenPropName = _ref2.childrenPropName,\n fieldNames = _ref2.fieldNames;\n var /** @deprecated Use `config.externalGetKey` instead */\n legacyExternalGetKey = arguments.length > 2 ? arguments[2] : undefined;\n // Init config\n var mergedExternalGetKey = externalGetKey || legacyExternalGetKey;\n var posEntities = {};\n var keyEntities = {};\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n traverseDataNodes(dataNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos,\n level = item.level,\n nodes = item.nodes;\n var entity = {\n node: node,\n nodes: nodes,\n index: index,\n key: key,\n pos: pos,\n level: level\n };\n var mergedKey = getKey(key, pos);\n posEntities[pos] = entity;\n keyEntities[mergedKey] = entity;\n // Fill children\n entity.parent = posEntities[parentPos];\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n }, {\n externalGetKey: mergedExternalGetKey,\n childrenPropName: childrenPropName,\n fieldNames: fieldNames\n });\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\nexport function getTreeNodeProps(key, _ref3) {\n var expandedKeys = _ref3.expandedKeys,\n selectedKeys = _ref3.selectedKeys,\n loadedKeys = _ref3.loadedKeys,\n loadingKeys = _ref3.loadingKeys,\n checkedKeys = _ref3.checkedKeys,\n halfCheckedKeys = _ref3.halfCheckedKeys,\n dragOverNodeKey = _ref3.dragOverNodeKey,\n dropPosition = _ref3.dropPosition,\n keyEntities = _ref3.keyEntities;\n var entity = keyEntities[key];\n var treeNodeProps = {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n // [Legacy] Drag props\n // Since the interaction of drag is changed, the semantic of the props are\n // not accuracy, I think it should be finally removed\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n };\n return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n var data = props.data,\n expanded = props.expanded,\n selected = props.selected,\n checked = props.checked,\n loaded = props.loaded,\n loading = props.loading,\n halfChecked = props.halfChecked,\n dragOver = props.dragOver,\n dragOverGapTop = props.dragOverGapTop,\n dragOverGapBottom = props.dragOverGapBottom,\n pos = props.pos,\n active = props.active,\n eventKey = props.eventKey;\n var eventData = _objectSpread(_objectSpread({}, data), {}, {\n expanded: expanded,\n selected: selected,\n checked: checked,\n loaded: loaded,\n loading: loading,\n halfChecked: halfChecked,\n dragOver: dragOver,\n dragOverGapTop: dragOverGapTop,\n dragOverGapBottom: dragOverGapBottom,\n pos: pos,\n active: active,\n key: eventKey\n });\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get: function get() {\n warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n return props;\n }\n });\n }\n return eventData;\n}","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n if (target !== null && target !== void 0 && target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n return {\n remove: function remove() {\n if (target !== null && target !== void 0 && target.removeEventListener) {\n target.removeEventListener(eventType, callback, option);\n }\n }\n };\n}","/* eslint-disable no-nested-ternary */\nvar PIXEL_PATTERN = /margin|padding|width|height|max|min|offset/;\nvar removePixel = {\n left: true,\n top: true\n};\nvar floatMap = {\n cssFloat: 1,\n styleFloat: 1,\n float: 1\n};\nfunction getComputedStyle(node) {\n return node.nodeType === 1 ? node.ownerDocument.defaultView.getComputedStyle(node, null) : {};\n}\nfunction getStyleValue(node, type, value) {\n type = type.toLowerCase();\n if (value === 'auto') {\n if (type === 'height') {\n return node.offsetHeight;\n }\n if (type === 'width') {\n return node.offsetWidth;\n }\n }\n if (!(type in removePixel)) {\n removePixel[type] = PIXEL_PATTERN.test(type);\n }\n return removePixel[type] ? parseFloat(value) || 0 : value;\n}\nexport function get(node, name) {\n var length = arguments.length;\n var style = getComputedStyle(node);\n name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n return length === 1 ? style : getStyleValue(node, name, style[name] || node.style[name]);\n}\nexport function set(node, name, value) {\n var length = arguments.length;\n name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n if (length === 3) {\n if (typeof value === 'number' && PIXEL_PATTERN.test(name)) {\n value = \"\".concat(value, \"px\");\n }\n node.style[name] = value; // Number\n return value;\n }\n for (var x in name) {\n if (name.hasOwnProperty(x)) {\n set(node, x, name[x]);\n }\n }\n return getComputedStyle(node);\n}\nexport function getOuterWidth(el) {\n if (el === document.body) {\n return document.documentElement.clientWidth;\n }\n return el.offsetWidth;\n}\nexport function getOuterHeight(el) {\n if (el === document.body) {\n return window.innerHeight || document.documentElement.clientHeight;\n }\n return el.offsetHeight;\n}\nexport function getDocSize() {\n var width = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);\n var height = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n return {\n width: width,\n height: height\n };\n}\nexport function getClientSize() {\n var width = document.documentElement.clientWidth;\n var height = window.innerHeight || document.documentElement.clientHeight;\n return {\n width: width,\n height: height\n };\n}\nexport function getScroll() {\n return {\n scrollLeft: Math.max(document.documentElement.scrollLeft, document.body.scrollLeft),\n scrollTop: Math.max(document.documentElement.scrollTop, document.body.scrollTop)\n };\n}\nexport function getOffset(node) {\n var box = node.getBoundingClientRect();\n var docElem = document.documentElement;\n\n // < ie8 不支持 win.pageXOffset, 则使用 docElem.scrollLeft\n return {\n left: box.left + (window.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || document.body.clientLeft || 0),\n top: box.top + (window.pageYOffset || docElem.scrollTop) - (docElem.clientTop || document.body.clientTop || 0)\n };\n}","import canUseDom from \"./canUseDom\";\nvar isStyleNameSupport = function isStyleNameSupport(styleName) {\n if (canUseDom() && window.document.documentElement) {\n var styleNameList = Array.isArray(styleName) ? styleName : [styleName];\n var documentElement = window.document.documentElement;\n return styleNameList.some(function (name) {\n return name in documentElement.style;\n });\n }\n return false;\n};\nvar isStyleValueSupport = function isStyleValueSupport(styleName, value) {\n if (!isStyleNameSupport(styleName)) {\n return false;\n }\n var ele = document.createElement('div');\n var origin = ele.style[styleName];\n ele.style[styleName] = value;\n return ele.style[styleName] !== origin;\n};\nexport function isStyleSupport(styleName, styleValue) {\n if (!Array.isArray(styleName) && styleValue !== undefined) {\n return isStyleValueSupport(styleName, styleValue);\n }\n return isStyleNameSupport(styleName);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.autoprefix = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar transforms = {\n borderRadius: function borderRadius(value) {\n return {\n msBorderRadius: value,\n MozBorderRadius: value,\n OBorderRadius: value,\n WebkitBorderRadius: value,\n borderRadius: value\n };\n },\n boxShadow: function boxShadow(value) {\n return {\n msBoxShadow: value,\n MozBoxShadow: value,\n OBoxShadow: value,\n WebkitBoxShadow: value,\n boxShadow: value\n };\n },\n userSelect: function userSelect(value) {\n return {\n WebkitTouchCallout: value,\n KhtmlUserSelect: value,\n MozUserSelect: value,\n msUserSelect: value,\n WebkitUserSelect: value,\n userSelect: value\n };\n },\n\n flex: function flex(value) {\n return {\n WebkitBoxFlex: value,\n MozBoxFlex: value,\n WebkitFlex: value,\n msFlex: value,\n flex: value\n };\n },\n flexBasis: function flexBasis(value) {\n return {\n WebkitFlexBasis: value,\n flexBasis: value\n };\n },\n justifyContent: function justifyContent(value) {\n return {\n WebkitJustifyContent: value,\n justifyContent: value\n };\n },\n\n transition: function transition(value) {\n return {\n msTransition: value,\n MozTransition: value,\n OTransition: value,\n WebkitTransition: value,\n transition: value\n };\n },\n\n transform: function transform(value) {\n return {\n msTransform: value,\n MozTransform: value,\n OTransform: value,\n WebkitTransform: value,\n transform: value\n };\n },\n absolute: function absolute(value) {\n var direction = value && value.split(' ');\n return {\n position: 'absolute',\n top: direction && direction[0],\n right: direction && direction[1],\n bottom: direction && direction[2],\n left: direction && direction[3]\n };\n },\n extend: function extend(name, otherElementStyles) {\n var otherStyle = otherElementStyles[name];\n if (otherStyle) {\n return otherStyle;\n }\n return {\n 'extend': name\n };\n }\n};\n\nvar autoprefix = exports.autoprefix = function autoprefix(elements) {\n var prefixed = {};\n (0, _forOwn3.default)(elements, function (styles, element) {\n var expanded = {};\n (0, _forOwn3.default)(styles, function (value, key) {\n var transform = transforms[key];\n if (transform) {\n expanded = _extends({}, expanded, transform(value));\n } else {\n expanded[key] = value;\n }\n });\n prefixed[element] = expanded;\n });\n return prefixed;\n};\n\nexports.default = autoprefix;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.active = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar active = exports.active = function active(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Active, _React$Component);\n\n function Active() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Active);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Active.__proto__ || Object.getPrototypeOf(Active)).call.apply(_ref, [this].concat(args))), _this), _this.state = { active: false }, _this.handleMouseDown = function () {\n return _this.setState({ active: true });\n }, _this.handleMouseUp = function () {\n return _this.setState({ active: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseDown: _this.handleMouseDown, onMouseUp: _this.handleMouseUp },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Active;\n }(_react2.default.Component);\n};\n\nexports.default = active;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hover = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar hover = exports.hover = function hover(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Hover, _React$Component);\n\n function Hover() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hover);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Hover.__proto__ || Object.getPrototypeOf(Hover)).call.apply(_ref, [this].concat(args))), _this), _this.state = { hover: false }, _this.handleMouseOver = function () {\n return _this.setState({ hover: true });\n }, _this.handleMouseOut = function () {\n return _this.setState({ hover: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseOver: _this.handleMouseOver, onMouseOut: _this.handleMouseOut },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Hover;\n }(_react2.default.Component);\n};\n\nexports.default = hover;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flattenNames = undefined;\n\nvar _isString2 = require('lodash/isString');\n\nvar _isString3 = _interopRequireDefault(_isString2);\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _isPlainObject2 = require('lodash/isPlainObject');\n\nvar _isPlainObject3 = _interopRequireDefault(_isPlainObject2);\n\nvar _map2 = require('lodash/map');\n\nvar _map3 = _interopRequireDefault(_map2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar flattenNames = exports.flattenNames = function flattenNames() {\n var things = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var names = [];\n\n (0, _map3.default)(things, function (thing) {\n if (Array.isArray(thing)) {\n flattenNames(thing).map(function (name) {\n return names.push(name);\n });\n } else if ((0, _isPlainObject3.default)(thing)) {\n (0, _forOwn3.default)(thing, function (value, key) {\n value === true && names.push(key);\n names.push(key + '-' + value);\n });\n } else if ((0, _isString3.default)(thing)) {\n names.push(thing);\n }\n });\n\n return names;\n};\n\nexports.default = flattenNames;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined;\n\nvar _flattenNames = require('./flattenNames');\n\nvar _flattenNames2 = _interopRequireDefault(_flattenNames);\n\nvar _mergeClasses = require('./mergeClasses');\n\nvar _mergeClasses2 = _interopRequireDefault(_mergeClasses);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _hover2 = require('./components/hover');\n\nvar _hover3 = _interopRequireDefault(_hover2);\n\nvar _active = require('./components/active');\n\nvar _active2 = _interopRequireDefault(_active);\n\nvar _loop2 = require('./loop');\n\nvar _loop3 = _interopRequireDefault(_loop2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\nvar ReactCSS = exports.ReactCSS = function ReactCSS(classes) {\n for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n activations[_key - 1] = arguments[_key];\n }\n\n var activeNames = (0, _flattenNames2.default)(activations);\n var merged = (0, _mergeClasses2.default)(classes, activeNames);\n return (0, _autoprefix2.default)(merged);\n};\n\nexports.default = ReactCSS;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar loopable = function loopable(i, length) {\n var props = {};\n var setProp = function setProp(name) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n props[name] = value;\n };\n\n i === 0 && setProp('first-child');\n i === length - 1 && setProp('last-child');\n (i === 0 || i % 2 === 0) && setProp('even');\n Math.abs(i % 2) === 1 && setProp('odd');\n setProp('nth-child', i);\n\n return props;\n};\n\nexports.default = loopable;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mergeClasses = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _cloneDeep2 = require('lodash/cloneDeep');\n\nvar _cloneDeep3 = _interopRequireDefault(_cloneDeep2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mergeClasses = exports.mergeClasses = function mergeClasses(classes) {\n var activeNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var styles = classes.default && (0, _cloneDeep3.default)(classes.default) || {};\n activeNames.map(function (name) {\n var toMerge = classes[name];\n if (toMerge) {\n (0, _forOwn3.default)(toMerge, function (value, key) {\n if (!styles[key]) {\n styles[key] = {};\n }\n\n styles[key] = _extends({}, styles[key], toMerge[key]);\n });\n }\n\n return name;\n });\n return styles;\n};\n\nexports.default = mergeClasses;","'use strict'\n\nconst { hasOwnProperty } = Object.prototype\n\nconst stringify = configure()\n\n// @ts-expect-error\nstringify.configure = configure\n// @ts-expect-error\nstringify.stringify = stringify\n\n// @ts-expect-error\nstringify.default = stringify\n\n// @ts-expect-error used for named export\nexports.stringify = stringify\n// @ts-expect-error used for named export\nexports.configure = configure\n\nmodule.exports = stringify\n\n// eslint-disable-next-line no-control-regex\nconst strEscapeSequencesRegExp = /[\\u0000-\\u001f\\u0022\\u005c\\ud800-\\udfff]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?:[^\\ud800-\\udbff]|^)[\\udc00-\\udfff]/\n\n// Escape C0 control characters, double quotes, the backslash and every code\n// unit with a numeric value in the inclusive range 0xD800 to 0xDFFF.\nfunction strEscape (str) {\n // Some magic numbers that worked out fine while benchmarking with v8 8.0\n if (str.length < 5000 && !strEscapeSequencesRegExp.test(str)) {\n return `\"${str}\"`\n }\n return JSON.stringify(str)\n}\n\nfunction insertSort (array) {\n // Insertion sort is very efficient for small input sizes but it has a bad\n // worst case complexity. Thus, use native array sort for bigger values.\n if (array.length > 2e2) {\n return array.sort()\n }\n for (let i = 1; i < array.length; i++) {\n const currentValue = array[i]\n let position = i\n while (position !== 0 && array[position - 1] > currentValue) {\n array[position] = array[position - 1]\n position--\n }\n array[position] = currentValue\n }\n return array\n}\n\nconst typedArrayPrototypeGetSymbolToStringTag =\n Object.getOwnPropertyDescriptor(\n Object.getPrototypeOf(\n Object.getPrototypeOf(\n new Int8Array()\n )\n ),\n Symbol.toStringTag\n ).get\n\nfunction isTypedArrayWithEntries (value) {\n return typedArrayPrototypeGetSymbolToStringTag.call(value) !== undefined && value.length !== 0\n}\n\nfunction stringifyTypedArray (array, separator, maximumBreadth) {\n if (array.length < maximumBreadth) {\n maximumBreadth = array.length\n }\n const whitespace = separator === ',' ? '' : ' '\n let res = `\"0\":${whitespace}${array[0]}`\n for (let i = 1; i < maximumBreadth; i++) {\n res += `${separator}\"${i}\":${whitespace}${array[i]}`\n }\n return res\n}\n\nfunction getCircularValueOption (options) {\n if (hasOwnProperty.call(options, 'circularValue')) {\n const circularValue = options.circularValue\n if (typeof circularValue === 'string') {\n return `\"${circularValue}\"`\n }\n if (circularValue == null) {\n return circularValue\n }\n if (circularValue === Error || circularValue === TypeError) {\n return {\n toString () {\n throw new TypeError('Converting circular structure to JSON')\n }\n }\n }\n throw new TypeError('The \"circularValue\" argument must be of type string or the value null or undefined')\n }\n return '\"[Circular]\"'\n}\n\nfunction getBooleanOption (options, key) {\n let value\n if (hasOwnProperty.call(options, key)) {\n value = options[key]\n if (typeof value !== 'boolean') {\n throw new TypeError(`The \"${key}\" argument must be of type boolean`)\n }\n }\n return value === undefined ? true : value\n}\n\nfunction getPositiveIntegerOption (options, key) {\n let value\n if (hasOwnProperty.call(options, key)) {\n value = options[key]\n if (typeof value !== 'number') {\n throw new TypeError(`The \"${key}\" argument must be of type number`)\n }\n if (!Number.isInteger(value)) {\n throw new TypeError(`The \"${key}\" argument must be an integer`)\n }\n if (value < 1) {\n throw new RangeError(`The \"${key}\" argument must be >= 1`)\n }\n }\n return value === undefined ? Infinity : value\n}\n\nfunction getItemCount (number) {\n if (number === 1) {\n return '1 item'\n }\n return `${number} items`\n}\n\nfunction getUniqueReplacerSet (replacerArray) {\n const replacerSet = new Set()\n for (const value of replacerArray) {\n if (typeof value === 'string' || typeof value === 'number') {\n replacerSet.add(String(value))\n }\n }\n return replacerSet\n}\n\nfunction getStrictOption (options) {\n if (hasOwnProperty.call(options, 'strict')) {\n const value = options.strict\n if (typeof value !== 'boolean') {\n throw new TypeError('The \"strict\" argument must be of type boolean')\n }\n if (value) {\n return (value) => {\n let message = `Object can not safely be stringified. Received type ${typeof value}`\n if (typeof value !== 'function') message += ` (${value.toString()})`\n throw new Error(message)\n }\n }\n }\n}\n\nfunction configure (options) {\n options = { ...options }\n const fail = getStrictOption(options)\n if (fail) {\n if (options.bigint === undefined) {\n options.bigint = false\n }\n if (!('circularValue' in options)) {\n options.circularValue = Error\n }\n }\n const circularValue = getCircularValueOption(options)\n const bigint = getBooleanOption(options, 'bigint')\n const deterministic = getBooleanOption(options, 'deterministic')\n const maximumDepth = getPositiveIntegerOption(options, 'maximumDepth')\n const maximumBreadth = getPositiveIntegerOption(options, 'maximumBreadth')\n\n function stringifyFnReplacer (key, parent, stack, replacer, spacer, indentation) {\n let value = parent[key]\n\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n value = replacer.call(parent, key, value)\n\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n let res = ''\n let join = ','\n const originalIndentation = indentation\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n if (spacer !== '') {\n indentation += spacer\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n }\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyFnReplacer(String(i), value, stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyFnReplacer(String(i), value, stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n if (spacer !== '') {\n res += `\\n${originalIndentation}`\n }\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n let whitespace = ''\n let separator = ''\n if (spacer !== '') {\n indentation += spacer\n join = `,\\n${indentation}`\n whitespace = ' '\n }\n const maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (deterministic && !isTypedArrayWithEntries(value)) {\n keys = insertSort(keys)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifyFnReplacer(key, value, stack, replacer, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}:${whitespace}${tmp}`\n separator = join\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\":${whitespace}\"${getItemCount(removedKeys)} not stringified\"`\n separator = join\n }\n if (spacer !== '' && separator.length > 1) {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifyArrayReplacer (key, value, stack, replacer, spacer, indentation) {\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n const originalIndentation = indentation\n let res = ''\n let join = ','\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n if (spacer !== '') {\n indentation += spacer\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n }\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyArrayReplacer(String(i), value[i], stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyArrayReplacer(String(i), value[i], stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n if (spacer !== '') {\n res += `\\n${originalIndentation}`\n }\n stack.pop()\n return `[${res}]`\n }\n stack.push(value)\n let whitespace = ''\n if (spacer !== '') {\n indentation += spacer\n join = `,\\n${indentation}`\n whitespace = ' '\n }\n let separator = ''\n for (const key of replacer) {\n const tmp = stringifyArrayReplacer(key, value[key], stack, replacer, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}:${whitespace}${tmp}`\n separator = join\n }\n }\n if (spacer !== '' && separator.length > 1) {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifyIndent (key, value, stack, spacer, indentation) {\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n // Prevent calling `toJSON` again.\n if (typeof value !== 'object') {\n return stringifyIndent(key, value, stack, spacer, indentation)\n }\n if (value === null) {\n return 'null'\n }\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n const originalIndentation = indentation\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n indentation += spacer\n let res = `\\n${indentation}`\n const join = `,\\n${indentation}`\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyIndent(String(i), value[i], stack, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyIndent(String(i), value[i], stack, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n res += `\\n${originalIndentation}`\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n indentation += spacer\n const join = `,\\n${indentation}`\n let res = ''\n let separator = ''\n let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (isTypedArrayWithEntries(value)) {\n res += stringifyTypedArray(value, join, maximumBreadth)\n keys = keys.slice(value.length)\n maximumPropertiesToStringify -= value.length\n separator = join\n }\n if (deterministic) {\n keys = insertSort(keys)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifyIndent(key, value[key], stack, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}: ${tmp}`\n separator = join\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\": \"${getItemCount(removedKeys)} not stringified\"`\n separator = join\n }\n if (separator !== '') {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifySimple (key, value, stack) {\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n // Prevent calling `toJSON` again\n if (typeof value !== 'object') {\n return stringifySimple(key, value, stack)\n }\n if (value === null) {\n return 'null'\n }\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n let res = ''\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifySimple(String(i), value[i], stack)\n res += tmp !== undefined ? tmp : 'null'\n res += ','\n }\n const tmp = stringifySimple(String(i), value[i], stack)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `,\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n let separator = ''\n let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (isTypedArrayWithEntries(value)) {\n res += stringifyTypedArray(value, ',', maximumBreadth)\n keys = keys.slice(value.length)\n maximumPropertiesToStringify -= value.length\n separator = ','\n }\n if (deterministic) {\n keys = insertSort(keys)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifySimple(key, value[key], stack)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}:${tmp}`\n separator = ','\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\":\"${getItemCount(removedKeys)} not stringified\"`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringify (value, replacer, space) {\n if (arguments.length > 1) {\n let spacer = ''\n if (typeof space === 'number') {\n spacer = ' '.repeat(Math.min(space, 10))\n } else if (typeof space === 'string') {\n spacer = space.slice(0, 10)\n }\n if (replacer != null) {\n if (typeof replacer === 'function') {\n return stringifyFnReplacer('', { '': value }, [], replacer, spacer, '')\n }\n if (Array.isArray(replacer)) {\n return stringifyArrayReplacer('', value, [], getUniqueReplacerSet(replacer), spacer, '')\n }\n }\n if (spacer.length !== 0) {\n return stringifyIndent('', value, [], spacer, '')\n }\n }\n return stringifySimple('', value, [])\n }\n\n return stringify\n}\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/deepdataspace/server/static/742.e2aedde2.async.js b/deepdataspace/server/static/742.e2aedde2.async.js new file mode 100644 index 0000000..018defa --- /dev/null +++ b/deepdataspace/server/static/742.e2aedde2.async.js @@ -0,0 +1,252 @@ +!(function(){var Su=Object.defineProperty;var Wc=Object.getOwnPropertySymbols;var xu=Object.prototype.hasOwnProperty,wu=Object.prototype.propertyIsEnumerable;var Kc=(Dt,Ne,e)=>Ne in Dt?Su(Dt,Ne,{enumerable:!0,configurable:!0,writable:!0,value:e}):Dt[Ne]=e,Vc=(Dt,Ne)=>{for(var e in Ne||(Ne={}))xu.call(Ne,e)&&Kc(Dt,e,Ne[e]);if(Wc)for(var e of Wc(Ne))wu.call(Ne,e)&&Kc(Dt,e,Ne[e]);return Dt};(self.webpackChunkapp=self.webpackChunkapp||[]).push([[742],{15655:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return t}});var i=e(60698),y=e(58757),M={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"}}]},name:"copy",theme:"outlined"},F=M,D=e(17202),H=function(R,Ce){return y.createElement(D.Z,(0,i.Z)({},R,{ref:Ce,icon:F}))},t=y.forwardRef(H)},85976:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return t}});var i=e(60698),y=e(58757),M={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{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.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z"}}]},name:"file",theme:"outlined"},F=M,D=e(17202),H=function(R,Ce){return y.createElement(D.Z,(0,i.Z)({},R,{ref:Ce,icon:F}))},t=y.forwardRef(H)},81029:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return t}});var i=e(60698),y=e(58757),M={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z"}}]},name:"user",theme:"outlined"},F=M,D=e(17202),H=function(R,Ce){return y.createElement(D.Z,(0,i.Z)({},R,{ref:Ce,icon:F}))},t=y.forwardRef(H)},92232:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return t}});var i=e(60698),y=e(58757),M={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M859.9 168H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM518.3 355a8 8 0 00-12.6 0l-112 141.7a7.98 7.98 0 006.3 12.9h73.9V848c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V509.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 355z"}}]},name:"vertical-align-top",theme:"outlined"},F=M,D=e(17202),H=function(R,Ce){return y.createElement(D.Z,(0,i.Z)({},R,{ref:Ce,icon:F}))},t=y.forwardRef(H)},16566:function(Dt,Ne,e){"use strict";e.d(Ne,{L9:function(){return he},ZP:function(){return yt},MP:function(){return mt},NA:function(){return wt},aK:function(){return Gt}});var i=e(57370),y=e(47075),M=e(28314),F=e(29140),D=e(38790),H=e(37734),t=e(25846),A=e(70260),R=e(78964),Ce=e(60409),se=e(52496),w=e(58757),K=e(66631);function re(St){var fe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:100,Re=arguments.length>2?arguments[2]:void 0,Oe=(0,w.useState)(St),Le=(0,M.Z)(Oe,2),O=Le[0],ke=Le[1],$=(0,K.d)(St);return(0,w.useEffect)(function(){var b=setTimeout(function(){ke($.current)},fe);return function(){return clearTimeout(b)}},Re?[fe].concat((0,F.Z)(Re)):void 0),O}var f=e(57414),_=e(42505),k=e(79233),J=e(99742),$e=e(38914),z=e(35667),h={Success:function(fe){var Re=fe.children;return(0,z.jsx)($e.Z,{status:"success",text:Re})},Error:function(fe){var Re=fe.children;return(0,z.jsx)($e.Z,{status:"error",text:Re})},Default:function(fe){var Re=fe.children;return(0,z.jsx)($e.Z,{status:"default",text:Re})},Processing:function(fe){var Re=fe.children;return(0,z.jsx)($e.Z,{status:"processing",text:Re})},Warning:function(fe){var Re=fe.children;return(0,z.jsx)($e.Z,{status:"warning",text:Re})},success:function(fe){var Re=fe.children;return(0,z.jsx)($e.Z,{status:"success",text:Re})},error:function(fe){var Re=fe.children;return(0,z.jsx)($e.Z,{status:"error",text:Re})},default:function(fe){var Re=fe.children;return(0,z.jsx)($e.Z,{status:"default",text:Re})},processing:function(fe){var Re=fe.children;return(0,z.jsx)($e.Z,{status:"processing",text:Re})},warning:function(fe){var Re=fe.children;return(0,z.jsx)($e.Z,{status:"warning",text:Re})}},Xe=function(fe){var Re=fe.color,Oe=fe.children;return(0,z.jsx)($e.Z,{color:Re,text:Oe})},It=h,Fe=e(99534),xe=e(54637),xt=e(59504),He=e(21149),L=e(87608),Be=e.n(L),$t=e(42156),oe=["label","prefixCls","onChange","value","mode","children","defaultValue","size","showSearch","disabled","style","className","bordered","options","onSearch","allowClear","labelInValue","fieldNames","lightLabel","labelTrigger","optionFilterProp","optionLabelProp"],ue=function(fe,Re){return(0,D.Z)(Re)!=="object"?fe[Re]||Re:fe[Re==null?void 0:Re.value]||Re.label},ce=function(fe,Re){var Oe=fe.label,Le=fe.prefixCls,O=fe.onChange,ke=fe.value,$=fe.mode,b=fe.children,Z=fe.defaultValue,ae=fe.size,q=fe.showSearch,Ye=fe.disabled,ot=fe.style,gt=fe.className,Et=fe.bordered,Nt=fe.options,Vt=fe.onSearch,Bt=fe.allowClear,tt=fe.labelInValue,st=fe.fieldNames,Ft=fe.lightLabel,jt=fe.labelTrigger,Lt=fe.optionFilterProp,un=fe.optionLabelProp,Ut=un===void 0?"":un,pn=(0,y.Z)(fe,oe),Sn=fe.placeholder,Xt=Sn===void 0?Oe:Sn,an=st||{},ln=an.label,Pn=ln===void 0?"label":ln,zn=an.value,qn=zn===void 0?"value":zn,yr=(0,w.useContext)(_.ZP.ConfigContext),Bn=yr.getPrefixCls,ne=Bn("pro-field-select-light-select"),qe=(0,w.useState)(!1),_e=(0,M.Z)(qe,2),ee=_e[0],Y=_e[1],Ae=(0,w.useState)(""),we=(0,M.Z)(Ae,2),ct=we[0],be=we[1],U=(0,A.Xj)("LightSelect",function(T){var N;return(0,H.Z)({},".".concat(ne),(N={},(0,H.Z)(N,"".concat(T.antCls,"-select"),{position:"absolute",width:"153px",height:"28px",visibility:"hidden","&-selector":{height:28}}),(0,H.Z)(N,"&.".concat(ne,"-searchable"),(0,H.Z)({},"".concat(T.antCls,"-select"),{width:"200px","&-selector":{height:28}})),N))}),Ie=U.wrapSSR,ht=U.hashId,Se=(0,w.useMemo)(function(){var T={};return Nt==null||Nt.forEach(function(N){var x=N[Ut]||N[Pn],te=N[qn];T[te]=x||te}),T},[Pn,Nt,qn,Ut]),de=Array.isArray(ke)?ke.map(function(T){return ue(Se,T)}):ue(Se,ke);return Ie((0,z.jsxs)("div",{className:Be()(ne,ht,(0,H.Z)({},"".concat(ne,"-searchable"),q),"".concat(ne,"-container-").concat(pn.placement||"bottomLeft"),gt),style:ot,onClick:function(N){var x,te,ye;if(!Ye){var Ze=Ft==null||(x=Ft.current)===null||x===void 0||(te=x.labelRef)===null||te===void 0||(ye=te.current)===null||ye===void 0?void 0:ye.contains(N.target);Y(Ze?!ee:!0)}},children:[(0,z.jsx)(xt.Z,(0,i.Z)((0,i.Z)({popupMatchSelectWidth:!1},pn),{},{allowClear:Bt,value:ke,mode:$,labelInValue:tt,size:ae,disabled:Ye,onChange:function(N,x){O==null||O(N,x),$!=="multiple"&&Y(!1)},bordered:Et,showSearch:q,onSearch:Vt,style:ot,dropdownRender:function(N){return(0,z.jsxs)("div",{ref:Re,children:[q&&(0,z.jsx)("div",{style:{margin:"4px 8px"},children:(0,z.jsx)(He.Z,{value:ct,allowClear:!!Bt,onChange:function(te){be(te.target.value),Vt==null||Vt(te.target.value)},onKeyDown:function(te){te.stopPropagation()},style:{width:"100%"},prefix:(0,z.jsx)(Fe.Z,{})})}),N]})},open:ee,onDropdownVisibleChange:function(N){var x;N||be(""),jt||Y(N),pn==null||(x=pn.onDropdownVisibleChange)===null||x===void 0||x.call(pn,N)},prefixCls:Le,options:Vt||!ct?Nt:Nt==null?void 0:Nt.filter(function(T){var N,x,te,ye,Ze;return Lt?(0,$t.Z)(T[Lt]).join("").toLowerCase().includes(ct):((N=String(T[Pn]))===null||N===void 0||(x=N.toLowerCase())===null||x===void 0?void 0:x.includes(ct==null?void 0:ct.toLowerCase()))||((te=T[qn])===null||te===void 0||(ye=te.toString())===null||ye===void 0||(Ze=ye.toLowerCase())===null||Ze===void 0?void 0:Ze.includes(ct==null?void 0:ct.toLowerCase()))})})),(0,z.jsx)(xe.Q,{ellipsis:!0,label:Oe,placeholder:Xt,disabled:Ye,bordered:Et,allowClear:!!Bt,value:de||(ke==null?void 0:ke.label)||ke,onClear:function(){O==null||O(void 0,void 0)},ref:Ft})]}))},Je=w.forwardRef(ce),it=["optionItemRender","mode","onSearch","onFocus","onChange","autoClearSearchValue","searchOnFocus","resetAfterSelect","fetchDataOnSearch","optionFilterProp","optionLabelProp","className","disabled","options","fetchData","resetData","prefixCls","onClear","searchValue","showSearch","fieldNames","defaultSearchValue"],Te=["className","optionType"],ut=function(fe,Re){var Oe=fe.optionItemRender,Le=fe.mode,O=fe.onSearch,ke=fe.onFocus,$=fe.onChange,b=fe.autoClearSearchValue,Z=b===void 0?!0:b,ae=fe.searchOnFocus,q=ae===void 0?!1:ae,Ye=fe.resetAfterSelect,ot=Ye===void 0?!1:Ye,gt=fe.fetchDataOnSearch,Et=gt===void 0?!0:gt,Nt=fe.optionFilterProp,Vt=Nt===void 0?"label":Nt,Bt=fe.optionLabelProp,tt=Bt===void 0?"label":Bt,st=fe.className,Ft=fe.disabled,jt=fe.options,Lt=fe.fetchData,un=fe.resetData,Ut=fe.prefixCls,pn=fe.onClear,Sn=fe.searchValue,Xt=fe.showSearch,an=fe.fieldNames,ln=fe.defaultSearchValue,Pn=(0,y.Z)(fe,it),zn=an||{},qn=zn.label,yr=qn===void 0?"label":qn,Bn=zn.value,ne=Bn===void 0?"value":Bn,qe=zn.options,_e=qe===void 0?"options":qe,ee=(0,w.useState)(Sn!=null?Sn:ln),Y=(0,M.Z)(ee,2),Ae=Y[0],we=Y[1],ct=(0,w.useRef)();(0,w.useImperativeHandle)(Re,function(){return ct.current}),(0,w.useEffect)(function(){if(Pn.autoFocus){var T;ct==null||(T=ct.current)===null||T===void 0||T.focus()}},[Pn.autoFocus]),(0,w.useEffect)(function(){we(Sn)},[Sn]);var be=(0,w.useContext)(_.ZP.ConfigContext),U=be.getPrefixCls,Ie=U("pro-filed-search-select",Ut),ht=Be()(Ie,st,(0,H.Z)({},"".concat(Ie,"-disabled"),Ft)),Se=function(N,x){return Array.isArray(N)&&N.length>0?N.map(function(te,ye){var Ze=x==null?void 0:x[ye],Ke=(Ze==null?void 0:Ze["data-item"])||{};return(0,i.Z)((0,i.Z)({},Ke),te)}):[]},de=function T(N){return N.map(function(x,te){var ye,Ze=x,Ke=Ze.className,Ve=Ze.optionType,et=(0,y.Z)(Ze,Te),Ht=x[yr],dt=x[ne],Cn=(ye=x[_e])!==null&&ye!==void 0?ye:[];return Ve==="optGroup"||x.options?(0,i.Z)((0,i.Z)({label:Ht},et),{},{data_title:Ht,title:Ht,key:dt!=null?dt:Ht==null?void 0:Ht.toString(),children:T(Cn)}):(0,i.Z)((0,i.Z)({title:Ht},et),{},{data_title:Ht,value:dt!=null?dt:te,key:dt!=null?dt:Ht==null?void 0:Ht.toString(),"data-item":x,className:"".concat(Ie,"-option ").concat(Ke||"").trim(),label:(Oe==null?void 0:Oe(x))||Ht})})};return(0,z.jsx)(xt.Z,(0,i.Z)((0,i.Z)({ref:ct,className:ht,allowClear:!0,autoClearSearchValue:Z,disabled:Ft,mode:Le,showSearch:Xt,searchValue:Ae,optionFilterProp:Vt,optionLabelProp:tt,onClear:function(){pn==null||pn(),Lt(void 0),Xt&&we(void 0)}},Pn),{},{filterOption:Pn.filterOption==!1?!1:function(T,N){var x,te,ye;return Pn.filterOption&&typeof Pn.filterOption=="function"?Pn.filterOption(T,(0,i.Z)((0,i.Z)({},N),{},{label:N==null?void 0:N.data_title})):!!(N!=null&&(x=N.data_title)!==null&&x!==void 0&&x.toString().toLowerCase().includes(T.toLowerCase())||N!=null&&(te=N.label)!==null&&te!==void 0&&te.toString().toLowerCase().includes(T.toLowerCase())||N!=null&&(ye=N.value)!==null&&ye!==void 0&&ye.toString().toLowerCase().includes(T.toLowerCase()))},onSearch:Xt?function(T){Et&&Lt(T),O==null||O(T),we(T)}:void 0,onChange:function(N,x){Xt&&Z&&(Lt(void 0),O==null||O(""),we(void 0));for(var te=arguments.length,ye=new Array(te>2?te-2:0),Ze=2;Ze2&&arguments[2]!==void 0?arguments[2]:!0,Ye=Object.keys(ae).reduce(function(Et,Nt){var Vt=ae[Nt];return(0,xt.k)(Vt)||(Et[Nt]=Vt),Et},{});if(Object.keys(Ye).length<1||typeof window=="undefined"||(0,h.Z)(Z)!=="object"||(0,xt.k)(Z)||Z instanceof Blob)return Z;var ot=Array.isArray(Z)?[]:{},gt=function Et(Nt,Vt){var Bt=Array.isArray(Nt),tt=Bt?[]:{};return Nt==null||Nt===void 0?tt:(Object.keys(Nt).forEach(function(st){var Ft=function Sn(Xt,an){return Array.isArray(Xt)&&Xt.forEach(function(ln,Pn){if(ln){var zn=an==null?void 0:an[Pn];typeof ln=="function"&&(an[Pn]=ln(an,st,Nt)),(0,h.Z)(ln)==="object"&&!Array.isArray(ln)&&Object.keys(ln).forEach(function(qn){var yr=zn==null?void 0:zn[qn];if(typeof ln[qn]=="function"&&yr){var Bn=ln[qn](zn[qn],st,Nt);zn[qn]=(0,h.Z)(Bn)==="object"?Bn[qn]:Bn}else(0,h.Z)(ln[qn])==="object"&&Array.isArray(ln[qn])&&yr&&Sn(ln[qn],yr)}),(0,h.Z)(ln)==="object"&&Array.isArray(ln)&&zn&&Sn(ln,zn)}}),st},jt=Vt?[Vt,st].flat(1):[st].flat(1),Lt=Nt[st],un=(0,Fe.Z)(Ye,jt),Ut=function(){var Xt,an,ln=!1;if(typeof un=="function"){an=un==null?void 0:un(Lt,st,Nt);var Pn=(0,h.Z)(an);Pn!=="object"&&Pn!=="undefined"?(Xt=st,ln=!0):Xt=an}else Xt=Ft(un,Lt);if(Array.isArray(Xt)){tt=(0,xe.Z)(tt,Xt,Lt);return}(0,h.Z)(Xt)==="object"&&!Array.isArray(ot)?ot=It()(ot,Xt):(0,h.Z)(Xt)==="object"&&Array.isArray(ot)?tt=(0,M.Z)((0,M.Z)({},tt),Xt):(Xt!==null||Xt!==void 0)&&(tt=(0,xe.Z)(tt,[Xt],ln?an:Lt))};if(un&&typeof un=="function"&&Ut(),typeof window!="undefined"){if(L(Lt)){var pn=Et(Lt,jt);if(Object.keys(pn).length<1)return;tt=(0,xe.Z)(tt,[st],pn);return}Ut()}}),q?tt:Nt)};return ot=Array.isArray(Z)&&Array.isArray(ot)?(0,z.Z)(gt(Z)):(0,He.T)({},gt(Z),ot),ot},$t=e(24435),oe=function(){return oe=Object.assign||function(b){for(var Z,ae=1,q=arguments.length;ae0&&arguments[0]!==void 0?arguments[0]:[],x=Le(N);if(!x)throw new Error("nameList is require");var te=(T=we())===null||T===void 0?void 0:T.getFieldValue(x),ye=x?(0,xe.Z)({},x,te):te;return(0,Fe.Z)(Nt(ye,Xt,x),x)},getFieldFormatValueObject:function(T){var N,x=Le(T),te=(N=we())===null||N===void 0?void 0:N.getFieldValue(x),ye=x?(0,xe.Z)({},x,te):te;return Nt(ye,Xt,x)},validateFieldsReturnFormatValue:function(){var de=(0,D.Z)((0,F.Z)().mark(function N(x){var te,ye,Ze;return(0,F.Z)().wrap(function(Ve){for(;;)switch(Ve.prev=Ve.next){case 0:if(!(!Array.isArray(x)&&x)){Ve.next=2;break}throw new Error("nameList must be array");case 2:return Ve.next=4,(te=we())===null||te===void 0?void 0:te.validateFields(x);case 4:return ye=Ve.sent,Ze=Nt(ye,Xt),Ve.abrupt("return",Ze||{});case 7:case"end":return Ve.stop()}},N)}));function T(N){return de.apply(this,arguments)}return T}()}},[Xt,Nt]),be=(0,f.useMemo)(function(){return f.Children.toArray(ae).map(function(de,T){return T===0&&f.isValidElement(de)&&Pn?f.cloneElement(de,(0,M.Z)((0,M.Z)({},de.props),{},{autoFocus:Pn})):de})},[Pn,ae]),U=(0,f.useMemo)(function(){return typeof Ye=="boolean"||!Ye?{}:Ye},[Ye]),Ie=(0,f.useMemo)(function(){if(Ye!==!1)return(0,pt.jsx)(wt,(0,M.Z)((0,M.Z)({},U),{},{onReset:function(){var T,N,x=Nt((T=ee.current)===null||T===void 0?void 0:T.getFieldsValue(),Xt);if(U==null||(N=U.onReset)===null||N===void 0||N.call(U,x),pn==null||pn(x),un){var te,ye=Object.keys(Nt((te=ee.current)===null||te===void 0?void 0:te.getFieldsValue(),!1)).reduce(function(Ze,Ke){return(0,M.Z)((0,M.Z)({},Ze),{},(0,y.Z)({},Ke,x[Ke]||void 0))},Lt);Ut(Oe(un,ye,"set"))}},submitButtonProps:(0,M.Z)({loading:st},U.submitButtonProps)}),"submitter")},[Ye,U,st,Nt,Xt,pn,un,Lt,Ut]),ht=(0,f.useMemo)(function(){var de=zn?(0,pt.jsx)(Ae,{children:be}):be;return q?q(de,Ie,ee.current):de},[zn,Ae,be,q,Ie]),Se=(0,Ce.D)(b.initialValues);return(0,f.useEffect)(function(){if(!(un||!b.initialValues||!Se||Bn.request)){var de=(0,se.A)(b.initialValues,Se);(0,mt.ET)(de,"initialValues \u53EA\u5728 form \u521D\u59CB\u5316\u65F6\u751F\u6548\uFF0C\u5982\u679C\u4F60\u9700\u8981\u5F02\u6B65\u52A0\u8F7D\u63A8\u8350\u4F7F\u7528 request\uFF0C\u6216\u8005 initialValues ? : null "),(0,mt.ET)(de,"The initialValues only take effect when the form is initialized, if you need to load asynchronously recommended request, or the initialValues ? : null ")}},[b.initialValues]),(0,f.useImperativeHandle)(Vt,function(){return(0,M.Z)((0,M.Z)({},ee.current),ct)},[ct,ee.current]),(0,f.useEffect)(function(){var de,T,N=Nt((de=ee.current)===null||de===void 0||(T=de.getFieldsValue)===null||T===void 0?void 0:T.call(de,!0),Xt);Bt==null||Bt(N,(0,M.Z)((0,M.Z)({},ee.current),ct))},[]),(0,pt.jsx)(w.J.Provider,{value:(0,M.Z)((0,M.Z)({},ct),{},{formRef:ee}),children:(0,pt.jsx)(ut.ZP,{componentSize:Bn.size||_e,children:(0,pt.jsxs)(yt._p.Provider,{value:{grid:zn,colProps:yr},children:[Bn.component!==!1&&(0,pt.jsx)("input",{type:"text",style:{display:"none"}}),ht]})})})}var ke=0;function $(b){var Z=b.extraUrlParams,ae=Z===void 0?{}:Z,q=b.syncToUrl,Ye=b.isKeyPressSubmit,ot=b.syncToUrlAsImportant,gt=ot===void 0?!1:ot,Et=b.syncToInitialValues,Nt=Et===void 0?!0:Et,Vt=b.children,Bt=b.contentRender,tt=b.submitter,st=b.fieldProps,Ft=b.proFieldProps,jt=b.formItemProps,Lt=b.groupProps,un=b.dateFormatter,Ut=un===void 0?"string":un,pn=b.formRef,Sn=b.onInit,Xt=b.form,an=b.formComponentType,ln=b.onReset,Pn=b.grid,zn=b.rowProps,qn=b.colProps,yr=b.omitNil,Bn=yr===void 0?!0:yr,ne=b.request,qe=b.params,_e=b.initialValues,ee=b.formKey,Y=ee===void 0?ke:ee,Ae=b.readonly,we=b.onLoadingChange,ct=b.loading,be=(0,H.Z)(b,Re),U=(0,f.useRef)({}),Ie=(0,K.Z)(!1,{onChange:we,value:ct}),ht=(0,i.Z)(Ie,2),Se=ht[0],de=ht[1],T=ce({},{disabled:!q}),N=(0,i.Z)(T,2),x=N[0],te=N[1],ye=(0,f.useRef)((0,re.x)());(0,f.useEffect)(function(){ke+=0},[]);var Ze=J({request:ne,params:qe,proFieldKey:Y}),Ke=(0,i.Z)(Ze,1),Ve=Ke[0],et=(0,f.useContext)(ut.ZP.ConfigContext),Ht=et.getPrefixCls,dt=Ht("pro-form"),Cn=(0,$e.Xj)("ProForm",function(An){return(0,y.Z)({},".".concat(dt),(0,y.Z)({},"> div:not(".concat(An.proComponentsCls,"-form-light-filter)"),{".pro-field":{maxWidth:"100%","@media screen and (max-width: 575px)":{maxWidth:"calc(93vw - 48px)"},"&-xs":{width:104},"&-s":{width:216},"&-sm":{width:216},"&-m":{width:328},"&-md":{width:328},"&-l":{width:440},"&-lg":{width:440},"&-xl":{width:552}}}))}),bn=Cn.wrapSSR,Ct=Cn.hashId,fn=(0,f.useState)(function(){return q?Oe(q,x,"get"):{}}),zt=(0,i.Z)(fn,2),cn=zt[0],yn=zt[1],Fn=(0,f.useRef)({}),Yn=(0,f.useRef)({}),Zn=(0,R.J)(function(An,On,_n){return Be((0,$t.lp)(An,Ut,Yn.current,On,_n),Fn.current,On)});(0,f.useEffect)(function(){Nt||yn({})},[Nt]),(0,f.useEffect)(function(){q&&te((0,M.Z)((0,M.Z)({},x),ae))},[ae,q]);var Kn=(0,f.useMemo)(function(){if(typeof window!="undefined"&&an&&["DrawerForm"].includes(an))return function(An){return An.parentNode||document.body}},[an]),vr=(0,R.J)((0,D.Z)((0,F.Z)().mark(function An(){var On,_n,Gn,er,Cr,Lr;return(0,F.Z)().wrap(function(Hn){for(;;)switch(Hn.prev=Hn.next){case 0:if(be.onFinish){Hn.next=2;break}return Hn.abrupt("return");case 2:if(!Se){Hn.next=4;break}return Hn.abrupt("return");case 4:return de(!0),Hn.prev=5,Gn=U==null||(On=U.current)===null||On===void 0||(_n=On.getFieldsFormatValue)===null||_n===void 0?void 0:_n.call(On),Hn.next=9,be.onFinish(Gn);case 9:q&&(Lr=Object.keys(U==null||(er=U.current)===null||er===void 0||(Cr=er.getFieldsFormatValue)===null||Cr===void 0?void 0:Cr.call(er,void 0,!1)).reduce(function(Pr,oo){var Ur;return(0,M.Z)((0,M.Z)({},Pr),{},(0,y.Z)({},oo,(Ur=Gn[oo])!==null&&Ur!==void 0?Ur:void 0))},ae),Object.keys(x).forEach(function(Pr){Lr[Pr]!==!1&&Lr[Pr]!==0&&!Lr[Pr]&&(Lr[Pr]=void 0)}),te(Oe(q,Lr,"set"))),de(!1),Hn.next=17;break;case 13:Hn.prev=13,Hn.t0=Hn.catch(5),console.log(Hn.t0),de(!1);case 17:case"end":return Hn.stop()}},An,null,[[5,13]])})));return(0,f.useImperativeHandle)(pn,function(){return U.current},[!Ve]),!Ve&&b.request?(0,pt.jsx)("div",{style:{paddingTop:50,paddingBottom:50,textAlign:"center"},children:(0,pt.jsx)(X.Z,{})}):bn((0,pt.jsx)(St.A.Provider,{value:{mode:b.readonly?"read":"edit"},children:(0,pt.jsx)(t._Y,{needDeps:!0,children:(0,pt.jsx)(Mt.Z.Provider,{value:{formRef:U,fieldProps:st,proFieldProps:Ft,formItemProps:jt,groupProps:Lt,formComponentType:an,getPopupContainer:Kn,formKey:ye.current,setFieldValueType:function(On,_n){var Gn=_n.valueType,er=Gn===void 0?"text":Gn,Cr=_n.dateFormat,Lr=_n.transform;Array.isArray(On)&&(Fn.current=(0,xe.Z)(Fn.current,On,Lr),Yn.current=(0,xe.Z)(Yn.current,On,{valueType:er,dateFormat:Cr}))}},children:(0,pt.jsx)(Gt.J.Provider,{value:{},children:(0,pt.jsx)(Te.Z,(0,M.Z)((0,M.Z)({onKeyPress:function(On){if(Ye&&On.key==="Enter"){var _n;(_n=U.current)===null||_n===void 0||_n.submit()}},autoComplete:"off",form:Xt},(0,he.Z)(be,["labelWidth","autoFocusFirstInput"])),{},{initialValues:gt?(0,M.Z)((0,M.Z)((0,M.Z)({},_e),Ve),cn):(0,M.Z)((0,M.Z)((0,M.Z)({},cn),_e),Ve),onValuesChange:function(On,_n){var Gn;be==null||(Gn=be.onValuesChange)===null||Gn===void 0||Gn.call(be,Zn(On,!!Bn),Zn(_n,!!Bn))},className:me()(b.className,dt,Ct),onFinish:vr,children:(0,pt.jsx)(O,(0,M.Z)((0,M.Z)({transformKey:Zn,autoComplete:"off",loading:Se,onUrlSearchChange:te},b),{},{formRef:U,initialValues:(0,M.Z)((0,M.Z)({},_e),Ve)}))}))})})})}))}},52024:function(Dt,Ne,e){"use strict";e.d(Ne,{A:function(){return y}});var i=e(58757),y=i.createContext({mode:"edit"})},7798:function(Dt,Ne,e){"use strict";e.d(Ne,{G:function(){return ht}});var i=e(37734),y=e(28314),M=e(57370),F=e(47075),D=e(48145),H=["colon","dependencies","extra","getValueFromEvent","getValueProps","hasFeedback","help","htmlFor","initialValue","noStyle","label","labelAlign","labelCol","name","preserve","normalize","required","rules","shouldUpdate","trigger","validateFirst","validateStatus","validateTrigger","valuePropName","wrapperCol","hidden","addonBefore","addonAfter"];function t(Se){var de={};return H.forEach(function(T){Se[T]!==void 0&&(de[T]=Se[T])}),de}var A=e(59338),R=e(99947),Ce=e(31989),se=e(87608),w=e.n(se),K=e(58757),re=e(60698),f=e(29140),_=e(60412),k=e(14346),J=e(86717),$e=e(87498),z=e(73726),h=e(42156),Xe=e(75556),It=e(7637),Fe="RC_FORM_INTERNAL_HOOKS",xe=function(){(0,Xe.ZP)(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},xt=K.createContext({getFieldValue:xe,getFieldsValue:xe,getFieldError:xe,getFieldWarning:xe,getFieldsError:xe,isFieldsTouched:xe,isFieldTouched:xe,isFieldValidating:xe,isFieldsValidating:xe,resetFields:xe,setFields:xe,setFieldValue:xe,setFieldsValue:xe,validateFields:xe,submit:xe,getInternalHooks:function(){return xe(),{dispatch:xe,initEntityValue:xe,registerField:xe,useSubscribe:xe,setInitialValues:xe,destroyForm:xe,setCallbacks:xe,registerWatch:xe,getFields:xe,setValidateMessages:xe,setPreserve:xe,getInitialValue:xe}}}),He=xt,L=K.createContext(null),Be=L;function $t(Se){return Se==null?[]:Array.isArray(Se)?Se:[Se]}function oe(Se){return Se&&!!Se._init}var ue=e(74632),ce=e(79290),Je=e(78635),it="'${name}' is not a valid ${type}",Te={default:"Validation error on field '${name}'",required:"'${name}' is required",enum:"'${name}' must be one of [${enum}]",whitespace:"'${name}' cannot be empty",date:{format:"'${name}' is invalid for format date",parse:"'${name}' could not be parsed as date",invalid:"'${name}' is invalid date"},types:{string:it,method:it,array:it,object:it,number:it,date:it,boolean:it,integer:it,float:it,regexp:it,email:it,url:it,hex:it},string:{len:"'${name}' must be exactly ${len} characters",min:"'${name}' must be at least ${min} characters",max:"'${name}' cannot be longer than ${max} characters",range:"'${name}' must be between ${min} and ${max} characters"},number:{len:"'${name}' must equal ${len}",min:"'${name}' cannot be less than ${min}",max:"'${name}' cannot be greater than ${max}",range:"'${name}' must be between ${min} and ${max}"},array:{len:"'${name}' must be exactly ${len} in length",min:"'${name}' cannot be less than ${min} in length",max:"'${name}' cannot be greater than ${max} in length",range:"'${name}' must be between ${min} and ${max} in length"},pattern:{mismatch:"'${name}' does not match pattern ${pattern}"}},ut=e(16766),X=Je.Z;function W(Se,de){return Se.replace(/\$\{\w+\}/g,function(T){var N=T.slice(2,-1);return de[N]})}var me="CODE_LOGIC_ERROR";function he(Se,de,T,N,x){return mt.apply(this,arguments)}function mt(){return mt=(0,ce.Z)((0,ue.Z)().mark(function Se(de,T,N,x,te){var ye,Ze,Ke,Ve,et,Ht,dt,Cn,bn;return(0,ue.Z)().wrap(function(fn){for(;;)switch(fn.prev=fn.next){case 0:return ye=(0,M.Z)({},N),delete ye.ruleIndex,X.warning=function(){},ye.validator&&(Ze=ye.validator,ye.validator=function(){try{return Ze.apply(void 0,arguments)}catch(zt){return console.error(zt),Promise.reject(me)}}),Ke=null,ye&&ye.type==="array"&&ye.defaultField&&(Ke=ye.defaultField,delete ye.defaultField),Ve=new X((0,i.Z)({},de,[ye])),et=(0,ut.T)(Te,x.validateMessages),Ve.messages(et),Ht=[],fn.prev=10,fn.next=13,Promise.resolve(Ve.validate((0,i.Z)({},de,T),(0,M.Z)({},x)));case 13:fn.next=18;break;case 15:fn.prev=15,fn.t0=fn.catch(10),fn.t0.errors&&(Ht=fn.t0.errors.map(function(zt,cn){var yn=zt.message,Fn=yn===me?et.default:yn;return K.isValidElement(Fn)?K.cloneElement(Fn,{key:"error_".concat(cn)}):Fn}));case 18:if(!(!Ht.length&&Ke)){fn.next=23;break}return fn.next=21,Promise.all(T.map(function(zt,cn){return he("".concat(de,".").concat(cn),zt,Ke,x,te)}));case 21:return dt=fn.sent,fn.abrupt("return",dt.reduce(function(zt,cn){return[].concat((0,f.Z)(zt),(0,f.Z)(cn))},[]));case 23:return Cn=(0,M.Z)((0,M.Z)({},N),{},{name:de,enum:(N.enum||[]).join(", ")},te),bn=Ht.map(function(zt){return typeof zt=="string"?W(zt,Cn):zt}),fn.abrupt("return",bn);case 26:case"end":return fn.stop()}},Se,null,[[10,15]])})),mt.apply(this,arguments)}function lt(Se,de,T,N,x,te){var ye=Se.join("."),Ze=T.map(function(et,Ht){var dt=et.validator,Cn=(0,M.Z)((0,M.Z)({},et),{},{ruleIndex:Ht});return dt&&(Cn.validator=function(bn,Ct,fn){var zt=!1,cn=function(){for(var Yn=arguments.length,Zn=new Array(Yn),Kn=0;Kn2&&arguments[2]!==void 0?arguments[2]:!1;return Se&&Se.some(function(N){return Oe(de,N,T)})}function Oe(Se,de){var T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return!Se||!de||!T&&Se.length!==de.length?!1:de.every(function(N,x){return Se[x]===N})}function Le(Se,de){if(Se===de)return!0;if(!Se&&de||Se&&!de||!Se||!de||(0,Mt.Z)(Se)!=="object"||(0,Mt.Z)(de)!=="object")return!1;var T=Object.keys(Se),N=Object.keys(de),x=new Set([].concat(T,N));return(0,f.Z)(x).every(function(te){var ye=Se[te],Ze=de[te];return typeof ye=="function"&&typeof Ze=="function"?!0:ye===Ze})}function O(Se){var de=arguments.length<=1?void 0:arguments[1];return de&&de.target&&(0,Mt.Z)(de.target)==="object"&&Se in de.target?de.target[Se]:de}function ke(Se,de,T){var N=Se.length;if(de<0||de>=N||T<0||T>=N)return Se;var x=Se[de],te=de-T;return te>0?[].concat((0,f.Z)(Se.slice(0,T)),[x],(0,f.Z)(Se.slice(T,de)),(0,f.Z)(Se.slice(de+1,N))):te<0?[].concat((0,f.Z)(Se.slice(0,de)),(0,f.Z)(Se.slice(de+1,T+1)),[x],(0,f.Z)(Se.slice(T+1,N))):Se}var $=["name"],b=[];function Z(Se,de,T,N,x,te){return typeof Se=="function"?Se(de,T,"source"in te?{source:te.source}:{}):N!==x}var ae=function(Se){(0,$e.Z)(T,Se);var de=(0,z.Z)(T);function T(N){var x;if((0,_.Z)(this,T),x=de.call(this,N),x.state={resetCount:0},x.cancelRegisterFunc=null,x.mounted=!1,x.touched=!1,x.dirty=!1,x.validatePromise=void 0,x.prevValidating=void 0,x.errors=b,x.warnings=b,x.cancelRegister=function(){var Ke=x.props,Ve=Ke.preserve,et=Ke.isListField,Ht=Ke.name;x.cancelRegisterFunc&&x.cancelRegisterFunc(et,Ve,St(Ht)),x.cancelRegisterFunc=null},x.getNamePath=function(){var Ke=x.props,Ve=Ke.name,et=Ke.fieldContext,Ht=et.prefixName,dt=Ht===void 0?[]:Ht;return Ve!==void 0?[].concat((0,f.Z)(dt),(0,f.Z)(Ve)):[]},x.getRules=function(){var Ke=x.props,Ve=Ke.rules,et=Ve===void 0?[]:Ve,Ht=Ke.fieldContext;return et.map(function(dt){return typeof dt=="function"?dt(Ht):dt})},x.refresh=function(){x.mounted&&x.setState(function(Ke){var Ve=Ke.resetCount;return{resetCount:Ve+1}})},x.metaCache=null,x.triggerMetaEvent=function(Ke){var Ve=x.props.onMetaChange;if(Ve){var et=(0,M.Z)((0,M.Z)({},x.getMeta()),{},{destroy:Ke});(0,It.Z)(x.metaCache,et)||Ve(et),x.metaCache=et}else x.metaCache=null},x.onStoreChange=function(Ke,Ve,et){var Ht=x.props,dt=Ht.shouldUpdate,Cn=Ht.dependencies,bn=Cn===void 0?[]:Cn,Ct=Ht.onReset,fn=et.store,zt=x.getNamePath(),cn=x.getValue(Ke),yn=x.getValue(fn),Fn=Ve&&Re(Ve,zt);switch(et.type==="valueUpdate"&&et.source==="external"&&cn!==yn&&(x.touched=!0,x.dirty=!0,x.validatePromise=null,x.errors=b,x.warnings=b,x.triggerMetaEvent()),et.type){case"reset":if(!Ve||Fn){x.touched=!1,x.dirty=!1,x.validatePromise=void 0,x.errors=b,x.warnings=b,x.triggerMetaEvent(),Ct==null||Ct(),x.refresh();return}break;case"remove":{if(dt){x.reRender();return}break}case"setField":{if(Fn){var Yn=et.data;"touched"in Yn&&(x.touched=Yn.touched),"validating"in Yn&&!("originRCField"in Yn)&&(x.validatePromise=Yn.validating?Promise.resolve([]):null),"errors"in Yn&&(x.errors=Yn.errors||b),"warnings"in Yn&&(x.warnings=Yn.warnings||b),x.dirty=!0,x.triggerMetaEvent(),x.reRender();return}if(dt&&!zt.length&&Z(dt,Ke,fn,cn,yn,et)){x.reRender();return}break}case"dependenciesUpdate":{var Zn=bn.map(St);if(Zn.some(function(Kn){return Re(et.relatedFields,Kn)})){x.reRender();return}break}default:if(Fn||(!bn.length||zt.length||dt)&&Z(dt,Ke,fn,cn,yn,et)){x.reRender();return}break}dt===!0&&x.reRender()},x.validateRules=function(Ke){var Ve=x.getNamePath(),et=x.getValue(),Ht=Ke||{},dt=Ht.triggerName,Cn=Ht.validateOnly,bn=Cn===void 0?!1:Cn,Ct=Promise.resolve().then(function(){if(!x.mounted)return[];var fn=x.props,zt=fn.validateFirst,cn=zt===void 0?!1:zt,yn=fn.messageVariables,Fn=x.getRules();dt&&(Fn=Fn.filter(function(Zn){return Zn}).filter(function(Zn){var Kn=Zn.validateTrigger;if(!Kn)return!0;var vr=$t(Kn);return vr.includes(dt)}));var Yn=lt(Ve,et,Fn,Ke,cn,yn);return Yn.catch(function(Zn){return Zn}).then(function(){var Zn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;if(x.validatePromise===Ct){var Kn;x.validatePromise=null;var vr=[],An=[];(Kn=Zn.forEach)===null||Kn===void 0||Kn.call(Zn,function(On){var _n=On.rule.warningOnly,Gn=On.errors,er=Gn===void 0?b:Gn;_n?An.push.apply(An,(0,f.Z)(er)):vr.push.apply(vr,(0,f.Z)(er))}),x.errors=vr,x.warnings=An,x.triggerMetaEvent(),x.reRender()}}),Yn});return bn||(x.validatePromise=Ct,x.dirty=!0,x.errors=b,x.warnings=b,x.triggerMetaEvent(),x.reRender()),Ct},x.isFieldValidating=function(){return!!x.validatePromise},x.isFieldTouched=function(){return x.touched},x.isFieldDirty=function(){if(x.dirty||x.props.initialValue!==void 0)return!0;var Ke=x.props.fieldContext,Ve=Ke.getInternalHooks(Fe),et=Ve.getInitialValue;return et(x.getNamePath())!==void 0},x.getErrors=function(){return x.errors},x.getWarnings=function(){return x.warnings},x.isListField=function(){return x.props.isListField},x.isList=function(){return x.props.isList},x.isPreserve=function(){return x.props.preserve},x.getMeta=function(){x.prevValidating=x.isFieldValidating();var Ke={touched:x.isFieldTouched(),validating:x.prevValidating,errors:x.errors,warnings:x.warnings,name:x.getNamePath(),validated:x.validatePromise===null};return Ke},x.getOnlyChild=function(Ke){if(typeof Ke=="function"){var Ve=x.getMeta();return(0,M.Z)((0,M.Z)({},x.getOnlyChild(Ke(x.getControlled(),Ve,x.props.fieldContext))),{},{isFunction:!0})}var et=(0,h.Z)(Ke);return et.length!==1||!K.isValidElement(et[0])?{child:et,isFunction:!1}:{child:et[0],isFunction:!1}},x.getValue=function(Ke){var Ve=x.props.fieldContext.getFieldsValue,et=x.getNamePath();return(0,yt.Z)(Ke||Ve(!0),et)},x.getControlled=function(){var Ke=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Ve=x.props,et=Ve.trigger,Ht=Ve.validateTrigger,dt=Ve.getValueFromEvent,Cn=Ve.normalize,bn=Ve.valuePropName,Ct=Ve.getValueProps,fn=Ve.fieldContext,zt=Ht!==void 0?Ht:fn.validateTrigger,cn=x.getNamePath(),yn=fn.getInternalHooks,Fn=fn.getFieldsValue,Yn=yn(Fe),Zn=Yn.dispatch,Kn=x.getValue(),vr=Ct||function(Gn){return(0,i.Z)({},bn,Gn)},An=Ke[et],On=(0,M.Z)((0,M.Z)({},Ke),vr(Kn));On[et]=function(){x.touched=!0,x.dirty=!0,x.triggerMetaEvent();for(var Gn,er=arguments.length,Cr=new Array(er),Lr=0;Lr=0&&On<=_n.length?(et.keys=[].concat((0,f.Z)(et.keys.slice(0,On)),[et.id],(0,f.Z)(et.keys.slice(On))),yn([].concat((0,f.Z)(_n.slice(0,On)),[An],(0,f.Z)(_n.slice(On))))):(et.keys=[].concat((0,f.Z)(et.keys),[et.id]),yn([].concat((0,f.Z)(_n),[An]))),et.id+=1},remove:function(An){var On=Yn(),_n=new Set(Array.isArray(An)?An:[An]);_n.size<=0||(et.keys=et.keys.filter(function(Gn,er){return!_n.has(er)}),yn(On.filter(function(Gn,er){return!_n.has(er)})))},move:function(An,On){if(An!==On){var _n=Yn();An<0||An>=_n.length||On<0||On>=_n.length||(et.keys=ke(et.keys,An,On),yn(ke(_n,An,On)))}}},Kn=cn||[];return Array.isArray(Kn)||(Kn=[]),N(Kn.map(function(vr,An){var On=et.keys[An];return On===void 0&&(et.keys[An]=et.id,On=et.keys[An],et.id+=1),{name:An,key:On,isListField:!0}}),Zn,fn)})))}var gt=ot;function Et(Se){var de=!1,T=Se.length,N=[];return Se.length?new Promise(function(x,te){Se.forEach(function(ye,Ze){ye.catch(function(Ke){return de=!0,Ke}).then(function(Ke){T-=1,N[Ze]=Ke,!(T>0)&&(de&&te(N),x(N))})})}):Promise.resolve([])}var Nt="__@field_split__";function Vt(Se){return Se.map(function(de){return"".concat((0,Mt.Z)(de),":").concat(de)}).join(Nt)}var Bt=function(){function Se(){(0,_.Z)(this,Se),this.kvs=new Map}return(0,k.Z)(Se,[{key:"set",value:function(T,N){this.kvs.set(Vt(T),N)}},{key:"get",value:function(T){return this.kvs.get(Vt(T))}},{key:"update",value:function(T,N){var x=this.get(T),te=N(x);te?this.set(T,te):this.delete(T)}},{key:"delete",value:function(T){this.kvs.delete(Vt(T))}},{key:"map",value:function(T){return(0,f.Z)(this.kvs.entries()).map(function(N){var x=(0,y.Z)(N,2),te=x[0],ye=x[1],Ze=te.split(Nt);return T({key:Ze.map(function(Ke){var Ve=Ke.match(/^([^:]*):(.*)$/),et=(0,y.Z)(Ve,3),Ht=et[1],dt=et[2];return Ht==="number"?Number(dt):dt}),value:ye})})}},{key:"toJSON",value:function(){var T={};return this.map(function(N){var x=N.key,te=N.value;return T[x.join(".")]=te,null}),T}}]),Se}(),tt=Bt,st=["name"],Ft=(0,k.Z)(function Se(de){var T=this;(0,_.Z)(this,Se),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:T.getFieldValue,getFieldsValue:T.getFieldsValue,getFieldError:T.getFieldError,getFieldWarning:T.getFieldWarning,getFieldsError:T.getFieldsError,isFieldsTouched:T.isFieldsTouched,isFieldTouched:T.isFieldTouched,isFieldValidating:T.isFieldValidating,isFieldsValidating:T.isFieldsValidating,resetFields:T.resetFields,setFields:T.setFields,setFieldValue:T.setFieldValue,setFieldsValue:T.setFieldsValue,validateFields:T.validateFields,submit:T.submit,_init:!0,getInternalHooks:T.getInternalHooks}},this.getInternalHooks=function(N){return N===Fe?(T.formHooked=!0,{dispatch:T.dispatch,initEntityValue:T.initEntityValue,registerField:T.registerField,useSubscribe:T.useSubscribe,setInitialValues:T.setInitialValues,destroyForm:T.destroyForm,setCallbacks:T.setCallbacks,setValidateMessages:T.setValidateMessages,getFields:T.getFields,setPreserve:T.setPreserve,getInitialValue:T.getInitialValue,registerWatch:T.registerWatch}):((0,Xe.ZP)(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)},this.useSubscribe=function(N){T.subscribable=N},this.prevWithoutPreserves=null,this.setInitialValues=function(N,x){if(T.initialValues=N||{},x){var te,ye=(0,ut.T)(N,T.store);(te=T.prevWithoutPreserves)===null||te===void 0||te.map(function(Ze){var Ke=Ze.key;ye=(0,ut.Z)(ye,Ke,(0,yt.Z)(N,Ke))}),T.prevWithoutPreserves=null,T.updateStore(ye)}},this.destroyForm=function(){var N=new tt;T.getFieldEntities(!0).forEach(function(x){T.isMergedPreserve(x.isPreserve())||N.set(x.getNamePath(),!0)}),T.prevWithoutPreserves=N},this.getInitialValue=function(N){var x=(0,yt.Z)(T.initialValues,N);return N.length?(0,ut.T)(x):x},this.setCallbacks=function(N){T.callbacks=N},this.setValidateMessages=function(N){T.validateMessages=N},this.setPreserve=function(N){T.preserve=N},this.watchList=[],this.registerWatch=function(N){return T.watchList.push(N),function(){T.watchList=T.watchList.filter(function(x){return x!==N})}},this.notifyWatch=function(){var N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];if(T.watchList.length){var x=T.getFieldsValue(),te=T.getFieldsValue(!0);T.watchList.forEach(function(ye){ye(x,te,N)})}},this.timeoutId=null,this.warningUnhooked=function(){},this.updateStore=function(N){T.store=N},this.getFieldEntities=function(){var N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;return N?T.fieldEntities.filter(function(x){return x.getNamePath().length}):T.fieldEntities},this.getFieldsMap=function(){var N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,x=new tt;return T.getFieldEntities(N).forEach(function(te){var ye=te.getNamePath();x.set(ye,te)}),x},this.getFieldEntitiesForNamePathList=function(N){if(!N)return T.getFieldEntities(!0);var x=T.getFieldsMap(!0);return N.map(function(te){var ye=St(te);return x.get(ye)||{INVALIDATE_NAME_PATH:St(te)}})},this.getFieldsValue=function(N,x){T.warningUnhooked();var te,ye,Ze;if(N===!0||Array.isArray(N)?(te=N,ye=x):N&&(0,Mt.Z)(N)==="object"&&(Ze=N.strict,ye=N.filter),te===!0&&!ye)return T.store;var Ke=T.getFieldEntitiesForNamePathList(Array.isArray(te)?te:null),Ve=[];return Ke.forEach(function(et){var Ht,dt="INVALIDATE_NAME_PATH"in et?et.INVALIDATE_NAME_PATH:et.getNamePath();if(Ze){var Cn;if(!((Cn=et.isList)===null||Cn===void 0)&&Cn.call(et))return}else if(!te&&(!((Ht=et.isListField)===null||Ht===void 0)&&Ht.call(et)))return;if(!ye)Ve.push(dt);else{var bn="getMeta"in et?et.getMeta():null;ye(bn)&&Ve.push(dt)}}),fe(T.store,Ve.map(St))},this.getFieldValue=function(N){T.warningUnhooked();var x=St(N);return(0,yt.Z)(T.store,x)},this.getFieldsError=function(N){T.warningUnhooked();var x=T.getFieldEntitiesForNamePathList(N);return x.map(function(te,ye){return te&&!("INVALIDATE_NAME_PATH"in te)?{name:te.getNamePath(),errors:te.getErrors(),warnings:te.getWarnings()}:{name:St(N[ye]),errors:[],warnings:[]}})},this.getFieldError=function(N){T.warningUnhooked();var x=St(N),te=T.getFieldsError([x])[0];return te.errors},this.getFieldWarning=function(N){T.warningUnhooked();var x=St(N),te=T.getFieldsError([x])[0];return te.warnings},this.isFieldsTouched=function(){T.warningUnhooked();for(var N=arguments.length,x=new Array(N),te=0;te0&&arguments[0]!==void 0?arguments[0]:{},x=new tt,te=T.getFieldEntities(!0);te.forEach(function(Ke){var Ve=Ke.props.initialValue,et=Ke.getNamePath();if(Ve!==void 0){var Ht=x.get(et)||new Set;Ht.add({entity:Ke,value:Ve}),x.set(et,Ht)}});var ye=function(Ve){Ve.forEach(function(et){var Ht=et.props.initialValue;if(Ht!==void 0){var dt=et.getNamePath(),Cn=T.getInitialValue(dt);if(Cn!==void 0)(0,Xe.ZP)(!1,"Form already set 'initialValues' with path '".concat(dt.join("."),"'. Field can not overwrite it."));else{var bn=x.get(dt);if(bn&&bn.size>1)(0,Xe.ZP)(!1,"Multiple Field with path '".concat(dt.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(bn){var Ct=T.getFieldValue(dt);(!N.skipExist||Ct===void 0)&&T.updateStore((0,ut.Z)(T.store,dt,(0,f.Z)(bn)[0].value))}}}})},Ze;N.entities?Ze=N.entities:N.namePathList?(Ze=[],N.namePathList.forEach(function(Ke){var Ve=x.get(Ke);if(Ve){var et;(et=Ze).push.apply(et,(0,f.Z)((0,f.Z)(Ve).map(function(Ht){return Ht.entity})))}})):Ze=te,ye(Ze)},this.resetFields=function(N){T.warningUnhooked();var x=T.store;if(!N){T.updateStore((0,ut.T)(T.initialValues)),T.resetWithFieldInitialValue(),T.notifyObservers(x,null,{type:"reset"}),T.notifyWatch();return}var te=N.map(St);te.forEach(function(ye){var Ze=T.getInitialValue(ye);T.updateStore((0,ut.Z)(T.store,ye,Ze))}),T.resetWithFieldInitialValue({namePathList:te}),T.notifyObservers(x,te,{type:"reset"}),T.notifyWatch(te)},this.setFields=function(N){T.warningUnhooked();var x=T.store,te=[];N.forEach(function(ye){var Ze=ye.name,Ke=(0,F.Z)(ye,st),Ve=St(Ze);te.push(Ve),"value"in Ke&&T.updateStore((0,ut.Z)(T.store,Ve,Ke.value)),T.notifyObservers(x,[Ve],{type:"setField",data:ye})}),T.notifyWatch(te)},this.getFields=function(){var N=T.getFieldEntities(!0),x=N.map(function(te){var ye=te.getNamePath(),Ze=te.getMeta(),Ke=(0,M.Z)((0,M.Z)({},Ze),{},{name:ye,value:T.getFieldValue(ye)});return Object.defineProperty(Ke,"originRCField",{value:!0}),Ke});return x},this.initEntityValue=function(N){var x=N.props.initialValue;if(x!==void 0){var te=N.getNamePath(),ye=(0,yt.Z)(T.store,te);ye===void 0&&T.updateStore((0,ut.Z)(T.store,te,x))}},this.isMergedPreserve=function(N){var x=N!==void 0?N:T.preserve;return x!=null?x:!0},this.registerField=function(N){T.fieldEntities.push(N);var x=N.getNamePath();if(T.notifyWatch([x]),N.props.initialValue!==void 0){var te=T.store;T.resetWithFieldInitialValue({entities:[N],skipExist:!0}),T.notifyObservers(te,[N.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(ye,Ze){var Ke=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];if(T.fieldEntities=T.fieldEntities.filter(function(Ht){return Ht!==N}),!T.isMergedPreserve(Ze)&&(!ye||Ke.length>1)){var Ve=ye?void 0:T.getInitialValue(x);if(x.length&&T.getFieldValue(x)!==Ve&&T.fieldEntities.every(function(Ht){return!Oe(Ht.getNamePath(),x)})){var et=T.store;T.updateStore((0,ut.Z)(et,x,Ve,!0)),T.notifyObservers(et,[x],{type:"remove"}),T.triggerDependenciesUpdate(et,x)}}T.notifyWatch([x])}},this.dispatch=function(N){switch(N.type){case"updateValue":{var x=N.namePath,te=N.value;T.updateValue(x,te);break}case"validateField":{var ye=N.namePath,Ze=N.triggerName;T.validateFields([ye],{triggerName:Ze});break}default:}},this.notifyObservers=function(N,x,te){if(T.subscribable){var ye=(0,M.Z)((0,M.Z)({},te),{},{store:T.getFieldsValue(!0)});T.getFieldEntities().forEach(function(Ze){var Ke=Ze.onStoreChange;Ke(N,x,ye)})}else T.forceRootUpdate()},this.triggerDependenciesUpdate=function(N,x){var te=T.getDependencyChildrenFields(x);return te.length&&T.validateFields(te),T.notifyObservers(N,te,{type:"dependenciesUpdate",relatedFields:[x].concat((0,f.Z)(te))}),te},this.updateValue=function(N,x){var te=St(N),ye=T.store;T.updateStore((0,ut.Z)(T.store,te,x)),T.notifyObservers(ye,[te],{type:"valueUpdate",source:"internal"}),T.notifyWatch([te]);var Ze=T.triggerDependenciesUpdate(ye,te),Ke=T.callbacks.onValuesChange;if(Ke){var Ve=fe(T.store,[te]);Ke(Ve,T.getFieldsValue())}T.triggerOnFieldsChange([te].concat((0,f.Z)(Ze)))},this.setFieldsValue=function(N){T.warningUnhooked();var x=T.store;if(N){var te=(0,ut.T)(T.store,N);T.updateStore(te)}T.notifyObservers(x,null,{type:"valueUpdate",source:"external"}),T.notifyWatch()},this.setFieldValue=function(N,x){T.setFields([{name:N,value:x}])},this.getDependencyChildrenFields=function(N){var x=new Set,te=[],ye=new tt;T.getFieldEntities().forEach(function(Ke){var Ve=Ke.props.dependencies;(Ve||[]).forEach(function(et){var Ht=St(et);ye.update(Ht,function(){var dt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:new Set;return dt.add(Ke),dt})})});var Ze=function Ke(Ve){var et=ye.get(Ve)||new Set;et.forEach(function(Ht){if(!x.has(Ht)){x.add(Ht);var dt=Ht.getNamePath();Ht.isFieldDirty()&&dt.length&&(te.push(dt),Ke(dt))}})};return Ze(N),te},this.triggerOnFieldsChange=function(N,x){var te=T.callbacks.onFieldsChange;if(te){var ye=T.getFields();if(x){var Ze=new tt;x.forEach(function(Ve){var et=Ve.name,Ht=Ve.errors;Ze.set(et,Ht)}),ye.forEach(function(Ve){Ve.errors=Ze.get(Ve.name)||Ve.errors})}var Ke=ye.filter(function(Ve){var et=Ve.name;return Re(N,et)});Ke.length&&te(Ke,ye)}},this.validateFields=function(N,x){var te;T.warningUnhooked();var ye,Ze;Array.isArray(N)||typeof N=="string"||typeof x=="string"?(ye=N,Ze=x):Ze=N;var Ke=!!ye,Ve=Ke?ye.map(St):[],et=[],Ht=String(Date.now()),dt=new Set,Cn=(te=Ze)===null||te===void 0?void 0:te.recursive;T.getFieldEntities(!0).forEach(function(zt){if(Ke||Ve.push(zt.getNamePath()),!(!zt.props.rules||!zt.props.rules.length)){var cn=zt.getNamePath();if(dt.add(cn.join(Ht)),!Ke||Re(Ve,cn,Cn)){var yn=zt.validateRules((0,M.Z)({validateMessages:(0,M.Z)((0,M.Z)({},Te),T.validateMessages)},Ze));et.push(yn.then(function(){return{name:cn,errors:[],warnings:[]}}).catch(function(Fn){var Yn,Zn=[],Kn=[];return(Yn=Fn.forEach)===null||Yn===void 0||Yn.call(Fn,function(vr){var An=vr.rule.warningOnly,On=vr.errors;An?Kn.push.apply(Kn,(0,f.Z)(On)):Zn.push.apply(Zn,(0,f.Z)(On))}),Zn.length?Promise.reject({name:cn,errors:Zn,warnings:Kn}):{name:cn,errors:Zn,warnings:Kn}}))}}});var bn=Et(et);T.lastValidatePromise=bn,bn.catch(function(zt){return zt}).then(function(zt){var cn=zt.map(function(yn){var Fn=yn.name;return Fn});T.notifyObservers(T.store,cn,{type:"validateFinish"}),T.triggerOnFieldsChange(cn,zt)});var Ct=bn.then(function(){return T.lastValidatePromise===bn?Promise.resolve(T.getFieldsValue(Ve)):Promise.reject([])}).catch(function(zt){var cn=zt.filter(function(yn){return yn&&yn.errors.length});return Promise.reject({values:T.getFieldsValue(Ve),errorFields:cn,outOfDate:T.lastValidatePromise!==bn})});Ct.catch(function(zt){return zt});var fn=Ve.filter(function(zt){return dt.has(zt.join(Ht))});return T.triggerOnFieldsChange(fn),Ct},this.submit=function(){T.warningUnhooked(),T.validateFields().then(function(N){var x=T.callbacks.onFinish;if(x)try{x(N)}catch(te){console.error(te)}}).catch(function(N){var x=T.callbacks.onFinishFailed;x&&x(N)})},this.forceRootUpdate=de});function jt(Se){var de=K.useRef(),T=K.useState({}),N=(0,y.Z)(T,2),x=N[1];if(!de.current)if(Se)de.current=Se;else{var te=function(){x({})},ye=new Ft(te);de.current=ye.getForm()}return[de.current]}var Lt=jt,un=K.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),Ut=function(de){var T=de.validateMessages,N=de.onFormChange,x=de.onFormFinish,te=de.children,ye=K.useContext(un),Ze=K.useRef({});return K.createElement(un.Provider,{value:(0,M.Z)((0,M.Z)({},ye),{},{validateMessages:(0,M.Z)((0,M.Z)({},ye.validateMessages),T),triggerFormChange:function(Ve,et){N&&N(Ve,{changedFields:et,forms:Ze.current}),ye.triggerFormChange(Ve,et)},triggerFormFinish:function(Ve,et){x&&x(Ve,{values:et,forms:Ze.current}),ye.triggerFormFinish(Ve,et)},registerForm:function(Ve,et){Ve&&(Ze.current=(0,M.Z)((0,M.Z)({},Ze.current),{},(0,i.Z)({},Ve,et))),ye.registerForm(Ve,et)},unregisterForm:function(Ve){var et=(0,M.Z)({},Ze.current);delete et[Ve],Ze.current=et,ye.unregisterForm(Ve)}})},te)},pn=un,Sn=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed"],Xt=function(de,T){var N=de.name,x=de.initialValues,te=de.fields,ye=de.form,Ze=de.preserve,Ke=de.children,Ve=de.component,et=Ve===void 0?"form":Ve,Ht=de.validateMessages,dt=de.validateTrigger,Cn=dt===void 0?"onChange":dt,bn=de.onValuesChange,Ct=de.onFieldsChange,fn=de.onFinish,zt=de.onFinishFailed,cn=(0,F.Z)(de,Sn),yn=K.useContext(pn),Fn=Lt(ye),Yn=(0,y.Z)(Fn,1),Zn=Yn[0],Kn=Zn.getInternalHooks(Fe),vr=Kn.useSubscribe,An=Kn.setInitialValues,On=Kn.setCallbacks,_n=Kn.setValidateMessages,Gn=Kn.setPreserve,er=Kn.destroyForm;K.useImperativeHandle(T,function(){return Zn}),K.useEffect(function(){return yn.registerForm(N,Zn),function(){yn.unregisterForm(N)}},[yn,Zn,N]),_n((0,M.Z)((0,M.Z)({},yn.validateMessages),Ht)),On({onValuesChange:bn,onFieldsChange:function(kr){if(yn.triggerFormChange(N,kr),Ct){for(var _r=arguments.length,xo=new Array(_r>1?_r-1:0),br=1;br<_r;br++)xo[br-1]=arguments[br];Ct.apply(void 0,[kr].concat(xo))}},onFinish:function(kr){yn.triggerFormFinish(N,kr),fn&&fn(kr)},onFinishFailed:zt}),Gn(Ze);var Cr=K.useRef(null);An(x,!Cr.current),Cr.current||(Cr.current=!0),K.useEffect(function(){return er},[]);var Lr,Hr=typeof Ke=="function";if(Hr){var Hn=Zn.getFieldsValue(!0);Lr=Ke(Hn,Zn)}else Lr=Ke;vr(!Hr);var Pr=K.useRef();K.useEffect(function(){Le(Pr.current||[],te||[])||Zn.setFields(te||[]),Pr.current=te},[te,Zn]);var oo=K.useMemo(function(){return(0,M.Z)((0,M.Z)({},Zn),{},{validateTrigger:Cn})},[Zn,Cn]),Ur=K.createElement(Be.Provider,{value:null},K.createElement(He.Provider,{value:oo},Lr));return et===!1?Ur:K.createElement(et,(0,re.Z)({},cn,{onSubmit:function(kr){kr.preventDefault(),kr.stopPropagation(),Zn.submit()},onReset:function(kr){var _r;kr.preventDefault(),Zn.resetFields(),(_r=cn.onReset)===null||_r===void 0||_r.call(cn,kr)}}),Ur)},an=Xt;function ln(Se){try{return JSON.stringify(Se)}catch(de){return Math.random()}}var Pn=function(){};function zn(){for(var Se=arguments.length,de=new Array(Se),T=0;Tze?Qt=1:Qt=Math.round(rn*100/ze)/100,d.a!==Qt)return{h:d.h,s:d.s,l:d.l,a:Qt,source:"rgb"}}else{var Ln;if(At<0?Ln=0:At>De?Ln=1:Ln=Math.round(At*100/De)/100,I!==Ln)return{h:d.h,s:d.s,l:d.l,a:Ln,source:"rgb"}}return null},lt={},pt=function(r,d,u,I){if(typeof document=="undefined"&&!I)return null;var Q=I?new I:document.createElement("canvas");Q.width=u*2,Q.height=u*2;var De=Q.getContext("2d");return De?(De.fillStyle=r,De.fillRect(0,0,Q.width,Q.height),De.fillStyle=d,De.fillRect(0,0,u,u),De.translate(u,u),De.fillRect(0,0,u,u),Q.toDataURL()):null},ft=function(r,d,u,I){var Q="".concat(r,"-").concat(d,"-").concat(u).concat(I?"-server":"");if(lt[Q])return lt[Q];var De=pt(r,d,u,I);return lt[Q]=De,De};function wt(c){"@babel/helpers - typeof";return wt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},wt(c)}function Gt(c,r){var d=Object.keys(c);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(c);r&&(u=u.filter(function(I){return Object.getOwnPropertyDescriptor(c,I).enumerable})),d.push.apply(d,u)}return d}function Mt(c){for(var r=1;rDe)rn=0;else{var Qt=-(At*100/De)+100;rn=360*Qt/100}if(u.h!==rn)return{h:rn,s:u.s,l:u.l,a:u.a,source:"hsl"}}else{var Ln;if(Qe<0)Ln=0;else if(Qe>Q)Ln=359;else{var Xn=Qe*100/Q;Ln=360*Xn/100}if(u.h!==Ln)return{h:Ln,s:u.s,l:u.l,a:u.a,source:"hsl"}}return null};function Lt(c){"@babel/helpers - typeof";return Lt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Lt(c)}function un(c,r){if(!(c instanceof r))throw new TypeError("Cannot call a class as a function")}function Ut(c,r){for(var d=0;dQ&&(Qe=Q),At<0?At=0:At>De&&(At=De);var rn=Qe/Q,Qt=1-At/De;return{h:d.h,s:rn,v:Qt,a:d.a,source:"hsv"}};function Ae(c){"@babel/helpers - typeof";return Ae=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Ae(c)}function we(c,r){if(!(c instanceof r))throw new TypeError("Cannot call a class as a function")}function ct(c,r){for(var d=0;d=0,Q=!d&&I&&(r==="hex"||r==="hex6"||r==="hex3"||r==="hex4"||r==="hex8"||r==="name");return Q?r==="name"&&this._a===0?this.toName():this.toRgbString():(r==="rgb"&&(u=this.toRgbString()),r==="prgb"&&(u=this.toPercentageRgbString()),(r==="hex"||r==="hex6")&&(u=this.toHexString()),r==="hex3"&&(u=this.toHexString(!0)),r==="hex4"&&(u=this.toHex8String(!0)),r==="hex8"&&(u=this.toHex8String()),r==="name"&&(u=this.toName()),r==="hsl"&&(u=this.toHslString()),r==="hsv"&&(u=this.toHsvString()),u||this.toHexString())},clone:function(){return Ct(this.toString())},_applyModification:function(r,d){var u=r.apply(null,[this].concat([].slice.call(d)));return this._r=u._r,this._g=u._g,this._b=u._b,this.setAlpha(u._a),this},lighten:function(){return this._applyModification(Gn,arguments)},brighten:function(){return this._applyModification(er,arguments)},darken:function(){return this._applyModification(Cr,arguments)},desaturate:function(){return this._applyModification(An,arguments)},saturate:function(){return this._applyModification(On,arguments)},greyscale:function(){return this._applyModification(_n,arguments)},spin:function(){return this._applyModification(Lr,arguments)},_applyCombination:function(r,d){return r.apply(null,[this].concat([].slice.call(d)))},analogous:function(){return this._applyCombination(oo,arguments)},complement:function(){return this._applyCombination(Hr,arguments)},monochromatic:function(){return this._applyCombination(Ur,arguments)},splitcomplement:function(){return this._applyCombination(Pr,arguments)},triad:function(){return this._applyCombination(Hn,[3])},tetrad:function(){return this._applyCombination(Hn,[4])}},Ct.fromRatio=function(c,r){if(dt(c)=="object"){var d={};for(var u in c)c.hasOwnProperty(u)&&(u==="a"?d[u]=c[u]:d[u]=fo(c[u]));c=d}return Ct(c,r)};function fn(c){var r={r:0,g:0,b:0},d=1,u=null,I=null,Q=null,De=!1,ze=!1;return typeof c=="string"&&(c=Do(c)),dt(c)=="object"&&(Ir(c.r)&&Ir(c.g)&&Ir(c.b)?(r=zt(c.r,c.g,c.b),De=!0,ze=String(c.r).substr(-1)==="%"?"prgb":"rgb"):Ir(c.h)&&Ir(c.s)&&Ir(c.v)?(u=fo(c.s),I=fo(c.v),r=Yn(c.h,u,I),De=!0,ze="hsv"):Ir(c.h)&&Ir(c.s)&&Ir(c.l)&&(u=fo(c.s),Q=fo(c.l),r=yn(c.h,u,Q),De=!0,ze="hsl"),c.hasOwnProperty("a")&&(d=c.a)),d=xo(d),{ok:De,format:c.format||ze,r:Math.min(255,Math.max(r.r,0)),g:Math.min(255,Math.max(r.g,0)),b:Math.min(255,Math.max(r.b,0)),a:d}}function zt(c,r,d){return{r:br(c,255)*255,g:br(r,255)*255,b:br(d,255)*255}}function cn(c,r,d){c=br(c,255),r=br(r,255),d=br(d,255);var u=Math.max(c,r,d),I=Math.min(c,r,d),Q,De,ze=(u+I)/2;if(u==I)Q=De=0;else{var Ue=u-I;switch(De=ze>.5?Ue/(2-u-I):Ue/(u+I),u){case c:Q=(r-d)/Ue+(r1&&(rn-=1),rn<1/6?Qe+(At-Qe)*6*rn:rn<1/2?At:rn<2/3?Qe+(At-Qe)*(2/3-rn)*6:Qe}if(r===0)u=I=Q=d;else{var ze=d<.5?d*(1+r):d+r-d*r,Ue=2*d-ze;u=De(Ue,ze,c+1/3),I=De(Ue,ze,c),Q=De(Ue,ze,c-1/3)}return{r:u*255,g:I*255,b:Q*255}}function Fn(c,r,d){c=br(c,255),r=br(r,255),d=br(d,255);var u=Math.max(c,r,d),I=Math.min(c,r,d),Q,De,ze=u,Ue=u-I;if(De=u===0?0:Ue/u,u==I)Q=0;else{switch(u){case c:Q=(r-d)/Ue+(r>1)+720)%360;--r;)u.h=(u.h+I)%360,Q.push(Ct(u));return Q}function Ur(c,r){r=r||6;for(var d=Ct(c).toHsv(),u=d.h,I=d.s,Q=d.v,De=[],ze=1/r;r--;)De.push(Ct({h:u,s:I,v:Q})),Q=(Q+ze)%1;return De}Ct.mix=function(c,r,d){d=d===0?0:d||50;var u=Ct(c).toRgb(),I=Ct(r).toRgb(),Q=d/100,De={r:(I.r-u.r)*Q+u.r,g:(I.g-u.g)*Q+u.g,b:(I.b-u.b)*Q+u.b,a:(I.a-u.a)*Q+u.a};return Ct(De)},Ct.readability=function(c,r){var d=Ct(c),u=Ct(r);return(Math.max(d.getLuminance(),u.getLuminance())+.05)/(Math.min(d.getLuminance(),u.getLuminance())+.05)},Ct.isReadable=function(c,r,d){var u=Ct.readability(c,r),I,Q;switch(Q=!1,I=sa(d),I.level+I.size){case"AAsmall":case"AAAlarge":Q=u>=4.5;break;case"AAlarge":Q=u>=3;break;case"AAAsmall":Q=u>=7;break}return Q},Ct.mostReadable=function(c,r,d){var u=null,I=0,Q,De,ze,Ue;d=d||{},De=d.includeFallbackColors,ze=d.level,Ue=d.size;for(var Qe=0;QeI&&(I=Q,u=Ct(r[Qe]));return Ct.isReadable(c,u,{level:ze,size:Ue})||!De?u:(d.includeFallbackColors=!1,Ct.mostReadable(c,["#fff","#000"],d))};var co=Ct.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",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:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",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:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",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:"f00",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:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},kr=Ct.hexNames=_r(co);function _r(c){var r={};for(var d in c)c.hasOwnProperty(d)&&(r[c[d]]=d);return r}function xo(c){return c=parseFloat(c),(isNaN(c)||c<0||c>1)&&(c=1),c}function br(c,r){wr(c)&&(c="100%");var d=or(c);return c=Math.min(r,Math.max(0,parseFloat(c))),d&&(c=parseInt(c*r,10)/100),Math.abs(c-r)<1e-6?1:c%r/parseFloat(r)}function Qn(c){return Math.min(1,Math.max(0,c))}function Un(c){return parseInt(c,16)}function wr(c){return typeof c=="string"&&c.indexOf(".")!=-1&&parseFloat(c)===1}function or(c){return typeof c=="string"&&c.indexOf("%")!=-1}function Or(c){return c.length==1?"0"+c:""+c}function fo(c){return c<=1&&(c=c*100+"%"),c}function Sr(c){return Math.round(parseFloat(c)*255).toString(16)}function ao(c){return Un(c)/255}var Vr=function(){var c="[-\\+]?\\d+%?",r="[-\\+]?\\d*\\.\\d+%?",d="(?:"+r+")|(?:"+c+")",u="[\\s|\\(]+("+d+")[,|\\s]+("+d+")[,|\\s]+("+d+")\\s*\\)?",I="[\\s|\\(]+("+d+")[,|\\s]+("+d+")[,|\\s]+("+d+")[,|\\s]+("+d+")\\s*\\)?";return{CSS_UNIT:new RegExp(d),rgb:new RegExp("rgb"+u),rgba:new RegExp("rgba"+I),hsl:new RegExp("hsl"+u),hsla:new RegExp("hsla"+I),hsv:new RegExp("hsv"+u),hsva:new RegExp("hsva"+I),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 Ir(c){return!!Vr.CSS_UNIT.exec(c)}function Do(c){c=c.replace(Cn,"").replace(bn,"").toLowerCase();var r=!1;if(co[c])c=co[c],r=!0;else if(c=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var d;return(d=Vr.rgb.exec(c))?{r:d[1],g:d[2],b:d[3]}:(d=Vr.rgba.exec(c))?{r:d[1],g:d[2],b:d[3],a:d[4]}:(d=Vr.hsl.exec(c))?{h:d[1],s:d[2],l:d[3]}:(d=Vr.hsla.exec(c))?{h:d[1],s:d[2],l:d[3],a:d[4]}:(d=Vr.hsv.exec(c))?{h:d[1],s:d[2],v:d[3]}:(d=Vr.hsva.exec(c))?{h:d[1],s:d[2],v:d[3],a:d[4]}:(d=Vr.hex8.exec(c))?{r:Un(d[1]),g:Un(d[2]),b:Un(d[3]),a:ao(d[4]),format:r?"name":"hex8"}:(d=Vr.hex6.exec(c))?{r:Un(d[1]),g:Un(d[2]),b:Un(d[3]),format:r?"name":"hex"}:(d=Vr.hex4.exec(c))?{r:Un(d[1]+""+d[1]),g:Un(d[2]+""+d[2]),b:Un(d[3]+""+d[3]),a:ao(d[4]+""+d[4]),format:r?"name":"hex8"}:(d=Vr.hex3.exec(c))?{r:Un(d[1]+""+d[1]),g:Un(d[2]+""+d[2]),b:Un(d[3]+""+d[3]),format:r?"name":"hex"}:!1}function sa(c){var r,d;return c=c||{level:"AA",size:"small"},r=(c.level||"AA").toUpperCase(),d=(c.size||"small").toLowerCase(),r!=="AA"&&r!=="AAA"&&(r="AA"),d!=="small"&&d!=="large"&&(d="small"),{level:r,size:d}}var fa=function(r){var d=["r","g","b","a","h","s","l","v"],u=0,I=0;return Ht()(d,function(Q){if(r[Q]&&(u+=1,isNaN(r[Q])||(I+=1),Q==="s"||Q==="l")){var De=/^\d+%$/;De.test(r[Q])&&(I+=1)}}),u===I?r:!1},Oa=function(r,d){var u=r.hex?Ct(r.hex):Ct(r),I=u.toHsl(),Q=u.toHsv(),De=u.toRgb(),ze=u.toHex();I.s===0&&(I.h=d||0,Q.h=d||0);var Ue=ze==="000000"&&De.a===0;return{hsl:I,hex:Ue?"transparent":"#".concat(ze),rgb:De,hsv:Q,oldHue:r.h||d||I.h,source:r.source}},Oo=function(r){if(r==="transparent")return!0;var d=String(r).charAt(0)==="#"?1:0;return r.length!==4+d&&r.length<7+d&&Ct(r).isValid()},zo=function(r){if(!r)return"#fff";var d=Oa(r);if(d.hex==="transparent")return"rgba(0,0,0,0.4)";var u=(d.rgb.r*299+d.rgb.g*587+d.rgb.b*114)/1e3;return u>=128?"#000":"#fff"},va={hsl:{a:1,h:0,l:.5,s:1},hex:"#ff0000",rgb:{r:255,g:0,b:0,a:1},hsv:{h:0,s:1,v:1,a:1}},vi=function(r,d){var u=r.replace("\xB0","");return tinycolor("".concat(d," (").concat(u,")"))._ok};function Ba(c){"@babel/helpers - typeof";return Ba=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Ba(c)}function pe(){return pe=Object.assign?Object.assign.bind():function(c){for(var r=1;r-1},wo=function(r){return Number(String(r).replace(/%/g,""))},ca=1,za=function(c){Ot(d,c);var r=xn(d);function d(u){var I;return Nn(this,d),I=r.call(this),I.handleBlur=function(){I.state.blurValue&&I.setState({value:I.state.blurValue,blurValue:null})},I.handleChange=function(Q){I.setUpdatedValue(Q.target.value,Q)},I.handleKeyDown=function(Q){var De=wo(Q.target.value);if(!isNaN(De)&&Ho(Q.keyCode)){var ze=I.getArrowOffset(),Ue=Q.keyCode===gr?De+ze:De-ze;I.setUpdatedValue(Ue,Q)}},I.handleDrag=function(Q){if(I.props.dragLabel){var De=Math.round(I.props.value+Q.movementX);De>=0&&De<=I.props.dragMax&&I.props.onChange&&I.props.onChange(I.getValueObjectWithLabel(De),Q)}},I.handleMouseDown=function(Q){I.props.dragLabel&&(Q.preventDefault(),I.handleDrag(Q),window.addEventListener("mousemove",I.handleDrag),window.addEventListener("mouseup",I.handleMouseUp))},I.handleMouseUp=function(){I.unbindEventListeners()},I.unbindEventListeners=function(){window.removeEventListener("mousemove",I.handleDrag),window.removeEventListener("mouseup",I.handleMouseUp)},I.state={value:String(u.value).toUpperCase(),blurValue:String(u.value).toUpperCase()},I.inputId="rc-editable-input-".concat(ca++),I}return _t(d,[{key:"componentDidUpdate",value:function(I,Q){this.props.value!==this.state.value&&(I.value!==this.props.value||Q.value!==this.state.value)&&(this.input===document.activeElement?this.setState({blurValue:String(this.props.value).toUpperCase()}):this.setState({value:String(this.props.value).toUpperCase(),blurValue:!this.state.blurValue&&String(this.props.value).toUpperCase()}))}},{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"getValueObjectWithLabel",value:function(I){return hn({},this.props.label,I)}},{key:"getArrowOffset",value:function(){return this.props.arrowOffset||ar}},{key:"setUpdatedValue",value:function(I,Q){var De=this.props.label?this.getValueObjectWithLabel(I):I;this.props.onChange&&this.props.onChange(De,Q),this.setState({value:I})}},{key:"render",value:function(){var I=this,Q=(0,W.ZP)({default:{wrap:{position:"relative"}},"user-override":{wrap:this.props.style&&this.props.style.wrap?this.props.style.wrap:{},input:this.props.style&&this.props.style.input?this.props.style.input:{},label:this.props.style&&this.props.style.label?this.props.style.label:{}},"dragLabel-true":{label:{cursor:"ew-resize"}}},{"user-override":!0},this.props);return w.createElement("div",{style:Q.wrap},w.createElement("input",{id:this.inputId,style:Q.input,ref:function(ze){return I.input=ze},value:this.state.value,onKeyDown:this.handleKeyDown,onChange:this.handleChange,onBlur:this.handleBlur,placeholder:this.props.placeholder,spellCheck:"false"}),this.props.label&&!this.props.hideLabel?w.createElement("label",{htmlFor:this.inputId,style:Q.label,onMouseDown:this.handleMouseDown},this.props.label):null)}}]),d}(w.PureComponent||w.Component),Ga=za;function Za(c){"@babel/helpers - typeof";return Za=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Za(c)}function oa(){return oa=Object.assign?Object.assign.bind():function(c){for(var r=1;r1&&arguments[1]!==void 0?arguments[1]:"span";return function(u){pl(Q,u);var I=Ml(Q);function Q(){var De;ka(this,Q);for(var ze=arguments.length,Ue=new Array(ze),Qe=0;Qe100&&(At.a=100),At.a/=100,d==null||d({h:I==null?void 0:I.h,s:I==null?void 0:I.s,l:I==null?void 0:I.l,a:At.a,source:"rgb"},rn))};return w.createElement("div",{style:ze.fields,className:"flexbox-fix"},w.createElement("div",{style:ze.double},w.createElement(Ga,{style:{input:ze.input,label:ze.label},label:"hex",value:Q==null?void 0:Q.replace("#",""),onChange:Ue})),w.createElement("div",{style:ze.single},w.createElement(Ga,{style:{input:ze.input,label:ze.label},label:"r",value:u==null?void 0:u.r,onChange:Ue,dragLabel:"true",dragMax:"255"})),w.createElement("div",{style:ze.single},w.createElement(Ga,{style:{input:ze.input,label:ze.label},label:"g",value:u==null?void 0:u.g,onChange:Ue,dragLabel:"true",dragMax:"255"})),w.createElement("div",{style:ze.single},w.createElement(Ga,{style:{input:ze.input,label:ze.label},label:"b",value:u==null?void 0:u.b,onChange:Ue,dragLabel:"true",dragMax:"255"})),w.createElement("div",{style:ze.alpha},w.createElement(Ga,{style:{input:ze.input,label:ze.label},label:"a",value:Math.round(((u==null?void 0:u.a)||0)*100),onChange:Ue,dragLabel:"true",dragMax:"100"})))},jl=rl;function Vi(c){"@babel/helpers - typeof";return Vi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Vi(c)}function Li(c,r){var d=Object.keys(c);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(c);r&&(u=u.filter(function(I){return Object.getOwnPropertyDescriptor(c,I).enumerable})),d.push.apply(d,u)}return d}function Hl(c){for(var r=1;r-1}function Rl(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if((typeof c=="undefined"||c===!1)&&Gi()){var r=e(27592),d=r.ColorPicker;return d}return kl}var ma=function(r,d){var u=r.text,I=r.mode,Q=r.render,De=r.renderFormItem,ze=r.fieldProps,Ue=r.old,Qe=(0,w.useContext)(_.ZP.ConfigContext),At=Qe.getPrefixCls,rn=w.useMemo(function(){return Rl(Ue)},[Ue]),Qt=At("pro-field-color-picker"),Ln=(0,w.useMemo)(function(){return Ue?"":$e()((0,xe.Z)({},Qt,Gi()))},[Qt,Ue]);if(I==="read"){var Xn=(0,h.jsx)(rn,{value:u,mode:"read",ref:d,className:Ln,open:!1});return Q?Q(u,(0,i.Z)({mode:I},ze),Xn):Xn}if(I==="edit"||I==="update"){var Mn=(0,i.Z)({display:"table-cell"},ze.style),Dn=(0,h.jsx)(rn,(0,i.Z)((0,i.Z)({ref:d,presets:[Ja]},ze),{},{style:Mn,className:Ln}));return De?De(u,(0,i.Z)((0,i.Z)({mode:I},ze),{},{style:Mn}),Dn):Dn}return null},Tl=w.forwardRef(ma),bl=e(86977),Uo=e.n(bl),Gl=e(61118),Sl=e.n(Gl),Bl=e(15797);Uo().extend(Sl());var Dl=function(r){return!!(r!=null&&r._isAMomentObject)},io=function c(r,d){return(0,Bl.k)(r)||Uo().isDayjs(r)||Dl(r)?Dl(r)?Uo()(r):r:Array.isArray(r)?r.map(function(u){return c(u,d)}):typeof r=="number"?Uo()(r):Uo()(r,d)},lr=e(96905),Ro=e(43153),Ka=e.n(Ro);Uo().extend(Ka());var qa=function(r,d){return r?typeof d=="function"?d(Uo()(r)):Uo()(r).format(d||"YYYY-MM-DD"):"-"},es=function(r,d){var u=r.text,I=r.mode,Q=r.format,De=r.label,ze=r.light,Ue=r.render,Qe=r.renderFormItem,At=r.plain,rn=r.showTime,Qt=r.fieldProps,Ln=r.picker,Xn=r.bordered,Mn=r.lightLabel,Dn=(0,F.YB)(),jr=(0,w.useState)(!1),rr=(0,K.Z)(jr,2),Rr=rr[0],Xr=rr[1];if(I==="read"){var zr=qa(u,Qt.format||Q);return Ue?Ue(u,(0,i.Z)({mode:I},Qt),(0,h.jsx)(h.Fragment,{children:zr})):(0,h.jsx)(h.Fragment,{children:zr})}if(I==="edit"||I==="update"){var Br,Lo=Qt.disabled,So=Qt.value,pa=Qt.placeholder,Pa=pa===void 0?Dn.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9"):pa,Bo=io(So);return ze?Br=(0,h.jsx)(f.Q,{label:De,onClick:function(){var Ao;Qt==null||(Ao=Qt.onOpenChange)===null||Ao===void 0||Ao.call(Qt,!0),Xr(!0)},style:Bo?{paddingInlineEnd:0}:void 0,disabled:Lo,value:Bo||Rr?(0,h.jsx)(lr.Z,(0,i.Z)((0,i.Z)({picker:Ln,showTime:rn,format:Q,ref:d},Qt),{},{value:Bo,onOpenChange:function(Ao){var To;Xr(Ao),Qt==null||(To=Qt.onOpenChange)===null||To===void 0||To.call(Qt,Ao)},bordered:!1,open:Rr})):void 0,allowClear:!1,downIcon:Bo||Rr?!1:void 0,bordered:Xn,ref:Mn}):Br=(0,h.jsx)(lr.Z,(0,i.Z)((0,i.Z)({picker:Ln,showTime:rn,format:Q,placeholder:Pa,bordered:At===void 0?!0:!At,ref:d},Qt),{},{value:Bo})),Qe?Qe(u,(0,i.Z)({mode:I},Qt),Br):Br}return null},xl=w.forwardRef(es),C=e(32423),E=e(36490),ie=function(r,d){var u=r.text,I=r.mode,Q=r.render,De=r.placeholder,ze=r.renderFormItem,Ue=r.fieldProps,Qe=(0,F.YB)(),At=De||Qe.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),rn=(0,w.useCallback)(function(jr){var rr=jr!=null?jr:void 0;return!Ue.stringMode&&typeof rr=="string"&&(rr=Number(rr)),typeof rr=="number"&&!(0,Bl.k)(rr)&&!(0,Bl.k)(Ue.precision)&&(rr=Number(rr.toFixed(Ue.precision))),rr},[Ue]);if(I==="read"){var Qt,Ln={};Ue!=null&&Ue.precision&&(Ln={minimumFractionDigits:Number(Ue.precision),maximumFractionDigits:Number(Ue.precision)});var Xn=new Intl.NumberFormat(void 0,(0,i.Z)((0,i.Z)({},Ln),(Ue==null?void 0:Ue.intlProps)||{})).format(Number(u)),Mn=(0,h.jsx)("span",{ref:d,children:(Ue==null||(Qt=Ue.formatter)===null||Qt===void 0?void 0:Qt.call(Ue,Xn))||Xn});return Q?Q(u,(0,i.Z)({mode:I},Ue),Mn):Mn}if(I==="edit"||I==="update"){var Dn=(0,h.jsx)(C.Z,(0,i.Z)((0,i.Z)({ref:d,min:0,placeholder:At},(0,E.Z)(Ue,["onChange","onBlur"])),{},{onChange:function(rr){var Rr;return Ue==null||(Rr=Ue.onChange)===null||Rr===void 0?void 0:Rr.call(Ue,rn(rr))},onBlur:function(rr){var Rr;return Ue==null||(Rr=Ue.onBlur)===null||Rr===void 0?void 0:Rr.call(Ue,rn(rr.target.value))}}));return ze?ze(u,(0,i.Z)({mode:I},Ue),Dn):Dn}return null},le=w.forwardRef(ie),je=e(29140),Me=e(57414),bt=function(r,d){var u=r.text,I=r.mode,Q=r.render,De=r.placeholder,ze=r.renderFormItem,Ue=r.fieldProps,Qe=r.separator,At=Qe===void 0?"~":Qe,rn=r.separatorWidth,Qt=rn===void 0?30:rn,Ln=Ue.value,Xn=Ue.defaultValue,Mn=Ue.onChange,Dn=Ue.id,jr=(0,F.YB)(),rr=xt.Ow.useToken(),Rr=rr.token,Xr=(0,Hi.Z)(function(){return Xn},{value:Ln,onChange:Mn}),zr=(0,K.Z)(Xr,2),Br=zr[0],Lo=zr[1];if(I==="read"){var So=function(Po){var Xa,bi=new Intl.NumberFormat(void 0,(0,i.Z)({minimumSignificantDigits:2},(Ue==null?void 0:Ue.intlProps)||{})).format(Number(Po));return(Ue==null||(Xa=Ue.formatter)===null||Xa===void 0?void 0:Xa.call(Ue,bi))||bi},pa=(0,h.jsxs)("span",{ref:d,children:[So(u[0])," ",At," ",So(u[1])]});return Q?Q(u,(0,i.Z)({mode:I},Ue),pa):pa}if(I==="edit"||I==="update"){var Pa=function(){if(Array.isArray(Br)){var Po=(0,K.Z)(Br,2),Xa=Po[0],bi=Po[1];typeof Xa=="number"&&typeof bi=="number"&&Xa>bi?Lo([bi,Xa]):Xa===void 0&&bi===void 0&&Lo(void 0)}},Bo=function(Po,Xa){var bi=(0,je.Z)(Br||[]);bi[Po]=Xa===null?void 0:Xa,Lo(bi)},fr=(Ue==null?void 0:Ue.placeholder)||De||[jr.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),jr.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165")],Ao=function(Po){return Array.isArray(fr)?fr[Po]:fr},To=Me.Z.Compact||ce.Z.Group,qr=Me.Z.Compact?{}:{compact:!0},na=(0,h.jsxs)(To,(0,i.Z)((0,i.Z)({},qr),{},{onBlur:Pa,children:[(0,h.jsx)(C.Z,(0,i.Z)((0,i.Z)({},Ue),{},{placeholder:Ao(0),id:Dn!=null?Dn:"".concat(Dn,"-0"),style:{width:"calc((100% - ".concat(Qt,"px) / 2)")},value:Br==null?void 0:Br[0],defaultValue:Xn==null?void 0:Xn[0],onChange:function(Po){return Bo(0,Po)}})),(0,h.jsx)(ce.Z,{style:{width:Qt,textAlign:"center",borderInlineStart:0,borderInlineEnd:0,pointerEvents:"none",backgroundColor:Rr==null?void 0:Rr.colorBgContainer},placeholder:At,disabled:!0}),(0,h.jsx)(C.Z,(0,i.Z)((0,i.Z)({},Ue),{},{placeholder:Ao(1),id:Dn!=null?Dn:"".concat(Dn,"-1"),style:{width:"calc((100% - ".concat(Qt,"px) / 2)"),borderInlineStart:0},value:Br==null?void 0:Br[1],defaultValue:Xn==null?void 0:Xn[1],onChange:function(Po){return Bo(1,Po)}}))]}));return ze?ze(u,(0,i.Z)({mode:I},Ue),na):na}return null},Rt=w.forwardRef(bt),Pt=e(74820),Kt=e(67218),gn=e.n(Kt);Uo().extend(gn());var Yt=function(r,d){var u=r.text,I=r.mode,Q=r.render,De=r.renderFormItem,ze=r.format,Ue=r.fieldProps,Qe=(0,F.YB)();if(I==="read"){var At=(0,h.jsx)(Pt.Z,{title:Uo()(u).format((Ue==null?void 0:Ue.format)||ze||"YYYY-MM-DD HH:mm:ss"),children:Uo()(u).fromNow()});return Q?Q(u,(0,i.Z)({mode:I},Ue),(0,h.jsx)(h.Fragment,{children:At})):(0,h.jsx)(h.Fragment,{children:At})}if(I==="edit"||I==="update"){var rn=Qe.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9"),Qt=io(Ue.value),Ln=(0,h.jsx)(lr.Z,(0,i.Z)((0,i.Z)({ref:d,placeholder:rn,showTime:!0},Ue),{},{value:Qt}));return De?De(u,(0,i.Z)({mode:I},Ue),Ln):Ln}return null},Rn=w.forwardRef(Yt),In=e(31712),vn=w.forwardRef(function(c,r){var d=c.text,u=c.mode,I=c.render,Q=c.renderFormItem,De=c.fieldProps,ze=c.placeholder,Ue=c.width,Qe=(0,F.YB)(),At=ze||Qe.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165");if(u==="read"){var rn=(0,h.jsx)(In.Z,(0,i.Z)({ref:r,width:Ue||32,src:d},De));return I?I(d,(0,i.Z)({mode:u},De),rn):rn}if(u==="edit"||u==="update"){var Qt=(0,h.jsx)(ce.Z,(0,i.Z)({ref:r,placeholder:At},De));return Q?Q(d,(0,i.Z)({mode:u},De),Qt):Qt}return null}),on=vn,$n=function(r,d){var u,I=r.border,Q=I===void 0?!1:I,De=r.children,ze=(0,w.useContext)(_.ZP.ConfigContext),Ue=ze.getPrefixCls,Qe=Ue("pro-field-index-column"),At=(0,xt.Xj)("IndexColumn",function(){return(0,xe.Z)({},".".concat(Qe),{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"18px",height:"18px","&-border":{color:"#fff",fontSize:"12px",lineHeight:"12px",backgroundColor:"#314659",borderRadius:"9px","&.top-three":{backgroundColor:"#979797"}}})}),rn=At.wrapSSR,Qt=At.hashId;return rn((0,h.jsx)("div",{ref:d,className:$e()(Qe,Qt,(u={},(0,xe.Z)(u,"".concat(Qe,"-border"),Q),(0,xe.Z)(u,"top-three",De>3),u)),children:De}))},jn=w.forwardRef($n),sr=e(6962),mr=e(1643),go=["contentRender","numberFormatOptions","numberPopoverRender","open"],Er=["text","mode","render","renderFormItem","fieldProps","proFieldKey","plain","valueEnum","placeholder","locale","customSymbol","numberFormatOptions","numberPopoverRender"],xr=new Intl.NumberFormat("zh-Hans-CN",{currency:"CNY",style:"currency"}),lo={style:"currency",currency:"USD"},Io={style:"currency",currency:"RUB"},Qr={style:"currency",currency:"RSD"},vo={style:"currency",currency:"MYR"},ho={style:"currency",currency:"BRL"},cr={default:xr,"zh-Hans-CN":{currency:"CNY",style:"currency"},"en-US":lo,"ru-RU":Io,"ms-MY":vo,"sr-RS":Qr,"pt-BR":ho},Kr=function(r,d,u,I){var Q=d==null?void 0:d.toString().replaceAll(",","");if(typeof Q=="string"){var De=Number(Q);if(Number.isNaN(De))return Q;Q=De}if(!Q&&Q!==0)return"";try{var ze=new Intl.NumberFormat(r||"zh-Hans-CN",(0,i.Z)((0,i.Z)({},cr[r||"zh-Hans-CN"]||cr["zh-Hans-CN"]),{},{maximumFractionDigits:u},I)).format(Q),Ue=r===!1,Qe=ze||"",At=(0,K.Z)(Qe,1),rn=At[0];return["+","-"].includes(rn)?"".concat(rn).concat(ze.substring(Ue?2:1)):ze.substring(Ue?1:0)}catch(Qt){return Q}},yo=2,ga=w.forwardRef(function(c,r){var d=c.contentRender,u=c.numberFormatOptions,I=c.numberPopoverRender,Q=c.open,De=(0,y.Z)(c,go),ze=(0,Hi.Z)(function(){return De.defaultValue},{value:De.value,onChange:De.onChange}),Ue=(0,K.Z)(ze,2),Qe=Ue[0],At=Ue[1],rn=d==null?void 0:d((0,i.Z)((0,i.Z)({},De),{},{value:Qe})),Qt=(0,mr.X)(rn?Q:!1);return(0,h.jsx)(cl.Z,(0,i.Z)((0,i.Z)({placement:"topLeft"},Qt),{},{trigger:["focus","click"],content:rn,getPopupContainer:function(Xn){return(Xn==null?void 0:Xn.parentElement)||document.body},children:(0,h.jsx)(C.Z,(0,i.Z)((0,i.Z)({ref:r},De),{},{value:Qe,onChange:At}))}))}),Fo=function(r,d){var u,I,Q=r.text,De=r.mode,ze=r.render,Ue=r.renderFormItem,Qe=r.fieldProps,At=r.proFieldKey,rn=r.plain,Qt=r.valueEnum,Ln=r.placeholder,Xn=r.locale,Mn=Xn===void 0?(u=Qe.customSymbol)!==null&&u!==void 0?u:"zh-Hans-CN":Xn,Dn=r.customSymbol,jr=Dn===void 0?Qe.customSymbol:Dn,rr=r.numberFormatOptions,Rr=rr===void 0?Qe==null?void 0:Qe.numberFormatOptions:rr,Xr=r.numberPopoverRender,zr=Xr===void 0?(Qe==null?void 0:Qe.numberPopoverRender)||!1:Xr,Br=(0,y.Z)(r,Er),Lo=(I=Qe==null?void 0:Qe.precision)!==null&&I!==void 0?I:yo,So=(0,F.YB)();Mn&&sr.Go[Mn]&&(So=sr.Go[Mn]);var pa=Ln||So.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),Pa=(0,w.useMemo)(function(){if(jr)return jr;if(!(Br.moneySymbol===!1||Qe.moneySymbol===!1))return So.getMessage("moneySymbol","\uFFE5")},[jr,Qe.moneySymbol,So,Br.moneySymbol]),Bo=(0,w.useCallback)(function(To){var qr=new RegExp("\\B(?=(\\d{".concat(3+Math.max(Lo-yo,0),"})+(?!\\d))"),"g"),na=String(To).split("."),Go=(0,K.Z)(na,2),Po=Go[0],Xa=Go[1],bi=Po.replace(qr,","),tl="";return Xa&&Lo>0&&(tl=".".concat(Xa.slice(0,Lo===void 0?yo:Lo))),"".concat(bi).concat(tl)},[Lo]);if(De==="read"){var fr=(0,h.jsx)("span",{ref:d,children:Kr(Pa?Mn:!1,Q,Lo,Rr!=null?Rr:Qe.numberFormatOptions)});return ze?ze(Q,(0,i.Z)({mode:De},Qe),fr):fr}if(De==="edit"||De==="update"){var Ao=(0,h.jsx)(ga,(0,i.Z)((0,i.Z)({contentRender:function(qr){if(zr===!1||!qr.value)return null;var na=Kr(Pa?Mn:!1,"".concat(Bo(qr.value)),Lo,(0,i.Z)((0,i.Z)({},Rr),{},{notation:"compact"}));return typeof zr=="function"?zr==null?void 0:zr(qr,na):na},ref:d,precision:Lo,formatter:function(qr){return qr&&Pa?"".concat(Pa," ").concat(Bo(qr)):qr==null?void 0:qr.toString()},parser:function(qr){return Pa&&qr?qr.replace(new RegExp("\\".concat(Pa,"\\s?|(,*)"),"g"),""):qr},placeholder:pa},(0,E.Z)(Qe,["numberFormatOptions","precision","numberPopoverRender","customSymbol","moneySymbol","visible","open"])),{},{onBlur:Qe.onBlur?function(To){var qr,na=To.target.value;Pa&&na&&(na=na.replace(new RegExp("\\".concat(Pa,"\\s?|(,*)"),"g"),"")),(qr=Qe.onBlur)===null||qr===void 0||qr.call(Qe,na)}:void 0}));return Ue?Ue(Q,(0,i.Z)({mode:De},Qe),Ao):Ao}return null},eo=w.forwardRef(Fo),Jo=function(r){return r.map(function(d,u){var I;return w.isValidElement(d)?w.cloneElement(d,(0,i.Z)((0,i.Z)({key:u},d==null?void 0:d.props),{},{style:(0,i.Z)({flex:1},d==null||(I=d.props)===null||I===void 0?void 0:I.style)})):(0,h.jsx)(w.Fragment,{children:d},u)})},bo=function(r,d){var u=r.text,I=r.mode,Q=r.render,De=r.fieldProps,ze=(0,w.useContext)(_.ZP.ConfigContext),Ue=ze.getPrefixCls,Qe=Ue("pro-field-option"),At=xt.Ow.useToken(),rn=At.token;if((0,w.useImperativeHandle)(d,function(){return{}}),Q){var Qt=Q(u,(0,i.Z)({mode:I},De),(0,h.jsx)(h.Fragment,{}));return!Qt||(Qt==null?void 0:Qt.length)<1||!Array.isArray(Qt)?null:(0,h.jsx)("div",{style:{display:"flex",gap:rn.margin,alignItems:"center"},className:Qe,children:Jo(Qt)})}return!u||!Array.isArray(u)?w.isValidElement(u)?u:null:(0,h.jsx)("div",{style:{display:"flex",gap:rn.margin,alignItems:"center"},className:Qe,children:Jo(u)})},ta=w.forwardRef(bo),po=e(56019),Ya=e(83720),ki=["text","mode","render","renderFormItem","fieldProps","proFieldKey"],Ma=function(r,d){var u=r.text,I=r.mode,Q=r.render,De=r.renderFormItem,ze=r.fieldProps,Ue=r.proFieldKey,Qe=(0,y.Z)(r,ki),At=(0,F.YB)(),rn=(0,Hi.Z)(function(){return Qe.open||Qe.visible||!1},{value:Qe.open||Qe.visible,onChange:Qe.onOpenChange||Qe.onVisible}),Qt=(0,K.Z)(rn,2),Ln=Qt[0],Xn=Qt[1];if(I==="read"){var Mn=(0,h.jsx)(h.Fragment,{children:"-"});return u&&(Mn=(0,h.jsxs)(Me.Z,{children:[(0,h.jsx)("span",{ref:d,children:Ln?u:"\uFF0A \uFF0A \uFF0A \uFF0A \uFF0A"}),(0,h.jsx)("a",{onClick:function(){return Xn(!Ln)},children:Ln?(0,h.jsx)(po.Z,{}):(0,h.jsx)(Ya.Z,{})})]})),Q?Q(u,(0,i.Z)({mode:I},ze),Mn):Mn}if(I==="edit"||I==="update"){var Dn=(0,h.jsx)(ce.Z.Password,(0,i.Z)({placeholder:At.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),ref:d},ze));return De?De(u,(0,i.Z)({mode:I},ze),Dn):Dn}return null},hi=w.forwardRef(Ma),Mo=e(37592),aa=e.n(Mo);function Oi(c){return c===0?null:c>0?"+":"-"}function da(c){return c===0?"#595959":c>0?"#ff4d4f":"#52c41a"}function Eo(c){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;return r>=0?c==null?void 0:c.toFixed(r):c}var so=function(r,d){var u=r.text,I=r.prefix,Q=r.precision,De=r.suffix,ze=De===void 0?"%":De,Ue=r.mode,Qe=r.showColor,At=Qe===void 0?!1:Qe,rn=r.render,Qt=r.renderFormItem,Ln=r.fieldProps,Xn=r.placeholder,Mn=r.showSymbol,Dn=(0,F.YB)(),jr=Xn||Dn.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),rr=(0,w.useMemo)(function(){return typeof u=="string"&&u.includes("%")?aa()(u.replace("%","")):aa()(u)},[u]),Rr=(0,w.useMemo)(function(){return typeof Mn=="function"?Mn==null?void 0:Mn(u):Mn},[Mn,u]);if(Ue==="read"){var Xr=At?{color:da(rr)}:{},zr=(0,h.jsxs)("span",{style:Xr,ref:d,children:[I&&(0,h.jsx)("span",{children:I}),Rr&&(0,h.jsxs)(w.Fragment,{children:[Oi(rr)," "]}),Eo(Math.abs(rr),Q),ze&&ze]});return rn?rn(u,(0,i.Z)((0,i.Z)({mode:Ue},Ln),{},{prefix:I,precision:Q,showSymbol:Rr,suffix:ze}),zr):zr}if(Ue==="edit"||Ue==="update"){var Br=(0,h.jsx)(C.Z,(0,i.Z)({ref:d,formatter:function(So){return So&&I?"".concat(I," ").concat(So).replace(/\B(?=(\d{3})+(?!\d)$)/g,","):So},parser:function(So){return So?So.replace(/.*\s|,/g,""):""},placeholder:jr},Ln));return Qt?Qt(u,(0,i.Z)({mode:Ue},Ln),Br):Br}return null},hr=w.forwardRef(so),ir=e(95664);function Dr(c){return c===100?"success":c<0?"exception":c<100?"active":"normal"}var tr=function(r,d){var u=r.text,I=r.mode,Q=r.render,De=r.plain,ze=r.renderFormItem,Ue=r.fieldProps,Qe=r.placeholder,At=(0,F.YB)(),rn=Qe||At.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),Qt=(0,w.useMemo)(function(){return typeof u=="string"&&u.includes("%")?aa()(u.replace("%","")):aa()(u)},[u]);if(I==="read"){var Ln=(0,h.jsx)(ir.Z,(0,i.Z)({ref:d,size:"small",style:{minWidth:100,maxWidth:320},percent:Qt,steps:De?10:void 0,status:Dr(Qt)},Ue));return Q?Q(Qt,(0,i.Z)({mode:I},Ue),Ln):Ln}if(I==="edit"||I==="update"){var Xn=(0,h.jsx)(C.Z,(0,i.Z)({ref:d,placeholder:rn},Ue));return ze?ze(u,(0,i.Z)({mode:I},Ue),Xn):Xn}return null},no=w.forwardRef(tr),Xo=e(10852),ba=["radioType","renderFormItem","mode","render"],pi=function(r,d){var u,I,Q=r.radioType,De=r.renderFormItem,ze=r.mode,Ue=r.render,Qe=(0,y.Z)(r,ba),At=(0,w.useContext)(_.ZP.ConfigContext),rn=At.getPrefixCls,Qt=rn("pro-field-radio"),Ln=(0,z.aK)(Qe),Xn=(0,K.Z)(Ln,3),Mn=Xn[0],Dn=Xn[1],jr=Xn[2],rr=(0,w.useRef)(),Rr=(u=He.Z.Item)===null||u===void 0||(I=u.useStatus)===null||I===void 0?void 0:I.call(u);(0,w.useImperativeHandle)(d,function(){return(0,i.Z)((0,i.Z)({},rr.current||{}),{},{fetchData:function(qr){return jr(qr)}})},[jr]);var Xr=(0,xt.Xj)("FieldRadioRadio",function(To){var qr;return qr={},(0,xe.Z)(qr,".".concat(Qt,"-error"),{span:{color:To.colorError}}),(0,xe.Z)(qr,".".concat(Qt,"-warning"),{span:{color:To.colorWarning}}),(0,xe.Z)(qr,".".concat(Qt,"-vertical"),(0,xe.Z)({},"".concat(To.antCls,"-radio-wrapper"),{display:"flex",marginInlineEnd:0})),qr}),zr=Xr.wrapSSR,Br=Xr.hashId;if(Mn)return(0,h.jsx)(L.Z,{size:"small"});if(ze==="read"){var Lo=Dn!=null&&Dn.length?Dn==null?void 0:Dn.reduce(function(To,qr){var na;return(0,i.Z)((0,i.Z)({},To),{},(0,xe.Z)({},(na=qr.value)!==null&&na!==void 0?na:"",qr.label))},{}):void 0,So=(0,h.jsx)(h.Fragment,{children:(0,z.MP)(Qe.text,(0,z.L9)(Qe.valueEnum||Lo))});if(Ue){var pa;return(pa=Ue(Qe.text,(0,i.Z)({mode:ze},Qe.fieldProps),So))!==null&&pa!==void 0?pa:null}return So}if(ze==="edit"){var Pa,Bo,fr=zr((0,h.jsx)(Xo.ZP.Group,(0,i.Z)((0,i.Z)({ref:rr,optionType:Q},Qe.fieldProps),{},{className:$e()((Pa=Qe.fieldProps)===null||Pa===void 0?void 0:Pa.className,(Bo={},(0,xe.Z)(Bo,"".concat(Qt,"-error"),(Rr==null?void 0:Rr.status)==="error"),(0,xe.Z)(Bo,"".concat(Qt,"-warning"),(Rr==null?void 0:Rr.status)==="warning"),Bo),Br,"".concat(Qt,"-").concat(Qe.fieldProps.layout||"horizontal")),options:Dn})));if(De){var Ao;return(Ao=De(Qe.text,(0,i.Z)((0,i.Z)({mode:ze},Qe.fieldProps),{},{options:Dn,loading:Mn}),fr))!==null&&Ao!==void 0?Ao:null}return fr}return null},ti=w.forwardRef(pi),Fl=function(r,d){var u=r.text,I=r.mode,Q=r.light,De=r.label,ze=r.format,Ue=r.render,Qe=r.picker,At=r.renderFormItem,rn=r.plain,Qt=r.showTime,Ln=r.lightLabel,Xn=r.bordered,Mn=r.fieldProps,Dn=(0,F.YB)(),jr=Array.isArray(u)?u:[],rr=(0,K.Z)(jr,2),Rr=rr[0],Xr=rr[1],zr=w.useState(!1),Br=(0,K.Z)(zr,2),Lo=Br[0],So=Br[1],pa=(0,w.useCallback)(function(na){if(typeof(Mn==null?void 0:Mn.format)=="function"){var Go;return Mn==null||(Go=Mn.format)===null||Go===void 0?void 0:Go.call(Mn,na)}return(Mn==null?void 0:Mn.format)||ze||"YYYY-MM-DD"},[Mn,ze]),Pa=Rr?Uo()(Rr).format(pa(Uo()(Rr))):"",Bo=Xr?Uo()(Xr).format(pa(Uo()(Xr))):"";if(I==="read"){var fr=(0,h.jsxs)("div",{ref:d,children:[(0,h.jsx)("div",{children:Pa||"-"}),(0,h.jsx)("div",{children:Bo||"-"})]});return Ue?Ue(u,(0,i.Z)({mode:I},Mn),(0,h.jsx)("span",{children:fr})):fr}if(I==="edit"||I==="update"){var Ao=io(Mn.value),To;if(Q){var qr;To=(0,h.jsx)(f.Q,{label:De,onClick:function(){var Go;Mn==null||(Go=Mn.onOpenChange)===null||Go===void 0||Go.call(Mn,!0),So(!0)},style:Ao?{paddingInlineEnd:0}:void 0,disabled:Mn.disabled,value:Ao||Lo?(0,h.jsx)(lr.Z.RangePicker,(0,i.Z)((0,i.Z)({picker:Qe,showTime:Qt,format:ze,bordered:!1},Mn),{},{placeholder:(qr=Mn.placeholder)!==null&&qr!==void 0?qr:[Dn.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9"),Dn.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9")],onClear:function(){var Go;So(!1),Mn==null||(Go=Mn.onClear)===null||Go===void 0||Go.call(Mn)},value:Ao,onOpenChange:function(Go){var Po;Ao&&So(Go),Mn==null||(Po=Mn.onOpenChange)===null||Po===void 0||Po.call(Mn,Go)}})):null,allowClear:!1,bordered:Xn,ref:Ln,downIcon:Ao||Lo?!1:void 0})}else To=(0,h.jsx)(lr.Z.RangePicker,(0,i.Z)((0,i.Z)({ref:d,format:ze,showTime:Qt,placeholder:[Dn.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9"),Dn.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9")],bordered:rn===void 0},Mn),{},{value:Ao}));return At?At(u,(0,i.Z)({mode:I},Mn),To):To}return null},wa=w.forwardRef(Fl),wl=e(73045),yi=function(r,d){var u=r.text,I=r.mode,Q=r.render,De=r.renderFormItem,ze=r.fieldProps;if(I==="read"){var Ue=(0,h.jsx)(wl.Z,(0,i.Z)((0,i.Z)({allowHalf:!0,disabled:!0,ref:d},ze),{},{value:u}));return Q?Q(u,(0,i.Z)({mode:I},ze),(0,h.jsx)(h.Fragment,{children:Ue})):Ue}if(I==="edit"||I==="update"){var Qe=(0,h.jsx)(wl.Z,(0,i.Z)({allowHalf:!0,ref:d},ze));return De?De(u,(0,i.Z)({mode:I},ze),Qe):Qe}return null},oi=w.forwardRef(yi);function Il(c){var r="",d=Math.floor(c/86400),u=Math.floor(c/3600),I=Math.floor(c/60%60),Q=Math.floor(c%60);return r="".concat(Q,"\u79D2"),I>0&&(r="".concat(I,"\u5206\u949F").concat(r)),u>0&&(r="".concat(u,"\u5C0F\u65F6").concat(r)),d>0&&(r="".concat(d,"\u5929").concat(r)),r}var ko=function(r,d){var u=r.text,I=r.mode,Q=r.render,De=r.renderFormItem,ze=r.fieldProps,Ue=r.placeholder,Qe=(0,F.YB)(),At=Ue||Qe.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165");if(I==="read"){var rn=Il(Number(u)),Qt=(0,h.jsx)("span",{ref:d,children:rn});return Q?Q(u,(0,i.Z)({mode:I},ze),Qt):Qt}if(I==="edit"||I==="update"){var Ln=(0,h.jsx)(C.Z,(0,i.Z)({ref:d,min:0,style:{width:"100%"},placeholder:At},ze));return De?De(u,(0,i.Z)({mode:I},ze),Ln):Ln}return null},ha=w.forwardRef(ko),Ea=e(2073),ai=["mode","render","renderFormItem","fieldProps","emptyText"],Wo=function(r,d){var u=r.mode,I=r.render,Q=r.renderFormItem,De=r.fieldProps,ze=r.emptyText,Ue=ze===void 0?"-":ze,Qe=(0,y.Z)(r,ai),At=(0,w.useRef)(),rn=(0,z.aK)(Qe),Qt=(0,K.Z)(rn,3),Ln=Qt[0],Xn=Qt[1],Mn=Qt[2];if((0,w.useImperativeHandle)(d,function(){return(0,i.Z)((0,i.Z)({},At.current||{}),{},{fetchData:function(zr){return Mn(zr)}})},[Mn]),Ln)return(0,h.jsx)(L.Z,{size:"small"});if(u==="read"){var Dn=Xn!=null&&Xn.length?Xn==null?void 0:Xn.reduce(function(Xr,zr){var Br;return(0,i.Z)((0,i.Z)({},Xr),{},(0,xe.Z)({},(Br=zr.value)!==null&&Br!==void 0?Br:"",zr.label))},{}):void 0,jr=(0,h.jsx)(h.Fragment,{children:(0,z.MP)(Qe.text,(0,z.L9)(Qe.valueEnum||Dn))});if(I){var rr;return(rr=I(Qe.text,(0,i.Z)({mode:u},De),(0,h.jsx)(h.Fragment,{children:jr})))!==null&&rr!==void 0?rr:Ue}return jr}if(u==="edit"||u==="update"){var Rr=(0,h.jsx)(Ea.Z,(0,i.Z)((0,i.Z)({ref:At},(0,E.Z)(De||{},["allowClear"])),{},{options:Xn}));return Q?Q(Qe.text,(0,i.Z)((0,i.Z)({mode:u},De),{},{options:Xn,loading:Ln}),Rr):Rr}return null},Na=w.forwardRef(Wo),ci=e(94706),Zi=function(r,d){var u=r.text,I=r.mode,Q=r.render,De=r.renderFormItem,ze=r.fieldProps;if(I==="read"){var Ue=u;return Q?Q(u,(0,i.Z)({mode:I},ze),(0,h.jsx)(h.Fragment,{children:Ue})):(0,h.jsx)(h.Fragment,{children:Ue})}if(I==="edit"||I==="update"){var Qe=(0,h.jsx)(ci.Z,(0,i.Z)((0,i.Z)({ref:d},ze),{},{style:(0,i.Z)({minWidth:120},ze==null?void 0:ze.style)}));return De?De(u,(0,i.Z)({mode:I},ze),Qe):Qe}return null},Qi=w.forwardRef(Zi),dl=e(2309),_a=function(r,d){var u=r.text,I=r.mode,Q=r.render,De=r.light,ze=r.label,Ue=r.renderFormItem,Qe=r.fieldProps,At=(0,F.YB)(),rn=(0,w.useMemo)(function(){var Dn,jr;return u==null||"".concat(u).length<1?"-":u?(Dn=Qe==null?void 0:Qe.checkedChildren)!==null&&Dn!==void 0?Dn:At.getMessage("switch.open","\u6253\u5F00"):(jr=Qe==null?void 0:Qe.unCheckedChildren)!==null&&jr!==void 0?jr:At.getMessage("switch.close","\u5173\u95ED")},[Qe==null?void 0:Qe.checkedChildren,Qe==null?void 0:Qe.unCheckedChildren,u]);if(I==="read")return Q?Q(u,(0,i.Z)({mode:I},Qe),(0,h.jsx)(h.Fragment,{children:rn})):rn!=null?rn:"-";if(I==="edit"||I==="update"){var Qt,Ln=(0,h.jsx)(dl.Z,(0,i.Z)((0,i.Z)({ref:d,size:De?"small":void 0},(0,E.Z)(Qe,["value"])),{},{checked:(Qt=Qe==null?void 0:Qe.checked)!==null&&Qt!==void 0?Qt:Qe==null?void 0:Qe.value}));if(De){var Xn=Qe.disabled,Mn=Qe.bordered;return(0,h.jsx)(f.Q,{label:ze,disabled:Xn,bordered:Mn,downIcon:!1,value:(0,h.jsx)("div",{style:{paddingLeft:8},children:Ln}),allowClear:!1})}return Ue?Ue(u,(0,i.Z)({mode:I},Qe),Ln):Ln}return null},Ui=w.forwardRef(_a),Bi=function(r,d){var u=r.text,I=r.mode,Q=r.render,De=r.renderFormItem,ze=r.fieldProps,Ue=r.emptyText,Qe=Ue===void 0?"-":Ue,At=ze||{},rn=At.autoFocus,Qt=At.prefix,Ln=Qt===void 0?"":Qt,Xn=At.suffix,Mn=Xn===void 0?"":Xn,Dn=(0,F.YB)(),jr=(0,w.useRef)();if((0,w.useImperativeHandle)(d,function(){return jr.current},[]),(0,w.useEffect)(function(){if(rn){var Br;(Br=jr.current)===null||Br===void 0||Br.focus()}},[rn]),I==="read"){var rr=(0,h.jsxs)(h.Fragment,{children:[Ln,u!=null?u:Qe,Mn]});if(Q){var Rr;return(Rr=Q(u,(0,i.Z)({mode:I},ze),rr))!==null&&Rr!==void 0?Rr:Qe}return rr}if(I==="edit"||I==="update"){var Xr=Dn.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165"),zr=(0,h.jsx)(ce.Z,(0,i.Z)({ref:jr,placeholder:Xr,allowClear:!0},ze));return De?De(u,(0,i.Z)({mode:I},ze),zr):zr}return null},ul=w.forwardRef(Bi),Ci=function(r,d){var u=r.text,I=(0,w.useContext)(_.ZP.ConfigContext),Q=I.getPrefixCls,De=Q("pro-field-readonly"),ze="".concat(De,"-textarea"),Ue=(0,xt.Xj)("TextArea",function(){return(0,xe.Z)({},".".concat(ze),{display:"inline-block",lineHeight:"1.5715",maxWidth:"100%",whiteSpace:"pre-wrap"})}),Qe=Ue.wrapSSR,At=Ue.hashId;return Qe((0,h.jsx)("span",{ref:d,className:$e()(At,De,ze),style:{},children:u!=null?u:"-"}))},ii=w.forwardRef(Ci),fl=function(r,d){var u=r.text,I=r.mode,Q=r.render,De=r.renderFormItem,ze=r.fieldProps,Ue=(0,F.YB)();if(I==="read"){var Qe=(0,h.jsx)(ii,(0,i.Z)((0,i.Z)({},r),{},{ref:d}));return Q?Q(u,(0,i.Z)({mode:I},ze),Qe):Qe}if(I==="edit"||I==="update"){var At=(0,h.jsx)(ce.Z.TextArea,(0,i.Z)({ref:d,rows:3,onKeyPress:function(Qt){Qt.key==="Enter"&&Qt.stopPropagation()},placeholder:Ue.getMessage("tableForm.inputPlaceholder","\u8BF7\u8F93\u5165")},ze));return De?De(u,(0,i.Z)({mode:I},ze),At):At}return null},Ri=w.forwardRef(fl),zi=e(98823),No=function(r,d){var u=r.text,I=r.mode,Q=r.light,De=r.label,ze=r.format,Ue=r.render,Qe=r.renderFormItem,At=r.plain,rn=r.fieldProps,Qt=r.lightLabel,Ln=(0,w.useState)(!1),Xn=(0,K.Z)(Ln,2),Mn=Xn[0],Dn=Xn[1],jr=(0,F.YB)(),rr=(rn==null?void 0:rn.format)||ze||"HH:mm:ss",Rr=Uo().isDayjs(u)||typeof u=="number";if(I==="read"){var Xr=(0,h.jsx)("span",{ref:d,children:u?Uo()(u,Rr?void 0:rr).format(rr):"-"});return Ue?Ue(u,(0,i.Z)({mode:I},rn),(0,h.jsx)("span",{children:Xr})):Xr}if(I==="edit"||I==="update"){var zr,Br=rn.disabled,Lo=rn.value,So=io(Lo,rr);if(Q){var pa;zr=(0,h.jsx)(f.Q,{onClick:function(){var Bo;rn==null||(Bo=rn.onOpenChange)===null||Bo===void 0||Bo.call(rn,!0),Dn(!0)},style:So?{paddingInlineEnd:0}:void 0,label:De,disabled:Br,value:So||Mn?(0,h.jsx)(zi.Z,(0,i.Z)((0,i.Z)({bordered:!1,format:ze,ref:d},rn),{},{placeholder:(pa=rn.placeholder)!==null&&pa!==void 0?pa:jr.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9"),value:So,onOpenChange:function(Bo){var fr;Dn(Bo),rn==null||(fr=rn.onOpenChange)===null||fr===void 0||fr.call(rn,Bo)},open:Mn})):null,downIcon:So||Mn?!1:void 0,allowClear:!1,ref:Qt})}else zr=(0,h.jsx)(lr.Z.TimePicker,(0,i.Z)((0,i.Z)({ref:d,format:ze,bordered:At===void 0?!0:!At},rn),{},{value:So}));return Qe?Qe(u,(0,i.Z)({mode:I},rn),zr):zr}return null},Ta=function(r,d){var u=r.text,I=r.light,Q=r.label,De=r.mode,ze=r.lightLabel,Ue=r.format,Qe=r.render,At=r.renderFormItem,rn=r.plain,Qt=r.fieldProps,Ln=(0,F.YB)(),Xn=(0,w.useState)(!1),Mn=(0,K.Z)(Xn,2),Dn=Mn[0],jr=Mn[1],rr=(Qt==null?void 0:Qt.format)||Ue||"HH:mm:ss",Rr=Array.isArray(u)?u:[],Xr=(0,K.Z)(Rr,2),zr=Xr[0],Br=Xr[1],Lo=Uo().isDayjs(zr)||typeof zr=="number",So=Uo().isDayjs(Br)||typeof Br=="number",pa=zr?Uo()(zr,Lo?void 0:rr).format(rr):"",Pa=Br?Uo()(Br,So?void 0:rr).format(rr):"";if(De==="read"){var Bo=(0,h.jsxs)("div",{ref:d,children:[(0,h.jsx)("div",{children:pa||"-"}),(0,h.jsx)("div",{children:Pa||"-"})]});return Qe?Qe(u,(0,i.Z)({mode:De},Qt),(0,h.jsx)("span",{children:Bo})):Bo}if(De==="edit"||De==="update"){var fr=io(Qt.value,rr),Ao;if(I){var To=Qt.disabled,qr=Qt.placeholder,na=qr===void 0?[Ln.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9"),Ln.getMessage("tableForm.selectPlaceholder","\u8BF7\u9009\u62E9")]:qr;Ao=(0,h.jsx)(f.Q,{onClick:function(){var Po;Qt==null||(Po=Qt.onOpenChange)===null||Po===void 0||Po.call(Qt,!0),jr(!0)},style:fr?{paddingInlineEnd:0}:void 0,label:Q,disabled:To,placeholder:na,value:fr||Dn?(0,h.jsx)(zi.Z.RangePicker,(0,i.Z)((0,i.Z)({bordered:!1,format:Ue,ref:d},Qt),{},{placeholder:na,value:fr,onOpenChange:function(Po){var Xa;jr(Po),Qt==null||(Xa=Qt.onOpenChange)===null||Xa===void 0||Xa.call(Qt,Po)},open:Dn})):null,downIcon:fr||Dn?!1:void 0,allowClear:!1,ref:ze})}else Ao=(0,h.jsx)(zi.Z.RangePicker,(0,i.Z)((0,i.Z)({ref:d,format:Ue,bordered:rn===void 0?!0:!rn},Qt),{},{value:fr}));return At?At(u,(0,i.Z)({mode:De},Qt),Ao):Ao}return null},Fa=w.forwardRef(Ta),Ua=w.forwardRef(No),li=e(76185),Ji=["radioType","renderFormItem","mode","light","label","render"],qi=["onSearch","onClear","onChange","onBlur","showSearch","autoClearSearchValue","treeData","fetchDataOnSearch","searchValue"],Ll=function(r,d){var u=r.radioType,I=r.renderFormItem,Q=r.mode,De=r.light,ze=r.label,Ue=r.render,Qe=(0,y.Z)(r,Ji),At=(0,w.useContext)(_.ZP.ConfigContext),rn=At.getPrefixCls,Qt=rn("pro-field-tree-select"),Ln=(0,w.useRef)(null),Xn=(0,w.useState)(!1),Mn=(0,K.Z)(Xn,2),Dn=Mn[0],jr=Mn[1],rr=Qe.fieldProps,Rr=rr.onSearch,Xr=rr.onClear,zr=rr.onChange,Br=rr.onBlur,Lo=rr.showSearch,So=rr.autoClearSearchValue,pa=rr.treeData,Pa=rr.fetchDataOnSearch,Bo=rr.searchValue,fr=(0,y.Z)(rr,qi),Ao=(0,F.YB)(),To=(0,z.aK)((0,i.Z)((0,i.Z)({},Qe),{},{defaultKeyWords:Bo})),qr=(0,K.Z)(To,3),na=qr[0],Go=qr[1],Po=qr[2],Xa=(0,Hi.Z)(void 0,{onChange:Rr,value:Bo}),bi=(0,K.Z)(Xa,2),tl=bi[0],gl=bi[1];(0,w.useImperativeHandle)(d,function(){return(0,i.Z)((0,i.Z)({},Ln.current||{}),{},{fetchData:function(Si){return Po(Si)}})});var ls=(0,w.useMemo)(function(){if(Q==="read"){var il=(fr==null?void 0:fr.fieldNames)||{},Si=il.value,ql=Si===void 0?"value":Si,cs=il.label,dc=cs===void 0?"label":cs,qs=il.children,uc=qs===void 0?"children":qs,Ws=new Map,fc=function vc(Es){if(!(Es!=null&&Es.length))return Ws;for(var mc=Es.length,_s=0;_s0?(0,L.jsx)("div",{className:"".concat(yt,"-action ").concat(Bt).trim(),children:Bn}):null,qe={name:Nt.name,field:$,index:b,record:Z==null||(mt=Z.getFieldValue)===null||mt===void 0?void 0:mt.call(Z,[tt.listName,ae,$.name].filter(function(we){return we!==void 0}).flat(1)),fields:O,operation:fe,meta:ke},_e=(0,re.zx)(),ee=_e.grid,Y=(wt==null?void 0:wt(Pn,qe))||Pn,Ae=(Gt==null?void 0:Gt({listDom:(0,L.jsx)("div",{className:"".concat(yt,"-container ").concat(q||""," ").concat(Bt||"").trim(),style:(0,y.Z)({width:ee?"100%":void 0},Ye),children:Y}),action:ne},qe))||(0,L.jsxs)("div",{className:"".concat(yt,"-item ").concat(Bt,` + `).concat(Mt===void 0&&"".concat(yt,"-item-default"),` + `).concat(Mt?"".concat(yt,"-item-show-label"):""),style:{display:"flex",alignItems:"flex-end"},children:[(0,L.jsx)("div",{className:"".concat(yt,"-container ").concat(q||""," ").concat(Bt).trim(),style:(0,y.Z)({width:ee?"100%":void 0},Ye),children:Y}),ne]});return(0,L.jsx)(X.Provider,{value:(0,y.Z)((0,y.Z)({},$),{},{listName:[tt.listName,ae,$.name].filter(function(we){return we!==void 0}).flat(1)}),children:Ae})},ue=function(he){var mt=(0,H.YB)(),lt=he.creatorButtonProps,pt=he.prefixCls,ft=he.children,wt=he.creatorRecord,Gt=he.action,Mt=he.fields,yt=he.actionGuard,St=he.max,fe=he.fieldExtraRender,Re=he.meta,Oe=he.containerClassName,Le=he.containerStyle,O=he.onAfterAdd,ke=he.onAfterRemove,$=(0,K.useContext)(H.L_),b=$.hashId,Z=(0,K.useRef)(new Map),ae=(0,K.useState)(!1),q=(0,k.Z)(ae,2),Ye=q[0],ot=q[1],gt=(0,K.useMemo)(function(){return Mt.map(function(st){var Ft,jt;if(!((Ft=Z.current)!==null&&Ft!==void 0&&Ft.has(st.key.toString()))){var Lt;(Lt=Z.current)===null||Lt===void 0||Lt.set(st.key.toString(),(0,$e.x)())}var un=(jt=Z.current)===null||jt===void 0?void 0:jt.get(st.key.toString());return(0,y.Z)((0,y.Z)({},st),{},{uuid:un})})},[Mt]),Et=(0,K.useMemo)(function(){var st=(0,y.Z)({},Gt),Ft=gt.length;return yt!=null&&yt.beforeAddRow?st.add=(0,_.Z)((0,f.Z)().mark(function jt(){var Lt,un,Ut,pn,Sn,Xt=arguments;return(0,f.Z)().wrap(function(ln){for(;;)switch(ln.prev=ln.next){case 0:for(Lt=Xt.length,un=new Array(Lt),Ut=0;Ut0&&arguments[0]!==void 0?arguments[0]:{},z=$e.children,h=$e.Wrapper,Xe=(0,M.Z)($e,A);return f?(0,t.jsx)(F.Z,(0,y.Z)((0,y.Z)((0,y.Z)({gutter:8},_),Xe),{},{children:z})):h?(0,t.jsx)(h,{children:z}):z},ColWrapper:function(){var $e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},z=$e.children,h=$e.Wrapper,Xe=(0,M.Z)($e,R),It=(0,H.useMemo)(function(){var Fe=(0,y.Z)((0,y.Z)({},k),Xe);return typeof Fe.span=="undefined"&&typeof Fe.xs=="undefined"&&(Fe.xs=24),Fe},[Xe]);return f?(0,t.jsx)(D.Z,(0,y.Z)((0,y.Z)({},It),{},{children:z})):h?(0,t.jsx)(h,{children:z}):z}}},w=function(re){var f=(0,H.useMemo)(function(){return(0,i.Z)(re)==="object"?re:{grid:re}},[re]),_=(0,H.useContext)(Ce),k=_.grid,J=_.colProps;return(0,H.useMemo)(function(){return se({grid:!!(k||f.grid),rowProps:f==null?void 0:f.rowProps,colProps:(f==null?void 0:f.colProps)||J,Wrapper:f==null?void 0:f.Wrapper})},[f==null?void 0:f.Wrapper,f.grid,k,JSON.stringify([J,f==null?void 0:f.colProps,f==null?void 0:f.rowProps])])}},81296:function(Dt,Ne,e){"use strict";e.d(Ne,{A:function(){return Fe}});var i=e(57370),y=e(47513),M=e(58757),F=e(92284),D=e(52024),H=e(37734),t=e(28314),A=e(91169),R=e(60409),Ce=e(32311),se=e(42505),w=e(57414),K=e(87608),re=e.n(K),f=e(78546),_=e(76810),k=e(70260),J=function(xt){var He;return(0,H.Z)({},xt.componentCls,{"&-title":{marginBlockEnd:xt.marginXL,fontWeight:"bold"},"&-container":(0,H.Z)({flexWrap:"wrap",maxWidth:"100%"},"> div".concat(xt.antCls,"-space-item"),{maxWidth:"100%"}),"&-twoLine":(He={display:"block",width:"100%"},(0,H.Z)(He,"".concat(xt.componentCls,"-title"),{width:"100%",margin:"8px 0"}),(0,H.Z)(He,"".concat(xt.componentCls,"-container"),{paddingInlineStart:16}),(0,H.Z)(He,"".concat(xt.antCls,"-space-item,").concat(xt.antCls,"-form-item"),{width:"100%"}),(0,H.Z)(He,"".concat(xt.antCls,"-form-item"),{"&-control":{display:"flex",alignItems:"center",justifyContent:"flex-end","&-input":{alignItems:"center",justifyContent:"flex-end","&-content":{flex:"none"}}}}),He)})};function $e(xe){return(0,k.Xj)("ProFormGroup",function(xt){var He=(0,i.Z)((0,i.Z)({},xt),{},{componentCls:".".concat(xe)});return[J(He)]})}var z=e(35667),h=M.forwardRef(function(xe,xt){var He=M.useContext(f.Z),L=He.groupProps,Be=(0,i.Z)((0,i.Z)({},L),xe),$t=Be.children,oe=Be.collapsible,ue=Be.defaultCollapsed,ce=Be.style,Je=Be.labelLayout,it=Be.title,Te=it===void 0?xe.label:it,ut=Be.tooltip,X=Be.align,W=X===void 0?"start":X,me=Be.direction,he=Be.size,mt=he===void 0?32:he,lt=Be.titleStyle,pt=Be.titleRender,ft=Be.spaceProps,wt=Be.extra,Gt=Be.autoFocus,Mt=(0,R.Z)(function(){return ue||!1},{value:xe.collapsed,onChange:xe.onCollapse}),yt=(0,t.Z)(Mt,2),St=yt[0],fe=yt[1],Re=(0,M.useContext)(se.ZP.ConfigContext),Oe=Re.getPrefixCls,Le=(0,_.zx)(xe),O=Le.ColWrapper,ke=Le.RowWrapper,$=Oe("pro-form-group"),b=$e($),Z=b.wrapSSR,ae=b.hashId,q=oe&&(0,z.jsx)(A.Z,{style:{marginInlineEnd:8},rotate:St?void 0:90}),Ye=(0,z.jsx)(Ce.G,{label:q?(0,z.jsxs)("div",{children:[q,Te]}):Te,tooltip:ut}),ot=(0,M.useCallback)(function(tt){var st=tt.children;return(0,z.jsx)(w.Z,(0,i.Z)((0,i.Z)({},ft),{},{className:re()("".concat($,"-container ").concat(ae),ft==null?void 0:ft.className),size:mt,align:W,direction:me,style:(0,i.Z)({rowGap:0},ft==null?void 0:ft.style),children:st}))},[W,$,me,ae,mt,ft]),gt=pt?pt(Ye,xe):Ye,Et=(0,M.useMemo)(function(){var tt=[],st=M.Children.toArray($t).map(function(Ft,jt){var Lt;return M.isValidElement(Ft)&&Ft!==null&&Ft!==void 0&&(Lt=Ft.props)!==null&&Lt!==void 0&&Lt.hidden?(tt.push(Ft),null):jt===0&&M.isValidElement(Ft)&&Gt?M.cloneElement(Ft,(0,i.Z)((0,i.Z)({},Ft.props),{},{autoFocus:Gt})):Ft});return[(0,z.jsx)(ke,{Wrapper:ot,children:st},"children"),tt.length>0?(0,z.jsx)("div",{style:{display:"none"},children:tt}):null]},[$t,ke,ot,Gt]),Nt=(0,t.Z)(Et,2),Vt=Nt[0],Bt=Nt[1];return Z((0,z.jsx)(O,{children:(0,z.jsxs)("div",{className:re()($,ae,(0,H.Z)({},"".concat($,"-twoLine"),Je==="twoLine")),style:ce,ref:xt,children:[Bt,(Te||ut||wt)&&(0,z.jsx)("div",{className:"".concat($,"-title ").concat(ae).trim(),style:lt,onClick:function(){fe(!St)},children:wt?(0,z.jsxs)("div",{style:{display:"flex",width:"100%",alignItems:"center",justifyContent:"space-between"},children:[gt,(0,z.jsx)("span",{onClick:function(st){return st.stopPropagation()},children:wt})]}):gt}),(0,z.jsx)("div",{style:{display:oe&&St?"none":void 0},children:Vt})]})}))});h.displayName="ProForm-Group";var Xe=h,It=e(97099);function Fe(xe){return(0,z.jsx)(F.I,(0,i.Z)({layout:"vertical",submitter:{render:function(He,L){return L.reverse()}},contentRender:function(He,L){return(0,z.jsxs)(z.Fragment,{children:[He,L]})}},xe))}Fe.Group=Xe,Fe.useForm=y.Z.useForm,Fe.Item=It.Z,Fe.useWatch=y.Z.useWatch,Fe.ErrorList=y.Z.ErrorList,Fe.Provider=y.Z.Provider,Fe.useFormInstance=y.Z.useFormInstance,Fe.EditOrReadOnlyContext=D.A},54637:function(Dt,Ne,e){"use strict";e.d(Ne,{Q:function(){return f}});var i=e(37734),y=e(79999),M=e(10130),F=e(25846),D=e(42505),H=e(87608),t=e.n(H),A=e(58757),R=e(57370),Ce=e(70260),se=function(k){var J,$e,z,h;return(0,i.Z)({},k.componentCls,(h={display:"inline-flex",gap:k.marginXXS,alignItems:"center",height:"30px",paddingBlock:0,paddingInline:8,fontSize:k.fontSize,lineHeight:"30px",borderRadius:"2px",cursor:"pointer","&:hover":{backgroundColor:k.colorBgTextHover},"&-active":(0,i.Z)({paddingBlock:0,paddingInline:8,backgroundColor:k.colorBgTextHover},"&".concat(k.componentCls,"-allow-clear:hover:not(").concat(k.componentCls,"-disabled)"),(J={},(0,i.Z)(J,"".concat(k.componentCls,"-arrow"),{display:"none"}),(0,i.Z)(J,"".concat(k.componentCls,"-close"),{display:"inline-flex"}),J))},(0,i.Z)(h,"".concat(k.antCls,"-select"),(0,i.Z)({},"".concat(k.antCls,"-select-clear"),{borderRadius:"50%"})),(0,i.Z)(h,"".concat(k.antCls,"-picker"),(0,i.Z)({},"".concat(k.antCls,"-picker-clear"),{borderRadius:"50%"})),(0,i.Z)(h,"&-icon",($e={color:k.colorIcon,transition:"color 0.3s",fontSize:12,verticalAlign:"middle"},(0,i.Z)($e,"&".concat(k.componentCls,"-close"),{display:"none",fontSize:12,alignItems:"center",justifyContent:"center",color:k.colorTextPlaceholder,borderRadius:"50%"}),(0,i.Z)($e,"&:hover",{color:k.colorIconHover}),$e)),(0,i.Z)(h,"&-disabled",(0,i.Z)({color:k.colorTextPlaceholder,cursor:"not-allowed"},"".concat(k.componentCls,"-icon"),{color:k.colorTextPlaceholder})),(0,i.Z)(h,"&-small",(z={height:"24px",paddingBlock:0,paddingInline:4,fontSize:k.fontSizeSM,lineHeight:"24px"},(0,i.Z)(z,"&".concat(k.componentCls,"-active"),{paddingBlock:0,paddingInline:8}),(0,i.Z)(z,"".concat(k.componentCls,"-icon"),{paddingBlock:0,paddingInline:0}),(0,i.Z)(z,"".concat(k.componentCls,"-close"),{marginBlockStart:"-2px",paddingBlock:4,paddingInline:4,fontSize:"6px"}),z)),(0,i.Z)(h,"&-bordered",{height:"32px",paddingBlock:0,paddingInline:8,border:"".concat(k.lineWidth,"px solid ").concat(k.colorBorder),borderRadius:"@border-radius-base"}),(0,i.Z)(h,"&-bordered&-small",{height:"24px",paddingBlock:0,paddingInline:8}),(0,i.Z)(h,"&-bordered&-active",{backgroundColor:k.colorBgContainer}),h))};function w(_){return(0,Ce.Xj)("FieldLabel",function(k){var J=(0,R.Z)((0,R.Z)({},k),{},{componentCls:".".concat(_)});return[se(J)]})}var K=e(35667),re=function(k,J){var $e,z,h,Xe,It=k.label,Fe=k.onClear,xe=k.value,xt=k.disabled,He=k.onLabelClick,L=k.ellipsis,Be=k.placeholder,$t=k.className,oe=k.formatter,ue=k.bordered,ce=k.style,Je=k.downIcon,it=k.allowClear,Te=it===void 0?!0:it,ut=(D.ZP===null||D.ZP===void 0||($e=D.ZP.useConfig)===null||$e===void 0?void 0:$e.call(D.ZP))||{componentSize:"middle"},X=ut.componentSize,W=X,me=(0,A.useContext)(D.ZP.ConfigContext),he=me.getPrefixCls,mt=he("pro-core-field-label"),lt=w(mt),pt=lt.wrapSSR,ft=lt.hashId,wt=(0,F.YB)(),Gt=(0,A.useRef)(null),Mt=(0,A.useRef)(null);(0,A.useImperativeHandle)(J,function(){return{labelRef:Mt,clearRef:Gt}});var yt=function(Oe){return Oe.every(function(Le){return typeof Le=="string"})?Oe.join(","):Oe.map(function(Le,O){var ke=O===Oe.length-1?"":",";return typeof Le=="string"?(0,K.jsxs)("span",{children:[Le,ke]},O):(0,K.jsxs)("span",{style:{display:"flex"},children:[Le,ke]},O)})},St=function(Oe){return oe?oe(Oe):Array.isArray(Oe)?yt(Oe):Oe},fe=function(Oe,Le){if(Le!=null&&Le!==""&&(!Array.isArray(Le)||Le.length)){var O,ke,$=Oe?(0,K.jsxs)("span",{onClick:function(){He==null||He()},className:"".concat(mt,"-text"),children:[Oe,": "]}):"",b=St(Le);if(!L)return(0,K.jsxs)("span",{style:{display:"inline-flex",alignItems:"center"},children:[$,St(Le)]});var Z=41,ae=function(){var ot=Array.isArray(Le)&&Le.length>1,gt=wt.getMessage("form.lightFilter.itemUnit","\u9879");return typeof b=="string"&&b.length>Z&&ot?"...".concat(Le.length).concat(gt):""},q=ae();return(0,K.jsxs)("span",{title:typeof b=="string"?b:void 0,style:{display:"inline-flex",alignItems:"center"},children:[$,(0,K.jsx)("span",{style:{paddingInlineStart:4,display:"flex"},children:typeof b=="string"?b==null||(O=b.toString())===null||O===void 0||(ke=O.substr)===null||ke===void 0?void 0:ke.call(O,0,Z):b}),q]})}return Oe||Be};return pt((0,K.jsxs)("span",{className:t()(mt,ft,"".concat(mt,"-").concat((z=(h=k.size)!==null&&h!==void 0?h:W)!==null&&z!==void 0?z:"middle"),(Xe={},(0,i.Z)(Xe,"".concat(mt,"-active"),!!xe||xe===0),(0,i.Z)(Xe,"".concat(mt,"-disabled"),xt),(0,i.Z)(Xe,"".concat(mt,"-bordered"),ue),(0,i.Z)(Xe,"".concat(mt,"-allow-clear"),Te),Xe),$t),style:ce,ref:Mt,onClick:function(){var Oe;k==null||(Oe=k.onClick)===null||Oe===void 0||Oe.call(k)},children:[fe(It,xe),(xe||xe===0)&&Te&&(0,K.jsx)(y.Z,{role:"button",title:wt.getMessage("form.lightFilter.clear","\u6E05\u9664"),className:t()("".concat(mt,"-icon"),ft,"".concat(mt,"-close")),onClick:function(Oe){xt||Fe==null||Fe(),Oe.stopPropagation()},ref:Gt}),Je!==!1?Je!=null?Je:(0,K.jsx)(M.Z,{className:t()("".concat(mt,"-icon"),ft,"".concat(mt,"-arrow"))}):null]}))},f=A.forwardRef(re)},27675:function(Dt,Ne,e){"use strict";e.d(Ne,{M:function(){return J}});var i=e(57370),y=e(37734),M=e(42505),F=e(33181),D=e(58757),H=e(25846),t=e(12562),A=e(87608),R=e.n(A),Ce=e(70260),se=function(z){return(0,y.Z)({},z.componentCls,{display:"flex",justifyContent:"space-between",paddingBlock:8,paddingInlineStart:8,paddingInlineEnd:8,borderBlockStart:"1px solid ".concat(z.colorSplit)})};function w($e){return(0,Ce.Xj)("DropdownFooter",function(z){var h=(0,i.Z)((0,i.Z)({},z),{},{componentCls:".".concat($e)});return[se(h)]})}var K=e(35667),re=function(z){var h=(0,H.YB)(),Xe=z.onClear,It=z.onConfirm,Fe=z.disabled,xe=z.footerRender,xt=(0,D.useContext)(M.ZP.ConfigContext),He=xt.getPrefixCls,L=He("pro-core-dropdown-footer"),Be=w(L),$t=Be.wrapSSR,oe=Be.hashId,ue=[(0,K.jsx)(t.ZP,{style:{visibility:Xe?"visible":"hidden"},type:"link",size:"small",disabled:Fe,onClick:function(it){Xe&&Xe(it),it.stopPropagation()},children:h.getMessage("form.lightFilter.clear","\u6E05\u9664")},"clear"),(0,K.jsx)(t.ZP,{"data-type":"confirm",type:"primary",size:"small",onClick:It,disabled:Fe,children:h.getMessage("form.lightFilter.confirm","\u786E\u8BA4")},"confirm")];if(xe===!1||(xe==null?void 0:xe(It,Xe))===!1)return null;var ce=(xe==null?void 0:xe(It,Xe))||ue;return $t((0,K.jsx)("div",{className:R()(L,oe),onClick:function(it){return it.target.getAttribute("data-type")!=="confirm"&&it.stopPropagation()},children:ce}))},f=e(1643),_=function(z){var h;return h={},(0,y.Z)(h,"".concat(z.componentCls,"-label"),{cursor:"pointer"}),(0,y.Z)(h,"".concat(z.componentCls,"-overlay"),{minWidth:"200px",marginBlockStart:"4px"}),(0,y.Z)(h,"".concat(z.componentCls,"-content"),{paddingBlock:16,paddingInline:16}),h};function k($e){return(0,Ce.Xj)("FilterDropdown",function(z){var h=(0,i.Z)((0,i.Z)({},z),{},{componentCls:".".concat($e)});return[_(h)]})}var J=function(z){var h,Xe=z.children,It=z.label,Fe=z.footer,xe=z.open,xt=z.onOpenChange,He=z.disabled,L=z.onVisibleChange,Be=z.visible,$t=z.footerRender,oe=z.placement,ue=(0,D.useContext)(M.ZP.ConfigContext),ce=ue.getPrefixCls,Je=ce("pro-core-field-dropdown"),it=k(Je),Te=it.wrapSSR,ut=it.hashId,X=(0,f.X)(xe||Be||!1,xt||L),W=(0,D.useRef)(null);return Te((0,K.jsx)(F.Z,(0,i.Z)((0,i.Z)({placement:oe,trigger:["click"]},X),{},{overlayInnerStyle:{padding:0},content:(0,K.jsxs)("div",{ref:W,className:R()("".concat(Je,"-overlay"),(h={},(0,y.Z)(h,"".concat(Je,"-overlay-").concat(oe),oe),(0,y.Z)(h,"hashId",ut),h)),children:[(0,K.jsx)(M.ZP,{getPopupContainer:function(){return W.current||document.body},children:(0,K.jsx)("div",{className:"".concat(Je,"-content ").concat(ut).trim(),children:Xe})}),Fe&&(0,K.jsx)(re,(0,i.Z)({disabled:He,footerRender:$t},Fe))]}),children:(0,K.jsx)("span",{className:"".concat(Je,"-label ").concat(ut).trim(),children:It})})))}},32311:function(Dt,Ne,e){"use strict";e.d(Ne,{G:function(){return J}});var i=e(57370),y=e(37734),M=e(60698),F=e(58757),D={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"}}]},name:"info-circle",theme:"outlined"},H=D,t=e(17202),A=function(z,h){return F.createElement(t.Z,(0,M.Z)({},z,{ref:h,icon:H}))},R=F.forwardRef(A),Ce=e(42505),se=e(74820),w=e(87608),K=e.n(w),re=e(70260),f=function(z){return(0,y.Z)({},z.componentCls,{display:"inline-flex",alignItems:"center",maxWidth:"100%","&-icon":{display:"block",marginInlineStart:"4px",cursor:"pointer","&:hover":{color:z.colorPrimary}},"&-title":{display:"inline-flex",flex:"1"},"&-subtitle ":{marginInlineStart:8,color:z.colorTextSecondary,fontWeight:"normal",fontSize:z.fontSize,whiteSpace:"nowrap"},"&-title-ellipsis":{overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",wordBreak:"keep-all"}})};function _($e){return(0,re.Xj)("LabelIconTip",function(z){var h=(0,i.Z)((0,i.Z)({},z),{},{componentCls:".".concat($e)});return[f(h)]})}var k=e(35667),J=F.memo(function($e){var z=$e.label,h=$e.tooltip,Xe=$e.ellipsis,It=$e.subTitle,Fe=(0,F.useContext)(Ce.ZP.ConfigContext),xe=Fe.getPrefixCls,xt=xe("pro-core-label-tip"),He=_(xt),L=He.wrapSSR,Be=He.hashId;if(!h&&!It)return(0,k.jsx)(k.Fragment,{children:z});var $t=typeof h=="string"||F.isValidElement(h)?{title:h}:h,oe=($t==null?void 0:$t.icon)||(0,k.jsx)(R,{});return L((0,k.jsxs)("div",{className:K()(xt,Be),onMouseDown:function(ce){return ce.stopPropagation()},onMouseLeave:function(ce){return ce.stopPropagation()},onMouseMove:function(ce){return ce.stopPropagation()},children:[(0,k.jsx)("div",{className:K()("".concat(xt,"-title"),Be,(0,y.Z)({},"".concat(xt,"-title-ellipsis"),Xe)),children:z}),It&&(0,k.jsx)("div",{className:"".concat(xt,"-subtitle ").concat(Be).trim(),children:It}),h&&(0,k.jsx)(se.Z,(0,i.Z)((0,i.Z)({},$t),{},{children:(0,k.jsx)("span",{className:"".concat(xt,"-icon ").concat(Be).trim(),children:oe})}))]}))})},7916:function(Dt,Ne,e){"use strict";e.d(Ne,{J:function(){return y}});var i=e(58757),y=i.createContext({})},24435:function(Dt,Ne,e){"use strict";e.d(Ne,{Cl:function(){return A},lp:function(){return K}});var i=e(38790),y=e(86977),M=e.n(y),F=e(1667),D=e.n(F),H=e(3187),t=e(15797);M().extend(D());var A={time:"HH:mm:ss",timeRange:"HH:mm:ss",date:"YYYY-MM-DD",dateWeek:"YYYY-wo",dateMonth:"YYYY-MM",dateQuarter:"YYYY-[Q]Q",dateYear:"YYYY",dateRange:"YYYY-MM-DD",dateTime:"YYYY-MM-DD HH:mm:ss",dateTimeRange:"YYYY-MM-DD HH:mm:ss"};function R(re){return Object.prototype.toString.call(re)==="[object Object]"}function Ce(re){if(R(re)===!1)return!1;var f=re.constructor;if(f===void 0)return!0;var _=f.prototype;return!(R(_)===!1||_.hasOwnProperty("isPrototypeOf")===!1)}var se=function(f){return!!(f!=null&&f._isAMomentObject)},w=function(f,_,k){if(!_)return f;if(M().isDayjs(f)||se(f)){if(_==="number")return f.valueOf();if(_==="string")return f.format(A[k]||"YYYY-MM-DD HH:mm:ss");if(typeof _=="string"&&_!=="string")return f.format(_);if(typeof _=="function")return _(f,k)}return f},K=function re(f,_,k,J,$e){var z={};return typeof window=="undefined"||(0,i.Z)(f)!=="object"||(0,t.k)(f)||f instanceof Blob||Array.isArray(f)?f:(Object.keys(f).forEach(function(h){var Xe=$e?[$e,h].flat(1):[h],It=(0,H.Z)(k,Xe)||"text",Fe="text",xe;typeof It=="string"?Fe=It:It&&(Fe=It.valueType,xe=It.dateFormat);var xt=f[h];if(!((0,t.k)(xt)&&J)){if(Ce(xt)&&!Array.isArray(xt)&&!M().isDayjs(xt)&&!se(xt)){z[h]=re(xt,_,k,J,[h]);return}if(Array.isArray(xt)){z[h]=xt.map(function(He,L){return M().isDayjs(He)||se(He)?w(He,xe||_,Fe):re(He,_,k,J,[h,"".concat(L)].flat(1))});return}z[h]=w(xt,xe||_,Fe)}}),z)}},52496:function(Dt,Ne,e){"use strict";e.d(Ne,{Au:function(){return R},KW:function(){return A}});var i=e(74632),y=e(79290),M=e(58757),F=e(31989),D=e(75799),H=function(se,w,K){return(0,F.A)(se,w,K)};function t(Ce,se){var w=(0,M.useRef)();return H(Ce,w.current,se)||(w.current=Ce),w.current}function A(Ce,se,w){(0,M.useEffect)(Ce,t(se||[],w))}function R(Ce,se,w,K){var re=(0,D.D)((0,y.Z)((0,i.Z)().mark(function f(){return(0,i.Z)().wrap(function(k){for(;;)switch(k.prev=k.next){case 0:Ce();case 1:case"end":return k.stop()}},f)})),K||16);(0,M.useEffect)(function(){re.run()},t(se||[],w))}},66631:function(Dt,Ne,e){"use strict";e.d(Ne,{d:function(){return y}});var i=e(58757),y=function(F){var D=(0,i.useRef)(F);return D.current=F,D}},99947:function(Dt,Ne,e){"use strict";e.d(Ne,{D:function(){return y}});var i=e(58757),y=function(F){var D=(0,i.useRef)();return(0,i.useEffect)(function(){D.current=F}),D.current}},31989:function(Dt,Ne,e){"use strict";e.d(Ne,{A:function(){return M}});var i=e(57988),y=e(38790);function M(F,D,H,t){if(F===D)return!0;if(F&&D&&(0,y.Z)(F)==="object"&&(0,y.Z)(D)==="object"){if(F.constructor!==D.constructor)return!1;var A,R,Ce;if(Array.isArray(F)){if(A=F.length,A!=D.length)return!1;for(R=A;R--!==0;)if(!M(F[R],D[R],H,t))return!1;return!0}if(F instanceof Map&&D instanceof Map){if(F.size!==D.size)return!1;var se=(0,i.Z)(F.entries()),w;try{for(se.s();!(w=se.n()).done;)if(R=w.value,!D.has(R[0]))return!1}catch(J){se.e(J)}finally{se.f()}var K=(0,i.Z)(F.entries()),re;try{for(K.s();!(re=K.n()).done;)if(R=re.value,!M(R[1],D.get(R[0]),H,t))return!1}catch(J){K.e(J)}finally{K.f()}return!0}if(F instanceof Set&&D instanceof Set){if(F.size!==D.size)return!1;var f=(0,i.Z)(F.entries()),_;try{for(f.s();!(_=f.n()).done;)if(R=_.value,!D.has(R[0]))return!1}catch(J){f.e(J)}finally{f.f()}return!0}if(ArrayBuffer.isView(F)&&ArrayBuffer.isView(D)){if(A=F.length,A!=D.length)return!1;for(R=A;R--!==0;)if(F[R]!==D[R])return!1;return!0}if(F.constructor===RegExp)return F.source===D.source&&F.flags===D.flags;if(F.valueOf!==Object.prototype.valueOf&&F.valueOf)return F.valueOf()===D.valueOf();if(F.toString!==Object.prototype.toString&&F.toString)return F.toString()===D.toString();if(Ce=Object.keys(F),A=Ce.length,A!==Object.keys(D).length)return!1;for(R=A;R--!==0;)if(!Object.prototype.hasOwnProperty.call(D,Ce[R]))return!1;for(R=A;R--!==0;){var k=Ce[R];if(!(H!=null&&H.includes(k))&&!(k==="_owner"&&F.$$typeof)&&!M(F[k],D[k],H,t))return t&&console.log(k),!1}return!0}return F!==F&&D!==D}},15797:function(Dt,Ne,e){"use strict";e.d(Ne,{k:function(){return i}});var i=function(M){return M==null}},85734:function(Dt,Ne,e){"use strict";e.d(Ne,{T:function(){return M}});var i=e(57370),y=e(38790),M=function(){for(var D={},H=arguments.length,t=new Array(H),A=0;A0&&arguments[0]!==void 0?arguments[0]:21;if(typeof window=="undefined"||!window.crypto)return(i+=1).toFixed(0);for(var H="",t=crypto.getRandomValues(new Uint8Array(D));D--;){var A=63&t[D];H+=A<36?A.toString(36):A<62?(A-26).toString(36).toUpperCase():A<63?"_":"-"}return H},M=function(){return typeof window=="undefined"?y():window.crypto&&window.crypto.randomUUID&&typeof crypto.randomUUID=="function"?crypto.randomUUID():y()}},64410:function(Dt,Ne,e){"use strict";e.d(Ne,{h:function(){return i}});function i(y){if(typeof y=="function"){for(var M=arguments.length,F=new Array(M>1?M-1:0),D=1;D1&&arguments[1]!==void 0?arguments[1]:{};const{getContainer:t=()=>window,callback:A,duration:R=450}=H,Ce=t(),se=(0,M.Z)(Ce,!0),w=Date.now(),K=()=>{const f=Date.now()-w,_=y(f>R?R:f,se,D,R);(0,M.F)(Ce)?Ce.scrollTo(window.pageXOffset,_):Ce instanceof Document||Ce.constructor.name==="HTMLDocument"?Ce.documentElement.scrollTop=_:Ce.scrollTop=_,f{const A=f=>{const{keyCode:_}=f;_===i.Z.ENTER&&f.preventDefault()},R=f=>{const{keyCode:_}=f,{onClick:k}=H;_===i.Z.ENTER&&k&&k()},{style:Ce,noStyle:se,disabled:w}=H,K=M(H,["style","noStyle","disabled"]);let re={};return se||(re=Object.assign({},F)),w&&(re.pointerEvents="none"),re=Object.assign(Object.assign({},re),Ce),y.createElement("div",Object.assign({role:"button",tabIndex:0,ref:t},K,{onKeyDown:A,onKeyUp:R,style:re}))});Ne.Z=D},38914:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return it}});var i=e(87608),y=e.n(i),M=e(17598),F=e(58757),D=e(1878),H=e(37047),t=e(61836),A=e(57793),R=e(78330),Ce=e(98251),se=e(22151),w=e(52628);const K=new A.E4("antStatusProcessing",{"0%":{transform:"scale(0.8)",opacity:.5},"100%":{transform:"scale(2.4)",opacity:0}}),re=new A.E4("antZoomBadgeIn",{"0%":{transform:"scale(0) translate(50%, -50%)",opacity:0},"100%":{transform:"scale(1) translate(50%, -50%)"}}),f=new A.E4("antZoomBadgeOut",{"0%":{transform:"scale(1) translate(50%, -50%)"},"100%":{transform:"scale(0) translate(50%, -50%)",opacity:0}}),_=new A.E4("antNoWrapperZoomBadgeIn",{"0%":{transform:"scale(0)",opacity:0},"100%":{transform:"scale(1)"}}),k=new A.E4("antNoWrapperZoomBadgeOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0)",opacity:0}}),J=new A.E4("antBadgeLoadingCircle",{"0%":{transformOrigin:"50%"},"100%":{transform:"translate(50%, -50%) rotate(360deg)",transformOrigin:"50%"}}),$e=Te=>{const{componentCls:ut,iconCls:X,antCls:W,badgeShadowSize:me,badgeHeightSm:he,motionDurationSlow:mt,badgeStatusSize:lt,marginXS:pt}=Te,ft=`${W}-scroll-number`,wt=(0,Ce.Z)(Te,(Gt,Mt)=>{let{darkColor:yt}=Mt;return{[`&${ut} ${ut}-color-${Gt}`]:{background:yt,[`&:not(${ut}-count)`]:{color:yt}}}});return{[ut]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,R.Wf)(Te)),{position:"relative",display:"inline-block",width:"fit-content",lineHeight:1,[`${ut}-count`]:{zIndex:Te.badgeZIndex,minWidth:Te.badgeHeight,height:Te.badgeHeight,color:Te.badgeTextColor,fontWeight:Te.badgeFontWeight,fontSize:Te.badgeFontSize,lineHeight:`${Te.badgeHeight}px`,whiteSpace:"nowrap",textAlign:"center",background:Te.badgeColor,borderRadius:Te.badgeHeight/2,boxShadow:`0 0 0 ${me}px ${Te.badgeShadowColor}`,transition:`background ${Te.motionDurationMid}`,a:{color:Te.badgeTextColor},"a:hover":{color:Te.badgeTextColor},"a:hover &":{background:Te.badgeColorHover}},[`${ut}-count-sm`]:{minWidth:he,height:he,fontSize:Te.badgeFontSizeSm,lineHeight:`${he}px`,borderRadius:he/2},[`${ut}-multiple-words`]:{padding:`0 ${Te.paddingXS}px`,bdi:{unicodeBidi:"plaintext"}},[`${ut}-dot`]:{zIndex:Te.badgeZIndex,width:Te.badgeDotSize,minWidth:Te.badgeDotSize,height:Te.badgeDotSize,background:Te.badgeColor,borderRadius:"100%",boxShadow:`0 0 0 ${me}px ${Te.badgeShadowColor}`},[`${ut}-dot${ft}`]:{transition:`background ${mt}`},[`${ut}-count, ${ut}-dot, ${ft}-custom-component`]:{position:"absolute",top:0,insetInlineEnd:0,transform:"translate(50%, -50%)",transformOrigin:"100% 0%",[`&${X}-spin`]:{animationName:J,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear"}},[`&${ut}-status`]:{lineHeight:"inherit",verticalAlign:"baseline",[`${ut}-status-dot`]:{position:"relative",top:-1,display:"inline-block",width:lt,height:lt,verticalAlign:"middle",borderRadius:"50%"},[`${ut}-status-success`]:{backgroundColor:Te.colorSuccess},[`${ut}-status-processing`]:{overflow:"visible",color:Te.colorPrimary,backgroundColor:Te.colorPrimary,"&::after":{position:"absolute",top:0,insetInlineStart:0,width:"100%",height:"100%",borderWidth:me,borderStyle:"solid",borderColor:"inherit",borderRadius:"50%",animationName:K,animationDuration:Te.badgeProcessingDuration,animationIterationCount:"infinite",animationTimingFunction:"ease-in-out",content:'""'}},[`${ut}-status-default`]:{backgroundColor:Te.colorTextPlaceholder},[`${ut}-status-error`]:{backgroundColor:Te.colorError},[`${ut}-status-warning`]:{backgroundColor:Te.colorWarning},[`${ut}-status-text`]:{marginInlineStart:pt,color:Te.colorText,fontSize:Te.fontSize}}}),wt),{[`${ut}-zoom-appear, ${ut}-zoom-enter`]:{animationName:re,animationDuration:Te.motionDurationSlow,animationTimingFunction:Te.motionEaseOutBack,animationFillMode:"both"},[`${ut}-zoom-leave`]:{animationName:f,animationDuration:Te.motionDurationSlow,animationTimingFunction:Te.motionEaseOutBack,animationFillMode:"both"},[`&${ut}-not-a-wrapper`]:{[`${ut}-zoom-appear, ${ut}-zoom-enter`]:{animationName:_,animationDuration:Te.motionDurationSlow,animationTimingFunction:Te.motionEaseOutBack},[`${ut}-zoom-leave`]:{animationName:k,animationDuration:Te.motionDurationSlow,animationTimingFunction:Te.motionEaseOutBack},[`&:not(${ut}-status)`]:{verticalAlign:"middle"},[`${ft}-custom-component, ${ut}-count`]:{transform:"none"},[`${ft}-custom-component, ${ft}`]:{position:"relative",top:"auto",display:"block",transformOrigin:"50% 50%"}},[`${ft}`]:{overflow:"hidden",[`${ft}-only`]:{position:"relative",display:"inline-block",height:Te.badgeHeight,transition:`all ${Te.motionDurationSlow} ${Te.motionEaseOutBack}`,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden",[`> p${ft}-only-unit`]:{height:Te.badgeHeight,margin:0,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden"}},[`${ft}-symbol`]:{verticalAlign:"top"}},"&-rtl":{direction:"rtl",[`${ut}-count, ${ut}-dot, ${ft}-custom-component`]:{transform:"translate(-50%, -50%)"}}})}},z=Te=>{const{fontSize:ut,lineHeight:X,fontSizeSM:W,lineWidth:me,marginXS:he,colorBorderBg:mt}=Te,lt=Math.round(ut*X),pt=me,ft="auto",wt=lt-2*pt,Gt=Te.colorBgContainer,Mt="normal",yt=W,St=Te.colorError,fe=Te.colorErrorHover,Re=ut,Oe=W/2,Le=W,O=W/2;return(0,se.TS)(Te,{badgeFontHeight:lt,badgeShadowSize:pt,badgeZIndex:ft,badgeHeight:wt,badgeTextColor:Gt,badgeFontWeight:Mt,badgeFontSize:yt,badgeColor:St,badgeColorHover:fe,badgeShadowColor:mt,badgeHeightSm:Re,badgeDotSize:Oe,badgeFontSizeSm:Le,badgeStatusSize:O,badgeProcessingDuration:"1.2s",badgeRibbonOffset:he,badgeRibbonCornerTransform:"scaleY(0.75)",badgeRibbonCornerFilter:"brightness(75%)"})};var h=(0,w.Z)("Badge",Te=>{const ut=z(Te);return[$e(ut)]});const Xe=Te=>{const{antCls:ut,badgeFontHeight:X,marginXS:W,badgeRibbonOffset:me}=Te,he=`${ut}-ribbon`,mt=`${ut}-ribbon-wrapper`,lt=(0,Ce.Z)(Te,(pt,ft)=>{let{darkColor:wt}=ft;return{[`&${he}-color-${pt}`]:{background:wt,color:wt}}});return{[`${mt}`]:{position:"relative"},[`${he}`]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,R.Wf)(Te)),{position:"absolute",top:W,padding:`0 ${Te.paddingXS}px`,color:Te.colorPrimary,lineHeight:`${X}px`,whiteSpace:"nowrap",backgroundColor:Te.colorPrimary,borderRadius:Te.borderRadiusSM,[`${he}-text`]:{color:Te.colorTextLightSolid},[`${he}-corner`]:{position:"absolute",top:"100%",width:me,height:me,color:"currentcolor",border:`${me/2}px solid`,transform:Te.badgeRibbonCornerTransform,transformOrigin:"top",filter:Te.badgeRibbonCornerFilter}}),lt),{[`&${he}-placement-end`]:{insetInlineEnd:-me,borderEndEndRadius:0,[`${he}-corner`]:{insetInlineEnd:0,borderInlineEndColor:"transparent",borderBlockEndColor:"transparent"}},[`&${he}-placement-start`]:{insetInlineStart:-me,borderEndStartRadius:0,[`${he}-corner`]:{insetInlineStart:0,borderBlockEndColor:"transparent",borderInlineStartColor:"transparent"}},"&-rtl":{direction:"rtl"}})}};var It=(0,w.Z)(["Badge","Ribbon"],Te=>{const ut=z(Te);return[Xe(ut)]}),xe=Te=>{const{className:ut,prefixCls:X,style:W,color:me,children:he,text:mt,placement:lt="end"}=Te,{getPrefixCls:pt,direction:ft}=F.useContext(t.E_),wt=pt("ribbon",X),Gt=(0,D.o2)(me,!1),Mt=y()(wt,`${wt}-placement-${lt}`,{[`${wt}-rtl`]:ft==="rtl",[`${wt}-color-${me}`]:Gt},ut),[yt,St]=It(wt),fe={},Re={};return me&&!Gt&&(fe.background=me,Re.color=me),yt(F.createElement("div",{className:y()(`${wt}-wrapper`,St)},he,F.createElement("div",{className:y()(Mt,St),style:Object.assign(Object.assign({},fe),W)},F.createElement("span",{className:`${wt}-text`},mt),F.createElement("div",{className:`${wt}-corner`,style:Re}))))};function xt(Te){let{prefixCls:ut,value:X,current:W,offset:me=0}=Te,he;return me&&(he={position:"absolute",top:`${me}00%`,left:0}),F.createElement("span",{style:he,className:y()(`${ut}-only-unit`,{current:W})},X)}function He(Te,ut,X){let W=Te,me=0;for(;(W+10)%10!==ut;)W+=X,me+=X;return me}function L(Te){const{prefixCls:ut,count:X,value:W}=Te,me=Number(W),he=Math.abs(X),[mt,lt]=F.useState(me),[pt,ft]=F.useState(he),wt=()=>{lt(me),ft(he)};F.useEffect(()=>{const yt=setTimeout(()=>{wt()},1e3);return()=>{clearTimeout(yt)}},[me]);let Gt,Mt;if(mt===me||Number.isNaN(me)||Number.isNaN(mt))Gt=[F.createElement(xt,Object.assign({},Te,{key:me,current:!0}))],Mt={transition:"none"};else{Gt=[];const yt=me+10,St=[];for(let Oe=me;Oe<=yt;Oe+=1)St.push(Oe);const fe=St.findIndex(Oe=>Oe%10===mt);Gt=St.map((Oe,Le)=>{const O=Oe%10;return F.createElement(xt,Object.assign({},Te,{key:Oe,value:O,offset:Le-fe,current:Le===fe}))});const Re=pt{const{prefixCls:X,count:W,className:me,motionClassName:he,style:mt,title:lt,show:pt,component:ft="sup",children:wt}=Te,Gt=Be(Te,["prefixCls","count","className","motionClassName","style","title","show","component","children"]),{getPrefixCls:Mt}=F.useContext(t.E_),yt=Mt("scroll-number",X),St=Object.assign(Object.assign({},Gt),{"data-show":pt,style:mt,className:y()(yt,me,he),title:lt});let fe=W;if(W&&Number(W)%1===0){const Re=String(W).split("");fe=F.createElement("bdi",null,Re.map((Oe,Le)=>F.createElement(L,{prefixCls:yt,count:Number(W),value:Oe,key:Re.length-Le})))}return mt&&mt.borderColor&&(St.style=Object.assign(Object.assign({},mt),{boxShadow:`0 0 0 1px ${mt.borderColor} inset`})),wt?(0,H.Tm)(wt,Re=>({className:y()(`${yt}-custom-component`,Re==null?void 0:Re.className,he)})):F.createElement(ft,Object.assign({},St,{ref:ut}),fe)}),ue=function(Te,ut){var X={};for(var W in Te)Object.prototype.hasOwnProperty.call(Te,W)&&ut.indexOf(W)<0&&(X[W]=Te[W]);if(Te!=null&&typeof Object.getOwnPropertySymbols=="function")for(var me=0,W=Object.getOwnPropertySymbols(Te);me{var X,W,me,he,mt;const{prefixCls:lt,scrollNumberPrefixCls:pt,children:ft,status:wt,text:Gt,color:Mt,count:yt=null,overflowCount:St=99,dot:fe=!1,size:Re="default",title:Oe,offset:Le,style:O,className:ke,rootClassName:$,classNames:b,styles:Z,showZero:ae=!1}=Te,q=ue(Te,["prefixCls","scrollNumberPrefixCls","children","status","text","color","count","overflowCount","dot","size","title","offset","style","className","rootClassName","classNames","styles","showZero"]),{getPrefixCls:Ye,direction:ot,badge:gt}=F.useContext(t.E_),Et=Ye("badge",lt),[Nt,Vt]=h(Et),Bt=yt>St?`${St}+`:yt,tt=Bt==="0"||Bt===0,st=yt===null||tt&&!ae,Ft=(wt!=null||Mt!=null)&&st,jt=fe&&!tt,Lt=jt?"":Bt,un=(0,F.useMemo)(()=>(Lt==null||Lt===""||tt&&!ae)&&!jt,[Lt,tt,ae,jt]),Ut=(0,F.useRef)(yt);un||(Ut.current=yt);const pn=Ut.current,Sn=(0,F.useRef)(Lt);un||(Sn.current=Lt);const Xt=Sn.current,an=(0,F.useRef)(jt);un||(an.current=jt);const ln=(0,F.useMemo)(()=>{if(!Le)return Object.assign(Object.assign({},gt==null?void 0:gt.style),O);const _e={marginTop:Le[1]};return ot==="rtl"?_e.left=parseInt(Le[0],10):_e.right=-parseInt(Le[0],10),Object.assign(Object.assign(Object.assign({},_e),gt==null?void 0:gt.style),O)},[ot,Le,O,gt==null?void 0:gt.style]),Pn=Oe!=null?Oe:typeof pn=="string"||typeof pn=="number"?pn:void 0,zn=un||!Gt?null:F.createElement("span",{className:`${Et}-status-text`},Gt),qn=!pn||typeof pn!="object"?void 0:(0,H.Tm)(pn,_e=>({style:Object.assign(Object.assign({},ln),_e.style)})),yr=(0,D.o2)(Mt,!1),Bn=y()(b==null?void 0:b.indicator,(X=gt==null?void 0:gt.classNames)===null||X===void 0?void 0:X.indicator,{[`${Et}-status-dot`]:Ft,[`${Et}-status-${wt}`]:!!wt,[`${Et}-color-${Mt}`]:yr}),ne={};Mt&&!yr&&(ne.color=Mt,ne.background=Mt);const qe=y()(Et,{[`${Et}-status`]:Ft,[`${Et}-not-a-wrapper`]:!ft,[`${Et}-rtl`]:ot==="rtl"},ke,$,gt==null?void 0:gt.className,(W=gt==null?void 0:gt.classNames)===null||W===void 0?void 0:W.root,b==null?void 0:b.root,Vt);if(!ft&&Ft){const _e=ln.color;return Nt(F.createElement("span",Object.assign({},q,{className:qe,style:Object.assign(Object.assign(Object.assign({},Z==null?void 0:Z.root),(me=gt==null?void 0:gt.styles)===null||me===void 0?void 0:me.root),ln)}),F.createElement("span",{className:Bn,style:Object.assign(Object.assign(Object.assign({},Z==null?void 0:Z.indicator),(he=gt==null?void 0:gt.styles)===null||he===void 0?void 0:he.indicator),ne)}),Gt&&F.createElement("span",{style:{color:_e},className:`${Et}-status-text`},Gt)))}return Nt(F.createElement("span",Object.assign({ref:ut},q,{className:qe,style:Object.assign(Object.assign({},(mt=gt==null?void 0:gt.styles)===null||mt===void 0?void 0:mt.root),Z==null?void 0:Z.root)}),ft,F.createElement(M.ZP,{visible:!un,motionName:`${Et}-zoom`,motionAppear:!1,motionDeadline:1e3},_e=>{let{className:ee,ref:Y}=_e;var Ae,we;const ct=Ye("scroll-number",pt),be=an.current,U=y()(b==null?void 0:b.indicator,(Ae=gt==null?void 0:gt.classNames)===null||Ae===void 0?void 0:Ae.indicator,{[`${Et}-dot`]:be,[`${Et}-count`]:!be,[`${Et}-count-sm`]:Re==="small",[`${Et}-multiple-words`]:!be&&Xt&&Xt.toString().length>1,[`${Et}-status-${wt}`]:!!wt,[`${Et}-color-${Mt}`]:yr});let Ie=Object.assign(Object.assign(Object.assign({},Z==null?void 0:Z.indicator),(we=gt==null?void 0:gt.styles)===null||we===void 0?void 0:we.indicator),ln);return Mt&&!yr&&(Ie=Ie||{},Ie.background=Mt),F.createElement(oe,{prefixCls:ct,show:!un,motionClassName:ee,className:U,count:Xt,title:Pn,style:Ie,key:"scrollNumber",ref:Y},qn)}),zn))},Je=F.forwardRef(ce);Je.Ribbon=xe;var it=Je},61494:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return ee}});var i=e(29140),y=e(58757),M=e(99142),F=e(25755),D=e(91169),H=e(87608),t=e.n(H),A=e(60698),R=e(28314),Ce=e(47075),se=e(18510),w=e(25092),K=e(16226),re=e(51729),f=e(60409),_=y.createContext(null),k=_,J=e(38790),$e=e(37734),z=e(57370),h="__rc_cascader_search_mark__",Xe=function(Ae,we,ct){var be=ct.label;return we.some(function(U){return String(U[be]).toLowerCase().includes(Ae.toLowerCase())})},It=function(Ae,we,ct,be){return we.map(function(U){return U[be.label]}).join(" / ")},Fe=function(Y,Ae,we,ct,be,U){var Ie=be.filter,ht=Ie===void 0?Xe:Ie,Se=be.render,de=Se===void 0?It:Se,T=be.limit,N=T===void 0?50:T,x=be.sort;return y.useMemo(function(){var te=[];if(!Y)return[];function ye(Ze,Ke){Ze.forEach(function(Ve){if(!(!x&&N>0&&te.length>=N)){var et=[].concat((0,i.Z)(Ke),[Ve]),Ht=Ve[we.children];if((!Ht||Ht.length===0||U)&&ht(Y,et,{label:we.label})){var dt;te.push((0,z.Z)((0,z.Z)({},Ve),{},(dt={},(0,$e.Z)(dt,we.label,de(Y,et,ct,we)),(0,$e.Z)(dt,h,et),(0,$e.Z)(dt,we.children,void 0),dt)))}Ht&&ye(Ve[we.children],et)}})}return ye(Ae,[]),x&&te.sort(function(Ze,Ke){return x(Ze[h],Ke[h],Y,we)}),N>0?te.slice(0,N):te},[Y,Ae,we,ct,de,U,ht,x,N])},xe="__RC_CASCADER_SPLIT__",xt="SHOW_PARENT",He="SHOW_CHILD";function L(Y){return Y.join(xe)}function Be(Y){return Y.map(L)}function $t(Y){return Y.split(xe)}function oe(Y){var Ae=Y||{},we=Ae.label,ct=Ae.value,be=Ae.children,U=ct||"value";return{label:we||"label",value:U,key:U,children:be||"children"}}function ue(Y,Ae){var we,ct;return(we=Y.isLeaf)!==null&&we!==void 0?we:!((ct=Y[Ae.children])!==null&&ct!==void 0&&ct.length)}function ce(Y){var Ae=Y.parentElement;if(Ae){var we=Y.offsetTop-Ae.offsetTop;we-Ae.scrollTop<0?Ae.scrollTo({top:we}):we+Y.offsetHeight-Ae.scrollTop>Ae.offsetHeight&&Ae.scrollTo({top:we+Y.offsetHeight-Ae.offsetHeight})}}function Je(Y,Ae){return Y.map(function(we){var ct;return(ct=we[h])===null||ct===void 0?void 0:ct.map(function(be){return be[Ae.value]})})}function it(Y,Ae,we){var ct=new Set(Y),be=Ae();return Y.filter(function(U){var Ie=be[U],ht=Ie?Ie.parent:null,Se=Ie?Ie.children:null;return Ie&&Ie.node.disabled?!0:we===He?!(Se&&Se.some(function(de){return de.key&&ct.has(de.key)})):!(ht&&!ht.node.disabled&&ct.has(ht.key))})}function Te(Y,Ae,we){for(var ct=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,be=Ae,U=[],Ie=function(){var de,T,N,x=Y[ht],te=(de=be)===null||de===void 0?void 0:de.findIndex(function(Ze){var Ke=Ze[we.value];return ct?String(Ke)===String(x):Ke===x}),ye=te!==-1?(T=be)===null||T===void 0?void 0:T[te]:null;U.push({value:(N=ye==null?void 0:ye[we.value])!==null&&N!==void 0?N:x,index:te,option:ye}),be=ye==null?void 0:ye[we.children]},ht=0;ht1){var Ct=ye.slice(0,-1);et(Ct)}else de(!1)},Cn=function(){var Ct,fn=((Ct=Ke[Ze])===null||Ct===void 0?void 0:Ct[we.children])||[],zt=fn.find(function(yn){return!yn.disabled});if(zt){var cn=[].concat((0,i.Z)(ye),[zt[we.value]]);et(cn)}};y.useImperativeHandle(Y,function(){return{onKeyDown:function(Ct){var fn=Ct.which;switch(fn){case yt.Z.UP:case yt.Z.DOWN:{var zt=0;fn===yt.Z.UP?zt=-1:fn===yt.Z.DOWN&&(zt=1),zt!==0&&Ht(zt);break}case yt.Z.LEFT:{if(Se)break;N?Cn():dt();break}case yt.Z.RIGHT:{if(Se)break;N?dt():Cn();break}case yt.Z.BACKSPACE:{Se||dt();break}case yt.Z.ENTER:{if(ye.length){var cn=Ke[Ze],yn=(cn==null?void 0:cn[h])||[];yn.length?U(yn.map(function(Fn){return Fn[we.value]}),yn[yn.length-1]):U(ye,Ke[Ze])}break}case yt.Z.ESC:de(!1),T&&Ct.stopPropagation()}},onKeyUp:function(){}}})},fe=y.forwardRef(function(Y,Ae){var we,ct,be,U,Ie=(0,se.lk)(),ht=Ie.prefixCls,Se=Ie.multiple,de=Ie.searchValue,T=Ie.toggleOpen,N=Ie.notFoundContent,x=Ie.direction,te=Ie.open,ye=y.useRef(),Ze=x==="rtl",Ke=y.useContext(k),Ve=Ke.options,et=Ke.values,Ht=Ke.halfValues,dt=Ke.fieldNames,Cn=Ke.changeOnSelect,bn=Ke.onSelect,Ct=Ke.searchOptions,fn=Ke.dropdownPrefixCls,zt=Ke.loadData,cn=Ke.expandTrigger,yn=fn||ht,Fn=y.useState([]),Yn=(0,R.Z)(Fn,2),Zn=Yn[0],Kn=Yn[1],vr=function(Un){if(!(!zt||de)){var wr=Te(Un,Ve,dt),or=wr.map(function(Sr){var ao=Sr.option;return ao}),Or=or[or.length-1];if(Or&&!ue(Or,dt)){var fo=L(Un);Kn(function(Sr){return[].concat((0,i.Z)(Sr),[fo])}),zt(or)}}};y.useEffect(function(){Zn.length&&Zn.forEach(function(Qn){var Un=$t(Qn),wr=Te(Un,Ve,dt,!0).map(function(Or){var fo=Or.option;return fo}),or=wr[wr.length-1];(!or||or[dt.children]||ue(or,dt))&&Kn(function(Or){return Or.filter(function(fo){return fo!==Qn})})})},[Ve,Zn,dt]);var An=y.useMemo(function(){return new Set(Be(et))},[et]),On=y.useMemo(function(){return new Set(Be(Ht))},[Ht]),_n=Mt(),Gn=(0,R.Z)(_n,2),er=Gn[0],Cr=Gn[1],Lr=function(Un){Cr(Un),vr(Un)},Hr=function(Un){var wr=Un.disabled,or=ue(Un,dt);return!wr&&(or||Cn||Se)},Hn=function(Un,wr){var or=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;bn(Un),!Se&&(wr||Cn&&(cn==="hover"||or))&&T(!1)},Pr=y.useMemo(function(){return de?Ct:Ve},[de,Ct,Ve]),oo=y.useMemo(function(){for(var Qn=[{options:Pr}],Un=Pr,wr=Je(Un,dt),or=function(){var ao=er[Or],Vr=Un.find(function(Do,sa){return(wr[sa]?L(wr[sa]):Do[dt.value])===ao}),Ir=Vr==null?void 0:Vr[dt.children];if(!(Ir!=null&&Ir.length))return"break";Un=Ir,Qn.push({options:Ir})},Or=0;Or":Fn,Zn=Y.loadingIcon,Kn=Y.children,vr=Y.dropdownMatchSelectWidth,An=vr===void 0?!1:vr,On=Y.showCheckedStrategy,_n=On===void 0?xt:On,Gn=(0,Ce.Z)(Y,ke),er=(0,w.ZP)(we),Cr=!!N,Lr=(0,f.Z)(Ie,{value:ht,postState:b}),Hr=(0,R.Z)(Lr,2),Hn=Hr[0],Pr=Hr[1],oo=y.useMemo(function(){return oe(U)},[JSON.stringify(U)]),Ur=y.useMemo(function(){return Ke||[]},[Ke]),co=W(Ur,oo),kr=y.useCallback(function(Tr){var ur=co();return Tr.map(function(to){var ra=ur[to].nodes;return ra.map(function(v){return v[oo.value]})})},[co,oo]),_r=(0,f.Z)("",{value:x,postState:function(ur){return ur||""}}),xo=(0,R.Z)(_r,2),br=xo[0],Qn=xo[1],Un=function(ur,to){Qn(ur),to.source!=="blur"&&te&&te(ur)},wr=mt(ye),or=(0,R.Z)(wr,2),Or=or[0],fo=or[1],Sr=Fe(br,Ur,oo,Ve||be,fo,Se),ao=me(Ur,oo),Vr=y.useMemo(function(){var Tr=ao(Hn),ur=(0,R.Z)(Tr,2),to=ur[0],ra=ur[1];if(!Cr||!Hn.length)return[to,[],ra];var v=Be(to),V=co(),G=(0,K.S)(v,!0,V),Pe=G.checkedKeys,ve=G.halfCheckedKeys;return[kr(Pe),kr(ve),ra]},[Cr,Hn,co,kr,ao]),Ir=(0,R.Z)(Vr,3),Do=Ir[0],sa=Ir[1],fa=Ir[2],Oa=y.useMemo(function(){var Tr=Be(Do),ur=it(Tr,co,_n);return[].concat((0,i.Z)(fa),(0,i.Z)(kr(ur)))},[Do,co,kr,fa,_n]),Oo=ut(Oa,Ur,oo,Cr,T),zo=(0,re.Z)(function(Tr){if(Pr(Tr),de){var ur=b(Tr),to=ur.map(function(V){return Te(V,Ur,oo).map(function(G){return G.option})}),ra=Cr?ur:ur[0],v=Cr?to:to[0];de(ra,v)}}),va=(0,re.Z)(function(Tr){if(Qn(""),!Cr)zo(Tr);else{var ur=L(Tr),to=Be(Do),ra=Be(sa),v=to.includes(ur),V=fa.some(function(Nn){return L(Nn)===ur}),G=Do,Pe=fa;if(V&&!v)Pe=fa.filter(function(Nn){return L(Nn)!==ur});else{var ve=v?to.filter(function(Nn){return Nn!==ur}):[].concat((0,i.Z)(to),[ur]),vt=co(),nt;if(v){var qt=(0,K.S)(ve,{checked:!1,halfCheckedKeys:ra},vt);nt=qt.checkedKeys}else{var Jt=(0,K.S)(ve,!0,vt);nt=Jt.checkedKeys}var hn=it(nt,co,_n);G=kr(hn)}zo([].concat((0,i.Z)(Pe),(0,i.Z)(G)))}}),vi=function(ur,to){if(to.type==="clear"){zo([]);return}var ra=to.values[0],v=ra.valueCells;va(v)},Ba=dt!==void 0?dt:Ht,pe=bn||Cn,Ge=zt||fn,Tt=function(ur){cn==null||cn(ur),yn==null||yn(ur)},en=y.useMemo(function(){return{options:Ur,fieldNames:oo,values:Do,halfValues:sa,changeOnSelect:Se,onSelect:va,checkable:N,searchOptions:Sr,dropdownPrefixCls:Ve,loadData:et,expandTrigger:Ze,expandIcon:Yn,loadingIcon:Zn,dropdownMenuColumnStyle:Ct}},[Ur,oo,Do,sa,Se,va,N,Sr,Ve,et,Ze,Yn,Zn,Ct]),kn=!(br?Sr:Ur).length,Nr=br&&fo.matchInputWidth||kn?{}:{minWidth:"auto"};return y.createElement(k.Provider,{value:en},y.createElement(se.Ac,(0,A.Z)({},Gn,{ref:Ae,id:er,prefixCls:be,dropdownMatchSelectWidth:An,dropdownStyle:Nr,displayValues:Oo,onDisplayValuesChange:vi,mode:Cr?"multiple":void 0,searchValue:br,onSearch:Un,showSearch:Or,OptionList:Re,emptyOptions:kn,open:Ba,dropdownClassName:pe,placement:Ge,onDropdownVisibleChange:Tt,getRawInputElement:function(){return Kn}})))});Z.SHOW_PARENT=xt,Z.SHOW_CHILD=He;var ae=Z,q=ae,Ye=e(98186),ot=e(90881),gt=e(15018),Et=e(41496),Nt=e(61836),Vt=e(10401),Bt=e(92428),tt=e(58785),st=e(81496),Ft=e(92493),jt=e(25639),Lt=e(61698),un=e(29701),Ut=e(43528),pn=e(7316),Sn=e(78330),Xt=e(64493),an=e(52628);const ln=Y=>{const{prefixCls:Ae,componentCls:we,antCls:ct}=Y,be=`${we}-menu-item`,U=` + &${be}-expand ${be}-expand-icon, + ${be}-loading-icon + `,Ie=Math.round((Y.controlHeight-Y.fontSize*Y.lineHeight)/2);return[{[we]:{width:Y.controlWidth}},{[`${we}-dropdown`]:[(0,pn.C2)(`${Ae}-checkbox`,Y),{[`&${ct}-select-dropdown`]:{padding:0}},{[we]:{"&-checkbox":{top:0,marginInlineEnd:Y.paddingXS},"&-menus":{display:"flex",flexWrap:"nowrap",alignItems:"flex-start",[`&${we}-menu-empty`]:{[`${we}-menu`]:{width:"100%",height:"auto",[be]:{color:Y.colorTextDisabled}}}},"&-menu":{flexGrow:1,minWidth:Y.controlItemWidth,height:Y.dropdownHeight,margin:0,padding:Y.paddingXXS,overflow:"auto",verticalAlign:"top",listStyle:"none","-ms-overflow-style":"-ms-autohiding-scrollbar","&:not(:last-child)":{borderInlineEnd:`${Y.lineWidth}px ${Y.lineType} ${Y.colorSplit}`},"&-item":Object.assign(Object.assign({},Sn.vS),{display:"flex",flexWrap:"nowrap",alignItems:"center",padding:`${Ie}px ${Y.paddingSM}px`,lineHeight:Y.lineHeight,cursor:"pointer",transition:`all ${Y.motionDurationMid}`,borderRadius:Y.borderRadiusSM,"&:hover":{background:Y.controlItemBgHover},"&-disabled":{color:Y.colorTextDisabled,cursor:"not-allowed","&:hover":{background:"transparent"},[U]:{color:Y.colorTextDisabled}},[`&-active:not(${be}-disabled)`]:{["&, &:hover"]:{fontWeight:Y.fontWeightStrong,backgroundColor:Y.controlItemBgActive}},"&-content":{flex:"auto"},[U]:{marginInlineStart:Y.paddingXXS,color:Y.colorTextDescription,fontSize:Y.fontSizeIcon},"&-keyword":{color:Y.colorHighlight}})}}}]},{[`${we}-dropdown-rtl`]:{direction:"rtl"}},(0,Xt.c)(Y)]};var Pn=(0,an.Z)("Cascader",Y=>[ln(Y)],{controlWidth:184,controlItemWidth:111,dropdownHeight:180}),zn=function(Y,Ae){var we={};for(var ct in Y)Object.prototype.hasOwnProperty.call(Y,ct)&&Ae.indexOf(ct)<0&&(we[ct]=Y[ct]);if(Y!=null&&typeof Object.getOwnPropertySymbols=="function")for(var be=0,ct=Object.getOwnPropertySymbols(Y);beSe===0?[ht]:[].concat((0,i.Z)(Ie),[Ae,ht]),[]),be=[];let U=0;return ct.forEach((Ie,ht)=>{const Se=U+Ie.length;let de=Y.slice(U,Se);U=Se,ht%2===1&&(de=y.createElement("span",{className:`${we}-menu-item-keyword`,key:`separator-${ht}`},de)),be.push(de)}),be}const ne=(Y,Ae,we,ct)=>{const be=[],U=Y.toLowerCase();return Ae.forEach((Ie,ht)=>{ht!==0&&be.push(" / ");let Se=Ie[ct.label];const de=typeof Se;(de==="string"||de==="number")&&(Se=Bn(String(Se),U,we)),be.push(Se)}),be},qe=y.forwardRef((Y,Ae)=>{const{prefixCls:we,size:ct,disabled:be,className:U,rootClassName:Ie,multiple:ht,bordered:Se=!0,transitionName:de,choiceTransitionName:T="",popupClassName:N,dropdownClassName:x,expandIcon:te,placement:ye,showSearch:Ze,allowClear:Ke=!0,notFoundContent:Ve,direction:et,getPopupContainer:Ht,status:dt,showArrow:Cn,builtinPlacements:bn,style:Ct}=Y,fn=zn(Y,["prefixCls","size","disabled","className","rootClassName","multiple","bordered","transitionName","choiceTransitionName","popupClassName","dropdownClassName","expandIcon","placement","showSearch","allowClear","notFoundContent","direction","getPopupContainer","status","showArrow","builtinPlacements","style"]),zt=(0,Ye.Z)(fn,["suffixIcon"]),{getPopupContainer:cn,getPrefixCls:yn,renderEmpty:Fn,direction:Yn,popupOverflow:Zn,cascader:Kn}=y.useContext(Nt.E_),vr=et||Yn,An=vr==="rtl",{status:On,hasFeedback:_n,isFormItemInput:Gn,feedbackIcon:er}=y.useContext(st.aM),Cr=(0,Et.F)(On,dt),Lr=Ve||(Fn==null?void 0:Fn("Cascader"))||y.createElement(Vt.Z,{componentName:"Cascader"}),Hr=yn(),Hn=yn("select",we),Pr=yn("cascader",we),[oo,Ur]=(0,Ft.Z)(Hn),[co]=Pn(Pr),{compactSize:kr,compactItemClassnames:_r}=(0,Ut.ri)(Hn,et),xo=t()(N||x,`${Pr}-dropdown`,{[`${Pr}-dropdown-rtl`]:vr==="rtl"},Ie,Ur),br=y.useMemo(()=>{if(!Ze)return Ze;let Oo={render:ne};return typeof Ze=="object"&&(Oo=Object.assign(Object.assign({},Oo),Ze)),Oo},[Ze]),Qn=(0,tt.Z)(Oo=>{var zo;return(zo=ct!=null?ct:kr)!==null&&zo!==void 0?zo:Oo}),Un=y.useContext(Bt.Z),wr=be!=null?be:Un;let or=te;te||(or=An?y.createElement(M.Z,null):y.createElement(D.Z,null));const Or=y.createElement("span",{className:`${Hn}-menu-item-loading-icon`},y.createElement(F.Z,{spin:!0})),fo=y.useMemo(()=>ht?y.createElement("span",{className:`${Pr}-checkbox-inner`}):!1,[ht]),Sr=(0,Lt.Z)(Y.suffixIcon,Cn),{suffixIcon:ao,removeIcon:Vr,clearIcon:Ir}=(0,un.Z)(Object.assign(Object.assign({},Y),{hasFeedback:_n,feedbackIcon:er,showSuffixIcon:Sr,multiple:ht,prefixCls:Hn,componentName:"Cascader"})),Do=y.useMemo(()=>ye!==void 0?ye:An?"bottomRight":"bottomLeft",[ye,An]),sa=(0,jt.Z)(bn,Zn),fa=Ke===!0?{clearIcon:Ir}:Ke,Oa=y.createElement(q,Object.assign({prefixCls:Hn,className:t()(!we&&Pr,{[`${Hn}-lg`]:Qn==="large",[`${Hn}-sm`]:Qn==="small",[`${Hn}-rtl`]:An,[`${Hn}-borderless`]:!Se,[`${Hn}-in-form-item`]:Gn},(0,Et.Z)(Hn,Cr,_n),_r,Kn==null?void 0:Kn.className,U,Ie,Ur),disabled:wr,style:Object.assign(Object.assign({},Kn==null?void 0:Kn.style),Ct)},zt,{builtinPlacements:sa,direction:vr,placement:Do,notFoundContent:Lr,allowClear:fa,showSearch:br,expandIcon:or,suffixIcon:ao,removeIcon:Vr,loadingIcon:Or,checkable:fo,dropdownClassName:xo,dropdownPrefixCls:we||Pr,choiceTransitionName:(0,ot.m)(Hr,"",T),transitionName:(0,ot.m)(Hr,"slide-up",de),getPopupContainer:Ht||cn,ref:Ae}));return co(oo(Oa))}),_e=(0,gt.Z)(qe);qe.SHOW_PARENT=yr,qe.SHOW_CHILD=qn,qe._InternalPanelDoNotUseOrYouWillBeFired=_e;var ee=qe},31188:function(Dt,Ne,e){"use strict";var i=e(91334);Ne.Z=i.Z},96905:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return Re}});var i=e(19688),y=e(15018),M=e(60698),F=e(58757),D={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z"}}]},name:"calendar",theme:"outlined"},H=D,t=e(17202),A=function(Le,O){return F.createElement(t.Z,(0,M.Z)({},Le,{ref:O,icon:H}))},R=F.forwardRef(A),Ce={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:"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"}}]},name:"clock-circle",theme:"outlined"},se=Ce,w=function(Le,O){return F.createElement(t.Z,(0,M.Z)({},Le,{ref:O,icon:se}))},K=F.forwardRef(w),re=e(79999),f={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z"}}]},name:"swap-right",theme:"outlined"},_=f,k=function(Le,O){return F.createElement(t.Z,(0,M.Z)({},Le,{ref:O,icon:_}))},J=F.forwardRef(k),$e=e(87608),z=e.n($e),h=e(72108),Xe=e(41496),It=e(61836),Fe=e(92428),xe=e(58785),xt=e(81496),He=e(29487),L=e(43528),Be=e(7056),$t=e(8455);function oe(Oe,Le,O){return O!==void 0?O:Le==="year"&&Oe.lang.yearPlaceholder?Oe.lang.yearPlaceholder:Le==="quarter"&&Oe.lang.quarterPlaceholder?Oe.lang.quarterPlaceholder:Le==="month"&&Oe.lang.monthPlaceholder?Oe.lang.monthPlaceholder:Le==="week"&&Oe.lang.weekPlaceholder?Oe.lang.weekPlaceholder:Le==="time"&&Oe.timePickerLocale.placeholder?Oe.timePickerLocale.placeholder:Oe.lang.placeholder}function ue(Oe,Le,O){return O!==void 0?O:Le==="year"&&Oe.lang.yearPlaceholder?Oe.lang.rangeYearPlaceholder:Le==="quarter"&&Oe.lang.quarterPlaceholder?Oe.lang.rangeQuarterPlaceholder:Le==="month"&&Oe.lang.monthPlaceholder?Oe.lang.rangeMonthPlaceholder:Le==="week"&&Oe.lang.weekPlaceholder?Oe.lang.rangeWeekPlaceholder:Le==="time"&&Oe.timePickerLocale.placeholder?Oe.timePickerLocale.rangePlaceholder:Oe.lang.rangePlaceholder}function ce(Oe,Le){const O={adjustX:1,adjustY:1};switch(Le){case"bottomLeft":return{points:["tl","bl"],offset:[0,4],overflow:O};case"bottomRight":return{points:["tr","br"],offset:[0,4],overflow:O};case"topLeft":return{points:["bl","tl"],offset:[0,-4],overflow:O};case"topRight":return{points:["br","tr"],offset:[0,-4],overflow:O};default:return{points:Oe==="rtl"?["tr","br"]:["tl","bl"],offset:[0,4],overflow:O}}}function Je(Oe){return Oe?Array.isArray(Oe)?Oe:[Oe]:[]}function it(Oe){const{format:Le,picker:O,showHour:ke,showMinute:$,showSecond:b,use12Hours:Z}=Oe,ae=Je(Le)[0],q=Object.assign({},Oe);return Le&&Array.isArray(Le)&&(q.format=ae),ae&&typeof ae=="string"&&(!ae.includes("s")&&b===void 0&&(q.showSecond=!1),!ae.includes("m")&&$===void 0&&(q.showMinute=!1),!ae.includes("H")&&!ae.includes("h")&&!ae.includes("K")&&!ae.includes("k")&&ke===void 0&&(q.showHour=!1),(ae.includes("a")||ae.includes("A"))&&Z===void 0&&(q.use12Hours=!0)),O==="time"?q:(typeof ae=="function"&&delete q.format,{showTime:q})}function Te(Oe,Le,O){if(Oe===!1)return!1;const ke={clearIcon:Le!=null?Le:O};return typeof Oe=="object"?Object.assign(Object.assign({},ke),Oe):ke}var ut=e(12562);function X(Oe){return F.createElement(ut.ZP,Object.assign({size:"small",type:"primary"},Oe))}var me={button:X},he=function(Oe,Le){var O={};for(var ke in Oe)Object.prototype.hasOwnProperty.call(Oe,ke)&&Le.indexOf(ke)<0&&(O[ke]=Oe[ke]);if(Oe!=null&&typeof Object.getOwnPropertySymbols=="function")for(var $=0,ke=Object.getOwnPropertySymbols(Oe);${const{prefixCls:$,getPopupContainer:b,className:Z,placement:ae,size:q,disabled:Ye,bordered:ot=!0,placeholder:gt,popupClassName:Et,dropdownClassName:Nt,status:Vt,clearIcon:Bt,allowClear:tt}=O,st=he(O,["prefixCls","getPopupContainer","className","placement","size","disabled","bordered","placeholder","popupClassName","dropdownClassName","status","clearIcon","allowClear"]),Ft=F.useRef(null),{getPrefixCls:jt,direction:Lt,getPopupContainer:un}=(0,F.useContext)(It.E_),Ut=jt("picker",$),{compactSize:pn,compactItemClassnames:Sn}=(0,L.ri)(Ut,Lt),{format:Xt,showTime:an,picker:ln}=O,Pn=jt(),[zn,qn]=(0,$t.ZP)(Ut),yr=Object.assign(Object.assign({},an?it(Object.assign({format:Xt,picker:ln},an)):{}),ln==="time"?it(Object.assign(Object.assign({format:Xt},O),{picker:ln})):{}),Bn=(0,xe.Z)(U=>{var Ie;return(Ie=q!=null?q:pn)!==null&&Ie!==void 0?Ie:U}),ne=F.useContext(Fe.Z),qe=Ye!=null?Ye:ne,_e=(0,F.useContext)(xt.aM),{hasFeedback:ee,status:Y,feedbackIcon:Ae}=_e,we=F.createElement(F.Fragment,null,ln==="time"?F.createElement(K,null):F.createElement(R,null),ee&&Ae);(0,F.useImperativeHandle)(ke,()=>({focus:()=>{var U;return(U=Ft.current)===null||U===void 0?void 0:U.focus()},blur:()=>{var U;return(U=Ft.current)===null||U===void 0?void 0:U.blur()}}));const[ct]=(0,He.Z)("Calendar",Be.Z),be=Object.assign(Object.assign({},ct),O.locale);return zn(F.createElement(h.Sq,Object.assign({separator:F.createElement("span",{"aria-label":"to",className:`${Ut}-separator`},F.createElement(J,null)),disabled:qe,ref:Ft,dropdownAlign:ce(Lt,ae),placeholder:ue(be,ln,gt),suffixIcon:we,prevIcon:F.createElement("span",{className:`${Ut}-prev-icon`}),nextIcon:F.createElement("span",{className:`${Ut}-next-icon`}),superPrevIcon:F.createElement("span",{className:`${Ut}-super-prev-icon`}),superNextIcon:F.createElement("span",{className:`${Ut}-super-next-icon`}),transitionName:`${Pn}-slide-up`},st,yr,{className:z()({[`${Ut}-${Bn}`]:Bn,[`${Ut}-borderless`]:!ot},(0,Xe.Z)(Ut,(0,Xe.F)(Y,Vt),ee),qn,Sn,Z),locale:be.lang,prefixCls:Ut,getPopupContainer:b||un,generateConfig:Oe,components:me,direction:Lt,dropdownClassName:z()(qn,Et||Nt),allowClear:Te(tt,Bt,F.createElement(re.Z,null))})))})}var lt=function(Oe,Le){var O={};for(var ke in Oe)Object.prototype.hasOwnProperty.call(Oe,ke)&&Le.indexOf(ke)<0&&(O[ke]=Oe[ke]);if(Oe!=null&&typeof Object.getOwnPropertySymbols=="function")for(var $=0,ke=Object.getOwnPropertySymbols(Oe);${const{prefixCls:Vt,getPopupContainer:Bt,style:tt,className:st,rootClassName:Ft,size:jt,bordered:Lt=!0,placement:un,placeholder:Ut,popupClassName:pn,dropdownClassName:Sn,disabled:Xt,status:an,clearIcon:ln,allowClear:Pn}=Et,zn=lt(Et,["prefixCls","getPopupContainer","style","className","rootClassName","size","bordered","placement","placeholder","popupClassName","dropdownClassName","disabled","status","clearIcon","allowClear"]),{getPrefixCls:qn,direction:yr,getPopupContainer:Bn,[ot]:ne}=(0,F.useContext)(It.E_),qe=qn("picker",Vt),{compactSize:_e,compactItemClassnames:ee}=(0,L.ri)(qe,yr),Y=F.useRef(null),{format:Ae,showTime:we}=Et,[ct,be]=(0,$t.ZP)(qe);(0,F.useImperativeHandle)(Nt,()=>({focus:()=>{var Ht;return(Ht=Y.current)===null||Ht===void 0?void 0:Ht.focus()},blur:()=>{var Ht;return(Ht=Y.current)===null||Ht===void 0?void 0:Ht.blur()}}));const U={showToday:!0};let Ie={};q&&(Ie.picker=q);const ht=q||Et.picker;Ie=Object.assign(Object.assign(Object.assign({},Ie),we?it(Object.assign({format:Ae,picker:ht},we)):{}),ht==="time"?it(Object.assign(Object.assign({format:Ae},Et),{picker:ht})):{});const Se=qn(),de=(0,xe.Z)(Ht=>{var dt;return(dt=jt!=null?jt:_e)!==null&&dt!==void 0?dt:Ht}),T=F.useContext(Fe.Z),N=Xt!=null?Xt:T,x=(0,F.useContext)(xt.aM),{hasFeedback:te,status:ye,feedbackIcon:Ze}=x,Ke=F.createElement(F.Fragment,null,ht==="time"?F.createElement(K,null):F.createElement(R,null),te&&Ze),[Ve]=(0,He.Z)("DatePicker",Be.Z),et=Object.assign(Object.assign({},Ve),Et.locale);return ct(F.createElement(h.ZP,Object.assign({ref:Y,placeholder:oe(et,ht,Ut),suffixIcon:Ke,dropdownAlign:ce(yr,un),prevIcon:F.createElement("span",{className:`${qe}-prev-icon`}),nextIcon:F.createElement("span",{className:`${qe}-next-icon`}),superPrevIcon:F.createElement("span",{className:`${qe}-super-prev-icon`}),superNextIcon:F.createElement("span",{className:`${qe}-super-next-icon`}),transitionName:`${Se}-slide-up`},U,zn,Ie,{locale:et.lang,className:z()({[`${qe}-${de}`]:de,[`${qe}-borderless`]:!Lt},(0,Xe.Z)(qe,(0,Xe.F)(ye,an),te),be,ee,ne==null?void 0:ne.className,st,Ft),style:Object.assign(Object.assign({},ne==null?void 0:ne.style),tt),prefixCls:qe,getPopupContainer:Bt||Bn,generateConfig:Oe,components:me,direction:yr,disabled:N,dropdownClassName:z()(be,Ft,pn||Sn),allowClear:Te(Pn,ln,F.createElement(re.Z,null))})))});return Ye&&(gt.displayName=Ye),gt}const O=Le(),ke=Le("week","WeekPicker"),$=Le("month","MonthPicker"),b=Le("year","YearPicker"),Z=Le("time","TimePicker"),ae=Le("quarter","QuarterPicker");return{DatePicker:O,WeekPicker:ke,MonthPicker:$,YearPicker:b,TimePicker:Z,QuarterPicker:ae}}const ft=null;function wt(Oe){const{DatePicker:Le,WeekPicker:O,MonthPicker:ke,YearPicker:$,TimePicker:b,QuarterPicker:Z}=pt(Oe),ae=mt(Oe),q=Le;return q.WeekPicker=O,q.MonthPicker=ke,q.YearPicker=$,q.RangePicker=ae,q.TimePicker=b,q.QuarterPicker=Z,q}var Gt=wt;const Mt=Gt(i.Z);function yt(Oe){const Le=ce(Oe.direction,Oe.placement);return Le.overflow.adjustY=!1,Le.overflow.adjustX=!1,Object.assign(Object.assign({},Oe),{dropdownAlign:Le})}const St=(0,y.Z)(Mt,"picker",null,yt);Mt._InternalPanelDoNotUseOrYouWillBeFired=St;const fe=(0,y.Z)(Mt.RangePicker,"picker",null,yt);Mt._InternalRangePanelDoNotUseOrYouWillBeFired=fe,Mt.generatePicker=Gt;var Re=Mt},8455:function(Dt,Ne,e){"use strict";e.d(Ne,{kX:function(){return w},vA:function(){return f}});var i=e(66671),y=e(46902),M=e(78330),F=e(72944),D=e(64493),H=e(1016),t=e(1546),A=e(22151),R=e(52628);const Ce=(_,k,J,$e)=>{const{lineHeight:z}=_,h=Math.floor(J*z)+2,Xe=Math.max((k-h)/2,0),It=Math.max(k-h-Xe,0);return{padding:`${Xe}px ${$e}px ${It}px`}},se=_=>{const{componentCls:k,pickerCellCls:J,pickerCellInnerCls:$e,pickerPanelCellHeight:z,motionDurationSlow:h,borderRadiusSM:Xe,motionDurationMid:It,controlItemBgHover:Fe,lineWidth:xe,lineType:xt,colorPrimary:He,controlItemBgActive:L,colorTextLightSolid:Be,controlHeightSM:$t,pickerDateHoverRangeBorderColor:oe,pickerCellBorderGap:ue,pickerBasicCellHoverWithRangeColor:ce,pickerPanelCellWidth:Je,colorTextDisabled:it,colorBgContainerDisabled:Te}=_;return{"&::before":{position:"absolute",top:"50%",insetInlineStart:0,insetInlineEnd:0,zIndex:1,height:z,transform:"translateY(-50%)",transition:`all ${h}`,content:'""'},[$e]:{position:"relative",zIndex:2,display:"inline-block",minWidth:z,height:z,lineHeight:`${z}px`,borderRadius:Xe,transition:`background ${It}, border ${It}`},["&-range-hover-start, &-range-hover-end"]:{[$e]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:hover:not(${J}-in-view), + &:hover:not(${J}-selected):not(${J}-range-start):not(${J}-range-end):not(${J}-range-hover-start):not(${J}-range-hover-end)`]:{[$e]:{background:Fe}},[`&-in-view${J}-today ${$e}`]:{"&::before":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:1,border:`${xe}px ${xt} ${He}`,borderRadius:Xe,content:'""'}},[`&-in-view${J}-in-range`]:{position:"relative","&::before":{background:L}},[`&-in-view${J}-selected ${$e}, + &-in-view${J}-range-start ${$e}, + &-in-view${J}-range-end ${$e}`]:{color:Be,background:He},[`&-in-view${J}-range-start:not(${J}-range-start-single), + &-in-view${J}-range-end:not(${J}-range-end-single)`]:{"&::before":{background:L}},[`&-in-view${J}-range-start::before`]:{insetInlineStart:"50%"},[`&-in-view${J}-range-end::before`]:{insetInlineEnd:"50%"},[`&-in-view${J}-range-hover-start:not(${J}-in-range):not(${J}-range-start):not(${J}-range-end), + &-in-view${J}-range-hover-end:not(${J}-in-range):not(${J}-range-start):not(${J}-range-end), + &-in-view${J}-range-hover-start${J}-range-start-single, + &-in-view${J}-range-hover-start${J}-range-start${J}-range-end${J}-range-end-near-hover, + &-in-view${J}-range-hover-end${J}-range-start${J}-range-end${J}-range-start-near-hover, + &-in-view${J}-range-hover-end${J}-range-end-single, + &-in-view${J}-range-hover:not(${J}-in-range)`]:{"&::after":{position:"absolute",top:"50%",zIndex:0,height:$t,borderTop:`${xe}px dashed ${oe}`,borderBottom:`${xe}px dashed ${oe}`,transform:"translateY(-50%)",transition:`all ${h}`,content:'""'}},[`&-range-hover-start::after, + &-range-hover-end::after, + &-range-hover::after`]:{insetInlineEnd:0,insetInlineStart:ue},[`&-in-view${J}-in-range${J}-range-hover::before, + &-in-view${J}-in-range${J}-range-hover-start::before, + &-in-view${J}-in-range${J}-range-hover-end::before, + &-in-view${J}-range-start${J}-range-hover::before, + &-in-view${J}-range-end${J}-range-hover::before, + &-in-view${J}-range-start:not(${J}-range-start-single)${J}-range-hover-start::before, + &-in-view${J}-range-end:not(${J}-range-end-single)${J}-range-hover-end::before, + ${k}-panel + > :not(${k}-date-panel) + &-in-view${J}-in-range${J}-range-hover-start::before, + ${k}-panel + > :not(${k}-date-panel) + &-in-view${J}-in-range${J}-range-hover-end::before`]:{background:ce},[`&-in-view${J}-range-start:not(${J}-range-start-single):not(${J}-range-end) ${$e}`]:{borderStartStartRadius:Xe,borderEndStartRadius:Xe,borderStartEndRadius:0,borderEndEndRadius:0},[`&-in-view${J}-range-end:not(${J}-range-end-single):not(${J}-range-start) ${$e}`]:{borderStartStartRadius:0,borderEndStartRadius:0,borderStartEndRadius:Xe,borderEndEndRadius:Xe},[`&-range-hover${J}-range-end::after`]:{insetInlineStart:"50%"},[`tr > &-in-view${J}-range-hover:first-child::after, + tr > &-in-view${J}-range-hover-end:first-child::after, + &-in-view${J}-start${J}-range-hover-edge-start${J}-range-hover-edge-start-near-range::after, + &-in-view${J}-range-hover-edge-start:not(${J}-range-hover-edge-start-near-range)::after, + &-in-view${J}-range-hover-start::after`]:{insetInlineStart:(Je-z)/2,borderInlineStart:`${xe}px dashed ${oe}`,borderStartStartRadius:Xe,borderEndStartRadius:Xe},[`tr > &-in-view${J}-range-hover:last-child::after, + tr > &-in-view${J}-range-hover-start:last-child::after, + &-in-view${J}-end${J}-range-hover-edge-end${J}-range-hover-edge-end-near-range::after, + &-in-view${J}-range-hover-edge-end:not(${J}-range-hover-edge-end-near-range)::after, + &-in-view${J}-range-hover-end::after`]:{insetInlineEnd:(Je-z)/2,borderInlineEnd:`${xe}px dashed ${oe}`,borderStartEndRadius:Xe,borderEndEndRadius:Xe},"&-disabled":{color:it,pointerEvents:"none",[$e]:{background:"transparent"},"&::before":{background:Te}},[`&-disabled${J}-today ${$e}::before`]:{borderColor:it}}},w=_=>{const{componentCls:k,pickerCellCls:J,pickerCellInnerCls:$e,pickerYearMonthCellWidth:z,pickerControlIconSize:h,pickerPanelCellWidth:Xe,paddingSM:It,paddingXS:Fe,paddingXXS:xe,colorBgContainer:xt,lineWidth:He,lineType:L,borderRadiusLG:Be,colorPrimary:$t,colorTextHeading:oe,colorSplit:ue,pickerControlIconBorderWidth:ce,colorIcon:Je,pickerTextHeight:it,motionDurationMid:Te,colorIconHover:ut,fontWeightStrong:X,pickerPanelCellHeight:W,pickerCellPaddingVertical:me,colorTextDisabled:he,colorText:mt,fontSize:lt,pickerBasicCellHoverWithRangeColor:pt,motionDurationSlow:ft,pickerPanelWithoutTimeCellHeight:wt,pickerQuarterPanelContentHeight:Gt,colorLink:Mt,colorLinkActive:yt,colorLinkHover:St,pickerDateHoverRangeBorderColor:fe,borderRadiusSM:Re,colorTextLightSolid:Oe,controlItemBgHover:Le,pickerTimePanelColumnHeight:O,pickerTimePanelColumnWidth:ke,pickerTimePanelCellHeight:$,controlItemBgActive:b,marginXXS:Z,pickerDatePanelPaddingHorizontal:ae}=_,q=Xe*7+ae*2,Ye=(q-Fe*2)/3-z-It,ot=(q-Fe*2)/4-z;return{[k]:{"&-panel":{display:"inline-flex",flexDirection:"column",textAlign:"center",background:xt,border:`${He}px ${L} ${ue}`,borderRadius:Be,outline:"none","&-focused":{borderColor:$t},"&-rtl":{direction:"rtl",[`${k}-prev-icon, + ${k}-super-prev-icon`]:{transform:"rotate(45deg)"},[`${k}-next-icon, + ${k}-super-next-icon`]:{transform:"rotate(-135deg)"}}},[`&-decade-panel, + &-year-panel, + &-quarter-panel, + &-month-panel, + &-week-panel, + &-date-panel, + &-time-panel`]:{display:"flex",flexDirection:"column",width:q},"&-header":{display:"flex",padding:`0 ${Fe}px`,color:oe,borderBottom:`${He}px ${L} ${ue}`,"> *":{flex:"none"},button:{padding:0,color:Je,lineHeight:`${it}px`,background:"transparent",border:0,cursor:"pointer",transition:`color ${Te}`,fontSize:"inherit"},"> button":{minWidth:"1.6em",fontSize:lt,"&:hover":{color:ut}},"&-view":{flex:"auto",fontWeight:X,lineHeight:`${it}px`,button:{color:"inherit",fontWeight:"inherit",verticalAlign:"top","&:not(:first-child)":{marginInlineStart:Fe},"&:hover":{color:$t}}}},[`&-prev-icon, + &-next-icon, + &-super-prev-icon, + &-super-next-icon`]:{position:"relative",display:"inline-block",width:h,height:h,"&::before":{position:"absolute",top:0,insetInlineStart:0,display:"inline-block",width:h,height:h,border:"0 solid currentcolor",borderBlockStartWidth:ce,borderBlockEndWidth:0,borderInlineStartWidth:ce,borderInlineEndWidth:0,content:'""'}},[`&-super-prev-icon, + &-super-next-icon`]:{"&::after":{position:"absolute",top:Math.ceil(h/2),insetInlineStart:Math.ceil(h/2),display:"inline-block",width:h,height:h,border:"0 solid currentcolor",borderBlockStartWidth:ce,borderBlockEndWidth:0,borderInlineStartWidth:ce,borderInlineEndWidth:0,content:'""'}},[`&-prev-icon, + &-super-prev-icon`]:{transform:"rotate(-45deg)"},[`&-next-icon, + &-super-next-icon`]:{transform:"rotate(135deg)"},"&-content":{width:"100%",tableLayout:"fixed",borderCollapse:"collapse","th, td":{position:"relative",minWidth:W,fontWeight:"normal"},th:{height:W+me*2,color:mt,verticalAlign:"middle"}},"&-cell":Object.assign({padding:`${me}px 0`,color:he,cursor:"pointer","&-in-view":{color:mt}},se(_)),[`&-date-panel ${k}-cell-in-view${k}-cell-in-range${k}-cell-range-hover-start ${$e}, + &-date-panel ${k}-cell-in-view${k}-cell-in-range${k}-cell-range-hover-end ${$e}`]:{"&::after":{position:"absolute",top:0,bottom:0,zIndex:-1,background:pt,transition:`all ${ft}`,content:'""'}},[`&-date-panel + ${k}-cell-in-view${k}-cell-in-range${k}-cell-range-hover-start + ${$e}::after`]:{insetInlineEnd:-(Xe-W)/2,insetInlineStart:0},[`&-date-panel ${k}-cell-in-view${k}-cell-in-range${k}-cell-range-hover-end ${$e}::after`]:{insetInlineEnd:0,insetInlineStart:-(Xe-W)/2},[`&-range-hover${k}-range-start::after`]:{insetInlineEnd:"50%"},[`&-decade-panel, + &-year-panel, + &-quarter-panel, + &-month-panel`]:{[`${k}-content`]:{height:wt*4},[$e]:{padding:`0 ${Fe}px`}},"&-quarter-panel":{[`${k}-content`]:{height:Gt},[`${k}-cell-range-hover-start::after`]:{insetInlineStart:ot,borderInlineStart:`${He}px dashed ${fe}`,[`${k}-panel-rtl &`]:{insetInlineEnd:ot,borderInlineEnd:`${He}px dashed ${fe}`}},[`${k}-cell-range-hover-end::after`]:{insetInlineEnd:ot,borderInlineEnd:`${He}px dashed ${fe}`,[`${k}-panel-rtl &`]:{insetInlineStart:ot,borderInlineStart:`${He}px dashed ${fe}`}}},[`&-panel ${k}-footer`]:{borderTop:`${He}px ${L} ${ue}`},"&-footer":{width:"min-content",minWidth:"100%",lineHeight:`${it-2*He}px`,textAlign:"center","&-extra":{padding:`0 ${It}`,lineHeight:`${it-2*He}px`,textAlign:"start","&:not(:last-child)":{borderBottom:`${He}px ${L} ${ue}`}}},"&-now":{textAlign:"start"},"&-today-btn":{color:Mt,"&:hover":{color:St},"&:active":{color:yt},[`&${k}-today-btn-disabled`]:{color:he,cursor:"not-allowed"}},"&-decade-panel":{[$e]:{padding:`0 ${Fe/2}px`},[`${k}-cell::before`]:{display:"none"}},[`&-year-panel, + &-quarter-panel, + &-month-panel`]:{[`${k}-body`]:{padding:`0 ${Fe}px`},[$e]:{width:z},[`${k}-cell-range-hover-start::after`]:{borderStartStartRadius:Re,borderEndStartRadius:Re,borderStartEndRadius:0,borderEndEndRadius:0,[`${k}-panel-rtl &`]:{borderStartStartRadius:0,borderEndStartRadius:0,borderStartEndRadius:Re,borderEndEndRadius:Re}},[`${k}-cell-range-hover-end::after`]:{borderStartStartRadius:0,borderEndStartRadius:0,borderStartEndRadius:Re,borderEndEndRadius:Re,[`${k}-panel-rtl &`]:{borderStartStartRadius:Re,borderEndStartRadius:Re,borderStartEndRadius:0,borderEndEndRadius:0}}},[`&-year-panel, + &-month-panel`]:{[`${k}-cell-range-hover-start::after`]:{insetInlineStart:Ye,borderInlineStart:`${He}px dashed ${fe}`,[`${k}-panel-rtl &`]:{insetInlineEnd:Ye,borderInlineEnd:`${He}px dashed ${fe}`}},[`${k}-cell-range-hover-end::after`]:{insetInlineEnd:Ye,borderInlineEnd:`${He}px dashed ${fe}`,[`${k}-panel-rtl &`]:{insetInlineStart:Ye,borderInlineStart:`${He}px dashed ${fe}`}}},"&-week-panel":{[`${k}-body`]:{padding:`${Fe}px ${It}px`},[`${k}-cell`]:{[`&:hover ${$e}, + &-selected ${$e}, + ${$e}`]:{background:"transparent !important"}},"&-row":{td:{"&:before":{transition:`background ${Te}`},"&:first-child:before":{borderStartStartRadius:Re,borderEndStartRadius:Re},"&:last-child:before":{borderStartEndRadius:Re,borderEndEndRadius:Re}},["&:hover td"]:{"&:before":{background:Le}},[`&-range-start td, + &-range-end td, + &-selected td`]:{[`&${J}`]:{"&:before":{background:$t},[`&${k}-cell-week`]:{color:new i.C(Oe).setAlpha(.5).toHexString()},[$e]:{color:Oe}}},["&-range-hover td:before"]:{background:b}}},"&-date-panel":{[`${k}-body`]:{padding:`${Fe}px ${ae}px`},[`${k}-content`]:{width:Xe*7,th:{width:Xe,boxSizing:"border-box",padding:0}}},"&-datetime-panel":{display:"flex",[`${k}-time-panel`]:{borderInlineStart:`${He}px ${L} ${ue}`},[`${k}-date-panel, + ${k}-time-panel`]:{transition:`opacity ${ft}`},"&-active":{[`${k}-date-panel, + ${k}-time-panel`]:{opacity:.3,"&-active":{opacity:1}}}},"&-time-panel":{width:"auto",minWidth:"auto",direction:"ltr",[`${k}-content`]:{display:"flex",flex:"auto",height:O},"&-column":{flex:"1 0 auto",width:ke,margin:`${xe}px 0`,padding:0,overflowY:"hidden",textAlign:"start",listStyle:"none",transition:`background ${Te}`,overflowX:"hidden","&::after":{display:"block",height:O-$,content:'""'},"&:not(:first-child)":{borderInlineStart:`${He}px ${L} ${ue}`},"&-active":{background:new i.C(b).setAlpha(.2).toHexString()},"&:hover":{overflowY:"auto"},"> li":{margin:0,padding:0,[`&${k}-time-panel-cell`]:{marginInline:Z,[`${k}-time-panel-cell-inner`]:{display:"block",width:ke-2*Z,height:$,margin:0,paddingBlock:0,paddingInlineEnd:0,paddingInlineStart:(ke-$)/2,color:mt,lineHeight:`${$}px`,borderRadius:Re,cursor:"pointer",transition:`background ${Te}`,"&:hover":{background:Le}},"&-selected":{[`${k}-time-panel-cell-inner`]:{background:b}},"&-disabled":{[`${k}-time-panel-cell-inner`]:{color:he,background:"transparent",cursor:"not-allowed"}}}}}},[`&-datetime-panel ${k}-time-panel-column:after`]:{height:O-$+xe*2}}}},K=_=>{const{componentCls:k,colorBgContainer:J,colorError:$e,colorErrorOutline:z,colorWarning:h,colorWarningOutline:Xe}=_;return{[`${k}:not(${k}-disabled)`]:{[`&${k}-status-error`]:{"&, &:not([disabled]):hover":{backgroundColor:J,borderColor:$e},[`&${k}-focused, &:focus`]:Object.assign({},(0,y.M1)((0,A.TS)(_,{inputBorderActiveColor:$e,inputBorderHoverColor:$e,controlOutline:z}))),[`${k}-active-bar`]:{background:$e}},[`&${k}-status-warning`]:{"&, &:not([disabled]):hover":{backgroundColor:J,borderColor:h},[`&${k}-focused, &:focus`]:Object.assign({},(0,y.M1)((0,A.TS)(_,{inputBorderActiveColor:h,inputBorderHoverColor:h,controlOutline:Xe}))),[`${k}-active-bar`]:{background:h}}}}},re=_=>{const{componentCls:k,antCls:J,controlHeight:$e,fontSize:z,inputPaddingHorizontal:h,colorBgContainer:Xe,lineWidth:It,lineType:Fe,colorBorder:xe,borderRadius:xt,motionDurationMid:He,colorBgContainerDisabled:L,colorTextDisabled:Be,colorTextPlaceholder:$t,controlHeightLG:oe,fontSizeLG:ue,controlHeightSM:ce,inputPaddingHorizontalSM:Je,paddingXS:it,marginXS:Te,colorTextDescription:ut,lineWidthBold:X,lineHeight:W,colorPrimary:me,motionDurationSlow:he,zIndexPopup:mt,paddingXXS:lt,paddingSM:pt,pickerTextHeight:ft,controlItemBgActive:wt,colorPrimaryBorder:Gt,sizePopupArrow:Mt,borderRadiusXS:yt,borderRadiusOuter:St,colorBgElevated:fe,borderRadiusLG:Re,boxShadowSecondary:Oe,borderRadiusSM:Le,colorSplit:O,controlItemBgHover:ke,presetsWidth:$,presetsMaxWidth:b,boxShadowPopoverArrow:Z,colorTextQuaternary:ae}=_;return[{[k]:Object.assign(Object.assign(Object.assign({},(0,M.Wf)(_)),Ce(_,$e,z,h)),{position:"relative",display:"inline-flex",alignItems:"center",background:Xe,lineHeight:1,border:`${It}px ${Fe} ${xe}`,borderRadius:xt,transition:`border ${He}, box-shadow ${He}`,"&:hover, &-focused":Object.assign({},(0,y.pU)(_)),"&-focused":Object.assign({},(0,y.M1)(_)),[`&${k}-disabled`]:{background:L,borderColor:xe,cursor:"not-allowed",[`${k}-suffix`]:{color:ae}},[`&${k}-borderless`]:{backgroundColor:"transparent !important",borderColor:"transparent !important",boxShadow:"none !important"},[`${k}-input`]:{position:"relative",display:"inline-flex",alignItems:"center",width:"100%","> input":Object.assign(Object.assign({},(0,y.ik)(_)),{flex:"auto",minWidth:1,height:"auto",padding:0,background:"transparent",border:0,borderRadius:0,"&:focus":{boxShadow:"none"},"&[disabled]":{background:"transparent"}}),"&:hover":{[`${k}-clear`]:{opacity:1}},"&-placeholder":{"> input":{color:$t}}},"&-large":Object.assign(Object.assign({},Ce(_,oe,ue,h)),{[`${k}-input > input`]:{fontSize:ue}}),"&-small":Object.assign({},Ce(_,ce,z,Je)),[`${k}-suffix`]:{display:"flex",flex:"none",alignSelf:"center",marginInlineStart:it/2,color:Be,lineHeight:1,pointerEvents:"none","> *":{verticalAlign:"top","&:not(:last-child)":{marginInlineEnd:Te}}},[`${k}-clear`]:{position:"absolute",top:"50%",insetInlineEnd:0,color:Be,lineHeight:1,background:Xe,transform:"translateY(-50%)",cursor:"pointer",opacity:0,transition:`opacity ${He}, color ${He}`,"> *":{verticalAlign:"top"},"&:hover":{color:ut}},[`${k}-separator`]:{position:"relative",display:"inline-block",width:"1em",height:ue,color:Be,fontSize:ue,verticalAlign:"top",cursor:"default",[`${k}-focused &`]:{color:ut},[`${k}-range-separator &`]:{[`${k}-disabled &`]:{cursor:"not-allowed"}}},"&-range":{position:"relative",display:"inline-flex",[`${k}-clear`]:{insetInlineEnd:h},"&:hover":{[`${k}-clear`]:{opacity:1}},[`${k}-active-bar`]:{bottom:-It,height:X,marginInlineStart:h,background:me,opacity:0,transition:`all ${he} ease-out`,pointerEvents:"none"},[`&${k}-focused`]:{[`${k}-active-bar`]:{opacity:1}},[`${k}-range-separator`]:{alignItems:"center",padding:`0 ${it}px`,lineHeight:1},[`&${k}-small`]:{[`${k}-clear`]:{insetInlineEnd:Je},[`${k}-active-bar`]:{marginInlineStart:Je}}},"&-dropdown":Object.assign(Object.assign(Object.assign({},(0,M.Wf)(_)),w(_)),{position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:mt,[`&${k}-dropdown-hidden`]:{display:"none"},[`&${k}-dropdown-placement-bottomLeft`]:{[`${k}-range-arrow`]:{top:0,display:"block",transform:"translateY(-100%)"}},[`&${k}-dropdown-placement-topLeft`]:{[`${k}-range-arrow`]:{bottom:0,display:"block",transform:"translateY(100%) rotate(180deg)"}},[`&${J}-slide-up-enter${J}-slide-up-enter-active${k}-dropdown-placement-topLeft, + &${J}-slide-up-enter${J}-slide-up-enter-active${k}-dropdown-placement-topRight, + &${J}-slide-up-appear${J}-slide-up-appear-active${k}-dropdown-placement-topLeft, + &${J}-slide-up-appear${J}-slide-up-appear-active${k}-dropdown-placement-topRight`]:{animationName:H.Qt},[`&${J}-slide-up-enter${J}-slide-up-enter-active${k}-dropdown-placement-bottomLeft, + &${J}-slide-up-enter${J}-slide-up-enter-active${k}-dropdown-placement-bottomRight, + &${J}-slide-up-appear${J}-slide-up-appear-active${k}-dropdown-placement-bottomLeft, + &${J}-slide-up-appear${J}-slide-up-appear-active${k}-dropdown-placement-bottomRight`]:{animationName:H.fJ},[`&${J}-slide-up-leave${J}-slide-up-leave-active${k}-dropdown-placement-topLeft, + &${J}-slide-up-leave${J}-slide-up-leave-active${k}-dropdown-placement-topRight`]:{animationName:H.ly},[`&${J}-slide-up-leave${J}-slide-up-leave-active${k}-dropdown-placement-bottomLeft, + &${J}-slide-up-leave${J}-slide-up-leave-active${k}-dropdown-placement-bottomRight`]:{animationName:H.Uw},[`${k}-panel > ${k}-time-panel`]:{paddingTop:lt},[`${k}-ranges`]:{marginBottom:0,padding:`${lt}px ${pt}px`,overflow:"hidden",lineHeight:`${ft-2*It-it/2}px`,textAlign:"start",listStyle:"none",display:"flex",justifyContent:"space-between","> li":{display:"inline-block"},[`${k}-preset > ${J}-tag-blue`]:{color:me,background:wt,borderColor:Gt,cursor:"pointer"},[`${k}-ok`]:{marginInlineStart:"auto"}},[`${k}-range-wrapper`]:{display:"flex",position:"relative"},[`${k}-range-arrow`]:Object.assign({position:"absolute",zIndex:1,display:"none",marginInlineStart:h*1.5,transition:`left ${he} ease-out`},(0,F.r)(Mt,yt,St,fe,Z)),[`${k}-panel-container`]:{overflow:"hidden",verticalAlign:"top",background:fe,borderRadius:Re,boxShadow:Oe,transition:`margin ${he}`,[`${k}-panel-layout`]:{display:"flex",flexWrap:"nowrap",alignItems:"stretch"},[`${k}-presets`]:{display:"flex",flexDirection:"column",minWidth:$,maxWidth:b,ul:{height:0,flex:"auto",listStyle:"none",overflow:"auto",margin:0,padding:it,borderInlineEnd:`${It}px ${Fe} ${O}`,li:Object.assign(Object.assign({},M.vS),{borderRadius:Le,paddingInline:it,paddingBlock:(ce-Math.round(z*W))/2,cursor:"pointer",transition:`all ${he}`,"+ li":{marginTop:Te},"&:hover":{background:ke}})}},[`${k}-panels`]:{display:"inline-flex",flexWrap:"nowrap",direction:"ltr",[`${k}-panel`]:{borderWidth:`0 0 ${It}px`},"&:last-child":{[`${k}-panel`]:{borderWidth:0}}},[`${k}-panel`]:{verticalAlign:"top",background:"transparent",borderRadius:0,borderWidth:0,[`${k}-content, + table`]:{textAlign:"center"},"&-focused":{borderColor:xe}}}}),"&-dropdown-range":{padding:`${Mt*2/3}px 0`,"&-hidden":{display:"none"}},"&-rtl":{direction:"rtl",[`${k}-separator`]:{transform:"rotate(180deg)"},[`${k}-footer`]:{"&-extra":{direction:"rtl"}}}})},(0,H.oN)(_,"slide-up"),(0,H.oN)(_,"slide-down"),(0,t.Fm)(_,"move-up"),(0,t.Fm)(_,"move-down")]},f=_=>{const{componentCls:J,controlHeightLG:$e,controlHeightSM:z,colorPrimary:h,paddingXXS:Xe,padding:It}=_;return{pickerCellCls:`${J}-cell`,pickerCellInnerCls:`${J}-cell-inner`,pickerTextHeight:$e,pickerPanelCellWidth:z*1.5,pickerPanelCellHeight:z,pickerDateHoverRangeBorderColor:new i.C(h).lighten(20).toHexString(),pickerBasicCellHoverWithRangeColor:new i.C(h).lighten(35).toHexString(),pickerPanelWithoutTimeCellHeight:$e*1.65,pickerYearMonthCellWidth:$e*1.5,pickerTimePanelColumnHeight:28*8,pickerTimePanelColumnWidth:$e*1.4,pickerTimePanelCellHeight:28,pickerQuarterPanelContentHeight:$e*1.4,pickerCellPaddingVertical:Xe+Xe/2,pickerCellBorderGap:2,pickerControlIconSize:7,pickerControlIconBorderWidth:1.5,pickerDatePanelPaddingHorizontal:It+Xe/2}};Ne.ZP=(0,R.Z)("DatePicker",_=>{const k=(0,A.TS)((0,y.e5)(_),f(_));return[re(k),K(k),(0,D.c)(_,{focusElCls:`${_.componentCls}-focused`})]},_=>({presetsWidth:120,presetsMaxWidth:200,zIndexPopup:_.zIndexPopupBase+50}))},80172:function(Dt,Ne,e){"use strict";var i=e(60059);function y(){return(0,i.Z)()}Ne.ZP={useBreakpoint:y}},31712:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return ct}});var i=e(58757),y=e(56019),M=e(87608),F=e.n(M),D=e(60698),H=e(57370),t=e(37734),A=e(28314),R=e(38790),Ce=e(47075),se=e(60085),w=e(60409),K=["crossOrigin","decoding","draggable","loading","referrerPolicy","sizes","srcSet","useMap","alt"],re=i.createContext(null),f=0;function _(be,U){var Ie=i.useState(function(){return f+=1,String(f)}),ht=(0,A.Z)(Ie,1),Se=ht[0],de=i.useContext(re),T={data:U,canPreview:be};return i.useEffect(function(){if(de)return de.register(Se,T)},[]),i.useEffect(function(){de&&de.register(Se,T)},[be,U]),Se}function k(be){return new Promise(function(U){var Ie=document.createElement("img");Ie.onerror=function(){return U(!1)},Ie.onload=function(){return U(!0)},Ie.src=be})}function J(be){var U=be.src,Ie=be.isCustomPlaceholder,ht=be.fallback,Se=(0,i.useState)(Ie?"loading":"normal"),de=(0,A.Z)(Se,2),T=de[0],N=de[1],x=(0,i.useRef)(!1),te=T==="error";(0,i.useEffect)(function(){k(U).then(function(Ve){Ve||N("error")})},[U]),(0,i.useEffect)(function(){Ie&&!x.current?N("loading"):te&&N("normal")},[U]);var ye=function(){N("normal")},Ze=function(et){x.current=!1,T==="loading"&&et!=null&&et.complete&&(et.naturalWidth||et.naturalHeight)&&(x.current=!0,ye())},Ke=te&&ht?{src:ht}:{onLoad:ye,src:U};return[Ze,Ke,T]}var $e=e(67117),z=e(14311),h=e(29639),Xe=e(75556);function It(be,U,Ie,ht){var Se=U+Ie,de=(Ie-ht)/2;if(Ie>ht){if(U>0)return(0,t.Z)({},be,de);if(U<0&&Seht)return(0,t.Z)({},be,U<0?de:-de);return{}}function Fe(be,U,Ie,ht){var Se=(0,se.g1)(),de=Se.width,T=Se.height,N=null;return be<=de&&U<=T?N={x:0,y:0}:(be>de||U>T)&&(N=(0,H.Z)((0,H.Z)({},It("x",Ie,be,de)),It("y",ht,U,T))),N}var xe=e(7637),xt=e(61834),He={x:0,y:0,rotate:0,scale:1,flipX:!1,flipY:!1};function L(be,U,Ie,ht){var Se=(0,i.useRef)(null),de=(0,i.useRef)([]),T=(0,i.useState)(He),N=(0,A.Z)(T,2),x=N[0],te=N[1],ye=function(et){te(He),ht&&!(0,xe.Z)(He,x)&&ht({transform:He,action:et})},Ze=function(et,Ht){Se.current===null&&(de.current=[],Se.current=(0,xt.Z)(function(){te(function(dt){var Cn=dt;return de.current.forEach(function(bn){Cn=(0,H.Z)((0,H.Z)({},Cn),bn)}),Se.current=null,ht==null||ht({transform:Cn,action:Ht}),Cn})})),de.current.push((0,H.Z)((0,H.Z)({},x),et))},Ke=function(et,Ht,dt,Cn){var bn=be.current,Ct=bn.width,fn=bn.height,zt=bn.offsetWidth,cn=bn.offsetHeight,yn=bn.offsetLeft,Fn=bn.offsetTop,Yn=et,Zn=x.scale*et;Zn>Ie?(Yn=Ie/x.scale,Zn=Ie):Zn1,xo=kr&&bn>=1,br=L(Hr,yn,Yn,er),Qn=br.transform,Un=br.resetTransform,wr=br.updateTransform,or=br.dispatchZoomChange,Or=(0,i.useState)(!0),fo=(0,A.Z)(Or,2),Sr=fo[0],ao=fo[1],Vr=Qn.rotate,Ir=Qn.scale,Do=Qn.x,sa=Qn.y,fa=F()((0,t.Z)({},"".concat(Ie,"-moving"),Ur));(0,i.useEffect)(function(){Sr||ao(!0)},[Sr]);var Oa=function(){Un("close")},Oo=function(){or(ce+zt,"zoomIn")},zo=function(){or(ce/(ce+zt),"zoomOut")},va=function(){wr({rotate:Vr+90},"rotateRight")},vi=function(){wr({rotate:Vr-90},"rotateLeft")},Ba=function(){wr({flipX:!Qn.flipX},"flipX")},pe=function(){wr({flipY:!Qn.flipY},"flipY")},Ge=function(V){V==null||V.preventDefault(),V==null||V.stopPropagation(),dt>0&&(ao(!1),Un("prev"),Cr==null||Cr(dt-1,dt))},Tt=function(V){V==null||V.preventDefault(),V==null||V.stopPropagation(),dt0&&(ve=ce/ve),or(ve,"wheel",V.clientX,V.clientY)}},ur=function(V){!te||!_r||(V.keyCode===h.Z.LEFT?Ge():V.keyCode===h.Z.RIGHT&&Tt())},to=function(V){te&&(Ir!==1?wr({x:0,y:0,scale:1},"doubleClick"):or(ce+zt,"doubleClick",V.clientX,V.clientY))};(0,i.useEffect)(function(){var v,V,G,Pe;if(N){G=(0,z.Z)(window,"mouseup",en,!1),Pe=(0,z.Z)(window,"mousemove",Nr,!1);try{window.top!==window.self&&(v=(0,z.Z)(window.top,"mouseup",en,!1),V=(0,z.Z)(window.top,"mousemove",Nr,!1))}catch(ve){(0,Xe.Kp)(!1,"[rc-image] ".concat(ve))}}return function(){var ve,vt,nt,qt;(ve=G)===null||ve===void 0||ve.remove(),(vt=Pe)===null||vt===void 0||vt.remove(),(nt=v)===null||nt===void 0||nt.remove(),(qt=V)===null||qt===void 0||qt.remove()}},[te,Ur,Do,sa,Vr,N]),(0,i.useEffect)(function(){var v=(0,z.Z)(window,"keydown",ur,!1);return function(){v.remove()}},[te,_r,dt]);var ra=i.createElement(ut,(0,D.Z)({},_n,{width:U.width,height:U.height,imgRef:Hr,className:"".concat(Ie,"-img"),alt:Se,style:{transform:"translate3d(".concat(Qn.x,"px, ").concat(Qn.y,"px, 0) scale3d(").concat(Qn.flipX?"-":"").concat(Ir,", ").concat(Qn.flipY?"-":"").concat(Ir,", 1) rotate(").concat(Vr,"deg)"),transitionDuration:!Sr&&"0s"},fallback:de,src:ht,onWheel:Tr,onMouseDown:kn,onDoubleClick:to}));return i.createElement(i.Fragment,null,i.createElement($e.Z,(0,D.Z)({transitionName:Kn,maskTransitionName:An,closable:!1,keyboard:!0,prefixCls:Ie,onClose:x,visible:te,wrapClassName:fa,rootClassName:Ke,getContainer:et},Lr,{afterClose:Oa}),i.createElement("div",{className:"".concat(Ie,"-img-wrapper")},On?On(ra,(0,H.Z)({transform:Qn},kr?{current:dt}:{})):ra)),i.createElement(ue,{visible:te,transform:Qn,maskTransitionName:An,closeIcon:Ve,getContainer:et,prefixCls:Ie,rootClassName:Ke,icons:Ze,countRender:Ct,showSwitch:_r,showProgress:xo,current:dt,count:bn,scale:Ir,minScale:yn,maxScale:Yn,toolbarRender:Gn,onSwitchLeft:Ge,onSwitchRight:Tt,onZoomIn:Oo,onZoomOut:zo,onRotateRight:va,onRotateLeft:vi,onFlipX:Ba,onFlipY:pe,onClose:x}))},W=X,me=e(29140);function he(be){var U=i.useState({}),Ie=(0,A.Z)(U,2),ht=Ie[0],Se=Ie[1],de=i.useCallback(function(N,x){return Se(function(te){return(0,H.Z)((0,H.Z)({},te),{},(0,t.Z)({},N,x))}),function(){Se(function(te){var ye=(0,H.Z)({},te);return delete ye[N],ye})}},[]),T=i.useMemo(function(){return be?be.map(function(N){if(typeof N=="string")return{data:{src:N}};var x={};return Object.keys(N).forEach(function(te){["src"].concat((0,me.Z)(K)).includes(te)&&(x[te]=N[te])}),{data:x}}):Object.keys(ht).reduce(function(N,x){var te=ht[x],ye=te.canPreview,Ze=te.data;return ye&&N.push({data:Ze,id:x}),N},[])},[be,ht]);return[T,de]}var mt=["visible","onVisibleChange","getContainer","current","movable","minScale","maxScale","countRender","closeIcon","onChange","onTransform","toolbarRender","imageRender"],lt=["src"],pt=function(U){var Ie,ht=U.previewPrefixCls,Se=ht===void 0?"rc-image-preview":ht,de=U.children,T=U.icons,N=T===void 0?{}:T,x=U.items,te=U.preview,ye=U.fallback,Ze=(0,R.Z)(te)==="object"?te:{},Ke=Ze.visible,Ve=Ze.onVisibleChange,et=Ze.getContainer,Ht=Ze.current,dt=Ze.movable,Cn=Ze.minScale,bn=Ze.maxScale,Ct=Ze.countRender,fn=Ze.closeIcon,zt=Ze.onChange,cn=Ze.onTransform,yn=Ze.toolbarRender,Fn=Ze.imageRender,Yn=(0,Ce.Z)(Ze,mt),Zn=he(x),Kn=(0,A.Z)(Zn,2),vr=Kn[0],An=Kn[1],On=(0,w.Z)(0,{value:Ht}),_n=(0,A.Z)(On,2),Gn=_n[0],er=_n[1],Cr=(0,i.useState)(!1),Lr=(0,A.Z)(Cr,2),Hr=Lr[0],Hn=Lr[1],Pr=((Ie=vr[Gn])===null||Ie===void 0?void 0:Ie.data)||{},oo=Pr.src,Ur=(0,Ce.Z)(Pr,lt),co=(0,w.Z)(!!Ke,{value:Ke,onChange:function(Vr,Ir){Ve==null||Ve(Vr,Ir,Gn)}}),kr=(0,A.Z)(co,2),_r=kr[0],xo=kr[1],br=(0,i.useState)(null),Qn=(0,A.Z)(br,2),Un=Qn[0],wr=Qn[1],or=i.useCallback(function(ao,Vr,Ir){var Do=vr.findIndex(function(sa){return sa.id===ao});xo(!0),wr({x:Vr,y:Ir}),er(Do<0?0:Do),Hn(!0)},[vr]);i.useEffect(function(){_r?Hr||er(0):Hn(!1)},[_r]);var Or=function(Vr,Ir){er(Vr),zt==null||zt(Vr,Ir)},fo=function(){xo(!1),wr(null)},Sr=i.useMemo(function(){return{register:An,onPreview:or}},[An,or]);return i.createElement(re.Provider,{value:Sr},de,i.createElement(W,(0,D.Z)({"aria-hidden":!_r,movable:dt,visible:_r,prefixCls:Se,closeIcon:fn,onClose:fo,mousePosition:Un,imgCommonProps:Ur,src:oo,fallback:ye,icons:N,minScale:Cn,maxScale:bn,getContainer:et,current:Gn,count:vr.length,countRender:Ct,onTransform:cn,toolbarRender:yn,imageRender:Fn,onChange:Or},Yn)))},ft=pt,wt=["src","alt","onPreviewClose","prefixCls","previewPrefixCls","placeholder","fallback","width","height","style","preview","className","onClick","onError","wrapperClassName","wrapperStyle","rootClassName"],Gt=["src","visible","onVisibleChange","getContainer","mask","maskClassName","movable","icons","scaleStep","minScale","maxScale","imageRender","toolbarRender"],Mt=function(U){var Ie=U.src,ht=U.alt,Se=U.onPreviewClose,de=U.prefixCls,T=de===void 0?"rc-image":de,N=U.previewPrefixCls,x=N===void 0?"".concat(T,"-preview"):N,te=U.placeholder,ye=U.fallback,Ze=U.width,Ke=U.height,Ve=U.style,et=U.preview,Ht=et===void 0?!0:et,dt=U.className,Cn=U.onClick,bn=U.onError,Ct=U.wrapperClassName,fn=U.wrapperStyle,zt=U.rootClassName,cn=(0,Ce.Z)(U,wt),yn=te&&te!==!0,Fn=(0,R.Z)(Ht)==="object"?Ht:{},Yn=Fn.src,Zn=Fn.visible,Kn=Zn===void 0?void 0:Zn,vr=Fn.onVisibleChange,An=vr===void 0?Se:vr,On=Fn.getContainer,_n=On===void 0?void 0:On,Gn=Fn.mask,er=Fn.maskClassName,Cr=Fn.movable,Lr=Fn.icons,Hr=Fn.scaleStep,Hn=Fn.minScale,Pr=Fn.maxScale,oo=Fn.imageRender,Ur=Fn.toolbarRender,co=(0,Ce.Z)(Fn,Gt),kr=Yn!=null?Yn:Ie,_r=(0,w.Z)(!!Kn,{value:Kn,onChange:An}),xo=(0,A.Z)(_r,2),br=xo[0],Qn=xo[1],Un=J({src:Ie,isCustomPlaceholder:yn,fallback:ye}),wr=(0,A.Z)(Un,3),or=wr[0],Or=wr[1],fo=wr[2],Sr=(0,i.useState)(null),ao=(0,A.Z)(Sr,2),Vr=ao[0],Ir=ao[1],Do=(0,i.useContext)(re),sa=!!Ht,fa=function(){Qn(!1),Ir(null)},Oa=F()(T,Ct,zt,(0,t.Z)({},"".concat(T,"-error"),fo==="error")),Oo=(0,i.useMemo)(function(){var Ba={};return K.forEach(function(pe){U[pe]!==void 0&&(Ba[pe]=U[pe])}),Ba},K.map(function(Ba){return U[Ba]})),zo=(0,i.useMemo)(function(){return(0,H.Z)((0,H.Z)({},Oo),{},{src:kr})},[kr,Oo]),va=_(sa,zo),vi=function(pe){var Ge=(0,se.os)(pe.target),Tt=Ge.left,en=Ge.top;Do?Do.onPreview(va,Tt,en):(Ir({x:Tt,y:en}),Qn(!0)),Cn==null||Cn(pe)};return i.createElement(i.Fragment,null,i.createElement("div",(0,D.Z)({},cn,{className:Oa,onClick:sa?vi:Cn,style:(0,H.Z)({width:Ze,height:Ke},fn)}),i.createElement("img",(0,D.Z)({},Oo,{className:F()("".concat(T,"-img"),(0,t.Z)({},"".concat(T,"-img-placeholder"),te===!0),dt),style:(0,H.Z)({height:Ke},Ve),ref:or},Or,{width:Ze,height:Ke,onError:bn})),fo==="loading"&&i.createElement("div",{"aria-hidden":"true",className:"".concat(T,"-placeholder")},te),Gn&&sa&&i.createElement("div",{className:F()("".concat(T,"-mask"),er),style:{display:(Ve==null?void 0:Ve.display)==="none"?"none":void 0}},Gn)),!Do&&sa&&i.createElement(W,(0,D.Z)({"aria-hidden":!br,visible:br,prefixCls:x,onClose:fa,mousePosition:Vr,src:kr,alt:ht,fallback:ye,getContainer:_n,icons:Lr,movable:Cr,scaleStep:Hr,minScale:Hn,maxScale:Pr,rootClassName:zt,imageRender:oo,imgCommonProps:Oo,toolbarRender:Ur},co)))};Mt.PreviewGroup=ft,Mt.displayName="Image";var yt=Mt,St=yt,fe=e(90881),Re=e(61836),Oe=e(80076),Le=e(52495),O=e(99142),ke=e(91169),$={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z"}},{tag:"path",attrs:{d:"M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z"}}]},name:"rotate-left",theme:"outlined"},b=$,Z=e(17202),ae=function(U,Ie){return i.createElement(Z.Z,(0,D.Z)({},U,{ref:Ie,icon:b}))},q=i.forwardRef(ae),Ye={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-.4-12.6 6.1l-.2 64c-118.6.5-235.8 53.4-314.6 154.2A399.75 399.75 0 00123.5 631h74.9c-.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8z"}},{tag:"path",attrs:{d:"M880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H396V494h440v326z"}}]},name:"rotate-right",theme:"outlined"},ot=Ye,gt=function(U,Ie){return i.createElement(Z.Z,(0,D.Z)({},U,{ref:Ie,icon:ot}))},Et=i.forwardRef(gt),Nt={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"swap",theme:"outlined"},Vt=Nt,Bt=function(U,Ie){return i.createElement(Z.Z,(0,D.Z)({},U,{ref:Ie,icon:Vt}))},tt=i.forwardRef(Bt),st=e(98030),Ft=e(2528),jt=e(66671),Lt=e(76073),un=e(78330),Ut=e(28107),pn=e(7239),Sn=e(52628),Xt=e(22151);const an=be=>({position:be||"absolute",inset:0}),ln=be=>{const{iconCls:U,motionDurationSlow:Ie,paddingXXS:ht,marginXXS:Se,prefixCls:de,colorTextLightSolid:T}=be;return{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",color:T,background:new jt.C("#000").setAlpha(.5).toRgbString(),cursor:"pointer",opacity:0,transition:`opacity ${Ie}`,[`.${de}-mask-info`]:Object.assign(Object.assign({},un.vS),{padding:`0 ${ht}px`,[U]:{marginInlineEnd:Se,svg:{verticalAlign:"baseline"}}})}},Pn=be=>{const{previewCls:U,modalMaskBg:Ie,paddingSM:ht,marginXL:Se,margin:de,paddingLG:T,previewOperationColorDisabled:N,previewOperationHoverColor:x,motionDurationSlow:te,iconCls:ye,colorTextLightSolid:Ze}=be,Ke=new jt.C(Ie).setAlpha(.1),Ve=Ke.clone().setAlpha(.2);return{[`${U}-footer`]:{position:"fixed",bottom:Se,left:{_skip_check_:!0,value:0},width:"100%",display:"flex",flexDirection:"column",alignItems:"center",color:be.previewOperationColor},[`${U}-progress`]:{marginBottom:de},[`${U}-close`]:{position:"fixed",top:Se,right:{_skip_check_:!0,value:Se},display:"flex",color:Ze,backgroundColor:Ke.toRgbString(),borderRadius:"50%",padding:ht,outline:0,border:0,cursor:"pointer",transition:`all ${te}`,"&:hover":{backgroundColor:Ve.toRgbString()},[`& > ${ye}`]:{fontSize:be.previewOperationSize}},[`${U}-operations`]:{display:"flex",alignItems:"center",padding:`0 ${T}px`,backgroundColor:Ke.toRgbString(),borderRadius:100,"&-operation":{marginInlineStart:ht,padding:ht,cursor:"pointer",transition:`all ${te}`,userSelect:"none",[`&:not(${U}-operations-operation-disabled):hover > ${ye}`]:{color:x},"&-disabled":{color:N,cursor:"not-allowed"},"&:first-of-type":{marginInlineStart:0},[`& > ${ye}`]:{fontSize:be.previewOperationSize}}}}},zn=be=>{const{modalMaskBg:U,iconCls:Ie,previewOperationColorDisabled:ht,previewCls:Se,zIndexPopup:de,motionDurationSlow:T}=be,N=new jt.C(U).setAlpha(.1),x=N.clone().setAlpha(.2);return{[`${Se}-switch-left, ${Se}-switch-right`]:{position:"fixed",insetBlockStart:"50%",zIndex:de+1,display:"flex",alignItems:"center",justifyContent:"center",width:be.imagePreviewSwitchSize,height:be.imagePreviewSwitchSize,marginTop:-be.imagePreviewSwitchSize/2,color:be.previewOperationColor,background:N.toRgbString(),borderRadius:"50%",transform:"translateY(-50%)",cursor:"pointer",transition:`all ${T}`,userSelect:"none","&:hover":{background:x.toRgbString()},["&-disabled"]:{"&, &:hover":{color:ht,background:"transparent",cursor:"not-allowed",[`> ${Ie}`]:{cursor:"not-allowed"}}},[`> ${Ie}`]:{fontSize:be.previewOperationSize}},[`${Se}-switch-left`]:{insetInlineStart:be.marginSM},[`${Se}-switch-right`]:{insetInlineEnd:be.marginSM}}},qn=be=>{const{motionEaseOut:U,previewCls:Ie,motionDurationSlow:ht,componentCls:Se}=be;return[{[`${Se}-preview-root`]:{[Ie]:{height:"100%",textAlign:"center",pointerEvents:"none"},[`${Ie}-body`]:Object.assign(Object.assign({},an()),{overflow:"hidden"}),[`${Ie}-img`]:{maxWidth:"100%",maxHeight:"70%",verticalAlign:"middle",transform:"scale3d(1, 1, 1)",cursor:"grab",transition:`transform ${ht} ${U} 0s`,userSelect:"none","&-wrapper":Object.assign(Object.assign({},an()),{transition:`transform ${ht} ${U} 0s`,display:"flex",justifyContent:"center",alignItems:"center","& > *":{pointerEvents:"auto"},"&::before":{display:"inline-block",width:1,height:"50%",marginInlineEnd:-1,content:'""'}})},[`${Ie}-moving`]:{[`${Ie}-preview-img`]:{cursor:"grabbing","&-wrapper":{transitionDuration:"0s"}}}}},{[`${Se}-preview-root`]:{[`${Ie}-wrap`]:{zIndex:be.zIndexPopup}}},{[`${Se}-preview-operations-wrapper`]:{position:"fixed",zIndex:be.zIndexPopup+1},"&":[Pn(be),zn(be)]}]},yr=be=>{const{componentCls:U}=be;return{[U]:{position:"relative",display:"inline-block",[`${U}-img`]:{width:"100%",height:"auto",verticalAlign:"middle"},[`${U}-img-placeholder`]:{backgroundColor:be.colorBgContainerDisabled,backgroundImage:"url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=')",backgroundRepeat:"no-repeat",backgroundPosition:"center center",backgroundSize:"30%"},[`${U}-mask`]:Object.assign({},ln(be)),[`${U}-mask:hover`]:{opacity:1},[`${U}-placeholder`]:Object.assign({},an())}}},Bn=be=>{const{previewCls:U}=be;return{[`${U}-root`]:(0,Ut._y)(be,"zoom"),["&"]:(0,pn.J$)(be,!0)}};var ne=(0,Sn.Z)("Image",be=>{const U=`${be.componentCls}-preview`,Ie=(0,Xt.TS)(be,{previewCls:U,modalMaskBg:new jt.C("#000").setAlpha(.45).toRgbString(),imagePreviewSwitchSize:be.controlHeightLG});return[yr(Ie),qn(Ie),(0,Lt.Q)((0,Xt.TS)(Ie,{componentCls:U})),Bn(Ie)]},be=>({zIndexPopup:be.zIndexPopupBase+80,previewOperationColor:new jt.C(be.colorTextLightSolid).setAlpha(.65).toRgbString(),previewOperationHoverColor:new jt.C(be.colorTextLightSolid).setAlpha(.85).toRgbString(),previewOperationColorDisabled:new jt.C(be.colorTextLightSolid).setAlpha(.25).toRgbString(),previewOperationSize:be.fontSizeIcon*1.5})),qe=function(be,U){var Ie={};for(var ht in be)Object.prototype.hasOwnProperty.call(be,ht)&&U.indexOf(ht)<0&&(Ie[ht]=be[ht]);if(be!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Se=0,ht=Object.getOwnPropertySymbols(be);Se{var{previewPrefixCls:U,preview:Ie}=be,ht=qe(be,["previewPrefixCls","preview"]);const{getPrefixCls:Se}=i.useContext(Re.E_),de=Se("image",U),T=`${de}-preview`,N=Se(),[x,te]=ne(de),ye=i.useMemo(()=>{var Ze;if(Ie===!1)return Ie;const Ke=typeof Ie=="object"?Ie:{},Ve=F()(te,(Ze=Ke.rootClassName)!==null&&Ze!==void 0?Ze:"");return Object.assign(Object.assign({},Ke),{transitionName:(0,fe.m)(N,"zoom",Ke.transitionName),maskTransitionName:(0,fe.m)(N,"fade",Ke.maskTransitionName),rootClassName:Ve})},[Ie]);return x(i.createElement(St.PreviewGroup,Object.assign({preview:ye,previewPrefixCls:T,icons:_e},ht)))},Ae=function(be,U){var Ie={};for(var ht in be)Object.prototype.hasOwnProperty.call(be,ht)&&U.indexOf(ht)<0&&(Ie[ht]=be[ht]);if(be!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Se=0,ht=Object.getOwnPropertySymbols(be);Se{const{prefixCls:U,preview:Ie,className:ht,rootClassName:Se,style:de}=be,T=Ae(be,["prefixCls","preview","className","rootClassName","style"]),{getPrefixCls:N,locale:x=Oe.Z,getPopupContainer:te,image:ye}=i.useContext(Re.E_),Ze=N("image",U),Ke=N(),Ve=x.Image||Oe.Z.Image,[et,Ht]=ne(Ze),dt=F()(Se,Ht),Cn=F()(ht,Ht,ye==null?void 0:ye.className),bn=i.useMemo(()=>{if(Ie===!1)return Ie;const fn=typeof Ie=="object"?Ie:{},{getContainer:zt}=fn,cn=Ae(fn,["getContainer"]);return Object.assign(Object.assign({mask:i.createElement("div",{className:`${Ze}-mask-info`},i.createElement(y.Z,null),Ve==null?void 0:Ve.preview),icons:_e},cn),{getContainer:zt||te,transitionName:(0,fe.m)(Ke,"zoom",fn.transitionName),maskTransitionName:(0,fe.m)(Ke,"fade",fn.maskTransitionName)})},[Ie,Ve]),Ct=Object.assign(Object.assign({},ye==null?void 0:ye.style),de);return et(i.createElement(St,Object.assign({prefixCls:Ze,preview:bn,rootClassName:dt,className:Cn,style:Ct},T)))};we.PreviewGroup=Y;var ct=we},27592:function(Dt,Ne,e){"use strict";e.r(Ne),e.d(Ne,{Affix:function(){return i.Z},Alert:function(){return y.Z},Anchor:function(){return Be},App:function(){return me},AutoComplete:function(){return fe},Avatar:function(){return Re.C},BackTop:function(){return ae},Badge:function(){return q.Z},Breadcrumb:function(){return Ye.Z},Button:function(){return ot.ZP},Calendar:function(){return ne},Card:function(){return qe.Z},Carousel:function(){return pe},Cascader:function(){return Ge.Z},Checkbox:function(){return Tt.Z},Col:function(){return en.Z},Collapse:function(){return kn.Z},ColorPicker:function(){return Rt},ConfigProvider:function(){return Pt.ZP},DatePicker:function(){return Kt.Z},Descriptions:function(){return eo},Divider:function(){return ra.Z},Drawer:function(){return Jo.Z},Dropdown:function(){return bo.Z},Empty:function(){return ta.Z},FloatButton:function(){return _a},Form:function(){return Ui.Z},Grid:function(){return Bi.ZP},Image:function(){return ul.Z},Input:function(){return Ia.Z},InputNumber:function(){return Zo.Z},Layout:function(){return Ci.Z},List:function(){return ii.Z},Mentions:function(){return Ss},Menu:function(){return c.Z},Modal:function(){return d.Z},Pagination:function(){return I.Z},Popconfirm:function(){return Q.Z},Popover:function(){return ur.Z},Progress:function(){return De.Z},QRCode:function(){return bi},Radio:function(){return tl.ZP},Rate:function(){return gl.Z},Result:function(){return ls.ZP},Row:function(){return Ms.Z},Segmented:function(){return Ns.Z},Select:function(){return ft.Z},Skeleton:function(){return ss.Z},Slider:function(){return xs.Z},Space:function(){return hs.Z},Spin:function(){return al.Z},Statistic:function(){return fc},Steps:function(){return vc.Z},Switch:function(){return Es.Z},Table:function(){return mc.Z},Tabs:function(){return _s.Z},Tag:function(){return Ks.Z},TimePicker:function(){return Yc.Z},Timeline:function(){return nd},Tooltip:function(){return po.Z},Tour:function(){return $d},Transfer:function(){return Jd},Tree:function(){return qd.Z},TreeSelect:function(){return _d.Z},Typography:function(){return eu.Z},Upload:function(){return tu.Z},Watermark:function(){return hu},message:function(){return r.ZP},notification:function(){return u.Z},theme:function(){return to.Z},version:function(){return nu.Z}});var i=e(76152),y=e(15618),M=e(29140),F=e(87608),D=e.n(F),H=e(51729),t=e(58757),A=e(18591),R=e(97513),Ce=e(43120),se=e(61836),K=t.createContext(void 0),f=o=>{const{href:n,title:l,prefixCls:s,children:a,className:g,target:m,replace:P}=o,p=t.useContext(K),{registerLink:S,unregisterLink:j,scrollTo:B,onClick:ge,activeLink:We,direction:Ee}=p||{};t.useEffect(()=>(S==null||S(n),()=>{j==null||j(n)}),[n]);const rt=nn=>{P&&(nn.preventDefault(),window.location.replace(n)),ge==null||ge(nn,{title:l,href:n}),B==null||B(n)},{getPrefixCls:at}=t.useContext(se.E_),Wt=at("anchor",s),kt=We===n,Zt=D()(`${Wt}-link`,g,{[`${Wt}-link-active`]:kt}),dn=D()(`${Wt}-link-title`,{[`${Wt}-link-title-active`]:kt});return t.createElement("div",{className:Zt},t.createElement("a",{className:dn,href:n,title:typeof l=="string"?l:"",target:m,onClick:rt},l),Ee!=="horizontal"?a:null)},_=e(78330),k=e(52628),J=e(22151);const $e=o=>{const{componentCls:n,holderOffsetBlock:l,motionDurationSlow:s,lineWidthBold:a,colorPrimary:g,lineType:m,colorSplit:P}=o;return{[`${n}-wrapper`]:{marginBlockStart:-l,paddingBlockStart:l,[n]:Object.assign(Object.assign({},(0,_.Wf)(o)),{position:"relative",paddingInlineStart:a,[`${n}-link`]:{paddingBlock:o.linkPaddingBlock,paddingInline:`${o.linkPaddingInlineStart}px 0`,"&-title":Object.assign(Object.assign({},_.vS),{position:"relative",display:"block",marginBlockEnd:o.anchorTitleBlock,color:o.colorText,transition:`all ${o.motionDurationSlow}`,"&:only-child":{marginBlockEnd:0}}),[`&-active > ${n}-link-title`]:{color:o.colorPrimary},[`${n}-link`]:{paddingBlock:o.anchorPaddingBlockSecondary}}}),[`&:not(${n}-wrapper-horizontal)`]:{[n]:{"&::before":{position:"absolute",insetInlineStart:0,top:0,height:"100%",borderInlineStart:`${a}px ${m} ${P}`,content:'" "'},[`${n}-ink`]:{position:"absolute",insetInlineStart:0,display:"none",transform:"translateY(-50%)",transition:`top ${s} ease-in-out`,width:a,backgroundColor:g,[`&${n}-ink-visible`]:{display:"inline-block"}}}},[`${n}-fixed ${n}-ink ${n}-ink`]:{display:"none"}}}},z=o=>{const{componentCls:n,motionDurationSlow:l,lineWidthBold:s,colorPrimary:a}=o;return{[`${n}-wrapper-horizontal`]:{position:"relative","&::before":{position:"absolute",left:{_skip_check_:!0,value:0},right:{_skip_check_:!0,value:0},bottom:0,borderBottom:`1px ${o.lineType} ${o.colorSplit}`,content:'" "'},[n]:{overflowX:"scroll",position:"relative",display:"flex",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"},[`${n}-link:first-of-type`]:{paddingInline:0},[`${n}-ink`]:{position:"absolute",bottom:0,transition:`left ${l} ease-in-out, width ${l} ease-in-out`,height:s,backgroundColor:a}}}}};var h=(0,k.Z)("Anchor",o=>{const{fontSize:n,fontSizeLG:l,paddingXXS:s}=o,a=(0,J.TS)(o,{holderOffsetBlock:s,anchorPaddingBlockSecondary:s/2,anchorTitleBlock:n/14*3,anchorBallSize:l/2});return[$e(a),z(a)]},o=>({linkPaddingBlock:o.paddingXXS,linkPaddingInlineStart:o.padding}));function Xe(){return window}function It(o,n){if(!o.getClientRects().length)return 0;const l=o.getBoundingClientRect();return l.width||l.height?n===window?(n=o.ownerDocument.documentElement,l.top-n.clientTop):l.top-n.getBoundingClientRect().top:l.top}const Fe=/#([\S ]+)$/,xe=o=>{var n;const{rootClassName:l,anchorPrefixCls:s,className:a,style:g,offsetTop:m,affix:P=!0,showInkInFixed:p=!1,children:S,items:j,direction:B="vertical",bounds:ge,targetOffset:We,onClick:Ee,onChange:rt,getContainer:at,getCurrentAnchor:Wt,replace:kt}=o,[Zt,dn]=t.useState([]),[nn,wn]=t.useState(null),Tn=t.useRef(nn),Vn=t.useRef(null),pr=t.useRef(null),Ar=t.useRef(!1),{direction:Ko,getTargetContainer:Wr,anchor:Mr}=t.useContext(se.E_),$r=(n=at!=null?at:Wr)!==null&&n!==void 0?n:Xe,uo=JSON.stringify(Zt),$a=(0,H.Z)($o=>{Zt.includes($o)||dn(Yo=>[].concat((0,M.Z)(Yo),[$o]))}),Vo=(0,H.Z)($o=>{Zt.includes($o)&&dn(Yo=>Yo.filter(di=>di!==$o))}),ya=()=>{var $o;const Yo=($o=Vn.current)===null||$o===void 0?void 0:$o.querySelector(`.${s}-link-title-active`);if(Yo&&pr.current){const{style:di}=pr.current,Fr=B==="horizontal";di.top=Fr?"":`${Yo.offsetTop+Yo.clientHeight/2}px`,di.height=Fr?"":`${Yo.clientHeight}px`,di.left=Fr?`${Yo.offsetLeft}px`:"",di.width=Fr?`${Yo.clientWidth}px`:"",Fr&&(0,A.Z)(Yo,{scrollMode:"if-needed",block:"nearest"})}},xi=function($o){let Yo=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,di=arguments.length>2&&arguments[2]!==void 0?arguments[2]:5;const Fr=[],la=$r();return $o.forEach(Ii=>{const ro=Fe.exec(Ii==null?void 0:Ii.toString());if(!ro)return;const jo=document.getElementById(ro[1]);if(jo){const Ha=It(jo,la);Hajo.top>ro.top?jo:ro).link:""},Ca=(0,H.Z)($o=>{if(Tn.current===$o)return;const Yo=typeof Wt=="function"?Wt($o):$o;wn(Yo),Tn.current=Yo,rt==null||rt($o)}),Aa=t.useCallback(()=>{if(Ar.current)return;const $o=xi(Zt,We!==void 0?We:m||0,ge);Ca($o)},[uo,We,m]),mo=t.useCallback($o=>{Ca($o);const Yo=Fe.exec($o);if(!Yo)return;const di=document.getElementById(Yo[1]);if(!di)return;const Fr=$r(),la=(0,R.Z)(Fr,!0),Ii=It(di,Fr);let ro=la+Ii;ro-=We!==void 0?We:m||0,Ar.current=!0,(0,Ce.Z)(ro,{getContainer:$r,callback(){Ar.current=!1}})},[We,m]),ia=D()(l,`${s}-wrapper`,{[`${s}-wrapper-horizontal`]:B==="horizontal",[`${s}-rtl`]:Ko==="rtl"},a,Mr==null?void 0:Mr.className),Gr=D()(s,{[`${s}-fixed`]:!P&&!p}),ja=D()(`${s}-ink`,{[`${s}-ink-visible`]:nn}),ni=Object.assign(Object.assign({maxHeight:m?`calc(100vh - ${m}px)`:"100vh"},Mr==null?void 0:Mr.style),g),Sa=$o=>Array.isArray($o)?$o.map(Yo=>t.createElement(f,Object.assign({replace:kt},Yo,{key:Yo.key}),B==="vertical"&&Sa(Yo.children))):null,ua=t.createElement("div",{ref:Vn,className:ia,style:ni},t.createElement("div",{className:Gr},t.createElement("span",{className:ja,ref:pr}),"items"in o?Sa(j):S));t.useEffect(()=>{const $o=$r();return Aa(),$o==null||$o.addEventListener("scroll",Aa),()=>{$o==null||$o.removeEventListener("scroll",Aa)}},[uo]),t.useEffect(()=>{typeof Wt=="function"&&Ca(Wt(Tn.current||""))},[Wt]),t.useEffect(()=>{ya()},[B,Wt,uo,nn]);const ll=t.useMemo(()=>({registerLink:$a,unregisterLink:Vo,scrollTo:mo,activeLink:nn,onClick:Ee,direction:B}),[nn,Ee,mo,B]);return t.createElement(K.Provider,{value:ll},P?t.createElement(i.Z,{offsetTop:m,target:$r},ua):ua)};var He=o=>{const{prefixCls:n,rootClassName:l}=o,{getPrefixCls:s}=t.useContext(se.E_),a=s("anchor",n),[g,m]=h(a);return g(t.createElement(xe,Object.assign({},o,{rootClassName:D()(m,l),anchorPrefixCls:a})))};const L=He;L.Link=f;var Be=L,$t=e(45054),oe=e(65172),ue=e(75105);const ce=t.createContext({});var it=t.createContext({message:{},notification:{},modal:{}});const Te=o=>{const{componentCls:n,colorText:l,fontSize:s,lineHeight:a,fontFamily:g}=o;return{[n]:{color:l,fontSize:s,lineHeight:a,fontFamily:g}}};var ut=(0,k.Z)("App",o=>[Te(o)]);const X=()=>t.useContext(it),W=o=>{const{prefixCls:n,children:l,className:s,rootClassName:a,message:g,notification:m,style:P}=o,{getPrefixCls:p}=(0,t.useContext)(se.E_),S=p("app",n),[j,B]=ut(S),ge=D()(B,S,s,a),We=(0,t.useContext)(ce),Ee=t.useMemo(()=>({message:Object.assign(Object.assign({},We.message),g),notification:Object.assign(Object.assign({},We.notification),m)}),[g,m,We.message,We.notification]),[rt,at]=(0,$t.Z)(Ee.message),[Wt,kt]=(0,ue.Z)(Ee.notification),[Zt,dn]=(0,oe.Z)(),nn=t.useMemo(()=>({message:rt,notification:Wt,modal:Zt}),[rt,Wt,Zt]);return j(t.createElement(it.Provider,{value:nn},t.createElement(ce.Provider,{value:Ee},t.createElement("div",{className:ge,style:P},dn,at,kt,l))))};W.useApp=X;var me=W,he=e(42156),mt=e(98186),lt=e(15018),pt=e(37047),ft=e(59504);const{Option:wt}=ft.Z;function Gt(o){return o&&o.type&&(o.type.isSelectOption||o.type.isSelectOptGroup)}const Mt=(o,n)=>{const{prefixCls:l,className:s,popupClassName:a,dropdownClassName:g,children:m,dataSource:P}=o,p=(0,he.Z)(m);let S;p.length===1&&(0,pt.l$)(p[0])&&!Gt(p[0])&&([S]=p);const j=S?()=>S:void 0;let B;p.length&&Gt(p[0])?B=m:B=P?P.map(Ee=>{if((0,pt.l$)(Ee))return Ee;switch(typeof Ee){case"string":return t.createElement(wt,{key:Ee,value:Ee},Ee);case"object":{const{value:rt}=Ee;return t.createElement(wt,{key:rt,value:rt},Ee.text)}default:return}}):[];const{getPrefixCls:ge}=t.useContext(se.E_),We=ge("select",l);return t.createElement(ft.Z,Object.assign({ref:n,suffixIcon:null},(0,mt.Z)(o,["dataSource","dropdownClassName"]),{prefixCls:We,popupClassName:a||g,className:D()(`${We}-auto-complete`,s),mode:ft.Z.SECRET_COMBOBOX_MODE_DO_NOT_USE,getInputElement:j}),B)},yt=t.forwardRef(Mt),St=(0,lt.Z)(yt);yt.Option=wt,yt._InternalPanelDoNotUseOrYouWillBeFired=St;var fe=yt,Re=e(9466),Oe=e(92232),Le=e(17598),O=e(72781);const ke=o=>{const{componentCls:n,backTopFontSize:l,backTopSize:s,zIndexPopup:a}=o;return{[n]:Object.assign(Object.assign({},(0,_.Wf)(o)),{position:"fixed",insetInlineEnd:o.backTopInlineEnd,insetBlockEnd:o.backTopBlockEnd,zIndex:a,width:40,height:40,cursor:"pointer","&:empty":{display:"none"},[`${n}-content`]:{width:s,height:s,overflow:"hidden",color:o.backTopColor,textAlign:"center",backgroundColor:o.backTopBackground,borderRadius:s,transition:`all ${o.motionDurationMid}`,"&:hover":{backgroundColor:o.backTopHoverBackground,transition:`all ${o.motionDurationMid}`}},[`${n}-icon`]:{fontSize:l,lineHeight:`${s}px`}})}},$=o=>{const{componentCls:n}=o;return{[`@media (max-width: ${o.screenMD}px)`]:{[n]:{insetInlineEnd:o.backTopInlineEndMD}},[`@media (max-width: ${o.screenXS}px)`]:{[n]:{insetInlineEnd:o.backTopInlineEndXS}}}};var b=(0,k.Z)("BackTop",o=>{const{fontSizeHeading3:n,colorTextDescription:l,colorTextLightSolid:s,colorText:a,controlHeightLG:g}=o,m=(0,J.TS)(o,{backTopBackground:l,backTopColor:s,backTopHoverBackground:a,backTopFontSize:n,backTopSize:g,backTopBlockEnd:g*1.25,backTopInlineEnd:g*2.5,backTopInlineEndMD:g*1.5,backTopInlineEndXS:g*.5});return[ke(m),$(m)]},o=>({zIndexPopup:o.zIndexBase+10})),ae=o=>{const{prefixCls:n,className:l,rootClassName:s,visibilityHeight:a=400,target:g,onClick:m,duration:P=450}=o,[p,S]=t.useState(a===0),j=t.useRef(null),B=()=>j.current&&j.current.ownerDocument?j.current.ownerDocument:window,ge=(0,O.Z)(Tn=>{const Vn=(0,R.Z)(Tn.target,!0);S(Vn>=a)});t.useEffect(()=>{const Vn=(g||B)();return ge({target:Vn}),Vn==null||Vn.addEventListener("scroll",ge),()=>{ge.cancel(),Vn==null||Vn.removeEventListener("scroll",ge)}},[g]);const We=Tn=>{(0,Ce.Z)(0,{getContainer:g||B,duration:P}),m==null||m(Tn)},{getPrefixCls:Ee,direction:rt}=t.useContext(se.E_),at=Ee("back-top",n),Wt=Ee(),[kt,Zt]=b(at),dn=D()(Zt,at,{[`${at}-rtl`]:rt==="rtl"},l,s),nn=(0,mt.Z)(o,["prefixCls","className","rootClassName","children","visibilityHeight","target"]),wn=t.createElement("div",{className:`${at}-content`},t.createElement("div",{className:`${at}-icon`},t.createElement(Oe.Z,null)));return kt(t.createElement("div",Object.assign({},nn,{className:dn,onClick:We,ref:j}),t.createElement(Le.ZP,{visible:p,motionName:`${Wt}-fade`},Tn=>{let{className:Vn}=Tn;return(0,pt.Tm)(o.children||wn,pr=>{let{className:Ar}=pr;return{className:D()(Vn,Ar)}})})))},q=e(38914),Ye=e(73695),ot=e(12562),gt=e(19688),Et=e(72108),Nt=e(60409),Vt=e(29487),Bt=e(81496),tt=e(40256),st=e(42253);const Ft=10,jt=20;function Lt(o){const{fullscreen:n,validRange:l,generateConfig:s,locale:a,prefixCls:g,value:m,onChange:P,divRef:p}=o,S=s.getYear(m||s.getNow());let j=S-Ft,B=j+jt;l&&(j=s.getYear(l[0]),B=s.getYear(l[1])+1);const ge=a&&a.year==="\u5E74"?"\u5E74":"",We=[];for(let Ee=j;Ee{let rt=s.setYear(m,Ee);if(l){const[at,Wt]=l,kt=s.getYear(rt),Zt=s.getMonth(rt);kt===s.getYear(Wt)&&Zt>s.getMonth(Wt)&&(rt=s.setMonth(rt,s.getMonth(Wt))),kt===s.getYear(at)&&Ztp.current})}function un(o){const{prefixCls:n,fullscreen:l,validRange:s,value:a,generateConfig:g,locale:m,onChange:P,divRef:p}=o,S=g.getMonth(a||g.getNow());let j=0,B=11;if(s){const[Ee,rt]=s,at=g.getYear(a);g.getYear(rt)===at&&(B=g.getMonth(rt)),g.getYear(Ee)===at&&(j=g.getMonth(Ee))}const ge=m.shortMonths||g.locale.getShortMonths(m.locale),We=[];for(let Ee=j;Ee<=B;Ee+=1)We.push({label:ge[Ee],value:Ee});return t.createElement(ft.Z,{size:l?void 0:"small",className:`${n}-month-select`,value:S,options:We,onChange:Ee=>{P(g.setMonth(a,Ee))},getPopupContainer:()=>p.current})}function Ut(o){const{prefixCls:n,locale:l,mode:s,fullscreen:a,onModeChange:g}=o;return t.createElement(tt.Z,{onChange:m=>{let{target:{value:P}}=m;g(P)},value:s,size:a?void 0:"small",className:`${n}-mode-switch`},t.createElement(st.Z,{value:"month"},l.month),t.createElement(st.Z,{value:"year"},l.year))}function pn(o){const{prefixCls:n,fullscreen:l,mode:s,onChange:a,onModeChange:g}=o,m=t.useRef(null),P=(0,t.useContext)(Bt.aM),p=(0,t.useMemo)(()=>Object.assign(Object.assign({},P),{isFormItemInput:!1}),[P]),S=Object.assign(Object.assign({},o),{fullscreen:l,divRef:m});return t.createElement("div",{className:`${n}-header`,ref:m},t.createElement(Bt.aM.Provider,{value:p},t.createElement(Lt,Object.assign({},S,{onChange:j=>{a(j,"year")}})),s==="month"&&t.createElement(un,Object.assign({},S,{onChange:j=>{a(j,"month")}}))),t.createElement(Ut,Object.assign({},S,{onModeChange:g})))}var Sn=pn,Xt=e(81872),an=e(8455),ln=e(46902);const Pn=o=>{const{calendarCls:n,componentCls:l,fullBg:s,fullPanelBg:a,itemActiveBg:g}=o;return{[n]:Object.assign(Object.assign(Object.assign({},(0,an.kX)(o)),(0,_.Wf)(o)),{background:s,"&-rtl":{direction:"rtl"},[`${n}-header`]:{display:"flex",justifyContent:"flex-end",padding:`${o.paddingSM}px 0`,[`${n}-year-select`]:{minWidth:o.yearControlWidth},[`${n}-month-select`]:{minWidth:o.monthControlWidth,marginInlineStart:o.marginXS},[`${n}-mode-switch`]:{marginInlineStart:o.marginXS}}}),[`${n} ${l}-panel`]:{background:a,border:0,borderTop:`${o.lineWidth}px ${o.lineType} ${o.colorSplit}`,borderRadius:0,[`${l}-month-panel, ${l}-date-panel`]:{width:"auto"},[`${l}-body`]:{padding:`${o.paddingXS}px 0`},[`${l}-content`]:{width:"100%"}},[`${n}-mini`]:{borderRadius:o.borderRadiusLG,[`${n}-header`]:{paddingInlineEnd:o.paddingXS,paddingInlineStart:o.paddingXS},[`${l}-panel`]:{borderRadius:`0 0 ${o.borderRadiusLG}px ${o.borderRadiusLG}px`},[`${l}-content`]:{height:o.miniContentHeight,th:{height:"auto",padding:0,lineHeight:`${o.weekHeight}px`}},[`${l}-cell::before`]:{pointerEvents:"none"}},[`${n}${n}-full`]:{[`${l}-panel`]:{display:"block",width:"100%",textAlign:"end",background:s,border:0,[`${l}-body`]:{"th, td":{padding:0},th:{height:"auto",paddingInlineEnd:o.paddingSM,paddingBottom:o.paddingXXS,lineHeight:`${o.weekHeight}px`}}},[`${l}-cell`]:{"&::before":{display:"none"},"&:hover":{[`${n}-date`]:{background:o.controlItemBgHover}},[`${n}-date-today::before`]:{display:"none"},[`&-in-view${l}-cell-selected`]:{[`${n}-date, ${n}-date-today`]:{background:g}},"&-selected, &-selected:hover":{[`${n}-date, ${n}-date-today`]:{[`${n}-date-value`]:{color:o.colorPrimary}}}},[`${n}-date`]:{display:"block",width:"auto",height:"auto",margin:`0 ${o.marginXS/2}px`,padding:`${o.paddingXS/2}px ${o.paddingXS}px 0`,border:0,borderTop:`${o.lineWidthBold}px ${o.lineType} ${o.colorSplit}`,borderRadius:0,transition:`background ${o.motionDurationSlow}`,"&-value":{lineHeight:`${o.dateValueHeight}px`,transition:`color ${o.motionDurationSlow}`},"&-content":{position:"static",width:"auto",height:o.dateContentHeight,overflowY:"auto",color:o.colorText,lineHeight:o.lineHeight,textAlign:"start"},"&-today":{borderColor:o.colorPrimary,[`${n}-date-value`]:{color:o.colorText}}}},[`@media only screen and (max-width: ${o.screenXS}px) `]:{[`${n}`]:{[`${n}-header`]:{display:"block",[`${n}-year-select`]:{width:"50%"},[`${n}-month-select`]:{width:`calc(50% - ${o.paddingXS}px)`},[`${n}-mode-switch`]:{width:"100%",marginTop:o.marginXS,marginInlineStart:0,"> label":{width:"50%",textAlign:"center"}}}}}}};var zn=(0,k.Z)("Calendar",o=>{const n=`${o.componentCls}-calendar`,l=(0,J.TS)((0,ln.e5)(o),(0,an.vA)(o),{calendarCls:n,pickerCellInnerCls:`${o.componentCls}-cell-inner`,dateValueHeight:o.controlHeightSM,weekHeight:o.controlHeightSM*.75,dateContentHeight:(o.fontSizeSM*o.lineHeightSM+o.marginXS)*3+o.lineWidth*2});return[Pn(l)]},o=>({fullBg:o.colorBgContainer,fullPanelBg:o.colorBgContainer,itemActiveBg:o.controlItemBgActive,yearControlWidth:80,monthControlWidth:70,miniContentHeight:256}));function qn(o){function n(g,m){return g&&m&&o.getYear(g)===o.getYear(m)}function l(g,m){return n(g,m)&&o.getMonth(g)===o.getMonth(m)}function s(g,m){return l(g,m)&&o.getDate(g)===o.getDate(m)}return g=>{const{prefixCls:m,className:P,rootClassName:p,style:S,dateFullCellRender:j,dateCellRender:B,monthFullCellRender:ge,monthCellRender:We,cellRender:Ee,fullCellRender:rt,headerRender:at,value:Wt,defaultValue:kt,disabledDate:Zt,mode:dn,validRange:nn,fullscreen:wn=!0,onChange:Tn,onPanelChange:Vn,onSelect:pr}=g,{getPrefixCls:Ar,direction:Ko,calendar:Wr}=t.useContext(se.E_),Mr=Ar("picker",m),$r=`${Mr}-calendar`,[uo,$a]=zn(Mr),Vo=o.getNow(),[ya,xi]=(0,Nt.Z)(()=>Wt||o.getNow(),{defaultValue:kt,value:Wt}),[Ca,Aa]=(0,Nt.Z)("month",{value:dn}),mo=t.useMemo(()=>Ca==="year"?"month":"date",[Ca]),ia=t.useCallback(Fr=>(nn?o.isAfter(nn[0],Fr)||o.isAfter(Fr,nn[1]):!1)||!!(Zt!=null&&Zt(Fr)),[Zt,nn]),Gr=(Fr,la)=>{Vn==null||Vn(Fr,la)},ja=Fr=>{xi(Fr),s(Fr,ya)||((mo==="date"&&!l(Fr,ya)||mo==="month"&&!n(Fr,ya))&&Gr(Fr,Ca),Tn==null||Tn(Fr))},ni=Fr=>{Aa(Fr),Gr(ya,Fr)},Sa=(Fr,la)=>{ja(Fr),pr==null||pr(Fr,{source:la})},ua=()=>{const{locale:Fr}=g,la=Object.assign(Object.assign({},Xt.Z),Fr);return la.lang=Object.assign(Object.assign({},la.lang),(Fr||{}).lang),la},ll=t.useCallback((Fr,la)=>rt?rt(Fr,la):j?j(Fr):t.createElement("div",{className:D()(`${Mr}-cell-inner`,`${$r}-date`,{[`${$r}-date-today`]:s(Vo,Fr)})},t.createElement("div",{className:`${$r}-date-value`},String(o.getDate(Fr)).padStart(2,"0")),t.createElement("div",{className:`${$r}-date-content`},Ee?Ee(Fr,la):B&&B(Fr))),[j,B,Ee,rt]),$o=t.useCallback((Fr,la)=>{if(rt)return rt(Fr,la);if(ge)return ge(Fr);const Ii=la.locale.shortMonths||o.locale.getShortMonths(la.locale.locale);return t.createElement("div",{className:D()(`${Mr}-cell-inner`,`${$r}-date`,{[`${$r}-date-today`]:l(Vo,Fr)})},t.createElement("div",{className:`${$r}-date-value`},Ii[o.getMonth(Fr)]),t.createElement("div",{className:`${$r}-date-content`},Ee?Ee(Fr,la):We&&We(Fr)))},[ge,We,Ee,rt]),[Yo]=(0,Vt.Z)("Calendar",ua),di=(Fr,la)=>{if(la.type==="date")return ll(Fr,la);if(la.type==="month")return $o(Fr,Object.assign(Object.assign({},la),{locale:Yo==null?void 0:Yo.lang}))};return uo(t.createElement("div",{className:D()($r,{[`${$r}-full`]:wn,[`${$r}-mini`]:!wn,[`${$r}-rtl`]:Ko==="rtl"},Wr==null?void 0:Wr.className,P,p,$a),style:Object.assign(Object.assign({},Wr==null?void 0:Wr.style),S)},at?at({value:ya,type:Ca,onChange:Fr=>{Sa(Fr,"customize")},onTypeChange:ni}):t.createElement(Sn,{prefixCls:$r,value:ya,generateConfig:o,mode:Ca,fullscreen:wn,locale:Yo==null?void 0:Yo.lang,validRange:nn,onChange:Sa,onModeChange:ni}),t.createElement(Et.N4,{value:ya,prefixCls:Mr,locale:Yo==null?void 0:Yo.lang,generateConfig:o,cellRender:di,onSelect:Fr=>{Sa(Fr,mo)},mode:mo,picker:mo,disabledDate:ia,hideHeader:!0})))}}var yr=qn;const Bn=yr(gt.Z);Bn.generateCalendar=yr;var ne=Bn,qe=e(18624),_e=e(60698),ee=e(57370),Y=e(60412),Ae=e(14346),we=e(86717),ct=e(87498),be=e(73726),U=e(37734),Ie=e(38790),ht=e(47075),Se={animating:!1,autoplaying:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,dragging:!1,edgeDragged:!1,initialized:!1,lazyLoadedList:[],listHeight:null,listWidth:null,scrolling:!1,slideCount:null,slideHeight:null,slideWidth:null,swipeLeft:null,swiped:!1,swiping:!1,touchObject:{startX:0,startY:0,curX:0,curY:0},trackStyle:{},trackWidth:0,targetSlide:0},de=Se,T=e(70989);function N(o,n,l){return Math.max(n,Math.min(o,l))}var x=function(n){var l=["onTouchStart","onTouchMove","onWheel"];l.includes(n._reactName)||n.preventDefault()},te=function(n){for(var l=[],s=Ze(n),a=Ke(n),g=s;g0?1:0):0},et=function(n){return n.centerMode?Math.floor((n.slidesToShow-1)/2)+1+(parseInt(n.centerPadding)>0?1:0):n.slidesToShow},Ht=function(n){return n&&n.offsetWidth||0},dt=function(n){return n&&n.offsetHeight||0},Cn=function(n){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,s,a,g,m;return s=n.startX-n.curX,a=n.startY-n.curY,g=Math.atan2(a,s),m=Math.round(g*180/Math.PI),m<0&&(m=360-Math.abs(m)),m<=45&&m>=0||m<=360&&m>=315?"left":m>=135&&m<=225?"right":l===!0?m>=35&&m<=135?"up":"down":"vertical"},bn=function(n){var l=!0;return n.infinite||(n.centerMode&&n.currentSlide>=n.slideCount-1||n.slideCount<=n.slidesToShow||n.currentSlide>=n.slideCount-n.slidesToShow)&&(l=!1),l},Ct=function(n,l){var s={};return l.forEach(function(a){return s[a]=n[a]}),s},fn=function(n){var l=t.Children.count(n.children),s=n.listRef,a=Math.ceil(Ht(s)),g=n.trackRef&&n.trackRef.node,m=Math.ceil(Ht(g)),P;if(n.vertical)P=a;else{var p=n.centerMode&&parseInt(n.centerPadding)*2;typeof n.centerPadding=="string"&&n.centerPadding.slice(-1)==="%"&&(p*=a/100),P=Math.ceil((a-p)/n.slidesToShow)}var S=s&&dt(s.querySelector('[data-index="0"]')),j=S*n.slidesToShow,B=n.currentSlide===void 0?n.initialSlide:n.currentSlide;n.rtl&&n.currentSlide===void 0&&(B=l-1-n.initialSlide);var ge=n.lazyLoadedList||[],We=te((0,ee.Z)((0,ee.Z)({},n),{},{currentSlide:B,lazyLoadedList:ge}));ge=ge.concat(We);var Ee={slideCount:l,slideWidth:P,listWidth:a,trackWidth:m,currentSlide:B,slideHeight:S,listHeight:j,lazyLoadedList:ge};return n.autoplaying===null&&n.autoplay&&(Ee.autoplaying="playing"),Ee},zt=function(n){var l=n.waitForAnimate,s=n.animating,a=n.fade,g=n.infinite,m=n.index,P=n.slideCount,p=n.lazyLoad,S=n.currentSlide,j=n.centerMode,B=n.slidesToScroll,ge=n.slidesToShow,We=n.useCSS,Ee=n.lazyLoadedList;if(l&&s)return{};var rt=m,at,Wt,kt,Zt={},dn={},nn=g?m:N(m,0,P-1);if(a){if(!g&&(m<0||m>=P))return{};m<0?rt=m+P:m>=P&&(rt=m-P),p&&Ee.indexOf(rt)<0&&(Ee=Ee.concat(rt)),Zt={animating:!0,currentSlide:rt,lazyLoadedList:Ee,targetSlide:rt},dn={animating:!1,targetSlide:rt}}else at=rt,rt<0?(at=rt+P,g?P%B!==0&&(at=P-P%B):at=0):!bn(n)&&rt>S?rt=at=S:j&&rt>=P?(rt=g?P:P-1,at=g?0:P-1):rt>=P&&(at=rt-P,g?P%B!==0&&(at=0):at=P-ge),!g&&rt+ge>=P&&(at=P-ge),Wt=er((0,ee.Z)((0,ee.Z)({},n),{},{slideIndex:rt})),kt=er((0,ee.Z)((0,ee.Z)({},n),{},{slideIndex:at})),g||(Wt===kt&&(rt=at),Wt=kt),p&&(Ee=Ee.concat(te((0,ee.Z)((0,ee.Z)({},n),{},{currentSlide:rt})))),We?(Zt={animating:!0,currentSlide:at,trackStyle:Gn((0,ee.Z)((0,ee.Z)({},n),{},{left:Wt})),lazyLoadedList:Ee,targetSlide:nn},dn={animating:!1,currentSlide:at,trackStyle:_n((0,ee.Z)((0,ee.Z)({},n),{},{left:kt})),swipeLeft:null,targetSlide:nn}):Zt={currentSlide:at,trackStyle:_n((0,ee.Z)((0,ee.Z)({},n),{},{left:kt})),lazyLoadedList:Ee,targetSlide:nn};return{state:Zt,nextState:dn}},cn=function(n,l){var s,a,g,m,P,p=n.slidesToScroll,S=n.slidesToShow,j=n.slideCount,B=n.currentSlide,ge=n.targetSlide,We=n.lazyLoad,Ee=n.infinite;if(m=j%p!==0,s=m?0:(j-B)%p,l.message==="previous")g=s===0?p:S-s,P=B-g,We&&!Ee&&(a=B-g,P=a===-1?j-1:a),Ee||(P=ge-p);else if(l.message==="next")g=s===0?p:s,P=B+g,We&&!Ee&&(P=(B+p)%j+s),Ee||(P=ge+p);else if(l.message==="dots")P=l.index*l.slidesToScroll;else if(l.message==="children"){if(P=l.index,Ee){var rt=Hn((0,ee.Z)((0,ee.Z)({},n),{},{targetSlide:P}));P>l.currentSlide&&rt==="left"?P=P-j:P10)return{scrolling:!0};P&&(kt.swipeLength=pr);var Ar=(p?-1:1)*(kt.curX>kt.startX?1:-1);P&&(Ar=kt.curY>kt.startY?1:-1);var Ko=Math.ceil(rt/at),Wr=Cn(l.touchObject,P),Mr=kt.swipeLength;return Wt||(S===0&&(Wr==="right"||Wr==="down")||S+1>=Ko&&(Wr==="left"||Wr==="up")||!bn(l)&&(Wr==="left"||Wr==="up"))&&(Mr=kt.swipeLength*j,B===!1&&ge&&(ge(Wr),Tn.edgeDragged=!0)),!We&&Zt&&(Zt(Wr),Tn.swiped=!0),g?wn=Vn+Mr*(dn/nn)*Ar:p?wn=Vn-Mr*Ar:wn=Vn+Mr*Ar,P&&(wn=Vn+Mr*Ar),Tn=(0,ee.Z)((0,ee.Z)({},Tn),{},{touchObject:kt,swipeLeft:wn,trackStyle:_n((0,ee.Z)((0,ee.Z)({},l),{},{left:wn}))}),Math.abs(kt.curX-kt.startX)10&&(Tn.swiping=!0,x(n)),Tn}},Zn=function(n,l){var s=l.dragging,a=l.swipe,g=l.touchObject,m=l.listWidth,P=l.touchThreshold,p=l.verticalSwiping,S=l.listHeight,j=l.swipeToSlide,B=l.scrolling,ge=l.onSwipe,We=l.targetSlide,Ee=l.currentSlide,rt=l.infinite;if(!s)return a&&x(n),{};var at=p?S/P:m/P,Wt=Cn(g,p),kt={dragging:!1,edgeDragged:!1,scrolling:!1,swiping:!1,swiped:!1,swipeLeft:null,touchObject:{}};if(B||!g.swipeLength)return kt;if(g.swipeLength>at){x(n),ge&&ge(Wt);var Zt,dn,nn=rt?Ee:We;switch(Wt){case"left":case"up":dn=nn+An(l),Zt=j?vr(l,dn):dn,kt.currentDirection=0;break;case"right":case"down":dn=nn-An(l),Zt=j?vr(l,dn):dn,kt.currentDirection=1;break;default:Zt=nn}kt.triggerSlideHandler=Zt}else{var wn=er(l);kt.trackStyle=Gn((0,ee.Z)((0,ee.Z)({},l),{},{left:wn}))}return kt},Kn=function(n){for(var l=n.infinite?n.slideCount*2:n.slideCount,s=n.infinite?n.slidesToShow*-1:0,a=n.infinite?n.slidesToShow*-1:0,g=[];ss[s.length-1])l=s[s.length-1];else for(var g in s){if(ln.swipeLeft*-1)return s=p,!1}else if(p.offsetLeft-l+Ht(p)/2>n.swipeLeft*-1)return s=p,!1;return!0}),!s)return 0;var m=n.rtl===!0?n.slideCount-n.currentSlide:n.currentSlide,P=Math.abs(s.dataset.index-m)||1;return P}else return n.slidesToScroll},On=function(n,l){return l.reduce(function(s,a){return s&&n.hasOwnProperty(a)},!0)?null:console.error("Keys Missing:",n)},_n=function(n){On(n,["left","variableWidth","slideCount","slidesToShow","slideWidth"]);var l,s,a=n.slideCount+2*n.slidesToShow;n.vertical?s=a*n.slideHeight:l=Hr(n)*n.slideWidth;var g={opacity:1,transition:"",WebkitTransition:""};if(n.useTransform){var m=n.vertical?"translate3d(0px, "+n.left+"px, 0px)":"translate3d("+n.left+"px, 0px, 0px)",P=n.vertical?"translate3d(0px, "+n.left+"px, 0px)":"translate3d("+n.left+"px, 0px, 0px)",p=n.vertical?"translateY("+n.left+"px)":"translateX("+n.left+"px)";g=(0,ee.Z)((0,ee.Z)({},g),{},{WebkitTransform:m,transform:P,msTransform:p})}else n.vertical?g.top=n.left:g.left=n.left;return n.fade&&(g={opacity:1}),l&&(g.width=l),s&&(g.height=s),window&&!window.addEventListener&&window.attachEvent&&(n.vertical?g.marginTop=n.left+"px":g.marginLeft=n.left+"px"),g},Gn=function(n){On(n,["left","variableWidth","slideCount","slidesToShow","slideWidth","speed","cssEase"]);var l=_n(n);return n.useTransform?(l.WebkitTransition="-webkit-transform "+n.speed+"ms "+n.cssEase,l.transition="transform "+n.speed+"ms "+n.cssEase):n.vertical?l.transition="top "+n.speed+"ms "+n.cssEase:l.transition="left "+n.speed+"ms "+n.cssEase,l},er=function(n){if(n.unslick)return 0;On(n,["slideIndex","trackRef","infinite","centerMode","slideCount","slidesToShow","slidesToScroll","slideWidth","listWidth","variableWidth","slideHeight"]);var l=n.slideIndex,s=n.trackRef,a=n.infinite,g=n.centerMode,m=n.slideCount,P=n.slidesToShow,p=n.slidesToScroll,S=n.slideWidth,j=n.listWidth,B=n.variableWidth,ge=n.slideHeight,We=n.fade,Ee=n.vertical,rt=0,at,Wt,kt=0;if(We||n.slideCount===1)return 0;var Zt=0;if(a?(Zt=-Cr(n),m%p!==0&&l+p>m&&(Zt=-(l>m?P-(l-m):m%p)),g&&(Zt+=parseInt(P/2))):(m%p!==0&&l+p>m&&(Zt=P-m%p),g&&(Zt=parseInt(P/2))),rt=Zt*S,kt=Zt*ge,Ee?at=l*ge*-1+kt:at=l*S*-1+rt,B===!0){var dn,nn=s&&s.node;if(dn=l+Cr(n),Wt=nn&&nn.childNodes[dn],at=Wt?Wt.offsetLeft*-1:0,g===!0){dn=a?l+Cr(n):l,Wt=nn&&nn.children[dn],at=0;for(var wn=0;wnn.currentSlide?n.targetSlide>n.currentSlide+Pr(n)?"left":"right":n.targetSlide0&&(m+=1),a&&l%2===0&&(m+=1),m}return a?0:l-1},oo=function(n){var l=n.slidesToShow,s=n.centerMode,a=n.rtl,g=n.centerPadding;if(s){var m=(l-1)/2+1;return parseInt(g)>0&&(m+=1),!a&&l%2===0&&(m+=1),m}return a?l-1:0},Ur=function(){return!!(typeof window!="undefined"&&window.document&&window.document.createElement)},co=function(n){var l,s,a,g,m;n.rtl?m=n.slideCount-1-n.index:m=n.index,a=m<0||m>=n.slideCount,n.centerMode?(g=Math.floor(n.slidesToShow/2),s=(m-n.currentSlide)%n.slideCount===0,m>n.currentSlide-g-1&&m<=n.currentSlide+g&&(l=!0)):l=n.currentSlide<=m&&m=n.slideCount?P=n.targetSlide-n.slideCount:P=n.targetSlide;var p=m===P;return{"slick-slide":!0,"slick-active":l,"slick-center":s,"slick-cloned":a,"slick-current":p}},kr=function(n){var l={};return(n.variableWidth===void 0||n.variableWidth===!1)&&(l.width=n.slideWidth),n.fade&&(l.position="relative",n.vertical&&n.slideHeight?l.top=-n.index*parseInt(n.slideHeight):l.left=-n.index*parseInt(n.slideWidth),l.opacity=n.currentSlide===n.index?1:0,n.useCSS&&(l.transition="opacity "+n.speed+"ms "+n.cssEase+", visibility "+n.speed+"ms "+n.cssEase)),l},_r=function(n,l){return n.key+"-"+l},xo=function(n){var l,s=[],a=[],g=[],m=t.Children.count(n.children),P=Ze(n),p=Ke(n);return t.Children.forEach(n.children,function(S,j){var B,ge={message:"children",index:j,slidesToScroll:n.slidesToScroll,currentSlide:n.currentSlide};!n.lazyLoad||n.lazyLoad&&n.lazyLoadedList.indexOf(j)>=0?B=S:B=t.createElement("div",null);var We=kr((0,ee.Z)((0,ee.Z)({},n),{},{index:j})),Ee=B.props.className||"",rt=co((0,ee.Z)((0,ee.Z)({},n),{},{index:j}));if(s.push(t.cloneElement(B,{key:"original"+_r(B,j),"data-index":j,className:D()(rt,Ee),tabIndex:"-1","aria-hidden":!rt["slick-active"],style:(0,ee.Z)((0,ee.Z)({outline:"none"},B.props.style||{}),We),onClick:function(kt){B.props&&B.props.onClick&&B.props.onClick(kt),n.focusOnSelect&&n.focusOnSelect(ge)}})),n.infinite&&n.fade===!1){var at=m-j;at<=Cr(n)&&m!==n.slidesToShow&&(l=-at,l>=P&&(B=S),rt=co((0,ee.Z)((0,ee.Z)({},n),{},{index:l})),a.push(t.cloneElement(B,{key:"precloned"+_r(B,l),"data-index":l,tabIndex:"-1",className:D()(rt,Ee),"aria-hidden":!rt["slick-active"],style:(0,ee.Z)((0,ee.Z)({},B.props.style||{}),We),onClick:function(kt){B.props&&B.props.onClick&&B.props.onClick(kt),n.focusOnSelect&&n.focusOnSelect(ge)}}))),m!==n.slidesToShow&&(l=m+j,l=dn&&ge<=kt:ge===dn}),wn={message:"dots",index:at,slidesToScroll:S,currentSlide:ge},Tn=this.clickHandler.bind(this,wn);rt=rt.concat(t.createElement("li",{key:at,className:nn},t.cloneElement(this.props.customPaging(at),{onClick:Tn})))}return t.cloneElement(this.props.appendDots(rt),(0,ee.Z)({className:this.props.dotsClass},Ee))}}]),l}(t.PureComponent),wr=function(o){(0,ct.Z)(l,o);var n=(0,be.Z)(l);function l(){return(0,Y.Z)(this,l),n.apply(this,arguments)}return(0,Ae.Z)(l,[{key:"clickHandler",value:function(a,g){g&&g.preventDefault(),this.props.clickHandler(a,g)}},{key:"render",value:function(){var a={"slick-arrow":!0,"slick-prev":!0},g=this.clickHandler.bind(this,{message:"previous"});!this.props.infinite&&(this.props.currentSlide===0||this.props.slideCount<=this.props.slidesToShow)&&(a["slick-disabled"]=!0,g=null);var m={key:"0","data-role":"none",className:D()(a),style:{display:"block"},onClick:g},P={currentSlide:this.props.currentSlide,slideCount:this.props.slideCount},p;return this.props.prevArrow?p=t.cloneElement(this.props.prevArrow,(0,ee.Z)((0,ee.Z)({},m),P)):p=t.createElement("button",(0,_e.Z)({key:"0",type:"button"},m)," ","Previous"),p}}]),l}(t.PureComponent),or=function(o){(0,ct.Z)(l,o);var n=(0,be.Z)(l);function l(){return(0,Y.Z)(this,l),n.apply(this,arguments)}return(0,Ae.Z)(l,[{key:"clickHandler",value:function(a,g){g&&g.preventDefault(),this.props.clickHandler(a,g)}},{key:"render",value:function(){var a={"slick-arrow":!0,"slick-next":!0},g=this.clickHandler.bind(this,{message:"next"});bn(this.props)||(a["slick-disabled"]=!0,g=null);var m={key:"1","data-role":"none",className:D()(a),style:{display:"block"},onClick:g},P={currentSlide:this.props.currentSlide,slideCount:this.props.slideCount},p;return this.props.nextArrow?p=t.cloneElement(this.props.nextArrow,(0,ee.Z)((0,ee.Z)({},m),P)):p=t.createElement("button",(0,_e.Z)({key:"1",type:"button"},m)," ","Next"),p}}]),l}(t.PureComponent),Or=e(20759),fo=["animating"],Sr=function(o){(0,ct.Z)(l,o);var n=(0,be.Z)(l);function l(s){var a;(0,Y.Z)(this,l),a=n.call(this,s),(0,U.Z)((0,we.Z)(a),"listRefHandler",function(m){return a.list=m}),(0,U.Z)((0,we.Z)(a),"trackRefHandler",function(m){return a.track=m}),(0,U.Z)((0,we.Z)(a),"adaptHeight",function(){if(a.props.adaptiveHeight&&a.list){var m=a.list.querySelector('[data-index="'.concat(a.state.currentSlide,'"]'));a.list.style.height=dt(m)+"px"}}),(0,U.Z)((0,we.Z)(a),"componentDidMount",function(){if(a.props.onInit&&a.props.onInit(),a.props.lazyLoad){var m=te((0,ee.Z)((0,ee.Z)({},a.props),a.state));m.length>0&&(a.setState(function(p){return{lazyLoadedList:p.lazyLoadedList.concat(m)}}),a.props.onLazyLoad&&a.props.onLazyLoad(m))}var P=(0,ee.Z)({listRef:a.list,trackRef:a.track},a.props);a.updateState(P,!0,function(){a.adaptHeight(),a.props.autoplay&&a.autoPlay("playing")}),a.props.lazyLoad==="progressive"&&(a.lazyLoadTimer=setInterval(a.progressiveLazyLoad,1e3)),a.ro=new Or.Z(function(){a.state.animating?(a.onWindowResized(!1),a.callbackTimers.push(setTimeout(function(){return a.onWindowResized()},a.props.speed))):a.onWindowResized()}),a.ro.observe(a.list),document.querySelectorAll&&Array.prototype.forEach.call(document.querySelectorAll(".slick-slide"),function(p){p.onfocus=a.props.pauseOnFocus?a.onSlideFocus:null,p.onblur=a.props.pauseOnFocus?a.onSlideBlur:null}),window.addEventListener?window.addEventListener("resize",a.onWindowResized):window.attachEvent("onresize",a.onWindowResized)}),(0,U.Z)((0,we.Z)(a),"componentWillUnmount",function(){a.animationEndCallback&&clearTimeout(a.animationEndCallback),a.lazyLoadTimer&&clearInterval(a.lazyLoadTimer),a.callbackTimers.length&&(a.callbackTimers.forEach(function(m){return clearTimeout(m)}),a.callbackTimers=[]),window.addEventListener?window.removeEventListener("resize",a.onWindowResized):window.detachEvent("onresize",a.onWindowResized),a.autoplayTimer&&clearInterval(a.autoplayTimer),a.ro.disconnect()}),(0,U.Z)((0,we.Z)(a),"componentDidUpdate",function(m){if(a.checkImagesLoad(),a.props.onReInit&&a.props.onReInit(),a.props.lazyLoad){var P=te((0,ee.Z)((0,ee.Z)({},a.props),a.state));P.length>0&&(a.setState(function(j){return{lazyLoadedList:j.lazyLoadedList.concat(P)}}),a.props.onLazyLoad&&a.props.onLazyLoad(P))}a.adaptHeight();var p=(0,ee.Z)((0,ee.Z)({listRef:a.list,trackRef:a.track},a.props),a.state),S=a.didPropsChange(m);S&&a.updateState(p,S,function(){a.state.currentSlide>=t.Children.count(a.props.children)&&a.changeSlide({message:"index",index:t.Children.count(a.props.children)-a.props.slidesToShow,currentSlide:a.state.currentSlide}),(m.autoplay!==a.props.autoplay||m.autoplaySpeed!==a.props.autoplaySpeed)&&(!m.autoplay&&a.props.autoplay?a.autoPlay("playing"):a.props.autoplay?a.autoPlay("update"):a.pause("paused"))})}),(0,U.Z)((0,we.Z)(a),"onWindowResized",function(m){a.debouncedResize&&a.debouncedResize.cancel(),a.debouncedResize=(0,T.D)(50,function(){return a.resizeWindow(m)}),a.debouncedResize()}),(0,U.Z)((0,we.Z)(a),"resizeWindow",function(){var m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,P=!!(a.track&&a.track.node);if(P){var p=(0,ee.Z)((0,ee.Z)({listRef:a.list,trackRef:a.track},a.props),a.state);a.updateState(p,m,function(){a.props.autoplay?a.autoPlay("update"):a.pause("paused")}),a.setState({animating:!1}),clearTimeout(a.animationEndCallback),delete a.animationEndCallback}}),(0,U.Z)((0,we.Z)(a),"updateState",function(m,P,p){var S=fn(m);m=(0,ee.Z)((0,ee.Z)((0,ee.Z)({},m),S),{},{slideIndex:S.currentSlide});var j=er(m);m=(0,ee.Z)((0,ee.Z)({},m),{},{left:j});var B=_n(m);(P||t.Children.count(a.props.children)!==t.Children.count(m.children))&&(S.trackStyle=B),a.setState(S,p)}),(0,U.Z)((0,we.Z)(a),"ssrInit",function(){if(a.props.variableWidth){var m=0,P=0,p=[],S=Cr((0,ee.Z)((0,ee.Z)((0,ee.Z)({},a.props),a.state),{},{slideCount:a.props.children.length})),j=Lr((0,ee.Z)((0,ee.Z)((0,ee.Z)({},a.props),a.state),{},{slideCount:a.props.children.length}));a.props.children.forEach(function(Tn){p.push(Tn.props.style.width),m+=Tn.props.style.width});for(var B=0;B=P&&a.onWindowResized()};if(!S.onclick)S.onclick=function(){return S.parentNode.focus()};else{var B=S.onclick;S.onclick=function(ge){B(ge),S.parentNode.focus()}}S.onload||(a.props.lazyLoad?S.onload=function(){a.adaptHeight(),a.callbackTimers.push(setTimeout(a.onWindowResized,a.props.speed))}:(S.onload=j,S.onerror=function(){j(),a.props.onLazyLoadError&&a.props.onLazyLoadError()}))})}),(0,U.Z)((0,we.Z)(a),"progressiveLazyLoad",function(){for(var m=[],P=(0,ee.Z)((0,ee.Z)({},a.props),a.state),p=a.state.currentSlide;p=-Cr(P);S--)if(a.state.lazyLoadedList.indexOf(S)<0){m.push(S);break}m.length>0?(a.setState(function(j){return{lazyLoadedList:j.lazyLoadedList.concat(m)}}),a.props.onLazyLoad&&a.props.onLazyLoad(m)):a.lazyLoadTimer&&(clearInterval(a.lazyLoadTimer),delete a.lazyLoadTimer)}),(0,U.Z)((0,we.Z)(a),"slideHandler",function(m){var P=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,p=a.props,S=p.asNavFor,j=p.beforeChange,B=p.onLazyLoad,ge=p.speed,We=p.afterChange,Ee=a.state.currentSlide,rt=zt((0,ee.Z)((0,ee.Z)((0,ee.Z)({index:m},a.props),a.state),{},{trackRef:a.track,useCSS:a.props.useCSS&&!P})),at=rt.state,Wt=rt.nextState;if(at){j&&j(Ee,at.currentSlide);var kt=at.lazyLoadedList.filter(function(Zt){return a.state.lazyLoadedList.indexOf(Zt)<0});B&&kt.length>0&&B(kt),!a.props.waitForAnimate&&a.animationEndCallback&&(clearTimeout(a.animationEndCallback),We&&We(Ee),delete a.animationEndCallback),a.setState(at,function(){S&&a.asNavForIndex!==m&&(a.asNavForIndex=m,S.innerSlider.slideHandler(m)),Wt&&(a.animationEndCallback=setTimeout(function(){var Zt=Wt.animating,dn=(0,ht.Z)(Wt,fo);a.setState(dn,function(){a.callbackTimers.push(setTimeout(function(){return a.setState({animating:Zt})},10)),We&&We(at.currentSlide),delete a.animationEndCallback})},ge))})}}),(0,U.Z)((0,we.Z)(a),"changeSlide",function(m){var P=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,p=(0,ee.Z)((0,ee.Z)({},a.props),a.state),S=cn(p,m);if(!(S!==0&&!S)&&(P===!0?a.slideHandler(S,P):a.slideHandler(S),a.props.autoplay&&a.autoPlay("update"),a.props.focusOnSelect)){var j=a.list.querySelectorAll(".slick-current");j[0]&&j[0].focus()}}),(0,U.Z)((0,we.Z)(a),"clickHandler",function(m){a.clickable===!1&&(m.stopPropagation(),m.preventDefault()),a.clickable=!0}),(0,U.Z)((0,we.Z)(a),"keyHandler",function(m){var P=yn(m,a.props.accessibility,a.props.rtl);P!==""&&a.changeSlide({message:P})}),(0,U.Z)((0,we.Z)(a),"selectHandler",function(m){a.changeSlide(m)}),(0,U.Z)((0,we.Z)(a),"disableBodyScroll",function(){var m=function(p){p=p||window.event,p.preventDefault&&p.preventDefault(),p.returnValue=!1};window.ontouchmove=m}),(0,U.Z)((0,we.Z)(a),"enableBodyScroll",function(){window.ontouchmove=null}),(0,U.Z)((0,we.Z)(a),"swipeStart",function(m){a.props.verticalSwiping&&a.disableBodyScroll();var P=Fn(m,a.props.swipe,a.props.draggable);P!==""&&a.setState(P)}),(0,U.Z)((0,we.Z)(a),"swipeMove",function(m){var P=Yn(m,(0,ee.Z)((0,ee.Z)((0,ee.Z)({},a.props),a.state),{},{trackRef:a.track,listRef:a.list,slideIndex:a.state.currentSlide}));P&&(P.swiping&&(a.clickable=!1),a.setState(P))}),(0,U.Z)((0,we.Z)(a),"swipeEnd",function(m){var P=Zn(m,(0,ee.Z)((0,ee.Z)((0,ee.Z)({},a.props),a.state),{},{trackRef:a.track,listRef:a.list,slideIndex:a.state.currentSlide}));if(P){var p=P.triggerSlideHandler;delete P.triggerSlideHandler,a.setState(P),p!==void 0&&(a.slideHandler(p),a.props.verticalSwiping&&a.enableBodyScroll())}}),(0,U.Z)((0,we.Z)(a),"touchEnd",function(m){a.swipeEnd(m),a.clickable=!0}),(0,U.Z)((0,we.Z)(a),"slickPrev",function(){a.callbackTimers.push(setTimeout(function(){return a.changeSlide({message:"previous"})},0))}),(0,U.Z)((0,we.Z)(a),"slickNext",function(){a.callbackTimers.push(setTimeout(function(){return a.changeSlide({message:"next"})},0))}),(0,U.Z)((0,we.Z)(a),"slickGoTo",function(m){var P=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(m=Number(m),isNaN(m))return"";a.callbackTimers.push(setTimeout(function(){return a.changeSlide({message:"index",index:m,currentSlide:a.state.currentSlide},P)},0))}),(0,U.Z)((0,we.Z)(a),"play",function(){var m;if(a.props.rtl)m=a.state.currentSlide-a.props.slidesToScroll;else if(bn((0,ee.Z)((0,ee.Z)({},a.props),a.state)))m=a.state.currentSlide+a.props.slidesToScroll;else return!1;a.slideHandler(m)}),(0,U.Z)((0,we.Z)(a),"autoPlay",function(m){a.autoplayTimer&&clearInterval(a.autoplayTimer);var P=a.state.autoplaying;if(m==="update"){if(P==="hovered"||P==="focused"||P==="paused")return}else if(m==="leave"){if(P==="paused"||P==="focused")return}else if(m==="blur"&&(P==="paused"||P==="hovered"))return;a.autoplayTimer=setInterval(a.play,a.props.autoplaySpeed+50),a.setState({autoplaying:"playing"})}),(0,U.Z)((0,we.Z)(a),"pause",function(m){a.autoplayTimer&&(clearInterval(a.autoplayTimer),a.autoplayTimer=null);var P=a.state.autoplaying;m==="paused"?a.setState({autoplaying:"paused"}):m==="focused"?(P==="hovered"||P==="playing")&&a.setState({autoplaying:"focused"}):P==="playing"&&a.setState({autoplaying:"hovered"})}),(0,U.Z)((0,we.Z)(a),"onDotsOver",function(){return a.props.autoplay&&a.pause("hovered")}),(0,U.Z)((0,we.Z)(a),"onDotsLeave",function(){return a.props.autoplay&&a.state.autoplaying==="hovered"&&a.autoPlay("leave")}),(0,U.Z)((0,we.Z)(a),"onTrackOver",function(){return a.props.autoplay&&a.pause("hovered")}),(0,U.Z)((0,we.Z)(a),"onTrackLeave",function(){return a.props.autoplay&&a.state.autoplaying==="hovered"&&a.autoPlay("leave")}),(0,U.Z)((0,we.Z)(a),"onSlideFocus",function(){return a.props.autoplay&&a.pause("focused")}),(0,U.Z)((0,we.Z)(a),"onSlideBlur",function(){return a.props.autoplay&&a.state.autoplaying==="focused"&&a.autoPlay("blur")}),(0,U.Z)((0,we.Z)(a),"render",function(){var m=D()("slick-slider",a.props.className,{"slick-vertical":a.props.vertical,"slick-initialized":!0}),P=(0,ee.Z)((0,ee.Z)({},a.props),a.state),p=Ct(P,["fade","cssEase","speed","infinite","centerMode","focusOnSelect","currentSlide","lazyLoad","lazyLoadedList","rtl","slideWidth","slideHeight","listHeight","vertical","slidesToShow","slidesToScroll","slideCount","trackStyle","variableWidth","unslick","centerPadding","targetSlide","useCSS"]),S=a.props.pauseOnHover;p=(0,ee.Z)((0,ee.Z)({},p),{},{onMouseEnter:S?a.onTrackOver:null,onMouseLeave:S?a.onTrackLeave:null,onMouseOver:S?a.onTrackOver:null,focusOnSelect:a.props.focusOnSelect&&a.clickable?a.selectHandler:null});var j;if(a.props.dots===!0&&a.state.slideCount>=a.props.slidesToShow){var B=Ct(P,["dotsClass","slideCount","slidesToShow","currentSlide","slidesToScroll","clickHandler","children","customPaging","infinite","appendDots"]),ge=a.props.pauseOnDotsHover;B=(0,ee.Z)((0,ee.Z)({},B),{},{clickHandler:a.changeSlide,onMouseEnter:ge?a.onDotsLeave:null,onMouseOver:ge?a.onDotsOver:null,onMouseLeave:ge?a.onDotsLeave:null}),j=t.createElement(Un,B)}var We,Ee,rt=Ct(P,["infinite","centerMode","currentSlide","slideCount","slidesToShow","prevArrow","nextArrow"]);rt.clickHandler=a.changeSlide,a.props.arrows&&(We=t.createElement(wr,rt),Ee=t.createElement(or,rt));var at=null;a.props.vertical&&(at={height:a.state.listHeight});var Wt=null;a.props.vertical===!1?a.props.centerMode===!0&&(Wt={padding:"0px "+a.props.centerPadding}):a.props.centerMode===!0&&(Wt={padding:a.props.centerPadding+" 0px"});var kt=(0,ee.Z)((0,ee.Z)({},at),Wt),Zt=a.props.touchMove,dn={className:"slick-list",style:kt,onClick:a.clickHandler,onMouseDown:Zt?a.swipeStart:null,onMouseMove:a.state.dragging&&Zt?a.swipeMove:null,onMouseUp:Zt?a.swipeEnd:null,onMouseLeave:a.state.dragging&&Zt?a.swipeEnd:null,onTouchStart:Zt?a.swipeStart:null,onTouchMove:a.state.dragging&&Zt?a.swipeMove:null,onTouchEnd:Zt?a.touchEnd:null,onTouchCancel:a.state.dragging&&Zt?a.swipeEnd:null,onKeyDown:a.props.accessibility?a.keyHandler:null},nn={className:m,dir:"ltr",style:a.props.style};return a.props.unslick&&(dn={className:"slick-list"},nn={className:m,style:a.props.style}),t.createElement("div",nn,a.props.unslick?"":We,t.createElement("div",(0,_e.Z)({ref:a.listRefHandler},dn),t.createElement(br,(0,_e.Z)({ref:a.trackRefHandler},p),a.props.children)),a.props.unslick?"":Ee,a.props.unslick?"":j)}),a.list=null,a.track=null,a.state=(0,ee.Z)((0,ee.Z)({},de),{},{currentSlide:a.props.initialSlide,slideCount:t.Children.count(a.props.children)}),a.callbackTimers=[],a.clickable=!0,a.debouncedResize=null;var g=a.ssrInit();return a.state=(0,ee.Z)((0,ee.Z)({},a.state),g),a}return(0,Ae.Z)(l,[{key:"didPropsChange",value:function(a){for(var g=!1,m=0,P=Object.keys(this.props);m1&&arguments[1]!==void 0?arguments[1]:!1;return a.innerSlider.slickGoTo(g,m)}),(0,U.Z)((0,we.Z)(a),"slickPause",function(){return a.innerSlider.pause("paused")}),(0,U.Z)((0,we.Z)(a),"slickPlay",function(){return a.innerSlider.autoPlay("play")}),a.state={breakpoint:null},a._responsiveMediaHandlers=[],a}return(0,Ae.Z)(l,[{key:"media",value:function(a,g){var m=window.matchMedia(a),P=function(S){var j=S.matches;j&&g()};m.addListener(P),P(m),this._responsiveMediaHandlers.push({mql:m,query:a,listener:P})}},{key:"componentDidMount",value:function(){var a=this;if(this.props.responsive){var g=this.props.responsive.map(function(P){return P.breakpoint});g.sort(function(P,p){return P-p}),g.forEach(function(P,p){var S;p===0?S=Vr()({minWidth:0,maxWidth:P}):S=Vr()({minWidth:g[p-1]+1,maxWidth:P}),Ur()&&a.media(S,function(){a.setState({breakpoint:P})})});var m=Vr()({minWidth:g.slice(-1)[0]});Ur()&&this.media(m,function(){a.setState({breakpoint:null})})}}},{key:"componentWillUnmount",value:function(){this._responsiveMediaHandlers.forEach(function(a){a.mql.removeListener(a.listener)})}},{key:"render",value:function(){var a=this,g,m;this.state.breakpoint?(m=this.props.responsive.filter(function(at){return at.breakpoint===a.state.breakpoint}),g=m[0].settings==="unslick"?"unslick":(0,ee.Z)((0,ee.Z)((0,ee.Z)({},Do),this.props),m[0].settings)):g=(0,ee.Z)((0,ee.Z)({},Do),this.props),g.centerMode&&(g.slidesToScroll>1,g.slidesToScroll=1),g.fade&&(g.slidesToShow>1,g.slidesToScroll>1,g.slidesToShow=1,g.slidesToScroll=1);var P=t.Children.toArray(this.props.children);P=P.filter(function(at){return typeof at=="string"?!!at.trim():!!at}),g.variableWidth&&(g.rows>1||g.slidesPerRow>1)&&(console.warn("variableWidth is not supported in case of rows > 1 or slidesPerRow > 1"),g.variableWidth=!1);for(var p=[],S=null,j=0;j=P.length));Ee+=1)We.push(t.cloneElement(P[Ee],{key:100*j+10*ge+Ee,tabIndex:-1,style:{width:"".concat(100/g.slidesPerRow,"%"),display:"inline-block"}}));B.push(t.createElement("div",{key:10*j+ge},We))}g.variableWidth?p.push(t.createElement("div",{key:j,style:{width:S}},B)):p.push(t.createElement("div",{key:j},B))}if(g==="unslick"){var rt="regular slider "+(this.props.className||"");return t.createElement("div",{className:rt},P)}else p.length<=g.slidesToShow&&(g.unslick=!0);return t.createElement(Sr,(0,_e.Z)({style:this.props.style,ref:this.innerSliderRefHandler},g),p)}}]),l}(t.Component),fa=sa;const Oa=o=>{const{componentCls:n,antCls:l,carouselArrowSize:s,carouselDotOffset:a,marginXXS:g}=o,m=-s*1.25,P=g;return{[n]:Object.assign(Object.assign({},(0,_.Wf)(o)),{".slick-slider":{position:"relative",display:"block",boxSizing:"border-box",touchAction:"pan-y",WebkitTouchCallout:"none",WebkitTapHighlightColor:"transparent",".slick-track, .slick-list":{transform:"translate3d(0, 0, 0)",touchAction:"pan-y"}},".slick-list":{position:"relative",display:"block",margin:0,padding:0,overflow:"hidden","&:focus":{outline:"none"},"&.dragging":{cursor:"pointer"},".slick-slide":{pointerEvents:"none",[`input${l}-radio-input, input${l}-checkbox-input`]:{visibility:"hidden"},"&.slick-active":{pointerEvents:"auto",[`input${l}-radio-input, input${l}-checkbox-input`]:{visibility:"visible"}},"> div > div":{verticalAlign:"bottom"}}},".slick-track":{position:"relative",top:0,insetInlineStart:0,display:"block","&::before, &::after":{display:"table",content:'""'},"&::after":{clear:"both"}},".slick-slide":{display:"none",float:"left",height:"100%",minHeight:1,img:{display:"block"},"&.dragging img":{pointerEvents:"none"}},".slick-initialized .slick-slide":{display:"block"},".slick-vertical .slick-slide":{display:"block",height:"auto"},".slick-arrow.slick-hidden":{display:"none"},".slick-prev, .slick-next":{position:"absolute",top:"50%",display:"block",width:s,height:s,marginTop:-s/2,padding:0,color:"transparent",fontSize:0,lineHeight:0,background:"transparent",border:0,outline:"none",cursor:"pointer","&:hover, &:focus":{color:"transparent",background:"transparent",outline:"none","&::before":{opacity:1}},"&.slick-disabled::before":{opacity:.25}},".slick-prev":{insetInlineStart:m,"&::before":{content:'"\u2190"'}},".slick-next":{insetInlineEnd:m,"&::before":{content:'"\u2192"'}},".slick-dots":{position:"absolute",insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:15,display:"flex !important",justifyContent:"center",paddingInlineStart:0,margin:0,listStyle:"none","&-bottom":{bottom:a},"&-top":{top:a,bottom:"auto"},li:{position:"relative",display:"inline-block",flex:"0 1 auto",boxSizing:"content-box",width:o.dotWidth,height:o.dotHeight,marginInline:P,padding:0,textAlign:"center",textIndent:-999,verticalAlign:"top",transition:`all ${o.motionDurationSlow}`,button:{position:"relative",display:"block",width:"100%",height:o.dotHeight,padding:0,color:"transparent",fontSize:0,background:o.colorBgContainer,border:0,borderRadius:1,outline:"none",cursor:"pointer",opacity:.3,transition:`all ${o.motionDurationSlow}`,"&: hover, &:focus":{opacity:.75},"&::after":{position:"absolute",inset:-P,content:'""'}},"&.slick-active":{width:o.dotActiveWidth,"& button":{background:o.colorBgContainer,opacity:1},"&: hover, &:focus":{opacity:1}}}}})}},Oo=o=>{const{componentCls:n,carouselDotOffset:l,marginXXS:s}=o,a={width:o.dotHeight,height:o.dotWidth};return{[`${n}-vertical`]:{".slick-dots":{top:"50%",bottom:"auto",flexDirection:"column",width:o.dotHeight,height:"auto",margin:0,transform:"translateY(-50%)","&-left":{insetInlineEnd:"auto",insetInlineStart:l},"&-right":{insetInlineEnd:l,insetInlineStart:"auto"},li:Object.assign(Object.assign({},a),{margin:`${s}px 0`,verticalAlign:"baseline",button:a,"&.slick-active":Object.assign(Object.assign({},a),{button:a})})}}}},zo=o=>{const{componentCls:n}=o;return[{[`${n}-rtl`]:{direction:"rtl",".slick-dots":{[`${n}-rtl&`]:{flexDirection:"row-reverse"}}}},{[`${n}-vertical`]:{".slick-dots":{[`${n}-rtl&`]:{flexDirection:"column"}}}}]};var va=(0,k.Z)("Carousel",o=>{const{controlHeightLG:n,controlHeightSM:l}=o,s=(0,J.TS)(o,{carouselArrowSize:n/2,carouselDotOffset:l/2});return[Oa(s),Oo(s),zo(s)]},()=>({dotWidth:16,dotHeight:3,dotWidthActive:24,dotActiveWidth:24}),{deprecatedTokens:[["dotWidthActive","dotActiveWidth"]]}),vi=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{dots:l=!0,arrows:s=!1,draggable:a=!1,waitForAnimate:g=!1,dotPosition:m="bottom",vertical:P=m==="left"||m==="right",rootClassName:p,className:S,style:j,id:B}=o,ge=vi(o,["dots","arrows","draggable","waitForAnimate","dotPosition","vertical","rootClassName","className","style","id"]),{getPrefixCls:We,direction:Ee,carousel:rt}=t.useContext(se.E_),at=t.useRef(),Wt=function(Ko){let Wr=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;at.current.slickGoTo(Ko,Wr)};t.useImperativeHandle(n,()=>({goTo:Wt,autoPlay:at.current.innerSlider.autoPlay,innerSlider:at.current.innerSlider,prev:at.current.slickPrev,next:at.current.slickNext}),[at.current]);const kt=t.useRef(t.Children.count(o.children));t.useEffect(()=>{kt.current!==t.Children.count(o.children)&&(Wt(o.initialSlide||0,!1),kt.current=t.Children.count(o.children))},[o.children]);const Zt=Object.assign({vertical:P,className:D()(S,rt==null?void 0:rt.className),style:Object.assign(Object.assign({},rt==null?void 0:rt.style),j)},ge);Zt.effect==="fade"&&(Zt.fade=!0);const dn=We("carousel",Zt.prefixCls),nn="slick-dots",wn=!!l,Tn=D()(nn,`${nn}-${m}`,typeof l=="boolean"?!1:l==null?void 0:l.className),[Vn,pr]=va(dn),Ar=D()(dn,{[`${dn}-rtl`]:Ee==="rtl",[`${dn}-vertical`]:Zt.vertical},pr,p);return Vn(t.createElement("div",{className:Ar,id:B},t.createElement(fa,Object.assign({ref:at},Zt,{dots:wn,dotsClass:Tn,arrows:s,draggable:a,verticalSwiping:P,waitForAnimate:g}))))}),Ge=e(61494),Tt=e(38904),en=e(31188),kn=e(82968),Nr=e(41496),Tr=e(58785),ur=e(33181),to=e(22802),ra=e(51244),v=e(28314),V=e(66671),G=["b"],Pe=["v"],ve=function(n){return Math.round(Number(n||0))},vt=function(n){if(n&&(0,Ie.Z)(n)==="object"&&"h"in n&&"b"in n){var l=n,s=l.b,a=(0,ht.Z)(l,G);return(0,ee.Z)((0,ee.Z)({},a),{},{v:s})}return typeof n=="string"&&/hsb/.test(n)?n.replace(/hsb/,"hsv"):n},nt=function(o){(0,ct.Z)(l,o);var n=(0,be.Z)(l);function l(s){return(0,Y.Z)(this,l),n.call(this,vt(s))}return(0,Ae.Z)(l,[{key:"toHsbString",value:function(){var a=this.toHsb(),g=ve(a.s*100),m=ve(a.b*100),P=ve(a.h),p=a.a,S="hsb(".concat(P,", ").concat(g,"%, ").concat(m,"%)"),j="hsba(".concat(P,", ").concat(g,"%, ").concat(m,"%, ").concat(p.toFixed(p===0?0:2),")");return p===1?S:j}},{key:"toHsb",value:function(){var a=this.toHsv();(0,Ie.Z)(this.originalInput)==="object"&&this.originalInput&&"h"in this.originalInput&&(a=this.originalInput);var g=a,m=g.v,P=(0,ht.Z)(g,Pe);return(0,ee.Z)((0,ee.Z)({},P),{},{b:a.v})}}]),l}(V.C),qt="rc-color-picker",Jt=function(n){return n instanceof nt?n:new nt(n)},hn=Jt("#1677ff"),Nn=function(n){var l=n.offset,s=n.targetRef,a=n.containerRef,g=n.color,m=n.type,P=a.current.getBoundingClientRect(),p=P.width,S=P.height,j=s.current.getBoundingClientRect(),B=j.width,ge=j.height,We=B/2,Ee=ge/2,rt=(l.x+We)/p,at=1-(l.y+Ee)/S,Wt=g.toHsb(),kt=rt,Zt=(l.x+We)/p*360;if(m)switch(m){case"hue":return Jt((0,ee.Z)((0,ee.Z)({},Wt),{},{h:Zt<=0?0:Zt}));case"alpha":return Jt((0,ee.Z)((0,ee.Z)({},Wt),{},{a:kt<=0?0:kt}))}return Jt({h:Wt.h,s:rt<=0?0:rt,b:at>=1?1:at,a:Wt.a})},En=function(n,l,s,a){var g=n.current.getBoundingClientRect(),m=g.width,P=g.height,p=l.current.getBoundingClientRect(),S=p.width,j=p.height,B=S/2,ge=j/2,We=s.toHsb();if(!(S===0&&j===0||S!==j)){if(a)switch(a){case"hue":return{x:We.h/360*m-B,y:-ge/3};case"alpha":return{x:We.a/1*m-B,y:-ge/3}}return{x:We.s*m-B,y:(1-We.b)*P-ge}}},_t=function(n){var l=n.color,s=n.prefixCls,a=n.className,g=n.style,m=n.onClick,P="".concat(s,"-color-block");return t.createElement("div",{className:D()(P,a),style:g,onClick:m},t.createElement("div",{className:"".concat(P,"-inner"),style:{background:l}}))},sn=_t;function mn(o){var n="touches"in o?o.touches[0]:o,l=document.documentElement.scrollLeft||document.body.scrollLeft||window.pageXOffset,s=document.documentElement.scrollTop||document.body.scrollTop||window.pageYOffset;return{pageX:n.pageX-l,pageY:n.pageY-s}}function Ot(o){var n=o.offset,l=o.targetRef,s=o.containerRef,a=o.direction,g=o.onDragChange,m=o.onDragChangeComplete,P=o.calculate,p=o.color,S=o.disabledDrag,j=(0,t.useState)(n||{x:0,y:0}),B=(0,v.Z)(j,2),ge=B[0],We=B[1],Ee=(0,t.useRef)(null),rt=(0,t.useRef)(null),at=(0,t.useRef)({flag:!1});(0,t.useEffect)(function(){if(at.current.flag===!1){var nn=P==null?void 0:P(s);nn&&We(nn)}},[p,s]),(0,t.useEffect)(function(){return function(){document.removeEventListener("mousemove",Ee.current),document.removeEventListener("mouseup",rt.current),document.removeEventListener("touchmove",Ee.current),document.removeEventListener("touchend",rt.current),Ee.current=null,rt.current=null}},[]);var Wt=function(wn){var Tn=mn(wn),Vn=Tn.pageX,pr=Tn.pageY,Ar=s.current.getBoundingClientRect(),Ko=Ar.x,Wr=Ar.y,Mr=Ar.width,$r=Ar.height,uo=l.current.getBoundingClientRect(),$a=uo.width,Vo=uo.height,ya=$a/2,xi=Vo/2,Ca=Math.max(0,Math.min(Vn-Ko,Mr))-ya,Aa=Math.max(0,Math.min(pr-Wr,$r))-xi,mo={x:Ca,y:a==="x"?ge.y:Aa};if($a===0&&Vo===0||$a!==Vo)return!1;We(mo),g==null||g(mo)},kt=function(wn){wn.preventDefault(),Wt(wn)},Zt=function(wn){wn.preventDefault(),at.current.flag=!1,document.removeEventListener("mousemove",Ee.current),document.removeEventListener("mouseup",rt.current),document.removeEventListener("touchmove",Ee.current),document.removeEventListener("touchend",rt.current),Ee.current=null,rt.current=null,m==null||m()},dn=function(wn){document.removeEventListener("mousemove",Ee.current),document.removeEventListener("mouseup",rt.current),!S&&(Wt(wn),at.current.flag=!0,document.addEventListener("mousemove",kt),document.addEventListener("mouseup",Zt),document.addEventListener("touchmove",kt),document.addEventListener("touchend",Zt),Ee.current=kt,rt.current=Zt)};return[ge,dn]}var tn=Ot,xn=function(n){var l=n.size,s=l===void 0?"default":l,a=n.color,g=n.prefixCls;return t.createElement("div",{className:D()("".concat(g,"-handler"),(0,U.Z)({},"".concat(g,"-handler-sm"),s==="small")),style:{backgroundColor:a}})},Wn=xn,Jn=function(n){var l=n.children,s=n.style,a=n.prefixCls;return t.createElement("div",{className:"".concat(a,"-palette"),style:(0,ee.Z)({position:"relative"},s)},l)},nr=Jn,dr=(0,t.forwardRef)(function(o,n){var l=o.children,s=o.offset;return t.createElement("div",{ref:n,style:{position:"absolute",left:s.x,top:s.y,zIndex:1}},l)}),ar=dr,gr=function(n){var l=n.color,s=n.onChange,a=n.prefixCls,g=n.onChangeComplete,m=n.disabled,P=(0,t.useRef)(),p=(0,t.useRef)(),S=(0,t.useRef)(l),j=tn({color:l,containerRef:P,targetRef:p,calculate:function(rt){return En(rt,p,l)},onDragChange:function(rt){var at=Nn({offset:rt,targetRef:p,containerRef:P,color:l});S.current=at,s(at)},onDragChangeComplete:function(){return g==null?void 0:g(S.current)},disabledDrag:m}),B=(0,v.Z)(j,2),ge=B[0],We=B[1];return t.createElement("div",{ref:P,className:"".concat(a,"-select"),onMouseDown:We,onTouchStart:We},t.createElement(nr,{prefixCls:a},t.createElement(ar,{offset:ge,ref:p},t.createElement(Wn,{color:l.toRgbString(),prefixCls:a})),t.createElement("div",{className:"".concat(a,"-saturation"),style:{backgroundColor:"hsl(".concat(l.toHsb().h,",100%, 50%)"),backgroundImage:"linear-gradient(0deg, #000, transparent),linear-gradient(90deg, #fff, hsla(0, 0%, 100%, 0))"}})))},Co=gr,Yr=function(n){var l=n.colors,s=n.children,a=n.direction,g=a===void 0?"to right":a,m=n.type,P=n.prefixCls,p=(0,t.useMemo)(function(){return l.map(function(S,j){var B=Jt(S);return m==="alpha"&&j===l.length-1&&B.setAlpha(1),B.toRgbString()}).join(",")},[l,m]);return t.createElement("div",{className:"".concat(P,"-gradient"),style:{position:"absolute",inset:0,background:"linear-gradient(".concat(g,", ").concat(p,")")}},s)},Ho=Yr,wo=function(n){var l=n.gradientColors,s=n.direction,a=n.type,g=a===void 0?"hue":a,m=n.color,P=n.value,p=n.onChange,S=n.onChangeComplete,j=n.disabled,B=n.prefixCls,ge=(0,t.useRef)(),We=(0,t.useRef)(),Ee=(0,t.useRef)(m),rt=tn({color:m,targetRef:We,containerRef:ge,calculate:function(dn){return En(dn,We,m,g)},onDragChange:function(dn){var nn=Nn({offset:dn,targetRef:We,containerRef:ge,color:m,type:g});Ee.current=nn,p(nn)},onDragChangeComplete:function(){S==null||S(Ee.current,g)},direction:"x",disabledDrag:j}),at=(0,v.Z)(rt,2),Wt=at[0],kt=at[1];return t.createElement("div",{ref:ge,className:D()("".concat(B,"-slider"),"".concat(B,"-slider-").concat(g)),onMouseDown:kt,onTouchStart:kt},t.createElement(nr,{prefixCls:B},t.createElement(ar,{offset:Wt,ref:We},t.createElement(Wn,{size:"small",color:P,prefixCls:B})),t.createElement(Ho,{colors:l,direction:s,type:g,prefixCls:B})))},ca=wo;function za(o){return o!==void 0}var Ga=function(n,l){var s=l.defaultValue,a=l.value,g=(0,t.useState)(function(){var S;return za(a)?S=a:za(s)?S=s:S=n,Jt(S)}),m=(0,v.Z)(g,2),P=m[0],p=m[1];return(0,t.useEffect)(function(){a&&p(Jt(a))},[a]),[P,p]},Za=Ga,oa=["rgb(255, 0, 0) 0%","rgb(255, 255, 0) 17%","rgb(0, 255, 0) 33%","rgb(0, 255, 255) 50%","rgb(0, 0, 255) 67%","rgb(255, 0, 255) 83%","rgb(255, 0, 0) 100%"],ka=(0,t.forwardRef)(function(o,n){var l=o.value,s=o.defaultValue,a=o.prefixCls,g=a===void 0?qt:a,m=o.onChange,P=o.onChangeComplete,p=o.className,S=o.style,j=o.panelRender,B=o.disabledAlpha,ge=B===void 0?!1:B,We=o.disabled,Ee=We===void 0?!1:We,rt=Za(hn,{value:l,defaultValue:s}),at=(0,v.Z)(rt,2),Wt=at[0],kt=at[1],Zt=(0,t.useMemo)(function(){var Vn=Jt(Wt.toRgbString());return Vn.setAlpha(1),Vn.toRgbString()},[Wt]),dn=D()("".concat(g,"-panel"),p,(0,U.Z)({},"".concat(g,"-panel-disabled"),Ee)),nn={prefixCls:g,onChangeComplete:P,disabled:Ee},wn=function(pr,Ar){l||kt(pr),m==null||m(pr,Ar)},Tn=t.createElement(t.Fragment,null,t.createElement(Co,(0,_e.Z)({color:Wt,onChange:wn},nn)),t.createElement("div",{className:"".concat(g,"-slider-container")},t.createElement("div",{className:D()("".concat(g,"-slider-group"),(0,U.Z)({},"".concat(g,"-slider-group-disabled-alpha"),ge))},t.createElement(ca,(0,_e.Z)({gradientColors:oa,color:Wt,value:"hsl(".concat(Wt.toHsb().h,",100%, 50%)"),onChange:function(pr){return wn(pr,"hue")}},nn)),!ge&&t.createElement(ca,(0,_e.Z)({type:"alpha",gradientColors:["rgba(255, 0, 4, 0) 0%",Zt],color:Wt,value:Wt.toRgbString(),onChange:function(pr){return wn(pr,"alpha")}},nn))),t.createElement(sn,{color:Wt.toRgbString(),prefixCls:g})));return t.createElement("div",{className:dn,style:S,ref:n},typeof j=="function"?j(Tn):Tn)}),wi=ka;const Mi=t.createContext({}),mi=t.createContext({}),{Provider:Ni}=Mi,{Provider:pl}=mi,Ei=(o,n)=>(o==null?void 0:o.replace(/[^\w/]/gi,"").slice(0,n?8:6))||"",Ml=(o,n)=>o?Ei(o,n):"";let nl=function(){function o(n){(0,Y.Z)(this,o),this.metaColor=new nt(n),n||this.metaColor.setAlpha(0)}return(0,Ae.Z)(o,[{key:"toHsb",value:function(){return this.metaColor.toHsb()}},{key:"toHsbString",value:function(){return this.metaColor.toHsbString()}},{key:"toHex",value:function(){return Ml(this.toHexString(),this.metaColor.getAlpha()<1)}},{key:"toHexString",value:function(){return this.metaColor.getAlpha()===1?this.metaColor.toHexString():this.metaColor.toHex8String()}},{key:"toRgb",value:function(){return this.metaColor.toRgb()}},{key:"toRgbString",value:function(){return this.metaColor.toRgbString()}}]),o}();const yl="ant-color-picker",Va=o=>o instanceof nl?o:new nl(o),Pi=o=>Math.round(Number(o||0)),gi=o=>Pi(o.toHsb().a*100),Ki=(o,n)=>{const l=o.toHsb();return l.a=n||1,Va(l)};var Di=o=>{let{prefixCls:n,value:l,colorCleared:s,onChange:a}=o;const g=()=>{if(l&&!s){const m=l.toHsb();m.a=0;const P=Va(m);a==null||a(P)}};return t.createElement("div",{className:`${n}-clear`,onClick:g})},ei;(function(o){o.hex="hex",o.rgb="rgb",o.hsb="hsb"})(ei||(ei={}));var Zo=e(32423),Ra=o=>{let{prefixCls:n,min:l=0,max:s=100,value:a,onChange:g,className:m,formatter:P}=o;const p=`${n}-steppers`,[S,j]=(0,t.useState)(a);return(0,t.useEffect)(()=>{Number.isNaN(a)||j(a)},[a]),t.createElement(Zo.Z,{className:D()(p,m),min:l,max:s,value:S,formatter:P,size:"small",onChange:B=>{a||j(B||0),g==null||g(B)}})},Fi=o=>{let{prefixCls:n,value:l,onChange:s}=o;const a=`${n}-alpha-input`,[g,m]=(0,t.useState)(Va(l||"#000"));(0,t.useEffect)(()=>{l&&m(l)},[l]);const P=p=>{const S=g.toHsb();S.a=(p||0)/100;const j=Va(S);l||m(j),s==null||s(j)};return t.createElement(Ra,{value:gi(g),prefixCls:n,formatter:p=>`${p}%`,className:a,onChange:P})},Ia=e(21149);const rl=/(^#[\da-f]{6}$)|(^#[\da-f]{8}$)/i,jl=o=>rl.test(`#${o}`);var Li=o=>{let{prefixCls:n,value:l,onChange:s}=o;const a=`${n}-hex-input`,[g,m]=(0,t.useState)(l==null?void 0:l.toHex());(0,t.useEffect)(()=>{const p=l==null?void 0:l.toHex();jl(p)&&l&&m(Ei(p))},[l]);const P=p=>{const S=p.target.value;m(Ei(S)),jl(Ei(S,!0))&&(s==null||s(Va(S)))};return t.createElement(Ia.Z,{className:a,value:g,prefix:"#",onChange:P,size:"small"})},Xl=o=>{let{prefixCls:n,value:l,onChange:s}=o;const a=`${n}-hsb-input`,[g,m]=(0,t.useState)(Va(l||"#000"));(0,t.useEffect)(()=>{l&&m(l)},[l]);const P=(p,S)=>{const j=g.toHsb();j[S]=S==="h"?p:(p||0)/100;const B=Va(j);l||m(B),s==null||s(B)};return t.createElement("div",{className:a},t.createElement(Ra,{max:360,min:0,value:Number(g.toHsb().h),prefixCls:n,className:a,formatter:p=>Pi(p||0).toString(),onChange:p=>P(Number(p),"h")}),t.createElement(Ra,{max:100,min:0,value:Number(g.toHsb().s)*100,prefixCls:n,className:a,formatter:p=>`${Pi(p||0)}%`,onChange:p=>P(Number(p),"s")}),t.createElement(Ra,{max:100,min:0,value:Number(g.toHsb().b)*100,prefixCls:n,className:a,formatter:p=>`${Pi(p||0)}%`,onChange:p=>P(Number(p),"b")}))},Ai=o=>{let{prefixCls:n,value:l,onChange:s}=o;const a=`${n}-rgb-input`,[g,m]=(0,t.useState)(Va(l||"#000"));(0,t.useEffect)(()=>{l&&m(l)},[l]);const P=(p,S)=>{const j=g.toRgb();j[S]=p||0;const B=Va(j);l||m(B),s==null||s(B)};return t.createElement("div",{className:a},t.createElement(Ra,{max:255,min:0,value:Number(g.toRgb().r),prefixCls:n,className:a,onChange:p=>P(Number(p),"r")}),t.createElement(Ra,{max:255,min:0,value:Number(g.toRgb().g),prefixCls:n,className:a,onChange:p=>P(Number(p),"g")}),t.createElement(Ra,{max:255,min:0,value:Number(g.toRgb().b),prefixCls:n,className:a,onChange:p=>P(Number(p),"b")}))};const sl=[ei.hex,ei.hsb,ei.rgb].map(o=>({value:o,label:o.toLocaleUpperCase()}));var $l=o=>{const{prefixCls:n,format:l,value:s,disabledAlpha:a,onFormatChange:g,onChange:m}=o,[P,p]=(0,Nt.Z)(ei.hex,{value:l,onChange:g}),S=`${n}-input`,j=ge=>{p(ge)},B=(0,t.useMemo)(()=>{const ge={value:s,prefixCls:n,onChange:m};switch(P){case ei.hsb:return t.createElement(Xl,Object.assign({},ge));case ei.rgb:return t.createElement(Ai,Object.assign({},ge));case ei.hex:default:return t.createElement(Li,Object.assign({},ge))}},[P,n,s,m]);return t.createElement("div",{className:`${S}-container`},t.createElement(ft.Z,{value:P,bordered:!1,getPopupContainer:ge=>ge,popupMatchSelectWidth:68,placement:"bottomRight",onChange:j,className:`${n}-format-select`,size:"small",options:sl}),t.createElement("div",{className:S},B),!a&&t.createElement(Fi,{prefixCls:n,value:s,onChange:m}))},Ol=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const o=(0,t.useContext)(Mi),{prefixCls:n,colorCleared:l,allowClear:s,value:a,disabledAlpha:g,onChange:m,onClear:P,onChangeComplete:p}=o,S=Ol(o,["prefixCls","colorCleared","allowClear","value","disabledAlpha","onChange","onClear","onChangeComplete"]);return t.createElement(t.Fragment,null,s&&t.createElement(Di,Object.assign({prefixCls:n,value:a,colorCleared:l,onChange:j=>{m==null||m(j),P==null||P()}},S)),t.createElement(wi,{prefixCls:n,value:a==null?void 0:a.toHsb(),disabledAlpha:g,onChange:(j,B)=>m==null?void 0:m(j,B,!0),onChangeComplete:p}),t.createElement($l,Object.assign({value:a,onChange:m,prefixCls:n,disabledAlpha:g},S)))};const ji=o=>o.map(n=>(n.colors=n.colors.map(Va),n)),Zl=(o,n)=>{const{r:l,g:s,b:a,a:g}=o.toRgb(),m=new nt(o.toRgbString()).onBackground(n).toHsv();return g<=.5?m.v>.5:l*.299+s*.587+a*.114>192};var Xi=o=>{let{prefixCls:n,presets:l,value:s,onChange:a}=o;const[g]=(0,Vt.Z)("ColorPicker"),{token:{colorBgElevated:m}}=to.Z.useToken(),[P]=(0,Nt.Z)(ji(l),{value:ji(l),postState:ji}),p=`${n}-presets`,S=(0,t.useMemo)(()=>P.map(ge=>`panel-${ge.label}`),[P]),j=ge=>{a==null||a(ge)},B=P.map(ge=>{var We;return{key:`panel-${ge.label}`,label:t.createElement("div",{className:`${p}-label`},ge==null?void 0:ge.label),children:t.createElement("div",{className:`${p}-items`},Array.isArray(ge==null?void 0:ge.colors)&&((We=ge.colors)===null||We===void 0?void 0:We.length)>0?ge.colors.map((Ee,rt)=>t.createElement(sn,{key:`preset-${rt}-${Ee.toHexString()}`,color:Va(Ee).toRgbString(),prefixCls:n,className:D()(`${p}-color`,{[`${p}-color-checked`]:Ee.toHexString()===(s==null?void 0:s.toHexString()),[`${p}-color-bright`]:Zl(Ee,m)}),onClick:()=>j(Ee)})):t.createElement("span",{className:`${p}-empty`},g.presetEmpty))}});return t.createElement("div",{className:p},t.createElement(kn.Z,{defaultActiveKey:S,ghost:!0,items:B}))},Hi=()=>{const{prefixCls:o,value:n,presets:l,onChange:s}=(0,t.useContext)(mi);return Array.isArray(l)?t.createElement(Xi,{value:n,presets:l,prefixCls:o,onChange:s}):null},ri=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:n,presets:l,panelRender:s,color:a,onChange:g,onClear:m}=o,P=ri(o,["prefixCls","presets","panelRender","color","onChange","onClear"]),p=`${n}-inner-content`,S=Object.assign({prefixCls:n,value:a,onChange:g,onClear:m},P),j=t.useMemo(()=>({prefixCls:n,value:a,presets:l,onChange:g}),[n,a,l,g]),B=t.createElement(t.Fragment,null,t.createElement(Wa,null),Array.isArray(l)&&t.createElement(ra.Z,{className:`${p}-divider`}),t.createElement(Hi,null));return t.createElement(Ni,{value:S},t.createElement(pl,{value:j},t.createElement("div",{className:p},typeof s=="function"?s(B,{components:{Picker:Wa,Presets:Hi}}):B)))},Ja=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{color:l,prefixCls:s,open:a,colorCleared:g,disabled:m,format:P,className:p,showText:S}=o,j=Ja(o,["color","prefixCls","open","colorCleared","disabled","format","className","showText"]),B=`${s}-trigger`,ge=(0,t.useMemo)(()=>g?t.createElement(Di,{prefixCls:s}):t.createElement(sn,{prefixCls:s,color:l.toRgbString()}),[l,g,s]),We=()=>{const rt=l.toHexString().toUpperCase(),at=gi(l);switch(P){case"rgb":return l.toRgbString();case"hsb":return l.toHsbString();case"hex":default:return at<100?`${rt.slice(0,7)},${at}%`:rt}},Ee=()=>{if(typeof S=="function")return S(l);if(S)return We()};return t.createElement("div",Object.assign({ref:n,className:D()(B,p,{[`${B}-active`]:a,[`${B}-disabled`]:m})},j),ge,S&&t.createElement("div",{className:`${B}-text`},Ee()))});function ma(o){return o!==void 0}var bl=(o,n)=>{const{defaultValue:l,value:s}=n,[a,g]=(0,t.useState)(()=>{let m;return ma(s)?m=s:ma(l)?m=l:m=o,Va(m||"")});return(0,t.useEffect)(()=>{s&&g(Va(s))},[s]),[a,g]};const Uo=(o,n)=>({backgroundImage:`conic-gradient(${n} 0 25%, transparent 0 50%, ${n} 0 75%, transparent 0)`,backgroundSize:`${o} ${o}`});var Sl=(o,n)=>{const{componentCls:l,borderRadiusSM:s,colorPickerInsetShadow:a,lineWidth:g,colorFillSecondary:m}=o;return{[`${l}-color-block`]:Object.assign(Object.assign({position:"relative",borderRadius:s,width:n,height:n,boxShadow:a},Uo("50%",o.colorFillSecondary)),{[`${l}-color-block-inner`]:{width:"100%",height:"100%",border:`${g}px solid ${m}`,borderRadius:"inherit"}})}},Dl=o=>{const{componentCls:n,antCls:l,fontSizeSM:s,lineHeightSM:a,colorPickerAlphaInputWidth:g,marginXXS:m,paddingXXS:P,controlHeightSM:p,marginXS:S,fontSizeIcon:j,paddingXS:B,colorTextPlaceholder:ge,colorPickerInputNumberHandleWidth:We,lineWidth:Ee}=o;return{[`${n}-input-container`]:{display:"flex",[`${n}-steppers${l}-input-number`]:{fontSize:s,lineHeight:a,[`${l}-input-number-input`]:{paddingInlineStart:P,paddingInlineEnd:0},[`${l}-input-number-handler-wrap`]:{width:We}},[`${n}-steppers${n}-alpha-input`]:{flex:`0 0 ${g}px`,marginInlineStart:m},[`${n}-format-select${l}-select`]:{marginInlineEnd:S,width:"auto","&-single":{[`${l}-select-selector`]:{padding:0,border:0},[`${l}-select-arrow`]:{insetInlineEnd:0},[`${l}-select-selection-item`]:{paddingInlineEnd:j+m,fontSize:s,lineHeight:`${p}px`},[`${l}-select-item-option-content`]:{fontSize:s,lineHeight:a},[`${l}-select-dropdown`]:{[`${l}-select-item`]:{minHeight:"auto"}}}},[`${n}-input`]:{gap:m,alignItems:"center",flex:1,width:0,[`${n}-hsb-input,${n}-rgb-input`]:{display:"flex",gap:m,alignItems:"center"},[`${n}-steppers`]:{flex:1},[`${n}-hex-input${l}-input-affix-wrapper`]:{flex:1,padding:`0 ${B}px`,[`${l}-input`]:{fontSize:s,textTransform:"uppercase",lineHeight:`${p-2*Ee}px`},[`${l}-input-prefix`]:{color:ge}}}}}},lr=o=>{const{componentCls:n,controlHeightLG:l,borderRadiusSM:s,colorPickerInsetShadow:a,marginSM:g,colorBgElevated:m,colorFillSecondary:P,lineWidthBold:p,colorPickerHandlerSize:S,colorPickerHandlerSizeSM:j,colorPickerSliderHeight:B}=o;return{[`${n}-select`]:{[`${n}-palette`]:{minHeight:l*4,overflow:"hidden",borderRadius:s},[`${n}-saturation`]:{position:"absolute",borderRadius:"inherit",boxShadow:a,inset:0},marginBottom:g},[`${n}-handler`]:{width:S,height:S,border:`${p}px solid ${m}`,position:"relative",borderRadius:"50%",cursor:"pointer",boxShadow:`${a}, 0 0 0 1px ${P}`,"&-sm":{width:j,height:j}},[`${n}-slider`]:{borderRadius:B/2,[`${n}-palette`]:{height:B},[`${n}-gradient`]:{borderRadius:B/2,boxShadow:a},"&-alpha":Uo(`${B}px`,o.colorFillSecondary),"&-hue":{marginBottom:g}},[`${n}-slider-container`]:{display:"flex",gap:g,marginBottom:g,[`${n}-slider-group`]:{flex:1,"&-disabled-alpha":{display:"flex",alignItems:"center",[`${n}-slider`]:{flex:1,marginBottom:0}}}}}},Ka=o=>{const{componentCls:n,antCls:l,colorTextQuaternary:s,paddingXXS:a,colorPickerPresetColorSize:g,fontSizeSM:m,colorText:P,lineHeightSM:p,lineWidth:S,borderRadius:j,colorFill:B,colorWhite:ge,marginXXS:We,paddingXS:Ee}=o;return{[`${n}-presets`]:{[`${l}-collapse-item > ${l}-collapse-header`]:{padding:0,[`${l}-collapse-expand-icon`]:{height:m*p,color:s,paddingInlineEnd:a}},[`${l}-collapse`]:{display:"flex",flexDirection:"column",gap:We},[`${l}-collapse-item > ${l}-collapse-content > ${l}-collapse-content-box`]:{padding:`${Ee}px 0`},"&-label":{fontSize:m,color:P,lineHeight:p},"&-items":{display:"flex",flexWrap:"wrap",gap:We*1.5,[`${n}-presets-color`]:{position:"relative",cursor:"pointer",width:g,height:g,"&::before":{content:'""',pointerEvents:"none",width:g+4*S,height:g+4*S,position:"absolute",top:-2*S,insetInlineStart:-2*S,borderRadius:j,border:`${S}px solid transparent`,transition:`border-color ${o.motionDurationMid} ${o.motionEaseInBack}`},"&:hover::before":{borderColor:B},"&::after":{boxSizing:"border-box",position:"absolute",top:"50%",insetInlineStart:"21.5%",display:"table",width:g/13*5,height:g/13*8,border:`${o.lineWidthBold}px solid ${o.colorWhite}`,borderTop:0,borderInlineStart:0,transform:"rotate(45deg) scale(0) translate(-50%,-50%)",opacity:0,content:'""',transition:`all ${o.motionDurationFast} ${o.motionEaseInBack}, opacity ${o.motionDurationFast}`},[`&${n}-presets-color-checked`]:{"&::after":{opacity:1,borderColor:ge,transform:"rotate(45deg) scale(1) translate(-50%,-50%)",transition:`transform ${o.motionDurationMid} ${o.motionEaseOutBack} ${o.motionDurationFast}`},[`&${n}-presets-color-bright`]:{"&::after":{borderColor:"rgba(0, 0, 0, 0.45)"}}}}},"&-empty":{fontSize:m,color:s}}}};const qa=o=>({boxShadow:`0 0 0 ${o.controlOutlineWidth}px ${o.controlOutline}`,borderInlineEndWidth:o.lineWidth,outline:0}),es=o=>{const{componentCls:n}=o;return{"&-rtl":{[`${n}-presets-color`]:{"&::after":{direction:"ltr"}},[`${n}-clear`]:{"&::after":{direction:"ltr"}}}}},xl=(o,n,l)=>{const{componentCls:s,borderRadiusSM:a,lineWidth:g,colorSplit:m,red6:P}=o;return{[`${s}-clear`]:Object.assign(Object.assign({width:n,height:n,borderRadius:a,border:`${g}px solid ${m}`,position:"relative",cursor:"pointer",overflow:"hidden"},l),{"&::after":{content:'""',position:"absolute",insetInlineEnd:g,top:0,display:"block",width:40,height:2,transformOrigin:"right",transform:"rotate(-45deg)",backgroundColor:P}})}},C=o=>{const{componentCls:n,colorError:l,colorWarning:s,colorErrorBorderHover:a,colorWarningBorderHover:g,colorErrorOutline:m,colorWarningOutline:P}=o;return{[`&${n}-status-error`]:{borderColor:l,"&:hover":{borderColor:a},[`&${n}-trigger-active`]:Object.assign({},qa((0,J.TS)(o,{controlOutline:m})))},[`&${n}-status-warning`]:{borderColor:s,"&:hover":{borderColor:g},[`&${n}-trigger-active`]:Object.assign({},qa((0,J.TS)(o,{controlOutline:P})))}}},E=o=>{const{componentCls:n,controlHeightLG:l,controlHeightSM:s,controlHeight:a,controlHeightXS:g,borderRadius:m,borderRadiusSM:P,borderRadiusXS:p,borderRadiusLG:S,fontSizeLG:j}=o;return{[`&${n}-lg`]:{minWidth:l,height:l,borderRadius:S,[`${n}-color-block, ${n}-clear`]:{width:a,height:a,borderRadius:m},[`${n}-trigger-text`]:{fontSize:j}},[`&${n}-sm`]:{minWidth:s,height:s,borderRadius:P,[`${n}-color-block, ${n}-clear`]:{width:g,height:g,borderRadius:p}}}},ie=o=>{const{componentCls:n,colorPickerWidth:l,colorPrimary:s,motionDurationMid:a,colorBgElevated:g,colorTextDisabled:m,colorText:P,colorBgContainerDisabled:p,borderRadius:S,marginXS:j,marginSM:B,controlHeight:ge,controlHeightSM:We,colorBgTextActive:Ee,colorPickerPresetColorSize:rt,colorPickerPreviewSize:at,lineWidth:Wt,colorBorder:kt,paddingXXS:Zt,fontSize:dn}=o;return[{[n]:Object.assign({[`${n}-inner-content`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"flex",flexDirection:"column",width:l,"&-divider":{margin:`${B}px 0 ${j}px`},[`${n}-panel`]:Object.assign({},lr(o))},Sl(o,at)),Dl(o)),Ka(o)),xl(o,rt,{marginInlineStart:"auto",marginBottom:j})),"&-trigger":Object.assign(Object.assign(Object.assign(Object.assign({minWidth:ge,height:ge,borderRadius:S,border:`${Wt}px solid ${kt}`,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",transition:`all ${a}`,background:g,padding:Zt-Wt,[`${n}-trigger-text`]:{marginInlineStart:j,marginInlineEnd:j-(Zt-Wt),fontSize:dn,color:P},"&-active":Object.assign(Object.assign({},qa(o)),{borderColor:s}),"&:hover":{borderColor:s},"&-disabled":{color:m,background:p,cursor:"not-allowed","&:hover":{borderColor:Ee},[`${n}-trigger-text`]:{color:m}}},xl(o,We)),Sl(o,We)),C(o)),E(o))},es(o))}]};var le=(0,k.Z)("ColorPicker",o=>{const{colorTextQuaternary:n,marginSM:l}=o,s=8,a=(0,J.TS)(o,{colorPickerWidth:234,colorPickerHandlerSize:16,colorPickerHandlerSizeSM:12,colorPickerAlphaInputWidth:44,colorPickerInputNumberHandleWidth:16,colorPickerPresetColorSize:18,colorPickerInsetShadow:`inset 0 0 1px 0 ${n}`,colorPickerSliderHeight:s,colorPickerPreviewSize:s*2+l});return[ie(a)]});const je=o=>{const{value:n,defaultValue:l,format:s,allowClear:a=!1,presets:g,children:m,trigger:P="click",open:p,disabled:S,placement:j="bottomLeft",arrow:B=!0,panelRender:ge,showText:We,style:Ee,className:rt,size:at,rootClassName:Wt,styles:kt,disabledAlpha:Zt=!1,onFormatChange:dn,onChange:nn,onClear:wn,onOpenChange:Tn,onChangeComplete:Vn,getPopupContainer:pr,autoAdjustOverflow:Ar=!0,destroyTooltipOnHide:Ko}=o,{getPrefixCls:Wr,direction:Mr,colorPicker:$r}=(0,t.useContext)(se.E_),{token:uo}=to.Z.useToken(),[$a,Vo]=bl(uo.colorPrimary,{value:n,defaultValue:l}),[ya,xi]=(0,Nt.Z)(!1,{value:p,postState:ui=>!S&&ui,onChange:Tn}),[Ca,Aa]=(0,Nt.Z)(s,{value:s,onChange:dn}),[mo,ia]=(0,t.useState)(!1),Gr=Wr("color-picker",yl),ja=(0,t.useMemo)(()=>gi($a)<100,[$a]),{status:ni}=t.useContext(Bt.aM),Sa=(0,Tr.Z)(at),[ua,ll]=le(Gr),$o={[`${Gr}-rtl`]:Mr},Yo=D()(Wt,$o),di=D()((0,Nr.Z)(Gr,ni),{[`${Gr}-sm`]:Sa==="small",[`${Gr}-lg`]:Sa==="large"},$r==null?void 0:$r.className,Yo,rt,ll),Fr=D()(Gr,$o),la=(0,t.useRef)(!0),Ii=(ui,_l,El)=>{let si=Va(ui);(mo||(n===null||!n&&l===null))&&(ia(!1),gi($a)===0&&_l!=="alpha"&&(si=Ki(si))),Zt&&ja&&(si=Ki(si)),El?la.current=!1:Vn==null||Vn(si),Vo(si),nn==null||nn(si,si.toHexString())},ro=()=>{ia(!0),wn==null||wn()},jo=ui=>{la.current=!0;let _l=Va(ui);Zt&&ja&&(_l=Ki(ui)),Vn==null||Vn(_l)},Ha={open:ya,trigger:P,placement:j,arrow:B,rootClassName:Wt,getPopupContainer:pr,autoAdjustOverflow:Ar,destroyTooltipOnHide:Ko},hl={prefixCls:Gr,color:$a,allowClear:a,colorCleared:mo,disabled:S,disabledAlpha:Zt,presets:g,panelRender:ge,format:Ca,onFormatChange:Aa,onChangeComplete:jo},rs=Object.assign(Object.assign({},$r==null?void 0:$r.style),Ee);return ua(t.createElement(ur.Z,Object.assign({style:kt==null?void 0:kt.popup,overlayInnerStyle:kt==null?void 0:kt.popupOverlayInner,onOpenChange:ui=>{la.current&&xi(ui)},content:t.createElement(Bt.Ux,{override:!0,status:!0},t.createElement(kl,Object.assign({},hl,{onChange:Ii,onChangeComplete:jo,onClear:ro}))),overlayClassName:Fr},Ha),m||t.createElement(Rl,{open:ya,className:di,style:rs,color:n?Va(n):$a,prefixCls:Gr,disabled:S,colorCleared:mo,showText:We,format:Ca})))},Me=(0,lt.Z)(je,"color-picker",o=>o,o=>Object.assign(Object.assign({},o),{placement:"bottom",autoAdjustOverflow:!1}));je._InternalPanelDoNotUseOrYouWillBeFired=Me;var bt=je,Rt=bt,Pt=e(42505),Kt=e(96905),gn=e(87078),Rn=t.createContext({}),vn=o=>{let{children:n}=o;return n};function on(o){return o!=null}var jn=o=>{const{itemPrefixCls:n,component:l,span:s,className:a,style:g,labelStyle:m,contentStyle:P,bordered:p,label:S,content:j,colon:B}=o,ge=l;return p?t.createElement(ge,{className:D()({[`${n}-item-label`]:on(S),[`${n}-item-content`]:on(j)},a),style:g,colSpan:s},on(S)&&t.createElement("span",{style:m},S),on(j)&&t.createElement("span",{style:P},j)):t.createElement(ge,{className:D()(`${n}-item`,a),style:g,colSpan:s},t.createElement("div",{className:`${n}-item-container`},(S||S===0)&&t.createElement("span",{className:D()(`${n}-item-label`,{[`${n}-item-no-colon`]:!B}),style:m},S),(j||j===0)&&t.createElement("span",{className:D()(`${n}-item-content`),style:P},j)))};function sr(o,n,l){let{colon:s,prefixCls:a,bordered:g}=n,{component:m,type:P,showLabel:p,showContent:S,labelStyle:j,contentStyle:B}=l;return o.map((ge,We)=>{let{label:Ee,children:rt,prefixCls:at=a,className:Wt,style:kt,labelStyle:Zt,contentStyle:dn,span:nn=1,key:wn}=ge;return typeof m=="string"?t.createElement(jn,{key:`${P}-${wn||We}`,className:Wt,style:kt,labelStyle:Object.assign(Object.assign({},j),Zt),contentStyle:Object.assign(Object.assign({},B),dn),span:nn,colon:s,component:m,itemPrefixCls:at,bordered:g,label:p?Ee:null,content:S?rt:null}):[t.createElement(jn,{key:`label-${wn||We}`,className:Wt,style:Object.assign(Object.assign(Object.assign({},j),kt),Zt),span:1,colon:s,component:m[0],itemPrefixCls:at,bordered:g,label:Ee}),t.createElement(jn,{key:`content-${wn||We}`,className:Wt,style:Object.assign(Object.assign(Object.assign({},B),kt),dn),span:nn*2-1,component:m[1],itemPrefixCls:at,bordered:g,content:rt})]})}var go=o=>{const n=t.useContext(Rn),{prefixCls:l,vertical:s,row:a,index:g,bordered:m}=o;return s?t.createElement(t.Fragment,null,t.createElement("tr",{key:`label-${g}`,className:`${l}-row`},sr(a,o,Object.assign({component:"th",type:"label",showLabel:!0},n))),t.createElement("tr",{key:`content-${g}`,className:`${l}-row`},sr(a,o,Object.assign({component:"td",type:"content",showContent:!0},n)))):t.createElement("tr",{key:g,className:`${l}-row`},sr(a,o,Object.assign({component:m?["th","td"]:"td",type:"item",showLabel:!0,showContent:!0},n)))};function Er(o,n,l){let s=o;return(l===void 0||l>n)&&(s=Object.assign(Object.assign({},o),{span:n})),s}const xr=o=>(0,he.Z)(o).map(n=>Object.assign({},n==null?void 0:n.props));function lo(o,n){const l=[];let s=[],a=n;return o.filter(g=>g).forEach((g,m)=>{const P=g==null?void 0:g.span,p=P||1;if(m===o.length-1){s.push(Er(g,a,P)),l.push(s);return}p(0,t.useMemo)(()=>Array.isArray(n)?lo(n,o):lo(xr(l),o),[n,l,o]);const vo=o=>{const{componentCls:n,labelBg:l}=o;return{[`&${n}-bordered`]:{[`> ${n}-view`]:{border:`${o.lineWidth}px ${o.lineType} ${o.colorSplit}`,"> table":{tableLayout:"auto",borderCollapse:"collapse"},[`${n}-row`]:{borderBottom:`${o.lineWidth}px ${o.lineType} ${o.colorSplit}`,"&:last-child":{borderBottom:"none"},[`> ${n}-item-label, > ${n}-item-content`]:{padding:`${o.padding}px ${o.paddingLG}px`,borderInlineEnd:`${o.lineWidth}px ${o.lineType} ${o.colorSplit}`,"&:last-child":{borderInlineEnd:"none"}},[`> ${n}-item-label`]:{color:o.colorTextSecondary,backgroundColor:l,"&::after":{display:"none"}}}},[`&${n}-middle`]:{[`${n}-row`]:{[`> ${n}-item-label, > ${n}-item-content`]:{padding:`${o.paddingSM}px ${o.paddingLG}px`}}},[`&${n}-small`]:{[`${n}-row`]:{[`> ${n}-item-label, > ${n}-item-content`]:{padding:`${o.paddingXS}px ${o.padding}px`}}}}}},ho=o=>{const{componentCls:n,extraColor:l,itemPaddingBottom:s,colonMarginRight:a,colonMarginLeft:g,titleMarginBottom:m}=o;return{[n]:Object.assign(Object.assign(Object.assign({},(0,_.Wf)(o)),vo(o)),{["&-rtl"]:{direction:"rtl"},[`${n}-header`]:{display:"flex",alignItems:"center",marginBottom:m},[`${n}-title`]:Object.assign(Object.assign({},_.vS),{flex:"auto",color:o.colorText,fontWeight:o.fontWeightStrong,fontSize:o.fontSizeLG,lineHeight:o.lineHeightLG}),[`${n}-extra`]:{marginInlineStart:"auto",color:l,fontSize:o.fontSize},[`${n}-view`]:{width:"100%",borderRadius:o.borderRadiusLG,table:{width:"100%",tableLayout:"fixed"}},[`${n}-row`]:{"> th, > td":{paddingBottom:s},"&:last-child":{borderBottom:"none"}},[`${n}-item-label`]:{color:o.colorTextTertiary,fontWeight:"normal",fontSize:o.fontSize,lineHeight:o.lineHeight,textAlign:"start","&::after":{content:'":"',position:"relative",top:-.5,marginInline:`${g}px ${a}px`},[`&${n}-item-no-colon::after`]:{content:'""'}},[`${n}-item-no-label`]:{"&::after":{margin:0,content:'""'}},[`${n}-item-content`]:{display:"table-cell",flex:1,color:o.colorText,fontSize:o.fontSize,lineHeight:o.lineHeight,wordBreak:"break-word",overflowWrap:"break-word"},[`${n}-item`]:{paddingBottom:0,verticalAlign:"top","&-container":{display:"flex",[`${n}-item-label`]:{display:"inline-flex",alignItems:"baseline"},[`${n}-item-content`]:{display:"inline-flex",alignItems:"baseline"}}},"&-middle":{[`${n}-row`]:{"> th, > td":{paddingBottom:o.paddingSM}}},"&-small":{[`${n}-row`]:{"> th, > td":{paddingBottom:o.paddingXS}}}})}};var cr=(0,k.Z)("Descriptions",o=>{const n=(0,J.TS)(o,{});return[ho(n)]},o=>({labelBg:o.colorFillAlter,titleMarginBottom:o.fontSizeSM*o.lineHeightSM,itemPaddingBottom:o.padding,colonMarginRight:o.marginXS,colonMarginLeft:o.marginXXS/2,extraColor:o.colorText})),Kr=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:n,title:l,extra:s,column:a=yo,colon:g=!0,bordered:m,layout:P,children:p,className:S,rootClassName:j,style:B,size:ge,labelStyle:We,contentStyle:Ee,items:rt}=o,at=Kr(o,["prefixCls","title","extra","column","colon","bordered","layout","children","className","rootClassName","style","size","labelStyle","contentStyle","items"]),{getPrefixCls:Wt,direction:kt,descriptions:Zt}=t.useContext(se.E_),dn=Wt("descriptions",n),[nn,wn]=t.useState({}),Tn=ga(a,nn),Vn=(0,Tr.Z)(ge),pr=Qr(Tn,rt,p),[Ar,Ko]=cr(dn),Wr=(0,gn.Z)();t.useEffect(()=>{const $r=Wr.subscribe(uo=>{typeof a=="object"&&wn(uo)});return()=>{Wr.unsubscribe($r)}},[]);const Mr=t.useMemo(()=>({labelStyle:We,contentStyle:Ee}),[We,Ee]);return Ar(t.createElement(Rn.Provider,{value:Mr},t.createElement("div",Object.assign({className:D()(dn,Zt==null?void 0:Zt.className,{[`${dn}-${Vn}`]:Vn&&Vn!=="default",[`${dn}-bordered`]:!!m,[`${dn}-rtl`]:kt==="rtl"},S,j,Ko),style:Object.assign(Object.assign({},Zt==null?void 0:Zt.style),B)},at),(l||s)&&t.createElement("div",{className:`${dn}-header`},l&&t.createElement("div",{className:`${dn}-title`},l),s&&t.createElement("div",{className:`${dn}-extra`},s)),t.createElement("div",{className:`${dn}-view`},t.createElement("table",null,t.createElement("tbody",null,pr.map(($r,uo)=>t.createElement(go,{key:uo,index:uo,colon:g,prefixCls:dn,vertical:P==="vertical",bordered:m,row:$r}))))))))};Fo.Item=vn;var eo=Fo,Jo=e(39953),bo=e(73267),ta=e(17444),po=e(74820),Ya={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{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.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"}}]},name:"file-text",theme:"outlined"},ki=Ya,Ma=e(17202),hi=function(n,l){return t.createElement(Ma.Z,(0,_e.Z)({},n,{ref:l,icon:ki}))},Mo=t.forwardRef(hi);const aa=o=>{const{icon:n,description:l,prefixCls:s,className:a}=o,g=t.createElement("div",{className:`${s}-icon`},t.createElement(Mo,null));return t.createElement("div",{onClick:o.onClick,onFocus:o.onFocus,onMouseEnter:o.onMouseEnter,onMouseLeave:o.onMouseLeave,className:D()(a,`${s}-content`)},n||l?t.createElement(t.Fragment,null,n&&t.createElement("div",{className:`${s}-icon`},n),l&&t.createElement("div",{className:`${s}-description`},l)):g)};var Oi=(0,t.memo)(aa);const da=t.createContext(void 0),{Provider:Eo}=da;var so=da,hr=e(57793),ir=e(7239),Dr=e(85745),no=o=>o===0?0:o-Math.sqrt(Math.pow(o,2)/2);const Xo=o=>{const{componentCls:n,floatButtonSize:l,motionDurationSlow:s,motionEaseInOutCirc:a}=o,g=`${n}-group`,m=new hr.E4("antFloatButtonMoveDownIn",{"0%":{transform:`translate3d(0, ${l}px, 0)`,transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),P=new hr.E4("antFloatButtonMoveDownOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:`translate3d(0, ${l}px, 0)`,transformOrigin:"0 0",opacity:0}});return[{[`${g}-wrap`]:Object.assign({},(0,Dr.R)(`${g}-wrap`,m,P,s,!0))},{[`${g}-wrap`]:{[` + &${g}-wrap-enter, + &${g}-wrap-appear + `]:{opacity:0,animationTimingFunction:a},[`&${g}-wrap-leave`]:{animationTimingFunction:a}}}]},ba=o=>{const{antCls:n,componentCls:l,floatButtonSize:s,margin:a,borderRadiusLG:g,borderRadiusSM:m,badgeOffset:P,floatButtonBodyPadding:p}=o,S=`${l}-group`;return{[S]:Object.assign(Object.assign({},(0,_.Wf)(o)),{zIndex:99,display:"block",border:"none",position:"fixed",width:s,height:"auto",boxShadow:"none",minHeight:s,insetInlineEnd:o.floatButtonInsetInlineEnd,insetBlockEnd:o.floatButtonInsetBlockEnd,borderRadius:g,[`${S}-wrap`]:{zIndex:-1,display:"block",position:"relative",marginBottom:a},[`&${S}-rtl`]:{direction:"rtl"},[l]:{position:"static"}}),[`${S}-circle`]:{[`${l}-circle:not(:last-child)`]:{marginBottom:o.margin,[`${l}-body`]:{width:s,height:s,borderRadius:"50%"}}},[`${S}-square`]:{[`${l}-square`]:{borderRadius:0,padding:0,"&:first-child":{borderStartStartRadius:g,borderStartEndRadius:g},"&:last-child":{borderEndStartRadius:g,borderEndEndRadius:g},"&:not(:last-child)":{borderBottom:`${o.lineWidth}px ${o.lineType} ${o.colorSplit}`},[`${n}-badge`]:{[`${n}-badge-count`]:{top:-(p+P),insetInlineEnd:-(p+P)}}},[`${S}-wrap`]:{display:"block",borderRadius:g,boxShadow:o.boxShadowSecondary,[`${l}-square`]:{boxShadow:"none",marginTop:0,borderRadius:0,padding:p,"&:first-child":{borderStartStartRadius:g,borderStartEndRadius:g},"&:last-child":{borderEndStartRadius:g,borderEndEndRadius:g},"&:not(:last-child)":{borderBottom:`${o.lineWidth}px ${o.lineType} ${o.colorSplit}`},[`${l}-body`]:{width:o.floatButtonBodySize,height:o.floatButtonBodySize}}}},[`${S}-circle-shadow`]:{boxShadow:"none"},[`${S}-square-shadow`]:{boxShadow:o.boxShadowSecondary,[`${l}-square`]:{boxShadow:"none",padding:p,[`${l}-body`]:{width:o.floatButtonBodySize,height:o.floatButtonBodySize,borderRadius:m}}}}},pi=o=>{const{antCls:n,componentCls:l,floatButtonBodyPadding:s,floatButtonIconSize:a,floatButtonSize:g,borderRadiusLG:m,badgeOffset:P,dotOffsetInSquare:p,dotOffsetInCircle:S}=o;return{[l]:Object.assign(Object.assign({},(0,_.Wf)(o)),{border:"none",position:"fixed",cursor:"pointer",zIndex:99,display:"block",justifyContent:"center",alignItems:"center",width:g,height:g,insetInlineEnd:o.floatButtonInsetInlineEnd,insetBlockEnd:o.floatButtonInsetBlockEnd,boxShadow:o.boxShadowSecondary,"&-pure":{position:"relative",inset:"auto"},"&:empty":{display:"none"},[`${n}-badge`]:{width:"100%",height:"100%",[`${n}-badge-count`]:{transform:"translate(0, 0)",transformOrigin:"center",top:-P,insetInlineEnd:-P}},[`${l}-body`]:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center",transition:`all ${o.motionDurationMid}`,[`${l}-content`]:{overflow:"hidden",textAlign:"center",minHeight:g,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",padding:`${s/2}px ${s}px`,[`${l}-icon`]:{textAlign:"center",margin:"auto",width:a,fontSize:a,lineHeight:1}}}}),[`${l}-rtl`]:{direction:"rtl"},[`${l}-circle`]:{height:g,borderRadius:"50%",[`${n}-badge`]:{[`${n}-badge-dot`]:{top:S,insetInlineEnd:S}},[`${l}-body`]:{borderRadius:"50%"}},[`${l}-square`]:{height:"auto",minHeight:g,borderRadius:m,[`${n}-badge`]:{[`${n}-badge-dot`]:{top:p,insetInlineEnd:p}},[`${l}-body`]:{height:"auto",borderRadius:m}},[`${l}-default`]:{backgroundColor:o.floatButtonBackgroundColor,transition:`background-color ${o.motionDurationMid}`,[`${l}-body`]:{backgroundColor:o.floatButtonBackgroundColor,transition:`background-color ${o.motionDurationMid}`,"&:hover":{backgroundColor:o.colorFillContent},[`${l}-content`]:{[`${l}-icon`]:{color:o.colorText},[`${l}-description`]:{display:"flex",alignItems:"center",lineHeight:`${o.fontSizeLG}px`,color:o.colorText,fontSize:o.fontSizeSM}}}},[`${l}-primary`]:{backgroundColor:o.colorPrimary,[`${l}-body`]:{backgroundColor:o.colorPrimary,transition:`background-color ${o.motionDurationMid}`,"&:hover":{backgroundColor:o.colorPrimaryHover},[`${l}-content`]:{[`${l}-icon`]:{color:o.colorTextLightSolid},[`${l}-description`]:{display:"flex",alignItems:"center",lineHeight:`${o.fontSizeLG}px`,color:o.colorTextLightSolid,fontSize:o.fontSizeSM}}}}}};var ti=(0,k.Z)("FloatButton",o=>{const{colorTextLightSolid:n,colorBgElevated:l,controlHeightLG:s,marginXXL:a,marginLG:g,fontSize:m,fontSizeIcon:P,controlItemBgHover:p,paddingXXS:S,borderRadiusLG:j}=o,B=(0,J.TS)(o,{floatButtonBackgroundColor:l,floatButtonColor:n,floatButtonHoverBackgroundColor:p,floatButtonFontSize:m,floatButtonIconSize:P*1.5,floatButtonSize:s,floatButtonInsetBlockEnd:a,floatButtonInsetInlineEnd:g,floatButtonBodySize:s-S*2,floatButtonBodyPadding:S,badgeOffset:S*1.5,dotOffsetInCircle:no(s/2),dotOffsetInSquare:no(j)});return[ba(B),pi(B),(0,ir.J$)(o),Xo(B)]}),Fl=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:l,className:s,rootClassName:a,type:g="default",shape:m="circle",icon:P,description:p,tooltip:S,badge:j={}}=o,B=Fl(o,["prefixCls","className","rootClassName","type","shape","icon","description","tooltip","badge"]),{getPrefixCls:ge,direction:We}=(0,t.useContext)(se.E_),Ee=(0,t.useContext)(so),rt=ge(wa,l),[at,Wt]=ti(rt),kt=Ee||m,Zt=D()(Wt,rt,s,a,`${rt}-${g}`,`${rt}-${kt}`,{[`${rt}-rtl`]:We==="rtl"}),dn=(0,t.useMemo)(()=>(0,mt.Z)(j,["title","children","status","text"]),[j]),nn=(0,t.useMemo)(()=>({prefixCls:rt,description:p,icon:P,type:g}),[rt,p,P,g]);let wn=t.createElement("div",{className:`${rt}-body`},t.createElement(Oi,Object.assign({},nn)));return"badge"in o&&(wn=t.createElement(q.Z,Object.assign({},dn),wn)),"tooltip"in o&&(wn=t.createElement(po.Z,{title:S,placement:We==="rtl"?"right":"left"},wn)),at(o.href?t.createElement("a",Object.assign({ref:n},B,{className:Zt}),wn):t.createElement("button",Object.assign({ref:n},B,{className:Zt,type:"button"}),wn))};var oi=t.forwardRef(wl),Il=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:n,className:l,type:s="default",shape:a="circle",visibilityHeight:g=400,icon:m=t.createElement(Oe.Z,null),target:P,onClick:p,duration:S=450}=o,j=Il(o,["prefixCls","className","type","shape","visibilityHeight","icon","target","onClick","duration"]),[B,ge]=(0,t.useState)(g===0),We=(0,t.useRef)(null),Ee=()=>We.current&&We.current.ownerDocument?We.current.ownerDocument:window,rt=(0,O.Z)(Vn=>{const pr=(0,R.Z)(Vn.target,!0);ge(pr>=g)});(0,t.useEffect)(()=>{const pr=(P||Ee)();return rt({target:pr}),pr==null||pr.addEventListener("scroll",rt),()=>{rt.cancel(),pr==null||pr.removeEventListener("scroll",rt)}},[P]);const at=Vn=>{(0,Ce.Z)(0,{getContainer:P||Ee,duration:S}),p==null||p(Vn)},{getPrefixCls:Wt}=(0,t.useContext)(se.E_),kt=Wt(wa,n),Zt=Wt(),[dn]=ti(kt),wn=(0,t.useContext)(so)||a,Tn=Object.assign({prefixCls:kt,icon:m,type:s,shape:wn},j);return dn(t.createElement(Le.ZP,{visible:B,motionName:`${Zt}-fade`},Vn=>{let{className:pr}=Vn;return t.createElement(oi,Object.assign({ref:We},Tn,{onClick:at,className:D()(l,pr)}))}))};var ha=(0,t.memo)(ko),Ea=e(52495),ai=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:n,className:l,style:s,shape:a="circle",type:g="default",icon:m=t.createElement(Mo,null),closeIcon:P=t.createElement(Ea.Z,null),description:p,trigger:S,children:j,onOpenChange:B,open:ge}=o,We=ai(o,["prefixCls","className","style","shape","type","icon","closeIcon","description","trigger","children","onOpenChange","open"]),{direction:Ee,getPrefixCls:rt}=(0,t.useContext)(se.E_),at=rt(wa,n),[Wt,kt]=ti(at),Zt=`${at}-group`,dn=D()(Zt,kt,l,{[`${Zt}-rtl`]:Ee==="rtl",[`${Zt}-${a}`]:a,[`${Zt}-${a}-shadow`]:!S}),nn=D()(kt,`${Zt}-wrap`),[wn,Tn]=(0,Nt.Z)(!1,{value:ge}),Vn=(0,t.useRef)(null),pr=(0,t.useRef)(null),Ar=(0,t.useMemo)(()=>S==="hover"?{onMouseEnter(){Tn(!0),B==null||B(!0)},onMouseLeave(){Tn(!1),B==null||B(!1)}}:{},[S]),Ko=()=>{Tn(Mr=>(B==null||B(!Mr),!Mr))},Wr=(0,t.useCallback)(Mr=>{var $r,uo;if(!(($r=Vn.current)===null||$r===void 0)&&$r.contains(Mr.target)){!((uo=pr.current)===null||uo===void 0)&&uo.contains(Mr.target)&&Ko();return}Tn(!1),B==null||B(!1)},[S]);return(0,t.useEffect)(()=>{if(S==="click")return document.addEventListener("click",Wr),()=>{document.removeEventListener("click",Wr)}},[S]),Wt(t.createElement(Eo,{value:a},t.createElement("div",Object.assign({ref:Vn,className:dn,style:s},Ar),S&&["click","hover"].includes(S)?t.createElement(t.Fragment,null,t.createElement(Le.ZP,{visible:wn,motionName:`${Zt}-wrap`},Mr=>{let{className:$r}=Mr;return t.createElement("div",{className:D()($r,nn)},j)}),t.createElement(oi,Object.assign({ref:pr,type:g,shape:a,icon:wn?P:m,description:p,"aria-label":o["aria-label"]},We))):j)))};var Na=(0,t.memo)(Wo),ci=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{var{backTop:n}=o,l=ci(o,["backTop"]);return n?t.createElement(ha,Object.assign({},l,{visibilityHeight:0})):t.createElement(oi,Object.assign({},l))};var dl=o=>{var{className:n,items:l}=o,s=ci(o,["className","items"]);const{prefixCls:a}=s,{getPrefixCls:g}=t.useContext(se.E_),P=`${g(wa,a)}-pure`;return l?t.createElement(Na,Object.assign({className:D()(n,P)},s),l.map((p,S)=>t.createElement(Zi,Object.assign({key:S},p)))):t.createElement(Zi,Object.assign({className:D()(n,P)},s))};oi.BackTop=ha,oi.Group=Na,oi._InternalPanelDoNotUseOrYouWillBeFired=dl;var _a=oi,Ui=e(47513),Bi=e(80172),ul=e(31712),Ci=e(26087),ii=e(37617),fl=e(19570),Ri=e(2071),zi=e(29639),No=e(75556);function Ta(){var o=(0,t.useState)({id:0,callback:null}),n=(0,v.Z)(o,2),l=n[0],s=n[1],a=(0,t.useCallback)(function(g){s(function(m){var P=m.id;return{id:P+1,callback:g}})},[]);return(0,t.useEffect)(function(){var g;(g=l.callback)===null||g===void 0||g.call(l)},[l]),a}var Fa=e(99863),Ua=e(87854),li=t.createContext(null),Ji=li;function qi(o){var n=t.useContext(Ji),l=n.notFoundContent,s=n.activeIndex,a=n.setActiveIndex,g=n.selectOption,m=n.onFocus,P=n.onBlur,p=o.prefixCls,S=o.options,j=S[s]||{};return t.createElement(Ua.ZP,{prefixCls:"".concat(p,"-menu"),activeKey:j.key,onSelect:function(ge){var We=ge.key,Ee=S.find(function(rt){var at=rt.key;return at===We});g(Ee)},onFocus:m,onBlur:P},S.map(function(B,ge){var We=B.key,Ee=B.disabled,rt=B.className,at=B.style,Wt=B.label;return t.createElement(Ua.sN,{key:We,disabled:Ee,className:rt,style:at,onMouseEnter:function(){a(ge)}},Wt)}),!S.length&&t.createElement(Ua.sN,{disabled:!0},l))}var Ll=qi,ds={bottomRight:{points:["tl","br"],offset:[0,4],overflow:{adjustX:1,adjustY:1}},bottomLeft:{points:["tr","bl"],offset:[0,4],overflow:{adjustX:1,adjustY:1}},topRight:{points:["bl","tr"],offset:[0,-4],overflow:{adjustX:1,adjustY:1}},topLeft:{points:["br","tl"],offset:[0,-4],overflow:{adjustX:1,adjustY:1}}},us=function(n){var l=n.prefixCls,s=n.options,a=n.children,g=n.visible,m=n.transitionName,P=n.getPopupContainer,p=n.dropdownClassName,S=n.direction,j=n.placement,B="".concat(l,"-dropdown"),ge=t.createElement(Ll,{prefixCls:B,options:s}),We=(0,t.useMemo)(function(){var Ee;return S==="rtl"?Ee=j==="top"?"topLeft":"bottomLeft":Ee=j==="top"?"topRight":"bottomRight",Ee},[S,j]);return t.createElement(Fa.Z,{prefixCls:B,popupVisible:g,popup:ge,popupPlacement:We,popupTransitionName:m,builtinPlacements:ds,getPopupContainer:P,popupClassName:p},a)},_i=us,fs=function(){return null},Ql=fs;function Yl(o){var n=o.selectionStart;return o.value.slice(0,n)}function vs(o,n){return n.reduce(function(l,s){var a=o.lastIndexOf(s);return a>l.location?{location:a,prefix:s}:l},{location:-1,prefix:""})}function ms(o){return(o||"").toLowerCase()}function os(o,n,l){var s=o[0];if(!s||s===l)return o;for(var a=o,g=n.length,m=0;m=0)return[!0,"",Qo,xa]}return[Sa,Yo,Ii,hl]},[at,Sa,Aa,ys,Yo,Ii,hl]),Ls=(0,v.Z)(sc,4),Cs=Ls[0],Us=Ls[1],As=Ls[2],Ps=Ls[3],Xs=t.useCallback(function(Wi){var Qo;return rt&&rt.length>0?Qo=rt.map(function(xa){var fi;return(0,ee.Z)((0,ee.Z)({},xa),{},{key:(fi=xa==null?void 0:xa.key)!==null&&fi!==void 0?fi:xa.value})}):Qo=(0,he.Z)(Ee).map(function(xa){var fi=xa.props,$s=xa.key;return(0,ee.Z)((0,ee.Z)({},fi),{},{label:fi.children,key:$s||fi.value})}),Qo.filter(function(xa){return dn===!1?!0:dn(Wi,xa)})},[Ee,rt,dn]),js=t.useMemo(function(){return Xs(Us)},[Xs,Us]),ea=Ta(),Da=function(Qo,xa,fi){ua(!0),di(Qo),ro(xa),rs(fi),si(0)},Pl=function(Qo){ua(!1),rs(0),di(""),ea(Qo)},Al=function(Qo){bc(Qo),nn==null||nn(Qo)},Ul=function(Qo){var xa=Qo.target.value;Al(xa)},Hs=function(Qo){var xa,fi=Qo.value,$s=fi===void 0?"":fi,Os=as(ys,{measureLocation:Ps,targetText:$s,prefix:As,selectionStart:(xa=Gr())===null||xa===void 0?void 0:xa.selectionStart,split:S}),Bs=Os.text,Qs=Os.selectionLocation;Al(Bs),Pl(function(){ts(Gr(),Qs)}),Ar==null||Ar(Qo,As)},ks=function(Qo){var xa=Qo.which;if(wn==null||wn(Qo),!!Cs){if(xa===zi.Z.UP||xa===zi.Z.DOWN){var fi=js.length,$s=xa===zi.Z.UP?-1:1,Os=(El+$s+fi)%fi;si(Os),Qo.preventDefault()}else if(xa===zi.Z.ESC)Pl();else if(xa===zi.Z.ENTER){if(Qo.preventDefault(),!js.length){Pl();return}var Bs=js[El];Hs(Bs)}}},Gs=function(Qo){var xa=Qo.key,fi=Qo.which,$s=Qo.target,Os=Yl($s),Bs=vs(Os,Aa),Qs=Bs.location,cc=Bs.prefix;if(Tn==null||Tn(Qo),[zi.Z.ESC,zi.Z.UP,zi.Z.DOWN,zi.Z.ENTER].indexOf(fi)===-1)if(Qs!==-1){var Js=Os.slice(Qs+cc.length),zc=kt(Js,S),bu=!!Xs(Js).length;zc?(xa===cc||xa==="Shift"||Cs||Js!==Us&&bu)&&Da(Js,cc,Qs):Cs&&Pl(),pr&&zc&&pr(Js,cc)}else Cs&&Pl()},pu=function(Qo){!Cs&&Vn&&Vn(Qo)},Hc=(0,t.useRef)(),kc=function(Qo){window.clearTimeout(Hc.current),!ac&&Qo&&Ko&&Ko(Qo),ic(!0)},Bc=function(Qo){Hc.current=window.setTimeout(function(){ic(!1),Pl(),Wr==null||Wr(Qo)},0)},yu=function(){kc()},Cu=function(){Bc()};return t.createElement("div",{className:D()(s,a),style:g},t.createElement(Ri.Z,(0,_e.Z)({ref:mo,value:ys},Ca,{rows:xi,onChange:Ul,onKeyDown:ks,onKeyUp:Gs,onPressEnter:pu,onFocus:kc,onBlur:Bc})),Cs&&t.createElement("div",{ref:ia,className:"".concat(s,"-measure")},ys.slice(0,Ps),t.createElement(Ji.Provider,{value:{notFoundContent:B,activeIndex:El,setActiveIndex:si,selectOption:Hs,onFocus:yu,onBlur:Cu}},t.createElement(_i,{prefixCls:s,transitionName:Mr,placement:$r,direction:uo,options:js,visible:!0,getPopupContainer:$a,dropdownClassName:Vo},t.createElement("span",null,As))),ys.slice(Ps+As.length)))}),_o=(0,t.forwardRef)(function(o,n){var l=o.suffix,s=o.prefixCls,a=o.classes,g=o.value,m=(0,ht.Z)(o,Zr);return t.createElement(fl.Q,{inputElement:t.createElement(Jr,(0,_e.Z)({prefixCls:s,ref:n},m)),suffix:l,prefixCls:s,classes:a,value:g})});_o.Option=Ql;var La=_o,zl=La,el=e(21319),vl=e(10401),al=e(79233);const Wl=o=>{const{componentCls:n,colorTextDisabled:l,controlItemBgHover:s,controlPaddingHorizontal:a,colorText:g,motionDurationSlow:m,lineHeight:P,controlHeight:p,inputPaddingHorizontal:S,inputPaddingVertical:j,fontSize:B,colorBgElevated:ge,paddingXXS:We,borderRadius:Ee,borderRadiusLG:rt,boxShadowSecondary:at}=o,Wt=Math.round((o.controlHeight-o.fontSize*o.lineHeight)/2);return{[n]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,_.Wf)(o)),(0,ln.ik)(o)),{position:"relative",display:"inline-block",height:"auto",padding:0,overflow:"hidden",lineHeight:P,whiteSpace:"pre-wrap",verticalAlign:"bottom"}),(0,ln.bi)(o,n)),{"&-disabled":{"> textarea":Object.assign({},(0,ln.Xy)(o))},[`&-affix-wrapper ${n}-suffix`]:{position:"absolute",top:0,insetInlineEnd:S,bottom:0,zIndex:1,display:"inline-flex",alignItems:"center",margin:"auto"},[`> textarea, ${n}-measure`]:{color:g,boxSizing:"border-box",minHeight:p-2,margin:0,padding:`${j}px ${S}px`,overflow:"inherit",overflowX:"hidden",overflowY:"auto",fontWeight:"inherit",fontSize:"inherit",fontFamily:"inherit",fontStyle:"inherit",fontVariant:"inherit",fontSizeAdjust:"inherit",fontStretch:"inherit",lineHeight:"inherit",direction:"inherit",letterSpacing:"inherit",whiteSpace:"inherit",textAlign:"inherit",verticalAlign:"top",wordWrap:"break-word",wordBreak:"inherit",tabSize:"inherit"},"> textarea":Object.assign({width:"100%",border:"none",outline:"none",resize:"none",backgroundColor:"inherit"},(0,ln.nz)(o.colorTextPlaceholder)),[`${n}-measure`]:{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:-1,color:"transparent",pointerEvents:"none","> span":{display:"inline-block",minHeight:"1em"}},"&-dropdown":Object.assign(Object.assign({},(0,_.Wf)(o)),{position:"absolute",top:-9999,insetInlineStart:-9999,zIndex:o.zIndexPopup,boxSizing:"border-box",fontSize:B,fontVariant:"initial",padding:We,backgroundColor:ge,borderRadius:rt,outline:"none",boxShadow:at,"&-hidden":{display:"none"},[`${n}-dropdown-menu`]:{maxHeight:o.dropdownHeight,margin:0,paddingInlineStart:0,overflow:"auto",listStyle:"none",outline:"none","&-item":Object.assign(Object.assign({},_.vS),{position:"relative",display:"block",minWidth:o.controlItemWidth,padding:`${Wt}px ${a}px`,color:g,borderRadius:Ee,fontWeight:"normal",lineHeight:P,cursor:"pointer",transition:`background ${m} ease`,"&:hover":{backgroundColor:s},"&-disabled":{color:l,cursor:"not-allowed","&:hover":{color:l,backgroundColor:s,cursor:"not-allowed"}},"&-selected":{color:g,fontWeight:o.fontWeightStrong,backgroundColor:s},"&-active":{backgroundColor:s}})}})})}};var Kl=(0,k.Z)("Mentions",o=>{const n=(0,ln.e5)(o);return[Wl(n)]},o=>({dropdownHeight:250,controlItemWidth:100,zIndexPopup:o.zIndexPopupBase+50})),ml=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:l,className:s,rootClassName:a,disabled:g,loading:m,filterOption:P,children:p,notFoundContent:S,options:j,status:B,popupClassName:ge,style:We}=o,Ee=ml(o,["prefixCls","className","rootClassName","disabled","loading","filterOption","children","notFoundContent","options","status","popupClassName","style"]),[rt,at]=t.useState(!1),Wt=t.useRef(null),kt=(0,el.sQ)(n,Wt),{getPrefixCls:Zt,renderEmpty:dn,direction:nn,mentions:wn}=t.useContext(se.E_),{status:Tn,hasFeedback:Vn,feedbackIcon:pr}=t.useContext(Bt.aM),Ar=(0,Nr.F)(Tn,B),Ko=function(){Ee.onFocus&&Ee.onFocus.apply(Ee,arguments),at(!0)},Wr=function(){Ee.onBlur&&Ee.onBlur.apply(Ee,arguments),at(!1)},Mr=t.useMemo(()=>S!==void 0?S:(dn==null?void 0:dn("Select"))||t.createElement(vl.Z,{componentName:"Select"}),[S,dn]),$r=t.useMemo(()=>m?t.createElement(bs,{value:"ANTD_SEARCHING",disabled:!0},t.createElement(al.Z,{size:"small"})):p,[m,p]),uo=m?[{value:"ANTD_SEARCHING",disabled:!0,label:t.createElement(al.Z,{size:"small"})}]:j,$a=m?Zs:P,Vo=Zt("mentions",l),[ya,xi]=Kl(Vo),Ca=D()({[`${Vo}-disabled`]:g,[`${Vo}-focused`]:rt,[`${Vo}-rtl`]:nn==="rtl"},(0,Nr.Z)(Vo,Ar),wn==null?void 0:wn.className,!Vn&&s,a,xi),Aa=t.createElement(zl,Object.assign({prefixCls:Vo,notFoundContent:Mr,className:Ca,disabled:g,direction:nn,style:Object.assign(Object.assign({},wn==null?void 0:wn.style),We)},Ee,{filterOption:$a,onFocus:Ko,onBlur:Wr,dropdownClassName:D()(ge,a,xi),ref:kt,options:uo,suffix:Vn&&pr,classes:{affixWrapper:D()(xi,s)}}),$r);return ya(Aa)},is=t.forwardRef(Rs);is.Option=bs;const Is=(0,lt.Z)(is,"mentions");is._InternalPanelDoNotUseOrYouWillBeFired=Is,is.getMentions=function(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{prefix:l="@",split:s=" "}=n,a=Array.isArray(l)?l:[l];return o.split(s).map(function(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",m=null;return a.some(P=>g.slice(0,P.length)===P?(m=P,!0):!1),m!==null?{prefix:m,value:g.slice(m.length)}:null}).filter(g=>!!g&&!!g.value)};var Ss=is,c=e(85706),r=e(84045),d=e(62109),u=e(65388),I=e(35910),Q=e(30956),De=e(95664),ze=e(22283),Ue=Object.defineProperty,Qe=Object.getOwnPropertySymbols,At=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable,Qt=(o,n,l)=>n in o?Ue(o,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):o[n]=l,Ln=(o,n)=>{for(var l in n||(n={}))At.call(n,l)&&Qt(o,l,n[l]);if(Qe)for(var l of Qe(n))rn.call(n,l)&&Qt(o,l,n[l]);return o},Xn=(o,n)=>{var l={};for(var s in o)At.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&Qe)for(var s of Qe(o))n.indexOf(s)<0&&rn.call(o,s)&&(l[s]=o[s]);return l};var Mn;(o=>{const n=class{constructor(p,S,j,B){if(this.version=p,this.errorCorrectionLevel=S,this.modules=[],this.isFunction=[],pn.MAX_VERSION)throw new RangeError("Version value out of range");if(B<-1||B>7)throw new RangeError("Mask value out of range");this.size=p*4+17;let ge=[];for(let Ee=0;Ee7)throw new RangeError("Invalid value");let Ee,rt;for(Ee=j;;Ee++){const Zt=n.getNumDataCodewords(Ee,S)*8,dn=P.getTotalBits(p,Ee);if(dn<=Zt){rt=dn;break}if(Ee>=B)throw new RangeError("Data too long")}for(const Zt of[n.Ecc.MEDIUM,n.Ecc.QUARTILE,n.Ecc.HIGH])We&&rt<=n.getNumDataCodewords(Ee,Zt)*8&&(S=Zt);let at=[];for(const Zt of p){s(Zt.mode.modeBits,4,at),s(Zt.numChars,Zt.mode.numCharCountBits(Ee),at);for(const dn of Zt.getData())at.push(dn)}g(at.length==rt);const Wt=n.getNumDataCodewords(Ee,S)*8;g(at.length<=Wt),s(0,Math.min(4,Wt-at.length),at),s(0,(8-at.length%8)%8,at),g(at.length%8==0);for(let Zt=236;at.lengthkt[dn>>>3]|=Zt<<7-(dn&7)),new n(Ee,S,kt,ge)}getModule(p,S){return 0<=p&&p>>9)*1335;const B=(S<<10|j)^21522;g(B>>>15==0);for(let ge=0;ge<=5;ge++)this.setFunctionModule(8,ge,a(B,ge));this.setFunctionModule(8,7,a(B,6)),this.setFunctionModule(8,8,a(B,7)),this.setFunctionModule(7,8,a(B,8));for(let ge=9;ge<15;ge++)this.setFunctionModule(14-ge,8,a(B,ge));for(let ge=0;ge<8;ge++)this.setFunctionModule(this.size-1-ge,8,a(B,ge));for(let ge=8;ge<15;ge++)this.setFunctionModule(8,this.size-15+ge,a(B,ge));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let p=this.version;for(let j=0;j<12;j++)p=p<<1^(p>>>11)*7973;const S=this.version<<12|p;g(S>>>18==0);for(let j=0;j<18;j++){const B=a(S,j),ge=this.size-11+j%3,We=Math.floor(j/3);this.setFunctionModule(ge,We,B),this.setFunctionModule(We,ge,B)}}drawFinderPattern(p,S){for(let j=-4;j<=4;j++)for(let B=-4;B<=4;B++){const ge=Math.max(Math.abs(B),Math.abs(j)),We=p+B,Ee=S+j;0<=We&&We{(Zt!=rt-ge||nn>=Ee)&&kt.push(dn[Zt])});return g(kt.length==We),kt}drawCodewords(p){if(p.length!=Math.floor(n.getNumRawDataModules(this.version)/8))throw new RangeError("Invalid argument");let S=0;for(let j=this.size-1;j>=1;j-=2){j==6&&(j=5);for(let B=0;B>>3],7-(S&7)),S++)}}g(S==p.length*8)}applyMask(p){if(p<0||p>7)throw new RangeError("Mask value out of range");for(let S=0;S5&&p++):(this.finderPenaltyAddHistory(Ee,rt),We||(p+=this.finderPenaltyCountPatterns(rt)*n.PENALTY_N3),We=this.modules[ge][at],Ee=1);p+=this.finderPenaltyTerminateAndCount(We,Ee,rt)*n.PENALTY_N3}for(let ge=0;ge5&&p++):(this.finderPenaltyAddHistory(Ee,rt),We||(p+=this.finderPenaltyCountPatterns(rt)*n.PENALTY_N3),We=this.modules[at][ge],Ee=1);p+=this.finderPenaltyTerminateAndCount(We,Ee,rt)*n.PENALTY_N3}for(let ge=0;geWe+(Ee?1:0),S);const j=this.size*this.size,B=Math.ceil(Math.abs(S*20-j*10)/j)-1;return g(0<=B&&B<=9),p+=B*n.PENALTY_N4,g(0<=p&&p<=2568888),p}getAlignmentPatternPositions(){if(this.version==1)return[];{const p=Math.floor(this.version/7)+2,S=this.version==32?26:Math.ceil((this.version*4+4)/(p*2-2))*2;let j=[6];for(let B=this.size-7;j.lengthn.MAX_VERSION)throw new RangeError("Version number out of range");let S=(16*p+128)*p+64;if(p>=2){const j=Math.floor(p/7)+2;S-=(25*j-10)*j-55,p>=7&&(S-=36)}return g(208<=S&&S<=29648),S}static getNumDataCodewords(p,S){return Math.floor(n.getNumRawDataModules(p)/8)-n.ECC_CODEWORDS_PER_BLOCK[S.ordinal][p]*n.NUM_ERROR_CORRECTION_BLOCKS[S.ordinal][p]}static reedSolomonComputeDivisor(p){if(p<1||p>255)throw new RangeError("Degree out of range");let S=[];for(let B=0;B0);for(const B of p){const ge=B^j.shift();j.push(0),S.forEach((We,Ee)=>j[Ee]^=n.reedSolomonMultiply(We,ge))}return j}static reedSolomonMultiply(p,S){if(p>>>8||S>>>8)throw new RangeError("Byte out of range");let j=0;for(let B=7;B>=0;B--)j=j<<1^(j>>>7)*285,j^=(S>>>B&1)*p;return g(j>>>8==0),j}finderPenaltyCountPatterns(p){const S=p[1];g(S<=this.size*3);const j=S>0&&p[2]==S&&p[3]==S*3&&p[4]==S&&p[5]==S;return(j&&p[0]>=S*4&&p[6]>=S?1:0)+(j&&p[6]>=S*4&&p[0]>=S?1:0)}finderPenaltyTerminateAndCount(p,S,j){return p&&(this.finderPenaltyAddHistory(S,j),S=0),S+=this.size,this.finderPenaltyAddHistory(S,j),this.finderPenaltyCountPatterns(j)}finderPenaltyAddHistory(p,S){S[0]==0&&(p+=this.size),S.pop(),S.unshift(p)}};let l=n;l.MIN_VERSION=1,l.MAX_VERSION=40,l.PENALTY_N1=3,l.PENALTY_N2=3,l.PENALTY_N3=40,l.PENALTY_N4=10,l.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],l.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],o.QrCode=l;function s(p,S,j){if(S<0||S>31||p>>>S)throw new RangeError("Value out of range");for(let B=S-1;B>=0;B--)j.push(p>>>B&1)}function a(p,S){return(p>>>S&1)!=0}function g(p){if(!p)throw new Error("Assertion error")}const m=class{constructor(p,S,j){if(this.mode=p,this.numChars=S,this.bitData=j,S<0)throw new RangeError("Invalid argument");this.bitData=j.slice()}static makeBytes(p){let S=[];for(const j of p)s(j,8,S);return new m(m.Mode.BYTE,p.length,S)}static makeNumeric(p){if(!m.isNumeric(p))throw new RangeError("String contains non-numeric characters");let S=[];for(let j=0;j=1<{let n;(l=>{const s=class{constructor(g,m){this.ordinal=g,this.formatBits=m}};let a=s;a.LOW=new s(0,1),a.MEDIUM=new s(1,0),a.QUARTILE=new s(2,3),a.HIGH=new s(3,2),l.Ecc=a})(n=o.QrCode||(o.QrCode={}))})(Mn||(Mn={})),(o=>{let n;(l=>{const s=class{constructor(g,m){this.modeBits=g,this.numBitsCharCount=m}numCharCountBits(g){return this.numBitsCharCount[Math.floor((g+7)/17)]}};let a=s;a.NUMERIC=new s(1,[10,12,14]),a.ALPHANUMERIC=new s(2,[9,11,13]),a.BYTE=new s(4,[8,16,16]),a.KANJI=new s(8,[8,10,12]),a.ECI=new s(7,[0,0,0]),l.Mode=a})(n=o.QrSegment||(o.QrSegment={}))})(Mn||(Mn={}));var Dn=Mn;var jr={L:Dn.QrCode.Ecc.LOW,M:Dn.QrCode.Ecc.MEDIUM,Q:Dn.QrCode.Ecc.QUARTILE,H:Dn.QrCode.Ecc.HIGH},rr=128,Rr="L",Xr="#FFFFFF",zr="#000000",Br=!1,Lo=4,So=.1;function pa(o,n=0){const l=[];return o.forEach(function(s,a){let g=null;s.forEach(function(m,P){if(!m&&g!==null){l.push(`M${g+n} ${a+n}h${P-g}v1H${g+n}z`),g=null;return}if(P===s.length-1){if(!m)return;g===null?l.push(`M${P+n},${a+n} h1v1H${P+n}z`):l.push(`M${g+n},${a+n} h${P+1-g}v1H${g+n}z`);return}m&&g===null&&(g=P)})}),l.join("")}function Pa(o,n){return o.slice().map((l,s)=>s=n.y+n.h?l:l.map((a,g)=>g=n.x+n.w?a:!1))}function Bo(o,n,l,s){if(s==null)return null;const a=l?Lo:0,g=o.length+a*2,m=Math.floor(n*So),P=g/n,p=(s.width||m)*P,S=(s.height||m)*P,j=s.x==null?o.length/2-p/2:s.x*P,B=s.y==null?o.length/2-S/2:s.y*P;let ge=null;if(s.excavate){let We=Math.floor(j),Ee=Math.floor(B),rt=Math.ceil(p+j-We),at=Math.ceil(S+B-Ee);ge={x:We,y:Ee,w:rt,h:at}}return{x:j,y:B,h:S,w:p,excavation:ge}}var fr=function(){try{new Path2D().addPath(new Path2D)}catch(o){return!1}return!0}();function Ao(o){const n=o,{value:l,size:s=rr,level:a=Rr,bgColor:g=Xr,fgColor:m=zr,includeMargin:P=Br,style:p,imageSettings:S}=n,j=Xn(n,["value","size","level","bgColor","fgColor","includeMargin","style","imageSettings"]),B=S==null?void 0:S.src,ge=(0,t.useRef)(null),We=(0,t.useRef)(null),[Ee,rt]=(0,t.useState)(!1);(0,t.useEffect)(()=>{if(ge.current!=null){const kt=ge.current,Zt=kt.getContext("2d");if(!Zt)return;let dn=Dn.QrCode.encodeText(l,jr[a]).getModules();const nn=P?Lo:0,wn=dn.length+nn*2,Tn=Bo(dn,s,P,S),Vn=We.current,pr=Tn!=null&&Vn!==null&&Vn.complete&&Vn.naturalHeight!==0&&Vn.naturalWidth!==0;pr&&Tn.excavation!=null&&(dn=Pa(dn,Tn.excavation));const Ar=window.devicePixelRatio||1;kt.height=kt.width=s*Ar;const Ko=s/wn*Ar;Zt.scale(Ko,Ko),Zt.fillStyle=g,Zt.fillRect(0,0,wn,wn),Zt.fillStyle=m,fr?Zt.fill(new Path2D(pa(dn,nn))):dn.forEach(function(Wr,Mr){Wr.forEach(function($r,uo){$r&&Zt.fillRect(uo+nn,Mr+nn,1,1)})}),pr&&Zt.drawImage(Vn,Tn.x+nn,Tn.y+nn,Tn.w,Tn.h)}}),(0,t.useEffect)(()=>{rt(!1)},[B]);const at=Ln({height:s,width:s},p);let Wt=null;return B!=null&&(Wt=t.createElement("img",{src:B,key:B,style:{display:"none"},onLoad:()=>{rt(!0)},ref:We})),t.createElement(t.Fragment,null,t.createElement("canvas",Ln({style:at,height:s,width:s,ref:ge},j)),Wt)}function To(o){const n=o,{value:l,size:s=rr,level:a=Rr,bgColor:g=Xr,fgColor:m=zr,includeMargin:P=Br,imageSettings:p}=n,S=Xn(n,["value","size","level","bgColor","fgColor","includeMargin","imageSettings"]);let j=Dn.QrCode.encodeText(l,jr[a]).getModules();const B=P?Lo:0,ge=j.length+B*2,We=Bo(j,s,P,p);let Ee=null;p!=null&&We!=null&&(We.excavation!=null&&(j=Pa(j,We.excavation)),Ee=t.createElement("image",{xlinkHref:p.src,height:We.h,width:We.w,x:We.x+B,y:We.y+B,preserveAspectRatio:"none"}));const rt=pa(j,B);return t.createElement("svg",Ln({height:s,width:s,viewBox:`0 0 ${ge} ${ge}`},S),t.createElement("path",{fill:g,d:`M0,0 h${ge}v${ge}H0z`,shapeRendering:"crispEdges"}),t.createElement("path",{fill:m,d:rt,shapeRendering:"crispEdges"}),Ee)}var qr=o=>{const n=o,{renderAs:l}=n,s=Xn(n,["renderAs"]);return l==="svg"?React.createElement(To,Ln({},s)):React.createElement(Ao,Ln({},s))};const na=o=>{const{componentCls:n}=o;return{[n]:Object.assign(Object.assign({},(0,_.Wf)(o)),{display:"flex",justifyContent:"center",alignItems:"center",padding:o.paddingSM,backgroundColor:o.colorWhite,borderRadius:o.borderRadiusLG,border:`${o.lineWidth}px ${o.lineType} ${o.colorSplit}`,position:"relative",width:"100%",height:"100%",overflow:"hidden",[`& > ${n}-mask`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,zIndex:10,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",width:"100%",height:"100%",color:o.colorText,lineHeight:o.lineHeight,background:o.QRCodeMaskBackgroundColor,textAlign:"center",[`& > ${n}-expired`]:{color:o.QRCodeExpiredTextColor}},"&-icon":{marginBlockEnd:o.marginXS,fontSize:o.controlHeight}}),[`${n}-borderless`]:{borderColor:"transparent"}}};var Go=(0,k.Z)("QRCode",o=>na((0,J.TS)(o,{QRCodeExpiredTextColor:"rgba(0, 0, 0, 0.88)",QRCodeMaskBackgroundColor:"rgba(255, 255, 255, 0.96)"})));const{useToken:Po}=to.Z;var bi=o=>{const{token:n}=Po(),{value:l,type:s="canvas",icon:a="",size:g=160,iconSize:m=40,color:P=n.colorText,errorLevel:p="M",status:S="active",bordered:j=!0,onRefresh:B,style:ge,className:We,rootClassName:Ee,prefixCls:rt,bgColor:at="transparent"}=o,{getPrefixCls:Wt}=(0,t.useContext)(se.E_),kt=Wt("qrcode",rt),[Zt,dn]=Go(kt),nn={src:a,x:void 0,y:void 0,height:m,width:m,excavate:!0},wn={value:l,size:g-(n.paddingSM+n.lineWidth)*2,level:p,bgColor:at,fgColor:P,imageSettings:a?nn:void 0},[Tn]=(0,Vt.Z)("QRCode");if(!l)return null;const Vn=D()(kt,We,Ee,dn,{[`${kt}-borderless`]:!j});return Zt(t.createElement("div",{style:Object.assign(Object.assign({},ge),{width:g,height:g,backgroundColor:at}),className:Vn},S!=="active"&&t.createElement("div",{className:`${kt}-mask`},S==="loading"&&t.createElement(al.Z,null),S==="expired"&&t.createElement(t.Fragment,null,t.createElement("p",{className:`${kt}-expired`},Tn==null?void 0:Tn.expired),B&&t.createElement(ot.ZP,{type:"link",icon:t.createElement(ze.Z,null),onClick:B},Tn==null?void 0:Tn.refresh))),s==="canvas"?t.createElement(Ao,Object.assign({},wn)):t.createElement(To,Object.assign({},wn))))},tl=e(10852),gl=e(73045),ls=e(12632),Ms=e(62886),Ns=e(2073),ss=e(57214),xs=e(94706),hs=e(57414),ps=e(4459),Jl=o=>{const{value:n,formatter:l,precision:s,decimalSeparator:a,groupSeparator:g="",prefixCls:m}=o;let P;if(typeof l=="function")P=l(n);else{const p=String(n),S=p.match(/^(-?)(\d*)(\.(\d+))?$/);if(!S||p==="-")P=p;else{const j=S[1];let B=S[2]||"0",ge=S[4]||"";B=B.replace(/\B(?=(\d{3})+(?!\d))/g,g),typeof s=="number"&&(ge=ge.padEnd(s,"0").slice(0,s>0?s:0)),ge&&(ge=`${a}${ge}`),P=[t.createElement("span",{key:"int",className:`${m}-content-value-int`},j,B),ge&&t.createElement("span",{key:"decimal",className:`${m}-content-value-decimal`},ge)]}}return t.createElement("span",{className:`${m}-content-value`},P)};const zs=o=>{const{componentCls:n,marginXXS:l,padding:s,colorTextDescription:a,titleFontSize:g,colorTextHeading:m,contentFontSize:P,fontFamily:p}=o;return{[`${n}`]:Object.assign(Object.assign({},(0,_.Wf)(o)),{[`${n}-title`]:{marginBottom:l,color:a,fontSize:g},[`${n}-skeleton`]:{paddingTop:s},[`${n}-content`]:{color:m,fontSize:P,fontFamily:p,[`${n}-content-value`]:{display:"inline-block",direction:"ltr"},[`${n}-content-prefix, ${n}-content-suffix`]:{display:"inline-block"},[`${n}-content-prefix`]:{marginInlineEnd:l},[`${n}-content-suffix`]:{marginInlineStart:l}}})}};var Ds=(0,k.Z)("Statistic",o=>{const n=(0,J.TS)(o,{});return[zs(n)]},o=>{const{fontSizeHeading3:n,fontSize:l}=o;return{titleFontSize:l,contentFontSize:n}}),il=o=>{const{prefixCls:n,className:l,rootClassName:s,style:a,valueStyle:g,value:m=0,title:P,valueRender:p,prefix:S,suffix:j,loading:B=!1,onMouseEnter:ge,onMouseLeave:We,decimalSeparator:Ee=".",groupSeparator:rt=","}=o,{getPrefixCls:at,direction:Wt,statistic:kt}=t.useContext(se.E_),Zt=at("statistic",n),[dn,nn]=Ds(Zt),wn=t.createElement(Jl,Object.assign({decimalSeparator:Ee,groupSeparator:rt,prefixCls:Zt},o,{value:m})),Tn=D()(Zt,{[`${Zt}-rtl`]:Wt==="rtl"},kt==null?void 0:kt.className,l,s,nn);return dn(t.createElement("div",{className:Tn,style:Object.assign(Object.assign({},kt==null?void 0:kt.style),a),onMouseEnter:ge,onMouseLeave:We},P&&t.createElement("div",{className:`${Zt}-title`},P),t.createElement(ss.Z,{paragraph:!1,loading:B,className:`${Zt}-skeleton`},t.createElement("div",{style:g,className:`${Zt}-content`},S&&t.createElement("span",{className:`${Zt}-content-prefix`},S),p?p(wn):wn,j&&t.createElement("span",{className:`${Zt}-content-suffix`},j)))))};const Si=[["Y",1e3*60*60*24*365],["M",1e3*60*60*24*30],["D",1e3*60*60*24],["H",1e3*60*60],["m",1e3*60],["s",1e3],["S",1]];function ql(o,n){let l=o;const s=/\[[^\]]*]/g,a=(n.match(s)||[]).map(p=>p.slice(1,-1)),g=n.replace(s,"[]"),m=Si.reduce((p,S)=>{let[j,B]=S;if(p.includes(j)){const ge=Math.floor(l/B);return l-=ge*B,p.replace(new RegExp(`${j}+`,"g"),We=>{const Ee=We.length;return ge.toString().padStart(Ee,"0")})}return p},g);let P=0;return m.replace(s,()=>{const p=a[P];return P+=1,p})}function cs(o,n){const{format:l=""}=n,s=new Date(o).getTime(),a=Date.now(),g=Math.max(s-a,0);return ql(g,l)}const dc=1e3/30;function qs(o){return new Date(o).getTime()}const uc=o=>{const{value:n,format:l="HH:mm:ss",onChange:s,onFinish:a}=o,g=(0,ps.Z)(),m=t.useRef(null),P=()=>{a==null||a(),m.current&&(clearInterval(m.current),m.current=null)},p=()=>{const B=qs(n);B>=Date.now()&&(m.current=setInterval(()=>{g(),s==null||s(B-Date.now()),B(p(),()=>{m.current&&(clearInterval(m.current),m.current=null)}),[n]);const S=(B,ge)=>cs(B,Object.assign(Object.assign({},ge),{format:l})),j=B=>(0,pt.Tm)(B,{title:void 0});return t.createElement(il,Object.assign({},o,{valueRender:j,formatter:S}))};var Ws=t.memo(uc);il.Countdown=Ws;var fc=il,vc=e(81116),Es=e(2309),mc=e(93935),_s=e(16951),Ks=e(32814),Yc=e(98823),Uc=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{var{prefixCls:n,className:l,color:s="blue",dot:a,pending:g=!1,position:m,label:P,children:p}=o,S=Uc(o,["prefixCls","className","color","dot","pending","position","label","children"]);const{getPrefixCls:j}=t.useContext(se.E_),B=j("timeline",n),ge=D()(`${B}-item`,{[`${B}-item-pending`]:g},l),We=/blue|red|green|gray/.test(s||"")?void 0:s,Ee=D()(`${B}-item-head`,{[`${B}-item-head-custom`]:!!a,[`${B}-item-head-${s}`]:!We});return t.createElement("li",Object.assign({},S,{className:ge}),P&&t.createElement("div",{className:`${B}-item-label`},P),t.createElement("div",{className:`${B}-item-tail`}),t.createElement("div",{className:Ee,style:{borderColor:We,color:We}},a),t.createElement("div",{className:`${B}-item-content`},p))},Xc=e(25755),xc=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{var{prefixCls:n,className:l,pending:s=!1,children:a,items:g,rootClassName:m,reverse:P=!1,direction:p,hashId:S,pendingDot:j,mode:B=""}=o,ge=xc(o,["prefixCls","className","pending","children","items","rootClassName","reverse","direction","hashId","pendingDot","mode"]);const We=(nn,wn)=>B==="alternate"?nn==="right"?`${n}-item-right`:nn==="left"?`${n}-item-left`:wn%2===0?`${n}-item-left`:`${n}-item-right`:B==="left"?`${n}-item-left`:B==="right"?`${n}-item-right`:nn==="right"?`${n}-item-right`:"",Ee=(0,M.Z)(g||[]),rt=typeof s=="boolean"?null:s;s&&Ee.push({pending:!!s,dot:j||t.createElement(Xc.Z,null),children:rt}),P&&Ee.reverse();const at=Ee.length,Wt=`${n}-item-last`,kt=Ee.filter(nn=>!!nn).map((nn,wn)=>{var Tn;const Vn=wn===at-2?Wt:"",pr=wn===at-1?Wt:"",{className:Ar}=nn,Ko=xc(nn,["className"]);return t.createElement(Sc,Object.assign({},Ko,{className:D()([Ar,!P&&s?Vn:pr,We((Tn=nn==null?void 0:nn.position)!==null&&Tn!==void 0?Tn:"",wn)]),key:(nn==null?void 0:nn.key)||wn}))}),Zt=Ee.some(nn=>!!(nn!=null&&nn.label)),dn=D()(n,{[`${n}-pending`]:!!s,[`${n}-reverse`]:!!P,[`${n}-${B}`]:!!B&&!Zt,[`${n}-label`]:Zt,[`${n}-rtl`]:p==="rtl"},l,m,S);return t.createElement("ul",Object.assign({},ge,{className:dn}),kt)};function Qc(o,n){return o&&Array.isArray(o)?o:(0,he.Z)(n).map(l=>{var s,a;return Object.assign({children:(a=(s=l==null?void 0:l.props)===null||s===void 0?void 0:s.children)!==null&&a!==void 0?a:""},l.props)})}var Jc=Qc;const qc=o=>{const{componentCls:n}=o;return{[n]:Object.assign(Object.assign({},(0,_.Wf)(o)),{margin:0,padding:0,listStyle:"none",[`${n}-item`]:{position:"relative",margin:0,paddingBottom:o.itemPaddingBottom,fontSize:o.fontSize,listStyle:"none","&-tail":{position:"absolute",insetBlockStart:o.itemHeadSize,insetInlineStart:(o.itemHeadSize-o.tailWidth)/2,height:`calc(100% - ${o.itemHeadSize}px)`,borderInlineStart:`${o.tailWidth}px ${o.lineType} ${o.tailColor}`},"&-pending":{[`${n}-item-head`]:{fontSize:o.fontSizeSM,backgroundColor:"transparent"},[`${n}-item-tail`]:{display:"none"}},"&-head":{position:"absolute",width:o.itemHeadSize,height:o.itemHeadSize,backgroundColor:o.dotBg,border:`${o.dotBorderWidth}px ${o.lineType} transparent`,borderRadius:"50%","&-blue":{color:o.colorPrimary,borderColor:o.colorPrimary},"&-red":{color:o.colorError,borderColor:o.colorError},"&-green":{color:o.colorSuccess,borderColor:o.colorSuccess},"&-gray":{color:o.colorTextDisabled,borderColor:o.colorTextDisabled}},"&-head-custom":{position:"absolute",insetBlockStart:o.itemHeadSize/2,insetInlineStart:o.itemHeadSize/2,width:"auto",height:"auto",marginBlockStart:0,paddingBlock:o.customHeadPaddingVertical,lineHeight:1,textAlign:"center",border:0,borderRadius:0,transform:"translate(-50%, -50%)"},"&-content":{position:"relative",insetBlockStart:-(o.fontSize*o.lineHeight-o.fontSize)+o.lineWidth,marginInlineStart:o.margin+o.itemHeadSize,marginInlineEnd:0,marginBlockStart:0,marginBlockEnd:0,wordBreak:"break-word"},"&-last":{[`> ${n}-item-tail`]:{display:"none"},[`> ${n}-item-content`]:{minHeight:o.controlHeightLG*1.2}}},[`&${n}-alternate, + &${n}-right, + &${n}-label`]:{[`${n}-item`]:{"&-tail, &-head, &-head-custom":{insetInlineStart:"50%"},"&-head":{marginInlineStart:`-${o.marginXXS}px`,"&-custom":{marginInlineStart:o.tailWidth/2}},"&-left":{[`${n}-item-content`]:{insetInlineStart:`calc(50% - ${o.marginXXS}px)`,width:`calc(50% - ${o.marginSM}px)`,textAlign:"start"}},"&-right":{[`${n}-item-content`]:{width:`calc(50% - ${o.marginSM}px)`,margin:0,textAlign:"end"}}}},[`&${n}-right`]:{[`${n}-item-right`]:{[`${n}-item-tail, + ${n}-item-head, + ${n}-item-head-custom`]:{insetInlineStart:`calc(100% - ${(o.itemHeadSize+o.tailWidth)/2}px)`},[`${n}-item-content`]:{width:`calc(100% - ${o.itemHeadSize+o.marginXS}px)`}}},[`&${n}-pending + ${n}-item-last + ${n}-item-tail`]:{display:"block",height:`calc(100% - ${o.margin}px)`,borderInlineStart:`${o.tailWidth}px dotted ${o.tailColor}`},[`&${n}-reverse + ${n}-item-last + ${n}-item-tail`]:{display:"none"},[`&${n}-reverse ${n}-item-pending`]:{[`${n}-item-tail`]:{insetBlockStart:o.margin,display:"block",height:`calc(100% - ${o.margin}px)`,borderInlineStart:`${o.tailWidth}px dotted ${o.tailColor}`},[`${n}-item-content`]:{minHeight:o.controlHeightLG*1.2}},[`&${n}-label`]:{[`${n}-item-label`]:{position:"absolute",insetBlockStart:-(o.fontSize*o.lineHeight-o.fontSize)+o.tailWidth,width:`calc(50% - ${o.marginSM}px)`,textAlign:"end"},[`${n}-item-right`]:{[`${n}-item-label`]:{insetInlineStart:`calc(50% + ${o.marginSM}px)`,width:`calc(50% - ${o.marginSM}px)`,textAlign:"start"}}},"&-rtl":{direction:"rtl",[`${n}-item-head-custom`]:{transform:"translate(50%, -50%)"}}})}};var _c=(0,k.Z)("Timeline",o=>{const n=(0,J.TS)(o,{itemHeadSize:10,customHeadPaddingVertical:o.paddingXXS,paddingInlineEnd:2});return[qc(n)]},o=>({tailColor:o.colorSplit,tailWidth:o.lineWidthBold,dotBorderWidth:o.wireframe?o.lineWidthBold:o.lineWidth*3,dotBg:o.colorBgContainer,itemPaddingBottom:o.padding*1.25})),ed=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{getPrefixCls:n,direction:l,timeline:s}=t.useContext(se.E_),{prefixCls:a,children:g,items:m,className:P,style:p}=o,S=ed(o,["prefixCls","children","items","className","style"]),j=n("timeline",a),[B,ge]=_c(j),We=Jc(m,g);return B(t.createElement(Gc,Object.assign({},S,{className:D()(s==null?void 0:s.className,P),style:Object.assign(Object.assign({},s==null?void 0:s.style),p),prefixCls:j,direction:l,items:We,hashId:ge})))};wc.Item=Sc;var td=wc,nd=td,Ec=e(57127),Vs=e(81334);function rd(o){var n=window.innerWidth||document.documentElement.clientWidth,l=window.innerHeight||document.documentElement.clientHeight,s=o.getBoundingClientRect(),a=s.top,g=s.right,m=s.bottom,P=s.left;return a>=0&&P>=0&&g<=n&&m<=l}function od(o,n,l){var s;return(s=l!=null?l:n)!==null&&s!==void 0?s:o===null?"center":"bottom"}function ad(o,n,l,s){var a=(0,t.useState)(void 0),g=(0,v.Z)(a,2),m=g[0],P=g[1];(0,Vs.Z)(function(){var Ee=typeof o=="function"?o():o;P(Ee||null)});var p=(0,t.useState)(null),S=(0,v.Z)(p,2),j=S[0],B=S[1],ge=(0,H.Z)(function(){if(m){!rd(m)&&n&&m.scrollIntoView(s);var Ee=m.getBoundingClientRect(),rt=Ee.left,at=Ee.top,Wt=Ee.width,kt=Ee.height,Zt={left:rt,top:at,width:Wt,height:kt,radius:0};B(function(dn){return JSON.stringify(dn)!==JSON.stringify(Zt)?Zt:dn})}else B(null)});(0,Vs.Z)(function(){return ge(),window.addEventListener("resize",ge),function(){window.removeEventListener("resize",ge)}},[m,n,ge]);var We=(0,t.useMemo)(function(){if(!j)return j;var Ee=(l==null?void 0:l.offset)||6,rt=(l==null?void 0:l.radius)||2;return{left:j.left-Ee,top:j.top-Ee,width:j.width+Ee*2,height:j.height+Ee*2,radius:rt}},[j,l]);return[We,m]}var id=e(97071),ec={fill:"transparent",pointerEvents:"auto"},ld=function(n){var l=n.prefixCls,s=n.rootClassName,a=n.pos,g=n.showMask,m=n.style,P=m===void 0?{}:m,p=n.fill,S=p===void 0?"rgba(0,0,0,0.5)":p,j=n.open,B=n.animated,ge=n.zIndex,We=(0,id.Z)(),Ee="".concat(l,"-mask-").concat(We),rt=(0,Ie.Z)(B)==="object"?B==null?void 0:B.placeholder:B;return t.createElement(Ec.Z,{open:j,autoLock:!0},t.createElement("div",{className:D()("".concat(l,"-mask"),s),style:(0,ee.Z)({position:"fixed",left:0,right:0,top:0,bottom:0,zIndex:ge,pointerEvents:"none"},P)},g?t.createElement("svg",{style:{width:"100%",height:"100%"}},t.createElement("defs",null,t.createElement("mask",{id:Ee},t.createElement("rect",{x:"0",y:"0",width:"100vw",height:"100vh",fill:"white"}),a&&t.createElement("rect",{x:a.left,y:a.top,rx:a.radius,width:a.width,height:a.height,fill:"black",className:rt?"".concat(l,"-placeholder-animated"):""}))),t.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:S,mask:"url(#".concat(Ee,")")}),a&&t.createElement(t.Fragment,null,t.createElement("rect",(0,_e.Z)({},ec,{x:"0",y:"0",width:"100%",height:a.top})),t.createElement("rect",(0,_e.Z)({},ec,{x:"0",y:"0",width:a.left,height:"100%"})),t.createElement("rect",(0,_e.Z)({},ec,{x:"0",y:a.top+a.height,width:"100%",height:"calc(100vh - ".concat(a.top+a.height,"px)")})),t.createElement("rect",(0,_e.Z)({},ec,{x:a.left+a.width,y:"0",width:"calc(100vw - ".concat(a.left+a.width,"px)"),height:"100%"})))):null))},sd=ld,$u={adjustX:1,adjustY:1},cd=[0,0],Pc={left:{points:["cr","cl"],offset:[-8,0]},right:{points:["cl","cr"],offset:[8,0]},top:{points:["bc","tc"],offset:[0,-8]},bottom:{points:["tc","bc"],offset:[0,8]},topLeft:{points:["bl","tl"],offset:[0,-8]},leftTop:{points:["tr","tl"],offset:[-8,0]},topRight:{points:["br","tr"],offset:[0,-8]},rightTop:{points:["tl","tr"],offset:[8,0]},bottomRight:{points:["tr","br"],offset:[0,8]},rightBottom:{points:["bl","br"],offset:[8,0]},bottomLeft:{points:["tl","bl"],offset:[0,8]},leftBottom:{points:["br","bl"],offset:[-8,0]}};function $c(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,n={};return Object.keys(Pc).forEach(function(l){n[l]=(0,ee.Z)((0,ee.Z)({},Pc[l]),{},{autoArrow:o,targetOffset:cd})}),n}var Ou=$c();function dd(o){var n=o.prefixCls,l=o.current,s=o.total,a=o.title,g=o.description,m=o.onClose,P=o.onPrev,p=o.onNext,S=o.onFinish,j=o.className;return t.createElement("div",{className:D()("".concat(n,"-content"),j)},t.createElement("div",{className:"".concat(n,"-inner")},t.createElement("button",{type:"button",onClick:m,"aria-label":"Close",className:"".concat(n,"-close")},t.createElement("span",{className:"".concat(n,"-close-x")},"\xD7")),t.createElement("div",{className:"".concat(n,"-header")},t.createElement("div",{className:"".concat(n,"-title")},a)),t.createElement("div",{className:"".concat(n,"-description")},g),t.createElement("div",{className:"".concat(n,"-footer")},t.createElement("div",{className:"".concat(n,"-sliders")},s>1?(0,M.Z)(Array.from({length:s}).keys()).map(function(B,ge){return t.createElement("span",{key:B,className:ge===l?"active":""})}):null),t.createElement("div",{className:"".concat(n,"-buttons")},l!==0?t.createElement("button",{className:"".concat(n,"-prev-btn"),onClick:P},"Prev"):null,l===s-1?t.createElement("button",{className:"".concat(n,"-finish-btn"),onClick:S},"Finish"):t.createElement("button",{className:"".concat(n,"-next-btn"),onClick:p},"Next")))))}var ud=function(n){var l=n.current,s=n.renderPanel;return t.createElement(t.Fragment,null,typeof s=="function"?s(n,l):t.createElement(dd,n))},fd=ud,vd=["prefixCls","steps","defaultCurrent","current","onChange","onClose","onFinish","open","mask","arrow","rootClassName","placement","renderPanel","gap","animated","scrollIntoViewOptions","zIndex"],md={left:"50%",top:"50%",width:1,height:1},gd=function(n){var l=n.prefixCls,s=l===void 0?"rc-tour":l,a=n.steps,g=a===void 0?[]:a,m=n.defaultCurrent,P=n.current,p=n.onChange,S=n.onClose,j=n.onFinish,B=n.open,ge=n.mask,We=ge===void 0?!0:ge,Ee=n.arrow,rt=Ee===void 0?!0:Ee,at=n.rootClassName,Wt=n.placement,kt=n.renderPanel,Zt=n.gap,dn=n.animated,nn=n.scrollIntoViewOptions,wn=nn===void 0?!0:nn,Tn=n.zIndex,Vn=Tn===void 0?1001:Tn,pr=(0,ht.Z)(n,vd),Ar=t.useRef(),Ko=(0,Nt.Z)(0,{value:P,defaultValue:m}),Wr=(0,v.Z)(Ko,2),Mr=Wr[0],$r=Wr[1],uo=(0,Nt.Z)(void 0,{value:B,postState:function(si){return Mr<0||Mr>=g.length?!1:si!=null?si:!0}}),$a=(0,v.Z)(uo,2),Vo=$a[0],ya=$a[1],xi=t.useRef(Vo);(0,Vs.Z)(function(){Vo&&!xi.current&&$r(0),xi.current=Vo},[Vo]);var Ca=g[Mr]||{},Aa=Ca.target,mo=Ca.placement,ia=Ca.style,Gr=Ca.arrow,ja=Ca.className,ni=Ca.mask,Sa=Ca.scrollIntoViewOptions,ua=Vo&&(ni!=null?ni:We),ll=Sa!=null?Sa:wn,$o=ad(Aa,B,Zt,ll),Yo=(0,v.Z)($o,2),di=Yo[0],Fr=Yo[1],la=od(Fr,Wt,mo),Ii=Fr?typeof Gr=="undefined"?rt:Gr:!1,ro=(0,Ie.Z)(Ii)==="object"?Ii.pointAtCenter:!1;(0,Vs.Z)(function(){var El;(El=Ar.current)===null||El===void 0||El.forceAlign()},[ro,Mr]);var jo=function(si){$r(si),p==null||p(si)};if(Fr===void 0)return null;var Ha=function(){ya(!1),S==null||S(Mr)},hl=function(){return t.createElement(fd,(0,_e.Z)({arrow:Ii,key:"content",prefixCls:s,total:g.length,renderPanel:kt,onPrev:function(){jo(Mr-1)},onNext:function(){jo(Mr+1)},onClose:Ha,current:Mr,onFinish:function(){Ha(),j==null||j()}},g[Mr]))},rs=typeof ua=="boolean"?ua:!!ua,ui=typeof ua=="boolean"?void 0:ua,_l=function(si){return si||Fr||document.body};return t.createElement(t.Fragment,null,t.createElement(sd,{zIndex:Vn,prefixCls:s,pos:di,showMask:rs,style:ui==null?void 0:ui.style,fill:ui==null?void 0:ui.color,open:Vo,animated:dn,rootClassName:at}),t.createElement(Fa.Z,(0,_e.Z)({builtinPlacements:$c(ro)},pr,{ref:Ar,popupStyle:ia,popupPlacement:la,popupVisible:Vo,popupClassName:D()(at,ja),prefixCls:s,popup:hl,forceRender:!1,destroyPopupOnHide:!0,zIndex:Vn,getTriggerDOMNode:_l,arrow:!!Ii}),t.createElement(Ec.Z,{open:Vo,autoLock:!0},t.createElement("div",{className:D()(at,"".concat(s,"-target-placeholder")),style:(0,ee.Z)((0,ee.Z)({},di||md),{},{position:"fixed",pointerEvents:"none"})}))))},hd=gd,pd=hd,yd=e(95446),Cd=e(21465),gc=e(80076);function hc(o){return o!=null}var Oc=o=>{let{stepProps:n,current:l,type:s,indicatorsRender:a}=o;var g,m;const{prefixCls:P,total:p=1,title:S,onClose:j,onPrev:B,onNext:ge,onFinish:We,cover:Ee,description:rt,nextButtonProps:at,prevButtonProps:Wt,type:kt,className:Zt}=n,dn=kt!=null?kt:s,nn=l===p-1,wn=()=>{var uo;B==null||B(),(uo=Wt==null?void 0:Wt.onClick)===null||uo===void 0||uo.call(Wt)},Tn=()=>{var uo;nn?We==null||We():ge==null||ge(),(uo=at==null?void 0:at.onClick)===null||uo===void 0||uo.call(at)},Vn=hc(S)?t.createElement("div",{className:`${P}-header`},t.createElement("div",{className:`${P}-title`},S)):null,pr=hc(rt)?t.createElement("div",{className:`${P}-description`},rt):null,Ar=hc(Ee)?t.createElement("div",{className:`${P}-cover`},Ee):null;let Ko;a?Ko=a(l,p):Ko=(0,M.Z)(Array.from({length:p}).keys()).map((uo,$a)=>t.createElement("span",{key:uo,className:D()($a===l&&`${P}-indicator-active`,`${P}-indicator`)}));const Wr=dn==="primary"?"default":"primary",Mr={type:"default",ghost:dn==="primary"},[$r]=(0,Vt.Z)("Tour",gc.Z.Tour);return t.createElement("div",{className:D()(Zt,`${P}-content`)},t.createElement("div",{className:`${P}-inner`},t.createElement(Ea.Z,{className:`${P}-close`,onClick:j}),Ar,Vn,pr,t.createElement("div",{className:`${P}-footer`},p>1&&t.createElement("div",{className:`${P}-indicators`},Ko),t.createElement("div",{className:`${P}-buttons`},l!==0?t.createElement(ot.ZP,Object.assign({},Mr,Wt,{onClick:wn,size:"small",className:D()(`${P}-prev-btn`,Wt==null?void 0:Wt.className)}),(g=Wt==null?void 0:Wt.children)!==null&&g!==void 0?g:$r==null?void 0:$r.Previous):null,t.createElement(ot.ZP,Object.assign({type:Wr},at,{onClick:Tn,size:"small",className:D()(`${P}-next-btn`,at==null?void 0:at.className)}),(m=at==null?void 0:at.children)!==null&&m!==void 0?m:nn?$r==null?void 0:$r.Finish:$r==null?void 0:$r.Next)))))},Zc=e(24542);const bd=o=>{const{componentCls:n,lineHeight:l,padding:s,paddingXS:a,borderRadius:g,borderRadiusXS:m,colorPrimary:P,colorText:p,colorFill:S,indicatorHeight:j,indicatorWidth:B,boxShadowTertiary:ge,tourZIndexPopup:We,fontSize:Ee,colorBgElevated:rt,fontWeightStrong:at,marginXS:Wt,colorTextLightSolid:kt,tourBorderRadius:Zt,colorWhite:dn,colorBgTextHover:nn,tourCloseSize:wn,motionDurationSlow:Tn,antCls:Vn}=o;return[{[n]:Object.assign(Object.assign({},(0,_.Wf)(o)),{color:p,position:"absolute",zIndex:We,display:"block",visibility:"visible",fontSize:Ee,lineHeight:l,width:520,"--antd-arrow-background-color":rt,"&-pure":{maxWidth:"100%",position:"relative"},[`&${n}-hidden`]:{display:"none"},[`${n}-content`]:{position:"relative"},[`${n}-inner`]:{textAlign:"start",textDecoration:"none",borderRadius:Zt,boxShadow:ge,position:"relative",backgroundColor:rt,border:"none",backgroundClip:"padding-box",[`${n}-close`]:{position:"absolute",top:s,insetInlineEnd:s,color:o.colorIcon,outline:"none",width:wn,height:wn,borderRadius:o.borderRadiusSM,transition:`background-color ${o.motionDurationMid}, color ${o.motionDurationMid}`,display:"flex",alignItems:"center",justifyContent:"center","&:hover":{color:o.colorIconHover,backgroundColor:o.wireframe?"transparent":o.colorFillContent}},[`${n}-cover`]:{textAlign:"center",padding:`${s+wn+a}px ${s}px 0`,img:{width:"100%"}},[`${n}-header`]:{padding:`${s}px ${s}px ${a}px`,[`${n}-title`]:{lineHeight:l,fontSize:Ee,fontWeight:at}},[`${n}-description`]:{padding:`0 ${s}px`,lineHeight:l,wordWrap:"break-word"},[`${n}-footer`]:{padding:`${a}px ${s}px ${s}px`,textAlign:"end",borderRadius:`0 0 ${m}px ${m}px`,display:"flex",[`${n}-indicators`]:{display:"inline-block",[`${n}-indicator`]:{width:B,height:j,display:"inline-block",borderRadius:"50%",background:S,"&:not(:last-child)":{marginInlineEnd:j},"&-active":{background:P}}},[`${n}-buttons`]:{marginInlineStart:"auto",[`${Vn}-btn`]:{marginInlineStart:Wt}}}},[`${n}-primary, &${n}-primary`]:{"--antd-arrow-background-color":P,[`${n}-inner`]:{color:kt,textAlign:"start",textDecoration:"none",backgroundColor:P,borderRadius:g,boxShadow:ge,[`${n}-close`]:{color:kt},[`${n}-indicators`]:{[`${n}-indicator`]:{background:new V.C(kt).setAlpha(.15).toRgbString(),"&-active":{background:kt}}},[`${n}-prev-btn`]:{color:kt,borderColor:new V.C(kt).setAlpha(.15).toRgbString(),backgroundColor:P,"&:hover":{backgroundColor:new V.C(kt).setAlpha(.15).toRgbString(),borderColor:"transparent"}},[`${n}-next-btn`]:{color:P,borderColor:"transparent",background:dn,"&:hover":{background:new V.C(nn).onBackground(dn).toRgbString()}}}}}),[`${n}-mask`]:{[`${n}-placeholder-animated`]:{transition:`all ${Tn}`}},[["&-placement-left","&-placement-leftTop","&-placement-leftBottom","&-placement-right","&-placement-rightTop","&-placement-rightBottom"].join(",")]:{[`${n}-inner`]:{borderRadius:Math.min(Zt,Zc.qN)}}},(0,Zc.ZP)(o,{colorBg:"var(--antd-arrow-background-color)",contentRadius:Zt,limitVerticalRadius:!0})]};var Rc=(0,k.Z)("Tour",o=>{const{borderRadiusLG:n,fontSize:l,lineHeight:s}=o,a=(0,J.TS)(o,{tourZIndexPopup:o.zIndexPopupBase+70,indicatorWidth:6,indicatorHeight:6,tourBorderRadius:n,tourCloseSize:l*s});return[bd(a)]}),Sd=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:n,current:l=0,total:s=6,className:a,style:g,type:m}=o,P=Sd(o,["prefixCls","current","total","className","style","type"]),{getPrefixCls:p}=t.useContext(se.E_),S=p("tour",n),[j,B]=Rc(S);return j(t.createElement(Cd.t5,{prefixCls:S,hashId:B,className:D()(a,`${S}-pure`,m&&`${S}-${m}`),style:g},t.createElement(Oc,{stepProps:Object.assign(Object.assign({},P),{prefixCls:S,total:s}),current:l,type:m})))};var wd=(0,lt.i)(xd),Ed=o=>{let{defaultType:n,steps:l=[],current:s,defaultCurrent:a}=o;var g;const[m,P]=(0,Nt.Z)(a,{value:s});(0,t.useLayoutEffect)(()=>{s!==void 0&&P(s)},[s]);const p=typeof m=="number"?(g=l[m])===null||g===void 0?void 0:g.type:n;return{currentMergedType:p!=null?p:n,updateInnerCurrent:P}},Pd=function(o,n){var l={};for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&n.indexOf(s)<0&&(l[s]=o[s]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(o);a{const{prefixCls:n,current:l,defaultCurrent:s,type:a,rootClassName:g,indicatorsRender:m,steps:P}=o,p=Pd(o,["prefixCls","current","defaultCurrent","type","rootClassName","indicatorsRender","steps"]),{getPrefixCls:S,direction:j}=(0,t.useContext)(se.E_),B=S("tour",n),[ge,We]=Rc(B),{token:Ee}=to.Z.useToken(),{currentMergedType:rt,updateInnerCurrent:at}=Ed({defaultType:a,steps:P,current:l,defaultCurrent:s}),Wt=(0,yd.Z)({arrowPointAtCenter:!0,autoAdjustOverflow:!0,offset:Ee.marginXXS,arrowWidth:Ee.sizePopupArrow,borderRadius:Ee.borderRadius}),kt=D()({[`${B}-primary`]:rt==="primary",[`${B}-rtl`]:j==="rtl"},We,g),Zt=(nn,wn)=>t.createElement(Oc,{type:a,stepProps:nn,current:wn,indicatorsRender:m}),dn=nn=>{var wn;at(nn),(wn=o.onChange)===null||wn===void 0||wn.call(o,nn)};return ge(t.createElement(pd,Object.assign({},p,{rootClassName:kt,prefixCls:B,current:l,defaultCurrent:s,animated:!0,renderPanel:Zt,builtinPlacements:Wt,onChange:dn,steps:P})))};Ic._InternalPanelDoNotUseOrYouWillBeFired=wd;var $d=Ic;const tc=o=>{const n=new Map;return o.forEach((l,s)=>{n.set(l,s)}),n},Od=o=>{const n=new Map;return o.forEach((l,s)=>{let{disabled:a,key:g}=l;a&&n.set(g,s)}),n};function Zd(o,n,l){const s=t.useMemo(()=>(o||[]).map(m=>(n&&(m=Object.assign(Object.assign({},m),{key:n(m)})),m)),[o,n]),[a,g]=t.useMemo(()=>{const m=[],P=new Array((l||[]).length),p=tc(l||[]);return s.forEach(S=>{p.has(S.key)?P[p.get(S.key)]=S:m.push(S)}),[m,P]},[s,l,n]);return[s,a,g]}var Rd=Zd;const Id=[];function Fs(o,n){const l=o.filter(s=>n.has(s));return o.length===l.length?o:l}function Mc(o){return Array.from(o).join(";")}function Md(o,n){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Id;const[s,a]=t.useMemo(()=>[new Set(o.map(S=>S.key)),new Set(n.map(S=>S.key))],[o,n]),[g,m]=t.useState(()=>Fs(l,s)),[P,p]=t.useState(()=>Fs(l,a));return t.useEffect(()=>{m(Fs(l,s)),p(Fs(l,a))},[l]),t.useEffect(()=>{m(Fs(g,s)),p(Fs(P,a))},[Mc(s),Mc(a)]),[g,P,m,p]}var Nd=e(10130),Td=e(23605),Dd=e(74122);const Fd=o=>{const{renderedText:n,renderedEl:l,item:s,checked:a,disabled:g,prefixCls:m,onClick:P,onRemove:p,showRemove:S}=o,j=D()(`${m}-content-item`,{[`${m}-content-item-disabled`]:g||s.disabled,[`${m}-content-item-checked`]:a});let B;(typeof n=="string"||typeof n=="number")&&(B=String(n));const[ge]=(0,Vt.Z)("Transfer",gc.Z.Transfer),We={className:j,title:B},Ee=t.createElement("span",{className:`${m}-content-item-text`},l);return S?t.createElement("li",Object.assign({},We),Ee,t.createElement(Dd.Z,{disabled:g||s.disabled,className:`${m}-content-item-remove`,"aria-label":ge==null?void 0:ge.remove,onClick:()=>{p==null||p(s)}},t.createElement(Td.Z,null))):(We.onClick=g||s.disabled?void 0:()=>P(s),t.createElement("li",Object.assign({},We),t.createElement(Tt.Z,{className:`${m}-checkbox`,checked:a,disabled:g||s.disabled}),Ee))};var Ld=t.memo(Fd);const Ad=["handleFilter","handleClear","checkedKeys"],jd=o=>Object.assign(Object.assign({},{simple:!0,showSizeChanger:!1,showLessItems:!1}),o),Hd=(o,n)=>{const{prefixCls:l,filteredRenderItems:s,selectedKeys:a,disabled:g,showRemove:m,pagination:P,onScroll:p,onItemSelect:S,onItemRemove:j}=o,[B,ge]=t.useState(1),We=t.useMemo(()=>P?jd(typeof P=="object"?P:{}):null,[P]),[Ee,rt]=(0,Nt.Z)(10,{value:We==null?void 0:We.pageSize});t.useEffect(()=>{if(We){const Tn=Math.ceil(s.length/Ee);ge(Math.min(B,Tn))}},[s,We,Ee]);const at=Tn=>{S==null||S(Tn.key,!a.includes(Tn.key))},Wt=Tn=>{j==null||j([Tn.key])},kt=Tn=>{ge(Tn)},Zt=(Tn,Vn)=>{ge(Tn),rt(Vn)},dn=t.useMemo(()=>We?s.slice((B-1)*Ee,B*Ee):s,[B,s,We,Ee]);t.useImperativeHandle(n,()=>({items:dn}));const nn=We?t.createElement(I.Z,{size:"small",disabled:g,simple:We.simple,pageSize:Ee,showLessItems:We.showLessItems,showSizeChanger:We.showSizeChanger,className:`${l}-pagination`,total:s.length,current:B,onChange:kt,onShowSizeChange:Zt}):null,wn=D()(`${l}-content`,{[`${l}-content-show-remove`]:m});return t.createElement(t.Fragment,null,t.createElement("ul",{className:wn,onScroll:p},(dn||[]).map(Tn=>{let{renderedEl:Vn,renderedText:pr,item:Ar}=Tn;return t.createElement(Ld,{key:Ar.key,item:Ar,renderedText:pr,renderedEl:Vn,prefixCls:l,showRemove:m,onClick:at,onRemove:Wt,checked:a.includes(Ar.key),disabled:g||Ar.disabled})})),nn)};var kd=t.forwardRef(Hd),Bd=e(99534),Nc=o=>{const{placeholder:n="",value:l,prefixCls:s,disabled:a,onChange:g,handleClear:m}=o,P=t.useCallback(p=>{g==null||g(p),p.target.value===""&&(m==null||m())},[g]);return t.createElement(Ia.Z,{placeholder:n,className:s,value:l,onChange:P,disabled:a,allowClear:!0,prefix:t.createElement(Bd.Z,null)})};const zd=()=>null;function Wd(o){return!!(o&&!(0,pt.l$)(o)&&Object.prototype.toString.call(o)==="[object Object]")}function Ys(o){return o.filter(n=>!n.disabled).map(n=>n.key)}const Kd=o=>o!==void 0;var pc=o=>{const{prefixCls:n,dataSource:l=[],titleText:s="",checkedKeys:a,disabled:g,showSearch:m=!1,style:P,searchPlaceholder:p,notFoundContent:S,selectAll:j,selectCurrent:B,selectInvert:ge,removeAll:We,removeCurrent:Ee,showSelectAll:rt=!0,showRemove:at,pagination:Wt,direction:kt,itemsUnit:Zt,itemUnit:dn,selectAllLabel:nn,selectionsIcon:wn,footer:Tn,renderList:Vn,onItemSelectAll:pr,onItemRemove:Ar,handleFilter:Ko,handleClear:Wr,filterOption:Mr,render:$r=zd}=o,[uo,$a]=(0,t.useState)(""),Vo=(0,t.useRef)({}),ya=ro=>{$a(ro.target.value),Ko(ro)},xi=()=>{$a(""),Wr()},Ca=(ro,jo)=>Mr?Mr(uo,jo):ro.includes(uo),Aa=ro=>{let jo=Vn?Vn(ro):null;const Ha=!!jo;return Ha||(jo=t.createElement(kd,Object.assign({ref:Vo},ro))),{customize:Ha,bodyContent:jo}},mo=ro=>{const jo=$r(ro),Ha=Wd(jo);return{item:ro,renderedEl:Ha?jo.label:jo,renderedText:Ha?jo.value:jo}},ia=(0,t.useMemo)(()=>Array.isArray(S)?S[kt==="left"?0:1]:S,[S,kt]),[Gr,ja]=(0,t.useMemo)(()=>{const ro=[],jo=[];return l.forEach(Ha=>{const hl=mo(Ha);uo&&!Ca(hl.renderedText,Ha)||(ro.push(Ha),jo.push(hl))}),[ro,jo]},[l,uo]),ni=(0,t.useMemo)(()=>{if(a.length===0)return"none";const ro=tc(a);return Gr.every(jo=>ro.has(jo.key)||!!jo.disabled)?"all":"part"},[a,Gr]),Sa=(0,t.useMemo)(()=>{const ro=m?t.createElement("div",{className:`${n}-body-search-wrapper`},t.createElement(Nc,{prefixCls:`${n}-search`,onChange:ya,handleClear:xi,placeholder:p,value:uo,disabled:g})):null,{customize:jo,bodyContent:Ha}=Aa(Object.assign(Object.assign({},(0,mt.Z)(o,Ad)),{filteredItems:Gr,filteredRenderItems:ja,selectedKeys:a}));let hl;return jo?hl=t.createElement("div",{className:`${n}-body-customize-wrapper`},Ha):hl=Gr.length?Ha:t.createElement("div",{className:`${n}-body-not-found`},ia),t.createElement("div",{className:D()(m?`${n}-body ${n}-body-with-search`:`${n}-body`)},ro,hl)},[m,n,p,uo,g,a,Gr,ja,ia]),ua=t.createElement(Tt.Z,{disabled:l.length===0||g,checked:ni==="all",indeterminate:ni==="part",className:`${n}-checkbox`,onChange:()=>{pr==null||pr(Gr.filter(ro=>!ro.disabled).map(ro=>{let{key:jo}=ro;return jo}),ni!=="all")}}),ll=(ro,jo)=>{if(nn)return typeof nn=="function"?nn({selectedCount:ro,totalCount:jo}):nn;const Ha=jo>1?Zt:dn;return t.createElement(t.Fragment,null,(ro>0?`${ro}/`:"")+jo," ",Ha)},$o=Tn&&(Tn.length<2?Tn(o):Tn(o,{direction:kt})),Yo=D()(n,{[`${n}-with-pagination`]:!!Wt,[`${n}-with-footer`]:!!$o}),di=$o?t.createElement("div",{className:`${n}-footer`},$o):null,Fr=!at&&!Wt&&ua;let la;at?la=[Wt?{key:"removeCurrent",label:Ee,onClick(){var ro;const jo=Ys((((ro=Vo.current)===null||ro===void 0?void 0:ro.items)||[]).map(Ha=>Ha.item));Ar==null||Ar(jo)}}:null,{key:"removeAll",label:We,onClick(){Ar==null||Ar(Ys(Gr))}}].filter(Boolean):la=[{key:"selectAll",label:j,onClick(){const ro=Ys(Gr);pr==null||pr(ro,ro.length!==a.length)}},Wt?{key:"selectCurrent",label:B,onClick(){var ro;const jo=((ro=Vo.current)===null||ro===void 0?void 0:ro.items)||[];pr==null||pr(Ys(jo.map(Ha=>Ha.item)),!0)}}:null,{key:"selectInvert",label:ge,onClick(){var ro;const jo=Ys(Wt?(((ro=Vo.current)===null||ro===void 0?void 0:ro.items)||[]).map(ui=>ui.item):Gr),Ha=new Set(a),hl=[],rs=[];jo.forEach(ui=>{Ha.has(ui)?rs.push(ui):hl.push(ui)}),pr==null||pr(hl,"replace")}}];const Ii=t.createElement(bo.Z,{className:`${n}-header-dropdown`,menu:{items:la},disabled:g},Kd(wn)?wn:t.createElement(Nd.Z,null));return t.createElement("div",{className:Yo,style:P},t.createElement("div",{className:`${n}-header`},rt?t.createElement(t.Fragment,null,Fr,Ii):null,t.createElement("span",{className:`${n}-header-selected`},ll(a.length,Gr.length)),t.createElement("span",{className:`${n}-header-title`},s)),Sa,di)},Tc=e(99142),Dc=e(91169),Fc=o=>{const{disabled:n,moveToLeft:l,moveToRight:s,leftArrowText:a="",rightArrowText:g="",leftActive:m,rightActive:P,className:p,style:S,direction:j,oneWay:B}=o;return t.createElement("div",{className:p,style:S},t.createElement(ot.ZP,{type:"primary",size:"small",disabled:n||!P,onClick:s,icon:j!=="rtl"?t.createElement(Dc.Z,null):t.createElement(Tc.Z,null)},g),!B&&t.createElement(ot.ZP,{type:"primary",size:"small",disabled:n||!m,onClick:l,icon:j!=="rtl"?t.createElement(Tc.Z,null):t.createElement(Dc.Z,null)},a))};const Vd=o=>{const{antCls:n,componentCls:l,listHeight:s,controlHeightLG:a,marginXXS:g,margin:m}=o,P=`${n}-table`,p=`${n}-input`;return{[`${l}-customize-list`]:{[`${l}-list`]:{flex:"1 1 50%",width:"auto",height:"auto",minHeight:s},[`${P}-wrapper`]:{[`${P}-small`]:{border:0,borderRadius:0,[`${P}-selection-column`]:{width:a,minWidth:a}},[`${P}-pagination${P}-pagination`]:{margin:`${m}px 0 ${g}px`}},[`${p}[disabled]`]:{backgroundColor:"transparent"}}}},Lc=(o,n)=>{const{componentCls:l,colorBorder:s}=o;return{[`${l}-list`]:{borderColor:n,"&-search:not([disabled])":{borderColor:s}}}},Yd=o=>{const{componentCls:n}=o;return{[`${n}-status-error`]:Object.assign({},Lc(o,o.colorError)),[`${n}-status-warning`]:Object.assign({},Lc(o,o.colorWarning))}},Ud=o=>{const{componentCls:n,colorBorder:l,colorSplit:s,lineWidth:a,itemHeight:g,headerHeight:m,transferHeaderVerticalPadding:P,itemPaddingBlock:p,controlItemBgActive:S,colorTextDisabled:j,listHeight:B,listWidth:ge,listWidthLG:We,fontSizeIcon:Ee,marginXS:rt,paddingSM:at,lineType:Wt,antCls:kt,iconCls:Zt,motionDurationSlow:dn,controlItemBgHover:nn,borderRadiusLG:wn,colorBgContainer:Tn,colorText:Vn,controlItemBgActiveHover:pr}=o;return{display:"flex",flexDirection:"column",width:ge,height:B,border:`${a}px ${Wt} ${l}`,borderRadius:o.borderRadiusLG,"&-with-pagination":{width:We,height:"auto"},"&-search":{[`${Zt}-search`]:{color:j}},"&-header":{display:"flex",flex:"none",alignItems:"center",height:m,padding:`${P-a}px ${at}px ${P}px`,color:Vn,background:Tn,borderBottom:`${a}px ${Wt} ${s}`,borderRadius:`${wn}px ${wn}px 0 0`,"> *:not(:last-child)":{marginInlineEnd:4},"> *":{flex:"none"},"&-title":Object.assign(Object.assign({},_.vS),{flex:"auto",textAlign:"end"}),"&-dropdown":Object.assign(Object.assign({},(0,_.Ro)()),{fontSize:Ee,transform:"translateY(10%)",cursor:"pointer","&[disabled]":{cursor:"not-allowed"}})},"&-body":{display:"flex",flex:"auto",flexDirection:"column",fontSize:o.fontSize,minHeight:0,"&-search-wrapper":{position:"relative",flex:"none",padding:at}},"&-content":{flex:"auto",margin:0,padding:0,overflow:"auto",listStyle:"none","&-item":{display:"flex",alignItems:"center",minHeight:g,padding:`${p}px ${at}px`,transition:`all ${dn}`,"> *:not(:last-child)":{marginInlineEnd:rt},"> *":{flex:"none"},"&-text":Object.assign(Object.assign({},_.vS),{flex:"auto"}),"&-remove":{position:"relative",color:l,cursor:"pointer",transition:`all ${dn}`,"&:hover":{color:o.colorLinkHover},"&::after":{position:"absolute",inset:`-${p}px -50%`,content:'""'}},[`&:not(${n}-list-content-item-disabled)`]:{"&:hover":{backgroundColor:nn,cursor:"pointer"},[`&${n}-list-content-item-checked:hover`]:{backgroundColor:pr}},"&-checked":{backgroundColor:S},"&-disabled":{color:j,cursor:"not-allowed"}},[`&-show-remove ${n}-list-content-item:not(${n}-list-content-item-disabled):hover`]:{background:"transparent",cursor:"default"}},"&-pagination":{padding:`${o.paddingXS}px 0`,textAlign:"end",borderTop:`${a}px ${Wt} ${s}`,[`${kt}-pagination-options`]:{paddingInlineEnd:o.paddingXS}},"&-body-not-found":{flex:"none",width:"100%",margin:"auto 0",color:j,textAlign:"center"},"&-footer":{borderTop:`${a}px ${Wt} ${s}`}}},Xd=o=>{const{antCls:n,iconCls:l,componentCls:s,headerHeight:a,marginXS:g,marginXXS:m,fontSizeIcon:P,fontSize:p,lineHeight:S,colorBgContainerDisabled:j}=o;return{[s]:Object.assign(Object.assign({},(0,_.Wf)(o)),{position:"relative",display:"flex",alignItems:"stretch",[`${s}-disabled`]:{[`${s}-list`]:{background:j}},[`${s}-list`]:Ud(o),[`${s}-operation`]:{display:"flex",flex:"none",flexDirection:"column",alignSelf:"center",margin:`0 ${g}px`,verticalAlign:"middle",[`${n}-btn`]:{display:"block","&:first-child":{marginBottom:m},[l]:{fontSize:P}}},[`${n}-empty-image`]:{maxHeight:a/2-Math.round(p*S)}})}},Gd=o=>{const{componentCls:n}=o;return{[`${n}-rtl`]:{direction:"rtl"}}};var Qd=(0,k.Z)("Transfer",o=>{const{fontSize:n,lineHeight:l,lineWidth:s,controlHeightLG:a}=o,g=Math.round(n*l),m=(0,J.TS)(o,{transferHeaderVerticalPadding:Math.ceil((a-s-g)/2)});return[Xd(m),Vd(m),Yd(m),Gd(m)]},o=>{const{fontSize:n,lineHeight:l,controlHeight:s,controlHeightLG:a}=o,g=Math.round(n*l);return{listWidth:180,listHeight:200,listWidthLG:250,headerHeight:a,itemHeight:s,itemPaddingBlock:(s-g)/2}});const nc=o=>{const{dataSource:n,targetKeys:l=[],selectedKeys:s,selectAllLabels:a=[],operations:g=[],style:m={},listStyle:P={},locale:p={},titles:S,disabled:j,showSearch:B=!1,operationStyle:ge,showSelectAll:We,oneWay:Ee,pagination:rt,status:at,prefixCls:Wt,className:kt,rootClassName:Zt,selectionsIcon:dn,filterOption:nn,render:wn,footer:Tn,children:Vn,rowKey:pr,onScroll:Ar,onChange:Ko,onSearch:Wr,onSelectChange:Mr}=o,{getPrefixCls:$r,renderEmpty:uo,direction:$a,transfer:Vo}=(0,t.useContext)(se.E_),ya=$r("transfer",Wt),[xi,Ca]=Qd(ya),[Aa,mo,ia]=Rd(n,pr,l),[Gr,ja,ni,Sa]=Md(mo,ia,s),ua=(0,t.useCallback)((ea,Da)=>{if(ea==="left"){const Pl=typeof Da=="function"?Da(Gr||[]):Da;ni(Pl)}else{const Pl=typeof Da=="function"?Da(ja||[]):Da;Sa(Pl)}},[Gr,ja]),ll=(0,t.useCallback)((ea,Da)=>{ea==="left"?Mr==null||Mr(Da,ja):Mr==null||Mr(Gr,Da)},[Gr,ja]),$o=ea=>{var Da;return(Da=S!=null?S:ea.titles)!==null&&Da!==void 0?Da:[]},Yo=ea=>{Ar==null||Ar("left",ea)},di=ea=>{Ar==null||Ar("right",ea)},Fr=ea=>{const Da=ea==="right"?Gr:ja,Pl=Od(Aa),Al=Da.filter(Gs=>!Pl.has(Gs)),Ul=tc(Al),Hs=ea==="right"?Al.concat(l):l.filter(Gs=>!Ul.has(Gs)),ks=ea==="right"?"left":"right";ua(ks,[]),ll(ks,[]),Ko==null||Ko(Hs,ea,Al)},la=()=>{Fr("left")},Ii=()=>{Fr("right")},ro=(ea,Da,Pl)=>{ua(ea,Al=>{let Ul=[];if(Pl==="replace")Ul=Da;else if(Pl)Ul=Array.from(new Set([].concat((0,M.Z)(Al),(0,M.Z)(Da))));else{const Hs=tc(Da);Ul=Al.filter(ks=>!Hs.has(ks))}return ll(ea,Ul),Ul})},jo=(ea,Da)=>{ro("left",ea,Da)},Ha=(ea,Da)=>{ro("right",ea,Da)},hl=ea=>Wr==null?void 0:Wr("left",ea.target.value),rs=ea=>Wr==null?void 0:Wr("right",ea.target.value),ui=()=>Wr==null?void 0:Wr("left",""),_l=()=>Wr==null?void 0:Wr("right",""),El=(ea,Da,Pl)=>{const Al=(0,M.Z)(ea==="left"?Gr:ja),Ul=Al.indexOf(Da);Ul>-1&&Al.splice(Ul,1),Pl&&Al.push(Da),ll(ea,Al),o.selectedKeys||ua(ea,Al)},si=(ea,Da)=>{El("left",ea,Da)},rc=(ea,Da)=>{El("right",ea,Da)},oc=ea=>{ua("right",[]),Ko==null||Ko(l.filter(Da=>!ea.includes(Da)),"left",(0,M.Z)(ea))},ac=ea=>typeof P=="function"?P({direction:ea}):P||{},ic=(0,t.useContext)(Bt.aM),{hasFeedback:Cc,status:lc}=ic,ys=ea=>Object.assign(Object.assign(Object.assign({},ea),{notFoundContent:(uo==null?void 0:uo("Transfer"))||t.createElement(vl.Z,{componentName:"Transfer"})}),p),bc=(0,Nr.F)(lc,at),sc=!Vn&&rt,Ls=ja.length>0,Cs=Gr.length>0,Us=D()(ya,{[`${ya}-disabled`]:j,[`${ya}-customize-list`]:!!Vn,[`${ya}-rtl`]:$a==="rtl"},(0,Nr.Z)(ya,bc,Cc),Vo==null?void 0:Vo.className,kt,Zt,Ca),[As]=(0,Vt.Z)("Transfer",gc.Z.Transfer),Ps=ys(As),[Xs,js]=$o(Ps);return xi(t.createElement("div",{className:Us,style:Object.assign(Object.assign({},Vo==null?void 0:Vo.style),m)},t.createElement(pc,Object.assign({prefixCls:`${ya}-list`,titleText:Xs,dataSource:mo,filterOption:nn,style:ac("left"),checkedKeys:Gr,handleFilter:hl,handleClear:ui,onItemSelect:si,onItemSelectAll:jo,render:wn,showSearch:B,renderList:Vn,footer:Tn,onScroll:Yo,disabled:j,direction:$a==="rtl"?"right":"left",showSelectAll:We,selectAllLabel:a[0],pagination:sc,selectionsIcon:dn},Ps)),t.createElement(Fc,{className:`${ya}-operation`,rightActive:Cs,rightArrowText:g[0],moveToRight:Ii,leftActive:Ls,leftArrowText:g[1],moveToLeft:la,style:ge,disabled:j,direction:$a,oneWay:Ee}),t.createElement(pc,Object.assign({prefixCls:`${ya}-list`,titleText:js,dataSource:ia,filterOption:nn,style:ac("right"),checkedKeys:ja,handleFilter:rs,handleClear:_l,onItemSelect:rc,onItemSelectAll:Ha,onItemRemove:oc,render:wn,showSearch:B,renderList:Vn,footer:Tn,onScroll:di,disabled:j,direction:$a==="rtl"?"left":"right",showSelectAll:We,selectAllLabel:a[1],showRemove:Ee,pagination:sc,selectionsIcon:dn},Ps))))};nc.List=pc,nc.Search=Nc,nc.Operation=Fc;var Jd=nc,qd=e(7992),_d=e(76185),eu=e(45151),tu=e(23241),nu=e(93430),Ac=e(69188),ru=function(o){(0,ct.Z)(l,o);var n=(0,be.Z)(l);function l(){return(0,Y.Z)(this,l),n.apply(this,arguments)}return(0,Ae.Z)(l,[{key:"render",value:function(){return this.props.children}}]),l}(t.Component),ou=ru,au=e(19075),iu={subtree:!0,childList:!0,attributeFilter:["style","class"]};function lu(o,n){var l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:iu;t.useEffect(function(){if(!(!(0,au.Z)()||!o)){var s,a=Array.isArray(o)?o:[o];return"MutationObserver"in window&&(s=new MutationObserver(n),a.forEach(function(g){s.observe(g,l)})),function(){var g,m;(g=s)===null||g===void 0||g.takeRecords(),(m=s)===null||m===void 0||m.disconnect()}}},[l,o])}var su=function(n){var l=n.children,s=n.options,a=n.onMutate,g=a===void 0?function(){}:a,m=(0,H.Z)(g),P=t.useRef(null),p=t.useRef(null),S=t.isValidElement(l)&&(0,el.Yr)(l),j=(0,el.x1)(p,S?l.ref:null),B=t.useState(null),ge=(0,v.Z)(B,2),We=ge[0],Ee=ge[1];return lu(We,m,s),(0,Vs.Z)(function(){Ee((0,Ac.Z)(p.current)||(0,Ac.Z)(P.current))}),l?t.createElement(ou,{ref:P},S?t.cloneElement(l,{ref:j}):l):null},cu=su,du=cu;const jc=3;function yc(o,n){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;const s=document.createElement("canvas"),a=s.getContext("2d"),g=o*l,m=n*l;return s.setAttribute("width",`${g}px`),s.setAttribute("height",`${m}px`),a.save(),[a,s,g,m]}function uu(){function o(n,l,s,a,g,m,P,p){const[S,j,B,ge]=yc(a,g,s);if(n instanceof HTMLImageElement)S.drawImage(n,0,0,B,ge);else{const{color:Aa,fontSize:mo,fontStyle:ia,fontWeight:Gr,fontFamily:ja}=m,ni=Number(mo)*s;S.font=`${ia} normal ${Gr} ${ni}px/${g}px ${ja}`,S.fillStyle=Aa,S.textAlign="center",S.textBaseline="top";const Sa=Array.isArray(n)?n:[n];Sa==null||Sa.forEach((ua,ll)=>{S.fillText(ua!=null?ua:"",B/2,ll*(ni+jc*s))})}const We=Math.PI/180*Number(l),Ee=Math.max(a,g),[rt,at,Wt]=yc(Ee,Ee,s);rt.translate(Wt/2,Wt/2),rt.rotate(We),rt.drawImage(j,-B/2,-ge/2);function kt(Aa,mo){const ia=Aa*Math.cos(We)-mo*Math.sin(We),Gr=Aa*Math.sin(We)+mo*Math.cos(We);return[ia,Gr]}let Zt=0,dn=0,nn=0,wn=0;const Tn=B/2,Vn=ge/2;[[0-Tn,0-Vn],[0+Tn,0-Vn],[0+Tn,0+Vn],[0-Tn,0+Vn]].forEach(Aa=>{let[mo,ia]=Aa;const[Gr,ja]=kt(mo,ia);Zt=Math.min(Zt,Gr),dn=Math.max(dn,Gr),nn=Math.min(nn,ja),wn=Math.max(wn,ja)});const Ar=Zt+Wt/2,Ko=nn+Wt/2,Wr=dn-Zt,Mr=wn-nn,$r=P*s,uo=p*s,$a=(Wr+$r)*2,Vo=Mr+uo,[ya,xi]=yc($a,Vo);function Ca(){let Aa=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,mo=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;ya.drawImage(at,Ar,Ko,Wr,Mr,Aa,mo,Wr,Mr)}return Ca(),Ca(Wr+$r,-Mr/2-uo/2),Ca(Wr+$r,+Mr/2+uo/2),[xi.toDataURL(),$a/s,Vo/s]}return o}function fu(o){return o.replace(/([A-Z])/g,"-$1").toLowerCase()}function vu(o){return Object.keys(o).map(n=>`${fu(n)}: ${o[n]};`).join(" ")}function mu(){return window.devicePixelRatio||1}const gu=(o,n)=>{let l=!1;return o.removedNodes.length&&(l=Array.from(o.removedNodes).some(s=>s===n)),o.type==="attributes"&&o.target===n&&(l=!0),l};var hu=o=>{var n,l;const{zIndex:s=9,rotate:a=-22,width:g,height:m,image:P,content:p,font:S={},style:j,className:B,rootClassName:ge,gap:We=[100,100],offset:Ee,children:rt}=o,{token:at}=to.Z.useToken(),{color:Wt=at.colorFill,fontSize:kt=at.fontSizeLG,fontWeight:Zt="normal",fontStyle:dn="normal",fontFamily:nn="sans-serif"}=S,[wn,Tn]=We,Vn=wn/2,pr=Tn/2,Ar=(n=Ee==null?void 0:Ee[0])!==null&&n!==void 0?n:Vn,Ko=(l=Ee==null?void 0:Ee[1])!==null&&l!==void 0?l:pr,Wr=()=>{const mo={zIndex:s,position:"absolute",left:0,top:0,width:"100%",height:"100%",pointerEvents:"none",backgroundRepeat:"repeat"};let ia=Ar-Vn,Gr=Ko-pr;return ia>0&&(mo.left=`${ia}px`,mo.width=`calc(100% - ${ia}px)`,ia=0),Gr>0&&(mo.top=`${Gr}px`,mo.height=`calc(100% - ${Gr}px)`,Gr=0),mo.backgroundPosition=`${ia}px ${Gr}px`,mo},Mr=(0,t.useRef)(null),$r=(0,t.useRef)(),uo=(0,t.useRef)(!1),$a=()=>{$r.current&&($r.current.remove(),$r.current=void 0)},Vo=(mo,ia)=>{var Gr;Mr.current&&$r.current&&(uo.current=!0,$r.current.setAttribute("style",vu(Object.assign(Object.assign({},Wr()),{backgroundImage:`url('${mo}')`,backgroundSize:`${Math.floor(ia)}px`}))),(Gr=Mr.current)===null||Gr===void 0||Gr.append($r.current),setTimeout(()=>{uo.current=!1}))},ya=mo=>{let ia=120,Gr=64;if(!P&&mo.measureText){mo.font=`${Number(kt)}px ${nn}`;const ja=Array.isArray(p)?p:[p],ni=ja.map(Sa=>{const ua=mo.measureText(Sa);return[ua.width,ua.fontBoundingBoxAscent+ua.fontBoundingBoxDescent]});ia=Math.ceil(Math.max.apply(Math,(0,M.Z)(ni.map(Sa=>Sa[0])))),Gr=Math.ceil(Math.max.apply(Math,(0,M.Z)(ni.map(Sa=>Sa[1]))))*ja.length+(ja.length-1)*jc}return[g!=null?g:ia,m!=null?m:Gr]},xi=uu(),Ca=()=>{const ia=document.createElement("canvas").getContext("2d");if(ia){$r.current||($r.current=document.createElement("div"));const Gr=mu(),[ja,ni]=ya(ia),Sa=ua=>{const[ll,$o]=xi(ua||"",a,Gr,ja,ni,{color:Wt,fontSize:kt,fontStyle:dn,fontWeight:Zt,fontFamily:nn},wn,Tn);Vo(ll,$o)};if(P){const ua=new Image;ua.onload=()=>{Sa(ua)},ua.onerror=()=>{Sa(p)},ua.crossOrigin="anonymous",ua.referrerPolicy="no-referrer",ua.src=P}else Sa(p)}},Aa=mo=>{uo.current||mo.forEach(ia=>{gu(ia,$r.current)&&($a(),Ca())})};return(0,t.useEffect)(Ca,[a,s,g,m,P,p,Wt,kt,Zt,dn,nn,wn,Tn,Ar,Ko]),t.createElement(du,{onMutate:Aa},t.createElement("div",{ref:Mr,className:D()(B,ge),style:Object.assign({position:"relative"},j)},rt))}},30956:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return He}});var i=e(69831),y=e(87608),M=e.n(y),F=e(29639),D=e(60409),H=e(98186),t=e(58757),A=e(37047),R=e(61836),Ce=e(33181),se=e(99086),w=e(99836),K=e(12562),re=e(70921),f=e(29487),_=e(80076),k=e(21465),J=e(52628);const $e=L=>{const{componentCls:Be,iconCls:$t,antCls:oe,zIndexPopup:ue,colorText:ce,colorWarning:Je,marginXXS:it,marginXS:Te,fontSize:ut,fontWeightStrong:X,colorTextHeading:W}=L;return{[Be]:{zIndex:ue,[`&${oe}-popover`]:{fontSize:ut},[`${Be}-message`]:{marginBottom:Te,display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${Be}-message-icon ${$t}`]:{color:Je,fontSize:ut,lineHeight:1,marginInlineEnd:Te},[`${Be}-title`]:{fontWeight:X,color:W,"&:only-child":{fontWeight:"normal"}},[`${Be}-description`]:{marginTop:it,color:ce}},[`${Be}-buttons`]:{textAlign:"end",whiteSpace:"nowrap",button:{marginInlineStart:Te}}}}};var z=(0,J.Z)("Popconfirm",L=>$e(L),L=>{const{zIndexPopupBase:Be}=L;return{zIndexPopup:Be+60}}),h=function(L,Be){var $t={};for(var oe in L)Object.prototype.hasOwnProperty.call(L,oe)&&Be.indexOf(oe)<0&&($t[oe]=L[oe]);if(L!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ue=0,oe=Object.getOwnPropertySymbols(L);ue{const{prefixCls:Be,okButtonProps:$t,cancelButtonProps:oe,title:ue,description:ce,cancelText:Je,okText:it,okType:Te="primary",icon:ut=t.createElement(i.Z,null),showCancel:X=!0,close:W,onConfirm:me,onCancel:he,onPopupClick:mt}=L,{getPrefixCls:lt}=t.useContext(R.E_),[pt]=(0,f.Z)("Popconfirm",_.Z.Popconfirm),ft=(0,w.Z)(ue),wt=(0,w.Z)(ce);return t.createElement("div",{className:`${Be}-inner-content`,onClick:mt},t.createElement("div",{className:`${Be}-message`},ut&&t.createElement("span",{className:`${Be}-message-icon`},ut),t.createElement("div",{className:`${Be}-message-text`},ft&&t.createElement("div",{className:M()(`${Be}-title`)},ft),wt&&t.createElement("div",{className:`${Be}-description`},wt))),t.createElement("div",{className:`${Be}-buttons`},X&&t.createElement(K.ZP,Object.assign({onClick:he,size:"small"},oe),Je!=null?Je:pt==null?void 0:pt.cancelText),t.createElement(se.Z,{buttonProps:Object.assign(Object.assign({size:"small"},(0,re.n)(Te)),$t),actionFn:me,close:W,prefixCls:lt("btn"),quitOnNullishReturnValue:!0,emitEvent:!0},it!=null?it:pt==null?void 0:pt.okText)))};var Fe=L=>{const{prefixCls:Be,placement:$t,className:oe,style:ue}=L,ce=h(L,["prefixCls","placement","className","style"]),{getPrefixCls:Je}=t.useContext(R.E_),it=Je("popconfirm",Be),[Te]=z(it);return Te(t.createElement(k.ZP,{placement:$t,className:M()(it,oe),style:ue,content:t.createElement(Xe,Object.assign({prefixCls:it},ce))}))},xe=function(L,Be){var $t={};for(var oe in L)Object.prototype.hasOwnProperty.call(L,oe)&&Be.indexOf(oe)<0&&($t[oe]=L[oe]);if(L!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ue=0,oe=Object.getOwnPropertySymbols(L);ue{const{prefixCls:$t,placement:oe="top",trigger:ue="click",okType:ce="primary",icon:Je=t.createElement(i.Z,null),children:it,overlayClassName:Te,onOpenChange:ut,onVisibleChange:X}=L,W=xe(L,["prefixCls","placement","trigger","okType","icon","children","overlayClassName","onOpenChange","onVisibleChange"]),{getPrefixCls:me}=t.useContext(R.E_),[he,mt]=(0,D.Z)(!1,{value:L.open,defaultValue:L.defaultOpen}),lt=(Re,Oe)=>{mt(Re,!0),X==null||X(Re),ut==null||ut(Re,Oe)},pt=Re=>{lt(!1,Re)},ft=Re=>{var Oe;return(Oe=L.onConfirm)===null||Oe===void 0?void 0:Oe.call(void 0,Re)},wt=Re=>{var Oe;lt(!1,Re),(Oe=L.onCancel)===null||Oe===void 0||Oe.call(void 0,Re)},Gt=Re=>{Re.keyCode===F.Z.ESC&&he&<(!1,Re)},Mt=Re=>{const{disabled:Oe=!1}=L;Oe||lt(Re)},yt=me("popconfirm",$t),St=M()(yt,Te),[fe]=z(yt);return fe(t.createElement(Ce.Z,Object.assign({},(0,H.Z)(W,["title"]),{trigger:ue,placement:oe,onOpenChange:Mt,open:he,ref:Be,overlayClassName:St,content:t.createElement(Xe,Object.assign({okType:ce,icon:Je},L,{prefixCls:yt,close:pt,onConfirm:ft,onCancel:wt})),"data-popover-inject":!0}),(0,A.Tm)(it,{onKeyDown:Re=>{var Oe,Le;t.isValidElement(it)&&((Le=it==null?void 0:(Oe=it.props).onKeyDown)===null||Le===void 0||Le.call(Oe,Re)),Gt(Re)}})))});xt._InternalPanelDoNotUseOrYouWillBeFired=Fe;var He=xt},73045:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return ut}});var i=e(60698),y=e(58757),M={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0046.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z"}}]},name:"star",theme:"filled"},F=M,D=e(17202),H=function(W,me){return y.createElement(D.Z,(0,i.Z)({},W,{ref:me,icon:F}))},t=y.forwardRef(H),A=e(87608),R=e.n(A),Ce=e(37734),se=e(28314),w=e(47075),K=e(60409),re=e(29639),f=e(33926);function _(X,W){var me=X.disabled,he=X.prefixCls,mt=X.character,lt=X.characterRender,pt=X.index,ft=X.count,wt=X.value,Gt=X.allowHalf,Mt=X.focused,yt=X.onHover,St=X.onClick,fe=function(Z){yt(Z,pt)},Re=function(Z){St(Z,pt)},Oe=function(Z){Z.keyCode===re.Z.ENTER&&St(Z,pt)},Le=pt+1,O=new Set([he]);wt===0&&pt===0&&Mt?O.add("".concat(he,"-focused")):Gt&&wt+.5>=Le&&wtpt?"true":"false","aria-posinset":pt+1,"aria-setsize":ft,tabIndex:me?-1:0},y.createElement("div",{className:"".concat(he,"-first")},ke),y.createElement("div",{className:"".concat(he,"-second")},ke)));return lt&&($=lt($,X)),$}var k=y.forwardRef(_);function J(){var X=y.useRef({});function W(he){return X.current[he]}function me(he){return function(mt){X.current[he]=mt}}return[W,me]}function $e(X){var W=X.pageXOffset,me="scrollLeft";if(typeof W!="number"){var he=X.document;W=he.documentElement[me],typeof W!="number"&&(W=he.body[me])}return W}function z(X){var W,me,he=X.ownerDocument,mt=he.body,lt=he&&he.documentElement,pt=X.getBoundingClientRect();return W=pt.left,me=pt.top,W-=lt.clientLeft||mt.clientLeft||0,me-=lt.clientTop||mt.clientTop||0,{left:W,top:me}}function h(X){var W=z(X),me=X.ownerDocument,he=me.defaultView||me.parentWindow;return W.left+=$e(he),W.left}var Xe=["prefixCls","className","defaultValue","value","count","allowHalf","allowClear","character","characterRender","disabled","direction","tabIndex","autoFocus","onHoverChange","onChange","onFocus","onBlur","onKeyDown","onMouseLeave"];function It(X,W){var me,he=X.prefixCls,mt=he===void 0?"rc-rate":he,lt=X.className,pt=X.defaultValue,ft=X.value,wt=X.count,Gt=wt===void 0?5:wt,Mt=X.allowHalf,yt=Mt===void 0?!1:Mt,St=X.allowClear,fe=St===void 0?!0:St,Re=X.character,Oe=Re===void 0?"\u2605":Re,Le=X.characterRender,O=X.disabled,ke=X.direction,$=ke===void 0?"ltr":ke,b=X.tabIndex,Z=b===void 0?0:b,ae=X.autoFocus,q=X.onHoverChange,Ye=X.onChange,ot=X.onFocus,gt=X.onBlur,Et=X.onKeyDown,Nt=X.onMouseLeave,Vt=(0,w.Z)(X,Xe),Bt=J(),tt=(0,se.Z)(Bt,2),st=tt[0],Ft=tt[1],jt=y.useRef(null),Lt=function(){if(!O){var N;(N=jt.current)===null||N===void 0||N.focus()}};y.useImperativeHandle(W,function(){return{focus:Lt,blur:function(){if(!O){var N;(N=jt.current)===null||N===void 0||N.blur()}}}});var un=(0,K.Z)(pt||0,{value:ft}),Ut=(0,se.Z)(un,2),pn=Ut[0],Sn=Ut[1],Xt=(0,K.Z)(null),an=(0,se.Z)(Xt,2),ln=an[0],Pn=an[1],zn=function(N,x){var te=$==="rtl",ye=N+1;if(yt){var Ze=st(N),Ke=h(Ze),Ve=Ze.clientWidth;(te&&x-Ke>Ve/2||!te&&x-Ke0&&!te||x===re.Z.RIGHT&&ye>0&&te?(yt?ye-=.5:ye-=1,qn(ye),N.preventDefault()):x===re.Z.LEFT&&ye{const{componentCls:W}=X;return{[`${W}-star`]:{position:"relative",display:"inline-block",color:"inherit",cursor:"pointer","&:not(:last-child)":{marginInlineEnd:X.marginXS},"> div":{transition:`all ${X.motionDurationMid}, outline 0s`,"&:hover":{transform:X.starHoverScale},"&:focus":{outline:0},"&:focus-visible":{outline:`${X.lineWidth}px dashed ${X.starColor}`,transform:X.starHoverScale}},"&-first, &-second":{color:X.starBg,transition:`all ${X.motionDurationMid}`,userSelect:"none",[X.iconCls]:{verticalAlign:"middle"}},"&-first":{position:"absolute",top:0,insetInlineStart:0,width:"50%",height:"100%",overflow:"hidden",opacity:0},[`&-half ${W}-star-first, &-half ${W}-star-second`]:{opacity:1},[`&-half ${W}-star-first, &-full ${W}-star-second`]:{color:"inherit"}}}},ue=X=>({[`&-rtl${X.componentCls}`]:{direction:"rtl"}}),ce=X=>{const{componentCls:W}=X;return{[W]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,L.Wf)(X)),{display:"inline-block",margin:0,padding:0,color:X.starColor,fontSize:X.starSize,lineHeight:"unset",listStyle:"none",outline:"none",[`&-disabled${W} ${W}-star`]:{cursor:"default","> div:hover":{transform:"scale(1)"}}}),oe(X)),{[`+ ${W}-text`]:{display:"inline-block",marginInlineStart:X.marginXS,fontSize:X.fontSize}}),ue(X))}};var Je=(0,Be.Z)("Rate",X=>{const W=(0,$t.TS)(X,{});return[ce(W)]},X=>({starColor:X.yellow6,starSize:X.controlHeightLG*.5,starHoverScale:"scale(1.1)",starBg:X.colorFillContent})),it=function(X,W){var me={};for(var he in X)Object.prototype.hasOwnProperty.call(X,he)&&W.indexOf(he)<0&&(me[he]=X[he]);if(X!=null&&typeof Object.getOwnPropertySymbols=="function")for(var mt=0,he=Object.getOwnPropertySymbols(X);mt{const{prefixCls:me,className:he,rootClassName:mt,style:lt,tooltips:pt,character:ft=y.createElement(t,null)}=X,wt=it(X,["prefixCls","className","rootClassName","style","tooltips","character"]),Gt=(O,ke)=>{let{index:$}=ke;return pt?y.createElement(He.Z,{title:pt[$]},O):O},{getPrefixCls:Mt,direction:yt,rate:St}=y.useContext(xt.E_),fe=Mt("rate",me),[Re,Oe]=Je(fe),Le=Object.assign(Object.assign({},St==null?void 0:St.style),lt);return Re(y.createElement(xe,Object.assign({ref:W,character:ft,characterRender:Gt},wt,{className:R()(he,mt,Oe,St==null?void 0:St.className),style:Le,prefixCls:fe,direction:yt})))})},62886:function(Dt,Ne,e){"use strict";var i=e(67665);Ne.Z=i.Z},2073:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return ut}});var i=e(87608),y=e.n(i),M=e(60698),F=e(28314),D=e(47075),H=e(37734),t=e(57370),A=e(38790),R=e(58757),Ce=e(60409),se=e(21319),w=e(98186),K=e(17598),re=e(81334),f=function(W){return W?{left:W.offsetLeft,right:W.parentElement.clientWidth-W.clientWidth-W.offsetLeft,width:W.clientWidth}:null},_=function(W){return W!==void 0?"".concat(W,"px"):void 0};function k(X){var W=X.prefixCls,me=X.containerRef,he=X.value,mt=X.getValueIndex,lt=X.motionName,pt=X.onMotionStart,ft=X.onMotionEnd,wt=X.direction,Gt=R.useRef(null),Mt=R.useState(he),yt=(0,F.Z)(Mt,2),St=yt[0],fe=yt[1],Re=function(Vt){var Bt,tt=mt(Vt),st=(Bt=me.current)===null||Bt===void 0?void 0:Bt.querySelectorAll(".".concat(W,"-item"))[tt];return(st==null?void 0:st.offsetParent)&&st},Oe=R.useState(null),Le=(0,F.Z)(Oe,2),O=Le[0],ke=Le[1],$=R.useState(null),b=(0,F.Z)($,2),Z=b[0],ae=b[1];(0,re.Z)(function(){if(St!==he){var Nt=Re(St),Vt=Re(he),Bt=f(Nt),tt=f(Vt);fe(he),ke(Bt),ae(tt),Nt&&Vt?pt():ft()}},[he]);var q=R.useMemo(function(){return _(wt==="rtl"?-(O==null?void 0:O.right):O==null?void 0:O.left)},[wt,O]),Ye=R.useMemo(function(){return _(wt==="rtl"?-(Z==null?void 0:Z.right):Z==null?void 0:Z.left)},[wt,Z]),ot=function(){return{transform:"translateX(var(--thumb-start-left))",width:"var(--thumb-start-width)"}},gt=function(){return{transform:"translateX(var(--thumb-active-left))",width:"var(--thumb-active-width)"}},Et=function(){ke(null),ae(null),ft()};return!O||!Z?null:R.createElement(K.ZP,{visible:!0,motionName:lt,motionAppear:!0,onAppearStart:ot,onAppearActive:gt,onVisibleChanged:Et},function(Nt,Vt){var Bt=Nt.className,tt=Nt.style,st=(0,t.Z)((0,t.Z)({},tt),{},{"--thumb-start-left":q,"--thumb-start-width":_(O==null?void 0:O.width),"--thumb-active-left":Ye,"--thumb-active-width":_(Z==null?void 0:Z.width)}),Ft={ref:(0,se.sQ)(Gt,Vt),style:st,className:y()("".concat(W,"-thumb"),Bt)};return R.createElement("div",Ft)})}var J=["prefixCls","direction","options","disabled","defaultValue","value","onChange","className","motionName"];function $e(X){if(typeof X.title!="undefined")return X.title;if((0,A.Z)(X.label)!=="object"){var W;return(W=X.label)===null||W===void 0?void 0:W.toString()}}function z(X){return X.map(function(W){if((0,A.Z)(W)==="object"&&W!==null){var me=$e(W);return(0,t.Z)((0,t.Z)({},W),{},{title:me})}return{label:W==null?void 0:W.toString(),title:W==null?void 0:W.toString(),value:W}})}var h=function(W){var me=W.prefixCls,he=W.className,mt=W.disabled,lt=W.checked,pt=W.label,ft=W.title,wt=W.value,Gt=W.onChange,Mt=function(St){mt||Gt(St,wt)};return R.createElement("label",{className:y()(he,(0,H.Z)({},"".concat(me,"-item-disabled"),mt))},R.createElement("input",{className:"".concat(me,"-item-input"),type:"radio",disabled:mt,checked:lt,onChange:Mt}),R.createElement("div",{className:"".concat(me,"-item-label"),title:ft},pt))},Xe=R.forwardRef(function(X,W){var me,he,mt=X.prefixCls,lt=mt===void 0?"rc-segmented":mt,pt=X.direction,ft=X.options,wt=X.disabled,Gt=X.defaultValue,Mt=X.value,yt=X.onChange,St=X.className,fe=St===void 0?"":St,Re=X.motionName,Oe=Re===void 0?"thumb-motion":Re,Le=(0,D.Z)(X,J),O=R.useRef(null),ke=R.useMemo(function(){return(0,se.sQ)(O,W)},[O,W]),$=R.useMemo(function(){return z(ft)},[ft]),b=(0,Ce.Z)((me=$[0])===null||me===void 0?void 0:me.value,{value:Mt,defaultValue:Gt}),Z=(0,F.Z)(b,2),ae=Z[0],q=Z[1],Ye=R.useState(!1),ot=(0,F.Z)(Ye,2),gt=ot[0],Et=ot[1],Nt=function(tt,st){wt||(q(st),yt==null||yt(st))},Vt=(0,w.Z)(Le,["children"]);return R.createElement("div",(0,M.Z)({},Vt,{className:y()(lt,(he={},(0,H.Z)(he,"".concat(lt,"-rtl"),pt==="rtl"),(0,H.Z)(he,"".concat(lt,"-disabled"),wt),he),fe),ref:ke}),R.createElement("div",{className:"".concat(lt,"-group")},R.createElement(k,{prefixCls:lt,value:ae,containerRef:O,motionName:"".concat(lt,"-").concat(Oe),direction:pt,getValueIndex:function(tt){return $.findIndex(function(st){return st.value===tt})},onMotionStart:function(){Et(!0)},onMotionEnd:function(){Et(!1)}}),$.map(function(Bt){return R.createElement(h,(0,M.Z)({},Bt,{key:Bt.value,prefixCls:lt,className:y()(Bt.className,"".concat(lt,"-item"),(0,H.Z)({},"".concat(lt,"-item-selected"),Bt.value===ae&&!gt)),checked:Bt.value===ae,onChange:Nt,disabled:!!wt||!!Bt.disabled}))})))});Xe.displayName="Segmented",Xe.defaultProps={options:[]};var It=Xe,Fe=e(61836),xe=e(58785),xt=e(78330),He=e(52628),L=e(22151);function Be(X,W){return{[`${X}, ${X}:hover, ${X}:focus`]:{color:W.colorTextDisabled,cursor:"not-allowed"}}}function $t(X){return{backgroundColor:X.itemSelectedBg,boxShadow:X.boxShadowTertiary}}const oe=Object.assign({overflow:"hidden"},xt.vS),ue=X=>{const{componentCls:W}=X;return{[W]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,xt.Wf)(X)),{display:"inline-block",padding:X.segmentedPadding,color:X.itemColor,backgroundColor:X.segmentedBgColor,borderRadius:X.borderRadius,transition:`all ${X.motionDurationMid} ${X.motionEaseInOut}`,[`${W}-group`]:{position:"relative",display:"flex",alignItems:"stretch",justifyItems:"flex-start",width:"100%"},[`&${W}-rtl`]:{direction:"rtl"},[`&${W}-block`]:{display:"flex"},[`&${W}-block ${W}-item`]:{flex:1,minWidth:0},[`${W}-item`]:{position:"relative",textAlign:"center",cursor:"pointer",transition:`color ${X.motionDurationMid} ${X.motionEaseInOut}`,borderRadius:X.borderRadiusSM,"&-selected":Object.assign(Object.assign({},$t(X)),{color:X.itemHoverColor}),"&::after":{content:'""',position:"absolute",width:"100%",height:"100%",top:0,insetInlineStart:0,borderRadius:"inherit",transition:`background-color ${X.motionDurationMid}`,pointerEvents:"none"},[`&:hover:not(${W}-item-selected):not(${W}-item-disabled)`]:{color:X.itemHoverColor,"&::after":{backgroundColor:X.itemHoverBg}},[`&:active:not(${W}-item-selected):not(${W}-item-disabled)`]:{color:X.itemHoverColor,"&::after":{backgroundColor:X.itemActiveBg}},"&-label":Object.assign({minHeight:X.controlHeight-X.segmentedPadding*2,lineHeight:`${X.controlHeight-X.segmentedPadding*2}px`,padding:`0 ${X.segmentedPaddingHorizontal}px`},oe),"&-icon + *":{marginInlineStart:X.marginSM/2},"&-input":{position:"absolute",insetBlockStart:0,insetInlineStart:0,width:0,height:0,opacity:0,pointerEvents:"none"}},[`${W}-thumb`]:Object.assign(Object.assign({},$t(X)),{position:"absolute",insetBlockStart:0,insetInlineStart:0,width:0,height:"100%",padding:`${X.paddingXXS}px 0`,borderRadius:X.borderRadiusSM,[`& ~ ${W}-item:not(${W}-item-selected):not(${W}-item-disabled)::after`]:{backgroundColor:"transparent"}}),[`&${W}-lg`]:{borderRadius:X.borderRadiusLG,[`${W}-item-label`]:{minHeight:X.controlHeightLG-X.segmentedPadding*2,lineHeight:`${X.controlHeightLG-X.segmentedPadding*2}px`,padding:`0 ${X.segmentedPaddingHorizontal}px`,fontSize:X.fontSizeLG},[`${W}-item, ${W}-thumb`]:{borderRadius:X.borderRadius}},[`&${W}-sm`]:{borderRadius:X.borderRadiusSM,[`${W}-item-label`]:{minHeight:X.controlHeightSM-X.segmentedPadding*2,lineHeight:`${X.controlHeightSM-X.segmentedPadding*2}px`,padding:`0 ${X.segmentedPaddingHorizontalSM}px`},[`${W}-item, ${W}-thumb`]:{borderRadius:X.borderRadiusXS}}}),Be(`&-disabled ${W}-item`,X)),Be(`${W}-item-disabled`,X)),{[`${W}-thumb-motion-appear-active`]:{transition:`transform ${X.motionDurationSlow} ${X.motionEaseInOut}, width ${X.motionDurationSlow} ${X.motionEaseInOut}`,willChange:"transform, width"}})}};var ce=(0,He.Z)("Segmented",X=>{const{lineWidth:W,lineWidthBold:me,colorBgLayout:he}=X,mt=(0,L.TS)(X,{segmentedPadding:me,segmentedBgColor:he,segmentedPaddingHorizontal:X.controlPaddingHorizontal-W,segmentedPaddingHorizontalSM:X.controlPaddingHorizontalSM-W});return[ue(mt)]},X=>{const{colorTextLabel:W,colorText:me,colorFillSecondary:he,colorBgElevated:mt,colorFill:lt}=X;return{itemColor:W,itemHoverColor:me,itemHoverBg:he,itemSelectedBg:mt,itemActiveBg:lt}}),Je=function(X,W){var me={};for(var he in X)Object.prototype.hasOwnProperty.call(X,he)&&W.indexOf(he)<0&&(me[he]=X[he]);if(X!=null&&typeof Object.getOwnPropertySymbols=="function")for(var mt=0,he=Object.getOwnPropertySymbols(X);mt{const{prefixCls:me,className:he,rootClassName:mt,block:lt,options:pt=[],size:ft="middle",style:wt}=X,Gt=Je(X,["prefixCls","className","rootClassName","block","options","size","style"]),{getPrefixCls:Mt,direction:yt,segmented:St}=R.useContext(Fe.E_),fe=Mt("segmented",me),[Re,Oe]=ce(fe),Le=(0,xe.Z)(ft),O=R.useMemo(()=>pt.map(b=>{if(it(b)){const{icon:Z,label:ae}=b,q=Je(b,["icon","label"]);return Object.assign(Object.assign({},q),{label:R.createElement(R.Fragment,null,R.createElement("span",{className:`${fe}-item-icon`},Z),ae&&R.createElement("span",null,ae))})}return b}),[pt,fe]),ke=y()(he,mt,St==null?void 0:St.className,{[`${fe}-block`]:lt,[`${fe}-sm`]:Le==="small",[`${fe}-lg`]:Le==="large"},Oe),$=Object.assign(Object.assign({},St==null?void 0:St.style),wt);return Re(R.createElement(It,Object.assign({},Gt,{className:ke,style:$,options:O,ref:W,prefixCls:fe,direction:yt})))})},81116:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return ke}});var i=e(35725),y=e(52495),M=e(87608),F=e.n(M),D=e(60698),H=e(57370),t=e(37734),A=e(47075),R=e(58757),Ce=e(29639),se=["className","prefixCls","style","active","status","iconPrefix","icon","wrapperStyle","stepNumber","disabled","description","title","subTitle","progressDot","stepIcon","tailContent","icons","stepIndex","onStepClick","onClick","render"];function w($){return typeof $=="string"}function K($){var b,Z=$.className,ae=$.prefixCls,q=$.style,Ye=$.active,ot=$.status,gt=$.iconPrefix,Et=$.icon,Nt=$.wrapperStyle,Vt=$.stepNumber,Bt=$.disabled,tt=$.description,st=$.title,Ft=$.subTitle,jt=$.progressDot,Lt=$.stepIcon,un=$.tailContent,Ut=$.icons,pn=$.stepIndex,Sn=$.onStepClick,Xt=$.onClick,an=$.render,ln=(0,A.Z)($,se),Pn=!!Sn&&!Bt,zn={};Pn&&(zn.role="button",zn.tabIndex=0,zn.onClick=function(_e){Xt==null||Xt(_e),Sn(pn)},zn.onKeyDown=function(_e){var ee=_e.which;(ee===Ce.Z.ENTER||ee===Ce.Z.SPACE)&&Sn(pn)});var qn=function(){var ee,Y,Ae=F()("".concat(ae,"-icon"),"".concat(gt,"icon"),(ee={},(0,t.Z)(ee,"".concat(gt,"icon-").concat(Et),Et&&w(Et)),(0,t.Z)(ee,"".concat(gt,"icon-check"),!Et&&ot==="finish"&&(Ut&&!Ut.finish||!Ut)),(0,t.Z)(ee,"".concat(gt,"icon-cross"),!Et&&ot==="error"&&(Ut&&!Ut.error||!Ut)),ee)),we=R.createElement("span",{className:"".concat(ae,"-icon-dot")});return jt?typeof jt=="function"?Y=R.createElement("span",{className:"".concat(ae,"-icon")},jt(we,{index:Vt-1,status:ot,title:st,description:tt})):Y=R.createElement("span",{className:"".concat(ae,"-icon")},we):Et&&!w(Et)?Y=R.createElement("span",{className:"".concat(ae,"-icon")},Et):Ut&&Ut.finish&&ot==="finish"?Y=R.createElement("span",{className:"".concat(ae,"-icon")},Ut.finish):Ut&&Ut.error&&ot==="error"?Y=R.createElement("span",{className:"".concat(ae,"-icon")},Ut.error):Et||ot==="finish"||ot==="error"?Y=R.createElement("span",{className:Ae}):Y=R.createElement("span",{className:"".concat(ae,"-icon")},Vt),Lt&&(Y=Lt({index:Vt-1,status:ot,title:st,description:tt,node:Y})),Y},yr=ot||"wait",Bn=F()("".concat(ae,"-item"),"".concat(ae,"-item-").concat(yr),Z,(b={},(0,t.Z)(b,"".concat(ae,"-item-custom"),Et),(0,t.Z)(b,"".concat(ae,"-item-active"),Ye),(0,t.Z)(b,"".concat(ae,"-item-disabled"),Bt===!0),b)),ne=(0,H.Z)({},q),qe=R.createElement("div",(0,D.Z)({},ln,{className:Bn,style:ne}),R.createElement("div",(0,D.Z)({onClick:Xt},zn,{className:"".concat(ae,"-item-container")}),R.createElement("div",{className:"".concat(ae,"-item-tail")},un),R.createElement("div",{className:"".concat(ae,"-item-icon")},qn()),R.createElement("div",{className:"".concat(ae,"-item-content")},R.createElement("div",{className:"".concat(ae,"-item-title")},st,Ft&&R.createElement("div",{title:typeof Ft=="string"?Ft:void 0,className:"".concat(ae,"-item-subtitle")},Ft)),tt&&R.createElement("div",{className:"".concat(ae,"-item-description")},tt))));return an&&(qe=an(qe)||null),qe}var re=K,f=["prefixCls","style","className","children","direction","type","labelPlacement","iconPrefix","status","size","current","progressDot","stepIcon","initial","icons","onChange","itemRender","items"];function _($){var b,Z=$.prefixCls,ae=Z===void 0?"rc-steps":Z,q=$.style,Ye=q===void 0?{}:q,ot=$.className,gt=$.children,Et=$.direction,Nt=Et===void 0?"horizontal":Et,Vt=$.type,Bt=Vt===void 0?"default":Vt,tt=$.labelPlacement,st=tt===void 0?"horizontal":tt,Ft=$.iconPrefix,jt=Ft===void 0?"rc":Ft,Lt=$.status,un=Lt===void 0?"process":Lt,Ut=$.size,pn=$.current,Sn=pn===void 0?0:pn,Xt=$.progressDot,an=Xt===void 0?!1:Xt,ln=$.stepIcon,Pn=$.initial,zn=Pn===void 0?0:Pn,qn=$.icons,yr=$.onChange,Bn=$.itemRender,ne=$.items,qe=ne===void 0?[]:ne,_e=(0,A.Z)($,f),ee=Bt==="navigation",Y=Bt==="inline",Ae=Y||an,we=Y?"horizontal":Nt,ct=Y?void 0:Ut,be=Ae?"vertical":st,U=F()(ae,"".concat(ae,"-").concat(we),ot,(b={},(0,t.Z)(b,"".concat(ae,"-").concat(ct),ct),(0,t.Z)(b,"".concat(ae,"-label-").concat(be),we==="horizontal"),(0,t.Z)(b,"".concat(ae,"-dot"),!!Ae),(0,t.Z)(b,"".concat(ae,"-navigation"),ee),(0,t.Z)(b,"".concat(ae,"-inline"),Y),b)),Ie=function(de){yr&&Sn!==de&&yr(de)},ht=function(de,T){var N=(0,H.Z)({},de),x=zn+T;return un==="error"&&T===Sn-1&&(N.className="".concat(ae,"-next-error")),N.status||(x===Sn?N.status=un:x{const{componentCls:b,customIconTop:Z,customIconSize:ae,customIconFontSize:q}=$;return{[`${b}-item-custom`]:{[`> ${b}-item-container > ${b}-item-icon`]:{height:"auto",background:"none",border:0,[`> ${b}-icon`]:{top:Z,width:ae,height:ae,fontSize:q,lineHeight:`${q}px`}}},[`&:not(${b}-vertical)`]:{[`${b}-item-custom`]:{[`${b}-item-icon`]:{width:"auto",background:"none"}}}}},$t=$=>{const{componentCls:b,inlineDotSize:Z,inlineTitleColor:ae,inlineTailColor:q}=$,Ye=$.paddingXS+$.lineWidth,ot={[`${b}-item-container ${b}-item-content ${b}-item-title`]:{color:ae}};return{[`&${b}-inline`]:{width:"auto",display:"inline-flex",[`${b}-item`]:{flex:"none","&-container":{padding:`${Ye}px ${$.paddingXXS}px 0`,margin:`0 ${$.marginXXS/2}px`,borderRadius:$.borderRadiusSM,cursor:"pointer",transition:`background-color ${$.motionDurationMid}`,"&:hover":{background:$.controlItemBgHover},["&[role='button']:hover"]:{opacity:1}},"&-icon":{width:Z,height:Z,marginInlineStart:`calc(50% - ${Z/2}px)`,[`> ${b}-icon`]:{top:0},[`${b}-icon-dot`]:{borderRadius:$.fontSizeSM/4}},"&-content":{width:"auto",marginTop:$.marginXS-$.lineWidth},"&-title":{color:ae,fontSize:$.fontSizeSM,lineHeight:$.lineHeightSM,fontWeight:"normal",marginBottom:$.marginXXS/2},"&-description":{display:"none"},"&-tail":{marginInlineStart:0,top:Ye+Z/2,transform:"translateY(-50%)","&:after":{width:"100%",height:$.lineWidth,borderRadius:0,marginInlineStart:0,background:q}},[`&:first-child ${b}-item-tail`]:{width:"50%",marginInlineStart:"50%"},[`&:last-child ${b}-item-tail`]:{display:"block",width:"50%"},"&-wait":Object.assign({[`${b}-item-icon ${b}-icon ${b}-icon-dot`]:{backgroundColor:$.colorBorderBg,border:`${$.lineWidth}px ${$.lineType} ${q}`}},ot),"&-finish":Object.assign({[`${b}-item-tail::after`]:{backgroundColor:q},[`${b}-item-icon ${b}-icon ${b}-icon-dot`]:{backgroundColor:q,border:`${$.lineWidth}px ${$.lineType} ${q}`}},ot),"&-error":ot,"&-active, &-process":Object.assign({[`${b}-item-icon`]:{width:Z,height:Z,marginInlineStart:`calc(50% - ${Z/2}px)`,top:0}},ot),[`&:not(${b}-item-active) > ${b}-item-container[role='button']:hover`]:{[`${b}-item-title`]:{color:ae}}}}}},ue=$=>{const{componentCls:b,iconSize:Z,lineHeight:ae,iconSizeSM:q}=$;return{[`&${b}-label-vertical`]:{[`${b}-item`]:{overflow:"visible","&-tail":{marginInlineStart:Z/2+$.controlHeightLG,padding:`${$.paddingXXS}px ${$.paddingLG}px`},"&-content":{display:"block",width:(Z/2+$.controlHeightLG)*2,marginTop:$.marginSM,textAlign:"center"},"&-icon":{display:"inline-block",marginInlineStart:$.controlHeightLG},"&-title":{paddingInlineEnd:0,paddingInlineStart:0,"&::after":{display:"none"}},"&-subtitle":{display:"block",marginBottom:$.marginXXS,marginInlineStart:0,lineHeight:ae}},[`&${b}-small:not(${b}-dot)`]:{[`${b}-item`]:{"&-icon":{marginInlineStart:$.controlHeightLG+(Z-q)/2}}}}}},Je=$=>{const{componentCls:b,navContentMaxWidth:Z,navArrowColor:ae,stepsNavActiveColor:q,motionDurationSlow:Ye}=$;return{[`&${b}-navigation`]:{paddingTop:$.paddingSM,[`&${b}-small`]:{[`${b}-item`]:{"&-container":{marginInlineStart:-$.marginSM}}},[`${b}-item`]:{overflow:"visible",textAlign:"center","&-container":{display:"inline-block",height:"100%",marginInlineStart:-$.margin,paddingBottom:$.paddingSM,textAlign:"start",transition:`opacity ${Ye}`,[`${b}-item-content`]:{maxWidth:Z},[`${b}-item-title`]:Object.assign(Object.assign({maxWidth:"100%",paddingInlineEnd:0},Fe.vS),{"&::after":{display:"none"}})},[`&:not(${b}-item-active)`]:{[`${b}-item-container[role='button']`]:{cursor:"pointer","&:hover":{opacity:.85}}},"&:last-child":{flex:1,"&::after":{display:"none"}},"&::after":{position:"absolute",top:`calc(50% - ${$.paddingSM/2}px)`,insetInlineStart:"100%",display:"inline-block",width:$.fontSizeIcon,height:$.fontSizeIcon,borderTop:`${$.lineWidth}px ${$.lineType} ${ae}`,borderBottom:"none",borderInlineStart:"none",borderInlineEnd:`${$.lineWidth}px ${$.lineType} ${ae}`,transform:"translateY(-50%) translateX(-50%) rotate(45deg)",content:'""'},"&::before":{position:"absolute",bottom:0,insetInlineStart:"50%",display:"inline-block",width:0,height:$.lineWidthBold,backgroundColor:q,transition:`width ${Ye}, inset-inline-start ${Ye}`,transitionTimingFunction:"ease-out",content:'""'}},[`${b}-item${b}-item-active::before`]:{insetInlineStart:0,width:"100%"}},[`&${b}-navigation${b}-vertical`]:{[`> ${b}-item`]:{marginInlineEnd:0,"&::before":{display:"none"},[`&${b}-item-active::before`]:{top:0,insetInlineEnd:0,insetInlineStart:"unset",display:"block",width:$.lineWidth*3,height:`calc(100% - ${$.marginLG}px)`},"&::after":{position:"relative",insetInlineStart:"50%",display:"block",width:$.controlHeight*.25,height:$.controlHeight*.25,marginBottom:$.marginXS,textAlign:"center",transform:"translateY(-50%) translateX(-50%) rotate(135deg)"},[`> ${b}-item-container > ${b}-item-tail`]:{visibility:"hidden"}}},[`&${b}-navigation${b}-horizontal`]:{[`> ${b}-item > ${b}-item-container > ${b}-item-tail`]:{visibility:"hidden"}}}},Te=$=>{const{antCls:b,componentCls:Z}=$;return{[`&${Z}-with-progress`]:{[`${Z}-item`]:{paddingTop:$.paddingXXS,[`&-process ${Z}-item-container ${Z}-item-icon ${Z}-icon`]:{color:$.processIconColor}},[`&${Z}-vertical > ${Z}-item `]:{paddingInlineStart:$.paddingXXS,[`> ${Z}-item-container > ${Z}-item-tail`]:{top:$.marginXXS,insetInlineStart:$.iconSize/2-$.lineWidth+$.paddingXXS}},[`&, &${Z}-small`]:{[`&${Z}-horizontal ${Z}-item:first-child`]:{paddingBottom:$.paddingXXS,paddingInlineStart:$.paddingXXS}},[`&${Z}-small${Z}-vertical > ${Z}-item > ${Z}-item-container > ${Z}-item-tail`]:{insetInlineStart:$.iconSizeSM/2-$.lineWidth+$.paddingXXS},[`&${Z}-label-vertical`]:{[`${Z}-item ${Z}-item-tail`]:{top:$.margin-2*$.lineWidth}},[`${Z}-item-icon`]:{position:"relative",[`${b}-progress`]:{position:"absolute",insetBlockStart:($.iconSize-$.stepsProgressSize-$.lineWidth*2)/2,insetInlineStart:($.iconSize-$.stepsProgressSize-$.lineWidth*2)/2}}}}},X=$=>{const{componentCls:b,descriptionMaxWidth:Z,lineHeight:ae,dotCurrentSize:q,dotSize:Ye,motionDurationSlow:ot}=$;return{[`&${b}-dot, &${b}-dot${b}-small`]:{[`${b}-item`]:{"&-title":{lineHeight:ae},"&-tail":{top:Math.floor(($.dotSize-$.lineWidth*3)/2),width:"100%",marginTop:0,marginBottom:0,marginInline:`${Z/2}px 0`,padding:0,"&::after":{width:`calc(100% - ${$.marginSM*2}px)`,height:$.lineWidth*3,marginInlineStart:$.marginSM}},"&-icon":{width:Ye,height:Ye,marginInlineStart:($.descriptionMaxWidth-Ye)/2,paddingInlineEnd:0,lineHeight:`${Ye}px`,background:"transparent",border:0,[`${b}-icon-dot`]:{position:"relative",float:"left",width:"100%",height:"100%",borderRadius:100,transition:`all ${ot}`,"&::after":{position:"absolute",top:-$.marginSM,insetInlineStart:(Ye-$.controlHeightLG*1.5)/2,width:$.controlHeightLG*1.5,height:$.controlHeight,background:"transparent",content:'""'}}},"&-content":{width:Z},[`&-process ${b}-item-icon`]:{position:"relative",top:(Ye-q)/2,width:q,height:q,lineHeight:`${q}px`,background:"none",marginInlineStart:($.descriptionMaxWidth-q)/2},[`&-process ${b}-icon`]:{[`&:first-child ${b}-icon-dot`]:{insetInlineStart:0}}}},[`&${b}-vertical${b}-dot`]:{[`${b}-item-icon`]:{marginTop:($.controlHeight-Ye)/2,marginInlineStart:0,background:"none"},[`${b}-item-process ${b}-item-icon`]:{marginTop:($.controlHeight-q)/2,top:0,insetInlineStart:(Ye-q)/2,marginInlineStart:0},[`${b}-item > ${b}-item-container > ${b}-item-tail`]:{top:($.controlHeight-Ye)/2,insetInlineStart:0,margin:0,padding:`${Ye+$.paddingXS}px 0 ${$.paddingXS}px`,"&::after":{marginInlineStart:(Ye-$.lineWidth)/2}},[`&${b}-small`]:{[`${b}-item-icon`]:{marginTop:($.controlHeightSM-Ye)/2},[`${b}-item-process ${b}-item-icon`]:{marginTop:($.controlHeightSM-q)/2},[`${b}-item > ${b}-item-container > ${b}-item-tail`]:{top:($.controlHeightSM-Ye)/2}},[`${b}-item:first-child ${b}-icon-dot`]:{insetInlineStart:0},[`${b}-item-content`]:{width:"inherit"}}}},me=$=>{const{componentCls:b}=$;return{[`&${b}-rtl`]:{direction:"rtl",[`${b}-item`]:{"&-subtitle":{float:"left"}},[`&${b}-navigation`]:{[`${b}-item::after`]:{transform:"rotate(-45deg)"}},[`&${b}-vertical`]:{[`> ${b}-item`]:{"&::after":{transform:"rotate(225deg)"},[`${b}-item-icon`]:{float:"right"}}},[`&${b}-dot`]:{[`${b}-item-icon ${b}-icon-dot, &${b}-small ${b}-item-icon ${b}-icon-dot`]:{float:"right"}}}}},mt=$=>{const{componentCls:b,iconSizeSM:Z,fontSizeSM:ae,fontSize:q,colorTextDescription:Ye}=$;return{[`&${b}-small`]:{[`&${b}-horizontal:not(${b}-label-vertical) ${b}-item`]:{paddingInlineStart:$.paddingSM,"&:first-child":{paddingInlineStart:0}},[`${b}-item-icon`]:{width:Z,height:Z,marginTop:0,marginBottom:0,marginInline:`0 ${$.marginXS}px`,fontSize:ae,lineHeight:`${Z}px`,textAlign:"center",borderRadius:Z},[`${b}-item-title`]:{paddingInlineEnd:$.paddingSM,fontSize:q,lineHeight:`${Z}px`,"&::after":{top:Z/2}},[`${b}-item-description`]:{color:Ye,fontSize:q},[`${b}-item-tail`]:{top:Z/2-$.paddingXXS},[`${b}-item-custom ${b}-item-icon`]:{width:"inherit",height:"inherit",lineHeight:"inherit",background:"none",border:0,borderRadius:0,[`> ${b}-icon`]:{fontSize:Z,lineHeight:`${Z}px`,transform:"none"}}}}},pt=$=>{const{componentCls:b,iconSizeSM:Z,iconSize:ae}=$;return{[`&${b}-vertical`]:{display:"flex",flexDirection:"column",[`> ${b}-item`]:{display:"block",flex:"1 0 auto",paddingInlineStart:0,overflow:"visible",[`${b}-item-icon`]:{float:"left",marginInlineEnd:$.margin},[`${b}-item-content`]:{display:"block",minHeight:$.controlHeight*1.5,overflow:"hidden"},[`${b}-item-title`]:{lineHeight:`${ae}px`},[`${b}-item-description`]:{paddingBottom:$.paddingSM}},[`> ${b}-item > ${b}-item-container > ${b}-item-tail`]:{position:"absolute",top:0,insetInlineStart:ae/2-$.lineWidth,width:$.lineWidth,height:"100%",padding:`${ae+$.marginXXS*1.5}px 0 ${$.marginXXS*1.5}px`,"&::after":{width:$.lineWidth,height:"100%"}},[`> ${b}-item:not(:last-child) > ${b}-item-container > ${b}-item-tail`]:{display:"block"},[` > ${b}-item > ${b}-item-container > ${b}-item-content > ${b}-item-title`]:{"&::after":{display:"none"}},[`&${b}-small ${b}-item-container`]:{[`${b}-item-tail`]:{position:"absolute",top:0,insetInlineStart:Z/2-$.lineWidth,padding:`${Z+$.marginXXS*1.5}px 0 ${$.marginXXS*1.5}px`},[`${b}-item-title`]:{lineHeight:`${Z}px`}}}}},ft;(function($){$.wait="wait",$.process="process",$.finish="finish",$.error="error"})(ft||(ft={}));const wt=($,b)=>{const Z=`${b.componentCls}-item`,ae=`${$}IconColor`,q=`${$}TitleColor`,Ye=`${$}DescriptionColor`,ot=`${$}TailColor`,gt=`${$}IconBgColor`,Et=`${$}IconBorderColor`,Nt=`${$}DotColor`;return{[`${Z}-${$} ${Z}-icon`]:{backgroundColor:b[gt],borderColor:b[Et],[`> ${b.componentCls}-icon`]:{color:b[ae],[`${b.componentCls}-icon-dot`]:{background:b[Nt]}}},[`${Z}-${$}${Z}-custom ${Z}-icon`]:{[`> ${b.componentCls}-icon`]:{color:b[Nt]}},[`${Z}-${$} > ${Z}-container > ${Z}-content > ${Z}-title`]:{color:b[q],"&::after":{backgroundColor:b[ot]}},[`${Z}-${$} > ${Z}-container > ${Z}-content > ${Z}-description`]:{color:b[Ye]},[`${Z}-${$} > ${Z}-container > ${Z}-tail::after`]:{backgroundColor:b[ot]}}},Gt=$=>{const{componentCls:b,motionDurationSlow:Z}=$,ae=`${b}-item`,q=`${ae}-icon`;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[ae]:{position:"relative",display:"inline-block",flex:1,overflow:"hidden",verticalAlign:"top","&:last-child":{flex:"none",[`> ${ae}-container > ${ae}-tail, > ${ae}-container > ${ae}-content > ${ae}-title::after`]:{display:"none"}}},[`${ae}-container`]:{outline:"none",["&:focus-visible"]:{[q]:Object.assign({},(0,Fe.oN)($))}},[`${q}, ${ae}-content`]:{display:"inline-block",verticalAlign:"top"},[q]:{width:$.iconSize,height:$.iconSize,marginTop:0,marginBottom:0,marginInlineStart:0,marginInlineEnd:$.marginXS,fontSize:$.iconFontSize,fontFamily:$.fontFamily,lineHeight:`${$.iconSize}px`,textAlign:"center",borderRadius:$.iconSize,border:`${$.lineWidth}px ${$.lineType} transparent`,transition:`background-color ${Z}, border-color ${Z}`,[`${b}-icon`]:{position:"relative",top:$.iconTop,color:$.colorPrimary,lineHeight:1}},[`${ae}-tail`]:{position:"absolute",top:$.iconSize/2-$.paddingXXS,insetInlineStart:0,width:"100%","&::after":{display:"inline-block",width:"100%",height:$.lineWidth,background:$.colorSplit,borderRadius:$.lineWidth,transition:`background ${Z}`,content:'""'}},[`${ae}-title`]:{position:"relative",display:"inline-block",paddingInlineEnd:$.padding,color:$.colorText,fontSize:$.fontSizeLG,lineHeight:`${$.titleLineHeight}px`,"&::after":{position:"absolute",top:$.titleLineHeight/2,insetInlineStart:"100%",display:"block",width:9999,height:$.lineWidth,background:$.processTailColor,content:'""'}},[`${ae}-subtitle`]:{display:"inline",marginInlineStart:$.marginXS,color:$.colorTextDescription,fontWeight:"normal",fontSize:$.fontSize},[`${ae}-description`]:{color:$.colorTextDescription,fontSize:$.fontSize}},wt(ft.wait,$)),wt(ft.process,$)),{[`${ae}-process > ${ae}-container > ${ae}-title`]:{fontWeight:$.fontWeightStrong}}),wt(ft.finish,$)),wt(ft.error,$)),{[`${ae}${b}-next-error > ${b}-item-title::after`]:{background:$.colorError},[`${ae}-disabled`]:{cursor:"not-allowed"}})},Mt=$=>{const{componentCls:b,motionDurationSlow:Z}=$;return{[`& ${b}-item`]:{[`&:not(${b}-item-active)`]:{[`& > ${b}-item-container[role='button']`]:{cursor:"pointer",[`${b}-item`]:{[`&-title, &-subtitle, &-description, &-icon ${b}-icon`]:{transition:`color ${Z}`}},"&:hover":{[`${b}-item`]:{["&-title, &-subtitle, &-description"]:{color:$.colorPrimary}}}},[`&:not(${b}-item-process)`]:{[`& > ${b}-item-container[role='button']:hover`]:{[`${b}-item`]:{"&-icon":{borderColor:$.colorPrimary,[`${b}-icon`]:{color:$.colorPrimary}}}}}}},[`&${b}-horizontal:not(${b}-label-vertical)`]:{[`${b}-item`]:{paddingInlineStart:$.padding,whiteSpace:"nowrap","&:first-child":{paddingInlineStart:0},[`&:last-child ${b}-item-title`]:{paddingInlineEnd:0},"&-tail":{display:"none"},"&-description":{maxWidth:$.descriptionMaxWidth,whiteSpace:"normal"}}}}},yt=$=>{const{componentCls:b}=$;return{[b]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,Fe.Wf)($)),{display:"flex",width:"100%",fontSize:0,textAlign:"initial"}),Gt($)),Mt($)),L($)),mt($)),pt($)),ue($)),X($)),Je($)),me($)),Te($)),$t($))}};var St=(0,xe.Z)("Steps",$=>{const{wireframe:b,colorTextDisabled:Z,controlHeightLG:ae,colorTextLightSolid:q,colorText:Ye,colorPrimary:ot,colorTextLabel:gt,colorTextDescription:Et,colorTextQuaternary:Nt,colorFillContent:Vt,controlItemBgActive:Bt,colorError:tt,colorBgContainer:st,colorBorderSecondary:Ft,colorSplit:jt}=$,Lt=(0,xt.TS)($,{processIconColor:q,processTitleColor:Ye,processDescriptionColor:Ye,processIconBgColor:ot,processIconBorderColor:ot,processDotColor:ot,processTailColor:jt,waitIconColor:b?Z:gt,waitTitleColor:Et,waitDescriptionColor:Et,waitTailColor:jt,waitIconBgColor:b?st:Vt,waitIconBorderColor:b?Z:"transparent",waitDotColor:Z,finishIconColor:ot,finishTitleColor:Ye,finishDescriptionColor:Et,finishTailColor:ot,finishIconBgColor:b?st:Bt,finishIconBorderColor:b?ot:Bt,finishDotColor:ot,errorIconColor:q,errorTitleColor:tt,errorDescriptionColor:tt,errorTailColor:jt,errorIconBgColor:tt,errorIconBorderColor:tt,errorDotColor:tt,stepsNavActiveColor:ot,stepsProgressSize:ae,inlineDotSize:6,inlineTitleColor:Nt,inlineTailColor:Ft});return[yt(Lt)]},$=>{const{colorTextDisabled:b,fontSize:Z,controlHeightSM:ae,controlHeight:q,controlHeightLG:Ye,fontSizeHeading3:ot}=$;return{titleLineHeight:q,customIconSize:q,customIconTop:0,customIconFontSize:ae,iconSize:q,iconTop:-.5,iconFontSize:Z,iconSizeSM:ot,dotSize:q/4,dotCurrentSize:Ye/4,navArrowColor:b,navContentMaxWidth:"auto",descriptionMaxWidth:140}}),fe=e(42156);function Re($){return $.filter(b=>b)}function Oe($,b){if($)return $;const Z=(0,fe.Z)(b).map(ae=>{if(R.isValidElement(ae)){const{props:q}=ae;return Object.assign({},q)}return null});return Re(Z)}var Le=function($,b){var Z={};for(var ae in $)Object.prototype.hasOwnProperty.call($,ae)&&b.indexOf(ae)<0&&(Z[ae]=$[ae]);if($!=null&&typeof Object.getOwnPropertySymbols=="function")for(var q=0,ae=Object.getOwnPropertySymbols($);q{const{percent:b,size:Z,className:ae,rootClassName:q,direction:Ye,items:ot,responsive:gt=!0,current:Et=0,children:Nt,style:Vt}=$,Bt=Le($,["percent","size","className","rootClassName","direction","items","responsive","current","children","style"]),{xs:tt}=(0,h.Z)(gt),{getPrefixCls:st,direction:Ft,steps:jt}=R.useContext($e.E_),Lt=R.useMemo(()=>gt&&tt?"vertical":Ye,[tt,Ye]),un=(0,z.Z)(Z),Ut=st("steps",$.prefixCls),[pn,Sn]=St(Ut),Xt=$.type==="inline",an=st("",$.iconPrefix),ln=Oe(ot,Nt),Pn=Xt?void 0:b,zn=Object.assign(Object.assign({},jt==null?void 0:jt.style),Vt),qn=F()(jt==null?void 0:jt.className,{[`${Ut}-rtl`]:Ft==="rtl",[`${Ut}-with-progress`]:Pn!==void 0},ae,q,Sn),yr={finish:R.createElement(i.Z,{className:`${Ut}-finish-icon`}),error:R.createElement(y.Z,{className:`${Ut}-error-icon`})},Bn=qe=>{let{node:_e,status:ee}=qe;if(ee==="process"&&Pn!==void 0){const Y=un==="small"?32:40;return R.createElement("div",{className:`${Ut}-progress-icon`},R.createElement(Xe.Z,{type:"circle",percent:Pn,size:Y,strokeWidth:4,format:()=>null}),_e)}return _e},ne=(qe,_e)=>qe.description?R.createElement(It.Z,{title:qe.description},_e):_e;return pn(R.createElement(J,Object.assign({icons:yr},Bt,{style:zn,current:Et,size:un,items:ln,itemRender:Xt?ne:void 0,stepIcon:Bn,direction:Lt,prefixCls:Ut,iconPrefix:an,className:qn})))};O.Step=J.Step;var ke=O},2465:function(Dt,Ne,e){"use strict";e.d(Ne,{N:function(){return i}});const i=y=>({color:y.colorLink,textDecoration:"none",outline:"none",cursor:"pointer",transition:`color ${y.motionDurationSlow}`,"&:focus, &:hover":{color:y.colorLinkHover},"&:active":{color:y.colorLinkActive}})},2309:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return $t}});var i=e(25755),y=e(87608),M=e.n(y),F=e(60698),D=e(37734),H=e(28314),t=e(47075),A=e(58757),R=e(60409),Ce=e(29639),se=["prefixCls","className","checked","defaultChecked","disabled","loadingIcon","checkedChildren","unCheckedChildren","onClick","onChange","onKeyDown"],w=A.forwardRef(function(oe,ue){var ce,Je=oe.prefixCls,it=Je===void 0?"rc-switch":Je,Te=oe.className,ut=oe.checked,X=oe.defaultChecked,W=oe.disabled,me=oe.loadingIcon,he=oe.checkedChildren,mt=oe.unCheckedChildren,lt=oe.onClick,pt=oe.onChange,ft=oe.onKeyDown,wt=(0,t.Z)(oe,se),Gt=(0,R.Z)(!1,{value:ut,defaultValue:X}),Mt=(0,H.Z)(Gt,2),yt=Mt[0],St=Mt[1];function fe(O,ke){var $=yt;return W||($=O,St($),pt==null||pt($,ke)),$}function Re(O){O.which===Ce.Z.LEFT?fe(!1,O):O.which===Ce.Z.RIGHT&&fe(!0,O),ft==null||ft(O)}function Oe(O){var ke=fe(!yt,O);lt==null||lt(ke,O)}var Le=M()(it,Te,(ce={},(0,D.Z)(ce,"".concat(it,"-checked"),yt),(0,D.Z)(ce,"".concat(it,"-disabled"),W),ce));return A.createElement("button",(0,F.Z)({},wt,{type:"button",role:"switch","aria-checked":yt,disabled:W,className:Le,ref:ue,onKeyDown:Re,onClick:Oe}),me,A.createElement("span",{className:"".concat(it,"-inner")},A.createElement("span",{className:"".concat(it,"-inner-checked")},he),A.createElement("span",{className:"".concat(it,"-inner-unchecked")},mt)))});w.displayName="Switch";var K=w,re=e(37486),f=e(61836),_=e(92428),k=e(58785),J=e(66671),$e=e(78330),z=e(52628),h=e(22151);const Xe=oe=>{const{componentCls:ue}=oe,ce=`${ue}-inner`;return{[ue]:{[`&${ue}-small`]:{minWidth:oe.switchMinWidthSM,height:oe.switchHeightSM,lineHeight:`${oe.switchHeightSM}px`,[`${ue}-inner`]:{paddingInlineStart:oe.switchInnerMarginMaxSM,paddingInlineEnd:oe.switchInnerMarginMinSM,[`${ce}-checked`]:{marginInlineStart:`calc(-100% + ${oe.switchPinSizeSM+oe.switchPadding*2}px - ${oe.switchInnerMarginMaxSM*2}px)`,marginInlineEnd:`calc(100% - ${oe.switchPinSizeSM+oe.switchPadding*2}px + ${oe.switchInnerMarginMaxSM*2}px)`},[`${ce}-unchecked`]:{marginTop:-oe.switchHeightSM,marginInlineStart:0,marginInlineEnd:0}},[`${ue}-handle`]:{width:oe.switchPinSizeSM,height:oe.switchPinSizeSM},[`${ue}-loading-icon`]:{top:(oe.switchPinSizeSM-oe.switchLoadingIconSize)/2,fontSize:oe.switchLoadingIconSize},[`&${ue}-checked`]:{[`${ue}-inner`]:{paddingInlineStart:oe.switchInnerMarginMinSM,paddingInlineEnd:oe.switchInnerMarginMaxSM,[`${ce}-checked`]:{marginInlineStart:0,marginInlineEnd:0},[`${ce}-unchecked`]:{marginInlineStart:`calc(100% - ${oe.switchPinSizeSM+oe.switchPadding*2}px + ${oe.switchInnerMarginMaxSM*2}px)`,marginInlineEnd:`calc(-100% + ${oe.switchPinSizeSM+oe.switchPadding*2}px - ${oe.switchInnerMarginMaxSM*2}px)`}},[`${ue}-handle`]:{insetInlineStart:`calc(100% - ${oe.switchPinSizeSM+oe.switchPadding}px)`}},[`&:not(${ue}-disabled):active`]:{[`&:not(${ue}-checked) ${ce}`]:{[`${ce}-unchecked`]:{marginInlineStart:oe.marginXXS/2,marginInlineEnd:-oe.marginXXS/2}},[`&${ue}-checked ${ce}`]:{[`${ce}-checked`]:{marginInlineStart:-oe.marginXXS/2,marginInlineEnd:oe.marginXXS/2}}}}}}},It=oe=>{const{componentCls:ue}=oe;return{[ue]:{[`${ue}-loading-icon${oe.iconCls}`]:{position:"relative",top:(oe.switchPinSize-oe.fontSize)/2,color:oe.switchLoadingIconColor,verticalAlign:"top"},[`&${ue}-checked ${ue}-loading-icon`]:{color:oe.switchColor}}}},Fe=oe=>{const{componentCls:ue,motion:ce}=oe,Je=`${ue}-handle`;return{[ue]:{[Je]:{position:"absolute",top:oe.switchPadding,insetInlineStart:oe.switchPadding,width:oe.switchPinSize,height:oe.switchPinSize,transition:`all ${oe.switchDuration} ease-in-out`,"&::before":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,backgroundColor:oe.colorWhite,borderRadius:oe.switchPinSize/2,boxShadow:oe.switchHandleShadow,transition:`all ${oe.switchDuration} ease-in-out`,content:'""'}},[`&${ue}-checked ${Je}`]:{insetInlineStart:`calc(100% - ${oe.switchPinSize+oe.switchPadding}px)`},[`&:not(${ue}-disabled):active`]:ce?{[`${Je}::before`]:{insetInlineEnd:oe.switchHandleActiveInset,insetInlineStart:0},[`&${ue}-checked ${Je}::before`]:{insetInlineEnd:0,insetInlineStart:oe.switchHandleActiveInset}}:{}}}},xe=oe=>{const{componentCls:ue}=oe,ce=`${ue}-inner`;return{[ue]:{[ce]:{display:"block",overflow:"hidden",borderRadius:100,height:"100%",paddingInlineStart:oe.switchInnerMarginMax,paddingInlineEnd:oe.switchInnerMarginMin,transition:`padding-inline-start ${oe.switchDuration} ease-in-out, padding-inline-end ${oe.switchDuration} ease-in-out`,[`${ce}-checked, ${ce}-unchecked`]:{display:"block",color:oe.colorTextLightSolid,fontSize:oe.fontSizeSM,transition:`margin-inline-start ${oe.switchDuration} ease-in-out, margin-inline-end ${oe.switchDuration} ease-in-out`,pointerEvents:"none"},[`${ce}-checked`]:{marginInlineStart:`calc(-100% + ${oe.switchPinSize+oe.switchPadding*2}px - ${oe.switchInnerMarginMax*2}px)`,marginInlineEnd:`calc(100% - ${oe.switchPinSize+oe.switchPadding*2}px + ${oe.switchInnerMarginMax*2}px)`},[`${ce}-unchecked`]:{marginTop:-oe.switchHeight,marginInlineStart:0,marginInlineEnd:0}},[`&${ue}-checked ${ce}`]:{paddingInlineStart:oe.switchInnerMarginMin,paddingInlineEnd:oe.switchInnerMarginMax,[`${ce}-checked`]:{marginInlineStart:0,marginInlineEnd:0},[`${ce}-unchecked`]:{marginInlineStart:`calc(100% - ${oe.switchPinSize+oe.switchPadding*2}px + ${oe.switchInnerMarginMax*2}px)`,marginInlineEnd:`calc(-100% + ${oe.switchPinSize+oe.switchPadding*2}px - ${oe.switchInnerMarginMax*2}px)`}},[`&:not(${ue}-disabled):active`]:{[`&:not(${ue}-checked) ${ce}`]:{[`${ce}-unchecked`]:{marginInlineStart:oe.switchPadding*2,marginInlineEnd:-oe.switchPadding*2}},[`&${ue}-checked ${ce}`]:{[`${ce}-checked`]:{marginInlineStart:-oe.switchPadding*2,marginInlineEnd:oe.switchPadding*2}}}}}},xt=oe=>{const{componentCls:ue}=oe;return{[ue]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,$e.Wf)(oe)),{position:"relative",display:"inline-block",boxSizing:"border-box",minWidth:oe.switchMinWidth,height:oe.switchHeight,lineHeight:`${oe.switchHeight}px`,verticalAlign:"middle",background:oe.colorTextQuaternary,border:"0",borderRadius:100,cursor:"pointer",transition:`all ${oe.motionDurationMid}`,userSelect:"none",[`&:hover:not(${ue}-disabled)`]:{background:oe.colorTextTertiary}}),(0,$e.Qy)(oe)),{[`&${ue}-checked`]:{background:oe.switchColor,[`&:hover:not(${ue}-disabled)`]:{background:oe.colorPrimaryHover}},[`&${ue}-loading, &${ue}-disabled`]:{cursor:"not-allowed",opacity:oe.switchDisabledOpacity,"*":{boxShadow:"none",cursor:"not-allowed"}},[`&${ue}-rtl`]:{direction:"rtl"}})}};var He=(0,z.Z)("Switch",oe=>{const ue=oe.fontSize*oe.lineHeight,ce=oe.controlHeight/2,Je=2,it=ue-Je*2,Te=ce-Je*2,ut=(0,h.TS)(oe,{switchMinWidth:it*2+Je*4,switchHeight:ue,switchDuration:oe.motionDurationMid,switchColor:oe.colorPrimary,switchDisabledOpacity:oe.opacityLoading,switchInnerMarginMin:it/2,switchInnerMarginMax:it+Je+Je*2,switchPadding:Je,switchPinSize:it,switchBg:oe.colorBgContainer,switchMinWidthSM:Te*2+Je*2,switchHeightSM:ce,switchInnerMarginMinSM:Te/2,switchInnerMarginMaxSM:Te+Je+Je*2,switchPinSizeSM:Te,switchHandleShadow:`0 2px 4px 0 ${new J.C("#00230b").setAlpha(.2).toRgbString()}`,switchLoadingIconSize:oe.fontSizeIcon*.75,switchLoadingIconColor:`rgba(0, 0, 0, ${oe.opacityLoading})`,switchHandleActiveInset:"-30%"});return[xt(ut),xe(ut),Fe(ut),It(ut),Xe(ut)]}),L=function(oe,ue){var ce={};for(var Je in oe)Object.prototype.hasOwnProperty.call(oe,Je)&&ue.indexOf(Je)<0&&(ce[Je]=oe[Je]);if(oe!=null&&typeof Object.getOwnPropertySymbols=="function")for(var it=0,Je=Object.getOwnPropertySymbols(oe);it{const{prefixCls:ce,size:Je,disabled:it,loading:Te,className:ut,rootClassName:X,style:W}=oe,me=L(oe,["prefixCls","size","disabled","loading","className","rootClassName","style"]),{getPrefixCls:he,direction:mt,switch:lt}=A.useContext(f.E_),pt=A.useContext(_.Z),ft=(it!=null?it:pt)||Te,wt=he("switch",ce),Gt=A.createElement("div",{className:`${wt}-handle`},Te&&A.createElement(i.Z,{className:`${wt}-loading-icon`})),[Mt,yt]=He(wt),St=(0,k.Z)(Je),fe=M()(lt==null?void 0:lt.className,{[`${wt}-small`]:St==="small",[`${wt}-loading`]:Te,[`${wt}-rtl`]:mt==="rtl"},ut,X,yt),Re=Object.assign(Object.assign({},lt==null?void 0:lt.style),W);return Mt(A.createElement(re.Z,{component:"Switch"},A.createElement(K,Object.assign({},me,{prefixCls:wt,className:fe,style:Re,disabled:ft,ref:ue,loadingIcon:Gt}))))});Be.__ANT_SWITCH=!0;var $t=Be},27982:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return y}});var i=e(58757);function y(M,F,D){const H=i.useRef({});function t(A){if(!H.current||H.current.data!==M||H.current.childrenColumnName!==F||H.current.getRowKey!==D){let Ce=function(se){se.forEach((w,K)=>{const re=D(w,K);R.set(re,w),w&&typeof w=="object"&&F in w&&Ce(w[F]||[])})};const R=new Map;Ce(M),H.current={data:M,childrenColumnName:F,kvMap:R,getRowKey:D}}return H.current.kvMap.get(A)}return[t]}},93935:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return xl}});var i={},y="rc-table-internal-hook",M=e(28314),F=e(51729),D=e(81334),H=e(7637),t=e(58757),A=e(26736);function R(C){var E=t.createContext(void 0),ie=function(je){var Me=je.value,bt=je.children,Rt=t.useRef(Me);Rt.current=Me;var Pt=t.useState(function(){return{getValue:function(){return Rt.current},listeners:new Set}}),Kt=(0,M.Z)(Pt,1),gn=Kt[0];return(0,D.Z)(function(){(0,A.unstable_batchedUpdates)(function(){gn.listeners.forEach(function(Yt){Yt(Me)})})},[Me]),t.createElement(E.Provider,{value:gn},bt)};return{Context:E,Provider:ie,defaultValue:C}}function Ce(C,E){var ie=(0,F.Z)(typeof E=="function"?E:function(Yt){if(E===void 0)return Yt;if(!Array.isArray(E))return Yt[E];var Rn={};return E.forEach(function(In){Rn[In]=Yt[In]}),Rn}),le=t.useContext(C==null?void 0:C.Context),je=le||{},Me=je.listeners,bt=je.getValue,Rt=t.useRef();Rt.current=ie(le?bt():C==null?void 0:C.defaultValue);var Pt=t.useState({}),Kt=(0,M.Z)(Pt,2),gn=Kt[1];return(0,D.Z)(function(){if(!le)return;function Yt(Rn){var In=ie(Rn);(0,H.Z)(Rt.current,In,!0)||gn({})}return Me.add(Yt),function(){Me.delete(Yt)}},[le]),Rt.current}var se=e(60698),w=e(21319);function K(){var C=t.createContext(null);function E(){return t.useContext(C)}function ie(je,Me){var bt=(0,w.Yr)(je),Rt=function(Kt,gn){var Yt=bt?{ref:gn}:{},Rn=t.useRef(0),In=t.useRef(Kt),vn=E();return vn!==null?t.createElement(je,(0,se.Z)({},Kt,Yt)):((!Me||Me(In.current,Kt))&&(Rn.current+=1),In.current=Kt,t.createElement(C.Provider,{value:Rn.current},t.createElement(je,(0,se.Z)({},Kt,Yt))))};return bt?t.forwardRef(Rt):Rt}function le(je,Me){var bt=(0,w.Yr)(je),Rt=function(Kt,gn){var Yt=bt?{ref:gn}:{};return E(),t.createElement(je,(0,se.Z)({},Kt,Yt))};return bt?t.memo(t.forwardRef(Rt),Me):t.memo(Rt,Me)}return{makeImmutable:ie,responseImmutable:le,useImmutableMark:E}}var re=K(),f=re.makeImmutable,_=re.responseImmutable,k=re.useImmutableMark,J=R(),$e=J;function z(C,E){var ie=t.useRef(0);ie.current+=1;var le=t.useRef(C),je=[];Object.keys(C||{}).map(function(bt){var Rt;(C==null?void 0:C[bt])!==((Rt=le.current)===null||Rt===void 0?void 0:Rt[bt])&&je.push(bt)}),le.current=C;var Me=t.useRef([]);return je.length&&(Me.current=je),t.useDebugValue(ie.current),t.useDebugValue(Me.current.join(", ")),E&&console.log("".concat(E,":"),ie.current,Me.current),ie.current}var h=null,Xe=t.memo(function(){var C=z();return t.createElement("h1",null,"Render Times: ",C)});Xe.displayName="RenderBlock";var It=e(38790),Fe=e(57370),xe=e(37734),xt=e(87608),He=e.n(xt),L=e(27903),Be=e(3187),$t=e(75556),oe=t.createContext({renderWithProps:!1}),ue=oe,ce="RC_TABLE_KEY";function Je(C){return C==null?[]:Array.isArray(C)?C:[C]}function it(C){var E=[],ie={};return C.forEach(function(le){for(var je=le||{},Me=je.key,bt=je.dataIndex,Rt=Me||Je(bt).join("-")||ce;ie[Rt];)Rt="".concat(Rt,"_next");ie[Rt]=!0,E.push(Rt)}),E}function Te(C){return C!=null}function ut(C){return C&&(0,It.Z)(C)==="object"&&!Array.isArray(C)&&!t.isValidElement(C)}function X(C,E,ie,le,je,Me){var bt=t.useContext(ue),Rt=k(),Pt=(0,L.Z)(function(){if(Te(le))return[le];var Kt=E==null||E===""?[]:Array.isArray(E)?E:[E],gn=(0,Be.Z)(C,Kt),Yt=gn,Rn=void 0;if(je){var In=je(gn,C,ie);ut(In)?(Yt=In.children,Rn=In.props,bt.renderWithProps=!0):Yt=In}return[Yt,Rn]},[Rt,C,le,E,je,ie],function(Kt,gn){if(Me){var Yt=(0,M.Z)(Kt,2),Rn=Yt[1],In=(0,M.Z)(gn,2),vn=In[1];return Me(vn,Rn)}return bt.renderWithProps?!0:!(0,H.Z)(Kt,gn,!0)});return Pt}function W(C,E,ie,le){var je=C+E-1;return C<=le&&je>=ie}function me(C,E){return Ce($e,function(ie){var le=W(C,E||1,ie.hoverStartRow,ie.hoverEndRow);return[le,ie.onHover]})}var he=function(E){var ie=E.ellipsis,le=E.rowType,je=E.children,Me,bt=ie===!0?{showTitle:!0}:ie;return bt&&(bt.showTitle||le==="header")&&(typeof je=="string"||typeof je=="number"?Me=je.toString():t.isValidElement(je)&&typeof je.props.children=="string"&&(Me=je.props.children)),Me};function mt(C){var E,ie,le,je,Me,bt,Rt,Pt,Kt=C.component,gn=C.children,Yt=C.ellipsis,Rn=C.scope,In=C.prefixCls,vn=C.className,on=C.align,$n=C.record,jn=C.render,sr=C.dataIndex,mr=C.renderIndex,go=C.shouldCellUpdate,Er=C.index,xr=C.rowType,lo=C.colSpan,Io=C.rowSpan,Qr=C.fixLeft,vo=C.fixRight,ho=C.firstFixLeft,cr=C.lastFixLeft,Kr=C.firstFixRight,yo=C.lastFixRight,ga=C.appendNode,Fo=C.additionalProps,eo=Fo===void 0?{}:Fo,Jo=C.isSticky,bo="".concat(In,"-cell"),ta=Ce($e,["supportSticky","allColumnsFixedLeft"]),po=ta.supportSticky,Ya=ta.allColumnsFixedLeft,ki=X($n,sr,mr,gn,jn,go),Ma=(0,M.Z)(ki,2),hi=Ma[0],Mo=Ma[1],aa={},Oi=typeof Qr=="number"&&po,da=typeof vo=="number"&&po;Oi&&(aa.position="sticky",aa.left=Qr),da&&(aa.position="sticky",aa.right=vo);var Eo=(E=(ie=(le=Mo==null?void 0:Mo.colSpan)!==null&&le!==void 0?le:eo.colSpan)!==null&&ie!==void 0?ie:lo)!==null&&E!==void 0?E:1,so=(je=(Me=(bt=Mo==null?void 0:Mo.rowSpan)!==null&&bt!==void 0?bt:eo.rowSpan)!==null&&Me!==void 0?Me:Io)!==null&&je!==void 0?je:1,hr=me(Er,so),ir=(0,M.Z)(hr,2),Dr=ir[0],tr=ir[1],no=function(yi){var oi;$n&&tr(Er,Er+so-1),eo==null||(oi=eo.onMouseEnter)===null||oi===void 0||oi.call(eo,yi)},Xo=function(yi){var oi;$n&&tr(-1,-1),eo==null||(oi=eo.onMouseLeave)===null||oi===void 0||oi.call(eo,yi)};if(Eo===0||so===0)return null;var ba=(Rt=eo.title)!==null&&Rt!==void 0?Rt:he({rowType:xr,ellipsis:Yt,children:hi}),pi=He()(bo,vn,(Pt={},(0,xe.Z)(Pt,"".concat(bo,"-fix-left"),Oi&&po),(0,xe.Z)(Pt,"".concat(bo,"-fix-left-first"),ho&&po),(0,xe.Z)(Pt,"".concat(bo,"-fix-left-last"),cr&&po),(0,xe.Z)(Pt,"".concat(bo,"-fix-left-all"),cr&&Ya&&po),(0,xe.Z)(Pt,"".concat(bo,"-fix-right"),da&&po),(0,xe.Z)(Pt,"".concat(bo,"-fix-right-first"),Kr&&po),(0,xe.Z)(Pt,"".concat(bo,"-fix-right-last"),yo&&po),(0,xe.Z)(Pt,"".concat(bo,"-ellipsis"),Yt),(0,xe.Z)(Pt,"".concat(bo,"-with-append"),ga),(0,xe.Z)(Pt,"".concat(bo,"-fix-sticky"),(Oi||da)&&Jo&&po),(0,xe.Z)(Pt,"".concat(bo,"-row-hover"),!Mo&&Dr),Pt),eo.className,Mo==null?void 0:Mo.className),ti={};on&&(ti.textAlign=on);var Fl=(0,Fe.Z)((0,Fe.Z)((0,Fe.Z)((0,Fe.Z)({},eo.style),ti),aa),Mo==null?void 0:Mo.style),wa=hi;return(0,It.Z)(wa)==="object"&&!Array.isArray(wa)&&!t.isValidElement(wa)&&(wa=null),Yt&&(cr||Kr)&&(wa=t.createElement("span",{className:"".concat(bo,"-content")},wa)),t.createElement(Kt,(0,se.Z)({},Mo,eo,{className:pi,style:Fl,title:ba,scope:Rn,onMouseEnter:no,onMouseLeave:Xo,colSpan:Eo!==1?Eo:null,rowSpan:so!==1?so:null}),ga,wa)}var lt=t.memo(mt);function pt(C,E,ie,le,je,Me){var bt=ie[C]||{},Rt=ie[E]||{},Pt,Kt;bt.fixed==="left"?Pt=le.left[je==="rtl"?E:C]:Rt.fixed==="right"&&(Kt=le.right[je==="rtl"?C:E]);var gn=!1,Yt=!1,Rn=!1,In=!1,vn=ie[E+1],on=ie[C-1],$n=!(Me!=null&&Me.children);if(je==="rtl"){if(Pt!==void 0){var jn=on&&on.fixed==="left";In=!jn&&$n}else if(Kt!==void 0){var sr=vn&&vn.fixed==="right";Rn=!sr&&$n}}else if(Pt!==void 0){var mr=vn&&vn.fixed==="left";gn=!mr&&$n}else if(Kt!==void 0){var go=on&&on.fixed==="right";Yt=!go&&$n}return{fixLeft:Pt,fixRight:Kt,lastFixLeft:gn,firstFixRight:Yt,lastFixRight:Rn,firstFixLeft:In,isSticky:le.isSticky}}var ft=t.createContext({}),wt=ft;function Gt(C){var E=C.className,ie=C.index,le=C.children,je=C.colSpan,Me=je===void 0?1:je,bt=C.rowSpan,Rt=C.align,Pt=Ce($e,["prefixCls","direction"]),Kt=Pt.prefixCls,gn=Pt.direction,Yt=t.useContext(wt),Rn=Yt.scrollColumnIndex,In=Yt.stickyOffsets,vn=Yt.flattenColumns,on=Yt.columns,$n=ie+Me-1,jn=$n+1===Rn?Me+1:Me,sr=pt(ie,ie+jn-1,vn,In,gn,on==null?void 0:on[ie]);return t.createElement(lt,(0,se.Z)({className:E,index:ie,component:"td",prefixCls:Kt,record:null,dataIndex:null,align:Rt,colSpan:jn,rowSpan:bt,render:function(){return le}},sr))}var Mt=e(47075),yt=["children"];function St(C){var E=C.children,ie=(0,Mt.Z)(C,yt);return t.createElement("tr",ie,E)}function fe(C){var E=C.children;return E}fe.Row=St,fe.Cell=Gt;var Re=fe;function Oe(C){var E=C.children,ie=C.stickyOffsets,le=C.flattenColumns,je=C.columns,Me=Ce($e,"prefixCls"),bt=le.length-1,Rt=le[bt],Pt=t.useMemo(function(){return{stickyOffsets:ie,flattenColumns:le,scrollColumnIndex:Rt!=null&&Rt.scrollbar?bt:null,columns:je}},[Rt,le,bt,ie,je]);return t.createElement(wt.Provider,{value:Pt},t.createElement("tfoot",{className:"".concat(Me,"-summary")},E))}var Le=_(Oe),O=Re,ke=e(19425),$=e(46499),b=e(91923),Z=e(17502),ae=e(33926),q=e(29140);function Ye(C,E,ie,le,je,Me){var bt=[];bt.push({record:C,indent:E,index:Me});var Rt=je(C),Pt=le==null?void 0:le.has(Rt);if(C&&Array.isArray(C[ie])&&Pt)for(var Kt=0;Kt1?tr-1:0),Xo=1;Xo=0;Rt-=1){var Pt=E[Rt],Kt=ie&&ie[Rt],gn=Kt&&Kt[Lt];if(Pt||gn||bt){var Yt=gn||{},Rn=Yt.columnType,In=(0,Mt.Z)(Yt,Ut);je.unshift(t.createElement("col",(0,se.Z)({key:Rt,style:{width:Pt}},In))),bt=!0}}return t.createElement("colgroup",null,je)}var Sn=pn,Xt=["className","noData","columns","flattenColumns","colWidths","columCount","stickyOffsets","direction","fixHeader","stickyTopOffset","stickyBottomOffset","stickyClassName","onScroll","maxContentScroll","children"];function an(C,E){return(0,t.useMemo)(function(){for(var ie=[],le=0;le=0})},[Me]),vo=Me[Me.length-1],ho={fixed:vo?vo.fixed:null,scrollbar:!0,onHeaderCell:function(){return{className:"".concat(mr,"-cell-scrollbar")}}},cr=(0,t.useMemo)(function(){return xr?[].concat((0,q.Z)(je),[ho]):je},[xr,je]),Kr=(0,t.useMemo)(function(){return xr?[].concat((0,q.Z)(Me),[ho]):Me},[xr,Me]),yo=(0,t.useMemo)(function(){var Fo=Pt.right,eo=Pt.left;return(0,Fe.Z)((0,Fe.Z)({},Pt),{},{left:Kt==="rtl"?[].concat((0,q.Z)(eo.map(function(Jo){return Jo+xr})),[0]):eo,right:Kt==="rtl"?Fo:[].concat((0,q.Z)(Fo.map(function(Jo){return Jo+xr})),[0]),isSticky:Er})},[xr,Pt,Er]),ga=an(bt,Rt);return t.createElement("div",{style:(0,Fe.Z)({overflow:"hidden"},Er?{top:Yt,bottom:Rn}:{}),ref:Io,className:He()(ie,(0,xe.Z)({},In,!!In))},t.createElement("table",{style:{tableLayout:"fixed",visibility:le||ga?null:"hidden"}},(!le||!on||Qr)&&t.createElement(Sn,{colWidths:ga?[].concat((0,q.Z)(ga),[xr]):[],columCount:Rt+1,columns:Kr}),$n((0,Fe.Z)((0,Fe.Z)({},jn),{},{stickyOffsets:yo,columns:cr,flattenColumns:Kr}))))});ln.displayName="FixedHolder";var Pn=t.memo(ln);function zn(C){var E=C.cells,ie=C.stickyOffsets,le=C.flattenColumns,je=C.rowComponent,Me=C.cellComponent,bt=C.tdCellComponent,Rt=C.onHeaderRow,Pt=C.index,Kt=Ce($e,["prefixCls","direction"]),gn=Kt.prefixCls,Yt=Kt.direction,Rn;Rt&&(Rn=Rt(E.map(function(vn){return vn.column}),Pt));var In=it(E.map(function(vn){return vn.column}));return t.createElement(je,Rn,E.map(function(vn,on){var $n=vn.column,jn=pt(vn.colStart,vn.colEnd,le,ie,Yt,$n),sr;return $n&&$n.onHeaderCell&&(sr=vn.column.onHeaderCell($n)),t.createElement(lt,(0,se.Z)({},vn,{scope:$n.title?vn.colSpan>1?"colgroup":"col":null,ellipsis:$n.ellipsis,align:$n.align,component:$n.title?Me:bt,prefixCls:gn,key:In[on]},jn,{additionalProps:sr,rowType:"header"}))}))}zn.displayName="HeaderRow";var qn=zn;function yr(C){var E=[];function ie(bt,Rt){var Pt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;E[Pt]=E[Pt]||[];var Kt=Rt,gn=bt.filter(Boolean).map(function(Yt){var Rn={key:Yt.key,className:Yt.className||"",children:Yt.title,column:Yt,colStart:Kt},In=1,vn=Yt.children;return vn&&vn.length>0&&(In=ie(vn,Kt,Pt+1).reduce(function(on,$n){return on+$n},0),Rn.hasSubColumns=!0),"colSpan"in Yt&&(In=Yt.colSpan),"rowSpan"in Yt&&(Rn.rowSpan=Yt.rowSpan),Rn.colSpan=In,Rn.colEnd=Rn.colStart+In-1,E[Pt].push(Rn),Kt+=In,In});return gn}ie(C,0);for(var le=E.length,je=function(Rt){E[Rt].forEach(function(Pt){!("rowSpan"in Pt)&&!Pt.hasSubColumns&&(Pt.rowSpan=le-Rt)})},Me=0;Me0?[].concat((0,q.Z)(E),(0,q.Z)(Ae(Me).map(function(bt){return(0,Fe.Z)({fixed:je},bt)}))):[].concat((0,q.Z)(E),[(0,Fe.Z)((0,Fe.Z)({},ie),{},{fixed:je})])},[])}function we(C){for(var E=!0,ie=0;ie=0;Me-=1){var bt=C[Me];if(je&&bt.fixed!=="right")je=!1;else if(!je&&bt.fixed==="right"){warning(!1,"Index ".concat(Me+1," of `columns` missing `fixed='right'` prop."));break}}}function ct(C){return C.map(function(E){var ie=E.fixed,le=(0,Mt.Z)(E,ee),je=ie;return ie==="left"?je="right":ie==="right"&&(je="left"),(0,Fe.Z)({fixed:je},le)})}function be(C,E){var ie=C.prefixCls,le=C.columns,je=C.children,Me=C.expandable,bt=C.expandedKeys,Rt=C.columnTitle,Pt=C.getRowKey,Kt=C.onTriggerExpand,gn=C.expandIcon,Yt=C.rowExpandable,Rn=C.expandIconColumnIndex,In=C.direction,vn=C.expandRowByClick,on=C.columnWidth,$n=C.fixed,jn=t.useMemo(function(){return le||Y(je)},[le,je]),sr=t.useMemo(function(){if(Me){var Er,xr=jn.slice();if(!xr.includes(i)){var lo=Rn||0;lo>=0&&xr.splice(lo,0,i)}var Io=xr.indexOf(i);xr=xr.filter(function(cr,Kr){return cr!==i||Kr===Io});var Qr=jn[Io],vo;($n==="left"||$n)&&!Rn?vo="left":($n==="right"||$n)&&Rn===jn.length?vo="right":vo=Qr?Qr.fixed:null;var ho=(Er={},(0,xe.Z)(Er,Lt,{className:"".concat(ie,"-expand-icon-col"),columnType:"EXPAND_COLUMN"}),(0,xe.Z)(Er,"title",Rt),(0,xe.Z)(Er,"fixed",vo),(0,xe.Z)(Er,"className","".concat(ie,"-row-expand-icon-cell")),(0,xe.Z)(Er,"width",on),(0,xe.Z)(Er,"render",function(Kr,yo,ga){var Fo=Pt(yo,ga),eo=bt.has(Fo),Jo=Yt?Yt(yo):!0,bo=gn({prefixCls:ie,expanded:eo,expandable:Jo,record:yo,onExpand:Kt});return vn?t.createElement("span",{onClick:function(po){return po.stopPropagation()}},bo):bo}),Er);return xr.map(function(cr){return cr===i?ho:cr})}return jn.filter(function(cr){return cr!==i})},[Me,jn,Pt,bt,gn,In]),mr=t.useMemo(function(){var Er=sr;return E&&(Er=E(Er)),Er.length||(Er=[{render:function(){return null}}]),Er},[E,sr,In]),go=t.useMemo(function(){return In==="rtl"?ct(Ae(mr)):Ae(mr)},[mr,In]);return[mr,go]}var U=be;function Ie(C){var E,ie=C.prefixCls,le=C.record,je=C.onExpand,Me=C.expanded,bt=C.expandable,Rt="".concat(ie,"-row-expand-icon");if(!bt)return t.createElement("span",{className:He()(Rt,"".concat(ie,"-row-spaced"))});var Pt=function(gn){je(le,gn),gn.stopPropagation()};return t.createElement("span",{className:He()(Rt,(E={},(0,xe.Z)(E,"".concat(ie,"-row-expanded"),Me),(0,xe.Z)(E,"".concat(ie,"-row-collapsed"),!Me),E)),onClick:Pt})}function ht(C,E,ie){var le=[];function je(Me){(Me||[]).forEach(function(bt,Rt){le.push(E(bt,Rt)),je(bt[ie])})}return je(C),le}function Se(C,E,ie){var le=un(C),je=le.expandIcon,Me=le.expandedRowKeys,bt=le.defaultExpandedRowKeys,Rt=le.defaultExpandAllRows,Pt=le.expandedRowRender,Kt=le.onExpand,gn=le.onExpandedRowsChange,Yt=le.childrenColumnName,Rn=je||Ie,In=Yt||"children",vn=t.useMemo(function(){return Pt?"row":C.expandable&&C.internalHooks===y&&C.expandable.__PARENT_RENDER_ICON__||E.some(function(Er){return Er&&(0,It.Z)(Er)==="object"&&Er[In]})?"nest":!1},[!!Pt,E]),on=t.useState(function(){return bt||(Rt?ht(E,ie,In):[])}),$n=(0,M.Z)(on,2),jn=$n[0],sr=$n[1],mr=t.useMemo(function(){return new Set(Me||jn||[])},[Me,jn]),go=t.useCallback(function(Er){var xr=ie(Er,E.indexOf(Er)),lo,Io=mr.has(xr);Io?(mr.delete(xr),lo=(0,q.Z)(mr)):lo=[].concat((0,q.Z)(mr),[xr]),sr(lo),Kt&&Kt(!Io,Er),gn&&gn(lo)},[ie,mr,E,Kt,gn]);return[le,vn,mr,Rn,In,go]}function de(C,E,ie,le){var je=C.map(function(Me,bt){return pt(bt,bt,C,E,ie,le==null?void 0:le[bt])});return(0,L.Z)(function(){return je},[je],function(Me,bt){return!(0,H.Z)(Me,bt)})}function T(C){var E=(0,t.useRef)(C),ie=(0,t.useState)({}),le=(0,M.Z)(ie,2),je=le[1],Me=(0,t.useRef)(null),bt=(0,t.useRef)([]);function Rt(Pt){bt.current.push(Pt);var Kt=Promise.resolve();Me.current=Kt,Kt.then(function(){if(Me.current===Kt){var gn=bt.current,Yt=E.current;bt.current=[],gn.forEach(function(Rn){E.current=Rn(E.current)}),Me.current=null,Yt!==E.current&&je({})}})}return(0,t.useEffect)(function(){return function(){Me.current=null}},[]),[E.current,Rt]}function N(C){var E=(0,t.useRef)(C||null),ie=(0,t.useRef)();function le(){window.clearTimeout(ie.current)}function je(bt){E.current=bt,le(),ie.current=window.setTimeout(function(){E.current=null,ie.current=void 0},100)}function Me(){return E.current}return(0,t.useEffect)(function(){return le},[]),[je,Me]}function x(){var C=t.useState(-1),E=(0,M.Z)(C,2),ie=E[0],le=E[1],je=t.useState(-1),Me=(0,M.Z)(je,2),bt=Me[0],Rt=Me[1],Pt=t.useCallback(function(Kt,gn){le(Kt),Rt(gn)},[]);return[ie,bt,Pt]}var te=e(19075),ye=(0,te.Z)()?window:null;function Ze(C,E){var ie=(0,It.Z)(C)==="object"?C:{},le=ie.offsetHeader,je=le===void 0?0:le,Me=ie.offsetSummary,bt=Me===void 0?0:Me,Rt=ie.offsetScroll,Pt=Rt===void 0?0:Rt,Kt=ie.getContainer,gn=Kt===void 0?function(){return ye}:Kt,Yt=gn()||ye;return t.useMemo(function(){var Rn=!!C;return{isSticky:Rn,stickyClassName:Rn?"".concat(E,"-sticky-holder"):"",offsetHeader:je,offsetSummary:bt,offsetScroll:Pt,container:Yt}},[Pt,je,bt,E,Yt])}function Ke(C,E,ie){var le=(0,t.useMemo)(function(){for(var je=[],Me=[],bt=0,Rt=0,Pt=0;Pt=Yt&&(eo=Yt-Rn),bt({scrollLeft:eo/Yt*(gn+2)}),sr.current.x=Kr.pageX},vo=function(){if(Me.current){var Kr=(0,Cn.os)(Me.current).top,yo=Kr+Me.current.offsetHeight,ga=Pt===window?document.documentElement.scrollTop+window.innerHeight:(0,Cn.os)(Pt).top+Pt.clientHeight;yo-(0,Z.Z)()<=ga||Kr>=ga-Rt?jn(function(Fo){return(0,Fe.Z)((0,Fe.Z)({},Fo),{},{isHiddenScrollBar:!0})}):jn(function(Fo){return(0,Fe.Z)((0,Fe.Z)({},Fo),{},{isHiddenScrollBar:!1})})}},ho=function(Kr){jn(function(yo){return(0,Fe.Z)((0,Fe.Z)({},yo),{},{scrollLeft:Kr/gn*Yt||0})})};return t.useImperativeHandle(ie,function(){return{setScrollLeft:ho}}),t.useEffect(function(){var cr=(0,dt.Z)(document.body,"mouseup",lo,!1),Kr=(0,dt.Z)(document.body,"mousemove",Qr,!1);return vo(),function(){cr.remove(),Kr.remove()}},[Rn,Er]),t.useEffect(function(){var cr=(0,dt.Z)(Pt,"scroll",vo,!1),Kr=(0,dt.Z)(window,"resize",vo,!1);return function(){cr.remove(),Kr.remove()}},[Pt]),t.useEffect(function(){$n.isHiddenScrollBar||jn(function(cr){var Kr=Me.current;return Kr?(0,Fe.Z)((0,Fe.Z)({},cr),{},{scrollLeft:Kr.scrollLeft/Kr.scrollWidth*Kr.clientWidth}):cr})},[$n.isHiddenScrollBar]),gn<=Yt||!Rn||$n.isHiddenScrollBar?null:t.createElement("div",{style:{height:(0,Z.Z)(),width:Yt,bottom:Rt},className:"".concat(Kt,"-sticky-scroll")},t.createElement("div",{onMouseDown:Io,ref:In,className:He()("".concat(Kt,"-sticky-scroll-bar"),(0,xe.Z)({},"".concat(Kt,"-sticky-scroll-bar-active"),Er)),style:{width:"".concat(Rn,"px"),transform:"translate3d(".concat($n.scrollLeft,"px, 0, 0)")}}))},Ct=t.forwardRef(bn);function fn(C){return null}var zt=fn;function cn(C){return null}var yn=cn,Fn=[],Yn={};function Zn(){return"No Data"}function Kn(C){var E,ie=(0,Fe.Z)({rowKey:"key",prefixCls:"rc-table",emptyText:Zn},C),le=ie.prefixCls,je=ie.className,Me=ie.rowClassName,bt=ie.style,Rt=ie.data,Pt=ie.rowKey,Kt=ie.scroll,gn=ie.tableLayout,Yt=ie.direction,Rn=ie.title,In=ie.footer,vn=ie.summary,on=ie.caption,$n=ie.id,jn=ie.showHeader,sr=ie.components,mr=ie.emptyText,go=ie.onRow,Er=ie.onHeaderRow,xr=ie.internalHooks,lo=ie.transformColumns,Io=ie.internalRefs,Qr=ie.sticky,vo=Rt||Fn,ho=!!vo.length,cr=t.useCallback(function(I,Q){return(0,Be.Z)(sr,I)||Q},[sr]),Kr=t.useMemo(function(){return typeof Pt=="function"?Pt:function(I){var Q=I&&I[Pt];return Q}},[Pt]),yo=x(),ga=(0,M.Z)(yo,3),Fo=ga[0],eo=ga[1],Jo=ga[2],bo=Se(ie,vo,Kr),ta=(0,M.Z)(bo,6),po=ta[0],Ya=ta[1],ki=ta[2],Ma=ta[3],hi=ta[4],Mo=ta[5],aa=t.useState(0),Oi=(0,M.Z)(aa,2),da=Oi[0],Eo=Oi[1],so=U((0,Fe.Z)((0,Fe.Z)((0,Fe.Z)({},ie),po),{},{expandable:!!po.expandedRowRender,columnTitle:po.columnTitle,expandedKeys:ki,getRowKey:Kr,onTriggerExpand:Mo,expandIcon:Ma,expandIconColumnIndex:po.expandIconColumnIndex,direction:Yt}),xr===y?lo:null),hr=(0,M.Z)(so,2),ir=hr[0],Dr=hr[1],tr=t.useMemo(function(){return{columns:ir,flattenColumns:Dr}},[ir,Dr]),no=t.useRef(),Xo=t.useRef(),ba=t.useRef(),pi=t.useRef(),ti=t.useRef(),Fl=t.useState(!1),wa=(0,M.Z)(Fl,2),wl=wa[0],yi=wa[1],oi=t.useState(!1),Il=(0,M.Z)(oi,2),ko=Il[0],ha=Il[1],Ea=T(new Map),ai=(0,M.Z)(Ea,2),Wo=ai[0],Na=ai[1],ci=it(Dr),Zi=ci.map(function(I){return Wo.get(I)}),Qi=t.useMemo(function(){return Zi},[Zi.join("_")]),dl=Ve(Qi,Dr.length,Yt),_a=Kt&&Te(Kt.y),Ui=Kt&&Te(Kt.x)||!!po.fixed,Bi=Ui&&Dr.some(function(I){var Q=I.fixed;return Q}),ul=t.useRef(),Ci=Ze(Qr,le),ii=Ci.isSticky,fl=Ci.offsetHeader,Ri=Ci.offsetSummary,zi=Ci.offsetScroll,No=Ci.stickyClassName,Ta=Ci.container,Fa=t.useMemo(function(){return vn==null?void 0:vn(vo)},[vn,vo]),Ua=(_a||ii)&&t.isValidElement(Fa)&&Fa.type===Re&&Fa.props.fixed,li,Ji,qi;_a&&(Ji={overflowY:"scroll",maxHeight:Kt.y}),Ui&&(li={overflowX:"auto"},_a||(Ji={overflowY:"hidden"}),qi={width:(Kt==null?void 0:Kt.x)===!0?"auto":Kt==null?void 0:Kt.x,minWidth:"100%"});var Ll=t.useCallback(function(I,Q){(0,$.Z)(no.current)&&Na(function(De){if(De.get(I)!==Q){var ze=new Map(De);return ze.set(I,Q),ze}return De})},[]),ds=N(null),us=(0,M.Z)(ds,2),_i=us[0],fs=us[1];function Ql(I,Q){Q&&(typeof Q=="function"?Q(I):Q.scrollLeft!==I&&(Q.scrollLeft=I,Q.scrollLeft!==I&&setTimeout(function(){Q.scrollLeft=I},0)))}var Yl=(0,F.Z)(function(I){var Q=I.currentTarget,De=I.scrollLeft,ze=Yt==="rtl",Ue=typeof De=="number"?De:Q.scrollLeft,Qe=Q||Yn;if(!fs()||fs()===Qe){var At;_i(Qe),Ql(Ue,Xo.current),Ql(Ue,ba.current),Ql(Ue,ti.current),Ql(Ue,(At=ul.current)===null||At===void 0?void 0:At.setScrollLeft)}if(Q){var rn=Q.scrollWidth,Qt=Q.clientWidth;if(rn===Qt){yi(!1),ha(!1);return}ze?(yi(-Ue0)):(yi(Ue>0),ha(Ue{je(Me,Kt),Kt.stopPropagation()},className:He()(Pt,{[`${Pt}-spaced`]:!Rt,[`${Pt}-expanded`]:Rt&&bt,[`${Pt}-collapsed`]:Rt&&!bt}),"aria-label":bt?C.collapse:C.expand,"aria-expanded":bt})}}var Qn=br,Un=vr((C,E)=>{const{_renderTimes:ie}=C,{_renderTimes:le}=E;return ie!==le});function wr(C,E){return"key"in C&&C.key!==void 0&&C.key!==null?C.key:C.dataIndex?Array.isArray(C.dataIndex)?C.dataIndex.join("."):C.dataIndex:E}function or(C,E){return E?`${E}-${C}`:`${C}`}function Or(C,E){return typeof C=="function"?C(E):C}function fo(C,E){const ie=Or(C,E);return Object.prototype.toString.call(ie)==="[object Object]"?"":ie}var Sr={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"}}]},name:"filter",theme:"filled"},ao=Sr,Vr=e(17202),Ir=function(E,ie){return t.createElement(Vr.Z,(0,se.Z)({},E,{ref:ie,icon:ao}))},Do=t.forwardRef(Ir),sa=e(4459);function fa(C){const E=t.useRef(C),ie=(0,sa.Z)();return[()=>E.current,le=>{E.current=le,ie()}]}var Oa=e(12562),Oo=e(38904),zo=e(73267),va=e(17444),vi=e(85706),Ba=e(81285),pe=e(10852),Ge=e(7992),Tt=e(99534),en=e(21149);function kn(C){let{value:E,onChange:ie,filterSearch:le,tablePrefixCls:je,locale:Me}=C;return le?t.createElement("div",{className:`${je}-filter-dropdown-search`},t.createElement(en.Z,{prefix:t.createElement(Tt.Z,null),placeholder:Me.filterSearchPlaceholder,onChange:ie,value:E,htmlSize:1,className:`${je}-filter-dropdown-search-input`})):null}var Nr=kn,Tr=e(29639);const ur=C=>{const{keyCode:E}=C;E===Tr.Z.ENTER&&C.stopPropagation()};var ra=t.forwardRef((C,E)=>t.createElement("div",{className:C.className,onClick:ie=>ie.stopPropagation(),onKeyDown:ur,ref:E},C.children));function v(C){let E=[];return(C||[]).forEach(ie=>{let{value:le,children:je}=ie;E.push(le),je&&(E=[].concat((0,q.Z)(E),(0,q.Z)(v(je))))}),E}function V(C){return C.some(E=>{let{children:ie}=E;return ie})}function G(C,E){return typeof E=="string"||typeof E=="number"?E==null?void 0:E.toString().toLowerCase().includes(C.trim().toLowerCase()):!1}function Pe(C){let{filters:E,prefixCls:ie,filteredKeys:le,filterMultiple:je,searchValue:Me,filterSearch:bt}=C;return E.map((Rt,Pt)=>{const Kt=String(Rt.value);if(Rt.children)return{key:Kt||Pt,label:Rt.text,popupClassName:`${ie}-dropdown-submenu`,children:Pe({filters:Rt.children,prefixCls:ie,filteredKeys:le,filterMultiple:je,searchValue:Me,filterSearch:bt})};const gn=je?Oo.Z:pe.ZP,Yt={key:Rt.value!==void 0?Kt:Pt,label:t.createElement(t.Fragment,null,t.createElement(gn,{checked:le.includes(Kt)}),t.createElement("span",null,Rt.text))};return Me.trim()?typeof bt=="function"?bt(Me,Rt)?Yt:null:G(Me,Rt.text)?Yt:null:Yt})}function ve(C){var E,ie;const{tablePrefixCls:le,prefixCls:je,column:Me,dropdownPrefixCls:bt,columnKey:Rt,filterMultiple:Pt,filterMode:Kt="menu",filterSearch:gn=!1,filterState:Yt,triggerFilter:Rn,locale:In,children:vn,getPopupContainer:on}=C,{filterDropdownOpen:$n,onFilterDropdownOpenChange:jn,filterResetToDefaultFilteredValue:sr,defaultFilteredValue:mr,filterDropdownVisible:go,onFilterDropdownVisibleChange:Er}=Me,[xr,lo]=t.useState(!1),Io=!!(Yt&&(!((E=Yt.filteredKeys)===null||E===void 0)&&E.length||Yt.forceFiltered)),Qr=tr=>{lo(tr),jn==null||jn(tr),Er==null||Er(tr)},vo=(ie=$n!=null?$n:go)!==null&&ie!==void 0?ie:xr,ho=Yt==null?void 0:Yt.filteredKeys,[cr,Kr]=fa(ho||[]),yo=tr=>{let{selectedKeys:no}=tr;Kr(no)},ga=(tr,no)=>{let{node:Xo,checked:ba}=no;yo(Pt?{selectedKeys:tr}:{selectedKeys:ba&&Xo.key?[Xo.key]:[]})};t.useEffect(()=>{xr&&yo({selectedKeys:ho||[]})},[ho]);const[Fo,eo]=t.useState([]),Jo=tr=>{eo(tr)},[bo,ta]=t.useState(""),po=tr=>{const{value:no}=tr.target;ta(no)};t.useEffect(()=>{xr||ta("")},[xr]);const Ya=tr=>{const no=tr&&tr.length?tr:null;if(no===null&&(!Yt||!Yt.filteredKeys)||(0,H.Z)(no,Yt==null?void 0:Yt.filteredKeys,!0))return null;Rn({column:Me,key:Rt,filteredKeys:no})},ki=()=>{Qr(!1),Ya(cr())},Ma=function(){let{confirm:tr,closeDropdown:no}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{confirm:!1,closeDropdown:!1};tr&&Ya([]),no&&Qr(!1),ta(""),Kr(sr?(mr||[]).map(Xo=>String(Xo)):[])},hi=function(){let{closeDropdown:tr}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{closeDropdown:!0};tr&&Qr(!1),Ya(cr())},Mo=tr=>{tr&&ho!==void 0&&Kr(ho||[]),Qr(tr),!tr&&!Me.filterDropdown&&ki()},aa=He()({[`${bt}-menu-without-submenu`]:!V(Me.filters||[])}),Oi=tr=>{if(tr.target.checked){const no=v(Me==null?void 0:Me.filters).map(Xo=>String(Xo));Kr(no)}else Kr([])},da=tr=>{let{filters:no}=tr;return(no||[]).map((Xo,ba)=>{const pi=String(Xo.value),ti={title:Xo.text,key:Xo.value!==void 0?pi:ba};return Xo.children&&(ti.children=da({filters:Xo.children})),ti})},Eo=tr=>{var no;return Object.assign(Object.assign({},tr),{text:tr.title,value:tr.key,children:((no=tr.children)===null||no===void 0?void 0:no.map(Xo=>Eo(Xo)))||[]})};let so;if(typeof Me.filterDropdown=="function")so=Me.filterDropdown({prefixCls:`${bt}-custom`,setSelectedKeys:tr=>yo({selectedKeys:tr}),selectedKeys:cr(),confirm:hi,clearFilters:Ma,filters:Me.filters,visible:vo,close:()=>{Qr(!1)}});else if(Me.filterDropdown)so=Me.filterDropdown;else{const tr=cr()||[],no=()=>(Me.filters||[]).length===0?t.createElement(va.Z,{image:va.Z.PRESENTED_IMAGE_SIMPLE,description:In.filterEmptyText,imageStyle:{height:24},style:{margin:0,padding:"16px 0"}}):Kt==="tree"?t.createElement(t.Fragment,null,t.createElement(Nr,{filterSearch:gn,value:bo,onChange:po,tablePrefixCls:le,locale:In}),t.createElement("div",{className:`${le}-filter-dropdown-tree`},Pt?t.createElement(Oo.Z,{checked:tr.length===v(Me.filters).length,indeterminate:tr.length>0&&tr.lengthtypeof gn=="function"?gn(bo,Eo(ba)):G(bo,ba.title):void 0}))):t.createElement(t.Fragment,null,t.createElement(Nr,{filterSearch:gn,value:bo,onChange:po,tablePrefixCls:le,locale:In}),t.createElement(vi.Z,{selectable:!0,multiple:Pt,prefixCls:`${bt}-menu`,className:aa,onSelect:yo,onDeselect:yo,selectedKeys:tr,getPopupContainer:on,openKeys:Fo,onOpenChange:Jo,items:Pe({filters:Me.filters||[],filterSearch:gn,prefixCls:je,filteredKeys:cr(),filterMultiple:Pt,searchValue:bo})})),Xo=()=>sr?(0,H.Z)((mr||[]).map(ba=>String(ba)),tr,!0):tr.length===0;so=t.createElement(t.Fragment,null,no(),t.createElement("div",{className:`${je}-dropdown-btns`},t.createElement(Oa.ZP,{type:"link",size:"small",disabled:Xo(),onClick:()=>Ma()},In.filterReset),t.createElement(Oa.ZP,{type:"primary",size:"small",onClick:ki},In.filterConfirm)))}Me.filterDropdown&&(so=t.createElement(Ba.J,{selectable:void 0},so));const hr=()=>t.createElement(ra,{className:`${je}-dropdown`},so);let ir;typeof Me.filterIcon=="function"?ir=Me.filterIcon(Io):Me.filterIcon?ir=Me.filterIcon:ir=t.createElement(Do,null);const{direction:Dr}=t.useContext(Pr.E_);return t.createElement("div",{className:`${je}-column`},t.createElement("span",{className:`${le}-column-title`},vn),t.createElement(zo.Z,{dropdownRender:hr,trigger:["click"],open:vo,onOpenChange:Mo,getPopupContainer:on,placement:Dr==="rtl"?"bottomLeft":"bottomRight"},t.createElement("span",{role:"button",tabIndex:-1,className:He()(`${je}-trigger`,{active:Io}),onClick:tr=>{tr.stopPropagation()}},ir)))}var vt=ve;function nt(C,E,ie){let le=[];return(C||[]).forEach((je,Me)=>{var bt;const Rt=or(Me,ie);if(je.filters||"filterDropdown"in je||"onFilter"in je)if("filteredValue"in je){let Pt=je.filteredValue;"filterDropdown"in je||(Pt=(bt=Pt==null?void 0:Pt.map(String))!==null&&bt!==void 0?bt:Pt),le.push({column:je,key:wr(je,Rt),filteredKeys:Pt,forceFiltered:je.filtered})}else le.push({column:je,key:wr(je,Rt),filteredKeys:E&&je.defaultFilteredValue?je.defaultFilteredValue:void 0,forceFiltered:je.filtered});"children"in je&&(le=[].concat((0,q.Z)(le),(0,q.Z)(nt(je.children,E,Rt))))}),le}function qt(C,E,ie,le,je,Me,bt,Rt){return ie.map((Pt,Kt)=>{const gn=or(Kt,Rt),{filterMultiple:Yt=!0,filterMode:Rn,filterSearch:In}=Pt;let vn=Pt;if(vn.filters||vn.filterDropdown){const on=wr(vn,gn),$n=le.find(jn=>{let{key:sr}=jn;return on===sr});vn=Object.assign(Object.assign({},vn),{title:jn=>t.createElement(vt,{tablePrefixCls:C,prefixCls:`${C}-filter`,dropdownPrefixCls:E,column:vn,columnKey:on,filterState:$n,filterMultiple:Yt,filterMode:Rn,filterSearch:In,triggerFilter:Me,locale:je,getPopupContainer:bt},Or(Pt.title,jn))})}return"children"in vn&&(vn=Object.assign(Object.assign({},vn),{children:qt(C,E,vn.children,le,je,Me,bt,gn)})),vn})}function Jt(C){const E={};return C.forEach(ie=>{let{key:le,filteredKeys:je,column:Me}=ie;const{filters:bt,filterDropdown:Rt}=Me;if(Rt)E[le]=je||null;else if(Array.isArray(je)){const Pt=v(bt);E[le]=Pt.filter(Kt=>je.includes(String(Kt)))}else E[le]=null}),E}function hn(C,E){return E.reduce((ie,le)=>{const{column:{onFilter:je,filters:Me},filteredKeys:bt}=le;return je&&bt&&bt.length?ie.filter(Rt=>bt.some(Pt=>{const Kt=v(Me),gn=Kt.findIndex(Rn=>String(Rn)===String(Pt)),Yt=gn!==-1?Kt[gn]:Pt;return je(Yt,Rt)})):ie},C)}const Nn=C=>C.flatMap(E=>"children"in E?[E].concat((0,q.Z)(Nn(E.children||[]))):[E]);function En(C){let{prefixCls:E,dropdownPrefixCls:ie,mergedColumns:le,onFilterChange:je,getPopupContainer:Me,locale:bt}=C;const Rt=t.useMemo(()=>Nn(le||[]),[le]),[Pt,Kt]=t.useState(()=>nt(Rt,!0)),gn=t.useMemo(()=>{const vn=nt(Rt,!1);if(vn.length===0)return vn;let on=!0,$n=!0;if(vn.forEach(jn=>{let{filteredKeys:sr}=jn;sr!==void 0?on=!1:$n=!1}),on){const jn=(Rt||[]).map((sr,mr)=>wr(sr,or(mr)));return Pt.filter(sr=>{let{key:mr}=sr;return jn.includes(mr)}).map(sr=>{const mr=Rt[jn.findIndex(go=>go===sr.key)];return Object.assign(Object.assign({},sr),{column:Object.assign(Object.assign({},sr.column),mr),forceFiltered:mr.filtered})})}return vn},[Rt,Pt]),Yt=t.useMemo(()=>Jt(gn),[gn]),Rn=vn=>{const on=gn.filter($n=>{let{key:jn}=$n;return jn!==vn.key});on.push(vn),Kt(on),je(Jt(on),on)};return[vn=>qt(E,ie,vn,gn,bt,Rn,Me),gn,Yt]}var _t=En,sn=e(27982),mn=e(44818),Ot=function(C,E){var ie={};for(var le in C)Object.prototype.hasOwnProperty.call(C,le)&&E.indexOf(le)<0&&(ie[le]=C[le]);if(C!=null&&typeof Object.getOwnPropertySymbols=="function")for(var je=0,le=Object.getOwnPropertySymbols(C);je{const Me=C[je];typeof Me!="function"&&(ie[je]=Me)}),ie}function Wn(C,E,ie){const le=ie&&typeof ie=="object"?ie:{},{total:je=0}=le,Me=Ot(le,["total"]),[bt,Rt]=(0,t.useState)(()=>({current:"defaultCurrent"in Me?Me.defaultCurrent:1,pageSize:"defaultPageSize"in Me?Me.defaultPageSize:tn})),Pt=(0,mn.Z)(bt,Me,{total:je>0?je:C}),Kt=Math.ceil((je||C)/Pt.pageSize);Pt.current>Kt&&(Pt.current=Kt||1);const gn=(Rn,In)=>{Rt({current:Rn!=null?Rn:1,pageSize:In||Pt.pageSize})},Yt=(Rn,In)=>{var vn;ie&&((vn=ie.onChange)===null||vn===void 0||vn.call(ie,Rn,In)),gn(Rn,In),E(Rn,In||(Pt==null?void 0:Pt.pageSize))};return ie===!1?[{},()=>{}]:[Object.assign(Object.assign({},Pt),{onChange:Yt}),gn]}var Jn=Wn,nr=e(10130),dr=e(39919),ar=e(16226),gr=e(47857),Co=e(60409);const Yr={},Ho="SELECT_ALL",wo="SELECT_INVERT",ca="SELECT_NONE",za=[],Ga=(C,E)=>{let ie=[];return(E||[]).forEach(le=>{ie.push(le),le&&typeof le=="object"&&C in le&&(ie=[].concat((0,q.Z)(ie),(0,q.Z)(Ga(C,le[C]))))}),ie};var oa=(C,E)=>{const{preserveSelectedRowKeys:ie,selectedRowKeys:le,defaultSelectedRowKeys:je,getCheckboxProps:Me,onChange:bt,onSelect:Rt,onSelectAll:Pt,onSelectInvert:Kt,onSelectNone:gn,onSelectMultiple:Yt,columnWidth:Rn,type:In,selections:vn,fixed:on,renderCell:$n,hideSelectAll:jn,checkStrictly:sr=!0}=E||{},{prefixCls:mr,data:go,pageData:Er,getRecordByKey:xr,getRowKey:lo,expandType:Io,childrenColumnName:Qr,locale:vo,getPopupContainer:ho}=C,[cr,Kr]=(0,Co.Z)(le||je||za,{value:le}),yo=t.useRef(new Map),ga=(0,t.useCallback)(Eo=>{if(ie){const so=new Map;Eo.forEach(hr=>{let ir=xr(hr);!ir&&yo.current.has(hr)&&(ir=yo.current.get(hr)),so.set(hr,ir)}),yo.current=so}},[xr,ie]);t.useEffect(()=>{ga(cr)},[cr]);const{keyEntities:Fo}=(0,t.useMemo)(()=>{if(sr)return{keyEntities:null};let Eo=go;if(ie){const so=new Set(go.map((ir,Dr)=>lo(ir,Dr))),hr=Array.from(yo.current).reduce((ir,Dr)=>{let[tr,no]=Dr;return so.has(tr)?ir:ir.concat(no)},[]);Eo=[].concat((0,q.Z)(Eo),(0,q.Z)(hr))}return(0,gr.I8)(Eo,{externalGetKey:lo,childrenPropName:Qr})},[go,lo,sr,Qr,ie]),eo=(0,t.useMemo)(()=>Ga(Qr,Er),[Qr,Er]),Jo=(0,t.useMemo)(()=>{const Eo=new Map;return eo.forEach((so,hr)=>{const ir=lo(so,hr),Dr=(Me?Me(so):null)||{};Eo.set(ir,Dr)}),Eo},[eo,lo,Me]),bo=(0,t.useCallback)(Eo=>{var so;return!!(!((so=Jo.get(lo(Eo)))===null||so===void 0)&&so.disabled)},[Jo,lo]),[ta,po]=(0,t.useMemo)(()=>{if(sr)return[cr||[],[]];const{checkedKeys:Eo,halfCheckedKeys:so}=(0,ar.S)(cr,!0,Fo,bo);return[Eo||[],so]},[cr,sr,Fo,bo]),Ya=(0,t.useMemo)(()=>{const Eo=In==="radio"?ta.slice(0,1):ta;return new Set(Eo)},[ta,In]),ki=(0,t.useMemo)(()=>In==="radio"?new Set:new Set(po),[po,In]),[Ma,hi]=(0,t.useState)(null);t.useEffect(()=>{E||Kr(za)},[!!E]);const Mo=(0,t.useCallback)((Eo,so)=>{let hr,ir;ga(Eo),ie?(hr=Eo,ir=Eo.map(Dr=>yo.current.get(Dr))):(hr=[],ir=[],Eo.forEach(Dr=>{const tr=xr(Dr);tr!==void 0&&(hr.push(Dr),ir.push(tr))})),Kr(hr),bt==null||bt(hr,ir,{type:so})},[Kr,xr,bt,ie]),aa=(0,t.useCallback)((Eo,so,hr,ir)=>{if(Rt){const Dr=hr.map(tr=>xr(tr));Rt(xr(Eo),so,Dr,ir)}Mo(hr,"single")},[Rt,xr,Mo]),Oi=(0,t.useMemo)(()=>!vn||jn?null:(vn===!0?[Ho,wo,ca]:vn).map(so=>so===Ho?{key:"all",text:vo.selectionAll,onSelect(){Mo(go.map((hr,ir)=>lo(hr,ir)).filter(hr=>{const ir=Jo.get(hr);return!(ir!=null&&ir.disabled)||Ya.has(hr)}),"all")}}:so===wo?{key:"invert",text:vo.selectInvert,onSelect(){const hr=new Set(Ya);Er.forEach((Dr,tr)=>{const no=lo(Dr,tr),Xo=Jo.get(no);Xo!=null&&Xo.disabled||(hr.has(no)?hr.delete(no):hr.add(no))});const ir=Array.from(hr);Kt&&Kt(ir),Mo(ir,"invert")}}:so===ca?{key:"none",text:vo.selectNone,onSelect(){gn==null||gn(),Mo(Array.from(Ya).filter(hr=>{const ir=Jo.get(hr);return ir==null?void 0:ir.disabled}),"none")}}:so).map(so=>Object.assign(Object.assign({},so),{onSelect:function(){for(var hr,ir,Dr=arguments.length,tr=new Array(Dr),no=0;no{var so;if(!E)return Eo.filter(ko=>ko!==Yr);let hr=(0,q.Z)(Eo);const ir=new Set(Ya),Dr=eo.map(lo).filter(ko=>!Jo.get(ko).disabled),tr=Dr.every(ko=>ir.has(ko)),no=Dr.some(ko=>ir.has(ko)),Xo=()=>{const ko=[];tr?Dr.forEach(Ea=>{ir.delete(Ea),ko.push(Ea)}):Dr.forEach(Ea=>{ir.has(Ea)||(ir.add(Ea),ko.push(Ea))});const ha=Array.from(ir);Pt==null||Pt(!tr,ha.map(Ea=>xr(Ea)),ko.map(Ea=>xr(Ea))),Mo(ha,"all"),hi(null)};let ba;if(In!=="radio"){let ko;if(Oi){const Na={getPopupContainer:ho,items:Oi.map((ci,Zi)=>{const{key:Qi,text:dl,onSelect:_a}=ci;return{key:Qi!=null?Qi:Zi,onClick:()=>{_a==null||_a(Dr)},label:dl}})};ko=t.createElement("div",{className:`${mr}-selection-extra`},t.createElement(zo.Z,{menu:Na,getPopupContainer:ho},t.createElement("span",null,t.createElement(nr.Z,null))))}const ha=eo.map((Na,ci)=>{const Zi=lo(Na,ci),Qi=Jo.get(Zi)||{};return Object.assign({checked:ir.has(Zi)},Qi)}).filter(Na=>{let{disabled:ci}=Na;return ci}),Ea=!!ha.length&&ha.length===eo.length,ai=Ea&&ha.every(Na=>{let{checked:ci}=Na;return ci}),Wo=Ea&&ha.some(Na=>{let{checked:ci}=Na;return ci});ba=!jn&&t.createElement("div",{className:`${mr}-selection`},t.createElement(Oo.Z,{checked:Ea?ai:!!eo.length&&tr,indeterminate:Ea?!ai&&Wo:!tr&&no,onChange:Xo,disabled:eo.length===0||Ea,"aria-label":ko?"Custom selection":"Select all",skipGroup:!0}),ko)}let pi;In==="radio"?pi=(ko,ha,Ea)=>{const ai=lo(ha,Ea),Wo=ir.has(ai);return{node:t.createElement(pe.ZP,Object.assign({},Jo.get(ai),{checked:Wo,onClick:Na=>Na.stopPropagation(),onChange:Na=>{ir.has(ai)||aa(ai,!0,[ai],Na.nativeEvent)}})),checked:Wo}}:pi=(ko,ha,Ea)=>{var ai;const Wo=lo(ha,Ea),Na=ir.has(Wo),ci=ki.has(Wo),Zi=Jo.get(Wo);let Qi;return Io==="nest"?Qi=ci:Qi=(ai=Zi==null?void 0:Zi.indeterminate)!==null&&ai!==void 0?ai:ci,{node:t.createElement(Oo.Z,Object.assign({},Zi,{indeterminate:Qi,checked:Na,skipGroup:!0,onClick:dl=>dl.stopPropagation(),onChange:dl=>{let{nativeEvent:_a}=dl;const{shiftKey:Ui}=_a;let Bi=-1,ul=-1;if(Ui&&sr){const Ci=new Set([Ma,Wo]);Dr.some((ii,fl)=>{if(Ci.has(ii))if(Bi===-1)Bi=fl;else return ul=fl,!0;return!1})}if(ul!==-1&&Bi!==ul&&sr){const Ci=Dr.slice(Bi,ul+1),ii=[];Na?Ci.forEach(Ri=>{ir.has(Ri)&&(ii.push(Ri),ir.delete(Ri))}):Ci.forEach(Ri=>{ir.has(Ri)||(ii.push(Ri),ir.add(Ri))});const fl=Array.from(ir);Yt==null||Yt(!Na,fl.map(Ri=>xr(Ri)),ii.map(Ri=>xr(Ri))),Mo(fl,"multiple")}else{const Ci=ta;if(sr){const ii=Na?(0,dr._5)(Ci,Wo):(0,dr.L0)(Ci,Wo);aa(Wo,!Na,ii,_a)}else{const ii=(0,ar.S)([].concat((0,q.Z)(Ci),[Wo]),!0,Fo,bo),{checkedKeys:fl,halfCheckedKeys:Ri}=ii;let zi=fl;if(Na){const No=new Set(fl);No.delete(Wo),zi=(0,ar.S)(Array.from(No),{checked:!1,halfCheckedKeys:Ri},Fo,bo).checkedKeys}aa(Wo,!Na,zi,_a)}}hi(Na?null:Wo)}})),checked:Na}};const ti=(ko,ha,Ea)=>{const{node:ai,checked:Wo}=pi(ko,ha,Ea);return $n?$n(Wo,ha,Ea,ai):ai};if(!hr.includes(Yr))if(hr.findIndex(ko=>{var ha;return((ha=ko[Lt])===null||ha===void 0?void 0:ha.columnType)==="EXPAND_COLUMN"})===0){const[ko,...ha]=hr;hr=[ko,Yr].concat((0,q.Z)(ha))}else hr=[Yr].concat((0,q.Z)(hr));const Fl=hr.indexOf(Yr);hr=hr.filter((ko,ha)=>ko!==Yr||ha===Fl);const wa=hr[Fl-1],wl=hr[Fl+1];let yi=on;yi===void 0&&((wl==null?void 0:wl.fixed)!==void 0?yi=wl.fixed:(wa==null?void 0:wa.fixed)!==void 0&&(yi=wa.fixed)),yi&&wa&&((so=wa[Lt])===null||so===void 0?void 0:so.columnType)==="EXPAND_COLUMN"&&wa.fixed===void 0&&(wa.fixed=yi);const oi=He()(`${mr}-selection-col`,{[`${mr}-selection-col-with-dropdown`]:vn&&In==="checkbox"}),Il={fixed:yi,width:Rn,className:`${mr}-selection-column`,title:E.columnTitle||ba,render:ti,onCell:E.onCell,[Lt]:{className:oi}};return hr.map(ko=>ko===Yr?Il:ko)},[lo,eo,E,ta,Ya,ki,Rn,Oi,Io,Ma,Jo,Yt,aa,bo]),Ya]},ka={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"}}]},name:"caret-down",theme:"outlined"},wi=ka,Mi=function(E,ie){return t.createElement(Vr.Z,(0,se.Z)({},E,{ref:ie,icon:wi}))},mi=t.forwardRef(Mi),Ni={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z"}}]},name:"caret-up",theme:"outlined"},pl=Ni,Ei=function(E,ie){return t.createElement(Vr.Z,(0,se.Z)({},E,{ref:ie,icon:pl}))},Ml=t.forwardRef(Ei),nl=e(74820);const yl="ascend",Va="descend";function Pi(C){return typeof C.sorter=="object"&&typeof C.sorter.multiple=="number"?C.sorter.multiple:!1}function gi(C){return typeof C=="function"?C:C&&typeof C=="object"&&C.compare?C.compare:!1}function Ki(C,E){return E?C[C.indexOf(E)+1]:C[0]}function Ti(C,E,ie){let le=[];function je(Me,bt){le.push({column:Me,key:wr(Me,bt),multiplePriority:Pi(Me),sortOrder:Me.sortOrder})}return(C||[]).forEach((Me,bt)=>{const Rt=or(bt,ie);Me.children?("sortOrder"in Me&&je(Me,Rt),le=[].concat((0,q.Z)(le),(0,q.Z)(Ti(Me.children,E,Rt)))):Me.sorter&&("sortOrder"in Me?je(Me,Rt):E&&Me.defaultSortOrder&&le.push({column:Me,key:wr(Me,Rt),multiplePriority:Pi(Me),sortOrder:Me.defaultSortOrder}))}),le}function Di(C,E,ie,le,je,Me,bt,Rt){return(E||[]).map((Pt,Kt)=>{const gn=or(Kt,Rt);let Yt=Pt;if(Yt.sorter){const Rn=Yt.sortDirections||je,In=Yt.showSorterTooltip===void 0?bt:Yt.showSorterTooltip,vn=wr(Yt,gn),on=ie.find(Io=>{let{key:Qr}=Io;return Qr===vn}),$n=on?on.sortOrder:null,jn=Ki(Rn,$n);let sr;if(Pt.sortIcon)sr=Pt.sortIcon({sortOrder:$n});else{const Io=Rn.includes(yl)&&t.createElement(Ml,{className:He()(`${C}-column-sorter-up`,{active:$n===yl})}),Qr=Rn.includes(Va)&&t.createElement(mi,{className:He()(`${C}-column-sorter-down`,{active:$n===Va})});sr=t.createElement("span",{className:He()(`${C}-column-sorter`,{[`${C}-column-sorter-full`]:!!(Io&&Qr)})},t.createElement("span",{className:`${C}-column-sorter-inner`,"aria-hidden":"true"},Io,Qr))}const{cancelSort:mr,triggerAsc:go,triggerDesc:Er}=Me||{};let xr=mr;jn===Va?xr=Er:jn===yl&&(xr=go);const lo=typeof In=="object"?In:{title:xr};Yt=Object.assign(Object.assign({},Yt),{className:He()(Yt.className,{[`${C}-column-sort`]:$n}),title:Io=>{const Qr=t.createElement("div",{className:`${C}-column-sorters`},t.createElement("span",{className:`${C}-column-title`},Or(Pt.title,Io)),sr);return In?t.createElement(nl.Z,Object.assign({},lo),Qr):Qr},onHeaderCell:Io=>{const Qr=Pt.onHeaderCell&&Pt.onHeaderCell(Io)||{},vo=Qr.onClick,ho=Qr.onKeyDown;Qr.onClick=yo=>{le({column:Pt,key:vn,sortOrder:jn,multiplePriority:Pi(Pt)}),vo==null||vo(yo)},Qr.onKeyDown=yo=>{yo.keyCode===Tr.Z.ENTER&&(le({column:Pt,key:vn,sortOrder:jn,multiplePriority:Pi(Pt)}),ho==null||ho(yo))};const cr=fo(Pt.title,{}),Kr=cr==null?void 0:cr.toString();return $n?Qr["aria-sort"]=$n==="ascend"?"ascending":"descending":Qr["aria-label"]=Kr||"",Qr.className=He()(Qr.className,`${C}-column-has-sorters`),Qr.tabIndex=0,Pt.ellipsis&&(Qr.title=(cr!=null?cr:"").toString()),Qr}})}return"children"in Yt&&(Yt=Object.assign(Object.assign({},Yt),{children:Di(C,Yt.children,ie,le,je,Me,bt,gn)})),Yt})}function ei(C){const{column:E,sortOrder:ie}=C;return{column:E,order:ie,field:E.dataIndex,columnKey:E.key}}function Zo(C){const E=C.filter(ie=>{let{sortOrder:le}=ie;return le}).map(ei);return E.length===0&&C.length?Object.assign(Object.assign({},ei(C[C.length-1])),{column:void 0}):E.length<=1?E[0]||{}:E}function Qa(C,E,ie){const le=E.slice().sort((bt,Rt)=>Rt.multiplePriority-bt.multiplePriority),je=C.slice(),Me=le.filter(bt=>{let{column:{sorter:Rt},sortOrder:Pt}=bt;return gi(Rt)&&Pt});return Me.length?je.sort((bt,Rt)=>{for(let Pt=0;Pt{const Rt=bt[ie];return Rt?Object.assign(Object.assign({},bt),{[ie]:Qa(Rt,E,ie)}):bt}):je}function Ra(C){let{prefixCls:E,mergedColumns:ie,onSorterChange:le,sortDirections:je,tableLocale:Me,showSorterTooltip:bt}=C;const[Rt,Pt]=t.useState(Ti(ie,!0)),Kt=t.useMemo(()=>{let vn=!0;const on=Ti(ie,!1);if(!on.length)return Rt;const $n=[];function jn(mr){vn?$n.push(mr):$n.push(Object.assign(Object.assign({},mr),{sortOrder:null}))}let sr=null;return on.forEach(mr=>{sr===null?(jn(mr),mr.sortOrder&&(mr.multiplePriority===!1?vn=!1:sr=!0)):(sr&&mr.multiplePriority!==!1||(vn=!1),jn(mr))}),$n},[ie,Rt]),gn=t.useMemo(()=>{const vn=Kt.map(on=>{let{column:$n,sortOrder:jn}=on;return{column:$n,order:jn}});return{sortColumns:vn,sortColumn:vn[0]&&vn[0].column,sortOrder:vn[0]&&vn[0].order}},[Kt]);function Yt(vn){let on;vn.multiplePriority===!1||!Kt.length||Kt[0].multiplePriority===!1?on=[vn]:on=[].concat((0,q.Z)(Kt.filter($n=>{let{key:jn}=$n;return jn!==vn.key})),[vn]),Pt(on),le(Zo(on),on)}return[vn=>Di(E,vn,Kt,Yt,je,Me,bt),Kt,gn,()=>Zo(Kt)]}function $i(C,E){return C.map(ie=>{const le=Object.assign({},ie);return le.title=Or(ie.title,E),"children"in le&&(le.children=$i(le.children,E)),le})}function Fi(C){return[t.useCallback(ie=>$i(ie,C),[C])]}var Ia=e(66671),rl=e(78330),jl=e(52628),Vi=e(22151),Hl=C=>{const{componentCls:E}=C,ie=`${C.lineWidth}px ${C.lineType} ${C.tableBorderColor}`,le=(je,Me,bt)=>({[`&${E}-${je}`]:{[`> ${E}-container`]:{[`> ${E}-content, > ${E}-body`]:{[` + > table > tbody > tr > th, + > table > tbody > tr > td + `]:{[`> ${E}-expanded-row-fixed`]:{margin:`-${Me}px -${bt+C.lineWidth}px`}}}}}});return{[`${E}-wrapper`]:{[`${E}${E}-bordered`]:Object.assign(Object.assign(Object.assign({[`> ${E}-title`]:{border:ie,borderBottom:0},[`> ${E}-container`]:{borderInlineStart:ie,borderTop:ie,[` + > ${E}-content, + > ${E}-header, + > ${E}-body, + > ${E}-summary + `]:{"> table":{[` + > thead > tr > th, + > thead > tr > td, + > tbody > tr > th, + > tbody > tr > td, + > tfoot > tr > th, + > tfoot > tr > td + `]:{borderInlineEnd:ie},"> thead":{"> tr:not(:last-child) > th":{borderBottom:ie},"> tr > th::before":{backgroundColor:"transparent !important"}},[` + > thead > tr, + > tbody > tr, + > tfoot > tr + `]:{[`> ${E}-cell-fix-right-first::after`]:{borderInlineEnd:ie}},[` + > tbody > tr > th, + > tbody > tr > td + `]:{[`> ${E}-expanded-row-fixed`]:{margin:`-${C.tablePaddingVertical}px -${C.tablePaddingHorizontal+C.lineWidth}px`,"&::after":{position:"absolute",top:0,insetInlineEnd:C.lineWidth,bottom:0,borderInlineEnd:ie,content:'""'}}}}}},[`&${E}-scroll-horizontal`]:{[`> ${E}-container > ${E}-body`]:{"> table > tbody":{[` + > tr${E}-expanded-row, + > tr${E}-placeholder + `]:{["> th, > td"]:{borderInlineEnd:0}}}}}},le("middle",C.tablePaddingVerticalMiddle,C.tablePaddingHorizontalMiddle)),le("small",C.tablePaddingVerticalSmall,C.tablePaddingHorizontalSmall)),{[`> ${E}-footer`]:{border:ie,borderTop:0}}),[`${E}-cell`]:{[`${E}-container:first-child`]:{borderTop:0},"&-scrollbar:not([rowspan])":{boxShadow:`0 ${C.lineWidth}px 0 ${C.lineWidth}px ${C.tableHeaderBg}`}},[`${E}-bordered ${E}-cell-scrollbar`]:{borderInlineEnd:ie}}}},Vl=C=>{const{componentCls:E}=C;return{[`${E}-wrapper`]:{[`${E}-cell-ellipsis`]:Object.assign(Object.assign({},rl.vS),{wordBreak:"keep-all",[` + &${E}-cell-fix-left-last, + &${E}-cell-fix-right-first + `]:{overflow:"visible",[`${E}-cell-content`]:{display:"block",overflow:"hidden",textOverflow:"ellipsis"}},[`${E}-column-title`]:{overflow:"hidden",textOverflow:"ellipsis",wordBreak:"keep-all"}})}}},sl=C=>{const{componentCls:E}=C;return{[`${E}-wrapper`]:{[`${E}-tbody > tr${E}-placeholder`]:{textAlign:"center",color:C.colorTextDisabled,[` + &:hover > th, + &:hover > td, + `]:{background:C.colorBgContainer}}}}},ol=e(2465),Ol=C=>{const{componentCls:E,antCls:ie,controlInteractiveSize:le,motionDurationSlow:je,lineWidth:Me,paddingXS:bt,lineType:Rt,tableBorderColor:Pt,tableExpandIconBg:Kt,tableExpandColumnWidth:gn,borderRadius:Yt,fontSize:Rn,fontSizeSM:In,lineHeight:vn,tablePaddingVertical:on,tablePaddingHorizontal:$n,tableExpandedRowBg:jn,paddingXXS:sr}=C,mr=le/2-Me,go=mr*2+Me*3,Er=`${Me}px ${Rt} ${Pt}`,xr=sr-Me;return{[`${E}-wrapper`]:{[`${E}-expand-icon-col`]:{width:gn},[`${E}-row-expand-icon-cell`]:{textAlign:"center",[`${E}-row-expand-icon`]:{display:"inline-flex",float:"none",verticalAlign:"sub"}},[`${E}-row-indent`]:{height:1,float:"left"},[`${E}-row-expand-icon`]:Object.assign(Object.assign({},(0,ol.N)(C)),{position:"relative",float:"left",boxSizing:"border-box",width:go,height:go,padding:0,color:"inherit",lineHeight:`${go}px`,background:Kt,border:Er,borderRadius:Yt,transform:`scale(${le/go})`,transition:`all ${je}`,userSelect:"none",["&:focus, &:hover, &:active"]:{borderColor:"currentcolor"},["&::before, &::after"]:{position:"absolute",background:"currentcolor",transition:`transform ${je} ease-out`,content:'""'},"&::before":{top:mr,insetInlineEnd:xr,insetInlineStart:xr,height:Me},"&::after":{top:xr,bottom:xr,insetInlineStart:mr,width:Me,transform:"rotate(90deg)"},"&-collapsed::before":{transform:"rotate(-180deg)"},"&-collapsed::after":{transform:"rotate(0deg)"},"&-spaced":{"&::before, &::after":{display:"none",content:"none"},background:"transparent",border:0,visibility:"hidden"}}),[`${E}-row-indent + ${E}-row-expand-icon`]:{marginTop:(Rn*vn-Me*3)/2-Math.ceil((In*1.4-Me*3)/2),marginInlineEnd:bt},[`tr${E}-expanded-row`]:{"&, &:hover":{["> th, > td"]:{background:jn}},[`${ie}-descriptions-view`]:{display:"flex",table:{flex:"auto",width:"auto"}}},[`${E}-expanded-row-fixed`]:{position:"relative",margin:`-${on}px -${$n}px`,padding:`${on}px ${$n}px`}}}},Wa=C=>{const{componentCls:E,antCls:ie,iconCls:le,tableFilterDropdownWidth:je,tableFilterDropdownSearchWidth:Me,paddingXXS:bt,paddingXS:Rt,colorText:Pt,lineWidth:Kt,lineType:gn,tableBorderColor:Yt,tableHeaderIconColor:Rn,fontSizeSM:In,tablePaddingHorizontal:vn,borderRadius:on,motionDurationSlow:$n,colorTextDescription:jn,colorPrimary:sr,tableHeaderFilterActiveBg:mr,colorTextDisabled:go,tableFilterDropdownBg:Er,tableFilterDropdownHeight:xr,controlItemBgHover:lo,controlItemBgActive:Io,boxShadowSecondary:Qr}=C,vo=`${ie}-dropdown`,ho=`${E}-filter-dropdown`,cr=`${ie}-tree`,Kr=`${Kt}px ${gn} ${Yt}`;return[{[`${E}-wrapper`]:{[`${E}-filter-column`]:{display:"flex",justifyContent:"space-between"},[`${E}-filter-trigger`]:{position:"relative",display:"flex",alignItems:"center",marginBlock:-bt,marginInline:`${bt}px ${-vn/2}px`,padding:`0 ${bt}px`,color:Rn,fontSize:In,borderRadius:on,cursor:"pointer",transition:`all ${$n}`,"&:hover":{color:jn,background:mr},"&.active":{color:sr}}}},{[`${ie}-dropdown`]:{[ho]:Object.assign(Object.assign({},(0,rl.Wf)(C)),{minWidth:je,backgroundColor:Er,borderRadius:on,boxShadow:Qr,overflow:"hidden",[`${vo}-menu`]:{maxHeight:xr,overflowX:"hidden",border:0,boxShadow:"none",borderRadius:"unset","&:empty::after":{display:"block",padding:`${Rt}px 0`,color:go,fontSize:In,textAlign:"center",content:'"Not Found"'}},[`${ho}-tree`]:{paddingBlock:`${Rt}px 0`,paddingInline:Rt,[cr]:{padding:0},[`${cr}-treenode ${cr}-node-content-wrapper:hover`]:{backgroundColor:lo},[`${cr}-treenode-checkbox-checked ${cr}-node-content-wrapper`]:{"&, &:hover":{backgroundColor:Io}}},[`${ho}-search`]:{padding:Rt,borderBottom:Kr,"&-input":{input:{minWidth:Me},[le]:{color:go}}},[`${ho}-checkall`]:{width:"100%",marginBottom:bt,marginInlineStart:bt},[`${ho}-btns`]:{display:"flex",justifyContent:"space-between",padding:`${Rt-Kt}px ${Rt}px`,overflow:"hidden",borderTop:Kr}})}},{[`${ie}-dropdown ${ho}, ${ho}-submenu`]:{[`${ie}-checkbox-wrapper + span`]:{paddingInlineStart:Rt,color:Pt},["> ul"]:{maxHeight:"calc(100vh - 130px)",overflowX:"hidden",overflowY:"auto"}}}]},Zl=C=>{const{componentCls:E,lineWidth:ie,colorSplit:le,motionDurationSlow:je,zIndexTableFixed:Me,tableBg:bt,zIndexTableSticky:Rt}=C,Pt=le;return{[`${E}-wrapper`]:{[` + ${E}-cell-fix-left, + ${E}-cell-fix-right + `]:{position:"sticky !important",zIndex:Me,background:bt},[` + ${E}-cell-fix-left-first::after, + ${E}-cell-fix-left-last::after + `]:{position:"absolute",top:0,right:{_skip_check_:!0,value:0},bottom:-ie,width:30,transform:"translateX(100%)",transition:`box-shadow ${je}`,content:'""',pointerEvents:"none"},[`${E}-cell-fix-left-all::after`]:{display:"none"},[` + ${E}-cell-fix-right-first::after, + ${E}-cell-fix-right-last::after + `]:{position:"absolute",top:0,bottom:-ie,left:{_skip_check_:!0,value:0},width:30,transform:"translateX(-100%)",transition:`box-shadow ${je}`,content:'""',pointerEvents:"none"},[`${E}-container`]:{"&::before, &::after":{position:"absolute",top:0,bottom:0,zIndex:Rt+1,width:30,transition:`box-shadow ${je}`,content:'""',pointerEvents:"none"},"&::before":{insetInlineStart:0},"&::after":{insetInlineEnd:0}},[`${E}-ping-left`]:{[`&:not(${E}-has-fix-left) ${E}-container`]:{position:"relative","&::before":{boxShadow:`inset 10px 0 8px -8px ${Pt}`}},[` + ${E}-cell-fix-left-first::after, + ${E}-cell-fix-left-last::after + `]:{boxShadow:`inset 10px 0 8px -8px ${Pt}`},[`${E}-cell-fix-left-last::before`]:{backgroundColor:"transparent !important"}},[`${E}-ping-right`]:{[`&:not(${E}-has-fix-right) ${E}-container`]:{position:"relative","&::after":{boxShadow:`inset -10px 0 8px -8px ${Pt}`}},[` + ${E}-cell-fix-right-first::after, + ${E}-cell-fix-right-last::after + `]:{boxShadow:`inset -10px 0 8px -8px ${Pt}`}}}}},Xi=C=>{const{componentCls:E,antCls:ie}=C;return{[`${E}-wrapper`]:{[`${E}-pagination${ie}-pagination`]:{margin:`${C.margin}px 0`},[`${E}-pagination`]:{display:"flex",flexWrap:"wrap",rowGap:C.paddingXS,"> *":{flex:"none"},"&-left":{justifyContent:"flex-start"},"&-center":{justifyContent:"center"},"&-right":{justifyContent:"flex-end"}}}}},Hi=C=>{const{componentCls:E,tableRadius:ie}=C;return{[`${E}-wrapper`]:{[E]:{[`${E}-title, ${E}-header`]:{borderRadius:`${ie}px ${ie}px 0 0`},[`${E}-title + ${E}-container`]:{borderStartStartRadius:0,borderStartEndRadius:0,[`${E}-header, table`]:{borderRadius:0},"table > thead > tr:first-child":{"th:first-child, th:last-child, td:first-child, td:last-child":{borderRadius:0}}},"&-container":{borderStartStartRadius:ie,borderStartEndRadius:ie,"table > thead > tr:first-child":{"> *:first-child":{borderStartStartRadius:ie},"> *:last-child":{borderStartEndRadius:ie}}},"&-footer":{borderRadius:`0 0 ${ie}px ${ie}px`}}}}},Yi=C=>{const{componentCls:E}=C;return{[`${E}-wrapper-rtl`]:{direction:"rtl",table:{direction:"rtl"},[`${E}-pagination-left`]:{justifyContent:"flex-end"},[`${E}-pagination-right`]:{justifyContent:"flex-start"},[`${E}-row-expand-icon`]:{float:"right","&::after":{transform:"rotate(-90deg)"},"&-collapsed::before":{transform:"rotate(180deg)"},"&-collapsed::after":{transform:"rotate(0deg)"}},[`${E}-container`]:{"&::before":{insetInlineStart:"unset",insetInlineEnd:0},"&::after":{insetInlineStart:0,insetInlineEnd:"unset"},[`${E}-row-indent`]:{float:"right"}}}}},Ja=C=>{const{componentCls:E,antCls:ie,iconCls:le,fontSizeIcon:je,padding:Me,paddingXS:bt,tableHeaderIconColor:Rt,tableHeaderIconColorHover:Pt,tableSelectionColumnWidth:Kt}=C;return{[`${E}-wrapper`]:{[`${E}-selection-col`]:{width:Kt,[`&${E}-selection-col-with-dropdown`]:{width:Kt+je+Me/4}},[`${E}-bordered ${E}-selection-col`]:{width:Kt+bt*2,[`&${E}-selection-col-with-dropdown`]:{width:Kt+je+Me/4+bt*2}},[` + table tr th${E}-selection-column, + table tr td${E}-selection-column + `]:{paddingInlineEnd:C.paddingXS,paddingInlineStart:C.paddingXS,textAlign:"center",[`${ie}-radio-wrapper`]:{marginInlineEnd:0}},[`table tr th${E}-selection-column${E}-cell-fix-left`]:{zIndex:C.zIndexTableFixed+1},[`table tr th${E}-selection-column::after`]:{backgroundColor:"transparent !important"},[`${E}-selection`]:{position:"relative",display:"inline-flex",flexDirection:"column"},[`${E}-selection-extra`]:{position:"absolute",top:0,zIndex:1,cursor:"pointer",transition:`all ${C.motionDurationSlow}`,marginInlineStart:"100%",paddingInlineStart:`${C.tablePaddingHorizontal/4}px`,[le]:{color:Rt,fontSize:je,verticalAlign:"baseline","&:hover":{color:Pt}}}}}},Rl=C=>{const{componentCls:E}=C,ie=(le,je,Me,bt)=>({[`${E}${E}-${le}`]:{fontSize:bt,[` + ${E}-title, + ${E}-footer, + ${E}-thead > tr > th, + ${E}-tbody > tr > th, + ${E}-tbody > tr > td, + tfoot > tr > th, + tfoot > tr > td + `]:{padding:`${je}px ${Me}px`},[`${E}-filter-trigger`]:{marginInlineEnd:`-${Me/2}px`},[`${E}-expanded-row-fixed`]:{margin:`-${je}px -${Me}px`},[`${E}-tbody`]:{[`${E}-wrapper:only-child ${E}`]:{marginBlock:`-${je}px`,marginInline:`${C.tableExpandColumnWidth-Me}px -${Me}px`}},[`${E}-selection-column`]:{paddingInlineStart:`${Me/4}px`}}});return{[`${E}-wrapper`]:Object.assign(Object.assign({},ie("middle",C.tablePaddingVerticalMiddle,C.tablePaddingHorizontalMiddle,C.tableFontSizeMiddle)),ie("small",C.tablePaddingVerticalSmall,C.tablePaddingHorizontalSmall,C.tableFontSizeSmall))}},Tl=C=>{const{componentCls:E,marginXXS:ie,fontSizeIcon:le,tableHeaderIconColor:je,tableHeaderIconColorHover:Me}=C;return{[`${E}-wrapper`]:{[`${E}-thead th${E}-column-has-sorters`]:{outline:"none",cursor:"pointer",transition:`all ${C.motionDurationSlow}`,"&:hover":{background:C.tableHeaderSortHoverBg,"&::before":{backgroundColor:"transparent !important"}},"&:focus-visible":{color:C.colorPrimary},[` + &${E}-cell-fix-left:hover, + &${E}-cell-fix-right:hover + `]:{background:C.tableFixedHeaderSortActiveBg}},[`${E}-thead th${E}-column-sort`]:{background:C.tableHeaderSortBg,"&::before":{backgroundColor:"transparent !important"}},[`td${E}-column-sort`]:{background:C.tableBodySortBg},[`${E}-column-title`]:{position:"relative",zIndex:1,flex:1},[`${E}-column-sorters`]:{display:"flex",flex:"auto",alignItems:"center",justifyContent:"space-between","&::after":{position:"absolute",inset:0,width:"100%",height:"100%",content:'""'}},[`${E}-column-sorter`]:{marginInlineStart:ie,color:je,fontSize:0,transition:`color ${C.motionDurationSlow}`,"&-inner":{display:"inline-flex",flexDirection:"column",alignItems:"center"},"&-up, &-down":{fontSize:le,"&.active":{color:C.colorPrimary}},[`${E}-column-sorter-up + ${E}-column-sorter-down`]:{marginTop:"-0.3em"}},[`${E}-column-sorters:hover ${E}-column-sorter`]:{color:Me}}}},Uo=C=>{const{componentCls:E,opacityLoading:ie,tableScrollThumbBg:le,tableScrollThumbBgHover:je,tableScrollThumbSize:Me,tableScrollBg:bt,zIndexTableSticky:Rt}=C,Pt=`${C.lineWidth}px ${C.lineType} ${C.tableBorderColor}`;return{[`${E}-wrapper`]:{[`${E}-sticky`]:{"&-holder":{position:"sticky",zIndex:Rt,background:C.colorBgContainer},"&-scroll":{position:"sticky",bottom:0,height:`${Me}px !important`,zIndex:Rt,display:"flex",alignItems:"center",background:bt,borderTop:Pt,opacity:ie,"&:hover":{transformOrigin:"center bottom"},"&-bar":{height:Me,backgroundColor:le,borderRadius:100,transition:`all ${C.motionDurationSlow}, transform none`,position:"absolute",bottom:0,"&:hover, &-active":{backgroundColor:je}}}}}}},Sl=C=>{const{componentCls:E,lineWidth:ie,tableBorderColor:le}=C,je=`${ie}px ${C.lineType} ${le}`;return{[`${E}-wrapper`]:{[`${E}-summary`]:{position:"relative",zIndex:C.zIndexTableFixed,background:C.tableBg,"> tr":{"> th, > td":{borderBottom:je}}},[`div${E}-summary`]:{boxShadow:`0 -${ie}px 0 ${le}`}}}};const Bl=C=>{const{componentCls:E,fontWeightStrong:ie,tablePaddingVertical:le,tablePaddingHorizontal:je,lineWidth:Me,lineType:bt,tableBorderColor:Rt,tableFontSize:Pt,tableBg:Kt,tableRadius:gn,tableHeaderTextColor:Yt,motionDurationMid:Rn,tableHeaderBg:In,tableHeaderCellSplitColor:vn,tableRowHoverBg:on,tableSelectedRowBg:$n,tableSelectedRowHoverBg:jn,tableFooterTextColor:sr,tableFooterBg:mr,paddingContentVerticalLG:go}=C,Er=`${Me}px ${bt} ${Rt}`;return{[`${E}-wrapper`]:Object.assign(Object.assign({clear:"both",maxWidth:"100%"},(0,rl.dF)()),{[E]:Object.assign(Object.assign({},(0,rl.Wf)(C)),{fontSize:Pt,background:Kt,borderRadius:`${gn}px ${gn}px 0 0`}),table:{width:"100%",textAlign:"start",borderRadius:`${gn}px ${gn}px 0 0`,borderCollapse:"separate",borderSpacing:0},[` + ${E}-thead > tr > th, + ${E}-tbody > tr > th, + ${E}-tbody > tr > td, + tfoot > tr > th, + tfoot > tr > td + `]:{position:"relative",padding:`${go}px ${je}px`,overflowWrap:"break-word"},[`${E}-title`]:{padding:`${le}px ${je}px`},[`${E}-thead`]:{[` + > tr > th, + > tr > td + `]:{position:"relative",color:Yt,fontWeight:ie,textAlign:"start",background:In,borderBottom:Er,transition:`background ${Rn} ease`,"&[colspan]:not([colspan='1'])":{textAlign:"center"},[`&:not(:last-child):not(${E}-selection-column):not(${E}-row-expand-icon-cell):not([colspan])::before`]:{position:"absolute",top:"50%",insetInlineEnd:0,width:1,height:"1.6em",backgroundColor:vn,transform:"translateY(-50%)",transition:`background-color ${Rn}`,content:'""'}},"> tr:not(:last-child) > th[colspan]":{borderBottom:0}},[`${E}-tbody`]:{"> tr":{["> th, > td"]:{transition:`background ${Rn}, border-color ${Rn}`,borderBottom:Er,[` + > ${E}-wrapper:only-child, + > ${E}-expanded-row-fixed > ${E}-wrapper:only-child + `]:{[E]:{marginBlock:`-${le}px`,marginInline:`${C.tableExpandColumnWidth-je}px -${je}px`,[`${E}-tbody > tr:last-child > td`]:{borderBottom:0,"&:first-child, &:last-child":{borderRadius:0}}}}},"> th":{position:"relative",color:Yt,fontWeight:ie,textAlign:"start",background:In,borderBottom:Er,transition:`background ${Rn} ease`},[` + &${E}-row:hover > th, + &${E}-row:hover > td, + > th${E}-cell-row-hover, + > td${E}-cell-row-hover + `]:{background:on},[`&${E}-row-selected`]:{["> th, > td"]:{background:$n},["&:hover > th, &:hover > td"]:{background:jn}}}},[`${E}-footer`]:{padding:`${le}px ${je}px`,color:sr,background:mr}})}};var Dl=(0,jl.Z)("Table",C=>{const{controlItemBgActive:E,controlItemBgActiveHover:ie,colorTextPlaceholder:le,colorTextHeading:je,colorSplit:Me,colorBorderSecondary:bt,fontSize:Rt,padding:Pt,paddingXS:Kt,paddingSM:gn,controlHeight:Yt,colorFillAlter:Rn,colorIcon:In,colorIconHover:vn,opacityLoading:on,colorBgContainer:$n,borderRadiusLG:jn,colorFillContent:sr,colorFillSecondary:mr,controlInteractiveSize:go}=C,Er=new Ia.C(In),xr=new Ia.C(vn),lo=E,Io=2,Qr=new Ia.C(mr).onBackground($n).toHexShortString(),vo=new Ia.C(sr).onBackground($n).toHexShortString(),ho=new Ia.C(Rn).onBackground($n).toHexShortString(),cr=(0,Vi.TS)(C,{tableFontSize:Rt,tableBg:$n,tableRadius:jn,tablePaddingVertical:Pt,tablePaddingHorizontal:Pt,tablePaddingVerticalMiddle:gn,tablePaddingHorizontalMiddle:Kt,tablePaddingVerticalSmall:Kt,tablePaddingHorizontalSmall:Kt,tableBorderColor:bt,tableHeaderTextColor:je,tableHeaderBg:ho,tableFooterTextColor:je,tableFooterBg:ho,tableHeaderCellSplitColor:bt,tableHeaderSortBg:Qr,tableHeaderSortHoverBg:vo,tableHeaderIconColor:Er.clone().setAlpha(Er.getAlpha()*on).toRgbString(),tableHeaderIconColorHover:xr.clone().setAlpha(xr.getAlpha()*on).toRgbString(),tableBodySortBg:ho,tableFixedHeaderSortActiveBg:Qr,tableHeaderFilterActiveBg:sr,tableFilterDropdownBg:$n,tableRowHoverBg:ho,tableSelectedRowBg:lo,tableSelectedRowHoverBg:ie,zIndexTableFixed:Io,zIndexTableSticky:Io+1,tableFontSizeMiddle:Rt,tableFontSizeSmall:Rt,tableSelectionColumnWidth:Yt,tableExpandIconBg:$n,tableExpandColumnWidth:go+2*C.padding,tableExpandedRowBg:Rn,tableFilterDropdownWidth:120,tableFilterDropdownHeight:264,tableFilterDropdownSearchWidth:140,tableScrollThumbSize:8,tableScrollThumbBg:le,tableScrollThumbBgHover:je,tableScrollBg:Me});return[Bl(cr),Xi(cr),Sl(cr),Tl(cr),Wa(cr),Hl(cr),Hi(cr),Ol(cr),Sl(cr),sl(cr),Ja(cr),Zl(cr),Uo(cr),Vl(cr),Rl(cr),Yi(cr)]});const io=[],lr=(C,E)=>{const{prefixCls:ie,className:le,rootClassName:je,style:Me,size:bt,bordered:Rt,dropdownPrefixCls:Pt,dataSource:Kt,pagination:gn,rowSelection:Yt,rowKey:Rn="key",rowClassName:In,columns:vn,children:on,childrenColumnName:$n,onChange:jn,getPopupContainer:sr,loading:mr,expandIcon:go,expandable:Er,expandedRowRender:xr,expandIconColumnIndex:lo,indentSize:Io,scroll:Qr,sortDirections:vo,locale:ho,showSorterTooltip:cr=!0}=C,Kr=t.useMemo(()=>vn||Y(on),[vn,on]),yo=t.useMemo(()=>Kr.some(No=>No.responsive),[Kr]),ga=(0,co.Z)(yo),Fo=t.useMemo(()=>{const No=new Set(Object.keys(ga).filter(Ta=>ga[Ta]));return Kr.filter(Ta=>!Ta.responsive||Ta.responsive.some(Fa=>No.has(Fa)))},[Kr,ga]),eo=(0,Hr.Z)(C,["className","style","columns"]),{locale:Jo=kr.Z,direction:bo,table:ta,renderEmpty:po,getPrefixCls:Ya,getPopupContainer:ki}=t.useContext(Pr.E_),Ma=(0,Ur.Z)(bt),hi=Object.assign(Object.assign({},Jo.Table),ho),Mo=Kt||io,aa=Ya("table",ie),Oi=Ya("dropdown",Pt),da=Object.assign({childrenColumnName:$n,expandIconColumnIndex:lo},Er),{childrenColumnName:Eo="children"}=da,so=t.useMemo(()=>Mo.some(No=>No==null?void 0:No[Eo])?"nest":xr||Er&&Er.expandedRowRender?"row":null,[Mo]),hr={body:t.useRef()},ir=t.useMemo(()=>typeof Rn=="function"?Rn:No=>No==null?void 0:No[Rn],[Rn]),[Dr]=(0,sn.Z)(Mo,Eo,ir),tr={},no=function(No,Ta){let Fa=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;var Ua,li,Ji;const qi=Object.assign(Object.assign({},tr),No);Fa&&((Ua=tr.resetPagination)===null||Ua===void 0||Ua.call(tr),!((li=qi.pagination)===null||li===void 0)&&li.current&&(qi.pagination.current=1),gn&&gn.onChange&&gn.onChange(1,(Ji=qi.pagination)===null||Ji===void 0?void 0:Ji.pageSize)),Qr&&Qr.scrollToFirstRowOnChange!==!1&&hr.body.current&&(0,Hn.Z)(0,{getContainer:()=>hr.body.current}),jn==null||jn(qi.pagination,qi.filters,qi.sorter,{currentDataSource:hn(Qa(Mo,qi.sorterStates,Eo),qi.filterStates),action:Ta})},Xo=(No,Ta)=>{no({sorter:No,sorterStates:Ta},"sort",!1)},[ba,pi,ti,Fl]=Ra({prefixCls:aa,mergedColumns:Fo,onSorterChange:Xo,sortDirections:vo||["ascend","descend"],tableLocale:hi,showSorterTooltip:cr}),wa=t.useMemo(()=>Qa(Mo,pi,Eo),[Mo,pi]);tr.sorter=Fl(),tr.sorterStates=pi;const wl=(No,Ta)=>{no({filters:No,filterStates:Ta},"filter",!0)},[yi,oi,Il]=_t({prefixCls:aa,locale:hi,dropdownPrefixCls:Oi,mergedColumns:Fo,onFilterChange:wl,getPopupContainer:sr||ki}),ko=hn(wa,oi);tr.filters=Il,tr.filterStates=oi;const ha=t.useMemo(()=>{const No={};return Object.keys(Il).forEach(Ta=>{Il[Ta]!==null&&(No[Ta]=Il[Ta])}),Object.assign(Object.assign({},ti),{filters:No})},[ti,Il]),[Ea]=Fi(ha),ai=(No,Ta)=>{no({pagination:Object.assign(Object.assign({},tr.pagination),{current:No,pageSize:Ta})},"paginate")},[Wo,Na]=Jn(ko.length,ai,gn);tr.pagination=gn===!1?{}:xn(Wo,gn),tr.resetPagination=Na;const ci=t.useMemo(()=>{if(gn===!1||!Wo.pageSize)return ko;const{current:No=1,total:Ta,pageSize:Fa=tn}=Wo;return ko.lengthFa?ko.slice((No-1)*Fa,No*Fa):ko:ko.slice((No-1)*Fa,No*Fa)},[!!gn,ko,Wo&&Wo.current,Wo&&Wo.pageSize,Wo&&Wo.total]),[Zi,Qi]=oa({prefixCls:aa,data:ko,pageData:ci,getRowKey:ir,getRecordByKey:Dr,expandType:so,childrenColumnName:Eo,locale:hi,getPopupContainer:sr||ki},Yt),dl=(No,Ta,Fa)=>{let Ua;return typeof In=="function"?Ua=He()(In(No,Ta,Fa)):Ua=He()(In),He()({[`${aa}-row-selected`]:Qi.has(ir(No,Ta))},Ua)};da.__PARENT_RENDER_ICON__=da.expandIcon,da.expandIcon=da.expandIcon||go||Qn(hi),so==="nest"&&da.expandIconColumnIndex===void 0?da.expandIconColumnIndex=Yt?1:0:da.expandIconColumnIndex>0&&Yt&&(da.expandIconColumnIndex-=1),typeof da.indentSize!="number"&&(da.indentSize=typeof Io=="number"?Io:15);const _a=t.useCallback(No=>Ea(Zi(yi(ba(No)))),[ba,yi,Zi]);let Ui,Bi;if(gn!==!1&&(Wo!=null&&Wo.total)){let No;Wo.size?No=Wo.size:No=Ma==="small"||Ma==="middle"?"small":void 0;const Ta=li=>t.createElement(_r.Z,Object.assign({},Wo,{className:He()(`${aa}-pagination ${aa}-pagination-${li}`,Wo.className),size:No})),Fa=bo==="rtl"?"left":"right",{position:Ua}=Wo;if(Ua!==null&&Array.isArray(Ua)){const li=Ua.find(Ll=>Ll.includes("top")),Ji=Ua.find(Ll=>Ll.includes("bottom")),qi=Ua.every(Ll=>`${Ll}`=="none");!li&&!Ji&&!qi&&(Bi=Ta(Fa)),li&&(Ui=Ta(li.toLowerCase().replace("top",""))),Ji&&(Bi=Ta(Ji.toLowerCase().replace("bottom","")))}else Bi=Ta(Fa)}let ul;typeof mr=="boolean"?ul={spinning:mr}:typeof mr=="object"&&(ul=Object.assign({spinning:!0},mr));const[Ci,ii]=Dl(aa),fl=He()(`${aa}-wrapper`,ta==null?void 0:ta.className,{[`${aa}-wrapper-rtl`]:bo==="rtl"},le,je,ii),Ri=Object.assign(Object.assign({},ta==null?void 0:ta.style),Me),zi=ho&&ho.emptyText||(po==null?void 0:po("Table"))||t.createElement(oo.Z,{componentName:"Table"});return Ci(t.createElement("div",{ref:E,className:fl,style:Ri},t.createElement(xo.Z,Object.assign({spinning:!1},ul),Ui,t.createElement(Un,Object.assign({},eo,{columns:Fo,direction:bo,expandable:da,prefixCls:aa,className:He()({[`${aa}-middle`]:Ma==="middle",[`${aa}-small`]:Ma==="small",[`${aa}-bordered`]:Rt,[`${aa}-empty`]:Mo.length===0}),data:ci,rowKey:ir,rowClassName:dl,emptyText:zi,internalHooks:y,internalRefs:hr,transformColumns:_a})),Bi)))};var Ro=t.forwardRef(lr);const Ka=(C,E)=>{const ie=t.useRef(0);return ie.current+=1,t.createElement(Ro,Object.assign({},C,{ref:E,_renderTimes:ie.current}))},qa=t.forwardRef(Ka);qa.SELECTION_COLUMN=Yr,qa.EXPAND_COLUMN=i,qa.SELECTION_ALL=Ho,qa.SELECTION_INVERT=wo,qa.SELECTION_NONE=ca,qa.Column=er,qa.ColumnGroup=Lr,qa.Summary=O;var es=qa,xl=es},98823:function(Dt,Ne,e){"use strict";var i=e(58757),y=e(15018),M=e(96905),F=function(Ce,se){var w={};for(var K in Ce)Object.prototype.hasOwnProperty.call(Ce,K)&&se.indexOf(K)<0&&(w[K]=Ce[K]);if(Ce!=null&&typeof Object.getOwnPropertySymbols=="function")for(var re=0,K=Object.getOwnPropertySymbols(Ce);rei.createElement(H,Object.assign({},Ce,{picker:"time",mode:void 0,ref:se}))),A=i.forwardRef((Ce,se)=>{var{addon:w,renderExtraFooter:K}=Ce,re=F(Ce,["addon","renderExtraFooter"]);const f=i.useMemo(()=>{if(K)return K;if(w)return w},[w,K]);return i.createElement(D,Object.assign({},re,{mode:void 0,ref:se,renderExtraFooter:f}))}),R=(0,y.Z)(A,"picker");A._InternalPanelDoNotUseOrYouWillBeFired=R,A.RangePicker=t,A._InternalPanelDoNotUseOrYouWillBeFired=R,Ne.Z=A},76185:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return Bn}});var i=e(87608),y=e.n(i),M=e(60698),F=e(29140),D=e(57370),H=e(28314),t=e(47075),A=e(38790),R=e(18510),Ce=e(25092),se=e(16226),w=e(60409),K=e(75556),re=e(58757),f=function(ne){var qe=re.useRef({valueLabels:new Map});return re.useMemo(function(){var _e=qe.current.valueLabels,ee=new Map,Y=ne.map(function(Ae){var we,ct=Ae.value,be=(we=Ae.label)!==null&&we!==void 0?we:_e.get(ct);return ee.set(ct,be),(0,D.Z)((0,D.Z)({},Ae),{},{label:be})});return qe.current.valueLabels=ee,[Y]},[ne])},_=function(ne,qe,_e,ee){return re.useMemo(function(){var Y=ne.map(function(be){var U=be.value;return U}),Ae=qe.map(function(be){var U=be.value;return U}),we=Y.filter(function(be){return!ee[be]});if(_e){var ct=(0,se.S)(Y,!0,ee);Y=ct.checkedKeys,Ae=ct.halfCheckedKeys}return[Array.from(new Set([].concat((0,F.Z)(we),(0,F.Z)(Y)))),Ae]},[ne,qe,_e,ee])},k=e(47857),J=function(ne,qe){return re.useMemo(function(){var _e=(0,k.I8)(ne,{fieldNames:qe,initWrapper:function(Y){return(0,D.Z)((0,D.Z)({},Y),{},{valueEntities:new Map})},processEntity:function(Y,Ae){var we=Y.node[qe.value];if(!1)var ct;Ae.valueEntities.set(we,Y)}});return _e},[ne,qe])},$e=e(37734),z=e(42156),h=function(){return null},Xe=h,It=["children","value"];function Fe(ne){return(0,z.Z)(ne).map(function(qe){if(!re.isValidElement(qe)||!qe.type)return null;var _e=qe,ee=_e.key,Y=_e.props,Ae=Y.children,we=Y.value,ct=(0,t.Z)(Y,It),be=(0,D.Z)({key:ee,value:we},ct),U=Fe(Ae);return U.length&&(be.children=U),be}).filter(function(qe){return qe})}function xe(ne){if(!ne)return ne;var qe=(0,D.Z)({},ne);return"props"in qe||Object.defineProperty(qe,"props",{get:function(){return(0,K.ZP)(!1,"New `rc-tree-select` not support return node instance as argument anymore. Please consider to remove `props` access."),qe}}),qe}function xt(ne,qe,_e,ee,Y,Ae){var we=null,ct=null;function be(){function U(Ie){var ht=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"0",Se=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return Ie.map(function(de,T){var N="".concat(ht,"-").concat(T),x=de[Ae.value],te=_e.includes(x),ye=U(de[Ae.children]||[],N,te),Ze=re.createElement(Xe,de,ye.map(function(Ve){return Ve.node}));if(qe===x&&(we=Ze),te){var Ke={pos:N,node:Ze,children:ye};return Se||ct.push(Ke),Ke}return null}).filter(function(de){return de})}ct||(ct=[],U(ee),ct.sort(function(Ie,ht){var Se=Ie.node.props.value,de=ht.node.props.value,T=_e.indexOf(Se),N=_e.indexOf(de);return T-N}))}Object.defineProperty(ne,"triggerNode",{get:function(){return(0,K.ZP)(!1,"`triggerNode` is deprecated. Please consider decoupling data with node."),be(),we}}),Object.defineProperty(ne,"allCheckedNodes",{get:function(){return(0,K.ZP)(!1,"`allCheckedNodes` is deprecated. Please consider decoupling data with node."),be(),Y?ct:ct.map(function(Ie){var ht=Ie.node;return ht})}})}var He=function(ne,qe,_e){var ee=_e.treeNodeFilterProp,Y=_e.filterTreeNode,Ae=_e.fieldNames,we=Ae.children;return re.useMemo(function(){if(!qe||Y===!1)return ne;var ct;if(typeof Y=="function")ct=Y;else{var be=qe.toUpperCase();ct=function(ht,Se){var de=Se[ee];return String(de).toUpperCase().includes(be)}}function U(Ie){var ht=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return Ie.reduce(function(Se,de){var T=de[we],N=ht||ct(qe,xe(de)),x=U(T||[],N);return(N||x.length)&&Se.push((0,D.Z)((0,D.Z)({},de),{},(0,$e.Z)({isLeaf:void 0},we,x))),Se},[])}return U(ne)},[ne,qe,we,ee,Y])};function L(ne){var qe=re.useRef();qe.current=ne;var _e=re.useCallback(function(){return qe.current.apply(qe,arguments)},[]);return _e}function Be(ne,qe){var _e=qe.id,ee=qe.pId,Y=qe.rootPId,Ae={},we=[],ct=ne.map(function(be){var U=(0,D.Z)({},be),Ie=U[_e];return Ae[Ie]=U,U.key=U.key||Ie,U});return ct.forEach(function(be){var U=be[ee],Ie=Ae[U];Ie&&(Ie.children=Ie.children||[],Ie.children.push(be)),(U===Y||!Ie&&Y===null)&&we.push(be)}),we}function $t(ne,qe,_e){return re.useMemo(function(){return ne?_e?Be(ne,(0,D.Z)({id:"id",pId:"pId",rootPId:null},_e!==!0?_e:{})):ne:Fe(qe)},[qe,_e,ne])}var oe=re.createContext(null),ue=oe,ce=e(29639),Je=e(27903),it=e(54665),Te=re.createContext(null),ut=Te;function X(ne){return Array.isArray(ne)?ne:ne!==void 0?[ne]:[]}function W(ne){var qe=ne||{},_e=qe.label,ee=qe.value,Y=qe.children,Ae=ee||"value";return{_title:_e?[_e]:["title","label"],value:Ae,key:Ae,children:Y||"children"}}function me(ne){return!ne||ne.disabled||ne.disableCheckbox||ne.checkable===!1}function he(ne,qe){var _e=[];function ee(Y){Y.forEach(function(Ae){var we=Ae[qe.children];we&&(_e.push(Ae[qe.value]),ee(we))})}return ee(ne),_e}function mt(ne){return ne==null}var lt={width:0,height:0,display:"flex",overflow:"hidden",opacity:0,border:0,padding:0,margin:0},pt=function(qe,_e){var ee=(0,R.lk)(),Y=ee.prefixCls,Ae=ee.multiple,we=ee.searchValue,ct=ee.toggleOpen,be=ee.open,U=ee.notFoundContent,Ie=re.useContext(ut),ht=Ie.virtual,Se=Ie.listHeight,de=Ie.listItemHeight,T=Ie.treeData,N=Ie.fieldNames,x=Ie.onSelect,te=Ie.dropdownMatchSelectWidth,ye=Ie.treeExpandAction,Ze=re.useContext(ue),Ke=Ze.checkable,Ve=Ze.checkedKeys,et=Ze.halfCheckedKeys,Ht=Ze.treeExpandedKeys,dt=Ze.treeDefaultExpandAll,Cn=Ze.treeDefaultExpandedKeys,bn=Ze.onTreeExpand,Ct=Ze.treeIcon,fn=Ze.showTreeIcon,zt=Ze.switcherIcon,cn=Ze.treeLine,yn=Ze.treeNodeFilterProp,Fn=Ze.loadData,Yn=Ze.treeLoadedKeys,Zn=Ze.treeMotion,Kn=Ze.onTreeLoad,vr=Ze.keyEntities,An=re.useRef(),On=(0,Je.Z)(function(){return T},[be,T],function(Sr,ao){return ao[0]&&Sr[1]!==ao[1]}),_n=re.useMemo(function(){return Ke?{checked:Ve,halfChecked:et}:null},[Ke,Ve,et]);re.useEffect(function(){if(be&&!Ae&&Ve.length){var Sr;(Sr=An.current)===null||Sr===void 0||Sr.scrollTo({key:Ve[0]})}},[be]);var Gn=String(we).toLowerCase(),er=function(ao){return Gn?String(ao[yn]).toLowerCase().includes(Gn):!1},Cr=re.useState(Cn),Lr=(0,H.Z)(Cr,2),Hr=Lr[0],Hn=Lr[1],Pr=re.useState(null),oo=(0,H.Z)(Pr,2),Ur=oo[0],co=oo[1],kr=re.useMemo(function(){return Ht?(0,F.Z)(Ht):we?Ur:Hr},[Hr,Ur,Ht,we]);re.useEffect(function(){we&&co(he(T,N))},[we]);var _r=function(ao){Hn(ao),co(ao),bn&&bn(ao)},xo=function(ao){ao.preventDefault()},br=function(ao,Vr){var Ir=Vr.node;Ke&&me(Ir)||(x(Ir.key,{selected:!Ve.includes(Ir.key)}),Ae||ct(!1))},Qn=re.useState(null),Un=(0,H.Z)(Qn,2),wr=Un[0],or=Un[1],Or=vr[wr];if(re.useImperativeHandle(_e,function(){var Sr;return{scrollTo:(Sr=An.current)===null||Sr===void 0?void 0:Sr.scrollTo,onKeyDown:function(Vr){var Ir,Do=Vr.which;switch(Do){case ce.Z.UP:case ce.Z.DOWN:case ce.Z.LEFT:case ce.Z.RIGHT:(Ir=An.current)===null||Ir===void 0||Ir.onKeyDown(Vr);break;case ce.Z.ENTER:{if(Or){var sa=(Or==null?void 0:Or.node)||{},fa=sa.selectable,Oa=sa.value;fa!==!1&&br(null,{node:{key:wr},selected:!Ve.includes(Oa)})}break}case ce.Z.ESC:ct(!1)}},onKeyUp:function(){}}}),On.length===0)return re.createElement("div",{role:"listbox",className:"".concat(Y,"-empty"),onMouseDown:xo},U);var fo={fieldNames:N};return Yn&&(fo.loadedKeys=Yn),kr&&(fo.expandedKeys=kr),re.createElement("div",{onMouseDown:xo},Or&&be&&re.createElement("span",{style:lt,"aria-live":"assertive"},Or.node.value),re.createElement(it.Z,(0,M.Z)({ref:An,focusable:!1,prefixCls:"".concat(Y,"-tree"),treeData:On,height:Se,itemHeight:de,virtual:ht!==!1&&te!==!1,multiple:Ae,icon:Ct,showIcon:fn,switcherIcon:zt,showLine:cn,loadData:we?null:Fn,motion:Zn,activeKey:wr,checkable:Ke,checkStrictly:!0,checkedKeys:_n,selectedKeys:Ke?[]:Ve,defaultExpandAll:dt},fo,{onActiveChange:or,onSelect:br,onCheck:br,onExpand:_r,onLoad:Kn,filterTreeNode:er,expandAction:ye})))},ft=re.forwardRef(pt);ft.displayName="OptionList";var wt=ft,Gt="SHOW_ALL",Mt="SHOW_PARENT",yt="SHOW_CHILD";function St(ne,qe,_e,ee){var Y=new Set(ne);return qe===yt?ne.filter(function(Ae){var we=_e[Ae];return!(we&&we.children&&we.children.some(function(ct){var be=ct.node;return Y.has(be[ee.value])})&&we.children.every(function(ct){var be=ct.node;return me(be)||Y.has(be[ee.value])}))}):qe===Mt?ne.filter(function(Ae){var we=_e[Ae],ct=we?we.parent:null;return!(ct&&!me(ct.node)&&Y.has(ct.key))}):ne}function fe(ne){var qe=ne.searchPlaceholder,_e=ne.treeCheckStrictly,ee=ne.treeCheckable,Y=ne.labelInValue,Ae=ne.value,we=ne.multiple;warning(!qe,"`searchPlaceholder` has been removed."),_e&&Y===!1&&warning(!1,"`treeCheckStrictly` will force set `labelInValue` to `true`."),(Y||_e)&&warning(toArray(Ae).every(function(ct){return ct&&_typeof(ct)==="object"&&"value"in ct}),"Invalid prop `value` supplied to `TreeSelect`. You should use { label: string, value: string | number } or [{ label: string, value: string | number }] instead."),_e||we||ee?warning(!Ae||Array.isArray(Ae),"`value` should be an array when `TreeSelect` is checkable or multiple."):warning(!Array.isArray(Ae),"`value` should not be array when `TreeSelect` is single mode.")}var Re=null,Oe=["id","prefixCls","value","defaultValue","onChange","onSelect","onDeselect","searchValue","inputValue","onSearch","autoClearSearchValue","filterTreeNode","treeNodeFilterProp","showCheckedStrategy","treeNodeLabelProp","multiple","treeCheckable","treeCheckStrictly","labelInValue","fieldNames","treeDataSimpleMode","treeData","children","loadData","treeLoadedKeys","onTreeLoad","treeDefaultExpandAll","treeExpandedKeys","treeDefaultExpandedKeys","onTreeExpand","treeExpandAction","virtual","listHeight","listItemHeight","onDropdownVisibleChange","dropdownMatchSelectWidth","treeLine","treeIcon","showTreeIcon","switcherIcon","treeMotion"];function Le(ne){return!ne||(0,A.Z)(ne)!=="object"}var O=re.forwardRef(function(ne,qe){var _e=ne.id,ee=ne.prefixCls,Y=ee===void 0?"rc-tree-select":ee,Ae=ne.value,we=ne.defaultValue,ct=ne.onChange,be=ne.onSelect,U=ne.onDeselect,Ie=ne.searchValue,ht=ne.inputValue,Se=ne.onSearch,de=ne.autoClearSearchValue,T=de===void 0?!0:de,N=ne.filterTreeNode,x=ne.treeNodeFilterProp,te=x===void 0?"value":x,ye=ne.showCheckedStrategy,Ze=ne.treeNodeLabelProp,Ke=ne.multiple,Ve=ne.treeCheckable,et=ne.treeCheckStrictly,Ht=ne.labelInValue,dt=ne.fieldNames,Cn=ne.treeDataSimpleMode,bn=ne.treeData,Ct=ne.children,fn=ne.loadData,zt=ne.treeLoadedKeys,cn=ne.onTreeLoad,yn=ne.treeDefaultExpandAll,Fn=ne.treeExpandedKeys,Yn=ne.treeDefaultExpandedKeys,Zn=ne.onTreeExpand,Kn=ne.treeExpandAction,vr=ne.virtual,An=ne.listHeight,On=An===void 0?200:An,_n=ne.listItemHeight,Gn=_n===void 0?20:_n,er=ne.onDropdownVisibleChange,Cr=ne.dropdownMatchSelectWidth,Lr=Cr===void 0?!0:Cr,Hr=ne.treeLine,Hn=ne.treeIcon,Pr=ne.showTreeIcon,oo=ne.switcherIcon,Ur=ne.treeMotion,co=(0,t.Z)(ne,Oe),kr=(0,Ce.ZP)(_e),_r=Ve&&!et,xo=Ve||et,br=et||Ht,Qn=xo||Ke,Un=(0,w.Z)(we,{value:Ae}),wr=(0,H.Z)(Un,2),or=wr[0],Or=wr[1],fo=re.useMemo(function(){return Ve?ye||yt:Gt},[ye,Ve]),Sr=re.useMemo(function(){return W(dt)},[JSON.stringify(dt)]),ao=(0,w.Z)("",{value:Ie!==void 0?Ie:ht,postState:function(sn){return sn||""}}),Vr=(0,H.Z)(ao,2),Ir=Vr[0],Do=Vr[1],sa=function(sn){Do(sn),Se==null||Se(sn)},fa=$t(bn,Ct,Cn),Oa=J(fa,Sr),Oo=Oa.keyEntities,zo=Oa.valueEntities,va=re.useCallback(function(_t){var sn=[],mn=[];return _t.forEach(function(Ot){zo.has(Ot)?mn.push(Ot):sn.push(Ot)}),{missingRawValues:sn,existRawValues:mn}},[zo]),vi=He(fa,Ir,{fieldNames:Sr,treeNodeFilterProp:te,filterTreeNode:N}),Ba=re.useCallback(function(_t){if(_t){if(Ze)return _t[Ze];for(var sn=Sr._title,mn=0;mn{const{componentCls:qe,treePrefixCls:_e,colorBgElevated:ee}=ne,Y=`.${_e}`;return[{[`${qe}-dropdown`]:[{padding:`${ne.paddingXS}px ${ne.paddingXS/2}px`},(0,Sn.Yk)(_e,(0,Ut.TS)(ne,{colorBgContainer:ee})),{[Y]:{borderRadius:0,[`${Y}-list-holder-inner`]:{alignItems:"stretch",[`${Y}-treenode`]:{[`${Y}-node-content-wrapper`]:{flex:"auto"}}}}},(0,un.C2)(`${_e}-checkbox`,ne),{"&-rtl":{direction:"rtl",[`${Y}-switcher${Y}-switcher_close`]:{[`${Y}-switcher-icon svg`]:{transform:"rotate(90deg)"}}}}]}]};function an(ne,qe){return(0,pn.Z)("TreeSelect",_e=>{const ee=(0,Ut.TS)(_e,{treePrefixCls:qe});return[Xt(ee)]})(ne)}var ln=function(ne,qe){var _e={};for(var ee in ne)Object.prototype.hasOwnProperty.call(ne,ee)&&qe.indexOf(ee)<0&&(_e[ee]=ne[ee]);if(ne!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,ee=Object.getOwnPropertySymbols(ne);Y{var _e,{prefixCls:ee,size:Y,disabled:Ae,bordered:we=!0,className:ct,rootClassName:be,treeCheckable:U,multiple:Ie,listHeight:ht=256,listItemHeight:Se=26,placement:de,notFoundContent:T,switcherIcon:N,treeLine:x,getPopupContainer:te,popupClassName:ye,dropdownClassName:Ze,treeIcon:Ke=!1,transitionName:Ve,choiceTransitionName:et="",status:Ht,treeExpandAction:dt,builtinPlacements:Cn,dropdownMatchSelectWidth:bn,popupMatchSelectWidth:Ct,allowClear:fn}=ne,zt=ln(ne,["prefixCls","size","disabled","bordered","className","rootClassName","treeCheckable","multiple","listHeight","listItemHeight","placement","notFoundContent","switcherIcon","treeLine","getPopupContainer","popupClassName","dropdownClassName","treeIcon","transitionName","choiceTransitionName","status","treeExpandAction","builtinPlacements","dropdownMatchSelectWidth","popupMatchSelectWidth","allowClear"]);const{getPopupContainer:cn,getPrefixCls:yn,renderEmpty:Fn,direction:Yn,virtual:Zn,popupMatchSelectWidth:Kn,popupOverflow:vr}=re.useContext(ot.E_),An=yn(),On=yn("select",ee),_n=yn("select-tree",ee),Gn=yn("tree-select",ee),{compactSize:er,compactItemClassnames:Cr}=(0,jt.ri)(On,Yn),[Lr,Hr]=(0,Bt.Z)(On),[Hn]=an(Gn,_n),Pr=y()(ye||Ze,`${Gn}-dropdown`,{[`${Gn}-dropdown-rtl`]:Yn==="rtl"},be,Hr),oo=!!(U||Ie),Ur=(0,st.Z)(zt.suffixIcon,zt.showArrow),co=(_e=Ct!=null?Ct:bn)!==null&&_e!==void 0?_e:Kn,{status:kr,hasFeedback:_r,isFormItemInput:xo,feedbackIcon:br}=re.useContext(Vt.aM),Qn=(0,Ye.F)(kr,Ht),{suffixIcon:Un,removeIcon:wr,clearIcon:or}=(0,Ft.Z)(Object.assign(Object.assign({},zt),{multiple:oo,showSuffixIcon:Ur,hasFeedback:_r,feedbackIcon:br,prefixCls:On,componentName:"TreeSelect"})),Or=fn===!0?{clearIcon:or}:fn;let fo;T!==void 0?fo=T:fo=(Fn==null?void 0:Fn("Select"))||re.createElement(Et.Z,{componentName:"Select"});const Sr=(0,Z.Z)(zt,["suffixIcon","itemIcon","removeIcon","clearIcon","switcherIcon"]),ao=re.useMemo(()=>de!==void 0?de:Yn==="rtl"?"bottomRight":"bottomLeft",[de,Yn]),Vr=(0,tt.Z)(Cn,vr),Ir=(0,Nt.Z)(zo=>{var va;return(va=Y!=null?Y:er)!==null&&va!==void 0?va:zo}),Do=re.useContext(gt.Z),sa=Ae!=null?Ae:Do,fa=y()(!ee&&Gn,{[`${On}-lg`]:Ir==="large",[`${On}-sm`]:Ir==="small",[`${On}-rtl`]:Yn==="rtl",[`${On}-borderless`]:!we,[`${On}-in-form-item`]:xo},(0,Ye.Z)(On,Qn,_r),Cr,ct,be,Hr),Oa=zo=>re.createElement(Lt.Z,{prefixCls:_n,switcherIcon:N,treeNodeProps:zo,showLine:x}),Oo=re.createElement(b,Object.assign({virtual:Zn,disabled:sa},Sr,{dropdownMatchSelectWidth:co,builtinPlacements:Vr,ref:qe,prefixCls:On,className:fa,listHeight:ht,listItemHeight:Se,treeCheckable:U&&re.createElement("span",{className:`${On}-tree-checkbox-inner`}),treeLine:!!x,suffixIcon:Un,multiple:oo,placement:ao,removeIcon:wr,allowClear:Or,switcherIcon:Oa,showTreeIcon:Ke,notFoundContent:fo,getPopupContainer:te||cn,treeMotion:null,dropdownClassName:Pr,choiceTransitionName:(0,q.m)(An,"",et),transitionName:(0,q.m)(An,"slide-up",Ve),treeExpandAction:dt}));return Lr(Hn(Oo))},qn=re.forwardRef(Pn),yr=(0,ae.Z)(qn);qn.TreeNode=Xe,qn.SHOW_ALL=Gt,qn.SHOW_PARENT=Mt,qn.SHOW_CHILD=yt,qn._InternalPanelDoNotUseOrYouWillBeFired=yr;var Bn=qn},7992:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return mt}});var i=e(54665),y=e(29140),M=e(85976),F=e(60698),D=e(58757),H={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z"}}]},name:"folder-open",theme:"outlined"},t=H,A=e(17202),R=function(pt,ft){return D.createElement(A.Z,(0,F.Z)({},pt,{ref:ft,icon:t}))},Ce=D.forwardRef(R),se={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"}}]},name:"folder",theme:"outlined"},w=se,K=function(pt,ft){return D.createElement(A.Z,(0,F.Z)({},pt,{ref:ft,icon:w}))},re=D.forwardRef(K),f=e(87608),_=e.n(f),k=e(39919),J=e(47857),$e=e(61836),z={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z"}}]},name:"holder",theme:"outlined"},h=z,Xe=function(pt,ft){return D.createElement(A.Z,(0,F.Z)({},pt,{ref:ft,icon:h}))},It=D.forwardRef(Xe),Fe=e(90881),xe=e(53067);const xt=4;function He(lt){const{dropPosition:pt,dropLevelOffset:ft,prefixCls:wt,indent:Gt,direction:Mt="ltr"}=lt,yt=Mt==="ltr"?"left":"right",St=Mt==="ltr"?"right":"left",fe={[yt]:-ft*Gt+xt,[St]:0};switch(pt){case-1:fe.top=-3;break;case 1:fe.bottom=-3;break;default:fe.bottom=-3,fe[yt]=Gt+xt;break}return D.createElement("div",{style:fe,className:`${wt}-drop-indicator`})}var L=e(95171),$t=D.forwardRef((lt,pt)=>{const{getPrefixCls:ft,direction:wt,virtual:Gt,tree:Mt}=D.useContext($e.E_),{prefixCls:yt,className:St,showIcon:fe=!1,showLine:Re,switcherIcon:Oe,blockNode:Le=!1,children:O,checkable:ke=!1,selectable:$=!0,draggable:b,motion:Z,style:ae}=lt,q=ft("tree",yt),Ye=ft(),ot=Z!=null?Z:Object.assign(Object.assign({},(0,Fe.Z)(Ye)),{motionAppear:!1}),gt=Object.assign(Object.assign({},lt),{checkable:ke,selectable:$,showIcon:fe,motion:ot,blockNode:Le,showLine:!!Re,dropIndicatorRender:He}),[Et,Nt]=(0,xe.ZP)(q),Vt=D.useMemo(()=>{if(!b)return!1;let tt={};switch(typeof b){case"function":tt.nodeDraggable=b;break;case"object":tt=Object.assign({},b);break;default:break}return tt.icon!==!1&&(tt.icon=tt.icon||D.createElement(It,null)),tt},[b]),Bt=tt=>D.createElement(L.Z,{prefixCls:q,switcherIcon:Oe,treeNodeProps:tt,showLine:Re});return Et(D.createElement(i.Z,Object.assign({itemHeight:20,ref:pt,virtual:Gt},gt,{style:Object.assign(Object.assign({},Mt==null?void 0:Mt.style),ae),prefixCls:q,className:_()({[`${q}-icon-hide`]:!fe,[`${q}-block-node`]:Le,[`${q}-unselectable`]:!$,[`${q}-rtl`]:wt==="rtl"},Mt==null?void 0:Mt.className,St,Nt),direction:wt,checkable:ke&&D.createElement("span",{className:`${q}-checkbox-inner`}),selectable:$,switcherIcon:Bt,draggable:Vt}),O))}),oe;(function(lt){lt[lt.None=0]="None",lt[lt.Start=1]="Start",lt[lt.End=2]="End"})(oe||(oe={}));function ue(lt,pt){function ft(wt){const{key:Gt,children:Mt}=wt;pt(Gt,wt)!==!1&&ue(Mt||[],pt)}lt.forEach(ft)}function ce(lt){let{treeData:pt,expandedKeys:ft,startKey:wt,endKey:Gt}=lt;const Mt=[];let yt=oe.None;if(wt&&wt===Gt)return[wt];if(!wt||!Gt)return[];function St(fe){return fe===wt||fe===Gt}return ue(pt,fe=>{if(yt===oe.End)return!1;if(St(fe)){if(Mt.push(fe),yt===oe.None)yt=oe.Start;else if(yt===oe.Start)return yt=oe.End,!1}else yt===oe.Start&&Mt.push(fe);return ft.includes(fe)}),Mt}function Je(lt,pt){const ft=(0,y.Z)(pt),wt=[];return ue(lt,(Gt,Mt)=>{const yt=ft.indexOf(Gt);return yt!==-1&&(wt.push(Mt),ft.splice(yt,1)),!!ft.length}),wt}var it=function(lt,pt){var ft={};for(var wt in lt)Object.prototype.hasOwnProperty.call(lt,wt)&&pt.indexOf(wt)<0&&(ft[wt]=lt[wt]);if(lt!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Gt=0,wt=Object.getOwnPropertySymbols(lt);Gt{var{defaultExpandAll:ft,defaultExpandParent:wt,defaultExpandedKeys:Gt}=lt,Mt=it(lt,["defaultExpandAll","defaultExpandParent","defaultExpandedKeys"]);const yt=D.useRef(),St=D.useRef(),fe=()=>{const{keyEntities:Vt}=(0,J.I8)(ut(Mt));let Bt;return ft?Bt=Object.keys(Vt):wt?Bt=(0,k.r7)(Mt.expandedKeys||Gt||[],Vt):Bt=Mt.expandedKeys||Gt,Bt},[Re,Oe]=D.useState(Mt.selectedKeys||Mt.defaultSelectedKeys||[]),[Le,O]=D.useState(()=>fe());D.useEffect(()=>{"selectedKeys"in Mt&&Oe(Mt.selectedKeys)},[Mt.selectedKeys]),D.useEffect(()=>{"expandedKeys"in Mt&&O(Mt.expandedKeys)},[Mt.expandedKeys]);const ke=(Vt,Bt)=>{var tt;return"expandedKeys"in Mt||O(Vt),(tt=Mt.onExpand)===null||tt===void 0?void 0:tt.call(Mt,Vt,Bt)},$=(Vt,Bt)=>{var tt;const{multiple:st}=Mt,{node:Ft,nativeEvent:jt}=Bt,{key:Lt=""}=Ft,un=ut(Mt),Ut=Object.assign(Object.assign({},Bt),{selected:!0}),pn=(jt==null?void 0:jt.ctrlKey)||(jt==null?void 0:jt.metaKey),Sn=jt==null?void 0:jt.shiftKey;let Xt;st&&pn?(Xt=Vt,yt.current=Lt,St.current=Xt,Ut.selectedNodes=Je(un,Xt)):st&&Sn?(Xt=Array.from(new Set([].concat((0,y.Z)(St.current||[]),(0,y.Z)(ce({treeData:un,expandedKeys:Le,startKey:Lt,endKey:yt.current}))))),Ut.selectedNodes=Je(un,Xt)):(Xt=[Lt],yt.current=Lt,St.current=Xt,Ut.selectedNodes=Je(un,Xt)),(tt=Mt.onSelect)===null||tt===void 0||tt.call(Mt,Xt,Ut),"selectedKeys"in Mt||Oe(Xt)},{getPrefixCls:b,direction:Z}=D.useContext($e.E_),{prefixCls:ae,className:q,showIcon:Ye=!0,expandAction:ot="click"}=Mt,gt=it(Mt,["prefixCls","className","showIcon","expandAction"]),Et=b("tree",ae),Nt=_()(`${Et}-directory`,{[`${Et}-directory-rtl`]:Z==="rtl"},q);return D.createElement($t,Object.assign({icon:Te,ref:pt,blockNode:!0},gt,{showIcon:Ye,expandAction:ot,prefixCls:Et,className:Nt,expandedKeys:Le,selectedKeys:Re,onSelect:$,onExpand:ke}))};var me=D.forwardRef(X);const he=$t;he.DirectoryTree=me,he.TreeNode=i.O;var mt=he},53067:function(Dt,Ne,e){"use strict";e.d(Ne,{Yk:function(){return w}});var i=e(57793),y=e(7316),M=e(78330),F=e(41086),D=e(22151),H=e(52628);const t=new i.E4("ant-tree-node-fx-do-not-use",{"0%":{opacity:0},"100%":{opacity:1}}),A=(K,re)=>({[`.${K}-switcher-icon`]:{display:"inline-block",fontSize:10,verticalAlign:"baseline",svg:{transition:`transform ${re.motionDurationSlow}`}}}),R=(K,re)=>({[`.${K}-drop-indicator`]:{position:"absolute",zIndex:1,height:2,backgroundColor:re.colorPrimary,borderRadius:1,pointerEvents:"none","&:after":{position:"absolute",top:-3,insetInlineStart:-6,width:8,height:8,backgroundColor:"transparent",border:`${re.lineWidthBold}px solid ${re.colorPrimary}`,borderRadius:"50%",content:'""'}}}),Ce=(K,re)=>{const{treeCls:f,treeNodeCls:_,treeNodePadding:k,treeTitleHeight:J}=re,$e=re.paddingXS;return{[f]:Object.assign(Object.assign({},(0,M.Wf)(re)),{background:re.colorBgContainer,borderRadius:re.borderRadius,transition:`background-color ${re.motionDurationSlow}`,[`&${f}-rtl`]:{[`${f}-switcher`]:{"&_close":{[`${f}-switcher-icon`]:{svg:{transform:"rotate(90deg)"}}}}},[`&-focused:not(:hover):not(${f}-active-focused)`]:Object.assign({},(0,M.oN)(re)),[`${f}-list-holder-inner`]:{alignItems:"flex-start"},[`&${f}-block-node`]:{[`${f}-list-holder-inner`]:{alignItems:"stretch",[`${f}-node-content-wrapper`]:{flex:"auto"},[`${_}.dragging`]:{position:"relative","&:after":{position:"absolute",top:0,insetInlineEnd:0,bottom:k,insetInlineStart:0,border:`1px solid ${re.colorPrimary}`,opacity:0,animationName:t,animationDuration:re.motionDurationSlow,animationPlayState:"running",animationFillMode:"forwards",content:'""',pointerEvents:"none"}}}},[`${_}`]:{display:"flex",alignItems:"flex-start",padding:`0 0 ${k}px 0`,outline:"none","&-rtl":{direction:"rtl"},"&-disabled":{[`${f}-node-content-wrapper`]:{color:re.colorTextDisabled,cursor:"not-allowed","&:hover":{background:"transparent"}}},[`&-active ${f}-node-content-wrapper`]:Object.assign({},(0,M.oN)(re)),[`&:not(${_}-disabled).filter-node ${f}-title`]:{color:"inherit",fontWeight:500},"&-draggable":{[`${f}-draggable-icon`]:{flexShrink:0,width:J,lineHeight:`${J}px`,textAlign:"center",visibility:"visible",opacity:.2,transition:`opacity ${re.motionDurationSlow}`,[`${_}:hover &`]:{opacity:.45}},[`&${_}-disabled`]:{[`${f}-draggable-icon`]:{visibility:"hidden"}}}},[`${f}-indent`]:{alignSelf:"stretch",whiteSpace:"nowrap",userSelect:"none","&-unit":{display:"inline-block",width:J}},[`${f}-draggable-icon`]:{visibility:"hidden"},[`${f}-switcher`]:Object.assign(Object.assign({},A(K,re)),{position:"relative",flex:"none",alignSelf:"stretch",width:J,margin:0,lineHeight:`${J}px`,textAlign:"center",cursor:"pointer",userSelect:"none","&-noop":{cursor:"default"},"&_close":{[`${f}-switcher-icon`]:{svg:{transform:"rotate(-90deg)"}}},"&-loading-icon":{color:re.colorPrimary},"&-leaf-line":{position:"relative",zIndex:1,display:"inline-block",width:"100%",height:"100%","&:before":{position:"absolute",top:0,insetInlineEnd:J/2,bottom:-k,marginInlineStart:-1,borderInlineEnd:`1px solid ${re.colorBorder}`,content:'""'},"&:after":{position:"absolute",width:J/2*.8,height:J/2,borderBottom:`1px solid ${re.colorBorder}`,content:'""'}}}),[`${f}-checkbox`]:{top:"initial",marginInlineEnd:$e},[`${f}-node-content-wrapper, ${f}-checkbox + span`]:{position:"relative",zIndex:"auto",minHeight:J,margin:0,padding:`0 ${re.paddingXS/2}px`,color:"inherit",lineHeight:`${J}px`,background:"transparent",borderRadius:re.borderRadius,cursor:"pointer",transition:`all ${re.motionDurationMid}, border 0s, line-height 0s, box-shadow 0s`,"&:hover":{backgroundColor:re.controlItemBgHover},[`&${f}-node-selected`]:{backgroundColor:re.controlItemBgActive},[`${f}-iconEle`]:{display:"inline-block",width:J,height:J,lineHeight:`${J}px`,textAlign:"center",verticalAlign:"top","&:empty":{display:"none"}}},[`${f}-unselectable ${f}-node-content-wrapper:hover`]:{backgroundColor:"transparent"},[`${f}-node-content-wrapper`]:Object.assign({lineHeight:`${J}px`,userSelect:"none"},R(K,re)),[`${_}.drop-container`]:{"> [draggable]":{boxShadow:`0 0 0 2px ${re.colorPrimary}`}},"&-show-line":{[`${f}-indent`]:{"&-unit":{position:"relative",height:"100%","&:before":{position:"absolute",top:0,insetInlineEnd:J/2,bottom:-k,borderInlineEnd:`1px solid ${re.colorBorder}`,content:'""'},"&-end":{"&:before":{display:"none"}}}},[`${f}-switcher`]:{background:"transparent","&-line-icon":{verticalAlign:"-0.15em"}}},[`${_}-leaf-last`]:{[`${f}-switcher`]:{"&-leaf-line":{"&:before":{top:"auto !important",bottom:"auto !important",height:`${J/2}px !important`}}}}})}},se=K=>{const{treeCls:re,treeNodeCls:f,treeNodePadding:_}=K;return{[`${re}${re}-directory`]:{[f]:{position:"relative","&:before":{position:"absolute",top:0,insetInlineEnd:0,bottom:_,insetInlineStart:0,transition:`background-color ${K.motionDurationMid}`,content:'""',pointerEvents:"none"},"&:hover":{"&:before":{background:K.controlItemBgHover}},"> *":{zIndex:1},[`${re}-switcher`]:{transition:`color ${K.motionDurationMid}`},[`${re}-node-content-wrapper`]:{borderRadius:0,userSelect:"none","&:hover":{background:"transparent"},[`&${re}-node-selected`]:{color:K.colorTextLightSolid,background:"transparent"}},"&-selected":{[` + &:hover::before, + &::before + `]:{background:K.colorPrimary},[`${re}-switcher`]:{color:K.colorTextLightSolid},[`${re}-node-content-wrapper`]:{color:K.colorTextLightSolid,background:"transparent"}}}}}},w=(K,re)=>{const f=`.${K}`,_=`${f}-treenode`,k=re.paddingXS/2,J=re.controlHeightSM,$e=(0,D.TS)(re,{treeCls:f,treeNodeCls:_,treeNodePadding:k,treeTitleHeight:J});return[Ce(K,$e),se($e)]};Ne.ZP=(0,H.Z)("Tree",(K,re)=>{let{prefixCls:f}=re;return[{[K.componentCls]:(0,y.C2)(`${f}-checkbox`,K)},w(f,K),(0,F.Z)(K)]})},95171:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return Xe}});var i=e(60698),y=e(58757),M={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"}}]},name:"caret-down",theme:"filled"},F=M,D=e(17202),H=function(Fe,xe){return y.createElement(D.Z,(0,i.Z)({},Fe,{ref:xe,icon:F}))},t=y.forwardRef(H),A=e(85976),R=e(25755),Ce={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"}},{tag:"path",attrs:{d:"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"minus-square",theme:"outlined"},se=Ce,w=function(Fe,xe){return y.createElement(D.Z,(0,i.Z)({},Fe,{ref:xe,icon:se}))},K=y.forwardRef(w),re={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"}},{tag:"path",attrs:{d:"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"plus-square",theme:"outlined"},f=re,_=function(Fe,xe){return y.createElement(D.Z,(0,i.Z)({},Fe,{ref:xe,icon:f}))},k=y.forwardRef(_),J=e(87608),$e=e.n(J),z=e(37047),Xe=It=>{const{prefixCls:Fe,switcherIcon:xe,treeNodeProps:xt,showLine:He}=It,{isLeaf:L,expanded:Be,loading:$t}=xt;if($t)return y.createElement(R.Z,{className:`${Fe}-switcher-loading-icon`});let oe;if(He&&typeof He=="object"&&(oe=He.showLeafIcon),L){if(!He)return null;if(typeof oe!="boolean"&&oe){const Je=typeof oe=="function"?oe(xt):oe,it=`${Fe}-switcher-line-custom-icon`;return(0,z.l$)(Je)?(0,z.Tm)(Je,{className:$e()(Je.props.className||"",it)}):Je}return oe?y.createElement(A.Z,{className:`${Fe}-switcher-line-icon`}):y.createElement("span",{className:`${Fe}-switcher-leaf-line`})}const ue=`${Fe}-switcher-icon`,ce=typeof xe=="function"?xe(xt):xe;return(0,z.l$)(ce)?(0,z.Tm)(ce,{className:$e()(ce.props.className||"",ue)}):ce!==void 0?ce:He?Be?y.createElement(K,{className:`${Fe}-switcher-line-icon`}):y.createElement(k,{className:`${Fe}-switcher-line-icon`}):y.createElement(t,{className:ue})}},45151:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return Bn}});var i=e(58757),y=e(35725),M=e(15655),F=e(60698),D={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"}}]},name:"edit",theme:"outlined"},H=D,t=e(17202),A=function(qe,_e){return i.createElement(t.Z,(0,F.Z)({},qe,{ref:_e,icon:H}))},R=i.forwardRef(A),Ce=e(87608),se=e.n(Ce),w=e(86724),K=e.n(w),re=e(19425),f=e(42156),_=e(81334),k=e(60409),J=e(98186),$e=e(21319),z=e(91923),h=e(74122),Xe=e(61836),It=e(29487),Fe=e(74820),xe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z"}}]},name:"enter",theme:"outlined"},xt=xe,He=function(qe,_e){return i.createElement(t.Z,(0,F.Z)({},qe,{ref:_e,icon:xt}))},L=i.forwardRef(He),Be=e(29639),$t=e(37047),oe=e(79617),ue=e(2465),ce=e(52628),Je=e(26134),it=e(46902);const Te=(ne,qe,_e,ee)=>{const{titleMarginBottom:Y,fontWeightStrong:Ae}=ee;return{marginBottom:Y,color:_e,fontWeight:Ae,fontSize:ne,lineHeight:qe}},ut=ne=>{const qe=[1,2,3,4,5],_e={};return qe.forEach(ee=>{_e[` + h${ee}&, + div&-h${ee}, + div&-h${ee} > textarea, + h${ee} + `]=Te(ne[`fontSizeHeading${ee}`],ne[`lineHeightHeading${ee}`],ne.colorTextHeading,ne)}),_e},X=ne=>{const{componentCls:qe}=ne;return{"a&, a":Object.assign(Object.assign({},(0,ue.N)(ne)),{textDecoration:ne.linkDecoration,"&:active, &:hover":{textDecoration:ne.linkHoverDecoration},[`&[disabled], &${qe}-disabled`]:{color:ne.colorTextDisabled,cursor:"not-allowed","&:active, &:hover":{color:ne.colorTextDisabled},"&:active":{pointerEvents:"none"}}})}},W=ne=>({code:{margin:"0 0.2em",paddingInline:"0.4em",paddingBlock:"0.2em 0.1em",fontSize:"85%",fontFamily:ne.fontFamilyCode,background:"rgba(150, 150, 150, 0.1)",border:"1px solid rgba(100, 100, 100, 0.2)",borderRadius:3},kbd:{margin:"0 0.2em",paddingInline:"0.4em",paddingBlock:"0.15em 0.1em",fontSize:"90%",fontFamily:ne.fontFamilyCode,background:"rgba(150, 150, 150, 0.06)",border:"1px solid rgba(100, 100, 100, 0.2)",borderBottomWidth:2,borderRadius:3},mark:{padding:0,backgroundColor:Je.gold[2]},"u, ins":{textDecoration:"underline",textDecorationSkipInk:"auto"},"s, del":{textDecoration:"line-through"},strong:{fontWeight:600},"ul, ol":{marginInline:0,marginBlock:"0 1em",padding:0,li:{marginInline:"20px 0",marginBlock:0,paddingInline:"4px 0",paddingBlock:0}},ul:{listStyleType:"circle",ul:{listStyleType:"disc"}},ol:{listStyleType:"decimal"},"pre, blockquote":{margin:"1em 0"},pre:{padding:"0.4em 0.6em",whiteSpace:"pre-wrap",wordWrap:"break-word",background:"rgba(150, 150, 150, 0.1)",border:"1px solid rgba(100, 100, 100, 0.2)",borderRadius:3,fontFamily:ne.fontFamilyCode,code:{display:"inline",margin:0,padding:0,fontSize:"inherit",fontFamily:"inherit",background:"transparent",border:0}},blockquote:{paddingInline:"0.6em 0",paddingBlock:0,borderInlineStart:"4px solid rgba(100, 100, 100, 0.2)",opacity:.85}}),me=ne=>{const{componentCls:qe}=ne,ee=(0,it.e5)(ne).inputPaddingVertical+1;return{"&-edit-content":{position:"relative","div&":{insetInlineStart:-ne.paddingSM,marginTop:-ee,marginBottom:`calc(1em - ${ee}px)`},[`${qe}-edit-content-confirm`]:{position:"absolute",insetInlineEnd:ne.marginXS+2,insetBlockEnd:ne.marginXS,color:ne.colorTextDescription,fontWeight:"normal",fontSize:ne.fontSize,fontStyle:"normal",pointerEvents:"none"},textarea:{margin:"0!important",MozTransition:"none",height:"1em"}}}},he=ne=>({"&-copy-success":{[` + &, + &:hover, + &:focus`]:{color:ne.colorSuccess}}}),mt=()=>({[` + a&-ellipsis, + span&-ellipsis + `]:{display:"inline-block",maxWidth:"100%"},"&-single-line":{whiteSpace:"nowrap"},"&-ellipsis-single-line":{overflow:"hidden",textOverflow:"ellipsis","a&, span&":{verticalAlign:"bottom"}},"&-ellipsis-multiple-line":{display:"-webkit-box",overflow:"hidden",WebkitLineClamp:3,WebkitBoxOrient:"vertical"}}),lt=ne=>{const{componentCls:qe,titleMarginTop:_e}=ne;return{[qe]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:ne.colorText,wordBreak:"break-word",lineHeight:ne.lineHeight,[`&${qe}-secondary`]:{color:ne.colorTextDescription},[`&${qe}-success`]:{color:ne.colorSuccess},[`&${qe}-warning`]:{color:ne.colorWarning},[`&${qe}-danger`]:{color:ne.colorError,"a&:active, a&:focus":{color:ne.colorErrorActive},"a&:hover":{color:ne.colorErrorHover}},[`&${qe}-disabled`]:{color:ne.colorTextDisabled,cursor:"not-allowed",userSelect:"none"},[` + div&, + p + `]:{marginBottom:"1em"}},ut(ne)),{[` + & + h1${qe}, + & + h2${qe}, + & + h3${qe}, + & + h4${qe}, + & + h5${qe} + `]:{marginTop:_e},[` + div, + ul, + li, + p, + h1, + h2, + h3, + h4, + h5`]:{[` + + h1, + + h2, + + h3, + + h4, + + h5 + `]:{marginTop:_e}}}),W(ne)),X(ne)),{[` + ${qe}-expand, + ${qe}-edit, + ${qe}-copy + `]:Object.assign(Object.assign({},(0,ue.N)(ne)),{marginInlineStart:ne.marginXXS})}),me(ne)),he(ne)),mt()),{"&-rtl":{direction:"rtl"}})}};var pt=(0,ce.Z)("Typography",ne=>[lt(ne)],()=>({titleMarginTop:"1.2em",titleMarginBottom:"0.5em"})),wt=ne=>{const{prefixCls:qe,"aria-label":_e,className:ee,style:Y,direction:Ae,maxLength:we,autoSize:ct=!0,value:be,onSave:U,onCancel:Ie,onEnd:ht,component:Se,enterIcon:de=i.createElement(L,null)}=ne,T=i.useRef(null),N=i.useRef(!1),x=i.useRef(),[te,ye]=i.useState(be);i.useEffect(()=>{ye(be)},[be]),i.useEffect(()=>{if(T.current&&T.current.resizableTextArea){const{textArea:cn}=T.current.resizableTextArea;cn.focus();const{length:yn}=cn.value;cn.setSelectionRange(yn,yn)}},[]);const Ze=cn=>{let{target:yn}=cn;ye(yn.value.replace(/[\n\r]/g,""))},Ke=()=>{N.current=!0},Ve=()=>{N.current=!1},et=cn=>{let{keyCode:yn}=cn;N.current||(x.current=yn)},Ht=()=>{U(te.trim())},dt=cn=>{let{keyCode:yn,ctrlKey:Fn,altKey:Yn,metaKey:Zn,shiftKey:Kn}=cn;x.current===yn&&!N.current&&!Fn&&!Yn&&!Zn&&!Kn&&(yn===Be.Z.ENTER?(Ht(),ht==null||ht()):yn===Be.Z.ESC&&Ie())},Cn=()=>{Ht()},bn=Se?`${qe}-${Se}`:"",[Ct,fn]=pt(qe),zt=se()(qe,`${qe}-edit-content`,{[`${qe}-rtl`]:Ae==="rtl"},ee,bn,fn);return Ct(i.createElement("div",{className:zt,style:Y},i.createElement(oe.Z,{ref:T,maxLength:we,value:te,onChange:Ze,onKeyDown:et,onKeyUp:dt,onCompositionStart:Ke,onCompositionEnd:Ve,onBlur:Cn,"aria-label":_e,rows:1,autoSize:ct}),de!==null?(0,$t.Tm)(de,{className:`${qe}-edit-content-confirm`}):null))},Gt=function(ne,qe){var _e={};for(var ee in ne)Object.prototype.hasOwnProperty.call(ne,ee)&&qe.indexOf(ee)<0&&(_e[ee]=ne[ee]);if(ne!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,ee=Object.getOwnPropertySymbols(ne);Y{const{prefixCls:_e,component:ee="article",className:Y,rootClassName:Ae,setContentRef:we,children:ct,direction:be,style:U}=ne,Ie=Gt(ne,["prefixCls","component","className","rootClassName","setContentRef","children","direction","style"]),{getPrefixCls:ht,direction:Se,typography:de}=i.useContext(Xe.E_),T=be!=null?be:Se;let N=qe;we&&(N=(0,$e.sQ)(qe,we));const x=ht("typography",_e),[te,ye]=pt(x),Ze=se()(x,de==null?void 0:de.className,{[`${x}-rtl`]:T==="rtl"},Y,Ae,ye),Ke=Object.assign(Object.assign({},de==null?void 0:de.style),U);return te(i.createElement(ee,Object.assign({className:Ze,style:Ke,ref:N},Ie),ct))});function St(ne,qe){return i.useMemo(()=>{const _e=!!ne;return[_e,Object.assign(Object.assign({},qe),_e&&typeof ne=="object"?ne:null)]},[ne])}var Re=(ne,qe)=>{const _e=i.useRef(!1);i.useEffect(()=>{_e.current?ne():_e.current=!0},qe)};function Oe(ne){const qe=typeof ne;return qe==="string"||qe==="number"}function Le(ne){let qe=0;return ne.forEach(_e=>{Oe(_e)?qe+=String(_e).length:qe+=1}),qe}function O(ne,qe){let _e=0;const ee=[];for(let Y=0;Yqe){const U=qe-_e;return ee.push(String(Ae).slice(0,U)),ee}ee.push(Ae),_e=be}return ne}const ke=0,$=1,b=2,Z=3,ae=4;var Ye=ne=>{let{enabledMeasure:qe,children:_e,text:ee,width:Y,fontSize:Ae,rows:we,onEllipsis:ct}=ne;const[[be,U,Ie],ht]=i.useState([0,0,0]),[Se,de]=i.useState(ke),[T,N]=i.useState(0),x=i.useRef(null),te=i.useRef(null),ye=i.useMemo(()=>(0,f.Z)(ee),[ee]),Ze=i.useMemo(()=>Le(ye),[ye]),Ke=i.useMemo(()=>!qe||Se!==Z?_e(ye,!1):_e(O(ye,U),U{qe&&Y&&Ae&&Ze&&(de($),ht([0,Math.ceil(Ze/2),Ze]))},[qe,Y,Ae,ee,Ze,we]),(0,_.Z)(()=>{var dt;Se===$&&N(((dt=x.current)===null||dt===void 0?void 0:dt.offsetHeight)||0)},[Se]),(0,_.Z)(()=>{var dt,Cn;if(T){if(Se===$){const bn=((dt=te.current)===null||dt===void 0?void 0:dt.offsetHeight)||0,Ct=we*T;bn<=Ct?(de(ae),ct(!1)):de(b)}else if(Se===b)if(be!==Ie){const bn=((Cn=te.current)===null||Cn===void 0?void 0:Cn.offsetHeight)||0,Ct=we*T;let fn=be,zt=Ie;be===Ie-1?zt=be:bn<=Ct?fn=U:zt=U;const cn=Math.ceil((fn+zt)/2);ht([fn,cn,zt])}else de(Z),ct(!0)}},[Se,be,Ie,we,T]);const Ve={width:Y,whiteSpace:"normal",margin:0,padding:0},et=(dt,Cn,bn)=>i.createElement("span",{"aria-hidden":!0,ref:Cn,style:Object.assign({position:"fixed",display:"block",left:0,top:0,zIndex:-9999,visibility:"hidden",pointerEvents:"none",fontSize:Math.floor(Ae/2)*2},bn)},dt),Ht=(dt,Cn)=>{const bn=O(ye,dt);return et(_e(bn,!0),Cn,Ve)};return i.createElement(i.Fragment,null,Ke,qe&&Se!==Z&&Se!==ae&&i.createElement(i.Fragment,null,et("lg",x,{wordBreak:"keep-all",whiteSpace:"nowrap"}),Se===$?et(_e(ye,!1),te,Ve):Ht(U,te)))},gt=ne=>{let{enabledEllipsis:qe,isEllipsis:_e,children:ee,tooltipProps:Y}=ne;return!(Y!=null&&Y.title)||!qe?ee:i.createElement(Fe.Z,Object.assign({open:_e?void 0:!1},Y),ee)},Et=function(ne,qe){var _e={};for(var ee in ne)Object.prototype.hasOwnProperty.call(ne,ee)&&qe.indexOf(ee)<0&&(_e[ee]=ne[ee]);if(ne!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,ee=Object.getOwnPropertySymbols(ne);Y{var _e,ee,Y;const{prefixCls:Ae,className:we,style:ct,type:be,disabled:U,children:Ie,ellipsis:ht,editable:Se,copyable:de,component:T,title:N}=ne,x=Et(ne,["prefixCls","className","style","type","disabled","children","ellipsis","editable","copyable","component","title"]),{getPrefixCls:te,direction:ye}=i.useContext(Xe.E_),[Ze]=(0,It.Z)("Text"),Ke=i.useRef(null),Ve=i.useRef(null),et=te("typography",Ae),Ht=(0,J.Z)(x,["mark","code","delete","underline","strong","keyboard","italic"]),[dt,Cn]=St(Se),[bn,Ct]=(0,k.Z)(!1,{value:Cn.editing}),{triggerType:fn=["icon"]}=Cn,zt=en=>{var kn;en&&((kn=Cn.onStart)===null||kn===void 0||kn.call(Cn)),Ct(en)};Re(()=>{var en;bn||(en=Ve.current)===null||en===void 0||en.focus()},[bn]);const cn=en=>{en==null||en.preventDefault(),zt(!0)},yn=en=>{var kn;(kn=Cn.onChange)===null||kn===void 0||kn.call(Cn,en),zt(!1)},Fn=()=>{var en;(en=Cn.onCancel)===null||en===void 0||en.call(Cn),zt(!1)},[Yn,Zn]=St(de),[Kn,vr]=i.useState(!1),An=i.useRef(null),On={};Zn.format&&(On.format=Zn.format);const _n=()=>{An.current&&clearTimeout(An.current)},Gn=en=>{var kn;en==null||en.preventDefault(),en==null||en.stopPropagation(),K()(Zn.text||String(Ie)||"",On),vr(!0),_n(),An.current=setTimeout(()=>{vr(!1)},3e3),(kn=Zn.onCopy)===null||kn===void 0||kn.call(Zn,en)};i.useEffect(()=>_n,[]);const[er,Cr]=i.useState(!1),[Lr,Hr]=i.useState(!1),[Hn,Pr]=i.useState(!1),[oo,Ur]=i.useState(!1),[co,kr]=i.useState(!1),[_r,xo]=i.useState(!0),[br,Qn]=St(ht,{expandable:!1}),Un=br&&!Hn,{rows:wr=1}=Qn,or=i.useMemo(()=>!Un||Qn.suffix!==void 0||Qn.onEllipsis||Qn.expandable||dt||Yn,[Un,Qn,dt,Yn]);(0,_.Z)(()=>{br&&!or&&(Cr((0,z.G)("webkitLineClamp")),Hr((0,z.G)("textOverflow")))},[or,br]);const Or=i.useMemo(()=>or?!1:wr===1?Lr:er,[or,Lr,er]),fo=Un&&(Or?co:oo),Sr=Un&&wr===1&&Or,ao=Un&&wr>1&&Or,Vr=en=>{var kn;Pr(!0),(kn=Qn.onExpand)===null||kn===void 0||kn.call(Qn,en)},[Ir,Do]=i.useState(0),[sa,fa]=i.useState(0),Oa=(en,kn)=>{let{offsetWidth:Nr}=en;var Tr;Do(Nr),fa(parseInt((Tr=window.getComputedStyle)===null||Tr===void 0?void 0:Tr.call(window,kn).fontSize,10)||0)},Oo=en=>{var kn;Ur(en),oo!==en&&((kn=Qn.onEllipsis)===null||kn===void 0||kn.call(Qn,en))};i.useEffect(()=>{const en=Ke.current;if(br&&Or&&en){const kn=ao?en.offsetHeight{const en=Ke.current;if(typeof IntersectionObserver=="undefined"||!en||!Or||!Un)return;const kn=new IntersectionObserver(()=>{xo(!!en.offsetParent)});return kn.observe(en),()=>{kn.disconnect()}},[Or,Un]);let zo={};Qn.tooltip===!0?zo={title:(_e=Cn.text)!==null&&_e!==void 0?_e:Ie}:i.isValidElement(Qn.tooltip)?zo={title:Qn.tooltip}:typeof Qn.tooltip=="object"?zo=Object.assign({title:(ee=Cn.text)!==null&&ee!==void 0?ee:Ie},Qn.tooltip):zo={title:Qn.tooltip};const va=i.useMemo(()=>{const en=kn=>["string","number"].includes(typeof kn);if(!(!br||Or)){if(en(Cn.text))return Cn.text;if(en(Ie))return Ie;if(en(N))return N;if(en(zo.title))return zo.title}},[br,Or,N,zo.title,fo]);if(bn)return i.createElement(wt,{value:(Y=Cn.text)!==null&&Y!==void 0?Y:typeof Ie=="string"?Ie:"",onSave:yn,onCancel:Fn,onEnd:Cn.onEnd,prefixCls:et,className:we,style:ct,direction:ye,component:T,maxLength:Cn.maxLength,autoSize:Cn.autoSize,enterIcon:Cn.enterIcon});const vi=()=>{const{expandable:en,symbol:kn}=Qn;if(!en)return null;let Nr;return kn?Nr=kn:Nr=Ze==null?void 0:Ze.expand,i.createElement("a",{key:"expand",className:`${et}-expand`,onClick:Vr,"aria-label":Ze==null?void 0:Ze.expand},Nr)},Ba=()=>{if(!dt)return;const{icon:en,tooltip:kn}=Cn,Nr=(0,f.Z)(kn)[0]||(Ze==null?void 0:Ze.edit),Tr=typeof Nr=="string"?Nr:"";return fn.includes("icon")?i.createElement(Fe.Z,{key:"edit",title:kn===!1?"":Nr},i.createElement(h.Z,{ref:Ve,className:`${et}-edit`,onClick:cn,"aria-label":Tr},en||i.createElement(R,{role:"button"}))):null},pe=()=>{if(!Yn)return;const{tooltips:en,icon:kn}=Zn,Nr=Bt(en),Tr=Bt(kn),ur=Kn?Vt(Nr[1],Ze==null?void 0:Ze.copied):Vt(Nr[0],Ze==null?void 0:Ze.copy),to=Kn?Ze==null?void 0:Ze.copied:Ze==null?void 0:Ze.copy,ra=typeof ur=="string"?ur:to;return i.createElement(Fe.Z,{key:"copy",title:ur},i.createElement(h.Z,{className:se()(`${et}-copy`,Kn&&`${et}-copy-success`),onClick:Gn,"aria-label":ra},Kn?Vt(Tr[1],i.createElement(y.Z,null),!0):Vt(Tr[0],i.createElement(M.Z,null),!0)))},Ge=en=>[en&&vi(),Ba(),pe()],Tt=en=>[en&&i.createElement("span",{"aria-hidden":!0,key:"ellipsis"},tt),Qn.suffix,Ge(en)];return i.createElement(re.Z,{onResize:Oa,disabled:!Un||Or},en=>i.createElement(gt,{tooltipProps:zo,enabledEllipsis:Un,isEllipsis:fo},i.createElement(yt,Object.assign({className:se()({[`${et}-${be}`]:be,[`${et}-disabled`]:U,[`${et}-ellipsis`]:br,[`${et}-single-line`]:Un&&wr===1,[`${et}-ellipsis-single-line`]:Sr,[`${et}-ellipsis-multiple-line`]:ao},we),prefixCls:Ae,style:Object.assign(Object.assign({},ct),{WebkitLineClamp:ao?wr:void 0}),component:T,ref:(0,$e.sQ)(en,Ke,qe),direction:ye,onClick:fn.includes("text")?cn:void 0,"aria-label":va==null?void 0:va.toString(),title:N},Ht),i.createElement(Ye,{enabledMeasure:Un&&!Or,text:Ie,rows:wr,width:Ir,fontSize:sa,onEllipsis:Oo},(kn,Nr)=>{let Tr=kn;return kn.length&&Nr&&va&&(Tr=i.createElement("span",{key:"show-content","aria-hidden":!0},Tr)),Nt(ne,i.createElement(i.Fragment,null,Tr,Tt(Nr)))}))))}),jt=function(ne,qe){var _e={};for(var ee in ne)Object.prototype.hasOwnProperty.call(ne,ee)&&qe.indexOf(ee)<0&&(_e[ee]=ne[ee]);if(ne!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,ee=Object.getOwnPropertySymbols(ne);Y{var{ellipsis:_e,rel:ee}=ne,Y=jt(ne,["ellipsis","rel"]);const Ae=Object.assign(Object.assign({},Y),{rel:ee===void 0&&Y.target==="_blank"?"noopener noreferrer":ee});return delete Ae.navigate,i.createElement(Ft,Object.assign({},Ae,{ref:qe,ellipsis:!!_e,component:"a"}))}),pn=i.forwardRef((ne,qe)=>i.createElement(Ft,Object.assign({ref:qe},ne,{component:"div"}))),Sn=function(ne,qe){var _e={};for(var ee in ne)Object.prototype.hasOwnProperty.call(ne,ee)&&qe.indexOf(ee)<0&&(_e[ee]=ne[ee]);if(ne!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,ee=Object.getOwnPropertySymbols(ne);Y{var{ellipsis:_e}=ne,ee=Sn(ne,["ellipsis"]);const Y=i.useMemo(()=>_e&&typeof _e=="object"?(0,J.Z)(_e,["expandable","rows"]):_e,[_e]);return i.createElement(Ft,Object.assign({ref:qe},ee,{ellipsis:Y,component:"span"}))};var an=i.forwardRef(Xt),ln=function(ne,qe){var _e={};for(var ee in ne)Object.prototype.hasOwnProperty.call(ne,ee)&&qe.indexOf(ee)<0&&(_e[ee]=ne[ee]);if(ne!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,ee=Object.getOwnPropertySymbols(ne);Y{const{level:_e=1}=ne,ee=ln(ne,["level"]);let Y;return Pn.includes(_e)?Y=`h${_e}`:Y="h1",i.createElement(Ft,Object.assign({ref:qe},ee,{component:Y}))});const yr=yt;yr.Text=an,yr.Link=un,yr.Title=qn,yr.Paragraph=pn;var Bn=yr},5041:function(Dt){(function(Ne,e){Dt.exports=e()})(this,function(){"use strict";return function(Ne,e){var i=e.prototype,y=i.format;i.format=function(M){var F=this,D=this.$locale();if(!this.isValid())return y.bind(this)(M);var H=this.$utils(),t=(M||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(A){switch(A){case"Q":return Math.ceil((F.$M+1)/3);case"Do":return D.ordinal(F.$D);case"gggg":return F.weekYear();case"GGGG":return F.isoWeekYear();case"wo":return D.ordinal(F.week(),"W");case"w":case"ww":return H.s(F.week(),A==="w"?1:2,"0");case"W":case"WW":return H.s(F.isoWeek(),A==="W"?1:2,"0");case"k":case"kk":return H.s(String(F.$H===0?24:F.$H),A==="k"?1:2,"0");case"X":return Math.floor(F.$d.getTime()/1e3);case"x":return F.$d.getTime();case"z":return"["+F.offsetName()+"]";case"zzz":return"["+F.offsetName("long")+"]";default:return A}});return y.bind(this)(t)}}})},61118:function(Dt){(function(Ne,e){Dt.exports=e()})(this,function(){"use strict";var Ne={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"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,i=/\d\d/,y=/\d\d?/,M=/\d*[^-_:/,()\s\d]+/,F={},D=function(w){return(w=+w)+(w>68?1900:2e3)},H=function(w){return function(K){this[w]=+K}},t=[/[+-]\d\d:?(\d\d)?|Z/,function(w){(this.zone||(this.zone={})).offset=function(K){if(!K||K==="Z")return 0;var re=K.match(/([+-]|\d\d)/g),f=60*re[1]+(+re[2]||0);return f===0?0:re[0]==="+"?-f:f}(w)}],A=function(w){var K=F[w];return K&&(K.indexOf?K:K.s.concat(K.f))},R=function(w,K){var re,f=F.meridiem;if(f){for(var _=1;_<=24;_+=1)if(w.indexOf(f(_,0,K))>-1){re=_>12;break}}else re=w===(K?"pm":"PM");return re},Ce={A:[M,function(w){this.afternoon=R(w,!1)}],a:[M,function(w){this.afternoon=R(w,!0)}],S:[/\d/,function(w){this.milliseconds=100*+w}],SS:[i,function(w){this.milliseconds=10*+w}],SSS:[/\d{3}/,function(w){this.milliseconds=+w}],s:[y,H("seconds")],ss:[y,H("seconds")],m:[y,H("minutes")],mm:[y,H("minutes")],H:[y,H("hours")],h:[y,H("hours")],HH:[y,H("hours")],hh:[y,H("hours")],D:[y,H("day")],DD:[i,H("day")],Do:[M,function(w){var K=F.ordinal,re=w.match(/\d+/);if(this.day=re[0],K)for(var f=1;f<=31;f+=1)K(f).replace(/\[|\]/g,"")===w&&(this.day=f)}],M:[y,H("month")],MM:[i,H("month")],MMM:[M,function(w){var K=A("months"),re=(A("monthsShort")||K.map(function(f){return f.slice(0,3)})).indexOf(w)+1;if(re<1)throw new Error;this.month=re%12||re}],MMMM:[M,function(w){var K=A("months").indexOf(w)+1;if(K<1)throw new Error;this.month=K%12||K}],Y:[/[+-]?\d+/,H("year")],YY:[i,function(w){this.year=D(w)}],YYYY:[/\d{4}/,H("year")],Z:t,ZZ:t};function se(w){var K,re;K=w,re=F&&F.formats;for(var f=(w=K.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(Xe,It,Fe){var xe=Fe&&Fe.toUpperCase();return It||re[Fe]||Ne[Fe]||re[xe].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(xt,He,L){return He||L.slice(1)})})).match(e),_=f.length,k=0;k<_;k+=1){var J=f[k],$e=Ce[J],z=$e&&$e[0],h=$e&&$e[1];f[k]=h?{regex:z,parser:h}:J.replace(/^\[|\]$/g,"")}return function(Xe){for(var It={},Fe=0,xe=0;Fe<_;Fe+=1){var xt=f[Fe];if(typeof xt=="string")xe+=xt.length;else{var He=xt.regex,L=xt.parser,Be=Xe.slice(xe),$t=He.exec(Be)[0];L.call(It,$t),Xe=Xe.replace($t,"")}}return function(oe){var ue=oe.afternoon;if(ue!==void 0){var ce=oe.hours;ue?ce<12&&(oe.hours+=12):ce===12&&(oe.hours=0),delete oe.afternoon}}(It),It}}return function(w,K,re){re.p.customParseFormat=!0,w&&w.parseTwoDigitYear&&(D=w.parseTwoDigitYear);var f=K.prototype,_=f.parse;f.parse=function(k){var J=k.date,$e=k.utc,z=k.args;this.$u=$e;var h=z[1];if(typeof h=="string"){var Xe=z[2]===!0,It=z[3]===!0,Fe=Xe||It,xe=z[2];It&&(xe=z[2]),F=this.$locale(),!Xe&&xe&&(F=re.Ls[xe]),this.$d=function(Be,$t,oe){try{if(["x","X"].indexOf($t)>-1)return new Date(($t==="X"?1e3:1)*Be);var ue=se($t)(Be),ce=ue.year,Je=ue.month,it=ue.day,Te=ue.hours,ut=ue.minutes,X=ue.seconds,W=ue.milliseconds,me=ue.zone,he=new Date,mt=it||(ce||Je?1:he.getDate()),lt=ce||he.getFullYear(),pt=0;ce&&!Je||(pt=Je>0?Je-1:he.getMonth());var ft=Te||0,wt=ut||0,Gt=X||0,Mt=W||0;return me?new Date(Date.UTC(lt,pt,mt,ft,wt,Gt,Mt+60*me.offset*1e3)):oe?new Date(Date.UTC(lt,pt,mt,ft,wt,Gt,Mt)):new Date(lt,pt,mt,ft,wt,Gt,Mt)}catch(yt){return new Date("")}}(J,h,$e),this.init(),xe&&xe!==!0&&(this.$L=this.locale(xe).$L),Fe&&J!=this.format(h)&&(this.$d=new Date("")),F={}}else if(h instanceof Array)for(var xt=h.length,He=1;He<=xt;He+=1){z[1]=h[He-1];var L=re.apply(this,z);if(L.isValid()){this.$d=L.$d,this.$L=L.$L,this.init();break}He===xt&&(this.$d=new Date(""))}else _.call(this,k)}}})},87037:function(Dt){(function(Ne,e){Dt.exports=e()})(this,function(){"use strict";var Ne="day";return function(e,i,y){var M=function(H){return H.add(4-H.isoWeekday(),Ne)},F=i.prototype;F.isoWeekYear=function(){return M(this).year()},F.isoWeek=function(H){if(!this.$utils().u(H))return this.add(7*(H-this.isoWeek()),Ne);var t,A,R,Ce,se=M(this),w=(t=this.isoWeekYear(),A=this.$u,R=(A?y.utc:y)().year(t).startOf("year"),Ce=4-R.isoWeekday(),R.isoWeekday()>4&&(Ce+=7),R.add(Ce,Ne));return se.diff(w,"week")+1},F.isoWeekday=function(H){return this.$utils().u(H)?this.day()||7:this.day(this.day()%7?H:H-7)};var D=F.startOf;F.startOf=function(H,t){var A=this.$utils(),R=!!A.u(t)||t;return A.p(H)==="isoweek"?R?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):D.bind(this)(H,t)}}})},11307:function(Dt){(function(Ne,e){Dt.exports=e()})(this,function(){"use strict";return function(Ne,e,i){var y=e.prototype,M=function(A){return A&&(A.indexOf?A:A.s)},F=function(A,R,Ce,se,w){var K=A.name?A:A.$locale(),re=M(K[R]),f=M(K[Ce]),_=re||f.map(function(J){return J.slice(0,se)});if(!w)return _;var k=K.weekStart;return _.map(function(J,$e){return _[($e+(k||0))%7]})},D=function(){return i.Ls[i.locale()]},H=function(A,R){return A.formats[R]||function(Ce){return Ce.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(se,w,K){return w||K.slice(1)})}(A.formats[R.toUpperCase()])},t=function(){var A=this;return{months:function(R){return R?R.format("MMMM"):F(A,"months")},monthsShort:function(R){return R?R.format("MMM"):F(A,"monthsShort","months",3)},firstDayOfWeek:function(){return A.$locale().weekStart||0},weekdays:function(R){return R?R.format("dddd"):F(A,"weekdays")},weekdaysMin:function(R){return R?R.format("dd"):F(A,"weekdaysMin","weekdays",2)},weekdaysShort:function(R){return R?R.format("ddd"):F(A,"weekdaysShort","weekdays",3)},longDateFormat:function(R){return H(A.$locale(),R)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};y.localeData=function(){return t.bind(this)()},i.localeData=function(){var A=D();return{firstDayOfWeek:function(){return A.weekStart||0},weekdays:function(){return i.weekdays()},weekdaysShort:function(){return i.weekdaysShort()},weekdaysMin:function(){return i.weekdaysMin()},months:function(){return i.months()},monthsShort:function(){return i.monthsShort()},longDateFormat:function(R){return H(A,R)},meridiem:A.meridiem,ordinal:A.ordinal}},i.months=function(){return F(D(),"months")},i.monthsShort=function(){return F(D(),"monthsShort","months",3)},i.weekdays=function(A){return F(D(),"weekdays",null,null,A)},i.weekdaysShort=function(A){return F(D(),"weekdaysShort","weekdays",3,A)},i.weekdaysMin=function(A){return F(D(),"weekdaysMin","weekdays",2,A)}}})},1667:function(Dt){(function(Ne,e){Dt.exports=e()})(this,function(){"use strict";var Ne="month",e="quarter";return function(i,y){var M=y.prototype;M.quarter=function(H){return this.$utils().u(H)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(H-1))};var F=M.add;M.add=function(H,t){return H=Number(H),this.$utils().p(t)===e?this.add(3*H,Ne):F.bind(this)(H,t)};var D=M.startOf;M.startOf=function(H,t){var A=this.$utils(),R=!!A.u(t)||t;if(A.p(H)===e){var Ce=this.quarter()-1;return R?this.month(3*Ce).startOf(Ne).startOf("day"):this.month(3*Ce+2).endOf(Ne).endOf("day")}return D.bind(this)(H,t)}}})},67218:function(Dt){(function(Ne,e){Dt.exports=e()})(this,function(){"use strict";return function(Ne,e,i){Ne=Ne||{};var y=e.prototype,M={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function F(H,t,A,R){return y.fromToBase(H,t,A,R)}i.en.relativeTime=M,y.fromToBase=function(H,t,A,R,Ce){for(var se,w,K,re=A.$locale().relativeTime||M,f=Ne.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],_=f.length,k=0;k<_;k+=1){var J=f[k];J.d&&(se=R?i(H).diff(A,J.d,!0):A.diff(H,J.d,!0));var $e=(Ne.rounding||Math.round)(Math.abs(se));if(K=se>0,$e<=J.r||!J.r){$e<=1&&k>0&&(J=f[k-1]);var z=re[J.l];Ce&&($e=Ce(""+$e)),w=typeof z=="string"?z.replace("%d",$e):z($e,t,J.l,K);break}}if(t)return w;var h=K?re.future:re.past;return typeof h=="function"?h(w):h.replace("%s",w)},y.to=function(H,t){return F(H,t,this,!0)},y.from=function(H,t){return F(H,t,this)};var D=function(H){return H.$u?i.utc():i()};y.toNow=function(H){return this.to(D(this),H)},y.fromNow=function(H){return this.from(D(this),H)}}})},43153:function(Dt){(function(Ne,e){Dt.exports=e()})(this,function(){"use strict";var Ne="week",e="year";return function(i,y,M){var F=y.prototype;F.week=function(D){if(D===void 0&&(D=null),D!==null)return this.add(7*(D-this.week()),"day");var H=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var t=M(this).startOf(e).add(1,e).date(H),A=M(this).endOf(Ne);if(t.isBefore(A))return 1}var R=M(this).startOf(e).date(H).startOf(Ne).subtract(1,"millisecond"),Ce=this.diff(R,Ne,!0);return Ce<0?M(this).startOf("week").week():Math.ceil(Ce)},F.weeks=function(D){return D===void 0&&(D=null),this.week(D)}}})},67579:function(Dt){(function(Ne,e){Dt.exports=e()})(this,function(){"use strict";return function(Ne,e){e.prototype.weekYear=function(){var i=this.month(),y=this.week(),M=this.year();return y===1&&i===11?M+1:i===0&&y>=52?M-1:M}}})},45896:function(Dt){(function(Ne,e){Dt.exports=e()})(this,function(){"use strict";return function(Ne,e){e.prototype.weekday=function(i){var y=this.$locale().weekStart||0,M=this.$W,F=(M-1}function Y(pe,Ge){var Tt=this.__data__,en=Ke(Tt,pe);return en<0?(++this.size,Tt.push([pe,Ge])):Tt[en][1]=Ge,this}Bn.prototype.clear=ne,Bn.prototype.delete=qe,Bn.prototype.get=_e,Bn.prototype.has=ee,Bn.prototype.set=Y;function Ae(pe){var Ge=-1,Tt=pe==null?0:pe.length;for(this.clear();++Ge1?Tt[kn-1]:void 0,Tr=kn>2?Tt[2]:void 0;for(Nr=pe.length>3&&typeof Nr=="function"?(kn--,Nr):void 0,Tr&&Hr(Tt[0],Tt[1],Tr)&&(Nr=kn<3?void 0:Nr,kn=1),Ge=Object(Ge);++en-1&&pe%1==0&&pe0){if(++Ge>=M)return arguments[0]}else Ge=0;return pe.apply(void 0,arguments)}}function Qn(pe){if(pe!=null){try{return $.call(pe)}catch(Ge){}try{return pe+""}catch(Ge){}}return""}function Un(pe,Ge){return pe===Ge||pe!==pe&&Ge!==Ge}var wr=dt(function(){return arguments}())?dt:function(pe){return Do(pe)&&b.call(pe,"callee")&&!tt.call(pe,"callee")},or=Array.isArray;function Or(pe){return pe!=null&&Vr(pe.length)&&!ao(pe)}function fo(pe){return Do(pe)&&Or(pe)}var Sr=Lt||Ba;function ao(pe){if(!Ir(pe))return!1;var Ge=Ht(pe);return Ge==w||Ge==K||Ge==A||Ge==J}function Vr(pe){return typeof pe=="number"&&pe>-1&&pe%1==0&&pe<=D}function Ir(pe){var Ge=typeof pe;return pe!=null&&(Ge=="object"||Ge=="function")}function Do(pe){return pe!=null&&typeof pe=="object"}function sa(pe){if(!Do(pe)||Ht(pe)!=k)return!1;var Ge=Vt(pe);if(Ge===null)return!0;var Tt=b.call(Ge,"constructor")&&Ge.constructor;return typeof Tt=="function"&&Tt instanceof Tt&&$.call(Tt)==q}var fa=Gt?St(Gt):bn;function Oa(pe){return vr(pe,Oo(pe))}function Oo(pe){return Or(pe)?te(pe,!0):Ct(pe)}var zo=An(function(pe,Ge,Tt){fn(pe,Ge,Tt)});function va(pe){return function(){return pe}}function vi(pe){return pe}function Ba(){return!1}Dt.exports=zo},37592:function(Dt){var Ne=NaN,e="[object Symbol]",i=/^\s+|\s+$/g,y=/^[-+]0x[0-9a-f]+$/i,M=/^0b[01]+$/i,F=/^0o[0-7]+$/i,D=parseInt,H=Object.prototype,t=H.toString;function A(w){var K=typeof w;return!!w&&(K=="object"||K=="function")}function R(w){return!!w&&typeof w=="object"}function Ce(w){return typeof w=="symbol"||R(w)&&t.call(w)==e}function se(w){if(typeof w=="number")return w;if(Ce(w))return Ne;if(A(w)){var K=typeof w.valueOf=="function"?w.valueOf():w;w=A(K)?K+"":K}if(typeof w!="string")return w===0?w:+w;w=w.replace(i,"");var re=M.test(w);return re||F.test(w)?D(w.slice(2),re?2:8):y.test(w)?Ne:+w}Dt.exports=se},73532:function(Dt,Ne,e){var i=e(87500),y=e(58260);function M(F,D,H){(H!==void 0&&!y(F[D],H)||H===void 0&&!(D in F))&&i(F,D,H)}Dt.exports=M},61701:function(Dt,Ne,e){var i=e(44003),y=e(96313),M=y(i);Dt.exports=M},39943:function(Dt,Ne,e){var i=e(72545),y=i();Dt.exports=y},44003:function(Dt,Ne,e){var i=e(39943),y=e(62096);function M(F,D){return F&&i(F,D,y)}Dt.exports=M},62902:function(Dt){function Ne(e,i){return e!=null&&i in Object(e)}Dt.exports=Ne},2972:function(Dt,Ne,e){var i=e(19549),y=e(34662),M=1,F=2;function D(H,t,A,R){var Ce=A.length,se=Ce,w=!R;if(H==null)return!se;for(H=Object(H);Ce--;){var K=A[Ce];if(w&&K[2]?K[1]!==H[K[0]]:!(K[0]in H))return!1}for(;++Ce1&&(nt=V.addDate(nt,-7)),nt}function ce(v,V,G){var Pe=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1;switch(V){case"year":return G.addYear(v,Pe*10);case"quarter":case"month":return G.addYear(v,Pe);default:return G.addMonth(v,Pe)}}function Je(v,V){var G=V.generateConfig,Pe=V.locale,ve=V.format;return typeof ve=="function"?ve(v):G.locale.format(Pe.locale,v,ve)}function it(v,V){var G=V.generateConfig,Pe=V.locale,ve=V.formatList;return!v||typeof ve[0]=="function"?null:G.locale.parse(Pe.locale,v,ve)}function Te(v){var V=v.cellDate,G=v.mode,Pe=v.disabledDate,ve=v.generateConfig;if(!Pe)return!1;var vt=function(mn,Ot,tn){for(var xn=Ot;xn<=tn;){var Wn=void 0;switch(mn){case"date":{if(Wn=ve.setDate(V,xn),!Pe(Wn))return!1;break}case"month":{if(Wn=ve.setMonth(V,xn),!Te({cellDate:Wn,mode:"month",generateConfig:ve,disabledDate:Pe}))return!1;break}case"year":{if(Wn=ve.setYear(V,xn),!Te({cellDate:Wn,mode:"year",generateConfig:ve,disabledDate:Pe}))return!1;break}}xn+=1}return!0};switch(G){case"date":case"week":return Pe(V);case"month":{var nt=1,qt=ve.getDate(ve.getEndDate(V));return vt("date",nt,qt)}case"quarter":{var Jt=Math.floor(ve.getMonth(V)/3)*3,hn=Jt+2;return vt("month",Jt,hn)}case"year":return vt("month",0,11);case"decade":{var Nn=ve.getYear(V),En=Math.floor(Nn/J)*J,_t=En+J-1;return vt("year",En,_t)}}}function ut(v,V){var G=V.formatList,Pe=V.generateConfig,ve=V.locale;return(0,_.Z)(function(){if(!v)return[[""],""];for(var vt="",nt=[],qt=0;qt1&&arguments[1]!==void 0?arguments[1]:!1;if(cancelAnimationFrame(hn.current),xn){Jt(tn);return}hn.current=requestAnimationFrame(function(){Jt(tn)})}var En=ut(qt,{formatList:G,generateConfig:Pe,locale:ve}),_t=(0,R.Z)(En,2),sn=_t[1];function mn(tn){Nn(tn)}function Ot(){var tn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;Nn(null,tn)}return(0,f.useEffect)(function(){Ot(!0)},[v]),(0,f.useEffect)(function(){return function(){return cancelAnimationFrame(hn.current)}},[]),[sn,mn,Ot]}var W=e(29639),me=e(61834),he=e(29140),mt=e(46499),lt=new Map;function pt(v,V){var G;function Pe(){(0,mt.Z)(v)?V():G=(0,me.Z)(function(){Pe()})}return Pe(),function(){me.Z.cancel(G)}}function ft(v,V,G){if(lt.get(v)&&cancelAnimationFrame(lt.get(v)),G<=0){lt.set(v,requestAnimationFrame(function(){v.scrollTop=V}));return}var Pe=V-v.scrollTop,ve=Pe/G*10;lt.set(v,requestAnimationFrame(function(){v.scrollTop+=ve,v.scrollTop!==V&&ft(v,V,G-10)}))}function wt(v,V){var G=V.onLeftRight,Pe=V.onCtrlLeftRight,ve=V.onUpDown,vt=V.onPageUpDown,nt=V.onEnter,qt=v.which,Jt=v.ctrlKey,hn=v.metaKey;switch(qt){case W.Z.LEFT:if(Jt||hn){if(Pe)return Pe(-1),!0}else if(G)return G(-1),!0;break;case W.Z.RIGHT:if(Jt||hn){if(Pe)return Pe(1),!0}else if(G)return G(1),!0;break;case W.Z.UP:if(ve)return ve(-1),!0;break;case W.Z.DOWN:if(ve)return ve(1),!0;break;case W.Z.PAGE_UP:if(vt)return vt(-1),!0;break;case W.Z.PAGE_DOWN:if(vt)return vt(1),!0;break;case W.Z.ENTER:if(nt)return nt(),!0;break}return!1}function Gt(v,V,G,Pe){var ve=v;if(!ve)switch(V){case"time":ve=Pe?"hh:mm:ss a":"HH:mm:ss";break;case"week":ve="gggg-wo";break;case"month":ve="YYYY-MM";break;case"quarter":ve="YYYY-[Q]Q";break;case"year":ve="YYYY";break;default:ve=G?"YYYY-MM-DD HH:mm:ss":"YYYY-MM-DD"}return ve}function Mt(v,V,G){var Pe=v==="time"?8:10,ve=typeof V=="function"?V(G.getNow()).length:V.length;return Math.max(Pe,ve)+2}var yt=null,St=new Set;function fe(v){return!yt&&typeof window!="undefined"&&window.addEventListener&&(yt=function(G){(0,he.Z)(St).forEach(function(Pe){Pe(G)})},window.addEventListener("mousedown",yt)),St.add(v),function(){St.delete(v),St.size===0&&(window.removeEventListener("mousedown",yt),yt=null)}}function Re(v){var V=v.target;if(v.composed&&V.shadowRoot){var G;return((G=v.composedPath)===null||G===void 0?void 0:G.call(v)[0])||V}return V}var Oe=function(V){return V==="month"||V==="date"?"year":V},Le=function(V){return V==="date"?"month":V},O=function(V){return V==="month"||V==="date"?"quarter":V},ke=function(V){return V==="date"?"week":V},$={year:Oe,month:Le,quarter:O,week:ke,time:null,date:null};function b(v,V){return v.some(function(G){return G&&G.contains(V)})}function Z(v){var V=v.open,G=v.value,Pe=v.isClickOutside,ve=v.triggerOpen,vt=v.forwardKeyDown,nt=v.onKeyDown,qt=v.blurToCancel,Jt=v.onSubmit,hn=v.onCancel,Nn=v.onFocus,En=v.onBlur,_t=v.changeOnBlur,sn=(0,f.useState)(!1),mn=(0,R.Z)(sn,2),Ot=mn[0],tn=mn[1],xn=(0,f.useState)(!1),Wn=(0,R.Z)(xn,2),Jn=Wn[0],nr=Wn[1],dr=(0,f.useRef)(!1),ar=(0,f.useRef)(!1),gr=(0,f.useRef)(!1),Co={onMouseDown:function(){tn(!0),ve(!0)},onKeyDown:function(Ho){var wo=function(){gr.current=!0};if(nt(Ho,wo),!gr.current){switch(Ho.which){case W.Z.ENTER:{V?Jt()!==!1&&tn(!0):ve(!0),Ho.preventDefault();return}case W.Z.TAB:{Ot&&V&&!Ho.shiftKey?(tn(!1),Ho.preventDefault()):!Ot&&V&&!vt(Ho)&&Ho.shiftKey&&(tn(!0),Ho.preventDefault());return}case W.Z.ESC:{tn(!0),hn();return}}!V&&![W.Z.SHIFT].includes(Ho.which)?ve(!0):Ot||vt(Ho)}},onFocus:function(Ho){tn(!0),nr(!0),Nn&&Nn(Ho)},onBlur:function(Ho){if(dr.current||!Pe(document.activeElement)){dr.current=!1;return}qt?setTimeout(function(){for(var wo=document,ca=wo.activeElement;ca&&ca.shadowRoot;)ca=ca.shadowRoot.activeElement;Pe(ca)&&hn()},0):V&&(ve(!1),ar.current&&Jt()),nr(!1),En==null||En(Ho)}};return(0,f.useEffect)(function(){ar.current=!1},[V]),(0,f.useEffect)(function(){ar.current=!0},[G]),(0,f.useEffect)(function(){return fe(function(Yr){var Ho=Re(Yr),wo=Pe(Ho);V&&(wo?!_t&&(!Jn||wo)&&ve(!1):(dr.current=!0,(0,me.Z)(function(){dr.current=!1})))})}),[Co,{focused:Jn,typing:Ot}]}function ae(v,V){return f.useMemo(function(){return v||(V?((0,K.ZP)(!1,"`ranges` is deprecated. Please use `presets` instead."),Object.entries(V).map(function(G){var Pe=(0,R.Z)(G,2),ve=Pe[0],vt=Pe[1];return{label:ve,value:vt}})):[])},[v,V])}var q=e(81334);function Ye(v){var V=v.valueTexts,G=v.onTextChange,Pe=f.useState(""),ve=(0,R.Z)(Pe,2),vt=ve[0],nt=ve[1],qt=f.useRef([]);qt.current=V;function Jt(Nn){nt(Nn),G(Nn)}function hn(){nt(qt.current[0])}return(0,q.Z)(function(){V.every(function(Nn){return Nn!==vt})&&hn()},[V.join("||")]),[vt,Jt,hn]}var ot=f.createContext({}),gt=ot,Et=e(38790);function Nt(v){var V=v.cellRender,G=v.monthCellRender,Pe=v.dateRender,ve=f.useMemo(function(){if(V)return V;if(!(!G&&!Pe))return function(vt,nt){var qt=vt;return Pe&&nt.type==="date"?Pe(qt,nt.today):G&&nt.type==="month"?G(qt,nt.locale):nt.originNode}},[V,G,Pe]);return ve}function Vt(v,V){for(var G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"0",Pe=String(v);Pe.length=1?G|0:1,nt=v;nt<=V;nt+=vt)ve.push({label:Vt(nt,2),value:nt,disabled:(Pe||[]).includes(nt)});return ve}function Se(v){var V=v.generateConfig,G=v.prefixCls,Pe=v.operationRef,ve=v.activeColumnIndex,vt=v.value,nt=v.showHour,qt=v.showMinute,Jt=v.showSecond,hn=v.use12Hours,Nn=v.hourStep,En=Nn===void 0?1:Nn,_t=v.minuteStep,sn=_t===void 0?1:_t,mn=v.secondStep,Ot=mn===void 0?1:mn,tn=v.disabledHours,xn=v.disabledMinutes,Wn=v.disabledSeconds,Jn=v.disabledTime,nr=v.hideDisabledOptions,dr=v.onSelect,ar=v.cellRender,gr=v.locale,Co=[],Yr="".concat(G,"-content"),Ho="".concat(G,"-time-panel"),wo,ca=vt?V.getHour(vt):-1,za=ca,Ga=vt?V.getMinute(vt):-1,Za=vt?V.getSecond(vt):-1,oa=V.getNow(),ka=f.useMemo(function(){if(Jn){var Zo=Jn(oa);return[Zo.disabledHours,Zo.disabledMinutes,Zo.disabledSeconds]}return[tn,xn,Wn]},[tn,xn,Wn,Jn,oa]),wi=(0,R.Z)(ka,3),Mi=wi[0],mi=wi[1],Ni=wi[2],pl=ht(0,23,En,Mi&&Mi()),Ei=(0,_.Z)(function(){return pl},pl,Ie);hn&&(wo=za>=12,za%=12);var Ml=f.useMemo(function(){if(!hn)return[!1,!1];var Zo=[!0,!0];return Ei.forEach(function(Qa){var Ra=Qa.disabled,$i=Qa.value;Ra||($i>=12?Zo[1]=!1:Zo[0]=!1)}),Zo},[hn,Ei]),nl=(0,R.Z)(Ml,2),yl=nl[0],Va=nl[1],Pi=f.useMemo(function(){return hn?Ei.filter(wo?function(Zo){return Zo.value>=12}:function(Zo){return Zo.value<12}).map(function(Zo){var Qa=Zo.value%12,Ra=Qa===0?"12":Vt(Qa,2);return(0,A.Z)((0,A.Z)({},Zo),{},{label:Ra,value:Qa})}):Ei},[hn,wo,Ei]),gi=ht(0,59,sn,mi&&mi(ca)),Ki=ht(0,59,Ot,Ni&&Ni(ca,Ga)),Ti=ct({value:vt,generateConfig:V,disabledMinutes:mi,disabledSeconds:Ni,minutes:gi,seconds:Ki,use12Hours:hn});Pe.current={onUpDown:function(Qa){var Ra=Co[ve];if(Ra)for(var $i=Ra.units.findIndex(function(jl){return jl.value===Ra.value}),Fi=Ra.units.length,Ia=1;Ia2&&arguments[2]!==void 0?arguments[2]:!1;(Wa===tn||Ka)&&(Hl(lr),Co&&Co(lr),Ti&&Ti(lr,Ro),Yr&&!$t(Jt,lr,Li)&&!(sn!=null&&sn(lr))&&Yr(lr))},Yi=function(lr){if(or.includes(Wa)){var Ro,Ka,qa=Wa==="date";switch(lr===W.Z.PAGE_UP||lr===W.Z.PAGE_DOWN?Ka=qa?Jt.addMonth:Jt.addYear:Ka=qa?Jt.addDate:Jt.addMonth,lr){case W.Z.LEFT:case W.Z.PAGE_UP:Ro=Ka(Ai,-1);break;case W.Z.RIGHT:case W.Z.PAGE_DOWN:Ro=Ka(Ai,1);break;case W.Z.UP:case W.Z.DOWN:Ro=Ka(Ai,Number("".concat(lr===W.Z.UP?"-":"").concat(qa?z:cn)));break}if(Ro)return!(sn!=null&&sn(Ro))}return!0},kl=function(lr){if(Ia.current&&Ia.current.onKeyDown){var Ro=!0,Ka=lr.which;if([W.Z.LEFT,W.Z.RIGHT,W.Z.UP,W.Z.DOWN,W.Z.PAGE_UP,W.Z.PAGE_DOWN,W.Z.ENTER].includes(Ka)&&(lr.preventDefault(),Ka!==W.Z.ENTER&&Wn===0&&(Ro=Yi(Ka))),Ro)return Ia.current.onKeyDown(lr)}return(0,K.ZP)(!1,"Panel not correct handle keyDown event. Please help to fire issue about this."),!1},Ja=function(lr){Ia.current&&Ia.current.onBlur&&Ia.current.onBlur(lr)};Ki&&Ra!=="right"&&(Ki.current={onKeyDown:kl,onClose:function(){Ia.current&&Ia.current.onClose&&Ia.current.onClose()}}),f.useEffect(function(){hn&&!rl.current&&sl(hn)},[hn]),f.useEffect(function(){rl.current=!1},[]);var Gi,Rl=Nt({cellRender:Ml,monthCellRender:Ei,dateRender:pl}),ma=(0,A.Z)((0,A.Z)({},v),{},{cellRender:Rl,operationRef:Ia,prefixCls:ve,viewDate:Ai,value:Li,onViewDateChange:ol,sourceMode:Xi,onPanelChange:Hi,disabledDate:sn});switch(delete ma.onChange,delete ma.onSelect,Wa){case"decade":Gi=f.createElement(Ct,(0,H.Z)({},ma,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}}));break;case"year":Gi=f.createElement(Qn,(0,H.Z)({},ma,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}}));break;case"month":Gi=f.createElement(Kn,(0,H.Z)({},ma,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}}));break;case"quarter":Gi=f.createElement(Lr,(0,H.Z)({},ma,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}}));break;case"week":Gi=f.createElement(Hn,(0,H.Z)({},ma,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}}));break;case"time":delete ma.showTime,Gi=f.createElement(x,(0,H.Z)({},ma,(0,Et.Z)(nr)==="object"?nr:null,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}}));break;default:nr?Gi=f.createElement(Ze,(0,H.Z)({},ma,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}})):Gi=f.createElement(Y,(0,H.Z)({},ma,{onSelect:function(lr,Ro){ol(lr),ri(lr,Ro)}}))}var Tl,bl,Uo=function(){var lr=Jt.getNow(),Ro=Xt(Jt.getHour(lr),Jt.getMinute(lr),Jt.getSecond(lr),yl?ka:1,Va?Mi:1,Pi?Ni:1),Ka=pn(Jt,lr,Ro[0],Ro[1],Ro[2]);ri(Ka,"submit")};Di||(Tl=Un(ve,Wa,ar),nr&&Wa!=="date"?bl=null:bl=wr({prefixCls:ve,components:Ga,needConfirmButton:nl,okDisabled:!Li||sn&&sn(Li),locale:qt,showNow:Jn,onNow:nl&&Uo,onOk:function(){Li&&(ri(Li,"submit",!0),za&&za(Li))}}));var Gl;if(dr&&Wa==="date"&&tn==="date"&&!nr){var Sl=Jt.getNow(),Bl="".concat(ve,"-today-btn"),Dl=sn&&sn(Sl);Gl=f.createElement("a",{className:se()(Bl,Dl&&"".concat(Bl,"-disabled")),"aria-disabled":Dl,onClick:function(){Dl||ri(Sl,"mouse",!0)}},qt.today)}return f.createElement(gt.Provider,{value:(0,A.Z)((0,A.Z)({},gi),{},{mode:Wa,hideHeader:"hideHeader"in v?gr:gi.hideHeader,hidePrevBtn:Qa&&Ra==="right",hideNextBtn:Qa&&Ra==="left"})},f.createElement("div",{tabIndex:Wn,className:se()("".concat(ve,"-panel"),vt,(V={},(0,t.Z)(V,"".concat(ve,"-panel-has-range"),$i&&$i[0]&&$i[1]),(0,t.Z)(V,"".concat(ve,"-panel-has-range-hover"),Fi&&Fi[0]&&Fi[1]),(0,t.Z)(V,"".concat(ve,"-panel-rtl"),Za==="rtl"),V)),style:nt,onKeyDown:kl,onBlur:Ja,onMouseDown:wo},Gi,Tl||bl||Gl?f.createElement("div",{className:"".concat(ve,"-footer")},Tl,bl,Gl):null))}var fo=Or,Sr=e(99863),ao={bottomLeft:{points:["tl","bl"],offset:[0,4],overflow:{adjustX:1,adjustY:1}},bottomRight:{points:["tr","br"],offset:[0,4],overflow:{adjustX:1,adjustY:1}},topLeft:{points:["bl","tl"],offset:[0,-4],overflow:{adjustX:0,adjustY:1}},topRight:{points:["br","tr"],offset:[0,-4],overflow:{adjustX:0,adjustY:1}}};function Vr(v){var V,G=v.prefixCls,Pe=v.popupElement,ve=v.popupStyle,vt=v.visible,nt=v.dropdownClassName,qt=v.dropdownAlign,Jt=v.transitionName,hn=v.getPopupContainer,Nn=v.children,En=v.range,_t=v.popupPlacement,sn=v.direction,mn="".concat(G,"-dropdown"),Ot=function(){return _t!==void 0?_t:sn==="rtl"?"bottomRight":"bottomLeft"};return f.createElement(Sr.Z,{showAction:[],hideAction:[],popupPlacement:Ot(),builtinPlacements:ao,prefixCls:mn,popupTransitionName:Jt,popup:Pe,popupAlign:qt,popupVisible:vt,popupClassName:se()(nt,(V={},(0,t.Z)(V,"".concat(mn,"-range"),En),(0,t.Z)(V,"".concat(mn,"-rtl"),sn==="rtl"),V)),popupStyle:ve,getPopupContainer:hn},Nn)}var Ir=Vr;function Do(v){var V=v.prefixCls,G=v.presets,Pe=v.onClick,ve=v.onHover;return G.length?f.createElement("div",{className:"".concat(V,"-presets")},f.createElement("ul",null,G.map(function(vt,nt){var qt=vt.label,Jt=vt.value;return f.createElement("li",{key:nt,onClick:function(){return Pe==null?void 0:Pe(jt(Jt))},onMouseEnter:function(){return ve==null?void 0:ve(jt(Jt))},onMouseLeave:function(){return ve==null?void 0:ve(null)}},qt)}))):null}function sa(v){var V=v.picker,G=v.disabledHours,Pe=v.disabledMinutes,ve=v.disabledSeconds;V==="time"&&(G||Pe||ve)&&warning(!1,"'disabledHours', 'disabledMinutes', 'disabledSeconds' will be removed in the next major version, please use 'disabledTime' instead.")}function fa(v,V,G){var Pe=(0,Et.Z)(V)==="object"?V.clearIcon:G;return Pe||f.createElement("span",{className:"".concat(v,"-clear-btn")})}function Oa(v){var V,G=v,Pe=G.prefixCls,ve=Pe===void 0?"rc-picker":Pe,vt=G.id,nt=G.name,qt=G.tabIndex,Jt=G.style,hn=G.className,Nn=G.dropdownClassName,En=G.dropdownAlign,_t=G.popupStyle,sn=G.transitionName,mn=G.generateConfig,Ot=G.locale,tn=G.inputReadOnly,xn=G.allowClear,Wn=G.autoFocus,Jn=G.showTime,nr=G.picker,dr=nr===void 0?"date":nr,ar=G.format,gr=G.use12Hours,Co=G.value,Yr=G.defaultValue,Ho=G.presets,wo=G.open,ca=G.defaultOpen,za=G.defaultOpenValue,Ga=G.suffixIcon,Za=G.clearIcon,oa=G.disabled,ka=G.disabledDate,wi=G.placeholder,Mi=G.getPopupContainer,mi=G.pickerRef,Ni=G.panelRender,pl=G.onChange,Ei=G.onOpenChange,Ml=G.onFocus,nl=G.onBlur,yl=G.onMouseDown,Va=G.onMouseUp,Pi=G.onMouseEnter,gi=G.onMouseLeave,Ki=G.onContextMenu,Ti=G.onClick,Di=G.onKeyDown,ei=G.onSelect,Zo=G.direction,Qa=G.autoComplete,Ra=Qa===void 0?"off":Qa,$i=G.inputRender,Fi=G.changeOnBlur,Ia=f.useRef(null),rl=dr==="date"&&!!Jn||dr==="time",jl=ae(Ho),Vi=tt(Gt(ar,dr,Jn,gr)),Li=f.useRef(null),Hl=f.useRef(null),Xl=f.useRef(null),Vl=(0,w.Z)(null,{value:Co,defaultValue:Yr}),Ai=(0,R.Z)(Vl,2),sl=Ai[0],ol=Ai[1],$l=f.useState(sl),Ol=(0,R.Z)($l,2),Cl=Ol[0],Wa=Ol[1],ji=f.useRef(null),Zl=(0,w.Z)(!1,{value:wo,defaultValue:ca,postState:function(on){return oa?!1:on},onChange:function(on){Ei&&Ei(on),!on&&ji.current&&ji.current.onClose&&ji.current.onClose()}}),Nl=(0,R.Z)(Zl,2),Xi=Nl[0],cl=Nl[1],Hi=ut(Cl,{formatList:Vi,generateConfig:mn,locale:Ot}),ri=(0,R.Z)(Hi,2),Yi=ri[0],kl=ri[1],Ja=Ye({valueTexts:Yi,onTextChange:function(on){var $n=it(on,{locale:Ot,formatList:Vi,generateConfig:mn});$n&&(!ka||!ka($n))&&Wa($n)}}),Gi=(0,R.Z)(Ja,3),Rl=Gi[0],ma=Gi[1],Tl=Gi[2],bl=function(on){Wa(on),ol(on),pl&&!$t(mn,sl,on)&&pl(on,on?Je(on,{generateConfig:mn,locale:Ot,format:Vi[0]}):"")},Uo=function(on){oa&&on||cl(on)},Gl=function(on){return Xi&&ji.current&&ji.current.onKeyDown?ji.current.onKeyDown(on):((0,K.ZP)(!1,"Picker not correct forward KeyDown operation. Please help to fire issue about this."),!1)},Sl=function(){for(var on=arguments.length,$n=new Array(on),jn=0;jn_t(hn);case"month":return En(Ot)>En(hn);case"week":return Nn(Ot)>Nn(hn);default:return!He(qt,Ot,hn)&&qt.isAfter(Ot,hn)}return!1},[vt,nt[1],hn,V]),mn=f.useCallback(function(Ot){if(nt[1]||vt&&vt(Ot))return!0;if(nt[0]&&Jt)return!He(qt,Ot,hn)&&qt.isAfter(Jt,Ot);if(!V&&Jt)switch(G){case"quarter":return _t(Ot)<_t(Jt);case"month":return En(Ot)0&&arguments[0]!==void 0?arguments[0]:!1,Zr=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Jr=null;ie&&da&&da[0]&&da[1]&&Ot.isAfter(da[1],da[0])&&(Jr=da);var _o=gr;if(gr&&(0,Et.Z)(gr)==="object"&&gr.defaultValue){var La=gr.defaultValue;_o=(0,A.Z)((0,A.Z)({},gr),{},{defaultValue:st(La,le)||void 0})}return f.createElement(Ut.Provider,{value:{inRange:!0,panelPosition:qo,rangedValue:hi||io,hoverRangedValue:Jr}},f.createElement(fo,(0,H.Z)({},v,Zr,{cellRender:Ta,showTime:_o,mode:qa[le],generateConfig:Ot,style:void 0,direction:Ai,disabledDate:le===0?gn:Yt,disabledTime:function(el){return ka?ka(el,le===0?"start":"end"):!1},className:se()((0,t.Z)({},"".concat(nt,"-panel-focused"),le===0?!Qi:!Ci)),value:st(io,le),locale:tn,tabIndex:-1,onPanelChange:function(el,vl){le===0&&tr(!0),le===1&&ti(!0),xl(Ft(qa,vl,le),Ft(io,el,le));var al=el;qo==="right"&&qa[le]===vl&&(al=ce(al,vl,Ot,-1)),Sl(al,le)},onOk:null,onSelect:void 0,onChange:void 0,defaultValue:le===0?st(io,1):st(io,0)})))}var li=0,Ji=0;if(le&&Zl.current&&Xi.current&&ji.current&&ri.current){li=Zl.current.offsetWidth+Xi.current.offsetWidth;var qi=ri.current.offsetLeft>li?ri.current.offsetLeft-li:ri.current.offsetLeft,Ll=ji.current.offsetWidth,ds=ri.current.offsetWidth;Ll&&ds&&li>Ll-ds-(Ai==="rtl"?0:qi)&&(Ji=li)}var us=Ai==="rtl"?{right:li}:{left:li};function _i(){var qo,Zr=Un(nt,qa[le],Ti),Jr=wr({prefixCls:nt,components:Xl,needConfirmButton:Cl,okDisabled:!st(io,le)||oa&&oa(io[le]),locale:tn,onOk:function(){var ml=st(io,le);ml&&(jn(io,le),Li==null||Li(io),Me(!1,le,"confirm"))}});if(ar!=="time"&&!gr){var _o=Gl(le),La=ce(_o,ar,Ot),zl=qa[le],el=zl===ar,vl=Ua(el?"left":!1,{pickerValue:_o,onPickerValueChange:function(ml){Sl(ml,le)}}),al=Ua("right",{pickerValue:La,onPickerValueChange:function(ml){Sl(ce(ml,ar,Ot,-1),le)}});Ai==="rtl"?qo=f.createElement(f.Fragment,null,al,el&&vl):qo=f.createElement(f.Fragment,null,vl,el&&al)}else qo=Ua();var Wl=f.createElement("div",{className:"".concat(nt,"-panel-layout")},f.createElement(Do,{prefixCls:nt,presets:Fa,onClick:function(ml){jn(ml,null),Me(!1,le,"preset")},onHover:function(ml){Mo(ml)}}),f.createElement("div",null,f.createElement("div",{className:"".concat(nt,"-panels")},qo),(Zr||Jr)&&f.createElement("div",{className:"".concat(nt,"-footer")},Zr,Jr)));return Ni&&(Wl=Ni(Wl)),f.createElement("div",{className:"".concat(nt,"-panel-container"),style:{marginLeft:Ji},ref:ji,onMouseDown:function(ml){ml.preventDefault()}},Wl)}var fs=f.createElement("div",{className:se()("".concat(nt,"-range-wrapper"),"".concat(nt,"-").concat(ar,"-range-wrapper")),style:{minWidth:vn}},f.createElement("div",{ref:ri,className:"".concat(nt,"-range-arrow"),style:us}),_i()),Ql;yl&&(Ql=f.createElement("span",{className:"".concat(nt,"-suffix"),onMouseDown:function(Zr){Zr.preventDefault()}},yl));var Yl=fa(nt,nl,Va),vs=f.createElement("span",{onMouseDown:function(Zr){Zr.preventDefault(),Zr.stopPropagation()},onMouseUp:function(Zr){Zr.preventDefault(),Zr.stopPropagation();var Jr=ma;Ja[0]||(Jr=Ft(Jr,null,0)),Ja[1]||(Jr=Ft(Jr,null,1)),jn(Jr,null),Me(!1,le,"clear")},className:"".concat(nt,"-clear"),role:"button"},Yl),ms=nl&&(st(ma,0)&&!Ja[0]||st(ma,1)&&!Ja[1]),os={size:Mt(ar,Yi[0],Ot)},as=0,ts=0;Zl.current&&Nl.current&&Xi.current&&(le===0?ts=Zl.current.offsetWidth:(as=li,ts=Nl.current.offsetWidth));var ns=Ai==="rtl"?{right:as}:{left:as},gs=function(Zr,Jr){var _o=Ft(io,Zr,le);if(Jr==="submit"||Jr!=="key"&&!Cl){jn(_o,le),le===0?tr():ti();var La=le===0?1:0;Ja[La]?Me(!1,!1,"confirm"):Me(!1,le,"confirm")}else lr(_o)};return f.createElement(gt.Provider,{value:{operationRef:kl,hideHeader:ar==="time",onDateMouseEnter:Fl,onDateMouseLeave:wa,hideRanges:!0,onSelect:gs,open:ie}},f.createElement(Ir,{visible:ie,popupElement:fs,popupStyle:Nn,prefixCls:nt,dropdownClassName:En,dropdownAlign:sn,getPopupContainer:mn,transitionName:_t,range:!0,direction:Ai},f.createElement("div",(0,H.Z)({ref:Wa,className:se()(nt,"".concat(nt,"-range"),hn,(V={},(0,t.Z)(V,"".concat(nt,"-disabled"),Ja[0]&&Ja[1]),(0,t.Z)(V,"".concat(nt,"-focused"),le===0?Zi:ul),(0,t.Z)(V,"".concat(nt,"-rtl"),Ai==="rtl"),V)),style:Jt,onClick:ii,onMouseEnter:rl,onMouseLeave:jl,onMouseDown:fl,onMouseUp:Ia},(0,re.Z)(v,{aria:!0,data:!0})),f.createElement("div",{className:se()("".concat(nt,"-input"),(G={},(0,t.Z)(G,"".concat(nt,"-input-active"),le===0),(0,t.Z)(G,"".concat(nt,"-input-placeholder"),!!ir),G)),ref:Zl},f.createElement("input",(0,H.Z)({id:qt,disabled:Ja[0],readOnly:gi||typeof Yi[0]=="function"||!Qi,value:ir||ga,onChange:function(Zr){Fo(Zr.target.value)},autoFocus:Wn,placeholder:st(xn,0)||"",ref:cl},Na,os,{autoComplete:$l}))),f.createElement("div",{className:"".concat(nt,"-range-separator"),ref:Xi},Ho),f.createElement("div",{className:se()("".concat(nt,"-input"),(Pe={},(0,t.Z)(Pe,"".concat(nt,"-input-active"),le===1),(0,t.Z)(Pe,"".concat(nt,"-input-placeholder"),!!ba),Pe)),ref:Nl},f.createElement("input",(0,H.Z)({disabled:Ja[1],readOnly:gi||typeof Yi[0]=="function"||!Ci,value:ba||ta,onChange:function(Zr){po(Zr.target.value)},placeholder:st(xn,1)||"",ref:Hi},Ui,os,{autoComplete:$l}))),f.createElement("div",{className:"".concat(nt,"-active-bar"),style:(0,A.Z)((0,A.Z)({},ns),{},{width:ts,position:"absolute"})}),Ql,ms&&vs)))}var ur=function(v){(0,F.Z)(G,v);var V=(0,D.Z)(G);function G(){var Pe;(0,i.Z)(this,G);for(var ve=arguments.length,vt=new Array(ve),nt=0;nt0&&arguments[0]!==void 0?arguments[0]:[],Oe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],Le=Re.length,O=Oe.length;if(Math.abs(Le-O)!==1)return{add:!1,key:null};function ke($,b){var Z=new Map;$.forEach(function(q){Z.set(q,!0)});var ae=b.filter(function(q){return!Z.has(q)});return ae.length===1?ae[0]:null}return Le ").concat(Oe);return Oe}var pt=se.forwardRef(function(Re,Oe){var Le=Re.prefixCls,O=Re.data,ke=Re.selectable,$=Re.checkable,b=Re.expandedKeys,Z=Re.selectedKeys,ae=Re.checkedKeys,q=Re.loadedKeys,Ye=Re.loadingKeys,ot=Re.halfCheckedKeys,gt=Re.keyEntities,Et=Re.disabled,Nt=Re.dragging,Vt=Re.dragOverNodeKey,Bt=Re.dropPosition,tt=Re.motion,st=Re.height,Ft=Re.itemHeight,jt=Re.virtual,Lt=Re.focusable,un=Re.activeItem,Ut=Re.focused,pn=Re.tabIndex,Sn=Re.onKeyDown,Xt=Re.onFocus,an=Re.onBlur,ln=Re.onActiveChange,Pn=Re.onListChangeStart,zn=Re.onListChangeEnd,qn=(0,Xe.Z)(Re,Je),yr=se.useRef(null),Bn=se.useRef(null);se.useImperativeHandle(Oe,function(){return{scrollTo:function(Cn){yr.current.scrollTo(Cn)},getIndentWidth:function(){return Bn.current.offsetWidth}}});var ne=se.useState(b),qe=(0,h.Z)(ne,2),_e=qe[0],ee=qe[1],Y=se.useState(O),Ae=(0,h.Z)(Y,2),we=Ae[0],ct=Ae[1],be=se.useState(O),U=(0,h.Z)(be,2),Ie=U[0],ht=U[1],Se=se.useState([]),de=(0,h.Z)(Se,2),T=de[0],N=de[1],x=se.useState(null),te=(0,h.Z)(x,2),ye=te[0],Ze=te[1],Ke=se.useRef(O);Ke.current=O;function Ve(){var dt=Ke.current;ct(dt),ht(dt),N([]),Ze(null),zn()}(0,It.Z)(function(){ee(b);var dt=ue(_e,b);if(dt.key!==null)if(dt.add){var Cn=we.findIndex(function(yn){var Fn=yn.key;return Fn===dt.key}),bn=he(ce(we,O,dt.key),jt,st,Ft),Ct=we.slice();Ct.splice(Cn+1,0,me),ht(Ct),N(bn),Ze("show")}else{var fn=O.findIndex(function(yn){var Fn=yn.key;return Fn===dt.key}),zt=he(ce(O,we,dt.key),jt,st,Ft),cn=O.slice();cn.splice(fn+1,0,me),ht(cn),N(zt),Ze("hide")}else we!==O&&(ct(O),ht(O))},[b,O]),se.useEffect(function(){Nt||Ve()},[Nt]);var et=tt?Ie:O,Ht={expandedKeys:b,selectedKeys:Z,loadedKeys:q,loadingKeys:Ye,checkedKeys:ae,halfCheckedKeys:ot,dragOverNodeKey:Vt,dropPosition:Bt,keyEntities:gt};return se.createElement(se.Fragment,null,Ut&&un&&se.createElement("span",{style:it,"aria-live":"assertive"},lt(un)),se.createElement("div",null,se.createElement("input",{style:it,disabled:Lt===!1||Et,tabIndex:Lt!==!1?pn:null,onKeyDown:Sn,onFocus:Xt,onBlur:an,value:"",onChange:Te,"aria-label":"for screen reader"})),se.createElement("div",{className:"".concat(Le,"-treenode"),"aria-hidden":!0,style:{position:"absolute",pointerEvents:"none",visibility:"hidden",height:0,overflow:"hidden",border:0,padding:0}},se.createElement("div",{className:"".concat(Le,"-indent")},se.createElement("div",{ref:Bn,className:"".concat(Le,"-indent-unit")}))),se.createElement(Fe.Z,(0,i.Z)({},qn,{data:et,itemKey:mt,height:st,fullHeight:!1,virtual:jt,itemHeight:Ft,prefixCls:"".concat(Le,"-list"),ref:yr,onVisibleChange:function(Cn,bn){var Ct=new Set(Cn),fn=bn.filter(function(zt){return!Ct.has(zt)});fn.some(function(zt){return mt(zt)===ut})&&Ve()}}),function(dt){var Cn=dt.pos,bn=(0,i.Z)({},(z(dt.data),dt.data)),Ct=dt.title,fn=dt.key,zt=dt.isStart,cn=dt.isEnd,yn=(0,$e.km)(fn,Cn);delete bn.key,delete bn.children;var Fn=(0,$e.H8)(yn,Ht);return se.createElement(oe,(0,i.Z)({},bn,Fn,{title:Ct,active:!!un&&fn===un.key,pos:Cn,data:dt.data,isStart:zt,isEnd:cn,motion:tt,motionNodes:fn===ut?T:null,motionType:ye,onMotionStart:Pn,onMotionEnd:Ve,treeNodeRequiredProps:Ht,onMouseMove:function(){ln(null)}}))}))});pt.displayName="NodeList";var ft=pt,wt=e(16226);function Gt(Re){var Oe=Re.dropPosition,Le=Re.dropLevelOffset,O=Re.indent,ke={pointerEvents:"none",position:"absolute",right:0,backgroundColor:"red",height:2};switch(Oe){case-1:ke.top=0,ke.left=-Le*O;break;case 1:ke.bottom=0,ke.left=-Le*O;break;case 0:ke.bottom=0,ke.left=O;break}return se.createElement("div",{style:ke})}var Mt=10,yt=function(Re){(0,R.Z)(Le,Re);var Oe=(0,Ce.Z)(Le);function Le(){var O;(0,H.Z)(this,Le);for(var ke=arguments.length,$=new Array(ke),b=0;b2&&arguments[2]!==void 0?arguments[2]:!1,ot=O.state,gt=ot.dragChildrenKeys,Et=ot.dropPosition,Nt=ot.dropTargetKey,Vt=ot.dropTargetPos,Bt=ot.dropAllowed;if(Bt){var tt=O.props.onDrop;if(O.setState({dragOverNodeKey:null}),O.cleanDragState(),Nt!==null){var st=(0,F.Z)((0,F.Z)({},(0,$e.H8)(Nt,O.getTreeNodeRequiredProps())),{},{active:((q=O.getActiveItem())===null||q===void 0?void 0:q.key)===Nt,data:O.state.keyEntities[Nt].node}),Ft=gt.indexOf(Nt)!==-1;(0,K.ZP)(!Ft,"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.");var jt=(0,J.yx)(Vt),Lt={event:Z,node:(0,$e.F)(st),dragNode:O.dragNode?(0,$e.F)(O.dragNode.props):null,dragNodesKeys:[O.dragNode.props.eventKey].concat(gt),dropToGap:Et!==0,dropPosition:Et+Number(jt[jt.length-1])};Ye||tt==null||tt(Lt),O.dragNode=null}}},O.cleanDragState=function(){var Z=O.state.draggingNodeKey;Z!==null&&O.setState({draggingNodeKey:null,dropPosition:null,dropContainerKey:null,dropTargetKey:null,dropLevelOffset:null,dropAllowed:!0,dragOverNodeKey:null}),O.dragStartMousePosition=null,O.currentMouseOverDroppableNodeKey=null},O.triggerExpandActionExpand=function(Z,ae){var q=O.state,Ye=q.expandedKeys,ot=q.flattenNodes,gt=ae.expanded,Et=ae.key,Nt=ae.isLeaf;if(!(Nt||Z.shiftKey||Z.metaKey||Z.ctrlKey)){var Vt=ot.filter(function(tt){return tt.key===Et})[0],Bt=(0,$e.F)((0,F.Z)((0,F.Z)({},(0,$e.H8)(Et,O.getTreeNodeRequiredProps())),{},{data:Vt.data}));O.setExpandedKeys(gt?(0,J._5)(Ye,Et):(0,J.L0)(Ye,Et)),O.onNodeExpand(Z,Bt)}},O.onNodeClick=function(Z,ae){var q=O.props,Ye=q.onClick,ot=q.expandAction;ot==="click"&&O.triggerExpandActionExpand(Z,ae),Ye==null||Ye(Z,ae)},O.onNodeDoubleClick=function(Z,ae){var q=O.props,Ye=q.onDoubleClick,ot=q.expandAction;ot==="doubleClick"&&O.triggerExpandActionExpand(Z,ae),Ye==null||Ye(Z,ae)},O.onNodeSelect=function(Z,ae){var q=O.state.selectedKeys,Ye=O.state,ot=Ye.keyEntities,gt=Ye.fieldNames,Et=O.props,Nt=Et.onSelect,Vt=Et.multiple,Bt=ae.selected,tt=ae[gt.key],st=!Bt;st?Vt?q=(0,J.L0)(q,tt):q=[tt]:q=(0,J._5)(q,tt);var Ft=q.map(function(jt){var Lt=ot[jt];return Lt?Lt.node:null}).filter(function(jt){return jt});O.setUncontrolledState({selectedKeys:q}),Nt==null||Nt(q,{event:"select",selected:st,node:ae,selectedNodes:Ft,nativeEvent:Z.nativeEvent})},O.onNodeCheck=function(Z,ae,q){var Ye=O.state,ot=Ye.keyEntities,gt=Ye.checkedKeys,Et=Ye.halfCheckedKeys,Nt=O.props,Vt=Nt.checkStrictly,Bt=Nt.onCheck,tt=ae.key,st,Ft={event:"check",node:ae,checked:q,nativeEvent:Z.nativeEvent};if(Vt){var jt=q?(0,J.L0)(gt,tt):(0,J._5)(gt,tt),Lt=(0,J._5)(Et,tt);st={checked:jt,halfChecked:Lt},Ft.checkedNodes=jt.map(function(an){return ot[an]}).filter(function(an){return an}).map(function(an){return an.node}),O.setUncontrolledState({checkedKeys:jt})}else{var un=(0,wt.S)([].concat((0,D.Z)(gt),[tt]),!0,ot),Ut=un.checkedKeys,pn=un.halfCheckedKeys;if(!q){var Sn=new Set(Ut);Sn.delete(tt);var Xt=(0,wt.S)(Array.from(Sn),{checked:!1,halfCheckedKeys:pn},ot);Ut=Xt.checkedKeys,pn=Xt.halfCheckedKeys}st=Ut,Ft.checkedNodes=[],Ft.checkedNodesPositions=[],Ft.halfCheckedKeys=pn,Ut.forEach(function(an){var ln=ot[an];if(ln){var Pn=ln.node,zn=ln.pos;Ft.checkedNodes.push(Pn),Ft.checkedNodesPositions.push({node:Pn,pos:zn})}}),O.setUncontrolledState({checkedKeys:Ut},!1,{halfCheckedKeys:pn})}Bt==null||Bt(st,Ft)},O.onNodeLoad=function(Z){var ae=Z.key,q=new Promise(function(Ye,ot){O.setState(function(gt){var Et=gt.loadedKeys,Nt=Et===void 0?[]:Et,Vt=gt.loadingKeys,Bt=Vt===void 0?[]:Vt,tt=O.props,st=tt.loadData,Ft=tt.onLoad;if(!st||Nt.indexOf(ae)!==-1||Bt.indexOf(ae)!==-1)return null;var jt=st(Z);return jt.then(function(){var Lt=O.state.loadedKeys,un=(0,J.L0)(Lt,ae);Ft==null||Ft(un,{event:"load",node:Z}),O.setUncontrolledState({loadedKeys:un}),O.setState(function(Ut){return{loadingKeys:(0,J._5)(Ut.loadingKeys,ae)}}),Ye()}).catch(function(Lt){if(O.setState(function(Ut){return{loadingKeys:(0,J._5)(Ut.loadingKeys,ae)}}),O.loadingRetryTimes[ae]=(O.loadingRetryTimes[ae]||0)+1,O.loadingRetryTimes[ae]>=Mt){var un=O.state.loadedKeys;(0,K.ZP)(!1,"Retry for `loadData` many times but still failed. No more retry."),O.setUncontrolledState({loadedKeys:(0,J.L0)(un,ae)}),Ye()}ot(Lt)}),{loadingKeys:(0,J.L0)(Bt,ae)}})});return q.catch(function(){}),q},O.onNodeMouseEnter=function(Z,ae){var q=O.props.onMouseEnter;q==null||q({event:Z,node:ae})},O.onNodeMouseLeave=function(Z,ae){var q=O.props.onMouseLeave;q==null||q({event:Z,node:ae})},O.onNodeContextMenu=function(Z,ae){var q=O.props.onRightClick;q&&(Z.preventDefault(),q({event:Z,node:ae}))},O.onFocus=function(){var Z=O.props.onFocus;O.setState({focused:!0});for(var ae=arguments.length,q=new Array(ae),Ye=0;Ye1&&arguments[1]!==void 0?arguments[1]:!1,q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;if(!O.destroyed){var Ye=!1,ot=!0,gt={};Object.keys(Z).forEach(function(Et){if(Et in O.props){ot=!1;return}Ye=!0,gt[Et]=Z[Et]}),Ye&&(!ae||ot)&&O.setState((0,F.Z)((0,F.Z)({},gt),q))}},O.scrollTo=function(Z){O.listRef.current.scrollTo(Z)},O}return(0,t.Z)(Le,[{key:"componentDidMount",value:function(){this.destroyed=!1,this.onUpdated()}},{key:"componentDidUpdate",value:function(){this.onUpdated()}},{key:"onUpdated",value:function(){var ke=this.props.activeKey;ke!==void 0&&ke!==this.state.activeKey&&(this.setState({activeKey:ke}),ke!==null&&this.scrollTo({key:ke}))}},{key:"componentWillUnmount",value:function(){window.removeEventListener("dragend",this.onWindowDragEnd),this.destroyed=!0}},{key:"resetDragState",value:function(){this.setState({dragOverNodeKey:null,dropPosition:null,dropLevelOffset:null,dropTargetKey:null,dropContainerKey:null,dropTargetPos:null,dropAllowed:!1})}},{key:"render",value:function(){var ke,$=this.state,b=$.focused,Z=$.flattenNodes,ae=$.keyEntities,q=$.draggingNodeKey,Ye=$.activeKey,ot=$.dropLevelOffset,gt=$.dropContainerKey,Et=$.dropTargetKey,Nt=$.dropPosition,Vt=$.dragOverNodeKey,Bt=$.indent,tt=this.props,st=tt.prefixCls,Ft=tt.className,jt=tt.style,Lt=tt.showLine,un=tt.focusable,Ut=tt.tabIndex,pn=Ut===void 0?0:Ut,Sn=tt.selectable,Xt=tt.showIcon,an=tt.icon,ln=tt.switcherIcon,Pn=tt.draggable,zn=tt.checkable,qn=tt.checkStrictly,yr=tt.disabled,Bn=tt.motion,ne=tt.loadData,qe=tt.filterTreeNode,_e=tt.height,ee=tt.itemHeight,Y=tt.virtual,Ae=tt.titleRender,we=tt.dropIndicatorRender,ct=tt.onContextMenu,be=tt.onScroll,U=tt.direction,Ie=tt.rootClassName,ht=tt.rootStyle,Se=(0,re.Z)(this.props,{aria:!0,data:!0}),de;return Pn&&((0,M.Z)(Pn)==="object"?de=Pn:typeof Pn=="function"?de={nodeDraggable:Pn}:de={}),se.createElement(k.k.Provider,{value:{prefixCls:st,selectable:Sn,showIcon:Xt,icon:an,switcherIcon:ln,draggable:de,draggingNodeKey:q,checkable:zn,checkStrictly:qn,disabled:yr,keyEntities:ae,dropLevelOffset:ot,dropContainerKey:gt,dropTargetKey:Et,dropPosition:Nt,dragOverNodeKey:Vt,indent:Bt,direction:U,dropIndicatorRender:we,loadData:ne,filterTreeNode:qe,titleRender:Ae,onNodeClick:this.onNodeClick,onNodeDoubleClick:this.onNodeDoubleClick,onNodeExpand:this.onNodeExpand,onNodeSelect:this.onNodeSelect,onNodeCheck:this.onNodeCheck,onNodeLoad:this.onNodeLoad,onNodeMouseEnter:this.onNodeMouseEnter,onNodeMouseLeave:this.onNodeMouseLeave,onNodeContextMenu:this.onNodeContextMenu,onNodeDragStart:this.onNodeDragStart,onNodeDragEnter:this.onNodeDragEnter,onNodeDragOver:this.onNodeDragOver,onNodeDragLeave:this.onNodeDragLeave,onNodeDragEnd:this.onNodeDragEnd,onNodeDrop:this.onNodeDrop}},se.createElement("div",{role:"tree",className:_()(st,Ft,Ie,(ke={},(0,y.Z)(ke,"".concat(st,"-show-line"),Lt),(0,y.Z)(ke,"".concat(st,"-focused"),b),(0,y.Z)(ke,"".concat(st,"-active-focused"),Ye!==null),ke)),style:ht},se.createElement(ft,(0,i.Z)({ref:this.listRef,prefixCls:st,style:jt,data:Z,disabled:yr,selectable:Sn,checkable:!!zn,motion:Bn,dragging:q!==null,height:_e,itemHeight:ee,virtual:Y,focusable:un,focused:b,tabIndex:pn,activeItem:this.getActiveItem(),onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.onKeyDown,onActiveChange:this.onActiveChange,onListChangeStart:this.onListChangeStart,onListChangeEnd:this.onListChangeEnd,onContextMenu:ct,onScroll:be},this.getTreeNodeRequiredProps(),Se))))}}],[{key:"getDerivedStateFromProps",value:function(ke,$){var b=$.prevProps,Z={prevProps:ke};function ae(un){return!b&&un in ke||b&&b[un]!==ke[un]}var q,Ye=$.fieldNames;if(ae("fieldNames")&&(Ye=(0,$e.w$)(ke.fieldNames),Z.fieldNames=Ye),ae("treeData")?q=ke.treeData:ae("children")&&((0,K.ZP)(!1,"`children` of Tree is deprecated. Please use `treeData` instead."),q=(0,$e.zn)(ke.children)),q){Z.treeData=q;var ot=(0,$e.I8)(q,{fieldNames:Ye});Z.keyEntities=(0,F.Z)((0,y.Z)({},ut,W),ot.keyEntities)}var gt=Z.keyEntities||$.keyEntities;if(ae("expandedKeys")||b&&ae("autoExpandParent"))Z.expandedKeys=ke.autoExpandParent||!b&&ke.defaultExpandParent?(0,J.r7)(ke.expandedKeys,gt):ke.expandedKeys;else if(!b&&ke.defaultExpandAll){var Et=(0,F.Z)({},gt);delete Et[ut],Z.expandedKeys=Object.keys(Et).map(function(un){return Et[un].key})}else!b&&ke.defaultExpandedKeys&&(Z.expandedKeys=ke.autoExpandParent||ke.defaultExpandParent?(0,J.r7)(ke.defaultExpandedKeys,gt):ke.defaultExpandedKeys);if(Z.expandedKeys||delete Z.expandedKeys,q||Z.expandedKeys){var Nt=(0,$e.oH)(q||$.treeData,Z.expandedKeys||$.expandedKeys,Ye);Z.flattenNodes=Nt}if(ke.selectable&&(ae("selectedKeys")?Z.selectedKeys=(0,J.BT)(ke.selectedKeys,ke):!b&&ke.defaultSelectedKeys&&(Z.selectedKeys=(0,J.BT)(ke.defaultSelectedKeys,ke))),ke.checkable){var Vt;if(ae("checkedKeys")?Vt=(0,J.E6)(ke.checkedKeys)||{}:!b&&ke.defaultCheckedKeys?Vt=(0,J.E6)(ke.defaultCheckedKeys)||{}:q&&(Vt=(0,J.E6)(ke.checkedKeys)||{checkedKeys:$.checkedKeys,halfCheckedKeys:$.halfCheckedKeys}),Vt){var Bt=Vt,tt=Bt.checkedKeys,st=tt===void 0?[]:tt,Ft=Bt.halfCheckedKeys,jt=Ft===void 0?[]:Ft;if(!ke.checkStrictly){var Lt=(0,wt.S)(st,!0,gt);st=Lt.checkedKeys,jt=Lt.halfCheckedKeys}Z.checkedKeys=st,Z.halfCheckedKeys=jt}}return ae("loadedKeys")&&(Z.loadedKeys=ke.loadedKeys),Z}}]),Le}(se.Component);yt.defaultProps={prefixCls:"rc-tree",showLine:!1,showIcon:!0,selectable:!0,multiple:!1,checkable:!1,disabled:!1,checkStrictly:!1,draggable:!1,defaultExpandParent:!0,autoExpandParent:!1,defaultExpandAll:!1,defaultExpandedKeys:[],defaultCheckedKeys:[],defaultSelectedKeys:[],dropIndicatorRender:Gt,allowDrop:function(){return!0},expandAction:!1},yt.TreeNode=xt.Z;var St=yt,fe=St},39919:function(Dt,Ne,e){"use strict";e.d(Ne,{BT:function(){return f},E6:function(){return J},L0:function(){return R},OM:function(){return re},_5:function(){return A},r7:function(){return $e},wA:function(){return se},yx:function(){return Ce}});var i=e(29140),y=e(38790),M=e(58757),F=e(75556),D=e(49026),H=e(47857),t=null;function A(z,h){if(!z)return[];var Xe=z.slice(),It=Xe.indexOf(h);return It>=0&&Xe.splice(It,1),Xe}function R(z,h){var Xe=(z||[]).slice();return Xe.indexOf(h)===-1&&Xe.push(h),Xe}function Ce(z){return z.split("-")}function se(z,h){var Xe=[],It=h[z];function Fe(){var xe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];xe.forEach(function(xt){var He=xt.key,L=xt.children;Xe.push(He),Fe(L)})}return Fe(It.children),Xe}function w(z){if(z.parent){var h=Ce(z.pos);return Number(h[h.length-1])===z.parent.children.length-1}return!1}function K(z){var h=Ce(z.pos);return Number(h[h.length-1])===0}function re(z,h,Xe,It,Fe,xe,xt,He,L,Be){var $t,oe=z.clientX,ue=z.clientY,ce=z.target.getBoundingClientRect(),Je=ce.top,it=ce.height,Te=(Be==="rtl"?-1:1)*(((Fe==null?void 0:Fe.x)||0)-oe),ut=(Te-12)/It,X=He[Xe.props.eventKey];if(ue-1.5?xe({dragNode:Mt,dropNode:yt,dropPosition:1})?ft=1:St=!1:xe({dragNode:Mt,dropNode:yt,dropPosition:0})?ft=0:xe({dragNode:Mt,dropNode:yt,dropPosition:1})?ft=1:St=!1:xe({dragNode:Mt,dropNode:yt,dropPosition:1})?ft=1:St=!1,{dropPosition:ft,dropLevelOffset:wt,dropTargetKey:X.key,dropTargetPos:X.pos,dragOverNodeKey:pt,dropContainerKey:ft===0?null:(($t=X.parent)===null||$t===void 0?void 0:$t.key)||null,dropAllowed:St}}function f(z,h){if(z){var Xe=h.multiple;return Xe?z.slice():z.length?[z[0]]:z}}var _=function(h){return h};function k(z,h){if(!z)return[];var Xe=h||{},It=Xe.processProps,Fe=It===void 0?_:It,xe=Array.isArray(z)?z:[z];return xe.map(function(xt){var He=xt.children,L=_objectWithoutProperties(xt,t),Be=k(He,h);return React.createElement(TreeNode,_extends({key:L.key},Fe(L)),Be)})}function J(z){if(!z)return null;var h;if(Array.isArray(z))h={checkedKeys:z,halfCheckedKeys:void 0};else if((0,y.Z)(z)==="object")h={checkedKeys:z.checked||void 0,halfCheckedKeys:z.halfChecked||void 0};else return(0,F.ZP)(!1,"`checkedKeys` is not an array or an object"),null;return h}function $e(z,h){var Xe=new Set;function It(Fe){if(!Xe.has(Fe)){var xe=h[Fe];if(xe){Xe.add(Fe);var xt=xe.parent,He=xe.node;He.disabled||xt&&It(xt.key)}}}return(z||[]).forEach(function(Fe){It(Fe)}),(0,i.Z)(Xe)}},16226:function(Dt,Ne,e){"use strict";e.d(Ne,{S:function(){return H}});var i=e(75556);function y(t,A){var R=new Set;return t.forEach(function(Ce){A.has(Ce)||R.add(Ce)}),R}function M(t){var A=t||{},R=A.disabled,Ce=A.disableCheckbox,se=A.checkable;return!!(R||Ce)||se===!1}function F(t,A,R,Ce){for(var se=new Set(t),w=new Set,K=0;K<=R;K+=1){var re=A.get(K)||new Set;re.forEach(function(J){var $e=J.key,z=J.node,h=J.children,Xe=h===void 0?[]:h;se.has($e)&&!Ce(z)&&Xe.filter(function(It){return!Ce(It.node)}).forEach(function(It){se.add(It.key)})})}for(var f=new Set,_=R;_>=0;_-=1){var k=A.get(_)||new Set;k.forEach(function(J){var $e=J.parent,z=J.node;if(!(Ce(z)||!J.parent||f.has(J.parent.key))){if(Ce(J.parent.node)){f.add($e.key);return}var h=!0,Xe=!1;($e.children||[]).filter(function(It){return!Ce(It.node)}).forEach(function(It){var Fe=It.key,xe=se.has(Fe);h&&!xe&&(h=!1),!Xe&&(xe||w.has(Fe))&&(Xe=!0)}),h&&se.add($e.key),Xe&&w.add($e.key),f.add($e.key)}})}return{checkedKeys:Array.from(se),halfCheckedKeys:Array.from(y(w,se))}}function D(t,A,R,Ce,se){for(var w=new Set(t),K=new Set(A),re=0;re<=Ce;re+=1){var f=R.get(re)||new Set;f.forEach(function($e){var z=$e.key,h=$e.node,Xe=$e.children,It=Xe===void 0?[]:Xe;!w.has(z)&&!K.has(z)&&!se(h)&&It.filter(function(Fe){return!se(Fe.node)}).forEach(function(Fe){w.delete(Fe.key)})})}K=new Set;for(var _=new Set,k=Ce;k>=0;k-=1){var J=R.get(k)||new Set;J.forEach(function($e){var z=$e.parent,h=$e.node;if(!(se(h)||!$e.parent||_.has($e.parent.key))){if(se($e.parent.node)){_.add(z.key);return}var Xe=!0,It=!1;(z.children||[]).filter(function(Fe){return!se(Fe.node)}).forEach(function(Fe){var xe=Fe.key,xt=w.has(xe);Xe&&!xt&&(Xe=!1),!It&&(xt||K.has(xe))&&(It=!0)}),Xe||w.delete(z.key),It&&K.add(z.key),_.add(z.key)}})}return{checkedKeys:Array.from(w),halfCheckedKeys:Array.from(y(K,w))}}function H(t,A,R,Ce){var se=[],w;Ce?w=Ce:w=M;var K=new Set(t.filter(function(k){var J=!!R[k];return J||se.push(k),J})),re=new Map,f=0;Object.keys(R).forEach(function(k){var J=R[k],$e=J.level,z=re.get($e);z||(z=new Set,re.set($e,z)),z.add(J),f=Math.max(f,$e)}),(0,i.ZP)(!se.length,"Tree missing follow keys: ".concat(se.slice(0,100).map(function(k){return"'".concat(k,"'")}).join(", ")));var _;return A===!0?_=F(K,re,f,w):_=D(K,A.halfCheckedKeys,re,f,w),_}},47857:function(Dt,Ne,e){"use strict";e.d(Ne,{F:function(){return $e},H8:function(){return J},I8:function(){return k},km:function(){return se},oH:function(){return f},w$:function(){return w},zn:function(){return re}});var i=e(38790),y=e(29140),M=e(57370),F=e(47075),D=e(42156),H=e(98186),t=e(75556),A=["children"];function R(z,h){return"".concat(z,"-").concat(h)}function Ce(z){return z&&z.type&&z.type.isTreeNode}function se(z,h){return z!=null?z:h}function w(z){var h=z||{},Xe=h.title,It=h._title,Fe=h.key,xe=h.children,xt=Xe||"title";return{title:xt,_title:It||[xt],key:Fe||"key",children:xe||"children"}}function K(z,h){var Xe=new Map;function It(Fe){var xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";(Fe||[]).forEach(function(xt){var He=xt[h.key],L=xt[h.children];warning(He!=null,"Tree node must have a certain key: [".concat(xe).concat(He,"]"));var Be=String(He);warning(!Xe.has(Be)||He===null||He===void 0,"Same 'key' exist in the Tree: ".concat(Be)),Xe.set(Be,!0),It(L,"".concat(xe).concat(Be," > "))})}It(z)}function re(z){function h(Xe){var It=(0,D.Z)(Xe);return It.map(function(Fe){if(!Ce(Fe))return(0,t.ZP)(!Fe,"Tree/TreeNode can only accept TreeNode as children."),null;var xe=Fe.key,xt=Fe.props,He=xt.children,L=(0,F.Z)(xt,A),Be=(0,M.Z)({key:xe},L),$t=h(He);return $t.length&&(Be.children=$t),Be}).filter(function(Fe){return Fe})}return h(z)}function f(z,h,Xe){var It=w(Xe),Fe=It._title,xe=It.key,xt=It.children,He=new Set(h===!0?[]:h),L=[];function Be($t){var oe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return $t.map(function(ue,ce){for(var Je=R(oe?oe.pos:"0",ce),it=se(ue[xe],Je),Te,ut=0;ut1&&arguments[1]!==void 0?arguments[1]:{},Xe=h.initWrapper,It=h.processEntity,Fe=h.onProcessFinished,xe=h.externalGetKey,xt=h.childrenPropName,He=h.fieldNames,L=arguments.length>2?arguments[2]:void 0,Be=xe||L,$t={},oe={},ue={posEntities:$t,keyEntities:oe};return Xe&&(ue=Xe(ue)||ue),_(z,function(ce){var Je=ce.node,it=ce.index,Te=ce.pos,ut=ce.key,X=ce.parentPos,W=ce.level,me=ce.nodes,he={node:Je,nodes:me,index:it,key:ut,pos:Te,level:W},mt=se(ut,Te);$t[Te]=he,oe[mt]=he,he.parent=$t[X],he.parent&&(he.parent.children=he.parent.children||[],he.parent.children.push(he)),It&&It(he,ue)},{externalGetKey:Be,childrenPropName:xt,fieldNames:He}),Fe&&Fe(ue),ue}function J(z,h){var Xe=h.expandedKeys,It=h.selectedKeys,Fe=h.loadedKeys,xe=h.loadingKeys,xt=h.checkedKeys,He=h.halfCheckedKeys,L=h.dragOverNodeKey,Be=h.dropPosition,$t=h.keyEntities,oe=$t[z],ue={eventKey:z,expanded:Xe.indexOf(z)!==-1,selected:It.indexOf(z)!==-1,loaded:Fe.indexOf(z)!==-1,loading:xe.indexOf(z)!==-1,checked:xt.indexOf(z)!==-1,halfChecked:He.indexOf(z)!==-1,pos:String(oe?oe.pos:""),dragOver:L===z&&Be===0,dragOverGapTop:L===z&&Be===-1,dragOverGapBottom:L===z&&Be===1};return ue}function $e(z){var h=z.data,Xe=z.expanded,It=z.selected,Fe=z.checked,xe=z.loaded,xt=z.loading,He=z.halfChecked,L=z.dragOver,Be=z.dragOverGapTop,$t=z.dragOverGapBottom,oe=z.pos,ue=z.active,ce=z.eventKey,Je=(0,M.Z)((0,M.Z)({},h),{},{expanded:Xe,selected:It,checked:Fe,loaded:xe,loading:xt,halfChecked:He,dragOver:L,dragOverGapTop:Be,dragOverGapBottom:$t,pos:oe,active:ue,key:ce});return"props"in Je||Object.defineProperty(Je,"props",{get:function(){return(0,t.ZP)(!1,"Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`."),z}}),Je}},14311:function(Dt,Ne,e){"use strict";e.d(Ne,{Z:function(){return y}});var i=e(26736);function y(M,F,D,H){var t=i.unstable_batchedUpdates?function(R){i.unstable_batchedUpdates(D,R)}:D;return M!=null&&M.addEventListener&&M.addEventListener(F,t,H),{remove:function(){M!=null&&M.removeEventListener&&M.removeEventListener(F,t,H)}}}},60085:function(Dt,Ne,e){"use strict";e.d(Ne,{g1:function(){return se},os:function(){return K}});var i=/margin|padding|width|height|max|min|offset/,y={left:!0,top:!0},M={cssFloat:1,styleFloat:1,float:1};function F(re){return re.nodeType===1?re.ownerDocument.defaultView.getComputedStyle(re,null):{}}function D(re,f,_){if(f=f.toLowerCase(),_==="auto"){if(f==="height")return re.offsetHeight;if(f==="width")return re.offsetWidth}return f in y||(y[f]=i.test(f)),y[f]?parseFloat(_)||0:_}function H(re,f){var _=arguments.length,k=F(re);return f=M[f]?"cssFloat"in re.style?"cssFloat":"styleFloat":f,_===1?k:D(re,f,k[f]||re.style[f])}function t(re,f,_){var k=arguments.length;if(f=M[f]?"cssFloat"in re.style?"cssFloat":"styleFloat":f,k===3)return typeof _=="number"&&i.test(f)&&(_="".concat(_,"px")),re.style[f]=_,_;for(var J in f)f.hasOwnProperty(J)&&t(re,J,f[J]);return F(re)}function A(re){return re===document.body?document.documentElement.clientWidth:re.offsetWidth}function R(re){return re===document.body?window.innerHeight||document.documentElement.clientHeight:re.offsetHeight}function Ce(){var re=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth),f=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);return{width:re,height:f}}function se(){var re=document.documentElement.clientWidth,f=window.innerHeight||document.documentElement.clientHeight;return{width:re,height:f}}function w(){return{scrollLeft:Math.max(document.documentElement.scrollLeft,document.body.scrollLeft),scrollTop:Math.max(document.documentElement.scrollTop,document.body.scrollTop)}}function K(re){var f=re.getBoundingClientRect(),_=document.documentElement;return{left:f.left+(window.pageXOffset||_.scrollLeft)-(_.clientLeft||document.body.clientLeft||0),top:f.top+(window.pageYOffset||_.scrollTop)-(_.clientTop||document.body.clientTop||0)}}},91923:function(Dt,Ne,e){"use strict";e.d(Ne,{G:function(){return F}});var i=e(19075),y=function(H){if((0,i.Z)()&&window.document.documentElement){var t=Array.isArray(H)?H:[H],A=window.document.documentElement;return t.some(function(R){return R in A.style})}return!1},M=function(H,t){if(!y(H))return!1;var A=document.createElement("div"),R=A.style[H];return A.style[H]=t,A.style[H]!==R};function F(D,H){return!Array.isArray(D)&&H!==void 0?M(D,H):y(D)}},50145:function(Dt,Ne,e){"use strict";Object.defineProperty(Ne,"__esModule",{value:!0}),Ne.autoprefix=void 0;var i=e(14802),y=F(i),M=Object.assign||function(t){for(var A=1;A1&&arguments[1]!==void 0?arguments[1]:"span";return function(w){t(K,w);function K(){var re,f,_,k;D(this,K);for(var J=arguments.length,$e=Array(J),z=0;z1&&arguments[1]!==void 0?arguments[1]:"span";return function(w){t(K,w);function K(){var re,f,_,k;D(this,K);for(var J=arguments.length,$e=Array(J),z=0;z0&&arguments[0]!==void 0?arguments[0]:[],K=[];return(0,A.default)(w,function(re){Array.isArray(re)?se(re).map(function(f){return K.push(f)}):(0,H.default)(re)?(0,F.default)(re,function(f,_){f===!0&&K.push(_),K.push(_+"-"+f)}):(0,y.default)(re)&&K.push(re)}),K};Ne.default=Ce},48472:function(Dt,Ne,e){"use strict";var i;i={value:!0},i=i=i=i=i=void 0;var y=e(96013),M=re(y),F=e(98452),D=re(F),H=e(50145),t=re(H),A=e(66697),R=re(A),Ce=e(21318),se=re(Ce),w=e(41670),K=re(w);function re(_){return _&&_.__esModule?_:{default:_}}i=R.default,i=R.default,i=se.default,i=K.default;var f=i=function(k){for(var J=arguments.length,$e=Array(J>1?J-1:0),z=1;z1&&arguments[1]!==void 0?arguments[1]:!0;F[t]=A};return y===0&&D("first-child"),y===M-1&&D("last-child"),(y===0||y%2===0)&&D("even"),Math.abs(y%2)===1&&D("odd"),D("nth-child",y),F};Ne.default=e},98452:function(Dt,Ne,e){"use strict";Object.defineProperty(Ne,"__esModule",{value:!0}),Ne.mergeClasses=void 0;var i=e(14802),y=H(i),M=e(77179),F=H(M),D=Object.assign||function(A){for(var R=1;R1&&arguments[1]!==void 0?arguments[1]:[],se=R.default&&(0,F.default)(R.default)||{};return Ce.map(function(w){var K=R[w];return K&&(0,y.default)(K,function(re,f){se[f]||(se[f]={}),se[f]=D({},se[f],K[f])}),w}),se};Ne.default=t},30149:function(Dt,Ne){"use strict";const{hasOwnProperty:e}=Object.prototype,i=re();i.configure=re,i.stringify=i,i.default=i,Ne.stringify=i,Ne.configure=re,Dt.exports=i;const y=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/;function M(f){return f.length<5e3&&!y.test(f)?`"${f}"`:JSON.stringify(f)}function F(f){if(f.length>200)return f.sort();for(let _=1;_k;)f[J]=f[J-1],J--;f[J]=k}return f}const D=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function H(f){return D.call(f)!==void 0&&f.length!==0}function t(f,_,k){f.length= 1`)}return k===void 0?1/0:k}function se(f){return f===1?"1 item":`${f} items`}function w(f){const _=new Set;for(const k of f)(typeof k=="string"||typeof k=="number")&&_.add(String(k));return _}function K(f){if(e.call(f,"strict")){const _=f.strict;if(typeof _!="boolean")throw new TypeError('The "strict" argument must be of type boolean');if(_)return k=>{let J=`Object can not safely be stringified. Received type ${typeof k}`;throw typeof k!="function"&&(J+=` (${k.toString()})`),new Error(J)}}}function re(f){f=Vc({},f);const _=K(f);_&&(f.bigint===void 0&&(f.bigint=!1),"circularValue"in f||(f.circularValue=Error));const k=A(f),J=R(f,"bigint"),$e=R(f,"deterministic"),z=Ce(f,"maximumDepth"),h=Ce(f,"maximumBreadth");function Xe(He,L,Be,$t,oe,ue){let ce=L[He];switch(typeof ce=="object"&&ce!==null&&typeof ce.toJSON=="function"&&(ce=ce.toJSON(He)),ce=$t.call(L,He,ce),typeof ce){case"string":return M(ce);case"object":{if(ce===null)return"null";if(Be.indexOf(ce)!==-1)return k;let Je="",it=",";const Te=ue;if(Array.isArray(ce)){if(ce.length===0)return"[]";if(zh){const ft=ce.length-h-1;Je+=`${it}"... ${se(ft)} not stringified"`}return oe!==""&&(Je+=` +${Te}`),Be.pop(),`[${Je}]`}let ut=Object.keys(ce);const X=ut.length;if(X===0)return"{}";if(zh){const mt=X-h;Je+=`${me}"...":${W}"${se(mt)} not stringified"`,me=it}return oe!==""&&me.length>1&&(Je=` +${ue}${Je} +${Te}`),Be.pop(),`{${Je}}`}case"number":return isFinite(ce)?String(ce):_?_(ce):"null";case"boolean":return ce===!0?"true":"false";case"undefined":return;case"bigint":if(J)return String(ce);default:return _?_(ce):void 0}}function It(He,L,Be,$t,oe,ue){switch(typeof L=="object"&&L!==null&&typeof L.toJSON=="function"&&(L=L.toJSON(He)),typeof L){case"string":return M(L);case"object":{if(L===null)return"null";if(Be.indexOf(L)!==-1)return k;const ce=ue;let Je="",it=",";if(Array.isArray(L)){if(L.length===0)return"[]";if(zh){const he=L.length-h-1;Je+=`${it}"... ${se(he)} not stringified"`}return oe!==""&&(Je+=` +${ce}`),Be.pop(),`[${Je}]`}Be.push(L);let Te="";oe!==""&&(ue+=oe,it=`, +${ue}`,Te=" ");let ut="";for(const X of $t){const W=It(X,L[X],Be,$t,oe,ue);W!==void 0&&(Je+=`${ut}${M(X)}:${Te}${W}`,ut=it)}return oe!==""&&ut.length>1&&(Je=` +${ue}${Je} +${ce}`),Be.pop(),`{${Je}}`}case"number":return isFinite(L)?String(L):_?_(L):"null";case"boolean":return L===!0?"true":"false";case"undefined":return;case"bigint":if(J)return String(L);default:return _?_(L):void 0}}function Fe(He,L,Be,$t,oe){switch(typeof L){case"string":return M(L);case"object":{if(L===null)return"null";if(typeof L.toJSON=="function"){if(L=L.toJSON(He),typeof L!="object")return Fe(He,L,Be,$t,oe);if(L===null)return"null"}if(Be.indexOf(L)!==-1)return k;const ue=oe;if(Array.isArray(L)){if(L.length===0)return"[]";if(zh){const pt=L.length-h-1;W+=`${me}"... ${se(pt)} not stringified"`}return W+=` +${ue}`,Be.pop(),`[${W}]`}let ce=Object.keys(L);const Je=ce.length;if(Je===0)return"{}";if(zh){const W=Je-h;Te+=`${ut}"...": "${se(W)} not stringified"`,ut=it}return ut!==""&&(Te=` +${oe}${Te} +${ue}`),Be.pop(),`{${Te}}`}case"number":return isFinite(L)?String(L):_?_(L):"null";case"boolean":return L===!0?"true":"false";case"undefined":return;case"bigint":if(J)return String(L);default:return _?_(L):void 0}}function xe(He,L,Be){switch(typeof L){case"string":return M(L);case"object":{if(L===null)return"null";if(typeof L.toJSON=="function"){if(L=L.toJSON(He),typeof L!="object")return xe(He,L,Be);if(L===null)return"null"}if(Be.indexOf(L)!==-1)return k;let $t="";if(Array.isArray(L)){if(L.length===0)return"[]";if(zh){const X=L.length-h-1;$t+=`,"... ${se(X)} not stringified"`}return Be.pop(),`[${$t}]`}let oe=Object.keys(L);const ue=oe.length;if(ue===0)return"{}";if(zh){const it=ue-h;$t+=`${ce}"...":"${se(it)} not stringified"`}return Be.pop(),`{${$t}}`}case"number":return isFinite(L)?String(L):_?_(L):"null";case"boolean":return L===!0?"true":"false";case"undefined":return;case"bigint":if(J)return String(L);default:return _?_(L):void 0}}function xt(He,L,Be){if(arguments.length>1){let $t="";if(typeof Be=="number"?$t=" ".repeat(Math.min(Be,10)):typeof Be=="string"&&($t=Be.slice(0,10)),L!=null){if(typeof L=="function")return Xe("",{"":He},[],L,$t,"");if(Array.isArray(L))return It("",He,[],w(L),$t,"")}if($t.length!==0)return Fe("",He,[],$t,"")}return xe("",He,[])}return xt}},86021:function(Dt){var Ne=function(e){return e.replace(/[A-Z]/g,function(i){return"-"+i.toLowerCase()}).toLowerCase()};Dt.exports=Ne}}]); +}()); +//# sourceMappingURL=742.e2aedde2.async.js.map \ No newline at end of file diff --git a/deepdataspace/server/static/742.e2aedde2.async.js.map b/deepdataspace/server/static/742.e2aedde2.async.js.map new file mode 100644 index 0000000..85d9813 --- /dev/null +++ b/deepdataspace/server/static/742.e2aedde2.async.js.map @@ -0,0 +1 @@ +{"version":3,"file":"742.e2aedde2.async.js","mappings":"AACA;A6CsEA;AAyBA;AEQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AELA;AAwBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A6CgFA;AAAA;AyD/LA;AACA;AACA;AgBwDA;AA4BA;AACA;AAKA;AAaA;AACA;AACA;AACA;AACA;AACA;AAeA;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAsBA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AAwFA;AAIA;AASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuDA;AAAA;AAAA;AAuBA;AAiBA;AAIA;AA8BA;AAYA;AACA;AAaA;AAAA;AAAA;AAgFA;AAAA;AAkCA;AA0BA;AACA;AAwBA;AAAA;AAyCA;AAMA;AA4WA;AACA;AACA;AAIA;AACA;AACA;AAIA;AAIA;AAwGA;AoG7kCA;AACA;AACA;A4B6CA;AACA;AA8BA;AACA;AASA;AACA;AAMA;AACA;AoIjIA;AAAA;AAAA;AAwBA;AACA;AACA;AACA;AACA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBA;AAAA;AAAA;AAAA;AAUA;AAAA;AAAA;AAuBA;AACA;AACA;ACtFA;AACA;AACA;ACFA;AAAA;AAAA;AGIA;AACA;AACA;AAMA;AACA;AACA;AAkBA;AACA;AACA;AAwCA;AACA;AACA;AAeA;AACA;AACA;AI5EA;AACA;AACA;ACtBA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;ACYA;AACA;AACA;AGkCA;AACA;AACA;AACA;AAAA;AAAA;AAcA;AAAA;AAAA;AAqCA;AACA;AACA;AAuBA;AACA;AACA;AACA;AACA;AkC2NA;AAAA;AAAA;AY3UA;AACA;AACA;AACA;AACA;AAwJA;AAAA;AAAA;AASA;AAAA;AAAA;AChKA;AAAA;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;AACA;AACA;AACA;AwIqIA;AACA;AAgBA;AAkBA;AAsBA;AAAA;AAmDA;AACA;AAgBA;AASA;AAYA;AAAA;AAqDA;AACA;AAcA;AAcA;AA4BA;AAAA","sources":["webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/CopyOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/CopyOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/FileOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/FileOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/UserOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/UserOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/VerticalAlignTopOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/VerticalAlignTopOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/hooks/useDebounceValue/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Status/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Select/LightSelect/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Select/SearchSelect/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Select/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/hooks/useFetchData/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/transformKeySubmitValue/index.js","webpack://app/../node_modules/.pnpm/@umijs+use-params@1.0.9_react@18.2.0/node_modules/@umijs/use-params/es/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/Submitter/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/BaseForm/BaseForm.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/BaseForm/EditOrReadOnlyContext.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/pickProFormItemProps/index.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/FieldContext.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/ListContext.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/utils/typeUtil.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/utils/messages.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/utils/validateUtil.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/utils/valueUtil.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/Field.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/List.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/utils/asyncUtil.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/utils/NameMap.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/useForm.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/FormContext.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/Form.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/useWatch.js","webpack://app/../node_modules/.pnpm/rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-field-form/es/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/BaseForm/createField.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/FieldContext.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/Dependency/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/pickProProps/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Cascader/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Checkbox/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Code/index.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/helpers/alpha.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/helpers/checkboard.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/common/Checkboard.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/common/Alpha.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/helpers/hue.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/common/Hue.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/helpers/saturation.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/common/Saturation.js","webpack://app/javascript/node_modules/.pnpm/tinycolor2@1.6.0/node_modules/tinycolor2/esm/tinycolor.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/helpers/color.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/common/ColorWrap.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/common/EditableInput.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/helpers/interaction.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/common/Swatch.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/sketch/SketchFields.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/sketch/SketchPresetColors.js","webpack://app/../node_modules/.pnpm/@chenshuai2144+sketch-color@1.0.9_react@18.2.0/node_modules/@chenshuai2144/sketch-color/es/components/sketch/Sketch.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/ColorPicker/old.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/ColorPicker/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/parseValueToMoment/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/DatePicker/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Digit/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/DigitRange/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/FromNow/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Image/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/IndexColumn/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Money/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Options/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Password/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Percent/util.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Percent/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Progress/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Radio/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/RangePicker/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Rate/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Second/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Segmented/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Slider/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Switch/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/Text/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/TextArea/readonly.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/TextArea/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/TimePicker/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/components/TreeSelect/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/FieldHOC/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-field@2.12.3_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-field/es/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/Field/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/isDropdownValueType/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/dateArrayFormatter/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/BaseForm/LightWrapper/style.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/BaseForm/LightWrapper/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/FormItem/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/List/ListItem.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/List/ListContainer.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/List/style.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/List/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/helpers/grid.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/Group/style.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/components/Group/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-form@2.18.4_antd@4.24.13_rc-field-form@1.37.0_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-form/es/layouts/ProForm/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/FieldLabel/style.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/FieldLabel/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/DropdownFooter/style.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/DropdownFooter/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/FilterDropdown/style.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/FilterDropdown/index.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/InfoCircleOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/InfoCircleOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/LabelIconTip/style.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/LabelIconTip/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/components/ProFormContext/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/conversionMomentValue/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/hooks/useDeepCompareEffect/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/hooks/useLatest/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/hooks/usePrevious/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/isDeepEqualReact/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/isNil/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/merge/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/nanoid/index.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/runFunction/index.js","webpack://app/javascript/node_modules/.pnpm/safe-stable-stringify@2.4.3/node_modules/safe-stable-stringify/esm/wrapper.js","webpack://app/../node_modules/.pnpm/@ant-design+pro-utils@2.14.2_antd@4.24.13_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/pro-utils/es/stringify/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/_util/getScroll.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/_util/easings.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/_util/scrollTo.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/_util/transButton.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/badge/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/badge/style/ribbon.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/badge/Ribbon.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/badge/SingleNumber.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/badge/ScrollNumber.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/badge/index.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/context.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/hooks/useSearchOptions.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/utils/commonUtil.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/utils/treeUtil.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/hooks/useDisplayValues.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/hooks/useEntities.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/hooks/useMissingValues.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/hooks/useSearchConfig.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/OptionList/CacheContent.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/OptionList/Checkbox.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/OptionList/Column.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/OptionList/useActive.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/OptionList/useKeyboard.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/OptionList/index.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/utils/warningPropsUtil.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/Cascader.js","webpack://app/../node_modules/.pnpm/rc-cascader@3.14.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-cascader/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/cascader/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/cascader/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/col/index.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/CalendarOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/CalendarOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/ClockCircleOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/ClockCircleOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/SwapRightOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/SwapRightOutlined.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/util.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/PickerButton.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/generatePicker/Components.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/generatePicker/generateRangePicker.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/generatePicker/generateSinglePicker.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/generatePicker/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/date-picker/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/grid/index.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/common.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/context.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/hooks/useRegisterImage.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/util.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/hooks/useStatus.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/getFixScaleEleTransPosition.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/hooks/useImageTransform.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/Operations.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/previewConfig.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/Preview.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/hooks/usePreviewItems.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/PreviewGroup.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/Image.js","webpack://app/../node_modules/.pnpm/rc-image@7.1.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-image/es/index.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/RotateLeftOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/RotateLeftOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/RotateRightOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/RotateRightOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/SwapOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/SwapOutlined.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/image/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/image/PreviewGroup.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/image/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/anchor/context.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/anchor/AnchorLink.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/anchor/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/anchor/Anchor.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/anchor/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/app/context.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/app/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/app/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/auto-complete/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/back-top/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/back-top/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/calendar/Header.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/calendar/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/calendar/generateCalendar.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/calendar/index.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/initial-state.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/utils/innerSliderUtils.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/track.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/dots.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/arrows.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/inner-slider.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/default-props.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/slider.js","webpack://app/../node_modules/.pnpm/@ant-design+react-slick@1.0.2_react@18.2.0/node_modules/@ant-design/react-slick/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/carousel/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/carousel/index.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/color.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/util.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/components/ColorBlock.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/hooks/useColorDrag.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/components/Handler.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/components/Palette.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/components/Transform.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/components/Picker.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/components/Gradient.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/components/Slider.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/hooks/useColorState.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/ColorPicker.js","webpack://app/../node_modules/.pnpm/@rc-component+color-picker@1.4.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/color-picker/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/context.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/color.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/util.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorClear.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/interface.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorSteppers.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorAlphaInput.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorHexInput.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorHsbInput.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorRgbInput.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorInput.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/PanelPicker.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorPresets.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/PanelPresets.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/ColorPickerPanel.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/components/ColorTrigger.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/hooks/useColorState.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/style/color-block.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/style/input.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/style/picker.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/style/presets.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/ColorPicker.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/color-picker/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/descriptions/DescriptionsContext.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/descriptions/Item.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/descriptions/Cell.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/descriptions/Row.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/descriptions/hooks/useRow.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/descriptions/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/descriptions/index.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/FileTextOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/FileTextOutlined.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/FloatButtonContent.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/context.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/util.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/FloatButton.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/BackTop.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/FloatButtonGroup.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/PurePanel.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/float-button/index.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/hooks/useEffectState.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/MentionsContext.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/DropdownMenu.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/KeywordTrigger.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/Option.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/util.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/Mentions.js","webpack://app/../node_modules/.pnpm/rc-mentions@2.5.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-mentions/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/mentions/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/mentions/index.js","webpack://app/../node_modules/.pnpm/qrcode.react@3.1.0_react@18.2.0/node_modules/qrcode.react/lib/esm/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/qr-code/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/qr-code/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/statistic/Number.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/statistic/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/statistic/Statistic.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/statistic/utils.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/statistic/Countdown.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/statistic/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/timeline/TimelineItem.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/timeline/TimelineItemList.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/timeline/useItems.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/timeline/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/timeline/Timeline.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/timeline/index.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/util.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/hooks/useTarget.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/Mask.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/placements.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/TourStep/DefaultPanel.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/TourStep/index.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/Tour.js","webpack://app/../node_modules/.pnpm/@rc-component+tour@1.8.1_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/tour/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tour/panelRender.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tour/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tour/PurePanel.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tour/useMergedType.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tour/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/_util/transKeys.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/hooks/useData.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/hooks/useSelection.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/ListItem.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/ListBody.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/search.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/list.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/operation.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/transfer/index.js","webpack://app/../node_modules/.pnpm/@rc-component+mutate-observer@1.1.0_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/mutate-observer/es/wrapper.js","webpack://app/../node_modules/.pnpm/@rc-component+mutate-observer@1.1.0_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/mutate-observer/es/useMutateObserver.js","webpack://app/../node_modules/.pnpm/@rc-component+mutate-observer@1.1.0_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/mutate-observer/es/MutateObserver.js","webpack://app/../node_modules/.pnpm/@rc-component+mutate-observer@1.1.0_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/mutate-observer/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/watermark/useClips.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/watermark/utils.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/watermark/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/popconfirm/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/popconfirm/PurePanel.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/popconfirm/index.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/StarFilled.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/StarFilled.js","webpack://app/../node_modules/.pnpm/rc-rate@2.12.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-rate/es/Star.js","webpack://app/../node_modules/.pnpm/rc-rate@2.12.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-rate/es/useRefs.js","webpack://app/../node_modules/.pnpm/rc-rate@2.12.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-rate/es/util.js","webpack://app/../node_modules/.pnpm/rc-rate@2.12.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-rate/es/Rate.js","webpack://app/../node_modules/.pnpm/rc-rate@2.12.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-rate/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/rate/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/rate/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/row/index.js","webpack://app/../node_modules/.pnpm/rc-segmented@2.2.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-segmented/es/MotionThumb.js","webpack://app/../node_modules/.pnpm/rc-segmented@2.2.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-segmented/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/segmented/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/segmented/index.js","webpack://app/../node_modules/.pnpm/rc-steps@6.0.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-steps/es/Step.js","webpack://app/../node_modules/.pnpm/rc-steps@6.0.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-steps/es/Steps.js","webpack://app/../node_modules/.pnpm/rc-steps@6.0.1_react-dom@18.2.0_react@18.2.0/node_modules/rc-steps/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/custom-icon.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/inline.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/label-placement.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/nav.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/progress.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/progress-dot.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/rtl.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/small.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/vertical.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/useLegacyItems.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/steps/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/style/operationUnit.js","webpack://app/../node_modules/.pnpm/rc-switch@4.1.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-switch/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/switch/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/switch/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useLazyKVMap.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/constant.js","webpack://app/../node_modules/.pnpm/@rc-component+context@1.4.0_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/context/es/context.js","webpack://app/../node_modules/.pnpm/@rc-component+context@1.4.0_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/context/es/Immutable.js","webpack://app/../node_modules/.pnpm/@rc-component+context@1.4.0_react-dom@18.2.0_react@18.2.0/node_modules/@rc-component/context/es/index.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/context/TableContext.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useRenderTimes.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/context/PerfContext.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/utils/valueUtil.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Cell/useCellRender.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Cell/useHoverState.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Cell/index.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/utils/fixUtil.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Footer/SummaryContext.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Footer/Cell.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Footer/Row.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Footer/Summary.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Footer/index.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useFlattenRecords.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Body/ExpandedRow.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Body/BodyRow.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Body/MeasureCell.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Body/MeasureRow.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Body/index.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/utils/legacyUtil.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/ColGroup.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/FixedHolder/index.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Header/HeaderRow.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Header/Header.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useColumns.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/utils/expandUtil.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useExpand.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useFixedInfo.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useFrame.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useHover.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useSticky.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/hooks/useStickyOffsets.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Panel/index.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/stickyScrollBar.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/sugar/Column.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/sugar/ColumnGroup.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/Table.js","webpack://app/../node_modules/.pnpm/rc-table@7.32.3_react-dom@18.2.0_react@18.2.0/node_modules/rc-table/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/Column.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/ColumnGroup.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/ExpandIcon.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/RcTable.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/util.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/FilterFilled.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/FilterFilled.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/_util/hooks/useSyncState.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useFilter/FilterSearch.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useFilter/FilterWrapper.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useFilter/FilterDropdown.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useFilter/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/usePagination.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useSelection.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/CaretDownOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/CaretDownOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/CaretUpOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/CaretUpOutlined.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useSorter.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/hooks/useTitleColumns.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/bordered.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/ellipsis.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/empty.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/expand.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/filter.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/fixed.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/pagination.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/radius.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/rtl.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/selection.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/size.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/sorter.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/sticky.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/summary.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/InternalTable.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/Table.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/table/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/time-picker/index.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/hooks/useCache.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/hooks/useCheckedKeys.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/hooks/useDataEntities.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/TreeNode.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/utils/legacyUtil.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/hooks/useFilterTreeData.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/hooks/useRefFunc.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/hooks/useTreeData.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/LegacyContext.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/TreeSelectContext.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/utils/valueUtil.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/OptionList.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/utils/strategyUtil.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/utils/warningPropsUtil.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/TreeSelect.js","webpack://app/../node_modules/.pnpm/rc-tree-select@5.11.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree-select/es/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree-select/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree-select/index.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/FolderOpenOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/FolderOpenOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/FolderOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/FolderOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/HolderOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/HolderOutlined.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree/utils/dropIndicator.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree/Tree.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree/utils/dictUtil.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree/DirectoryTree.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree/style/index.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/CaretDownFilled.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/CaretDownFilled.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/MinusSquareOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/MinusSquareOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/PlusSquareOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/PlusSquareOutlined.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/tree/utils/iconUtil.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/EditOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/EditOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons-svg@4.3.1/node_modules/@ant-design/icons-svg/es/asn/EnterOutlined.js","webpack://app/../node_modules/.pnpm/@ant-design+icons@5.2.5_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/EnterOutlined.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/style/mixins.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/style/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Editable.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Typography.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/hooks/useMergedConfig.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/hooks/useUpdatedEffect.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Base/Ellipsis.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Base/EllipsisTooltip.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Base/index.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Link.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Paragraph.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Text.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/Title.js","webpack://app/../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/typography/index.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/advancedFormat.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/customParseFormat.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/isoWeek.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/localeData.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/quarterOfYear.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/relativeTime.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/weekOfYear.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/weekYear.js","webpack://app/../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/weekday.js","webpack://app/../node_modules/.pnpm/json2mq@0.2.0/node_modules/json2mq/index.js","webpack://app/../node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.js","webpack://app/../node_modules/.pnpm/lodash.tonumber@4.0.3/node_modules/lodash.tonumber/index.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assignMergeValue.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseEach.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFor.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseForOwn.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseHasIn.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsMatch.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIteratee.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMap.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatches.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatchesProperty.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMerge.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMergeDeep.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseProperty.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyDeep.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castFunction.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseEach.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseFor.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMatchData.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasPath.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isStrictComparable.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_matchesStrictComparable.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_safeGet.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/cloneDeep.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/each.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/forEach.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/forOwn.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/get.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/hasIn.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLikeObject.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isString.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/map.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/merge.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/property.js","webpack://app/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toPlainObject.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/generate/dayjs.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DecadePanel/constant.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/dateUtil.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useValueTexts.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useHoverValue.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/uiUtil.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/usePickerInput.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/usePresets.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useTextValueMapping.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/PanelContext.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useCellRender.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/miscUtil.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useCellClassName.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/RangeContext.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/timeUtil.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/PanelBody.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DatePanel/DateBody.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/Header.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DatePanel/DateHeader.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DatePanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/TimePanel/TimeHeader.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useTimeSelection.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/TimePanel/TimeUnitColumn.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/TimePanel/TimeBody.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/TimePanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DatetimePanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DecadePanel/DecadeHeader.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DecadePanel/DecadeBody.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/DecadePanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/MonthPanel/MonthHeader.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/MonthPanel/MonthBody.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/MonthPanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/QuarterPanel/QuarterHeader.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/QuarterPanel/QuarterBody.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/QuarterPanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/WeekPanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/YearPanel/constant.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/YearPanel/YearHeader.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/YearPanel/YearBody.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/panels/YearPanel/index.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/getExtraFooter.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/getRanges.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/PickerPanel.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/PickerTrigger.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/PresetPanel.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/warnUtil.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/utils/getClearIcon.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/Picker.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useRangeDisabled.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useRangeOpen.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/hooks/useRangeViewDates.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/RangePicker.js","webpack://app/../node_modules/.pnpm/rc-picker@3.13.1_dayjs@1.11.9_react-dom@18.2.0_react@18.2.0/node_modules/rc-picker/es/index.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/Indent.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/TreeNode.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/contextTypes.js","webpack://app/javascript/node_modules/.pnpm/@babel+runtime@7.22.11/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/useUnmount.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/MotionTreeNode.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/utils/diffUtil.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/NodeList.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/DropIndicator.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/Tree.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/index.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/util.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/utils/conductUtil.js","webpack://app/../node_modules/.pnpm/rc-tree@5.7.10_react-dom@18.2.0_react@18.2.0/node_modules/rc-tree/es/utils/treeUtil.js","webpack://app/../node_modules/.pnpm/rc-util@5.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-util/es/Dom/addEventListener.js","webpack://app/../node_modules/.pnpm/rc-util@5.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-util/es/Dom/css.js","webpack://app/../node_modules/.pnpm/rc-util@5.37.0_react-dom@18.2.0_react@18.2.0/node_modules/rc-util/es/Dom/styleChecker.js","webpack://app/../node_modules/.pnpm/reactcss@1.2.3_react@18.2.0/node_modules/reactcss/lib/autoprefix.js","webpack://app/../node_modules/.pnpm/reactcss@1.2.3_react@18.2.0/node_modules/reactcss/lib/components/active.js","webpack://app/../node_modules/.pnpm/reactcss@1.2.3_react@18.2.0/node_modules/reactcss/lib/components/hover.js","webpack://app/../node_modules/.pnpm/reactcss@1.2.3_react@18.2.0/node_modules/reactcss/lib/flattenNames.js","webpack://app/../node_modules/.pnpm/reactcss@1.2.3_react@18.2.0/node_modules/reactcss/lib/index.js","webpack://app/../node_modules/.pnpm/reactcss@1.2.3_react@18.2.0/node_modules/reactcss/lib/loop.js","webpack://app/../node_modules/.pnpm/reactcss@1.2.3_react@18.2.0/node_modules/reactcss/lib/mergeClasses.js","webpack://app/../node_modules/.pnpm/safe-stable-stringify@2.4.3/node_modules/safe-stable-stringify/index.js","webpack://app/../node_modules/.pnpm/string-convert@0.2.1/node_modules/string-convert/camel2hyphen.js"],"sourcesContent":["// This icon file is generated automatically.\nvar CopyOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z\" } }] }, \"name\": \"copy\", \"theme\": \"outlined\" };\nexport default CopyOutlined;\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 CopyOutlinedSvg from \"@ant-design/icons-svg/es/asn/CopyOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CopyOutlined = function CopyOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CopyOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CopyOutlined.displayName = 'CopyOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(CopyOutlined);","// This icon file is generated automatically.\nvar FileOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"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.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z\" } }] }, \"name\": \"file\", \"theme\": \"outlined\" };\nexport default FileOutlined;\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 FileOutlinedSvg from \"@ant-design/icons-svg/es/asn/FileOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FileOutlined = function FileOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FileOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n FileOutlined.displayName = 'FileOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(FileOutlined);","// This icon file is generated automatically.\nvar UserOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z\" } }] }, \"name\": \"user\", \"theme\": \"outlined\" };\nexport default UserOutlined;\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 UserOutlinedSvg from \"@ant-design/icons-svg/es/asn/UserOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar UserOutlined = function UserOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UserOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n UserOutlined.displayName = 'UserOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(UserOutlined);","// This icon file is generated automatically.\nvar VerticalAlignTopOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M859.9 168H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM518.3 355a8 8 0 00-12.6 0l-112 141.7a7.98 7.98 0 006.3 12.9h73.9V848c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V509.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 355z\" } }] }, \"name\": \"vertical-align-top\", \"theme\": \"outlined\" };\nexport default VerticalAlignTopOutlined;\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 VerticalAlignTopOutlinedSvg from \"@ant-design/icons-svg/es/asn/VerticalAlignTopOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar VerticalAlignTopOutlined = function VerticalAlignTopOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: VerticalAlignTopOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n VerticalAlignTopOutlined.displayName = 'VerticalAlignTopOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(VerticalAlignTopOutlined);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState } from 'react';\nimport { useLatest } from \"../useLatest\";\n/**\n * 一个去抖的setState 减少更新的频率\n * @param {T} value\n * @param {number=100} delay\n * @param {DependencyList} deps?\n * @returns T\n */\nexport function useDebounceValue(value) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;\n var deps = arguments.length > 2 ? arguments[2] : undefined;\n var _useState = useState(value),\n _useState2 = _slicedToArray(_useState, 2),\n debouncedValue = _useState2[0],\n setDebouncedValue = _useState2[1];\n var valueRef = useLatest(value);\n useEffect(function () {\n var handler = setTimeout(function () {\n setDebouncedValue(valueRef.current);\n }, delay);\n return function () {\n return clearTimeout(handler);\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps ? [delay].concat(_toConsumableArray(deps)) : undefined);\n return debouncedValue;\n}","import { Badge } from 'antd';\nimport React from 'react';\n\n// 兼容代码-----------\nimport \"antd/es/badge/style\";\n//------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/** 快捷操作,用于快速的展示一个状态 */\nvar Status = {\n Success: function Success(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"success\",\n text: children\n });\n },\n Error: function Error(_ref2) {\n var children = _ref2.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"error\",\n text: children\n });\n },\n Default: function Default(_ref3) {\n var children = _ref3.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"default\",\n text: children\n });\n },\n Processing: function Processing(_ref4) {\n var children = _ref4.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"processing\",\n text: children\n });\n },\n Warning: function Warning(_ref5) {\n var children = _ref5.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"warning\",\n text: children\n });\n },\n success: function success(_ref6) {\n var children = _ref6.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"success\",\n text: children\n });\n },\n error: function error(_ref7) {\n var children = _ref7.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"error\",\n text: children\n });\n },\n default: function _default(_ref8) {\n var children = _ref8.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"default\",\n text: children\n });\n },\n processing: function processing(_ref9) {\n var children = _ref9.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"processing\",\n text: children\n });\n },\n warning: function warning(_ref10) {\n var children = _ref10.children;\n return /*#__PURE__*/_jsx(Badge, {\n status: \"warning\",\n text: children\n });\n }\n};\nexport var ProFieldBadgeColor = function ProFieldBadgeColor(_ref11) {\n var color = _ref11.color,\n children = _ref11.children;\n return /*#__PURE__*/_jsx(Badge, {\n color: color,\n text: children\n });\n};\nexport default Status;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"label\", \"prefixCls\", \"onChange\", \"value\", \"mode\", \"children\", \"defaultValue\", \"size\", \"showSearch\", \"disabled\", \"style\", \"className\", \"bordered\", \"options\", \"onSearch\", \"allowClear\", \"labelInValue\", \"fieldNames\", \"lightLabel\", \"labelTrigger\", \"optionFilterProp\", \"optionLabelProp\"];\nimport { SearchOutlined } from '@ant-design/icons';\nimport { FieldLabel, useStyle } from '@ant-design/pro-utils';\nimport { ConfigProvider, Input, Select } from 'antd';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport React, { useContext, useMemo, useState } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * 如果有 label 就优先使用 label\n *\n * @param valueMap\n * @param v\n */\nvar getValueOrLabel = function getValueOrLabel(valueMap, v) {\n if (_typeof(v) !== 'object') {\n return valueMap[v] || v;\n }\n return valueMap[v === null || v === void 0 ? void 0 : v.value] || v.label;\n};\nvar LightSelect = function LightSelect(props, ref) {\n var label = props.label,\n customizePrefixCls = props.prefixCls,\n _onChange = props.onChange,\n value = props.value,\n mode = props.mode,\n children = props.children,\n defaultValue = props.defaultValue,\n size = props.size,\n showSearch = props.showSearch,\n disabled = props.disabled,\n style = props.style,\n className = props.className,\n bordered = props.bordered,\n options = props.options,\n onSearch = props.onSearch,\n allowClear = props.allowClear,\n labelInValue = props.labelInValue,\n fieldNames = props.fieldNames,\n lightLabel = props.lightLabel,\n labelTrigger = props.labelTrigger,\n optionFilterProp = props.optionFilterProp,\n _props$optionLabelPro = props.optionLabelProp,\n optionLabelProp = _props$optionLabelPro === void 0 ? '' : _props$optionLabelPro,\n restProps = _objectWithoutProperties(props, _excluded);\n var _props$placeholder = props.placeholder,\n placeholder = _props$placeholder === void 0 ? label : _props$placeholder;\n var _ref = fieldNames || {},\n _ref$label = _ref.label,\n labelPropsName = _ref$label === void 0 ? 'label' : _ref$label,\n _ref$value = _ref.value,\n valuePropsName = _ref$value === void 0 ? 'value' : _ref$value;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-field-select-light-select');\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n var _useState3 = useState(''),\n _useState4 = _slicedToArray(_useState3, 2),\n keyword = _useState4[0],\n setKeyword = _useState4[1];\n\n // css\n var _useStyle = useStyle('LightSelect', function (token) {\n var _$concat2;\n return _defineProperty({}, \".\".concat(prefixCls), (_$concat2 = {}, _defineProperty(_$concat2, \"\".concat(token.antCls, \"-select\"), {\n position: 'absolute',\n width: '153px',\n height: '28px',\n visibility: 'hidden',\n '&-selector': {\n height: 28\n }\n }), _defineProperty(_$concat2, \"&.\".concat(prefixCls, \"-searchable\"), _defineProperty({}, \"\".concat(token.antCls, \"-select\"), {\n width: '200px',\n '&-selector': {\n height: 28\n }\n })), _$concat2));\n }),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var valueMap = useMemo(function () {\n var values = {};\n options === null || options === void 0 ? void 0 : options.forEach(function (item) {\n var optionLabel = item[optionLabelProp] || item[labelPropsName];\n var optionValue = item[valuePropsName];\n values[optionValue] = optionLabel || optionValue;\n });\n return values;\n }, [labelPropsName, options, valuePropsName, optionLabelProp]);\n var filterValue = Array.isArray(value) ? value.map(function (v) {\n return getValueOrLabel(valueMap, v);\n }) : getValueOrLabel(valueMap, value);\n return wrapSSR( /*#__PURE__*/_jsxs(\"div\", {\n className: classNames(prefixCls, hashId, _defineProperty({}, \"\".concat(prefixCls, \"-searchable\"), showSearch), \"\".concat(prefixCls, \"-container-\").concat(restProps.placement || 'bottomLeft'), className),\n style: style,\n onClick: function onClick(e) {\n var _lightLabel$current, _lightLabel$current$l, _lightLabel$current$l2;\n if (disabled) return;\n // 点击label切换下拉菜单\n var isLabelClick = lightLabel === null || lightLabel === void 0 ? void 0 : (_lightLabel$current = lightLabel.current) === null || _lightLabel$current === void 0 ? void 0 : (_lightLabel$current$l = _lightLabel$current.labelRef) === null || _lightLabel$current$l === void 0 ? void 0 : (_lightLabel$current$l2 = _lightLabel$current$l.current) === null || _lightLabel$current$l2 === void 0 ? void 0 : _lightLabel$current$l2.contains(e.target);\n if (isLabelClick) {\n setOpen(!open);\n } else {\n setOpen(true);\n }\n },\n children: [/*#__PURE__*/_jsx(Select, _objectSpread(_objectSpread({\n popupMatchSelectWidth: false\n }, restProps), {}, {\n allowClear: allowClear,\n value: value,\n mode: mode,\n labelInValue: labelInValue,\n size: size,\n disabled: disabled,\n onChange: function onChange(v, option) {\n _onChange === null || _onChange === void 0 ? void 0 : _onChange(v, option);\n if (mode !== 'multiple') {\n setOpen(false);\n }\n },\n bordered: bordered,\n showSearch: showSearch,\n onSearch: onSearch,\n style: style,\n dropdownRender: function dropdownRender(menuNode) {\n return /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n children: [showSearch && /*#__PURE__*/_jsx(\"div\", {\n style: {\n margin: '4px 8px'\n },\n children: /*#__PURE__*/_jsx(Input, {\n value: keyword,\n allowClear: !!allowClear,\n onChange: function onChange(e) {\n setKeyword(e.target.value);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(e.target.value);\n },\n onKeyDown: function onKeyDown(e) {\n // 避免按下删除键把选项也删除了\n e.stopPropagation();\n },\n style: {\n width: '100%'\n },\n prefix: /*#__PURE__*/_jsx(SearchOutlined, {})\n })\n }), menuNode]\n });\n },\n open: open,\n onDropdownVisibleChange: function onDropdownVisibleChange(isOpen) {\n var _restProps$onDropdown;\n if (!isOpen) {\n // 测试环境下直接跑\n setKeyword('');\n }\n if (!labelTrigger) {\n setOpen(isOpen);\n }\n restProps === null || restProps === void 0 ? void 0 : (_restProps$onDropdown = restProps.onDropdownVisibleChange) === null || _restProps$onDropdown === void 0 ? void 0 : _restProps$onDropdown.call(restProps, isOpen);\n },\n prefixCls: customizePrefixCls,\n options: onSearch || !keyword ? options : options === null || options === void 0 ? void 0 : options.filter(function (o) {\n var _String, _String$toLowerCase, _o$valuePropsName, _o$valuePropsName$toS, _o$valuePropsName$toS2;\n if (optionFilterProp) {\n return toArray(o[optionFilterProp]).join('').toLowerCase().includes(keyword);\n }\n return ((_String = String(o[labelPropsName])) === null || _String === void 0 ? void 0 : (_String$toLowerCase = _String.toLowerCase()) === null || _String$toLowerCase === void 0 ? void 0 : _String$toLowerCase.includes(keyword === null || keyword === void 0 ? void 0 : keyword.toLowerCase())) || ((_o$valuePropsName = o[valuePropsName]) === null || _o$valuePropsName === void 0 ? void 0 : (_o$valuePropsName$toS = _o$valuePropsName.toString()) === null || _o$valuePropsName$toS === void 0 ? void 0 : (_o$valuePropsName$toS2 = _o$valuePropsName$toS.toLowerCase()) === null || _o$valuePropsName$toS2 === void 0 ? void 0 : _o$valuePropsName$toS2.includes(keyword === null || keyword === void 0 ? void 0 : keyword.toLowerCase()));\n })\n })), /*#__PURE__*/_jsx(FieldLabel, {\n ellipsis: true,\n label: label,\n placeholder: placeholder,\n disabled: disabled,\n bordered: bordered,\n allowClear: !!allowClear,\n value: filterValue || (value === null || value === void 0 ? void 0 : value.label) || value,\n onClear: function onClear() {\n _onChange === null || _onChange === void 0 ? void 0 : _onChange(undefined, undefined);\n },\n ref: lightLabel\n })]\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(LightSelect);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"optionItemRender\", \"mode\", \"onSearch\", \"onFocus\", \"onChange\", \"autoClearSearchValue\", \"searchOnFocus\", \"resetAfterSelect\", \"fetchDataOnSearch\", \"optionFilterProp\", \"optionLabelProp\", \"className\", \"disabled\", \"options\", \"fetchData\", \"resetData\", \"prefixCls\", \"onClear\", \"searchValue\", \"showSearch\", \"fieldNames\", \"defaultSearchValue\"],\n _excluded2 = [\"className\", \"optionType\"];\nimport { ConfigProvider, Select } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\n\n// 支持 key, value, label,兼容 UserSearch 中只填写了 key 的情况。\n\n/** 用户扩展数据后的值类型 */\n\n/** 可能单选,可能多选 */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar SearchSelect = function SearchSelect(props, ref) {\n var optionItemRender = props.optionItemRender,\n mode = props.mode,\n onSearch = props.onSearch,\n _onFocus = props.onFocus,\n _onChange = props.onChange,\n _props$autoClearSearc = props.autoClearSearchValue,\n autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n _props$searchOnFocus = props.searchOnFocus,\n searchOnFocus = _props$searchOnFocus === void 0 ? false : _props$searchOnFocus,\n _props$resetAfterSele = props.resetAfterSelect,\n resetAfterSelect = _props$resetAfterSele === void 0 ? false : _props$resetAfterSele,\n _props$fetchDataOnSea = props.fetchDataOnSearch,\n fetchDataOnSearch = _props$fetchDataOnSea === void 0 ? true : _props$fetchDataOnSea,\n _props$optionFilterPr = props.optionFilterProp,\n optionFilterProp = _props$optionFilterPr === void 0 ? 'label' : _props$optionFilterPr,\n _props$optionLabelPro = props.optionLabelProp,\n optionLabelProp = _props$optionLabelPro === void 0 ? 'label' : _props$optionLabelPro,\n className = props.className,\n disabled = props.disabled,\n options = props.options,\n fetchData = props.fetchData,\n resetData = props.resetData,\n customizePrefixCls = props.prefixCls,\n _onClear = props.onClear,\n propsSearchValue = props.searchValue,\n showSearch = props.showSearch,\n fieldNames = props.fieldNames,\n defaultSearchValue = props.defaultSearchValue,\n restProps = _objectWithoutProperties(props, _excluded);\n var _ref = fieldNames || {},\n _ref$label = _ref.label,\n labelPropsName = _ref$label === void 0 ? 'label' : _ref$label,\n _ref$value = _ref.value,\n valuePropsName = _ref$value === void 0 ? 'value' : _ref$value,\n _ref$options = _ref.options,\n optionsPropsName = _ref$options === void 0 ? 'options' : _ref$options;\n var _useState = useState(propsSearchValue !== null && propsSearchValue !== void 0 ? propsSearchValue : defaultSearchValue),\n _useState2 = _slicedToArray(_useState, 2),\n searchValue = _useState2[0],\n setSearchValue = _useState2[1];\n var selectRef = useRef();\n useImperativeHandle(ref, function () {\n return selectRef.current;\n });\n useEffect(function () {\n if (restProps.autoFocus) {\n var _selectRef$current;\n selectRef === null || selectRef === void 0 ? void 0 : (_selectRef$current = selectRef.current) === null || _selectRef$current === void 0 ? void 0 : _selectRef$current.focus();\n }\n }, [restProps.autoFocus]);\n useEffect(function () {\n setSearchValue(propsSearchValue);\n }, [propsSearchValue]);\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-filed-search-select', customizePrefixCls);\n\n // 兼容 renderXXX API。\n\n var classString = classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled));\n var getMergeValue = function getMergeValue(value, option) {\n if (Array.isArray(value) && value.length > 0) {\n // 多选情况且用户有选择\n return value.map(function (item, index) {\n var optionItem = option === null || option === void 0 ? void 0 : option[index];\n var dataItem = (optionItem === null || optionItem === void 0 ? void 0 : optionItem['data-item']) || {};\n return _objectSpread(_objectSpread({}, dataItem), item);\n });\n }\n return [];\n };\n var genOptions = function genOptions(mapOptions) {\n return mapOptions.map(function (item, index) {\n var _item$optionsPropsNam;\n var _ref2 = item,\n itemClassName = _ref2.className,\n optionType = _ref2.optionType,\n resetItem = _objectWithoutProperties(_ref2, _excluded2);\n var label = item[labelPropsName];\n var value = item[valuePropsName];\n var itemOptions = (_item$optionsPropsNam = item[optionsPropsName]) !== null && _item$optionsPropsNam !== void 0 ? _item$optionsPropsNam : [];\n if (optionType === 'optGroup' || item.options) {\n return _objectSpread(_objectSpread({\n label: label\n }, resetItem), {}, {\n data_title: label,\n title: label,\n key: value !== null && value !== void 0 ? value : label === null || label === void 0 ? void 0 : label.toString(),\n children: genOptions(itemOptions)\n });\n }\n return _objectSpread(_objectSpread({\n title: label\n }, resetItem), {}, {\n data_title: label,\n value: value !== null && value !== void 0 ? value : index,\n key: value !== null && value !== void 0 ? value : label === null || label === void 0 ? void 0 : label.toString(),\n 'data-item': item,\n className: \"\".concat(prefixCls, \"-option \").concat(itemClassName || '').trim(),\n label: (optionItemRender === null || optionItemRender === void 0 ? void 0 : optionItemRender(item)) || label\n });\n });\n };\n return /*#__PURE__*/_jsx(Select, _objectSpread(_objectSpread({\n ref: selectRef,\n className: classString,\n allowClear: true,\n autoClearSearchValue: autoClearSearchValue,\n disabled: disabled,\n mode: mode,\n showSearch: showSearch,\n searchValue: searchValue,\n optionFilterProp: optionFilterProp,\n optionLabelProp: optionLabelProp,\n onClear: function onClear() {\n _onClear === null || _onClear === void 0 ? void 0 : _onClear();\n fetchData(undefined);\n if (showSearch) {\n setSearchValue(undefined);\n }\n }\n }, restProps), {}, {\n filterOption: restProps.filterOption == false ? false : function (inputValue, option) {\n var _option$data_title, _option$label, _option$value;\n if (restProps.filterOption && typeof restProps.filterOption === 'function') {\n return restProps.filterOption(inputValue, _objectSpread(_objectSpread({}, option), {}, {\n label: option === null || option === void 0 ? void 0 : option.data_title\n }));\n }\n return !!(option !== null && option !== void 0 && (_option$data_title = option.data_title) !== null && _option$data_title !== void 0 && _option$data_title.toString().toLowerCase().includes(inputValue.toLowerCase()) || option !== null && option !== void 0 && (_option$label = option.label) !== null && _option$label !== void 0 && _option$label.toString().toLowerCase().includes(inputValue.toLowerCase()) || option !== null && option !== void 0 && (_option$value = option.value) !== null && _option$value !== void 0 && _option$value.toString().toLowerCase().includes(inputValue.toLowerCase()));\n } // 这里使用pro-components的过滤逻辑\n ,\n onSearch: showSearch ? function (value) {\n if (fetchDataOnSearch) {\n fetchData(value);\n }\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(value);\n setSearchValue(value);\n } : undefined,\n onChange: function onChange(value, optionList) {\n // 将搜索框置空 和 antd 行为保持一致\n if (showSearch && autoClearSearchValue) {\n fetchData(undefined);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch('');\n setSearchValue(undefined);\n }\n for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n rest[_key - 2] = arguments[_key];\n }\n if (!props.labelInValue) {\n _onChange === null || _onChange === void 0 ? void 0 : _onChange.apply(void 0, [value, optionList].concat(rest));\n return;\n }\n if (mode !== 'multiple') {\n // 单选情况且用户选择了选项\n var dataItem = optionList && optionList['data-item'];\n // 如果value值为空则是清空时产生的回调,直接传值就可以了\n if (!value || !dataItem) {\n _onChange === null || _onChange === void 0 ? void 0 : _onChange.apply(void 0, [value, optionList].concat(rest));\n } else {\n _onChange === null || _onChange === void 0 ? void 0 : _onChange.apply(void 0, [_objectSpread(_objectSpread({}, value), dataItem), optionList].concat(rest));\n }\n return;\n }\n // 合并值\n var mergeValue = getMergeValue(value, optionList);\n _onChange === null || _onChange === void 0 ? void 0 : _onChange.apply(void 0, [mergeValue, optionList].concat(rest));\n\n // 将搜索结果置空,重新搜索\n if (resetAfterSelect) resetData();\n },\n onFocus: function onFocus(e) {\n if (searchOnFocus) {\n fetchData(searchValue);\n }\n _onFocus === null || _onFocus === void 0 ? void 0 : _onFocus(e);\n },\n options: genOptions(options || [])\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(SearchSelect);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"value\", \"text\"],\n _excluded2 = [\"mode\", \"valueEnum\", \"render\", \"renderFormItem\", \"request\", \"fieldProps\", \"plain\", \"children\", \"light\", \"proFieldKey\", \"params\", \"label\", \"bordered\", \"id\", \"lightLabel\", \"labelTrigger\"];\nimport { useIntl } from '@ant-design/pro-provider';\nimport { nanoid, useDebounceValue, useDeepCompareEffect, useMountMergeState, useStyle } from '@ant-design/pro-utils';\nimport { ConfigProvider, Space, Spin } from 'antd';\nimport React, { useCallback, useContext, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport useSWR from 'swr';\nimport TableStatus, { ProFieldBadgeColor } from \"../Status\";\nimport LightSelect from \"./LightSelect\";\nimport SearchSelect from \"./SearchSelect\";\n\n// 兼容代码-----------\nimport \"antd/es/select/style\";\n//------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nexport var ObjToMap = function ObjToMap(value) {\n if (getType(value) === 'map') {\n return value;\n }\n return new Map(Object.entries(value || {}));\n};\n\n/**\n * 转化 text 和 valueEnum 通过 type 来添加 Status\n *\n * @param text\n * @param valueEnum\n * @param pure 纯净模式,不增加 status\n */\nexport var proFieldParsingText = function proFieldParsingText(text, valueEnumParams, key) {\n if (Array.isArray(text)) {\n return /*#__PURE__*/_jsx(Space, {\n split: \",\",\n size: 2,\n wrap: true,\n children: text.map(function (value, index) {\n return (\n // @ts-ignore\n proFieldParsingText(value, valueEnumParams, index)\n );\n })\n }, key);\n }\n var valueEnum = ObjToMap(valueEnumParams);\n if (!valueEnum.has(text) && !valueEnum.has(\"\".concat(text))) {\n // @ts-ignore\n return (text === null || text === void 0 ? void 0 : text.label) || text;\n }\n var domText = valueEnum.get(text) || valueEnum.get(\"\".concat(text));\n if (!domText) {\n // @ts-ignore\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: (text === null || text === void 0 ? void 0 : text.label) || text\n }, key);\n }\n var status = domText.status,\n color = domText.color;\n var Status = TableStatus[status || 'Init'];\n // 如果类型存在优先使用类型\n if (Status) {\n return /*#__PURE__*/_jsx(Status, {\n children: domText.text\n }, key);\n }\n\n // 如果不存在使用颜色\n if (color) {\n return /*#__PURE__*/_jsx(ProFieldBadgeColor, {\n color: color,\n children: domText.text\n }, key);\n }\n // 什么都没有使用 text\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: domText.text || domText\n }, key);\n};\nvar Highlight = function Highlight(_ref) {\n var label = _ref.label,\n words = _ref.words;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var lightCls = getPrefixCls('pro-select-item-option-content-light');\n var optionCls = getPrefixCls('pro-select-item-option-content');\n\n // css\n var _useStyle = useStyle('Highlight', function (token) {\n var _ref2;\n return _ref2 = {}, _defineProperty(_ref2, \".\".concat(lightCls), {\n color: token.colorPrimary\n }), _defineProperty(_ref2, \".\".concat(optionCls), {\n flex: 'auto',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n }), _ref2;\n }),\n wrapSSR = _useStyle.wrapSSR;\n var matchKeywordsRE = new RegExp(words.map(function (word) {\n return word.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n }).join('|'), 'gi');\n var matchText = label;\n var elements = [];\n while (matchText.length) {\n var match = matchKeywordsRE.exec(matchText);\n if (!match) {\n elements.push(matchText);\n break;\n }\n var start = match.index;\n var matchLength = match[0].length + start;\n elements.push(matchText.slice(0, start), /*#__PURE__*/React.createElement('span', {\n className: lightCls\n }, matchText.slice(start, matchLength)));\n matchText = matchText.slice(matchLength);\n }\n return wrapSSR( /*#__PURE__*/React.createElement.apply(React, ['div', {\n title: label,\n className: optionCls\n }].concat(elements)));\n};\n\n/**\n * 获取类型的 type\n *\n * @param obj\n */\nfunction getType(obj) {\n // @ts-ignore\n var type = Object.prototype.toString.call(obj).match(/^\\[object (.*)\\]$/)[1].toLowerCase();\n if (type === 'string' && _typeof(obj) === 'object') return 'object'; // Let \"new String('')\" return 'object'\n if (obj === null) return 'null'; // PhantomJS has type \"DOMWindow\" for null\n if (obj === undefined) return 'undefined'; // PhantomJS has type \"DOMWindow\" for undefined\n return type;\n}\n\n/**\n * 递归筛选 item\n *\n * @param item\n * @param keyWords\n * @returns\n */\nfunction filerByItem(item, keyWords) {\n var _item$label, _item$value;\n if (!keyWords) return true;\n if (item !== null && item !== void 0 && (_item$label = item.label) !== null && _item$label !== void 0 && _item$label.toString().toLowerCase().includes(keyWords.toLowerCase()) || item !== null && item !== void 0 && (_item$value = item.value) !== null && _item$value !== void 0 && _item$value.toString().toLowerCase().includes(keyWords.toLowerCase())) {\n return true;\n }\n if (item.children || item.options) {\n var findItem = [].concat(_toConsumableArray(item.children || []), [item.options || []]).find(function (mapItem) {\n return filerByItem(mapItem, keyWords);\n });\n if (findItem) return true;\n }\n return false;\n}\n\n/**\n * 把 value 的枚举转化为数组\n *\n * @param valueEnum\n */\nexport var proFieldParsingValueEnumToArray = function proFieldParsingValueEnumToArray(valueEnumParams) {\n var enumArray = [];\n var valueEnum = ObjToMap(valueEnumParams);\n valueEnum.forEach(function (_, key) {\n var value = valueEnum.get(key) || valueEnum.get(\"\".concat(key));\n if (!value) {\n return;\n }\n if (_typeof(value) === 'object' && value !== null && value !== void 0 && value.text) {\n enumArray.push({\n text: value === null || value === void 0 ? void 0 : value.text,\n value: key,\n label: value === null || value === void 0 ? void 0 : value.text,\n disabled: value.disabled\n });\n return;\n }\n enumArray.push({\n text: value,\n value: key\n });\n });\n return enumArray;\n};\nexport var useFieldFetchData = function useFieldFetchData(props) {\n var _ref5, _props$debounceTime, _props$fieldProps3, _props$fieldProps6;\n var cacheForSwr = props.cacheForSwr,\n fieldProps = props.fieldProps;\n var _useState = useState(props.defaultKeyWords),\n _useState2 = _slicedToArray(_useState, 2),\n keyWords = _useState2[0],\n setKeyWords = _useState2[1];\n /** Key 是用来缓存请求的,如果不在是有问题 */\n var _useState3 = useState(function () {\n if (props.proFieldKey) {\n return props.proFieldKey.toString();\n }\n if (props.request) {\n return nanoid();\n }\n return 'no-fetch';\n }),\n _useState4 = _slicedToArray(_useState3, 1),\n cacheKey = _useState4[0];\n var proFieldKeyRef = useRef(cacheKey);\n var getOptionsFormValueEnum = useCallback(function (coverValueEnum) {\n return proFieldParsingValueEnumToArray(ObjToMap(coverValueEnum)).map(function (_ref3) {\n var value = _ref3.value,\n text = _ref3.text,\n rest = _objectWithoutProperties(_ref3, _excluded);\n return _objectSpread({\n label: text,\n value: value,\n key: value\n }, rest);\n });\n }, []);\n var defaultOptions = useMemo(function () {\n if (!fieldProps) return undefined;\n var data = (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.options) || (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.treeData);\n if (!data) return undefined;\n var _ref4 = fieldProps.fieldNames || {},\n children = _ref4.children,\n label = _ref4.label,\n value = _ref4.value;\n var traverseFieldKey = function traverseFieldKey(_options, type) {\n if (!(_options !== null && _options !== void 0 && _options.length)) return;\n var length = _options.length;\n var i = 0;\n while (i < length) {\n var cur = _options[i++];\n if (cur[children] || cur[label] || cur[value]) {\n cur[type] = cur[type === 'children' ? children : type === 'label' ? label : value];\n traverseFieldKey(cur[children], type);\n }\n }\n };\n if (children) traverseFieldKey(data, 'children');\n if (label) traverseFieldKey(data, 'label');\n if (value) traverseFieldKey(data, 'value');\n return data;\n }, [fieldProps]);\n var _useMountMergeState = useMountMergeState(function () {\n if (props.valueEnum) {\n return getOptionsFormValueEnum(props.valueEnum);\n }\n return [];\n }, {\n value: defaultOptions\n }),\n _useMountMergeState2 = _slicedToArray(_useMountMergeState, 2),\n options = _useMountMergeState2[0],\n setOptions = _useMountMergeState2[1];\n useDeepCompareEffect(function () {\n var _props$fieldProps, _props$fieldProps2;\n // 优先使用 fieldProps?.options\n if (!props.valueEnum || (_props$fieldProps = props.fieldProps) !== null && _props$fieldProps !== void 0 && _props$fieldProps.options || (_props$fieldProps2 = props.fieldProps) !== null && _props$fieldProps2 !== void 0 && _props$fieldProps2.treeData) return;\n setOptions(getOptionsFormValueEnum(props.valueEnum));\n }, [props.valueEnum]);\n var swrKey = useDebounceValue([proFieldKeyRef.current, props.params, keyWords], (_ref5 = (_props$debounceTime = props.debounceTime) !== null && _props$debounceTime !== void 0 ? _props$debounceTime : props === null || props === void 0 ? void 0 : (_props$fieldProps3 = props.fieldProps) === null || _props$fieldProps3 === void 0 ? void 0 : _props$fieldProps3.debounceTime) !== null && _ref5 !== void 0 ? _ref5 : 0, [props.params, keyWords]);\n var _useSWR = useSWR(function () {\n if (!props.request) {\n return null;\n }\n return swrKey;\n }, function (_ref6) {\n var _ref7 = _slicedToArray(_ref6, 3),\n params = _ref7[1],\n kw = _ref7[2];\n return props.request(_objectSpread(_objectSpread({}, params), {}, {\n keyWords: kw\n }), props);\n }, {\n revalidateIfStale: !cacheForSwr,\n // 打开 cacheForSwr 的时候才应该支持两个功能\n revalidateOnReconnect: cacheForSwr,\n shouldRetryOnError: false,\n // @todo 这个功能感觉应该搞个API出来\n revalidateOnFocus: false\n }),\n data = _useSWR.data,\n setLocaleData = _useSWR.mutate,\n isValidating = _useSWR.isValidating;\n var resOptions = useMemo(function () {\n var _props$fieldProps4, _props$fieldProps5;\n var opt = options === null || options === void 0 ? void 0 : options.map(function (item) {\n if (typeof item === 'string') {\n return {\n label: item,\n value: item\n };\n }\n if (item.children || item.options) {\n var childrenOptions = [].concat(_toConsumableArray(item.children || []), _toConsumableArray(item.options || [])).filter(function (mapItem) {\n return filerByItem(mapItem, keyWords);\n });\n return _objectSpread(_objectSpread({}, item), {}, {\n children: childrenOptions,\n options: childrenOptions\n });\n }\n return item;\n });\n\n // filterOption 为 true 时 filter数据, filterOption 默认为true\n if (((_props$fieldProps4 = props.fieldProps) === null || _props$fieldProps4 === void 0 ? void 0 : _props$fieldProps4.filterOption) === true || ((_props$fieldProps5 = props.fieldProps) === null || _props$fieldProps5 === void 0 ? void 0 : _props$fieldProps5.filterOption) === undefined) {\n return opt === null || opt === void 0 ? void 0 : opt.filter(function (item) {\n if (!item) return false;\n if (!keyWords) return true;\n return filerByItem(item, keyWords);\n });\n }\n return opt;\n }, [options, keyWords, (_props$fieldProps6 = props.fieldProps) === null || _props$fieldProps6 === void 0 ? void 0 : _props$fieldProps6.filterOption]);\n return [isValidating, props.request ? data : resOptions, function (fetchKeyWords) {\n setKeyWords(fetchKeyWords);\n }, function () {\n setKeyWords(undefined);\n setLocaleData([], false);\n }];\n};\n\n/**\n * 可以根据 valueEnum 来进行类型的设置\n *\n * @param\n */\nvar FieldSelect = function FieldSelect(props, ref) {\n var _ConfigProvider$useCo;\n var mode = props.mode,\n valueEnum = props.valueEnum,\n render = props.render,\n renderFormItem = props.renderFormItem,\n request = props.request,\n fieldProps = props.fieldProps,\n plain = props.plain,\n children = props.children,\n light = props.light,\n proFieldKey = props.proFieldKey,\n params = props.params,\n label = props.label,\n bordered = props.bordered,\n id = props.id,\n lightLabel = props.lightLabel,\n labelTrigger = props.labelTrigger,\n rest = _objectWithoutProperties(props, _excluded2);\n var inputRef = useRef();\n var intl = useIntl();\n var keyWordsRef = useRef('');\n var fieldNames = fieldProps.fieldNames;\n useEffect(function () {\n keyWordsRef.current = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.searchValue;\n }, [fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.searchValue]);\n var _useFieldFetchData = useFieldFetchData(props),\n _useFieldFetchData2 = _slicedToArray(_useFieldFetchData, 4),\n loading = _useFieldFetchData2[0],\n options = _useFieldFetchData2[1],\n _fetchData = _useFieldFetchData2[2],\n resetData = _useFieldFetchData2[3];\n var _ref8 = (ConfigProvider === null || ConfigProvider === void 0 ? void 0 : (_ConfigProvider$useCo = ConfigProvider.useConfig) === null || _ConfigProvider$useCo === void 0 ? void 0 : _ConfigProvider$useCo.call(ConfigProvider)) || {\n componentSize: 'middle'\n },\n componentSize = _ref8.componentSize;\n useImperativeHandle(ref, function () {\n return _objectSpread(_objectSpread({}, inputRef.current || {}), {}, {\n fetchData: function fetchData(keyWord) {\n return _fetchData(keyWord);\n }\n });\n }, [_fetchData]);\n var optionsValueEnum = useMemo(function () {\n if (mode !== 'read') return;\n var _ref9 = fieldNames || {},\n _ref9$label = _ref9.label,\n labelPropsName = _ref9$label === void 0 ? 'label' : _ref9$label,\n _ref9$value = _ref9.value,\n valuePropsName = _ref9$value === void 0 ? 'value' : _ref9$value,\n _ref9$options = _ref9.options,\n optionsPropsName = _ref9$options === void 0 ? 'options' : _ref9$options;\n var valuesMap = new Map();\n var traverseOptions = function traverseOptions(_options) {\n if (!(_options !== null && _options !== void 0 && _options.length)) {\n return valuesMap;\n }\n var length = _options.length;\n var i = 0;\n while (i < length) {\n var cur = _options[i++];\n valuesMap.set(cur[valuePropsName], cur[labelPropsName]);\n traverseOptions(cur[optionsPropsName]);\n }\n return valuesMap;\n };\n return traverseOptions(options);\n }, [fieldNames, mode, options]);\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(_Fragment, {\n children: proFieldParsingText(rest.text, ObjToMap(valueEnum || optionsValueEnum))\n });\n if (render) {\n var _render;\n return (_render = render(rest.text, _objectSpread({\n mode: mode\n }, fieldProps), dom)) !== null && _render !== void 0 ? _render : null;\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var renderDom = function renderDom() {\n if (light) {\n return /*#__PURE__*/_jsx(LightSelect, _objectSpread({\n bordered: bordered,\n id: id,\n loading: loading,\n ref: inputRef,\n allowClear: true,\n size: componentSize,\n options: options,\n label: label,\n placeholder: intl.getMessage('tableForm.selectPlaceholder', '请选择'),\n lightLabel: lightLabel,\n labelTrigger: labelTrigger\n }, fieldProps));\n }\n return /*#__PURE__*/_jsx(SearchSelect, _objectSpread(_objectSpread({\n className: rest.className,\n style: _objectSpread({\n minWidth: 100\n }, rest.style),\n bordered: bordered,\n id: id,\n loading: loading,\n ref: inputRef,\n allowClear: true,\n defaultSearchValue: props.defaultKeyWords,\n notFoundContent: loading ? /*#__PURE__*/_jsx(Spin, {\n size: \"small\"\n }) : fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.notFoundContent,\n fetchData: function fetchData(keyWord) {\n keyWordsRef.current = keyWord !== null && keyWord !== void 0 ? keyWord : '';\n _fetchData(keyWord);\n },\n resetData: resetData,\n optionItemRender: function optionItemRender(item) {\n if (typeof item.label === 'string' && keyWordsRef.current) {\n return /*#__PURE__*/_jsx(Highlight, {\n label: item.label,\n words: [keyWordsRef.current]\n });\n }\n return item.label;\n },\n placeholder: intl.getMessage('tableForm.selectPlaceholder', '请选择'),\n label: label\n }, fieldProps), {}, {\n options: options\n }), \"SearchSelect\");\n };\n var _dom = renderDom();\n if (renderFormItem) {\n var _renderFormItem;\n return (_renderFormItem = renderFormItem(rest.text, _objectSpread(_objectSpread({\n mode: mode\n }, fieldProps), {}, {\n options: options,\n loading: loading\n }), _dom)) !== null && _renderFormItem !== void 0 ? _renderFormItem : null;\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldSelect);","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef, useState } from 'react';\nimport useSWR from 'swr';\nvar testId = 0;\nexport function useFetchData(props) {\n var abortRef = useRef(null);\n /** Key 是用来缓存请求的,如果不在是有问题 */\n var _useState = useState(function () {\n if (props.proFieldKey) {\n return props.proFieldKey.toString();\n }\n testId += 1;\n return testId.toString();\n }),\n _useState2 = _slicedToArray(_useState, 1),\n cacheKey = _useState2[0];\n var proFieldKeyRef = useRef(cacheKey);\n var fetchData = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _abortRef$current, _props$request;\n var abort, loadData;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n (_abortRef$current = abortRef.current) === null || _abortRef$current === void 0 ? void 0 : _abortRef$current.abort();\n abort = new AbortController();\n abortRef.current = abort;\n _context.next = 5;\n return Promise.race([(_props$request = props.request) === null || _props$request === void 0 ? void 0 : _props$request.call(props, props.params, props), new Promise(function (_, reject) {\n var _abortRef$current2, _abortRef$current2$si;\n (_abortRef$current2 = abortRef.current) === null || _abortRef$current2 === void 0 ? void 0 : (_abortRef$current2$si = _abortRef$current2.signal) === null || _abortRef$current2$si === void 0 ? void 0 : _abortRef$current2$si.addEventListener('abort', function () {\n reject(new Error('aborted'));\n });\n })]);\n case 5:\n loadData = _context.sent;\n return _context.abrupt(\"return\", loadData);\n case 7:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function fetchData() {\n return _ref.apply(this, arguments);\n };\n }();\n useEffect(function () {\n return function () {\n testId += 1;\n };\n }, []);\n var _useSWR = useSWR([proFieldKeyRef.current, props.params], fetchData, {\n revalidateOnFocus: false,\n shouldRetryOnError: false,\n revalidateOnReconnect: false\n }),\n data = _useSWR.data,\n error = _useSWR.error;\n return [data || error];\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable @typescript-eslint/ban-types */\nimport deepMerge from 'lodash.merge';\nimport get from \"rc-util/es/utils/get\";\nimport namePathSet from \"rc-util/es/utils/set\";\nimport React from 'react';\nimport { isNil } from \"../isNil\";\nimport { merge } from \"../merge\";\n/**\n * 暂时还不支持 Set和 Map 结构 判断是不是一个能遍历的对象\n *\n * @param itemValue\n * @returns Boolean\n */\nexport function isPlainObj(itemValue) {\n if (_typeof(itemValue) !== 'object') return false;\n\n /** Null 也要处理,不然omit空会失效 */\n if (itemValue === null) return true;\n if ( /*#__PURE__*/React.isValidElement(itemValue)) return false;\n if (itemValue.constructor === RegExp) return false;\n if (itemValue instanceof Map) return false;\n if (itemValue instanceof Set) return false;\n if (itemValue instanceof HTMLElement) return false;\n if (itemValue instanceof Blob) return false;\n if (itemValue instanceof File) return false;\n if (Array.isArray(itemValue)) return false;\n return true;\n}\nexport var transformKeySubmitValue = function transformKeySubmitValue(values, dataFormatMapRaw) {\n var omit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // ignore nil transform\n var dataFormatMap = Object.keys(dataFormatMapRaw).reduce(function (ret, key) {\n var value = dataFormatMapRaw[key];\n if (!isNil(value)) {\n // eslint-disable-next-line no-param-reassign\n ret[key] = value; // can't be undefined\n }\n\n return ret;\n }, {});\n if (Object.keys(dataFormatMap).length < 1) {\n return values;\n }\n if (typeof window === 'undefined') return values;\n // 如果 value 是 string | null | Array | Blob类型 其中之一,直接返回\n // 形如 {key: [File, File]} 的表单字段当进行第二次递归时会导致其直接越过 typeof value !== 'object' 这一判断 https://github.com/ant-design/pro-components/issues/2071\n if (_typeof(values) !== 'object' || isNil(values) || values instanceof Blob) {\n return values;\n }\n var finalValues = Array.isArray(values) ? [] : {};\n var gen = function gen(tempValues, parentsKey) {\n var isArrayValues = Array.isArray(tempValues);\n var result = isArrayValues ? [] : {};\n if (tempValues == null || tempValues === undefined) {\n return result;\n }\n Object.keys(tempValues).forEach(function (entityKey) {\n var transformForArray = function transformForArray(transformList, subItemValue) {\n if (!Array.isArray(transformList)) return entityKey;\n transformList.forEach(function (transform, idx) {\n // 如果不存在直接返回\n if (!transform) return;\n var subTransformItem = subItemValue === null || subItemValue === void 0 ? void 0 : subItemValue[idx];\n\n // 如果是个方法,把key设置为方法的返回值\n if (typeof transform === 'function') {\n subItemValue[idx] = transform(subItemValue, entityKey, tempValues);\n }\n if (_typeof(transform) === 'object' && !Array.isArray(transform)) {\n Object.keys(transform).forEach(function (transformArrayItem) {\n var subTransformItemValue = subTransformItem === null || subTransformItem === void 0 ? void 0 : subTransformItem[transformArrayItem];\n if (typeof transform[transformArrayItem] === 'function' && subTransformItemValue) {\n var res = transform[transformArrayItem](subTransformItem[transformArrayItem], entityKey, tempValues);\n subTransformItem[transformArrayItem] = _typeof(res) === 'object' ? res[transformArrayItem] : res;\n } else if (_typeof(transform[transformArrayItem]) === 'object' && Array.isArray(transform[transformArrayItem]) && subTransformItemValue) {\n transformForArray(transform[transformArrayItem], subTransformItemValue);\n }\n });\n }\n if (_typeof(transform) === 'object' && Array.isArray(transform) && subTransformItem) {\n transformForArray(transform, subTransformItem);\n }\n });\n return entityKey;\n };\n var key = parentsKey ? [parentsKey, entityKey].flat(1) : [entityKey].flat(1);\n var itemValue = tempValues[entityKey];\n var transformFunction = get(dataFormatMap, key);\n var transform = function transform() {\n var tempKey,\n transformedResult,\n isTransformedResultPrimitive = false;\n\n /**\n * 先判断是否是方法,是的话执行后拿到值,如果是基本类型,则认为是直接 transform 为新的值,\n * 如果返回是 Object 则认为是 transform 为新的 {newKey: newValue}\n */\n if (typeof transformFunction === 'function') {\n transformedResult = transformFunction === null || transformFunction === void 0 ? void 0 : transformFunction(itemValue, entityKey, tempValues);\n var typeOfResult = _typeof(transformedResult);\n if (typeOfResult !== 'object' && typeOfResult !== 'undefined') {\n tempKey = entityKey;\n isTransformedResultPrimitive = true;\n } else {\n tempKey = transformedResult;\n }\n } else {\n tempKey = transformForArray(transformFunction, itemValue);\n }\n\n // { [key:string]:any } 数组也能通过编译\n if (Array.isArray(tempKey)) {\n result = namePathSet(result, tempKey, itemValue);\n return;\n }\n if (_typeof(tempKey) === 'object' && !Array.isArray(finalValues)) {\n finalValues = deepMerge(finalValues, tempKey);\n } else if (_typeof(tempKey) === 'object' && Array.isArray(finalValues)) {\n result = _objectSpread(_objectSpread({}, result), tempKey);\n } else if (tempKey !== null || tempKey !== undefined) {\n result = namePathSet(result, [tempKey], isTransformedResultPrimitive ? transformedResult : itemValue);\n }\n };\n\n /** 如果存在转化器提前渲染一下 */\n if (transformFunction && typeof transformFunction === 'function') {\n transform();\n }\n if (typeof window === 'undefined') return;\n if (isPlainObj(itemValue)) {\n var genValues = gen(itemValue, key);\n if (Object.keys(genValues).length < 1) {\n return;\n }\n result = namePathSet(result, [entityKey], genValues);\n return;\n }\n transform();\n });\n // namePath、transform在omit为false时需正常返回 https://github.com/ant-design/pro-components/issues/2901#issue-908097115\n return omit ? result : tempValues;\n };\n finalValues = Array.isArray(values) && Array.isArray(finalValues) ? _toConsumableArray(gen(values)) : merge({}, gen(values), finalValues);\n return finalValues;\n};","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n/* eslint-disable no-restricted-syntax */\r\nimport { useEffect, useMemo, useState } from 'react';\r\n/**\r\n *\r\n * @param {object} params\r\n * @returns {URL}\r\n */\r\nfunction setQueryToCurrentUrl(params) {\r\n var _a;\r\n var URL = (typeof window !== 'undefined' ? window : {}).URL;\r\n var url = new URL((_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.href);\r\n Object.keys(params).forEach(function (key) {\r\n var value = params[key];\r\n if (value !== null && value !== undefined) {\r\n if (Array.isArray(value)) {\r\n url.searchParams.delete(key);\r\n value.forEach(function (valueItem) {\r\n url.searchParams.append(key, valueItem);\r\n });\r\n }\r\n else if (value instanceof Date) {\r\n if (!Number.isNaN(value.getTime())) {\r\n url.searchParams.set(key, value.toISOString());\r\n }\r\n }\r\n else if (typeof value === 'object') {\r\n url.searchParams.set(key, JSON.stringify(value));\r\n }\r\n else {\r\n url.searchParams.set(key, value);\r\n }\r\n }\r\n else {\r\n url.searchParams.delete(key);\r\n }\r\n });\r\n return url;\r\n}\r\nexport function useUrlSearchParams(initial, config) {\r\n var _a;\r\n if (initial === void 0) { initial = {}; }\r\n if (config === void 0) { config = { disabled: false }; }\r\n /**\r\n * The main idea of this hook is to make things response to change of `window.location.search`,\r\n * so no need for introducing new state (in the mean time).\r\n * Whenever `window.location.search` is changed but not cause re-render, call `forceUpdate()`.\r\n * Whenever the component - user of this hook - re-render, this hook should return\r\n * the query object that corresponse to the current `window.location.search`\r\n */\r\n var _b = useState(), forceUpdate = _b[1];\r\n var locationSearch = typeof window !== 'undefined' && ((_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.search);\r\n /**\r\n * @type {URLSearchParams}\r\n */\r\n var urlSearchParams = useMemo(function () {\r\n if (config.disabled)\r\n return {};\r\n return new URLSearchParams(locationSearch || {});\r\n }, [config.disabled, locationSearch]);\r\n var params = useMemo(function () {\r\n if (config.disabled)\r\n return {};\r\n if (typeof window === 'undefined' || !window.URL)\r\n return {};\r\n var result = [];\r\n // @ts-ignore\r\n urlSearchParams.forEach(function (value, key) {\r\n result.push({\r\n key: key,\r\n value: value,\r\n });\r\n });\r\n // group by key\r\n result = result.reduce(function (acc, val) {\r\n (acc[val.key] = acc[val.key] || []).push(val);\r\n return acc;\r\n }, {});\r\n result = Object.keys(result).map(function (key) {\r\n var valueGroup = result[key];\r\n if (valueGroup.length === 1) {\r\n return [key, valueGroup[0].value];\r\n }\r\n return [key, valueGroup.map(function (_a) {\r\n var value = _a.value;\r\n return value;\r\n })];\r\n });\r\n var newParams = __assign({}, initial);\r\n result.forEach(function (_a) {\r\n var key = _a[0], value = _a[1];\r\n newParams[key] = parseValue(key, value, {}, initial);\r\n });\r\n return newParams;\r\n }, [config.disabled, initial, urlSearchParams]);\r\n function redirectToNewSearchParams(newParams) {\r\n if (typeof window === 'undefined' || !window.URL)\r\n return;\r\n var url = setQueryToCurrentUrl(newParams);\r\n if (window.location.search !== url.search) {\r\n window.history.replaceState({}, '', url.toString());\r\n }\r\n if (urlSearchParams.toString() !== url.searchParams.toString()) {\r\n forceUpdate({});\r\n }\r\n }\r\n useEffect(function () {\r\n if (config.disabled)\r\n return;\r\n if (typeof window === 'undefined' || !window.URL)\r\n return;\r\n redirectToNewSearchParams(__assign(__assign({}, initial), params));\r\n }, [config.disabled, params]);\r\n var setParams = function (newParams) {\r\n redirectToNewSearchParams(newParams);\r\n };\r\n useEffect(function () {\r\n if (config.disabled)\r\n return function () { };\r\n if (typeof window === 'undefined' || !window.URL)\r\n return function () { };\r\n var onPopState = function () {\r\n forceUpdate({});\r\n };\r\n window.addEventListener('popstate', onPopState);\r\n return function () {\r\n window.removeEventListener('popstate', onPopState);\r\n };\r\n }, [config.disabled]);\r\n return [params, setParams];\r\n}\r\nvar booleanValues = {\r\n true: true,\r\n false: false,\r\n};\r\nfunction parseValue(key, _value, types, defaultParams) {\r\n if (!types)\r\n return _value;\r\n var type = types[key];\r\n var value = _value === undefined ? defaultParams[key] : _value;\r\n if (type === Number) {\r\n return Number(value);\r\n }\r\n if (type === Boolean || _value === 'true' || _value === 'false') {\r\n return booleanValues[value];\r\n }\r\n if (Array.isArray(type)) {\r\n // eslint-disable-next-line eqeqeq\r\n return type.find(function (item) { return item == value; }) || defaultParams[key];\r\n }\r\n return value;\r\n}\r\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { proTheme, useIntl } from '@ant-design/pro-provider';\nimport { Button, Form } from 'antd';\nimport omit from 'omit.js';\nimport React from 'react';\n\n/** @name 用于配置操作栏 */\nimport { createElement as _createElement } from \"react\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * FormFooter 的组件,可以自动进行一些配置\n *\n * @param props\n */\n\nvar Submitter = function Submitter(props) {\n var intl = useIntl();\n var form = Form.useFormInstance();\n if (props.render === false) {\n return null;\n }\n var onSubmit = props.onSubmit,\n render = props.render,\n onReset = props.onReset,\n _props$searchConfig = props.searchConfig,\n searchConfig = _props$searchConfig === void 0 ? {} : _props$searchConfig,\n submitButtonProps = props.submitButtonProps,\n _props$resetButtonPro = props.resetButtonProps,\n resetButtonProps = _props$resetButtonPro === void 0 ? {} : _props$resetButtonPro;\n var _proTheme$useToken = proTheme.useToken(),\n token = _proTheme$useToken.token;\n var submit = function submit() {\n form.submit();\n onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit();\n };\n var reset = function reset() {\n form.resetFields();\n onReset === null || onReset === void 0 ? void 0 : onReset();\n };\n var _searchConfig$submitT = searchConfig.submitText,\n submitText = _searchConfig$submitT === void 0 ? intl.getMessage('tableForm.submit', '提交') : _searchConfig$submitT,\n _searchConfig$resetTe = searchConfig.resetText,\n resetText = _searchConfig$resetTe === void 0 ? intl.getMessage('tableForm.reset', '重置') : _searchConfig$resetTe;\n /** 默认的操作的逻辑 */\n var dom = [];\n if (resetButtonProps !== false) {\n dom.push( /*#__PURE__*/_createElement(Button, _objectSpread(_objectSpread({}, omit(resetButtonProps, ['preventDefault'])), {}, {\n key: \"rest\",\n onClick: function onClick(e) {\n var _resetButtonProps$onC;\n if (!(resetButtonProps !== null && resetButtonProps !== void 0 && resetButtonProps.preventDefault)) reset();\n resetButtonProps === null || resetButtonProps === void 0 ? void 0 : (_resetButtonProps$onC = resetButtonProps.onClick) === null || _resetButtonProps$onC === void 0 ? void 0 : _resetButtonProps$onC.call(resetButtonProps, e);\n }\n }), resetText));\n }\n if (submitButtonProps !== false) {\n dom.push( /*#__PURE__*/_createElement(Button, _objectSpread(_objectSpread({\n type: \"primary\"\n }, omit(submitButtonProps || {}, ['preventDefault'])), {}, {\n key: \"submit\",\n onClick: function onClick(e) {\n var _submitButtonProps$on;\n if (!(submitButtonProps !== null && submitButtonProps !== void 0 && submitButtonProps.preventDefault)) submit();\n submitButtonProps === null || submitButtonProps === void 0 ? void 0 : (_submitButtonProps$on = submitButtonProps.onClick) === null || _submitButtonProps$on === void 0 ? void 0 : _submitButtonProps$on.call(submitButtonProps, e);\n }\n }), submitText));\n }\n var renderDom = render ? render(_objectSpread(_objectSpread({}, props), {}, {\n form: form,\n submit: submit,\n reset: reset\n }), dom) : dom;\n if (!renderDom) {\n return null;\n }\n if (Array.isArray(renderDom)) {\n if ((renderDom === null || renderDom === void 0 ? void 0 : renderDom.length) < 1) {\n return null;\n }\n if ((renderDom === null || renderDom === void 0 ? void 0 : renderDom.length) === 1) {\n return renderDom[0];\n }\n return /*#__PURE__*/_jsx(\"div\", {\n style: {\n display: 'flex',\n gap: token.marginXS,\n alignItems: 'center'\n },\n children: renderDom\n });\n }\n return renderDom;\n};\nexport default Submitter;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"contentRender\", \"submitter\", \"fieldProps\", \"formItemProps\", \"groupProps\", \"transformKey\", \"formRef\", \"onInit\", \"form\", \"loading\", \"formComponentType\", \"extraUrlParams\", \"syncToUrl\", \"onUrlSearchChange\", \"onReset\", \"omitNil\", \"isKeyPressSubmit\", \"autoFocusFirstInput\", \"grid\", \"rowProps\", \"colProps\"],\n _excluded2 = [\"extraUrlParams\", \"syncToUrl\", \"isKeyPressSubmit\", \"syncToUrlAsImportant\", \"syncToInitialValues\", \"children\", \"contentRender\", \"submitter\", \"fieldProps\", \"proFieldProps\", \"formItemProps\", \"groupProps\", \"dateFormatter\", \"formRef\", \"onInit\", \"form\", \"formComponentType\", \"onReset\", \"grid\", \"rowProps\", \"colProps\", \"omitNil\", \"request\", \"params\", \"initialValues\", \"formKey\", \"readonly\", \"onLoadingChange\", \"loading\"];\n/* eslint-disable react-hooks/exhaustive-deps */\nimport { ProConfigProvider } from '@ant-design/pro-provider';\nimport { conversionMomentValue, isDeepEqualReact, nanoid, ProFormContext, runFunction, transformKeySubmitValue, useFetchData, useMountMergeState, usePrevious, useRefFunction, useStyle } from '@ant-design/pro-utils';\nimport { useUrlSearchParams } from '@umijs/use-params';\nimport { ConfigProvider, Form, Spin } from 'antd';\nimport classNames from 'classnames';\nimport omit from 'omit.js';\nimport get from \"rc-util/es/utils/get\";\nimport { default as namePathSet, default as set } from \"rc-util/es/utils/set\";\nimport { noteOnce } from \"rc-util/es/warning\";\nimport React, { useContext, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { Submitter } from \"../components\";\nimport { FormListContext } from \"../components/List\";\nimport FieldContext from \"../FieldContext\";\nimport { GridContext, useGridHelpers } from \"../helpers\";\nimport { EditOrReadOnlyContext } from \"./EditOrReadOnlyContext\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar genParams = function genParams(syncUrl, params, type) {\n if (syncUrl === true) {\n return params;\n }\n return runFunction(syncUrl, params, type);\n};\n/**\n * It takes a name path and converts it to an array.\n * @param {NamePath} name - The name of the form.\n * @returns string[]\n *\n * a-> [a]\n * [a] -> [a]\n */\nvar covertFormName = function covertFormName(name) {\n if (!name) return name;\n if (Array.isArray(name)) return name;\n return [name];\n};\nfunction BaseFormComponents(props) {\n var _ConfigProvider$useCo;\n var children = props.children,\n contentRender = props.contentRender,\n submitter = props.submitter,\n fieldProps = props.fieldProps,\n formItemProps = props.formItemProps,\n groupProps = props.groupProps,\n transformKey = props.transformKey,\n propsFormRef = props.formRef,\n onInit = props.onInit,\n form = props.form,\n loading = props.loading,\n formComponentType = props.formComponentType,\n _props$extraUrlParams = props.extraUrlParams,\n extraUrlParams = _props$extraUrlParams === void 0 ? {} : _props$extraUrlParams,\n syncToUrl = props.syncToUrl,\n onUrlSearchChange = props.onUrlSearchChange,\n _onReset = props.onReset,\n _props$omitNil = props.omitNil,\n omitNil = _props$omitNil === void 0 ? true : _props$omitNil,\n isKeyPressSubmit = props.isKeyPressSubmit,\n _props$autoFocusFirst = props.autoFocusFirstInput,\n autoFocusFirstInput = _props$autoFocusFirst === void 0 ? true : _props$autoFocusFirst,\n grid = props.grid,\n rowProps = props.rowProps,\n colProps = props.colProps,\n rest = _objectWithoutProperties(props, _excluded);\n\n /**\n * 获取 form 实例\n */\n var formInstance = Form.useFormInstance();\n var _ref = (ConfigProvider === null || ConfigProvider === void 0 ? void 0 : (_ConfigProvider$useCo = ConfigProvider.useConfig) === null || _ConfigProvider$useCo === void 0 ? void 0 : _ConfigProvider$useCo.call(ConfigProvider)) || {\n componentSize: 'middle'\n },\n componentSize = _ref.componentSize;\n\n /** 同步 url 上的参数 */\n var formRef = useRef(form || formInstance);\n\n /**\n * 获取布局\n */\n var _useGridHelpers = useGridHelpers({\n grid: grid,\n rowProps: rowProps\n }),\n RowWrapper = _useGridHelpers.RowWrapper;\n var getFormInstance = useRefFunction(function () {\n return formInstance;\n });\n var formatValues = useMemo(function () {\n return {\n /**\n * 获取被 ProForm 格式化后的所有数据\n * @param allData boolean\n * @returns T\n *\n * @example getFieldsFormatValue(true) ->返回所有数据,即使没有被 form 托管的\n */\n getFieldsFormatValue: function getFieldsFormatValue(allData) {\n var _getFormInstance;\n return transformKey((_getFormInstance = getFormInstance()) === null || _getFormInstance === void 0 ? void 0 : _getFormInstance.getFieldsValue(allData), omitNil);\n },\n /**\n * 获取被 ProForm 格式化后的单个数据\n * @param nameList (string|number)[]\n * @returns T\n *\n * @example {a:{b:value}} -> getFieldFormatValue(['a', 'b']) -> value\n */\n /** 获取格式化之后的单个数据 */\n getFieldFormatValue: function getFieldFormatValue() {\n var _getFormInstance2;\n var paramsNameList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var nameList = covertFormName(paramsNameList);\n if (!nameList) throw new Error('nameList is require');\n var value = (_getFormInstance2 = getFormInstance()) === null || _getFormInstance2 === void 0 ? void 0 : _getFormInstance2.getFieldValue(nameList);\n var obj = nameList ? set({}, nameList, value) : value;\n return get(transformKey(obj, omitNil, nameList), nameList);\n },\n /**\n * 获取被 ProForm 格式化后的单个数据, 包含他的 name\n * @param nameList (string|number)[]\n * @returns T\n *\n * @example {a:{b:value}} -> getFieldFormatValueObject(['a', 'b']) -> {a:{b:value}}\n */\n /** 获取格式化之后的单个数据 */\n getFieldFormatValueObject: function getFieldFormatValueObject(paramsNameList) {\n var _getFormInstance3;\n var nameList = covertFormName(paramsNameList);\n var value = (_getFormInstance3 = getFormInstance()) === null || _getFormInstance3 === void 0 ? void 0 : _getFormInstance3.getFieldValue(nameList);\n var obj = nameList ? set({}, nameList, value) : value;\n return transformKey(obj, omitNil, nameList);\n },\n /** \n /**\n *验字段后返回格式化之后的所有数据\n * @param nameList (string|number)[]\n * @returns T\n * \n * @example validateFieldsReturnFormatValue -> {a:{b:value}}\n */\n validateFieldsReturnFormatValue: function () {\n var _validateFieldsReturnFormatValue = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(nameList) {\n var _getFormInstance4;\n var values, transformedKey;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!(!Array.isArray(nameList) && nameList)) {\n _context.next = 2;\n break;\n }\n throw new Error('nameList must be array');\n case 2:\n _context.next = 4;\n return (_getFormInstance4 = getFormInstance()) === null || _getFormInstance4 === void 0 ? void 0 : _getFormInstance4.validateFields(nameList);\n case 4:\n values = _context.sent;\n transformedKey = transformKey(values, omitNil);\n return _context.abrupt(\"return\", transformedKey ? transformedKey : {});\n case 7:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function validateFieldsReturnFormatValue(_x) {\n return _validateFieldsReturnFormatValue.apply(this, arguments);\n }\n return validateFieldsReturnFormatValue;\n }()\n };\n }, [omitNil, transformKey]);\n var items = useMemo(function () {\n return React.Children.toArray(children).map(function (item, index) {\n if (index === 0 && /*#__PURE__*/React.isValidElement(item) && autoFocusFirstInput) {\n return /*#__PURE__*/React.cloneElement(item, _objectSpread(_objectSpread({}, item.props), {}, {\n autoFocus: autoFocusFirstInput\n }));\n }\n return item;\n });\n }, [autoFocusFirstInput, children]);\n\n /** 计算 props 的对象 */\n var submitterProps = useMemo(function () {\n return typeof submitter === 'boolean' || !submitter ? {} : submitter;\n }, [submitter]);\n\n /** 渲染提交按钮与重置按钮 */\n var submitterNode = useMemo(function () {\n if (submitter === false) return undefined;\n return /*#__PURE__*/_jsx(Submitter, _objectSpread(_objectSpread({}, submitterProps), {}, {\n onReset: function onReset() {\n var _formRef$current, _submitterProps$onRes;\n var finalValues = transformKey((_formRef$current = formRef.current) === null || _formRef$current === void 0 ? void 0 : _formRef$current.getFieldsValue(), omitNil);\n submitterProps === null || submitterProps === void 0 ? void 0 : (_submitterProps$onRes = submitterProps.onReset) === null || _submitterProps$onRes === void 0 ? void 0 : _submitterProps$onRes.call(submitterProps, finalValues);\n _onReset === null || _onReset === void 0 ? void 0 : _onReset(finalValues);\n // 如果 syncToUrl,清空一下数据\n if (syncToUrl) {\n var _formRef$current2;\n // 把没有的值设置为未定义可以删掉 url 的参数\n var params = Object.keys(transformKey((_formRef$current2 = formRef.current) === null || _formRef$current2 === void 0 ? void 0 : _formRef$current2.getFieldsValue(), false)).reduce(function (pre, next) {\n return _objectSpread(_objectSpread({}, pre), {}, _defineProperty({}, next, finalValues[next] || undefined));\n }, extraUrlParams);\n\n /** 在同步到 url 上时对参数进行转化 */\n onUrlSearchChange(genParams(syncToUrl, params, 'set'));\n }\n },\n submitButtonProps: _objectSpread({\n loading: loading\n }, submitterProps.submitButtonProps)\n }), \"submitter\");\n }, [submitter, submitterProps, loading, transformKey, omitNil, _onReset, syncToUrl, extraUrlParams, onUrlSearchChange]);\n var content = useMemo(function () {\n var wrapItems = grid ? /*#__PURE__*/_jsx(RowWrapper, {\n children: items\n }) : items;\n if (contentRender) {\n return contentRender(wrapItems, submitterNode, formRef.current);\n }\n return wrapItems;\n }, [grid, RowWrapper, items, contentRender, submitterNode]);\n var preInitialValues = usePrevious(props.initialValues);\n\n // 提示一个 initialValues ,问的人实在是太多了\n useEffect(function () {\n if (syncToUrl || !props.initialValues || !preInitialValues || rest.request) return;\n var isEqual = isDeepEqualReact(props.initialValues, preInitialValues);\n noteOnce(isEqual, \"initialValues \\u53EA\\u5728 form \\u521D\\u59CB\\u5316\\u65F6\\u751F\\u6548\\uFF0C\\u5982\\u679C\\u4F60\\u9700\\u8981\\u5F02\\u6B65\\u52A0\\u8F7D\\u63A8\\u8350\\u4F7F\\u7528 request\\uFF0C\\u6216\\u8005 initialValues ? : null \");\n noteOnce(isEqual, \"The initialValues only take effect when the form is initialized, if you need to load asynchronously recommended request, or the initialValues ? : null \");\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.initialValues]);\n\n // 初始化给一个默认的 form\n useImperativeHandle(propsFormRef, function () {\n return _objectSpread(_objectSpread({}, formRef.current), formatValues);\n }, [formatValues, formRef.current]);\n useEffect(function () {\n var _formRef$current3, _formRef$current3$get;\n var finalValues = transformKey((_formRef$current3 = formRef.current) === null || _formRef$current3 === void 0 ? void 0 : (_formRef$current3$get = _formRef$current3.getFieldsValue) === null || _formRef$current3$get === void 0 ? void 0 : _formRef$current3$get.call(_formRef$current3, true), omitNil);\n onInit === null || onInit === void 0 ? void 0 : onInit(finalValues, _objectSpread(_objectSpread({}, formRef.current), formatValues));\n }, []);\n return /*#__PURE__*/_jsx(ProFormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formatValues), {}, {\n formRef: formRef\n }),\n children: /*#__PURE__*/_jsx(ConfigProvider, {\n componentSize: rest.size || componentSize,\n children: /*#__PURE__*/_jsxs(GridContext.Provider, {\n value: {\n grid: grid,\n colProps: colProps\n },\n children: [rest.component !== false && /*#__PURE__*/_jsx(\"input\", {\n type: \"text\",\n style: {\n display: 'none'\n }\n }), content]\n })\n })\n });\n}\n\n/** 自动的formKey 防止重复 */\nvar requestFormCacheId = 0;\nfunction BaseForm(props) {\n var _props$extraUrlParams2 = props.extraUrlParams,\n extraUrlParams = _props$extraUrlParams2 === void 0 ? {} : _props$extraUrlParams2,\n syncToUrl = props.syncToUrl,\n isKeyPressSubmit = props.isKeyPressSubmit,\n _props$syncToUrlAsImp = props.syncToUrlAsImportant,\n syncToUrlAsImportant = _props$syncToUrlAsImp === void 0 ? false : _props$syncToUrlAsImp,\n _props$syncToInitialV = props.syncToInitialValues,\n syncToInitialValues = _props$syncToInitialV === void 0 ? true : _props$syncToInitialV,\n children = props.children,\n contentRender = props.contentRender,\n submitter = props.submitter,\n fieldProps = props.fieldProps,\n proFieldProps = props.proFieldProps,\n formItemProps = props.formItemProps,\n groupProps = props.groupProps,\n _props$dateFormatter = props.dateFormatter,\n dateFormatter = _props$dateFormatter === void 0 ? 'string' : _props$dateFormatter,\n propsFormRef = props.formRef,\n onInit = props.onInit,\n form = props.form,\n formComponentType = props.formComponentType,\n onReset = props.onReset,\n grid = props.grid,\n rowProps = props.rowProps,\n colProps = props.colProps,\n _props$omitNil2 = props.omitNil,\n omitNil = _props$omitNil2 === void 0 ? true : _props$omitNil2,\n request = props.request,\n params = props.params,\n initialValues = props.initialValues,\n _props$formKey = props.formKey,\n formKey = _props$formKey === void 0 ? requestFormCacheId : _props$formKey,\n readonly = props.readonly,\n onLoadingChange = props.onLoadingChange,\n propsLoading = props.loading,\n propRest = _objectWithoutProperties(props, _excluded2);\n var formRef = useRef({});\n var _useMountMergeState = useMountMergeState(false, {\n onChange: onLoadingChange,\n value: propsLoading\n }),\n _useMountMergeState2 = _slicedToArray(_useMountMergeState, 2),\n loading = _useMountMergeState2[0],\n setLoading = _useMountMergeState2[1];\n var _useUrlSearchParams = useUrlSearchParams({}, {\n disabled: !syncToUrl\n }),\n _useUrlSearchParams2 = _slicedToArray(_useUrlSearchParams, 2),\n urlSearch = _useUrlSearchParams2[0],\n setUrlSearch = _useUrlSearchParams2[1];\n var curFormKey = useRef(nanoid());\n useEffect(function () {\n requestFormCacheId += 0;\n }, []);\n var _useFetchData = useFetchData({\n request: request,\n params: params,\n proFieldKey: formKey\n }),\n _useFetchData2 = _slicedToArray(_useFetchData, 1),\n initialData = _useFetchData2[0];\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-form');\n // css\n var _useStyle = useStyle('ProForm', function (token) {\n return _defineProperty({}, \".\".concat(prefixCls), _defineProperty({}, \"> div:not(\".concat(token.proComponentsCls, \"-form-light-filter)\"), {\n '.pro-field': {\n maxWidth: '100%',\n '@media screen and (max-width: 575px)': {\n // 减少了 form 的 padding\n maxWidth: 'calc(93vw - 48px)'\n },\n // 适用于短数字,短文本或者选项\n '&-xs': {\n width: 104\n },\n '&-s': {\n width: 216\n },\n // 适用于较短字段录入、如姓名、电话、ID 等。\n '&-sm': {\n width: 216\n },\n '&-m': {\n width: 328\n },\n // 标准宽度,适用于大部分字段长度\n '&-md': {\n width: 328\n },\n '&-l': {\n width: 440\n },\n // 适用于较长字段录入,如长网址、标签组、文件路径等。\n '&-lg': {\n width: 440\n },\n // 适用于长文本录入,如长链接、描述、备注等,通常搭配自适应多行输入框或定高文本域使用。\n '&-xl': {\n width: 552\n }\n }\n }));\n }),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n\n // 如果为 false,不需要触发设置进去\n var _useState = useState(function () {\n if (!syncToUrl) {\n return {};\n }\n return genParams(syncToUrl, urlSearch, 'get');\n }),\n _useState2 = _slicedToArray(_useState, 2),\n urlParamsMergeInitialValues = _useState2[0],\n setUrlParamsMergeInitialValues = _useState2[1];\n\n /** 保存 transformKeyRef,用于对表单key transform */\n var transformKeyRef = useRef({});\n var fieldsValueType = useRef({});\n\n /** 使用 callback 的类型 */\n var transformKey = useRefFunction(function (values, paramsOmitNil, parentKey) {\n return transformKeySubmitValue(conversionMomentValue(values, dateFormatter, fieldsValueType.current, paramsOmitNil, parentKey), transformKeyRef.current, paramsOmitNil);\n });\n useEffect(function () {\n if (syncToInitialValues) return;\n setUrlParamsMergeInitialValues({});\n }, [syncToInitialValues]);\n useEffect(function () {\n if (!syncToUrl) return;\n setUrlSearch(_objectSpread(_objectSpread({}, urlSearch), extraUrlParams));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [extraUrlParams, syncToUrl]);\n var getPopupContainer = useMemo(function () {\n if (typeof window === 'undefined') return undefined;\n // 如果在 drawerForm 和 modalForm 里就渲染dom到父节点里\n // modalForm 可能高度太小不适合\n if (formComponentType && ['DrawerForm'].includes(formComponentType)) {\n return function (e) {\n return e.parentNode || document.body;\n };\n }\n return undefined;\n }, [formComponentType]);\n var onFinish = useRefFunction( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _formRef$current4, _formRef$current4$get, finalValues, _formRef$current5, _formRef$current5$get, syncToUrlParams;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (propRest.onFinish) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\");\n case 2:\n if (!loading) {\n _context2.next = 4;\n break;\n }\n return _context2.abrupt(\"return\");\n case 4:\n setLoading(true);\n _context2.prev = 5;\n finalValues = formRef === null || formRef === void 0 ? void 0 : (_formRef$current4 = formRef.current) === null || _formRef$current4 === void 0 ? void 0 : (_formRef$current4$get = _formRef$current4.getFieldsFormatValue) === null || _formRef$current4$get === void 0 ? void 0 : _formRef$current4$get.call(_formRef$current4);\n _context2.next = 9;\n return propRest.onFinish(finalValues);\n case 9:\n if (syncToUrl) {\n // 把没有的值设置为未定义可以删掉 url 的参数\n syncToUrlParams = Object.keys(formRef === null || formRef === void 0 ? void 0 : (_formRef$current5 = formRef.current) === null || _formRef$current5 === void 0 ? void 0 : (_formRef$current5$get = _formRef$current5.getFieldsFormatValue) === null || _formRef$current5$get === void 0 ? void 0 : _formRef$current5$get.call(_formRef$current5, undefined, false)).reduce(function (pre, next) {\n var _finalValues$next;\n return _objectSpread(_objectSpread({}, pre), {}, _defineProperty({}, next, (_finalValues$next = finalValues[next]) !== null && _finalValues$next !== void 0 ? _finalValues$next : undefined));\n }, extraUrlParams); // fix #3547: 当原先在url中存在的字段被删除时,应该将 params 中的该字段设置为 undefined,以便触发url同步删除\n Object.keys(urlSearch).forEach(function (key) {\n if (syncToUrlParams[key] !== false && syncToUrlParams[key] !== 0 && !syncToUrlParams[key]) {\n syncToUrlParams[key] = undefined;\n }\n });\n /** 在同步到 url 上时对参数进行转化 */\n setUrlSearch(genParams(syncToUrl, syncToUrlParams, 'set'));\n }\n setLoading(false);\n _context2.next = 17;\n break;\n case 13:\n _context2.prev = 13;\n _context2.t0 = _context2[\"catch\"](5);\n console.log(_context2.t0);\n setLoading(false);\n case 17:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[5, 13]]);\n })));\n\n // 初始化给一个默认的 form\n useImperativeHandle(propsFormRef, function () {\n return formRef.current;\n }, [!initialData]);\n if (!initialData && props.request) {\n return /*#__PURE__*/_jsx(\"div\", {\n style: {\n paddingTop: 50,\n paddingBottom: 50,\n textAlign: 'center'\n },\n children: /*#__PURE__*/_jsx(Spin, {})\n });\n }\n return wrapSSR( /*#__PURE__*/_jsx(EditOrReadOnlyContext.Provider, {\n value: {\n mode: props.readonly ? 'read' : 'edit'\n },\n children: /*#__PURE__*/_jsx(ProConfigProvider, {\n needDeps: true,\n children: /*#__PURE__*/_jsx(FieldContext.Provider, {\n value: {\n formRef: formRef,\n fieldProps: fieldProps,\n proFieldProps: proFieldProps,\n formItemProps: formItemProps,\n groupProps: groupProps,\n formComponentType: formComponentType,\n getPopupContainer: getPopupContainer,\n formKey: curFormKey.current,\n setFieldValueType: function setFieldValueType(name, _ref4) {\n var _ref4$valueType = _ref4.valueType,\n valueType = _ref4$valueType === void 0 ? 'text' : _ref4$valueType,\n dateFormat = _ref4.dateFormat,\n transform = _ref4.transform;\n if (!Array.isArray(name)) return;\n transformKeyRef.current = namePathSet(transformKeyRef.current, name, transform);\n fieldsValueType.current = namePathSet(fieldsValueType.current, name, {\n valueType: valueType,\n dateFormat: dateFormat\n });\n }\n },\n children: /*#__PURE__*/_jsx(FormListContext.Provider, {\n value: {},\n children: /*#__PURE__*/_jsx(Form, _objectSpread(_objectSpread({\n onKeyPress: function onKeyPress(event) {\n if (!isKeyPressSubmit) return;\n if (event.key === 'Enter') {\n var _formRef$current6;\n (_formRef$current6 = formRef.current) === null || _formRef$current6 === void 0 ? void 0 : _formRef$current6.submit();\n }\n },\n autoComplete: \"off\",\n form: form\n }, omit(propRest, ['labelWidth', 'autoFocusFirstInput'])), {}, {\n // 组合 urlSearch 和 initialValues\n initialValues: syncToUrlAsImportant ? _objectSpread(_objectSpread(_objectSpread({}, initialValues), initialData), urlParamsMergeInitialValues) : _objectSpread(_objectSpread(_objectSpread({}, urlParamsMergeInitialValues), initialValues), initialData),\n onValuesChange: function onValuesChange(changedValues, values) {\n var _propRest$onValuesCha;\n propRest === null || propRest === void 0 ? void 0 : (_propRest$onValuesCha = propRest.onValuesChange) === null || _propRest$onValuesCha === void 0 ? void 0 : _propRest$onValuesCha.call(propRest, transformKey(changedValues, !!omitNil), transformKey(values, !!omitNil));\n },\n className: classNames(props.className, prefixCls, hashId),\n onFinish: onFinish,\n children: /*#__PURE__*/_jsx(BaseFormComponents, _objectSpread(_objectSpread({\n transformKey: transformKey,\n autoComplete: \"off\",\n loading: loading,\n onUrlSearchChange: setUrlSearch\n }, props), {}, {\n formRef: formRef,\n initialValues: _objectSpread(_objectSpread({}, initialValues), initialData)\n }))\n }))\n })\n })\n })\n }));\n}\nexport { BaseForm };","import React from 'react';\nexport var EditOrReadOnlyContext = /*#__PURE__*/React.createContext({\n mode: 'edit'\n});","var antdFormItemPropsList = [\n// https://ant.design/components/form-cn/#Form.Item\n'colon', 'dependencies', 'extra', 'getValueFromEvent', 'getValueProps', 'hasFeedback', 'help', 'htmlFor', 'initialValue', 'noStyle', 'label', 'labelAlign', 'labelCol', 'name', 'preserve', 'normalize', 'required', 'rules', 'shouldUpdate', 'trigger', 'validateFirst', 'validateStatus', 'validateTrigger', 'valuePropName', 'wrapperCol', 'hidden',\n// 我自定义的\n'addonBefore', 'addonAfter'];\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function pickProFormItemProps(props) {\n var attrs = {};\n antdFormItemPropsList.forEach(function (key) {\n if (props[key] !== undefined) {\n attrs[key] = props[key];\n }\n });\n return attrs;\n}","import warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\nvar Context = /*#__PURE__*/React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldWarning: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: warningFunc,\n setFieldValue: warningFunc,\n setFieldsValue: warningFunc,\n validateFields: warningFunc,\n submit: warningFunc,\n getInternalHooks: function getInternalHooks() {\n warningFunc();\n return {\n dispatch: warningFunc,\n initEntityValue: warningFunc,\n registerField: warningFunc,\n useSubscribe: warningFunc,\n setInitialValues: warningFunc,\n destroyForm: warningFunc,\n setCallbacks: warningFunc,\n registerWatch: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc,\n setPreserve: warningFunc,\n getInitialValue: warningFunc\n };\n }\n});\nexport default Context;","import * as React from 'react';\nvar ListContext = /*#__PURE__*/React.createContext(null);\nexport default ListContext;","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n}\nexport function isFormInstance(form) {\n return form && !!form._init;\n}","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n default: \"Validation error on field '${name}'\",\n required: \"'${name}' is required\",\n enum: \"'${name}' must be one of [${enum}]\",\n whitespace: \"'${name}' cannot be empty\",\n date: {\n format: \"'${name}' is invalid for format date\",\n parse: \"'${name}' could not be parsed as date\",\n invalid: \"'${name}' is 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: \"'${name}' must be exactly ${len} characters\",\n min: \"'${name}' must be at least ${min} characters\",\n max: \"'${name}' cannot be longer than ${max} characters\",\n range: \"'${name}' must be between ${min} and ${max} characters\"\n },\n number: {\n len: \"'${name}' must equal ${len}\",\n min: \"'${name}' cannot be less than ${min}\",\n max: \"'${name}' cannot be greater than ${max}\",\n range: \"'${name}' must be between ${min} and ${max}\"\n },\n array: {\n len: \"'${name}' must be exactly ${len} in length\",\n min: \"'${name}' cannot be less than ${min} in length\",\n max: \"'${name}' cannot be greater than ${max} in length\",\n range: \"'${name}' must be between ${min} and ${max} in length\"\n },\n pattern: {\n mismatch: \"'${name}' does not match pattern ${pattern}\"\n }\n};","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { defaultValidateMessages } from './messages';\nimport { merge } from \"rc-util/es/utils/set\";\n// Remove incorrect original ts define\nvar AsyncValidator = RawAsyncValidator;\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\nfunction replaceMessage(template, kv) {\n return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n var key = str.slice(2, -1);\n return kv[key];\n });\n}\nvar CODE_LOGIC_ERROR = 'CODE_LOGIC_ERROR';\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name, value, rule, options, messageVariables) {\n var cloneRule, originValidator, subRuleField, validator, messages, result, subResults, kv, fillVariableResult;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // Bug of `async-validator`\n // https://github.com/react-component/field-form/issues/316\n // https://github.com/react-component/field-form/issues/313\n delete cloneRule.ruleIndex;\n // https://github.com/ant-design/ant-design/issues/40497#issuecomment-1422282378\n AsyncValidator.warning = function () {\n return void 0;\n };\n if (cloneRule.validator) {\n originValidator = cloneRule.validator;\n cloneRule.validator = function () {\n try {\n return originValidator.apply(void 0, arguments);\n } catch (error) {\n console.error(error);\n return Promise.reject(CODE_LOGIC_ERROR);\n }\n };\n }\n // We should special handle array validate\n subRuleField = null;\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = merge(defaultValidateMessages, options.validateMessages);\n validator.messages(messages);\n result = [];\n _context2.prev = 10;\n _context2.next = 13;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n case 13:\n _context2.next = 18;\n break;\n case 15:\n _context2.prev = 15;\n _context2.t0 = _context2[\"catch\"](10);\n if (_context2.t0.errors) {\n result = _context2.t0.errors.map(function (_ref4, index) {\n var message = _ref4.message;\n var mergedMessage = message === CODE_LOGIC_ERROR ? messages.default : message;\n return /*#__PURE__*/React.isValidElement(mergedMessage) ?\n /*#__PURE__*/\n // Wrap ReactNode with `key`\n React.cloneElement(mergedMessage, {\n key: \"error_\".concat(index)\n }) : mergedMessage;\n });\n }\n case 18:\n if (!(!result.length && subRuleField)) {\n _context2.next = 23;\n break;\n }\n _context2.next = 21;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n case 21:\n subResults = _context2.sent;\n return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n case 23:\n // Replace message with variables\n kv = _objectSpread(_objectSpread({}, rule), {}, {\n name: name,\n enum: (rule.enum || []).join(', ')\n }, messageVariables);\n fillVariableResult = result.map(function (error) {\n if (typeof error === 'string') {\n return replaceMessage(error, kv);\n }\n return error;\n });\n return _context2.abrupt(\"return\", fillVariableResult);\n case 26:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[10, 15]]);\n }));\n return _validateRule.apply(this, arguments);\n}\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.');\n // Fill rule with context\n var filledRules = rules.map(function (currentRule, ruleIndex) {\n var originValidatorFunc = currentRule.validator;\n var cloneRule = _objectSpread(_objectSpread({}, currentRule), {}, {\n ruleIndex: ruleIndex\n });\n // Replace validator if needed\n if (originValidatorFunc) {\n cloneRule.validator = function (rule, val, callback) {\n var hasPromise = false;\n // Wrap callback only accept when promise not provided\n var wrappedCallback = function wrappedCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n // Wait a tick to make sure return type is a promise\n Promise.resolve().then(function () {\n warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n };\n // Get promise\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n if (hasPromise) {\n promise.then(function () {\n callback();\n }).catch(function (err) {\n callback(err || ' ');\n });\n }\n };\n }\n return cloneRule;\n }).sort(function (_ref, _ref2) {\n var w1 = _ref.warningOnly,\n i1 = _ref.ruleIndex;\n var w2 = _ref2.warningOnly,\n i2 = _ref2.ruleIndex;\n if (!!w1 === !!w2) {\n // Let keep origin order\n return i1 - i2;\n }\n if (w1) {\n return 1;\n }\n return -1;\n });\n // Do validate rules\n var summaryPromise;\n if (validateFirst === true) {\n // >>>>> Validate by serialization\n summaryPromise = new Promise( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {\n var i, rule, errors;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n i = 0;\n case 1:\n if (!(i < filledRules.length)) {\n _context.next = 12;\n break;\n }\n rule = filledRules[i];\n _context.next = 5;\n return validateRule(name, value, rule, options, messageVariables);\n case 5:\n errors = _context.sent;\n if (!errors.length) {\n _context.next = 9;\n break;\n }\n reject([{\n errors: errors,\n rule: rule\n }]);\n return _context.abrupt(\"return\");\n case 9:\n i += 1;\n _context.next = 1;\n break;\n case 12:\n /* eslint-enable */\n resolve([]);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n } else {\n // >>>>> Validate by parallel\n var rulePromises = filledRules.map(function (rule) {\n return validateRule(name, value, rule, options, messageVariables).then(function (errors) {\n return {\n errors: errors,\n rule: rule\n };\n });\n });\n summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n // Always change to rejection for Field to catch\n return Promise.reject(errors);\n });\n }\n // Internal catch error to avoid console error log.\n summaryPromise.catch(function (e) {\n return e;\n });\n return summaryPromise;\n}\nfunction finishOnAllFailed(_x8) {\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rulePromises) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref5;\n var errors = (_ref5 = []).concat.apply(_ref5, _toConsumableArray(errorsList));\n return errors;\n }));\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction finishOnFirstFailed(_x9) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\nfunction _finishOnFirstFailed() {\n _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(rulePromises) {\n var count;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n count = 0;\n return _context4.abrupt(\"return\", new Promise(function (resolve) {\n rulePromises.forEach(function (promise) {\n promise.then(function (ruleError) {\n if (ruleError.errors.length) {\n resolve([ruleError]);\n }\n count += 1;\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport getValue from \"rc-util/es/utils/get\";\nimport setValue from \"rc-util/es/utils/set\";\nimport { toArray } from './typeUtil';\nexport { getValue, setValue };\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function cloneByNamePathList(store, namePathList) {\n var newStore = {};\n namePathList.forEach(function (namePath) {\n var value = getValue(store, namePath);\n newStore = setValue(newStore, namePath, value);\n });\n return newStore;\n}\n/**\n * Check if `namePathList` includes `namePath`.\n * @param namePathList A list of `InternalNamePath[]`\n * @param namePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function containsNamePath(namePathList, namePath) {\n var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(namePath, path, partialMatch);\n });\n}\n/**\n * Check if `namePath` is super set or equal of `subNamePath`.\n * @param namePath A list of `InternalNamePath[]`\n * @param subNamePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function matchNamePath(namePath, subNamePath) {\n var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!namePath || !subNamePath) {\n return false;\n }\n if (!partialMatch && namePath.length !== subNamePath.length) {\n return false;\n }\n return subNamePath.every(function (nameUnit, i) {\n return namePath[i] === nameUnit;\n });\n}\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n if (!source && target || source && !target) {\n return false;\n }\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(sourceKeys, targetKeys));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n if (event && event.target && _typeof(event.target) === 'object' && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n return event;\n}\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array Array in which to move an item. (required)\n * @param moveIndex The index of the item to move. (required)\n * @param toIndex The index to move item at moveIndex to. (required)\n */\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n if (diff > 0) {\n // move left\n return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n }\n if (diff < 0) {\n // move right\n return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n }\n return array;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"name\"];\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport ListContext from './ListContext';\nimport { toArray } from './utils/typeUtil';\nimport { validateRules } from './utils/validateUtil';\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from './utils/valueUtil';\nvar EMPTY_ERRORS = [];\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n if (typeof shouldUpdate === 'function') {\n return shouldUpdate(prev, next, 'source' in info ? {\n source: info.source\n } : {});\n }\n return prevValue !== nextValue;\n}\n// We use Class instead of Hooks here since it will cost much code by using Hooks.\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n var _super = _createSuper(Field);\n // ============================== Subscriptions ==============================\n function Field(props) {\n var _this;\n _classCallCheck(this, Field);\n _this = _super.call(this, props);\n // Register on init\n _this.state = {\n resetCount: 0\n };\n _this.cancelRegisterFunc = null;\n _this.mounted = false;\n /**\n * Follow state should not management in State since it will async update by React.\n * This makes first render of form can not get correct state value.\n */\n _this.touched = false;\n /**\n * Mark when touched & validated. Currently only used for `dependencies`.\n * Note that we do not think field with `initialValue` is dirty\n * but this will be by `isFieldDirty` func.\n */\n _this.dirty = false;\n _this.validatePromise = void 0;\n _this.prevValidating = void 0;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.cancelRegister = function () {\n var _this$props = _this.props,\n preserve = _this$props.preserve,\n isListField = _this$props.isListField,\n name = _this$props.name;\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n }\n _this.cancelRegisterFunc = null;\n };\n // ================================== Utils ==================================\n _this.getNamePath = function () {\n var _this$props2 = _this.props,\n name = _this$props2.name,\n fieldContext = _this$props2.fieldContext;\n var _fieldContext$prefixN = fieldContext.prefixName,\n prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n };\n _this.getRules = function () {\n var _this$props3 = _this.props,\n _this$props3$rules = _this$props3.rules,\n rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n fieldContext = _this$props3.fieldContext;\n return rules.map(function (rule) {\n if (typeof rule === 'function') {\n return rule(fieldContext);\n }\n return rule;\n });\n };\n _this.refresh = function () {\n if (!_this.mounted) return;\n /**\n * Clean up current node.\n */\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n };\n // Event should only trigger when meta changed\n _this.metaCache = null;\n _this.triggerMetaEvent = function (destroy) {\n var onMetaChange = _this.props.onMetaChange;\n if (onMetaChange) {\n var meta = _objectSpread(_objectSpread({}, _this.getMeta()), {}, {\n destroy: destroy\n });\n if (!isEqual(_this.metaCache, meta)) {\n onMetaChange(meta);\n }\n _this.metaCache = meta;\n } else {\n _this.metaCache = null;\n }\n };\n // ========================= Field Entity Interfaces =========================\n // Trigger by store update. Check if need update the component\n _this.onStoreChange = function (prevStore, namePathList, info) {\n var _this$props4 = _this.props,\n shouldUpdate = _this$props4.shouldUpdate,\n _this$props4$dependen = _this$props4.dependencies,\n dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n onReset = _this$props4.onReset;\n var store = info.store;\n var namePath = _this.getNamePath();\n var prevValue = _this.getValue(prevStore);\n var curValue = _this.getValue(store);\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath);\n // `setFieldsValue` is a quick access to update related status\n if (info.type === 'valueUpdate' && info.source === 'external' && prevValue !== curValue) {\n _this.touched = true;\n _this.dirty = true;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n }\n switch (info.type) {\n case 'reset':\n if (!namePathList || namePathMatch) {\n // Clean up state\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = undefined;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n onReset === null || onReset === void 0 ? void 0 : onReset();\n _this.refresh();\n return;\n }\n break;\n /**\n * In case field with `preserve = false` nest deps like:\n * - A = 1 => show B\n * - B = 1 => show C\n * - Reset A, need clean B, C\n */\n case 'remove':\n {\n if (shouldUpdate) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'setField':\n {\n if (namePathMatch) {\n var data = info.data;\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n if ('errors' in data) {\n _this.errors = data.errors || EMPTY_ERRORS;\n }\n if ('warnings' in data) {\n _this.warnings = data.warnings || EMPTY_ERRORS;\n }\n _this.dirty = true;\n _this.triggerMetaEvent();\n _this.reRender();\n return;\n }\n // Handle update by `setField` with `shouldUpdate`\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath);\n // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n // emitted earlier and they will work there\n // If set it may cause unnecessary twice rerendering\n if (dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n return;\n }\n break;\n }\n default:\n // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n // For example \n // If `namePathList` is [['list']] (List value update), Field should be updated\n // If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n // 2.\n // 2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n // don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n // is not provided\n // 2.2 If `shouldUpdate` provided, use customize logic to update the field\n // else to check if value changed\n if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n if (shouldUpdate === true) {\n _this.reRender();\n }\n };\n _this.validateRules = function (options) {\n // We should fixed namePath & value to avoid developer change then by form function\n var namePath = _this.getNamePath();\n var currentValue = _this.getValue();\n var _ref2 = options || {},\n triggerName = _ref2.triggerName,\n _ref2$validateOnly = _ref2.validateOnly,\n validateOnly = _ref2$validateOnly === void 0 ? false : _ref2$validateOnly;\n // Force change to async to avoid rule OOD under renderProps field\n var rootPromise = Promise.resolve().then(function () {\n if (!_this.mounted) {\n return [];\n }\n var _this$props5 = _this.props,\n _this$props5$validate = _this$props5.validateFirst,\n validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate,\n messageVariables = _this$props5.messageVariables;\n var filteredRules = _this.getRules();\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n return rule;\n }).filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n if (!validateTrigger) {\n return true;\n }\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n var promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n promise.catch(function (e) {\n return e;\n }).then(function () {\n var ruleErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ERRORS;\n if (_this.validatePromise === rootPromise) {\n var _ruleErrors$forEach;\n _this.validatePromise = null;\n // Get errors & warnings\n var nextErrors = [];\n var nextWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref3) {\n var warningOnly = _ref3.rule.warningOnly,\n _ref3$errors = _ref3.errors,\n errors = _ref3$errors === void 0 ? EMPTY_ERRORS : _ref3$errors;\n if (warningOnly) {\n nextWarnings.push.apply(nextWarnings, _toConsumableArray(errors));\n } else {\n nextErrors.push.apply(nextErrors, _toConsumableArray(errors));\n }\n });\n _this.errors = nextErrors;\n _this.warnings = nextWarnings;\n _this.triggerMetaEvent();\n _this.reRender();\n }\n });\n return promise;\n });\n if (validateOnly) {\n return rootPromise;\n }\n _this.validatePromise = rootPromise;\n _this.dirty = true;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n // Force trigger re-render since we need sync renderProps with new meta\n _this.reRender();\n return rootPromise;\n };\n _this.isFieldValidating = function () {\n return !!_this.validatePromise;\n };\n _this.isFieldTouched = function () {\n return _this.touched;\n };\n _this.isFieldDirty = function () {\n // Touched or validate or has initialValue\n if (_this.dirty || _this.props.initialValue !== undefined) {\n return true;\n }\n // Form set initialValue\n var fieldContext = _this.props.fieldContext;\n var _fieldContext$getInte = fieldContext.getInternalHooks(HOOK_MARK),\n getInitialValue = _fieldContext$getInte.getInitialValue;\n if (getInitialValue(_this.getNamePath()) !== undefined) {\n return true;\n }\n return false;\n };\n _this.getErrors = function () {\n return _this.errors;\n };\n _this.getWarnings = function () {\n return _this.warnings;\n };\n _this.isListField = function () {\n return _this.props.isListField;\n };\n _this.isList = function () {\n return _this.props.isList;\n };\n _this.isPreserve = function () {\n return _this.props.preserve;\n };\n // ============================= Child Component =============================\n _this.getMeta = function () {\n // Make error & validating in cache to save perf\n _this.prevValidating = _this.isFieldValidating();\n var meta = {\n touched: _this.isFieldTouched(),\n validating: _this.prevValidating,\n errors: _this.errors,\n warnings: _this.warnings,\n name: _this.getNamePath(),\n validated: _this.validatePromise === null\n };\n return meta;\n };\n // Only return validate child node. If invalidate, will do nothing about field.\n _this.getOnlyChild = function (children) {\n // Support render props\n if (typeof children === 'function') {\n var meta = _this.getMeta();\n return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), meta, _this.props.fieldContext))), {}, {\n isFunction: true\n });\n }\n // Filed element only\n var childList = toChildrenArray(children);\n if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n return {\n child: childList[0],\n isFunction: false\n };\n };\n // ============================== Field Control ==============================\n _this.getValue = function (store) {\n var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n var namePath = _this.getNamePath();\n return getValue(store || getFieldsValue(true), namePath);\n };\n _this.getControlled = function () {\n var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this$props6 = _this.props,\n trigger = _this$props6.trigger,\n validateTrigger = _this$props6.validateTrigger,\n getValueFromEvent = _this$props6.getValueFromEvent,\n normalize = _this$props6.normalize,\n valuePropName = _this$props6.valuePropName,\n getValueProps = _this$props6.getValueProps,\n fieldContext = _this$props6.fieldContext;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n var namePath = _this.getNamePath();\n var getInternalHooks = fieldContext.getInternalHooks,\n getFieldsValue = fieldContext.getFieldsValue;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n var value = _this.getValue();\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var originTriggerFunc = childProps[trigger];\n var control = _objectSpread(_objectSpread({}, childProps), mergedGetValueProps(value));\n // Add trigger\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n _this.triggerMetaEvent();\n var newValue;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n };\n // Add validateTrigger\n var validateTriggerList = toArray(mergedValidateTrigger || []);\n validateTriggerList.forEach(function (triggerName) {\n // Wrap additional function of component, so that we can get latest value from store\n var originTrigger = control[triggerName];\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n }\n // Always use latest rules\n var rules = _this.props.rules;\n if (rules && rules.length) {\n // We dispatch validate to root,\n // since it will update related data with other field with same name\n dispatch({\n type: 'validateField',\n namePath: namePath,\n triggerName: triggerName\n });\n }\n };\n });\n return control;\n };\n if (props.fieldContext) {\n var getInternalHooks = props.fieldContext.getInternalHooks;\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n initEntityValue = _getInternalHooks2.initEntityValue;\n initEntityValue(_assertThisInitialized(_this));\n }\n return _this;\n }\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n shouldUpdate = _this$props7.shouldUpdate,\n fieldContext = _this$props7.fieldContext;\n this.mounted = true;\n // Register on init\n if (fieldContext) {\n var getInternalHooks = fieldContext.getInternalHooks;\n var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks3.registerField;\n this.cancelRegisterFunc = registerField(this);\n }\n // One more render for component in case fields not ready\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\n this.triggerMetaEvent(true);\n this.mounted = false;\n }\n }, {\n key: \"reRender\",\n value: function reRender() {\n if (!this.mounted) return;\n this.forceUpdate();\n }\n }, {\n key: \"render\",\n value: function render() {\n var resetCount = this.state.resetCount;\n var children = this.props.children;\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction;\n // Not need to `cloneElement` since user can handle this in render function self\n var returnChildNode;\n if (isFunction) {\n returnChildNode = child;\n } else if ( /*#__PURE__*/React.isValidElement(child)) {\n returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n } else {\n warning(!child, '`children` of Field is not validate ReactElement.');\n returnChildNode = child;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n return Field;\n}(React.Component);\nField.contextType = FieldContext;\nField.defaultProps = {\n trigger: 'onChange',\n valuePropName: 'value'\n};\nfunction WrapperField(_ref5) {\n var name = _ref5.name,\n restProps = _objectWithoutProperties(_ref5, _excluded);\n var fieldContext = React.useContext(FieldContext);\n var listContext = React.useContext(ListContext);\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n if (!restProps.isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n }\n // Warning if it's a directly list field.\n // We can still support multiple level field preserve.\n if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n warning(false, '`preserve` should not apply on Form.List fields.');\n }\n return /*#__PURE__*/React.createElement(Field, _extends({\n key: key,\n name: namePath,\n isListField: !!listContext\n }, restProps, {\n fieldContext: fieldContext\n }));\n}\nexport default WrapperField;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from './FieldContext';\nimport Field from './Field';\nimport { move as _move, getNamePath } from './utils/valueUtil';\nimport ListContext from './ListContext';\nfunction List(_ref) {\n var name = _ref.name,\n initialValue = _ref.initialValue,\n children = _ref.children,\n rules = _ref.rules,\n validateTrigger = _ref.validateTrigger,\n isListField = _ref.isListField;\n var context = React.useContext(FieldContext);\n var wrapperListContext = React.useContext(ListContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current;\n var prefixName = React.useMemo(function () {\n var parentPrefixName = getNamePath(context.prefixName) || [];\n return [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n }, [context.prefixName, name]);\n var fieldContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n });\n }, [context, prefixName]);\n // List context\n var listContext = React.useMemo(function () {\n return {\n getKey: function getKey(namePath) {\n var len = prefixName.length;\n var pathName = namePath[len];\n return [keyManager.keys[pathName], namePath.slice(len + 1)];\n }\n };\n }, [prefixName]);\n // User should not pass `children` as other type.\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n if (source === 'internal') {\n return false;\n }\n return prevValue !== nextValue;\n };\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: listContext\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: fieldContext\n }, /*#__PURE__*/React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger,\n initialValue: initialValue,\n isList: true,\n isListField: isListField !== null && isListField !== void 0 ? isListField : !!wrapperListContext\n }, function (_ref3, meta) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? [] : _ref3$value,\n onChange = _ref3.onChange;\n var getFieldValue = context.getFieldValue;\n var getNewValue = function getNewValue() {\n var values = getFieldValue(prefixName || []);\n return values || [];\n };\n /**\n * Always get latest value in case user update fields by `form` api.\n */\n var operations = {\n add: function add(defaultValue, index) {\n // Mapping keys\n var newValue = getNewValue();\n if (index >= 0 && index <= newValue.length) {\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n } else {\n if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n warning(false, 'The second parameter of the add function should be a valid positive number.');\n }\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n }\n keyManager.id += 1;\n },\n remove: function remove(index) {\n var newValue = getNewValue();\n var indexSet = new Set(Array.isArray(index) ? index : [index]);\n if (indexSet.size <= 0) {\n return;\n }\n keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n return !indexSet.has(keysIndex);\n });\n // Trigger store change\n onChange(newValue.filter(function (_, valueIndex) {\n return !indexSet.has(valueIndex);\n }));\n },\n move: function move(from, to) {\n if (from === to) {\n return;\n }\n var newValue = getNewValue();\n // Do not handle out of range\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n keyManager.keys = _move(keyManager.keys, from, to);\n // Trigger store change\n onChange(_move(newValue, from, to));\n }\n };\n var listValue = value || [];\n if (!Array.isArray(listValue)) {\n listValue = [];\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n }\n }\n return children(listValue.map(function (__, index) {\n var key = keyManager.keys[index];\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations, meta);\n })));\n}\nexport default List;","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\n return new Promise(function (resolve, reject) {\n promiseList.forEach(function (promise, index) {\n promise.catch(function (e) {\n hasError = true;\n return e;\n }).then(function (result) {\n count -= 1;\n results[index] = result;\n if (count > 0) {\n return;\n }\n if (hasError) {\n reject(results);\n }\n resolve(results);\n });\n });\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\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 _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\nfunction normalize(namePath) {\n return namePath.map(function (cell) {\n return \"\".concat(_typeof(cell), \":\").concat(cell);\n })\n // Magic split\n .join(SPLIT);\n}\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n this.kvs = new Map();\n }\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.kvs.set(normalize(key), value);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.kvs.get(normalize(key));\n }\n }, {\n key: \"update\",\n value: function update(key, updater) {\n var origin = this.get(key);\n var next = updater(origin);\n if (!next) {\n this.delete(key);\n } else {\n this.set(key, next);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this.kvs.delete(normalize(key));\n }\n // Since we only use this in test, let simply realize this\n }, {\n key: \"map\",\n value: function map(callback) {\n return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n var cells = key.split(SPLIT);\n return callback({\n key: cells.map(function (cell) {\n var _cell$match = cell.match(/^([^:]*):(.*)$/),\n _cell$match2 = _slicedToArray(_cell$match, 3),\n type = _cell$match2[1],\n unit = _cell$match2[2];\n return type === 'number' ? Number(unit) : unit;\n }),\n value: value\n });\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref3) {\n var key = _ref3.key,\n value = _ref3.value;\n json[key.join('.')] = value;\n return null;\n });\n return json;\n }\n }]);\n return NameMap;\n}();\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nvar _excluded = [\"name\"];\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { HOOK_MARK } from './FieldContext';\nimport { allPromiseFinish } from './utils/asyncUtil';\nimport { merge } from \"rc-util/es/utils/set\";\nimport { defaultValidateMessages } from './utils/messages';\nimport NameMap from './utils/NameMap';\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue } from './utils/valueUtil';\nexport var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {\n var _this = this;\n _classCallCheck(this, FormStore);\n this.formHooked = false;\n this.forceRootUpdate = void 0;\n this.subscribable = true;\n this.store = {};\n this.fieldEntities = [];\n this.initialValues = {};\n this.callbacks = {};\n this.validateMessages = null;\n this.preserve = null;\n this.lastValidatePromise = null;\n this.getForm = function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\n getFieldWarning: _this.getFieldWarning,\n getFieldsError: _this.getFieldsError,\n isFieldsTouched: _this.isFieldsTouched,\n isFieldTouched: _this.isFieldTouched,\n isFieldValidating: _this.isFieldValidating,\n isFieldsValidating: _this.isFieldsValidating,\n resetFields: _this.resetFields,\n setFields: _this.setFields,\n setFieldValue: _this.setFieldValue,\n setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n _init: true,\n getInternalHooks: _this.getInternalHooks\n };\n };\n // ======================== Internal Hooks ========================\n this.getInternalHooks = function (key) {\n if (key === HOOK_MARK) {\n _this.formHooked = true;\n return {\n dispatch: _this.dispatch,\n initEntityValue: _this.initEntityValue,\n registerField: _this.registerField,\n useSubscribe: _this.useSubscribe,\n setInitialValues: _this.setInitialValues,\n destroyForm: _this.destroyForm,\n setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields,\n setPreserve: _this.setPreserve,\n getInitialValue: _this.getInitialValue,\n registerWatch: _this.registerWatch\n };\n }\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n };\n this.useSubscribe = function (subscribable) {\n _this.subscribable = subscribable;\n };\n /**\n * Record prev Form unmount fieldEntities which config preserve false.\n * This need to be refill with initialValues instead of store value.\n */\n this.prevWithoutPreserves = null;\n /**\n * First time `setInitialValues` should update store with initial value\n */\n this.setInitialValues = function (initialValues, init) {\n _this.initialValues = initialValues || {};\n if (init) {\n var _this$prevWithoutPres;\n var nextStore = merge(initialValues, _this.store);\n // We will take consider prev form unmount fields.\n // When the field is not `preserve`, we need fill this with initialValues instead of store.\n // eslint-disable-next-line array-callback-return\n (_this$prevWithoutPres = _this.prevWithoutPreserves) === null || _this$prevWithoutPres === void 0 ? void 0 : _this$prevWithoutPres.map(function (_ref) {\n var namePath = _ref.key;\n nextStore = setValue(nextStore, namePath, getValue(initialValues, namePath));\n });\n _this.prevWithoutPreserves = null;\n _this.updateStore(nextStore);\n }\n };\n this.destroyForm = function () {\n var prevWithoutPreserves = new NameMap();\n _this.getFieldEntities(true).forEach(function (entity) {\n if (!_this.isMergedPreserve(entity.isPreserve())) {\n prevWithoutPreserves.set(entity.getNamePath(), true);\n }\n });\n _this.prevWithoutPreserves = prevWithoutPreserves;\n };\n this.getInitialValue = function (namePath) {\n var initValue = getValue(_this.initialValues, namePath);\n // Not cloneDeep when without `namePath`\n return namePath.length ? merge(initValue) : initValue;\n };\n this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n this.setValidateMessages = function (validateMessages) {\n _this.validateMessages = validateMessages;\n };\n this.setPreserve = function (preserve) {\n _this.preserve = preserve;\n };\n // ============================= Watch ============================\n this.watchList = [];\n this.registerWatch = function (callback) {\n _this.watchList.push(callback);\n return function () {\n _this.watchList = _this.watchList.filter(function (fn) {\n return fn !== callback;\n });\n };\n };\n this.notifyWatch = function () {\n var namePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // No need to cost perf when nothing need to watch\n if (_this.watchList.length) {\n var values = _this.getFieldsValue();\n var allValues = _this.getFieldsValue(true);\n _this.watchList.forEach(function (callback) {\n callback(values, allValues, namePath);\n });\n }\n };\n // ========================== Dev Warning =========================\n this.timeoutId = null;\n this.warningUnhooked = function () {\n if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n _this.timeoutId = setTimeout(function () {\n _this.timeoutId = null;\n if (!_this.formHooked) {\n warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n }\n });\n }\n };\n // ============================ Store =============================\n this.updateStore = function (nextStore) {\n _this.store = nextStore;\n };\n // ============================ Fields ============================\n /**\n * Get registered field entities.\n * @param pure Only return field which has a `name`. Default: false\n */\n this.getFieldEntities = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (!pure) {\n return _this.fieldEntities;\n }\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n };\n this.getFieldsMap = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n return cache;\n };\n this.getFieldEntitiesForNamePathList = function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n var cache = _this.getFieldsMap(true);\n return nameList.map(function (name) {\n var namePath = getNamePath(name);\n return cache.get(namePath) || {\n INVALIDATE_NAME_PATH: getNamePath(name)\n };\n });\n };\n this.getFieldsValue = function (nameList, filterFunc) {\n _this.warningUnhooked();\n // Fill args\n var mergedNameList;\n var mergedFilterFunc;\n var mergedStrict;\n if (nameList === true || Array.isArray(nameList)) {\n mergedNameList = nameList;\n mergedFilterFunc = filterFunc;\n } else if (nameList && _typeof(nameList) === 'object') {\n mergedStrict = nameList.strict;\n mergedFilterFunc = nameList.filter;\n }\n if (mergedNameList === true && !mergedFilterFunc) {\n return _this.store;\n }\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(mergedNameList) ? mergedNameList : null);\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var _entity$isListField;\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath();\n // Ignore when it's a list item and not specific the namePath,\n // since parent field is already take in count\n if (mergedStrict) {\n var _entity$isList;\n if ((_entity$isList = entity.isList) === null || _entity$isList === void 0 ? void 0 : _entity$isList.call(entity)) {\n return;\n }\n } else if (!mergedNameList && ((_entity$isListField = entity.isListField) === null || _entity$isListField === void 0 ? void 0 : _entity$isListField.call(entity))) {\n return;\n }\n if (!mergedFilterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n if (mergedFilterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n };\n this.getFieldValue = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n };\n this.getFieldsError = function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n return fieldEntities.map(function (entity, index) {\n if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n return {\n name: entity.getNamePath(),\n errors: entity.getErrors(),\n warnings: entity.getWarnings()\n };\n }\n return {\n name: getNamePath(nameList[index]),\n errors: [],\n warnings: []\n };\n });\n };\n this.getFieldError = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.errors;\n };\n this.getFieldWarning = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.warnings;\n };\n this.isFieldsTouched = function () {\n _this.warningUnhooked();\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n if (args.length === 0) {\n namePathList = null;\n } else if (args.length === 1) {\n if (Array.isArray(arg0)) {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = false;\n } else {\n namePathList = null;\n isAllFieldsTouched = arg0;\n }\n } else {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = arg1;\n }\n var fieldEntities = _this.getFieldEntities(true);\n var isFieldTouched = function isFieldTouched(field) {\n return field.isFieldTouched();\n };\n // ===== Will get fully compare when not config namePathList =====\n if (!namePathList) {\n return isAllFieldsTouched ? fieldEntities.every(isFieldTouched) : fieldEntities.some(isFieldTouched);\n }\n // Generate a nest tree for validate\n var map = new NameMap();\n namePathList.forEach(function (shortNamePath) {\n map.set(shortNamePath, []);\n });\n fieldEntities.forEach(function (field) {\n var fieldNamePath = field.getNamePath();\n // Find matched entity and put into list\n namePathList.forEach(function (shortNamePath) {\n if (shortNamePath.every(function (nameUnit, i) {\n return fieldNamePath[i] === nameUnit;\n })) {\n map.update(shortNamePath, function (list) {\n return [].concat(_toConsumableArray(list), [field]);\n });\n }\n });\n });\n // Check if NameMap value is touched\n var isNamePathListTouched = function isNamePathListTouched(entities) {\n return entities.some(isFieldTouched);\n };\n var namePathListEntities = map.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n });\n return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n };\n this.isFieldTouched = function (name) {\n _this.warningUnhooked();\n return _this.isFieldsTouched([name]);\n };\n this.isFieldsValidating = function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntities();\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\n }\n var namePathList = nameList.map(getNamePath);\n return fieldEntities.some(function (testField) {\n var fieldNamePath = testField.getNamePath();\n return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n });\n };\n this.isFieldValidating = function (name) {\n _this.warningUnhooked();\n return _this.isFieldsValidating([name]);\n };\n /**\n * Reset Field with field `initialValue` prop.\n * Can pass `entities` or `namePathList` or just nothing.\n */\n this.resetWithFieldInitialValue = function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Create cache\n var cache = new NameMap();\n var fieldEntities = _this.getFieldEntities(true);\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath();\n // Record only if has `initialValue`\n if (initialValue !== undefined) {\n var records = cache.get(namePath) || new Set();\n records.add({\n entity: field,\n value: initialValue\n });\n cache.set(namePath, records);\n }\n });\n // Reset\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n var formInitialValue = _this.getInitialValue(namePath);\n if (formInitialValue !== undefined) {\n // Warning if conflict with form initialValues and do not modify value\n warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n } else {\n var records = cache.get(namePath);\n if (records && records.size > 1) {\n // Warning if multiple field set `initialValue`and do not modify value\n warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n } else if (records) {\n var originValue = _this.getFieldValue(namePath);\n // Set `initialValue`\n if (!info.skipExist || originValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, _toConsumableArray(records)[0].value));\n }\n }\n }\n }\n });\n };\n var requiredFieldEntities;\n if (info.entities) {\n requiredFieldEntities = info.entities;\n } else if (info.namePathList) {\n requiredFieldEntities = [];\n info.namePathList.forEach(function (namePath) {\n var records = cache.get(namePath);\n if (records) {\n var _requiredFieldEntitie;\n (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n return r.entity;\n })));\n }\n });\n } else {\n requiredFieldEntities = fieldEntities;\n }\n resetWithFields(requiredFieldEntities);\n };\n this.resetFields = function (nameList) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (!nameList) {\n _this.updateStore(merge(_this.initialValues));\n _this.resetWithFieldInitialValue();\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n _this.notifyWatch();\n return;\n }\n // Reset by `nameList`\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n });\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n _this.notifyWatch(namePathList);\n };\n this.setFields = function (fields) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n var namePathList = [];\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n data = _objectWithoutProperties(fieldData, _excluded);\n var namePath = getNamePath(name);\n namePathList.push(namePath);\n // Value\n if ('value' in data) {\n _this.updateStore(setValue(_this.store, namePath, data.value));\n }\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n _this.notifyWatch(namePathList);\n };\n this.getFields = function () {\n var entities = _this.getFieldEntities(true);\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n };\n // =========================== Observer ===========================\n /**\n * This only trigger when a field is on constructor to avoid we get initialValue too late\n */\n this.initEntityValue = function (entity) {\n var initialValue = entity.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = entity.getNamePath();\n var prevValue = getValue(_this.store, namePath);\n if (prevValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n }\n }\n };\n this.isMergedPreserve = function (fieldPreserve) {\n var mergedPreserve = fieldPreserve !== undefined ? fieldPreserve : _this.preserve;\n return mergedPreserve !== null && mergedPreserve !== void 0 ? mergedPreserve : true;\n };\n this.registerField = function (entity) {\n _this.fieldEntities.push(entity);\n var namePath = entity.getNamePath();\n _this.notifyWatch([namePath]);\n // Set initial values\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n }\n // un-register field callback\n return function (isListField, preserve) {\n var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n });\n // Clean up store value if not preserve\n if (!_this.isMergedPreserve(preserve) && (!isListField || subNamePath.length > 1)) {\n var defaultValue = isListField ? undefined : _this.getInitialValue(namePath);\n if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n return (\n // Only reset when no namePath exist\n !matchNamePath(field.getNamePath(), namePath)\n );\n })) {\n var _prevStore = _this.store;\n _this.updateStore(setValue(_prevStore, namePath, defaultValue, true));\n // Notify that field is unmount\n _this.notifyObservers(_prevStore, [namePath], {\n type: 'remove'\n });\n // Dependencies update\n _this.triggerDependenciesUpdate(_prevStore, namePath);\n }\n }\n _this.notifyWatch([namePath]);\n };\n };\n this.dispatch = function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n _this.updateValue(namePath, value);\n break;\n }\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n break;\n }\n default:\n // Currently we don't have other action. Do nothing.\n }\n };\n this.notifyObservers = function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n store: _this.getFieldsValue(true)\n });\n _this.getFieldEntities().forEach(function (_ref3) {\n var onStoreChange = _ref3.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n };\n /**\n * Notify dependencies children with parent update\n * We need delay to trigger validate in case Field is under render props\n */\n this.triggerDependenciesUpdate = function (prevStore, namePath) {\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n if (childrenFields.length) {\n _this.validateFields(childrenFields);\n }\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n });\n return childrenFields;\n };\n this.updateValue = function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n _this.updateStore(setValue(_this.store, namePath, value));\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n });\n _this.notifyWatch([namePath]);\n // Dependencies update\n var childrenFields = _this.triggerDependenciesUpdate(prevStore, namePath);\n // trigger callback function\n var onValuesChange = _this.callbacks.onValuesChange;\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.getFieldsValue());\n }\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n };\n // Let all child Field get update.\n this.setFieldsValue = function (store) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (store) {\n var nextStore = merge(_this.store, store);\n _this.updateStore(nextStore);\n }\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n _this.notifyWatch();\n };\n this.setFieldValue = function (name, value) {\n _this.setFields([{\n name: name,\n value: value\n }]);\n };\n this.getDependencyChildrenFields = function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\n _this.getFieldEntities().forEach(function (field) {\n var dependencies = field.props.dependencies;\n (dependencies || []).forEach(function (dependency) {\n var dependencyNamePath = getNamePath(dependency);\n dependencies2fields.update(dependencyNamePath, function () {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n fields.add(field);\n return fields;\n });\n });\n });\n var fillChildren = function fillChildren(namePath) {\n var fields = dependencies2fields.get(namePath) || new Set();\n fields.forEach(function (field) {\n if (!children.has(field)) {\n children.add(field);\n var fieldNamePath = field.getNamePath();\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n fillChildren(rootNamePath);\n return childrenFields;\n };\n this.triggerOnFieldsChange = function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n if (onFieldsChange) {\n var fields = _this.getFields();\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref4) {\n var name = _ref4.name,\n errors = _ref4.errors;\n cache.set(name, errors);\n });\n fields.forEach(function (field) {\n // eslint-disable-next-line no-param-reassign\n field.errors = cache.get(field.name) || field.errors;\n });\n }\n var changedFields = fields.filter(function (_ref5) {\n var fieldName = _ref5.name;\n return containsNamePath(namePathList, fieldName);\n });\n if (changedFields.length) {\n onFieldsChange(changedFields, fields);\n }\n }\n };\n // =========================== Validate ===========================\n this.validateFields = function (arg1, arg2) {\n var _options;\n _this.warningUnhooked();\n var nameList;\n var options;\n if (Array.isArray(arg1) || typeof arg1 === 'string' || typeof arg2 === 'string') {\n nameList = arg1;\n options = arg2;\n } else {\n options = arg1;\n }\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : [];\n // Collect result in promise list\n var promiseList = [];\n // We temp save the path which need trigger for `onFieldsChange`\n var TMP_SPLIT = String(Date.now());\n var validateNamePathList = new Set();\n var recursive = (_options = options) === null || _options === void 0 ? void 0 : _options.recursive;\n _this.getFieldEntities(true).forEach(function (field) {\n // Add field if not provide `nameList`\n if (!provideNameList) {\n namePathList.push(field.getNamePath());\n }\n // Skip if without rule\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n var fieldNamePath = field.getNamePath();\n validateNamePathList.add(fieldNamePath.join(TMP_SPLIT));\n // Add field validate rule in to promise list\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath, recursive)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n }, options));\n // Wrap promise with field\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: [],\n warnings: []\n };\n }).catch(function (ruleErrors) {\n var _ruleErrors$forEach;\n var mergedErrors = [];\n var mergedWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref6) {\n var warningOnly = _ref6.rule.warningOnly,\n errors = _ref6.errors;\n if (warningOnly) {\n mergedWarnings.push.apply(mergedWarnings, _toConsumableArray(errors));\n } else {\n mergedErrors.push.apply(mergedErrors, _toConsumableArray(errors));\n }\n });\n if (mergedErrors.length) {\n return Promise.reject({\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n });\n }\n return {\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n };\n }));\n }\n });\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise;\n // Notify fields with rule that validate has finished and need update\n summaryPromise.catch(function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref7) {\n var name = _ref7.name;\n return name;\n });\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\n _this.triggerOnFieldsChange(resultNamePathList, results);\n });\n var returnPromise = summaryPromise.then(function () {\n if (_this.lastValidatePromise === summaryPromise) {\n return Promise.resolve(_this.getFieldsValue(namePathList));\n }\n return Promise.reject([]);\n }).catch(function (results) {\n var errorList = results.filter(function (result) {\n return result && result.errors.length;\n });\n return Promise.reject({\n values: _this.getFieldsValue(namePathList),\n errorFields: errorList,\n outOfDate: _this.lastValidatePromise !== summaryPromise\n });\n });\n // Do not throw in console\n returnPromise.catch(function (e) {\n return e;\n });\n // `validating` changed. Trigger `onFieldsChange`\n var triggerNamePathList = namePathList.filter(function (namePath) {\n return validateNamePathList.has(namePath.join(TMP_SPLIT));\n });\n _this.triggerOnFieldsChange(triggerNamePathList);\n return returnPromise;\n };\n // ============================ Submit ============================\n this.submit = function () {\n _this.warningUnhooked();\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n if (onFinish) {\n try {\n onFinish(values);\n } catch (err) {\n // Should print error if user `onFinish` callback failed\n console.error(err);\n }\n }\n }).catch(function (e) {\n var onFinishFailed = _this.callbacks.onFinishFailed;\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n };\n this.forceRootUpdate = forceRootUpdate;\n});\nfunction useForm(form) {\n var formRef = React.useRef();\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n var forceReRender = function forceReRender() {\n forceUpdate({});\n };\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n return [formRef.current];\n}\nexport default useForm;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n triggerFormChange: function triggerFormChange() {},\n triggerFormFinish: function triggerFormFinish() {},\n registerForm: function registerForm() {},\n unregisterForm: function unregisterForm() {}\n});\nvar FormProvider = function FormProvider(_ref) {\n var validateMessages = _ref.validateMessages,\n onFormChange = _ref.onFormChange,\n onFormFinish = _ref.onFormFinish,\n children = _ref.children;\n var formContext = React.useContext(FormContext);\n var formsRef = React.useRef({});\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formContext), {}, {\n validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n // =========================================================\n // = Global Form Control =\n // =========================================================\n triggerFormChange: function triggerFormChange(name, changedFields) {\n if (onFormChange) {\n onFormChange(name, {\n changedFields: changedFields,\n forms: formsRef.current\n });\n }\n formContext.triggerFormChange(name, changedFields);\n },\n triggerFormFinish: function triggerFormFinish(name, values) {\n if (onFormFinish) {\n onFormFinish(name, {\n values: values,\n forms: formsRef.current\n });\n }\n formContext.triggerFormFinish(name, values);\n },\n registerForm: function registerForm(name, form) {\n if (name) {\n formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n }\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"];\nimport * as React from 'react';\nimport useForm from './useForm';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport FormContext from './FormContext';\nimport { isSimilar } from './utils/valueUtil';\nimport ListContext from './ListContext';\nvar Form = function Form(_ref, ref) {\n var name = _ref.name,\n initialValues = _ref.initialValues,\n fields = _ref.fields,\n form = _ref.form,\n preserve = _ref.preserve,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'form' : _ref$component,\n validateMessages = _ref.validateMessages,\n _ref$validateTrigger = _ref.validateTrigger,\n validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n onValuesChange = _ref.onValuesChange,\n _onFieldsChange = _ref.onFieldsChange,\n _onFinish = _ref.onFinish,\n onFinishFailed = _ref.onFinishFailed,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var formContext = React.useContext(FormContext);\n // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n var _formInstance$getInte = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _formInstance$getInte.useSubscribe,\n setInitialValues = _formInstance$getInte.setInitialValues,\n setCallbacks = _formInstance$getInte.setCallbacks,\n setValidateMessages = _formInstance$getInte.setValidateMessages,\n setPreserve = _formInstance$getInte.setPreserve,\n destroyForm = _formInstance$getInte.destroyForm;\n // Pass ref with form instance\n React.useImperativeHandle(ref, function () {\n return formInstance;\n });\n // Register form into Context\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]);\n // Pass props to store\n setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n if (_onFieldsChange) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n });\n setPreserve(preserve);\n // Set initial value, init store value when first mount\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n if (!mountRef.current) {\n mountRef.current = true;\n }\n React.useEffect(function () {\n return destroyForm;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // Prepare children by `children` type\n var childrenNode;\n var childrenRenderProps = typeof children === 'function';\n if (childrenRenderProps) {\n var values = formInstance.getFieldsValue(true);\n childrenNode = children(values, formInstance);\n } else {\n childrenNode = children;\n }\n // Not use subscribe when using render props\n useSubscribe(!childrenRenderProps);\n // Listen if fields provided. We use ref to save prev data here to avoid additional render\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\n prevFieldsRef.current = fields;\n }, [fields, formInstance]);\n var formContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, formInstance), {}, {\n validateTrigger: validateTrigger\n });\n }, [formInstance, validateTrigger]);\n var wrapperNode = /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode));\n if (Component === false) {\n return wrapperNode;\n }\n return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\n },\n onReset: function onReset(event) {\n var _restProps$onReset;\n event.preventDefault();\n formInstance.resetFields();\n (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 ? void 0 : _restProps$onReset.call(restProps, event);\n }\n }), wrapperNode);\n};\nexport default Form;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport warning from \"rc-util/es/warning\";\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport { useState, useContext, useEffect, useRef, useMemo } from 'react';\nimport { getNamePath, getValue } from './utils/valueUtil';\nimport { isFormInstance } from './utils/typeUtil';\nexport function stringify(value) {\n try {\n return JSON.stringify(value);\n } catch (err) {\n return Math.random();\n }\n}\nvar useWatchWarning = process.env.NODE_ENV !== 'production' ? function (namePath) {\n var fullyStr = namePath.join('__RC_FIELD_FORM_SPLIT__');\n var nameStrRef = useRef(fullyStr);\n warning(nameStrRef.current === fullyStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');\n} : function () {};\nfunction useWatch() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var _args$ = args[0],\n dependencies = _args$ === void 0 ? [] : _args$,\n _args$2 = args[1],\n _form = _args$2 === void 0 ? {} : _args$2;\n var options = isFormInstance(_form) ? {\n form: _form\n } : _form;\n var form = options.form;\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n var valueStr = useMemo(function () {\n return stringify(value);\n }, [value]);\n var valueStrRef = useRef(valueStr);\n valueStrRef.current = valueStr;\n var fieldContext = useContext(FieldContext);\n var formInstance = form || fieldContext;\n var isValidForm = formInstance && formInstance._init;\n // Warning if not exist form instance\n if (process.env.NODE_ENV !== 'production') {\n warning(args.length === 2 ? form ? isValidForm : true : isValidForm, 'useWatch requires a form instance since it can not auto detect from context.');\n }\n var namePath = getNamePath(dependencies);\n var namePathRef = useRef(namePath);\n namePathRef.current = namePath;\n useWatchWarning(namePath);\n useEffect(function () {\n // Skip if not exist form instance\n if (!isValidForm) {\n return;\n }\n var getFieldsValue = formInstance.getFieldsValue,\n getInternalHooks = formInstance.getInternalHooks;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n registerWatch = _getInternalHooks.registerWatch;\n var cancelRegister = registerWatch(function (values, allValues) {\n var newValue = getValue(options.preserve ? allValues : values, namePathRef.current);\n var nextValueStr = stringify(newValue);\n // Compare stringify in case it's nest object\n if (valueStrRef.current !== nextValueStr) {\n valueStrRef.current = nextValueStr;\n setValue(newValue);\n }\n });\n // TODO: We can improve this perf in future\n var initialValue = getValue(options.preserve ? getFieldsValue(true) : getFieldsValue(), namePathRef.current);\n setValue(initialValue);\n return cancelRegister;\n },\n // We do not need re-register since namePath content is the same\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isValidForm]);\n return value;\n}\nexport default useWatch;","import * as React from 'react';\nimport Field from './Field';\nimport List from './List';\nimport useForm from './useForm';\nimport FieldForm from './Form';\nimport { FormProvider } from './FormContext';\nimport FieldContext from './FieldContext';\nimport ListContext from './ListContext';\nimport useWatch from './useWatch';\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nRefForm.useWatch = useWatch;\nexport { Field, List, useForm, FormProvider, FieldContext, ListContext, useWatch };\nexport default RefForm;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"valueType\", \"customLightMode\", \"lightFilterLabelFormatter\", \"valuePropName\", \"ignoreWidth\", \"defaultProps\"],\n _excluded2 = [\"label\", \"tooltip\", \"placeholder\", \"width\", \"bordered\", \"messageVariables\", \"ignoreFormItem\", \"transform\", \"convertValue\", \"readonly\", \"allowClear\", \"colSize\", \"getFormItemProps\", \"getFieldProps\", \"filedConfig\", \"cacheForSwr\", \"proFieldProps\"];\nimport { isDeepEqualReact, omitUndefined, pickProFormItemProps, stringify, usePrevious } from '@ant-design/pro-utils';\nimport classnames from 'classnames';\nimport { FieldContext as RcFieldContext } from 'rc-field-form';\nimport { noteOnce } from \"rc-util/es/warning\";\nimport React, { useCallback, useContext, useMemo, useState } from 'react';\nimport { ProFormDependency, ProFormItem } from \"../components\";\nimport FieldContext from \"../FieldContext\";\nimport { useGridHelpers } from \"../helpers\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var TYPE = Symbol('ProFormComponent');\nvar WIDTH_SIZE_ENUM = {\n // 适用于短数字,短文本或者选项\n xs: 104,\n s: 216,\n // 适用于较短字段录入、如姓名、电话、ID 等。\n sm: 216,\n m: 328,\n // 标准宽度,适用于大部分字段长度。\n md: 328,\n l: 440,\n // 适用于较长字段录入,如长网址、标签组、文件路径等。\n lg: 440,\n // 适用于长文本录入,如长链接、描述、备注等,通常搭配自适应多行输入框或定高文本域使用。\n xl: 552\n};\nvar ignoreWidthValueType = ['switch', 'radioButton', 'radio', 'rate'];\n\n/**\n * 处理fieldProps和formItemProps为function时传进来的方法\n * 目前只在SchemaForm时可能会有\n */\n\n/**\n * 这个方法的主要作用的帮助 Field 增加 FormItem 同时也会处理 lightFilter\n *\n * @param Field\n * @param config\n */\nfunction createField(Field, config) {\n // 标记是否是 ProForm 的组件\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n Field.displayName = 'ProFormComponent';\n var FieldWithContext = function FieldWithContext(props) {\n var _ref = _objectSpread(_objectSpread({}, props === null || props === void 0 ? void 0 : props.filedConfig), config) || {},\n tmpValueType = _ref.valueType,\n customLightMode = _ref.customLightMode,\n lightFilterLabelFormatter = _ref.lightFilterLabelFormatter,\n _ref$valuePropName = _ref.valuePropName,\n valuePropName = _ref$valuePropName === void 0 ? 'value' : _ref$valuePropName,\n ignoreWidth = _ref.ignoreWidth,\n defaultProps = _ref.defaultProps,\n defaultFormItemProps = _objectWithoutProperties(_ref, _excluded);\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n label = _defaultProps$props.label,\n tooltip = _defaultProps$props.tooltip,\n placeholder = _defaultProps$props.placeholder,\n width = _defaultProps$props.width,\n bordered = _defaultProps$props.bordered,\n messageVariables = _defaultProps$props.messageVariables,\n ignoreFormItem = _defaultProps$props.ignoreFormItem,\n transform = _defaultProps$props.transform,\n convertValue = _defaultProps$props.convertValue,\n readonly = _defaultProps$props.readonly,\n allowClear = _defaultProps$props.allowClear,\n colSize = _defaultProps$props.colSize,\n getFormItemProps = _defaultProps$props.getFormItemProps,\n getFieldProps = _defaultProps$props.getFieldProps,\n filedConfig = _defaultProps$props.filedConfig,\n cacheForSwr = _defaultProps$props.cacheForSwr,\n proFieldProps = _defaultProps$props.proFieldProps,\n rest = _objectWithoutProperties(_defaultProps$props, _excluded2);\n var valueType = tmpValueType || rest.valueType;\n\n // 有些 valueType 不需要宽度\n var isIgnoreWidth = useMemo(function () {\n return ignoreWidth || ignoreWidthValueType.includes(valueType);\n }, [ignoreWidth, valueType]);\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n\n // onChange触发fieldProps,formItemProps重新执行\n var _useState3 = useState(),\n _useState4 = _slicedToArray(_useState3, 2),\n onlyChange = _useState4[0],\n forceUpdateByOnChange = _useState4[1];\n\n /**\n * 从 context 中拿到的值\n */\n var contextValue = React.useContext(FieldContext);\n\n /**\n * dependenciesValues change to trigger re-execute of getFieldProps and getFormItemProps\n */\n var changedProps = useMemo(function () {\n return {\n formItemProps: getFormItemProps === null || getFormItemProps === void 0 ? void 0 : getFormItemProps(),\n fieldProps: getFieldProps === null || getFieldProps === void 0 ? void 0 : getFieldProps()\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [getFieldProps, getFormItemProps, rest.dependenciesValues, onlyChange]);\n var fieldProps = useMemo(function () {\n var newFieldProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, ignoreFormItem ? omitUndefined({\n value: rest.value\n }) : {}), {}, {\n placeholder: placeholder,\n disabled: props.disabled\n }, contextValue.fieldProps), changedProps.fieldProps), rest.fieldProps);\n newFieldProps.style = omitUndefined(newFieldProps === null || newFieldProps === void 0 ? void 0 : newFieldProps.style);\n return newFieldProps;\n }, [ignoreFormItem, rest.value, rest.fieldProps, placeholder, props.disabled, contextValue.fieldProps, changedProps.fieldProps]);\n\n // restFormItemProps is user props pass to Form.Item\n var restFormItemProps = pickProFormItemProps(rest);\n var formItemProps = useMemo(function () {\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, contextValue.formItemProps), restFormItemProps), changedProps.formItemProps), rest.formItemProps);\n }, [changedProps.formItemProps, contextValue.formItemProps, rest.formItemProps, restFormItemProps]);\n var otherProps = useMemo(function () {\n return _objectSpread(_objectSpread({\n messageVariables: messageVariables\n }, defaultFormItemProps), formItemProps);\n }, [defaultFormItemProps, formItemProps, messageVariables]);\n noteOnce(\n // eslint-disable-next-line @typescript-eslint/dot-notation\n !rest['defaultValue'], '请不要在 Form 中使用 defaultXXX。如果需要默认值请使用 initialValues 和 initialValue。');\n var _useContext = useContext(RcFieldContext),\n prefixName = _useContext.prefixName;\n var proFieldKey = useMemo(function () {\n var _contextValue$formKey;\n var name = otherProps === null || otherProps === void 0 ? void 0 : otherProps.name;\n if (Array.isArray(name)) name = name.join('_');\n if (Array.isArray(prefixName) && name) name = \"\".concat(prefixName.join('.'), \".\").concat(name);\n var key = name && \"form-\".concat((_contextValue$formKey = contextValue.formKey) !== null && _contextValue$formKey !== void 0 ? _contextValue$formKey : '', \"-field-\").concat(name);\n return key;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stringify(otherProps === null || otherProps === void 0 ? void 0 : otherProps.name), prefixName, contextValue.formKey]);\n var prefRest = usePrevious(rest);\n var onChange = useCallback(function () {\n var _fieldProps$onChange;\n if (getFormItemProps || getFieldProps) {\n forceUpdateByOnChange([]);\n } else if (rest.renderFormItem) {\n forceUpdate([]);\n }\n for (var _len = arguments.length, restParams = new Array(_len), _key = 0; _key < _len; _key++) {\n restParams[_key] = arguments[_key];\n }\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onChange = fieldProps.onChange) === null || _fieldProps$onChange === void 0 ? void 0 : _fieldProps$onChange.call.apply(_fieldProps$onChange, [fieldProps].concat(restParams));\n }, [getFieldProps, getFormItemProps, fieldProps, rest.renderFormItem]);\n var style = useMemo(function () {\n var newStyle = _objectSpread({\n width: width && !WIDTH_SIZE_ENUM[width] ? width : contextValue.grid ? '100%' : undefined\n }, fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.style);\n if (isIgnoreWidth) Reflect.deleteProperty(newStyle, 'width');\n return omitUndefined(newStyle);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stringify(fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.style), contextValue.grid, isIgnoreWidth, width]);\n var className = useMemo(function () {\n var isSizeEnum = width && WIDTH_SIZE_ENUM[width];\n return classnames(fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.className, _defineProperty({\n 'pro-field': isSizeEnum\n }, \"pro-field-\".concat(width), isSizeEnum && !isIgnoreWidth)) || undefined;\n }, [width, fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.className, isIgnoreWidth]);\n var fieldProFieldProps = useMemo(function () {\n return omitUndefined(_objectSpread(_objectSpread({}, contextValue.proFieldProps), {}, {\n mode: rest === null || rest === void 0 ? void 0 : rest.mode,\n readonly: readonly,\n params: rest.params,\n proFieldKey: proFieldKey,\n cacheForSwr: cacheForSwr\n }, proFieldProps));\n }, [contextValue.proFieldProps, rest === null || rest === void 0 ? void 0 : rest.mode, rest.params, readonly, proFieldKey, cacheForSwr, proFieldProps]);\n var fieldFieldProps = useMemo(function () {\n return _objectSpread(_objectSpread({\n onChange: onChange,\n allowClear: allowClear\n }, fieldProps), {}, {\n style: style,\n className: className\n });\n }, [allowClear, className, onChange, fieldProps, style]);\n var field = useMemo(function () {\n return /*#__PURE__*/_jsx(Field\n // @ts-ignore\n , _objectSpread(_objectSpread({}, rest), {}, {\n fieldProps: fieldFieldProps,\n proFieldProps: fieldProFieldProps,\n ref: props === null || props === void 0 ? void 0 : props.fieldRef\n }), props.proFormFieldKey || props.name);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fieldProFieldProps, fieldFieldProps,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n isDeepEqualReact(prefRest, rest, ['onChange', 'onBlur', 'onFocus', 'record']) ? undefined : {}]);\n\n // 使用useMemo包裹避免不必要的re-render\n var formItem = useMemo(function () {\n var _otherProps$name, _field$props$allowCle, _field$props, _field$props2;\n return /*#__PURE__*/_jsx(ProFormItem\n // 全局的提供一个 tip 功能,可以减少代码量\n // 轻量模式下不通过 FormItem 显示 label\n , _objectSpread(_objectSpread({\n label: label && (proFieldProps === null || proFieldProps === void 0 ? void 0 : proFieldProps.light) !== true ? label : undefined,\n tooltip: (proFieldProps === null || proFieldProps === void 0 ? void 0 : proFieldProps.light) !== true && tooltip,\n valuePropName: valuePropName\n // @ts-ignore\n }, otherProps), {}, {\n ignoreFormItem: ignoreFormItem,\n transform: transform,\n dataFormat: fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.format,\n valueType: valueType,\n messageVariables: _objectSpread({\n label: label || ''\n }, otherProps === null || otherProps === void 0 ? void 0 : otherProps.messageVariables),\n convertValue: convertValue,\n lightProps: omitUndefined(_objectSpread(_objectSpread(_objectSpread({}, fieldProps), {}, {\n valueType: valueType,\n bordered: bordered,\n allowClear: (_field$props$allowCle = field === null || field === void 0 ? void 0 : (_field$props = field.props) === null || _field$props === void 0 ? void 0 : _field$props.allowClear) !== null && _field$props$allowCle !== void 0 ? _field$props$allowCle : allowClear,\n light: proFieldProps === null || proFieldProps === void 0 ? void 0 : proFieldProps.light,\n label: label,\n customLightMode: customLightMode,\n labelFormatter: lightFilterLabelFormatter,\n valuePropName: valuePropName,\n footerRender: field === null || field === void 0 ? void 0 : (_field$props2 = field.props) === null || _field$props2 === void 0 ? void 0 : _field$props2.footerRender\n }, rest.lightProps), otherProps.lightProps)),\n children: field\n }), props.proFormFieldKey || ((_otherProps$name = otherProps.name) === null || _otherProps$name === void 0 ? void 0 : _otherProps$name.toString()));\n }, [label, proFieldProps === null || proFieldProps === void 0 ? void 0 : proFieldProps.light, tooltip, valuePropName, props.proFormFieldKey, otherProps, ignoreFormItem, transform, fieldProps, valueType, convertValue, bordered, field, allowClear, customLightMode, lightFilterLabelFormatter, rest.lightProps]);\n var _useGridHelpers = useGridHelpers(rest),\n ColWrapper = _useGridHelpers.ColWrapper;\n return /*#__PURE__*/_jsx(ColWrapper, {\n children: formItem\n });\n };\n var DependencyWrapper = function DependencyWrapper(props) {\n var dependencies = props.dependencies;\n return dependencies ? /*#__PURE__*/_jsx(ProFormDependency, {\n name: dependencies,\n originDependencies: props === null || props === void 0 ? void 0 : props.originDependencies,\n children: function children(values) {\n return /*#__PURE__*/_jsx(FieldWithContext, _objectSpread({\n dependenciesValues: values,\n dependencies: dependencies\n }, props));\n }\n }) : /*#__PURE__*/_jsx(FieldWithContext, _objectSpread({\n dependencies: dependencies\n }, props));\n };\n return DependencyWrapper;\n}\nexport { createField };","import React from 'react';\nvar FieldContext = /*#__PURE__*/React.createContext({});\nexport { FieldContext };\nexport default FieldContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"originDependencies\", \"children\", \"ignoreFormListField\"];\nimport { isDeepEqualReact, merge, ProFormContext } from '@ant-design/pro-utils';\nimport { Form } from 'antd';\nimport get from \"rc-util/es/utils/get\";\nimport set from \"rc-util/es/utils/set\";\nimport { useContext, useMemo } from 'react';\nimport { FormListContext } from \"../List\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar ProFormDependency = function ProFormDependency(_ref) {\n var nameList = _ref.name,\n _ref$originDependenci = _ref.originDependencies,\n originDependencies = _ref$originDependenci === void 0 ? nameList : _ref$originDependenci,\n _children = _ref.children,\n ignoreFormListField = _ref.ignoreFormListField,\n rest = _objectWithoutProperties(_ref, _excluded);\n var context = useContext(ProFormContext);\n // ProFromList 的 field,里面有name和key\n var formListField = useContext(FormListContext);\n\n // flatten each name into an (string | number)[]\n var flattenNames = useMemo(function () {\n return nameList.map(function (itemName) {\n var _formListField$listNa;\n var name = [itemName];\n\n // ignoreFormListField为 true 或 formListField.name === undefined 时\n // 应从全局取值,要将 names 中各项的路径前缀(formListField.listName)忽略\n if (!ignoreFormListField && formListField.name !== undefined && (_formListField$listNa = formListField.listName) !== null && _formListField$listNa !== void 0 && _formListField$listNa.length) {\n name.unshift(formListField.listName);\n }\n return name.flat(1);\n });\n }, [formListField.listName, formListField.name, ignoreFormListField, nameList === null || nameList === void 0 ? void 0 : nameList.toString()]);\n return /*#__PURE__*/_jsx(Form.Item, _objectSpread(_objectSpread({}, rest), {}, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues, info) {\n if (typeof rest.shouldUpdate === 'boolean') {\n return rest.shouldUpdate;\n } else if (typeof rest.shouldUpdate === 'function') {\n var _rest$shouldUpdate;\n return (_rest$shouldUpdate = rest.shouldUpdate) === null || _rest$shouldUpdate === void 0 ? void 0 : _rest$shouldUpdate.call(rest, prevValues, nextValues, info);\n }\n return flattenNames.some(function (name) {\n return !isDeepEqualReact(get(prevValues, name), get(nextValues, name));\n });\n },\n children: function children(form) {\n var values = {};\n for (var i = 0; i < nameList.length; i++) {\n var _context$getFieldForm;\n var itemName = flattenNames[i],\n itemOriginName = originDependencies[i];\n var finalName = [itemOriginName].flat(1);\n var value = (_context$getFieldForm = context.getFieldFormatValueObject) === null || _context$getFieldForm === void 0 ? void 0 : _context$getFieldForm.call(context, itemName);\n if (value && Object.keys(value).length) {\n // transform 会生成多余的value,这里需要注入一下\n values = merge({}, values, value);\n if (get(value, itemName)) {\n values = set(values, finalName, get(value, itemName), false);\n }\n } else {\n var _form$getFieldValue;\n value = (_form$getFieldValue = form.getFieldValue) === null || _form$getFieldValue === void 0 ? void 0 : _form$getFieldValue.call(form, itemName);\n if (typeof value !== 'undefined') {\n values = set(values, finalName, value, false);\n }\n }\n }\n return _children === null || _children === void 0 ? void 0 : _children(values, _objectSpread(_objectSpread({}, form), context));\n }\n }));\n};\nexport default ProFormDependency;","var proFieldProps = \"valueType request plain renderFormItem render text formItemProps valueEnum\";\nvar proFormProps = \"fieldProps isDefaultDom groupProps contentRender submitterProps submitter\";\nexport function pickProProps(props) {\n var propList = \"\".concat(proFieldProps, \" \").concat(proFormProps).split(/[\\s\\n]+/);\n var attrs = {};\n Object.keys(props || {}).forEach(function (key) {\n if (propList.includes(key)) {\n return;\n }\n attrs[key] = props[key];\n });\n return attrs;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"radioType\", \"renderFormItem\", \"mode\", \"render\", \"label\", \"light\"];\nimport { LoadingOutlined } from '@ant-design/icons';\nimport { useIntl } from '@ant-design/pro-provider';\nimport { FieldLabel } from '@ant-design/pro-utils';\nimport { Cascader, ConfigProvider } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { ObjToMap, proFieldParsingText, useFieldFetchData } from \"../Select\";\n\n// 兼容代码-----------\nimport \"antd/es/cascader/style\";\n//----------------------\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * 级联选择组件\n *\n * @param param0\n * @param ref\n */\nvar FieldCascader = function FieldCascader(_ref, ref) {\n var _rest$fieldProps2;\n var radioType = _ref.radioType,\n renderFormItem = _ref.renderFormItem,\n mode = _ref.mode,\n render = _ref.render,\n label = _ref.label,\n light = _ref.light,\n rest = _objectWithoutProperties(_ref, _excluded);\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var layoutClassName = getPrefixCls('pro-field-cascader');\n var _useFieldFetchData = useFieldFetchData(rest),\n _useFieldFetchData2 = _slicedToArray(_useFieldFetchData, 3),\n loading = _useFieldFetchData2[0],\n options = _useFieldFetchData2[1],\n _fetchData = _useFieldFetchData2[2];\n var intl = useIntl();\n var cascaderRef = useRef();\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n useImperativeHandle(ref, function () {\n return _objectSpread(_objectSpread({}, cascaderRef.current || {}), {}, {\n fetchData: function fetchData(keyWord) {\n return _fetchData(keyWord);\n }\n });\n }, [_fetchData]);\n var optionsValueEnum = useMemo(function () {\n var _rest$fieldProps;\n if (mode !== 'read') return;\n /**\n * Support cascader fieldNames\n *\n * @see https://ant.design/components/cascader-cn/#header\n */\n var _ref2 = ((_rest$fieldProps = rest.fieldProps) === null || _rest$fieldProps === void 0 ? void 0 : _rest$fieldProps.fieldNames) || {},\n _ref2$value = _ref2.value,\n valuePropsName = _ref2$value === void 0 ? 'value' : _ref2$value,\n _ref2$label = _ref2.label,\n labelPropsName = _ref2$label === void 0 ? 'label' : _ref2$label,\n _ref2$children = _ref2.children,\n childrenPropsName = _ref2$children === void 0 ? 'children' : _ref2$children;\n var valuesMap = new Map();\n var traverseOptions = function traverseOptions(_options) {\n if (!(_options !== null && _options !== void 0 && _options.length)) {\n return valuesMap;\n }\n var length = _options.length;\n var i = 0;\n while (i < length) {\n var cur = _options[i++];\n valuesMap.set(cur[valuePropsName], cur[labelPropsName]);\n traverseOptions(cur[childrenPropsName]);\n }\n return valuesMap;\n };\n return traverseOptions(options);\n }, [mode, options, (_rest$fieldProps2 = rest.fieldProps) === null || _rest$fieldProps2 === void 0 ? void 0 : _rest$fieldProps2.fieldNames]);\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(_Fragment, {\n children: proFieldParsingText(rest.text, ObjToMap(rest.valueEnum || optionsValueEnum))\n });\n if (render) {\n var _render;\n return (_render = render(rest.text, _objectSpread({\n mode: mode\n }, rest.fieldProps), dom)) !== null && _render !== void 0 ? _render : null;\n }\n return dom;\n }\n if (mode === 'edit') {\n var _rest$fieldProps3, _rest$fieldProps5;\n var _dom = /*#__PURE__*/_jsx(Cascader, _objectSpread(_objectSpread({\n bordered: !light,\n ref: cascaderRef,\n open: open,\n suffixIcon: loading ? /*#__PURE__*/_jsx(LoadingOutlined, {}) : undefined,\n placeholder: intl.getMessage('tableForm.selectPlaceholder', '请选择'),\n allowClear: ((_rest$fieldProps3 = rest.fieldProps) === null || _rest$fieldProps3 === void 0 ? void 0 : _rest$fieldProps3.allowClear) !== false\n }, rest.fieldProps), {}, {\n onDropdownVisibleChange: function onDropdownVisibleChange(isOpen) {\n var _rest$fieldProps4, _rest$fieldProps4$onD;\n rest === null || rest === void 0 ? void 0 : (_rest$fieldProps4 = rest.fieldProps) === null || _rest$fieldProps4 === void 0 ? void 0 : (_rest$fieldProps4$onD = _rest$fieldProps4.onDropdownVisibleChange) === null || _rest$fieldProps4$onD === void 0 ? void 0 : _rest$fieldProps4$onD.call(_rest$fieldProps4, isOpen);\n setOpen(isOpen);\n },\n className: classNames((_rest$fieldProps5 = rest.fieldProps) === null || _rest$fieldProps5 === void 0 ? void 0 : _rest$fieldProps5.className, layoutClassName),\n options: options\n }));\n if (renderFormItem) {\n var _renderFormItem;\n _dom = (_renderFormItem = renderFormItem(rest.text, _objectSpread(_objectSpread({\n mode: mode\n }, rest.fieldProps), {}, {\n options: options,\n loading: loading\n }), _dom)) !== null && _renderFormItem !== void 0 ? _renderFormItem : null;\n }\n if (light) {\n var _rest$fieldProps6 = rest.fieldProps,\n disabled = _rest$fieldProps6.disabled,\n value = _rest$fieldProps6.value;\n var notEmpty = !!value && (value === null || value === void 0 ? void 0 : value.length) !== 0;\n return /*#__PURE__*/_jsx(FieldLabel, {\n label: label,\n disabled: disabled,\n bordered: rest.bordered,\n value: notEmpty || open ? _dom : null,\n style: notEmpty ? {\n paddingInlineEnd: 0\n } : undefined,\n allowClear: false,\n downIcon: notEmpty || open ? false : undefined,\n onClick: function onClick() {\n var _rest$fieldProps7, _rest$fieldProps7$onD;\n setOpen(true);\n rest === null || rest === void 0 ? void 0 : (_rest$fieldProps7 = rest.fieldProps) === null || _rest$fieldProps7 === void 0 ? void 0 : (_rest$fieldProps7$onD = _rest$fieldProps7.onDropdownVisibleChange) === null || _rest$fieldProps7$onD === void 0 ? void 0 : _rest$fieldProps7$onD.call(_rest$fieldProps7, true);\n }\n });\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldCascader);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"layout\", \"renderFormItem\", \"mode\", \"render\"];\nimport { useStyle } from '@ant-design/pro-utils';\nimport { Checkbox, ConfigProvider, Form, Spin } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext, useImperativeHandle, useRef } from 'react';\nimport { ObjToMap, proFieldParsingText, useFieldFetchData } from \"../Select\";\n// 兼容代码-----------\nimport { useToken } from '@ant-design/pro-provider';\nimport \"antd/es/checkbox/style\";\n//----------------------\n/**\n * 多选组件\n *\n * @param param0\n * @param ref\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nvar FieldCheckbox = function FieldCheckbox(_ref, ref) {\n var _Form$Item, _Form$Item$useStatus;\n var _ref$layout = _ref.layout,\n layout = _ref$layout === void 0 ? 'horizontal' : _ref$layout,\n renderFormItem = _ref.renderFormItem,\n mode = _ref.mode,\n render = _ref.render,\n rest = _objectWithoutProperties(_ref, _excluded);\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var layoutClassName = getPrefixCls('pro-field-checkbox');\n var status = (_Form$Item = Form.Item) === null || _Form$Item === void 0 ? void 0 : (_Form$Item$useStatus = _Form$Item.useStatus) === null || _Form$Item$useStatus === void 0 ? void 0 : _Form$Item$useStatus.call(_Form$Item);\n var _useFieldFetchData = useFieldFetchData(rest),\n _useFieldFetchData2 = _slicedToArray(_useFieldFetchData, 3),\n loading = _useFieldFetchData2[0],\n options = _useFieldFetchData2[1],\n _fetchData = _useFieldFetchData2[2];\n\n // css\n var _useStyle = useStyle('Checkbox', function (token) {\n var _vertical;\n return _defineProperty({}, \".\".concat(layoutClassName), {\n '&-error': {\n span: {\n color: token.colorError\n }\n },\n '&-warning': {\n span: {\n color: token.colorWarning\n }\n },\n '&-vertical': (_vertical = {}, _defineProperty(_vertical, \"&\".concat(token.antCls, \"-checkbox-group\"), {\n display: 'inline-block'\n }), _defineProperty(_vertical, \"\".concat(token.antCls, \"-checkbox-wrapper+\").concat(token.antCls, \"-checkbox-wrapper\"), {\n 'margin-inline-start': '0 !important'\n }), _defineProperty(_vertical, \"\".concat(token.antCls, \"-checkbox-group-item\"), {\n display: 'flex',\n marginInlineEnd: 0\n }), _vertical)\n });\n }),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var _useToken = useToken === null || useToken === void 0 ? void 0 : useToken(),\n token = _useToken.token;\n var checkBoxRef = useRef();\n useImperativeHandle(ref, function () {\n return _objectSpread(_objectSpread({}, checkBoxRef.current || {}), {}, {\n fetchData: function fetchData(keyWord) {\n return _fetchData(keyWord);\n }\n });\n }, [_fetchData]);\n if (loading) {\n return /*#__PURE__*/_jsx(Spin, {\n size: \"small\"\n });\n }\n if (mode === 'read') {\n var optionsValueEnum = options !== null && options !== void 0 && options.length ? options === null || options === void 0 ? void 0 : options.reduce(function (pre, cur) {\n var _ref3;\n return _objectSpread(_objectSpread({}, pre), {}, _defineProperty({}, (_ref3 = cur.value) !== null && _ref3 !== void 0 ? _ref3 : '', cur.label));\n }, {}) : undefined;\n var dom = proFieldParsingText(rest.text, ObjToMap(rest.valueEnum || optionsValueEnum));\n if (render) {\n var _render;\n return (_render = render(rest.text, _objectSpread({\n mode: mode\n }, rest.fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n }))) !== null && _render !== void 0 ? _render : null;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n style: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: token.marginSM\n },\n children: dom\n });\n }\n if (mode === 'edit') {\n var _rest$fieldProps, _classNames;\n var _dom = wrapSSR( /*#__PURE__*/_jsx(Checkbox.Group, _objectSpread(_objectSpread({}, rest.fieldProps), {}, {\n className: classNames((_rest$fieldProps = rest.fieldProps) === null || _rest$fieldProps === void 0 ? void 0 : _rest$fieldProps.className, hashId, \"\".concat(layoutClassName, \"-\").concat(layout), (_classNames = {}, _defineProperty(_classNames, \"\".concat(layoutClassName, \"-error\"), (status === null || status === void 0 ? void 0 : status.status) === 'error'), _defineProperty(_classNames, \"\".concat(layoutClassName, \"-warning\"), (status === null || status === void 0 ? void 0 : status.status) === 'warning'), _classNames)),\n options: options\n })));\n if (renderFormItem) {\n var _renderFormItem;\n return (_renderFormItem = renderFormItem(rest.text, _objectSpread(_objectSpread({\n mode: mode\n }, rest.fieldProps), {}, {\n options: options,\n loading: loading\n }), _dom)) !== null && _renderFormItem !== void 0 ? _renderFormItem : null;\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldCheckbox);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { Input } from 'antd';\nimport React from 'react';\n// 兼容代码-----------\nimport { proTheme } from '@ant-design/pro-provider';\nimport \"antd/es/input/style\";\n//----------------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar languageFormat = function languageFormat(text, language) {\n if (typeof text !== 'string') {\n return text;\n }\n try {\n if (language === 'json') {\n return JSON.stringify(JSON.parse(text), null, 2);\n }\n } catch (error) {\n // console.log(error)\n }\n return text;\n};\n\n/**\n * 代码片段组件 这个组件为了显示简单的配置,复杂的请使用更加重型的组件\n *\n * @param\n */\nvar FieldCode = function FieldCode(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n _ref$language = _ref.language,\n language = _ref$language === void 0 ? 'text' : _ref$language,\n renderFormItem = _ref.renderFormItem,\n plain = _ref.plain,\n fieldProps = _ref.fieldProps;\n var code = languageFormat(text, language);\n var _proTheme$useToken = proTheme.useToken(),\n token = _proTheme$useToken.token;\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(\"pre\", _objectSpread(_objectSpread({\n ref: ref\n }, fieldProps), {}, {\n style: _objectSpread({\n padding: 16,\n overflow: 'auto',\n fontSize: '85%',\n lineHeight: 1.45,\n color: token.colorTextSecondary,\n fontFamily: token.fontFamilyCode,\n backgroundColor: 'rgba(150, 150, 150, 0.1)',\n borderRadius: 3,\n width: 'min-content'\n }, fieldProps.style),\n children: /*#__PURE__*/_jsx(\"code\", {\n children: code\n })\n }));\n if (render) {\n return render(code, _objectSpread(_objectSpread({\n mode: mode\n }, fieldProps), {}, {\n ref: ref\n }), dom);\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n fieldProps.value = code;\n var _dom = /*#__PURE__*/_jsx(Input.TextArea, _objectSpread(_objectSpread({\n rows: 5\n }, fieldProps), {}, {\n ref: ref\n }));\n if (plain) {\n _dom = /*#__PURE__*/_jsx(Input, _objectSpread(_objectSpread({}, fieldProps), {}, {\n ref: ref\n }));\n }\n if (renderFormItem) {\n var _renderFormItem;\n return (_renderFormItem = renderFormItem(code, _objectSpread(_objectSpread({\n mode: mode\n }, fieldProps), {}, {\n ref: ref\n }), _dom)) !== null && _renderFormItem !== void 0 ? _renderFormItem : null;\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldCode);","export var calculateChange = function calculateChange(e, hsl, direction, initialA, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n if (direction === 'vertical') {\n var a;\n if (top < 0) {\n a = 0;\n } else if (top > containerHeight) {\n a = 1;\n } else {\n a = Math.round(top * 100 / containerHeight) / 100;\n }\n if (hsl.a !== a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: a,\n source: 'rgb'\n };\n }\n } else {\n var _a;\n if (left < 0) {\n _a = 0;\n } else if (left > containerWidth) {\n _a = 1;\n } else {\n _a = Math.round(left * 100 / containerWidth) / 100;\n }\n if (initialA !== _a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: _a,\n source: 'rgb'\n };\n }\n }\n return null;\n};","var checkboardCache = {};\nexport var render = function render(c1, c2, size, serverCanvas) {\n if (typeof document === 'undefined' && !serverCanvas) {\n return null;\n }\n var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas');\n canvas.width = size * 2;\n canvas.height = size * 2;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n } // If no context can be found, return early.\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n};\nexport var get = function get(c1, c2, size, serverCanvas) {\n var key = \"\".concat(c1, \"-\").concat(c2, \"-\").concat(size).concat(serverCanvas ? '-server' : '');\n if (checkboardCache[key]) {\n return checkboardCache[key];\n }\n var checkboard = render(c1, c2, size, serverCanvas);\n checkboardCache[key] = checkboard;\n return checkboard;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { isValidElement } from 'react';\nimport reactCSS from 'reactcss';\nimport * as checkboard from '../../helpers/checkboard';\nexport var Checkboard = function Checkboard(_ref) {\n var white = _ref.white,\n grey = _ref.grey,\n size = _ref.size,\n renderers = _ref.renderers,\n borderRadius = _ref.borderRadius,\n boxShadow = _ref.boxShadow,\n children = _ref.children;\n var styles = reactCSS({\n default: {\n grid: {\n borderRadius: borderRadius,\n boxShadow: boxShadow,\n absolute: '0px 0px 0px 0px',\n background: \"url(\".concat(checkboard.get(white, grey, size, renderers.canvas), \") center left\")\n }\n }\n });\n return /*#__PURE__*/isValidElement(children) ? /*#__PURE__*/React.cloneElement(children, _objectSpread(_objectSpread({}, children.props), {}, {\n style: _objectSpread(_objectSpread({}, children.props.style), styles.grid)\n })) : /*#__PURE__*/React.createElement(\"div\", {\n style: styles.grid\n });\n};\nCheckboard.defaultProps = {\n size: 8,\n white: 'transparent',\n grey: 'rgba(0,0,0,.08)',\n renderers: {}\n};\nexport default Checkboard;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as alpha from '../../helpers/alpha';\nimport Checkboard from './Checkboard';\nexport var Alpha = /*#__PURE__*/function (_ref) {\n _inherits(Alpha, _ref);\n var _super = _createSuper(Alpha);\n function Alpha() {\n var _this;\n _classCallCheck(this, Alpha);\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.handleChange = function (e) {\n var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n };\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n };\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleChange);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n };\n return _this;\n }\n _createClass(Alpha, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var rgb = this.props.rgb;\n var styles = reactCSS({\n default: {\n alpha: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n checkboard: {\n absolute: '0px 0px 0px 0px',\n overflow: 'hidden',\n borderRadius: this.props.radius\n },\n gradient: {\n absolute: '0px 0px 0px 0px',\n background: \"linear-gradient(to right, rgba(\".concat(rgb.r, \",\").concat(rgb.g, \",\").concat(rgb.b, \", 0) 0%,\\n rgba(\").concat(rgb.r, \",\").concat(rgb.g, \",\").concat(rgb.b, \", 1) 100%)\"),\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n container: {\n position: 'relative',\n height: '100%',\n margin: '0 3px'\n },\n pointer: {\n position: 'absolute',\n left: \"\".concat(rgb.a * 100, \"%\")\n },\n slider: {\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n marginTop: '1px',\n transform: 'translateX(-2px)'\n }\n },\n vertical: {\n gradient: {\n background: \"linear-gradient(to bottom, rgba(\".concat(rgb.r, \",\").concat(rgb.g, \",\").concat(rgb.b, \", 0) 0%,\\n rgba(\").concat(rgb.r, \",\").concat(rgb.g, \",\").concat(rgb.b, \", 1) 100%)\")\n },\n pointer: {\n left: 0,\n top: \"\".concat(rgb.a * 100, \"%\")\n }\n },\n overwrite: _objectSpread({}, this.props.style)\n }, {\n vertical: this.props.direction === 'vertical',\n overwrite: true\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.alpha\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.checkboard\n }, /*#__PURE__*/React.createElement(Checkboard, {\n renderers: this.props.renderers\n })), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.gradient\n }), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.pointer\n }, this.props.pointer ? /*#__PURE__*/React.createElement(this.props.pointer, this.props) : /*#__PURE__*/React.createElement(\"div\", {\n style: styles.slider\n }))));\n }\n }]);\n return Alpha;\n}(PureComponent || Component);\nexport default Alpha;","export var calculateChange = function calculateChange(e, direction, hsl, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n if (direction === 'vertical') {\n var h;\n if (top < 0) {\n h = 359;\n } else if (top > containerHeight) {\n h = 0;\n } else {\n var percent = -(top * 100 / containerHeight) + 100;\n h = 360 * percent / 100;\n }\n if (hsl.h !== h) {\n return {\n h: h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n } else {\n var _h;\n if (left < 0) {\n _h = 0;\n } else if (left > containerWidth) {\n _h = 359;\n } else {\n var _percent = left * 100 / containerWidth;\n _h = 360 * _percent / 100;\n }\n if (hsl.h !== _h) {\n return {\n h: _h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n }\n return null;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as hue from '../../helpers/hue';\nexport var Hue = /*#__PURE__*/function (_ref) {\n _inherits(Hue, _ref);\n var _super = _createSuper(Hue);\n function Hue() {\n var _this;\n _classCallCheck(this, Hue);\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.handleChange = function (e) {\n var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n };\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n };\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n return _this;\n }\n _createClass(Hue, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: \"unbindEventListeners\",\n value: function unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props$direction = this.props.direction,\n direction = _this$props$direction === void 0 ? 'horizontal' : _this$props$direction;\n var styles = reactCSS({\n default: {\n hue: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius,\n boxShadow: this.props.shadow\n },\n container: {\n padding: '0 2px',\n position: 'relative',\n height: '100%',\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n left: \"\".concat(this.props.hsl.h * 100 / 360, \"%\")\n },\n slider: {\n marginTop: '1px',\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n transform: 'translateX(-2px)'\n }\n },\n vertical: {\n pointer: {\n left: '0px',\n top: \"\".concat(-(this.props.hsl.h * 100 / 360) + 100, \"%\")\n }\n }\n }, {\n vertical: direction === 'vertical'\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.hue\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"hue-\".concat(direction),\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n }, /*#__PURE__*/React.createElement(\"style\", null, \"\\n .hue-horizontal {\\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n\\n .hue-vertical {\\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n \"), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.pointer\n }, this.props.pointer ? /*#__PURE__*/React.createElement(this.props.pointer, this.props) : /*#__PURE__*/React.createElement(\"div\", {\n style: styles.slider\n }))));\n }\n }]);\n return Hue;\n}(PureComponent || Component);\nexport default Hue;","export var calculateChange = function calculateChange(e, hsl, container) {\n var _container$getBoundin = container.getBoundingClientRect(),\n containerWidth = _container$getBoundin.width,\n containerHeight = _container$getBoundin.height;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n if (left < 0) {\n left = 0;\n } else if (left > containerWidth) {\n left = containerWidth;\n }\n if (top < 0) {\n top = 0;\n } else if (top > containerHeight) {\n top = containerHeight;\n }\n var saturation = left / containerWidth;\n var bright = 1 - top / containerHeight;\n return {\n h: hsl.h,\n s: saturation,\n v: bright,\n a: hsl.a,\n source: 'hsv'\n };\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport throttle from 'lodash/throttle';\nimport * as saturation from '../../helpers/saturation';\nexport var Saturation = /*#__PURE__*/function (_ref) {\n _inherits(Saturation, _ref);\n var _super = _createSuper(Saturation);\n function Saturation(props) {\n var _this;\n _classCallCheck(this, Saturation);\n _this = _super.call(this, props);\n _this.handleChange = function (e) {\n typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e);\n };\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n var renderWindow = _this.getContainerRenderWindow();\n renderWindow.addEventListener('mousemove', _this.handleChange);\n renderWindow.addEventListener('mouseup', _this.handleMouseUp);\n };\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n _this.throttle = throttle(function (fn, data, e) {\n fn(data, e);\n }, 50);\n return _this;\n }\n _createClass(Saturation, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.throttle.cancel();\n this.unbindEventListeners();\n }\n }, {\n key: \"getContainerRenderWindow\",\n value: function getContainerRenderWindow() {\n var container = this.container;\n var renderWindow = window;\n while (!renderWindow.document.contains(container) && renderWindow.parent !== renderWindow) {\n renderWindow = renderWindow.parent;\n }\n return renderWindow;\n }\n }, {\n key: \"unbindEventListeners\",\n value: function unbindEventListeners() {\n var renderWindow = this.getContainerRenderWindow();\n renderWindow.removeEventListener('mousemove', this.handleChange);\n renderWindow.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _ref2 = this.props.style || {},\n color = _ref2.color,\n white = _ref2.white,\n black = _ref2.black,\n pointer = _ref2.pointer,\n circle = _ref2.circle;\n var styles = reactCSS({\n default: {\n color: {\n absolute: '0px 0px 0px 0px',\n background: \"hsl(\".concat(this.props.hsl.h, \",100%, 50%)\"),\n borderRadius: this.props.radius\n },\n white: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n black: {\n absolute: '0px 0px 0px 0px',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n top: \"\".concat(-(this.props.hsv.v * 100) + 100, \"%\"),\n left: \"\".concat(this.props.hsv.s * 100, \"%\"),\n cursor: 'default'\n },\n circle: {\n width: '4px',\n height: '4px',\n boxShadow: \"0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\\n 0 0 1px 2px rgba(0,0,0,.4)\",\n borderRadius: '50%',\n cursor: 'hand',\n transform: 'translate(-2px, -2px)'\n }\n },\n custom: {\n color: color,\n white: white,\n black: black,\n pointer: pointer,\n circle: circle\n }\n }, {\n custom: !!this.props.style\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.color,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n }, /*#__PURE__*/React.createElement(\"style\", null, \"\\n .saturation-white {\\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\\n }\\n .saturation-black {\\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\\n }\\n \"), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.white,\n className: \"saturation-white\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.black,\n className: \"saturation-black\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.pointer\n }, this.props.pointer ? /*#__PURE__*/React.createElement(this.props.pointer, this.props) : /*#__PURE__*/React.createElement(\"div\", {\n style: styles.circle\n }))));\n }\n }]);\n return Saturation;\n}(PureComponent || Component);\nexport default Saturation;","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n if (_typeof(color) == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n}\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n};\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\nfunction _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n}\nfunction _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba);\n};\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n};\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\nvar matchers = function () {\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n}();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n return false;\n}\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","import each from 'lodash/each';\nimport tinycolor from 'tinycolor2';\nexport var simpleCheckForValidColor = function simpleCheckForValidColor(data) {\n var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n var checked = 0;\n var passed = 0;\n each(keysToCheck, function (letter) {\n if (data[letter]) {\n checked += 1;\n // @ts-ignore\n if (!isNaN(data[letter])) {\n passed += 1;\n }\n if (letter === 's' || letter === 'l') {\n var percentPatt = /^\\d+%$/;\n if (percentPatt.test(data[letter])) {\n passed += 1;\n }\n }\n }\n });\n return checked === passed ? data : false;\n};\nexport var toState = function toState(data, oldHue) {\n // @ts-ignore\n var color = data.hex ? tinycolor(data.hex) : tinycolor(data);\n var hsl = color.toHsl();\n var hsv = color.toHsv();\n var rgb = color.toRgb();\n var hex = color.toHex();\n if (hsl.s === 0) {\n hsl.h = oldHue || 0;\n hsv.h = oldHue || 0;\n }\n var transparent = hex === '000000' && rgb.a === 0;\n return {\n hsl: hsl,\n hex: transparent ? 'transparent' : \"#\".concat(hex),\n rgb: rgb,\n hsv: hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source\n };\n};\nexport var isValidHex = function isValidHex(hex) {\n if (hex === 'transparent') {\n return true;\n }\n // disable hex4 and hex8\n var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n // @ts-ignore\n return hex.length !== 4 + lh && hex.length < 7 + lh && tinycolor(hex).isValid();\n};\nexport var getContrastingColor = function getContrastingColor(data) {\n if (!data) {\n return '#fff';\n }\n var col = toState(data);\n if (col.hex === 'transparent') {\n return 'rgba(0,0,0,0.4)';\n }\n var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n return yiq >= 128 ? '#000' : '#fff';\n};\nexport var red = {\n hsl: {\n a: 1,\n h: 0,\n l: 0.5,\n s: 1\n },\n hex: '#ff0000',\n rgb: {\n r: 255,\n g: 0,\n b: 0,\n a: 1\n },\n hsv: {\n h: 0,\n s: 1,\n v: 1,\n a: 1\n }\n};\nexport var isvalidColorString = function isvalidColorString(string, type) {\n var stringWithoutDegree = string.replace('°', '');\n // @ts-ignore\n return tinycolor(\"\".concat(type, \" (\").concat(stringWithoutDegree, \")\"))._ok;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { Component, PureComponent } from 'react';\nimport debounce from 'lodash/debounce';\nimport * as color from '../../helpers/color';\nexport var ColorWrap = function ColorWrap(Picker) {\n var ColorPicker = /*#__PURE__*/function (_ref) {\n _inherits(ColorPicker, _ref);\n var _super = _createSuper(ColorPicker);\n function ColorPicker(props) {\n var _this;\n _classCallCheck(this, ColorPicker);\n _this = _super.call(this);\n _this.handleChange = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.setState(colors);\n _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event);\n _this.props.onChange && _this.props.onChange(colors, event);\n }\n };\n _this.handleSwatchHover = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event);\n }\n };\n _this.state = _objectSpread({}, color.toState(props.color, 0));\n _this.debounce = debounce(function (fn, data, event) {\n fn(data, event);\n }, 100);\n return _this;\n }\n _createClass(ColorPicker, [{\n key: \"render\",\n value: function render() {\n var optionalEvents = {};\n if (this.props.onSwatchHover) {\n optionalEvents.onSwatchHover = this.handleSwatchHover;\n }\n return /*#__PURE__*/React.createElement(Picker, _extends({}, this.props, this.state, {\n onChange: this.handleChange\n }, optionalEvents));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, state) {\n return _objectSpread({}, color.toState(nextProps.color, state.oldHue));\n }\n }]);\n return ColorPicker;\n }(PureComponent || Component);\n ColorPicker.propTypes = _objectSpread({}, Picker.propTypes);\n ColorPicker.defaultProps = _objectSpread(_objectSpread({}, Picker.defaultProps), {}, {\n color: {\n h: 250,\n s: 0.5,\n l: 0.2,\n a: 1\n }\n });\n return ColorPicker;\n};\nexport default ColorWrap;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nvar DEFAULT_ARROW_OFFSET = 1;\nvar UP_KEY_CODE = 38;\nvar DOWN_KEY_CODE = 40;\nvar VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE];\nvar isValidKeyCode = function isValidKeyCode(keyCode) {\n return VALID_KEY_CODES.indexOf(keyCode) > -1;\n};\nvar getNumberValue = function getNumberValue(value) {\n return Number(String(value).replace(/%/g, ''));\n};\nvar idCounter = 1;\nexport var EditableInput = /*#__PURE__*/function (_ref) {\n _inherits(EditableInput, _ref);\n var _super = _createSuper(EditableInput);\n function EditableInput(props) {\n var _this;\n _classCallCheck(this, EditableInput);\n _this = _super.call(this);\n _this.handleBlur = function () {\n if (_this.state.blurValue) {\n _this.setState({\n value: _this.state.blurValue,\n blurValue: null\n });\n }\n };\n _this.handleChange = function (e) {\n _this.setUpdatedValue(e.target.value, e);\n };\n _this.handleKeyDown = function (e) {\n // In case `e.target.value` is a percentage remove the `%` character\n // and update accordingly with a percentage\n // https://github.com/casesandberg/react-color/issues/383\n var value = getNumberValue(e.target.value);\n if (!isNaN(value) && isValidKeyCode(e.keyCode)) {\n var offset = _this.getArrowOffset();\n var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset;\n _this.setUpdatedValue(updatedValue, e);\n }\n };\n _this.handleDrag = function (e) {\n if (_this.props.dragLabel) {\n var newValue = Math.round(_this.props.value + e.movementX);\n if (newValue >= 0 && newValue <= _this.props.dragMax) {\n _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e);\n }\n }\n };\n _this.handleMouseDown = function (e) {\n if (_this.props.dragLabel) {\n e.preventDefault();\n _this.handleDrag(e);\n window.addEventListener('mousemove', _this.handleDrag);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }\n };\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleDrag);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n };\n _this.state = {\n value: String(props.value).toUpperCase(),\n blurValue: String(props.value).toUpperCase()\n };\n _this.inputId = \"rc-editable-input-\".concat(idCounter++);\n return _this;\n }\n _createClass(EditableInput, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) {\n if (this.input === document.activeElement) {\n this.setState({\n blurValue: String(this.props.value).toUpperCase()\n });\n } else {\n this.setState({\n value: String(this.props.value).toUpperCase(),\n blurValue: !this.state.blurValue && String(this.props.value).toUpperCase()\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: \"getValueObjectWithLabel\",\n value: function getValueObjectWithLabel(value) {\n return _defineProperty({}, this.props.label, value);\n }\n }, {\n key: \"getArrowOffset\",\n value: function getArrowOffset() {\n return this.props.arrowOffset || DEFAULT_ARROW_OFFSET;\n }\n }, {\n key: \"setUpdatedValue\",\n value: function setUpdatedValue(value, e) {\n var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value;\n this.props.onChange && this.props.onChange(onChangeValue, e);\n this.setState({\n value: value\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var styles = reactCSS({\n 'default': {\n wrap: {\n position: 'relative'\n }\n },\n 'user-override': {\n wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {},\n input: this.props.style && this.props.style.input ? this.props.style.input : {},\n label: this.props.style && this.props.style.label ? this.props.style.label : {}\n },\n 'dragLabel-true': {\n label: {\n cursor: 'ew-resize'\n }\n }\n }, {\n 'user-override': true\n }, this.props);\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.wrap\n }, /*#__PURE__*/React.createElement(\"input\", {\n id: this.inputId,\n style: styles.input,\n ref: function ref(input) {\n return _this2.input = input;\n },\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n placeholder: this.props.placeholder,\n spellCheck: \"false\"\n }), this.props.label && !this.props.hideLabel ? /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: this.inputId,\n style: styles.label,\n onMouseDown: this.handleMouseDown\n }, this.props.label) : null);\n }\n }]);\n return EditableInput;\n}(PureComponent || Component);\nexport default EditableInput;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n/* eslint-disable no-invalid-this */\nimport React from 'react';\nexport var handleFocus = function handleFocus(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n return /*#__PURE__*/function (_React$Component) {\n _inherits(Focus, _React$Component);\n var _super = _createSuper(Focus);\n function Focus() {\n var _this;\n _classCallCheck(this, Focus);\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 focus: false\n };\n _this.handleFocus = function () {\n return _this.setState({\n focus: true\n });\n };\n _this.handleBlur = function () {\n return _this.setState({\n focus: false\n });\n };\n return _this;\n }\n _createClass(Focus, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(Span, {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n }, /*#__PURE__*/React.createElement(Component, _extends({}, this.props, this.state)));\n }\n }]);\n return Focus;\n }(React.Component);\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport { handleFocus } from '../../helpers/interaction';\nimport Checkboard from './Checkboard';\nvar ENTER = 13;\nexport var Swatch = function Swatch(_ref) {\n var color = _ref.color,\n style = _ref.style,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,\n onHover = _ref.onHover,\n _ref$title = _ref.title,\n title = _ref$title === void 0 ? color : _ref$title,\n children = _ref.children,\n focus = _ref.focus,\n _ref$focusStyle = _ref.focusStyle,\n focusStyle = _ref$focusStyle === void 0 ? {} : _ref$focusStyle;\n var transparent = color === 'transparent';\n var styles = reactCSS({\n default: {\n swatch: _objectSpread(_objectSpread({\n background: color,\n height: '100%',\n width: '100%',\n cursor: 'pointer',\n position: 'relative',\n outline: 'none'\n }, style), focus ? focusStyle : {})\n }\n });\n var handleClick = function handleClick(e) {\n return onClick(color, e);\n };\n var handleKeyDown = function handleKeyDown(e) {\n return e.keyCode === ENTER && onClick(color, e);\n };\n var handleHover = function handleHover(e) {\n return onHover(color, e);\n };\n var optionalEvents = {};\n if (onHover) {\n optionalEvents.onMouseOver = handleHover;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n style: styles.swatch,\n onClick: handleClick,\n title: title,\n tabIndex: 0,\n onKeyDown: handleKeyDown\n }, optionalEvents), children, transparent && /*#__PURE__*/React.createElement(Checkboard, {\n borderRadius: styles.swatch.borderRadius,\n boxShadow: \"inset 0 0 0 1px rgba(0,0,0,0.1)\"\n }));\n};\nexport default handleFocus(Swatch);","/* eslint-disable no-param-reassign */\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport { EditableInput } from '../common';\nexport var SketchFields = function SketchFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n disableAlpha = _ref.disableAlpha;\n var styles = reactCSS({\n default: {\n fields: {\n display: 'flex',\n paddingTop: '4px'\n },\n single: {\n flex: '1',\n paddingLeft: '6px'\n },\n alpha: {\n flex: '1',\n paddingLeft: '6px'\n },\n double: {\n flex: '2'\n },\n input: {\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #ccc',\n fontSize: '11px'\n },\n label: {\n display: 'block',\n textAlign: 'center',\n fontSize: '11px',\n color: '#222',\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize'\n }\n },\n disableAlpha: {\n alpha: {\n display: 'none'\n }\n }\n }, {\n disableAlpha: disableAlpha\n });\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && (onChange === null || onChange === void 0 ? void 0 : onChange({\n hex: data.hex,\n source: 'hex'\n }, e));\n } else if (data.r || data.g || data.b) {\n onChange === null || onChange === void 0 ? void 0 : onChange({\n r: data.r || (rgb === null || rgb === void 0 ? void 0 : rgb.r),\n g: data.g || (rgb === null || rgb === void 0 ? void 0 : rgb.g),\n b: data.b || (rgb === null || rgb === void 0 ? void 0 : rgb.b),\n a: rgb === null || rgb === void 0 ? void 0 : rgb.a,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 100) {\n data.a = 100;\n }\n data.a /= 100;\n onChange === null || onChange === void 0 ? void 0 : onChange({\n h: hsl === null || hsl === void 0 ? void 0 : hsl.h,\n s: hsl === null || hsl === void 0 ? void 0 : hsl.s,\n l: hsl === null || hsl === void 0 ? void 0 : hsl.l,\n a: data.a,\n source: 'rgb'\n }, e);\n }\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.fields,\n className: \"flexbox-fix\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.double\n }, /*#__PURE__*/React.createElement(EditableInput, {\n style: {\n input: styles.input,\n label: styles.label\n },\n label: \"hex\",\n value: hex === null || hex === void 0 ? void 0 : hex.replace('#', ''),\n onChange: handleChange\n })), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.single\n }, /*#__PURE__*/React.createElement(EditableInput, {\n style: {\n input: styles.input,\n label: styles.label\n },\n label: \"r\",\n value: rgb === null || rgb === void 0 ? void 0 : rgb.r,\n onChange: handleChange,\n dragLabel: \"true\",\n dragMax: \"255\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.single\n }, /*#__PURE__*/React.createElement(EditableInput, {\n style: {\n input: styles.input,\n label: styles.label\n },\n label: \"g\",\n value: rgb === null || rgb === void 0 ? void 0 : rgb.g,\n onChange: handleChange,\n dragLabel: \"true\",\n dragMax: \"255\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.single\n }, /*#__PURE__*/React.createElement(EditableInput, {\n style: {\n input: styles.input,\n label: styles.label\n },\n label: \"b\",\n value: rgb === null || rgb === void 0 ? void 0 : rgb.b,\n onChange: handleChange,\n dragLabel: \"true\",\n dragMax: \"255\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.alpha\n }, /*#__PURE__*/React.createElement(EditableInput, {\n style: {\n input: styles.input,\n label: styles.label\n },\n label: \"a\",\n value: Math.round(((rgb === null || rgb === void 0 ? void 0 : rgb.a) || 0) * 100),\n onChange: handleChange,\n dragLabel: \"true\",\n dragMax: \"100\"\n })));\n};\nexport default SketchFields;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React from 'react';\nimport { Swatch } from '../common';\nexport var SketchPresetColors = function SketchPresetColors(_ref) {\n var colors = _ref.colors,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover;\n var styles = {\n colors: {\n margin: '0 -10px',\n padding: '10px 0 0 10px',\n borderTop: '1px solid #eee',\n display: 'flex',\n flexWrap: 'wrap',\n position: 'relative'\n },\n swatchWrap: {\n width: '16px',\n height: '16px',\n margin: '0 10px 10px 0'\n },\n swatch: {\n msBorderRadius: '3px',\n MozBorderRadius: '3px',\n OBorderRadius: '3px',\n WebkitBorderRadius: '3px',\n borderRadius: '3px',\n msBoxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)',\n MozBoxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)',\n OBoxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)',\n WebkitBoxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)'\n }\n };\n var handleClick = function handleClick(hex, e) {\n onClick === null || onClick === void 0 ? void 0 : onClick({\n hex: hex,\n source: 'hex'\n }, e);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.colors,\n className: \"flexbox-fix\"\n }, colors === null || colors === void 0 ? void 0 : colors.map(function (colorObjOrString) {\n var c = typeof colorObjOrString === 'string' ? {\n color: colorObjOrString,\n title: undefined\n } : colorObjOrString;\n var key = \"\".concat(c.color).concat((c === null || c === void 0 ? void 0 : c.title) || '');\n return /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n style: styles.swatchWrap\n }, /*#__PURE__*/React.createElement(Swatch, _objectSpread(_objectSpread({}, c), {}, {\n style: styles.swatch,\n onClick: handleClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: \"inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px \".concat(c.color)\n }\n })));\n }));\n};\nexport default SketchPresetColors;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash/merge';\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport SketchFields from './SketchFields';\nimport SketchPresetColors from './SketchPresetColors';\nexport var Sketch = function Sketch(_ref) {\n var width = _ref.width,\n rgb = _ref.rgb,\n hex = _ref.hex,\n hsv = _ref.hsv,\n hsl = _ref.hsl,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n disableAlpha = _ref.disableAlpha,\n presetColors = _ref.presetColors,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === void 0 ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className;\n var styles = reactCSS(\n //@ts-ignore\n merge({\n default: _objectSpread({\n picker: {\n width: width,\n padding: '10px 10px 0',\n boxSizing: 'initial',\n background: '#fff',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)'\n },\n saturation: {\n width: '100%',\n paddingBottom: '75%',\n position: 'relative',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '3px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n controls: {\n display: 'flex'\n },\n sliders: {\n padding: '4px 0',\n flex: '1'\n },\n color: {\n width: '24px',\n height: '24px',\n position: 'relative',\n marginTop: '4px',\n marginLeft: '4px',\n borderRadius: '3px'\n },\n activeColor: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '2px',\n background: \"rgba(\".concat(rgb.r, \",\").concat(rgb.g, \",\").concat(rgb.b, \",\").concat(rgb.a, \")\"),\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n hue: {\n position: 'relative',\n height: '10px',\n overflow: 'hidden'\n },\n Hue: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n alpha: {\n position: 'relative',\n height: '10px',\n marginTop: '4px',\n overflow: 'hidden'\n },\n Alpha: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n }\n }, passedStyles),\n disableAlpha: {\n color: {\n height: '10px'\n },\n hue: {\n height: '10px'\n },\n alpha: {\n display: 'none'\n }\n }\n }, passedStyles), {\n disableAlpha: disableAlpha\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.picker,\n className: \"sketch-picker \".concat(className)\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.saturation\n }, /*#__PURE__*/React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n onChange: onChange\n })), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.controls,\n className: \"flexbox-fix\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.sliders\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.hue\n }, /*#__PURE__*/React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n onChange: onChange\n })), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.alpha\n }, /*#__PURE__*/React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n renderers: renderers,\n onChange: onChange\n }))), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.color\n }, /*#__PURE__*/React.createElement(Checkboard, null), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.activeColor\n }))), /*#__PURE__*/React.createElement(SketchFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n onChange: onChange,\n disableAlpha: disableAlpha\n }), /*#__PURE__*/React.createElement(SketchPresetColors, {\n colors: presetColors,\n onClick: onChange,\n onSwatchHover: onSwatchHover\n }));\n};\nSketch.defaultProps = {\n disableAlpha: false,\n width: 200,\n styles: {},\n presetColors: ['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF']\n};\nvar SketchPicker = ColorWrap(Sketch);\nexport { SketchPicker };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"mode\", \"popoverProps\"];\nimport { proTheme, useStyle } from '@ant-design/pro-provider';\nimport { SketchPicker } from '@chenshuai2144/sketch-color';\nimport { ConfigProvider, Popover } from 'antd';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { useContext, useImperativeHandle } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var DEFAULT_COLORS = ['#FF9D4E',\n// 0 - 橘黄色\n'#5BD8A6',\n// 1 - 绿色\n'#5B8FF9',\n// 2 - 蓝色\n'#F7664E',\n// 3 - 红色\n'#FF86B7',\n// 4 - 水红色\n'#2B9E9D',\n// 5 - 墨绿色\n'#9270CA',\n// 6 - 紫色\n'#6DC8EC',\n// 7 - 浅蓝色\n'#667796',\n// 8 - 黛蓝色\n'#F6BD16' // 9 - 黄色\n];\n\nexport var ColorPicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var mode = _ref.mode,\n popoverProps = _ref.popoverProps,\n rest = _objectWithoutProperties(_ref, _excluded);\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-field-color-picker');\n var _proTheme$useToken = proTheme.useToken(),\n token = _proTheme$useToken.token;\n var _useMergedState = useMergedState('#1890ff', {\n value: rest.value,\n onChange: rest.onChange\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n color = _useMergedState2[0],\n setColor = _useMergedState2[1];\n var _useStyle = useStyle('ProFiledColorPicker' + color, function () {\n return _defineProperty({}, \".\".concat(prefixCls), {\n width: 32,\n height: 32,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxSizing: 'border-box',\n border: \"1px solid \".concat(token.colorSplit),\n borderRadius: token.borderRadius,\n '&:hover': {\n borderColor: color\n }\n });\n }),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var readDom = wrapSSR( /*#__PURE__*/_jsx(\"div\", {\n className: \"\".concat(prefixCls, \" \").concat(hashId).trim(),\n style: {\n cursor: rest.disabled ? 'not-allowed' : 'pointer',\n backgroundColor: rest.disabled ? token.colorBgContainerDisabled : token.colorBgContainer\n },\n children: /*#__PURE__*/_jsx(\"div\", {\n style: {\n backgroundColor: color,\n width: 24,\n boxSizing: 'border-box',\n height: 24,\n borderRadius: token.borderRadius\n }\n })\n }));\n useImperativeHandle(ref, function () {});\n if (mode === 'read' || rest.disabled) {\n return readDom;\n }\n return /*#__PURE__*/_jsx(Popover, _objectSpread(_objectSpread({\n trigger: \"click\",\n placement: \"right\"\n }, popoverProps), {}, {\n content: /*#__PURE__*/_jsx(\"div\", {\n style: {\n margin: '-12px -16px'\n },\n children: /*#__PURE__*/_jsx(SketchPicker, _objectSpread(_objectSpread({}, rest), {}, {\n presetColors: rest.colors || rest.presetColors || DEFAULT_COLORS,\n color: color,\n onChange: function onChange(_ref3) {\n var hex = _ref3.hex,\n _ref3$rgb = _ref3.rgb,\n r = _ref3$rgb.r,\n g = _ref3$rgb.g,\n b = _ref3$rgb.b,\n a = _ref3$rgb.a;\n if (a && a < 1) {\n setColor(\"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(a, \")\"));\n return;\n }\n setColor(hex);\n }\n }))\n }),\n children: readDom\n }));\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { compareVersions } from '@ant-design/pro-utils';\nimport { ConfigProvider, version } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext, useMemo } from 'react';\nimport { ColorPicker as ColorPickerV4 } from \"./old\";\n// https://ant.design/components/color-picker-cn 示例颜色\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar DEFAULT_PRESETS = {\n label: 'Recommended',\n colors: ['#F5222D', '#FA8C16', '#FADB14', '#8BBB11', '#52C41A', '#13A8A8', '#1677FF', '#2F54EB', '#722ED1', '#EB2F96', '#F5222D4D', '#FA8C164D', '#FADB144D', '#8BBB114D', '#52C41A4D', '#13A8A84D', '#1677FF4D', '#2F54EB4D', '#722ED14D', '#EB2F964D']\n};\n/**\n * 判断是否是 5.5.0 以上的版本\n * @returns\n */\nfunction IsIt_Render_V5() {\n return compareVersions(version, '5.5.0') > -1;\n}\n/**\n * 获取颜色组件\n * @param {boolean} [old=false] 是否使用旧版本\n * @return {*}\n */\nfunction getColorPicker() {\n var old = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if ((typeof old === 'undefined' || old === false) && IsIt_Render_V5()) {\n var _require = require('antd'),\n ColorPicker = _require.ColorPicker;\n return ColorPicker;\n }\n return ColorPickerV4;\n}\n// const ColorPicker = getColorPicker();\n/**\n * 颜色组件\n * Antd > 5.5.0 的版本 使用 antd 的 ColorPicker\n * @param FieldColorPicker {\n * text: number;\n * moneySymbol?: string; }\n */\nvar FieldColorPicker = function FieldColorPicker(_ref, ref) {\n var text = _ref.text,\n type = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n old = _ref.old;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var ColorPicker = React.useMemo(function () {\n return getColorPicker(old);\n }, [old]);\n var prefixCls = getPrefixCls('pro-field-color-picker');\n // 5.5.0 以上版本追加 className\n var className = useMemo(function () {\n if (old) return '';\n return classNames(_defineProperty({}, prefixCls, IsIt_Render_V5()));\n }, [prefixCls, old]);\n if (type === 'read') {\n var dom = /*#__PURE__*/_jsx(ColorPicker, {\n value: text,\n mode: \"read\",\n ref: ref,\n className: className\n // 设置无法 open\n ,\n open: false\n });\n if (render) {\n return render(text, _objectSpread({\n mode: type\n }, fieldProps), dom);\n }\n return dom;\n }\n if (type === 'edit' || type === 'update') {\n // 解决 默认的 width 100% 问题\n var style = _objectSpread({\n display: 'table-cell'\n }, fieldProps.style);\n var _dom = /*#__PURE__*/_jsx(ColorPicker, _objectSpread(_objectSpread({\n ref: ref,\n presets: [DEFAULT_PRESETS]\n }, fieldProps), {}, {\n style: style,\n className: className\n }));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread(_objectSpread({\n mode: type\n }, fieldProps), {}, {\n style: style\n }), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldColorPicker);","import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { isNil } from \"../isNil\";\ndayjs.extend(customParseFormat);\n/**\n * 一个比较hack的moment判断工具\n * @param value\n * @returns\n */\nvar isMoment = function isMoment(value) {\n return !!(value !== null && value !== void 0 && value._isAMomentObject);\n};\nexport var parseValueToDay = function parseValueToDay(value, formatter) {\n if (isNil(value) || dayjs.isDayjs(value) || isMoment(value)) {\n if (isMoment(value)) {\n return dayjs(value);\n }\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(function (v) {\n return parseValueToDay(v, formatter);\n });\n }\n if (typeof value === 'number') return dayjs(value);\n return dayjs(value, formatter);\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { FieldLabel, parseValueToDay } from '@ant-design/pro-utils';\nimport { DatePicker } from 'antd';\nimport dayjs from 'dayjs';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport React, { useState } from 'react';\n// 兼容代码-----------\nimport \"antd/es/date-picker/style\";\n//----------------------\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\ndayjs.extend(weekOfYear);\nvar formatDate = function formatDate(text, format) {\n if (!text) return '-';\n if (typeof format === 'function') {\n return format(dayjs(text));\n } else {\n return dayjs(text).format(format || 'YYYY-MM-DD');\n }\n};\n\n/**\n * 日期选择组件\n *\n * @param\n */\nvar FieldDatePicker = function FieldDatePicker(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n format = _ref.format,\n label = _ref.label,\n light = _ref.light,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n plain = _ref.plain,\n showTime = _ref.showTime,\n fieldProps = _ref.fieldProps,\n picker = _ref.picker,\n bordered = _ref.bordered,\n lightLabel = _ref.lightLabel;\n var intl = useIntl();\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n if (mode === 'read') {\n var dom = formatDate(text, fieldProps.format || format);\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n }));\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n });\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom;\n var disabled = fieldProps.disabled,\n value = fieldProps.value,\n _fieldProps$placehold = fieldProps.placeholder,\n placeholder = _fieldProps$placehold === void 0 ? intl.getMessage('tableForm.selectPlaceholder', '请选择') : _fieldProps$placehold;\n var dayValue = parseValueToDay(value);\n if (light) {\n _dom = /*#__PURE__*/_jsx(FieldLabel, {\n label: label,\n onClick: function onClick() {\n var _fieldProps$onOpenCha;\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha === void 0 ? void 0 : _fieldProps$onOpenCha.call(fieldProps, true);\n setOpen(true);\n },\n style: dayValue ? {\n paddingInlineEnd: 0\n } : undefined,\n disabled: disabled,\n value: dayValue || open ? /*#__PURE__*/_jsx(DatePicker, _objectSpread(_objectSpread({\n picker: picker,\n showTime: showTime,\n format: format,\n ref: ref\n }, fieldProps), {}, {\n value: dayValue,\n onOpenChange: function onOpenChange(isOpen) {\n var _fieldProps$onOpenCha2;\n setOpen(isOpen);\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha2 = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha2 === void 0 ? void 0 : _fieldProps$onOpenCha2.call(fieldProps, isOpen);\n },\n bordered: false,\n open: open\n })) : undefined,\n allowClear: false,\n downIcon: dayValue || open ? false : undefined,\n bordered: bordered,\n ref: lightLabel\n });\n } else {\n _dom = /*#__PURE__*/_jsx(DatePicker, _objectSpread(_objectSpread({\n picker: picker,\n showTime: showTime,\n format: format,\n placeholder: placeholder,\n bordered: plain === undefined ? true : !plain,\n ref: ref\n }, fieldProps), {}, {\n value: dayValue\n }));\n }\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldDatePicker);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { isNil } from '@ant-design/pro-utils';\nimport { InputNumber } from 'antd';\nimport omit from 'omit.js';\nimport React, { useCallback } from 'react';\n// 兼容代码-----------\nimport { useIntl } from '@ant-design/pro-provider';\nimport \"antd/es/input-number/style\";\n//----------------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * 数字组件\n *\n * @param FieldDigitProps {\n * text: number;\n * moneySymbol?: string; }\n */\nvar FieldDigit = function FieldDigit(_ref, ref) {\n var text = _ref.text,\n type = _ref.mode,\n render = _ref.render,\n placeholder = _ref.placeholder,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps;\n var intl = useIntl();\n var placeholderValue = placeholder || intl.getMessage('tableForm.inputPlaceholder', '请输入');\n var proxyChange = useCallback(function (value) {\n var val = value !== null && value !== void 0 ? value : undefined;\n if (!fieldProps.stringMode && typeof val === 'string') {\n val = Number(val);\n }\n if (typeof val === 'number' && !isNil(val) && !isNil(fieldProps.precision)) {\n val = Number(val.toFixed(fieldProps.precision));\n }\n return val;\n }, [fieldProps]);\n if (type === 'read') {\n var _fieldProps$formatter;\n var fractionDigits = {};\n if (fieldProps !== null && fieldProps !== void 0 && fieldProps.precision) {\n fractionDigits = {\n minimumFractionDigits: Number(fieldProps.precision),\n maximumFractionDigits: Number(fieldProps.precision)\n };\n }\n var digit = new Intl.NumberFormat(undefined, _objectSpread(_objectSpread({}, fractionDigits), (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.intlProps) || {})).format(Number(text));\n var dom = /*#__PURE__*/_jsx(\"span\", {\n ref: ref,\n children: (fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$formatter = fieldProps.formatter) === null || _fieldProps$formatter === void 0 ? void 0 : _fieldProps$formatter.call(fieldProps, digit)) || digit\n });\n if (render) {\n return render(text, _objectSpread({\n mode: type\n }, fieldProps), dom);\n }\n return dom;\n }\n if (type === 'edit' || type === 'update') {\n var _dom = /*#__PURE__*/_jsx(InputNumber, _objectSpread(_objectSpread({\n ref: ref,\n min: 0,\n placeholder: placeholderValue\n }, omit(fieldProps, ['onChange', 'onBlur'])), {}, {\n onChange: function onChange(e) {\n var _fieldProps$onChange;\n return fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onChange = fieldProps.onChange) === null || _fieldProps$onChange === void 0 ? void 0 : _fieldProps$onChange.call(fieldProps, proxyChange(e));\n },\n onBlur: function onBlur(e) {\n var _fieldProps$onBlur;\n return fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onBlur = fieldProps.onBlur) === null || _fieldProps$onBlur === void 0 ? void 0 : _fieldProps$onBlur.call(fieldProps, proxyChange(e.target.value));\n }\n }));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: type\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldDigit);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { proTheme, useIntl } from '@ant-design/pro-provider';\nimport { Input, InputNumber, Space } from 'antd';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React from 'react';\n// 兼容代码-----------\nimport \"antd/es/input-number/style\";\n//----------------------\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * 数字范围组件\n *\n * @param FieldDigitRangeProps\n */\nvar FieldDigitRange = function FieldDigitRange(_ref, ref) {\n var text = _ref.text,\n type = _ref.mode,\n render = _ref.render,\n placeholder = _ref.placeholder,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n _ref$separator = _ref.separator,\n separator = _ref$separator === void 0 ? '~' : _ref$separator,\n _ref$separatorWidth = _ref.separatorWidth,\n separatorWidth = _ref$separatorWidth === void 0 ? 30 : _ref$separatorWidth;\n var value = fieldProps.value,\n defaultValue = fieldProps.defaultValue,\n onChange = fieldProps.onChange,\n id = fieldProps.id;\n var intl = useIntl();\n var _proTheme$useToken = proTheme.useToken(),\n token = _proTheme$useToken.token;\n var _useMergedState = useMergedState(function () {\n return defaultValue;\n }, {\n value: value,\n onChange: onChange\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n valuePair = _useMergedState2[0],\n setValuePair = _useMergedState2[1];\n if (type === 'read') {\n var getContent = function getContent(number) {\n var _fieldProps$formatter;\n var digit = new Intl.NumberFormat(undefined, _objectSpread({\n minimumSignificantDigits: 2\n }, (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.intlProps) || {})).format(Number(number));\n return (fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$formatter = fieldProps.formatter) === null || _fieldProps$formatter === void 0 ? void 0 : _fieldProps$formatter.call(fieldProps, digit)) || digit;\n };\n var dom = /*#__PURE__*/_jsxs(\"span\", {\n ref: ref,\n children: [getContent(text[0]), \" \", separator, \" \", getContent(text[1])]\n });\n if (render) {\n return render(text, _objectSpread({\n mode: type\n }, fieldProps), dom);\n }\n return dom;\n }\n if (type === 'edit' || type === 'update') {\n var handleGroupBlur = function handleGroupBlur() {\n if (Array.isArray(valuePair)) {\n // 仅在两个值均为数字时才做比较并转换\n var _valuePair = _slicedToArray(valuePair, 2),\n value0 = _valuePair[0],\n value1 = _valuePair[1];\n if (typeof value0 === 'number' && typeof value1 === 'number' && value0 > value1) {\n setValuePair([value1, value0]);\n } else if (value0 === undefined && value1 === undefined) {\n // 当两个值均为undefined时将值变为undefined,方便required处理\n setValuePair(undefined);\n }\n }\n };\n var handleChange = function handleChange(index, changedValue) {\n var newValuePair = _toConsumableArray(valuePair || []);\n newValuePair[index] = changedValue === null ? undefined : changedValue;\n setValuePair(newValuePair);\n };\n var placeholderValue = (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.placeholder) || placeholder || [intl.getMessage('tableForm.inputPlaceholder', '请输入'), intl.getMessage('tableForm.inputPlaceholder', '请输入')];\n var getInputNumberPlaceholder = function getInputNumberPlaceholder(index) {\n return Array.isArray(placeholderValue) ? placeholderValue[index] : placeholderValue;\n };\n var Compact = Space.Compact || Input.Group;\n var compactProps = !!Space.Compact ? {} : {\n compact: true\n };\n var _dom = /*#__PURE__*/_jsxs(Compact, _objectSpread(_objectSpread({}, compactProps), {}, {\n onBlur: handleGroupBlur,\n children: [/*#__PURE__*/_jsx(InputNumber, _objectSpread(_objectSpread({}, fieldProps), {}, {\n placeholder: getInputNumberPlaceholder(0),\n id: id !== null && id !== void 0 ? id : \"\".concat(id, \"-0\"),\n style: {\n width: \"calc((100% - \".concat(separatorWidth, \"px) / 2)\")\n },\n value: valuePair === null || valuePair === void 0 ? void 0 : valuePair[0],\n defaultValue: defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue[0],\n onChange: function onChange(changedValue) {\n return handleChange(0, changedValue);\n }\n })), /*#__PURE__*/_jsx(Input, {\n style: {\n width: separatorWidth,\n textAlign: 'center',\n borderInlineStart: 0,\n borderInlineEnd: 0,\n pointerEvents: 'none',\n backgroundColor: token === null || token === void 0 ? void 0 : token.colorBgContainer\n },\n placeholder: separator,\n disabled: true\n }), /*#__PURE__*/_jsx(InputNumber, _objectSpread(_objectSpread({}, fieldProps), {}, {\n placeholder: getInputNumberPlaceholder(1),\n id: id !== null && id !== void 0 ? id : \"\".concat(id, \"-1\"),\n style: {\n width: \"calc((100% - \".concat(separatorWidth, \"px) / 2)\"),\n borderInlineStart: 0\n },\n value: valuePair === null || valuePair === void 0 ? void 0 : valuePair[1],\n defaultValue: defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue[1],\n onChange: function onChange(changedValue) {\n return handleChange(1, changedValue);\n }\n }))]\n }));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: type\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldDigitRange);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { parseValueToDay } from '@ant-design/pro-utils';\nimport { DatePicker, Tooltip } from 'antd';\nimport dayjs from 'dayjs';\nimport relativeTime from 'dayjs/plugin/relativeTime';\n// 兼容代码-----------\nimport \"antd/es/date-picker/style\";\nimport React from 'react';\n//----------------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\ndayjs.extend(relativeTime);\n/**\n * 与当前的时间进行比较 http://momentjs.cn/docs/displaying/fromnow.html\n *\n * @param\n */\nvar FieldFromNow = function FieldFromNow(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n format = _ref.format,\n fieldProps = _ref.fieldProps;\n var intl = useIntl();\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(Tooltip, {\n title: dayjs(text).format((fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.format) || format || 'YYYY-MM-DD HH:mm:ss'),\n children: dayjs(text).fromNow()\n });\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n }));\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n });\n }\n if (mode === 'edit' || mode === 'update') {\n var placeholder = intl.getMessage('tableForm.selectPlaceholder', '请选择');\n var momentValue = parseValueToDay(fieldProps.value);\n var _dom = /*#__PURE__*/_jsx(DatePicker, _objectSpread(_objectSpread({\n ref: ref,\n placeholder: placeholder,\n showTime: true\n }, fieldProps), {}, {\n value: momentValue\n }));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldFromNow);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { Image, Input } from 'antd';\nimport React from 'react';\n// 兼容代码-----------\nimport \"antd/es/image/style\";\n//----------------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * 数字组件\n *\n * @param FieldImageProps {\n * text: number;\n * moneySymbol?: string; }\n */\nvar FieldImage = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var text = _ref.text,\n type = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n placeholder = _ref.placeholder,\n width = _ref.width;\n var intl = useIntl();\n var placeholderValue = placeholder || intl.getMessage('tableForm.inputPlaceholder', '请输入');\n if (type === 'read') {\n var dom = /*#__PURE__*/_jsx(Image, _objectSpread({\n ref: ref,\n width: width || 32,\n src: text\n }, fieldProps));\n if (render) {\n return render(text, _objectSpread({\n mode: type\n }, fieldProps), dom);\n }\n return dom;\n }\n if (type === 'edit' || type === 'update') {\n var _dom = /*#__PURE__*/_jsx(Input, _objectSpread({\n ref: ref,\n placeholder: placeholderValue\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: type\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n});\nexport default FieldImage;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle } from '@ant-design/pro-utils';\nimport { ConfigProvider } from 'antd';\nimport classnames from 'classnames';\nimport React, { useContext } from 'react';\n\n/**\n * 默认的 index 列容器,提供一个好看的 index\n *\n * @param param0\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar IndexColumn = function IndexColumn(_ref, ref) {\n var _classnames;\n var _ref$border = _ref.border,\n border = _ref$border === void 0 ? false : _ref$border,\n children = _ref.children;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var className = getPrefixCls('pro-field-index-column');\n\n // css\n var _useStyle = useStyle('IndexColumn', function () {\n return _defineProperty({}, \".\".concat(className), {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '18px',\n height: '18px',\n '&-border': {\n color: '#fff',\n fontSize: '12px',\n lineHeight: '12px',\n backgroundColor: '#314659',\n borderRadius: '9px',\n '&.top-three': {\n backgroundColor: '#979797'\n }\n }\n });\n }),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n return wrapSSR( /*#__PURE__*/_jsx(\"div\", {\n ref: ref,\n className: classnames(className, hashId, (_classnames = {}, _defineProperty(_classnames, \"\".concat(className, \"-border\"), border), _defineProperty(_classnames, 'top-three', children > 3), _classnames)),\n children: children\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(IndexColumn);","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"contentRender\", \"numberFormatOptions\", \"numberPopoverRender\", \"open\"],\n _excluded2 = [\"text\", \"mode\", \"render\", \"renderFormItem\", \"fieldProps\", \"proFieldKey\", \"plain\", \"valueEnum\", \"placeholder\", \"locale\", \"customSymbol\", \"numberFormatOptions\", \"numberPopoverRender\"];\nimport { intlMap as allIntlMap, useIntl } from '@ant-design/pro-provider';\nimport { InputNumber, Popover } from 'antd';\nimport omit from 'omit.js';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { useCallback, useMemo } from 'react';\n// 兼容代码-----------\nimport \"antd/es/input-number/style\";\nimport \"antd/es/popover/style\";\n//----------------------\n\nimport { openVisibleCompatible } from '@ant-design/pro-utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar defaultMoneyIntl = new Intl.NumberFormat('zh-Hans-CN', {\n currency: 'CNY',\n style: 'currency'\n});\nvar enMoneyIntl = {\n style: 'currency',\n currency: 'USD'\n};\nvar ruMoneyIntl = {\n style: 'currency',\n currency: 'RUB'\n};\nvar rsMoneyIntl = {\n style: 'currency',\n currency: 'RSD'\n};\nvar msMoneyIntl = {\n style: 'currency',\n currency: 'MYR'\n};\nvar ptMoneyIntl = {\n style: 'currency',\n currency: 'BRL'\n};\nvar intlMap = {\n default: defaultMoneyIntl,\n 'zh-Hans-CN': {\n currency: 'CNY',\n style: 'currency'\n },\n 'en-US': enMoneyIntl,\n 'ru-RU': ruMoneyIntl,\n 'ms-MY': msMoneyIntl,\n 'sr-RS': rsMoneyIntl,\n 'pt-BR': ptMoneyIntl\n};\n\n/**\n * A function that formats the number.\n * @param {string | false} moneySymbol - The currency symbol, which is the first parameter of the\n * formatMoney function.\n * @param {number | string | undefined} paramsText - The text to be formatted\n * @param {number} precision - number, // decimal places\n * @param {any} [config] - the configuration of the number format, which is the same as the\n * configuration of the number format in the Intl.NumberFormat method.\n * @returns A function that takes in 4 parameters and returns a string.\n */\nvar getTextByLocale = function getTextByLocale(moneySymbol, paramsText, precision, config) {\n var moneyText = paramsText === null || paramsText === void 0 ? void 0 : paramsText.toString().replaceAll(',', '');\n if (typeof moneyText === 'string') {\n var parsedNum = Number(moneyText);\n // 转换数字为NaN时,返回原始值展示\n if (Number.isNaN(parsedNum)) return moneyText;\n moneyText = parsedNum;\n }\n if (!moneyText && moneyText !== 0) return '';\n try {\n // Formatting the number, when readonly moneySymbol = false, unused currency.\n var finalMoneyText = new Intl.NumberFormat(moneySymbol || 'zh-Hans-CN', _objectSpread(_objectSpread({}, intlMap[moneySymbol || 'zh-Hans-CN'] || intlMap['zh-Hans-CN']), {}, {\n maximumFractionDigits: precision\n }, config))\n // fix: #6003 解决未指定货币符号时,金额文本格式化异常问题\n .format(moneyText);\n\n // 是否有金额符号,例如 ¥ $\n var hasMoneySymbol = moneySymbol === false;\n\n /**\n * 首字母判断是否是正负符号\n */\n var _ref = finalMoneyText || '',\n _ref2 = _slicedToArray(_ref, 1),\n operatorSymbol = _ref2[0];\n\n // 兼容正负号\n if (['+', '-'].includes(operatorSymbol)) {\n // 裁剪字符串,有符号截取两位,没有符号截取一位\n return \"\".concat(operatorSymbol).concat(finalMoneyText.substring(hasMoneySymbol ? 2 : 1));\n }\n\n // 没有正负符号截取一位\n return finalMoneyText.substring(hasMoneySymbol ? 1 : 0);\n } catch (error) {\n return moneyText;\n }\n};\n\n// 默认的代码类型\nvar DefaultPrecisionCont = 2;\n\n/**\n * input 的弹框,用于显示格式化之后的内容\n *\n * @result 10,000 -> 一万\n * @result 10, 00, 000, 000 -> 一亿\n */\nvar InputNumberPopover = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {\n var content = _ref3.contentRender,\n numberFormatOptions = _ref3.numberFormatOptions,\n numberPopoverRender = _ref3.numberPopoverRender,\n open = _ref3.open,\n rest = _objectWithoutProperties(_ref3, _excluded);\n var _useMergedState = useMergedState(function () {\n return rest.defaultValue;\n }, {\n value: rest.value,\n onChange: rest.onChange\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n onChange = _useMergedState2[1];\n\n /**\n * 如果content 存在要根据 content 渲染一下\n */\n var dom = content === null || content === void 0 ? void 0 : content(_objectSpread(_objectSpread({}, rest), {}, {\n value: value\n }));\n var props = openVisibleCompatible(dom ? open : false);\n return /*#__PURE__*/_jsx(Popover, _objectSpread(_objectSpread({\n placement: \"topLeft\"\n }, props), {}, {\n trigger: ['focus', 'click'],\n content: dom,\n getPopupContainer: function getPopupContainer(triggerNode) {\n return (triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode.parentElement) || document.body;\n },\n children: /*#__PURE__*/_jsx(InputNumber, _objectSpread(_objectSpread({\n ref: ref\n }, rest), {}, {\n value: value,\n onChange: onChange\n }))\n }));\n});\n\n/**\n * 金额组件\n *\n * @param FieldMoneyProps {\n * text: number;\n * moneySymbol?: string; }\n */\nvar FieldMoney = function FieldMoney(_ref4, ref) {\n var _fieldProps$customSym, _fieldProps$precision;\n var text = _ref4.text,\n type = _ref4.mode,\n render = _ref4.render,\n renderFormItem = _ref4.renderFormItem,\n fieldProps = _ref4.fieldProps,\n proFieldKey = _ref4.proFieldKey,\n plain = _ref4.plain,\n valueEnum = _ref4.valueEnum,\n placeholder = _ref4.placeholder,\n _ref4$locale = _ref4.locale,\n locale = _ref4$locale === void 0 ? (_fieldProps$customSym = fieldProps.customSymbol) !== null && _fieldProps$customSym !== void 0 ? _fieldProps$customSym : 'zh-Hans-CN' : _ref4$locale,\n _ref4$customSymbol = _ref4.customSymbol,\n customSymbol = _ref4$customSymbol === void 0 ? fieldProps.customSymbol : _ref4$customSymbol,\n _ref4$numberFormatOpt = _ref4.numberFormatOptions,\n numberFormatOptions = _ref4$numberFormatOpt === void 0 ? fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.numberFormatOptions : _ref4$numberFormatOpt,\n _ref4$numberPopoverRe = _ref4.numberPopoverRender,\n numberPopoverRender = _ref4$numberPopoverRe === void 0 ? (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.numberPopoverRender) || false : _ref4$numberPopoverRe,\n rest = _objectWithoutProperties(_ref4, _excluded2);\n var precision = (_fieldProps$precision = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.precision) !== null && _fieldProps$precision !== void 0 ? _fieldProps$precision : DefaultPrecisionCont;\n var intl = useIntl();\n // 当手动传入locale时,应该以传入的locale为准,未传入时则根据全局的locale进行国际化\n if (locale && allIntlMap[locale]) {\n intl = allIntlMap[locale];\n }\n var placeholderValue = placeholder || intl.getMessage('tableForm.inputPlaceholder', '请输入');\n\n /**\n * 获取货币的符号\n * 如果 customSymbol 存在直接使用 customSymbol\n * 如果 moneySymbol 为 false,返回空\n * 如果没有配置使用默认的\n */\n var moneySymbol = useMemo(function () {\n if (customSymbol) {\n return customSymbol;\n }\n if (rest.moneySymbol === false || fieldProps.moneySymbol === false) {\n return undefined;\n }\n return intl.getMessage('moneySymbol', '¥');\n }, [customSymbol, fieldProps.moneySymbol, intl, rest.moneySymbol]);\n\n /*\n * A function that formats the number.\n * 1000 -> 1,000\n */\n var getFormateValue = useCallback(function (value) {\n // 新建数字正则,需要配置小数点\n var reg = new RegExp(\"\\\\B(?=(\\\\d{\".concat(3 + Math.max(precision - DefaultPrecisionCont, 0), \"})+(?!\\\\d))\"), 'g');\n // 切分为 整数 和 小数 不同\n var _String$split = String(value).split('.'),\n _String$split2 = _slicedToArray(_String$split, 2),\n intStr = _String$split2[0],\n floatStr = _String$split2[1];\n\n // 最终的数据string,需要去掉 , 号。\n var resultInt = intStr.replace(reg, ',');\n\n // 计算最终的小数点\n var resultFloat = '';\n\n /* Taking the floatStr and slicing it to the precision. */\n if (floatStr && precision > 0) {\n resultFloat = \".\".concat(floatStr.slice(0, precision === undefined ? DefaultPrecisionCont : precision));\n }\n return \"\".concat(resultInt).concat(resultFloat);\n }, [precision]);\n\n // 如果是阅读模式,直接返回字符串\n if (type === 'read') {\n var dom = /*#__PURE__*/_jsx(\"span\", {\n ref: ref,\n children: getTextByLocale(moneySymbol ? locale : false, text, precision, numberFormatOptions !== null && numberFormatOptions !== void 0 ? numberFormatOptions : fieldProps.numberFormatOptions)\n });\n if (render) {\n return render(text, _objectSpread({\n mode: type\n }, fieldProps), dom);\n }\n return dom;\n }\n if (type === 'edit' || type === 'update') {\n var _dom = /*#__PURE__*/_jsx(InputNumberPopover, _objectSpread(_objectSpread({\n contentRender: function contentRender(props) {\n if (numberPopoverRender === false) return null;\n if (!props.value) return null;\n var localeText = getTextByLocale(moneySymbol ? locale : false, \"\".concat(getFormateValue(props.value)), precision, _objectSpread(_objectSpread({}, numberFormatOptions), {}, {\n notation: 'compact'\n }));\n if (typeof numberPopoverRender === 'function') {\n return numberPopoverRender === null || numberPopoverRender === void 0 ? void 0 : numberPopoverRender(props, localeText);\n }\n return localeText;\n },\n ref: ref,\n precision: precision\n // 删除默认min={0},允许输入一个负数的金额,用户可自行配置min来限制是否允许小于0的金额\n ,\n formatter: function formatter(value) {\n if (value && moneySymbol) {\n return \"\".concat(moneySymbol, \" \").concat(getFormateValue(value));\n }\n return value === null || value === void 0 ? void 0 : value.toString();\n },\n parser: function parser(value) {\n if (moneySymbol && value) {\n return value.replace(new RegExp(\"\\\\\".concat(moneySymbol, \"\\\\s?|(,*)\"), 'g'), '');\n }\n return value;\n },\n placeholder: placeholderValue\n }, omit(fieldProps, ['numberFormatOptions', 'precision', 'numberPopoverRender', 'customSymbol', 'moneySymbol', 'visible', 'open'])), {}, {\n onBlur: fieldProps.onBlur ? function (e) {\n var _fieldProps$onBlur;\n var value = e.target.value;\n if (moneySymbol && value) {\n value = value.replace(new RegExp(\"\\\\\".concat(moneySymbol, \"\\\\s?|(,*)\"), 'g'), '');\n }\n (_fieldProps$onBlur = fieldProps.onBlur) === null || _fieldProps$onBlur === void 0 ? void 0 : _fieldProps$onBlur.call(fieldProps, value);\n } : undefined\n }));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: type\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldMoney);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { ConfigProvider } from 'antd';\nimport React, { useContext, useImperativeHandle } from 'react';\n// 兼容代码-----------\nimport { proTheme } from '@ant-design/pro-provider';\nimport \"antd/es/space/style\";\n//----------------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nvar addArrayKeys = function addArrayKeys(doms) {\n return doms.map(function (dom, index) {\n var _dom$props;\n if (! /*#__PURE__*/React.isValidElement(dom)) {\n // eslint-disable-next-line react/no-array-index-key\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: dom\n }, index);\n }\n return /*#__PURE__*/React.cloneElement(dom, _objectSpread(_objectSpread({\n // eslint-disable-next-line react/no-array-index-key\n key: index\n }, dom === null || dom === void 0 ? void 0 : dom.props), {}, {\n style: _objectSpread({\n flex: 1\n }, dom === null || dom === void 0 ? void 0 : (_dom$props = dom.props) === null || _dom$props === void 0 ? void 0 : _dom$props.style)\n }));\n });\n};\n\n/**\n * 一般用于放多个按钮\n *\n * @param\n */\nvar FieldOptions = function FieldOptions(_ref, ref) {\n var text = _ref.text,\n type = _ref.mode,\n render = _ref.render,\n fieldProps = _ref.fieldProps;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var className = getPrefixCls('pro-field-option');\n var _proTheme$useToken = proTheme.useToken(),\n token = _proTheme$useToken.token;\n useImperativeHandle(ref, function () {\n return {};\n });\n if (render) {\n var doms = render(text, _objectSpread({\n mode: type\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {}));\n if (!doms || (doms === null || doms === void 0 ? void 0 : doms.length) < 1 || !Array.isArray(doms)) {\n return null;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n style: {\n display: 'flex',\n gap: token.margin,\n alignItems: 'center'\n },\n className: className,\n children: addArrayKeys(doms)\n });\n }\n if (!text || !Array.isArray(text)) {\n if (! /*#__PURE__*/React.isValidElement(text)) {\n return null;\n }\n return text;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n style: {\n display: 'flex',\n gap: token.margin,\n alignItems: 'center'\n },\n className: className,\n children: addArrayKeys(text)\n });\n};\nexport default /*#__PURE__*/React.forwardRef(FieldOptions);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"text\", \"mode\", \"render\", \"renderFormItem\", \"fieldProps\", \"proFieldKey\"];\nimport { EyeInvisibleOutlined, EyeOutlined } from '@ant-design/icons';\nimport { useIntl } from '@ant-design/pro-provider';\nimport { Input, Space } from 'antd';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React from 'react';\n// 兼容代码-----------\nimport \"antd/es/input/style\";\nimport \"antd/es/space/style\";\n//----------------------\n\n/**\n * 最基本的组件,就是个普通的 Input.Password\n *\n * @param\n */\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar FieldPassword = function FieldPassword(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n proFieldKey = _ref.proFieldKey,\n rest = _objectWithoutProperties(_ref, _excluded);\n var intl = useIntl();\n var _useMergedState = useMergedState(function () {\n return rest.open || rest.visible || false;\n }, {\n value: rest.open || rest.visible,\n onChange: rest.onOpenChange || rest.onVisible\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n open = _useMergedState2[0],\n setOpen = _useMergedState2[1];\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(_Fragment, {\n children: \"-\"\n });\n if (text) {\n dom = /*#__PURE__*/_jsxs(Space, {\n children: [/*#__PURE__*/_jsx(\"span\", {\n ref: ref,\n children: open ? text : '* * * * *'\n }), /*#__PURE__*/_jsx(\"a\", {\n onClick: function onClick() {\n return setOpen(!open);\n },\n children: open ? /*#__PURE__*/_jsx(EyeOutlined, {}) : /*#__PURE__*/_jsx(EyeInvisibleOutlined, {})\n })]\n });\n }\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), dom);\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom = /*#__PURE__*/_jsx(Input.Password, _objectSpread({\n placeholder: intl.getMessage('tableForm.inputPlaceholder', '请输入'),\n ref: ref\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldPassword);","/** 获取展示符号 */\nexport function getSymbolByRealValue(realValue) {\n if (realValue === 0) {\n return null;\n }\n if (realValue > 0) {\n return '+';\n }\n return '-';\n}\n\n/** 获取颜色 */\nexport function getColorByRealValue(realValue) {\n if (realValue === 0) {\n return '#595959';\n }\n return realValue > 0 ? '#ff4d4f' : '#52c41a';\n}\n\n/** 获取到最后展示的数字 */\nexport function getRealTextWithPrecision(realValue) {\n var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n return precision >= 0 ? realValue === null || realValue === void 0 ? void 0 : realValue.toFixed(precision) : realValue;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { InputNumber } from 'antd';\nimport toNumber from 'lodash.tonumber';\nimport React, { Fragment, useMemo } from 'react';\nimport { getColorByRealValue, getRealTextWithPrecision, getSymbolByRealValue } from \"./util\";\n\n// 兼容代码-----------\nimport \"antd/es/input-number/style\";\n//------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * 百分比组件\n *\n * @param PercentPropInt\n */\nvar FieldPercent = function FieldPercent(_ref, ref) {\n var text = _ref.text,\n prefix = _ref.prefix,\n precision = _ref.precision,\n _ref$suffix = _ref.suffix,\n suffix = _ref$suffix === void 0 ? '%' : _ref$suffix,\n mode = _ref.mode,\n _ref$showColor = _ref.showColor,\n showColor = _ref$showColor === void 0 ? false : _ref$showColor,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n placeholder = _ref.placeholder,\n propsShowSymbol = _ref.showSymbol;\n var intl = useIntl();\n var placeholderValue = placeholder || intl.getMessage('tableForm.inputPlaceholder', '请输入');\n var realValue = useMemo(function () {\n return typeof text === 'string' && text.includes('%') ? toNumber(text.replace('%', '')) : toNumber(text);\n }, [text]);\n var showSymbol = useMemo(function () {\n if (typeof propsShowSymbol === 'function') {\n return propsShowSymbol === null || propsShowSymbol === void 0 ? void 0 : propsShowSymbol(text);\n }\n return propsShowSymbol;\n }, [propsShowSymbol, text]);\n if (mode === 'read') {\n /** 颜色有待确定, 根据提供 colors: ['正', '负'] | boolean */\n var style = showColor ? {\n color: getColorByRealValue(realValue)\n } : {};\n var dom = /*#__PURE__*/_jsxs(\"span\", {\n style: style,\n ref: ref,\n children: [prefix && /*#__PURE__*/_jsx(\"span\", {\n children: prefix\n }), showSymbol && /*#__PURE__*/_jsxs(Fragment, {\n children: [getSymbolByRealValue(realValue), \" \"]\n }), getRealTextWithPrecision(Math.abs(realValue), precision), suffix && suffix]\n });\n if (render) {\n return render(text, _objectSpread(_objectSpread({\n mode: mode\n }, fieldProps), {}, {\n prefix: prefix,\n precision: precision,\n showSymbol: showSymbol,\n suffix: suffix\n }), dom);\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom = /*#__PURE__*/_jsx(InputNumber, _objectSpread({\n ref: ref,\n formatter: function formatter(value) {\n if (value && prefix) {\n return \"\".concat(prefix, \" \").concat(value).replace(/\\B(?=(\\d{3})+(?!\\d)$)/g, ',');\n }\n return value;\n },\n parser: function parser(value) {\n return value ? value.replace(/.*\\s|,/g, '') : '';\n },\n placeholder: placeholderValue\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldPercent);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { InputNumber, Progress } from 'antd';\nimport toNumber from 'lodash.tonumber';\nimport React, { useMemo } from 'react';\n// 兼容代码-----------\nimport \"antd/es/input-number/style\";\nimport \"antd/es/progress/style\";\n//------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function getProgressStatus(text) {\n if (text === 100) {\n return 'success';\n }\n if (text < 0) {\n return 'exception';\n }\n if (text < 100) {\n return 'active';\n }\n return 'normal';\n}\n\n/**\n * 进度条组件\n *\n * @param\n */\nvar FieldProgress = function FieldProgress(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n plain = _ref.plain,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n placeholder = _ref.placeholder;\n var intl = useIntl();\n var placeholderValue = placeholder || intl.getMessage('tableForm.inputPlaceholder', '请输入');\n var realValue = useMemo(function () {\n return typeof text === 'string' && text.includes('%') ? toNumber(text.replace('%', '')) : toNumber(text);\n }, [text]);\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(Progress, _objectSpread({\n ref: ref,\n size: \"small\",\n style: {\n minWidth: 100,\n maxWidth: 320\n },\n percent: realValue,\n steps: plain ? 10 : undefined,\n status: getProgressStatus(realValue)\n }, fieldProps));\n if (render) {\n return render(realValue, _objectSpread({\n mode: mode\n }, fieldProps), dom);\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom = /*#__PURE__*/_jsx(InputNumber, _objectSpread({\n ref: ref,\n placeholder: placeholderValue\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldProgress);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"radioType\", \"renderFormItem\", \"mode\", \"render\"];\nimport { useStyle } from '@ant-design/pro-utils';\nimport { ConfigProvider, Form, Radio, Spin } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext, useImperativeHandle, useRef } from 'react';\nimport { ObjToMap, proFieldParsingText, useFieldFetchData } from \"../Select\";\n\n// 兼容代码-----------\nimport \"antd/es/radio/style\";\n//------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\n/**\n * 单选组件\n *\n * @param param0\n * @param ref\n */\nvar FieldRadio = function FieldRadio(_ref, ref) {\n var _Form$Item, _Form$Item$useStatus;\n var radioType = _ref.radioType,\n renderFormItem = _ref.renderFormItem,\n mode = _ref.mode,\n render = _ref.render,\n rest = _objectWithoutProperties(_ref, _excluded);\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var layoutClassName = getPrefixCls('pro-field-radio');\n var _useFieldFetchData = useFieldFetchData(rest),\n _useFieldFetchData2 = _slicedToArray(_useFieldFetchData, 3),\n loading = _useFieldFetchData2[0],\n options = _useFieldFetchData2[1],\n _fetchData = _useFieldFetchData2[2];\n var radioRef = useRef();\n var status = (_Form$Item = Form.Item) === null || _Form$Item === void 0 ? void 0 : (_Form$Item$useStatus = _Form$Item.useStatus) === null || _Form$Item$useStatus === void 0 ? void 0 : _Form$Item$useStatus.call(_Form$Item);\n useImperativeHandle(ref, function () {\n return _objectSpread(_objectSpread({}, radioRef.current || {}), {}, {\n fetchData: function fetchData(keyWord) {\n return _fetchData(keyWord);\n }\n });\n }, [_fetchData]);\n\n // css\n var _useStyle = useStyle('FieldRadioRadio', function (token) {\n var _ref2;\n return _ref2 = {}, _defineProperty(_ref2, \".\".concat(layoutClassName, \"-error\"), {\n span: {\n color: token.colorError\n }\n }), _defineProperty(_ref2, \".\".concat(layoutClassName, \"-warning\"), {\n span: {\n color: token.colorWarning\n }\n }), _defineProperty(_ref2, \".\".concat(layoutClassName, \"-vertical\"), _defineProperty({}, \"\".concat(token.antCls, \"-radio-wrapper\"), {\n display: 'flex',\n marginInlineEnd: 0\n })), _ref2;\n }),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n if (loading) {\n return /*#__PURE__*/_jsx(Spin, {\n size: \"small\"\n });\n }\n if (mode === 'read') {\n var optionsValueEnum = options !== null && options !== void 0 && options.length ? options === null || options === void 0 ? void 0 : options.reduce(function (pre, cur) {\n var _ref3;\n return _objectSpread(_objectSpread({}, pre), {}, _defineProperty({}, (_ref3 = cur.value) !== null && _ref3 !== void 0 ? _ref3 : '', cur.label));\n }, {}) : undefined;\n var dom = /*#__PURE__*/_jsx(_Fragment, {\n children: proFieldParsingText(rest.text, ObjToMap(rest.valueEnum || optionsValueEnum))\n });\n if (render) {\n var _render;\n return (_render = render(rest.text, _objectSpread({\n mode: mode\n }, rest.fieldProps), dom)) !== null && _render !== void 0 ? _render : null;\n }\n return dom;\n }\n if (mode === 'edit') {\n var _rest$fieldProps, _classNames;\n var _dom = wrapSSR( /*#__PURE__*/_jsx(Radio.Group, _objectSpread(_objectSpread({\n ref: radioRef,\n optionType: radioType\n }, rest.fieldProps), {}, {\n className: classNames((_rest$fieldProps = rest.fieldProps) === null || _rest$fieldProps === void 0 ? void 0 : _rest$fieldProps.className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(layoutClassName, \"-error\"), (status === null || status === void 0 ? void 0 : status.status) === 'error'), _defineProperty(_classNames, \"\".concat(layoutClassName, \"-warning\"), (status === null || status === void 0 ? void 0 : status.status) === 'warning'), _classNames), hashId, \"\".concat(layoutClassName, \"-\").concat(rest.fieldProps.layout || 'horizontal')),\n options: options\n })));\n if (renderFormItem) {\n var _renderFormItem;\n return (_renderFormItem = renderFormItem(rest.text, _objectSpread(_objectSpread({\n mode: mode\n }, rest.fieldProps), {}, {\n options: options,\n loading: loading\n }), _dom)) !== null && _renderFormItem !== void 0 ? _renderFormItem : null;\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldRadio);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { FieldLabel, parseValueToDay } from '@ant-design/pro-utils';\nimport { DatePicker } from 'antd';\nimport dayjs from 'dayjs';\nimport React, { useCallback } from 'react';\n// 兼容代码-----------\nimport \"antd/es/date-picker/style\";\n//------------\n\n/**\n * 日期范围选择组件\n *\n * @param\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar FieldRangePicker = function FieldRangePicker(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n light = _ref.light,\n label = _ref.label,\n format = _ref.format,\n render = _ref.render,\n picker = _ref.picker,\n renderFormItem = _ref.renderFormItem,\n plain = _ref.plain,\n showTime = _ref.showTime,\n lightLabel = _ref.lightLabel,\n bordered = _ref.bordered,\n fieldProps = _ref.fieldProps;\n var intl = useIntl();\n var _ref2 = Array.isArray(text) ? text : [],\n _ref3 = _slicedToArray(_ref2, 2),\n startText = _ref3[0],\n endText = _ref3[1];\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n open = _React$useState2[0],\n setOpen = _React$useState2[1];\n // antd 改了一下 交互,这里要兼容一下,不然会导致无法选中第二个数据\n var genFormatText = useCallback(function (formatValue) {\n if (typeof (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.format) === 'function') {\n var _fieldProps$format;\n return fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$format = fieldProps.format) === null || _fieldProps$format === void 0 ? void 0 : _fieldProps$format.call(fieldProps, formatValue);\n }\n return (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.format) || format || 'YYYY-MM-DD';\n }, [fieldProps, format]);\n // activePickerIndex for https://github.com/ant-design/ant-design/issues/22158\n var parsedStartText = startText ? dayjs(startText).format(genFormatText(dayjs(startText))) : '';\n var parsedEndText = endText ? dayjs(endText).format(genFormatText(dayjs(endText))) : '';\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n children: [/*#__PURE__*/_jsx(\"div\", {\n children: parsedStartText || '-'\n }), /*#__PURE__*/_jsx(\"div\", {\n children: parsedEndText || '-'\n })]\n });\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(\"span\", {\n children: dom\n }));\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var dayValue = parseValueToDay(fieldProps.value);\n var _dom;\n if (light) {\n var _fieldProps$placehold;\n _dom = /*#__PURE__*/_jsx(FieldLabel, {\n label: label,\n onClick: function onClick() {\n var _fieldProps$onOpenCha;\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha === void 0 ? void 0 : _fieldProps$onOpenCha.call(fieldProps, true);\n setOpen(true);\n },\n style: dayValue ? {\n paddingInlineEnd: 0\n } : undefined,\n disabled: fieldProps.disabled,\n value: dayValue || open ? /*#__PURE__*/_jsx(DatePicker.RangePicker, _objectSpread(_objectSpread({\n picker: picker,\n showTime: showTime,\n format: format,\n bordered: false\n }, fieldProps), {}, {\n placeholder: (_fieldProps$placehold = fieldProps.placeholder) !== null && _fieldProps$placehold !== void 0 ? _fieldProps$placehold : [intl.getMessage('tableForm.selectPlaceholder', '请选择'), intl.getMessage('tableForm.selectPlaceholder', '请选择')],\n onClear: function onClear() {\n var _fieldProps$onClear;\n setOpen(false);\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onClear = fieldProps.onClear) === null || _fieldProps$onClear === void 0 ? void 0 : _fieldProps$onClear.call(fieldProps);\n },\n value: dayValue,\n onOpenChange: function onOpenChange(isOpen) {\n var _fieldProps$onOpenCha2;\n if (dayValue) setOpen(isOpen);\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha2 = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha2 === void 0 ? void 0 : _fieldProps$onOpenCha2.call(fieldProps, isOpen);\n }\n })) : null,\n allowClear: false,\n bordered: bordered,\n ref: lightLabel,\n downIcon: dayValue || open ? false : undefined\n });\n } else {\n _dom = /*#__PURE__*/_jsx(DatePicker.RangePicker, _objectSpread(_objectSpread({\n ref: ref,\n format: format,\n showTime: showTime,\n placeholder: [intl.getMessage('tableForm.selectPlaceholder', '请选择'), intl.getMessage('tableForm.selectPlaceholder', '请选择')],\n bordered: plain === undefined ? true : false\n }, fieldProps), {}, {\n value: dayValue\n }));\n }\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldRangePicker);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { Rate } from 'antd';\nimport React from 'react';\n// 兼容代码-----------\nimport \"antd/es/rate/style\";\n//------------\n\n/**\n * 评分组件\n *\n * @param\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nvar FieldRate = function FieldRate(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps;\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(Rate, _objectSpread(_objectSpread({\n allowHalf: true,\n disabled: true,\n ref: ref\n }, fieldProps), {}, {\n value: text\n }));\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n }));\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom = /*#__PURE__*/_jsx(Rate, _objectSpread({\n allowHalf: true,\n ref: ref\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldRate);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { InputNumber } from 'antd';\nimport React from 'react';\n// 兼容代码-----------\nimport \"antd/es/input-number/style\";\n//------------\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * 格式化秒\n *\n * @param result\n * @returns {string}\n */\nexport function formatSecond(result) {\n var formatText = '';\n var d = Math.floor(result / (3600 * 24));\n var h = Math.floor(result / 3600);\n var m = Math.floor(result / 60 % 60);\n var s = Math.floor(result % 60);\n formatText = \"\".concat(s, \"\\u79D2\");\n if (m > 0) {\n formatText = \"\".concat(m, \"\\u5206\\u949F\").concat(formatText);\n }\n if (h > 0) {\n formatText = \"\".concat(h, \"\\u5C0F\\u65F6\").concat(formatText);\n }\n if (d > 0) {\n formatText = \"\".concat(d, \"\\u5929\").concat(formatText);\n }\n return formatText;\n}\n\n/**\n * 格式化秒\n *\n * @param FieldSecond\n */\nvar Second = function Second(_ref, ref) {\n var text = _ref.text,\n type = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n placeholder = _ref.placeholder;\n var intl = useIntl();\n var placeholderValue = placeholder || intl.getMessage('tableForm.inputPlaceholder', '请输入');\n if (type === 'read') {\n var secondText = formatSecond(Number(text));\n var dom = /*#__PURE__*/_jsx(\"span\", {\n ref: ref,\n children: secondText\n });\n if (render) {\n return render(text, _objectSpread({\n mode: type\n }, fieldProps), dom);\n }\n return dom;\n }\n if (type === 'edit' || type === 'update') {\n var _dom = /*#__PURE__*/_jsx(InputNumber, _objectSpread({\n ref: ref,\n min: 0,\n style: {\n width: '100%'\n },\n placeholder: placeholderValue\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: type\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(Second);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"mode\", \"render\", \"renderFormItem\", \"fieldProps\", \"emptyText\"];\nimport { Segmented, Spin } from 'antd';\nimport omit from 'omit.js';\nimport React, { useImperativeHandle, useRef } from 'react';\nimport { ObjToMap, proFieldParsingText, useFieldFetchData } from \"../Select\";\nimport \"antd/es/segmented/style\";\nimport \"antd/es/spin/style\";\n\n/**\n * Segmented https://ant.design/components/segmented-cn/\n *\n * @param\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nvar FieldSegmented = function FieldSegmented(_ref, ref) {\n var mode = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n _ref$emptyText = _ref.emptyText,\n emptyText = _ref$emptyText === void 0 ? '-' : _ref$emptyText,\n rest = _objectWithoutProperties(_ref, _excluded);\n var inputRef = useRef();\n var _useFieldFetchData = useFieldFetchData(rest),\n _useFieldFetchData2 = _slicedToArray(_useFieldFetchData, 3),\n loading = _useFieldFetchData2[0],\n options = _useFieldFetchData2[1],\n _fetchData = _useFieldFetchData2[2];\n useImperativeHandle(ref, function () {\n return _objectSpread(_objectSpread({}, inputRef.current || {}), {}, {\n fetchData: function fetchData(keyWord) {\n return _fetchData(keyWord);\n }\n });\n }, [_fetchData]);\n if (loading) {\n return /*#__PURE__*/_jsx(Spin, {\n size: \"small\"\n });\n }\n if (mode === 'read') {\n var optionsValueEnum = options !== null && options !== void 0 && options.length ? options === null || options === void 0 ? void 0 : options.reduce(function (pre, cur) {\n var _ref2;\n return _objectSpread(_objectSpread({}, pre), {}, _defineProperty({}, (_ref2 = cur.value) !== null && _ref2 !== void 0 ? _ref2 : '', cur.label));\n }, {}) : undefined;\n var dom = /*#__PURE__*/_jsx(_Fragment, {\n children: proFieldParsingText(rest.text, ObjToMap(rest.valueEnum || optionsValueEnum))\n });\n if (render) {\n var _render;\n return (_render = render(rest.text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n }))) !== null && _render !== void 0 ? _render : emptyText;\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom = /*#__PURE__*/_jsx(Segmented, _objectSpread(_objectSpread({\n ref: inputRef\n }, omit(fieldProps || {}, ['allowClear'])), {}, {\n options: options\n }));\n if (renderFormItem) {\n return renderFormItem(rest.text, _objectSpread(_objectSpread({\n mode: mode\n }, fieldProps), {}, {\n options: options,\n loading: loading\n }), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldSegmented);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { Slider } from 'antd';\nimport React from 'react';\n// 兼容代码-----------\nimport \"antd/es/slider/style\";\n//------------\n/**\n * 评分组件\n *\n * @param\n */\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar FieldSlider = function FieldSlider(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps;\n if (mode === 'read') {\n var dom = text;\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n }));\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n });\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom = /*#__PURE__*/_jsx(Slider, _objectSpread(_objectSpread({\n ref: ref\n }, fieldProps), {}, {\n style: _objectSpread({\n minWidth: 120\n }, fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.style)\n }));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldSlider);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { Switch } from 'antd';\nimport Omit from 'omit.js';\nimport React, { useMemo } from 'react';\n// 兼容代码-----------\nimport { FieldLabel } from '@ant-design/pro-utils';\nimport \"antd/es/switch/style\";\n//------------\n\n/**\n * 评分组件\n *\n * @param\n */\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar FieldSwitch = function FieldSwitch(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n light = _ref.light,\n label = _ref.label,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps;\n var intl = useIntl();\n var dom = useMemo(function () {\n var _fieldProps$checkedCh, _fieldProps$unChecked;\n if (text === undefined || text === null || \"\".concat(text).length < 1) return '-';\n return text ? (_fieldProps$checkedCh = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.checkedChildren) !== null && _fieldProps$checkedCh !== void 0 ? _fieldProps$checkedCh : intl.getMessage('switch.open', '打开') : (_fieldProps$unChecked = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.unCheckedChildren) !== null && _fieldProps$unChecked !== void 0 ? _fieldProps$unChecked : intl.getMessage('switch.close', '关闭');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.checkedChildren, fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.unCheckedChildren, text]);\n if (mode === 'read') {\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: dom\n }));\n }\n return dom !== null && dom !== void 0 ? dom : '-';\n }\n if (mode === 'edit' || mode === 'update') {\n var _fieldProps$checked;\n var editDom = /*#__PURE__*/_jsx(Switch, _objectSpread(_objectSpread({\n ref: ref,\n size: light ? 'small' : undefined\n }, Omit(fieldProps, ['value'])), {}, {\n checked: (_fieldProps$checked = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.checked) !== null && _fieldProps$checked !== void 0 ? _fieldProps$checked : fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.value\n }));\n if (light) {\n var disabled = fieldProps.disabled,\n bordered = fieldProps.bordered;\n return /*#__PURE__*/_jsx(FieldLabel, {\n label: label,\n disabled: disabled,\n bordered: bordered,\n downIcon: false,\n value: /*#__PURE__*/_jsx(\"div\", {\n style: {\n paddingLeft: 8\n },\n children: editDom\n }),\n allowClear: false\n });\n }\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), editDom);\n }\n return editDom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldSwitch);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { Input } from 'antd';\nimport React, { useEffect, useImperativeHandle, useRef } from 'react';\n// 兼容代码-----------\nimport \"antd/es/input/style\";\n//------------\n\n/**\n * 最基本的组件,就是个普通的 Input\n *\n * @param\n */\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar FieldText = function FieldText(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n fieldProps = _ref.fieldProps,\n _ref$emptyText = _ref.emptyText,\n emptyText = _ref$emptyText === void 0 ? '-' : _ref$emptyText;\n var _ref2 = fieldProps || {},\n autoFocus = _ref2.autoFocus,\n _ref2$prefix = _ref2.prefix,\n prefix = _ref2$prefix === void 0 ? '' : _ref2$prefix,\n _ref2$suffix = _ref2.suffix,\n suffix = _ref2$suffix === void 0 ? '' : _ref2$suffix;\n var intl = useIntl();\n var inputRef = useRef();\n useImperativeHandle(ref, function () {\n return inputRef.current;\n }, []);\n useEffect(function () {\n if (autoFocus) {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n }\n }, [autoFocus]);\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsxs(_Fragment, {\n children: [prefix, text !== null && text !== void 0 ? text : emptyText, suffix]\n });\n if (render) {\n var _render;\n return (_render = render(text, _objectSpread({\n mode: mode\n }, fieldProps), dom)) !== null && _render !== void 0 ? _render : emptyText;\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var placeholder = intl.getMessage('tableForm.inputPlaceholder', '请输入');\n var _dom = /*#__PURE__*/_jsx(Input, _objectSpread({\n ref: inputRef,\n placeholder: placeholder,\n allowClear: true\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldText);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle } from '@ant-design/pro-utils';\nimport { ConfigProvider } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\n// 兼容代码-----------\nimport \"antd/es/input/style\";\n//------------\n\n/**\n * Input.TextArea 只读模式时渲染的组件\n *\n * @param\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar FieldTextAreaReadonly = function FieldTextAreaReadonly(_ref, ref) {\n var text = _ref.text;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var readonlyClassName = getPrefixCls('pro-field-readonly');\n var compClassName = \"\".concat(readonlyClassName, \"-textarea\");\n var _useStyle = useStyle('TextArea', function () {\n return _defineProperty({}, \".\".concat(compClassName), {\n display: 'inline-block',\n // padding: '4px 11px',\n lineHeight: '1.5715',\n maxWidth: '100%',\n whiteSpace: 'pre-wrap'\n });\n }),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n return wrapSSR( /*#__PURE__*/_jsx(\"span\", {\n ref: ref,\n className: classNames(hashId, readonlyClassName, compClassName),\n style: {},\n children: text !== null && text !== void 0 ? text : '-'\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(FieldTextAreaReadonly);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { Input } from 'antd';\nimport React from 'react';\nimport FieldTextAreaReadonly from \"./readonly\";\n\n// 兼容代码-----------\nimport \"antd/es/input/style\";\n//------------\n/**\n * 最基本的组件,就是个普通的 Input.TextArea\n *\n * @param\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar FieldTextArea = function FieldTextArea(props, ref) {\n var text = props.text,\n mode = props.mode,\n render = props.render,\n renderFormItem = props.renderFormItem,\n fieldProps = props.fieldProps;\n var intl = useIntl();\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(FieldTextAreaReadonly, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref\n }));\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), dom);\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom = /*#__PURE__*/_jsx(Input.TextArea, _objectSpread({\n ref: ref,\n rows: 3,\n onKeyPress: function onKeyPress(e) {\n if (e.key === 'Enter') e.stopPropagation();\n },\n placeholder: intl.getMessage('tableForm.inputPlaceholder', '请输入')\n }, fieldProps));\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldTextArea);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useIntl } from '@ant-design/pro-provider';\nimport { FieldLabel, parseValueToDay } from '@ant-design/pro-utils';\nimport { DatePicker, TimePicker } from 'antd';\nimport dayjs from 'dayjs';\nimport React, { useState } from 'react';\n// 兼容代码-----------\nimport \"antd/es/date-picker/style\";\n//----------------------;\n\n/**\n * 时间选择组件\n *\n * @param\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar FieldTimePicker = function FieldTimePicker(_ref, ref) {\n var text = _ref.text,\n mode = _ref.mode,\n light = _ref.light,\n label = _ref.label,\n format = _ref.format,\n render = _ref.render,\n renderFormItem = _ref.renderFormItem,\n plain = _ref.plain,\n fieldProps = _ref.fieldProps,\n lightLabel = _ref.lightLabel;\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n var intl = useIntl();\n var finalFormat = (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.format) || format || 'HH:mm:ss';\n var isNumberOrMoment = dayjs.isDayjs(text) || typeof text === 'number';\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(\"span\", {\n ref: ref,\n children: text ? dayjs(text, isNumberOrMoment ? undefined : finalFormat).format(finalFormat) : '-'\n });\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(\"span\", {\n children: dom\n }));\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var _dom;\n var disabled = fieldProps.disabled,\n value = fieldProps.value;\n var dayValue = parseValueToDay(value, finalFormat);\n if (light) {\n var _fieldProps$placehold;\n _dom = /*#__PURE__*/_jsx(FieldLabel, {\n onClick: function onClick() {\n var _fieldProps$onOpenCha;\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha === void 0 ? void 0 : _fieldProps$onOpenCha.call(fieldProps, true);\n setOpen(true);\n },\n style: dayValue ? {\n paddingInlineEnd: 0\n } : undefined,\n label: label,\n disabled: disabled,\n value: dayValue || open ? /*#__PURE__*/_jsx(TimePicker, _objectSpread(_objectSpread({\n bordered: false,\n format: format,\n ref: ref\n }, fieldProps), {}, {\n placeholder: (_fieldProps$placehold = fieldProps.placeholder) !== null && _fieldProps$placehold !== void 0 ? _fieldProps$placehold : intl.getMessage('tableForm.selectPlaceholder', '请选择'),\n value: dayValue,\n onOpenChange: function onOpenChange(isOpen) {\n var _fieldProps$onOpenCha2;\n setOpen(isOpen);\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha2 = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha2 === void 0 ? void 0 : _fieldProps$onOpenCha2.call(fieldProps, isOpen);\n },\n open: open\n })) : null,\n downIcon: dayValue || open ? false : undefined,\n allowClear: false,\n ref: lightLabel\n });\n } else {\n _dom = /*#__PURE__*/_jsx(DatePicker.TimePicker, _objectSpread(_objectSpread({\n ref: ref,\n format: format,\n bordered: plain === undefined ? true : !plain\n }, fieldProps), {}, {\n value: dayValue\n }));\n }\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom);\n }\n return _dom;\n }\n return null;\n};\n\n/**\n * 时间区间选择\n *\n * @param param0\n * @param ref\n */\nvar FieldTimeRangePickerComponents = function FieldTimeRangePickerComponents(_ref2, ref) {\n var text = _ref2.text,\n light = _ref2.light,\n label = _ref2.label,\n mode = _ref2.mode,\n lightLabel = _ref2.lightLabel,\n format = _ref2.format,\n render = _ref2.render,\n renderFormItem = _ref2.renderFormItem,\n plain = _ref2.plain,\n fieldProps = _ref2.fieldProps;\n var intl = useIntl();\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n open = _useState4[0],\n setOpen = _useState4[1];\n var finalFormat = (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.format) || format || 'HH:mm:ss';\n var _ref3 = Array.isArray(text) ? text : [],\n _ref4 = _slicedToArray(_ref3, 2),\n startText = _ref4[0],\n endText = _ref4[1];\n var startTextIsNumberOrMoment = dayjs.isDayjs(startText) || typeof startText === 'number';\n var endTextIsNumberOrMoment = dayjs.isDayjs(endText) || typeof endText === 'number';\n var parsedStartText = startText ? dayjs(startText, startTextIsNumberOrMoment ? undefined : finalFormat).format(finalFormat) : '';\n var parsedEndText = endText ? dayjs(endText, endTextIsNumberOrMoment ? undefined : finalFormat).format(finalFormat) : '';\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n children: [/*#__PURE__*/_jsx(\"div\", {\n children: parsedStartText || '-'\n }), /*#__PURE__*/_jsx(\"div\", {\n children: parsedEndText || '-'\n })]\n });\n if (render) {\n return render(text, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(\"span\", {\n children: dom\n }));\n }\n return dom;\n }\n if (mode === 'edit' || mode === 'update') {\n var dayValue = parseValueToDay(fieldProps.value, finalFormat);\n var _dom2;\n if (light) {\n var disabled = fieldProps.disabled,\n _fieldProps$placehold2 = fieldProps.placeholder,\n placeholder = _fieldProps$placehold2 === void 0 ? [intl.getMessage('tableForm.selectPlaceholder', '请选择'), intl.getMessage('tableForm.selectPlaceholder', '请选择')] : _fieldProps$placehold2;\n _dom2 = /*#__PURE__*/_jsx(FieldLabel, {\n onClick: function onClick() {\n var _fieldProps$onOpenCha3;\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha3 = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha3 === void 0 ? void 0 : _fieldProps$onOpenCha3.call(fieldProps, true);\n setOpen(true);\n },\n style: dayValue ? {\n paddingInlineEnd: 0\n } : undefined,\n label: label,\n disabled: disabled,\n placeholder: placeholder,\n value: dayValue || open ? /*#__PURE__*/_jsx(TimePicker.RangePicker, _objectSpread(_objectSpread({\n bordered: false,\n format: format,\n ref: ref\n }, fieldProps), {}, {\n placeholder: placeholder,\n value: dayValue,\n onOpenChange: function onOpenChange(isOpen) {\n var _fieldProps$onOpenCha4;\n setOpen(isOpen);\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onOpenCha4 = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha4 === void 0 ? void 0 : _fieldProps$onOpenCha4.call(fieldProps, isOpen);\n },\n open: open\n })) : null,\n downIcon: dayValue || open ? false : undefined,\n allowClear: false,\n ref: lightLabel\n });\n } else {\n _dom2 = /*#__PURE__*/_jsx(TimePicker.RangePicker, _objectSpread(_objectSpread({\n ref: ref,\n format: format,\n bordered: plain === undefined ? true : !plain\n }, fieldProps), {}, {\n value: dayValue\n }));\n }\n if (renderFormItem) {\n return renderFormItem(text, _objectSpread({\n mode: mode\n }, fieldProps), _dom2);\n }\n return _dom2;\n }\n return null;\n};\nvar FieldTimeRangePicker = /*#__PURE__*/React.forwardRef(FieldTimeRangePickerComponents);\nexport { FieldTimeRangePicker };\nexport default /*#__PURE__*/React.forwardRef(FieldTimePicker);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"radioType\", \"renderFormItem\", \"mode\", \"light\", \"label\", \"render\"],\n _excluded2 = [\"onSearch\", \"onClear\", \"onChange\", \"onBlur\", \"showSearch\", \"autoClearSearchValue\", \"treeData\", \"fetchDataOnSearch\", \"searchValue\"];\nimport { useIntl } from '@ant-design/pro-provider';\nimport { FieldLabel } from '@ant-design/pro-utils';\nimport { ConfigProvider, Spin, TreeSelect } from 'antd';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { useContext, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { ObjToMap, proFieldParsingText, useFieldFetchData } from \"../Select\";\n\n// 兼容代码-----------\nimport \"antd/es/spin/style\";\nimport \"antd/es/tree-select/style\";\n//----------------------\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Tree select\n * A function that returns a React component.\n * @param ref\n */\nvar FieldTreeSelect = function FieldTreeSelect(_ref, ref) {\n var radioType = _ref.radioType,\n renderFormItem = _ref.renderFormItem,\n mode = _ref.mode,\n light = _ref.light,\n label = _ref.label,\n render = _ref.render,\n rest = _objectWithoutProperties(_ref, _excluded);\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var layoutClassName = getPrefixCls('pro-field-tree-select');\n var treeSelectRef = useRef(null);\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n var _ref2 = rest.fieldProps,\n onSearch = _ref2.onSearch,\n _onClear = _ref2.onClear,\n propsOnChange = _ref2.onChange,\n _onBlur = _ref2.onBlur,\n showSearch = _ref2.showSearch,\n autoClearSearchValue = _ref2.autoClearSearchValue,\n treeData = _ref2.treeData,\n fetchDataOnSearch = _ref2.fetchDataOnSearch,\n propsSearchValue = _ref2.searchValue,\n fieldProps = _objectWithoutProperties(_ref2, _excluded2);\n var intl = useIntl();\n var _useFieldFetchData = useFieldFetchData(_objectSpread(_objectSpread({}, rest), {}, {\n defaultKeyWords: propsSearchValue\n })),\n _useFieldFetchData2 = _slicedToArray(_useFieldFetchData, 3),\n loading = _useFieldFetchData2[0],\n options = _useFieldFetchData2[1],\n _fetchData = _useFieldFetchData2[2];\n var _useMergedState = useMergedState(undefined, {\n onChange: onSearch,\n value: propsSearchValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n searchValue = _useMergedState2[0],\n setSearchValue = _useMergedState2[1];\n useImperativeHandle(ref, function () {\n return _objectSpread(_objectSpread({}, treeSelectRef.current || {}), {}, {\n fetchData: function fetchData(keyWord) {\n return _fetchData(keyWord);\n }\n });\n });\n var optionsValueEnum = useMemo(function () {\n if (mode !== 'read') return;\n /**\n * Support TreeSelect fieldNames\n * @see https://ant.design/components/tree-select-cn\n */\n var _ref3 = (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.fieldNames) || {},\n _ref3$value = _ref3.value,\n valuePropsName = _ref3$value === void 0 ? 'value' : _ref3$value,\n _ref3$label = _ref3.label,\n labelPropsName = _ref3$label === void 0 ? 'label' : _ref3$label,\n _ref3$children = _ref3.children,\n childrenPropsName = _ref3$children === void 0 ? 'children' : _ref3$children;\n var valuesMap = new Map();\n var traverseOptions = function traverseOptions(_options) {\n if (!(_options !== null && _options !== void 0 && _options.length)) {\n return valuesMap;\n }\n var length = _options.length;\n var i = 0;\n while (i < length) {\n var cur = _options[i++];\n valuesMap.set(cur[valuePropsName], cur[labelPropsName]);\n traverseOptions(cur[childrenPropsName]);\n }\n return valuesMap;\n };\n return traverseOptions(options);\n }, [fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.fieldNames, mode, options]);\n var onChange = function onChange(value, optionList, extra) {\n // 将搜索框置空 和 antd 行为保持一致\n if (showSearch && autoClearSearchValue) {\n _fetchData(undefined);\n setSearchValue(undefined);\n }\n propsOnChange === null || propsOnChange === void 0 ? void 0 : propsOnChange(value, optionList, extra);\n };\n if (mode === 'read') {\n var dom = /*#__PURE__*/_jsx(_Fragment, {\n children: proFieldParsingText(rest.text, ObjToMap(rest.valueEnum || optionsValueEnum))\n });\n if (render) {\n var _render;\n return (_render = render(rest.text, _objectSpread({\n mode: mode\n }, fieldProps), dom)) !== null && _render !== void 0 ? _render : null;\n }\n return dom;\n }\n if (mode === 'edit') {\n var _fieldProps$value;\n var valuesLength = Array.isArray(fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.value) ? fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$value = fieldProps.value) === null || _fieldProps$value === void 0 ? void 0 : _fieldProps$value.length : 0;\n var _dom = /*#__PURE__*/_jsx(Spin, {\n spinning: loading,\n children: /*#__PURE__*/_jsx(TreeSelect, _objectSpread(_objectSpread({\n open: open,\n onDropdownVisibleChange: function onDropdownVisibleChange(isOpen) {\n var _fieldProps$onDropdow;\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onDropdow = fieldProps.onDropdownVisibleChange) === null || _fieldProps$onDropdow === void 0 ? void 0 : _fieldProps$onDropdow.call(fieldProps, isOpen);\n setOpen(isOpen);\n },\n ref: treeSelectRef,\n popupMatchSelectWidth: !light,\n placeholder: intl.getMessage('tableForm.selectPlaceholder', '请选择'),\n tagRender: light ? function (item) {\n var _fieldProps$value2;\n if (valuesLength < 2) return /*#__PURE__*/_jsx(_Fragment, {\n children: item.label\n });\n /**\n * 性能不好,等我给 antd 提个issue\n */\n var itemIndex = fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$value2 = fieldProps.value) === null || _fieldProps$value2 === void 0 ? void 0 : _fieldProps$value2.findIndex(function (v) {\n return v === item.value || v.value === item.value;\n });\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [item.label, \" \", itemIndex < valuesLength - 1 ? ',' : '']\n });\n } : undefined\n }, fieldProps), {}, {\n bordered: !light,\n treeData: options,\n showSearch: showSearch,\n style: _objectSpread({\n minWidth: 60\n }, fieldProps.style),\n allowClear: fieldProps.allowClear !== false,\n searchValue: searchValue,\n autoClearSearchValue: autoClearSearchValue,\n onClear: function onClear() {\n _onClear === null || _onClear === void 0 ? void 0 : _onClear();\n _fetchData(undefined);\n if (showSearch) {\n setSearchValue(undefined);\n }\n },\n onChange: onChange,\n onSearch: function onSearch(value) {\n // fix 不支持请求的情况下不刷新options\n if (fetchDataOnSearch && rest !== null && rest !== void 0 && rest.request) {\n _fetchData(value);\n }\n setSearchValue(value);\n },\n onBlur: function onBlur(event) {\n setSearchValue(undefined);\n _fetchData(undefined);\n _onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(event);\n },\n className: classNames(fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.className, layoutClassName)\n }))\n });\n if (renderFormItem) {\n var _renderFormItem;\n _dom = (_renderFormItem = renderFormItem(rest.text, _objectSpread(_objectSpread({\n mode: mode\n }, fieldProps), {}, {\n options: options,\n loading: loading\n }), _dom)) !== null && _renderFormItem !== void 0 ? _renderFormItem : null;\n }\n if (light) {\n var _fieldProps$value3;\n var disabled = fieldProps.disabled,\n placeholder = fieldProps.placeholder;\n var notEmpty = !!fieldProps.value && ((_fieldProps$value3 = fieldProps.value) === null || _fieldProps$value3 === void 0 ? void 0 : _fieldProps$value3.length) !== 0;\n return /*#__PURE__*/_jsx(FieldLabel, {\n label: label,\n disabled: disabled,\n placeholder: placeholder,\n onClick: function onClick() {\n var _fieldProps$onDropdow2;\n setOpen(true);\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onDropdow2 = fieldProps.onDropdownVisibleChange) === null || _fieldProps$onDropdow2 === void 0 ? void 0 : _fieldProps$onDropdow2.call(fieldProps, true);\n },\n bordered: rest.bordered,\n value: notEmpty || open ? _dom : null,\n style: notEmpty ? {\n paddingInlineEnd: 0\n } : undefined,\n allowClear: false,\n downIcon: false\n });\n }\n return _dom;\n }\n return null;\n};\nexport default /*#__PURE__*/React.forwardRef(FieldTreeSelect);","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport React, { useCallback, useRef, useState } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nfunction FieldHOC(props) {\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n labelTrigger = _useState2[0],\n setLabelTrigger = _useState2[1];\n var lightLabel = useRef(null);\n\n // 是label且不是label里面的clear图标触发事件\n var isTriggeredByLabel = useCallback(function (e) {\n var _lightLabel$current, _lightLabel$current$l, _lightLabel$current$l2, _lightLabel$current2, _lightLabel$current2$, _lightLabel$current2$2;\n // 两条语句结果分别命名,可读性好点\n var isLabelMouseDown = (_lightLabel$current = lightLabel.current) === null || _lightLabel$current === void 0 ? void 0 : (_lightLabel$current$l = _lightLabel$current.labelRef) === null || _lightLabel$current$l === void 0 ? void 0 : (_lightLabel$current$l2 = _lightLabel$current$l.current) === null || _lightLabel$current$l2 === void 0 ? void 0 : _lightLabel$current$l2.contains(e.target);\n var isClearMouseDown = (_lightLabel$current2 = lightLabel.current) === null || _lightLabel$current2 === void 0 ? void 0 : (_lightLabel$current2$ = _lightLabel$current2.clearRef) === null || _lightLabel$current2$ === void 0 ? void 0 : (_lightLabel$current2$2 = _lightLabel$current2$.current) === null || _lightLabel$current2$2 === void 0 ? void 0 : _lightLabel$current2$2.contains(e.target);\n return isLabelMouseDown && !isClearMouseDown;\n }, [lightLabel]);\n var handleMouseDown = function handleMouseDown(e) {\n if (isTriggeredByLabel(e)) {\n setLabelTrigger(true);\n }\n };\n var handleMouseUp = function handleMouseUp() {\n setLabelTrigger(false);\n };\n if (props.isLight) {\n return /*#__PURE__*/_jsx(\"div\", {\n onMouseDown: handleMouseDown,\n onMouseUp: handleMouseUp,\n children: /*#__PURE__*/React.cloneElement(props.children, {\n labelTrigger: labelTrigger,\n lightLabel: lightLabel\n })\n });\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: props.children\n });\n}\nexport default FieldHOC;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"fieldProps\"],\n _excluded2 = [\"fieldProps\"],\n _excluded3 = [\"fieldProps\"],\n _excluded4 = [\"fieldProps\"],\n _excluded5 = [\"text\", \"valueType\", \"mode\", \"onChange\", \"renderFormItem\", \"value\", \"readonly\", \"fieldProps\"],\n _excluded6 = [\"placeholder\"];\nimport ProConfigContext from '@ant-design/pro-provider';\nimport { omitUndefined, pickProProps, useRefFunction } from '@ant-design/pro-utils';\nimport { Avatar } from 'antd';\nimport { noteOnce } from \"rc-util/es/warning\";\nimport React, { useContext, useMemo } from 'react';\nimport FieldCascader from \"./components/Cascader\";\nimport FieldCheckbox from \"./components/Checkbox\";\nimport FieldCode from \"./components/Code\";\nimport FieldColorPicker from \"./components/ColorPicker\";\nimport FieldDatePicker from \"./components/DatePicker\";\nimport FieldDigit from \"./components/Digit\";\nimport FieldDigitRange from \"./components/DigitRange\";\nimport FieldFromNow from \"./components/FromNow\";\nimport FieldImage from \"./components/Image\";\nimport FieldIndexColumn from \"./components/IndexColumn\";\nimport FieldMoney from \"./components/Money\";\nimport FieldOptions from \"./components/Options\";\nimport FieldPassword from \"./components/Password\";\nimport FieldPercent from \"./components/Percent\";\nimport FieldProgress from \"./components/Progress\";\nimport FieldRadio from \"./components/Radio\";\nimport FieldRangePicker from \"./components/RangePicker\";\nimport FieldRate from \"./components/Rate\";\nimport FieldSecond from \"./components/Second\";\nimport FieldSegmented from \"./components/Segmented\";\nimport FieldSelect, { proFieldParsingText, proFieldParsingValueEnumToArray } from \"./components/Select\";\nimport FieldSlider from \"./components/Slider\";\nimport FieldStatus from \"./components/Status\";\nimport FieldSwitch from \"./components/Switch\";\nimport FieldText from \"./components/Text\";\nimport FieldTextArea from \"./components/TextArea\";\nimport FieldTimePicker, { FieldTimeRangePicker } from \"./components/TimePicker\";\nimport FieldTreeSelect from \"./components/TreeSelect\";\nimport FieldHOC from \"./FieldHOC\";\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport isoWeek from 'dayjs/plugin/isoWeek';\nimport localeData from 'dayjs/plugin/localeData';\nimport weekday from 'dayjs/plugin/weekday';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport dayjs from 'dayjs';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\ndayjs.extend(localeData);\ndayjs.extend(advancedFormat);\ndayjs.extend(isoWeek);\ndayjs.extend(weekOfYear);\ndayjs.extend(weekday);\nvar REQUEST_VALUE_TYPE = ['select', 'radio', 'radioButton', 'checkbook'];\n\n/** 默认的 Field 需要实现的功能 */ // eslint-disable-next-line @typescript-eslint/ban-types\n/** 轻量筛选的field属性 */\n/** Value type by function */\n/**\n * Render valueType object\n *\n * @param text String | number\n * @param valueType ProColumnsValueObjectType\n */\nvar defaultRenderTextByObject = function defaultRenderTextByObject(text, valueType, props) {\n var pickFormItemProps = pickProProps(props.fieldProps);\n if (valueType.type === 'progress') {\n return /*#__PURE__*/_jsx(FieldProgress, _objectSpread(_objectSpread({}, props), {}, {\n text: text,\n fieldProps: _objectSpread({\n status: valueType.status ? valueType.status : undefined\n }, pickFormItemProps)\n }));\n }\n if (valueType.type === 'money') {\n return /*#__PURE__*/_jsx(FieldMoney, _objectSpread(_objectSpread({\n locale: valueType.locale\n }, props), {}, {\n fieldProps: pickFormItemProps,\n text: text,\n moneySymbol: valueType.moneySymbol\n }));\n }\n if (valueType.type === 'percent') {\n return /*#__PURE__*/_jsx(FieldPercent, _objectSpread(_objectSpread({}, props), {}, {\n text: text,\n showSymbol: valueType.showSymbol,\n precision: valueType.precision,\n fieldProps: pickFormItemProps,\n showColor: valueType.showColor\n }));\n }\n if (valueType.type === 'image') {\n return /*#__PURE__*/_jsx(FieldImage, _objectSpread(_objectSpread({}, props), {}, {\n text: text,\n width: valueType.width\n }));\n }\n return text;\n};\n\n/**\n * 根据不同的类型来转化数值\n *\n * @param dataValue\n * @param valueType\n */\nvar defaultRenderText = function defaultRenderText(dataValue, valueType, props, valueTypeMap) {\n var _props$fieldProps;\n var _props$mode = props.mode,\n mode = _props$mode === void 0 ? 'read' : _props$mode,\n _props$emptyText = props.emptyText,\n emptyText = _props$emptyText === void 0 ? '-' : _props$emptyText;\n if (emptyText !== false && mode === 'read' && valueType !== 'option' && valueType !== 'switch') {\n if (typeof dataValue !== 'boolean' && typeof dataValue !== 'number' && !dataValue) {\n var fieldProps = props.fieldProps,\n render = props.render;\n if (render) {\n return render(dataValue, _objectSpread({\n mode: mode\n }, fieldProps), /*#__PURE__*/_jsx(_Fragment, {\n children: emptyText\n }));\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: emptyText\n });\n }\n }\n\n // eslint-disable-next-line no-param-reassign\n delete props.emptyText;\n if (_typeof(valueType) === 'object') {\n return defaultRenderTextByObject(dataValue, valueType, props);\n }\n var customValueTypeConfig = valueTypeMap && valueTypeMap[valueType];\n if (customValueTypeConfig) {\n // eslint-disable-next-line no-param-reassign\n delete props.ref;\n if (mode === 'read') {\n var _customValueTypeConfi;\n return (_customValueTypeConfi = customValueTypeConfig.render) === null || _customValueTypeConfi === void 0 ? void 0 : _customValueTypeConfi.call(customValueTypeConfig, dataValue, _objectSpread(_objectSpread({\n text: dataValue\n }, props), {}, {\n mode: mode || 'read'\n }), /*#__PURE__*/_jsx(_Fragment, {\n children: dataValue\n }));\n }\n if (mode === 'update' || mode === 'edit') {\n var _customValueTypeConfi2;\n return (_customValueTypeConfi2 = customValueTypeConfig.renderFormItem) === null || _customValueTypeConfi2 === void 0 ? void 0 : _customValueTypeConfi2.call(customValueTypeConfig, dataValue, _objectSpread({\n text: dataValue\n }, props), /*#__PURE__*/_jsx(_Fragment, {\n children: dataValue\n }));\n }\n }\n var needValueEnum = REQUEST_VALUE_TYPE.includes(valueType);\n var hasValueEnum = !!(props.valueEnum || props.request || props.options || (_props$fieldProps = props.fieldProps) !== null && _props$fieldProps !== void 0 && _props$fieldProps.options);\n noteOnce(!needValueEnum || hasValueEnum, \"\\u5982\\u679C\\u8BBE\\u7F6E\\u4E86 valueType \\u4E3A \".concat(REQUEST_VALUE_TYPE.join(','), \"\\u4E2D\\u4EFB\\u610F\\u4E00\\u4E2A\\uFF0C\\u5219\\u9700\\u8981\\u914D\\u7F6Eoptions\\uFF0Crequest, valueEnum \\u5176\\u4E2D\\u4E4B\\u4E00\\uFF0C\\u5426\\u5219\\u65E0\\u6CD5\\u751F\\u6210\\u9009\\u9879\\u3002\"));\n noteOnce(!needValueEnum || hasValueEnum, \"If you set valueType to any of \".concat(REQUEST_VALUE_TYPE.join(','), \", you need to configure options, request or valueEnum.\"));\n\n /** 如果是金额的值 */\n if (valueType === 'money') {\n return /*#__PURE__*/_jsx(FieldMoney, _objectSpread(_objectSpread({}, props), {}, {\n text: dataValue\n }));\n }\n\n /** 如果是日期的值 */\n if (valueType === 'date') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldDatePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-MM-DD\"\n }, props))\n });\n }\n\n /** 如果是周的值 */\n if (valueType === 'dateWeek') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldDatePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-wo\",\n picker: \"week\"\n }, props))\n });\n }\n\n /** 如果是周范围的值 */\n if (valueType === 'dateWeekRange') {\n var _fieldProps = props.fieldProps,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldRangePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-W\",\n showTime: true,\n fieldProps: _objectSpread({\n picker: 'week'\n }, _fieldProps)\n }, otherProps))\n });\n }\n\n /** 如果是月范围的值 */\n if (valueType === 'dateMonthRange') {\n var _fieldProps2 = props.fieldProps,\n _otherProps = _objectWithoutProperties(props, _excluded2);\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldRangePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-MM\",\n showTime: true,\n fieldProps: _objectSpread({\n picker: 'month'\n }, _fieldProps2)\n }, _otherProps))\n });\n }\n\n /** 如果是季范围的值 */\n if (valueType === 'dateQuarterRange') {\n var _fieldProps3 = props.fieldProps,\n _otherProps2 = _objectWithoutProperties(props, _excluded3);\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldRangePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-Q\",\n showTime: true,\n fieldProps: _objectSpread({\n picker: 'quarter'\n }, _fieldProps3)\n }, _otherProps2))\n });\n }\n\n /** 如果是年范围的值 */\n if (valueType === 'dateYearRange') {\n var _fieldProps4 = props.fieldProps,\n _otherProps3 = _objectWithoutProperties(props, _excluded4);\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldRangePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY\",\n showTime: true,\n fieldProps: _objectSpread({\n picker: 'year'\n }, _fieldProps4)\n }, _otherProps3))\n });\n }\n\n /** 如果是月的值 */\n if (valueType === 'dateMonth') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldDatePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-MM\",\n picker: \"month\"\n }, props))\n });\n }\n\n /** 如果是季度的值 */\n if (valueType === 'dateQuarter') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldDatePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-[Q]Q\",\n picker: \"quarter\"\n }, props))\n });\n }\n\n /** 如果是年的值 */\n if (valueType === 'dateYear') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldDatePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY\",\n picker: \"year\"\n }, props))\n });\n }\n\n /** 如果是日期范围的值 */\n if (valueType === 'dateRange') {\n return /*#__PURE__*/_jsx(FieldRangePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-MM-DD\"\n }, props));\n }\n\n /** 如果是日期加时间类型的值 */\n if (valueType === 'dateTime') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldDatePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-MM-DD HH:mm:ss\",\n showTime: true\n }, props))\n });\n }\n\n /** 如果是日期加时间类型的值的值 */\n if (valueType === 'dateTimeRange') {\n // 值不存在的时候显示 \"-\"\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldRangePicker, _objectSpread({\n text: dataValue,\n format: \"YYYY-MM-DD HH:mm:ss\",\n showTime: true\n }, props))\n });\n }\n\n /** 如果是时间类型的值 */\n if (valueType === 'time') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldTimePicker, _objectSpread({\n text: dataValue,\n format: \"HH:mm:ss\"\n }, props))\n });\n }\n\n /** 如果是时间类型的值 */\n if (valueType === 'timeRange') {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldTimeRangePicker, _objectSpread({\n text: dataValue,\n format: \"HH:mm:ss\"\n }, props))\n });\n }\n if (valueType === 'fromNow') {\n return /*#__PURE__*/_jsx(FieldFromNow, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'index') {\n return /*#__PURE__*/_jsx(FieldIndexColumn, {\n children: dataValue + 1\n });\n }\n if (valueType === 'indexBorder') {\n return /*#__PURE__*/_jsx(FieldIndexColumn, {\n border: true,\n children: dataValue + 1\n });\n }\n if (valueType === 'progress') {\n return /*#__PURE__*/_jsx(FieldProgress, _objectSpread(_objectSpread({}, props), {}, {\n text: dataValue\n }));\n }\n /** 百分比, 默认展示符号, 不展示小数位 */\n if (valueType === 'percent') {\n return /*#__PURE__*/_jsx(FieldPercent, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'avatar' && typeof dataValue === 'string' && props.mode === 'read') {\n return /*#__PURE__*/_jsx(Avatar, {\n src: dataValue,\n size: 22,\n shape: \"circle\"\n });\n }\n if (valueType === 'code') {\n return /*#__PURE__*/_jsx(FieldCode, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'jsonCode') {\n return /*#__PURE__*/_jsx(FieldCode, _objectSpread({\n text: dataValue,\n language: \"json\"\n }, props));\n }\n if (valueType === 'textarea') {\n return /*#__PURE__*/_jsx(FieldTextArea, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'digit') {\n return /*#__PURE__*/_jsx(FieldDigit, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'digitRange') {\n return /*#__PURE__*/_jsx(FieldDigitRange, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'second') {\n return /*#__PURE__*/_jsx(FieldSecond, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'select' || valueType === 'text' && (props.valueEnum || props.request)) {\n return /*#__PURE__*/_jsx(FieldHOC, {\n isLight: props.light,\n children: /*#__PURE__*/_jsx(FieldSelect, _objectSpread({\n text: dataValue\n }, props))\n });\n }\n if (valueType === 'checkbox') {\n return /*#__PURE__*/_jsx(FieldCheckbox, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'radio') {\n return /*#__PURE__*/_jsx(FieldRadio, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'radioButton') {\n return /*#__PURE__*/_jsx(FieldRadio, _objectSpread({\n radioType: \"button\",\n text: dataValue\n }, props));\n }\n if (valueType === 'rate') {\n return /*#__PURE__*/_jsx(FieldRate, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'slider') {\n return /*#__PURE__*/_jsx(FieldSlider, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'switch') {\n return /*#__PURE__*/_jsx(FieldSwitch, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'option') {\n return /*#__PURE__*/_jsx(FieldOptions, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'password') {\n return /*#__PURE__*/_jsx(FieldPassword, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'image') {\n return /*#__PURE__*/_jsx(FieldImage, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'cascader') {\n return /*#__PURE__*/_jsx(FieldCascader, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'treeSelect') {\n return /*#__PURE__*/_jsx(FieldTreeSelect, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'color') {\n return /*#__PURE__*/_jsx(FieldColorPicker, _objectSpread({\n text: dataValue\n }, props));\n }\n if (valueType === 'segmented') {\n return /*#__PURE__*/_jsx(FieldSegmented, _objectSpread({\n text: dataValue\n }, props));\n }\n return /*#__PURE__*/_jsx(FieldText, _objectSpread({\n text: dataValue\n }, props));\n};\nexport { defaultRenderText };\nexport { FieldPercent, FieldIndexColumn, FieldProgress, FieldMoney, FieldDatePicker, FieldRangePicker, FieldCode, FieldTimePicker, FieldText, FieldStatus, FieldSelect, proFieldParsingText, proFieldParsingValueEnumToArray };\n\n/** ProField 的类型 */\n\nvar ProFieldComponent = function ProFieldComponent(_ref, ref) {\n var text = _ref.text,\n _ref$valueType = _ref.valueType,\n valueType = _ref$valueType === void 0 ? 'text' : _ref$valueType,\n _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? 'read' : _ref$mode,\n onChange = _ref.onChange,\n renderFormItem = _ref.renderFormItem,\n value = _ref.value,\n readonly = _ref.readonly,\n restFieldProps = _ref.fieldProps,\n rest = _objectWithoutProperties(_ref, _excluded5);\n var context = useContext(ProConfigContext);\n var onChangeCallBack = useRefFunction(function () {\n var _restFieldProps$onCha;\n for (var _len = arguments.length, restParams = new Array(_len), _key = 0; _key < _len; _key++) {\n restParams[_key] = arguments[_key];\n }\n restFieldProps === null || restFieldProps === void 0 ? void 0 : (_restFieldProps$onCha = restFieldProps.onChange) === null || _restFieldProps$onCha === void 0 ? void 0 : _restFieldProps$onCha.call.apply(_restFieldProps$onCha, [restFieldProps].concat(restParams));\n onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, restParams);\n });\n var fieldProps = useMemo(function () {\n return (value !== undefined || restFieldProps) && _objectSpread(_objectSpread({\n value: value\n }, omitUndefined(restFieldProps)), {}, {\n onChange: onChangeCallBack\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, restFieldProps, onChangeCallBack]);\n var renderedDom = useMemo(function () {\n var _ref2, _fieldProps$value, _ref3, _rest$placeholder, _rest$placeholder2;\n return defaultRenderText(mode === 'edit' ? (_ref2 = (_fieldProps$value = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.value) !== null && _fieldProps$value !== void 0 ? _fieldProps$value : text) !== null && _ref2 !== void 0 ? _ref2 : '' : (_ref3 = text !== null && text !== void 0 ? text : fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.value) !== null && _ref3 !== void 0 ? _ref3 : '', valueType || 'text', omitUndefined(_objectSpread(_objectSpread({\n ref: ref\n }, rest), {}, {\n mode: readonly ? 'read' : mode,\n renderFormItem: renderFormItem ? function (curText, props, dom) {\n var _placeholder = props.placeholder,\n restProps = _objectWithoutProperties(props, _excluded6);\n var newDom = renderFormItem(curText, restProps, dom);\n // renderFormItem 之后的dom可能没有props,这里会帮忙注入一下\n if ( /*#__PURE__*/React.isValidElement(newDom)) return /*#__PURE__*/React.cloneElement(newDom, _objectSpread(_objectSpread({}, fieldProps), newDom.props || {}));\n return newDom;\n } : undefined,\n placeholder: renderFormItem ? undefined : (_rest$placeholder = rest === null || rest === void 0 ? void 0 : rest.placeholder) !== null && _rest$placeholder !== void 0 ? _rest$placeholder : fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.placeholder,\n fieldProps: pickProProps(omitUndefined(_objectSpread(_objectSpread({}, fieldProps), {}, {\n placeholder: renderFormItem ? undefined : (_rest$placeholder2 = rest === null || rest === void 0 ? void 0 : rest.placeholder) !== null && _rest$placeholder2 !== void 0 ? _rest$placeholder2 : fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.placeholder\n })))\n })), context.valueTypeMap || {});\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [context.valueTypeMap, fieldProps, mode, readonly, ref, renderFormItem, rest, text, valueType]);\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: renderedDom\n });\n};\nexport var ProField = /*#__PURE__*/React.forwardRef(ProFieldComponent);\nexport default ProField;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"fieldProps\", \"children\", \"labelCol\", \"label\", \"autoFocus\", \"isDefaultDom\", \"render\", \"proFieldProps\", \"renderFormItem\", \"valueType\", \"initialValue\", \"onChange\", \"valueEnum\", \"params\", \"name\", \"dependenciesValues\", \"cacheForSwr\", \"valuePropName\"];\nimport ProField from '@ant-design/pro-field';\nimport { isDeepEqualReact, runFunction, useRefFunction } from '@ant-design/pro-utils';\nimport React, { memo, useContext, useMemo } from 'react';\nimport { createField } from \"../../BaseForm/createField\";\nimport { EditOrReadOnlyContext } from \"../../BaseForm/EditOrReadOnlyContext\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar BaseProFormField = function BaseProFormField(props) {\n var fieldProps = props.fieldProps,\n children = props.children,\n labelCol = props.labelCol,\n label = props.label,\n autoFocus = props.autoFocus,\n isDefaultDom = props.isDefaultDom,\n render = props.render,\n proFieldProps = props.proFieldProps,\n renderFormItem = props.renderFormItem,\n valueType = props.valueType,\n initialValue = props.initialValue,\n _onChange = props.onChange,\n valueEnum = props.valueEnum,\n params = props.params,\n name = props.name,\n dependenciesValues = props.dependenciesValues,\n _props$cacheForSwr = props.cacheForSwr,\n cacheForSwr = _props$cacheForSwr === void 0 ? false : _props$cacheForSwr,\n _props$valuePropName = props.valuePropName,\n valuePropName = _props$valuePropName === void 0 ? 'value' : _props$valuePropName,\n restProps = _objectWithoutProperties(props, _excluded);\n var modeContext = useContext(EditOrReadOnlyContext);\n var propsParams = useMemo(function () {\n // 使用dependencies时 dependenciesValues是有值的\n // 此时如果存在request,注入dependenciesValues\n return dependenciesValues && restProps.request ? _objectSpread(_objectSpread({}, params), dependenciesValues || {}) : params;\n }, [dependenciesValues, params, restProps.request]);\n var memoUnChange = useRefFunction(function () {\n if (fieldProps !== null && fieldProps !== void 0 && fieldProps.onChange) {\n var _fieldProps$onChange;\n for (var _len = arguments.length, restParams = new Array(_len), _key = 0; _key < _len; _key++) {\n restParams[_key] = arguments[_key];\n }\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onChange = fieldProps.onChange) === null || _fieldProps$onChange === void 0 ? void 0 : _fieldProps$onChange.call.apply(_fieldProps$onChange, [fieldProps].concat(restParams));\n return;\n }\n });\n var memoFieldProps = useMemo(function () {\n return _objectSpread(_objectSpread({\n autoFocus: autoFocus\n }, fieldProps), {}, {\n onChange: memoUnChange\n });\n }, [autoFocus, fieldProps, memoUnChange]);\n var childrenRender = useMemo(function () {\n // 防止 formItem 的值被吃掉\n if (children) {\n if ( /*#__PURE__*/React.isValidElement(children)) {\n return /*#__PURE__*/React.cloneElement(children, _objectSpread(_objectSpread({}, restProps), {}, {\n onChange: function onChange() {\n for (var _len2 = arguments.length, restParams = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restParams[_key2] = arguments[_key2];\n }\n if (fieldProps !== null && fieldProps !== void 0 && fieldProps.onChange) {\n var _fieldProps$onChange2;\n fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$onChange2 = fieldProps.onChange) === null || _fieldProps$onChange2 === void 0 ? void 0 : _fieldProps$onChange2.call.apply(_fieldProps$onChange2, [fieldProps].concat(restParams));\n return;\n }\n _onChange === null || _onChange === void 0 ? void 0 : _onChange.apply(void 0, restParams);\n }\n }, children.props));\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: children\n });\n }\n return;\n }, [children, fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.onChange, _onChange, restProps]);\n if (childrenRender) {\n return childrenRender;\n }\n return /*#__PURE__*/_jsx(ProField, _objectSpread(_objectSpread(_objectSpread({\n text: fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps[valuePropName],\n render: render,\n renderFormItem: renderFormItem,\n valueType: valueType || 'text',\n cacheForSwr: cacheForSwr,\n fieldProps: memoFieldProps,\n valueEnum: runFunction(valueEnum)\n }, proFieldProps), restProps), {}, {\n mode: (proFieldProps === null || proFieldProps === void 0 ? void 0 : proFieldProps.mode) || modeContext.mode || 'edit',\n params: propsParams\n }));\n};\nvar ProFormField = createField( /*#__PURE__*/memo(BaseProFormField, function (prevProps, nextProps) {\n return isDeepEqualReact(nextProps, prevProps, ['onChange', 'onBlur']);\n}));\nexport default ProFormField;","export var isDropdownValueType = function isDropdownValueType(valueType) {\n var isDropdown = false;\n if (typeof valueType === 'string' && valueType.startsWith('date') && !valueType.endsWith('Range') || valueType === 'select' || valueType === 'time') {\n isDropdown = true;\n }\n return isDropdown;\n};","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport dayjs from 'dayjs';\n/**\n * 通过 format 来格式化日期,因为支持了function 所以需要单独的方法来处理\n * @param {any} endText\n * @param {FormatType} format\n * @return string\n */\nvar formatString = function formatString(endText, format) {\n if (typeof format === 'function') {\n return format(dayjs(endText));\n }\n return dayjs(endText).format(format);\n};\n/**\n * 格式化区域日期,如果是一个数组,会返回 start ~ end\n * @param {any} value\n * @param {FormatType | FormatType[]} format\n * returns string\n */\nexport var dateArrayFormatter = function dateArrayFormatter(value, format) {\n var _ref = Array.isArray(value) ? value : [],\n _ref2 = _slicedToArray(_ref, 2),\n startText = _ref2[0],\n endText = _ref2[1];\n var formatFirst;\n var formatEnd;\n if (Array.isArray(format)) {\n formatFirst = format[0];\n formatEnd = format[1];\n } else {\n formatFirst = format;\n formatEnd = format;\n }\n\n // activePickerIndex for https://github.com/ant-design/ant-design/issues/22158\n var parsedStartText = startText ? formatString(startText, formatFirst) : '';\n var parsedEndText = endText ? formatString(endText, formatEnd) : '';\n var valueStr = parsedStartText && parsedEndText ? \"\".concat(parsedStartText, \" ~ \").concat(parsedEndText) : '';\n return valueStr;\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle as useAntdStyle } from '@ant-design/pro-provider';\nvar genProStyle = function genProStyle(token) {\n var _ref;\n return _ref = {}, _defineProperty(_ref, \"\".concat(token.componentCls, \"-collapse-label\"), {\n paddingInline: 1,\n paddingBlock: 1\n }), _defineProperty(_ref, \"\".concat(token.componentCls, \"-container\"), _defineProperty({}, \"\".concat(token.antCls, \"-form-item\"), {\n marginBlockEnd: 0\n })), _ref;\n};\nexport function useStyle(prefixCls) {\n return useAntdStyle('LightWrapper', function (token) {\n var proToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls)\n });\n return [genProStyle(proToken)];\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"label\", \"size\", \"disabled\", \"onChange\", \"className\", \"style\", \"children\", \"valuePropName\", \"placeholder\", \"labelFormatter\", \"bordered\", \"footerRender\", \"allowClear\", \"otherFieldProps\", \"valueType\", \"placement\"];\nimport { dateArrayFormatter, dateFormatterMap, FieldLabel, FilterDropdown, useMountMergeState } from '@ant-design/pro-utils';\nimport { ConfigProvider } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext, useMemo, useState } from 'react';\nimport { useStyle } from \"./style\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar LightWrapper = function LightWrapper(props) {\n var _objectSpread2;\n var label = props.label,\n size = props.size,\n disabled = props.disabled,\n propsOnChange = props.onChange,\n className = props.className,\n style = props.style,\n children = props.children,\n valuePropName = props.valuePropName,\n placeholder = props.placeholder,\n labelFormatter = props.labelFormatter,\n bordered = props.bordered,\n footerRender = props.footerRender,\n allowClear = props.allowClear,\n otherFieldProps = props.otherFieldProps,\n valueType = props.valueType,\n placement = props.placement,\n rest = _objectWithoutProperties(props, _excluded);\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-field-light-wrapper');\n var _useStyle = useStyle(prefixCls),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var _useState = useState(props[valuePropName]),\n _useState2 = _slicedToArray(_useState, 2),\n tempValue = _useState2[0],\n setTempValue = _useState2[1];\n var _useMountMergeState = useMountMergeState(false),\n _useMountMergeState2 = _slicedToArray(_useMountMergeState, 2),\n open = _useMountMergeState2[0],\n setOpen = _useMountMergeState2[1];\n var onChange = function onChange() {\n var _otherFieldProps$onCh;\n for (var _len = arguments.length, restParams = new Array(_len), _key = 0; _key < _len; _key++) {\n restParams[_key] = arguments[_key];\n }\n otherFieldProps === null || otherFieldProps === void 0 ? void 0 : (_otherFieldProps$onCh = otherFieldProps.onChange) === null || _otherFieldProps$onCh === void 0 ? void 0 : _otherFieldProps$onCh.call.apply(_otherFieldProps$onCh, [otherFieldProps].concat(restParams));\n propsOnChange === null || propsOnChange === void 0 ? void 0 : propsOnChange.apply(void 0, restParams);\n };\n var labelValue = props[valuePropName];\n\n /** DataRange的转化,dayjs 的 toString 有点不好用 */\n var labelValueText = useMemo(function () {\n var _valueType$toLowerCas;\n if (!labelValue) return labelValue;\n if (valueType !== null && valueType !== void 0 && (_valueType$toLowerCas = valueType.toLowerCase()) !== null && _valueType$toLowerCas !== void 0 && _valueType$toLowerCas.endsWith('range') && valueType !== 'digitRange' && !labelFormatter) {\n return dateArrayFormatter(labelValue, dateFormatterMap[valueType] || 'YYYY-MM-DD');\n }\n if (Array.isArray(labelValue)) return labelValue.map(function (item) {\n if (_typeof(item) === 'object' && item.label && item.value) {\n return item.label;\n }\n return item;\n });\n return labelValue;\n }, [labelValue, valueType, labelFormatter]);\n return wrapSSR( /*#__PURE__*/_jsx(FilterDropdown, {\n disabled: disabled,\n open: open,\n onOpenChange: setOpen,\n placement: placement,\n label: /*#__PURE__*/_jsx(FieldLabel, {\n ellipsis: true,\n size: size,\n onClear: function onClear() {\n onChange === null || onChange === void 0 ? void 0 : onChange();\n setTempValue('');\n },\n bordered: bordered,\n style: style,\n className: className,\n label: label,\n placeholder: placeholder,\n value: labelValueText,\n disabled: disabled,\n formatter: labelFormatter,\n allowClear: allowClear\n }),\n footer: {\n onClear: function onClear() {\n return setTempValue('');\n },\n onConfirm: function onConfirm() {\n onChange === null || onChange === void 0 ? void 0 : onChange(tempValue);\n setOpen(false);\n }\n },\n footerRender: footerRender,\n children: /*#__PURE__*/_jsx(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-container\"), hashId, className),\n style: style,\n children: /*#__PURE__*/React.cloneElement(children, _objectSpread(_objectSpread({}, rest), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, valuePropName, tempValue), _defineProperty(_objectSpread2, \"onChange\", function onChange(e) {\n setTempValue(e !== null && e !== void 0 && e.target ? e.target.value : e);\n }), _objectSpread2), children.props))\n })\n }));\n};\nexport { LightWrapper };","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"onChange\", \"onBlur\", \"ignoreFormItem\", \"valuePropName\"],\n _excluded2 = [\"children\", \"addonAfter\", \"addonBefore\", \"valuePropName\", \"convertValue\"],\n _excluded3 = [\"valueType\", \"transform\", \"dataFormat\", \"ignoreFormItem\", \"lightProps\", \"children\"];\nimport { isDropdownValueType, omitUndefined, useRefFunction } from '@ant-design/pro-utils';\nimport { ConfigProvider, Form } from 'antd';\nimport React, { useContext, useEffect, useMemo } from 'react';\nimport { LightWrapper } from \"../../BaseForm\";\nimport FieldContext from \"../../FieldContext\";\nimport { FormListContext } from \"../List\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nvar FormItemProvide = /*#__PURE__*/React.createContext({});\n\n/**\n * 把value扔给 fieldProps,方便给自定义用\n *\n * @param param0\n * @returns\n */\nvar WithValueFomFiledProps = function WithValueFomFiledProps(formFieldProps) {\n var filedChildren = formFieldProps.children,\n onChange = formFieldProps.onChange,\n onBlur = formFieldProps.onBlur,\n ignoreFormItem = formFieldProps.ignoreFormItem,\n _formFieldProps$value = formFieldProps.valuePropName,\n valuePropName = _formFieldProps$value === void 0 ? 'value' : _formFieldProps$value,\n restProps = _objectWithoutProperties(formFieldProps, _excluded);\n var onChangeMemo = useRefFunction(function () {\n var _filedChildren$type, _filedChildren$props, _filedChildren$props$, _filedChildren$props2, _filedChildren$props3, _filedChildren$props4;\n for (var _len = arguments.length, restParams = new Array(_len), _key = 0; _key < _len; _key++) {\n restParams[_key] = arguments[_key];\n }\n onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, restParams);\n // @ts-ignore\n if ((filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$type = filedChildren.type) === null || _filedChildren$type === void 0 ? void 0 : _filedChildren$type.displayName) !== 'ProFormComponent') return;\n if (! /*#__PURE__*/React.isValidElement(filedChildren)) return undefined;\n filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$props = filedChildren.props) === null || _filedChildren$props === void 0 ? void 0 : (_filedChildren$props$ = _filedChildren$props.onChange) === null || _filedChildren$props$ === void 0 ? void 0 : _filedChildren$props$.call.apply(_filedChildren$props$, [_filedChildren$props].concat(restParams));\n filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$props2 = filedChildren.props) === null || _filedChildren$props2 === void 0 ? void 0 : (_filedChildren$props3 = _filedChildren$props2.fieldProps) === null || _filedChildren$props3 === void 0 ? void 0 : (_filedChildren$props4 = _filedChildren$props3.onChange) === null || _filedChildren$props4 === void 0 ? void 0 : _filedChildren$props4.call.apply(_filedChildren$props4, [_filedChildren$props3].concat(restParams));\n });\n var onBlurMemo = useRefFunction(function () {\n var _filedChildren$type2, _filedChildren$props5, _filedChildren$props6, _filedChildren$props7, _filedChildren$props8, _filedChildren$props9;\n // @ts-ignore\n if ((filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$type2 = filedChildren.type) === null || _filedChildren$type2 === void 0 ? void 0 : _filedChildren$type2.displayName) !== 'ProFormComponent') return;\n if (! /*#__PURE__*/React.isValidElement(filedChildren)) return;\n for (var _len2 = arguments.length, restParams = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restParams[_key2] = arguments[_key2];\n }\n onBlur === null || onBlur === void 0 ? void 0 : onBlur.apply(void 0, restParams);\n filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$props5 = filedChildren.props) === null || _filedChildren$props5 === void 0 ? void 0 : (_filedChildren$props6 = _filedChildren$props5.onBlur) === null || _filedChildren$props6 === void 0 ? void 0 : _filedChildren$props6.call.apply(_filedChildren$props6, [_filedChildren$props5].concat(restParams));\n filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$props7 = filedChildren.props) === null || _filedChildren$props7 === void 0 ? void 0 : (_filedChildren$props8 = _filedChildren$props7.fieldProps) === null || _filedChildren$props8 === void 0 ? void 0 : (_filedChildren$props9 = _filedChildren$props8.onBlur) === null || _filedChildren$props9 === void 0 ? void 0 : _filedChildren$props9.call.apply(_filedChildren$props9, [_filedChildren$props8].concat(restParams));\n });\n var fieldProps = useMemo(function () {\n var _filedChildren$type3, _filedChildren$props10;\n // @ts-ignore\n if ((filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$type3 = filedChildren.type) === null || _filedChildren$type3 === void 0 ? void 0 : _filedChildren$type3.displayName) !== 'ProFormComponent') return undefined;\n if (! /*#__PURE__*/React.isValidElement(filedChildren)) return undefined;\n return omitUndefined(_objectSpread(_objectSpread(_defineProperty({\n id: restProps.id\n }, valuePropName, formFieldProps[valuePropName]), (filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$props10 = filedChildren.props) === null || _filedChildren$props10 === void 0 ? void 0 : _filedChildren$props10.fieldProps) || {}), {}, {\n onBlur: onBlurMemo,\n // 这个 onChange 是 Form.Item 添加上的,\n // 要通过 fieldProps 透传给 ProField 调用\n onChange: onChangeMemo\n }));\n }, [filedChildren, formFieldProps, onBlurMemo, onChangeMemo, restProps.id, valuePropName]);\n var finalChange = useMemo(function () {\n if (fieldProps) return undefined;\n if (! /*#__PURE__*/React.isValidElement(filedChildren)) return undefined;\n return function () {\n var _filedChildren$props11, _filedChildren$props12;\n for (var _len3 = arguments.length, restParams = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n restParams[_key3] = arguments[_key3];\n }\n onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, restParams);\n filedChildren === null || filedChildren === void 0 ? void 0 : (_filedChildren$props11 = filedChildren.props) === null || _filedChildren$props11 === void 0 ? void 0 : (_filedChildren$props12 = _filedChildren$props11.onChange) === null || _filedChildren$props12 === void 0 ? void 0 : _filedChildren$props12.call.apply(_filedChildren$props12, [_filedChildren$props11].concat(restParams));\n };\n }, [fieldProps, filedChildren, onChange]);\n if (! /*#__PURE__*/React.isValidElement(filedChildren)) return /*#__PURE__*/_jsx(_Fragment, {\n children: filedChildren\n });\n return /*#__PURE__*/React.cloneElement(filedChildren, omitUndefined(_objectSpread(_objectSpread(_objectSpread({}, restProps), {}, _defineProperty({}, valuePropName, formFieldProps[valuePropName]), filedChildren.props), {}, {\n onChange: finalChange,\n fieldProps: fieldProps\n })));\n};\n/**\n * 支持了一下前置 dom 和后置的 dom 同时包一个provide\n *\n * @param WarpFormItemProps\n * @returns\n */\nvar WarpFormItem = function WarpFormItem(_ref) {\n var children = _ref.children,\n addonAfter = _ref.addonAfter,\n addonBefore = _ref.addonBefore,\n valuePropName = _ref.valuePropName,\n convertValue = _ref.convertValue,\n props = _objectWithoutProperties(_ref, _excluded2);\n var formDom = useMemo(function () {\n var getValuePropsFunc = function getValuePropsFunc(value) {\n var _convertValue;\n var newValue = (_convertValue = convertValue === null || convertValue === void 0 ? void 0 : convertValue(value, props.name)) !== null && _convertValue !== void 0 ? _convertValue : value;\n if (props.getValueProps) return props.getValueProps(newValue);\n return _defineProperty({}, valuePropName || 'value', newValue);\n };\n if (!convertValue && !props.getValueProps) {\n getValuePropsFunc = undefined;\n }\n if (!addonAfter && !addonBefore) {\n return /*#__PURE__*/_jsx(Form.Item, _objectSpread(_objectSpread({}, props), {}, {\n valuePropName: valuePropName,\n getValueProps: getValuePropsFunc,\n children: children\n }));\n }\n return /*#__PURE__*/_jsx(Form.Item, _objectSpread(_objectSpread(_objectSpread({}, props), {}, {\n valuePropName: valuePropName\n // @ts-ignore\n ,\n _internalItemRender: {\n mark: 'pro_table_render',\n render: function render(inputProps, doms) {\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsxs(\"div\", {\n style: {\n display: 'flex',\n alignItems: 'center'\n },\n children: [addonBefore ? /*#__PURE__*/_jsx(\"div\", {\n style: {\n marginInlineEnd: 8\n },\n children: addonBefore\n }) : null, doms.input, addonAfter ? /*#__PURE__*/_jsx(\"div\", {\n style: {\n marginInlineStart: 8\n },\n children: addonAfter\n }) : null]\n }), doms.extra, doms.errorList]\n });\n }\n }\n }, props), {}, {\n getValueProps: getValuePropsFunc,\n children: children\n }));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [addonAfter, addonBefore, children, convertValue === null || convertValue === void 0 ? void 0 : convertValue.toString(), props]);\n return /*#__PURE__*/_jsx(FormItemProvide.Provider, {\n value: {\n name: props.name,\n label: props.label\n },\n children: formDom\n });\n};\nvar ProFormItem = function ProFormItem(props) {\n var _ConfigProvider$useCo, _rest$name2, _rest$name3, _rest$name4;\n /** 从 context 中拿到的值 */\n var _ref3 = (ConfigProvider === null || ConfigProvider === void 0 ? void 0 : (_ConfigProvider$useCo = ConfigProvider.useConfig) === null || _ConfigProvider$useCo === void 0 ? void 0 : _ConfigProvider$useCo.call(ConfigProvider)) || {\n componentSize: 'middle'\n },\n componentSize = _ref3.componentSize;\n var size = componentSize;\n var valueType = props.valueType,\n transform = props.transform,\n dataFormat = props.dataFormat,\n ignoreFormItem = props.ignoreFormItem,\n _props$lightProps = props.lightProps,\n lightProps = _props$lightProps === void 0 ? {} : _props$lightProps,\n unusedChildren = props.children,\n rest = _objectWithoutProperties(props, _excluded3);\n var formListField = useContext(FormListContext);\n\n // ProFromList 的 filed,里面有name和key\n /** 从 context 中拿到的值 */\n var name = useMemo(function () {\n if (props.name === undefined) return props.name;\n if (formListField.name !== undefined) {\n return [formListField.name, props.name].flat(1);\n }\n return props.name;\n }, [formListField.name, props.name]);\n\n /** 从 context 中拿到的值 */\n var _React$useContext = React.useContext(FieldContext),\n setFieldValueType = _React$useContext.setFieldValueType,\n formItemProps = _React$useContext.formItemProps;\n useEffect(function () {\n // 如果 setFieldValueType 和 props.name 不存在不存入\n if (!setFieldValueType || !props.name) {\n return;\n }\n // Field.type === 'ProField' 时 props 里面是有 valueType 的,所以要设置一下\n // 写一个 ts 比较麻烦,用 any 顶一下\n setFieldValueType([formListField.listName, props.name].flat(1).filter(function (itemName) {\n return itemName !== undefined;\n }), {\n valueType: valueType || 'text',\n dateFormat: dataFormat,\n transform: transform\n });\n }, [formListField.listName, name, dataFormat, props.name, setFieldValueType, transform, valueType]);\n var isDropdown = /*#__PURE__*/React.isValidElement(props.children) && isDropdownValueType(valueType || props.children.props.valueType);\n var noLightFormItem = useMemo(function () {\n if (!lightProps.light || lightProps.customLightMode || isDropdown) {\n return true;\n }\n return false;\n }, [lightProps.customLightMode, isDropdown, lightProps.light]);\n\n // formItem 支持function,如果是function 我就直接不管了\n if (typeof props.children === 'function') {\n var _rest$name;\n return /*#__PURE__*/_createElement(WarpFormItem, _objectSpread(_objectSpread({}, rest), {}, {\n name: name,\n key: rest.proFormFieldKey || ((_rest$name = rest.name) === null || _rest$name === void 0 ? void 0 : _rest$name.toString())\n }), props.children);\n }\n var children = /*#__PURE__*/_jsx(WithValueFomFiledProps, {\n valuePropName: props.valuePropName,\n children: props.children\n }, rest.proFormFieldKey || ((_rest$name2 = rest.name) === null || _rest$name2 === void 0 ? void 0 : _rest$name2.toString()));\n var lightDom = noLightFormItem ? children : /*#__PURE__*/_createElement(LightWrapper, _objectSpread(_objectSpread({}, lightProps), {}, {\n key: rest.proFormFieldKey || ((_rest$name3 = rest.name) === null || _rest$name3 === void 0 ? void 0 : _rest$name3.toString()),\n size: size\n }), children);\n // 这里控制是否需要 LightWrapper,为了提升一点点性能\n if (ignoreFormItem) {\n return /*#__PURE__*/_jsx(_Fragment, {\n children: lightDom\n });\n }\n return /*#__PURE__*/_jsx(WarpFormItem, _objectSpread(_objectSpread(_objectSpread({}, formItemProps), rest), {}, {\n name: name,\n isListField: formListField.name !== undefined,\n children: lightDom\n }), rest.proFormFieldKey || ((_rest$name4 = rest.name) === null || _rest$name4 === void 0 ? void 0 : _rest$name4.toString()));\n};\nexport { FormItemProvide };\nexport default ProFormItem;","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"creatorButtonProps\", \"deleteIconProps\", \"copyIconProps\", \"itemContainerRender\", \"itemRender\", \"alwaysShowItemLabel\", \"prefixCls\", \"creatorRecord\", \"action\", \"actionGuard\", \"children\", \"actionRender\", \"fields\", \"meta\", \"field\", \"index\", \"formInstance\", \"originName\", \"containerClassName\", \"containerStyle\", \"min\", \"max\", \"count\"];\nimport { CopyOutlined, DeleteOutlined } from '@ant-design/icons';\nimport { ProProvider } from '@ant-design/pro-provider';\nimport { Spin, Tooltip } from 'antd';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport set from \"rc-util/es/utils/set\";\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { FormListContext } from '.';\nimport { useGridHelpers } from \"../../helpers\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/** Antd 自带的toArray 不支持方法,所以需要自己搞一个 */\nvar listToArray = function listToArray(children) {\n if (Array.isArray(children)) {\n return children;\n }\n if (typeof children === 'function') {\n return [children];\n }\n return toArray(children);\n};\nvar ProFormListItem = function ProFormListItem(props) {\n var _formInstance$getFiel2;\n var creatorButtonProps = props.creatorButtonProps,\n deleteIconProps = props.deleteIconProps,\n copyIconProps = props.copyIconProps,\n itemContainerRender = props.itemContainerRender,\n itemRender = props.itemRender,\n alwaysShowItemLabel = props.alwaysShowItemLabel,\n prefixCls = props.prefixCls,\n creatorRecord = props.creatorRecord,\n action = props.action,\n actionGuard = props.actionGuard,\n children = props.children,\n actionRender = props.actionRender,\n fields = props.fields,\n meta = props.meta,\n field = props.field,\n index = props.index,\n formInstance = props.formInstance,\n originName = props.originName,\n containerClassName = props.containerClassName,\n containerStyle = props.containerStyle,\n min = props.min,\n max = props.max,\n count = props.count,\n rest = _objectWithoutProperties(props, _excluded);\n var _useContext = useContext(ProProvider),\n hashId = _useContext.hashId;\n var listContext = useContext(FormListContext);\n var unmountedRef = useRef(false);\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n loadingRemove = _useState2[0],\n setLoadingRemove = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n loadingCopy = _useState4[0],\n setLoadingCopy = _useState4[1];\n useEffect(function () {\n return function () {\n unmountedRef.current = true;\n };\n }, []);\n var getCurrentRowData = function getCurrentRowData() {\n return formInstance.getFieldValue([listContext.listName, originName, index === null || index === void 0 ? void 0 : index.toString()].flat(1).filter(function (item) {\n return item !== null && item !== undefined;\n }));\n };\n var formListAction = {\n getCurrentRowData: getCurrentRowData,\n setCurrentRowData: function setCurrentRowData(data) {\n var _formInstance$getFiel;\n var oldTableDate = (formInstance === null || formInstance === void 0 ? void 0 : (_formInstance$getFiel = formInstance.getFieldsValue) === null || _formInstance$getFiel === void 0 ? void 0 : _formInstance$getFiel.call(formInstance)) || {};\n var rowKeyName = [listContext.listName, originName, index === null || index === void 0 ? void 0 : index.toString()].flat(1).filter(function (item) {\n return item !== null && item !== undefined;\n });\n var updateValues = set(oldTableDate, rowKeyName, _objectSpread(_objectSpread({}, getCurrentRowData()), data || {}));\n return formInstance.setFieldsValue(updateValues);\n }\n };\n var childrenArray = listToArray(children).map(function (childrenItem) {\n if (typeof childrenItem === 'function') {\n return childrenItem === null || childrenItem === void 0 ? void 0 : childrenItem(field, index, _objectSpread(_objectSpread({}, action), formListAction), count);\n }\n return childrenItem;\n }).map(function (childrenItem, itemIndex) {\n if ( /*#__PURE__*/React.isValidElement(childrenItem)) {\n var _childrenItem$props;\n return /*#__PURE__*/React.cloneElement(childrenItem, _objectSpread({\n key: childrenItem.key || (childrenItem === null || childrenItem === void 0 ? void 0 : (_childrenItem$props = childrenItem.props) === null || _childrenItem$props === void 0 ? void 0 : _childrenItem$props.name) || itemIndex\n }, (childrenItem === null || childrenItem === void 0 ? void 0 : childrenItem.props) || {}));\n }\n return childrenItem;\n });\n var copyIcon = useMemo(function () {\n /** 复制按钮的配置 */\n if (copyIconProps === false || max === count) return null;\n var _ref = copyIconProps,\n _ref$Icon = _ref.Icon,\n Icon = _ref$Icon === void 0 ? CopyOutlined : _ref$Icon,\n tooltipText = _ref.tooltipText;\n return /*#__PURE__*/_jsx(Tooltip, {\n title: tooltipText,\n children: /*#__PURE__*/_jsx(Spin, {\n spinning: loadingCopy,\n children: /*#__PURE__*/_jsx(Icon, {\n className: \"\".concat(prefixCls, \"-action-icon action-copy \").concat(hashId).trim(),\n onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var row;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n setLoadingCopy(true);\n row = formInstance === null || formInstance === void 0 ? void 0 : formInstance.getFieldValue([listContext.listName, originName, field.name].filter(function (item) {\n return item !== undefined;\n }).flat(1));\n _context.next = 4;\n return action.add(row);\n case 4:\n setLoadingCopy(false);\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }))\n })\n })\n }, \"copy\");\n }, [copyIconProps, max, count, loadingCopy, prefixCls, hashId, formInstance, listContext.listName, field.name, originName, action]);\n var deleteIcon = useMemo(function () {\n if (deleteIconProps === false || min === count) return null;\n var _ref3 = deleteIconProps,\n _ref3$Icon = _ref3.Icon,\n Icon = _ref3$Icon === void 0 ? DeleteOutlined : _ref3$Icon,\n tooltipText = _ref3.tooltipText;\n return /*#__PURE__*/_jsx(Tooltip, {\n title: tooltipText,\n children: /*#__PURE__*/_jsx(Spin, {\n spinning: loadingRemove,\n children: /*#__PURE__*/_jsx(Icon, {\n className: \"\".concat(prefixCls, \"-action-icon action-remove \").concat(hashId).trim(),\n onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n setLoadingRemove(true);\n _context2.next = 3;\n return action.remove(field.name);\n case 3:\n if (!unmountedRef.current) {\n setLoadingRemove(false);\n }\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }))\n })\n })\n }, \"delete\");\n }, [deleteIconProps, min, count, loadingRemove, prefixCls, hashId, action, field.name]);\n var defaultActionDom = useMemo(function () {\n return [copyIcon, deleteIcon].filter(function (item) {\n return item !== null && item !== undefined;\n });\n }, [copyIcon, deleteIcon]);\n var actions = (actionRender === null || actionRender === void 0 ? void 0 : actionRender(field, action, defaultActionDom, count)) || defaultActionDom;\n var dom = actions.length > 0 ? /*#__PURE__*/_jsx(\"div\", {\n className: \"\".concat(prefixCls, \"-action \").concat(hashId).trim(),\n children: actions\n }) : null;\n var options = {\n name: rest.name,\n field: field,\n index: index,\n record: formInstance === null || formInstance === void 0 ? void 0 : (_formInstance$getFiel2 = formInstance.getFieldValue) === null || _formInstance$getFiel2 === void 0 ? void 0 : _formInstance$getFiel2.call(formInstance, [listContext.listName, originName, field.name].filter(function (item) {\n return item !== undefined;\n }).flat(1)),\n fields: fields,\n operation: action,\n meta: meta\n };\n var _useGridHelpers = useGridHelpers(),\n grid = _useGridHelpers.grid;\n var itemContainer = (itemContainerRender === null || itemContainerRender === void 0 ? void 0 : itemContainerRender(childrenArray, options)) || childrenArray;\n var contentDom = (itemRender === null || itemRender === void 0 ? void 0 : itemRender({\n listDom: /*#__PURE__*/_jsx(\"div\", {\n className: \"\".concat(prefixCls, \"-container \").concat(containerClassName || '', \" \").concat(hashId || '').trim(),\n style: _objectSpread({\n width: grid ? '100%' : undefined\n }, containerStyle),\n children: itemContainer\n }),\n action: dom\n }, options)) || /*#__PURE__*/_jsxs(\"div\", {\n className: \"\".concat(prefixCls, \"-item \").concat(hashId, \" \\n \").concat(alwaysShowItemLabel === undefined && \"\".concat(prefixCls, \"-item-default\"), \"\\n \").concat(alwaysShowItemLabel ? \"\".concat(prefixCls, \"-item-show-label\") : ''),\n style: {\n display: 'flex',\n alignItems: 'flex-end'\n },\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"\".concat(prefixCls, \"-container \").concat(containerClassName || '', \" \").concat(hashId).trim(),\n style: _objectSpread({\n width: grid ? '100%' : undefined\n }, containerStyle),\n children: itemContainer\n }), dom]\n });\n return /*#__PURE__*/_jsx(FormListContext.Provider, {\n value: _objectSpread(_objectSpread({}, field), {}, {\n listName: [listContext.listName, originName, field.name].filter(function (item) {\n return item !== undefined;\n }).flat(1)\n }),\n children: contentDom\n });\n};\nexport { ProFormListItem };","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { PlusOutlined } from '@ant-design/icons';\nimport { ProProvider, useIntl } from '@ant-design/pro-provider';\nimport { nanoid, runFunction } from '@ant-design/pro-utils';\nimport { Button } from 'antd';\nimport omit from 'omit.js';\nimport { useContext, useMemo, useRef, useState } from 'react';\nimport { EditOrReadOnlyContext } from \"../../BaseForm/EditOrReadOnlyContext\";\nimport { ProFormListItem } from \"./ListItem\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar ProFormListContainer = function ProFormListContainer(props) {\n var intl = useIntl();\n var creatorButtonProps = props.creatorButtonProps,\n prefixCls = props.prefixCls,\n children = props.children,\n creatorRecord = props.creatorRecord,\n action = props.action,\n fields = props.fields,\n actionGuard = props.actionGuard,\n max = props.max,\n fieldExtraRender = props.fieldExtraRender,\n meta = props.meta,\n containerClassName = props.containerClassName,\n containerStyle = props.containerStyle,\n onAfterAdd = props.onAfterAdd,\n onAfterRemove = props.onAfterRemove;\n var _useContext = useContext(ProProvider),\n hashId = _useContext.hashId;\n var fieldKeyMap = useRef(new Map());\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n loading = _useState2[0],\n setLoading = _useState2[1];\n var uuidFields = useMemo(function () {\n return fields.map(function (field) {\n var _fieldKeyMap$current, _fieldKeyMap$current3;\n if (!((_fieldKeyMap$current = fieldKeyMap.current) !== null && _fieldKeyMap$current !== void 0 && _fieldKeyMap$current.has(field.key.toString()))) {\n var _fieldKeyMap$current2;\n (_fieldKeyMap$current2 = fieldKeyMap.current) === null || _fieldKeyMap$current2 === void 0 ? void 0 : _fieldKeyMap$current2.set(field.key.toString(), nanoid());\n }\n var uuid = (_fieldKeyMap$current3 = fieldKeyMap.current) === null || _fieldKeyMap$current3 === void 0 ? void 0 : _fieldKeyMap$current3.get(field.key.toString());\n return _objectSpread(_objectSpread({}, field), {}, {\n uuid: uuid\n });\n });\n }, [fields]);\n\n /**\n * 根据行为守卫包装action函数\n */\n var wrapperAction = useMemo(function () {\n var wrapAction = _objectSpread({}, action);\n var count = uuidFields.length;\n if (actionGuard !== null && actionGuard !== void 0 && actionGuard.beforeAddRow) {\n wrapAction.add = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _len,\n rest,\n _key,\n success,\n res,\n _args = arguments;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n for (_len = _args.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = _args[_key];\n }\n _context.next = 3;\n return actionGuard.beforeAddRow.apply(actionGuard, rest.concat([count]));\n case 3:\n success = _context.sent;\n if (!success) {\n _context.next = 8;\n break;\n }\n res = action.add.apply(action, rest);\n onAfterAdd === null || onAfterAdd === void 0 ? void 0 : onAfterAdd.apply(void 0, rest.concat([count + 1]));\n return _context.abrupt(\"return\", res);\n case 8:\n return _context.abrupt(\"return\", false);\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n } else {\n wrapAction.add = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _len2,\n rest,\n _key2,\n res,\n _args2 = arguments;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n for (_len2 = _args2.length, rest = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n rest[_key2] = _args2[_key2];\n }\n res = action.add.apply(action, rest);\n onAfterAdd === null || onAfterAdd === void 0 ? void 0 : onAfterAdd.apply(void 0, rest.concat([count + 1]));\n return _context2.abrupt(\"return\", res);\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n }\n if (actionGuard !== null && actionGuard !== void 0 && actionGuard.beforeRemoveRow) {\n wrapAction.remove = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var _len3,\n rest,\n _key3,\n success,\n res,\n _args3 = arguments;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n for (_len3 = _args3.length, rest = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n rest[_key3] = _args3[_key3];\n }\n _context3.next = 3;\n return actionGuard.beforeRemoveRow.apply(actionGuard, rest.concat([count]));\n case 3:\n success = _context3.sent;\n if (!success) {\n _context3.next = 8;\n break;\n }\n res = action.remove.apply(action, rest);\n onAfterRemove === null || onAfterRemove === void 0 ? void 0 : onAfterRemove.apply(void 0, rest.concat([count - 1]));\n return _context3.abrupt(\"return\", res);\n case 8:\n return _context3.abrupt(\"return\", false);\n case 9:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n } else {\n wrapAction.remove = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var _len4,\n rest,\n _key4,\n res,\n _args4 = arguments;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n for (_len4 = _args4.length, rest = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n rest[_key4] = _args4[_key4];\n }\n res = action.remove.apply(action, rest);\n onAfterRemove === null || onAfterRemove === void 0 ? void 0 : onAfterRemove.apply(void 0, rest.concat([count - 1]));\n return _context4.abrupt(\"return\", res);\n case 4:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n }\n return wrapAction;\n }, [action, actionGuard === null || actionGuard === void 0 ? void 0 : actionGuard.beforeAddRow, actionGuard === null || actionGuard === void 0 ? void 0 : actionGuard.beforeRemoveRow, onAfterAdd, onAfterRemove, uuidFields.length]);\n var creatorButton = useMemo(function () {\n if (creatorButtonProps === false || uuidFields.length === max) return null;\n var _ref5 = creatorButtonProps || {},\n _ref5$position = _ref5.position,\n position = _ref5$position === void 0 ? 'bottom' : _ref5$position,\n _ref5$creatorButtonTe = _ref5.creatorButtonText,\n creatorButtonText = _ref5$creatorButtonTe === void 0 ? intl.getMessage('editableTable.action.add', '添加一行数据') : _ref5$creatorButtonTe;\n return /*#__PURE__*/_jsx(Button, _objectSpread(_objectSpread({\n className: \"\".concat(prefixCls, \"-creator-button-\").concat(position, \" \").concat(hashId || '').trim(),\n type: \"dashed\",\n loading: loading,\n block: true,\n icon: /*#__PURE__*/_jsx(PlusOutlined, {})\n }, omit(creatorButtonProps || {}, ['position', 'creatorButtonText'])), {}, {\n onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var index;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n setLoading(true);\n // 如果不是从顶部开始添加,则插入的索引为当前行数\n index = uuidFields.length; // 如果是顶部,加到第一个,如果不是,为空就是最后一个\n if (position === 'top') index = 0;\n _context5.next = 5;\n return wrapperAction.add(runFunction(creatorRecord) || {}, index);\n case 5:\n setLoading(false);\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n })),\n children: creatorButtonText\n }));\n }, [creatorButtonProps, uuidFields.length, max, intl, prefixCls, hashId, loading, wrapperAction, creatorRecord]);\n var readOnlyContext = useContext(EditOrReadOnlyContext);\n var defaultStyle = _objectSpread({\n width: 'max-content',\n maxWidth: '100%',\n minWidth: '100%'\n }, containerStyle);\n var itemList = useMemo(function () {\n return uuidFields.map(function (field, index) {\n return /*#__PURE__*/_createElement(ProFormListItem, _objectSpread(_objectSpread({}, props), {}, {\n key: field.uuid,\n field: field,\n index: index,\n action: wrapperAction,\n count: uuidFields.length\n }), children);\n });\n }, [children, props, uuidFields, wrapperAction]);\n if (readOnlyContext.mode === 'read' || props.readonly === true) {\n return /*#__PURE__*/_jsx(_Fragment, {\n children: itemList\n });\n }\n return /*#__PURE__*/_jsxs(\"div\", {\n style: defaultStyle,\n className: containerClassName,\n children: [creatorButtonProps !== false && (creatorButtonProps === null || creatorButtonProps === void 0 ? void 0 : creatorButtonProps.position) === 'top' && creatorButton, itemList, fieldExtraRender && fieldExtraRender(wrapperAction, meta), creatorButtonProps !== false && (creatorButtonProps === null || creatorButtonProps === void 0 ? void 0 : creatorButtonProps.position) !== 'top' && creatorButton]\n });\n};\nexport { ProFormListContainer };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle as useAntdStyle } from '@ant-design/pro-provider';\nvar genProStyle = function genProStyle(token) {\n var _token$componentCls2, _ref;\n return _ref = {}, _defineProperty(_ref, \"\".concat(token.antCls, \"-pro\"), _defineProperty({}, \"\".concat(token.antCls, \"-form:not(\").concat(token.antCls, \"-form-horizontal)\"), _defineProperty({}, token.componentCls, _defineProperty({}, \"&-item:not(\".concat(token.componentCls, \"-item-show-label)\"), _defineProperty({}, \"\".concat(token.antCls, \"-form-item-label\"), {\n display: 'none'\n }))))), _defineProperty(_ref, token.componentCls, (_token$componentCls2 = {\n maxWidth: '100%',\n '&-item': {\n '&&-show-label': _defineProperty({}, \"\".concat(token.antCls, \"-form-item-label\"), {\n display: 'inline-block'\n }),\n '&&-default:first-child': {\n 'div:first-of-type': _defineProperty({}, \"\".concat(token.antCls, \"-form-item\"), _defineProperty({}, \"\".concat(token.antCls, \"-form-item-label\"), {\n display: 'inline-block'\n }))\n },\n '&&-default:not(:first-child)': {\n 'div:first-of-type': _defineProperty({}, \"\".concat(token.antCls, \"-form-item\"), _defineProperty({}, \"\".concat(token.antCls, \"-form-item-label\"), {\n display: 'none'\n }))\n }\n },\n '&-action': {\n display: 'flex',\n height: '32px',\n marginBlockEnd: '24px',\n lineHeight: '32px'\n },\n '&-action-icon': {\n marginInlineStart: 8,\n cursor: 'pointer',\n transition: 'color 0.3s ease-in-out',\n '&:hover': {\n color: token.colorPrimaryTextHover\n }\n }\n }, _defineProperty(_token$componentCls2, \"\".concat(token.proComponentsCls, \"-card \").concat(token.proComponentsCls, \"-card-extra\"), _defineProperty({}, token.componentCls, {\n '&-action': {\n marginBlockEnd: 0\n }\n })), _defineProperty(_token$componentCls2, '&-creator-button-top', {\n marginBlockEnd: 24\n }), _token$componentCls2)), _ref;\n};\nexport function useStyle(prefixCls) {\n return useAntdStyle('ProFormList', function (token) {\n var proToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls)\n });\n return [genProStyle(proToken)];\n });\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"actionRender\", \"creatorButtonProps\", \"label\", \"alwaysShowItemLabel\", \"tooltip\", \"creatorRecord\", \"itemRender\", \"rules\", \"itemContainerRender\", \"fieldExtraRender\", \"copyIconProps\", \"children\", \"deleteIconProps\", \"actionRef\", \"style\", \"prefixCls\", \"actionGuard\", \"min\", \"max\", \"colProps\", \"wrapperCol\", \"rowProps\", \"onAfterAdd\", \"onAfterRemove\", \"isValidateList\", \"emptyListMessage\", \"className\"];\nimport { CopyOutlined, DeleteOutlined } from '@ant-design/icons';\nimport { useIntl } from '@ant-design/pro-provider';\nimport { ProFormContext } from '@ant-design/pro-utils';\nimport { ConfigProvider, Form } from 'antd';\nimport classNames from 'classnames';\nimport { noteOnce } from \"rc-util/es/warning\";\nimport React, { useContext, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\nimport { useGridHelpers } from \"../../helpers\";\nimport { ProFormListContainer } from \"./ListContainer\";\nimport { useStyle } from \"./style\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar FormListContext = /*#__PURE__*/React.createContext({});\nfunction ProFormList(props) {\n var actionRefs = useRef();\n var context = useContext(ConfigProvider.ConfigContext);\n var listContext = useContext(FormListContext);\n var baseClassName = context.getPrefixCls('pro-form-list');\n // Internationalization\n var intl = useIntl();\n var actionRender = props.actionRender,\n creatorButtonProps = props.creatorButtonProps,\n label = props.label,\n alwaysShowItemLabel = props.alwaysShowItemLabel,\n tooltip = props.tooltip,\n creatorRecord = props.creatorRecord,\n itemRender = props.itemRender,\n rules = props.rules,\n itemContainerRender = props.itemContainerRender,\n fieldExtraRender = props.fieldExtraRender,\n _props$copyIconProps = props.copyIconProps,\n copyIconProps = _props$copyIconProps === void 0 ? {\n Icon: CopyOutlined,\n tooltipText: intl.getMessage('copyThisLine', '复制此项')\n } : _props$copyIconProps,\n _children = props.children,\n _props$deleteIconProp = props.deleteIconProps,\n deleteIconProps = _props$deleteIconProp === void 0 ? {\n Icon: DeleteOutlined,\n tooltipText: intl.getMessage('deleteThisLine', '删除此项')\n } : _props$deleteIconProp,\n actionRef = props.actionRef,\n style = props.style,\n prefixCls = props.prefixCls,\n actionGuard = props.actionGuard,\n min = props.min,\n max = props.max,\n colProps = props.colProps,\n wrapperCol = props.wrapperCol,\n rowProps = props.rowProps,\n _onAfterAdd = props.onAfterAdd,\n _onAfterRemove = props.onAfterRemove,\n _props$isValidateList = props.isValidateList,\n isValidateList = _props$isValidateList === void 0 ? false : _props$isValidateList,\n _props$emptyListMessa = props.emptyListMessage,\n emptyListMessage = _props$emptyListMessa === void 0 ? '列表不能为空' : _props$emptyListMessa,\n className = props.className,\n rest = _objectWithoutProperties(props, _excluded);\n var _useGridHelpers = useGridHelpers({\n colProps: colProps,\n rowProps: rowProps\n }),\n ColWrapper = _useGridHelpers.ColWrapper,\n RowWrapper = _useGridHelpers.RowWrapper;\n var proFormContext = useContext(ProFormContext);\n\n // 处理 list 的嵌套\n var name = useMemo(function () {\n if (listContext.name === undefined) {\n return [rest.name].flat(1);\n }\n return [listContext.name, rest.name].flat(1);\n }, [listContext.name, rest.name]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useImperativeHandle(actionRef, function () {\n return _objectSpread(_objectSpread({}, actionRefs.current), {}, {\n get: function get(index) {\n return proFormContext.formRef.current.getFieldValue([].concat(_toConsumableArray(name), [index]));\n },\n getList: function getList() {\n return proFormContext.formRef.current.getFieldValue(_toConsumableArray(name));\n }\n });\n }, [name, proFormContext.formRef]);\n useEffect(function () {\n noteOnce(!!proFormContext.formRef, \"ProFormList \\u5FC5\\u987B\\u8981\\u653E\\u5230 ProForm \\u4E2D,\\u5426\\u5219\\u4F1A\\u9020\\u6210\\u884C\\u4E3A\\u5F02\\u5E38\\u3002\");\n noteOnce(!!proFormContext.formRef, \"Proformlist must be placed in ProForm, otherwise it will cause abnormal behavior.\");\n }, [proFormContext.formRef]);\n var _useStyle = useStyle(baseClassName),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n if (!proFormContext.formRef) return null;\n return wrapSSR( /*#__PURE__*/_jsx(ColWrapper, {\n children: /*#__PURE__*/_jsx(\"div\", {\n className: classNames(baseClassName, hashId),\n style: style,\n children: /*#__PURE__*/_jsx(Form.Item, _objectSpread(_objectSpread({\n label: label,\n prefixCls: prefixCls,\n tooltip: tooltip,\n style: style,\n required: rules === null || rules === void 0 ? void 0 : rules.some(function (rule) {\n return rule.required;\n }),\n wrapperCol: wrapperCol,\n className: className\n }, rest), {}, {\n name: isValidateList ? name : undefined,\n rules: isValidateList ? [{\n validator: function validator(rule, value) {\n if (!value || value.length === 0) {\n return Promise.reject(new Error(emptyListMessage));\n }\n return Promise.resolve();\n },\n required: true\n }] : undefined,\n children: /*#__PURE__*/_jsx(Form.List, _objectSpread(_objectSpread({\n rules: rules\n }, rest), {}, {\n name: name,\n children: function children(fields, action, meta) {\n // 将 action 暴露给外部\n actionRefs.current = action;\n return /*#__PURE__*/_jsxs(RowWrapper, {\n children: [/*#__PURE__*/_jsx(ProFormListContainer, {\n name: name,\n readonly: !!rest.readonly,\n originName: rest.name,\n copyIconProps: copyIconProps,\n deleteIconProps: deleteIconProps,\n formInstance: proFormContext.formRef.current,\n prefixCls: baseClassName,\n meta: meta,\n fields: fields,\n itemContainerRender: itemContainerRender,\n itemRender: itemRender,\n fieldExtraRender: fieldExtraRender,\n creatorButtonProps: creatorButtonProps,\n creatorRecord: creatorRecord,\n actionRender: actionRender,\n action: action,\n actionGuard: actionGuard,\n alwaysShowItemLabel: alwaysShowItemLabel,\n min: min,\n max: max,\n count: fields.length,\n onAfterAdd: function onAfterAdd(defaultValue, insertIndex, count) {\n if (isValidateList) {\n proFormContext.formRef.current.validateFields([name]);\n }\n _onAfterAdd === null || _onAfterAdd === void 0 ? void 0 : _onAfterAdd(defaultValue, insertIndex, count);\n },\n onAfterRemove: function onAfterRemove(index, count) {\n if (isValidateList) {\n if (count === 0) {\n proFormContext.formRef.current.validateFields([name]);\n }\n }\n _onAfterRemove === null || _onAfterRemove === void 0 ? void 0 : _onAfterRemove(index, count);\n },\n children: _children\n }), /*#__PURE__*/_jsx(Form.ErrorList, {\n errors: meta.errors\n })]\n });\n }\n }))\n }))\n })\n }));\n}\nexport { FormListContext, ProFormList };","import _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 = [\"children\", \"Wrapper\"],\n _excluded2 = [\"children\", \"Wrapper\"];\nimport { Col, Row } from 'antd';\nimport { createContext, useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var GridContext = /*#__PURE__*/createContext({\n grid: false,\n colProps: undefined,\n rowProps: undefined\n});\nexport var gridHelpers = function gridHelpers(_ref) {\n var grid = _ref.grid,\n rowProps = _ref.rowProps,\n colProps = _ref.colProps;\n return {\n grid: !!grid,\n RowWrapper: function RowWrapper() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n children = _ref2.children,\n Wrapper = _ref2.Wrapper,\n props = _objectWithoutProperties(_ref2, _excluded);\n if (!grid) {\n return Wrapper ? /*#__PURE__*/_jsx(Wrapper, {\n children: children\n }) : children;\n }\n return /*#__PURE__*/_jsx(Row, _objectSpread(_objectSpread(_objectSpread({\n gutter: 8\n }, rowProps), props), {}, {\n children: children\n }));\n },\n ColWrapper: function ColWrapper() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n children = _ref3.children,\n Wrapper = _ref3.Wrapper,\n rest = _objectWithoutProperties(_ref3, _excluded2);\n var props = useMemo(function () {\n var originProps = _objectSpread(_objectSpread({}, colProps), rest);\n\n /**\n * `xs` takes precedence over `span`\n * avoid `span` doesn't work\n */\n if (typeof originProps.span === 'undefined' && typeof originProps.xs === 'undefined') {\n originProps.xs = 24;\n }\n return originProps;\n }, [rest]);\n if (!grid) {\n return Wrapper ? /*#__PURE__*/_jsx(Wrapper, {\n children: children\n }) : children;\n }\n return /*#__PURE__*/_jsx(Col, _objectSpread(_objectSpread({}, props), {}, {\n children: children\n }));\n }\n };\n};\nexport var useGridHelpers = function useGridHelpers(props) {\n var config = useMemo(function () {\n {\n if (_typeof(props) === 'object') {\n return props;\n }\n return {\n grid: props\n };\n }\n }, [props]);\n var _useContext = useContext(GridContext),\n grid = _useContext.grid,\n colProps = _useContext.colProps;\n return useMemo(function () {\n return gridHelpers({\n grid: !!(grid || config.grid),\n rowProps: config === null || config === void 0 ? void 0 : config.rowProps,\n colProps: (config === null || config === void 0 ? void 0 : config.colProps) || colProps,\n Wrapper: config === null || config === void 0 ? void 0 : config.Wrapper\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [config === null || config === void 0 ? void 0 : config.Wrapper, config.grid, grid,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify([colProps, config === null || config === void 0 ? void 0 : config.colProps, config === null || config === void 0 ? void 0 : config.rowProps])]);\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle as useAntdStyle } from '@ant-design/pro-provider';\nvar genProStyle = function genProStyle(token) {\n var _twoLine;\n return _defineProperty({}, token.componentCls, {\n '&-title': {\n marginBlockEnd: token.marginXL,\n fontWeight: 'bold'\n },\n '&-container': _defineProperty({\n flexWrap: 'wrap',\n maxWidth: '100%'\n }, \"> div\".concat(token.antCls, \"-space-item\"), {\n maxWidth: '100%'\n }),\n '&-twoLine': (_twoLine = {\n display: 'block',\n width: '100%'\n }, _defineProperty(_twoLine, \"\".concat(token.componentCls, \"-title\"), {\n width: '100%',\n margin: '8px 0'\n }), _defineProperty(_twoLine, \"\".concat(token.componentCls, \"-container\"), {\n paddingInlineStart: 16\n }), _defineProperty(_twoLine, \"\".concat(token.antCls, \"-space-item,\").concat(token.antCls, \"-form-item\"), {\n width: '100%'\n }), _defineProperty(_twoLine, \"\".concat(token.antCls, \"-form-item\"), {\n '&-control': {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n '&-input': {\n alignItems: 'center',\n justifyContent: 'flex-end',\n '&-content': {\n flex: 'none'\n }\n }\n }\n }), _twoLine)\n });\n};\nexport function useStyle(prefixCls) {\n return useAntdStyle('ProFormGroup', function (token) {\n var proToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls)\n });\n return [genProStyle(proToken)];\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { RightOutlined } from '@ant-design/icons';\nimport { LabelIconTip, useMountMergeState } from '@ant-design/pro-utils';\nimport { ConfigProvider, Space } from 'antd';\nimport classNames from 'classnames';\nimport React, { useCallback, useContext, useMemo } from 'react';\nimport FieldContext from \"../../FieldContext\";\nimport { useGridHelpers } from \"../../helpers\";\nimport { useStyle } from \"./style\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar Group = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(FieldContext),\n groupProps = _React$useContext.groupProps;\n var _groupProps$props = _objectSpread(_objectSpread({}, groupProps), props),\n children = _groupProps$props.children,\n collapsible = _groupProps$props.collapsible,\n defaultCollapsed = _groupProps$props.defaultCollapsed,\n style = _groupProps$props.style,\n labelLayout = _groupProps$props.labelLayout,\n _groupProps$props$tit = _groupProps$props.title,\n title = _groupProps$props$tit === void 0 ? props.label : _groupProps$props$tit,\n tooltip = _groupProps$props.tooltip,\n _groupProps$props$ali = _groupProps$props.align,\n align = _groupProps$props$ali === void 0 ? 'start' : _groupProps$props$ali,\n direction = _groupProps$props.direction,\n _groupProps$props$siz = _groupProps$props.size,\n size = _groupProps$props$siz === void 0 ? 32 : _groupProps$props$siz,\n titleStyle = _groupProps$props.titleStyle,\n titleRender = _groupProps$props.titleRender,\n spaceProps = _groupProps$props.spaceProps,\n extra = _groupProps$props.extra,\n autoFocus = _groupProps$props.autoFocus;\n var _useMountMergeState = useMountMergeState(function () {\n return defaultCollapsed || false;\n }, {\n value: props.collapsed,\n onChange: props.onCollapse\n }),\n _useMountMergeState2 = _slicedToArray(_useMountMergeState, 2),\n collapsed = _useMountMergeState2[0],\n setCollapsed = _useMountMergeState2[1];\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var _useGridHelpers = useGridHelpers(props),\n ColWrapper = _useGridHelpers.ColWrapper,\n RowWrapper = _useGridHelpers.RowWrapper;\n var className = getPrefixCls('pro-form-group');\n var _useStyle = useStyle(className),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var collapsibleButton = collapsible && /*#__PURE__*/_jsx(RightOutlined, {\n style: {\n marginInlineEnd: 8\n },\n rotate: !collapsed ? 90 : undefined\n });\n var label = /*#__PURE__*/_jsx(LabelIconTip, {\n label: collapsibleButton ? /*#__PURE__*/_jsxs(\"div\", {\n children: [collapsibleButton, title]\n }) : title,\n tooltip: tooltip\n });\n var Wrapper = useCallback(function (_ref) {\n var dom = _ref.children;\n return /*#__PURE__*/_jsx(Space, _objectSpread(_objectSpread({}, spaceProps), {}, {\n className: classNames(\"\".concat(className, \"-container \").concat(hashId), spaceProps === null || spaceProps === void 0 ? void 0 : spaceProps.className),\n size: size,\n align: align,\n direction: direction,\n style: _objectSpread({\n rowGap: 0\n }, spaceProps === null || spaceProps === void 0 ? void 0 : spaceProps.style),\n children: dom\n }));\n }, [align, className, direction, hashId, size, spaceProps]);\n var titleDom = titleRender ? titleRender(label, props) : label;\n var _useMemo = useMemo(function () {\n var hiddenChildren = [];\n var childrenList = React.Children.toArray(children).map(function (element, index) {\n var _element$props;\n if ( /*#__PURE__*/React.isValidElement(element) && element !== null && element !== void 0 && (_element$props = element.props) !== null && _element$props !== void 0 && _element$props.hidden) {\n hiddenChildren.push(element);\n return null;\n }\n if (index === 0 && /*#__PURE__*/React.isValidElement(element) && autoFocus) {\n return /*#__PURE__*/React.cloneElement(element, _objectSpread(_objectSpread({}, element.props), {}, {\n autoFocus: autoFocus\n }));\n }\n return element;\n });\n return [/*#__PURE__*/_jsx(RowWrapper, {\n Wrapper: Wrapper,\n children: childrenList\n }, \"children\"), hiddenChildren.length > 0 ? /*#__PURE__*/_jsx(\"div\", {\n style: {\n display: 'none'\n },\n children: hiddenChildren\n }) : null];\n }, [children, RowWrapper, Wrapper, autoFocus]),\n _useMemo2 = _slicedToArray(_useMemo, 2),\n childrenDoms = _useMemo2[0],\n hiddenDoms = _useMemo2[1];\n return wrapSSR( /*#__PURE__*/_jsx(ColWrapper, {\n children: /*#__PURE__*/_jsxs(\"div\", {\n className: classNames(className, hashId, _defineProperty({}, \"\".concat(className, \"-twoLine\"), labelLayout === 'twoLine')),\n style: style,\n ref: ref,\n children: [hiddenDoms, (title || tooltip || extra) && /*#__PURE__*/_jsx(\"div\", {\n className: \"\".concat(className, \"-title \").concat(hashId).trim(),\n style: titleStyle,\n onClick: function onClick() {\n setCollapsed(!collapsed);\n },\n children: extra ? /*#__PURE__*/_jsxs(\"div\", {\n style: {\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n children: [titleDom, /*#__PURE__*/_jsx(\"span\", {\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n children: extra\n })]\n }) : titleDom\n }), /*#__PURE__*/_jsx(\"div\", {\n style: {\n display: collapsible && collapsed ? 'none' : undefined\n },\n children: childrenDoms\n })]\n })\n }));\n});\nGroup.displayName = 'ProForm-Group';\nexport default Group;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { Form } from 'antd';\nimport React from 'react';\nimport { BaseForm } from \"../../BaseForm\";\nimport { EditOrReadOnlyContext } from \"../../BaseForm/EditOrReadOnlyContext\";\nimport { Group, ProFormItem } from \"../../components\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction ProForm(props) {\n return /*#__PURE__*/_jsx(BaseForm, _objectSpread({\n layout: \"vertical\",\n submitter: {\n // 反转按钮,在正常模式下,按钮应该是主按钮在前\n render: function render(_, dom) {\n return dom.reverse();\n }\n },\n contentRender: function contentRender(items, submitter) {\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [items, submitter]\n });\n }\n }, props));\n}\nProForm.Group = Group;\nProForm.useForm = Form.useForm;\nProForm.Item = ProFormItem;\nProForm.useWatch = Form.useWatch;\nProForm.ErrorList = Form.ErrorList;\nProForm.Provider = Form.Provider;\nProForm.useFormInstance = Form.useFormInstance;\nProForm.EditOrReadOnlyContext = EditOrReadOnlyContext;\nexport { ProForm };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle as useAntdStyle } from '@ant-design/pro-provider';\nvar genProStyle = function genProStyle(token) {\n var _$concat$concat, _icon, _small, _token$componentCls;\n return _defineProperty({}, token.componentCls, (_token$componentCls = {\n display: 'inline-flex',\n gap: token.marginXXS,\n alignItems: 'center',\n height: '30px',\n paddingBlock: 0,\n paddingInline: 8,\n fontSize: token.fontSize,\n lineHeight: '30px',\n borderRadius: '2px',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: token.colorBgTextHover\n },\n '&-active': _defineProperty({\n paddingBlock: 0,\n paddingInline: 8,\n backgroundColor: token.colorBgTextHover\n }, \"&\".concat(token.componentCls, \"-allow-clear:hover:not(\").concat(token.componentCls, \"-disabled)\"), (_$concat$concat = {}, _defineProperty(_$concat$concat, \"\".concat(token.componentCls, \"-arrow\"), {\n display: 'none'\n }), _defineProperty(_$concat$concat, \"\".concat(token.componentCls, \"-close\"), {\n display: 'inline-flex'\n }), _$concat$concat))\n }, _defineProperty(_token$componentCls, \"\".concat(token.antCls, \"-select\"), _defineProperty({}, \"\".concat(token.antCls, \"-select-clear\"), {\n borderRadius: '50%'\n })), _defineProperty(_token$componentCls, \"\".concat(token.antCls, \"-picker\"), _defineProperty({}, \"\".concat(token.antCls, \"-picker-clear\"), {\n borderRadius: '50%'\n })), _defineProperty(_token$componentCls, '&-icon', (_icon = {\n color: token.colorIcon,\n transition: 'color 0.3s',\n fontSize: 12,\n verticalAlign: 'middle'\n }, _defineProperty(_icon, \"&\".concat(token.componentCls, \"-close\"), {\n display: 'none',\n fontSize: 12,\n alignItems: 'center',\n justifyContent: 'center',\n color: token.colorTextPlaceholder,\n borderRadius: '50%'\n }), _defineProperty(_icon, '&:hover', {\n color: token.colorIconHover\n }), _icon)), _defineProperty(_token$componentCls, '&-disabled', _defineProperty({\n color: token.colorTextPlaceholder,\n cursor: 'not-allowed'\n }, \"\".concat(token.componentCls, \"-icon\"), {\n color: token.colorTextPlaceholder\n })), _defineProperty(_token$componentCls, '&-small', (_small = {\n height: '24px',\n paddingBlock: 0,\n paddingInline: 4,\n fontSize: token.fontSizeSM,\n lineHeight: '24px'\n }, _defineProperty(_small, \"&\".concat(token.componentCls, \"-active\"), {\n paddingBlock: 0,\n paddingInline: 8\n }), _defineProperty(_small, \"\".concat(token.componentCls, \"-icon\"), {\n paddingBlock: 0,\n paddingInline: 0\n }), _defineProperty(_small, \"\".concat(token.componentCls, \"-close\"), {\n marginBlockStart: '-2px',\n paddingBlock: 4,\n paddingInline: 4,\n fontSize: '6px'\n }), _small)), _defineProperty(_token$componentCls, '&-bordered', {\n height: '32px',\n paddingBlock: 0,\n paddingInline: 8,\n border: \"\".concat(token.lineWidth, \"px solid \").concat(token.colorBorder),\n borderRadius: '@border-radius-base'\n }), _defineProperty(_token$componentCls, '&-bordered&-small', {\n height: '24px',\n paddingBlock: 0,\n paddingInline: 8\n }), _defineProperty(_token$componentCls, '&-bordered&-active', {\n backgroundColor: token.colorBgContainer\n }), _token$componentCls));\n};\nexport function useStyle(prefixCls) {\n return useAntdStyle('FieldLabel', function (token) {\n var proToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls)\n });\n return [genProStyle(proToken)];\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { CloseCircleFilled, DownOutlined } from '@ant-design/icons';\nimport { useIntl } from '@ant-design/pro-provider';\nimport { ConfigProvider } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext, useImperativeHandle, useRef } from 'react';\nimport { useStyle } from \"./style\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar FieldLabelFunction = function FieldLabelFunction(props, ref) {\n var _ConfigProvider$useCo, _ref2, _props$size, _classNames;\n var label = props.label,\n onClear = props.onClear,\n value = props.value,\n disabled = props.disabled,\n onLabelClick = props.onLabelClick,\n ellipsis = props.ellipsis,\n placeholder = props.placeholder,\n className = props.className,\n formatter = props.formatter,\n bordered = props.bordered,\n style = props.style,\n downIcon = props.downIcon,\n _props$allowClear = props.allowClear,\n allowClear = _props$allowClear === void 0 ? true : _props$allowClear;\n var _ref = (ConfigProvider === null || ConfigProvider === void 0 ? void 0 : (_ConfigProvider$useCo = ConfigProvider.useConfig) === null || _ConfigProvider$useCo === void 0 ? void 0 : _ConfigProvider$useCo.call(ConfigProvider)) || {\n componentSize: 'middle'\n },\n componentSize = _ref.componentSize;\n var size = componentSize;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-core-field-label');\n var _useStyle = useStyle(prefixCls),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var intl = useIntl();\n var clearRef = useRef(null);\n var labelRef = useRef(null);\n useImperativeHandle(ref, function () {\n return {\n labelRef: labelRef,\n clearRef: clearRef\n };\n });\n var wrapElements = function wrapElements(array) {\n if (array.every(function (item) {\n return typeof item === 'string';\n })) return array.join(',');\n return array.map(function (item, index) {\n var comma = index === array.length - 1 ? '' : ',';\n if (typeof item === 'string') {\n return /*#__PURE__*/_jsxs(\"span\", {\n children: [item, comma]\n }, index);\n }\n return /*#__PURE__*/_jsxs(\"span\", {\n style: {\n display: 'flex'\n },\n children: [item, comma]\n }, index);\n });\n };\n var formatterText = function formatterText(aValue) {\n if (formatter) {\n return formatter(aValue);\n }\n return Array.isArray(aValue) ? wrapElements(aValue) : aValue;\n };\n var getTextByValue = function getTextByValue(aLabel, aValue) {\n if (aValue !== undefined && aValue !== null && aValue !== '' && (!Array.isArray(aValue) || aValue.length)) {\n var _str$toString, _str$toString$substr;\n var prefix = aLabel ? /*#__PURE__*/_jsxs(\"span\", {\n onClick: function onClick() {\n onLabelClick === null || onLabelClick === void 0 ? void 0 : onLabelClick();\n },\n className: \"\".concat(prefixCls, \"-text\"),\n children: [aLabel, ': ']\n }) : '';\n var str = formatterText(aValue);\n if (!ellipsis) {\n return /*#__PURE__*/_jsxs(\"span\", {\n style: {\n display: 'inline-flex',\n alignItems: 'center'\n },\n children: [prefix, formatterText(aValue)]\n });\n }\n // 普通表单值最大长度41,如2022-06-21 20:11:25 ~ 2022-06-22 20:11:25\n var VALUE_MAX_LENGTH = 41;\n var getText = function getText() {\n var isArrayValue = Array.isArray(aValue) && aValue.length > 1;\n var unitText = intl.getMessage('form.lightFilter.itemUnit', '项');\n if (typeof str === 'string' && str.length > VALUE_MAX_LENGTH && isArrayValue) {\n return \"...\".concat(aValue.length).concat(unitText);\n }\n return '';\n };\n var tail = getText();\n return /*#__PURE__*/_jsxs(\"span\", {\n title: typeof str === 'string' ? str : undefined,\n style: {\n display: 'inline-flex',\n alignItems: 'center'\n },\n children: [prefix, /*#__PURE__*/_jsx(\"span\", {\n style: {\n paddingInlineStart: 4,\n display: 'flex'\n },\n children: typeof str === 'string' ? str === null || str === void 0 ? void 0 : (_str$toString = str.toString()) === null || _str$toString === void 0 ? void 0 : (_str$toString$substr = _str$toString.substr) === null || _str$toString$substr === void 0 ? void 0 : _str$toString$substr.call(_str$toString, 0, VALUE_MAX_LENGTH) : str\n }), tail]\n });\n }\n return aLabel || placeholder;\n };\n return wrapSSR( /*#__PURE__*/_jsxs(\"span\", {\n className: classNames(prefixCls, hashId, \"\".concat(prefixCls, \"-\").concat((_ref2 = (_props$size = props.size) !== null && _props$size !== void 0 ? _props$size : size) !== null && _ref2 !== void 0 ? _ref2 : 'middle'), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-active\"), !!value || value === 0), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-bordered\"), bordered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-allow-clear\"), allowClear), _classNames), className),\n style: style,\n ref: labelRef,\n onClick: function onClick() {\n var _props$onClick;\n props === null || props === void 0 ? void 0 : (_props$onClick = props.onClick) === null || _props$onClick === void 0 ? void 0 : _props$onClick.call(props);\n },\n children: [getTextByValue(label, value), (value || value === 0) && allowClear && /*#__PURE__*/_jsx(CloseCircleFilled, {\n role: \"button\",\n title: intl.getMessage('form.lightFilter.clear', '清除'),\n className: classNames(\"\".concat(prefixCls, \"-icon\"), hashId, \"\".concat(prefixCls, \"-close\")),\n onClick: function onClick(e) {\n if (!disabled) onClear === null || onClear === void 0 ? void 0 : onClear();\n e.stopPropagation();\n },\n ref: clearRef\n }), downIcon !== false ? downIcon !== null && downIcon !== void 0 ? downIcon : /*#__PURE__*/_jsx(DownOutlined, {\n className: classNames(\"\".concat(prefixCls, \"-icon\"), hashId, \"\".concat(prefixCls, \"-arrow\"))\n }) : null]\n }));\n};\nexport var FieldLabel = /*#__PURE__*/React.forwardRef(FieldLabelFunction);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle as useAntdStyle } from '@ant-design/pro-provider';\nvar genProStyle = function genProStyle(token) {\n return _defineProperty({}, token.componentCls, {\n display: 'flex',\n justifyContent: 'space-between',\n paddingBlock: 8,\n paddingInlineStart: 8,\n paddingInlineEnd: 8,\n borderBlockStart: \"1px solid \".concat(token.colorSplit)\n });\n};\nexport function useStyle(prefixCls) {\n return useAntdStyle('DropdownFooter', function (token) {\n var proToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls)\n });\n return [genProStyle(proToken)];\n });\n}","import { useIntl } from '@ant-design/pro-provider';\nimport { Button, ConfigProvider } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport { useStyle } from \"./style\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar DropdownFooter = function DropdownFooter(props) {\n var intl = useIntl();\n var onClear = props.onClear,\n onConfirm = props.onConfirm,\n disabled = props.disabled,\n footerRender = props.footerRender;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-core-dropdown-footer');\n var _useStyle = useStyle(prefixCls),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var defaultFooter = [/*#__PURE__*/_jsx(Button, {\n style: {\n visibility: onClear ? 'visible' : 'hidden'\n },\n type: \"link\",\n size: \"small\",\n disabled: disabled,\n onClick: function onClick(e) {\n if (onClear) {\n onClear(e);\n }\n e.stopPropagation();\n },\n children: intl.getMessage('form.lightFilter.clear', '清除')\n }, \"clear\"), /*#__PURE__*/_jsx(Button, {\n \"data-type\": \"confirm\",\n type: \"primary\",\n size: \"small\",\n onClick: onConfirm,\n disabled: disabled,\n children: intl.getMessage('form.lightFilter.confirm', '确认')\n }, \"confirm\")];\n if (footerRender === false || (footerRender === null || footerRender === void 0 ? void 0 : footerRender(onConfirm, onClear)) === false) {\n return null;\n }\n var renderDom = (footerRender === null || footerRender === void 0 ? void 0 : footerRender(onConfirm, onClear)) || defaultFooter;\n return wrapSSR( /*#__PURE__*/_jsx(\"div\", {\n className: classNames(prefixCls, hashId),\n onClick: function onClick(e) {\n return e.target.getAttribute('data-type') !== 'confirm' && e.stopPropagation();\n },\n children: renderDom\n }));\n};\nexport { DropdownFooter };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle as useAntdStyle } from '@ant-design/pro-provider';\nvar genProStyle = function genProStyle(token) {\n var _ref;\n return _ref = {}, _defineProperty(_ref, \"\".concat(token.componentCls, \"-label\"), {\n cursor: 'pointer'\n }), _defineProperty(_ref, \"\".concat(token.componentCls, \"-overlay\"), {\n minWidth: '200px',\n marginBlockStart: '4px'\n }), _defineProperty(_ref, \"\".concat(token.componentCls, \"-content\"), {\n paddingBlock: 16,\n paddingInline: 16\n }), _ref;\n};\nexport function useStyle(prefixCls) {\n return useAntdStyle('FilterDropdown', function (token) {\n var proToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls)\n });\n return [genProStyle(proToken)];\n });\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { ConfigProvider, Popover } from 'antd';\nimport React, { useContext, useRef } from 'react';\nimport { DropdownFooter } from \"../DropdownFooter\";\nimport \"antd/es/dropdown/style\";\nimport classNames from 'classnames';\nimport { openVisibleCompatible } from \"../../compareVersions/openVisibleCompatible\";\nimport { useStyle } from \"./style\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar FilterDropdown = function FilterDropdown(props) {\n var _classNames;\n var children = props.children,\n label = props.label,\n footer = props.footer,\n open = props.open,\n onOpenChange = props.onOpenChange,\n disabled = props.disabled,\n onVisibleChange = props.onVisibleChange,\n visible = props.visible,\n footerRender = props.footerRender,\n placement = props.placement;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('pro-core-field-dropdown');\n var _useStyle = useStyle(prefixCls),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n var dropdownOpenProps = openVisibleCompatible(open || visible || false, onOpenChange || onVisibleChange);\n var htmlRef = useRef(null);\n return wrapSSR( /*#__PURE__*/_jsx(Popover, _objectSpread(_objectSpread({\n placement: placement,\n trigger: ['click']\n }, dropdownOpenProps), {}, {\n overlayInnerStyle: {\n padding: 0\n },\n content: /*#__PURE__*/_jsxs(\"div\", {\n ref: htmlRef,\n className: classNames(\"\".concat(prefixCls, \"-overlay\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-overlay-\").concat(placement), placement), _defineProperty(_classNames, \"hashId\", hashId), _classNames)),\n children: [/*#__PURE__*/_jsx(ConfigProvider, {\n getPopupContainer: function getPopupContainer() {\n return htmlRef.current || document.body;\n },\n children: /*#__PURE__*/_jsx(\"div\", {\n className: \"\".concat(prefixCls, \"-content \").concat(hashId).trim(),\n children: children\n })\n }), footer && /*#__PURE__*/_jsx(DropdownFooter, _objectSpread({\n disabled: disabled,\n footerRender: footerRender\n }, footer))]\n }),\n children: /*#__PURE__*/_jsx(\"span\", {\n className: \"\".concat(prefixCls, \"-label \").concat(hashId).trim(),\n children: label\n })\n })));\n};\nexport { FilterDropdown };","// This icon file is generated automatically.\nvar InfoCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"info-circle\", \"theme\": \"outlined\" };\nexport default InfoCircleOutlined;\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 InfoCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/InfoCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar InfoCircleOutlined = function InfoCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: InfoCircleOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n InfoCircleOutlined.displayName = 'InfoCircleOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(InfoCircleOutlined);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { useStyle as useAntdStyle } from '@ant-design/pro-provider';\nvar genProStyle = function genProStyle(token) {\n return _defineProperty({}, token.componentCls, {\n display: 'inline-flex',\n alignItems: 'center',\n maxWidth: '100%',\n '&-icon': {\n display: 'block',\n marginInlineStart: '4px',\n cursor: 'pointer',\n '&:hover': {\n color: token.colorPrimary\n }\n },\n '&-title': {\n display: 'inline-flex',\n flex: '1'\n },\n '&-subtitle ': {\n marginInlineStart: 8,\n color: token.colorTextSecondary,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n whiteSpace: 'nowrap'\n },\n '&-title-ellipsis': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n wordBreak: 'keep-all'\n }\n });\n};\nexport function useStyle(prefixCls) {\n return useAntdStyle('LabelIconTip', function (token) {\n var proToken = _objectSpread(_objectSpread({}, token), {}, {\n componentCls: \".\".concat(prefixCls)\n });\n return [genProStyle(proToken)];\n });\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { InfoCircleOutlined } from '@ant-design/icons';\nimport { ConfigProvider, Tooltip } from 'antd';\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport { useStyle } from \"./style\";\n\n/**\n * 在 form 的 label 后面增加一个 tips 来展示一些说明文案\n *\n * @param props\n */\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport var LabelIconTip = /*#__PURE__*/React.memo(function (props) {\n var label = props.label,\n tooltip = props.tooltip,\n ellipsis = props.ellipsis,\n subTitle = props.subTitle;\n var _useContext = useContext(ConfigProvider.ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var className = getPrefixCls('pro-core-label-tip');\n var _useStyle = useStyle(className),\n wrapSSR = _useStyle.wrapSSR,\n hashId = _useStyle.hashId;\n if (!tooltip && !subTitle) {\n return /*#__PURE__*/_jsx(_Fragment, {\n children: label\n });\n }\n var tooltipProps = typeof tooltip === 'string' || /*#__PURE__*/React.isValidElement(tooltip) ? {\n title: tooltip\n } : tooltip;\n var icon = (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.icon) || /*#__PURE__*/_jsx(InfoCircleOutlined, {});\n return wrapSSR( /*#__PURE__*/_jsxs(\"div\", {\n className: classNames(className, hashId),\n onMouseDown: function onMouseDown(e) {\n return e.stopPropagation();\n },\n onMouseLeave: function onMouseLeave(e) {\n return e.stopPropagation();\n },\n onMouseMove: function onMouseMove(e) {\n return e.stopPropagation();\n },\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: classNames(\"\".concat(className, \"-title\"), hashId, _defineProperty({}, \"\".concat(className, \"-title-ellipsis\"), ellipsis)),\n children: label\n }), subTitle && /*#__PURE__*/_jsx(\"div\", {\n className: \"\".concat(className, \"-subtitle \").concat(hashId).trim(),\n children: subTitle\n }), tooltip && /*#__PURE__*/_jsx(Tooltip, _objectSpread(_objectSpread({}, tooltipProps), {}, {\n children: /*#__PURE__*/_jsx(\"span\", {\n className: \"\".concat(className, \"-icon \").concat(hashId).trim(),\n children: icon\n })\n }))]\n }));\n});","import React from 'react';\nexport var ProFormContext = /*#__PURE__*/React.createContext({});","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport dayjs from 'dayjs';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear';\nimport get from \"rc-util/es/utils/get\";\nimport { isNil } from \"../isNil\";\ndayjs.extend(quarterOfYear);\nexport var dateFormatterMap = {\n time: 'HH:mm:ss',\n timeRange: 'HH:mm:ss',\n date: 'YYYY-MM-DD',\n dateWeek: 'YYYY-wo',\n dateMonth: 'YYYY-MM',\n dateQuarter: 'YYYY-[Q]Q',\n dateYear: 'YYYY',\n dateRange: 'YYYY-MM-DD',\n dateTime: 'YYYY-MM-DD HH:mm:ss',\n dateTimeRange: 'YYYY-MM-DD HH:mm:ss'\n};\n/**\n * 判断是不是一个 object\n * @param {any} o\n * @returns boolean\n */\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n/**\n * 判断是否是一个的简单的 object\n * @param {{constructor:any}} o\n * @returns boolean\n */\nexport function isPlainObject(o) {\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n var ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n var prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\n/**\n * 一个比较hack的moment判断工具\n * @param {any} value\n * @returns boolean\n */\nvar isMoment = function isMoment(value) {\n return !!(value !== null && value !== void 0 && value._isAMomentObject);\n};\n\n/**\n * 根据不同的格式转化 dayjs\n * @param {dayjs.Dayjs} value\n * @param {string|((value:dayjs.Dayjs} dateFormatter\n * @param {string} valueType\n */\nexport var convertMoment = function convertMoment(value, dateFormatter, valueType) {\n if (!dateFormatter) {\n return value;\n }\n if (dayjs.isDayjs(value) || isMoment(value)) {\n if (dateFormatter === 'number') {\n return value.valueOf();\n }\n if (dateFormatter === 'string') {\n return value.format(dateFormatterMap[valueType] || 'YYYY-MM-DD HH:mm:ss');\n }\n if (typeof dateFormatter === 'string' && dateFormatter !== 'string') {\n return value.format(dateFormatter);\n }\n if (typeof dateFormatter === 'function') {\n return dateFormatter(value, valueType);\n }\n }\n return value;\n};\n\n/**\n * 这里主要是来转化一下数据 将 dayjs 转化为 string 将 all 默认删除\n * @param {T} value\n * @param {DateFormatter} dateFormatter\n * @param {Record} |{valueType\n * @param {boolean} omitNil?\n * @param {NamePath} parentKey?\n */\nexport var conversionMomentValue = function conversionMomentValue(value, dateFormatter, valueTypeMap, omitNil, parentKey) {\n var tmpValue = {};\n if (typeof window === 'undefined') return value;\n // 如果 value 是 string | null | Blob类型 其中之一,直接返回\n // 形如 {key: [File, File]} 的表单字段当进行第二次递归时会导致其直接越过 typeof value !== 'object' 这一判断 https://github.com/ant-design/pro-components/issues/2071\n if (_typeof(value) !== 'object' || isNil(value) || value instanceof Blob || Array.isArray(value)) {\n return value;\n }\n Object.keys(value).forEach(function (valueKey) {\n var namePath = parentKey ? [parentKey, valueKey].flat(1) : [valueKey];\n var valueFormatMap = get(valueTypeMap, namePath) || 'text';\n var valueType = 'text';\n var dateFormat;\n if (typeof valueFormatMap === 'string') {\n valueType = valueFormatMap;\n } else if (valueFormatMap) {\n valueType = valueFormatMap.valueType;\n dateFormat = valueFormatMap.dateFormat;\n }\n var itemValue = value[valueKey];\n if (isNil(itemValue) && omitNil) {\n return;\n }\n // 处理嵌套的情况\n if (isPlainObject(itemValue) &&\n // 不是数组\n !Array.isArray(itemValue) &&\n // 不是 dayjs\n !dayjs.isDayjs(itemValue) &&\n // 不是 moment\n !isMoment(itemValue)) {\n tmpValue[valueKey] = conversionMomentValue(itemValue, dateFormatter, valueTypeMap, omitNil, [valueKey]);\n return;\n }\n // 处理 FormList 的 value\n if (Array.isArray(itemValue)) {\n tmpValue[valueKey] = itemValue.map(function (arrayValue, index) {\n if (dayjs.isDayjs(arrayValue) || isMoment(arrayValue)) {\n return convertMoment(arrayValue, dateFormat || dateFormatter, valueType);\n }\n return conversionMomentValue(arrayValue, dateFormatter, valueTypeMap, omitNil, [valueKey, \"\".concat(index)].flat(1));\n });\n return;\n }\n tmpValue[valueKey] = convertMoment(itemValue, dateFormat || dateFormatter, valueType);\n });\n return tmpValue;\n};","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport { useEffect, useRef } from 'react';\nimport { isDeepEqualReact } from \"../../isDeepEqualReact\";\nimport { useDebounceFn } from \"../useDebounceFn\";\nexport var isDeepEqual = function isDeepEqual(a, b, ignoreKeys) {\n return isDeepEqualReact(a, b, ignoreKeys);\n};\nfunction useDeepCompareMemoize(value, ignoreKeys) {\n var ref = useRef();\n // it can be done by using useMemo as well\n // but useRef is rather cleaner and easier\n if (!isDeepEqual(value, ref.current, ignoreKeys)) {\n ref.current = value;\n }\n return ref.current;\n}\nexport function useDeepCompareEffect(effect, dependencies, ignoreKeys) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(effect, useDeepCompareMemoize(dependencies || [], ignoreKeys));\n}\nexport function useDeepCompareEffectDebounce(effect, dependencies, ignoreKeys, waitTime) {\n var effectDn = useDebounceFn( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n effect();\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n })), waitTime || 16);\n useEffect(function () {\n effectDn.run();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, useDeepCompareMemoize(dependencies || [], ignoreKeys));\n}","import { useRef } from 'react';\n\n/**\n * @see https://github.com/streamich/react-use/blob/master/docs/useLatest.md\n */\nexport var useLatest = function useLatest(value) {\n var ref = useRef(value);\n ref.current = value;\n return ref;\n};","import { useEffect, useRef } from 'react';\nexport var usePrevious = function usePrevious(state) {\n var ref = useRef();\n useEffect(function () {\n ref.current = state;\n });\n return ref.current;\n};","import _createForOfIteratorHelper from \"@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable no-restricted-syntax */\n/* eslint-disable no-continue */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable no-self-compare */\n/* eslint-disable eqeqeq */\n/* eslint-disable no-plusplus */\n// do not edit .js files directly - edit src/index.jst\n\nexport function isDeepEqualReact(a, b, ignoreKeys, debug) {\n if (a === b) return true;\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n if (a.constructor !== b.constructor) return false;\n var length;\n var i;\n var keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) if (!isDeepEqualReact(a[i], b[i], ignoreKeys, debug)) return false;\n return true;\n }\n if (a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n var _iterator = _createForOfIteratorHelper(a.entries()),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n i = _step.value;\n if (!b.has(i[0])) return false;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var _iterator2 = _createForOfIteratorHelper(a.entries()),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n i = _step2.value;\n if (!isDeepEqualReact(i[1], b.get(i[0]), ignoreKeys, debug)) return false;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return true;\n }\n if (a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n var _iterator3 = _createForOfIteratorHelper(a.entries()),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n i = _step3.value;\n if (!b.has(i[0])) return false;\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n return true;\n }\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n // @ts-ignore\n length = a.length;\n // @ts-ignore\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) if (a[i] !== b[i]) return false;\n return true;\n }\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf && a.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && a.toString) return a.toString() === b.toString();\n\n // eslint-disable-next-line prefer-const\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n if (ignoreKeys !== null && ignoreKeys !== void 0 && ignoreKeys.includes(key)) continue;\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n if (!isDeepEqualReact(a[key], b[key], ignoreKeys, debug)) {\n if (debug) {\n console.log(key);\n }\n return false;\n }\n }\n return true;\n }\n\n // true if both NaN, false otherwise\n return a !== a && b !== b;\n}","export var isNil = function isNil(value) {\n return value === null || value === undefined;\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable prefer-rest-params */\n\n/**\n * 用于合并 n 个对象\n * @param {any[]} ...rest\n * @returns T\n */\nvar merge = function merge() {\n var obj = {};\n for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n var il = rest.length;\n var key;\n var i = 0;\n for (; i < il; i += 1) {\n // eslint-disable-next-line no-restricted-syntax\n for (key in rest[i]) {\n if (rest[i].hasOwnProperty(key)) {\n if (_typeof(obj[key]) === 'object' && _typeof(rest[i][key]) === 'object' && obj[key] !== undefined && obj[key] !== null && !Array.isArray(obj[key]) && !Array.isArray(rest[i][key])) {\n obj[key] = _objectSpread(_objectSpread({}, obj[key]), rest[i][key]);\n } else {\n obj[key] = rest[i][key];\n }\n }\n }\n }\n return obj;\n};\nexport { merge };","/* eslint-disable prefer-const */\n\nvar index = 0;\nvar genNanoid = function genNanoid() {\n var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 21;\n if (typeof window === 'undefined') return (index += 1).toFixed(0);\n if (!window.crypto) return (index += 1).toFixed(0);\n var e = '',\n r = crypto.getRandomValues(new Uint8Array(t));\n // eslint-disable-next-line no-param-reassign\n for (; t--;) {\n var n = 63 & r[t];\n e += n < 36 ? n.toString(36) : n < 62 ? (n - 26).toString(36).toUpperCase() : n < 63 ? '_' : '-';\n }\n return e;\n};\n\n/**\n * 生成uuid,如果不支持 randomUUID,就用 genNanoid\n *\n * @returns string\n */\nexport var nanoid = function nanoid() {\n if (typeof window === 'undefined') return genNanoid();\n // @ts-ignore\n if (window.crypto && window.crypto.randomUUID && typeof crypto.randomUUID == 'function') {\n // @ts-ignore\n return crypto.randomUUID();\n }\n return genNanoid();\n};","/** 如果是个方法执行一下它 */\nexport function runFunction(valueEnum) {\n if (typeof valueEnum === 'function') {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n return valueEnum.apply(void 0, rest);\n }\n return valueEnum;\n}","import cjsModule from '../index.js'\n\nexport const configure = cjsModule.configure\n\nexport const stringify = cjsModule\nexport default cjsModule\n","import { configure } from 'safe-stable-stringify';\nvar stringify = configure({\n bigint: true,\n circularValue: 'Magic circle!',\n deterministic: false,\n maximumDepth: 4\n // maximumBreadth: 4,\n});\n\nexport { configure, stringify };\nexport default stringify;","export function isWindow(obj) {\n return obj !== null && obj !== undefined && obj === obj.window;\n}\nexport default function getScroll(target, top) {\n var _a, _b;\n if (typeof window === 'undefined') {\n return 0;\n }\n const method = top ? 'scrollTop' : 'scrollLeft';\n let result = 0;\n if (isWindow(target)) {\n result = target[top ? 'pageYOffset' : 'pageXOffset'];\n } else if (target instanceof Document) {\n result = target.documentElement[method];\n } else if (target instanceof HTMLElement) {\n result = target[method];\n } else if (target) {\n // According to the type inference, the `target` is `never` type.\n // Since we configured the loose mode type checking, and supports mocking the target with such shape below::\n // `{ documentElement: { scrollLeft: 200, scrollTop: 400 } }`,\n // the program may falls into this branch.\n // Check the corresponding tests for details. Don't sure what is the real scenario this happens.\n result = target[method];\n }\n if (target && !isWindow(target) && typeof result !== 'number') {\n result = (_b = ((_a = target.ownerDocument) !== null && _a !== void 0 ? _a : target).documentElement) === null || _b === void 0 ? void 0 : _b[method];\n }\n return result;\n}","// eslint-disable-next-line import/prefer-default-export\nexport function easeInOutCubic(t, b, c, d) {\n const cc = c - b;\n t /= d / 2;\n if (t < 1) {\n return cc / 2 * t * t * t + b;\n }\n // eslint-disable-next-line no-return-assign\n return cc / 2 * ((t -= 2) * t * t + 2) + b;\n}","import raf from \"rc-util/es/raf\";\nimport { easeInOutCubic } from './easings';\nimport getScroll, { isWindow } from './getScroll';\nexport default function scrollTo(y) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n getContainer = () => window,\n callback,\n duration = 450\n } = options;\n const container = getContainer();\n const scrollTop = getScroll(container, true);\n const startTime = Date.now();\n const frameFunc = () => {\n const timestamp = Date.now();\n const time = timestamp - startTime;\n const nextScrollTop = easeInOutCubic(time > duration ? duration : time, scrollTop, y, duration);\n if (isWindow(container)) {\n container.scrollTo(window.pageXOffset, nextScrollTop);\n } else if (container instanceof Document || container.constructor.name === 'HTMLDocument') {\n container.documentElement.scrollTop = nextScrollTop;\n } else {\n container.scrollTop = nextScrollTop;\n }\n if (time < duration) {\n raf(frameFunc);\n } else if (typeof callback === 'function') {\n callback();\n }\n };\n raf(frameFunc);\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/**\n * Wrap of sub component which need use as Button capacity (like Icon component).\n *\n * This helps accessibility reader to tread as a interactive button to operation.\n */\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nconst inlineStyle = {\n border: 0,\n background: 'transparent',\n padding: 0,\n lineHeight: 'inherit',\n display: 'inline-block'\n};\nconst TransButton = /*#__PURE__*/React.forwardRef((props, ref) => {\n const onKeyDown = event => {\n const {\n keyCode\n } = event;\n if (keyCode === KeyCode.ENTER) {\n event.preventDefault();\n }\n };\n const onKeyUp = event => {\n const {\n keyCode\n } = event;\n const {\n onClick\n } = props;\n if (keyCode === KeyCode.ENTER && onClick) {\n onClick();\n }\n };\n const {\n style,\n noStyle,\n disabled\n } = props,\n restProps = __rest(props, [\"style\", \"noStyle\", \"disabled\"]);\n let mergedStyle = {};\n if (!noStyle) {\n mergedStyle = Object.assign({}, inlineStyle);\n }\n if (disabled) {\n mergedStyle.pointerEvents = 'none';\n }\n mergedStyle = Object.assign(Object.assign({}, mergedStyle), style);\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n role: \"button\",\n tabIndex: 0,\n ref: ref\n }, restProps, {\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n style: mergedStyle\n }));\n});\nexport default TransButton;","import { Keyframes } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genComponentStyleHook, genPresetColor, mergeToken } from '../../theme/internal';\nconst antStatusProcessing = new Keyframes('antStatusProcessing', {\n '0%': {\n transform: 'scale(0.8)',\n opacity: 0.5\n },\n '100%': {\n transform: 'scale(2.4)',\n opacity: 0\n }\n});\nconst antZoomBadgeIn = new Keyframes('antZoomBadgeIn', {\n '0%': {\n transform: 'scale(0) translate(50%, -50%)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1) translate(50%, -50%)'\n }\n});\nconst antZoomBadgeOut = new Keyframes('antZoomBadgeOut', {\n '0%': {\n transform: 'scale(1) translate(50%, -50%)'\n },\n '100%': {\n transform: 'scale(0) translate(50%, -50%)',\n opacity: 0\n }\n});\nconst antNoWrapperZoomBadgeIn = new Keyframes('antNoWrapperZoomBadgeIn', {\n '0%': {\n transform: 'scale(0)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)'\n }\n});\nconst antNoWrapperZoomBadgeOut = new Keyframes('antNoWrapperZoomBadgeOut', {\n '0%': {\n transform: 'scale(1)'\n },\n '100%': {\n transform: 'scale(0)',\n opacity: 0\n }\n});\nconst antBadgeLoadingCircle = new Keyframes('antBadgeLoadingCircle', {\n '0%': {\n transformOrigin: '50%'\n },\n '100%': {\n transform: 'translate(50%, -50%) rotate(360deg)',\n transformOrigin: '50%'\n }\n});\nconst genSharedBadgeStyle = token => {\n const {\n componentCls,\n iconCls,\n antCls,\n badgeShadowSize,\n badgeHeightSm,\n motionDurationSlow,\n badgeStatusSize,\n marginXS\n } = token;\n const numberPrefixCls = `${antCls}-scroll-number`;\n const colorPreset = genPresetColor(token, (colorKey, _ref) => {\n let {\n darkColor\n } = _ref;\n return {\n [`&${componentCls} ${componentCls}-color-${colorKey}`]: {\n background: darkColor,\n [`&:not(${componentCls}-count)`]: {\n color: darkColor\n }\n }\n };\n });\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n width: 'fit-content',\n lineHeight: 1,\n [`${componentCls}-count`]: {\n zIndex: token.badgeZIndex,\n minWidth: token.badgeHeight,\n height: token.badgeHeight,\n color: token.badgeTextColor,\n fontWeight: token.badgeFontWeight,\n fontSize: token.badgeFontSize,\n lineHeight: `${token.badgeHeight}px`,\n whiteSpace: 'nowrap',\n textAlign: 'center',\n background: token.badgeColor,\n borderRadius: token.badgeHeight / 2,\n boxShadow: `0 0 0 ${badgeShadowSize}px ${token.badgeShadowColor}`,\n transition: `background ${token.motionDurationMid}`,\n a: {\n color: token.badgeTextColor\n },\n 'a:hover': {\n color: token.badgeTextColor\n },\n 'a:hover &': {\n background: token.badgeColorHover\n }\n },\n [`${componentCls}-count-sm`]: {\n minWidth: badgeHeightSm,\n height: badgeHeightSm,\n fontSize: token.badgeFontSizeSm,\n lineHeight: `${badgeHeightSm}px`,\n borderRadius: badgeHeightSm / 2\n },\n [`${componentCls}-multiple-words`]: {\n padding: `0 ${token.paddingXS}px`,\n bdi: {\n unicodeBidi: 'plaintext'\n }\n },\n [`${componentCls}-dot`]: {\n zIndex: token.badgeZIndex,\n width: token.badgeDotSize,\n minWidth: token.badgeDotSize,\n height: token.badgeDotSize,\n background: token.badgeColor,\n borderRadius: '100%',\n boxShadow: `0 0 0 ${badgeShadowSize}px ${token.badgeShadowColor}`\n },\n [`${componentCls}-dot${numberPrefixCls}`]: {\n transition: `background ${motionDurationSlow}`\n },\n [`${componentCls}-count, ${componentCls}-dot, ${numberPrefixCls}-custom-component`]: {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n transform: 'translate(50%, -50%)',\n transformOrigin: '100% 0%',\n [`&${iconCls}-spin`]: {\n animationName: antBadgeLoadingCircle,\n animationDuration: '1s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear'\n }\n },\n [`&${componentCls}-status`]: {\n lineHeight: 'inherit',\n verticalAlign: 'baseline',\n [`${componentCls}-status-dot`]: {\n position: 'relative',\n top: -1,\n display: 'inline-block',\n width: badgeStatusSize,\n height: badgeStatusSize,\n verticalAlign: 'middle',\n borderRadius: '50%'\n },\n [`${componentCls}-status-success`]: {\n backgroundColor: token.colorSuccess\n },\n [`${componentCls}-status-processing`]: {\n overflow: 'visible',\n color: token.colorPrimary,\n backgroundColor: token.colorPrimary,\n '&::after': {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n width: '100%',\n height: '100%',\n borderWidth: badgeShadowSize,\n borderStyle: 'solid',\n borderColor: 'inherit',\n borderRadius: '50%',\n animationName: antStatusProcessing,\n animationDuration: token.badgeProcessingDuration,\n animationIterationCount: 'infinite',\n animationTimingFunction: 'ease-in-out',\n content: '\"\"'\n }\n },\n [`${componentCls}-status-default`]: {\n backgroundColor: token.colorTextPlaceholder\n },\n [`${componentCls}-status-error`]: {\n backgroundColor: token.colorError\n },\n [`${componentCls}-status-warning`]: {\n backgroundColor: token.colorWarning\n },\n [`${componentCls}-status-text`]: {\n marginInlineStart: marginXS,\n color: token.colorText,\n fontSize: token.fontSize\n }\n }\n }), colorPreset), {\n [`${componentCls}-zoom-appear, ${componentCls}-zoom-enter`]: {\n animationName: antZoomBadgeIn,\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseOutBack,\n animationFillMode: 'both'\n },\n [`${componentCls}-zoom-leave`]: {\n animationName: antZoomBadgeOut,\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseOutBack,\n animationFillMode: 'both'\n },\n [`&${componentCls}-not-a-wrapper`]: {\n [`${componentCls}-zoom-appear, ${componentCls}-zoom-enter`]: {\n animationName: antNoWrapperZoomBadgeIn,\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseOutBack\n },\n [`${componentCls}-zoom-leave`]: {\n animationName: antNoWrapperZoomBadgeOut,\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseOutBack\n },\n [`&:not(${componentCls}-status)`]: {\n verticalAlign: 'middle'\n },\n [`${numberPrefixCls}-custom-component, ${componentCls}-count`]: {\n transform: 'none'\n },\n [`${numberPrefixCls}-custom-component, ${numberPrefixCls}`]: {\n position: 'relative',\n top: 'auto',\n display: 'block',\n transformOrigin: '50% 50%'\n }\n },\n [`${numberPrefixCls}`]: {\n overflow: 'hidden',\n [`${numberPrefixCls}-only`]: {\n position: 'relative',\n display: 'inline-block',\n height: token.badgeHeight,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseOutBack}`,\n WebkitTransformStyle: 'preserve-3d',\n WebkitBackfaceVisibility: 'hidden',\n [`> p${numberPrefixCls}-only-unit`]: {\n height: token.badgeHeight,\n margin: 0,\n WebkitTransformStyle: 'preserve-3d',\n WebkitBackfaceVisibility: 'hidden'\n }\n },\n [`${numberPrefixCls}-symbol`]: {\n verticalAlign: 'top'\n }\n },\n // ====================== RTL =======================\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-count, ${componentCls}-dot, ${numberPrefixCls}-custom-component`]: {\n transform: 'translate(-50%, -50%)'\n }\n }\n })\n };\n};\n// ============================== Export ==============================\nexport const prepareToken = token => {\n const {\n fontSize,\n lineHeight,\n fontSizeSM,\n lineWidth,\n marginXS,\n colorBorderBg\n } = token;\n const badgeFontHeight = Math.round(fontSize * lineHeight);\n const badgeShadowSize = lineWidth;\n const badgeZIndex = 'auto';\n const badgeHeight = badgeFontHeight - 2 * badgeShadowSize;\n const badgeTextColor = token.colorBgContainer;\n const badgeFontWeight = 'normal';\n const badgeFontSize = fontSizeSM;\n const badgeColor = token.colorError;\n const badgeColorHover = token.colorErrorHover;\n const badgeHeightSm = fontSize;\n const badgeDotSize = fontSizeSM / 2;\n const badgeFontSizeSm = fontSizeSM;\n const badgeStatusSize = fontSizeSM / 2;\n const badgeToken = mergeToken(token, {\n badgeFontHeight,\n badgeShadowSize,\n badgeZIndex,\n badgeHeight,\n badgeTextColor,\n badgeFontWeight,\n badgeFontSize,\n badgeColor,\n badgeColorHover,\n badgeShadowColor: colorBorderBg,\n badgeHeightSm,\n badgeDotSize,\n badgeFontSizeSm,\n badgeStatusSize,\n badgeProcessingDuration: '1.2s',\n badgeRibbonOffset: marginXS,\n // Follow token just by Design. Not related with token\n badgeRibbonCornerTransform: 'scaleY(0.75)',\n badgeRibbonCornerFilter: `brightness(75%)`\n });\n return badgeToken;\n};\nexport default genComponentStyleHook('Badge', token => {\n const badgeToken = prepareToken(token);\n return [genSharedBadgeStyle(badgeToken)];\n});","import { prepareToken } from '.';\nimport { resetComponent } from '../../style';\nimport { genComponentStyleHook, genPresetColor } from '../../theme/internal';\n// ============================== Ribbon ==============================\nconst genRibbonStyle = token => {\n const {\n antCls,\n badgeFontHeight,\n marginXS,\n badgeRibbonOffset\n } = token;\n const ribbonPrefixCls = `${antCls}-ribbon`;\n const ribbonWrapperPrefixCls = `${antCls}-ribbon-wrapper`;\n const statusRibbonPreset = genPresetColor(token, (colorKey, _ref) => {\n let {\n darkColor\n } = _ref;\n return {\n [`&${ribbonPrefixCls}-color-${colorKey}`]: {\n background: darkColor,\n color: darkColor\n }\n };\n });\n return {\n [`${ribbonWrapperPrefixCls}`]: {\n position: 'relative'\n },\n [`${ribbonPrefixCls}`]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: marginXS,\n padding: `0 ${token.paddingXS}px`,\n color: token.colorPrimary,\n lineHeight: `${badgeFontHeight}px`,\n whiteSpace: 'nowrap',\n backgroundColor: token.colorPrimary,\n borderRadius: token.borderRadiusSM,\n [`${ribbonPrefixCls}-text`]: {\n color: token.colorTextLightSolid\n },\n [`${ribbonPrefixCls}-corner`]: {\n position: 'absolute',\n top: '100%',\n width: badgeRibbonOffset,\n height: badgeRibbonOffset,\n color: 'currentcolor',\n border: `${badgeRibbonOffset / 2}px solid`,\n transform: token.badgeRibbonCornerTransform,\n transformOrigin: 'top',\n filter: token.badgeRibbonCornerFilter\n }\n }), statusRibbonPreset), {\n [`&${ribbonPrefixCls}-placement-end`]: {\n insetInlineEnd: -badgeRibbonOffset,\n borderEndEndRadius: 0,\n [`${ribbonPrefixCls}-corner`]: {\n insetInlineEnd: 0,\n borderInlineEndColor: 'transparent',\n borderBlockEndColor: 'transparent'\n }\n },\n [`&${ribbonPrefixCls}-placement-start`]: {\n insetInlineStart: -badgeRibbonOffset,\n borderEndStartRadius: 0,\n [`${ribbonPrefixCls}-corner`]: {\n insetInlineStart: 0,\n borderBlockEndColor: 'transparent',\n borderInlineStartColor: 'transparent'\n }\n },\n // ====================== RTL =======================\n '&-rtl': {\n direction: 'rtl'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook(['Badge', 'Ribbon'], token => {\n const badgeToken = prepareToken(token);\n return [genRibbonStyle(badgeToken)];\n});","import * as React from 'react';\nimport classNames from 'classnames';\nimport { isPresetColor } from '../_util/colors';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style/ribbon';\nconst Ribbon = props => {\n const {\n className,\n prefixCls: customizePrefixCls,\n style,\n color,\n children,\n text,\n placement = 'end'\n } = props;\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('ribbon', customizePrefixCls);\n const colorInPreset = isPresetColor(color, false);\n const ribbonCls = classNames(prefixCls, `${prefixCls}-placement-${placement}`, {\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-color-${color}`]: colorInPreset\n }, className);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const colorStyle = {};\n const cornerColorStyle = {};\n if (color && !colorInPreset) {\n colorStyle.background = color;\n cornerColorStyle.color = color;\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-wrapper`, hashId)\n }, children, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(ribbonCls, hashId),\n style: Object.assign(Object.assign({}, colorStyle), style)\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-text`\n }, text), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-corner`,\n style: cornerColorStyle\n }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Ribbon.displayName = 'Ribbon';\n}\nexport default Ribbon;","import classNames from 'classnames';\nimport * as React from 'react';\nfunction UnitNumber(_ref) {\n let {\n prefixCls,\n value,\n current,\n offset = 0\n } = _ref;\n let style;\n if (offset) {\n style = {\n position: 'absolute',\n top: `${offset}00%`,\n left: 0\n };\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n style: style,\n className: classNames(`${prefixCls}-only-unit`, {\n current\n })\n }, value);\n}\nfunction getOffset(start, end, unit) {\n let index = start;\n let offset = 0;\n while ((index + 10) % 10 !== end) {\n index += unit;\n offset += unit;\n }\n return offset;\n}\nexport default function SingleNumber(props) {\n const {\n prefixCls,\n count: originCount,\n value: originValue\n } = props;\n const value = Number(originValue);\n const count = Math.abs(originCount);\n const [prevValue, setPrevValue] = React.useState(value);\n const [prevCount, setPrevCount] = React.useState(count);\n // ============================= Events =============================\n const onTransitionEnd = () => {\n setPrevValue(value);\n setPrevCount(count);\n };\n // Fallback if transition event not support\n React.useEffect(() => {\n const timeout = setTimeout(() => {\n onTransitionEnd();\n }, 1000);\n return () => {\n clearTimeout(timeout);\n };\n }, [value]);\n // ============================= Render =============================\n // Render unit list\n let unitNodes;\n let offsetStyle;\n if (prevValue === value || Number.isNaN(value) || Number.isNaN(prevValue)) {\n // Nothing to change\n unitNodes = [/*#__PURE__*/React.createElement(UnitNumber, Object.assign({}, props, {\n key: value,\n current: true\n }))];\n offsetStyle = {\n transition: 'none'\n };\n } else {\n unitNodes = [];\n // Fill basic number units\n const end = value + 10;\n const unitNumberList = [];\n for (let index = value; index <= end; index += 1) {\n unitNumberList.push(index);\n }\n // Fill with number unit nodes\n const prevIndex = unitNumberList.findIndex(n => n % 10 === prevValue);\n unitNodes = unitNumberList.map((n, index) => {\n const singleUnit = n % 10;\n return /*#__PURE__*/React.createElement(UnitNumber, Object.assign({}, props, {\n key: n,\n value: singleUnit,\n offset: index - prevIndex,\n current: index === prevIndex\n }));\n });\n // Calculate container offset value\n const unit = prevCount < count ? 1 : -1;\n offsetStyle = {\n transform: `translateY(${-getOffset(prevValue, value, unit)}00%)`\n };\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-only`,\n style: offsetStyle,\n onTransitionEnd: onTransitionEnd\n }, unitNodes);\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 { cloneElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport SingleNumber from './SingleNumber';\nconst ScrollNumber = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n count,\n className,\n motionClassName,\n style,\n title,\n show,\n component: Component = 'sup',\n children\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"count\", \"className\", \"motionClassName\", \"style\", \"title\", \"show\", \"component\", \"children\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('scroll-number', customizePrefixCls);\n // ============================ Render ============================\n const newProps = Object.assign(Object.assign({}, restProps), {\n 'data-show': show,\n style,\n className: classNames(prefixCls, className, motionClassName),\n title: title\n });\n // Only integer need motion\n let numberNodes = count;\n if (count && Number(count) % 1 === 0) {\n const numberList = String(count).split('');\n numberNodes = /*#__PURE__*/React.createElement(\"bdi\", null, numberList.map((num, i) => /*#__PURE__*/React.createElement(SingleNumber, {\n prefixCls: prefixCls,\n count: Number(count),\n value: num,\n // eslint-disable-next-line react/no-array-index-key\n key: numberList.length - i\n })));\n }\n // allow specify the border\n // mock border-color by box-shadow for compatible with old usage:\n // \n if (style && style.borderColor) {\n newProps.style = Object.assign(Object.assign({}, style), {\n boxShadow: `0 0 0 1px ${style.borderColor} inset`\n });\n }\n if (children) {\n return cloneElement(children, oriProps => ({\n className: classNames(`${prefixCls}-custom-component`, oriProps === null || oriProps === void 0 ? void 0 : oriProps.className, motionClassName)\n }));\n }\n return /*#__PURE__*/React.createElement(Component, Object.assign({}, newProps, {\n ref: ref\n }), numberNodes);\n});\nexport default ScrollNumber;","'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 CSSMotion from 'rc-motion';\nimport * as React from 'react';\nimport { useMemo, useRef } from 'react';\nimport { isPresetColor } from '../_util/colors';\nimport { cloneElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport Ribbon from './Ribbon';\nimport ScrollNumber from './ScrollNumber';\nimport useStyle from './style';\nconst InternalBadge = (props, ref) => {\n var _a, _b, _c, _d, _e;\n const {\n prefixCls: customizePrefixCls,\n scrollNumberPrefixCls: customizeScrollNumberPrefixCls,\n children,\n status,\n text,\n color,\n count = null,\n overflowCount = 99,\n dot = false,\n size = 'default',\n title,\n offset,\n style,\n className,\n rootClassName,\n classNames,\n styles,\n showZero = false\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"scrollNumberPrefixCls\", \"children\", \"status\", \"text\", \"color\", \"count\", \"overflowCount\", \"dot\", \"size\", \"title\", \"offset\", \"style\", \"className\", \"rootClassName\", \"classNames\", \"styles\", \"showZero\"]);\n const {\n getPrefixCls,\n direction,\n badge\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('badge', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n // ================================ Misc ================================\n const numberedDisplayCount = count > overflowCount ? `${overflowCount}+` : count;\n const isZero = numberedDisplayCount === '0' || numberedDisplayCount === 0;\n const ignoreCount = count === null || isZero && !showZero;\n const hasStatus = (status !== null && status !== undefined || color !== null && color !== undefined) && ignoreCount;\n const showAsDot = dot && !isZero;\n const mergedCount = showAsDot ? '' : numberedDisplayCount;\n const isHidden = useMemo(() => {\n const isEmpty = mergedCount === null || mergedCount === undefined || mergedCount === '';\n return (isEmpty || isZero && !showZero) && !showAsDot;\n }, [mergedCount, isZero, showZero, showAsDot]);\n // Count should be cache in case hidden change it\n const countRef = useRef(count);\n if (!isHidden) {\n countRef.current = count;\n }\n const livingCount = countRef.current;\n // We need cache count since remove motion should not change count display\n const displayCountRef = useRef(mergedCount);\n if (!isHidden) {\n displayCountRef.current = mergedCount;\n }\n const displayCount = displayCountRef.current;\n // We will cache the dot status to avoid shaking on leaved motion\n const isDotRef = useRef(showAsDot);\n if (!isHidden) {\n isDotRef.current = showAsDot;\n }\n // =============================== Styles ===============================\n const mergedStyle = useMemo(() => {\n if (!offset) {\n return Object.assign(Object.assign({}, badge === null || badge === void 0 ? void 0 : badge.style), style);\n }\n const offsetStyle = {\n marginTop: offset[1]\n };\n if (direction === 'rtl') {\n offsetStyle.left = parseInt(offset[0], 10);\n } else {\n offsetStyle.right = -parseInt(offset[0], 10);\n }\n return Object.assign(Object.assign(Object.assign({}, offsetStyle), badge === null || badge === void 0 ? void 0 : badge.style), style);\n }, [direction, offset, style, badge === null || badge === void 0 ? void 0 : badge.style]);\n // =============================== Render ===============================\n // >>> Title\n const titleNode = title !== null && title !== void 0 ? title : typeof livingCount === 'string' || typeof livingCount === 'number' ? livingCount : undefined;\n // >>> Status Text\n const statusTextNode = isHidden || !text ? null : /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-status-text`\n }, text);\n // >>> Display Component\n const displayNode = !livingCount || typeof livingCount !== 'object' ? undefined : cloneElement(livingCount, oriProps => ({\n style: Object.assign(Object.assign({}, mergedStyle), oriProps.style)\n }));\n // InternalColor\n const isInternalColor = isPresetColor(color, false);\n // Shared styles\n const statusCls = classnames(classNames === null || classNames === void 0 ? void 0 : classNames.indicator, (_a = badge === null || badge === void 0 ? void 0 : badge.classNames) === null || _a === void 0 ? void 0 : _a.indicator, {\n [`${prefixCls}-status-dot`]: hasStatus,\n [`${prefixCls}-status-${status}`]: !!status,\n [`${prefixCls}-color-${color}`]: isInternalColor\n });\n const statusStyle = {};\n if (color && !isInternalColor) {\n statusStyle.color = color;\n statusStyle.background = color;\n }\n const badgeClassName = classnames(prefixCls, {\n [`${prefixCls}-status`]: hasStatus,\n [`${prefixCls}-not-a-wrapper`]: !children,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, badge === null || badge === void 0 ? void 0 : badge.className, (_b = badge === null || badge === void 0 ? void 0 : badge.classNames) === null || _b === void 0 ? void 0 : _b.root, classNames === null || classNames === void 0 ? void 0 : classNames.root, hashId);\n // \n if (!children && hasStatus) {\n const statusTextColor = mergedStyle.color;\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", Object.assign({}, restProps, {\n className: badgeClassName,\n style: Object.assign(Object.assign(Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.root), (_c = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _c === void 0 ? void 0 : _c.root), mergedStyle)\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: statusCls,\n style: Object.assign(Object.assign(Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.indicator), (_d = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _d === void 0 ? void 0 : _d.indicator), statusStyle)\n }), text && /*#__PURE__*/React.createElement(\"span\", {\n style: {\n color: statusTextColor\n },\n className: `${prefixCls}-status-text`\n }, text)));\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", Object.assign({\n ref: ref\n }, restProps, {\n className: badgeClassName,\n style: Object.assign(Object.assign({}, (_e = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _e === void 0 ? void 0 : _e.root), styles === null || styles === void 0 ? void 0 : styles.root)\n }), children, /*#__PURE__*/React.createElement(CSSMotion, {\n visible: !isHidden,\n motionName: `${prefixCls}-zoom`,\n motionAppear: false,\n motionDeadline: 1000\n }, _ref => {\n let {\n className: motionClassName,\n ref: scrollNumberRef\n } = _ref;\n var _a, _b;\n const scrollNumberPrefixCls = getPrefixCls('scroll-number', customizeScrollNumberPrefixCls);\n const isDot = isDotRef.current;\n const scrollNumberCls = classnames(classNames === null || classNames === void 0 ? void 0 : classNames.indicator, (_a = badge === null || badge === void 0 ? void 0 : badge.classNames) === null || _a === void 0 ? void 0 : _a.indicator, {\n [`${prefixCls}-dot`]: isDot,\n [`${prefixCls}-count`]: !isDot,\n [`${prefixCls}-count-sm`]: size === 'small',\n [`${prefixCls}-multiple-words`]: !isDot && displayCount && displayCount.toString().length > 1,\n [`${prefixCls}-status-${status}`]: !!status,\n [`${prefixCls}-color-${color}`]: isInternalColor\n });\n let scrollNumberStyle = Object.assign(Object.assign(Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.indicator), (_b = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _b === void 0 ? void 0 : _b.indicator), mergedStyle);\n if (color && !isInternalColor) {\n scrollNumberStyle = scrollNumberStyle || {};\n scrollNumberStyle.background = color;\n }\n return /*#__PURE__*/React.createElement(ScrollNumber, {\n prefixCls: scrollNumberPrefixCls,\n show: !isHidden,\n motionClassName: motionClassName,\n className: scrollNumberCls,\n count: displayCount,\n title: titleNode,\n style: scrollNumberStyle,\n key: \"scrollNumber\",\n ref: scrollNumberRef\n }, displayNode);\n }), statusTextNode));\n};\nconst Badge = /*#__PURE__*/React.forwardRef(InternalBadge);\nBadge.Ribbon = Ribbon;\nif (process.env.NODE_ENV !== 'production') {\n Badge.displayName = 'Badge';\n}\nexport default Badge;","import * as React from 'react';\nvar CascaderContext = /*#__PURE__*/React.createContext(null);\nexport default CascaderContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nexport var SEARCH_MARK = '__rc_cascader_search_mark__';\nvar defaultFilter = function defaultFilter(search, options, _ref) {\n var label = _ref.label;\n return options.some(function (opt) {\n return String(opt[label]).toLowerCase().includes(search.toLowerCase());\n });\n};\nvar defaultRender = function defaultRender(inputValue, path, prefixCls, fieldNames) {\n return path.map(function (opt) {\n return opt[fieldNames.label];\n }).join(' / ');\n};\nexport default (function (search, options, fieldNames, prefixCls, config, changeOnSelect) {\n var _config$filter = config.filter,\n filter = _config$filter === void 0 ? defaultFilter : _config$filter,\n _config$render = config.render,\n render = _config$render === void 0 ? defaultRender : _config$render,\n _config$limit = config.limit,\n limit = _config$limit === void 0 ? 50 : _config$limit,\n sort = config.sort;\n return React.useMemo(function () {\n var filteredOptions = [];\n if (!search) {\n return [];\n }\n function dig(list, pathOptions) {\n list.forEach(function (option) {\n // Perf saving when `sort` is disabled and `limit` is provided\n if (!sort && limit > 0 && filteredOptions.length >= limit) {\n return;\n }\n var connectedPathOptions = [].concat(_toConsumableArray(pathOptions), [option]);\n var children = option[fieldNames.children];\n\n // If current option is filterable\n if (\n // If is leaf option\n !children || children.length === 0 ||\n // If is changeOnSelect\n changeOnSelect) {\n if (filter(search, connectedPathOptions, {\n label: fieldNames.label\n })) {\n var _objectSpread2;\n filteredOptions.push(_objectSpread(_objectSpread({}, option), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, fieldNames.label, render(search, connectedPathOptions, prefixCls, fieldNames)), _defineProperty(_objectSpread2, SEARCH_MARK, connectedPathOptions), _defineProperty(_objectSpread2, fieldNames.children, undefined), _objectSpread2)));\n }\n }\n if (children) {\n dig(option[fieldNames.children], connectedPathOptions);\n }\n });\n }\n dig(options, []);\n\n // Do sort\n if (sort) {\n filteredOptions.sort(function (a, b) {\n return sort(a[SEARCH_MARK], b[SEARCH_MARK], search, fieldNames);\n });\n }\n return limit > 0 ? filteredOptions.slice(0, limit) : filteredOptions;\n }, [search, options, fieldNames, prefixCls, render, changeOnSelect, filter, sort, limit]);\n});","import { SEARCH_MARK } from \"../hooks/useSearchOptions\";\nexport var VALUE_SPLIT = '__RC_CASCADER_SPLIT__';\nexport var SHOW_PARENT = 'SHOW_PARENT';\nexport var SHOW_CHILD = 'SHOW_CHILD';\n\n/**\n * Will convert value to string, and join with `VALUE_SPLIT`\n */\nexport function toPathKey(value) {\n return value.join(VALUE_SPLIT);\n}\n\n/**\n * Batch convert value to string, and join with `VALUE_SPLIT`\n */\nexport function toPathKeys(value) {\n return value.map(toPathKey);\n}\nexport function toPathValueStr(pathKey) {\n return pathKey.split(VALUE_SPLIT);\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n label = _ref.label,\n value = _ref.value,\n children = _ref.children;\n var val = value || 'value';\n return {\n label: label || 'label',\n value: val,\n key: val,\n children: children || 'children'\n };\n}\nexport function isLeaf(option, fieldNames) {\n var _option$isLeaf, _option$fieldNames$ch;\n return (_option$isLeaf = option.isLeaf) !== null && _option$isLeaf !== void 0 ? _option$isLeaf : !((_option$fieldNames$ch = option[fieldNames.children]) !== null && _option$fieldNames$ch !== void 0 && _option$fieldNames$ch.length);\n}\nexport function scrollIntoParentView(element) {\n var parent = element.parentElement;\n if (!parent) {\n return;\n }\n var elementToParent = element.offsetTop - parent.offsetTop; // offsetParent may not be parent.\n if (elementToParent - parent.scrollTop < 0) {\n parent.scrollTo({\n top: elementToParent\n });\n } else if (elementToParent + element.offsetHeight - parent.scrollTop > parent.offsetHeight) {\n parent.scrollTo({\n top: elementToParent + element.offsetHeight - parent.offsetHeight\n });\n }\n}\nexport function getFullPathKeys(options, fieldNames) {\n return options.map(function (item) {\n var _item$SEARCH_MARK;\n return (_item$SEARCH_MARK = item[SEARCH_MARK]) === null || _item$SEARCH_MARK === void 0 ? void 0 : _item$SEARCH_MARK.map(function (opt) {\n return opt[fieldNames.value];\n });\n });\n}","import { SHOW_CHILD } from \"./commonUtil\";\nexport function formatStrategyValues(pathKeys, getKeyPathEntities, showCheckedStrategy) {\n var valueSet = new Set(pathKeys);\n var keyPathEntities = getKeyPathEntities();\n return pathKeys.filter(function (key) {\n var entity = keyPathEntities[key];\n var parent = entity ? entity.parent : null;\n var children = entity ? entity.children : null;\n if (entity && entity.node.disabled) {\n return true;\n }\n return showCheckedStrategy === SHOW_CHILD ? !(children && children.some(function (child) {\n return child.key && valueSet.has(child.key);\n })) : !(parent && !parent.node.disabled && valueSet.has(parent.key));\n });\n}\nexport function toPathOptions(valueCells, options, fieldNames) {\n var stringMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var currentList = options;\n var valueOptions = [];\n var _loop = function _loop() {\n var _currentList, _currentList2, _foundOption$fieldNam;\n var valueCell = valueCells[i];\n var foundIndex = (_currentList = currentList) === null || _currentList === void 0 ? void 0 : _currentList.findIndex(function (option) {\n var val = option[fieldNames.value];\n return stringMode ? String(val) === String(valueCell) : val === valueCell;\n });\n var foundOption = foundIndex !== -1 ? (_currentList2 = currentList) === null || _currentList2 === void 0 ? void 0 : _currentList2[foundIndex] : null;\n valueOptions.push({\n value: (_foundOption$fieldNam = foundOption === null || foundOption === void 0 ? void 0 : foundOption[fieldNames.value]) !== null && _foundOption$fieldNam !== void 0 ? _foundOption$fieldNam : valueCell,\n index: foundIndex,\n option: foundOption\n });\n currentList = foundOption === null || foundOption === void 0 ? void 0 : foundOption[fieldNames.children];\n };\n for (var i = 0; i < valueCells.length; i += 1) {\n _loop();\n }\n return valueOptions;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { toPathOptions } from \"../utils/treeUtil\";\nimport * as React from 'react';\nimport { toPathKey } from \"../utils/commonUtil\";\nexport default (function (rawValues, options, fieldNames, multiple, displayRender) {\n return React.useMemo(function () {\n var mergedDisplayRender = displayRender ||\n // Default displayRender\n function (labels) {\n var mergedLabels = multiple ? labels.slice(-1) : labels;\n var SPLIT = ' / ';\n if (mergedLabels.every(function (label) {\n return ['string', 'number'].includes(_typeof(label));\n })) {\n return mergedLabels.join(SPLIT);\n }\n\n // If exist non-string value, use ReactNode instead\n return mergedLabels.reduce(function (list, label, index) {\n var keyedLabel = /*#__PURE__*/React.isValidElement(label) ? /*#__PURE__*/React.cloneElement(label, {\n key: index\n }) : label;\n if (index === 0) {\n return [keyedLabel];\n }\n return [].concat(_toConsumableArray(list), [SPLIT, keyedLabel]);\n }, []);\n };\n return rawValues.map(function (valueCells) {\n var _valueOptions, _valueOptions$option;\n var valueOptions = toPathOptions(valueCells, options, fieldNames);\n var label = mergedDisplayRender(valueOptions.map(function (_ref) {\n var _option$fieldNames$la;\n var option = _ref.option,\n value = _ref.value;\n return (_option$fieldNames$la = option === null || option === void 0 ? void 0 : option[fieldNames.label]) !== null && _option$fieldNames$la !== void 0 ? _option$fieldNames$la : value;\n }), valueOptions.map(function (_ref2) {\n var option = _ref2.option;\n return option;\n }));\n var value = toPathKey(valueCells);\n return {\n label: label,\n value: value,\n key: value,\n valueCells: valueCells,\n disabled: (_valueOptions = valueOptions[valueOptions.length - 1]) === null || _valueOptions === void 0 ? void 0 : (_valueOptions$option = _valueOptions.option) === null || _valueOptions$option === void 0 ? void 0 : _valueOptions$option.disabled\n };\n });\n }, [rawValues, options, fieldNames, displayRender, multiple]);\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport { VALUE_SPLIT } from \"../utils/commonUtil\";\n/** Lazy parse options data into conduct-able info to avoid perf issue in single mode */\nexport default (function (options, fieldNames) {\n var cacheRef = React.useRef({\n options: null,\n info: null\n });\n var getEntities = React.useCallback(function () {\n if (cacheRef.current.options !== options) {\n cacheRef.current.options = options;\n cacheRef.current.info = convertDataToEntities(options, {\n fieldNames: fieldNames,\n initWrapper: function initWrapper(wrapper) {\n return _objectSpread(_objectSpread({}, wrapper), {}, {\n pathKeyEntities: {}\n });\n },\n processEntity: function processEntity(entity, wrapper) {\n var pathKey = entity.nodes.map(function (node) {\n return node[fieldNames.value];\n }).join(VALUE_SPLIT);\n wrapper.pathKeyEntities[pathKey] = entity;\n\n // Overwrite origin key.\n // this is very hack but we need let conduct logic work with connect path\n entity.key = pathKey;\n }\n });\n }\n return cacheRef.current.info.pathKeyEntities;\n }, [fieldNames, options]);\n return getEntities;\n});","import * as React from 'react';\nimport { toPathOptions } from \"../utils/treeUtil\";\nexport default (function (options, fieldNames) {\n return React.useCallback(function (rawValues) {\n var missingValues = [];\n var existsValues = [];\n rawValues.forEach(function (valueCell) {\n var pathOptions = toPathOptions(valueCell, options, fieldNames);\n if (pathOptions.every(function (opt) {\n return opt.option;\n })) {\n existsValues.push(valueCell);\n } else {\n missingValues.push(valueCell);\n }\n });\n return [existsValues, missingValues];\n }, [options, fieldNames]);\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\n// Convert `showSearch` to unique config\nexport default function useSearchConfig(showSearch) {\n return React.useMemo(function () {\n if (!showSearch) {\n return [false, {}];\n }\n var searchConfig = {\n matchInputWidth: true,\n limit: 50\n };\n if (showSearch && _typeof(showSearch) === 'object') {\n searchConfig = _objectSpread(_objectSpread({}, searchConfig), showSearch);\n }\n if (searchConfig.limit <= 0) {\n delete searchConfig.limit;\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"'limit' of showSearch should be positive number or false.\");\n }\n }\n return [true, searchConfig];\n }, [showSearch]);\n}","import * as React from 'react';\nvar CacheContent = /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (_, next) {\n return !next.open;\n});\nif (process.env.NODE_ENV !== 'production') {\n CacheContent.displayName = 'CacheContent';\n}\nexport default CacheContent;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CascaderContext from \"../context\";\nexport default function Checkbox(_ref) {\n var _classNames;\n var prefixCls = _ref.prefixCls,\n checked = _ref.checked,\n halfChecked = _ref.halfChecked,\n disabled = _ref.disabled,\n onClick = _ref.onClick,\n disableCheckbox = _ref.disableCheckbox;\n var _React$useContext = React.useContext(CascaderContext),\n checkable = _React$useContext.checkable;\n var customCheckbox = typeof checkable !== 'boolean' ? checkable : null;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checked\"), checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-indeterminate\"), !checked && halfChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled || disableCheckbox), _classNames)),\n onClick: onClick\n }, customCheckbox);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport CascaderContext from \"../context\";\nimport { SEARCH_MARK } from \"../hooks/useSearchOptions\";\nimport { isLeaf, toPathKey } from \"../utils/commonUtil\";\nimport Checkbox from \"./Checkbox\";\nexport var FIX_LABEL = '__cascader_fix_label__';\nexport default function Column(_ref) {\n var prefixCls = _ref.prefixCls,\n multiple = _ref.multiple,\n options = _ref.options,\n activeValue = _ref.activeValue,\n prevValuePath = _ref.prevValuePath,\n onToggleOpen = _ref.onToggleOpen,\n onSelect = _ref.onSelect,\n onActive = _ref.onActive,\n checkedSet = _ref.checkedSet,\n halfCheckedSet = _ref.halfCheckedSet,\n loadingKeys = _ref.loadingKeys,\n isSelectable = _ref.isSelectable,\n searchValue = _ref.searchValue;\n var menuPrefixCls = \"\".concat(prefixCls, \"-menu\");\n var menuItemPrefixCls = \"\".concat(prefixCls, \"-menu-item\");\n var _React$useContext = React.useContext(CascaderContext),\n fieldNames = _React$useContext.fieldNames,\n changeOnSelect = _React$useContext.changeOnSelect,\n expandTrigger = _React$useContext.expandTrigger,\n expandIcon = _React$useContext.expandIcon,\n loadingIcon = _React$useContext.loadingIcon,\n dropdownMenuColumnStyle = _React$useContext.dropdownMenuColumnStyle;\n var hoverOpen = expandTrigger === 'hover';\n\n // ============================ Option ============================\n var optionInfoList = React.useMemo(function () {\n return options.map(function (option) {\n var _option$FIX_LABEL;\n var disabled = option.disabled,\n disableCheckbox = option.disableCheckbox;\n var searchOptions = option[SEARCH_MARK];\n var label = (_option$FIX_LABEL = option[FIX_LABEL]) !== null && _option$FIX_LABEL !== void 0 ? _option$FIX_LABEL : option[fieldNames.label];\n var value = option[fieldNames.value];\n var isMergedLeaf = isLeaf(option, fieldNames);\n\n // Get real value of option. Search option is different way.\n var fullPath = searchOptions ? searchOptions.map(function (opt) {\n return opt[fieldNames.value];\n }) : [].concat(_toConsumableArray(prevValuePath), [value]);\n var fullPathKey = toPathKey(fullPath);\n var isLoading = loadingKeys.includes(fullPathKey);\n\n // >>>>> checked\n var checked = checkedSet.has(fullPathKey);\n\n // >>>>> halfChecked\n var halfChecked = halfCheckedSet.has(fullPathKey);\n return {\n disabled: disabled,\n label: label,\n value: value,\n isLeaf: isMergedLeaf,\n isLoading: isLoading,\n checked: checked,\n halfChecked: halfChecked,\n option: option,\n disableCheckbox: disableCheckbox,\n fullPath: fullPath,\n fullPathKey: fullPathKey\n };\n });\n }, [options, checkedSet, fieldNames, halfCheckedSet, loadingKeys, prevValuePath]);\n\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: menuPrefixCls,\n role: \"menu\"\n }, optionInfoList.map(function (_ref2) {\n var _classNames;\n var disabled = _ref2.disabled,\n label = _ref2.label,\n value = _ref2.value,\n isMergedLeaf = _ref2.isLeaf,\n isLoading = _ref2.isLoading,\n checked = _ref2.checked,\n halfChecked = _ref2.halfChecked,\n option = _ref2.option,\n fullPath = _ref2.fullPath,\n fullPathKey = _ref2.fullPathKey,\n disableCheckbox = _ref2.disableCheckbox;\n // >>>>> Open\n var triggerOpenPath = function triggerOpenPath() {\n if (disabled || searchValue) {\n return;\n }\n var nextValueCells = _toConsumableArray(fullPath);\n if (hoverOpen && isMergedLeaf) {\n nextValueCells.pop();\n }\n onActive(nextValueCells);\n };\n\n // >>>>> Selection\n var triggerSelect = function triggerSelect() {\n if (isSelectable(option)) {\n onSelect(fullPath, isMergedLeaf);\n }\n };\n\n // >>>>> Title\n var title;\n if (typeof option.title === 'string') {\n title = option.title;\n } else if (typeof label === 'string') {\n title = label;\n }\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(\"li\", {\n key: fullPathKey,\n className: classNames(menuItemPrefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(menuItemPrefixCls, \"-expand\"), !isMergedLeaf), _defineProperty(_classNames, \"\".concat(menuItemPrefixCls, \"-active\"), activeValue === value || activeValue === fullPathKey), _defineProperty(_classNames, \"\".concat(menuItemPrefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(menuItemPrefixCls, \"-loading\"), isLoading), _classNames)),\n style: dropdownMenuColumnStyle,\n role: \"menuitemcheckbox\",\n title: title,\n \"aria-checked\": checked,\n \"data-path-key\": fullPathKey,\n onClick: function onClick() {\n triggerOpenPath();\n if (disableCheckbox) {\n return;\n }\n if (!multiple || isMergedLeaf) {\n triggerSelect();\n }\n },\n onDoubleClick: function onDoubleClick() {\n if (changeOnSelect) {\n onToggleOpen(false);\n }\n },\n onMouseEnter: function onMouseEnter() {\n if (hoverOpen) {\n triggerOpenPath();\n }\n },\n onMouseDown: function onMouseDown(e) {\n // Prevent selector from blurring\n e.preventDefault();\n }\n }, multiple && /*#__PURE__*/React.createElement(Checkbox, {\n prefixCls: \"\".concat(prefixCls, \"-checkbox\"),\n checked: checked,\n halfChecked: halfChecked,\n disabled: disabled || disableCheckbox,\n disableCheckbox: disableCheckbox,\n onClick: function onClick(e) {\n if (disableCheckbox) {\n return;\n }\n e.stopPropagation();\n triggerSelect();\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(menuItemPrefixCls, \"-content\")\n }, label), !isLoading && expandIcon && !isMergedLeaf && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(menuItemPrefixCls, \"-expand-icon\")\n }, expandIcon), isLoading && loadingIcon && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(menuItemPrefixCls, \"-loading-icon\")\n }, loadingIcon));\n }));\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport CascaderContext from \"../context\";\nimport { useBaseProps } from 'rc-select';\n\n/**\n * Control the active open options path.\n */\nexport default (function () {\n var _useBaseProps = useBaseProps(),\n multiple = _useBaseProps.multiple,\n open = _useBaseProps.open;\n var _React$useContext = React.useContext(CascaderContext),\n values = _React$useContext.values;\n\n // Record current dropdown active options\n // This also control the open status\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeValueCells = _React$useState2[0],\n setActiveValueCells = _React$useState2[1];\n React.useEffect(function () {\n if (open && !multiple) {\n var firstValueCells = values[0];\n setActiveValueCells(firstValueCells || []);\n }\n }, /* eslint-disable react-hooks/exhaustive-deps */\n [open]\n /* eslint-enable react-hooks/exhaustive-deps */);\n\n return [activeValueCells, setActiveValueCells];\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useBaseProps } from 'rc-select';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { SEARCH_MARK } from \"../hooks/useSearchOptions\";\nimport { getFullPathKeys, toPathKey } from \"../utils/commonUtil\";\nexport default (function (ref, options, fieldNames, activeValueCells, setActiveValueCells, onKeyBoardSelect) {\n var _useBaseProps = useBaseProps(),\n direction = _useBaseProps.direction,\n searchValue = _useBaseProps.searchValue,\n toggleOpen = _useBaseProps.toggleOpen,\n open = _useBaseProps.open;\n var rtl = direction === 'rtl';\n var _React$useMemo = React.useMemo(function () {\n var activeIndex = -1;\n var currentOptions = options;\n var mergedActiveIndexes = [];\n var mergedActiveValueCells = [];\n var len = activeValueCells.length;\n var pathKeys = getFullPathKeys(options, fieldNames);\n\n // Fill validate active value cells and index\n var _loop = function _loop(i) {\n // Mark the active index for current options\n var nextActiveIndex = currentOptions.findIndex(function (option, index) {\n return (pathKeys[index] ? toPathKey(pathKeys[index]) : option[fieldNames.value]) === activeValueCells[i];\n });\n if (nextActiveIndex === -1) {\n return \"break\";\n }\n activeIndex = nextActiveIndex;\n mergedActiveIndexes.push(activeIndex);\n mergedActiveValueCells.push(activeValueCells[i]);\n currentOptions = currentOptions[activeIndex][fieldNames.children];\n };\n for (var i = 0; i < len && currentOptions; i += 1) {\n var _ret = _loop(i);\n if (_ret === \"break\") break;\n }\n\n // Fill last active options\n var activeOptions = options;\n for (var _i = 0; _i < mergedActiveIndexes.length - 1; _i += 1) {\n activeOptions = activeOptions[mergedActiveIndexes[_i]][fieldNames.children];\n }\n return [mergedActiveValueCells, activeIndex, activeOptions, pathKeys];\n }, [activeValueCells, fieldNames, options]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 4),\n validActiveValueCells = _React$useMemo2[0],\n lastActiveIndex = _React$useMemo2[1],\n lastActiveOptions = _React$useMemo2[2],\n fullPathKeys = _React$useMemo2[3];\n\n // Update active value cells and scroll to target element\n var internalSetActiveValueCells = function internalSetActiveValueCells(next) {\n setActiveValueCells(next);\n };\n\n // Same options offset\n var offsetActiveOption = function offsetActiveOption(offset) {\n var len = lastActiveOptions.length;\n var currentIndex = lastActiveIndex;\n if (currentIndex === -1 && offset < 0) {\n currentIndex = len;\n }\n for (var i = 0; i < len; i += 1) {\n currentIndex = (currentIndex + offset + len) % len;\n var _option = lastActiveOptions[currentIndex];\n if (_option && !_option.disabled) {\n var nextActiveCells = validActiveValueCells.slice(0, -1).concat(fullPathKeys[currentIndex] ? toPathKey(fullPathKeys[currentIndex]) : _option[fieldNames.value]);\n internalSetActiveValueCells(nextActiveCells);\n return;\n }\n }\n };\n\n // Different options offset\n var prevColumn = function prevColumn() {\n if (validActiveValueCells.length > 1) {\n var nextActiveCells = validActiveValueCells.slice(0, -1);\n internalSetActiveValueCells(nextActiveCells);\n } else {\n toggleOpen(false);\n }\n };\n var nextColumn = function nextColumn() {\n var _lastActiveOptions$la;\n var nextOptions = ((_lastActiveOptions$la = lastActiveOptions[lastActiveIndex]) === null || _lastActiveOptions$la === void 0 ? void 0 : _lastActiveOptions$la[fieldNames.children]) || [];\n var nextOption = nextOptions.find(function (option) {\n return !option.disabled;\n });\n if (nextOption) {\n var nextActiveCells = [].concat(_toConsumableArray(validActiveValueCells), [nextOption[fieldNames.value]]);\n internalSetActiveValueCells(nextActiveCells);\n }\n };\n React.useImperativeHandle(ref, function () {\n return {\n // scrollTo: treeRef.current?.scrollTo,\n onKeyDown: function onKeyDown(event) {\n var which = event.which;\n switch (which) {\n // >>> Arrow keys\n case KeyCode.UP:\n case KeyCode.DOWN:\n {\n var offset = 0;\n if (which === KeyCode.UP) {\n offset = -1;\n } else if (which === KeyCode.DOWN) {\n offset = 1;\n }\n if (offset !== 0) {\n offsetActiveOption(offset);\n }\n break;\n }\n case KeyCode.LEFT:\n {\n if (searchValue) {\n break;\n }\n if (rtl) {\n nextColumn();\n } else {\n prevColumn();\n }\n break;\n }\n case KeyCode.RIGHT:\n {\n if (searchValue) {\n break;\n }\n if (rtl) {\n prevColumn();\n } else {\n nextColumn();\n }\n break;\n }\n case KeyCode.BACKSPACE:\n {\n if (!searchValue) {\n prevColumn();\n }\n break;\n }\n\n // >>> Select\n case KeyCode.ENTER:\n {\n if (validActiveValueCells.length) {\n var _option2 = lastActiveOptions[lastActiveIndex];\n\n // Search option should revert back of origin options\n var originOptions = (_option2 === null || _option2 === void 0 ? void 0 : _option2[SEARCH_MARK]) || [];\n if (originOptions.length) {\n onKeyBoardSelect(originOptions.map(function (opt) {\n return opt[fieldNames.value];\n }), originOptions[originOptions.length - 1]);\n } else {\n onKeyBoardSelect(validActiveValueCells, lastActiveOptions[lastActiveIndex]);\n }\n }\n break;\n }\n\n // >>> Close\n case KeyCode.ESC:\n {\n toggleOpen(false);\n if (open) {\n event.stopPropagation();\n }\n }\n }\n },\n onKeyUp: function onKeyUp() {}\n };\n });\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 _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/* eslint-disable default-case */\nimport classNames from 'classnames';\nimport { useBaseProps } from 'rc-select';\nimport * as React from 'react';\nimport CascaderContext from \"../context\";\nimport { getFullPathKeys, isLeaf, scrollIntoParentView, toPathKey, toPathKeys, toPathValueStr } from \"../utils/commonUtil\";\nimport { toPathOptions } from \"../utils/treeUtil\";\nimport CacheContent from \"./CacheContent\";\nimport Column, { FIX_LABEL } from \"./Column\";\nimport useActive from \"./useActive\";\nimport useKeyboard from \"./useKeyboard\";\nvar RefOptionList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _optionColumns$, _optionColumns$$optio, _ref3, _classNames;\n var _useBaseProps = useBaseProps(),\n prefixCls = _useBaseProps.prefixCls,\n multiple = _useBaseProps.multiple,\n searchValue = _useBaseProps.searchValue,\n toggleOpen = _useBaseProps.toggleOpen,\n notFoundContent = _useBaseProps.notFoundContent,\n direction = _useBaseProps.direction,\n open = _useBaseProps.open;\n var containerRef = React.useRef();\n var rtl = direction === 'rtl';\n var _React$useContext = React.useContext(CascaderContext),\n options = _React$useContext.options,\n values = _React$useContext.values,\n halfValues = _React$useContext.halfValues,\n fieldNames = _React$useContext.fieldNames,\n changeOnSelect = _React$useContext.changeOnSelect,\n onSelect = _React$useContext.onSelect,\n searchOptions = _React$useContext.searchOptions,\n dropdownPrefixCls = _React$useContext.dropdownPrefixCls,\n loadData = _React$useContext.loadData,\n expandTrigger = _React$useContext.expandTrigger;\n var mergedPrefixCls = dropdownPrefixCls || prefixCls;\n\n // ========================= loadData =========================\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n loadingKeys = _React$useState2[0],\n setLoadingKeys = _React$useState2[1];\n var internalLoadData = function internalLoadData(valueCells) {\n // Do not load when search\n if (!loadData || searchValue) {\n return;\n }\n var optionList = toPathOptions(valueCells, options, fieldNames);\n var rawOptions = optionList.map(function (_ref) {\n var option = _ref.option;\n return option;\n });\n var lastOption = rawOptions[rawOptions.length - 1];\n if (lastOption && !isLeaf(lastOption, fieldNames)) {\n var pathKey = toPathKey(valueCells);\n setLoadingKeys(function (keys) {\n return [].concat(_toConsumableArray(keys), [pathKey]);\n });\n loadData(rawOptions);\n }\n };\n\n // zombieJ: This is bad. We should make this same as `rc-tree` to use Promise instead.\n React.useEffect(function () {\n if (loadingKeys.length) {\n loadingKeys.forEach(function (loadingKey) {\n var valueStrCells = toPathValueStr(loadingKey);\n var optionList = toPathOptions(valueStrCells, options, fieldNames, true).map(function (_ref2) {\n var option = _ref2.option;\n return option;\n });\n var lastOption = optionList[optionList.length - 1];\n if (!lastOption || lastOption[fieldNames.children] || isLeaf(lastOption, fieldNames)) {\n setLoadingKeys(function (keys) {\n return keys.filter(function (key) {\n return key !== loadingKey;\n });\n });\n }\n });\n }\n }, [options, loadingKeys, fieldNames]);\n\n // ========================== Values ==========================\n var checkedSet = React.useMemo(function () {\n return new Set(toPathKeys(values));\n }, [values]);\n var halfCheckedSet = React.useMemo(function () {\n return new Set(toPathKeys(halfValues));\n }, [halfValues]);\n\n // ====================== Accessibility =======================\n var _useActive = useActive(),\n _useActive2 = _slicedToArray(_useActive, 2),\n activeValueCells = _useActive2[0],\n setActiveValueCells = _useActive2[1];\n\n // =========================== Path ===========================\n var onPathOpen = function onPathOpen(nextValueCells) {\n setActiveValueCells(nextValueCells);\n\n // Trigger loadData\n internalLoadData(nextValueCells);\n };\n var isSelectable = function isSelectable(option) {\n var disabled = option.disabled;\n var isMergedLeaf = isLeaf(option, fieldNames);\n return !disabled && (isMergedLeaf || changeOnSelect || multiple);\n };\n var onPathSelect = function onPathSelect(valuePath, leaf) {\n var fromKeyboard = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n onSelect(valuePath);\n if (!multiple && (leaf || changeOnSelect && (expandTrigger === 'hover' || fromKeyboard))) {\n toggleOpen(false);\n }\n };\n\n // ========================== Option ==========================\n var mergedOptions = React.useMemo(function () {\n if (searchValue) {\n return searchOptions;\n }\n return options;\n }, [searchValue, searchOptions, options]);\n\n // ========================== Column ==========================\n var optionColumns = React.useMemo(function () {\n var optionList = [{\n options: mergedOptions\n }];\n var currentList = mergedOptions;\n var fullPathKeys = getFullPathKeys(currentList, fieldNames);\n var _loop = function _loop() {\n var activeValueCell = activeValueCells[i];\n var currentOption = currentList.find(function (option, index) {\n return (fullPathKeys[index] ? toPathKey(fullPathKeys[index]) : option[fieldNames.value]) === activeValueCell;\n });\n var subOptions = currentOption === null || currentOption === void 0 ? void 0 : currentOption[fieldNames.children];\n if (!(subOptions !== null && subOptions !== void 0 && subOptions.length)) {\n return \"break\";\n }\n currentList = subOptions;\n optionList.push({\n options: subOptions\n });\n };\n for (var i = 0; i < activeValueCells.length; i += 1) {\n var _ret = _loop();\n if (_ret === \"break\") break;\n }\n return optionList;\n }, [mergedOptions, activeValueCells, fieldNames]);\n\n // ========================= Keyboard =========================\n var onKeyboardSelect = function onKeyboardSelect(selectValueCells, option) {\n if (isSelectable(option)) {\n onPathSelect(selectValueCells, isLeaf(option, fieldNames), true);\n }\n };\n useKeyboard(ref, mergedOptions, fieldNames, activeValueCells, onPathOpen, onKeyboardSelect);\n\n // >>>>> Active Scroll\n React.useEffect(function () {\n for (var i = 0; i < activeValueCells.length; i += 1) {\n var _containerRef$current;\n var cellPath = activeValueCells.slice(0, i + 1);\n var cellKeyPath = toPathKey(cellPath);\n var ele = (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.querySelector(\"li[data-path-key=\\\"\".concat(cellKeyPath.replace(/\\\\{0,2}\"/g, '\\\\\"'), \"\\\"]\") // matches unescaped double quotes\n );\n if (ele) {\n scrollIntoParentView(ele);\n }\n }\n }, [activeValueCells]);\n\n // ========================== Render ==========================\n // >>>>> Empty\n var isEmpty = !((_optionColumns$ = optionColumns[0]) !== null && _optionColumns$ !== void 0 && (_optionColumns$$optio = _optionColumns$.options) !== null && _optionColumns$$optio !== void 0 && _optionColumns$$optio.length);\n var emptyList = [(_ref3 = {}, _defineProperty(_ref3, fieldNames.value, '__EMPTY__'), _defineProperty(_ref3, FIX_LABEL, notFoundContent), _defineProperty(_ref3, \"disabled\", true), _ref3)];\n var columnProps = _objectSpread(_objectSpread({}, props), {}, {\n multiple: !isEmpty && multiple,\n onSelect: onPathSelect,\n onActive: onPathOpen,\n onToggleOpen: toggleOpen,\n checkedSet: checkedSet,\n halfCheckedSet: halfCheckedSet,\n loadingKeys: loadingKeys,\n isSelectable: isSelectable\n });\n\n // >>>>> Columns\n var mergedOptionColumns = isEmpty ? [{\n options: emptyList\n }] : optionColumns;\n var columnNodes = mergedOptionColumns.map(function (col, index) {\n var prevValuePath = activeValueCells.slice(0, index);\n var activeValue = activeValueCells[index];\n return /*#__PURE__*/React.createElement(Column, _extends({\n key: index\n }, columnProps, {\n searchValue: searchValue,\n prefixCls: mergedPrefixCls,\n options: col.options,\n prevValuePath: prevValuePath,\n activeValue: activeValue\n }));\n });\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(CacheContent, {\n open: open\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(mergedPrefixCls, \"-menus\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(mergedPrefixCls, \"-menu-empty\"), isEmpty), _defineProperty(_classNames, \"\".concat(mergedPrefixCls, \"-rtl\"), rtl), _classNames)),\n ref: containerRef\n }, columnNodes));\n});\nexport default RefOptionList;","import warning from \"rc-util/es/warning\";\nfunction warningProps(props) {\n var onPopupVisibleChange = props.onPopupVisibleChange,\n popupVisible = props.popupVisible,\n popupClassName = props.popupClassName,\n popupPlacement = props.popupPlacement;\n warning(!onPopupVisibleChange, '`onPopupVisibleChange` is deprecated. Please use `onDropdownVisibleChange` instead.');\n warning(popupVisible === undefined, '`popupVisible` is deprecated. Please use `open` instead.');\n warning(popupClassName === undefined, '`popupClassName` is deprecated. Please use `dropdownClassName` instead.');\n warning(popupPlacement === undefined, '`popupPlacement` is deprecated. Please use `placement` instead.');\n}\n\n// value in Cascader options should not be null\nexport function warningNullOptions(options, fieldNames) {\n if (options) {\n var recursiveOptions = function recursiveOptions(optionsList) {\n for (var i = 0; i < optionsList.length; i++) {\n var option = optionsList[i];\n if (option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value] === null) {\n warning(false, '`value` in Cascader options should not be `null`.');\n return true;\n }\n if (Array.isArray(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children]) && recursiveOptions(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children])) {\n return true;\n }\n }\n };\n recursiveOptions(options);\n }\n}\nexport default warningProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"fieldNames\", \"defaultValue\", \"value\", \"changeOnSelect\", \"onChange\", \"displayRender\", \"checkable\", \"searchValue\", \"onSearch\", \"showSearch\", \"expandTrigger\", \"options\", \"dropdownPrefixCls\", \"loadData\", \"popupVisible\", \"open\", \"popupClassName\", \"dropdownClassName\", \"dropdownMenuColumnStyle\", \"popupPlacement\", \"placement\", \"onDropdownVisibleChange\", \"onPopupVisibleChange\", \"expandIcon\", \"loadingIcon\", \"children\", \"dropdownMatchSelectWidth\", \"showCheckedStrategy\"];\nimport { BaseSelect } from 'rc-select';\nimport useId from \"rc-select/es/hooks/useId\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport CascaderContext from \"./context\";\nimport useDisplayValues from \"./hooks/useDisplayValues\";\nimport useEntities from \"./hooks/useEntities\";\nimport useMissingValues from \"./hooks/useMissingValues\";\nimport useSearchConfig from \"./hooks/useSearchConfig\";\nimport useSearchOptions from \"./hooks/useSearchOptions\";\nimport OptionList from \"./OptionList\";\nimport { fillFieldNames, SHOW_CHILD, SHOW_PARENT, toPathKey, toPathKeys } from \"./utils/commonUtil\";\nimport { formatStrategyValues, toPathOptions } from \"./utils/treeUtil\";\nimport warningProps, { warningNullOptions } from \"./utils/warningPropsUtil\";\nfunction isMultipleValue(value) {\n return Array.isArray(value) && Array.isArray(value[0]);\n}\nfunction toRawValues(value) {\n if (!value) {\n return [];\n }\n if (isMultipleValue(value)) {\n return value;\n }\n return (value.length === 0 ? [] : [value]).map(function (val) {\n return Array.isArray(val) ? val : [val];\n });\n}\nvar Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var id = props.id,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-cascader' : _props$prefixCls,\n fieldNames = props.fieldNames,\n defaultValue = props.defaultValue,\n value = props.value,\n changeOnSelect = props.changeOnSelect,\n onChange = props.onChange,\n displayRender = props.displayRender,\n checkable = props.checkable,\n searchValue = props.searchValue,\n onSearch = props.onSearch,\n showSearch = props.showSearch,\n expandTrigger = props.expandTrigger,\n options = props.options,\n dropdownPrefixCls = props.dropdownPrefixCls,\n loadData = props.loadData,\n popupVisible = props.popupVisible,\n open = props.open,\n popupClassName = props.popupClassName,\n dropdownClassName = props.dropdownClassName,\n dropdownMenuColumnStyle = props.dropdownMenuColumnStyle,\n popupPlacement = props.popupPlacement,\n placement = props.placement,\n onDropdownVisibleChange = props.onDropdownVisibleChange,\n onPopupVisibleChange = props.onPopupVisibleChange,\n _props$expandIcon = props.expandIcon,\n expandIcon = _props$expandIcon === void 0 ? '>' : _props$expandIcon,\n loadingIcon = props.loadingIcon,\n children = props.children,\n _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? false : _props$dropdownMatchS,\n _props$showCheckedStr = props.showCheckedStrategy,\n showCheckedStrategy = _props$showCheckedStr === void 0 ? SHOW_PARENT : _props$showCheckedStr,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedId = useId(id);\n var multiple = !!checkable;\n\n // =========================== Values ===========================\n var _useMergedState = useMergedState(defaultValue, {\n value: value,\n postState: toRawValues\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n rawValues = _useMergedState2[0],\n setRawValues = _useMergedState2[1];\n\n // ========================= FieldNames =========================\n var mergedFieldNames = React.useMemo(function () {\n return fillFieldNames(fieldNames);\n }, /* eslint-disable react-hooks/exhaustive-deps */\n [JSON.stringify(fieldNames)]\n /* eslint-enable react-hooks/exhaustive-deps */);\n\n // =========================== Option ===========================\n var mergedOptions = React.useMemo(function () {\n return options || [];\n }, [options]);\n\n // Only used in multiple mode, this fn will not call in single mode\n var getPathKeyEntities = useEntities(mergedOptions, mergedFieldNames);\n\n /** Convert path key back to value format */\n var getValueByKeyPath = React.useCallback(function (pathKeys) {\n var keyPathEntities = getPathKeyEntities();\n return pathKeys.map(function (pathKey) {\n var nodes = keyPathEntities[pathKey].nodes;\n return nodes.map(function (node) {\n return node[mergedFieldNames.value];\n });\n });\n }, [getPathKeyEntities, mergedFieldNames]);\n\n // =========================== Search ===========================\n var _useMergedState3 = useMergedState('', {\n value: searchValue,\n postState: function postState(search) {\n return search || '';\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedSearchValue = _useMergedState4[0],\n setSearchValue = _useMergedState4[1];\n var onInternalSearch = function onInternalSearch(searchText, info) {\n setSearchValue(searchText);\n if (info.source !== 'blur' && onSearch) {\n onSearch(searchText);\n }\n };\n var _useSearchConfig = useSearchConfig(showSearch),\n _useSearchConfig2 = _slicedToArray(_useSearchConfig, 2),\n mergedShowSearch = _useSearchConfig2[0],\n searchConfig = _useSearchConfig2[1];\n var searchOptions = useSearchOptions(mergedSearchValue, mergedOptions, mergedFieldNames, dropdownPrefixCls || prefixCls, searchConfig, changeOnSelect);\n\n // =========================== Values ===========================\n var getMissingValues = useMissingValues(mergedOptions, mergedFieldNames);\n\n // Fill `rawValues` with checked conduction values\n var _React$useMemo = React.useMemo(function () {\n var _getMissingValues = getMissingValues(rawValues),\n _getMissingValues2 = _slicedToArray(_getMissingValues, 2),\n existValues = _getMissingValues2[0],\n missingValues = _getMissingValues2[1];\n if (!multiple || !rawValues.length) {\n return [existValues, [], missingValues];\n }\n var keyPathValues = toPathKeys(existValues);\n var keyPathEntities = getPathKeyEntities();\n var _conductCheck = conductCheck(keyPathValues, true, keyPathEntities),\n checkedKeys = _conductCheck.checkedKeys,\n halfCheckedKeys = _conductCheck.halfCheckedKeys;\n\n // Convert key back to value cells\n return [getValueByKeyPath(checkedKeys), getValueByKeyPath(halfCheckedKeys), missingValues];\n }, [multiple, rawValues, getPathKeyEntities, getValueByKeyPath, getMissingValues]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 3),\n checkedValues = _React$useMemo2[0],\n halfCheckedValues = _React$useMemo2[1],\n missingCheckedValues = _React$useMemo2[2];\n var deDuplicatedValues = React.useMemo(function () {\n var checkedKeys = toPathKeys(checkedValues);\n var deduplicateKeys = formatStrategyValues(checkedKeys, getPathKeyEntities, showCheckedStrategy);\n return [].concat(_toConsumableArray(missingCheckedValues), _toConsumableArray(getValueByKeyPath(deduplicateKeys)));\n }, [checkedValues, getPathKeyEntities, getValueByKeyPath, missingCheckedValues, showCheckedStrategy]);\n var displayValues = useDisplayValues(deDuplicatedValues, mergedOptions, mergedFieldNames, multiple, displayRender);\n\n // =========================== Change ===========================\n var triggerChange = useEvent(function (nextValues) {\n setRawValues(nextValues);\n\n // Save perf if no need trigger event\n if (onChange) {\n var nextRawValues = toRawValues(nextValues);\n var valueOptions = nextRawValues.map(function (valueCells) {\n return toPathOptions(valueCells, mergedOptions, mergedFieldNames).map(function (valueOpt) {\n return valueOpt.option;\n });\n });\n var triggerValues = multiple ? nextRawValues : nextRawValues[0];\n var triggerOptions = multiple ? valueOptions : valueOptions[0];\n onChange(triggerValues, triggerOptions);\n }\n });\n\n // =========================== Select ===========================\n var onInternalSelect = useEvent(function (valuePath) {\n setSearchValue('');\n if (!multiple) {\n triggerChange(valuePath);\n } else {\n // Prepare conduct required info\n var pathKey = toPathKey(valuePath);\n var checkedPathKeys = toPathKeys(checkedValues);\n var halfCheckedPathKeys = toPathKeys(halfCheckedValues);\n var existInChecked = checkedPathKeys.includes(pathKey);\n var existInMissing = missingCheckedValues.some(function (valueCells) {\n return toPathKey(valueCells) === pathKey;\n });\n\n // Do update\n var nextCheckedValues = checkedValues;\n var nextMissingValues = missingCheckedValues;\n if (existInMissing && !existInChecked) {\n // Missing value only do filter\n nextMissingValues = missingCheckedValues.filter(function (valueCells) {\n return toPathKey(valueCells) !== pathKey;\n });\n } else {\n // Update checked key first\n var nextRawCheckedKeys = existInChecked ? checkedPathKeys.filter(function (key) {\n return key !== pathKey;\n }) : [].concat(_toConsumableArray(checkedPathKeys), [pathKey]);\n var pathKeyEntities = getPathKeyEntities();\n\n // Conduction by selected or not\n var checkedKeys;\n if (existInChecked) {\n var _conductCheck2 = conductCheck(nextRawCheckedKeys, {\n checked: false,\n halfCheckedKeys: halfCheckedPathKeys\n }, pathKeyEntities);\n checkedKeys = _conductCheck2.checkedKeys;\n } else {\n var _conductCheck3 = conductCheck(nextRawCheckedKeys, true, pathKeyEntities);\n checkedKeys = _conductCheck3.checkedKeys;\n }\n\n // Roll up to parent level keys\n var deDuplicatedKeys = formatStrategyValues(checkedKeys, getPathKeyEntities, showCheckedStrategy);\n nextCheckedValues = getValueByKeyPath(deDuplicatedKeys);\n }\n triggerChange([].concat(_toConsumableArray(nextMissingValues), _toConsumableArray(nextCheckedValues)));\n }\n });\n\n // Display Value change logic\n var onDisplayValuesChange = function onDisplayValuesChange(_, info) {\n if (info.type === 'clear') {\n triggerChange([]);\n return;\n }\n\n // Cascader do not support `add` type. Only support `remove`\n var _ref = info.values[0],\n valueCells = _ref.valueCells;\n onInternalSelect(valueCells);\n };\n\n // ============================ Open ============================\n var mergedOpen = open !== undefined ? open : popupVisible;\n var mergedDropdownClassName = dropdownClassName || popupClassName;\n var mergedPlacement = placement || popupPlacement;\n var onInternalDropdownVisibleChange = function onInternalDropdownVisibleChange(nextVisible) {\n onDropdownVisibleChange === null || onDropdownVisibleChange === void 0 ? void 0 : onDropdownVisibleChange(nextVisible);\n onPopupVisibleChange === null || onPopupVisibleChange === void 0 ? void 0 : onPopupVisibleChange(nextVisible);\n };\n\n // ========================== Warning ===========================\n if (process.env.NODE_ENV !== 'production') {\n warningProps(props);\n warningNullOptions(mergedOptions, mergedFieldNames);\n }\n\n // ========================== Context ===========================\n var cascaderContext = React.useMemo(function () {\n return {\n options: mergedOptions,\n fieldNames: mergedFieldNames,\n values: checkedValues,\n halfValues: halfCheckedValues,\n changeOnSelect: changeOnSelect,\n onSelect: onInternalSelect,\n checkable: checkable,\n searchOptions: searchOptions,\n dropdownPrefixCls: dropdownPrefixCls,\n loadData: loadData,\n expandTrigger: expandTrigger,\n expandIcon: expandIcon,\n loadingIcon: loadingIcon,\n dropdownMenuColumnStyle: dropdownMenuColumnStyle\n };\n }, [mergedOptions, mergedFieldNames, checkedValues, halfCheckedValues, changeOnSelect, onInternalSelect, checkable, searchOptions, dropdownPrefixCls, loadData, expandTrigger, expandIcon, loadingIcon, dropdownMenuColumnStyle]);\n\n // ==============================================================\n // == Render ==\n // ==============================================================\n var emptyOptions = !(mergedSearchValue ? searchOptions : mergedOptions).length;\n var dropdownStyle =\n // Search to match width\n mergedSearchValue && searchConfig.matchInputWidth ||\n // Empty keep the width\n emptyOptions ? {} : {\n minWidth: 'auto'\n };\n return /*#__PURE__*/React.createElement(CascaderContext.Provider, {\n value: cascaderContext\n }, /*#__PURE__*/React.createElement(BaseSelect, _extends({}, restProps, {\n // MISC\n ref: ref,\n id: mergedId,\n prefixCls: prefixCls,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n dropdownStyle: dropdownStyle\n // Value\n ,\n displayValues: displayValues,\n onDisplayValuesChange: onDisplayValuesChange,\n mode: multiple ? 'multiple' : undefined\n // Search\n ,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch,\n showSearch: mergedShowSearch\n // Options\n ,\n OptionList: OptionList,\n emptyOptions: emptyOptions\n // Open\n ,\n open: mergedOpen,\n dropdownClassName: mergedDropdownClassName,\n placement: mergedPlacement,\n onDropdownVisibleChange: onInternalDropdownVisibleChange\n // Children\n ,\n getRawInputElement: function getRawInputElement() {\n return children;\n }\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Cascader.displayName = 'Cascader';\n}\nCascader.SHOW_PARENT = SHOW_PARENT;\nCascader.SHOW_CHILD = SHOW_CHILD;\nexport default Cascader;","import Cascader from \"./Cascader\";\nexport default Cascader;","import { getStyle as getCheckboxStyle } from '../../checkbox/style';\nimport { textEllipsis } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genComponentStyleHook } from '../../theme/internal';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n prefixCls,\n componentCls,\n antCls\n } = token;\n const cascaderMenuItemCls = `${componentCls}-menu-item`;\n const iconCls = `\n &${cascaderMenuItemCls}-expand ${cascaderMenuItemCls}-expand-icon,\n ${cascaderMenuItemCls}-loading-icon\n `;\n const itemPaddingVertical = Math.round((token.controlHeight - token.fontSize * token.lineHeight) / 2);\n return [\n // =====================================================\n // == Control ==\n // =====================================================\n {\n [componentCls]: {\n width: token.controlWidth\n }\n },\n // =====================================================\n // == Popup ==\n // =====================================================\n {\n [`${componentCls}-dropdown`]: [\n // ==================== Checkbox ====================\n getCheckboxStyle(`${prefixCls}-checkbox`, token), {\n [`&${antCls}-select-dropdown`]: {\n padding: 0\n }\n }, {\n [componentCls]: {\n // ================== Checkbox ==================\n '&-checkbox': {\n top: 0,\n marginInlineEnd: token.paddingXS\n },\n // ==================== Menu ====================\n // >>> Menus\n '&-menus': {\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n [`&${componentCls}-menu-empty`]: {\n [`${componentCls}-menu`]: {\n width: '100%',\n height: 'auto',\n [cascaderMenuItemCls]: {\n color: token.colorTextDisabled\n }\n }\n }\n },\n // >>> Menu\n '&-menu': {\n flexGrow: 1,\n minWidth: token.controlItemWidth,\n height: token.dropdownHeight,\n margin: 0,\n padding: token.paddingXXS,\n overflow: 'auto',\n verticalAlign: 'top',\n listStyle: 'none',\n '-ms-overflow-style': '-ms-autohiding-scrollbar',\n '&:not(:last-child)': {\n borderInlineEnd: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`\n },\n '&-item': Object.assign(Object.assign({}, textEllipsis), {\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'center',\n padding: `${itemPaddingVertical}px ${token.paddingSM}px`,\n lineHeight: token.lineHeight,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}`,\n borderRadius: token.borderRadiusSM,\n '&:hover': {\n background: token.controlItemBgHover\n },\n '&-disabled': {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n '&:hover': {\n background: 'transparent'\n },\n [iconCls]: {\n color: token.colorTextDisabled\n }\n },\n [`&-active:not(${cascaderMenuItemCls}-disabled)`]: {\n [`&, &:hover`]: {\n fontWeight: token.fontWeightStrong,\n backgroundColor: token.controlItemBgActive\n }\n },\n '&-content': {\n flex: 'auto'\n },\n [iconCls]: {\n marginInlineStart: token.paddingXXS,\n color: token.colorTextDescription,\n fontSize: token.fontSizeIcon\n },\n '&-keyword': {\n color: token.colorHighlight\n }\n })\n }\n }\n }]\n },\n // =====================================================\n // == RTL ==\n // =====================================================\n {\n [`${componentCls}-dropdown-rtl`]: {\n direction: 'rtl'\n }\n },\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(token)];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Cascader', token => [genBaseStyle(token)], {\n controlWidth: 184,\n controlItemWidth: 111,\n dropdownHeight: 180\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 * as React from 'react';\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcCascader from 'rc-cascader';\nimport omit from \"rc-util/es/omit\";\nimport { getTransitionName } from '../_util/motion';\nimport genPurePanel from '../_util/PurePanel';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../form/context';\nimport useSelectStyle from '../select/style';\nimport useBuiltinPlacements from '../select/useBuiltinPlacements';\nimport useShowArrow from '../select/useShowArrow';\nimport getIcons from '../select/utils/iconUtil';\nimport { useCompactItemContext } from '../space/Compact';\nimport useStyle from './style';\nconst {\n SHOW_CHILD,\n SHOW_PARENT\n} = RcCascader;\nfunction highlightKeyword(str, lowerKeyword, prefixCls) {\n const cells = str.toLowerCase().split(lowerKeyword).reduce((list, cur, index) => index === 0 ? [cur] : [].concat(_toConsumableArray(list), [lowerKeyword, cur]), []);\n const fillCells = [];\n let start = 0;\n cells.forEach((cell, index) => {\n const end = start + cell.length;\n let originWorld = str.slice(start, end);\n start = end;\n if (index % 2 === 1) {\n originWorld =\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"span\", {\n className: `${prefixCls}-menu-item-keyword`,\n key: `separator-${index}`\n }, originWorld);\n }\n fillCells.push(originWorld);\n });\n return fillCells;\n}\nconst defaultSearchRender = (inputValue, path, prefixCls, fieldNames) => {\n const optionList = [];\n // We do lower here to save perf\n const lower = inputValue.toLowerCase();\n path.forEach((node, index) => {\n if (index !== 0) {\n optionList.push(' / ');\n }\n let label = node[fieldNames.label];\n const type = typeof label;\n if (type === 'string' || type === 'number') {\n label = highlightKeyword(String(label), lower, prefixCls);\n }\n optionList.push(label);\n });\n return optionList;\n};\nconst Cascader = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n size: customizeSize,\n disabled: customDisabled,\n className,\n rootClassName,\n multiple,\n bordered = true,\n transitionName,\n choiceTransitionName = '',\n popupClassName,\n dropdownClassName,\n expandIcon,\n placement,\n showSearch,\n allowClear = true,\n notFoundContent,\n direction,\n getPopupContainer,\n status: customStatus,\n showArrow,\n builtinPlacements,\n style\n } = props,\n rest = __rest(props, [\"prefixCls\", \"size\", \"disabled\", \"className\", \"rootClassName\", \"multiple\", \"bordered\", \"transitionName\", \"choiceTransitionName\", \"popupClassName\", \"dropdownClassName\", \"expandIcon\", \"placement\", \"showSearch\", \"allowClear\", \"notFoundContent\", \"direction\", \"getPopupContainer\", \"status\", \"showArrow\", \"builtinPlacements\", \"style\"]);\n const restProps = omit(rest, ['suffixIcon']);\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n renderEmpty,\n direction: rootDirection,\n popupOverflow,\n cascader\n } = React.useContext(ConfigContext);\n const mergedDirection = direction || rootDirection;\n const isRtl = mergedDirection === 'rtl';\n // =================== Form =====================\n const {\n status: contextStatus,\n hasFeedback,\n isFormItemInput,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'Cascader', '`dropdownClassName` is deprecated. Please use `popupClassName` instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!('showArrow' in props), 'Cascader', '`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 // =================== No Found ====================\n const mergedNotFoundContent = notFoundContent || (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Cascader')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Cascader\"\n });\n // ==================== Prefix =====================\n const rootPrefixCls = getPrefixCls();\n const prefixCls = getPrefixCls('select', customizePrefixCls);\n const cascaderPrefixCls = getPrefixCls('cascader', customizePrefixCls);\n const [wrapSelectSSR, hashId] = useSelectStyle(prefixCls);\n const [wrapCascaderSSR] = useStyle(cascaderPrefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n // =================== Dropdown ====================\n const mergedDropdownClassName = classNames(popupClassName || dropdownClassName, `${cascaderPrefixCls}-dropdown`, {\n [`${cascaderPrefixCls}-dropdown-rtl`]: mergedDirection === 'rtl'\n }, rootClassName, hashId);\n // ==================== Search =====================\n const mergedShowSearch = React.useMemo(() => {\n if (!showSearch) {\n return showSearch;\n }\n let searchConfig = {\n render: defaultSearchRender\n };\n if (typeof showSearch === 'object') {\n searchConfig = Object.assign(Object.assign({}, searchConfig), showSearch);\n }\n return searchConfig;\n }, [showSearch]);\n // ===================== Size ======================\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 // ===================== Icon ======================\n let mergedExpandIcon = expandIcon;\n if (!expandIcon) {\n mergedExpandIcon = isRtl ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null);\n }\n const loadingIcon = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-menu-item-loading-icon`\n }, /*#__PURE__*/React.createElement(LoadingOutlined, {\n spin: true\n }));\n // =================== Multiple ====================\n const checkable = React.useMemo(() => multiple ? /*#__PURE__*/React.createElement(\"span\", {\n className: `${cascaderPrefixCls}-checkbox-inner`\n }) : false, [multiple]);\n // ===================== Icons =====================\n const showSuffixIcon = useShowArrow(props.suffixIcon, showArrow);\n const {\n suffixIcon,\n removeIcon,\n clearIcon\n } = getIcons(Object.assign(Object.assign({}, props), {\n hasFeedback,\n feedbackIcon,\n showSuffixIcon,\n multiple,\n prefixCls,\n componentName: 'Cascader'\n }));\n // ===================== Placement =====================\n const memoPlacement = React.useMemo(() => {\n if (placement !== undefined) {\n return placement;\n }\n return isRtl ? 'bottomRight' : 'bottomLeft';\n }, [placement, isRtl]);\n const mergedBuiltinPlacements = useBuiltinPlacements(builtinPlacements, popupOverflow);\n const mergedAllowClear = allowClear === true ? {\n clearIcon\n } : allowClear;\n // ==================== Render =====================\n const renderNode = /*#__PURE__*/React.createElement(RcCascader, Object.assign({\n prefixCls: prefixCls,\n className: classNames(!customizePrefixCls && cascaderPrefixCls, {\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-rtl`]: isRtl,\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-in-form-item`]: isFormItemInput\n }, getStatusClassNames(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, cascader === null || cascader === void 0 ? void 0 : cascader.className, className, rootClassName, hashId),\n disabled: mergedDisabled,\n style: Object.assign(Object.assign({}, cascader === null || cascader === void 0 ? void 0 : cascader.style), style)\n }, restProps, {\n builtinPlacements: mergedBuiltinPlacements,\n direction: mergedDirection,\n placement: memoPlacement,\n notFoundContent: mergedNotFoundContent,\n allowClear: mergedAllowClear,\n showSearch: mergedShowSearch,\n expandIcon: mergedExpandIcon,\n suffixIcon: suffixIcon,\n removeIcon: removeIcon,\n loadingIcon: loadingIcon,\n checkable: checkable,\n dropdownClassName: mergedDropdownClassName,\n dropdownPrefixCls: customizePrefixCls || cascaderPrefixCls,\n choiceTransitionName: getTransitionName(rootPrefixCls, '', choiceTransitionName),\n transitionName: getTransitionName(rootPrefixCls, 'slide-up', transitionName),\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n ref: ref\n }));\n return wrapCascaderSSR(wrapSelectSSR(renderNode));\n});\nif (process.env.NODE_ENV !== 'production') {\n Cascader.displayName = 'Cascader';\n}\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(Cascader);\nCascader.SHOW_PARENT = SHOW_PARENT;\nCascader.SHOW_CHILD = SHOW_CHILD;\nCascader._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Cascader;","'use client';\n\nimport { Col } from '../grid';\nexport default Col;","// This icon file is generated automatically.\nvar CalendarOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z\" } }] }, \"name\": \"calendar\", \"theme\": \"outlined\" };\nexport default CalendarOutlined;\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 CalendarOutlinedSvg from \"@ant-design/icons-svg/es/asn/CalendarOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CalendarOutlined = function CalendarOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CalendarOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CalendarOutlined.displayName = 'CalendarOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(CalendarOutlined);","// This icon file is generated automatically.\nvar ClockCircleOutlined = { \"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\": \"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z\" } }] }, \"name\": \"clock-circle\", \"theme\": \"outlined\" };\nexport default ClockCircleOutlined;\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 ClockCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ClockCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ClockCircleOutlined = function ClockCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ClockCircleOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n ClockCircleOutlined.displayName = 'ClockCircleOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(ClockCircleOutlined);","// This icon file is generated automatically.\nvar SwapRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z\" } }] }, \"name\": \"swap-right\", \"theme\": \"outlined\" };\nexport default SwapRightOutlined;\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 SwapRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/SwapRightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar SwapRightOutlined = function SwapRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: SwapRightOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n SwapRightOutlined.displayName = 'SwapRightOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(SwapRightOutlined);","export function getPlaceholder(locale, picker, customizePlaceholder) {\n if (customizePlaceholder !== undefined) {\n return customizePlaceholder;\n }\n if (picker === 'year' && locale.lang.yearPlaceholder) {\n return locale.lang.yearPlaceholder;\n }\n if (picker === 'quarter' && locale.lang.quarterPlaceholder) {\n return locale.lang.quarterPlaceholder;\n }\n if (picker === 'month' && locale.lang.monthPlaceholder) {\n return locale.lang.monthPlaceholder;\n }\n if (picker === 'week' && locale.lang.weekPlaceholder) {\n return locale.lang.weekPlaceholder;\n }\n if (picker === 'time' && locale.timePickerLocale.placeholder) {\n return locale.timePickerLocale.placeholder;\n }\n return locale.lang.placeholder;\n}\nexport function getRangePlaceholder(locale, picker, customizePlaceholder) {\n if (customizePlaceholder !== undefined) {\n return customizePlaceholder;\n }\n if (picker === 'year' && locale.lang.yearPlaceholder) {\n return locale.lang.rangeYearPlaceholder;\n }\n if (picker === 'quarter' && locale.lang.quarterPlaceholder) {\n return locale.lang.rangeQuarterPlaceholder;\n }\n if (picker === 'month' && locale.lang.monthPlaceholder) {\n return locale.lang.rangeMonthPlaceholder;\n }\n if (picker === 'week' && locale.lang.weekPlaceholder) {\n return locale.lang.rangeWeekPlaceholder;\n }\n if (picker === 'time' && locale.timePickerLocale.placeholder) {\n return locale.timePickerLocale.rangePlaceholder;\n }\n return locale.lang.rangePlaceholder;\n}\nexport function transPlacement2DropdownAlign(direction, placement) {\n const overflow = {\n adjustX: 1,\n adjustY: 1\n };\n switch (placement) {\n case 'bottomLeft':\n {\n return {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow\n };\n }\n case 'bottomRight':\n {\n return {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow\n };\n }\n case 'topLeft':\n {\n return {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow\n };\n }\n case 'topRight':\n {\n return {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow\n };\n }\n default:\n {\n return {\n points: direction === 'rtl' ? ['tr', 'br'] : ['tl', 'bl'],\n offset: [0, 4],\n overflow\n };\n }\n }\n}\nfunction toArray(list) {\n if (!list) {\n return [];\n }\n return Array.isArray(list) ? list : [list];\n}\nexport function getTimeProps(props) {\n const {\n format,\n picker,\n showHour,\n showMinute,\n showSecond,\n use12Hours\n } = props;\n const firstFormat = toArray(format)[0];\n const showTimeObj = Object.assign({}, props);\n // https://github.com/ant-design/ant-design/issues/44275\n if (format && Array.isArray(format)) {\n showTimeObj.format = firstFormat;\n }\n if (firstFormat && typeof firstFormat === 'string') {\n if (!firstFormat.includes('s') && showSecond === undefined) {\n showTimeObj.showSecond = false;\n }\n if (!firstFormat.includes('m') && showMinute === undefined) {\n showTimeObj.showMinute = false;\n }\n if (!firstFormat.includes('H') && !firstFormat.includes('h') && !firstFormat.includes('K') && !firstFormat.includes('k') && showHour === undefined) {\n showTimeObj.showHour = false;\n }\n if ((firstFormat.includes('a') || firstFormat.includes('A')) && use12Hours === undefined) {\n showTimeObj.use12Hours = true;\n }\n }\n if (picker === 'time') {\n return showTimeObj;\n }\n if (typeof firstFormat === 'function') {\n // format of showTime should use default when format is custom format function\n delete showTimeObj.format;\n }\n return {\n showTime: showTimeObj\n };\n}\nexport function mergeAllowClear(allowClear, clearIcon, defaultClearIcon) {\n if (allowClear === false) {\n return false;\n }\n const defaults = {\n clearIcon: clearIcon !== null && clearIcon !== void 0 ? clearIcon : defaultClearIcon\n };\n return typeof allowClear === 'object' ? Object.assign(Object.assign({}, defaults), allowClear) : defaults;\n}","import * as React from 'react';\nimport Button from '../button';\nexport default function PickerButton(props) {\n return /*#__PURE__*/React.createElement(Button, Object.assign({\n size: \"small\",\n type: \"primary\"\n }, props));\n}","import PickerButton from '../PickerButton';\nconst Components = {\n button: PickerButton\n};\nexport default Components;","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 CalendarOutlined from \"@ant-design/icons/es/icons/CalendarOutlined\";\nimport ClockCircleOutlined from \"@ant-design/icons/es/icons/ClockCircleOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport SwapRightOutlined from \"@ant-design/icons/es/icons/SwapRightOutlined\";\nimport classNames from 'classnames';\nimport { RangePicker as RCRangePicker } from 'rc-picker';\nimport * as React from 'react';\nimport { forwardRef, useContext, useImperativeHandle } 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 } from '../../form/context';\nimport { useLocale } from '../../locale';\nimport { useCompactItemContext } from '../../space/Compact';\nimport enUS from '../locale/en_US';\nimport useStyle from '../style';\nimport { getRangePlaceholder, getTimeProps, mergeAllowClear, transPlacement2DropdownAlign } from '../util';\nimport Components from './Components';\nexport default function generateRangePicker(generateConfig) {\n const RangePicker = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n getPopupContainer: customGetPopupContainer,\n className,\n placement,\n size: customizeSize,\n disabled: customDisabled,\n bordered = true,\n placeholder,\n popupClassName,\n dropdownClassName,\n status: customStatus,\n clearIcon,\n allowClear\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"getPopupContainer\", \"className\", \"placement\", \"size\", \"disabled\", \"bordered\", \"placeholder\", \"popupClassName\", \"dropdownClassName\", \"status\", \"clearIcon\", \"allowClear\"]);\n const innerRef = React.useRef(null);\n const {\n getPrefixCls,\n direction,\n getPopupContainer\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('picker', customizePrefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const {\n format,\n showTime,\n picker\n } = props;\n const rootPrefixCls = getPrefixCls();\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const additionalOverrideProps = Object.assign(Object.assign({}, showTime ? getTimeProps(Object.assign({\n format,\n picker\n }, showTime)) : {}), picker === 'time' ? getTimeProps(Object.assign(Object.assign({\n format\n }, props), {\n picker\n })) : {});\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'DatePicker.RangePicker', '`dropdownClassName` is deprecated. Please use `popupClassName` instead.') : void 0;\n }\n // ===================== Size =====================\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 // ===================== FormItemInput =====================\n const formItemContext = useContext(FormItemInputContext);\n const {\n hasFeedback,\n status: contextStatus,\n feedbackIcon\n } = formItemContext;\n const suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, picker === 'time' ? /*#__PURE__*/React.createElement(ClockCircleOutlined, null) : /*#__PURE__*/React.createElement(CalendarOutlined, null), hasFeedback && feedbackIcon);\n useImperativeHandle(ref, () => ({\n focus: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n },\n blur: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n }));\n const [contextLocale] = useLocale('Calendar', enUS);\n const locale = Object.assign(Object.assign({}, contextLocale), props.locale);\n return wrapSSR( /*#__PURE__*/React.createElement(RCRangePicker, Object.assign({\n separator: /*#__PURE__*/React.createElement(\"span\", {\n \"aria-label\": \"to\",\n className: `${prefixCls}-separator`\n }, /*#__PURE__*/React.createElement(SwapRightOutlined, null)),\n disabled: mergedDisabled,\n ref: innerRef,\n dropdownAlign: transPlacement2DropdownAlign(direction, placement),\n placeholder: getRangePlaceholder(locale, picker, placeholder),\n suffixIcon: suffixNode,\n prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-prev-icon`\n }),\n nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-next-icon`\n }),\n superPrevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-prev-icon`\n }),\n superNextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-next-icon`\n }),\n transitionName: `${rootPrefixCls}-slide-up`\n }, restProps, additionalOverrideProps, {\n className: classNames({\n [`${prefixCls}-${mergedSize}`]: mergedSize,\n [`${prefixCls}-borderless`]: !bordered\n }, getStatusClassNames(prefixCls, getMergedStatus(contextStatus, customStatus), hasFeedback), hashId, compactItemClassnames, className),\n locale: locale.lang,\n prefixCls: prefixCls,\n getPopupContainer: customGetPopupContainer || getPopupContainer,\n generateConfig: generateConfig,\n components: Components,\n direction: direction,\n dropdownClassName: classNames(hashId, popupClassName || dropdownClassName),\n allowClear: mergeAllowClear(allowClear, clearIcon, /*#__PURE__*/React.createElement(CloseCircleFilled, null))\n })));\n });\n if (process.env.NODE_ENV !== 'production') {\n RangePicker.displayName = 'RangePicker';\n }\n return RangePicker;\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 CalendarOutlined from \"@ant-design/icons/es/icons/CalendarOutlined\";\nimport ClockCircleOutlined from \"@ant-design/icons/es/icons/ClockCircleOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport RCPicker from 'rc-picker';\nimport * as React from 'react';\nimport { forwardRef, useContext, useImperativeHandle } 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 } from '../../form/context';\nimport { useLocale } from '../../locale';\nimport { useCompactItemContext } from '../../space/Compact';\nimport enUS from '../locale/en_US';\nimport useStyle from '../style';\nimport { getPlaceholder, getTimeProps, mergeAllowClear, transPlacement2DropdownAlign } from '../util';\nimport Components from './Components';\nexport default function generatePicker(generateConfig) {\n function getPicker(picker, displayName) {\n const consumerName = displayName === 'TimePicker' ? 'timePicker' : 'datePicker';\n const Picker = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n getPopupContainer: customizeGetPopupContainer,\n style,\n className,\n rootClassName,\n size: customizeSize,\n bordered = true,\n placement,\n placeholder,\n popupClassName,\n dropdownClassName,\n disabled: customDisabled,\n status: customStatus,\n clearIcon,\n allowClear\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"getPopupContainer\", \"style\", \"className\", \"rootClassName\", \"size\", \"bordered\", \"placement\", \"placeholder\", \"popupClassName\", \"dropdownClassName\", \"disabled\", \"status\", \"clearIcon\", \"allowClear\"]);\n const {\n getPrefixCls,\n direction,\n getPopupContainer,\n // Consume different styles according to different names\n [consumerName]: consumerStyle\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('picker', customizePrefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const innerRef = React.useRef(null);\n const {\n format,\n showTime\n } = props;\n const [wrapSSR, hashId] = useStyle(prefixCls);\n useImperativeHandle(ref, () => ({\n focus: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n },\n blur: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n }));\n const additionalProps = {\n showToday: true\n };\n let additionalOverrideProps = {};\n if (picker) {\n additionalOverrideProps.picker = picker;\n }\n const mergedPicker = picker || props.picker;\n additionalOverrideProps = Object.assign(Object.assign(Object.assign({}, additionalOverrideProps), showTime ? getTimeProps(Object.assign({\n format,\n picker: mergedPicker\n }, showTime)) : {}), mergedPicker === 'time' ? getTimeProps(Object.assign(Object.assign({\n format\n }, props), {\n picker: mergedPicker\n })) : {});\n const rootPrefixCls = getPrefixCls();\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(picker !== 'quarter', displayName, `DatePicker.${displayName} is legacy usage. Please use DatePicker[picker='${picker}'] directly.`) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, displayName || 'DatePicker', '`dropdownClassName` is deprecated. Please use `popupClassName` instead.') : void 0;\n }\n // ===================== Size =====================\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 // ===================== FormItemInput =====================\n const formItemContext = useContext(FormItemInputContext);\n const {\n hasFeedback,\n status: contextStatus,\n feedbackIcon\n } = formItemContext;\n const suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, mergedPicker === 'time' ? /*#__PURE__*/React.createElement(ClockCircleOutlined, null) : /*#__PURE__*/React.createElement(CalendarOutlined, null), hasFeedback && feedbackIcon);\n const [contextLocale] = useLocale('DatePicker', enUS);\n const locale = Object.assign(Object.assign({}, contextLocale), props.locale);\n return wrapSSR( /*#__PURE__*/React.createElement(RCPicker, Object.assign({\n ref: innerRef,\n placeholder: getPlaceholder(locale, mergedPicker, placeholder),\n suffixIcon: suffixNode,\n dropdownAlign: transPlacement2DropdownAlign(direction, placement),\n prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-prev-icon`\n }),\n nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-next-icon`\n }),\n superPrevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-prev-icon`\n }),\n superNextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-next-icon`\n }),\n transitionName: `${rootPrefixCls}-slide-up`\n }, additionalProps, restProps, additionalOverrideProps, {\n locale: locale.lang,\n className: classNames({\n [`${prefixCls}-${mergedSize}`]: mergedSize,\n [`${prefixCls}-borderless`]: !bordered\n }, getStatusClassNames(prefixCls, getMergedStatus(contextStatus, customStatus), hasFeedback), hashId, compactItemClassnames, consumerStyle === null || consumerStyle === void 0 ? void 0 : consumerStyle.className, className, rootClassName),\n style: Object.assign(Object.assign({}, consumerStyle === null || consumerStyle === void 0 ? void 0 : consumerStyle.style), style),\n prefixCls: prefixCls,\n getPopupContainer: customizeGetPopupContainer || getPopupContainer,\n generateConfig: generateConfig,\n components: Components,\n direction: direction,\n disabled: mergedDisabled,\n dropdownClassName: classNames(hashId, rootClassName, popupClassName || dropdownClassName),\n allowClear: mergeAllowClear(allowClear, clearIcon, /*#__PURE__*/React.createElement(CloseCircleFilled, null))\n })));\n });\n if (displayName) {\n Picker.displayName = displayName;\n }\n return Picker;\n }\n const DatePicker = getPicker();\n const WeekPicker = getPicker('week', 'WeekPicker');\n const MonthPicker = getPicker('month', 'MonthPicker');\n const YearPicker = getPicker('year', 'YearPicker');\n const TimePicker = getPicker('time', 'TimePicker');\n const QuarterPicker = getPicker('quarter', 'QuarterPicker');\n return {\n DatePicker,\n WeekPicker,\n MonthPicker,\n YearPicker,\n TimePicker,\n QuarterPicker\n };\n}","import generateRangePicker from './generateRangePicker';\nimport generateSinglePicker from './generateSinglePicker';\nconst DataPickerPlacements = ['bottomLeft', 'bottomRight', 'topLeft', 'topRight'];\nfunction generatePicker(generateConfig) {\n // =========================== Picker ===========================\n const {\n DatePicker,\n WeekPicker,\n MonthPicker,\n YearPicker,\n TimePicker,\n QuarterPicker\n } = generateSinglePicker(generateConfig);\n // ======================== Range Picker ========================\n const RangePicker = generateRangePicker(generateConfig);\n const MergedDatePicker = DatePicker;\n MergedDatePicker.WeekPicker = WeekPicker;\n MergedDatePicker.MonthPicker = MonthPicker;\n MergedDatePicker.YearPicker = YearPicker;\n MergedDatePicker.RangePicker = RangePicker;\n MergedDatePicker.TimePicker = TimePicker;\n MergedDatePicker.QuarterPicker = QuarterPicker;\n if (process.env.NODE_ENV !== 'production') {\n MergedDatePicker.displayName = 'DatePicker';\n }\n return MergedDatePicker;\n}\nexport default generatePicker;","'use client';\n\nimport dayjsGenerateConfig from \"rc-picker/es/generate/dayjs\";\nimport genPurePanel from '../_util/PurePanel';\nimport generatePicker from './generatePicker';\nimport { transPlacement2DropdownAlign } from './util';\nconst DatePicker = generatePicker(dayjsGenerateConfig);\nfunction postPureProps(props) {\n const dropdownAlign = transPlacement2DropdownAlign(props.direction, props.placement);\n dropdownAlign.overflow.adjustY = false;\n dropdownAlign.overflow.adjustX = false;\n return Object.assign(Object.assign({}, props), {\n dropdownAlign\n });\n}\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(DatePicker, 'picker', null, postPureProps);\nDatePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nconst PureRangePanel = genPurePanel(DatePicker.RangePicker, 'picker', null, postPureProps);\nDatePicker._InternalRangePanelDoNotUseOrYouWillBeFired = PureRangePanel;\nDatePicker.generatePicker = generatePicker;\nexport default DatePicker;","import { TinyColor } from '@ctrl/tinycolor';\nimport { genActiveStyle, genBasicInputStyle, genHoverStyle, initInputToken } from '../../input/style';\nimport { resetComponent, roundedArrow, textEllipsis } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { initMoveMotion, initSlideMotion, slideDownIn, slideDownOut, slideUpIn, slideUpOut } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genPikerPadding = (token, inputHeight, fontSize, paddingHorizontal) => {\n const {\n lineHeight\n } = token;\n const fontHeight = Math.floor(fontSize * lineHeight) + 2;\n const paddingTop = Math.max((inputHeight - fontHeight) / 2, 0);\n const paddingBottom = Math.max(inputHeight - fontHeight - paddingTop, 0);\n return {\n padding: `${paddingTop}px ${paddingHorizontal}px ${paddingBottom}px`\n };\n};\nconst genPickerCellInnerStyle = token => {\n const {\n componentCls,\n pickerCellCls,\n pickerCellInnerCls,\n pickerPanelCellHeight,\n motionDurationSlow,\n borderRadiusSM,\n motionDurationMid,\n controlItemBgHover,\n lineWidth,\n lineType,\n colorPrimary,\n controlItemBgActive,\n colorTextLightSolid,\n controlHeightSM,\n pickerDateHoverRangeBorderColor,\n pickerCellBorderGap,\n pickerBasicCellHoverWithRangeColor,\n pickerPanelCellWidth,\n colorTextDisabled,\n colorBgContainerDisabled\n } = token;\n return {\n '&::before': {\n position: 'absolute',\n top: '50%',\n insetInlineStart: 0,\n insetInlineEnd: 0,\n zIndex: 1,\n height: pickerPanelCellHeight,\n transform: 'translateY(-50%)',\n transition: `all ${motionDurationSlow}`,\n content: '\"\"'\n },\n // >>> Default\n [pickerCellInnerCls]: {\n position: 'relative',\n zIndex: 2,\n display: 'inline-block',\n minWidth: pickerPanelCellHeight,\n height: pickerPanelCellHeight,\n lineHeight: `${pickerPanelCellHeight}px`,\n borderRadius: borderRadiusSM,\n transition: `background ${motionDurationMid}, border ${motionDurationMid}`\n },\n [`&-range-hover-start, &-range-hover-end`]: {\n [pickerCellInnerCls]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n // >>> Hover\n [`&:hover:not(${pickerCellCls}-in-view),\n &:hover:not(${pickerCellCls}-selected):not(${pickerCellCls}-range-start):not(${pickerCellCls}-range-end):not(${pickerCellCls}-range-hover-start):not(${pickerCellCls}-range-hover-end)`]: {\n [pickerCellInnerCls]: {\n background: controlItemBgHover\n }\n },\n // >>> Today\n [`&-in-view${pickerCellCls}-today ${pickerCellInnerCls}`]: {\n '&::before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n zIndex: 1,\n border: `${lineWidth}px ${lineType} ${colorPrimary}`,\n borderRadius: borderRadiusSM,\n content: '\"\"'\n }\n },\n // >>> In Range\n [`&-in-view${pickerCellCls}-in-range`]: {\n position: 'relative',\n '&::before': {\n background: controlItemBgActive\n }\n },\n // >>> Selected\n [`&-in-view${pickerCellCls}-selected ${pickerCellInnerCls},\n &-in-view${pickerCellCls}-range-start ${pickerCellInnerCls},\n &-in-view${pickerCellCls}-range-end ${pickerCellInnerCls}`]: {\n color: colorTextLightSolid,\n background: colorPrimary\n },\n [`&-in-view${pickerCellCls}-range-start:not(${pickerCellCls}-range-start-single),\n &-in-view${pickerCellCls}-range-end:not(${pickerCellCls}-range-end-single)`]: {\n '&::before': {\n background: controlItemBgActive\n }\n },\n [`&-in-view${pickerCellCls}-range-start::before`]: {\n insetInlineStart: '50%'\n },\n [`&-in-view${pickerCellCls}-range-end::before`]: {\n insetInlineEnd: '50%'\n },\n // >>> Range Hover\n [`&-in-view${pickerCellCls}-range-hover-start:not(${pickerCellCls}-in-range):not(${pickerCellCls}-range-start):not(${pickerCellCls}-range-end),\n &-in-view${pickerCellCls}-range-hover-end:not(${pickerCellCls}-in-range):not(${pickerCellCls}-range-start):not(${pickerCellCls}-range-end),\n &-in-view${pickerCellCls}-range-hover-start${pickerCellCls}-range-start-single,\n &-in-view${pickerCellCls}-range-hover-start${pickerCellCls}-range-start${pickerCellCls}-range-end${pickerCellCls}-range-end-near-hover,\n &-in-view${pickerCellCls}-range-hover-end${pickerCellCls}-range-start${pickerCellCls}-range-end${pickerCellCls}-range-start-near-hover,\n &-in-view${pickerCellCls}-range-hover-end${pickerCellCls}-range-end-single,\n &-in-view${pickerCellCls}-range-hover:not(${pickerCellCls}-in-range)`]: {\n '&::after': {\n position: 'absolute',\n top: '50%',\n zIndex: 0,\n height: controlHeightSM,\n borderTop: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n borderBottom: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n transform: 'translateY(-50%)',\n transition: `all ${motionDurationSlow}`,\n content: '\"\"'\n }\n },\n // Add space for stash\n [`&-range-hover-start::after,\n &-range-hover-end::after,\n &-range-hover::after`]: {\n insetInlineEnd: 0,\n insetInlineStart: pickerCellBorderGap\n },\n // Hover with in range\n [`&-in-view${pickerCellCls}-in-range${pickerCellCls}-range-hover::before,\n &-in-view${pickerCellCls}-in-range${pickerCellCls}-range-hover-start::before,\n &-in-view${pickerCellCls}-in-range${pickerCellCls}-range-hover-end::before,\n &-in-view${pickerCellCls}-range-start${pickerCellCls}-range-hover::before,\n &-in-view${pickerCellCls}-range-end${pickerCellCls}-range-hover::before,\n &-in-view${pickerCellCls}-range-start:not(${pickerCellCls}-range-start-single)${pickerCellCls}-range-hover-start::before,\n &-in-view${pickerCellCls}-range-end:not(${pickerCellCls}-range-end-single)${pickerCellCls}-range-hover-end::before,\n ${componentCls}-panel\n > :not(${componentCls}-date-panel)\n &-in-view${pickerCellCls}-in-range${pickerCellCls}-range-hover-start::before,\n ${componentCls}-panel\n > :not(${componentCls}-date-panel)\n &-in-view${pickerCellCls}-in-range${pickerCellCls}-range-hover-end::before`]: {\n background: pickerBasicCellHoverWithRangeColor\n },\n // range start border-radius\n [`&-in-view${pickerCellCls}-range-start:not(${pickerCellCls}-range-start-single):not(${pickerCellCls}-range-end) ${pickerCellInnerCls}`]: {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n },\n // range end border-radius\n [`&-in-view${pickerCellCls}-range-end:not(${pickerCellCls}-range-end-single):not(${pickerCellCls}-range-start) ${pickerCellInnerCls}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n },\n [`&-range-hover${pickerCellCls}-range-end::after`]: {\n insetInlineStart: '50%'\n },\n // Edge start\n [`tr > &-in-view${pickerCellCls}-range-hover:first-child::after,\n tr > &-in-view${pickerCellCls}-range-hover-end:first-child::after,\n &-in-view${pickerCellCls}-start${pickerCellCls}-range-hover-edge-start${pickerCellCls}-range-hover-edge-start-near-range::after,\n &-in-view${pickerCellCls}-range-hover-edge-start:not(${pickerCellCls}-range-hover-edge-start-near-range)::after,\n &-in-view${pickerCellCls}-range-hover-start::after`]: {\n insetInlineStart: (pickerPanelCellWidth - pickerPanelCellHeight) / 2,\n borderInlineStart: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM\n },\n // Edge end\n [`tr > &-in-view${pickerCellCls}-range-hover:last-child::after,\n tr > &-in-view${pickerCellCls}-range-hover-start:last-child::after,\n &-in-view${pickerCellCls}-end${pickerCellCls}-range-hover-edge-end${pickerCellCls}-range-hover-edge-end-near-range::after,\n &-in-view${pickerCellCls}-range-hover-edge-end:not(${pickerCellCls}-range-hover-edge-end-near-range)::after,\n &-in-view${pickerCellCls}-range-hover-end::after`]: {\n insetInlineEnd: (pickerPanelCellWidth - pickerPanelCellHeight) / 2,\n borderInlineEnd: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n },\n // >>> Disabled\n '&-disabled': {\n color: colorTextDisabled,\n pointerEvents: 'none',\n [pickerCellInnerCls]: {\n background: 'transparent'\n },\n '&::before': {\n background: colorBgContainerDisabled\n }\n },\n [`&-disabled${pickerCellCls}-today ${pickerCellInnerCls}::before`]: {\n borderColor: colorTextDisabled\n }\n };\n};\nexport const genPanelStyle = token => {\n const {\n componentCls,\n pickerCellCls,\n pickerCellInnerCls,\n pickerYearMonthCellWidth,\n pickerControlIconSize,\n pickerPanelCellWidth,\n paddingSM,\n paddingXS,\n paddingXXS,\n colorBgContainer,\n lineWidth,\n lineType,\n borderRadiusLG,\n colorPrimary,\n colorTextHeading,\n colorSplit,\n pickerControlIconBorderWidth,\n colorIcon,\n pickerTextHeight,\n motionDurationMid,\n colorIconHover,\n fontWeightStrong,\n pickerPanelCellHeight,\n pickerCellPaddingVertical,\n colorTextDisabled,\n colorText,\n fontSize,\n pickerBasicCellHoverWithRangeColor,\n motionDurationSlow,\n pickerPanelWithoutTimeCellHeight,\n pickerQuarterPanelContentHeight,\n colorLink,\n colorLinkActive,\n colorLinkHover,\n pickerDateHoverRangeBorderColor,\n borderRadiusSM,\n colorTextLightSolid,\n controlItemBgHover,\n pickerTimePanelColumnHeight,\n pickerTimePanelColumnWidth,\n pickerTimePanelCellHeight,\n controlItemBgActive,\n marginXXS,\n pickerDatePanelPaddingHorizontal\n } = token;\n const pickerPanelWidth = pickerPanelCellWidth * 7 + pickerDatePanelPaddingHorizontal * 2;\n const commonHoverCellFixedDistance = (pickerPanelWidth - paddingXS * 2) / 3 - pickerYearMonthCellWidth - paddingSM;\n const quarterHoverCellFixedDistance = (pickerPanelWidth - paddingXS * 2) / 4 - pickerYearMonthCellWidth;\n return {\n [componentCls]: {\n '&-panel': {\n display: 'inline-flex',\n flexDirection: 'column',\n textAlign: 'center',\n background: colorBgContainer,\n border: `${lineWidth}px ${lineType} ${colorSplit}`,\n borderRadius: borderRadiusLG,\n outline: 'none',\n '&-focused': {\n borderColor: colorPrimary\n },\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-prev-icon,\n ${componentCls}-super-prev-icon`]: {\n transform: 'rotate(45deg)'\n },\n [`${componentCls}-next-icon,\n ${componentCls}-super-next-icon`]: {\n transform: 'rotate(-135deg)'\n }\n }\n },\n // ========================================================\n // = Shared Panel =\n // ========================================================\n [`&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel,\n &-week-panel,\n &-date-panel,\n &-time-panel`]: {\n display: 'flex',\n flexDirection: 'column',\n width: pickerPanelWidth\n },\n // ======================= Header =======================\n '&-header': {\n display: 'flex',\n padding: `0 ${paddingXS}px`,\n color: colorTextHeading,\n borderBottom: `${lineWidth}px ${lineType} ${colorSplit}`,\n '> *': {\n flex: 'none'\n },\n button: {\n padding: 0,\n color: colorIcon,\n lineHeight: `${pickerTextHeight}px`,\n background: 'transparent',\n border: 0,\n cursor: 'pointer',\n transition: `color ${motionDurationMid}`,\n fontSize: 'inherit'\n },\n '> button': {\n minWidth: '1.6em',\n fontSize,\n '&:hover': {\n color: colorIconHover\n }\n },\n '&-view': {\n flex: 'auto',\n fontWeight: fontWeightStrong,\n lineHeight: `${pickerTextHeight}px`,\n button: {\n color: 'inherit',\n fontWeight: 'inherit',\n verticalAlign: 'top',\n '&:not(:first-child)': {\n marginInlineStart: paddingXS\n },\n '&:hover': {\n color: colorPrimary\n }\n }\n }\n },\n // Arrow button\n [`&-prev-icon,\n &-next-icon,\n &-super-prev-icon,\n &-super-next-icon`]: {\n position: 'relative',\n display: 'inline-block',\n width: pickerControlIconSize,\n height: pickerControlIconSize,\n '&::before': {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n display: 'inline-block',\n width: pickerControlIconSize,\n height: pickerControlIconSize,\n border: `0 solid currentcolor`,\n borderBlockStartWidth: pickerControlIconBorderWidth,\n borderBlockEndWidth: 0,\n borderInlineStartWidth: pickerControlIconBorderWidth,\n borderInlineEndWidth: 0,\n content: '\"\"'\n }\n },\n [`&-super-prev-icon,\n &-super-next-icon`]: {\n '&::after': {\n position: 'absolute',\n top: Math.ceil(pickerControlIconSize / 2),\n insetInlineStart: Math.ceil(pickerControlIconSize / 2),\n display: 'inline-block',\n width: pickerControlIconSize,\n height: pickerControlIconSize,\n border: '0 solid currentcolor',\n borderBlockStartWidth: pickerControlIconBorderWidth,\n borderBlockEndWidth: 0,\n borderInlineStartWidth: pickerControlIconBorderWidth,\n borderInlineEndWidth: 0,\n content: '\"\"'\n }\n },\n [`&-prev-icon,\n &-super-prev-icon`]: {\n transform: 'rotate(-45deg)'\n },\n [`&-next-icon,\n &-super-next-icon`]: {\n transform: 'rotate(135deg)'\n },\n // ======================== Body ========================\n '&-content': {\n width: '100%',\n tableLayout: 'fixed',\n borderCollapse: 'collapse',\n 'th, td': {\n position: 'relative',\n minWidth: pickerPanelCellHeight,\n fontWeight: 'normal'\n },\n th: {\n height: pickerPanelCellHeight + pickerCellPaddingVertical * 2,\n color: colorText,\n verticalAlign: 'middle'\n }\n },\n '&-cell': Object.assign({\n padding: `${pickerCellPaddingVertical}px 0`,\n color: colorTextDisabled,\n cursor: 'pointer',\n // In view\n '&-in-view': {\n color: colorText\n }\n }, genPickerCellInnerStyle(token)),\n // DatePanel only\n [`&-date-panel ${componentCls}-cell-in-view${componentCls}-cell-in-range${componentCls}-cell-range-hover-start ${pickerCellInnerCls},\n &-date-panel ${componentCls}-cell-in-view${componentCls}-cell-in-range${componentCls}-cell-range-hover-end ${pickerCellInnerCls}`]: {\n '&::after': {\n position: 'absolute',\n top: 0,\n bottom: 0,\n zIndex: -1,\n background: pickerBasicCellHoverWithRangeColor,\n transition: `all ${motionDurationSlow}`,\n content: '\"\"'\n }\n },\n [`&-date-panel\n ${componentCls}-cell-in-view${componentCls}-cell-in-range${componentCls}-cell-range-hover-start\n ${pickerCellInnerCls}::after`]: {\n insetInlineEnd: -(pickerPanelCellWidth - pickerPanelCellHeight) / 2,\n insetInlineStart: 0\n },\n [`&-date-panel ${componentCls}-cell-in-view${componentCls}-cell-in-range${componentCls}-cell-range-hover-end ${pickerCellInnerCls}::after`]: {\n insetInlineEnd: 0,\n insetInlineStart: -(pickerPanelCellWidth - pickerPanelCellHeight) / 2\n },\n // Hover with range start & end\n [`&-range-hover${componentCls}-range-start::after`]: {\n insetInlineEnd: '50%'\n },\n [`&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel`]: {\n [`${componentCls}-content`]: {\n height: pickerPanelWithoutTimeCellHeight * 4\n },\n [pickerCellInnerCls]: {\n padding: `0 ${paddingXS}px`\n }\n },\n '&-quarter-panel': {\n [`${componentCls}-content`]: {\n height: pickerQuarterPanelContentHeight\n },\n // Quarter Panel Special Style\n [`${componentCls}-cell-range-hover-start::after`]: {\n insetInlineStart: quarterHoverCellFixedDistance,\n borderInlineStart: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n [`${componentCls}-panel-rtl &`]: {\n insetInlineEnd: quarterHoverCellFixedDistance,\n borderInlineEnd: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`\n }\n },\n [`${componentCls}-cell-range-hover-end::after`]: {\n insetInlineEnd: quarterHoverCellFixedDistance,\n borderInlineEnd: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n [`${componentCls}-panel-rtl &`]: {\n insetInlineStart: quarterHoverCellFixedDistance,\n borderInlineStart: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`\n }\n }\n },\n // ======================== Footer ========================\n [`&-panel ${componentCls}-footer`]: {\n borderTop: `${lineWidth}px ${lineType} ${colorSplit}`\n },\n '&-footer': {\n width: 'min-content',\n minWidth: '100%',\n lineHeight: `${pickerTextHeight - 2 * lineWidth}px`,\n textAlign: 'center',\n '&-extra': {\n padding: `0 ${paddingSM}`,\n lineHeight: `${pickerTextHeight - 2 * lineWidth}px`,\n textAlign: 'start',\n '&:not(:last-child)': {\n borderBottom: `${lineWidth}px ${lineType} ${colorSplit}`\n }\n }\n },\n '&-now': {\n textAlign: 'start'\n },\n '&-today-btn': {\n color: colorLink,\n '&:hover': {\n color: colorLinkHover\n },\n '&:active': {\n color: colorLinkActive\n },\n [`&${componentCls}-today-btn-disabled`]: {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n },\n // ========================================================\n // = Special =\n // ========================================================\n // ===================== Decade Panel =====================\n '&-decade-panel': {\n [pickerCellInnerCls]: {\n padding: `0 ${paddingXS / 2}px`\n },\n [`${componentCls}-cell::before`]: {\n display: 'none'\n }\n },\n // ============= Year & Quarter & Month Panel =============\n [`&-year-panel,\n &-quarter-panel,\n &-month-panel`]: {\n [`${componentCls}-body`]: {\n padding: `0 ${paddingXS}px`\n },\n [pickerCellInnerCls]: {\n width: pickerYearMonthCellWidth\n },\n [`${componentCls}-cell-range-hover-start::after`]: {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n [`${componentCls}-panel-rtl &`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n }\n },\n [`${componentCls}-cell-range-hover-end::after`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM,\n [`${componentCls}-panel-rtl &`]: {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n }\n },\n [`&-year-panel,\n &-month-panel`]: {\n [`${componentCls}-cell-range-hover-start::after`]: {\n insetInlineStart: commonHoverCellFixedDistance,\n borderInlineStart: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n [`${componentCls}-panel-rtl &`]: {\n insetInlineEnd: commonHoverCellFixedDistance,\n borderInlineEnd: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`\n }\n },\n [`${componentCls}-cell-range-hover-end::after`]: {\n insetInlineEnd: commonHoverCellFixedDistance,\n borderInlineEnd: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n [`${componentCls}-panel-rtl &`]: {\n insetInlineStart: commonHoverCellFixedDistance,\n borderInlineStart: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`\n }\n }\n },\n // ====================== Week Panel ======================\n '&-week-panel': {\n [`${componentCls}-body`]: {\n padding: `${paddingXS}px ${paddingSM}px`\n },\n // Clear cell style\n [`${componentCls}-cell`]: {\n [`&:hover ${pickerCellInnerCls},\n &-selected ${pickerCellInnerCls},\n ${pickerCellInnerCls}`]: {\n background: 'transparent !important'\n }\n },\n '&-row': {\n td: {\n '&:before': {\n transition: `background ${motionDurationMid}`\n },\n '&:first-child:before': {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM\n },\n '&:last-child:before': {\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n }\n },\n [`&:hover td`]: {\n '&:before': {\n background: controlItemBgHover\n }\n },\n [`&-range-start td,\n &-range-end td,\n &-selected td`]: {\n // Rise priority to override hover style\n [`&${pickerCellCls}`]: {\n '&:before': {\n background: colorPrimary\n },\n [`&${componentCls}-cell-week`]: {\n color: new TinyColor(colorTextLightSolid).setAlpha(0.5).toHexString()\n },\n [pickerCellInnerCls]: {\n color: colorTextLightSolid\n }\n }\n },\n [`&-range-hover td:before`]: {\n background: controlItemBgActive\n }\n }\n },\n // ====================== Date Panel ======================\n '&-date-panel': {\n [`${componentCls}-body`]: {\n padding: `${paddingXS}px ${pickerDatePanelPaddingHorizontal}px`\n },\n [`${componentCls}-content`]: {\n width: pickerPanelCellWidth * 7,\n th: {\n width: pickerPanelCellWidth,\n boxSizing: 'border-box',\n padding: 0\n }\n }\n },\n // ==================== Datetime Panel ====================\n '&-datetime-panel': {\n display: 'flex',\n [`${componentCls}-time-panel`]: {\n borderInlineStart: `${lineWidth}px ${lineType} ${colorSplit}`\n },\n [`${componentCls}-date-panel,\n ${componentCls}-time-panel`]: {\n transition: `opacity ${motionDurationSlow}`\n },\n // Keyboard\n '&-active': {\n [`${componentCls}-date-panel,\n ${componentCls}-time-panel`]: {\n opacity: 0.3,\n '&-active': {\n opacity: 1\n }\n }\n }\n },\n // ====================== Time Panel ======================\n '&-time-panel': {\n width: 'auto',\n minWidth: 'auto',\n direction: 'ltr',\n [`${componentCls}-content`]: {\n display: 'flex',\n flex: 'auto',\n height: pickerTimePanelColumnHeight\n },\n '&-column': {\n flex: '1 0 auto',\n width: pickerTimePanelColumnWidth,\n margin: `${paddingXXS}px 0`,\n padding: 0,\n overflowY: 'hidden',\n textAlign: 'start',\n listStyle: 'none',\n transition: `background ${motionDurationMid}`,\n overflowX: 'hidden',\n '&::after': {\n display: 'block',\n height: pickerTimePanelColumnHeight - pickerTimePanelCellHeight,\n content: '\"\"'\n },\n '&:not(:first-child)': {\n borderInlineStart: `${lineWidth}px ${lineType} ${colorSplit}`\n },\n '&-active': {\n background: new TinyColor(controlItemBgActive).setAlpha(0.2).toHexString()\n },\n '&:hover': {\n overflowY: 'auto'\n },\n '> li': {\n margin: 0,\n padding: 0,\n [`&${componentCls}-time-panel-cell`]: {\n marginInline: marginXXS,\n [`${componentCls}-time-panel-cell-inner`]: {\n display: 'block',\n width: pickerTimePanelColumnWidth - 2 * marginXXS,\n height: pickerTimePanelCellHeight,\n margin: 0,\n paddingBlock: 0,\n paddingInlineEnd: 0,\n paddingInlineStart: (pickerTimePanelColumnWidth - pickerTimePanelCellHeight) / 2,\n color: colorText,\n lineHeight: `${pickerTimePanelCellHeight}px`,\n borderRadius: borderRadiusSM,\n cursor: 'pointer',\n transition: `background ${motionDurationMid}`,\n '&:hover': {\n background: controlItemBgHover\n }\n },\n '&-selected': {\n [`${componentCls}-time-panel-cell-inner`]: {\n background: controlItemBgActive\n }\n },\n '&-disabled': {\n [`${componentCls}-time-panel-cell-inner`]: {\n color: colorTextDisabled,\n background: 'transparent',\n cursor: 'not-allowed'\n }\n }\n }\n }\n }\n },\n // https://github.com/ant-design/ant-design/issues/39227\n [`&-datetime-panel ${componentCls}-time-panel-column:after`]: {\n height: pickerTimePanelColumnHeight - pickerTimePanelCellHeight + paddingXXS * 2\n }\n }\n };\n};\nconst genPickerStatusStyle = token => {\n const {\n componentCls,\n colorBgContainer,\n colorError,\n colorErrorOutline,\n colorWarning,\n colorWarningOutline\n } = token;\n return {\n [`${componentCls}:not(${componentCls}-disabled)`]: {\n [`&${componentCls}-status-error`]: {\n '&, &:not([disabled]):hover': {\n backgroundColor: colorBgContainer,\n borderColor: colorError\n },\n [`&${componentCls}-focused, &:focus`]: Object.assign({}, genActiveStyle(mergeToken(token, {\n inputBorderActiveColor: colorError,\n inputBorderHoverColor: colorError,\n controlOutline: colorErrorOutline\n }))),\n [`${componentCls}-active-bar`]: {\n background: colorError\n }\n },\n [`&${componentCls}-status-warning`]: {\n '&, &:not([disabled]):hover': {\n backgroundColor: colorBgContainer,\n borderColor: colorWarning\n },\n [`&${componentCls}-focused, &:focus`]: Object.assign({}, genActiveStyle(mergeToken(token, {\n inputBorderActiveColor: colorWarning,\n inputBorderHoverColor: colorWarning,\n controlOutline: colorWarningOutline\n }))),\n [`${componentCls}-active-bar`]: {\n background: colorWarning\n }\n }\n }\n };\n};\nconst genPickerStyle = token => {\n const {\n componentCls,\n antCls,\n controlHeight,\n fontSize,\n inputPaddingHorizontal,\n colorBgContainer,\n lineWidth,\n lineType,\n colorBorder,\n borderRadius,\n motionDurationMid,\n colorBgContainerDisabled,\n colorTextDisabled,\n colorTextPlaceholder,\n controlHeightLG,\n fontSizeLG,\n controlHeightSM,\n inputPaddingHorizontalSM,\n paddingXS,\n marginXS,\n colorTextDescription,\n lineWidthBold,\n lineHeight,\n colorPrimary,\n motionDurationSlow,\n zIndexPopup,\n paddingXXS,\n paddingSM,\n pickerTextHeight,\n controlItemBgActive,\n colorPrimaryBorder,\n sizePopupArrow,\n borderRadiusXS,\n borderRadiusOuter,\n colorBgElevated,\n borderRadiusLG,\n boxShadowSecondary,\n borderRadiusSM,\n colorSplit,\n controlItemBgHover,\n presetsWidth,\n presetsMaxWidth,\n boxShadowPopoverArrow,\n colorTextQuaternary\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genPikerPadding(token, controlHeight, fontSize, inputPaddingHorizontal)), {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n background: colorBgContainer,\n lineHeight: 1,\n border: `${lineWidth}px ${lineType} ${colorBorder}`,\n borderRadius,\n transition: `border ${motionDurationMid}, box-shadow ${motionDurationMid}`,\n '&:hover, &-focused': Object.assign({}, genHoverStyle(token)),\n '&-focused': Object.assign({}, genActiveStyle(token)),\n [`&${componentCls}-disabled`]: {\n background: colorBgContainerDisabled,\n borderColor: colorBorder,\n cursor: 'not-allowed',\n [`${componentCls}-suffix`]: {\n color: colorTextQuaternary\n }\n },\n [`&${componentCls}-borderless`]: {\n backgroundColor: 'transparent !important',\n borderColor: 'transparent !important',\n boxShadow: 'none !important'\n },\n // ======================== Input =========================\n [`${componentCls}-input`]: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n width: '100%',\n '> input': Object.assign(Object.assign({}, genBasicInputStyle(token)), {\n flex: 'auto',\n // Fix Firefox flex not correct:\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n minWidth: 1,\n height: 'auto',\n padding: 0,\n background: 'transparent',\n border: 0,\n borderRadius: 0,\n '&:focus': {\n boxShadow: 'none'\n },\n '&[disabled]': {\n background: 'transparent'\n }\n }),\n '&:hover': {\n [`${componentCls}-clear`]: {\n opacity: 1\n }\n },\n '&-placeholder': {\n '> input': {\n color: colorTextPlaceholder\n }\n }\n },\n // Size\n '&-large': Object.assign(Object.assign({}, genPikerPadding(token, controlHeightLG, fontSizeLG, inputPaddingHorizontal)), {\n [`${componentCls}-input > input`]: {\n fontSize: fontSizeLG\n }\n }),\n '&-small': Object.assign({}, genPikerPadding(token, controlHeightSM, fontSize, inputPaddingHorizontalSM)),\n [`${componentCls}-suffix`]: {\n display: 'flex',\n flex: 'none',\n alignSelf: 'center',\n marginInlineStart: paddingXS / 2,\n color: colorTextDisabled,\n lineHeight: 1,\n pointerEvents: 'none',\n '> *': {\n verticalAlign: 'top',\n '&:not(:last-child)': {\n marginInlineEnd: marginXS\n }\n }\n },\n [`${componentCls}-clear`]: {\n position: 'absolute',\n top: '50%',\n insetInlineEnd: 0,\n color: colorTextDisabled,\n lineHeight: 1,\n background: colorBgContainer,\n transform: 'translateY(-50%)',\n cursor: 'pointer',\n opacity: 0,\n transition: `opacity ${motionDurationMid}, color ${motionDurationMid}`,\n '> *': {\n verticalAlign: 'top'\n },\n '&:hover': {\n color: colorTextDescription\n }\n },\n [`${componentCls}-separator`]: {\n position: 'relative',\n display: 'inline-block',\n width: '1em',\n height: fontSizeLG,\n color: colorTextDisabled,\n fontSize: fontSizeLG,\n verticalAlign: 'top',\n cursor: 'default',\n [`${componentCls}-focused &`]: {\n color: colorTextDescription\n },\n [`${componentCls}-range-separator &`]: {\n [`${componentCls}-disabled &`]: {\n cursor: 'not-allowed'\n }\n }\n },\n // ======================== Range =========================\n '&-range': {\n position: 'relative',\n display: 'inline-flex',\n // Clear\n [`${componentCls}-clear`]: {\n insetInlineEnd: inputPaddingHorizontal\n },\n '&:hover': {\n [`${componentCls}-clear`]: {\n opacity: 1\n }\n },\n // Active bar\n [`${componentCls}-active-bar`]: {\n bottom: -lineWidth,\n height: lineWidthBold,\n marginInlineStart: inputPaddingHorizontal,\n background: colorPrimary,\n opacity: 0,\n transition: `all ${motionDurationSlow} ease-out`,\n pointerEvents: 'none'\n },\n [`&${componentCls}-focused`]: {\n [`${componentCls}-active-bar`]: {\n opacity: 1\n }\n },\n [`${componentCls}-range-separator`]: {\n alignItems: 'center',\n padding: `0 ${paddingXS}px`,\n lineHeight: 1\n },\n [`&${componentCls}-small`]: {\n [`${componentCls}-clear`]: {\n insetInlineEnd: inputPaddingHorizontalSM\n },\n [`${componentCls}-active-bar`]: {\n marginInlineStart: inputPaddingHorizontalSM\n }\n }\n },\n // ======================= Dropdown =======================\n '&-dropdown': Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genPanelStyle(token)), {\n position: 'absolute',\n // Fix incorrect position of picker popup\n // https://github.com/ant-design/ant-design/issues/35590\n top: -9999,\n left: {\n _skip_check_: true,\n value: -9999\n },\n zIndex: zIndexPopup,\n [`&${componentCls}-dropdown-hidden`]: {\n display: 'none'\n },\n [`&${componentCls}-dropdown-placement-bottomLeft`]: {\n [`${componentCls}-range-arrow`]: {\n top: 0,\n display: 'block',\n transform: 'translateY(-100%)'\n }\n },\n [`&${componentCls}-dropdown-placement-topLeft`]: {\n [`${componentCls}-range-arrow`]: {\n bottom: 0,\n display: 'block',\n transform: 'translateY(100%) rotate(180deg)'\n }\n },\n [`&${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-topRight,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-topRight`]: {\n animationName: slideDownIn\n },\n [`&${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-bottomRight,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-bottomRight`]: {\n animationName: slideUpIn\n },\n [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-topRight`]: {\n animationName: slideDownOut\n },\n [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-bottomRight`]: {\n animationName: slideUpOut\n },\n // Time picker with additional style\n [`${componentCls}-panel > ${componentCls}-time-panel`]: {\n paddingTop: paddingXXS\n },\n // ======================== Ranges ========================\n [`${componentCls}-ranges`]: {\n marginBottom: 0,\n padding: `${paddingXXS}px ${paddingSM}px`,\n overflow: 'hidden',\n lineHeight: `${pickerTextHeight - 2 * lineWidth - paddingXS / 2}px`,\n textAlign: 'start',\n listStyle: 'none',\n display: 'flex',\n justifyContent: 'space-between',\n '> li': {\n display: 'inline-block'\n },\n // https://github.com/ant-design/ant-design/issues/23687\n [`${componentCls}-preset > ${antCls}-tag-blue`]: {\n color: colorPrimary,\n background: controlItemBgActive,\n borderColor: colorPrimaryBorder,\n cursor: 'pointer'\n },\n [`${componentCls}-ok`]: {\n marginInlineStart: 'auto'\n }\n },\n [`${componentCls}-range-wrapper`]: {\n display: 'flex',\n position: 'relative'\n },\n [`${componentCls}-range-arrow`]: Object.assign({\n position: 'absolute',\n zIndex: 1,\n display: 'none',\n marginInlineStart: inputPaddingHorizontal * 1.5,\n transition: `left ${motionDurationSlow} ease-out`\n }, roundedArrow(sizePopupArrow, borderRadiusXS, borderRadiusOuter, colorBgElevated, boxShadowPopoverArrow)),\n [`${componentCls}-panel-container`]: {\n overflow: 'hidden',\n verticalAlign: 'top',\n background: colorBgElevated,\n borderRadius: borderRadiusLG,\n boxShadow: boxShadowSecondary,\n transition: `margin ${motionDurationSlow}`,\n // ======================== Layout ========================\n [`${componentCls}-panel-layout`]: {\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'stretch'\n },\n // ======================== Preset ========================\n [`${componentCls}-presets`]: {\n display: 'flex',\n flexDirection: 'column',\n minWidth: presetsWidth,\n maxWidth: presetsMaxWidth,\n ul: {\n height: 0,\n flex: 'auto',\n listStyle: 'none',\n overflow: 'auto',\n margin: 0,\n padding: paddingXS,\n borderInlineEnd: `${lineWidth}px ${lineType} ${colorSplit}`,\n li: Object.assign(Object.assign({}, textEllipsis), {\n borderRadius: borderRadiusSM,\n paddingInline: paddingXS,\n paddingBlock: (controlHeightSM - Math.round(fontSize * lineHeight)) / 2,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '+ li': {\n marginTop: marginXS\n },\n '&:hover': {\n background: controlItemBgHover\n }\n })\n }\n },\n // ======================== Panels ========================\n [`${componentCls}-panels`]: {\n display: 'inline-flex',\n flexWrap: 'nowrap',\n direction: 'ltr',\n [`${componentCls}-panel`]: {\n borderWidth: `0 0 ${lineWidth}px`\n },\n '&:last-child': {\n [`${componentCls}-panel`]: {\n borderWidth: 0\n }\n }\n },\n [`${componentCls}-panel`]: {\n verticalAlign: 'top',\n background: 'transparent',\n borderRadius: 0,\n borderWidth: 0,\n [`${componentCls}-content,\n table`]: {\n textAlign: 'center'\n },\n '&-focused': {\n borderColor: colorBorder\n }\n }\n }\n }),\n '&-dropdown-range': {\n padding: `${sizePopupArrow * 2 / 3}px 0`,\n '&-hidden': {\n display: 'none'\n }\n },\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-separator`]: {\n transform: 'rotate(180deg)'\n },\n [`${componentCls}-footer`]: {\n '&-extra': {\n direction: 'rtl'\n }\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')];\n};\nexport const initPickerPanelToken = token => {\n const pickerTimePanelCellHeight = 28;\n const {\n componentCls,\n controlHeightLG,\n controlHeightSM,\n colorPrimary,\n paddingXXS,\n padding\n } = token;\n return {\n pickerCellCls: `${componentCls}-cell`,\n pickerCellInnerCls: `${componentCls}-cell-inner`,\n pickerTextHeight: controlHeightLG,\n pickerPanelCellWidth: controlHeightSM * 1.5,\n pickerPanelCellHeight: controlHeightSM,\n pickerDateHoverRangeBorderColor: new TinyColor(colorPrimary).lighten(20).toHexString(),\n pickerBasicCellHoverWithRangeColor: new TinyColor(colorPrimary).lighten(35).toHexString(),\n pickerPanelWithoutTimeCellHeight: controlHeightLG * 1.65,\n pickerYearMonthCellWidth: controlHeightLG * 1.5,\n pickerTimePanelColumnHeight: pickerTimePanelCellHeight * 8,\n pickerTimePanelColumnWidth: controlHeightLG * 1.4,\n pickerTimePanelCellHeight,\n pickerQuarterPanelContentHeight: controlHeightLG * 1.4,\n pickerCellPaddingVertical: paddingXXS + paddingXXS / 2,\n pickerCellBorderGap: 2,\n pickerControlIconSize: 7,\n pickerControlIconBorderWidth: 1.5,\n pickerDatePanelPaddingHorizontal: padding + paddingXXS / 2 // 18 in normal\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('DatePicker', token => {\n const pickerToken = mergeToken(initInputToken(token), initPickerPanelToken(token));\n return [genPickerStyle(pickerToken), genPickerStatusStyle(pickerToken),\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(token, {\n focusElCls: `${token.componentCls}-focused`\n })];\n}, token => ({\n presetsWidth: 120,\n presetsMaxWidth: 200,\n zIndexPopup: token.zIndexPopupBase + 50\n}));","'use client';\n\nimport Col from './col';\nimport useInternalBreakpoint from './hooks/useBreakpoint';\nimport Row from './row';\n// Do not export params\nfunction useBreakpoint() {\n return useInternalBreakpoint();\n}\nexport { Col, Row };\nexport default {\n useBreakpoint\n};","export var COMMON_PROPS = ['crossOrigin', 'decoding', 'draggable', 'loading', 'referrerPolicy', 'sizes', 'srcSet', 'useMap', 'alt'];","import * as React from 'react';\nexport var PreviewGroupContext = /*#__PURE__*/React.createContext(null);","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { PreviewGroupContext } from \"../context\";\nvar uid = 0;\nexport default function useRegisterImage(canPreview, data) {\n var _React$useState = React.useState(function () {\n uid += 1;\n return String(uid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n var groupContext = React.useContext(PreviewGroupContext);\n var registerData = {\n data: data,\n canPreview: canPreview\n };\n\n // Keep order start\n // Resolve https://github.com/ant-design/ant-design/issues/28881\n // Only need unRegister when component unMount\n React.useEffect(function () {\n if (groupContext) {\n return groupContext.register(id, registerData);\n }\n }, []);\n React.useEffect(function () {\n if (groupContext) {\n groupContext.register(id, registerData);\n }\n }, [canPreview, data]);\n return id;\n}","export function isImageValid(src) {\n return new Promise(function (resolve) {\n var img = document.createElement('img');\n img.onerror = function () {\n return resolve(false);\n };\n img.onload = function () {\n return resolve(true);\n };\n img.src = src;\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef, useState } from 'react';\nimport { isImageValid } from \"../util\";\nexport default function useStatus(_ref) {\n var src = _ref.src,\n isCustomPlaceholder = _ref.isCustomPlaceholder,\n fallback = _ref.fallback;\n var _useState = useState(isCustomPlaceholder ? 'loading' : 'normal'),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setStatus = _useState2[1];\n var isLoaded = useRef(false);\n var isError = status === 'error';\n\n // https://github.com/react-component/image/pull/187\n useEffect(function () {\n isImageValid(src).then(function (isValid) {\n if (!isValid) {\n setStatus('error');\n }\n });\n }, [src]);\n useEffect(function () {\n if (isCustomPlaceholder && !isLoaded.current) {\n setStatus('loading');\n } else if (isError) {\n setStatus('normal');\n }\n }, [src]);\n var onLoad = function onLoad() {\n setStatus('normal');\n };\n var getImgRef = function getImgRef(img) {\n isLoaded.current = false;\n if (status !== 'loading') {\n return;\n }\n if (img !== null && img !== void 0 && img.complete && (img.naturalWidth || img.naturalHeight)) {\n isLoaded.current = true;\n onLoad();\n }\n };\n var srcAndOnload = isError && fallback ? {\n src: fallback\n } : {\n onLoad: onLoad,\n src: src\n };\n return [getImgRef, srcAndOnload, status];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { getClientSize } from \"rc-util/es/Dom/css\";\nfunction fixPoint(key, start, width, clientWidth) {\n var startAddWidth = start + width;\n var offsetStart = (width - clientWidth) / 2;\n if (width > clientWidth) {\n if (start > 0) {\n return _defineProperty({}, key, offsetStart);\n }\n if (start < 0 && startAddWidth < clientWidth) {\n return _defineProperty({}, key, -offsetStart);\n }\n } else if (start < 0 || startAddWidth > clientWidth) {\n return _defineProperty({}, key, start < 0 ? offsetStart : -offsetStart);\n }\n return {};\n}\n\n/**\n * Fix positon x,y point when\n *\n * Ele width && height < client\n * - Back origin\n *\n * - Ele width | height > clientWidth | clientHeight\n * - left | top > 0 -> Back 0\n * - left | top + width | height < clientWidth | clientHeight -> Back left | top + width | height === clientWidth | clientHeight\n *\n * Regardless of other\n */\nexport default function getFixScaleEleTransPosition(width, height, left, top) {\n var _getClientSize = getClientSize(),\n clientWidth = _getClientSize.width,\n clientHeight = _getClientSize.height;\n var fixPos = null;\n if (width <= clientWidth && height <= clientHeight) {\n fixPos = {\n x: 0,\n y: 0\n };\n } else if (width > clientWidth || height > clientHeight) {\n fixPos = _objectSpread(_objectSpread({}, fixPoint('x', left, width, clientWidth)), fixPoint('y', top, height, clientHeight));\n }\n return fixPos;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { getClientSize } from \"rc-util/es/Dom/css\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport raf from \"rc-util/es/raf\";\nimport { useRef, useState } from 'react';\nvar initialTransform = {\n x: 0,\n y: 0,\n rotate: 0,\n scale: 1,\n flipX: false,\n flipY: false\n};\nexport default function useImageTransform(imgRef, minScale, maxScale, onTransform) {\n var frame = useRef(null);\n var queue = useRef([]);\n var _useState = useState(initialTransform),\n _useState2 = _slicedToArray(_useState, 2),\n transform = _useState2[0],\n setTransform = _useState2[1];\n var resetTransform = function resetTransform(action) {\n setTransform(initialTransform);\n if (onTransform && !isEqual(initialTransform, transform)) {\n onTransform({\n transform: initialTransform,\n action: action\n });\n }\n };\n\n /** Direct update transform */\n var updateTransform = function updateTransform(newTransform, action) {\n if (frame.current === null) {\n queue.current = [];\n frame.current = raf(function () {\n setTransform(function (preState) {\n var memoState = preState;\n queue.current.forEach(function (queueState) {\n memoState = _objectSpread(_objectSpread({}, memoState), queueState);\n });\n frame.current = null;\n onTransform === null || onTransform === void 0 ? void 0 : onTransform({\n transform: memoState,\n action: action\n });\n return memoState;\n });\n });\n }\n queue.current.push(_objectSpread(_objectSpread({}, transform), newTransform));\n };\n\n /** Scale according to the position of clientX and clientY */\n var dispatchZoomChange = function dispatchZoomChange(ratio, action, clientX, clientY) {\n var _imgRef$current = imgRef.current,\n width = _imgRef$current.width,\n height = _imgRef$current.height,\n offsetWidth = _imgRef$current.offsetWidth,\n offsetHeight = _imgRef$current.offsetHeight,\n offsetLeft = _imgRef$current.offsetLeft,\n offsetTop = _imgRef$current.offsetTop;\n var newRatio = ratio;\n var newScale = transform.scale * ratio;\n if (newScale > maxScale) {\n newRatio = maxScale / transform.scale;\n newScale = maxScale;\n } else if (newScale < minScale) {\n newRatio = minScale / transform.scale;\n newScale = minScale;\n }\n\n /** Default center point scaling */\n var mergedClientX = clientX !== null && clientX !== void 0 ? clientX : innerWidth / 2;\n var mergedClientY = clientY !== null && clientY !== void 0 ? clientY : innerHeight / 2;\n var diffRatio = newRatio - 1;\n /** Deviation calculated from image size */\n var diffImgX = diffRatio * width * 0.5;\n var diffImgY = diffRatio * height * 0.5;\n /** The difference between the click position and the edge of the document */\n var diffOffsetLeft = diffRatio * (mergedClientX - transform.x - offsetLeft);\n var diffOffsetTop = diffRatio * (mergedClientY - transform.y - offsetTop);\n /** Final positioning */\n var newX = transform.x - (diffOffsetLeft - diffImgX);\n var newY = transform.y - (diffOffsetTop - diffImgY);\n\n /**\n * When zooming the image\n * When the image size is smaller than the width and height of the window, the position is initialized\n */\n if (ratio < 1 && newScale === 1) {\n var mergedWidth = offsetWidth * newScale;\n var mergedHeight = offsetHeight * newScale;\n var _getClientSize = getClientSize(),\n clientWidth = _getClientSize.width,\n clientHeight = _getClientSize.height;\n if (mergedWidth <= clientWidth && mergedHeight <= clientHeight) {\n newX = 0;\n newY = 0;\n }\n }\n updateTransform({\n x: newX,\n y: newY,\n scale: newScale\n }, action);\n };\n return {\n transform: transform,\n resetTransform: resetTransform,\n updateTransform: updateTransform,\n dispatchZoomChange: dispatchZoomChange\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport Portal from '@rc-component/portal';\nimport classnames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { PreviewGroupContext } from \"./context\";\nvar Operations = function Operations(props) {\n var visible = props.visible,\n maskTransitionName = props.maskTransitionName,\n getContainer = props.getContainer,\n prefixCls = props.prefixCls,\n rootClassName = props.rootClassName,\n icons = props.icons,\n countRender = props.countRender,\n showSwitch = props.showSwitch,\n showProgress = props.showProgress,\n current = props.current,\n transform = props.transform,\n count = props.count,\n scale = props.scale,\n minScale = props.minScale,\n maxScale = props.maxScale,\n closeIcon = props.closeIcon,\n onSwitchLeft = props.onSwitchLeft,\n onSwitchRight = props.onSwitchRight,\n onClose = props.onClose,\n onZoomIn = props.onZoomIn,\n onZoomOut = props.onZoomOut,\n onRotateRight = props.onRotateRight,\n onRotateLeft = props.onRotateLeft,\n onFlipX = props.onFlipX,\n onFlipY = props.onFlipY,\n toolbarRender = props.toolbarRender;\n var groupContext = useContext(PreviewGroupContext);\n var rotateLeft = icons.rotateLeft,\n rotateRight = icons.rotateRight,\n zoomIn = icons.zoomIn,\n zoomOut = icons.zoomOut,\n close = icons.close,\n left = icons.left,\n right = icons.right,\n flipX = icons.flipX,\n flipY = icons.flipY;\n var toolClassName = \"\".concat(prefixCls, \"-operations-operation\");\n React.useEffect(function () {\n var onKeyDown = function onKeyDown(e) {\n if (e.keyCode === KeyCode.ESC) {\n onClose();\n }\n };\n if (visible) {\n window.addEventListener('keydown', onKeyDown);\n }\n return function () {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [visible]);\n var tools = [{\n icon: flipY,\n onClick: onFlipY,\n type: 'flipY'\n }, {\n icon: flipX,\n onClick: onFlipX,\n type: 'flipX'\n }, {\n icon: rotateLeft,\n onClick: onRotateLeft,\n type: 'rotateLeft'\n }, {\n icon: rotateRight,\n onClick: onRotateRight,\n type: 'rotateRight'\n }, {\n icon: zoomOut,\n onClick: onZoomOut,\n type: 'zoomOut',\n disabled: scale === minScale\n }, {\n icon: zoomIn,\n onClick: onZoomIn,\n type: 'zoomIn',\n disabled: scale === maxScale\n }];\n var toolsNode = tools.map(function (_ref) {\n var _classnames;\n var icon = _ref.icon,\n onClick = _ref.onClick,\n type = _ref.type,\n disabled = _ref.disabled;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(toolClassName, (_classnames = {}, _defineProperty(_classnames, \"\".concat(prefixCls, \"-operations-operation-\").concat(type), true), _defineProperty(_classnames, \"\".concat(prefixCls, \"-operations-operation-disabled\"), !!disabled), _classnames)),\n onClick: onClick,\n key: type\n }, icon);\n });\n var toolbarNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-operations\")\n }, toolsNode);\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n motionName: maskTransitionName\n }, function (_ref2) {\n var className = _ref2.className,\n style = _ref2.style;\n return /*#__PURE__*/React.createElement(Portal, {\n open: true,\n getContainer: getContainer !== null && getContainer !== void 0 ? getContainer : document.body\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-operations-wrapper\"), className, rootClassName),\n style: style\n }, closeIcon === null ? null : /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-close\"),\n onClick: onClose\n }, closeIcon || close), showSwitch && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-switch-left\"), _defineProperty({}, \"\".concat(prefixCls, \"-switch-left-disabled\"), current === 0)),\n onClick: onSwitchLeft\n }, left), /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-switch-right\"), _defineProperty({}, \"\".concat(prefixCls, \"-switch-right-disabled\"), current === count - 1)),\n onClick: onSwitchRight\n }, right)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, showProgress && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-progress\")\n }, countRender ? countRender(current + 1, count) : \"\".concat(current + 1, \" / \").concat(count)), toolbarRender ? toolbarRender(toolbarNode, _objectSpread({\n icons: {\n flipYIcon: toolsNode[0],\n flipXIcon: toolsNode[1],\n rotateLeftIcon: toolsNode[2],\n rotateRightIcon: toolsNode[3],\n zoomOutIcon: toolsNode[4],\n zoomInIcon: toolsNode[5]\n },\n actions: {\n onFlipY: onFlipY,\n onFlipX: onFlipX,\n onRotateLeft: onRotateLeft,\n onRotateRight: onRotateRight,\n onZoomOut: onZoomOut,\n onZoomIn: onZoomIn\n },\n transform: transform\n }, groupContext ? {\n current: current,\n total: count\n } : {})) : toolbarNode)));\n });\n};\nexport default Operations;","/** Scale the ratio base */\nexport var BASE_SCALE_RATIO = 1;\n/** The maximum zoom ratio when the mouse zooms in, adjustable */\nexport var WHEEL_MAX_SCALE_RATIO = 1;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"fallback\", \"src\", \"imgRef\"],\n _excluded2 = [\"prefixCls\", \"src\", \"alt\", \"fallback\", \"movable\", \"onClose\", \"visible\", \"icons\", \"rootClassName\", \"closeIcon\", \"getContainer\", \"current\", \"count\", \"countRender\", \"scaleStep\", \"minScale\", \"maxScale\", \"transitionName\", \"maskTransitionName\", \"imageRender\", \"imgCommonProps\", \"toolbarRender\", \"onTransform\", \"onChange\"];\nimport classnames from 'classnames';\nimport Dialog from 'rc-dialog';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport { warning } from \"rc-util/es/warning\";\nimport React, { useContext, useEffect, useRef, useState } from 'react';\nimport { PreviewGroupContext } from \"./context\";\nimport getFixScaleEleTransPosition from \"./getFixScaleEleTransPosition\";\nimport useImageTransform from \"./hooks/useImageTransform\";\nimport useStatus from \"./hooks/useStatus\";\nimport Operations from \"./Operations\";\nimport { BASE_SCALE_RATIO, WHEEL_MAX_SCALE_RATIO } from \"./previewConfig\";\nvar PreviewImage = function PreviewImage(_ref) {\n var fallback = _ref.fallback,\n src = _ref.src,\n imgRef = _ref.imgRef,\n props = _objectWithoutProperties(_ref, _excluded);\n var _useStatus = useStatus({\n src: src,\n fallback: fallback\n }),\n _useStatus2 = _slicedToArray(_useStatus, 2),\n getImgRef = _useStatus2[0],\n srcAndOnload = _useStatus2[1];\n return /*#__PURE__*/React.createElement(\"img\", _extends({\n ref: function ref(_ref2) {\n imgRef.current = _ref2;\n getImgRef(_ref2);\n }\n }, props, srcAndOnload));\n};\nvar Preview = function Preview(props) {\n var prefixCls = props.prefixCls,\n src = props.src,\n alt = props.alt,\n fallback = props.fallback,\n _props$movable = props.movable,\n movable = _props$movable === void 0 ? true : _props$movable,\n onClose = props.onClose,\n visible = props.visible,\n _props$icons = props.icons,\n icons = _props$icons === void 0 ? {} : _props$icons,\n rootClassName = props.rootClassName,\n closeIcon = props.closeIcon,\n getContainer = props.getContainer,\n _props$current = props.current,\n current = _props$current === void 0 ? 0 : _props$current,\n _props$count = props.count,\n count = _props$count === void 0 ? 1 : _props$count,\n countRender = props.countRender,\n _props$scaleStep = props.scaleStep,\n scaleStep = _props$scaleStep === void 0 ? 0.5 : _props$scaleStep,\n _props$minScale = props.minScale,\n minScale = _props$minScale === void 0 ? 1 : _props$minScale,\n _props$maxScale = props.maxScale,\n maxScale = _props$maxScale === void 0 ? 50 : _props$maxScale,\n _props$transitionName = props.transitionName,\n transitionName = _props$transitionName === void 0 ? 'zoom' : _props$transitionName,\n _props$maskTransition = props.maskTransitionName,\n maskTransitionName = _props$maskTransition === void 0 ? 'fade' : _props$maskTransition,\n imageRender = props.imageRender,\n imgCommonProps = props.imgCommonProps,\n toolbarRender = props.toolbarRender,\n onTransform = props.onTransform,\n onChange = props.onChange,\n restProps = _objectWithoutProperties(props, _excluded2);\n var imgRef = useRef();\n var downPositionRef = useRef({\n deltaX: 0,\n deltaY: 0,\n transformX: 0,\n transformY: 0\n });\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isMoving = _useState2[0],\n setMoving = _useState2[1];\n var groupContext = useContext(PreviewGroupContext);\n var showLeftOrRightSwitches = groupContext && count > 1;\n var showOperationsProgress = groupContext && count >= 1;\n var _useImageTransform = useImageTransform(imgRef, minScale, maxScale, onTransform),\n transform = _useImageTransform.transform,\n resetTransform = _useImageTransform.resetTransform,\n updateTransform = _useImageTransform.updateTransform,\n dispatchZoomChange = _useImageTransform.dispatchZoomChange;\n var _useState3 = useState(true),\n _useState4 = _slicedToArray(_useState3, 2),\n enableTransition = _useState4[0],\n setEnableTransition = _useState4[1];\n var rotate = transform.rotate,\n scale = transform.scale,\n x = transform.x,\n y = transform.y;\n var wrapClassName = classnames(_defineProperty({}, \"\".concat(prefixCls, \"-moving\"), isMoving));\n useEffect(function () {\n if (!enableTransition) {\n setEnableTransition(true);\n }\n }, [enableTransition]);\n var onAfterClose = function onAfterClose() {\n resetTransform('close');\n };\n var onZoomIn = function onZoomIn() {\n dispatchZoomChange(BASE_SCALE_RATIO + scaleStep, 'zoomIn');\n };\n var onZoomOut = function onZoomOut() {\n dispatchZoomChange(BASE_SCALE_RATIO / (BASE_SCALE_RATIO + scaleStep), 'zoomOut');\n };\n var onRotateRight = function onRotateRight() {\n updateTransform({\n rotate: rotate + 90\n }, 'rotateRight');\n };\n var onRotateLeft = function onRotateLeft() {\n updateTransform({\n rotate: rotate - 90\n }, 'rotateLeft');\n };\n var onFlipX = function onFlipX() {\n updateTransform({\n flipX: !transform.flipX\n }, 'flipX');\n };\n var onFlipY = function onFlipY() {\n updateTransform({\n flipY: !transform.flipY\n }, 'flipY');\n };\n var onSwitchLeft = function onSwitchLeft(event) {\n event === null || event === void 0 ? void 0 : event.preventDefault();\n event === null || event === void 0 ? void 0 : event.stopPropagation();\n if (current > 0) {\n setEnableTransition(false);\n resetTransform('prev');\n onChange === null || onChange === void 0 ? void 0 : onChange(current - 1, current);\n }\n };\n var onSwitchRight = function onSwitchRight(event) {\n event === null || event === void 0 ? void 0 : event.preventDefault();\n event === null || event === void 0 ? void 0 : event.stopPropagation();\n if (current < count - 1) {\n setEnableTransition(false);\n resetTransform('next');\n onChange === null || onChange === void 0 ? void 0 : onChange(current + 1, current);\n }\n };\n var onMouseUp = function onMouseUp() {\n if (visible && isMoving) {\n setMoving(false);\n /** No need to restore the position when the picture is not moved, So as not to interfere with the click */\n var _downPositionRef$curr = downPositionRef.current,\n transformX = _downPositionRef$curr.transformX,\n transformY = _downPositionRef$curr.transformY;\n var hasChangedPosition = x !== transformX && y !== transformY;\n if (!hasChangedPosition) {\n return;\n }\n var width = imgRef.current.offsetWidth * scale;\n var height = imgRef.current.offsetHeight * scale;\n // eslint-disable-next-line @typescript-eslint/no-shadow\n var _imgRef$current$getBo = imgRef.current.getBoundingClientRect(),\n left = _imgRef$current$getBo.left,\n top = _imgRef$current$getBo.top;\n var isRotate = rotate % 180 !== 0;\n var fixState = getFixScaleEleTransPosition(isRotate ? height : width, isRotate ? width : height, left, top);\n if (fixState) {\n updateTransform(_objectSpread({}, fixState), 'dragRebound');\n }\n }\n };\n var onMouseDown = function onMouseDown(event) {\n // Only allow main button\n if (!movable || event.button !== 0) return;\n event.preventDefault();\n event.stopPropagation();\n downPositionRef.current = {\n deltaX: event.pageX - transform.x,\n deltaY: event.pageY - transform.y,\n transformX: transform.x,\n transformY: transform.y\n };\n setMoving(true);\n };\n var onMouseMove = function onMouseMove(event) {\n if (visible && isMoving) {\n updateTransform({\n x: event.pageX - downPositionRef.current.deltaX,\n y: event.pageY - downPositionRef.current.deltaY\n }, 'move');\n }\n };\n var onWheel = function onWheel(event) {\n if (!visible || event.deltaY == 0) return;\n // Scale ratio depends on the deltaY size\n var scaleRatio = Math.abs(event.deltaY / 100);\n // Limit the maximum scale ratio\n var mergedScaleRatio = Math.min(scaleRatio, WHEEL_MAX_SCALE_RATIO);\n // Scale the ratio each time\n var ratio = BASE_SCALE_RATIO + mergedScaleRatio * scaleStep;\n if (event.deltaY > 0) {\n ratio = BASE_SCALE_RATIO / ratio;\n }\n dispatchZoomChange(ratio, 'wheel', event.clientX, event.clientY);\n };\n var onKeyDown = function onKeyDown(event) {\n if (!visible || !showLeftOrRightSwitches) return;\n if (event.keyCode === KeyCode.LEFT) {\n onSwitchLeft();\n } else if (event.keyCode === KeyCode.RIGHT) {\n onSwitchRight();\n }\n };\n var onDoubleClick = function onDoubleClick(event) {\n if (visible) {\n if (scale !== 1) {\n updateTransform({\n x: 0,\n y: 0,\n scale: 1\n }, 'doubleClick');\n } else {\n dispatchZoomChange(BASE_SCALE_RATIO + scaleStep, 'doubleClick', event.clientX, event.clientY);\n }\n }\n };\n useEffect(function () {\n var onTopMouseUpListener;\n var onTopMouseMoveListener;\n var onMouseUpListener;\n var onMouseMoveListener;\n if (movable) {\n onMouseUpListener = addEventListener(window, 'mouseup', onMouseUp, false);\n onMouseMoveListener = addEventListener(window, 'mousemove', onMouseMove, false);\n try {\n // Resolve if in iframe lost event\n /* istanbul ignore next */\n if (window.top !== window.self) {\n onTopMouseUpListener = addEventListener(window.top, 'mouseup', onMouseUp, false);\n onTopMouseMoveListener = addEventListener(window.top, 'mousemove', onMouseMove, false);\n }\n } catch (error) {\n /* istanbul ignore next */\n warning(false, \"[rc-image] \".concat(error));\n }\n }\n return function () {\n var _onMouseUpListener, _onMouseMoveListener, _onTopMouseUpListener, _onTopMouseMoveListen;\n (_onMouseUpListener = onMouseUpListener) === null || _onMouseUpListener === void 0 ? void 0 : _onMouseUpListener.remove();\n (_onMouseMoveListener = onMouseMoveListener) === null || _onMouseMoveListener === void 0 ? void 0 : _onMouseMoveListener.remove();\n /* istanbul ignore next */\n (_onTopMouseUpListener = onTopMouseUpListener) === null || _onTopMouseUpListener === void 0 ? void 0 : _onTopMouseUpListener.remove();\n /* istanbul ignore next */\n (_onTopMouseMoveListen = onTopMouseMoveListener) === null || _onTopMouseMoveListen === void 0 ? void 0 : _onTopMouseMoveListen.remove();\n };\n }, [visible, isMoving, x, y, rotate, movable]);\n useEffect(function () {\n var onKeyDownListener = addEventListener(window, 'keydown', onKeyDown, false);\n return function () {\n onKeyDownListener.remove();\n };\n }, [visible, showLeftOrRightSwitches, current]);\n var imgNode = /*#__PURE__*/React.createElement(PreviewImage, _extends({}, imgCommonProps, {\n width: props.width,\n height: props.height,\n imgRef: imgRef,\n className: \"\".concat(prefixCls, \"-img\"),\n alt: alt,\n style: {\n transform: \"translate3d(\".concat(transform.x, \"px, \").concat(transform.y, \"px, 0) scale3d(\").concat(transform.flipX ? '-' : '').concat(scale, \", \").concat(transform.flipY ? '-' : '').concat(scale, \", 1) rotate(\").concat(rotate, \"deg)\"),\n transitionDuration: !enableTransition && '0s'\n },\n fallback: fallback,\n src: src,\n onWheel: onWheel,\n onMouseDown: onMouseDown,\n onDoubleClick: onDoubleClick\n }));\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Dialog, _extends({\n transitionName: transitionName,\n maskTransitionName: maskTransitionName,\n closable: false,\n keyboard: true,\n prefixCls: prefixCls,\n onClose: onClose,\n visible: visible,\n wrapClassName: wrapClassName,\n rootClassName: rootClassName,\n getContainer: getContainer\n }, restProps, {\n afterClose: onAfterClose\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-img-wrapper\")\n }, imageRender ? imageRender(imgNode, _objectSpread({\n transform: transform\n }, groupContext ? {\n current: current\n } : {})) : imgNode)), /*#__PURE__*/React.createElement(Operations, {\n visible: visible,\n transform: transform,\n maskTransitionName: maskTransitionName,\n closeIcon: closeIcon,\n getContainer: getContainer,\n prefixCls: prefixCls,\n rootClassName: rootClassName,\n icons: icons,\n countRender: countRender,\n showSwitch: showLeftOrRightSwitches,\n showProgress: showOperationsProgress,\n current: current,\n count: count,\n scale: scale,\n minScale: minScale,\n maxScale: maxScale,\n toolbarRender: toolbarRender,\n onSwitchLeft: onSwitchLeft,\n onSwitchRight: onSwitchRight,\n onZoomIn: onZoomIn,\n onZoomOut: onZoomOut,\n onRotateRight: onRotateRight,\n onRotateLeft: onRotateLeft,\n onFlipX: onFlipX,\n onFlipY: onFlipY,\n onClose: onClose\n }));\n};\nexport default Preview;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { COMMON_PROPS } from \"../common\";\n/**\n * Merge props provided `items` or context collected images\n */\nexport default function usePreviewItems(items) {\n // Context collection image data\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n images = _React$useState2[0],\n setImages = _React$useState2[1];\n var registerImage = React.useCallback(function (id, data) {\n setImages(function (imgs) {\n return _objectSpread(_objectSpread({}, imgs), {}, _defineProperty({}, id, data));\n });\n return function () {\n setImages(function (imgs) {\n var cloneImgs = _objectSpread({}, imgs);\n delete cloneImgs[id];\n return cloneImgs;\n });\n };\n }, []);\n\n // items\n var mergedItems = React.useMemo(function () {\n if (items) {\n return items.map(function (item) {\n if (typeof item === 'string') {\n return {\n data: {\n src: item\n }\n };\n }\n var data = {};\n Object.keys(item).forEach(function (key) {\n if (['src'].concat(_toConsumableArray(COMMON_PROPS)).includes(key)) {\n data[key] = item[key];\n }\n });\n return {\n data: data\n };\n });\n }\n return Object.keys(images).reduce(function (total, id) {\n var _images$id = images[id],\n canPreview = _images$id.canPreview,\n data = _images$id.data;\n if (canPreview) {\n total.push({\n data: data,\n id: id\n });\n }\n return total;\n }, []);\n }, [items, images]);\n return [mergedItems, registerImage];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\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 = [\"visible\", \"onVisibleChange\", \"getContainer\", \"current\", \"movable\", \"minScale\", \"maxScale\", \"countRender\", \"closeIcon\", \"onChange\", \"onTransform\", \"toolbarRender\", \"imageRender\"],\n _excluded2 = [\"src\"];\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport { PreviewGroupContext } from \"./context\";\nimport usePreviewItems from \"./hooks/usePreviewItems\";\nimport Preview from \"./Preview\";\nvar Group = function Group(_ref) {\n var _mergedItems$current;\n var _ref$previewPrefixCls = _ref.previewPrefixCls,\n previewPrefixCls = _ref$previewPrefixCls === void 0 ? 'rc-image-preview' : _ref$previewPrefixCls,\n children = _ref.children,\n _ref$icons = _ref.icons,\n icons = _ref$icons === void 0 ? {} : _ref$icons,\n items = _ref.items,\n preview = _ref.preview,\n fallback = _ref.fallback;\n var _ref2 = _typeof(preview) === 'object' ? preview : {},\n previewVisible = _ref2.visible,\n onVisibleChange = _ref2.onVisibleChange,\n getContainer = _ref2.getContainer,\n currentIndex = _ref2.current,\n movable = _ref2.movable,\n minScale = _ref2.minScale,\n maxScale = _ref2.maxScale,\n countRender = _ref2.countRender,\n closeIcon = _ref2.closeIcon,\n onChange = _ref2.onChange,\n onTransform = _ref2.onTransform,\n toolbarRender = _ref2.toolbarRender,\n imageRender = _ref2.imageRender,\n dialogProps = _objectWithoutProperties(_ref2, _excluded);\n\n // ========================== Items ===========================\n var _usePreviewItems = usePreviewItems(items),\n _usePreviewItems2 = _slicedToArray(_usePreviewItems, 2),\n mergedItems = _usePreviewItems2[0],\n register = _usePreviewItems2[1];\n\n // ========================= Preview ==========================\n // >>> Index\n var _useMergedState = useMergedState(0, {\n value: currentIndex\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n current = _useMergedState2[0],\n setCurrent = _useMergedState2[1];\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n keepOpenIndex = _useState2[0],\n setKeepOpenIndex = _useState2[1];\n\n // >>> Image\n var _ref3 = ((_mergedItems$current = mergedItems[current]) === null || _mergedItems$current === void 0 ? void 0 : _mergedItems$current.data) || {},\n src = _ref3.src,\n imgCommonProps = _objectWithoutProperties(_ref3, _excluded2);\n // >>> Visible\n var _useMergedState3 = useMergedState(!!previewVisible, {\n value: previewVisible,\n onChange: function onChange(val, prevVal) {\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(val, prevVal, current);\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n isShowPreview = _useMergedState4[0],\n setShowPreview = _useMergedState4[1];\n\n // >>> Position\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n mousePosition = _useState4[0],\n setMousePosition = _useState4[1];\n var onPreviewFromImage = React.useCallback(function (id, mouseX, mouseY) {\n var index = mergedItems.findIndex(function (item) {\n return item.id === id;\n });\n setShowPreview(true);\n setMousePosition({\n x: mouseX,\n y: mouseY\n });\n setCurrent(index < 0 ? 0 : index);\n setKeepOpenIndex(true);\n }, [mergedItems]);\n\n // Reset current when reopen\n React.useEffect(function () {\n if (isShowPreview) {\n if (!keepOpenIndex) {\n setCurrent(0);\n }\n } else {\n setKeepOpenIndex(false);\n }\n }, [isShowPreview]);\n\n // ========================== Events ==========================\n var onInternalChange = function onInternalChange(next, prev) {\n setCurrent(next);\n onChange === null || onChange === void 0 ? void 0 : onChange(next, prev);\n };\n var onPreviewClose = function onPreviewClose() {\n setShowPreview(false);\n setMousePosition(null);\n };\n\n // ========================= Context ==========================\n var previewGroupContext = React.useMemo(function () {\n return {\n register: register,\n onPreview: onPreviewFromImage\n };\n }, [register, onPreviewFromImage]);\n\n // ========================== Render ==========================\n return /*#__PURE__*/React.createElement(PreviewGroupContext.Provider, {\n value: previewGroupContext\n }, children, /*#__PURE__*/React.createElement(Preview, _extends({\n \"aria-hidden\": !isShowPreview,\n movable: movable,\n visible: isShowPreview,\n prefixCls: previewPrefixCls,\n closeIcon: closeIcon,\n onClose: onPreviewClose,\n mousePosition: mousePosition,\n imgCommonProps: imgCommonProps,\n src: src,\n fallback: fallback,\n icons: icons,\n minScale: minScale,\n maxScale: maxScale,\n getContainer: getContainer,\n current: current,\n count: mergedItems.length,\n countRender: countRender,\n onTransform: onTransform,\n toolbarRender: toolbarRender,\n imageRender: imageRender,\n onChange: onInternalChange\n }, dialogProps)));\n};\nexport default Group;","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 _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 = [\"src\", \"alt\", \"onPreviewClose\", \"prefixCls\", \"previewPrefixCls\", \"placeholder\", \"fallback\", \"width\", \"height\", \"style\", \"preview\", \"className\", \"onClick\", \"onError\", \"wrapperClassName\", \"wrapperStyle\", \"rootClassName\"],\n _excluded2 = [\"src\", \"visible\", \"onVisibleChange\", \"getContainer\", \"mask\", \"maskClassName\", \"movable\", \"icons\", \"scaleStep\", \"minScale\", \"maxScale\", \"imageRender\", \"toolbarRender\"];\nimport cn from 'classnames';\nimport { getOffset } from \"rc-util/es/Dom/css\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { useContext, useMemo, useState } from 'react';\nimport { COMMON_PROPS } from \"./common\";\nimport { PreviewGroupContext } from \"./context\";\nimport useRegisterImage from \"./hooks/useRegisterImage\";\nimport useStatus from \"./hooks/useStatus\";\nimport Preview from \"./Preview\";\nimport PreviewGroup from \"./PreviewGroup\";\nvar ImageInternal = function ImageInternal(props) {\n var imgSrc = props.src,\n alt = props.alt,\n onInitialPreviewClose = props.onPreviewClose,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-image' : _props$prefixCls,\n _props$previewPrefixC = props.previewPrefixCls,\n previewPrefixCls = _props$previewPrefixC === void 0 ? \"\".concat(prefixCls, \"-preview\") : _props$previewPrefixC,\n placeholder = props.placeholder,\n fallback = props.fallback,\n width = props.width,\n height = props.height,\n style = props.style,\n _props$preview = props.preview,\n preview = _props$preview === void 0 ? true : _props$preview,\n className = props.className,\n onClick = props.onClick,\n onError = props.onError,\n wrapperClassName = props.wrapperClassName,\n wrapperStyle = props.wrapperStyle,\n rootClassName = props.rootClassName,\n otherProps = _objectWithoutProperties(props, _excluded);\n var isCustomPlaceholder = placeholder && placeholder !== true;\n var _ref = _typeof(preview) === 'object' ? preview : {},\n previewSrc = _ref.src,\n _ref$visible = _ref.visible,\n previewVisible = _ref$visible === void 0 ? undefined : _ref$visible,\n _ref$onVisibleChange = _ref.onVisibleChange,\n onPreviewVisibleChange = _ref$onVisibleChange === void 0 ? onInitialPreviewClose : _ref$onVisibleChange,\n _ref$getContainer = _ref.getContainer,\n getPreviewContainer = _ref$getContainer === void 0 ? undefined : _ref$getContainer,\n previewMask = _ref.mask,\n maskClassName = _ref.maskClassName,\n movable = _ref.movable,\n icons = _ref.icons,\n scaleStep = _ref.scaleStep,\n minScale = _ref.minScale,\n maxScale = _ref.maxScale,\n imageRender = _ref.imageRender,\n toolbarRender = _ref.toolbarRender,\n dialogProps = _objectWithoutProperties(_ref, _excluded2);\n var src = previewSrc !== null && previewSrc !== void 0 ? previewSrc : imgSrc;\n var _useMergedState = useMergedState(!!previewVisible, {\n value: previewVisible,\n onChange: onPreviewVisibleChange\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n isShowPreview = _useMergedState2[0],\n setShowPreview = _useMergedState2[1];\n var _useStatus = useStatus({\n src: imgSrc,\n isCustomPlaceholder: isCustomPlaceholder,\n fallback: fallback\n }),\n _useStatus2 = _slicedToArray(_useStatus, 3),\n getImgRef = _useStatus2[0],\n srcAndOnload = _useStatus2[1],\n status = _useStatus2[2];\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n mousePosition = _useState2[0],\n setMousePosition = _useState2[1];\n var groupContext = useContext(PreviewGroupContext);\n var canPreview = !!preview;\n var onPreviewClose = function onPreviewClose() {\n setShowPreview(false);\n setMousePosition(null);\n };\n var wrapperClass = cn(prefixCls, wrapperClassName, rootClassName, _defineProperty({}, \"\".concat(prefixCls, \"-error\"), status === 'error'));\n\n // ========================= ImageProps =========================\n var imgCommonProps = useMemo(function () {\n var obj = {};\n COMMON_PROPS.forEach(function (prop) {\n if (props[prop] !== undefined) {\n obj[prop] = props[prop];\n }\n });\n return obj;\n }, COMMON_PROPS.map(function (prop) {\n return props[prop];\n }));\n\n // ========================== Register ==========================\n var registerData = useMemo(function () {\n return _objectSpread(_objectSpread({}, imgCommonProps), {}, {\n src: src\n });\n }, [src, imgCommonProps]);\n var imageId = useRegisterImage(canPreview, registerData);\n\n // ========================== Preview ===========================\n var onPreview = function onPreview(e) {\n var _getOffset = getOffset(e.target),\n left = _getOffset.left,\n top = _getOffset.top;\n if (groupContext) {\n groupContext.onPreview(imageId, left, top);\n } else {\n setMousePosition({\n x: left,\n y: top\n });\n setShowPreview(true);\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n\n // =========================== Render ===========================\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", _extends({}, otherProps, {\n className: wrapperClass,\n onClick: canPreview ? onPreview : onClick,\n style: _objectSpread({\n width: width,\n height: height\n }, wrapperStyle)\n }), /*#__PURE__*/React.createElement(\"img\", _extends({}, imgCommonProps, {\n className: cn(\"\".concat(prefixCls, \"-img\"), _defineProperty({}, \"\".concat(prefixCls, \"-img-placeholder\"), placeholder === true), className),\n style: _objectSpread({\n height: height\n }, style),\n ref: getImgRef\n }, srcAndOnload, {\n width: width,\n height: height,\n onError: onError\n })), status === 'loading' && /*#__PURE__*/React.createElement(\"div\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-placeholder\")\n }, placeholder), previewMask && canPreview && /*#__PURE__*/React.createElement(\"div\", {\n className: cn(\"\".concat(prefixCls, \"-mask\"), maskClassName),\n style: {\n display: (style === null || style === void 0 ? void 0 : style.display) === 'none' ? 'none' : undefined\n }\n }, previewMask)), !groupContext && canPreview && /*#__PURE__*/React.createElement(Preview, _extends({\n \"aria-hidden\": !isShowPreview,\n visible: isShowPreview,\n prefixCls: previewPrefixCls,\n onClose: onPreviewClose,\n mousePosition: mousePosition,\n src: src,\n alt: alt,\n fallback: fallback,\n getContainer: getPreviewContainer,\n icons: icons,\n movable: movable,\n scaleStep: scaleStep,\n minScale: minScale,\n maxScale: maxScale,\n rootClassName: rootClassName,\n imageRender: imageRender,\n imgCommonProps: imgCommonProps,\n toolbarRender: toolbarRender\n }, dialogProps)));\n};\nImageInternal.PreviewGroup = PreviewGroup;\nImageInternal.displayName = 'Image';\nexport default ImageInternal;","import Image from \"./Image\";\nexport * from \"./Image\";\nexport default Image;","// This icon file is generated automatically.\nvar RotateLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z\" } }] }, \"name\": \"rotate-left\", \"theme\": \"outlined\" };\nexport default RotateLeftOutlined;\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 RotateLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/RotateLeftOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar RotateLeftOutlined = function RotateLeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: RotateLeftOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n RotateLeftOutlined.displayName = 'RotateLeftOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(RotateLeftOutlined);","// This icon file is generated automatically.\nvar RotateRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-.4-12.6 6.1l-.2 64c-118.6.5-235.8 53.4-314.6 154.2A399.75 399.75 0 00123.5 631h74.9c-.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H396V494h440v326z\" } }] }, \"name\": \"rotate-right\", \"theme\": \"outlined\" };\nexport default RotateRightOutlined;\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 RotateRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RotateRightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar RotateRightOutlined = function RotateRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: RotateRightOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n RotateRightOutlined.displayName = 'RotateRightOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(RotateRightOutlined);","// This icon file is generated automatically.\nvar SwapOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"swap\", \"theme\": \"outlined\" };\nexport default SwapOutlined;\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 SwapOutlinedSvg from \"@ant-design/icons-svg/es/asn/SwapOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar SwapOutlined = function SwapOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: SwapOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n SwapOutlined.displayName = 'SwapOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(SwapOutlined);","import { TinyColor } from '@ctrl/tinycolor';\nimport { genModalMaskStyle } from '../../modal/style';\nimport { textEllipsis } from '../../style';\nimport { initFadeMotion, initZoomMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nexport const genBoxStyle = position => ({\n position: position || 'absolute',\n inset: 0\n});\nexport const genImageMaskStyle = token => {\n const {\n iconCls,\n motionDurationSlow,\n paddingXXS,\n marginXXS,\n prefixCls,\n colorTextLightSolid\n } = token;\n return {\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: colorTextLightSolid,\n background: new TinyColor('#000').setAlpha(0.5).toRgbString(),\n cursor: 'pointer',\n opacity: 0,\n transition: `opacity ${motionDurationSlow}`,\n [`.${prefixCls}-mask-info`]: Object.assign(Object.assign({}, textEllipsis), {\n padding: `0 ${paddingXXS}px`,\n [iconCls]: {\n marginInlineEnd: marginXXS,\n svg: {\n verticalAlign: 'baseline'\n }\n }\n })\n };\n};\nexport const genPreviewOperationsStyle = token => {\n const {\n previewCls,\n modalMaskBg,\n paddingSM,\n marginXL,\n margin,\n paddingLG,\n previewOperationColorDisabled,\n previewOperationHoverColor,\n motionDurationSlow,\n iconCls,\n colorTextLightSolid\n } = token;\n const operationBg = new TinyColor(modalMaskBg).setAlpha(0.1);\n const operationBgHover = operationBg.clone().setAlpha(0.2);\n return {\n [`${previewCls}-footer`]: {\n position: 'fixed',\n bottom: marginXL,\n left: {\n _skip_check_: true,\n value: 0\n },\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n color: token.previewOperationColor\n },\n [`${previewCls}-progress`]: {\n marginBottom: margin\n },\n [`${previewCls}-close`]: {\n position: 'fixed',\n top: marginXL,\n right: {\n _skip_check_: true,\n value: marginXL\n },\n display: 'flex',\n color: colorTextLightSolid,\n backgroundColor: operationBg.toRgbString(),\n borderRadius: '50%',\n padding: paddingSM,\n outline: 0,\n border: 0,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n backgroundColor: operationBgHover.toRgbString()\n },\n [`& > ${iconCls}`]: {\n fontSize: token.previewOperationSize\n }\n },\n [`${previewCls}-operations`]: {\n display: 'flex',\n alignItems: 'center',\n padding: `0 ${paddingLG}px`,\n backgroundColor: operationBg.toRgbString(),\n borderRadius: 100,\n '&-operation': {\n marginInlineStart: paddingSM,\n padding: paddingSM,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n userSelect: 'none',\n [`&:not(${previewCls}-operations-operation-disabled):hover > ${iconCls}`]: {\n color: previewOperationHoverColor\n },\n '&-disabled': {\n color: previewOperationColorDisabled,\n cursor: 'not-allowed'\n },\n '&:first-of-type': {\n marginInlineStart: 0\n },\n [`& > ${iconCls}`]: {\n fontSize: token.previewOperationSize\n }\n }\n }\n };\n};\nexport const genPreviewSwitchStyle = token => {\n const {\n modalMaskBg,\n iconCls,\n previewOperationColorDisabled,\n previewCls,\n zIndexPopup,\n motionDurationSlow\n } = token;\n const operationBg = new TinyColor(modalMaskBg).setAlpha(0.1);\n const operationBgHover = operationBg.clone().setAlpha(0.2);\n return {\n [`${previewCls}-switch-left, ${previewCls}-switch-right`]: {\n position: 'fixed',\n insetBlockStart: '50%',\n zIndex: zIndexPopup + 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: token.imagePreviewSwitchSize,\n height: token.imagePreviewSwitchSize,\n marginTop: -token.imagePreviewSwitchSize / 2,\n color: token.previewOperationColor,\n background: operationBg.toRgbString(),\n borderRadius: '50%',\n transform: `translateY(-50%)`,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n userSelect: 'none',\n '&:hover': {\n background: operationBgHover.toRgbString()\n },\n [`&-disabled`]: {\n '&, &:hover': {\n color: previewOperationColorDisabled,\n background: 'transparent',\n cursor: 'not-allowed',\n [`> ${iconCls}`]: {\n cursor: 'not-allowed'\n }\n }\n },\n [`> ${iconCls}`]: {\n fontSize: token.previewOperationSize\n }\n },\n [`${previewCls}-switch-left`]: {\n insetInlineStart: token.marginSM\n },\n [`${previewCls}-switch-right`]: {\n insetInlineEnd: token.marginSM\n }\n };\n};\nexport const genImagePreviewStyle = token => {\n const {\n motionEaseOut,\n previewCls,\n motionDurationSlow,\n componentCls\n } = token;\n return [{\n [`${componentCls}-preview-root`]: {\n [previewCls]: {\n height: '100%',\n textAlign: 'center',\n pointerEvents: 'none'\n },\n [`${previewCls}-body`]: Object.assign(Object.assign({}, genBoxStyle()), {\n overflow: 'hidden'\n }),\n [`${previewCls}-img`]: {\n maxWidth: '100%',\n maxHeight: '70%',\n verticalAlign: 'middle',\n transform: 'scale3d(1, 1, 1)',\n cursor: 'grab',\n transition: `transform ${motionDurationSlow} ${motionEaseOut} 0s`,\n userSelect: 'none',\n '&-wrapper': Object.assign(Object.assign({}, genBoxStyle()), {\n transition: `transform ${motionDurationSlow} ${motionEaseOut} 0s`,\n // https://github.com/ant-design/ant-design/issues/39913\n // TailwindCSS will reset img default style.\n // Let's set back.\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n '& > *': {\n pointerEvents: 'auto'\n },\n '&::before': {\n display: 'inline-block',\n width: 1,\n height: '50%',\n marginInlineEnd: -1,\n content: '\"\"'\n }\n })\n },\n [`${previewCls}-moving`]: {\n [`${previewCls}-preview-img`]: {\n cursor: 'grabbing',\n '&-wrapper': {\n transitionDuration: '0s'\n }\n }\n }\n }\n },\n // Override\n {\n [`${componentCls}-preview-root`]: {\n [`${previewCls}-wrap`]: {\n zIndex: token.zIndexPopup\n }\n }\n },\n // Preview operations & switch\n {\n [`${componentCls}-preview-operations-wrapper`]: {\n position: 'fixed',\n zIndex: token.zIndexPopup + 1\n },\n '&': [genPreviewOperationsStyle(token), genPreviewSwitchStyle(token)]\n }];\n};\nconst genImageStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // ============================== image ==============================\n [componentCls]: {\n position: 'relative',\n display: 'inline-block',\n [`${componentCls}-img`]: {\n width: '100%',\n height: 'auto',\n verticalAlign: 'middle'\n },\n [`${componentCls}-img-placeholder`]: {\n backgroundColor: token.colorBgContainerDisabled,\n backgroundImage: \"url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=')\",\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center center',\n backgroundSize: '30%'\n },\n [`${componentCls}-mask`]: Object.assign({}, genImageMaskStyle(token)),\n [`${componentCls}-mask:hover`]: {\n opacity: 1\n },\n [`${componentCls}-placeholder`]: Object.assign({}, genBoxStyle())\n }\n };\n};\nconst genPreviewMotion = token => {\n const {\n previewCls\n } = token;\n return {\n [`${previewCls}-root`]: initZoomMotion(token, 'zoom'),\n [`&`]: initFadeMotion(token, true)\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Image', token => {\n const previewCls = `${token.componentCls}-preview`;\n const imageToken = mergeToken(token, {\n previewCls,\n modalMaskBg: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n imagePreviewSwitchSize: token.controlHeightLG\n });\n return [genImageStyle(imageToken), genImagePreviewStyle(imageToken), genModalMaskStyle(mergeToken(imageToken, {\n componentCls: previewCls\n })), genPreviewMotion(imageToken)];\n}, token => ({\n zIndexPopup: token.zIndexPopupBase + 80,\n previewOperationColor: new TinyColor(token.colorTextLightSolid).setAlpha(0.65).toRgbString(),\n previewOperationHoverColor: new TinyColor(token.colorTextLightSolid).setAlpha(0.85).toRgbString(),\n previewOperationColorDisabled: new TinyColor(token.colorTextLightSolid).setAlpha(0.25).toRgbString(),\n previewOperationSize: token.fontSizeIcon * 1.5 // FIXME: fontSizeIconLG\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 LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport RotateLeftOutlined from \"@ant-design/icons/es/icons/RotateLeftOutlined\";\nimport RotateRightOutlined from \"@ant-design/icons/es/icons/RotateRightOutlined\";\nimport SwapOutlined from \"@ant-design/icons/es/icons/SwapOutlined\";\nimport ZoomInOutlined from \"@ant-design/icons/es/icons/ZoomInOutlined\";\nimport ZoomOutOutlined from \"@ant-design/icons/es/icons/ZoomOutOutlined\";\nimport RcImage from 'rc-image';\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport { getTransitionName } from '../_util/motion';\n// CSSINJS\nimport useStyle from './style';\nexport const icons = {\n rotateLeft: /*#__PURE__*/React.createElement(RotateLeftOutlined, null),\n rotateRight: /*#__PURE__*/React.createElement(RotateRightOutlined, null),\n zoomIn: /*#__PURE__*/React.createElement(ZoomInOutlined, null),\n zoomOut: /*#__PURE__*/React.createElement(ZoomOutOutlined, null),\n close: /*#__PURE__*/React.createElement(CloseOutlined, null),\n left: /*#__PURE__*/React.createElement(LeftOutlined, null),\n right: /*#__PURE__*/React.createElement(RightOutlined, null),\n flipX: /*#__PURE__*/React.createElement(SwapOutlined, null),\n flipY: /*#__PURE__*/React.createElement(SwapOutlined, {\n rotate: 90\n })\n};\nconst InternalPreviewGroup = _a => {\n var {\n previewPrefixCls: customizePrefixCls,\n preview\n } = _a,\n props = __rest(_a, [\"previewPrefixCls\", \"preview\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('image', customizePrefixCls);\n const previewPrefixCls = `${prefixCls}-preview`;\n const rootPrefixCls = getPrefixCls();\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergedPreview = React.useMemo(() => {\n var _a;\n if (preview === false) {\n return preview;\n }\n const _preview = typeof preview === 'object' ? preview : {};\n const mergedRootClassName = classNames(hashId, (_a = _preview.rootClassName) !== null && _a !== void 0 ? _a : '');\n return Object.assign(Object.assign({}, _preview), {\n transitionName: getTransitionName(rootPrefixCls, 'zoom', _preview.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', _preview.maskTransitionName),\n rootClassName: mergedRootClassName\n });\n }, [preview]);\n return wrapSSR( /*#__PURE__*/React.createElement(RcImage.PreviewGroup, Object.assign({\n preview: mergedPreview,\n previewPrefixCls: previewPrefixCls,\n icons: icons\n }, props)));\n};\nexport default InternalPreviewGroup;","'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 * as React from 'react';\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport RcImage from 'rc-image';\nimport { getTransitionName } from '../_util/motion';\nimport { ConfigContext } from '../config-provider';\nimport defaultLocale from '../locale/en_US';\n// CSSINJS\nimport PreviewGroup, { icons } from './PreviewGroup';\nimport useStyle from './style';\nconst Image = props => {\n const {\n prefixCls: customizePrefixCls,\n preview,\n className,\n rootClassName,\n style\n } = props,\n otherProps = __rest(props, [\"prefixCls\", \"preview\", \"className\", \"rootClassName\", \"style\"]);\n const {\n getPrefixCls,\n locale: contextLocale = defaultLocale,\n getPopupContainer: getContextPopupContainer,\n image\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('image', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const imageLocale = contextLocale.Image || defaultLocale.Image;\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergedRootClassName = classNames(rootClassName, hashId);\n const mergedClassName = classNames(className, hashId, image === null || image === void 0 ? void 0 : image.className);\n const mergedPreview = React.useMemo(() => {\n if (preview === false) {\n return preview;\n }\n const _preview = typeof preview === 'object' ? preview : {};\n const {\n getContainer\n } = _preview,\n restPreviewProps = __rest(_preview, [\"getContainer\"]);\n return Object.assign(Object.assign({\n mask: /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-mask-info`\n }, /*#__PURE__*/React.createElement(EyeOutlined, null), imageLocale === null || imageLocale === void 0 ? void 0 : imageLocale.preview),\n icons\n }, restPreviewProps), {\n getContainer: getContainer || getContextPopupContainer,\n transitionName: getTransitionName(rootPrefixCls, 'zoom', _preview.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', _preview.maskTransitionName)\n });\n }, [preview, imageLocale]);\n const mergedStyle = Object.assign(Object.assign({}, image === null || image === void 0 ? void 0 : image.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(RcImage, Object.assign({\n prefixCls: prefixCls,\n preview: mergedPreview,\n rootClassName: mergedRootClassName,\n className: mergedClassName,\n style: mergedStyle\n }, otherProps)));\n};\nImage.PreviewGroup = PreviewGroup;\nif (process.env.NODE_ENV !== 'production') {\n Image.displayName = 'Image';\n}\nexport default Image;","import * as React from 'react';\nconst AnchorContext = /*#__PURE__*/React.createContext(undefined);\nexport default AnchorContext;","import classNames from 'classnames';\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport AnchorContext from './context';\nconst AnchorLink = props => {\n const {\n href,\n title,\n prefixCls: customizePrefixCls,\n children,\n className,\n target,\n replace\n } = props;\n const context = React.useContext(AnchorContext);\n const {\n registerLink,\n unregisterLink,\n scrollTo,\n onClick,\n activeLink,\n direction\n } = context || {};\n React.useEffect(() => {\n registerLink === null || registerLink === void 0 ? void 0 : registerLink(href);\n return () => {\n unregisterLink === null || unregisterLink === void 0 ? void 0 : unregisterLink(href);\n };\n }, [href]);\n const handleClick = e => {\n if (replace) {\n e.preventDefault();\n window.location.replace(href);\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e, {\n title,\n href\n });\n scrollTo === null || scrollTo === void 0 ? void 0 : scrollTo(href);\n };\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!children || direction !== 'horizontal', 'Anchor.Link', '`Anchor.Link children` is not supported when `Anchor` direction is horizontal') : void 0;\n }\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('anchor', customizePrefixCls);\n const active = activeLink === href;\n const wrapperClassName = classNames(`${prefixCls}-link`, className, {\n [`${prefixCls}-link-active`]: active\n });\n const titleClassName = classNames(`${prefixCls}-link-title`, {\n [`${prefixCls}-link-title-active`]: active\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClassName\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: titleClassName,\n href: href,\n title: typeof title === 'string' ? title : '',\n target: target,\n onClick: handleClick\n }, title), direction !== 'horizontal' ? children : null);\n};\nexport default AnchorLink;","import { resetComponent, textEllipsis } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Shared ==============================\nconst genSharedAnchorStyle = token => {\n const {\n componentCls,\n holderOffsetBlock,\n motionDurationSlow,\n lineWidthBold,\n colorPrimary,\n lineType,\n colorSplit\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n marginBlockStart: -holderOffsetBlock,\n paddingBlockStart: holderOffsetBlock,\n // delete overflow: auto\n // overflow: 'auto',\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n paddingInlineStart: lineWidthBold,\n [`${componentCls}-link`]: {\n paddingBlock: token.linkPaddingBlock,\n paddingInline: `${token.linkPaddingInlineStart}px 0`,\n '&-title': Object.assign(Object.assign({}, textEllipsis), {\n position: 'relative',\n display: 'block',\n marginBlockEnd: token.anchorTitleBlock,\n color: token.colorText,\n transition: `all ${token.motionDurationSlow}`,\n '&:only-child': {\n marginBlockEnd: 0\n }\n }),\n [`&-active > ${componentCls}-link-title`]: {\n color: token.colorPrimary\n },\n // link link\n [`${componentCls}-link`]: {\n paddingBlock: token.anchorPaddingBlockSecondary\n }\n }\n }),\n [`&:not(${componentCls}-wrapper-horizontal)`]: {\n [componentCls]: {\n '&::before': {\n position: 'absolute',\n insetInlineStart: 0,\n top: 0,\n height: '100%',\n borderInlineStart: `${lineWidthBold}px ${lineType} ${colorSplit}`,\n content: '\" \"'\n },\n [`${componentCls}-ink`]: {\n position: 'absolute',\n insetInlineStart: 0,\n display: 'none',\n transform: 'translateY(-50%)',\n transition: `top ${motionDurationSlow} ease-in-out`,\n width: lineWidthBold,\n backgroundColor: colorPrimary,\n [`&${componentCls}-ink-visible`]: {\n display: 'inline-block'\n }\n }\n }\n },\n [`${componentCls}-fixed ${componentCls}-ink ${componentCls}-ink`]: {\n display: 'none'\n }\n }\n };\n};\nconst genSharedAnchorHorizontalStyle = token => {\n const {\n componentCls,\n motionDurationSlow,\n lineWidthBold,\n colorPrimary\n } = token;\n return {\n [`${componentCls}-wrapper-horizontal`]: {\n position: 'relative',\n '&::before': {\n position: 'absolute',\n left: {\n _skip_check_: true,\n value: 0\n },\n right: {\n _skip_check_: true,\n value: 0\n },\n bottom: 0,\n borderBottom: `1px ${token.lineType} ${token.colorSplit}`,\n content: '\" \"'\n },\n [componentCls]: {\n overflowX: 'scroll',\n position: 'relative',\n display: 'flex',\n scrollbarWidth: 'none' /* Firefox */,\n '&::-webkit-scrollbar': {\n display: 'none' /* Safari and Chrome */\n },\n\n [`${componentCls}-link:first-of-type`]: {\n paddingInline: 0\n },\n [`${componentCls}-ink`]: {\n position: 'absolute',\n bottom: 0,\n transition: `left ${motionDurationSlow} ease-in-out, width ${motionDurationSlow} ease-in-out`,\n height: lineWidthBold,\n backgroundColor: colorPrimary\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Anchor', token => {\n const {\n fontSize,\n fontSizeLG,\n paddingXXS\n } = token;\n const anchorToken = mergeToken(token, {\n holderOffsetBlock: paddingXXS,\n anchorPaddingBlockSecondary: paddingXXS / 2,\n anchorTitleBlock: fontSize / 14 * 3,\n anchorBallSize: fontSizeLG / 2\n });\n return [genSharedAnchorStyle(anchorToken), genSharedAnchorHorizontalStyle(anchorToken)];\n}, token => ({\n linkPaddingBlock: token.paddingXXS,\n linkPaddingInlineStart: token.padding\n}));","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport * as React from 'react';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport getScroll from '../_util/getScroll';\nimport scrollTo from '../_util/scrollTo';\nimport warning from '../_util/warning';\nimport Affix from '../affix';\nimport { ConfigContext } from '../config-provider';\nimport AnchorLink from './AnchorLink';\nimport AnchorContext from './context';\nimport useStyle from './style';\nfunction getDefaultContainer() {\n return window;\n}\nfunction getOffsetTop(element, container) {\n if (!element.getClientRects().length) {\n return 0;\n }\n const rect = element.getBoundingClientRect();\n if (rect.width || rect.height) {\n if (container === window) {\n container = element.ownerDocument.documentElement;\n return rect.top - container.clientTop;\n }\n return rect.top - container.getBoundingClientRect().top;\n }\n return rect.top;\n}\nconst sharpMatcherRegex = /#([\\S ]+)$/;\nconst AnchorContent = props => {\n var _a;\n const {\n rootClassName,\n anchorPrefixCls: prefixCls,\n className,\n style,\n offsetTop,\n affix = true,\n showInkInFixed = false,\n children,\n items,\n direction: anchorDirection = 'vertical',\n bounds,\n targetOffset,\n onClick,\n onChange,\n getContainer,\n getCurrentAnchor,\n replace\n } = props;\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!children, 'Anchor', '`Anchor children` is deprecated. Please use `items` instead.') : void 0;\n }\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(anchorDirection === 'horizontal' && (items === null || items === void 0 ? void 0 : items.some(n => 'children' in n))), 'Anchor', '`Anchor items#children` is not supported when `Anchor` direction is horizontal.') : void 0;\n }\n const [links, setLinks] = React.useState([]);\n const [activeLink, setActiveLink] = React.useState(null);\n const activeLinkRef = React.useRef(activeLink);\n const wrapperRef = React.useRef(null);\n const spanLinkNode = React.useRef(null);\n const animating = React.useRef(false);\n const {\n direction,\n getTargetContainer,\n anchor\n } = React.useContext(ConfigContext);\n const getCurrentContainer = (_a = getContainer !== null && getContainer !== void 0 ? getContainer : getTargetContainer) !== null && _a !== void 0 ? _a : getDefaultContainer;\n const dependencyListItem = JSON.stringify(links);\n const registerLink = useEvent(link => {\n if (!links.includes(link)) {\n setLinks(prev => [].concat(_toConsumableArray(prev), [link]));\n }\n });\n const unregisterLink = useEvent(link => {\n if (links.includes(link)) {\n setLinks(prev => prev.filter(i => i !== link));\n }\n });\n const updateInk = () => {\n var _a;\n const linkNode = (_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(`.${prefixCls}-link-title-active`);\n if (linkNode && spanLinkNode.current) {\n const {\n style: inkStyle\n } = spanLinkNode.current;\n const horizontalAnchor = anchorDirection === 'horizontal';\n inkStyle.top = horizontalAnchor ? '' : `${linkNode.offsetTop + linkNode.clientHeight / 2}px`;\n inkStyle.height = horizontalAnchor ? '' : `${linkNode.clientHeight}px`;\n inkStyle.left = horizontalAnchor ? `${linkNode.offsetLeft}px` : '';\n inkStyle.width = horizontalAnchor ? `${linkNode.clientWidth}px` : '';\n if (horizontalAnchor) {\n scrollIntoView(linkNode, {\n scrollMode: 'if-needed',\n block: 'nearest'\n });\n }\n }\n };\n const getInternalCurrentAnchor = function (_links) {\n let _offsetTop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let _bounds = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5;\n const linkSections = [];\n const container = getCurrentContainer();\n _links.forEach(link => {\n const sharpLinkMatch = sharpMatcherRegex.exec(link === null || link === void 0 ? void 0 : link.toString());\n if (!sharpLinkMatch) {\n return;\n }\n const target = document.getElementById(sharpLinkMatch[1]);\n if (target) {\n const top = getOffsetTop(target, container);\n if (top < _offsetTop + _bounds) {\n linkSections.push({\n link,\n top\n });\n }\n }\n });\n if (linkSections.length) {\n const maxSection = linkSections.reduce((prev, curr) => curr.top > prev.top ? curr : prev);\n return maxSection.link;\n }\n return '';\n };\n const setCurrentActiveLink = useEvent(link => {\n // FIXME: Seems a bug since this compare is not equals\n // `activeLinkRef` is parsed value which will always trigger `onChange` event.\n if (activeLinkRef.current === link) {\n return;\n }\n // https://github.com/ant-design/ant-design/issues/30584\n const newLink = typeof getCurrentAnchor === 'function' ? getCurrentAnchor(link) : link;\n setActiveLink(newLink);\n activeLinkRef.current = newLink;\n // onChange should respect the original link (which may caused by\n // window scroll or user click), not the new link\n onChange === null || onChange === void 0 ? void 0 : onChange(link);\n });\n const handleScroll = React.useCallback(() => {\n if (animating.current) {\n return;\n }\n const currentActiveLink = getInternalCurrentAnchor(links, targetOffset !== undefined ? targetOffset : offsetTop || 0, bounds);\n setCurrentActiveLink(currentActiveLink);\n }, [dependencyListItem, targetOffset, offsetTop]);\n const handleScrollTo = React.useCallback(link => {\n setCurrentActiveLink(link);\n const sharpLinkMatch = sharpMatcherRegex.exec(link);\n if (!sharpLinkMatch) {\n return;\n }\n const targetElement = document.getElementById(sharpLinkMatch[1]);\n if (!targetElement) {\n return;\n }\n const container = getCurrentContainer();\n const scrollTop = getScroll(container, true);\n const eleOffsetTop = getOffsetTop(targetElement, container);\n let y = scrollTop + eleOffsetTop;\n y -= targetOffset !== undefined ? targetOffset : offsetTop || 0;\n animating.current = true;\n scrollTo(y, {\n getContainer: getCurrentContainer,\n callback() {\n animating.current = false;\n }\n });\n }, [targetOffset, offsetTop]);\n const wrapperClass = classNames(rootClassName, `${prefixCls}-wrapper`, {\n [`${prefixCls}-wrapper-horizontal`]: anchorDirection === 'horizontal',\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, anchor === null || anchor === void 0 ? void 0 : anchor.className);\n const anchorClass = classNames(prefixCls, {\n [`${prefixCls}-fixed`]: !affix && !showInkInFixed\n });\n const inkClass = classNames(`${prefixCls}-ink`, {\n [`${prefixCls}-ink-visible`]: activeLink\n });\n const wrapperStyle = Object.assign(Object.assign({\n maxHeight: offsetTop ? `calc(100vh - ${offsetTop}px)` : '100vh'\n }, anchor === null || anchor === void 0 ? void 0 : anchor.style), style);\n const createNestedLink = options => Array.isArray(options) ? options.map(item => /*#__PURE__*/React.createElement(AnchorLink, Object.assign({\n replace: replace\n }, item, {\n key: item.key\n }), anchorDirection === 'vertical' && createNestedLink(item.children))) : null;\n const anchorContent = /*#__PURE__*/React.createElement(\"div\", {\n ref: wrapperRef,\n className: wrapperClass,\n style: wrapperStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: anchorClass\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: inkClass,\n ref: spanLinkNode\n }), 'items' in props ? createNestedLink(items) : children));\n React.useEffect(() => {\n const scrollContainer = getCurrentContainer();\n handleScroll();\n scrollContainer === null || scrollContainer === void 0 ? void 0 : scrollContainer.addEventListener('scroll', handleScroll);\n return () => {\n scrollContainer === null || scrollContainer === void 0 ? void 0 : scrollContainer.removeEventListener('scroll', handleScroll);\n };\n }, [dependencyListItem]);\n React.useEffect(() => {\n if (typeof getCurrentAnchor === 'function') {\n setCurrentActiveLink(getCurrentAnchor(activeLinkRef.current || ''));\n }\n }, [getCurrentAnchor]);\n React.useEffect(() => {\n updateInk();\n }, [anchorDirection, getCurrentAnchor, dependencyListItem, activeLink]);\n const memoizedContextValue = React.useMemo(() => ({\n registerLink,\n unregisterLink,\n scrollTo: handleScrollTo,\n activeLink,\n onClick,\n direction: anchorDirection\n }), [activeLink, onClick, handleScrollTo, anchorDirection]);\n return /*#__PURE__*/React.createElement(AnchorContext.Provider, {\n value: memoizedContextValue\n }, affix ? /*#__PURE__*/React.createElement(Affix, {\n offsetTop: offsetTop,\n target: getCurrentContainer\n }, anchorContent) : anchorContent);\n};\nconst Anchor = props => {\n const {\n prefixCls: customizePrefixCls,\n rootClassName\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const anchorPrefixCls = getPrefixCls('anchor', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(anchorPrefixCls);\n return wrapSSR( /*#__PURE__*/React.createElement(AnchorContent, Object.assign({}, props, {\n rootClassName: classNames(hashId, rootClassName),\n anchorPrefixCls: anchorPrefixCls\n })));\n};\nif (process.env.NODE_ENV !== 'production') {\n Anchor.displayName = 'Anchor';\n}\nexport default Anchor;","'use client';\n\nimport InternalAnchor from './Anchor';\nimport AnchorLink from './AnchorLink';\nconst Anchor = InternalAnchor;\nAnchor.Link = AnchorLink;\nexport default Anchor;","import React from 'react';\nexport const AppConfigContext = /*#__PURE__*/React.createContext({});\nconst AppContext = /*#__PURE__*/React.createContext({\n message: {},\n notification: {},\n modal: {}\n});\nexport default AppContext;","import { genComponentStyleHook } from '../../theme/internal';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n colorText,\n fontSize,\n lineHeight,\n fontFamily\n } = token;\n return {\n [componentCls]: {\n color: colorText,\n fontSize,\n lineHeight,\n fontFamily\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('App', token => [genBaseStyle(token)]);","'use client';\n\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useMessage from '../message/useMessage';\nimport useModal from '../modal/useModal';\nimport useNotification from '../notification/useNotification';\nimport AppContext, { AppConfigContext } from './context';\nimport useStyle from './style';\nconst useApp = () => React.useContext(AppContext);\nconst App = props => {\n const {\n prefixCls: customizePrefixCls,\n children,\n className,\n rootClassName,\n message,\n notification,\n style\n } = props;\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('app', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const customClassName = classNames(hashId, prefixCls, className, rootClassName);\n const appConfig = useContext(AppConfigContext);\n const mergedAppConfig = React.useMemo(() => ({\n message: Object.assign(Object.assign({}, appConfig.message), message),\n notification: Object.assign(Object.assign({}, appConfig.notification), notification)\n }), [message, notification, appConfig.message, appConfig.notification]);\n const [messageApi, messageContextHolder] = useMessage(mergedAppConfig.message);\n const [notificationApi, notificationContextHolder] = useNotification(mergedAppConfig.notification);\n const [ModalApi, ModalContextHolder] = useModal();\n const memoizedContextValue = React.useMemo(() => ({\n message: messageApi,\n notification: notificationApi,\n modal: ModalApi\n }), [messageApi, notificationApi, ModalApi]);\n return wrapSSR( /*#__PURE__*/React.createElement(AppContext.Provider, {\n value: memoizedContextValue\n }, /*#__PURE__*/React.createElement(AppConfigContext.Provider, {\n value: mergedAppConfig\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: customClassName,\n style: style\n }, ModalContextHolder, messageContextHolder, notificationContextHolder, children))));\n};\nif (process.env.NODE_ENV !== 'production') {\n App.displayName = 'App';\n}\nApp.useApp = useApp;\nexport default App;","'use client';\n\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport genPurePanel from '../_util/PurePanel';\nimport { isValidElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport Select from '../select';\nconst {\n Option\n} = Select;\nfunction isSelectOptionOrSelectOptGroup(child) {\n return child && child.type && (child.type.isSelectOption || child.type.isSelectOptGroup);\n}\nconst AutoComplete = (props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n popupClassName,\n dropdownClassName,\n children,\n dataSource\n } = props;\n const childNodes = toArray(children);\n // ============================= Input =============================\n let customizeInput;\n if (childNodes.length === 1 && isValidElement(childNodes[0]) && !isSelectOptionOrSelectOptGroup(childNodes[0])) {\n [customizeInput] = childNodes;\n }\n const getInputElement = customizeInput ? () => customizeInput : undefined;\n // ============================ Options ============================\n let optionChildren;\n // [Legacy] convert `children` or `dataSource` into option children\n if (childNodes.length && isSelectOptionOrSelectOptGroup(childNodes[0])) {\n optionChildren = children;\n } else {\n optionChildren = dataSource ? dataSource.map(item => {\n if (isValidElement(item)) {\n return item;\n }\n switch (typeof item) {\n case 'string':\n return /*#__PURE__*/React.createElement(Option, {\n key: item,\n value: item\n }, item);\n case 'object':\n {\n const {\n value: optionValue\n } = item;\n return /*#__PURE__*/React.createElement(Option, {\n key: optionValue,\n value: optionValue\n }, item.text);\n }\n default:\n process.env.NODE_ENV !== \"production\" ? warning(false, 'AutoComplete', '`dataSource` is only supports type `string[] | Object[]`.') : void 0;\n return undefined;\n }\n }) : [];\n }\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!('dataSource' in props), 'AutoComplete', '`dataSource` is deprecated, please use `options` instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!customizeInput || !('size' in props), 'AutoComplete', 'You need to control style self instead of setting `size` when using customize input.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'AutoComplete', '`dropdownClassName` is deprecated, please use `popupClassName` instead.') : void 0;\n }\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('select', customizePrefixCls);\n return /*#__PURE__*/React.createElement(Select, Object.assign({\n ref: ref,\n suffixIcon: null\n }, omit(props, ['dataSource', 'dropdownClassName']), {\n prefixCls: prefixCls,\n popupClassName: popupClassName || dropdownClassName,\n className: classNames(`${prefixCls}-auto-complete`, className),\n mode: Select.SECRET_COMBOBOX_MODE_DO_NOT_USE,\n // Internal api\n getInputElement\n }), optionChildren);\n};\nconst RefAutoComplete = /*#__PURE__*/React.forwardRef(AutoComplete);\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(RefAutoComplete);\nRefAutoComplete.Option = Option;\nRefAutoComplete._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nif (process.env.NODE_ENV !== 'production') {\n RefAutoComplete.displayName = 'AutoComplete';\n}\nexport default RefAutoComplete;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent } from '../../style';\n// ============================== Shared ==============================\nconst genSharedBackTopStyle = token => {\n const {\n componentCls,\n backTopFontSize,\n backTopSize,\n zIndexPopup\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'fixed',\n insetInlineEnd: token.backTopInlineEnd,\n insetBlockEnd: token.backTopBlockEnd,\n zIndex: zIndexPopup,\n width: 40,\n height: 40,\n cursor: 'pointer',\n '&:empty': {\n display: 'none'\n },\n [`${componentCls}-content`]: {\n width: backTopSize,\n height: backTopSize,\n overflow: 'hidden',\n color: token.backTopColor,\n textAlign: 'center',\n backgroundColor: token.backTopBackground,\n borderRadius: backTopSize,\n transition: `all ${token.motionDurationMid}`,\n '&:hover': {\n backgroundColor: token.backTopHoverBackground,\n transition: `all ${token.motionDurationMid}`\n }\n },\n // change to .backtop .backtop-icon\n [`${componentCls}-icon`]: {\n fontSize: backTopFontSize,\n lineHeight: `${backTopSize}px`\n }\n })\n };\n};\nconst genMediaBackTopStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`@media (max-width: ${token.screenMD}px)`]: {\n [componentCls]: {\n insetInlineEnd: token.backTopInlineEndMD\n }\n },\n [`@media (max-width: ${token.screenXS}px)`]: {\n [componentCls]: {\n insetInlineEnd: token.backTopInlineEndXS\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('BackTop', token => {\n const {\n fontSizeHeading3,\n colorTextDescription,\n colorTextLightSolid,\n colorText,\n controlHeightLG\n } = token;\n const backTopToken = mergeToken(token, {\n backTopBackground: colorTextDescription,\n backTopColor: colorTextLightSolid,\n backTopHoverBackground: colorText,\n backTopFontSize: fontSizeHeading3,\n backTopSize: controlHeightLG,\n backTopBlockEnd: controlHeightLG * 1.25,\n backTopInlineEnd: controlHeightLG * 2.5,\n backTopInlineEndMD: controlHeightLG * 1.5,\n backTopInlineEndXS: controlHeightLG * 0.5\n });\n return [genSharedBackTopStyle(backTopToken), genMediaBackTopStyle(backTopToken)];\n}, token => ({\n zIndexPopup: token.zIndexBase + 10\n}));","'use client';\n\nimport VerticalAlignTopOutlined from \"@ant-design/icons/es/icons/VerticalAlignTopOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport getScroll from '../_util/getScroll';\nimport { cloneElement } from '../_util/reactNode';\nimport scrollTo from '../_util/scrollTo';\nimport throttleByAnimationFrame from '../_util/throttleByAnimationFrame';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst BackTop = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n visibilityHeight = 400,\n target,\n onClick,\n duration = 450\n } = props;\n const [visible, setVisible] = React.useState(visibilityHeight === 0);\n const ref = React.useRef(null);\n const getDefaultTarget = () => ref.current && ref.current.ownerDocument ? ref.current.ownerDocument : window;\n const handleScroll = throttleByAnimationFrame(e => {\n const scrollTop = getScroll(e.target, true);\n setVisible(scrollTop >= visibilityHeight);\n });\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'BackTop', '`BackTop` is deprecated, please use `FloatButton.BackTop` instead.') : void 0;\n }\n React.useEffect(() => {\n const getTarget = target || getDefaultTarget;\n const container = getTarget();\n handleScroll({\n target: container\n });\n container === null || container === void 0 ? void 0 : container.addEventListener('scroll', handleScroll);\n return () => {\n handleScroll.cancel();\n container === null || container === void 0 ? void 0 : container.removeEventListener('scroll', handleScroll);\n };\n }, [target]);\n const scrollToTop = e => {\n scrollTo(0, {\n getContainer: target || getDefaultTarget,\n duration\n });\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('back-top', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const classString = classNames(hashId, prefixCls, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName);\n // fix https://fb.me/react-unknown-prop\n const divProps = omit(props, ['prefixCls', 'className', 'rootClassName', 'children', 'visibilityHeight', 'target']);\n const defaultElement = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-content`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-icon`\n }, /*#__PURE__*/React.createElement(VerticalAlignTopOutlined, null)));\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({}, divProps, {\n className: classString,\n onClick: scrollToTop,\n ref: ref\n }), /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n motionName: `${rootPrefixCls}-fade`\n }, _ref => {\n let {\n className: motionClassName\n } = _ref;\n return cloneElement(props.children || defaultElement, _ref2 => {\n let {\n className: cloneCls\n } = _ref2;\n return {\n className: classNames(motionClassName, cloneCls)\n };\n });\n })));\n};\nif (process.env.NODE_ENV !== 'production') {\n BackTop.displayName = 'BackTop';\n}\nexport default BackTop;","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { FormItemInputContext } from '../form/context';\nimport { Button, Group } from '../radio';\nimport Select from '../select';\nconst YearSelectOffset = 10;\nconst YearSelectTotal = 20;\nfunction YearSelect(props) {\n const {\n fullscreen,\n validRange,\n generateConfig,\n locale,\n prefixCls,\n value,\n onChange,\n divRef\n } = props;\n const year = generateConfig.getYear(value || generateConfig.getNow());\n let start = year - YearSelectOffset;\n let end = start + YearSelectTotal;\n if (validRange) {\n start = generateConfig.getYear(validRange[0]);\n end = generateConfig.getYear(validRange[1]) + 1;\n }\n const suffix = locale && locale.year === '年' ? '年' : '';\n const options = [];\n for (let index = start; index < end; index++) {\n options.push({\n label: `${index}${suffix}`,\n value: index\n });\n }\n return /*#__PURE__*/React.createElement(Select, {\n size: fullscreen ? undefined : 'small',\n options: options,\n value: year,\n className: `${prefixCls}-year-select`,\n onChange: numYear => {\n let newDate = generateConfig.setYear(value, numYear);\n if (validRange) {\n const [startDate, endDate] = validRange;\n const newYear = generateConfig.getYear(newDate);\n const newMonth = generateConfig.getMonth(newDate);\n if (newYear === generateConfig.getYear(endDate) && newMonth > generateConfig.getMonth(endDate)) {\n newDate = generateConfig.setMonth(newDate, generateConfig.getMonth(endDate));\n }\n if (newYear === generateConfig.getYear(startDate) && newMonth < generateConfig.getMonth(startDate)) {\n newDate = generateConfig.setMonth(newDate, generateConfig.getMonth(startDate));\n }\n }\n onChange(newDate);\n },\n getPopupContainer: () => divRef.current\n });\n}\nfunction MonthSelect(props) {\n const {\n prefixCls,\n fullscreen,\n validRange,\n value,\n generateConfig,\n locale,\n onChange,\n divRef\n } = props;\n const month = generateConfig.getMonth(value || generateConfig.getNow());\n let start = 0;\n let end = 11;\n if (validRange) {\n const [rangeStart, rangeEnd] = validRange;\n const currentYear = generateConfig.getYear(value);\n if (generateConfig.getYear(rangeEnd) === currentYear) {\n end = generateConfig.getMonth(rangeEnd);\n }\n if (generateConfig.getYear(rangeStart) === currentYear) {\n start = generateConfig.getMonth(rangeStart);\n }\n }\n const months = locale.shortMonths || generateConfig.locale.getShortMonths(locale.locale);\n const options = [];\n for (let index = start; index <= end; index += 1) {\n options.push({\n label: months[index],\n value: index\n });\n }\n return /*#__PURE__*/React.createElement(Select, {\n size: fullscreen ? undefined : 'small',\n className: `${prefixCls}-month-select`,\n value: month,\n options: options,\n onChange: newMonth => {\n onChange(generateConfig.setMonth(value, newMonth));\n },\n getPopupContainer: () => divRef.current\n });\n}\nfunction ModeSwitch(props) {\n const {\n prefixCls,\n locale,\n mode,\n fullscreen,\n onModeChange\n } = props;\n return /*#__PURE__*/React.createElement(Group, {\n onChange: _ref => {\n let {\n target: {\n value\n }\n } = _ref;\n onModeChange(value);\n },\n value: mode,\n size: fullscreen ? undefined : 'small',\n className: `${prefixCls}-mode-switch`\n }, /*#__PURE__*/React.createElement(Button, {\n value: \"month\"\n }, locale.month), /*#__PURE__*/React.createElement(Button, {\n value: \"year\"\n }, locale.year));\n}\nfunction CalendarHeader(props) {\n const {\n prefixCls,\n fullscreen,\n mode,\n onChange,\n onModeChange\n } = props;\n const divRef = React.useRef(null);\n const formItemInputContext = useContext(FormItemInputContext);\n const mergedFormItemInputContext = useMemo(() => Object.assign(Object.assign({}, formItemInputContext), {\n isFormItemInput: false\n }), [formItemInputContext]);\n const sharedProps = Object.assign(Object.assign({}, props), {\n fullscreen,\n divRef\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-header`,\n ref: divRef\n }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: mergedFormItemInputContext\n }, /*#__PURE__*/React.createElement(YearSelect, Object.assign({}, sharedProps, {\n onChange: v => {\n onChange(v, 'year');\n }\n })), mode === 'month' && /*#__PURE__*/React.createElement(MonthSelect, Object.assign({}, sharedProps, {\n onChange: v => {\n onChange(v, 'month');\n }\n }))), /*#__PURE__*/React.createElement(ModeSwitch, Object.assign({}, sharedProps, {\n onModeChange: onModeChange\n })));\n}\nexport default CalendarHeader;","import { genPanelStyle, initPickerPanelToken } from '../../date-picker/style';\nimport { initInputToken } from '../../input/style';\nimport { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nexport const genCalendarStyles = token => {\n const {\n calendarCls,\n componentCls,\n fullBg,\n fullPanelBg,\n itemActiveBg\n } = token;\n return {\n [calendarCls]: Object.assign(Object.assign(Object.assign({}, genPanelStyle(token)), resetComponent(token)), {\n background: fullBg,\n '&-rtl': {\n direction: 'rtl'\n },\n [`${calendarCls}-header`]: {\n display: 'flex',\n justifyContent: 'flex-end',\n padding: `${token.paddingSM}px 0`,\n [`${calendarCls}-year-select`]: {\n minWidth: token.yearControlWidth\n },\n [`${calendarCls}-month-select`]: {\n minWidth: token.monthControlWidth,\n marginInlineStart: token.marginXS\n },\n [`${calendarCls}-mode-switch`]: {\n marginInlineStart: token.marginXS\n }\n }\n }),\n [`${calendarCls} ${componentCls}-panel`]: {\n background: fullPanelBg,\n border: 0,\n borderTop: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`,\n borderRadius: 0,\n [`${componentCls}-month-panel, ${componentCls}-date-panel`]: {\n width: 'auto'\n },\n [`${componentCls}-body`]: {\n padding: `${token.paddingXS}px 0`\n },\n [`${componentCls}-content`]: {\n width: '100%'\n }\n },\n [`${calendarCls}-mini`]: {\n borderRadius: token.borderRadiusLG,\n [`${calendarCls}-header`]: {\n paddingInlineEnd: token.paddingXS,\n paddingInlineStart: token.paddingXS\n },\n [`${componentCls}-panel`]: {\n borderRadius: `0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px`\n },\n [`${componentCls}-content`]: {\n height: token.miniContentHeight,\n th: {\n height: 'auto',\n padding: 0,\n lineHeight: `${token.weekHeight}px`\n }\n },\n [`${componentCls}-cell::before`]: {\n pointerEvents: 'none'\n }\n },\n [`${calendarCls}${calendarCls}-full`]: {\n [`${componentCls}-panel`]: {\n display: 'block',\n width: '100%',\n textAlign: 'end',\n background: fullBg,\n border: 0,\n [`${componentCls}-body`]: {\n 'th, td': {\n padding: 0\n },\n th: {\n height: 'auto',\n paddingInlineEnd: token.paddingSM,\n paddingBottom: token.paddingXXS,\n lineHeight: `${token.weekHeight}px`\n }\n }\n },\n [`${componentCls}-cell`]: {\n '&::before': {\n display: 'none'\n },\n '&:hover': {\n [`${calendarCls}-date`]: {\n background: token.controlItemBgHover\n }\n },\n [`${calendarCls}-date-today::before`]: {\n display: 'none'\n },\n // >>> Selected\n [`&-in-view${componentCls}-cell-selected`]: {\n [`${calendarCls}-date, ${calendarCls}-date-today`]: {\n background: itemActiveBg\n }\n },\n '&-selected, &-selected:hover': {\n [`${calendarCls}-date, ${calendarCls}-date-today`]: {\n [`${calendarCls}-date-value`]: {\n color: token.colorPrimary\n }\n }\n }\n },\n [`${calendarCls}-date`]: {\n display: 'block',\n width: 'auto',\n height: 'auto',\n margin: `0 ${token.marginXS / 2}px`,\n padding: `${token.paddingXS / 2}px ${token.paddingXS}px 0`,\n border: 0,\n borderTop: `${token.lineWidthBold}px ${token.lineType} ${token.colorSplit}`,\n borderRadius: 0,\n transition: `background ${token.motionDurationSlow}`,\n '&-value': {\n lineHeight: `${token.dateValueHeight}px`,\n transition: `color ${token.motionDurationSlow}`\n },\n '&-content': {\n position: 'static',\n width: 'auto',\n height: token.dateContentHeight,\n overflowY: 'auto',\n color: token.colorText,\n lineHeight: token.lineHeight,\n textAlign: 'start'\n },\n '&-today': {\n borderColor: token.colorPrimary,\n [`${calendarCls}-date-value`]: {\n color: token.colorText\n }\n }\n }\n },\n [`@media only screen and (max-width: ${token.screenXS}px) `]: {\n [`${calendarCls}`]: {\n [`${calendarCls}-header`]: {\n display: 'block',\n [`${calendarCls}-year-select`]: {\n width: '50%'\n },\n [`${calendarCls}-month-select`]: {\n width: `calc(50% - ${token.paddingXS}px)`\n },\n [`${calendarCls}-mode-switch`]: {\n width: '100%',\n marginTop: token.marginXS,\n marginInlineStart: 0,\n '> label': {\n width: '50%',\n textAlign: 'center'\n }\n }\n }\n }\n }\n };\n};\nexport default genComponentStyleHook('Calendar', token => {\n const calendarCls = `${token.componentCls}-calendar`;\n const calendarToken = mergeToken(initInputToken(token), initPickerPanelToken(token), {\n calendarCls,\n pickerCellInnerCls: `${token.componentCls}-cell-inner`,\n dateValueHeight: token.controlHeightSM,\n weekHeight: token.controlHeightSM * 0.75,\n dateContentHeight: (token.fontSizeSM * token.lineHeightSM + token.marginXS) * 3 + token.lineWidth * 2\n });\n return [genCalendarStyles(calendarToken)];\n}, token => ({\n fullBg: token.colorBgContainer,\n fullPanelBg: token.colorBgContainer,\n itemActiveBg: token.controlItemBgActive,\n yearControlWidth: 80,\n monthControlWidth: 70,\n miniContentHeight: 256\n}));","import classNames from 'classnames';\nimport { PickerPanel as RCPickerPanel } from 'rc-picker';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { useLocale } from '../locale';\nimport CalendarHeader from './Header';\nimport enUS from './locale/en_US';\nimport warning from '../_util/warning';\nimport useStyle from './style';\nfunction generateCalendar(generateConfig) {\n function isSameYear(date1, date2) {\n return date1 && date2 && generateConfig.getYear(date1) === generateConfig.getYear(date2);\n }\n function isSameMonth(date1, date2) {\n return isSameYear(date1, date2) && generateConfig.getMonth(date1) === generateConfig.getMonth(date2);\n }\n function isSameDate(date1, date2) {\n return isSameMonth(date1, date2) && generateConfig.getDate(date1) === generateConfig.getDate(date2);\n }\n const Calendar = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n dateFullCellRender,\n dateCellRender,\n monthFullCellRender,\n monthCellRender,\n cellRender,\n fullCellRender,\n headerRender,\n value,\n defaultValue,\n disabledDate,\n mode,\n validRange,\n fullscreen = true,\n onChange,\n onPanelChange,\n onSelect\n } = props;\n const {\n getPrefixCls,\n direction,\n calendar\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('picker', customizePrefixCls);\n const calendarPrefixCls = `${prefixCls}-calendar`;\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const today = generateConfig.getNow();\n // ====================== Warning =======================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!dateFullCellRender, 'Calendar', '`dateFullCellRender` is deprecated. Please use `fullCellRender` instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!dateCellRender, 'Calendar', '`dateCellRender` is deprecated. Please use `cellRender` instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!monthFullCellRender, 'Calendar', '`monthFullCellRender` is deprecated. Please use `fullCellRender` instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!monthCellRender, 'Calendar', '`monthCellRender` is deprecated. Please use `cellRender` instead.') : void 0;\n }\n // ====================== State =======================\n // Value\n const [mergedValue, setMergedValue] = useMergedState(() => value || generateConfig.getNow(), {\n defaultValue,\n value\n });\n // Mode\n const [mergedMode, setMergedMode] = useMergedState('month', {\n value: mode\n });\n const panelMode = React.useMemo(() => mergedMode === 'year' ? 'month' : 'date', [mergedMode]);\n // Disabled Date\n const mergedDisabledDate = React.useCallback(date => {\n const notInRange = validRange ? generateConfig.isAfter(validRange[0], date) || generateConfig.isAfter(date, validRange[1]) : false;\n return notInRange || !!(disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date));\n }, [disabledDate, validRange]);\n // ====================== Events ======================\n const triggerPanelChange = (date, newMode) => {\n onPanelChange === null || onPanelChange === void 0 ? void 0 : onPanelChange(date, newMode);\n };\n const triggerChange = date => {\n setMergedValue(date);\n if (!isSameDate(date, mergedValue)) {\n // Trigger when month panel switch month\n if (panelMode === 'date' && !isSameMonth(date, mergedValue) || panelMode === 'month' && !isSameYear(date, mergedValue)) {\n triggerPanelChange(date, mergedMode);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(date);\n }\n };\n const triggerModeChange = newMode => {\n setMergedMode(newMode);\n triggerPanelChange(mergedValue, newMode);\n };\n const onInternalSelect = (date, source) => {\n triggerChange(date);\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, {\n source\n });\n };\n // ====================== Locale ======================\n const getDefaultLocale = () => {\n const {\n locale\n } = props;\n const result = Object.assign(Object.assign({}, enUS), locale);\n result.lang = Object.assign(Object.assign({}, result.lang), (locale || {}).lang);\n return result;\n };\n // ====================== Render ======================\n const dateRender = React.useCallback((date, info) => {\n if (fullCellRender) {\n return fullCellRender(date, info);\n }\n if (dateFullCellRender) {\n return dateFullCellRender(date);\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-cell-inner`, `${calendarPrefixCls}-date`, {\n [`${calendarPrefixCls}-date-today`]: isSameDate(today, date)\n })\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${calendarPrefixCls}-date-value`\n }, String(generateConfig.getDate(date)).padStart(2, '0')), /*#__PURE__*/React.createElement(\"div\", {\n className: `${calendarPrefixCls}-date-content`\n }, cellRender ? cellRender(date, info) : dateCellRender && dateCellRender(date)));\n }, [dateFullCellRender, dateCellRender, cellRender, fullCellRender]);\n const monthRender = React.useCallback((date, info) => {\n if (fullCellRender) {\n return fullCellRender(date, info);\n }\n if (monthFullCellRender) {\n return monthFullCellRender(date);\n }\n const months = info.locale.shortMonths || generateConfig.locale.getShortMonths(info.locale.locale);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-cell-inner`, `${calendarPrefixCls}-date`, {\n [`${calendarPrefixCls}-date-today`]: isSameMonth(today, date)\n })\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${calendarPrefixCls}-date-value`\n }, months[generateConfig.getMonth(date)]), /*#__PURE__*/React.createElement(\"div\", {\n className: `${calendarPrefixCls}-date-content`\n }, cellRender ? cellRender(date, info) : monthCellRender && monthCellRender(date)));\n }, [monthFullCellRender, monthCellRender, cellRender, fullCellRender]);\n const [contextLocale] = useLocale('Calendar', getDefaultLocale);\n const mergedCellRender = (current, info) => {\n if (info.type === 'date') {\n return dateRender(current, info);\n }\n if (info.type === 'month') {\n return monthRender(current, Object.assign(Object.assign({}, info), {\n locale: contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.lang\n }));\n }\n };\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(calendarPrefixCls, {\n [`${calendarPrefixCls}-full`]: fullscreen,\n [`${calendarPrefixCls}-mini`]: !fullscreen,\n [`${calendarPrefixCls}-rtl`]: direction === 'rtl'\n }, calendar === null || calendar === void 0 ? void 0 : calendar.className, className, rootClassName, hashId),\n style: Object.assign(Object.assign({}, calendar === null || calendar === void 0 ? void 0 : calendar.style), style)\n }, headerRender ? headerRender({\n value: mergedValue,\n type: mergedMode,\n onChange: nextDate => {\n onInternalSelect(nextDate, 'customize');\n },\n onTypeChange: triggerModeChange\n }) : /*#__PURE__*/React.createElement(CalendarHeader, {\n prefixCls: calendarPrefixCls,\n value: mergedValue,\n generateConfig: generateConfig,\n mode: mergedMode,\n fullscreen: fullscreen,\n locale: contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.lang,\n validRange: validRange,\n onChange: onInternalSelect,\n onModeChange: triggerModeChange\n }), /*#__PURE__*/React.createElement(RCPickerPanel, {\n value: mergedValue,\n prefixCls: prefixCls,\n locale: contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.lang,\n generateConfig: generateConfig,\n cellRender: mergedCellRender,\n onSelect: nextDate => {\n onInternalSelect(nextDate, panelMode);\n },\n mode: panelMode,\n picker: panelMode,\n disabledDate: mergedDisabledDate,\n hideHeader: true\n })));\n };\n if (process.env.NODE_ENV !== 'production') {\n Calendar.displayName = 'Calendar';\n }\n return Calendar;\n}\nexport default generateCalendar;","'use client';\n\nimport dayjsGenerateConfig from \"rc-picker/es/generate/dayjs\";\nimport generateCalendar from './generateCalendar';\nconst Calendar = generateCalendar(dayjsGenerateConfig);\nCalendar.generateCalendar = generateCalendar;\nexport default Calendar;","var initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nexport default initialState;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from \"react\";\nexport function clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\nexport var safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\nexport var getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n return onDemandSlides;\n};\n\n// return list of slides that need to be present\nexport var getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n return requiredSlides;\n};\n\n// startIndex that needs to be present\nexport var lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\nexport var lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\nexport var lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\nexport var lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n};\n\n// get width of an element\nexport var getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\nexport var getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\nexport var getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n return \"vertical\";\n};\n\n// whether or not we can go next\nexport var canGoNext = function canGoNext(spec) {\n var canGo = true;\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nexport var extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n};\n\n// get initialized state\nexport var initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = React.Children.count(spec.children);\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n return state;\n};\nexport var slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n return {\n state: state,\n nextState: nextState\n };\n};\nexport var changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n return targetSlide;\n};\nexport var keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\nexport var swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\nexport var swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n return state;\n};\nexport var swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n // reset the state of touch related state variables.\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n if (scrolling) {\n return state;\n }\n if (!touchObject.swipeLength) {\n return state;\n }\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n default:\n slideCount = activeSlide;\n }\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n return state;\n};\nexport var getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n return indexes;\n};\nexport var checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n prevNavigable = navigables[n];\n }\n }\n return index;\n};\nexport var getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n return true;\n });\n if (!swipedSlide) {\n return 0;\n }\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\nexport var checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return (\n // eslint-disable-next-line no-prototype-builtins\n keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec)\n );\n};\nexport var getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight;\n\n // Fallback for IE8\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n return style;\n};\nexport var getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec);\n // useCSS is true by default so it can be undefined\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nexport var getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n var slidesToOffset = 0;\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n }\n // shift current slide to center of the frame\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n return targetLeft;\n};\nexport var getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\nexport var getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n return spec.slideCount;\n};\nexport var getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\nexport var siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n return \"left\";\n }\n};\nexport var slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n if (rtl) {\n return 0;\n }\n return slidesToShow - 1;\n};\nexport var slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n if (rtl) {\n return slidesToShow - 1;\n }\n return 0;\n};\nexport var canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};","\"use strict\";\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from \"react\";\nimport classnames from \"classnames\";\nimport { lazyStartIndex, lazyEndIndex, getPreClones } from \"./utils/innerSliderUtils\";\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n slickCloned = index < 0 || index >= spec.slideCount;\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n var focusedSlide;\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n if (spec.fade) {\n style.position = \"relative\";\n if (spec.vertical && spec.slideHeight) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getKey = function getKey(child, fallbackKey) {\n return child.key + \"-\" + fallbackKey;\n};\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n var childrenCount = React.Children.count(spec.children);\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n React.Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n };\n\n // in case of lazyLoad, whether or not we want to fetch the slide\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/React.createElement(\"div\", null);\n }\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n // push a cloned element of the desired slide\n slides.push( /*#__PURE__*/React.cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: classnames(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n\n // if slide needs to be precloned or postcloned\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n if (preCloneNo <= getPreClones(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n if (key >= startIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/React.cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: classnames(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n if (key < endIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/React.cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: classnames(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\nexport var Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n var _super = _createSuper(Track);\n function Track() {\n var _this;\n _classCallCheck(this, Track);\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 _defineProperty(_assertThisInitialized(_this), \"node\", null);\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n return _this;\n }\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n return Track;\n}(React.PureComponent);","\"use strict\";\n\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 React from \"react\";\nimport classnames from \"classnames\";\nimport { clamp } from \"./utils/innerSliderUtils\";\nvar getDotCount = function getDotCount(spec) {\n var dots;\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n return dots;\n};\nexport var Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n var _super = _createSuper(Dots);\n function Dots() {\n _classCallCheck(this, Dots);\n return _super.apply(this, arguments);\n }\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n var rightBound = infinite ? _rightBound : clamp(_rightBound, 0, slideCount - 1);\n var _leftBound = rightBound - (slidesToScroll - 1);\n var leftBound = infinite ? _leftBound : clamp(_leftBound, 0, slideCount - 1);\n var className = classnames({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/React.createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/React.cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n return /*#__PURE__*/React.cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n return Dots;\n}(React.PureComponent);","\"use strict\";\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\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 React from \"react\";\nimport classnames from \"classnames\";\nimport { canGoNext } from \"./utils/innerSliderUtils\";\nexport var PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n var _super = _createSuper(PrevArrow);\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n return _super.apply(this, arguments);\n }\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: classnames(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/React.cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/React.createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n return prevArrow;\n }\n }]);\n return PrevArrow;\n}(React.PureComponent);\nexport var NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n var _super2 = _createSuper(NextArrow);\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n return _super2.apply(this, arguments);\n }\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n if (!canGoNext(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: classnames(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/React.cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/React.createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n return nextArrow;\n }\n }]);\n return NextArrow;\n}(React.PureComponent);","\"use strict\";\n\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\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 _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"animating\"];\nimport React from \"react\";\nimport initialState from \"./initial-state\";\nimport { debounce } from \"throttle-debounce\";\nimport classnames from \"classnames\";\nimport { getOnDemandLazySlides, extractObject, initializedState, getHeight, canGoNext, slideHandler, changeSlide, keyHandler, swipeStart, swipeMove, swipeEnd, getPreClones, getPostClones, getTrackLeft, getTrackCSS } from \"./utils/innerSliderUtils\";\nimport { Track } from \"./track\";\nimport { Dots } from \"./dots\";\nimport { PrevArrow, NextArrow } from \"./arrows\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nexport var InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n var _super = _createSuper(InnerSlider);\n function InnerSlider(props) {\n var _this;\n _classCallCheck(this, InnerSlider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n _this.list.style.height = getHeight(elem) + \"px\";\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n _this.props.autoplay && _this.autoPlay(\"playing\");\n });\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n _this.ro = new ResizeObserver(function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n _this.ro.observe(_this.list);\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n _this.callbackTimers = [];\n }\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n _this.ro.disconnect();\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n _this.props.onReInit && _this.props.onReInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n _this.adaptHeight();\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n var setTrackStyle = _this.didPropsChange(prevProps);\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= React.Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: React.Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n if (prevProps.autoplay !== _this.props.autoplay || prevProps.autoplaySpeed !== _this.props.autoplaySpeed) {\n if (!prevProps.autoplay && _this.props.autoplay) {\n _this.autoPlay(\"playing\");\n } else if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = debounce(50, function () {\n return _this.resizeWindow(setTrackStyle);\n });\n _this.debouncedResize();\n });\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node);\n // prevent warning: setting state on unmounted component (server side rendering)\n if (!isTrackMounted) return;\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n });\n // animating state should be cleared while resizing, otherwise autoplay stops working\n _this.setState({\n animating: false\n });\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = initializedState(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = getTrackLeft(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = getTrackCSS(spec);\n if (setTrackStyle || React.Children.count(_this.props.children) !== React.Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n _this.setState(updatedState, callback);\n });\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = getPreClones(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = getPostClones(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n return {\n trackStyle: _trackStyle\n };\n }\n var childrenCount = React.Children.count(_this.props.children);\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n var slideCount = getPreClones(spec) + getPostClones(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * (getPreClones(spec) + _this.state.currentSlide) * trackWidth / 100;\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n image.onclick = function (e) {\n prevClickHandler(e);\n image.parentNode.focus();\n };\n }\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + getPostClones(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n for (var _index = _this.state.currentSlide - 1; _index >= -getPreClones(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange;\n // capture currentslide before state is updated\n var currentSlide = _this.state.currentSlide;\n var _slideHandler = slideHandler(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, _excluded);\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var targetSlide = changeSlide(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n _this.props.autoplay && _this.autoPlay(\"update\");\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n nodes[0] && nodes[0].focus();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = keyHandler(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n window.ontouchmove = preventDefault;\n });\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n var state = swipeStart(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = swipeMove(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = swipeEnd(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n _this.setState(state);\n if (triggerSlideHandler === undefined) return;\n _this.slideHandler(triggerSlideHandler);\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if (canGoNext(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n _this.slideHandler(nextIndex);\n });\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n var autoplaying = _this.state.autoplaying;\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n var autoplaying = _this.state.autoplaying;\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = classnames(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var trackProps = extractObject(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = extractObject(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/React.createElement(Dots, dotProps);\n }\n var prevArrow, nextArrow;\n var arrowProps = extractObject(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/React.createElement(PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/React.createElement(NextArrow, arrowProps);\n }\n var verticalHeightStyle = null;\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n var centerPaddingStyle = null;\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className,\n style: _this.props.style\n };\n }\n return /*#__PURE__*/React.createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/React.createElement(Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, initialState), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: React.Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n var ssrState = _this.ssrInit();\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n // eslint-disable-next-line no-prototype-builtins\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n return setTrackStyle || React.Children.count(this.props.children) !== React.Children.count(prevProps.children);\n }\n }]);\n return InnerSlider;\n}(React.Component);","import React from \"react\";\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/React.createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/React.createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nexport default defaultProps;","\"use strict\";\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\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 _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport React from \"react\";\nimport { InnerSlider } from \"./inner-slider\";\nimport json2mq from \"json2mq\";\nimport defaultProps from \"./default-props\";\nimport { canUseDOM } from \"./utils/innerSliderUtils\";\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n var _super = _createSuper(Slider);\n function Slider(props) {\n var _this;\n _classCallCheck(this, Slider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n var mql = window.matchMedia(query);\n var listener = function listener(_ref) {\n var matches = _ref.matches;\n if (matches) {\n handler();\n }\n };\n mql.addListener(listener);\n listener(mql);\n this._responsiveMediaHandlers.push({\n mql: mql,\n query: query,\n listener: listener\n });\n }\n\n // handles responsive breakpoints\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n });\n // sort them in increasing order of their numerical value\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n if (index === 0) {\n bQuery = json2mq({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = json2mq({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n }\n // when not using server side rendering\n canUseDOM() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n });\n\n // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n var query = json2mq({\n minWidth: breakpoints.slice(-1)[0]\n });\n canUseDOM() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n obj.mql.removeListener(obj.listener);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var settings;\n var newProps;\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, defaultProps), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, defaultProps), this.props);\n }\n\n // force scrolling by one if centerMode is on\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n settings.slidesToScroll = 1;\n }\n // force showing one slide and scrolling by one if the fade mode is on\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n }\n\n // makes sure that children is an array, even when there is only 1 child\n var children = React.Children.toArray(this.props.children);\n\n // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n return !!child;\n });\n\n // rows and slidesPerRow logic is handled here\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n var newChildren = [];\n var currentWidth = null;\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n if (k >= children.length) break;\n row.push( /*#__PURE__*/React.cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n newSlide.push( /*#__PURE__*/React.createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/React.createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n return /*#__PURE__*/React.createElement(InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n return Slider;\n}(React.Component);\nexport { Slider as default };","import Slider from \"./slider\";\nexport default Slider;","import { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genCarouselStyle = token => {\n const {\n componentCls,\n antCls,\n carouselArrowSize,\n carouselDotOffset,\n marginXXS\n } = token;\n const arrowOffset = -carouselArrowSize * 1.25;\n const carouselDotMargin = marginXXS;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n '.slick-slider': {\n position: 'relative',\n display: 'block',\n boxSizing: 'border-box',\n touchAction: 'pan-y',\n WebkitTouchCallout: 'none',\n WebkitTapHighlightColor: 'transparent',\n '.slick-track, .slick-list': {\n transform: 'translate3d(0, 0, 0)',\n touchAction: 'pan-y'\n }\n },\n '.slick-list': {\n position: 'relative',\n display: 'block',\n margin: 0,\n padding: 0,\n overflow: 'hidden',\n '&:focus': {\n outline: 'none'\n },\n '&.dragging': {\n cursor: 'pointer'\n },\n '.slick-slide': {\n pointerEvents: 'none',\n // https://github.com/ant-design/ant-design/issues/23294\n [`input${antCls}-radio-input, input${antCls}-checkbox-input`]: {\n visibility: 'hidden'\n },\n '&.slick-active': {\n pointerEvents: 'auto',\n [`input${antCls}-radio-input, input${antCls}-checkbox-input`]: {\n visibility: 'visible'\n }\n },\n // fix Carousel content height not match parent node\n // when children is empty node\n // https://github.com/ant-design/ant-design/issues/25878\n '> div > div': {\n verticalAlign: 'bottom'\n }\n }\n },\n '.slick-track': {\n position: 'relative',\n top: 0,\n insetInlineStart: 0,\n display: 'block',\n '&::before, &::after': {\n display: 'table',\n content: '\"\"'\n },\n '&::after': {\n clear: 'both'\n }\n },\n '.slick-slide': {\n display: 'none',\n float: 'left',\n height: '100%',\n minHeight: 1,\n img: {\n display: 'block'\n },\n '&.dragging img': {\n pointerEvents: 'none'\n }\n },\n '.slick-initialized .slick-slide': {\n display: 'block'\n },\n '.slick-vertical .slick-slide': {\n display: 'block',\n height: 'auto'\n },\n '.slick-arrow.slick-hidden': {\n display: 'none'\n },\n // Arrows\n '.slick-prev, .slick-next': {\n position: 'absolute',\n top: '50%',\n display: 'block',\n width: carouselArrowSize,\n height: carouselArrowSize,\n marginTop: -carouselArrowSize / 2,\n padding: 0,\n color: 'transparent',\n fontSize: 0,\n lineHeight: 0,\n background: 'transparent',\n border: 0,\n outline: 'none',\n cursor: 'pointer',\n '&:hover, &:focus': {\n color: 'transparent',\n background: 'transparent',\n outline: 'none',\n '&::before': {\n opacity: 1\n }\n },\n '&.slick-disabled::before': {\n opacity: 0.25\n }\n },\n '.slick-prev': {\n insetInlineStart: arrowOffset,\n '&::before': {\n content: '\"←\"'\n }\n },\n '.slick-next': {\n insetInlineEnd: arrowOffset,\n '&::before': {\n content: '\"→\"'\n }\n },\n // Dots\n '.slick-dots': {\n position: 'absolute',\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n zIndex: 15,\n display: 'flex !important',\n justifyContent: 'center',\n paddingInlineStart: 0,\n margin: 0,\n listStyle: 'none',\n '&-bottom': {\n bottom: carouselDotOffset\n },\n '&-top': {\n top: carouselDotOffset,\n bottom: 'auto'\n },\n li: {\n position: 'relative',\n display: 'inline-block',\n flex: '0 1 auto',\n boxSizing: 'content-box',\n width: token.dotWidth,\n height: token.dotHeight,\n marginInline: carouselDotMargin,\n padding: 0,\n textAlign: 'center',\n textIndent: -999,\n verticalAlign: 'top',\n transition: `all ${token.motionDurationSlow}`,\n button: {\n position: 'relative',\n display: 'block',\n width: '100%',\n height: token.dotHeight,\n padding: 0,\n color: 'transparent',\n fontSize: 0,\n background: token.colorBgContainer,\n border: 0,\n borderRadius: 1,\n outline: 'none',\n cursor: 'pointer',\n opacity: 0.3,\n transition: `all ${token.motionDurationSlow}`,\n '&: hover, &:focus': {\n opacity: 0.75\n },\n '&::after': {\n position: 'absolute',\n inset: -carouselDotMargin,\n content: '\"\"'\n }\n },\n '&.slick-active': {\n width: token.dotActiveWidth,\n '& button': {\n background: token.colorBgContainer,\n opacity: 1\n },\n '&: hover, &:focus': {\n opacity: 1\n }\n }\n }\n }\n })\n };\n};\nconst genCarouselVerticalStyle = token => {\n const {\n componentCls,\n carouselDotOffset,\n marginXXS\n } = token;\n const reverseSizeOfDot = {\n width: token.dotHeight,\n height: token.dotWidth\n };\n return {\n [`${componentCls}-vertical`]: {\n '.slick-dots': {\n top: '50%',\n bottom: 'auto',\n flexDirection: 'column',\n width: token.dotHeight,\n height: 'auto',\n margin: 0,\n transform: 'translateY(-50%)',\n '&-left': {\n insetInlineEnd: 'auto',\n insetInlineStart: carouselDotOffset\n },\n '&-right': {\n insetInlineEnd: carouselDotOffset,\n insetInlineStart: 'auto'\n },\n li: Object.assign(Object.assign({}, reverseSizeOfDot), {\n margin: `${marginXXS}px 0`,\n verticalAlign: 'baseline',\n button: reverseSizeOfDot,\n '&.slick-active': Object.assign(Object.assign({}, reverseSizeOfDot), {\n button: reverseSizeOfDot\n })\n })\n }\n }\n };\n};\nconst genCarouselRtlStyle = token => {\n const {\n componentCls\n } = token;\n return [{\n [`${componentCls}-rtl`]: {\n direction: 'rtl',\n // Dots\n '.slick-dots': {\n [`${componentCls}-rtl&`]: {\n flexDirection: 'row-reverse'\n }\n }\n }\n }, {\n [`${componentCls}-vertical`]: {\n '.slick-dots': {\n [`${componentCls}-rtl&`]: {\n flexDirection: 'column'\n }\n }\n }\n }];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Carousel', token => {\n const {\n controlHeightLG,\n controlHeightSM\n } = token;\n const carouselToken = mergeToken(token, {\n carouselArrowSize: controlHeightLG / 2,\n carouselDotOffset: controlHeightSM / 2\n });\n return [genCarouselStyle(carouselToken), genCarouselVerticalStyle(carouselToken), genCarouselRtlStyle(carouselToken)];\n}, () => {\n const dotActiveWidth = 24;\n return {\n dotWidth: 16,\n dotHeight: 3,\n dotWidthActive: dotActiveWidth,\n dotActiveWidth\n };\n}, {\n deprecatedTokens: [['dotWidthActive', 'dotActiveWidth']]\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 * as React from 'react';\nimport SlickCarousel from '@ant-design/react-slick';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst Carousel = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n dots = true,\n arrows = false,\n draggable = false,\n waitForAnimate = false,\n dotPosition = 'bottom',\n vertical = dotPosition === 'left' || dotPosition === 'right',\n rootClassName,\n className: customClassName,\n style,\n id\n } = props,\n otherProps = __rest(props, [\"dots\", \"arrows\", \"draggable\", \"waitForAnimate\", \"dotPosition\", \"vertical\", \"rootClassName\", \"className\", \"style\", \"id\"]);\n const {\n getPrefixCls,\n direction,\n carousel\n } = React.useContext(ConfigContext);\n const slickRef = React.useRef();\n const goTo = function (slide) {\n let dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slickRef.current.slickGoTo(slide, dontAnimate);\n };\n React.useImperativeHandle(ref, () => ({\n goTo,\n autoPlay: slickRef.current.innerSlider.autoPlay,\n innerSlider: slickRef.current.innerSlider,\n prev: slickRef.current.slickPrev,\n next: slickRef.current.slickNext\n }), [slickRef.current]);\n const prevCount = React.useRef(React.Children.count(props.children));\n React.useEffect(() => {\n if (prevCount.current !== React.Children.count(props.children)) {\n goTo(props.initialSlide || 0, false);\n prevCount.current = React.Children.count(props.children);\n }\n }, [props.children]);\n const newProps = Object.assign({\n vertical,\n className: classNames(customClassName, carousel === null || carousel === void 0 ? void 0 : carousel.className),\n style: Object.assign(Object.assign({}, carousel === null || carousel === void 0 ? void 0 : carousel.style), style)\n }, otherProps);\n if (newProps.effect === 'fade') {\n newProps.fade = true;\n }\n const prefixCls = getPrefixCls('carousel', newProps.prefixCls);\n const dotsClass = 'slick-dots';\n const enableDots = !!dots;\n const dsClass = classNames(dotsClass, `${dotsClass}-${dotPosition}`, typeof dots === 'boolean' ? false : dots === null || dots === void 0 ? void 0 : dots.className);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const className = classNames(prefixCls, {\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-vertical`]: newProps.vertical\n }, hashId, rootClassName);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n id: id\n }, /*#__PURE__*/React.createElement(SlickCarousel, Object.assign({\n ref: slickRef\n }, newProps, {\n dots: enableDots,\n dotsClass: dsClass,\n arrows: arrows,\n draggable: draggable,\n verticalSwiping: vertical,\n waitForAnimate: waitForAnimate\n }))));\n});\nif (process.env.NODE_ENV !== 'production') {\n Carousel.displayName = 'Carousel';\n}\nexport default Carousel;","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 _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"b\"],\n _excluded2 = [\"v\"];\nimport { TinyColor } from '@ctrl/tinycolor';\nexport var getRoundNumber = function getRoundNumber(value) {\n return Math.round(Number(value || 0));\n};\nvar convertHsb2Hsv = function convertHsb2Hsv(color) {\n if (color && _typeof(color) === 'object' && 'h' in color && 'b' in color) {\n var _ref = color,\n b = _ref.b,\n resets = _objectWithoutProperties(_ref, _excluded);\n return _objectSpread(_objectSpread({}, resets), {}, {\n v: b\n });\n }\n if (typeof color === 'string' && /hsb/.test(color)) {\n return color.replace(/hsb/, 'hsv');\n }\n return color;\n};\nexport var Color = /*#__PURE__*/function (_TinyColor) {\n _inherits(Color, _TinyColor);\n var _super = _createSuper(Color);\n function Color(color) {\n _classCallCheck(this, Color);\n return _super.call(this, convertHsb2Hsv(color));\n }\n _createClass(Color, [{\n key: \"toHsbString\",\n value: function toHsbString() {\n var hsb = this.toHsb();\n var saturation = getRoundNumber(hsb.s * 100);\n var lightness = getRoundNumber(hsb.b * 100);\n var hue = getRoundNumber(hsb.h);\n var alpha = hsb.a;\n var hsbString = \"hsb(\".concat(hue, \", \").concat(saturation, \"%, \").concat(lightness, \"%)\");\n var hsbaString = \"hsba(\".concat(hue, \", \").concat(saturation, \"%, \").concat(lightness, \"%, \").concat(alpha.toFixed(alpha === 0 ? 0 : 2), \")\");\n return alpha === 1 ? hsbString : hsbaString;\n }\n }, {\n key: \"toHsb\",\n value: function toHsb() {\n var hsv = this.toHsv();\n if (_typeof(this.originalInput) === 'object' && this.originalInput) {\n if ('h' in this.originalInput) {\n hsv = this.originalInput;\n }\n }\n var _hsv = hsv,\n v = _hsv.v,\n resets = _objectWithoutProperties(_hsv, _excluded2);\n return _objectSpread(_objectSpread({}, resets), {}, {\n b: hsv.v\n });\n }\n }]);\n return Color;\n}(TinyColor);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { Color } from \"./color\";\nexport var ColorPickerPrefixCls = 'rc-color-picker';\nexport var generateColor = function generateColor(color) {\n if (color instanceof Color) {\n return color;\n }\n return new Color(color);\n};\nexport var defaultColor = generateColor('#1677ff');\nexport var calculateColor = function calculateColor(props) {\n var offset = props.offset,\n targetRef = props.targetRef,\n containerRef = props.containerRef,\n color = props.color,\n type = props.type;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var _targetRef$current$ge = targetRef.current.getBoundingClientRect(),\n targetWidth = _targetRef$current$ge.width,\n targetHeight = _targetRef$current$ge.height;\n var centerOffsetX = targetWidth / 2;\n var centerOffsetY = targetHeight / 2;\n var saturation = (offset.x + centerOffsetX) / width;\n var bright = 1 - (offset.y + centerOffsetY) / height;\n var hsb = color.toHsb();\n var alphaOffset = saturation;\n var hueOffset = (offset.x + centerOffsetX) / width * 360;\n if (type) {\n switch (type) {\n case 'hue':\n return generateColor(_objectSpread(_objectSpread({}, hsb), {}, {\n h: hueOffset <= 0 ? 0 : hueOffset\n }));\n case 'alpha':\n return generateColor(_objectSpread(_objectSpread({}, hsb), {}, {\n a: alphaOffset <= 0 ? 0 : alphaOffset\n }));\n }\n }\n return generateColor({\n h: hsb.h,\n s: saturation <= 0 ? 0 : saturation,\n b: bright >= 1 ? 1 : bright,\n a: hsb.a\n });\n};\nexport var calculateOffset = function calculateOffset(containerRef, targetRef, color, type) {\n var _containerRef$current2 = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current2.width,\n height = _containerRef$current2.height;\n var _targetRef$current$ge2 = targetRef.current.getBoundingClientRect(),\n targetWidth = _targetRef$current$ge2.width,\n targetHeight = _targetRef$current$ge2.height;\n var centerOffsetX = targetWidth / 2;\n var centerOffsetY = targetHeight / 2;\n var hsb = color.toHsb();\n\n // Exclusion of boundary cases\n if (targetWidth === 0 && targetHeight === 0 || targetWidth !== targetHeight) {\n return;\n }\n if (type) {\n switch (type) {\n case 'hue':\n return {\n x: hsb.h / 360 * width - centerOffsetX,\n y: -centerOffsetY / 3\n };\n case 'alpha':\n return {\n x: hsb.a / 1 * width - centerOffsetX,\n y: -centerOffsetY / 3\n };\n }\n }\n return {\n x: hsb.s * width - centerOffsetX,\n y: (1 - hsb.b) * height - centerOffsetY\n };\n};","import classNames from 'classnames';\nimport React from 'react';\nvar ColorBlock = function ColorBlock(_ref) {\n var color = _ref.color,\n prefixCls = _ref.prefixCls,\n className = _ref.className,\n style = _ref.style,\n onClick = _ref.onClick;\n var colorBlockCls = \"\".concat(prefixCls, \"-color-block\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(colorBlockCls, className),\n style: style,\n onClick: onClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(colorBlockCls, \"-inner\"),\n style: {\n background: color\n }\n }));\n};\nexport default ColorBlock;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef, useState } from 'react';\nfunction getPosition(e) {\n var obj = 'touches' in e ? e.touches[0] : e;\n var scrollXOffset = document.documentElement.scrollLeft || document.body.scrollLeft || window.pageXOffset;\n var scrollYOffset = document.documentElement.scrollTop || document.body.scrollTop || window.pageYOffset;\n return {\n pageX: obj.pageX - scrollXOffset,\n pageY: obj.pageY - scrollYOffset\n };\n}\nfunction useColorDrag(props) {\n var offset = props.offset,\n targetRef = props.targetRef,\n containerRef = props.containerRef,\n direction = props.direction,\n onDragChange = props.onDragChange,\n onDragChangeComplete = props.onDragChangeComplete,\n calculate = props.calculate,\n color = props.color,\n disabledDrag = props.disabledDrag;\n var _useState = useState(offset || {\n x: 0,\n y: 0\n }),\n _useState2 = _slicedToArray(_useState, 2),\n offsetValue = _useState2[0],\n setOffsetValue = _useState2[1];\n var mouseMoveRef = useRef(null);\n var mouseUpRef = useRef(null);\n var dragRef = useRef({\n flag: false\n });\n useEffect(function () {\n if (dragRef.current.flag === false) {\n var calcOffset = calculate === null || calculate === void 0 ? void 0 : calculate(containerRef);\n if (calcOffset) {\n setOffsetValue(calcOffset);\n }\n }\n }, [color, containerRef]);\n useEffect(function () {\n return function () {\n document.removeEventListener('mousemove', mouseMoveRef.current);\n document.removeEventListener('mouseup', mouseUpRef.current);\n document.removeEventListener('touchmove', mouseMoveRef.current);\n document.removeEventListener('touchend', mouseUpRef.current);\n mouseMoveRef.current = null;\n mouseUpRef.current = null;\n };\n }, []);\n var updateOffset = function updateOffset(e) {\n var _getPosition = getPosition(e),\n pageX = _getPosition.pageX,\n pageY = _getPosition.pageY;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n rectX = _containerRef$current.x,\n rectY = _containerRef$current.y,\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var _targetRef$current$ge = targetRef.current.getBoundingClientRect(),\n targetWidth = _targetRef$current$ge.width,\n targetHeight = _targetRef$current$ge.height;\n var centerOffsetX = targetWidth / 2;\n var centerOffsetY = targetHeight / 2;\n var offsetX = Math.max(0, Math.min(pageX - rectX, width)) - centerOffsetX;\n var offsetY = Math.max(0, Math.min(pageY - rectY, height)) - centerOffsetY;\n var calcOffset = {\n x: offsetX,\n y: direction === 'x' ? offsetValue.y : offsetY\n };\n\n // Exclusion of boundary cases\n if (targetWidth === 0 && targetHeight === 0 || targetWidth !== targetHeight) {\n return false;\n }\n setOffsetValue(calcOffset);\n onDragChange === null || onDragChange === void 0 ? void 0 : onDragChange(calcOffset);\n };\n var onDragMove = function onDragMove(e) {\n e.preventDefault();\n updateOffset(e);\n };\n var onDragStop = function onDragStop(e) {\n e.preventDefault();\n dragRef.current.flag = false;\n document.removeEventListener('mousemove', mouseMoveRef.current);\n document.removeEventListener('mouseup', mouseUpRef.current);\n document.removeEventListener('touchmove', mouseMoveRef.current);\n document.removeEventListener('touchend', mouseUpRef.current);\n mouseMoveRef.current = null;\n mouseUpRef.current = null;\n onDragChangeComplete === null || onDragChangeComplete === void 0 ? void 0 : onDragChangeComplete();\n };\n var onDragStart = function onDragStart(e) {\n // https://github.com/ant-design/ant-design/issues/43529\n document.removeEventListener('mousemove', mouseMoveRef.current);\n document.removeEventListener('mouseup', mouseUpRef.current);\n if (disabledDrag) {\n return;\n }\n updateOffset(e);\n dragRef.current.flag = true;\n document.addEventListener('mousemove', onDragMove);\n document.addEventListener('mouseup', onDragStop);\n document.addEventListener('touchmove', onDragMove);\n document.addEventListener('touchend', onDragStop);\n mouseMoveRef.current = onDragMove;\n mouseUpRef.current = onDragStop;\n };\n return [offsetValue, onDragStart];\n}\nexport default useColorDrag;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport React from 'react';\nvar Handler = function Handler(_ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 'default' : _ref$size,\n color = _ref.color,\n prefixCls = _ref.prefixCls;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-handler\"), _defineProperty({}, \"\".concat(prefixCls, \"-handler-sm\"), size === 'small')),\n style: {\n backgroundColor: color\n }\n });\n};\nexport default Handler;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from 'react';\nvar Palette = function Palette(_ref) {\n var children = _ref.children,\n style = _ref.style,\n prefixCls = _ref.prefixCls;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-palette\"),\n style: _objectSpread({\n position: 'relative'\n }, style)\n }, children);\n};\nexport default Palette;","import React, { forwardRef } from 'react';\nvar Transform = /*#__PURE__*/forwardRef(function (props, ref) {\n var children = props.children,\n offset = props.offset;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n style: {\n position: 'absolute',\n left: offset.x,\n top: offset.y,\n zIndex: 1\n }\n }, children);\n});\nexport default Transform;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport React, { useRef } from 'react';\nimport useColorDrag from \"../hooks/useColorDrag\";\nimport { calculateColor, calculateOffset } from \"../util\";\nimport Handler from \"./Handler\";\nimport Palette from \"./Palette\";\nimport Transform from \"./Transform\";\nvar Picker = function Picker(_ref) {\n var color = _ref.color,\n onChange = _ref.onChange,\n prefixCls = _ref.prefixCls,\n onChangeComplete = _ref.onChangeComplete,\n disabled = _ref.disabled;\n var pickerRef = useRef();\n var transformRef = useRef();\n var colorRef = useRef(color);\n var _useColorDrag = useColorDrag({\n color: color,\n containerRef: pickerRef,\n targetRef: transformRef,\n calculate: function calculate(containerRef) {\n return calculateOffset(containerRef, transformRef, color);\n },\n onDragChange: function onDragChange(offsetValue) {\n var calcColor = calculateColor({\n offset: offsetValue,\n targetRef: transformRef,\n containerRef: pickerRef,\n color: color\n });\n colorRef.current = calcColor;\n onChange(calcColor);\n },\n onDragChangeComplete: function onDragChangeComplete() {\n return onChangeComplete === null || onChangeComplete === void 0 ? void 0 : onChangeComplete(colorRef.current);\n },\n disabledDrag: disabled\n }),\n _useColorDrag2 = _slicedToArray(_useColorDrag, 2),\n offset = _useColorDrag2[0],\n dragStartHandle = _useColorDrag2[1];\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: pickerRef,\n className: \"\".concat(prefixCls, \"-select\"),\n onMouseDown: dragStartHandle,\n onTouchStart: dragStartHandle\n }, /*#__PURE__*/React.createElement(Palette, {\n prefixCls: prefixCls\n }, /*#__PURE__*/React.createElement(Transform, {\n offset: offset,\n ref: transformRef\n }, /*#__PURE__*/React.createElement(Handler, {\n color: color.toRgbString(),\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-saturation\"),\n style: {\n backgroundColor: \"hsl(\".concat(color.toHsb().h, \",100%, 50%)\"),\n backgroundImage: 'linear-gradient(0deg, #000, transparent),linear-gradient(90deg, #fff, hsla(0, 0%, 100%, 0))'\n }\n })));\n};\nexport default Picker;","import React, { useMemo } from 'react';\nimport { generateColor } from \"../util\";\nvar Gradient = function Gradient(_ref) {\n var colors = _ref.colors,\n children = _ref.children,\n _ref$direction = _ref.direction,\n direction = _ref$direction === void 0 ? 'to right' : _ref$direction,\n type = _ref.type,\n prefixCls = _ref.prefixCls;\n var gradientColors = useMemo(function () {\n return colors.map(function (color, idx) {\n var result = generateColor(color);\n if (type === 'alpha' && idx === colors.length - 1) {\n result.setAlpha(1);\n }\n return result.toRgbString();\n }).join(',');\n }, [colors, type]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-gradient\"),\n style: {\n position: 'absolute',\n inset: 0,\n background: \"linear-gradient(\".concat(direction, \", \").concat(gradientColors, \")\")\n }\n }, children);\n};\nexport default Gradient;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport React, { useRef } from 'react';\nimport useColorDrag from \"../hooks/useColorDrag\";\nimport { calculateColor, calculateOffset } from \"../util\";\nimport Palette from \"./Palette\";\nimport Gradient from \"./Gradient\";\nimport Handler from \"./Handler\";\nimport Transform from \"./Transform\";\nvar Slider = function Slider(_ref) {\n var gradientColors = _ref.gradientColors,\n direction = _ref.direction,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'hue' : _ref$type,\n color = _ref.color,\n value = _ref.value,\n onChange = _ref.onChange,\n onChangeComplete = _ref.onChangeComplete,\n disabled = _ref.disabled,\n prefixCls = _ref.prefixCls;\n var sliderRef = useRef();\n var transformRef = useRef();\n var colorRef = useRef(color);\n var _useColorDrag = useColorDrag({\n color: color,\n targetRef: transformRef,\n containerRef: sliderRef,\n calculate: function calculate(containerRef) {\n return calculateOffset(containerRef, transformRef, color, type);\n },\n onDragChange: function onDragChange(offsetValue) {\n var calcColor = calculateColor({\n offset: offsetValue,\n targetRef: transformRef,\n containerRef: sliderRef,\n color: color,\n type: type\n });\n colorRef.current = calcColor;\n onChange(calcColor);\n },\n onDragChangeComplete: function onDragChangeComplete() {\n onChangeComplete === null || onChangeComplete === void 0 ? void 0 : onChangeComplete(colorRef.current, type);\n },\n direction: 'x',\n disabledDrag: disabled\n }),\n _useColorDrag2 = _slicedToArray(_useColorDrag, 2),\n offset = _useColorDrag2[0],\n dragStartHandle = _useColorDrag2[1];\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: sliderRef,\n className: classNames(\"\".concat(prefixCls, \"-slider\"), \"\".concat(prefixCls, \"-slider-\").concat(type)),\n onMouseDown: dragStartHandle,\n onTouchStart: dragStartHandle\n }, /*#__PURE__*/React.createElement(Palette, {\n prefixCls: prefixCls\n }, /*#__PURE__*/React.createElement(Transform, {\n offset: offset,\n ref: transformRef\n }, /*#__PURE__*/React.createElement(Handler, {\n size: \"small\",\n color: value,\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(Gradient, {\n colors: gradientColors,\n direction: direction,\n type: type,\n prefixCls: prefixCls\n })));\n};\nexport default Slider;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState } from 'react';\nimport { generateColor } from \"../util\";\nfunction hasValue(value) {\n return value !== undefined;\n}\nvar useColorState = function useColorState(defaultStateValue, option) {\n var defaultValue = option.defaultValue,\n value = option.value;\n var _useState = useState(function () {\n var mergeState;\n if (hasValue(value)) {\n mergeState = value;\n } else if (hasValue(defaultValue)) {\n mergeState = defaultValue;\n } else {\n mergeState = defaultStateValue;\n }\n return generateColor(mergeState);\n }),\n _useState2 = _slicedToArray(_useState, 2),\n colorValue = _useState2[0],\n setColorValue = _useState2[1];\n useEffect(function () {\n if (value) {\n setColorValue(generateColor(value));\n }\n }, [value]);\n return [colorValue, setColorValue];\n};\nexport default useColorState;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport React, { forwardRef, useMemo } from 'react';\nimport { ColorPickerPrefixCls, defaultColor, generateColor } from \"./util\";\nimport classNames from 'classnames';\nimport ColorBlock from \"./components/ColorBlock\";\nimport Picker from \"./components/Picker\";\nimport Slider from \"./components/Slider\";\nimport useColorState from \"./hooks/useColorState\";\nvar hueColor = ['rgb(255, 0, 0) 0%', 'rgb(255, 255, 0) 17%', 'rgb(0, 255, 0) 33%', 'rgb(0, 255, 255) 50%', 'rgb(0, 0, 255) 67%', 'rgb(255, 0, 255) 83%', 'rgb(255, 0, 0) 100%'];\nexport default /*#__PURE__*/forwardRef(function (props, ref) {\n var value = props.value,\n defaultValue = props.defaultValue,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? ColorPickerPrefixCls : _props$prefixCls,\n onChange = props.onChange,\n onChangeComplete = props.onChangeComplete,\n className = props.className,\n style = props.style,\n panelRender = props.panelRender,\n _props$disabledAlpha = props.disabledAlpha,\n disabledAlpha = _props$disabledAlpha === void 0 ? false : _props$disabledAlpha,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled;\n var _useColorState = useColorState(defaultColor, {\n value: value,\n defaultValue: defaultValue\n }),\n _useColorState2 = _slicedToArray(_useColorState, 2),\n colorValue = _useColorState2[0],\n setColorValue = _useColorState2[1];\n var alphaColor = useMemo(function () {\n var rgb = generateColor(colorValue.toRgbString());\n // alpha color need equal 1 for base color\n rgb.setAlpha(1);\n return rgb.toRgbString();\n }, [colorValue]);\n var mergeCls = classNames(\"\".concat(prefixCls, \"-panel\"), className, _defineProperty({}, \"\".concat(prefixCls, \"-panel-disabled\"), disabled));\n var basicProps = {\n prefixCls: prefixCls,\n onChangeComplete: onChangeComplete,\n disabled: disabled\n };\n var handleChange = function handleChange(data, type) {\n if (!value) {\n setColorValue(data);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(data, type);\n };\n var defaultPanel = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Picker, _extends({\n color: colorValue,\n onChange: handleChange\n }, basicProps)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-slider-container\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-slider-group\"), _defineProperty({}, \"\".concat(prefixCls, \"-slider-group-disabled-alpha\"), disabledAlpha))\n }, /*#__PURE__*/React.createElement(Slider, _extends({\n gradientColors: hueColor,\n color: colorValue,\n value: \"hsl(\".concat(colorValue.toHsb().h, \",100%, 50%)\"),\n onChange: function onChange(color) {\n return handleChange(color, 'hue');\n }\n }, basicProps)), !disabledAlpha && /*#__PURE__*/React.createElement(Slider, _extends({\n type: \"alpha\",\n gradientColors: ['rgba(255, 0, 4, 0) 0%', alphaColor],\n color: colorValue,\n value: colorValue.toRgbString(),\n onChange: function onChange(color) {\n return handleChange(color, 'alpha');\n }\n }, basicProps))), /*#__PURE__*/React.createElement(ColorBlock, {\n color: colorValue.toRgbString(),\n prefixCls: prefixCls\n })));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: mergeCls,\n style: style,\n ref: ref\n }, typeof panelRender === 'function' ? panelRender(defaultPanel) : defaultPanel);\n});","import ColorPicker from \"./ColorPicker\";\nexport { Color } from \"./color\";\nexport { default as ColorBlock } from \"./components/ColorBlock\";\nexport * from \"./interface\";\nexport default ColorPicker;","import React from 'react';\nexport const PanelPickerContext = /*#__PURE__*/React.createContext({});\nexport const PanelPresetsContext = /*#__PURE__*/React.createContext({});\nexport const {\n Provider: PanelPickerProvider\n} = PanelPickerContext;\nexport const {\n Provider: PanelPresetsProvider\n} = PanelPresetsContext;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport { Color as RcColor } from '@rc-component/color-picker';\nexport const toHexFormat = (value, alpha) => (value === null || value === void 0 ? void 0 : value.replace(/[^\\w/]/gi, '').slice(0, alpha ? 8 : 6)) || '';\nexport const getHex = (value, alpha) => value ? toHexFormat(value, alpha) : '';\nexport let ColorFactory = /*#__PURE__*/function () {\n function ColorFactory(color) {\n _classCallCheck(this, ColorFactory);\n this.metaColor = new RcColor(color);\n if (!color) {\n this.metaColor.setAlpha(0);\n }\n }\n _createClass(ColorFactory, [{\n key: \"toHsb\",\n value: function toHsb() {\n return this.metaColor.toHsb();\n }\n }, {\n key: \"toHsbString\",\n value: function toHsbString() {\n return this.metaColor.toHsbString();\n }\n }, {\n key: \"toHex\",\n value: function toHex() {\n return getHex(this.toHexString(), this.metaColor.getAlpha() < 1);\n }\n }, {\n key: \"toHexString\",\n value: function toHexString() {\n return this.metaColor.getAlpha() === 1 ? this.metaColor.toHexString() : this.metaColor.toHex8String();\n }\n }, {\n key: \"toRgb\",\n value: function toRgb() {\n return this.metaColor.toRgb();\n }\n }, {\n key: \"toRgbString\",\n value: function toRgbString() {\n return this.metaColor.toRgbString();\n }\n }]);\n return ColorFactory;\n}();","import { ColorFactory } from './color';\nexport const customizePrefixCls = 'ant-color-picker';\nexport const generateColor = color => {\n if (color instanceof ColorFactory) {\n return color;\n }\n return new ColorFactory(color);\n};\nexport const getRoundNumber = value => Math.round(Number(value || 0));\nexport const getAlphaColor = color => getRoundNumber(color.toHsb().a * 100);\nexport const genAlphaColor = (color, alpha) => {\n const hsba = color.toHsb();\n hsba.a = alpha || 1;\n return generateColor(hsba);\n};","import React from 'react';\nimport { generateColor } from '../util';\nconst ColorClear = _ref => {\n let {\n prefixCls,\n value,\n colorCleared,\n onChange\n } = _ref;\n const handleClick = () => {\n if (value && !colorCleared) {\n const hsba = value.toHsb();\n hsba.a = 0;\n const genColor = generateColor(hsba);\n onChange === null || onChange === void 0 ? void 0 : onChange(genColor);\n }\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-clear`,\n onClick: handleClick\n });\n};\nexport default ColorClear;","export var ColorFormat;\n(function (ColorFormat) {\n ColorFormat[\"hex\"] = \"hex\";\n ColorFormat[\"rgb\"] = \"rgb\";\n ColorFormat[\"hsb\"] = \"hsb\";\n})(ColorFormat || (ColorFormat = {}));","import classNames from 'classnames';\nimport React, { useEffect, useState } from 'react';\nimport InputNumber from '../../input-number';\nconst ColorSteppers = _ref => {\n let {\n prefixCls,\n min = 0,\n max = 100,\n value,\n onChange,\n className,\n formatter\n } = _ref;\n const colorSteppersPrefixCls = `${prefixCls}-steppers`;\n const [stepValue, setStepValue] = useState(value);\n // Update step value\n useEffect(() => {\n if (!Number.isNaN(value)) {\n setStepValue(value);\n }\n }, [value]);\n return /*#__PURE__*/React.createElement(InputNumber, {\n className: classNames(colorSteppersPrefixCls, className),\n min: min,\n max: max,\n value: stepValue,\n formatter: formatter,\n size: \"small\",\n onChange: step => {\n if (!value) {\n setStepValue(step || 0);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(step);\n }\n });\n};\nexport default ColorSteppers;","import React, { useEffect, useState } from 'react';\nimport { generateColor, getAlphaColor } from '../util';\nimport ColorSteppers from './ColorSteppers';\nconst ColorAlphaInput = _ref => {\n let {\n prefixCls,\n value,\n onChange\n } = _ref;\n const colorAlphaInputPrefixCls = `${prefixCls}-alpha-input`;\n const [alphaValue, setAlphaValue] = useState(generateColor(value || '#000'));\n // Update step value\n useEffect(() => {\n if (value) {\n setAlphaValue(value);\n }\n }, [value]);\n const handleAlphaChange = step => {\n const hsba = alphaValue.toHsb();\n hsba.a = (step || 0) / 100;\n const genColor = generateColor(hsba);\n if (!value) {\n setAlphaValue(genColor);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(genColor);\n };\n return /*#__PURE__*/React.createElement(ColorSteppers, {\n value: getAlphaColor(alphaValue),\n prefixCls: prefixCls,\n formatter: step => `${step}%`,\n className: colorAlphaInputPrefixCls,\n onChange: handleAlphaChange\n });\n};\nexport default ColorAlphaInput;","import React, { useEffect, useState } from 'react';\nimport Input from '../../input';\nimport { toHexFormat } from '../color';\nimport { generateColor } from '../util';\nconst hexReg = /(^#[\\da-f]{6}$)|(^#[\\da-f]{8}$)/i;\nconst isHexString = hex => hexReg.test(`#${hex}`);\nconst ColorHexInput = _ref => {\n let {\n prefixCls,\n value,\n onChange\n } = _ref;\n const colorHexInputPrefixCls = `${prefixCls}-hex-input`;\n const [hexValue, setHexValue] = useState(value === null || value === void 0 ? void 0 : value.toHex());\n // Update step value\n useEffect(() => {\n const hex = value === null || value === void 0 ? void 0 : value.toHex();\n if (isHexString(hex) && value) {\n setHexValue(toHexFormat(hex));\n }\n }, [value]);\n const handleHexChange = e => {\n const originValue = e.target.value;\n setHexValue(toHexFormat(originValue));\n if (isHexString(toHexFormat(originValue, true))) {\n onChange === null || onChange === void 0 ? void 0 : onChange(generateColor(originValue));\n }\n };\n return /*#__PURE__*/React.createElement(Input, {\n className: colorHexInputPrefixCls,\n value: hexValue,\n prefix: \"#\",\n onChange: handleHexChange,\n size: \"small\"\n });\n};\nexport default ColorHexInput;","import React, { useEffect, useState } from 'react';\nimport { generateColor, getRoundNumber } from '../util';\nimport ColorSteppers from './ColorSteppers';\nconst ColorHsbInput = _ref => {\n let {\n prefixCls,\n value,\n onChange\n } = _ref;\n const colorHsbInputPrefixCls = `${prefixCls}-hsb-input`;\n const [hsbValue, setHsbValue] = useState(generateColor(value || '#000'));\n // Update step value\n useEffect(() => {\n if (value) {\n setHsbValue(value);\n }\n }, [value]);\n const handleHsbChange = (step, type) => {\n const hsb = hsbValue.toHsb();\n hsb[type] = type === 'h' ? step : (step || 0) / 100;\n const genColor = generateColor(hsb);\n if (!value) {\n setHsbValue(genColor);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(genColor);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: colorHsbInputPrefixCls\n }, /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 360,\n min: 0,\n value: Number(hsbValue.toHsb().h),\n prefixCls: prefixCls,\n className: colorHsbInputPrefixCls,\n formatter: step => getRoundNumber(step || 0).toString(),\n onChange: step => handleHsbChange(Number(step), 'h')\n }), /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 100,\n min: 0,\n value: Number(hsbValue.toHsb().s) * 100,\n prefixCls: prefixCls,\n className: colorHsbInputPrefixCls,\n formatter: step => `${getRoundNumber(step || 0)}%`,\n onChange: step => handleHsbChange(Number(step), 's')\n }), /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 100,\n min: 0,\n value: Number(hsbValue.toHsb().b) * 100,\n prefixCls: prefixCls,\n className: colorHsbInputPrefixCls,\n formatter: step => `${getRoundNumber(step || 0)}%`,\n onChange: step => handleHsbChange(Number(step), 'b')\n }));\n};\nexport default ColorHsbInput;","import React, { useEffect, useState } from 'react';\nimport { generateColor } from '../util';\nimport ColorSteppers from './ColorSteppers';\nconst ColorRgbInput = _ref => {\n let {\n prefixCls,\n value,\n onChange\n } = _ref;\n const colorRgbInputPrefixCls = `${prefixCls}-rgb-input`;\n const [rgbValue, setRgbValue] = useState(generateColor(value || '#000'));\n // Update step value\n useEffect(() => {\n if (value) {\n setRgbValue(value);\n }\n }, [value]);\n const handleRgbChange = (step, type) => {\n const rgb = rgbValue.toRgb();\n rgb[type] = step || 0;\n const genColor = generateColor(rgb);\n if (!value) {\n setRgbValue(genColor);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(genColor);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: colorRgbInputPrefixCls\n }, /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 255,\n min: 0,\n value: Number(rgbValue.toRgb().r),\n prefixCls: prefixCls,\n className: colorRgbInputPrefixCls,\n onChange: step => handleRgbChange(Number(step), 'r')\n }), /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 255,\n min: 0,\n value: Number(rgbValue.toRgb().g),\n prefixCls: prefixCls,\n className: colorRgbInputPrefixCls,\n onChange: step => handleRgbChange(Number(step), 'g')\n }), /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 255,\n min: 0,\n value: Number(rgbValue.toRgb().b),\n prefixCls: prefixCls,\n className: colorRgbInputPrefixCls,\n onChange: step => handleRgbChange(Number(step), 'b')\n }));\n};\nexport default ColorRgbInput;","import useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { useMemo } from 'react';\nimport Select from '../../select';\nimport { ColorFormat } from '../interface';\nimport ColorAlphaInput from './ColorAlphaInput';\nimport ColorHexInput from './ColorHexInput';\nimport ColorHsbInput from './ColorHsbInput';\nimport ColorRgbInput from './ColorRgbInput';\nconst selectOptions = [ColorFormat.hex, ColorFormat.hsb, ColorFormat.rgb].map(format => ({\n value: format,\n label: format.toLocaleUpperCase()\n}));\nconst ColorInput = props => {\n const {\n prefixCls,\n format,\n value,\n disabledAlpha,\n onFormatChange,\n onChange\n } = props;\n const [colorFormat, setColorFormat] = useMergedState(ColorFormat.hex, {\n value: format,\n onChange: onFormatChange\n });\n const colorInputPrefixCls = `${prefixCls}-input`;\n const handleFormatChange = newFormat => {\n setColorFormat(newFormat);\n };\n const steppersNode = useMemo(() => {\n const inputProps = {\n value,\n prefixCls,\n onChange\n };\n switch (colorFormat) {\n case ColorFormat.hsb:\n return /*#__PURE__*/React.createElement(ColorHsbInput, Object.assign({}, inputProps));\n case ColorFormat.rgb:\n return /*#__PURE__*/React.createElement(ColorRgbInput, Object.assign({}, inputProps));\n case ColorFormat.hex:\n default:\n return /*#__PURE__*/React.createElement(ColorHexInput, Object.assign({}, inputProps));\n }\n }, [colorFormat, prefixCls, value, onChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${colorInputPrefixCls}-container`\n }, /*#__PURE__*/React.createElement(Select, {\n value: colorFormat,\n bordered: false,\n getPopupContainer: current => current,\n popupMatchSelectWidth: 68,\n placement: \"bottomRight\",\n onChange: handleFormatChange,\n className: `${prefixCls}-format-select`,\n size: \"small\",\n options: selectOptions\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: colorInputPrefixCls\n }, steppersNode), !disabledAlpha && /*#__PURE__*/React.createElement(ColorAlphaInput, {\n prefixCls: prefixCls,\n value: value,\n onChange: onChange\n }));\n};\nexport default ColorInput;","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 RcColorPicker from '@rc-component/color-picker';\nimport React, { useContext } from 'react';\nimport { PanelPickerContext } from '../context';\nimport ColorClear from './ColorClear';\nimport ColorInput from './ColorInput';\nconst PanelPicker = () => {\n const _a = useContext(PanelPickerContext),\n {\n prefixCls,\n colorCleared,\n allowClear,\n value,\n disabledAlpha,\n onChange,\n onClear,\n onChangeComplete\n } = _a,\n injectProps = __rest(_a, [\"prefixCls\", \"colorCleared\", \"allowClear\", \"value\", \"disabledAlpha\", \"onChange\", \"onClear\", \"onChangeComplete\"]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, allowClear && /*#__PURE__*/React.createElement(ColorClear, Object.assign({\n prefixCls: prefixCls,\n value: value,\n colorCleared: colorCleared,\n onChange: clearColor => {\n onChange === null || onChange === void 0 ? void 0 : onChange(clearColor);\n onClear === null || onClear === void 0 ? void 0 : onClear();\n }\n }, injectProps)), /*#__PURE__*/React.createElement(RcColorPicker, {\n prefixCls: prefixCls,\n value: value === null || value === void 0 ? void 0 : value.toHsb(),\n disabledAlpha: disabledAlpha,\n onChange: (colorValue, type) => onChange === null || onChange === void 0 ? void 0 : onChange(colorValue, type, true),\n onChangeComplete: onChangeComplete\n }), /*#__PURE__*/React.createElement(ColorInput, Object.assign({\n value: value,\n onChange: onChange,\n prefixCls: prefixCls,\n disabledAlpha: disabledAlpha\n }, injectProps)));\n};\nexport default PanelPicker;","import { ColorBlock, Color as RcColor } from '@rc-component/color-picker';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { useMemo } from 'react';\nimport Collapse from '../../collapse';\nimport { useLocale } from '../../locale';\nimport theme from '../../theme';\nimport { generateColor } from '../util';\nconst genPresetColor = list => list.map(value => {\n value.colors = value.colors.map(generateColor);\n return value;\n});\nconst isBright = (value, bgColorToken) => {\n const {\n r,\n g,\n b,\n a\n } = value.toRgb();\n const hsv = new RcColor(value.toRgbString()).onBackground(bgColorToken).toHsv();\n if (a <= 0.5) {\n // Adapted to dark mode\n return hsv.v > 0.5;\n }\n return r * 0.299 + g * 0.587 + b * 0.114 > 192;\n};\nconst ColorPresets = _ref => {\n let {\n prefixCls,\n presets,\n value: color,\n onChange\n } = _ref;\n const [locale] = useLocale('ColorPicker');\n const {\n token: {\n colorBgElevated\n }\n } = theme.useToken();\n const [presetsValue] = useMergedState(genPresetColor(presets), {\n value: genPresetColor(presets),\n postState: genPresetColor\n });\n const colorPresetsPrefixCls = `${prefixCls}-presets`;\n const activeKeys = useMemo(() => presetsValue.map(preset => `panel-${preset.label}`), [presetsValue]);\n const handleClick = colorValue => {\n onChange === null || onChange === void 0 ? void 0 : onChange(colorValue);\n };\n const items = presetsValue.map(preset => {\n var _a;\n return {\n key: `panel-${preset.label}`,\n label: /*#__PURE__*/React.createElement(\"div\", {\n className: `${colorPresetsPrefixCls}-label`\n }, preset === null || preset === void 0 ? void 0 : preset.label),\n children: /*#__PURE__*/React.createElement(\"div\", {\n className: `${colorPresetsPrefixCls}-items`\n }, Array.isArray(preset === null || preset === void 0 ? void 0 : preset.colors) && ((_a = preset.colors) === null || _a === void 0 ? void 0 : _a.length) > 0 ? preset.colors.map((presetColor, index) => /*#__PURE__*/React.createElement(ColorBlock\n // eslint-disable-next-line react/no-array-index-key\n , {\n // eslint-disable-next-line react/no-array-index-key\n key: `preset-${index}-${presetColor.toHexString()}`,\n color: generateColor(presetColor).toRgbString(),\n prefixCls: prefixCls,\n className: classNames(`${colorPresetsPrefixCls}-color`, {\n [`${colorPresetsPrefixCls}-color-checked`]: presetColor.toHexString() === (color === null || color === void 0 ? void 0 : color.toHexString()),\n [`${colorPresetsPrefixCls}-color-bright`]: isBright(presetColor, colorBgElevated)\n }),\n onClick: () => handleClick(presetColor)\n })) : /*#__PURE__*/React.createElement(\"span\", {\n className: `${colorPresetsPrefixCls}-empty`\n }, locale.presetEmpty))\n };\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: colorPresetsPrefixCls\n }, /*#__PURE__*/React.createElement(Collapse, {\n defaultActiveKey: activeKeys,\n ghost: true,\n items: items\n }));\n};\nexport default ColorPresets;","import React, { useContext } from 'react';\nimport { PanelPresetsContext } from '../context';\nimport ColorPresets from './ColorPresets';\nconst PanelPresets = () => {\n const {\n prefixCls,\n value,\n presets,\n onChange\n } = useContext(PanelPresetsContext);\n return Array.isArray(presets) ? /*#__PURE__*/React.createElement(ColorPresets, {\n value: value,\n presets: presets,\n prefixCls: prefixCls,\n onChange: onChange\n }) : null;\n};\nexport default PanelPresets;","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 React from 'react';\nimport Divider from '../divider';\nimport PanelPicker from './components/PanelPicker';\nimport PanelPresets from './components/PanelPresets';\nimport { PanelPickerProvider, PanelPresetsProvider } from './context';\nconst ColorPickerPanel = props => {\n const {\n prefixCls,\n presets,\n panelRender,\n color,\n onChange,\n onClear\n } = props,\n injectProps = __rest(props, [\"prefixCls\", \"presets\", \"panelRender\", \"color\", \"onChange\", \"onClear\"]);\n const colorPickerPanelPrefixCls = `${prefixCls}-inner-content`;\n // ==== Inject props ===\n const panelPickerProps = Object.assign({\n prefixCls,\n value: color,\n onChange,\n onClear\n }, injectProps);\n const panelPresetsProps = React.useMemo(() => ({\n prefixCls,\n value: color,\n presets,\n onChange\n }), [prefixCls, color, presets, onChange]);\n // ====================== Render ======================\n const innerPanel = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(PanelPicker, null), Array.isArray(presets) && /*#__PURE__*/React.createElement(Divider, {\n className: `${colorPickerPanelPrefixCls}-divider`\n }), /*#__PURE__*/React.createElement(PanelPresets, null));\n return /*#__PURE__*/React.createElement(PanelPickerProvider, {\n value: panelPickerProps\n }, /*#__PURE__*/React.createElement(PanelPresetsProvider, {\n value: panelPresetsProps\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: colorPickerPanelPrefixCls\n }, typeof panelRender === 'function' ? panelRender(innerPanel, {\n components: {\n Picker: PanelPicker,\n Presets: PanelPresets\n }\n }) : innerPanel)));\n};\nif (process.env.NODE_ENV !== 'production') {\n ColorPickerPanel.displayName = 'ColorPickerPanel';\n}\nexport default ColorPickerPanel;","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 { ColorBlock } from '@rc-component/color-picker';\nimport classNames from 'classnames';\nimport React, { forwardRef, useMemo } from 'react';\nimport { getAlphaColor } from '../util';\nimport ColorClear from './ColorClear';\nconst ColorTrigger = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n color,\n prefixCls,\n open,\n colorCleared,\n disabled,\n format,\n className,\n showText\n } = props,\n rest = __rest(props, [\"color\", \"prefixCls\", \"open\", \"colorCleared\", \"disabled\", \"format\", \"className\", \"showText\"]);\n const colorTriggerPrefixCls = `${prefixCls}-trigger`;\n const containerNode = useMemo(() => colorCleared ? /*#__PURE__*/React.createElement(ColorClear, {\n prefixCls: prefixCls\n }) : /*#__PURE__*/React.createElement(ColorBlock, {\n prefixCls: prefixCls,\n color: color.toRgbString()\n }), [color, colorCleared, prefixCls]);\n const genColorString = () => {\n const hexString = color.toHexString().toUpperCase();\n const alpha = getAlphaColor(color);\n switch (format) {\n case 'rgb':\n return color.toRgbString();\n case 'hsb':\n return color.toHsbString();\n case 'hex':\n default:\n return alpha < 100 ? `${hexString.slice(0, 7)},${alpha}%` : hexString;\n }\n };\n const renderText = () => {\n if (typeof showText === 'function') {\n return showText(color);\n }\n if (showText) {\n return genColorString();\n }\n };\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n ref: ref,\n className: classNames(colorTriggerPrefixCls, className, {\n [`${colorTriggerPrefixCls}-active`]: open,\n [`${colorTriggerPrefixCls}-disabled`]: disabled\n })\n }, rest), containerNode, showText && /*#__PURE__*/React.createElement(\"div\", {\n className: `${colorTriggerPrefixCls}-text`\n }, renderText()));\n});\nexport default ColorTrigger;","import { useEffect, useState } from 'react';\nimport { generateColor } from '../util';\nfunction hasValue(value) {\n return value !== undefined;\n}\nconst useColorState = (defaultStateValue, option) => {\n const {\n defaultValue,\n value\n } = option;\n const [colorValue, setColorValue] = useState(() => {\n let mergeState;\n if (hasValue(value)) {\n mergeState = value;\n } else if (hasValue(defaultValue)) {\n mergeState = defaultValue;\n } else {\n mergeState = defaultStateValue;\n }\n return generateColor(mergeState || '');\n });\n useEffect(() => {\n if (value) {\n setColorValue(generateColor(value));\n }\n }, [value]);\n return [colorValue, setColorValue];\n};\nexport default useColorState;","/**\n * @private Internal usage only\n */\nexport const getTransBg = (size, colorFill) => ({\n backgroundImage: `conic-gradient(${colorFill} 0 25%, transparent 0 50%, ${colorFill} 0 75%, transparent 0)`,\n backgroundSize: `${size} ${size}`\n});\nconst genColorBlockStyle = (token, size) => {\n const {\n componentCls,\n borderRadiusSM,\n colorPickerInsetShadow,\n lineWidth,\n colorFillSecondary\n } = token;\n return {\n [`${componentCls}-color-block`]: Object.assign(Object.assign({\n position: 'relative',\n borderRadius: borderRadiusSM,\n width: size,\n height: size,\n boxShadow: colorPickerInsetShadow\n }, getTransBg('50%', token.colorFillSecondary)), {\n [`${componentCls}-color-block-inner`]: {\n width: '100%',\n height: '100%',\n border: `${lineWidth}px solid ${colorFillSecondary}`,\n borderRadius: 'inherit'\n }\n })\n };\n};\nexport default genColorBlockStyle;","const genInputStyle = token => {\n const {\n componentCls,\n antCls,\n fontSizeSM,\n lineHeightSM,\n colorPickerAlphaInputWidth,\n marginXXS,\n paddingXXS,\n controlHeightSM,\n marginXS,\n fontSizeIcon,\n paddingXS,\n colorTextPlaceholder,\n colorPickerInputNumberHandleWidth,\n lineWidth\n } = token;\n return {\n [`${componentCls}-input-container`]: {\n display: 'flex',\n [`${componentCls}-steppers${antCls}-input-number`]: {\n fontSize: fontSizeSM,\n lineHeight: lineHeightSM,\n [`${antCls}-input-number-input`]: {\n paddingInlineStart: paddingXXS,\n paddingInlineEnd: 0\n },\n [`${antCls}-input-number-handler-wrap`]: {\n width: colorPickerInputNumberHandleWidth\n }\n },\n [`${componentCls}-steppers${componentCls}-alpha-input`]: {\n flex: `0 0 ${colorPickerAlphaInputWidth}px`,\n marginInlineStart: marginXXS\n },\n [`${componentCls}-format-select${antCls}-select`]: {\n marginInlineEnd: marginXS,\n width: 'auto',\n '&-single': {\n [`${antCls}-select-selector`]: {\n padding: 0,\n border: 0\n },\n [`${antCls}-select-arrow`]: {\n insetInlineEnd: 0\n },\n [`${antCls}-select-selection-item`]: {\n paddingInlineEnd: fontSizeIcon + marginXXS,\n fontSize: fontSizeSM,\n lineHeight: `${controlHeightSM}px`\n },\n [`${antCls}-select-item-option-content`]: {\n fontSize: fontSizeSM,\n lineHeight: lineHeightSM\n },\n [`${antCls}-select-dropdown`]: {\n [`${antCls}-select-item`]: {\n minHeight: 'auto'\n }\n }\n }\n },\n [`${componentCls}-input`]: {\n gap: marginXXS,\n alignItems: 'center',\n flex: 1,\n width: 0,\n [`${componentCls}-hsb-input,${componentCls}-rgb-input`]: {\n display: 'flex',\n gap: marginXXS,\n alignItems: 'center'\n },\n [`${componentCls}-steppers`]: {\n flex: 1\n },\n [`${componentCls}-hex-input${antCls}-input-affix-wrapper`]: {\n flex: 1,\n padding: `0 ${paddingXS}px`,\n [`${antCls}-input`]: {\n fontSize: fontSizeSM,\n textTransform: 'uppercase',\n lineHeight: `${controlHeightSM - 2 * lineWidth}px`\n },\n [`${antCls}-input-prefix`]: {\n color: colorTextPlaceholder\n }\n }\n }\n }\n };\n};\nexport default genInputStyle;","import { getTransBg } from './color-block';\nconst genPickerStyle = token => {\n const {\n componentCls,\n controlHeightLG,\n borderRadiusSM,\n colorPickerInsetShadow,\n marginSM,\n colorBgElevated,\n colorFillSecondary,\n lineWidthBold,\n colorPickerHandlerSize,\n colorPickerHandlerSizeSM,\n colorPickerSliderHeight\n } = token;\n return {\n [`${componentCls}-select`]: {\n [`${componentCls}-palette`]: {\n minHeight: controlHeightLG * 4,\n overflow: 'hidden',\n borderRadius: borderRadiusSM\n },\n [`${componentCls}-saturation`]: {\n position: 'absolute',\n borderRadius: 'inherit',\n boxShadow: colorPickerInsetShadow,\n inset: 0\n },\n marginBottom: marginSM\n },\n [`${componentCls}-handler`]: {\n width: colorPickerHandlerSize,\n height: colorPickerHandlerSize,\n border: `${lineWidthBold}px solid ${colorBgElevated}`,\n position: 'relative',\n borderRadius: '50%',\n cursor: 'pointer',\n boxShadow: `${colorPickerInsetShadow}, 0 0 0 1px ${colorFillSecondary}`,\n '&-sm': {\n width: colorPickerHandlerSizeSM,\n height: colorPickerHandlerSizeSM\n }\n },\n [`${componentCls}-slider`]: {\n borderRadius: colorPickerSliderHeight / 2,\n [`${componentCls}-palette`]: {\n height: colorPickerSliderHeight\n },\n [`${componentCls}-gradient`]: {\n borderRadius: colorPickerSliderHeight / 2,\n boxShadow: colorPickerInsetShadow\n },\n '&-alpha': getTransBg(`${colorPickerSliderHeight}px`, token.colorFillSecondary),\n '&-hue': {\n marginBottom: marginSM\n }\n },\n [`${componentCls}-slider-container`]: {\n display: 'flex',\n gap: marginSM,\n marginBottom: marginSM,\n [`${componentCls}-slider-group`]: {\n flex: 1,\n '&-disabled-alpha': {\n display: 'flex',\n alignItems: 'center',\n [`${componentCls}-slider`]: {\n flex: 1,\n marginBottom: 0\n }\n }\n }\n }\n };\n};\nexport default genPickerStyle;","const genPresetsStyle = token => {\n const {\n componentCls,\n antCls,\n colorTextQuaternary,\n paddingXXS,\n colorPickerPresetColorSize,\n fontSizeSM,\n colorText,\n lineHeightSM,\n lineWidth,\n borderRadius,\n colorFill,\n colorWhite,\n marginXXS,\n paddingXS\n } = token;\n return {\n [`${componentCls}-presets`]: {\n [`${antCls}-collapse-item > ${antCls}-collapse-header`]: {\n padding: 0,\n [`${antCls}-collapse-expand-icon`]: {\n height: fontSizeSM * lineHeightSM,\n color: colorTextQuaternary,\n paddingInlineEnd: paddingXXS\n }\n },\n [`${antCls}-collapse`]: {\n display: 'flex',\n flexDirection: 'column',\n gap: marginXXS\n },\n [`${antCls}-collapse-item > ${antCls}-collapse-content > ${antCls}-collapse-content-box`]: {\n padding: `${paddingXS}px 0`\n },\n '&-label': {\n fontSize: fontSizeSM,\n color: colorText,\n lineHeight: lineHeightSM\n },\n '&-items': {\n display: 'flex',\n flexWrap: 'wrap',\n gap: marginXXS * 1.5,\n [`${componentCls}-presets-color`]: {\n position: 'relative',\n cursor: 'pointer',\n width: colorPickerPresetColorSize,\n height: colorPickerPresetColorSize,\n '&::before': {\n content: '\"\"',\n pointerEvents: 'none',\n width: colorPickerPresetColorSize + 4 * lineWidth,\n height: colorPickerPresetColorSize + 4 * lineWidth,\n position: 'absolute',\n top: -2 * lineWidth,\n insetInlineStart: -2 * lineWidth,\n borderRadius,\n border: `${lineWidth}px solid transparent`,\n transition: `border-color ${token.motionDurationMid} ${token.motionEaseInBack}`\n },\n '&:hover::before': {\n borderColor: colorFill\n },\n '&::after': {\n boxSizing: 'border-box',\n position: 'absolute',\n top: '50%',\n insetInlineStart: '21.5%',\n display: 'table',\n width: colorPickerPresetColorSize / 13 * 5,\n height: colorPickerPresetColorSize / 13 * 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 [`&${componentCls}-presets-color-checked`]: {\n '&::after': {\n opacity: 1,\n borderColor: colorWhite,\n transform: 'rotate(45deg) scale(1) translate(-50%,-50%)',\n transition: `transform ${token.motionDurationMid} ${token.motionEaseOutBack} ${token.motionDurationFast}`\n },\n [`&${componentCls}-presets-color-bright`]: {\n '&::after': {\n borderColor: 'rgba(0, 0, 0, 0.45)'\n }\n }\n }\n }\n },\n '&-empty': {\n fontSize: fontSizeSM,\n color: colorTextQuaternary\n }\n }\n };\n};\nexport default genPresetsStyle;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genColorBlockStyle from './color-block';\nimport genInputStyle from './input';\nimport genPickerStyle from './picker';\nimport genPresetsStyle from './presets';\nexport const genActiveStyle = token => ({\n boxShadow: `0 0 0 ${token.controlOutlineWidth}px ${token.controlOutline}`,\n borderInlineEndWidth: token.lineWidth,\n outline: 0\n});\nconst genRtlStyle = token => {\n const {\n componentCls\n } = token;\n return {\n '&-rtl': {\n [`${componentCls}-presets-color`]: {\n '&::after': {\n direction: 'ltr'\n }\n },\n [`${componentCls}-clear`]: {\n '&::after': {\n direction: 'ltr'\n }\n }\n }\n };\n};\nconst genClearStyle = (token, size, extraStyle) => {\n const {\n componentCls,\n borderRadiusSM,\n lineWidth,\n colorSplit,\n red6\n } = token;\n return {\n [`${componentCls}-clear`]: Object.assign(Object.assign({\n width: size,\n height: size,\n borderRadius: borderRadiusSM,\n border: `${lineWidth}px solid ${colorSplit}`,\n position: 'relative',\n cursor: 'pointer',\n overflow: 'hidden'\n }, extraStyle), {\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n insetInlineEnd: lineWidth,\n top: 0,\n display: 'block',\n width: 40,\n height: 2,\n transformOrigin: 'right',\n transform: 'rotate(-45deg)',\n backgroundColor: red6\n }\n })\n };\n};\nconst genStatusStyle = token => {\n const {\n componentCls,\n colorError,\n colorWarning,\n colorErrorBorderHover,\n colorWarningBorderHover,\n colorErrorOutline,\n colorWarningOutline\n } = token;\n return {\n [`&${componentCls}-status-error`]: {\n borderColor: colorError,\n '&:hover': {\n borderColor: colorErrorBorderHover\n },\n [`&${componentCls}-trigger-active`]: Object.assign({}, genActiveStyle(mergeToken(token, {\n controlOutline: colorErrorOutline\n })))\n },\n [`&${componentCls}-status-warning`]: {\n borderColor: colorWarning,\n '&:hover': {\n borderColor: colorWarningBorderHover\n },\n [`&${componentCls}-trigger-active`]: Object.assign({}, genActiveStyle(mergeToken(token, {\n controlOutline: colorWarningOutline\n })))\n }\n };\n};\nconst genSizeStyle = token => {\n const {\n componentCls,\n controlHeightLG,\n controlHeightSM,\n controlHeight,\n controlHeightXS,\n borderRadius,\n borderRadiusSM,\n borderRadiusXS,\n borderRadiusLG,\n fontSizeLG\n } = token;\n return {\n [`&${componentCls}-lg`]: {\n minWidth: controlHeightLG,\n height: controlHeightLG,\n borderRadius: borderRadiusLG,\n [`${componentCls}-color-block, ${componentCls}-clear`]: {\n width: controlHeight,\n height: controlHeight,\n borderRadius\n },\n [`${componentCls}-trigger-text`]: {\n fontSize: fontSizeLG\n }\n },\n [`&${componentCls}-sm`]: {\n minWidth: controlHeightSM,\n height: controlHeightSM,\n borderRadius: borderRadiusSM,\n [`${componentCls}-color-block, ${componentCls}-clear`]: {\n width: controlHeightXS,\n height: controlHeightXS,\n borderRadius: borderRadiusXS\n }\n }\n };\n};\nconst genColorPickerStyle = token => {\n const {\n componentCls,\n colorPickerWidth,\n colorPrimary,\n motionDurationMid,\n colorBgElevated,\n colorTextDisabled,\n colorText,\n colorBgContainerDisabled,\n borderRadius,\n marginXS,\n marginSM,\n controlHeight,\n controlHeightSM,\n colorBgTextActive,\n colorPickerPresetColorSize,\n colorPickerPreviewSize,\n lineWidth,\n colorBorder,\n paddingXXS,\n fontSize\n } = token;\n return [{\n [componentCls]: Object.assign({\n [`${componentCls}-inner-content`]: Object.assign(Object.assign(Object.assign(Object.assign({\n display: 'flex',\n flexDirection: 'column',\n width: colorPickerWidth,\n '&-divider': {\n margin: `${marginSM}px 0 ${marginXS}px`\n },\n [`${componentCls}-panel`]: Object.assign({}, genPickerStyle(token))\n }, genColorBlockStyle(token, colorPickerPreviewSize)), genInputStyle(token)), genPresetsStyle(token)), genClearStyle(token, colorPickerPresetColorSize, {\n marginInlineStart: 'auto',\n marginBottom: marginXS\n })),\n '&-trigger': Object.assign(Object.assign(Object.assign(Object.assign({\n minWidth: controlHeight,\n height: controlHeight,\n borderRadius,\n border: `${lineWidth}px solid ${colorBorder}`,\n cursor: 'pointer',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: `all ${motionDurationMid}`,\n background: colorBgElevated,\n padding: paddingXXS - lineWidth,\n [`${componentCls}-trigger-text`]: {\n marginInlineStart: marginXS,\n marginInlineEnd: marginXS - (paddingXXS - lineWidth),\n fontSize,\n color: colorText\n },\n '&-active': Object.assign(Object.assign({}, genActiveStyle(token)), {\n borderColor: colorPrimary\n }),\n '&:hover': {\n borderColor: colorPrimary\n },\n '&-disabled': {\n color: colorTextDisabled,\n background: colorBgContainerDisabled,\n cursor: 'not-allowed',\n '&:hover': {\n borderColor: colorBgTextActive\n },\n [`${componentCls}-trigger-text`]: {\n color: colorTextDisabled\n }\n }\n }, genClearStyle(token, controlHeightSM)), genColorBlockStyle(token, controlHeightSM)), genStatusStyle(token)), genSizeStyle(token))\n }, genRtlStyle(token))\n }];\n};\nexport default genComponentStyleHook('ColorPicker', token => {\n const {\n colorTextQuaternary,\n marginSM\n } = token;\n const colorPickerSliderHeight = 8;\n const colorPickerToken = mergeToken(token, {\n colorPickerWidth: 234,\n colorPickerHandlerSize: 16,\n colorPickerHandlerSizeSM: 12,\n colorPickerAlphaInputWidth: 44,\n colorPickerInputNumberHandleWidth: 16,\n colorPickerPresetColorSize: 18,\n colorPickerInsetShadow: `inset 0 0 1px 0 ${colorTextQuaternary}`,\n colorPickerSliderHeight,\n colorPickerPreviewSize: colorPickerSliderHeight * 2 + marginSM\n });\n return [genColorPickerStyle(colorPickerToken)];\n});","import React, { useContext, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport genPurePanel from '../_util/PurePanel';\nimport { getStatusClassNames } from '../_util/statusUtils';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider/context';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext, NoFormStyle } from '../form/context';\nimport Popover from '../popover';\nimport theme from '../theme';\nimport ColorPickerPanel from './ColorPickerPanel';\nimport ColorTrigger from './components/ColorTrigger';\nimport useColorState from './hooks/useColorState';\nimport useStyle from './style/index';\nimport { customizePrefixCls, genAlphaColor, generateColor, getAlphaColor } from './util';\nconst ColorPicker = props => {\n const {\n value,\n defaultValue,\n format,\n allowClear = false,\n presets,\n children,\n trigger = 'click',\n open,\n disabled,\n placement = 'bottomLeft',\n arrow = true,\n panelRender,\n showText,\n style,\n className,\n size: customizeSize,\n rootClassName,\n styles,\n disabledAlpha = false,\n onFormatChange,\n onChange,\n onClear,\n onOpenChange,\n onChangeComplete,\n getPopupContainer,\n autoAdjustOverflow = true,\n destroyTooltipOnHide\n } = props;\n const {\n getPrefixCls,\n direction,\n colorPicker\n } = useContext(ConfigContext);\n const {\n token\n } = theme.useToken();\n const [colorValue, setColorValue] = useColorState(token.colorPrimary, {\n value,\n defaultValue\n });\n const [popupOpen, setPopupOpen] = useMergedState(false, {\n value: open,\n postState: openData => !disabled && openData,\n onChange: onOpenChange\n });\n const [formatValue, setFormatValue] = useMergedState(format, {\n value: format,\n onChange: onFormatChange\n });\n const [colorCleared, setColorCleared] = useState(false);\n const prefixCls = getPrefixCls('color-picker', customizePrefixCls);\n const isAlphaColor = useMemo(() => getAlphaColor(colorValue) < 100, [colorValue]);\n // ===================== Form Status =====================\n const {\n status: contextStatus\n } = React.useContext(FormItemInputContext);\n // ===================== Style =====================\n const mergedSize = useSize(customizeSize);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const rtlCls = {\n [`${prefixCls}-rtl`]: direction\n };\n const mergeRootCls = classNames(rootClassName, rtlCls);\n const mergeCls = classNames(getStatusClassNames(prefixCls, contextStatus), {\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large'\n }, colorPicker === null || colorPicker === void 0 ? void 0 : colorPicker.className, mergeRootCls, className, hashId);\n const mergePopupCls = classNames(prefixCls, rtlCls);\n const popupAllowCloseRef = useRef(true);\n // ===================== Warning ======================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(disabledAlpha && isAlphaColor), 'ColorPicker', '`disabledAlpha` will make the alpha to be 100% when use alpha color.') : void 0;\n }\n const handleChange = (data, type, pickColor) => {\n let color = generateColor(data);\n const isNull = value === null || !value && defaultValue === null;\n if (colorCleared || isNull) {\n setColorCleared(false);\n // ignore alpha slider\n if (getAlphaColor(colorValue) === 0 && type !== 'alpha') {\n color = genAlphaColor(color);\n }\n }\n // ignore alpha color\n if (disabledAlpha && isAlphaColor) {\n color = genAlphaColor(color);\n }\n // Only for drag-and-drop color picking\n if (pickColor) {\n popupAllowCloseRef.current = false;\n } else {\n onChangeComplete === null || onChangeComplete === void 0 ? void 0 : onChangeComplete(color);\n }\n setColorValue(color);\n onChange === null || onChange === void 0 ? void 0 : onChange(color, color.toHexString());\n };\n const handleClear = () => {\n setColorCleared(true);\n onClear === null || onClear === void 0 ? void 0 : onClear();\n };\n const handleChangeComplete = color => {\n popupAllowCloseRef.current = true;\n let changeColor = generateColor(color);\n // ignore alpha color\n if (disabledAlpha && isAlphaColor) {\n changeColor = genAlphaColor(color);\n }\n onChangeComplete === null || onChangeComplete === void 0 ? void 0 : onChangeComplete(changeColor);\n };\n const popoverProps = {\n open: popupOpen,\n trigger,\n placement,\n arrow,\n rootClassName,\n getPopupContainer,\n autoAdjustOverflow,\n destroyTooltipOnHide\n };\n const colorBaseProps = {\n prefixCls,\n color: colorValue,\n allowClear,\n colorCleared,\n disabled,\n disabledAlpha,\n presets,\n panelRender,\n format: formatValue,\n onFormatChange: setFormatValue,\n onChangeComplete: handleChangeComplete\n };\n const mergedStyle = Object.assign(Object.assign({}, colorPicker === null || colorPicker === void 0 ? void 0 : colorPicker.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(Popover, Object.assign({\n style: styles === null || styles === void 0 ? void 0 : styles.popup,\n overlayInnerStyle: styles === null || styles === void 0 ? void 0 : styles.popupOverlayInner,\n onOpenChange: visible => {\n if (popupAllowCloseRef.current) {\n setPopupOpen(visible);\n }\n },\n content: /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, /*#__PURE__*/React.createElement(ColorPickerPanel, Object.assign({}, colorBaseProps, {\n onChange: handleChange,\n onChangeComplete: handleChangeComplete,\n onClear: handleClear\n }))),\n overlayClassName: mergePopupCls\n }, popoverProps), children || /*#__PURE__*/React.createElement(ColorTrigger, {\n open: popupOpen,\n className: mergeCls,\n style: mergedStyle,\n color: value ? generateColor(value) : colorValue,\n prefixCls: prefixCls,\n disabled: disabled,\n colorCleared: colorCleared,\n showText: showText,\n format: formatValue\n })));\n};\nif (process.env.NODE_ENV !== 'production') {\n ColorPicker.displayName = 'ColorPicker';\n}\nconst PurePanel = genPurePanel(ColorPicker, 'color-picker', /* istanbul ignore next */\nprefixCls => prefixCls, props => Object.assign(Object.assign({}, props), {\n placement: 'bottom',\n autoAdjustOverflow: false\n}));\nColorPicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default ColorPicker;","'use client';\n\nimport ColorPicker from './ColorPicker';\nexport default ColorPicker;","import React from 'react';\nconst DescriptionsContext = /*#__PURE__*/React.createContext({});\nexport default DescriptionsContext;","const DescriptionsItem = _ref => {\n let {\n children\n } = _ref;\n return children;\n};\nexport default DescriptionsItem;","import classNames from 'classnames';\nimport * as React from 'react';\nfunction notEmpty(val) {\n return val !== undefined && val !== null;\n}\nconst Cell = props => {\n const {\n itemPrefixCls,\n component,\n span,\n className,\n style,\n labelStyle,\n contentStyle,\n bordered,\n label,\n content,\n colon\n } = props;\n const Component = component;\n if (bordered) {\n return /*#__PURE__*/React.createElement(Component, {\n className: classNames({\n [`${itemPrefixCls}-item-label`]: notEmpty(label),\n [`${itemPrefixCls}-item-content`]: notEmpty(content)\n }, className),\n style: style,\n colSpan: span\n }, notEmpty(label) && /*#__PURE__*/React.createElement(\"span\", {\n style: labelStyle\n }, label), notEmpty(content) && /*#__PURE__*/React.createElement(\"span\", {\n style: contentStyle\n }, content));\n }\n return /*#__PURE__*/React.createElement(Component, {\n className: classNames(`${itemPrefixCls}-item`, className),\n style: style,\n colSpan: span\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${itemPrefixCls}-item-container`\n }, (label || label === 0) && /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${itemPrefixCls}-item-label`, {\n [`${itemPrefixCls}-item-no-colon`]: !colon\n }),\n style: labelStyle\n }, label), (content || content === 0) && /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${itemPrefixCls}-item-content`),\n style: contentStyle\n }, content)));\n};\nexport default Cell;","import * as React from 'react';\nimport Cell from './Cell';\nimport DescriptionsContext from './DescriptionsContext';\nfunction renderCells(items, _ref, _ref2) {\n let {\n colon,\n prefixCls,\n bordered\n } = _ref;\n let {\n component,\n type,\n showLabel,\n showContent,\n labelStyle: rootLabelStyle,\n contentStyle: rootContentStyle\n } = _ref2;\n return items.map((_ref3, index) => {\n let {\n label,\n children,\n prefixCls: itemPrefixCls = prefixCls,\n className,\n style,\n labelStyle,\n contentStyle,\n span = 1,\n key\n } = _ref3;\n if (typeof component === 'string') {\n return /*#__PURE__*/React.createElement(Cell, {\n key: `${type}-${key || index}`,\n className: className,\n style: style,\n labelStyle: Object.assign(Object.assign({}, rootLabelStyle), labelStyle),\n contentStyle: Object.assign(Object.assign({}, rootContentStyle), contentStyle),\n span: span,\n colon: colon,\n component: component,\n itemPrefixCls: itemPrefixCls,\n bordered: bordered,\n label: showLabel ? label : null,\n content: showContent ? children : null\n });\n }\n return [/*#__PURE__*/React.createElement(Cell, {\n key: `label-${key || index}`,\n className: className,\n style: Object.assign(Object.assign(Object.assign({}, rootLabelStyle), style), labelStyle),\n span: 1,\n colon: colon,\n component: component[0],\n itemPrefixCls: itemPrefixCls,\n bordered: bordered,\n label: label\n }), /*#__PURE__*/React.createElement(Cell, {\n key: `content-${key || index}`,\n className: className,\n style: Object.assign(Object.assign(Object.assign({}, rootContentStyle), style), contentStyle),\n span: span * 2 - 1,\n component: component[1],\n itemPrefixCls: itemPrefixCls,\n bordered: bordered,\n content: children\n })];\n });\n}\nconst Row = props => {\n const descContext = React.useContext(DescriptionsContext);\n const {\n prefixCls,\n vertical,\n row,\n index,\n bordered\n } = props;\n if (vertical) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"tr\", {\n key: `label-${index}`,\n className: `${prefixCls}-row`\n }, renderCells(row, props, Object.assign({\n component: 'th',\n type: 'label',\n showLabel: true\n }, descContext))), /*#__PURE__*/React.createElement(\"tr\", {\n key: `content-${index}`,\n className: `${prefixCls}-row`\n }, renderCells(row, props, Object.assign({\n component: 'td',\n type: 'content',\n showContent: true\n }, descContext))));\n }\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: index,\n className: `${prefixCls}-row`\n }, renderCells(row, props, Object.assign({\n component: bordered ? ['th', 'td'] : 'td',\n type: 'item',\n showLabel: true,\n showContent: true\n }, descContext)));\n};\nexport default Row;","import toArray from \"rc-util/es/Children/toArray\";\nimport { useMemo } from 'react';\nimport warning from '../../_util/warning';\nfunction getFilledItem(rowItem, rowRestCol, span) {\n let clone = rowItem;\n if (span === undefined || span > rowRestCol) {\n clone = Object.assign(Object.assign({}, rowItem), {\n span: rowRestCol\n });\n process.env.NODE_ENV !== \"production\" ? warning(span === undefined, 'Descriptions', 'Sum of column `span` in a line not match `column` of Descriptions.') : void 0;\n }\n return clone;\n}\n// Convert children into items\nconst transChildren2Items = childNodes => toArray(childNodes).map(node => Object.assign({}, node === null || node === void 0 ? void 0 : node.props));\n// Calculate the sum of span in a row\nfunction getCalcRows(rowItems, mergedColumn) {\n const rows = [];\n let tmpRow = [];\n let rowRestCol = mergedColumn;\n rowItems.filter(n => n).forEach((rowItem, index) => {\n const span = rowItem === null || rowItem === void 0 ? void 0 : rowItem.span;\n const mergedSpan = span || 1;\n // Additional handle last one\n if (index === rowItems.length - 1) {\n tmpRow.push(getFilledItem(rowItem, rowRestCol, span));\n rows.push(tmpRow);\n return;\n }\n if (mergedSpan < rowRestCol) {\n rowRestCol -= mergedSpan;\n tmpRow.push(rowItem);\n } else {\n tmpRow.push(getFilledItem(rowItem, rowRestCol, mergedSpan));\n rows.push(tmpRow);\n rowRestCol = mergedColumn;\n tmpRow = [];\n }\n });\n return rows;\n}\nconst useRow = (mergedColumn, items, children) => {\n const rows = useMemo(() => {\n if (Array.isArray(items)) {\n return getCalcRows(items, mergedColumn);\n }\n return getCalcRows(transChildren2Items(children), mergedColumn);\n }, [items, children, mergedColumn]);\n return rows;\n};\nexport default useRow;","import { resetComponent, textEllipsis } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genBorderedStyle = token => {\n const {\n componentCls,\n labelBg\n } = token;\n return {\n [`&${componentCls}-bordered`]: {\n [`> ${componentCls}-view`]: {\n border: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`,\n '> table': {\n tableLayout: 'auto',\n borderCollapse: 'collapse'\n },\n [`${componentCls}-row`]: {\n borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`,\n '&:last-child': {\n borderBottom: 'none'\n },\n [`> ${componentCls}-item-label, > ${componentCls}-item-content`]: {\n padding: `${token.padding}px ${token.paddingLG}px`,\n borderInlineEnd: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`,\n '&:last-child': {\n borderInlineEnd: 'none'\n }\n },\n [`> ${componentCls}-item-label`]: {\n color: token.colorTextSecondary,\n backgroundColor: labelBg,\n '&::after': {\n display: 'none'\n }\n }\n }\n },\n [`&${componentCls}-middle`]: {\n [`${componentCls}-row`]: {\n [`> ${componentCls}-item-label, > ${componentCls}-item-content`]: {\n padding: `${token.paddingSM}px ${token.paddingLG}px`\n }\n }\n },\n [`&${componentCls}-small`]: {\n [`${componentCls}-row`]: {\n [`> ${componentCls}-item-label, > ${componentCls}-item-content`]: {\n padding: `${token.paddingXS}px ${token.padding}px`\n }\n }\n }\n }\n };\n};\nconst genDescriptionStyles = token => {\n const {\n componentCls,\n extraColor,\n itemPaddingBottom,\n colonMarginRight,\n colonMarginLeft,\n titleMarginBottom\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genBorderedStyle(token)), {\n [`&-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-header`]: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: titleMarginBottom\n },\n [`${componentCls}-title`]: Object.assign(Object.assign({}, textEllipsis), {\n flex: 'auto',\n color: token.colorText,\n fontWeight: token.fontWeightStrong,\n fontSize: token.fontSizeLG,\n lineHeight: token.lineHeightLG\n }),\n [`${componentCls}-extra`]: {\n marginInlineStart: 'auto',\n color: extraColor,\n fontSize: token.fontSize\n },\n [`${componentCls}-view`]: {\n width: '100%',\n borderRadius: token.borderRadiusLG,\n table: {\n width: '100%',\n tableLayout: 'fixed'\n }\n },\n [`${componentCls}-row`]: {\n '> th, > td': {\n paddingBottom: itemPaddingBottom\n },\n '&:last-child': {\n borderBottom: 'none'\n }\n },\n [`${componentCls}-item-label`]: {\n color: token.colorTextTertiary,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n textAlign: `start`,\n '&::after': {\n content: '\":\"',\n position: 'relative',\n top: -0.5,\n marginInline: `${colonMarginLeft}px ${colonMarginRight}px`\n },\n [`&${componentCls}-item-no-colon::after`]: {\n content: '\"\"'\n }\n },\n [`${componentCls}-item-no-label`]: {\n '&::after': {\n margin: 0,\n content: '\"\"'\n }\n },\n [`${componentCls}-item-content`]: {\n display: 'table-cell',\n flex: 1,\n color: token.colorText,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n wordBreak: 'break-word',\n overflowWrap: 'break-word'\n },\n [`${componentCls}-item`]: {\n paddingBottom: 0,\n verticalAlign: 'top',\n '&-container': {\n display: 'flex',\n [`${componentCls}-item-label`]: {\n display: 'inline-flex',\n alignItems: 'baseline'\n },\n [`${componentCls}-item-content`]: {\n display: 'inline-flex',\n alignItems: 'baseline'\n }\n }\n },\n '&-middle': {\n [`${componentCls}-row`]: {\n '> th, > td': {\n paddingBottom: token.paddingSM\n }\n }\n },\n '&-small': {\n [`${componentCls}-row`]: {\n '> th, > td': {\n paddingBottom: token.paddingXS\n }\n }\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Descriptions', token => {\n const descriptionToken = mergeToken(token, {});\n return [genDescriptionStyles(descriptionToken)];\n}, token => ({\n labelBg: token.colorFillAlter,\n titleMarginBottom: token.fontSizeSM * token.lineHeightSM,\n itemPaddingBottom: token.padding,\n colonMarginRight: token.marginXS,\n colonMarginLeft: token.marginXXS / 2,\n extraColor: token.colorText\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};\n/* eslint-disable react/no-array-index-key */\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport useResponsiveObserver, { responsiveArray } from '../_util/responsiveObserver';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport DescriptionsContext from './DescriptionsContext';\nimport DescriptionsItem from './Item';\nimport Row from './Row';\nimport useRow from './hooks/useRow';\nimport useStyle from './style';\nconst DEFAULT_COLUMN_MAP = {\n xxl: 3,\n xl: 3,\n lg: 3,\n md: 3,\n sm: 2,\n xs: 1\n};\nfunction getColumn(column, screens) {\n if (typeof column === 'number') {\n return column;\n }\n if (typeof column === 'object') {\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint = responsiveArray[i];\n if (screens[breakpoint] && column[breakpoint] !== undefined) {\n return column[breakpoint] || DEFAULT_COLUMN_MAP[breakpoint];\n }\n }\n }\n return 3;\n}\nconst Descriptions = props => {\n const {\n prefixCls: customizePrefixCls,\n title,\n extra,\n column = DEFAULT_COLUMN_MAP,\n colon = true,\n bordered,\n layout,\n children,\n className,\n rootClassName,\n style,\n size: customizeSize,\n labelStyle,\n contentStyle,\n items\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"title\", \"extra\", \"column\", \"colon\", \"bordered\", \"layout\", \"children\", \"className\", \"rootClassName\", \"style\", \"size\", \"labelStyle\", \"contentStyle\", \"items\"]);\n const {\n getPrefixCls,\n direction,\n descriptions\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('descriptions', customizePrefixCls);\n const [screens, setScreens] = React.useState({});\n const mergedColumn = getColumn(column, screens);\n const mergedSize = useSize(customizeSize);\n const rows = useRow(mergedColumn, items, children);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const responsiveObserver = useResponsiveObserver();\n // Responsive\n React.useEffect(() => {\n const token = responsiveObserver.subscribe(newScreens => {\n if (typeof column !== 'object') {\n return;\n }\n setScreens(newScreens);\n });\n return () => {\n responsiveObserver.unsubscribe(token);\n };\n }, []);\n // ======================== Render ========================\n const contextValue = React.useMemo(() => ({\n labelStyle,\n contentStyle\n }), [labelStyle, contentStyle]);\n return wrapSSR( /*#__PURE__*/React.createElement(DescriptionsContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classNames(prefixCls, descriptions === null || descriptions === void 0 ? void 0 : descriptions.className, {\n [`${prefixCls}-${mergedSize}`]: mergedSize && mergedSize !== 'default',\n [`${prefixCls}-bordered`]: !!bordered,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId),\n style: Object.assign(Object.assign({}, descriptions === null || descriptions === void 0 ? void 0 : descriptions.style), style)\n }, restProps), (title || extra) && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-header`\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, title), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-extra`\n }, extra)), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-view`\n }, /*#__PURE__*/React.createElement(\"table\", null, /*#__PURE__*/React.createElement(\"tbody\", null, rows.map((row, index) => /*#__PURE__*/React.createElement(Row, {\n key: index,\n index: index,\n colon: colon,\n prefixCls: prefixCls,\n vertical: layout === 'vertical',\n bordered: bordered,\n row: row\n }))))))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Descriptions.displayName = 'Descriptions';\n}\nexport { DescriptionsContext };\nDescriptions.Item = DescriptionsItem;\nexport default Descriptions;","// This icon file is generated automatically.\nvar FileTextOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"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.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z\" } }] }, \"name\": \"file-text\", \"theme\": \"outlined\" };\nexport default FileTextOutlined;\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 FileTextOutlinedSvg from \"@ant-design/icons-svg/es/asn/FileTextOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FileTextOutlined = function FileTextOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FileTextOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n FileTextOutlined.displayName = 'FileTextOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(FileTextOutlined);","import React, { memo } from 'react';\nimport FileTextOutlined from \"@ant-design/icons/es/icons/FileTextOutlined\";\nimport classNames from 'classnames';\nconst FloatButtonContent = props => {\n const {\n icon,\n description,\n prefixCls,\n className\n } = props;\n const defaultElement = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-icon`\n }, /*#__PURE__*/React.createElement(FileTextOutlined, null));\n return /*#__PURE__*/React.createElement(\"div\", {\n onClick: props.onClick,\n onFocus: props.onFocus,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n className: classNames(className, `${prefixCls}-content`)\n }, icon || description ? /*#__PURE__*/React.createElement(React.Fragment, null, icon && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-icon`\n }, icon), description && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-description`\n }, description)) : defaultElement);\n};\nexport default /*#__PURE__*/memo(FloatButtonContent);","import React from 'react';\nconst FloatButtonGroupContext = /*#__PURE__*/React.createContext(undefined);\nexport const {\n Provider: FloatButtonGroupProvider\n} = FloatButtonGroupContext;\nexport default FloatButtonGroupContext;","const getOffset = radius => {\n if (radius === 0) {\n return 0;\n }\n // 如果要考虑通用性,这里应该用三角函数 Math.sin(45)\n // 但是这个场景比较特殊,始终是等腰直角三角形,所以直接用 Math.sqrt() 开方即可\n return radius - Math.sqrt(Math.pow(radius, 2) / 2);\n};\nexport default getOffset;","import { Keyframes } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { initFadeMotion } from '../../style/motion/fade';\nimport { initMotion } from '../../style/motion/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport getOffset from '../util';\nconst initFloatButtonGroupMotion = token => {\n const {\n componentCls,\n floatButtonSize,\n motionDurationSlow,\n motionEaseInOutCirc\n } = token;\n const groupPrefixCls = `${componentCls}-group`;\n const moveDownIn = new Keyframes('antFloatButtonMoveDownIn', {\n '0%': {\n transform: `translate3d(0, ${floatButtonSize}px, 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 });\n const moveDownOut = new Keyframes('antFloatButtonMoveDownOut', {\n '0%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n },\n '100%': {\n transform: `translate3d(0, ${floatButtonSize}px, 0)`,\n transformOrigin: '0 0',\n opacity: 0\n }\n });\n return [{\n [`${groupPrefixCls}-wrap`]: Object.assign({}, initMotion(`${groupPrefixCls}-wrap`, moveDownIn, moveDownOut, motionDurationSlow, true))\n }, {\n [`${groupPrefixCls}-wrap`]: {\n [`\n &${groupPrefixCls}-wrap-enter,\n &${groupPrefixCls}-wrap-appear\n `]: {\n opacity: 0,\n animationTimingFunction: motionEaseInOutCirc\n },\n [`&${groupPrefixCls}-wrap-leave`]: {\n animationTimingFunction: motionEaseInOutCirc\n }\n }\n }];\n};\n// ============================== Group ==============================\nconst floatButtonGroupStyle = token => {\n const {\n antCls,\n componentCls,\n floatButtonSize,\n margin,\n borderRadiusLG,\n borderRadiusSM,\n badgeOffset,\n floatButtonBodyPadding\n } = token;\n const groupPrefixCls = `${componentCls}-group`;\n return {\n [groupPrefixCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n zIndex: 99,\n display: 'block',\n border: 'none',\n position: 'fixed',\n width: floatButtonSize,\n height: 'auto',\n boxShadow: 'none',\n minHeight: floatButtonSize,\n insetInlineEnd: token.floatButtonInsetInlineEnd,\n insetBlockEnd: token.floatButtonInsetBlockEnd,\n borderRadius: borderRadiusLG,\n [`${groupPrefixCls}-wrap`]: {\n zIndex: -1,\n display: 'block',\n position: 'relative',\n marginBottom: margin\n },\n [`&${groupPrefixCls}-rtl`]: {\n direction: 'rtl'\n },\n [componentCls]: {\n position: 'static'\n }\n }),\n [`${groupPrefixCls}-circle`]: {\n [`${componentCls}-circle:not(:last-child)`]: {\n marginBottom: token.margin,\n [`${componentCls}-body`]: {\n width: floatButtonSize,\n height: floatButtonSize,\n borderRadius: '50%'\n }\n }\n },\n [`${groupPrefixCls}-square`]: {\n [`${componentCls}-square`]: {\n borderRadius: 0,\n padding: 0,\n '&:first-child': {\n borderStartStartRadius: borderRadiusLG,\n borderStartEndRadius: borderRadiusLG\n },\n '&:last-child': {\n borderEndStartRadius: borderRadiusLG,\n borderEndEndRadius: borderRadiusLG\n },\n '&:not(:last-child)': {\n borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`\n },\n [`${antCls}-badge`]: {\n [`${antCls}-badge-count`]: {\n top: -(floatButtonBodyPadding + badgeOffset),\n insetInlineEnd: -(floatButtonBodyPadding + badgeOffset)\n }\n }\n },\n [`${groupPrefixCls}-wrap`]: {\n display: 'block',\n borderRadius: borderRadiusLG,\n boxShadow: token.boxShadowSecondary,\n [`${componentCls}-square`]: {\n boxShadow: 'none',\n marginTop: 0,\n borderRadius: 0,\n padding: floatButtonBodyPadding,\n '&:first-child': {\n borderStartStartRadius: borderRadiusLG,\n borderStartEndRadius: borderRadiusLG\n },\n '&:last-child': {\n borderEndStartRadius: borderRadiusLG,\n borderEndEndRadius: borderRadiusLG\n },\n '&:not(:last-child)': {\n borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`\n },\n [`${componentCls}-body`]: {\n width: token.floatButtonBodySize,\n height: token.floatButtonBodySize\n }\n }\n }\n },\n [`${groupPrefixCls}-circle-shadow`]: {\n boxShadow: 'none'\n },\n [`${groupPrefixCls}-square-shadow`]: {\n boxShadow: token.boxShadowSecondary,\n [`${componentCls}-square`]: {\n boxShadow: 'none',\n padding: floatButtonBodyPadding,\n [`${componentCls}-body`]: {\n width: token.floatButtonBodySize,\n height: token.floatButtonBodySize,\n borderRadius: borderRadiusSM\n }\n }\n }\n };\n};\n// ============================== Shared ==============================\nconst sharedFloatButtonStyle = token => {\n const {\n antCls,\n componentCls,\n floatButtonBodyPadding,\n floatButtonIconSize,\n floatButtonSize,\n borderRadiusLG,\n badgeOffset,\n dotOffsetInSquare,\n dotOffsetInCircle\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n border: 'none',\n position: 'fixed',\n cursor: 'pointer',\n zIndex: 99,\n display: 'block',\n justifyContent: 'center',\n alignItems: 'center',\n width: floatButtonSize,\n height: floatButtonSize,\n insetInlineEnd: token.floatButtonInsetInlineEnd,\n insetBlockEnd: token.floatButtonInsetBlockEnd,\n boxShadow: token.boxShadowSecondary,\n // Pure Panel\n '&-pure': {\n position: 'relative',\n inset: 'auto'\n },\n '&:empty': {\n display: 'none'\n },\n [`${antCls}-badge`]: {\n width: '100%',\n height: '100%',\n [`${antCls}-badge-count`]: {\n transform: 'translate(0, 0)',\n transformOrigin: 'center',\n top: -badgeOffset,\n insetInlineEnd: -badgeOffset\n }\n },\n [`${componentCls}-body`]: {\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n transition: `all ${token.motionDurationMid}`,\n [`${componentCls}-content`]: {\n overflow: 'hidden',\n textAlign: 'center',\n minHeight: floatButtonSize,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n padding: `${floatButtonBodyPadding / 2}px ${floatButtonBodyPadding}px`,\n [`${componentCls}-icon`]: {\n textAlign: 'center',\n margin: 'auto',\n width: floatButtonIconSize,\n fontSize: floatButtonIconSize,\n lineHeight: 1\n }\n }\n }\n }),\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-circle`]: {\n height: floatButtonSize,\n borderRadius: '50%',\n [`${antCls}-badge`]: {\n [`${antCls}-badge-dot`]: {\n top: dotOffsetInCircle,\n insetInlineEnd: dotOffsetInCircle\n }\n },\n [`${componentCls}-body`]: {\n borderRadius: '50%'\n }\n },\n [`${componentCls}-square`]: {\n height: 'auto',\n minHeight: floatButtonSize,\n borderRadius: borderRadiusLG,\n [`${antCls}-badge`]: {\n [`${antCls}-badge-dot`]: {\n top: dotOffsetInSquare,\n insetInlineEnd: dotOffsetInSquare\n }\n },\n [`${componentCls}-body`]: {\n height: 'auto',\n borderRadius: borderRadiusLG\n }\n },\n [`${componentCls}-default`]: {\n backgroundColor: token.floatButtonBackgroundColor,\n transition: `background-color ${token.motionDurationMid}`,\n [`${componentCls}-body`]: {\n backgroundColor: token.floatButtonBackgroundColor,\n transition: `background-color ${token.motionDurationMid}`,\n '&:hover': {\n backgroundColor: token.colorFillContent\n },\n [`${componentCls}-content`]: {\n [`${componentCls}-icon`]: {\n color: token.colorText\n },\n [`${componentCls}-description`]: {\n display: 'flex',\n alignItems: 'center',\n lineHeight: `${token.fontSizeLG}px`,\n color: token.colorText,\n fontSize: token.fontSizeSM\n }\n }\n }\n },\n [`${componentCls}-primary`]: {\n backgroundColor: token.colorPrimary,\n [`${componentCls}-body`]: {\n backgroundColor: token.colorPrimary,\n transition: `background-color ${token.motionDurationMid}`,\n '&:hover': {\n backgroundColor: token.colorPrimaryHover\n },\n [`${componentCls}-content`]: {\n [`${componentCls}-icon`]: {\n color: token.colorTextLightSolid\n },\n [`${componentCls}-description`]: {\n display: 'flex',\n alignItems: 'center',\n lineHeight: `${token.fontSizeLG}px`,\n color: token.colorTextLightSolid,\n fontSize: token.fontSizeSM\n }\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('FloatButton', token => {\n const {\n colorTextLightSolid,\n colorBgElevated,\n controlHeightLG,\n marginXXL,\n marginLG,\n fontSize,\n fontSizeIcon,\n controlItemBgHover,\n paddingXXS,\n borderRadiusLG\n } = token;\n const floatButtonToken = mergeToken(token, {\n floatButtonBackgroundColor: colorBgElevated,\n floatButtonColor: colorTextLightSolid,\n floatButtonHoverBackgroundColor: controlItemBgHover,\n floatButtonFontSize: fontSize,\n floatButtonIconSize: fontSizeIcon * 1.5,\n floatButtonSize: controlHeightLG,\n floatButtonInsetBlockEnd: marginXXL,\n floatButtonInsetInlineEnd: marginLG,\n floatButtonBodySize: controlHeightLG - paddingXXS * 2,\n // 这里的 paddingXXS 是简写,完整逻辑是 (controlHeightLG - (controlHeightLG - paddingXXS * 2)) / 2,\n floatButtonBodyPadding: paddingXXS,\n badgeOffset: paddingXXS * 1.5,\n dotOffsetInCircle: getOffset(controlHeightLG / 2),\n dotOffsetInSquare: getOffset(borderRadiusLG)\n });\n return [floatButtonGroupStyle(floatButtonToken), sharedFloatButtonStyle(floatButtonToken), initFadeMotion(token), initFloatButtonGroupMotion(floatButtonToken)];\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 React, { useContext, useMemo } from 'react';\nimport warning from '../_util/warning';\nimport Badge from '../badge';\nimport { ConfigContext } from '../config-provider';\nimport Tooltip from '../tooltip';\nimport Content from './FloatButtonContent';\nimport FloatButtonGroupContext from './context';\nimport useStyle from './style';\nexport const floatButtonPrefixCls = 'float-btn';\nconst FloatButton = (props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n type = 'default',\n shape = 'circle',\n icon,\n description,\n tooltip,\n badge = {}\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"type\", \"shape\", \"icon\", \"description\", \"tooltip\", \"badge\"]);\n const {\n getPrefixCls,\n direction\n } = useContext(ConfigContext);\n const groupShape = useContext(FloatButtonGroupContext);\n const prefixCls = getPrefixCls(floatButtonPrefixCls, customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergeShape = groupShape || shape;\n const classString = classNames(hashId, prefixCls, className, rootClassName, `${prefixCls}-${type}`, `${prefixCls}-${mergeShape}`, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n });\n // 虽然在 ts 中已经 omit 过了,但是为了防止多余的属性被透传进来,这里再 omit 一遍,以防万一\n const badgeProps = useMemo(() => omit(badge, ['title', 'children', 'status', 'text']), [badge]);\n const contentProps = useMemo(() => ({\n prefixCls,\n description,\n icon,\n type\n }), [prefixCls, description, icon, type]);\n let buttonNode = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-body`\n }, /*#__PURE__*/React.createElement(Content, Object.assign({}, contentProps)));\n if ('badge' in props) {\n buttonNode = /*#__PURE__*/React.createElement(Badge, Object.assign({}, badgeProps), buttonNode);\n }\n if ('tooltip' in props) {\n buttonNode = /*#__PURE__*/React.createElement(Tooltip, {\n title: tooltip,\n placement: direction === 'rtl' ? 'right' : 'left'\n }, buttonNode);\n }\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(shape === 'circle' && description), 'FloatButton', 'supported only when `shape` is `square`. Due to narrow space for text, short sentence is recommended.') : void 0;\n }\n return wrapSSR(props.href ? /*#__PURE__*/React.createElement(\"a\", Object.assign({\n ref: ref\n }, restProps, {\n className: classString\n }), buttonNode) : /*#__PURE__*/React.createElement(\"button\", Object.assign({\n ref: ref\n }, restProps, {\n className: classString,\n type: \"button\"\n }), buttonNode));\n};\nconst ForwardFloatButton = /*#__PURE__*/React.forwardRef(FloatButton);\nif (process.env.NODE_ENV !== 'production') {\n ForwardFloatButton.displayName = 'FloatButton';\n}\nexport default ForwardFloatButton;","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 VerticalAlignTopOutlined from \"@ant-design/icons/es/icons/VerticalAlignTopOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport React, { memo, useContext, useEffect, useRef, useState } from 'react';\nimport FloatButton, { floatButtonPrefixCls } from './FloatButton';\nimport { ConfigContext } from '../config-provider';\nimport getScroll from '../_util/getScroll';\nimport scrollTo from '../_util/scrollTo';\nimport throttleByAnimationFrame from '../_util/throttleByAnimationFrame';\nimport FloatButtonGroupContext from './context';\nimport useStyle from './style';\nconst BackTop = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n type = 'default',\n shape = 'circle',\n visibilityHeight = 400,\n icon = /*#__PURE__*/React.createElement(VerticalAlignTopOutlined, null),\n target,\n onClick,\n duration = 450\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"type\", \"shape\", \"visibilityHeight\", \"icon\", \"target\", \"onClick\", \"duration\"]);\n const [visible, setVisible] = useState(visibilityHeight === 0);\n const ref = useRef(null);\n const getDefaultTarget = () => ref.current && ref.current.ownerDocument ? ref.current.ownerDocument : window;\n const handleScroll = throttleByAnimationFrame(e => {\n const scrollTop = getScroll(e.target, true);\n setVisible(scrollTop >= visibilityHeight);\n });\n useEffect(() => {\n const getTarget = target || getDefaultTarget;\n const container = getTarget();\n handleScroll({\n target: container\n });\n container === null || container === void 0 ? void 0 : container.addEventListener('scroll', handleScroll);\n return () => {\n handleScroll.cancel();\n container === null || container === void 0 ? void 0 : container.removeEventListener('scroll', handleScroll);\n };\n }, [target]);\n const scrollToTop = e => {\n scrollTo(0, {\n getContainer: target || getDefaultTarget,\n duration\n });\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls(floatButtonPrefixCls, customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const [wrapSSR] = useStyle(prefixCls);\n const groupShape = useContext(FloatButtonGroupContext);\n const mergeShape = groupShape || shape;\n const contentProps = Object.assign({\n prefixCls,\n icon,\n type,\n shape: mergeShape\n }, restProps);\n return wrapSSR( /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n motionName: `${rootPrefixCls}-fade`\n }, _ref => {\n let {\n className: motionClassName\n } = _ref;\n return /*#__PURE__*/React.createElement(FloatButton, Object.assign({\n ref: ref\n }, contentProps, {\n onClick: scrollToTop,\n className: classNames(className, motionClassName)\n }));\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n BackTop.displayName = 'BackTop';\n}\nexport default /*#__PURE__*/memo(BackTop);","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 FileTextOutlined from \"@ant-design/icons/es/icons/FileTextOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { memo, useCallback, useContext, useEffect, useMemo, useRef } from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport FloatButton, { floatButtonPrefixCls } from './FloatButton';\nimport { FloatButtonGroupProvider } from './context';\nimport useStyle from './style';\nconst FloatButtonGroup = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n style,\n shape = 'circle',\n type = 'default',\n icon = /*#__PURE__*/React.createElement(FileTextOutlined, null),\n closeIcon = /*#__PURE__*/React.createElement(CloseOutlined, null),\n description,\n trigger,\n children,\n onOpenChange,\n open: customOpen\n } = props,\n floatButtonProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"shape\", \"type\", \"icon\", \"closeIcon\", \"description\", \"trigger\", \"children\", \"onOpenChange\", \"open\"]);\n const {\n direction,\n getPrefixCls\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls(floatButtonPrefixCls, customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const groupPrefixCls = `${prefixCls}-group`;\n const groupCls = classNames(groupPrefixCls, hashId, className, {\n [`${groupPrefixCls}-rtl`]: direction === 'rtl',\n [`${groupPrefixCls}-${shape}`]: shape,\n [`${groupPrefixCls}-${shape}-shadow`]: !trigger\n });\n const wrapperCls = classNames(hashId, `${groupPrefixCls}-wrap`);\n const [open, setOpen] = useMergedState(false, {\n value: customOpen\n });\n const floatButtonGroupRef = useRef(null);\n const floatButtonRef = useRef(null);\n const hoverAction = useMemo(() => {\n const hoverTypeAction = {\n onMouseEnter() {\n setOpen(true);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(true);\n },\n onMouseLeave() {\n setOpen(false);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(false);\n }\n };\n return trigger === 'hover' ? hoverTypeAction : {};\n }, [trigger]);\n const handleOpenChange = () => {\n setOpen(prevState => {\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(!prevState);\n return !prevState;\n });\n };\n const onClick = useCallback(e => {\n var _a, _b;\n if ((_a = floatButtonGroupRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target)) {\n if ((_b = floatButtonRef.current) === null || _b === void 0 ? void 0 : _b.contains(e.target)) {\n handleOpenChange();\n }\n return;\n }\n setOpen(false);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(false);\n }, [trigger]);\n useEffect(() => {\n if (trigger === 'click') {\n document.addEventListener('click', onClick);\n return () => {\n document.removeEventListener('click', onClick);\n };\n }\n }, [trigger]);\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!('open' in props) || !!trigger, 'FloatButton.Group', '`open` need to be used together with `trigger`') : void 0;\n }\n return wrapSSR( /*#__PURE__*/React.createElement(FloatButtonGroupProvider, {\n value: shape\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({\n ref: floatButtonGroupRef,\n className: groupCls,\n style: style\n }, hoverAction), trigger && ['click', 'hover'].includes(trigger) ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CSSMotion, {\n visible: open,\n motionName: `${groupPrefixCls}-wrap`\n }, _ref => {\n let {\n className: motionClassName\n } = _ref;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(motionClassName, wrapperCls)\n }, children);\n }), /*#__PURE__*/React.createElement(FloatButton, Object.assign({\n ref: floatButtonRef,\n type: type,\n shape: shape,\n icon: open ? closeIcon : icon,\n description: description,\n \"aria-label\": props['aria-label']\n }, floatButtonProps))) : children)));\n};\nexport default /*#__PURE__*/memo(FloatButtonGroup);","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/no-array-index-key */\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport BackTop from './BackTop';\nimport FloatButton, { floatButtonPrefixCls } from './FloatButton';\nimport FloatButtonGroup from './FloatButtonGroup';\nconst PureFloatButton = _a => {\n var {\n backTop\n } = _a,\n props = __rest(_a, [\"backTop\"]);\n return backTop ? /*#__PURE__*/React.createElement(BackTop, Object.assign({}, props, {\n visibilityHeight: 0\n })) : /*#__PURE__*/React.createElement(FloatButton, Object.assign({}, props));\n};\n/** @private Internal Component. Do not use in your production. */\nconst PurePanel = _a => {\n var {\n className,\n items\n } = _a,\n props = __rest(_a, [\"className\", \"items\"]);\n const {\n prefixCls: customizePrefixCls\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls(floatButtonPrefixCls, customizePrefixCls);\n const pureCls = `${prefixCls}-pure`;\n if (items) {\n return /*#__PURE__*/React.createElement(FloatButtonGroup, Object.assign({\n className: classNames(className, pureCls)\n }, props), items.map((item, index) => /*#__PURE__*/React.createElement(PureFloatButton, Object.assign({\n key: index\n }, item))));\n }\n return /*#__PURE__*/React.createElement(PureFloatButton, Object.assign({\n className: classNames(className, pureCls)\n }, props));\n};\nexport default PurePanel;","'use client';\n\nimport BackTop from './BackTop';\nimport FloatButton from './FloatButton';\nimport FloatButtonGroup from './FloatButtonGroup';\nimport PurePanel from './PurePanel';\nFloatButton.BackTop = BackTop;\nFloatButton.Group = FloatButtonGroup;\nFloatButton._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default FloatButton;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useCallback, useEffect } from 'react';\n/**\n * Trigger a callback on state change\n */\nexport default function useEffectState() {\n var _useState = useState({\n id: 0,\n callback: null\n }),\n _useState2 = _slicedToArray(_useState, 2),\n effectId = _useState2[0],\n setEffectId = _useState2[1];\n var update = useCallback(function (callback) {\n setEffectId(function (_ref) {\n var id = _ref.id;\n return {\n id: id + 1,\n callback: callback\n };\n });\n }, []);\n useEffect(function () {\n var _effectId$callback;\n (_effectId$callback = effectId.callback) === null || _effectId$callback === void 0 ? void 0 : _effectId$callback.call(effectId);\n }, [effectId]);\n return update;\n}","/* tslint:disable: no-object-literal-type-assertion */\nimport * as React from 'react';\n// We will never use default, here only to fix TypeScript warning\nvar MentionsContext = /*#__PURE__*/React.createContext(null);\nexport default MentionsContext;","import Menu, { MenuItem } from 'rc-menu';\nimport * as React from 'react';\nimport MentionsContext from \"./MentionsContext\";\n/**\n * We only use Menu to display the candidate.\n * The focus is controlled by textarea to make accessibility easy.\n */\nfunction DropdownMenu(props) {\n var _React$useContext = React.useContext(MentionsContext),\n notFoundContent = _React$useContext.notFoundContent,\n activeIndex = _React$useContext.activeIndex,\n setActiveIndex = _React$useContext.setActiveIndex,\n selectOption = _React$useContext.selectOption,\n onFocus = _React$useContext.onFocus,\n onBlur = _React$useContext.onBlur;\n var prefixCls = props.prefixCls,\n options = props.options;\n var activeOption = options[activeIndex] || {};\n return /*#__PURE__*/React.createElement(Menu, {\n prefixCls: \"\".concat(prefixCls, \"-menu\"),\n activeKey: activeOption.key,\n onSelect: function onSelect(_ref) {\n var key = _ref.key;\n var option = options.find(function (_ref2) {\n var optionKey = _ref2.key;\n return optionKey === key;\n });\n selectOption(option);\n },\n onFocus: onFocus,\n onBlur: onBlur\n }, options.map(function (option, index) {\n var key = option.key,\n disabled = option.disabled,\n className = option.className,\n style = option.style,\n label = option.label;\n return /*#__PURE__*/React.createElement(MenuItem, {\n key: key,\n disabled: disabled,\n className: className,\n style: style,\n onMouseEnter: function onMouseEnter() {\n setActiveIndex(index);\n }\n }, label);\n }), !options.length && /*#__PURE__*/React.createElement(MenuItem, {\n disabled: true\n }, notFoundContent));\n}\nexport default DropdownMenu;","import Trigger from '@rc-component/trigger';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport DropdownMenu from \"./DropdownMenu\";\nvar BUILT_IN_PLACEMENTS = {\n bottomRight: {\n points: ['tl', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n bottomLeft: {\n points: ['tr', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n topRight: {\n points: ['bl', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['br', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n }\n};\nvar KeywordTrigger = function KeywordTrigger(props) {\n var prefixCls = props.prefixCls,\n options = props.options,\n children = props.children,\n visible = props.visible,\n transitionName = props.transitionName,\n getPopupContainer = props.getPopupContainer,\n dropdownClassName = props.dropdownClassName,\n direction = props.direction,\n placement = props.placement;\n var dropdownPrefix = \"\".concat(prefixCls, \"-dropdown\");\n var dropdownElement = /*#__PURE__*/React.createElement(DropdownMenu, {\n prefixCls: dropdownPrefix,\n options: options\n });\n var dropdownPlacement = useMemo(function () {\n var popupPlacement;\n if (direction === 'rtl') {\n popupPlacement = placement === 'top' ? 'topLeft' : 'bottomLeft';\n } else {\n popupPlacement = placement === 'top' ? 'topRight' : 'bottomRight';\n }\n return popupPlacement;\n }, [direction, placement]);\n return /*#__PURE__*/React.createElement(Trigger, {\n prefixCls: dropdownPrefix,\n popupVisible: visible,\n popup: dropdownElement,\n popupPlacement: dropdownPlacement,\n popupTransitionName: transitionName,\n builtinPlacements: BUILT_IN_PLACEMENTS,\n getPopupContainer: getPopupContainer,\n popupClassName: dropdownClassName\n }, children);\n};\nexport default KeywordTrigger;","var Option = function Option() {\n return null;\n};\nexport default Option;","/**\n * Cut input selection into 2 part and return text before selection start\n */\nexport function getBeforeSelectionText(input) {\n var selectionStart = input.selectionStart;\n return input.value.slice(0, selectionStart);\n}\n/**\n * Find the last match prefix index\n */\nexport function getLastMeasureIndex(text, prefix) {\n return prefix.reduce(function (lastMatch, prefixStr) {\n var lastIndex = text.lastIndexOf(prefixStr);\n if (lastIndex > lastMatch.location) {\n return {\n location: lastIndex,\n prefix: prefixStr\n };\n }\n return lastMatch;\n }, {\n location: -1,\n prefix: ''\n });\n}\nfunction lower(char) {\n return (char || '').toLowerCase();\n}\nfunction reduceText(text, targetText, split) {\n var firstChar = text[0];\n if (!firstChar || firstChar === split) {\n return text;\n }\n\n // Reuse rest text as it can\n var restText = text;\n var targetTextLen = targetText.length;\n for (var i = 0; i < targetTextLen; i += 1) {\n if (lower(restText[i]) !== lower(targetText[i])) {\n restText = restText.slice(i);\n break;\n } else if (i === targetTextLen - 1) {\n restText = restText.slice(targetTextLen);\n }\n }\n return restText;\n}\n\n/**\n * Paint targetText into current text:\n * text: little@litest\n * targetText: light\n * => little @light test\n */\nexport function replaceWithMeasure(text, measureConfig) {\n var measureLocation = measureConfig.measureLocation,\n prefix = measureConfig.prefix,\n targetText = measureConfig.targetText,\n selectionStart = measureConfig.selectionStart,\n split = measureConfig.split;\n\n // Before text will append one space if have other text\n var beforeMeasureText = text.slice(0, measureLocation);\n if (beforeMeasureText[beforeMeasureText.length - split.length] === split) {\n beforeMeasureText = beforeMeasureText.slice(0, beforeMeasureText.length - split.length);\n }\n if (beforeMeasureText) {\n beforeMeasureText = \"\".concat(beforeMeasureText).concat(split);\n }\n\n // Cut duplicate string with current targetText\n var restText = reduceText(text.slice(selectionStart), targetText.slice(selectionStart - measureLocation - prefix.length), split);\n if (restText.slice(0, split.length) === split) {\n restText = restText.slice(split.length);\n }\n var connectedStartText = \"\".concat(beforeMeasureText).concat(prefix).concat(targetText).concat(split);\n return {\n text: \"\".concat(connectedStartText).concat(restText),\n selectionLocation: connectedStartText.length\n };\n}\nexport function setInputSelection(input, location) {\n input.setSelectionRange(location, location);\n\n /**\n * Reset caret into view.\n * Since this function always called by user control, it's safe to focus element.\n */\n input.blur();\n input.focus();\n}\nexport function validateSearch(text, split) {\n return !split || text.indexOf(split) === -1;\n}\nexport function filterOption(input, _ref) {\n var _ref$value = _ref.value,\n value = _ref$value === void 0 ? '' : _ref$value;\n var lowerCase = input.toLowerCase();\n return value.toLowerCase().indexOf(lowerCase) !== -1;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"style\", \"prefix\", \"split\", \"notFoundContent\", \"value\", \"defaultValue\", \"children\", \"options\", \"open\", \"validateSearch\", \"filterOption\", \"onChange\", \"onKeyDown\", \"onKeyUp\", \"onPressEnter\", \"onSearch\", \"onSelect\", \"onFocus\", \"onBlur\", \"transitionName\", \"placement\", \"direction\", \"getPopupContainer\", \"dropdownClassName\", \"rows\"],\n _excluded2 = [\"suffix\", \"prefixCls\", \"classes\", \"value\"];\nimport classNames from 'classnames';\nimport { BaseInput } from 'rc-input';\nimport TextArea from 'rc-textarea';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport warning from \"rc-util/es/warning\";\nimport React, { forwardRef, useEffect, useMemo, useRef, useState } from 'react';\nimport useEffectState from \"./hooks/useEffectState\";\nimport KeywordTrigger from \"./KeywordTrigger\";\nimport MentionsContext from \"./MentionsContext\";\nimport Option from \"./Option\";\nimport { filterOption as defaultFilterOption, getBeforeSelectionText, getLastMeasureIndex, replaceWithMeasure, setInputSelection, validateSearch as defaultValidateSearch } from \"./util\";\nvar InternalMentions = /*#__PURE__*/forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-mentions' : _props$prefixCls,\n className = props.className,\n style = props.style,\n _props$prefix = props.prefix,\n prefix = _props$prefix === void 0 ? '@' : _props$prefix,\n _props$split = props.split,\n split = _props$split === void 0 ? ' ' : _props$split,\n _props$notFoundConten = props.notFoundContent,\n notFoundContent = _props$notFoundConten === void 0 ? 'Not Found' : _props$notFoundConten,\n value = props.value,\n defaultValue = props.defaultValue,\n children = props.children,\n options = props.options,\n open = props.open,\n _props$validateSearch = props.validateSearch,\n validateSearch = _props$validateSearch === void 0 ? defaultValidateSearch : _props$validateSearch,\n _props$filterOption = props.filterOption,\n filterOption = _props$filterOption === void 0 ? defaultFilterOption : _props$filterOption,\n onChange = props.onChange,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp,\n onPressEnter = props.onPressEnter,\n onSearch = props.onSearch,\n onSelect = props.onSelect,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n transitionName = props.transitionName,\n placement = props.placement,\n direction = props.direction,\n getPopupContainer = props.getPopupContainer,\n dropdownClassName = props.dropdownClassName,\n _props$rows = props.rows,\n rows = _props$rows === void 0 ? 1 : _props$rows,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedPrefix = useMemo(function () {\n return Array.isArray(prefix) ? prefix : [prefix];\n }, [prefix]);\n\n // =============================== Refs ===============================\n var textareaRef = useRef(null);\n var measureRef = useRef(null);\n var getTextArea = function getTextArea() {\n var _textareaRef$current, _textareaRef$current$;\n return (_textareaRef$current = textareaRef.current) === null || _textareaRef$current === void 0 ? void 0 : (_textareaRef$current$ = _textareaRef$current.resizableTextArea) === null || _textareaRef$current$ === void 0 ? void 0 : _textareaRef$current$.textArea;\n };\n React.useImperativeHandle(ref, function () {\n var _textareaRef$current4, _textareaRef$current5;\n return {\n focus: function focus() {\n var _textareaRef$current2;\n return (_textareaRef$current2 = textareaRef.current) === null || _textareaRef$current2 === void 0 ? void 0 : _textareaRef$current2.focus();\n },\n blur: function blur() {\n var _textareaRef$current3;\n return (_textareaRef$current3 = textareaRef.current) === null || _textareaRef$current3 === void 0 ? void 0 : _textareaRef$current3.blur();\n },\n textarea: (_textareaRef$current4 = textareaRef.current) === null || _textareaRef$current4 === void 0 ? void 0 : (_textareaRef$current5 = _textareaRef$current4.resizableTextArea) === null || _textareaRef$current5 === void 0 ? void 0 : _textareaRef$current5.textArea\n };\n });\n\n // ============================== State ===============================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n measuring = _useState2[0],\n setMeasuring = _useState2[1];\n var _useState3 = useState(''),\n _useState4 = _slicedToArray(_useState3, 2),\n measureText = _useState4[0],\n setMeasureText = _useState4[1];\n var _useState5 = useState(''),\n _useState6 = _slicedToArray(_useState5, 2),\n measurePrefix = _useState6[0],\n setMeasurePrefix = _useState6[1];\n var _useState7 = useState(0),\n _useState8 = _slicedToArray(_useState7, 2),\n measureLocation = _useState8[0],\n setMeasureLocation = _useState8[1];\n var _useState9 = useState(0),\n _useState10 = _slicedToArray(_useState9, 2),\n activeIndex = _useState10[0],\n setActiveIndex = _useState10[1];\n var _useState11 = useState(false),\n _useState12 = _slicedToArray(_useState11, 2),\n isFocus = _useState12[0],\n setIsFocus = _useState12[1];\n\n // ============================== Value ===============================\n var _useMergedState = useMergedState('', {\n defaultValue: defaultValue,\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setMergedValue = _useMergedState2[1];\n\n // =============================== Open ===============================\n useEffect(function () {\n // Sync measure div top with textarea for rc-trigger usage\n if (measuring && measureRef.current) {\n measureRef.current.scrollTop = getTextArea().scrollTop;\n }\n }, [measuring]);\n var _React$useMemo = React.useMemo(function () {\n if (open) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`open` of Mentions is only used for debug usage. Do not use in you production.');\n }\n for (var i = 0; i < mergedPrefix.length; i += 1) {\n var curPrefix = mergedPrefix[i];\n var index = mergedValue.lastIndexOf(curPrefix);\n if (index >= 0) {\n return [true, '', curPrefix, index];\n }\n }\n }\n return [measuring, measureText, measurePrefix, measureLocation];\n }, [open, measuring, mergedPrefix, mergedValue, measureText, measurePrefix, measureLocation]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 4),\n mergedMeasuring = _React$useMemo2[0],\n mergedMeasureText = _React$useMemo2[1],\n mergedMeasurePrefix = _React$useMemo2[2],\n mergedMeasureLocation = _React$useMemo2[3];\n\n // ============================== Option ==============================\n var getOptions = React.useCallback(function (targetMeasureText) {\n var list;\n if (options && options.length > 0) {\n list = options.map(function (item) {\n var _item$key;\n return _objectSpread(_objectSpread({}, item), {}, {\n key: (_item$key = item === null || item === void 0 ? void 0 : item.key) !== null && _item$key !== void 0 ? _item$key : item.value\n });\n });\n } else {\n list = toArray(children).map(function (_ref) {\n var optionProps = _ref.props,\n key = _ref.key;\n return _objectSpread(_objectSpread({}, optionProps), {}, {\n label: optionProps.children,\n key: key || optionProps.value\n });\n });\n }\n return list.filter(function (option) {\n /** Return all result if `filterOption` is false. */\n if (filterOption === false) {\n return true;\n }\n return filterOption(targetMeasureText, option);\n });\n }, [children, options, filterOption]);\n var mergedOptions = React.useMemo(function () {\n return getOptions(mergedMeasureText);\n }, [getOptions, mergedMeasureText]);\n\n // ============================= Measure ==============================\n // Mark that we will reset input selection to target position when user select option\n var onSelectionEffect = useEffectState();\n var startMeasure = function startMeasure(nextMeasureText, nextMeasurePrefix, nextMeasureLocation) {\n setMeasuring(true);\n setMeasureText(nextMeasureText);\n setMeasurePrefix(nextMeasurePrefix);\n setMeasureLocation(nextMeasureLocation);\n setActiveIndex(0);\n };\n var stopMeasure = function stopMeasure(callback) {\n setMeasuring(false);\n setMeasureLocation(0);\n setMeasureText('');\n onSelectionEffect(callback);\n };\n\n // ============================== Change ==============================\n var triggerChange = function triggerChange(nextValue) {\n setMergedValue(nextValue);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue);\n };\n var onInternalChange = function onInternalChange(_ref2) {\n var nextValue = _ref2.target.value;\n triggerChange(nextValue);\n };\n var selectOption = function selectOption(option) {\n var _getTextArea;\n var _option$value = option.value,\n mentionValue = _option$value === void 0 ? '' : _option$value;\n var _replaceWithMeasure = replaceWithMeasure(mergedValue, {\n measureLocation: mergedMeasureLocation,\n targetText: mentionValue,\n prefix: mergedMeasurePrefix,\n selectionStart: (_getTextArea = getTextArea()) === null || _getTextArea === void 0 ? void 0 : _getTextArea.selectionStart,\n split: split\n }),\n text = _replaceWithMeasure.text,\n selectionLocation = _replaceWithMeasure.selectionLocation;\n triggerChange(text);\n stopMeasure(function () {\n // We need restore the selection position\n setInputSelection(getTextArea(), selectionLocation);\n });\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(option, mergedMeasurePrefix);\n };\n\n // ============================= KeyEvent =============================\n // Check if hit the measure keyword\n var onInternalKeyDown = function onInternalKeyDown(event) {\n var which = event.which;\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n\n // Skip if not measuring\n if (!mergedMeasuring) {\n return;\n }\n if (which === KeyCode.UP || which === KeyCode.DOWN) {\n // Control arrow function\n var optionLen = mergedOptions.length;\n var offset = which === KeyCode.UP ? -1 : 1;\n var newActiveIndex = (activeIndex + offset + optionLen) % optionLen;\n setActiveIndex(newActiveIndex);\n event.preventDefault();\n } else if (which === KeyCode.ESC) {\n stopMeasure();\n } else if (which === KeyCode.ENTER) {\n // Measure hit\n event.preventDefault();\n if (!mergedOptions.length) {\n stopMeasure();\n return;\n }\n var _option = mergedOptions[activeIndex];\n selectOption(_option);\n }\n };\n\n /**\n * When to start measure:\n * 1. When user press `prefix`\n * 2. When measureText !== prevMeasureText\n * - If measure hit\n * - If measuring\n *\n * When to stop measure:\n * 1. Selection is out of range\n * 2. Contains `space`\n * 3. ESC or select one\n */\n var onInternalKeyUp = function onInternalKeyUp(event) {\n var key = event.key,\n which = event.which;\n var target = event.target;\n var selectionStartText = getBeforeSelectionText(target);\n var _getLastMeasureIndex = getLastMeasureIndex(selectionStartText, mergedPrefix),\n measureIndex = _getLastMeasureIndex.location,\n nextMeasurePrefix = _getLastMeasureIndex.prefix;\n\n // If the client implements an onKeyUp handler, call it\n onKeyUp === null || onKeyUp === void 0 ? void 0 : onKeyUp(event);\n\n // Skip if match the white key list\n if ([KeyCode.ESC, KeyCode.UP, KeyCode.DOWN, KeyCode.ENTER].indexOf(which) !== -1) {\n return;\n }\n if (measureIndex !== -1) {\n var nextMeasureText = selectionStartText.slice(measureIndex + nextMeasurePrefix.length);\n var validateMeasure = validateSearch(nextMeasureText, split);\n var matchOption = !!getOptions(nextMeasureText).length;\n if (validateMeasure) {\n if (key === nextMeasurePrefix || key === 'Shift' || mergedMeasuring || nextMeasureText !== mergedMeasureText && matchOption) {\n startMeasure(nextMeasureText, nextMeasurePrefix, measureIndex);\n }\n } else if (mergedMeasuring) {\n // Stop if measureText is invalidate\n stopMeasure();\n }\n\n /**\n * We will trigger `onSearch` to developer since they may use for async update.\n * If met `space` means user finished searching.\n */\n if (onSearch && validateMeasure) {\n onSearch(nextMeasureText, nextMeasurePrefix);\n }\n } else if (mergedMeasuring) {\n stopMeasure();\n }\n };\n var onInternalPressEnter = function onInternalPressEnter(event) {\n if (!mergedMeasuring && onPressEnter) {\n onPressEnter(event);\n }\n };\n\n // ============================ Focus Blur ============================\n var focusRef = useRef();\n var onInternalFocus = function onInternalFocus(event) {\n window.clearTimeout(focusRef.current);\n if (!isFocus && event && onFocus) {\n onFocus(event);\n }\n setIsFocus(true);\n };\n var onInternalBlur = function onInternalBlur(event) {\n focusRef.current = window.setTimeout(function () {\n setIsFocus(false);\n stopMeasure();\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);\n }, 0);\n };\n var onDropdownFocus = function onDropdownFocus() {\n onInternalFocus();\n };\n var onDropdownBlur = function onDropdownBlur() {\n onInternalBlur();\n };\n\n // ============================== Render ==============================\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, className),\n style: style\n }, /*#__PURE__*/React.createElement(TextArea, _extends({\n ref: textareaRef,\n value: mergedValue\n }, restProps, {\n rows: rows,\n onChange: onInternalChange,\n onKeyDown: onInternalKeyDown,\n onKeyUp: onInternalKeyUp,\n onPressEnter: onInternalPressEnter,\n onFocus: onInternalFocus,\n onBlur: onInternalBlur\n })), mergedMeasuring && /*#__PURE__*/React.createElement(\"div\", {\n ref: measureRef,\n className: \"\".concat(prefixCls, \"-measure\")\n }, mergedValue.slice(0, mergedMeasureLocation), /*#__PURE__*/React.createElement(MentionsContext.Provider, {\n value: {\n notFoundContent: notFoundContent,\n activeIndex: activeIndex,\n setActiveIndex: setActiveIndex,\n selectOption: selectOption,\n onFocus: onDropdownFocus,\n onBlur: onDropdownBlur\n }\n }, /*#__PURE__*/React.createElement(KeywordTrigger, {\n prefixCls: prefixCls,\n transitionName: transitionName,\n placement: placement,\n direction: direction,\n options: mergedOptions,\n visible: true,\n getPopupContainer: getPopupContainer,\n dropdownClassName: dropdownClassName\n }, /*#__PURE__*/React.createElement(\"span\", null, mergedMeasurePrefix))), mergedValue.slice(mergedMeasureLocation + mergedMeasurePrefix.length)));\n});\nvar Mentions = /*#__PURE__*/forwardRef(function (_ref3, ref) {\n var suffix = _ref3.suffix,\n prefixCls = _ref3.prefixCls,\n classes = _ref3.classes,\n value = _ref3.value,\n rest = _objectWithoutProperties(_ref3, _excluded2);\n return /*#__PURE__*/React.createElement(BaseInput, {\n inputElement: /*#__PURE__*/React.createElement(InternalMentions, _extends({\n prefixCls: prefixCls,\n ref: ref\n }, rest)),\n suffix: suffix,\n prefixCls: prefixCls,\n classes: classes,\n value: value\n });\n});\nMentions.Option = Option;\nexport default Mentions;","import Mentions from \"./Mentions\";\nexport default Mentions;","import { genBasicInputStyle, genDisabledStyle, genPlaceholderStyle, genStatusStyle, initInputToken } from '../../input/style';\nimport { resetComponent, textEllipsis } from '../../style';\nimport { genComponentStyleHook } from '../../theme/internal';\nconst genMentionsStyle = token => {\n const {\n componentCls,\n colorTextDisabled,\n controlItemBgHover,\n controlPaddingHorizontal,\n colorText,\n motionDurationSlow,\n lineHeight,\n controlHeight,\n inputPaddingHorizontal,\n inputPaddingVertical,\n fontSize,\n colorBgElevated,\n paddingXXS,\n borderRadius,\n borderRadiusLG,\n boxShadowSecondary\n } = token;\n const itemPaddingVertical = Math.round((token.controlHeight - token.fontSize * token.lineHeight) / 2);\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genBasicInputStyle(token)), {\n position: 'relative',\n display: 'inline-block',\n height: 'auto',\n padding: 0,\n overflow: 'hidden',\n lineHeight,\n whiteSpace: 'pre-wrap',\n verticalAlign: 'bottom'\n }), genStatusStyle(token, componentCls)), {\n '&-disabled': {\n '> textarea': Object.assign({}, genDisabledStyle(token))\n },\n [`&-affix-wrapper ${componentCls}-suffix`]: {\n position: 'absolute',\n top: 0,\n insetInlineEnd: inputPaddingHorizontal,\n bottom: 0,\n zIndex: 1,\n display: 'inline-flex',\n alignItems: 'center',\n margin: 'auto'\n },\n // ================= Input Area =================\n [`> textarea, ${componentCls}-measure`]: {\n color: colorText,\n boxSizing: 'border-box',\n minHeight: controlHeight - 2,\n margin: 0,\n padding: `${inputPaddingVertical}px ${inputPaddingHorizontal}px`,\n overflow: 'inherit',\n overflowX: 'hidden',\n overflowY: 'auto',\n fontWeight: 'inherit',\n fontSize: 'inherit',\n fontFamily: 'inherit',\n fontStyle: 'inherit',\n fontVariant: 'inherit',\n fontSizeAdjust: 'inherit',\n fontStretch: 'inherit',\n lineHeight: 'inherit',\n direction: 'inherit',\n letterSpacing: 'inherit',\n whiteSpace: 'inherit',\n textAlign: 'inherit',\n verticalAlign: 'top',\n wordWrap: 'break-word',\n wordBreak: 'inherit',\n tabSize: 'inherit'\n },\n '> textarea': Object.assign({\n width: '100%',\n border: 'none',\n outline: 'none',\n resize: 'none',\n backgroundColor: 'inherit'\n }, genPlaceholderStyle(token.colorTextPlaceholder)),\n [`${componentCls}-measure`]: {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n zIndex: -1,\n color: 'transparent',\n pointerEvents: 'none',\n '> span': {\n display: 'inline-block',\n minHeight: '1em'\n }\n },\n // ================== Dropdown ==================\n '&-dropdown': Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: -9999,\n insetInlineStart: -9999,\n zIndex: token.zIndexPopup,\n boxSizing: 'border-box',\n fontSize,\n fontVariant: 'initial',\n padding: paddingXXS,\n backgroundColor: colorBgElevated,\n borderRadius: borderRadiusLG,\n outline: 'none',\n boxShadow: boxShadowSecondary,\n '&-hidden': {\n display: 'none'\n },\n [`${componentCls}-dropdown-menu`]: {\n maxHeight: token.dropdownHeight,\n margin: 0,\n paddingInlineStart: 0,\n overflow: 'auto',\n listStyle: 'none',\n outline: 'none',\n '&-item': Object.assign(Object.assign({}, textEllipsis), {\n position: 'relative',\n display: 'block',\n minWidth: token.controlItemWidth,\n padding: `${itemPaddingVertical}px ${controlPaddingHorizontal}px`,\n color: colorText,\n borderRadius,\n fontWeight: 'normal',\n lineHeight,\n cursor: 'pointer',\n transition: `background ${motionDurationSlow} ease`,\n '&:hover': {\n backgroundColor: controlItemBgHover\n },\n '&-disabled': {\n color: colorTextDisabled,\n cursor: 'not-allowed',\n '&:hover': {\n color: colorTextDisabled,\n backgroundColor: controlItemBgHover,\n cursor: 'not-allowed'\n }\n },\n '&-selected': {\n color: colorText,\n fontWeight: token.fontWeightStrong,\n backgroundColor: controlItemBgHover\n },\n '&-active': {\n backgroundColor: controlItemBgHover\n }\n })\n }\n })\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Mentions', token => {\n const mentionsToken = initInputToken(token);\n return [genMentionsStyle(mentionsToken)];\n}, token => ({\n dropdownHeight: 250,\n controlItemWidth: 100,\n zIndexPopup: token.zIndexPopupBase + 50\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 RcMentions from 'rc-mentions';\nimport { composeRef } from \"rc-util/es/ref\";\n// eslint-disable-next-line import/no-named-as-default\nimport * as React from 'react';\nimport genPurePanel from '../_util/PurePanel';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport { FormItemInputContext } from '../form/context';\nimport Spin from '../spin';\nimport useStyle from './style';\nexport const {\n Option\n} = RcMentions;\nfunction loadingFilterOption() {\n return true;\n}\nconst InternalMentions = (props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n disabled,\n loading,\n filterOption,\n children,\n notFoundContent,\n options,\n status: customStatus,\n popupClassName,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"disabled\", \"loading\", \"filterOption\", \"children\", \"notFoundContent\", \"options\", \"status\", \"popupClassName\", \"style\"]);\n const [focused, setFocused] = React.useState(false);\n const innerRef = React.useRef(null);\n const mergedRef = composeRef(ref, innerRef);\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!children, 'Mentions', '`Mentions.Option` is deprecated. Please use `options` instead.') : void 0;\n }\n const {\n getPrefixCls,\n renderEmpty,\n direction,\n mentions: contextMentions\n } = React.useContext(ConfigContext);\n const {\n status: contextStatus,\n hasFeedback,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n const onFocus = function () {\n if (restProps.onFocus) {\n restProps.onFocus.apply(restProps, arguments);\n }\n setFocused(true);\n };\n const onBlur = function () {\n if (restProps.onBlur) {\n restProps.onBlur.apply(restProps, arguments);\n }\n setFocused(false);\n };\n const notFoundContentEle = React.useMemo(() => {\n if (notFoundContent !== undefined) {\n return notFoundContent;\n }\n return (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Select')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Select\"\n });\n }, [notFoundContent, renderEmpty]);\n const mentionOptions = React.useMemo(() => {\n if (loading) {\n return /*#__PURE__*/React.createElement(Option, {\n value: \"ANTD_SEARCHING\",\n disabled: true\n }, /*#__PURE__*/React.createElement(Spin, {\n size: \"small\"\n }));\n }\n return children;\n }, [loading, children]);\n const mergedOptions = loading ? [{\n value: 'ANTD_SEARCHING',\n disabled: true,\n label: /*#__PURE__*/React.createElement(Spin, {\n size: \"small\"\n })\n }] : options;\n const mentionsfilterOption = loading ? loadingFilterOption : filterOption;\n const prefixCls = getPrefixCls('mentions', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergedClassName = classNames({\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-focused`]: focused,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, getStatusClassNames(prefixCls, mergedStatus), contextMentions === null || contextMentions === void 0 ? void 0 : contextMentions.className, !hasFeedback && className, rootClassName, hashId);\n const mentions = /*#__PURE__*/React.createElement(RcMentions, Object.assign({\n prefixCls: prefixCls,\n notFoundContent: notFoundContentEle,\n className: mergedClassName,\n disabled: disabled,\n direction: direction,\n style: Object.assign(Object.assign({}, contextMentions === null || contextMentions === void 0 ? void 0 : contextMentions.style), style)\n }, restProps, {\n filterOption: mentionsfilterOption,\n onFocus: onFocus,\n onBlur: onBlur,\n dropdownClassName: classNames(popupClassName, rootClassName, hashId),\n ref: mergedRef,\n options: mergedOptions,\n suffix: hasFeedback && feedbackIcon,\n classes: {\n affixWrapper: classNames(hashId, className)\n }\n }), mentionOptions);\n return wrapSSR(mentions);\n};\nconst Mentions = /*#__PURE__*/React.forwardRef(InternalMentions);\nif (process.env.NODE_ENV !== 'production') {\n Mentions.displayName = 'Mentions';\n}\nMentions.Option = Option;\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(Mentions, 'mentions');\nMentions._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nMentions.getMentions = function () {\n let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n let config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n prefix = '@',\n split = ' '\n } = config;\n const prefixList = Array.isArray(prefix) ? prefix : [prefix];\n return value.split(split).map(function () {\n let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n let hitPrefix = null;\n prefixList.some(prefixStr => {\n const startStr = str.slice(0, prefixStr.length);\n if (startStr === prefixStr) {\n hitPrefix = prefixStr;\n return true;\n }\n return false;\n });\n if (hitPrefix !== null) {\n return {\n prefix: hitPrefix,\n value: str.slice(hitPrefix.length)\n };\n }\n return null;\n }).filter(entity => !!entity && !!entity.value);\n};\nexport default Mentions;","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};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\n\n// src/index.tsx\nimport React, { useRef, useEffect, useState } from \"react\";\n\n// src/third-party/qrcodegen/index.ts\n/**\n * @license QR Code generator library (TypeScript)\n * Copyright (c) Project Nayuki.\n * SPDX-License-Identifier: MIT\n */\nvar qrcodegen;\n((qrcodegen2) => {\n const _QrCode = class {\n constructor(version, errorCorrectionLevel, dataCodewords, msk) {\n this.version = version;\n this.errorCorrectionLevel = errorCorrectionLevel;\n this.modules = [];\n this.isFunction = [];\n if (version < _QrCode.MIN_VERSION || version > _QrCode.MAX_VERSION)\n throw new RangeError(\"Version value out of range\");\n if (msk < -1 || msk > 7)\n throw new RangeError(\"Mask value out of range\");\n this.size = version * 4 + 17;\n let row = [];\n for (let i = 0; i < this.size; i++)\n row.push(false);\n for (let i = 0; i < this.size; i++) {\n this.modules.push(row.slice());\n this.isFunction.push(row.slice());\n }\n this.drawFunctionPatterns();\n const allCodewords = this.addEccAndInterleave(dataCodewords);\n this.drawCodewords(allCodewords);\n if (msk == -1) {\n let minPenalty = 1e9;\n for (let i = 0; i < 8; i++) {\n this.applyMask(i);\n this.drawFormatBits(i);\n const penalty = this.getPenaltyScore();\n if (penalty < minPenalty) {\n msk = i;\n minPenalty = penalty;\n }\n this.applyMask(i);\n }\n }\n assert(0 <= msk && msk <= 7);\n this.mask = msk;\n this.applyMask(msk);\n this.drawFormatBits(msk);\n this.isFunction = [];\n }\n static encodeText(text, ecl) {\n const segs = qrcodegen2.QrSegment.makeSegments(text);\n return _QrCode.encodeSegments(segs, ecl);\n }\n static encodeBinary(data, ecl) {\n const seg = qrcodegen2.QrSegment.makeBytes(data);\n return _QrCode.encodeSegments([seg], ecl);\n }\n static encodeSegments(segs, ecl, minVersion = 1, maxVersion = 40, mask = -1, boostEcl = true) {\n if (!(_QrCode.MIN_VERSION <= minVersion && minVersion <= maxVersion && maxVersion <= _QrCode.MAX_VERSION) || mask < -1 || mask > 7)\n throw new RangeError(\"Invalid value\");\n let version;\n let dataUsedBits;\n for (version = minVersion; ; version++) {\n const dataCapacityBits2 = _QrCode.getNumDataCodewords(version, ecl) * 8;\n const usedBits = QrSegment.getTotalBits(segs, version);\n if (usedBits <= dataCapacityBits2) {\n dataUsedBits = usedBits;\n break;\n }\n if (version >= maxVersion)\n throw new RangeError(\"Data too long\");\n }\n for (const newEcl of [_QrCode.Ecc.MEDIUM, _QrCode.Ecc.QUARTILE, _QrCode.Ecc.HIGH]) {\n if (boostEcl && dataUsedBits <= _QrCode.getNumDataCodewords(version, newEcl) * 8)\n ecl = newEcl;\n }\n let bb = [];\n for (const seg of segs) {\n appendBits(seg.mode.modeBits, 4, bb);\n appendBits(seg.numChars, seg.mode.numCharCountBits(version), bb);\n for (const b of seg.getData())\n bb.push(b);\n }\n assert(bb.length == dataUsedBits);\n const dataCapacityBits = _QrCode.getNumDataCodewords(version, ecl) * 8;\n assert(bb.length <= dataCapacityBits);\n appendBits(0, Math.min(4, dataCapacityBits - bb.length), bb);\n appendBits(0, (8 - bb.length % 8) % 8, bb);\n assert(bb.length % 8 == 0);\n for (let padByte = 236; bb.length < dataCapacityBits; padByte ^= 236 ^ 17)\n appendBits(padByte, 8, bb);\n let dataCodewords = [];\n while (dataCodewords.length * 8 < bb.length)\n dataCodewords.push(0);\n bb.forEach((b, i) => dataCodewords[i >>> 3] |= b << 7 - (i & 7));\n return new _QrCode(version, ecl, dataCodewords, mask);\n }\n getModule(x, y) {\n return 0 <= x && x < this.size && 0 <= y && y < this.size && this.modules[y][x];\n }\n getModules() {\n return this.modules;\n }\n drawFunctionPatterns() {\n for (let i = 0; i < this.size; i++) {\n this.setFunctionModule(6, i, i % 2 == 0);\n this.setFunctionModule(i, 6, i % 2 == 0);\n }\n this.drawFinderPattern(3, 3);\n this.drawFinderPattern(this.size - 4, 3);\n this.drawFinderPattern(3, this.size - 4);\n const alignPatPos = this.getAlignmentPatternPositions();\n const numAlign = alignPatPos.length;\n for (let i = 0; i < numAlign; i++) {\n for (let j = 0; j < numAlign; j++) {\n if (!(i == 0 && j == 0 || i == 0 && j == numAlign - 1 || i == numAlign - 1 && j == 0))\n this.drawAlignmentPattern(alignPatPos[i], alignPatPos[j]);\n }\n }\n this.drawFormatBits(0);\n this.drawVersion();\n }\n drawFormatBits(mask) {\n const data = this.errorCorrectionLevel.formatBits << 3 | mask;\n let rem = data;\n for (let i = 0; i < 10; i++)\n rem = rem << 1 ^ (rem >>> 9) * 1335;\n const bits = (data << 10 | rem) ^ 21522;\n assert(bits >>> 15 == 0);\n for (let i = 0; i <= 5; i++)\n this.setFunctionModule(8, i, getBit(bits, i));\n this.setFunctionModule(8, 7, getBit(bits, 6));\n this.setFunctionModule(8, 8, getBit(bits, 7));\n this.setFunctionModule(7, 8, getBit(bits, 8));\n for (let i = 9; i < 15; i++)\n this.setFunctionModule(14 - i, 8, getBit(bits, i));\n for (let i = 0; i < 8; i++)\n this.setFunctionModule(this.size - 1 - i, 8, getBit(bits, i));\n for (let i = 8; i < 15; i++)\n this.setFunctionModule(8, this.size - 15 + i, getBit(bits, i));\n this.setFunctionModule(8, this.size - 8, true);\n }\n drawVersion() {\n if (this.version < 7)\n return;\n let rem = this.version;\n for (let i = 0; i < 12; i++)\n rem = rem << 1 ^ (rem >>> 11) * 7973;\n const bits = this.version << 12 | rem;\n assert(bits >>> 18 == 0);\n for (let i = 0; i < 18; i++) {\n const color = getBit(bits, i);\n const a = this.size - 11 + i % 3;\n const b = Math.floor(i / 3);\n this.setFunctionModule(a, b, color);\n this.setFunctionModule(b, a, color);\n }\n }\n drawFinderPattern(x, y) {\n for (let dy = -4; dy <= 4; dy++) {\n for (let dx = -4; dx <= 4; dx++) {\n const dist = Math.max(Math.abs(dx), Math.abs(dy));\n const xx = x + dx;\n const yy = y + dy;\n if (0 <= xx && xx < this.size && 0 <= yy && yy < this.size)\n this.setFunctionModule(xx, yy, dist != 2 && dist != 4);\n }\n }\n }\n drawAlignmentPattern(x, y) {\n for (let dy = -2; dy <= 2; dy++) {\n for (let dx = -2; dx <= 2; dx++)\n this.setFunctionModule(x + dx, y + dy, Math.max(Math.abs(dx), Math.abs(dy)) != 1);\n }\n }\n setFunctionModule(x, y, isDark) {\n this.modules[y][x] = isDark;\n this.isFunction[y][x] = true;\n }\n addEccAndInterleave(data) {\n const ver = this.version;\n const ecl = this.errorCorrectionLevel;\n if (data.length != _QrCode.getNumDataCodewords(ver, ecl))\n throw new RangeError(\"Invalid argument\");\n const numBlocks = _QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n const blockEccLen = _QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver];\n const rawCodewords = Math.floor(_QrCode.getNumRawDataModules(ver) / 8);\n const numShortBlocks = numBlocks - rawCodewords % numBlocks;\n const shortBlockLen = Math.floor(rawCodewords / numBlocks);\n let blocks = [];\n const rsDiv = _QrCode.reedSolomonComputeDivisor(blockEccLen);\n for (let i = 0, k = 0; i < numBlocks; i++) {\n let dat = data.slice(k, k + shortBlockLen - blockEccLen + (i < numShortBlocks ? 0 : 1));\n k += dat.length;\n const ecc = _QrCode.reedSolomonComputeRemainder(dat, rsDiv);\n if (i < numShortBlocks)\n dat.push(0);\n blocks.push(dat.concat(ecc));\n }\n let result = [];\n for (let i = 0; i < blocks[0].length; i++) {\n blocks.forEach((block, j) => {\n if (i != shortBlockLen - blockEccLen || j >= numShortBlocks)\n result.push(block[i]);\n });\n }\n assert(result.length == rawCodewords);\n return result;\n }\n drawCodewords(data) {\n if (data.length != Math.floor(_QrCode.getNumRawDataModules(this.version) / 8))\n throw new RangeError(\"Invalid argument\");\n let i = 0;\n for (let right = this.size - 1; right >= 1; right -= 2) {\n if (right == 6)\n right = 5;\n for (let vert = 0; vert < this.size; vert++) {\n for (let j = 0; j < 2; j++) {\n const x = right - j;\n const upward = (right + 1 & 2) == 0;\n const y = upward ? this.size - 1 - vert : vert;\n if (!this.isFunction[y][x] && i < data.length * 8) {\n this.modules[y][x] = getBit(data[i >>> 3], 7 - (i & 7));\n i++;\n }\n }\n }\n }\n assert(i == data.length * 8);\n }\n applyMask(mask) {\n if (mask < 0 || mask > 7)\n throw new RangeError(\"Mask value out of range\");\n for (let y = 0; y < this.size; y++) {\n for (let x = 0; x < this.size; x++) {\n let invert;\n switch (mask) {\n case 0:\n invert = (x + y) % 2 == 0;\n break;\n case 1:\n invert = y % 2 == 0;\n break;\n case 2:\n invert = x % 3 == 0;\n break;\n case 3:\n invert = (x + y) % 3 == 0;\n break;\n case 4:\n invert = (Math.floor(x / 3) + Math.floor(y / 2)) % 2 == 0;\n break;\n case 5:\n invert = x * y % 2 + x * y % 3 == 0;\n break;\n case 6:\n invert = (x * y % 2 + x * y % 3) % 2 == 0;\n break;\n case 7:\n invert = ((x + y) % 2 + x * y % 3) % 2 == 0;\n break;\n default:\n throw new Error(\"Unreachable\");\n }\n if (!this.isFunction[y][x] && invert)\n this.modules[y][x] = !this.modules[y][x];\n }\n }\n }\n getPenaltyScore() {\n let result = 0;\n for (let y = 0; y < this.size; y++) {\n let runColor = false;\n let runX = 0;\n let runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (let x = 0; x < this.size; x++) {\n if (this.modules[y][x] == runColor) {\n runX++;\n if (runX == 5)\n result += _QrCode.PENALTY_N1;\n else if (runX > 5)\n result++;\n } else {\n this.finderPenaltyAddHistory(runX, runHistory);\n if (!runColor)\n result += this.finderPenaltyCountPatterns(runHistory) * _QrCode.PENALTY_N3;\n runColor = this.modules[y][x];\n runX = 1;\n }\n }\n result += this.finderPenaltyTerminateAndCount(runColor, runX, runHistory) * _QrCode.PENALTY_N3;\n }\n for (let x = 0; x < this.size; x++) {\n let runColor = false;\n let runY = 0;\n let runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (let y = 0; y < this.size; y++) {\n if (this.modules[y][x] == runColor) {\n runY++;\n if (runY == 5)\n result += _QrCode.PENALTY_N1;\n else if (runY > 5)\n result++;\n } else {\n this.finderPenaltyAddHistory(runY, runHistory);\n if (!runColor)\n result += this.finderPenaltyCountPatterns(runHistory) * _QrCode.PENALTY_N3;\n runColor = this.modules[y][x];\n runY = 1;\n }\n }\n result += this.finderPenaltyTerminateAndCount(runColor, runY, runHistory) * _QrCode.PENALTY_N3;\n }\n for (let y = 0; y < this.size - 1; y++) {\n for (let x = 0; x < this.size - 1; x++) {\n const color = this.modules[y][x];\n if (color == this.modules[y][x + 1] && color == this.modules[y + 1][x] && color == this.modules[y + 1][x + 1])\n result += _QrCode.PENALTY_N2;\n }\n }\n let dark = 0;\n for (const row of this.modules)\n dark = row.reduce((sum, color) => sum + (color ? 1 : 0), dark);\n const total = this.size * this.size;\n const k = Math.ceil(Math.abs(dark * 20 - total * 10) / total) - 1;\n assert(0 <= k && k <= 9);\n result += k * _QrCode.PENALTY_N4;\n assert(0 <= result && result <= 2568888);\n return result;\n }\n getAlignmentPatternPositions() {\n if (this.version == 1)\n return [];\n else {\n const numAlign = Math.floor(this.version / 7) + 2;\n const step = this.version == 32 ? 26 : Math.ceil((this.version * 4 + 4) / (numAlign * 2 - 2)) * 2;\n let result = [6];\n for (let pos = this.size - 7; result.length < numAlign; pos -= step)\n result.splice(1, 0, pos);\n return result;\n }\n }\n static getNumRawDataModules(ver) {\n if (ver < _QrCode.MIN_VERSION || ver > _QrCode.MAX_VERSION)\n throw new RangeError(\"Version number out of range\");\n let result = (16 * ver + 128) * ver + 64;\n if (ver >= 2) {\n const numAlign = Math.floor(ver / 7) + 2;\n result -= (25 * numAlign - 10) * numAlign - 55;\n if (ver >= 7)\n result -= 36;\n }\n assert(208 <= result && result <= 29648);\n return result;\n }\n static getNumDataCodewords(ver, ecl) {\n return Math.floor(_QrCode.getNumRawDataModules(ver) / 8) - _QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver] * _QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n }\n static reedSolomonComputeDivisor(degree) {\n if (degree < 1 || degree > 255)\n throw new RangeError(\"Degree out of range\");\n let result = [];\n for (let i = 0; i < degree - 1; i++)\n result.push(0);\n result.push(1);\n let root = 1;\n for (let i = 0; i < degree; i++) {\n for (let j = 0; j < result.length; j++) {\n result[j] = _QrCode.reedSolomonMultiply(result[j], root);\n if (j + 1 < result.length)\n result[j] ^= result[j + 1];\n }\n root = _QrCode.reedSolomonMultiply(root, 2);\n }\n return result;\n }\n static reedSolomonComputeRemainder(data, divisor) {\n let result = divisor.map((_) => 0);\n for (const b of data) {\n const factor = b ^ result.shift();\n result.push(0);\n divisor.forEach((coef, i) => result[i] ^= _QrCode.reedSolomonMultiply(coef, factor));\n }\n return result;\n }\n static reedSolomonMultiply(x, y) {\n if (x >>> 8 != 0 || y >>> 8 != 0)\n throw new RangeError(\"Byte out of range\");\n let z = 0;\n for (let i = 7; i >= 0; i--) {\n z = z << 1 ^ (z >>> 7) * 285;\n z ^= (y >>> i & 1) * x;\n }\n assert(z >>> 8 == 0);\n return z;\n }\n finderPenaltyCountPatterns(runHistory) {\n const n = runHistory[1];\n assert(n <= this.size * 3);\n const core = n > 0 && runHistory[2] == n && runHistory[3] == n * 3 && runHistory[4] == n && runHistory[5] == n;\n return (core && runHistory[0] >= n * 4 && runHistory[6] >= n ? 1 : 0) + (core && runHistory[6] >= n * 4 && runHistory[0] >= n ? 1 : 0);\n }\n finderPenaltyTerminateAndCount(currentRunColor, currentRunLength, runHistory) {\n if (currentRunColor) {\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n currentRunLength = 0;\n }\n currentRunLength += this.size;\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n return this.finderPenaltyCountPatterns(runHistory);\n }\n finderPenaltyAddHistory(currentRunLength, runHistory) {\n if (runHistory[0] == 0)\n currentRunLength += this.size;\n runHistory.pop();\n runHistory.unshift(currentRunLength);\n }\n };\n let QrCode = _QrCode;\n QrCode.MIN_VERSION = 1;\n QrCode.MAX_VERSION = 40;\n QrCode.PENALTY_N1 = 3;\n QrCode.PENALTY_N2 = 3;\n QrCode.PENALTY_N3 = 40;\n QrCode.PENALTY_N4 = 10;\n QrCode.ECC_CODEWORDS_PER_BLOCK = [\n [-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],\n [-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28],\n [-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],\n [-1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30]\n ];\n QrCode.NUM_ERROR_CORRECTION_BLOCKS = [\n [-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25],\n [-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49],\n [-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68],\n [-1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81]\n ];\n qrcodegen2.QrCode = QrCode;\n function appendBits(val, len, bb) {\n if (len < 0 || len > 31 || val >>> len != 0)\n throw new RangeError(\"Value out of range\");\n for (let i = len - 1; i >= 0; i--)\n bb.push(val >>> i & 1);\n }\n function getBit(x, i) {\n return (x >>> i & 1) != 0;\n }\n function assert(cond) {\n if (!cond)\n throw new Error(\"Assertion error\");\n }\n const _QrSegment = class {\n constructor(mode, numChars, bitData) {\n this.mode = mode;\n this.numChars = numChars;\n this.bitData = bitData;\n if (numChars < 0)\n throw new RangeError(\"Invalid argument\");\n this.bitData = bitData.slice();\n }\n static makeBytes(data) {\n let bb = [];\n for (const b of data)\n appendBits(b, 8, bb);\n return new _QrSegment(_QrSegment.Mode.BYTE, data.length, bb);\n }\n static makeNumeric(digits) {\n if (!_QrSegment.isNumeric(digits))\n throw new RangeError(\"String contains non-numeric characters\");\n let bb = [];\n for (let i = 0; i < digits.length; ) {\n const n = Math.min(digits.length - i, 3);\n appendBits(parseInt(digits.substr(i, n), 10), n * 3 + 1, bb);\n i += n;\n }\n return new _QrSegment(_QrSegment.Mode.NUMERIC, digits.length, bb);\n }\n static makeAlphanumeric(text) {\n if (!_QrSegment.isAlphanumeric(text))\n throw new RangeError(\"String contains unencodable characters in alphanumeric mode\");\n let bb = [];\n let i;\n for (i = 0; i + 2 <= text.length; i += 2) {\n let temp = _QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)) * 45;\n temp += _QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i + 1));\n appendBits(temp, 11, bb);\n }\n if (i < text.length)\n appendBits(_QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)), 6, bb);\n return new _QrSegment(_QrSegment.Mode.ALPHANUMERIC, text.length, bb);\n }\n static makeSegments(text) {\n if (text == \"\")\n return [];\n else if (_QrSegment.isNumeric(text))\n return [_QrSegment.makeNumeric(text)];\n else if (_QrSegment.isAlphanumeric(text))\n return [_QrSegment.makeAlphanumeric(text)];\n else\n return [_QrSegment.makeBytes(_QrSegment.toUtf8ByteArray(text))];\n }\n static makeEci(assignVal) {\n let bb = [];\n if (assignVal < 0)\n throw new RangeError(\"ECI assignment value out of range\");\n else if (assignVal < 1 << 7)\n appendBits(assignVal, 8, bb);\n else if (assignVal < 1 << 14) {\n appendBits(2, 2, bb);\n appendBits(assignVal, 14, bb);\n } else if (assignVal < 1e6) {\n appendBits(6, 3, bb);\n appendBits(assignVal, 21, bb);\n } else\n throw new RangeError(\"ECI assignment value out of range\");\n return new _QrSegment(_QrSegment.Mode.ECI, 0, bb);\n }\n static isNumeric(text) {\n return _QrSegment.NUMERIC_REGEX.test(text);\n }\n static isAlphanumeric(text) {\n return _QrSegment.ALPHANUMERIC_REGEX.test(text);\n }\n getData() {\n return this.bitData.slice();\n }\n static getTotalBits(segs, version) {\n let result = 0;\n for (const seg of segs) {\n const ccbits = seg.mode.numCharCountBits(version);\n if (seg.numChars >= 1 << ccbits)\n return Infinity;\n result += 4 + ccbits + seg.bitData.length;\n }\n return result;\n }\n static toUtf8ByteArray(str) {\n str = encodeURI(str);\n let result = [];\n for (let i = 0; i < str.length; i++) {\n if (str.charAt(i) != \"%\")\n result.push(str.charCodeAt(i));\n else {\n result.push(parseInt(str.substr(i + 1, 2), 16));\n i += 2;\n }\n }\n return result;\n }\n };\n let QrSegment = _QrSegment;\n QrSegment.NUMERIC_REGEX = /^[0-9]*$/;\n QrSegment.ALPHANUMERIC_REGEX = /^[A-Z0-9 $%*+.\\/:-]*$/;\n QrSegment.ALPHANUMERIC_CHARSET = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:\";\n qrcodegen2.QrSegment = QrSegment;\n})(qrcodegen || (qrcodegen = {}));\n((qrcodegen2) => {\n let QrCode;\n ((QrCode2) => {\n const _Ecc = class {\n constructor(ordinal, formatBits) {\n this.ordinal = ordinal;\n this.formatBits = formatBits;\n }\n };\n let Ecc = _Ecc;\n Ecc.LOW = new _Ecc(0, 1);\n Ecc.MEDIUM = new _Ecc(1, 0);\n Ecc.QUARTILE = new _Ecc(2, 3);\n Ecc.HIGH = new _Ecc(3, 2);\n QrCode2.Ecc = Ecc;\n })(QrCode = qrcodegen2.QrCode || (qrcodegen2.QrCode = {}));\n})(qrcodegen || (qrcodegen = {}));\n((qrcodegen2) => {\n let QrSegment;\n ((QrSegment2) => {\n const _Mode = class {\n constructor(modeBits, numBitsCharCount) {\n this.modeBits = modeBits;\n this.numBitsCharCount = numBitsCharCount;\n }\n numCharCountBits(ver) {\n return this.numBitsCharCount[Math.floor((ver + 7) / 17)];\n }\n };\n let Mode = _Mode;\n Mode.NUMERIC = new _Mode(1, [10, 12, 14]);\n Mode.ALPHANUMERIC = new _Mode(2, [9, 11, 13]);\n Mode.BYTE = new _Mode(4, [8, 16, 16]);\n Mode.KANJI = new _Mode(8, [8, 10, 12]);\n Mode.ECI = new _Mode(7, [0, 0, 0]);\n QrSegment2.Mode = Mode;\n })(QrSegment = qrcodegen2.QrSegment || (qrcodegen2.QrSegment = {}));\n})(qrcodegen || (qrcodegen = {}));\nvar qrcodegen_default = qrcodegen;\n\n// src/index.tsx\n/**\n * @license qrcode.react\n * Copyright (c) Paul O'Shannessy\n * SPDX-License-Identifier: ISC\n */\nvar ERROR_LEVEL_MAP = {\n L: qrcodegen_default.QrCode.Ecc.LOW,\n M: qrcodegen_default.QrCode.Ecc.MEDIUM,\n Q: qrcodegen_default.QrCode.Ecc.QUARTILE,\n H: qrcodegen_default.QrCode.Ecc.HIGH\n};\nvar DEFAULT_SIZE = 128;\nvar DEFAULT_LEVEL = \"L\";\nvar DEFAULT_BGCOLOR = \"#FFFFFF\";\nvar DEFAULT_FGCOLOR = \"#000000\";\nvar DEFAULT_INCLUDEMARGIN = false;\nvar MARGIN_SIZE = 4;\nvar DEFAULT_IMG_SCALE = 0.1;\nfunction generatePath(modules, margin = 0) {\n const ops = [];\n modules.forEach(function(row, y) {\n let start = null;\n row.forEach(function(cell, x) {\n if (!cell && start !== null) {\n ops.push(`M${start + margin} ${y + margin}h${x - start}v1H${start + margin}z`);\n start = null;\n return;\n }\n if (x === row.length - 1) {\n if (!cell) {\n return;\n }\n if (start === null) {\n ops.push(`M${x + margin},${y + margin} h1v1H${x + margin}z`);\n } else {\n ops.push(`M${start + margin},${y + margin} h${x + 1 - start}v1H${start + margin}z`);\n }\n return;\n }\n if (cell && start === null) {\n start = x;\n }\n });\n });\n return ops.join(\"\");\n}\nfunction excavateModules(modules, excavation) {\n return modules.slice().map((row, y) => {\n if (y < excavation.y || y >= excavation.y + excavation.h) {\n return row;\n }\n return row.map((cell, x) => {\n if (x < excavation.x || x >= excavation.x + excavation.w) {\n return cell;\n }\n return false;\n });\n });\n}\nfunction getImageSettings(cells, size, includeMargin, imageSettings) {\n if (imageSettings == null) {\n return null;\n }\n const margin = includeMargin ? MARGIN_SIZE : 0;\n const numCells = cells.length + margin * 2;\n const defaultSize = Math.floor(size * DEFAULT_IMG_SCALE);\n const scale = numCells / size;\n const w = (imageSettings.width || defaultSize) * scale;\n const h = (imageSettings.height || defaultSize) * scale;\n const x = imageSettings.x == null ? cells.length / 2 - w / 2 : imageSettings.x * scale;\n const y = imageSettings.y == null ? cells.length / 2 - h / 2 : imageSettings.y * scale;\n let excavation = null;\n if (imageSettings.excavate) {\n let floorX = Math.floor(x);\n let floorY = Math.floor(y);\n let ceilW = Math.ceil(w + x - floorX);\n let ceilH = Math.ceil(h + y - floorY);\n excavation = { x: floorX, y: floorY, w: ceilW, h: ceilH };\n }\n return { x, y, h, w, excavation };\n}\nvar SUPPORTS_PATH2D = function() {\n try {\n new Path2D().addPath(new Path2D());\n } catch (e) {\n return false;\n }\n return true;\n}();\nfunction QRCodeCanvas(props) {\n const _a = props, {\n value,\n size = DEFAULT_SIZE,\n level = DEFAULT_LEVEL,\n bgColor = DEFAULT_BGCOLOR,\n fgColor = DEFAULT_FGCOLOR,\n includeMargin = DEFAULT_INCLUDEMARGIN,\n style,\n imageSettings\n } = _a, otherProps = __objRest(_a, [\n \"value\",\n \"size\",\n \"level\",\n \"bgColor\",\n \"fgColor\",\n \"includeMargin\",\n \"style\",\n \"imageSettings\"\n ]);\n const imgSrc = imageSettings == null ? void 0 : imageSettings.src;\n const _canvas = useRef(null);\n const _image = useRef(null);\n const [isImgLoaded, setIsImageLoaded] = useState(false);\n useEffect(() => {\n if (_canvas.current != null) {\n const canvas = _canvas.current;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n return;\n }\n let cells = qrcodegen_default.QrCode.encodeText(value, ERROR_LEVEL_MAP[level]).getModules();\n const margin = includeMargin ? MARGIN_SIZE : 0;\n const numCells = cells.length + margin * 2;\n const calculatedImageSettings = getImageSettings(cells, size, includeMargin, imageSettings);\n const image = _image.current;\n const haveImageToRender = calculatedImageSettings != null && image !== null && image.complete && image.naturalHeight !== 0 && image.naturalWidth !== 0;\n if (haveImageToRender) {\n if (calculatedImageSettings.excavation != null) {\n cells = excavateModules(cells, calculatedImageSettings.excavation);\n }\n }\n const pixelRatio = window.devicePixelRatio || 1;\n canvas.height = canvas.width = size * pixelRatio;\n const scale = size / numCells * pixelRatio;\n ctx.scale(scale, scale);\n ctx.fillStyle = bgColor;\n ctx.fillRect(0, 0, numCells, numCells);\n ctx.fillStyle = fgColor;\n if (SUPPORTS_PATH2D) {\n ctx.fill(new Path2D(generatePath(cells, margin)));\n } else {\n cells.forEach(function(row, rdx) {\n row.forEach(function(cell, cdx) {\n if (cell) {\n ctx.fillRect(cdx + margin, rdx + margin, 1, 1);\n }\n });\n });\n }\n if (haveImageToRender) {\n ctx.drawImage(image, calculatedImageSettings.x + margin, calculatedImageSettings.y + margin, calculatedImageSettings.w, calculatedImageSettings.h);\n }\n }\n });\n useEffect(() => {\n setIsImageLoaded(false);\n }, [imgSrc]);\n const canvasStyle = __spreadValues({ height: size, width: size }, style);\n let img = null;\n if (imgSrc != null) {\n img = /* @__PURE__ */ React.createElement(\"img\", {\n src: imgSrc,\n key: imgSrc,\n style: { display: \"none\" },\n onLoad: () => {\n setIsImageLoaded(true);\n },\n ref: _image\n });\n }\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"canvas\", __spreadValues({\n style: canvasStyle,\n height: size,\n width: size,\n ref: _canvas\n }, otherProps)), img);\n}\nfunction QRCodeSVG(props) {\n const _a = props, {\n value,\n size = DEFAULT_SIZE,\n level = DEFAULT_LEVEL,\n bgColor = DEFAULT_BGCOLOR,\n fgColor = DEFAULT_FGCOLOR,\n includeMargin = DEFAULT_INCLUDEMARGIN,\n imageSettings\n } = _a, otherProps = __objRest(_a, [\n \"value\",\n \"size\",\n \"level\",\n \"bgColor\",\n \"fgColor\",\n \"includeMargin\",\n \"imageSettings\"\n ]);\n let cells = qrcodegen_default.QrCode.encodeText(value, ERROR_LEVEL_MAP[level]).getModules();\n const margin = includeMargin ? MARGIN_SIZE : 0;\n const numCells = cells.length + margin * 2;\n const calculatedImageSettings = getImageSettings(cells, size, includeMargin, imageSettings);\n let image = null;\n if (imageSettings != null && calculatedImageSettings != null) {\n if (calculatedImageSettings.excavation != null) {\n cells = excavateModules(cells, calculatedImageSettings.excavation);\n }\n image = /* @__PURE__ */ React.createElement(\"image\", {\n xlinkHref: imageSettings.src,\n height: calculatedImageSettings.h,\n width: calculatedImageSettings.w,\n x: calculatedImageSettings.x + margin,\n y: calculatedImageSettings.y + margin,\n preserveAspectRatio: \"none\"\n });\n }\n const fgPath = generatePath(cells, margin);\n return /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({\n height: size,\n width: size,\n viewBox: `0 0 ${numCells} ${numCells}`\n }, otherProps), /* @__PURE__ */ React.createElement(\"path\", {\n fill: bgColor,\n d: `M0,0 h${numCells}v${numCells}H0z`,\n shapeRendering: \"crispEdges\"\n }), /* @__PURE__ */ React.createElement(\"path\", {\n fill: fgColor,\n d: fgPath,\n shapeRendering: \"crispEdges\"\n }), image);\n}\nvar QRCode = (props) => {\n const _a = props, { renderAs } = _a, otherProps = __objRest(_a, [\"renderAs\"]);\n if (renderAs === \"svg\") {\n return /* @__PURE__ */ React.createElement(QRCodeSVG, __spreadValues({}, otherProps));\n }\n return /* @__PURE__ */ React.createElement(QRCodeCanvas, __spreadValues({}, otherProps));\n};\nexport {\n QRCodeCanvas,\n QRCodeSVG,\n QRCode as default\n};\n","import { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genQRCodeStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: token.paddingSM,\n backgroundColor: token.colorWhite,\n borderRadius: token.borderRadiusLG,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`,\n position: 'relative',\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n [`& > ${componentCls}-mask`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n zIndex: 10,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n width: '100%',\n height: '100%',\n color: token.colorText,\n lineHeight: token.lineHeight,\n background: token.QRCodeMaskBackgroundColor,\n textAlign: 'center',\n [`& > ${componentCls}-expired`]: {\n color: token.QRCodeExpiredTextColor\n }\n },\n '&-icon': {\n marginBlockEnd: token.marginXS,\n fontSize: token.controlHeight\n }\n }),\n [`${componentCls}-borderless`]: {\n borderColor: 'transparent'\n }\n };\n};\nexport default genComponentStyleHook('QRCode', token => genQRCodeStyle(mergeToken(token, {\n QRCodeExpiredTextColor: 'rgba(0, 0, 0, 0.88)',\n QRCodeMaskBackgroundColor: 'rgba(255, 255, 255, 0.96)'\n})));","'use client';\n\nimport ReloadOutlined from \"@ant-design/icons/es/icons/ReloadOutlined\";\nimport classNames from 'classnames';\nimport { QRCodeCanvas, QRCodeSVG } from 'qrcode.react';\nimport React, { useContext } from 'react';\nimport warning from '../_util/warning';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport { useLocale } from '../locale';\nimport Spin from '../spin';\nimport theme from '../theme';\nimport useStyle from './style/index';\nconst {\n useToken\n} = theme;\nconst QRCode = props => {\n const {\n token\n } = useToken();\n const {\n value,\n type = 'canvas',\n icon = '',\n size = 160,\n iconSize = 40,\n color = token.colorText,\n errorLevel = 'M',\n status = 'active',\n bordered = true,\n onRefresh,\n style,\n className,\n rootClassName,\n prefixCls: customizePrefixCls,\n bgColor = 'transparent'\n } = props;\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('qrcode', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const imageSettings = {\n src: icon,\n x: undefined,\n y: undefined,\n height: iconSize,\n width: iconSize,\n excavate: true\n };\n const qrCodeProps = {\n value,\n size: size - (token.paddingSM + token.lineWidth) * 2,\n level: errorLevel,\n bgColor,\n fgColor: color,\n imageSettings: icon ? imageSettings : undefined\n };\n const [locale] = useLocale('QRCode');\n if (!value) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'QRCode', 'need to receive `value` props') : void 0;\n }\n return null;\n }\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(icon && errorLevel === 'L'), 'QRCode', 'ErrorLevel `L` is not recommended to be used with `icon`, for scanning result would be affected by low level.') : void 0;\n }\n const cls = classNames(prefixCls, className, rootClassName, hashId, {\n [`${prefixCls}-borderless`]: !bordered\n });\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n style: Object.assign(Object.assign({}, style), {\n width: size,\n height: size,\n backgroundColor: bgColor\n }),\n className: cls\n }, status !== 'active' && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-mask`\n }, status === 'loading' && /*#__PURE__*/React.createElement(Spin, null), status === 'expired' && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", {\n className: `${prefixCls}-expired`\n }, locale === null || locale === void 0 ? void 0 : locale.expired), onRefresh && /*#__PURE__*/React.createElement(Button, {\n type: \"link\",\n icon: /*#__PURE__*/React.createElement(ReloadOutlined, null),\n onClick: onRefresh\n }, locale === null || locale === void 0 ? void 0 : locale.refresh))), type === 'canvas' ? /*#__PURE__*/React.createElement(QRCodeCanvas, Object.assign({}, qrCodeProps)) : /*#__PURE__*/React.createElement(QRCodeSVG, Object.assign({}, qrCodeProps))));\n};\nif (process.env.NODE_ENV !== 'production') {\n QRCode.displayName = 'QRCode';\n}\nexport default QRCode;","import * as React from 'react';\nconst StatisticNumber = props => {\n const {\n value,\n formatter,\n precision,\n decimalSeparator,\n groupSeparator = '',\n prefixCls\n } = props;\n let valueNode;\n if (typeof formatter === 'function') {\n // Customize formatter\n valueNode = formatter(value);\n } else {\n // Internal formatter\n const val = String(value);\n const cells = val.match(/^(-?)(\\d*)(\\.(\\d+))?$/);\n // Process if illegal number\n if (!cells || val === '-') {\n valueNode = val;\n } else {\n const negative = cells[1];\n let int = cells[2] || '0';\n let decimal = cells[4] || '';\n int = int.replace(/\\B(?=(\\d{3})+(?!\\d))/g, groupSeparator);\n if (typeof precision === 'number') {\n decimal = decimal.padEnd(precision, '0').slice(0, precision > 0 ? precision : 0);\n }\n if (decimal) {\n decimal = `${decimalSeparator}${decimal}`;\n }\n valueNode = [/*#__PURE__*/React.createElement(\"span\", {\n key: \"int\",\n className: `${prefixCls}-content-value-int`\n }, negative, int), decimal && /*#__PURE__*/React.createElement(\"span\", {\n key: \"decimal\",\n className: `${prefixCls}-content-value-decimal`\n }, decimal)];\n }\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-content-value`\n }, valueNode);\n};\nexport default StatisticNumber;","import { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genStatisticStyle = token => {\n const {\n componentCls,\n marginXXS,\n padding,\n colorTextDescription,\n titleFontSize,\n colorTextHeading,\n contentFontSize,\n fontFamily\n } = token;\n return {\n [`${componentCls}`]: Object.assign(Object.assign({}, resetComponent(token)), {\n [`${componentCls}-title`]: {\n marginBottom: marginXXS,\n color: colorTextDescription,\n fontSize: titleFontSize\n },\n [`${componentCls}-skeleton`]: {\n paddingTop: padding\n },\n [`${componentCls}-content`]: {\n color: colorTextHeading,\n fontSize: contentFontSize,\n fontFamily,\n [`${componentCls}-content-value`]: {\n display: 'inline-block',\n direction: 'ltr'\n },\n [`${componentCls}-content-prefix, ${componentCls}-content-suffix`]: {\n display: 'inline-block'\n },\n [`${componentCls}-content-prefix`]: {\n marginInlineEnd: marginXXS\n },\n [`${componentCls}-content-suffix`]: {\n marginInlineStart: marginXXS\n }\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Statistic', token => {\n const statisticToken = mergeToken(token, {});\n return [genStatisticStyle(statisticToken)];\n}, token => {\n const {\n fontSizeHeading3,\n fontSize\n } = token;\n return {\n titleFontSize: fontSize,\n contentFontSize: fontSizeHeading3\n };\n});","import classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Skeleton from '../skeleton';\nimport StatisticNumber from './Number';\nimport useStyle from './style';\nconst Statistic = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n valueStyle,\n value = 0,\n title,\n valueRender,\n prefix,\n suffix,\n loading = false,\n onMouseEnter,\n onMouseLeave,\n decimalSeparator = '.',\n groupSeparator = ','\n } = props;\n const {\n getPrefixCls,\n direction,\n statistic\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('statistic', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const valueNode = /*#__PURE__*/React.createElement(StatisticNumber, Object.assign({\n decimalSeparator: decimalSeparator,\n groupSeparator: groupSeparator,\n prefixCls: prefixCls\n }, props, {\n value: value\n }));\n const cls = classNames(prefixCls, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, statistic === null || statistic === void 0 ? void 0 : statistic.className, className, rootClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: Object.assign(Object.assign({}, statistic === null || statistic === void 0 ? void 0 : statistic.style), style),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, title), /*#__PURE__*/React.createElement(Skeleton, {\n paragraph: false,\n loading: loading,\n className: `${prefixCls}-skeleton`\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: valueStyle,\n className: `${prefixCls}-content`\n }, prefix && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-content-prefix`\n }, prefix), valueRender ? valueRender(valueNode) : valueNode, suffix && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-content-suffix`\n }, suffix)))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Statistic.displayName = 'Statistic';\n}\nexport default Statistic;","// Countdown\nconst timeUnits = [['Y', 1000 * 60 * 60 * 24 * 365], ['M', 1000 * 60 * 60 * 24 * 30], ['D', 1000 * 60 * 60 * 24], ['H', 1000 * 60 * 60], ['m', 1000 * 60], ['s', 1000], ['S', 1] // million seconds\n];\n\nexport function formatTimeStr(duration, format) {\n let leftDuration = duration;\n const escapeRegex = /\\[[^\\]]*]/g;\n const keepList = (format.match(escapeRegex) || []).map(str => str.slice(1, -1));\n const templateText = format.replace(escapeRegex, '[]');\n const replacedText = timeUnits.reduce((current, _ref) => {\n let [name, unit] = _ref;\n if (current.includes(name)) {\n const value = Math.floor(leftDuration / unit);\n leftDuration -= value * unit;\n return current.replace(new RegExp(`${name}+`, 'g'), match => {\n const len = match.length;\n return value.toString().padStart(len, '0');\n });\n }\n return current;\n }, templateText);\n let index = 0;\n return replacedText.replace(escapeRegex, () => {\n const match = keepList[index];\n index += 1;\n return match;\n });\n}\nexport function formatCountdown(value, config) {\n const {\n format = ''\n } = config;\n const target = new Date(value).getTime();\n const current = Date.now();\n const diff = Math.max(target - current, 0);\n return formatTimeStr(diff, format);\n}","import * as React from 'react';\nimport useForceUpdate from '../_util/hooks/useForceUpdate';\nimport { cloneElement } from '../_util/reactNode';\nimport Statistic from './Statistic';\nimport { formatCountdown } from './utils';\nconst REFRESH_INTERVAL = 1000 / 30;\nfunction getTime(value) {\n return new Date(value).getTime();\n}\nconst Countdown = props => {\n const {\n value,\n format = 'HH:mm:ss',\n onChange,\n onFinish\n } = props;\n const forceUpdate = useForceUpdate();\n const countdown = React.useRef(null);\n const stopTimer = () => {\n onFinish === null || onFinish === void 0 ? void 0 : onFinish();\n if (countdown.current) {\n clearInterval(countdown.current);\n countdown.current = null;\n }\n };\n const syncTimer = () => {\n const timestamp = getTime(value);\n if (timestamp >= Date.now()) {\n countdown.current = setInterval(() => {\n forceUpdate();\n onChange === null || onChange === void 0 ? void 0 : onChange(timestamp - Date.now());\n if (timestamp < Date.now()) {\n stopTimer();\n }\n }, REFRESH_INTERVAL);\n }\n };\n React.useEffect(() => {\n syncTimer();\n return () => {\n if (countdown.current) {\n clearInterval(countdown.current);\n countdown.current = null;\n }\n };\n }, [value]);\n const formatter = (formatValue, config) => formatCountdown(formatValue, Object.assign(Object.assign({}, config), {\n format\n }));\n const valueRender = node => cloneElement(node, {\n title: undefined\n });\n return /*#__PURE__*/React.createElement(Statistic, Object.assign({}, props, {\n valueRender: valueRender,\n formatter: formatter\n }));\n};\nexport default /*#__PURE__*/React.memo(Countdown);","'use client';\n\nimport Countdown from './Countdown';\nimport Statistic from './Statistic';\nStatistic.Countdown = Countdown;\nexport default Statistic;","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 TimelineItem = _a => {\n var {\n prefixCls: customizePrefixCls,\n className,\n color = 'blue',\n dot,\n pending = false,\n position /** Dead, but do not pass in
  • {\n var {\n prefixCls,\n className,\n pending = false,\n children,\n items,\n rootClassName,\n reverse = false,\n direction,\n hashId,\n pendingDot,\n mode = ''\n } = _a,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"pending\", \"children\", \"items\", \"rootClassName\", \"reverse\", \"direction\", \"hashId\", \"pendingDot\", \"mode\"]);\n const getPositionCls = (position, idx) => {\n if (mode === 'alternate') {\n if (position === 'right') return `${prefixCls}-item-right`;\n if (position === 'left') return `${prefixCls}-item-left`;\n return idx % 2 === 0 ? `${prefixCls}-item-left` : `${prefixCls}-item-right`;\n }\n if (mode === 'left') return `${prefixCls}-item-left`;\n if (mode === 'right') return `${prefixCls}-item-right`;\n if (position === 'right') return `${prefixCls}-item-right`;\n return '';\n };\n const mergedItems = _toConsumableArray(items || []);\n const pendingNode = typeof pending === 'boolean' ? null : pending;\n if (pending) {\n mergedItems.push({\n pending: !!pending,\n dot: pendingDot || /*#__PURE__*/React.createElement(LoadingOutlined, null),\n children: pendingNode\n });\n }\n if (reverse) {\n mergedItems.reverse();\n }\n const itemsCount = mergedItems.length;\n const lastCls = `${prefixCls}-item-last`;\n const itemsList = mergedItems.filter(item => !!item).map((item, idx) => {\n var _a;\n const pendingClass = idx === itemsCount - 2 ? lastCls : '';\n const readyClass = idx === itemsCount - 1 ? lastCls : '';\n const {\n className: itemClassName\n } = item,\n itemProps = __rest(item, [\"className\"]);\n return /*#__PURE__*/React.createElement(TimelineItem, Object.assign({}, itemProps, {\n className: classNames([itemClassName, !reverse && !!pending ? pendingClass : readyClass, getPositionCls((_a = item === null || item === void 0 ? void 0 : item.position) !== null && _a !== void 0 ? _a : '', idx)]),\n /* eslint-disable-next-line react/no-array-index-key */\n key: (item === null || item === void 0 ? void 0 : item.key) || idx\n }));\n });\n const hasLabelItem = mergedItems.some(item => !!(item === null || item === void 0 ? void 0 : item.label));\n const classString = classNames(prefixCls, {\n [`${prefixCls}-pending`]: !!pending,\n [`${prefixCls}-reverse`]: !!reverse,\n [`${prefixCls}-${mode}`]: !!mode && !hasLabelItem,\n [`${prefixCls}-label`]: hasLabelItem,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId);\n return /*#__PURE__*/React.createElement(\"ul\", Object.assign({}, restProps, {\n className: classString\n }), itemsList);\n};\nexport default TimelineItemList;","import toArray from \"rc-util/es/Children/toArray\";\nfunction useItems(items, children) {\n if (items && Array.isArray(items)) return items;\n return toArray(children).map(ele => {\n var _a, _b;\n return Object.assign({\n children: (_b = (_a = ele === null || ele === void 0 ? void 0 : ele.props) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : ''\n }, ele.props);\n });\n}\nexport default useItems;","import { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genTimelineStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n margin: 0,\n padding: 0,\n listStyle: 'none',\n [`${componentCls}-item`]: {\n position: 'relative',\n margin: 0,\n paddingBottom: token.itemPaddingBottom,\n fontSize: token.fontSize,\n listStyle: 'none',\n '&-tail': {\n position: 'absolute',\n insetBlockStart: token.itemHeadSize,\n insetInlineStart: (token.itemHeadSize - token.tailWidth) / 2,\n height: `calc(100% - ${token.itemHeadSize}px)`,\n borderInlineStart: `${token.tailWidth}px ${token.lineType} ${token.tailColor}`\n },\n '&-pending': {\n [`${componentCls}-item-head`]: {\n fontSize: token.fontSizeSM,\n backgroundColor: 'transparent'\n },\n [`${componentCls}-item-tail`]: {\n display: 'none'\n }\n },\n '&-head': {\n position: 'absolute',\n width: token.itemHeadSize,\n height: token.itemHeadSize,\n backgroundColor: token.dotBg,\n border: `${token.dotBorderWidth}px ${token.lineType} transparent`,\n borderRadius: '50%',\n '&-blue': {\n color: token.colorPrimary,\n borderColor: token.colorPrimary\n },\n '&-red': {\n color: token.colorError,\n borderColor: token.colorError\n },\n '&-green': {\n color: token.colorSuccess,\n borderColor: token.colorSuccess\n },\n '&-gray': {\n color: token.colorTextDisabled,\n borderColor: token.colorTextDisabled\n }\n },\n '&-head-custom': {\n position: 'absolute',\n insetBlockStart: token.itemHeadSize / 2,\n insetInlineStart: token.itemHeadSize / 2,\n width: 'auto',\n height: 'auto',\n marginBlockStart: 0,\n paddingBlock: token.customHeadPaddingVertical,\n lineHeight: 1,\n textAlign: 'center',\n border: 0,\n borderRadius: 0,\n transform: `translate(-50%, -50%)`\n },\n '&-content': {\n position: 'relative',\n insetBlockStart: -(token.fontSize * token.lineHeight - token.fontSize) + token.lineWidth,\n marginInlineStart: token.margin + token.itemHeadSize,\n marginInlineEnd: 0,\n marginBlockStart: 0,\n marginBlockEnd: 0,\n wordBreak: 'break-word'\n },\n '&-last': {\n [`> ${componentCls}-item-tail`]: {\n display: 'none'\n },\n [`> ${componentCls}-item-content`]: {\n minHeight: token.controlHeightLG * 1.2\n }\n }\n },\n [`&${componentCls}-alternate,\n &${componentCls}-right,\n &${componentCls}-label`]: {\n [`${componentCls}-item`]: {\n '&-tail, &-head, &-head-custom': {\n insetInlineStart: '50%'\n },\n '&-head': {\n marginInlineStart: `-${token.marginXXS}px`,\n '&-custom': {\n marginInlineStart: token.tailWidth / 2\n }\n },\n '&-left': {\n [`${componentCls}-item-content`]: {\n insetInlineStart: `calc(50% - ${token.marginXXS}px)`,\n width: `calc(50% - ${token.marginSM}px)`,\n textAlign: 'start'\n }\n },\n '&-right': {\n [`${componentCls}-item-content`]: {\n width: `calc(50% - ${token.marginSM}px)`,\n margin: 0,\n textAlign: 'end'\n }\n }\n }\n },\n [`&${componentCls}-right`]: {\n [`${componentCls}-item-right`]: {\n [`${componentCls}-item-tail,\n ${componentCls}-item-head,\n ${componentCls}-item-head-custom`]: {\n insetInlineStart: `calc(100% - ${(token.itemHeadSize + token.tailWidth) / 2}px)`\n },\n [`${componentCls}-item-content`]: {\n width: `calc(100% - ${token.itemHeadSize + token.marginXS}px)`\n }\n }\n },\n [`&${componentCls}-pending\n ${componentCls}-item-last\n ${componentCls}-item-tail`]: {\n display: 'block',\n height: `calc(100% - ${token.margin}px)`,\n borderInlineStart: `${token.tailWidth}px dotted ${token.tailColor}`\n },\n [`&${componentCls}-reverse\n ${componentCls}-item-last\n ${componentCls}-item-tail`]: {\n display: 'none'\n },\n [`&${componentCls}-reverse ${componentCls}-item-pending`]: {\n [`${componentCls}-item-tail`]: {\n insetBlockStart: token.margin,\n display: 'block',\n height: `calc(100% - ${token.margin}px)`,\n borderInlineStart: `${token.tailWidth}px dotted ${token.tailColor}`\n },\n [`${componentCls}-item-content`]: {\n minHeight: token.controlHeightLG * 1.2\n }\n },\n [`&${componentCls}-label`]: {\n [`${componentCls}-item-label`]: {\n position: 'absolute',\n insetBlockStart: -(token.fontSize * token.lineHeight - token.fontSize) + token.tailWidth,\n width: `calc(50% - ${token.marginSM}px)`,\n textAlign: 'end'\n },\n [`${componentCls}-item-right`]: {\n [`${componentCls}-item-label`]: {\n insetInlineStart: `calc(50% + ${token.marginSM}px)`,\n width: `calc(50% - ${token.marginSM}px)`,\n textAlign: 'start'\n }\n }\n },\n // ====================== RTL =======================\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-item-head-custom`]: {\n transform: `translate(50%, -50%)`\n }\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Timeline', token => {\n const timeLineToken = mergeToken(token, {\n itemHeadSize: 10,\n customHeadPaddingVertical: token.paddingXXS,\n paddingInlineEnd: 2\n });\n return [genTimelineStyle(timeLineToken)];\n}, token => ({\n tailColor: token.colorSplit,\n tailWidth: token.lineWidthBold,\n dotBorderWidth: token.wireframe ? token.lineWidthBold : token.lineWidth * 3,\n dotBg: token.colorBgContainer,\n itemPaddingBottom: token.padding * 1.25\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 warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport TimelineItem from './TimelineItem';\nimport TimelineItemList from './TimelineItemList';\nimport useItems from './useItems';\n// CSSINJS\nimport useStyle from './style';\nconst Timeline = props => {\n const {\n getPrefixCls,\n direction,\n timeline\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n children,\n items,\n className,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"children\", \"items\", \"className\", \"style\"]);\n const prefixCls = getPrefixCls('timeline', customizePrefixCls);\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!children, 'Timeline', '`Timeline.Item` is deprecated. Please use `items` instead.') : void 0;\n }\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergedItems = useItems(items, children);\n return wrapSSR( /*#__PURE__*/React.createElement(TimelineItemList, Object.assign({}, restProps, {\n className: classNames(timeline === null || timeline === void 0 ? void 0 : timeline.className, className),\n style: Object.assign(Object.assign({}, timeline === null || timeline === void 0 ? void 0 : timeline.style), style),\n prefixCls: prefixCls,\n direction: direction,\n items: mergedItems,\n hashId: hashId\n })));\n};\nTimeline.Item = TimelineItem;\nif (process.env.NODE_ENV !== 'production') {\n Timeline.displayName = 'Timeline';\n}\nexport default Timeline;","'use client';\n\nimport Timeline from './Timeline';\nexport default Timeline;","export function isInViewPort(element) {\n var viewWidth = window.innerWidth || document.documentElement.clientWidth;\n var viewHeight = window.innerHeight || document.documentElement.clientHeight;\n var _element$getBoundingC = element.getBoundingClientRect(),\n top = _element$getBoundingC.top,\n right = _element$getBoundingC.right,\n bottom = _element$getBoundingC.bottom,\n left = _element$getBoundingC.left;\n return top >= 0 && left >= 0 && right <= viewWidth && bottom <= viewHeight;\n}\nexport function getPlacement(targetElement, placement, stepPlacement) {\n var _ref;\n return (_ref = stepPlacement !== null && stepPlacement !== void 0 ? stepPlacement : placement) !== null && _ref !== void 0 ? _ref : targetElement === null ? 'center' : 'bottom';\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useMemo } from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { isInViewPort } from \"../util\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nexport default function useTarget(target, open, gap, scrollIntoViewOptions) {\n // ========================= Target =========================\n // We trade `undefined` as not get target by function yet.\n // `null` as empty target.\n var _useState = useState(undefined),\n _useState2 = _slicedToArray(_useState, 2),\n targetElement = _useState2[0],\n setTargetElement = _useState2[1];\n useLayoutEffect(function () {\n var nextElement = typeof target === 'function' ? target() : target;\n setTargetElement(nextElement || null);\n });\n\n // ========================= Align ==========================\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n posInfo = _useState4[0],\n setPosInfo = _useState4[1];\n var updatePos = useEvent(function () {\n if (targetElement) {\n // Exist target element. We should scroll and get target position\n if (!isInViewPort(targetElement) && open) {\n targetElement.scrollIntoView(scrollIntoViewOptions);\n }\n var _targetElement$getBou = targetElement.getBoundingClientRect(),\n left = _targetElement$getBou.left,\n top = _targetElement$getBou.top,\n width = _targetElement$getBou.width,\n height = _targetElement$getBou.height;\n var nextPosInfo = {\n left: left,\n top: top,\n width: width,\n height: height,\n radius: 0\n };\n setPosInfo(function (origin) {\n if (JSON.stringify(origin) !== JSON.stringify(nextPosInfo)) {\n return nextPosInfo;\n }\n return origin;\n });\n } else {\n // Not exist target which means we just show in center\n setPosInfo(null);\n }\n });\n useLayoutEffect(function () {\n updatePos();\n // update when window resize\n window.addEventListener('resize', updatePos);\n return function () {\n window.removeEventListener('resize', updatePos);\n };\n }, [targetElement, open, updatePos]);\n\n // ======================== PosInfo =========================\n var mergedPosInfo = useMemo(function () {\n if (!posInfo) {\n return posInfo;\n }\n var gapOffset = (gap === null || gap === void 0 ? void 0 : gap.offset) || 6;\n var gapRadius = (gap === null || gap === void 0 ? void 0 : gap.radius) || 2;\n return {\n left: posInfo.left - gapOffset,\n top: posInfo.top - gapOffset,\n width: posInfo.width + gapOffset * 2,\n height: posInfo.height + gapOffset * 2,\n radius: gapRadius\n };\n }, [posInfo, gap]);\n return [mergedPosInfo, targetElement];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport Portal from '@rc-component/portal';\nimport useId from \"rc-util/es/hooks/useId\";\nvar COVER_PROPS = {\n fill: 'transparent',\n pointerEvents: 'auto'\n};\nvar Mask = function Mask(props) {\n var prefixCls = props.prefixCls,\n rootClassName = props.rootClassName,\n pos = props.pos,\n showMask = props.showMask,\n _props$style = props.style,\n style = _props$style === void 0 ? {} : _props$style,\n _props$fill = props.fill,\n fill = _props$fill === void 0 ? \"rgba(0,0,0,0.5)\" : _props$fill,\n open = props.open,\n animated = props.animated,\n zIndex = props.zIndex;\n var id = useId();\n var maskId = \"\".concat(prefixCls, \"-mask-\").concat(id);\n var mergedAnimated = _typeof(animated) === 'object' ? animated === null || animated === void 0 ? void 0 : animated.placeholder : animated;\n return /*#__PURE__*/React.createElement(Portal, {\n open: open,\n autoLock: true\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-mask\"), rootClassName),\n style: _objectSpread({\n position: 'fixed',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n zIndex: zIndex,\n pointerEvents: 'none'\n }, style)\n }, showMask ? /*#__PURE__*/React.createElement(\"svg\", {\n style: {\n width: '100%',\n height: '100%'\n }\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"mask\", {\n id: maskId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: \"0\",\n y: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n fill: \"white\"\n }), pos && /*#__PURE__*/React.createElement(\"rect\", {\n x: pos.left,\n y: pos.top,\n rx: pos.radius,\n width: pos.width,\n height: pos.height,\n fill: \"black\",\n className: mergedAnimated ? \"\".concat(prefixCls, \"-placeholder-animated\") : ''\n }))), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"0\",\n y: \"0\",\n width: \"100%\",\n height: \"100%\",\n fill: fill,\n mask: \"url(#\".concat(maskId, \")\")\n }), pos && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", _extends({}, COVER_PROPS, {\n x: \"0\",\n y: \"0\",\n width: \"100%\",\n height: pos.top\n })), /*#__PURE__*/React.createElement(\"rect\", _extends({}, COVER_PROPS, {\n x: \"0\",\n y: \"0\",\n width: pos.left,\n height: \"100%\"\n })), /*#__PURE__*/React.createElement(\"rect\", _extends({}, COVER_PROPS, {\n x: \"0\",\n y: pos.top + pos.height,\n width: \"100%\",\n height: \"calc(100vh - \".concat(pos.top + pos.height, \"px)\")\n })), /*#__PURE__*/React.createElement(\"rect\", _extends({}, COVER_PROPS, {\n x: pos.left + pos.width,\n y: \"0\",\n width: \"calc(100vw - \".concat(pos.left + pos.width, \"px)\"),\n height: \"100%\"\n })))) : null));\n};\nexport default Mask;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar basePlacements = {\n left: {\n points: ['cr', 'cl'],\n offset: [-8, 0]\n },\n right: {\n points: ['cl', 'cr'],\n offset: [8, 0]\n },\n top: {\n points: ['bc', 'tc'],\n offset: [0, -8]\n },\n bottom: {\n points: ['tc', 'bc'],\n offset: [0, 8]\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -8]\n },\n leftTop: {\n points: ['tr', 'tl'],\n offset: [-8, 0]\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -8]\n },\n rightTop: {\n points: ['tl', 'tr'],\n offset: [8, 0]\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 8]\n },\n rightBottom: {\n points: ['bl', 'br'],\n offset: [8, 0]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 8]\n },\n leftBottom: {\n points: ['br', 'bl'],\n offset: [-8, 0]\n }\n};\nexport function getPlacements() {\n var arrowPointAtCenter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var placements = {};\n Object.keys(basePlacements).forEach(function (key) {\n placements[key] = _objectSpread(_objectSpread({}, basePlacements[key]), {}, {\n autoArrow: arrowPointAtCenter,\n targetOffset: targetOffset\n });\n });\n return placements;\n}\nexport var placements = getPlacements();","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nexport default function DefaultPanel(props) {\n var prefixCls = props.prefixCls,\n current = props.current,\n total = props.total,\n title = props.title,\n description = props.description,\n onClose = props.onClose,\n onPrev = props.onPrev,\n onNext = props.onNext,\n onFinish = props.onFinish,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), className)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\")\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onClose,\n \"aria-label\": \"Close\",\n className: \"\".concat(prefixCls, \"-close\")\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, \"\\xD7\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, title)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, description), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-sliders\")\n }, total > 1 ? _toConsumableArray(Array.from({\n length: total\n }).keys()).map(function (item, index) {\n return /*#__PURE__*/React.createElement(\"span\", {\n key: item,\n className: index === current ? 'active' : ''\n });\n }) : null), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-buttons\")\n }, current !== 0 ? /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-prev-btn\"),\n onClick: onPrev\n }, \"Prev\") : null, current === total - 1 ? /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-finish-btn\"),\n onClick: onFinish\n }, \"Finish\") : /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-next-btn\"),\n onClick: onNext\n }, \"Next\")))));\n}","import * as React from 'react';\nimport DefaultPanel from \"./DefaultPanel\";\nvar TourStep = function TourStep(props) {\n var current = props.current,\n renderPanel = props.renderPanel;\n return /*#__PURE__*/React.createElement(React.Fragment, null, typeof renderPanel === 'function' ? renderPanel(props, current) : /*#__PURE__*/React.createElement(DefaultPanel, props));\n};\nexport default TourStep;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\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\", \"steps\", \"defaultCurrent\", \"current\", \"onChange\", \"onClose\", \"onFinish\", \"open\", \"mask\", \"arrow\", \"rootClassName\", \"placement\", \"renderPanel\", \"gap\", \"animated\", \"scrollIntoViewOptions\", \"zIndex\"];\nimport * as React from 'react';\nimport Portal from '@rc-component/portal';\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport useTarget from \"./hooks/useTarget\";\nimport Mask from \"./Mask\";\nimport { getPlacements } from \"./placements\";\nimport TourStep from \"./TourStep\";\nimport { getPlacement } from \"./util\";\nvar CENTER_PLACEHOLDER = {\n left: '50%',\n top: '50%',\n width: 1,\n height: 1\n};\nvar Tour = function Tour(props) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tour' : _props$prefixCls,\n _props$steps = props.steps,\n steps = _props$steps === void 0 ? [] : _props$steps,\n defaultCurrent = props.defaultCurrent,\n current = props.current,\n onChange = props.onChange,\n onClose = props.onClose,\n _onFinish = props.onFinish,\n open = props.open,\n _props$mask = props.mask,\n mask = _props$mask === void 0 ? true : _props$mask,\n _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? true : _props$arrow,\n rootClassName = props.rootClassName,\n placement = props.placement,\n renderPanel = props.renderPanel,\n gap = props.gap,\n animated = props.animated,\n _props$scrollIntoView = props.scrollIntoViewOptions,\n scrollIntoViewOptions = _props$scrollIntoView === void 0 ? true : _props$scrollIntoView,\n _props$zIndex = props.zIndex,\n zIndex = _props$zIndex === void 0 ? 1001 : _props$zIndex,\n restProps = _objectWithoutProperties(props, _excluded);\n var triggerRef = React.useRef();\n var _useMergedState = useMergedState(0, {\n value: current,\n defaultValue: defaultCurrent\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedCurrent = _useMergedState2[0],\n setMergedCurrent = _useMergedState2[1];\n var _useMergedState3 = useMergedState(undefined, {\n value: open,\n postState: function postState(origin) {\n return mergedCurrent < 0 || mergedCurrent >= steps.length ? false : origin !== null && origin !== void 0 ? origin : true;\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedOpen = _useMergedState4[0],\n setMergedOpen = _useMergedState4[1];\n var openRef = React.useRef(mergedOpen);\n useLayoutEffect(function () {\n if (mergedOpen && !openRef.current) {\n setMergedCurrent(0);\n }\n openRef.current = mergedOpen;\n }, [mergedOpen]);\n var _ref = steps[mergedCurrent] || {},\n target = _ref.target,\n stepPlacement = _ref.placement,\n stepStyle = _ref.style,\n stepArrow = _ref.arrow,\n stepClassName = _ref.className,\n stepMask = _ref.mask,\n stepScrollIntoViewOptions = _ref.scrollIntoViewOptions;\n var mergedMask = mergedOpen && (stepMask !== null && stepMask !== void 0 ? stepMask : mask);\n var mergedScrollIntoViewOptions = stepScrollIntoViewOptions !== null && stepScrollIntoViewOptions !== void 0 ? stepScrollIntoViewOptions : scrollIntoViewOptions;\n var _useTarget = useTarget(target, open, gap, mergedScrollIntoViewOptions),\n _useTarget2 = _slicedToArray(_useTarget, 2),\n posInfo = _useTarget2[0],\n targetElement = _useTarget2[1];\n var mergedPlacement = getPlacement(targetElement, placement, stepPlacement);\n\n // ========================= arrow =========================\n var mergedArrow = targetElement ? typeof stepArrow === 'undefined' ? arrow : stepArrow : false;\n var arrowPointAtCenter = _typeof(mergedArrow) === 'object' ? mergedArrow.pointAtCenter : false;\n useLayoutEffect(function () {\n var _triggerRef$current;\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.forceAlign();\n }, [arrowPointAtCenter, mergedCurrent]);\n\n // ========================= Change =========================\n var onInternalChange = function onInternalChange(nextCurrent) {\n setMergedCurrent(nextCurrent);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextCurrent);\n };\n\n // ========================= Render =========================\n // Skip if not init yet\n if (targetElement === undefined) {\n return null;\n }\n var handleClose = function handleClose() {\n setMergedOpen(false);\n onClose === null || onClose === void 0 ? void 0 : onClose(mergedCurrent);\n };\n var getPopupElement = function getPopupElement() {\n return /*#__PURE__*/React.createElement(TourStep, _extends({\n arrow: mergedArrow,\n key: \"content\",\n prefixCls: prefixCls,\n total: steps.length,\n renderPanel: renderPanel,\n onPrev: function onPrev() {\n onInternalChange(mergedCurrent - 1);\n },\n onNext: function onNext() {\n onInternalChange(mergedCurrent + 1);\n },\n onClose: handleClose,\n current: mergedCurrent,\n onFinish: function onFinish() {\n handleClose();\n _onFinish === null || _onFinish === void 0 ? void 0 : _onFinish();\n }\n }, steps[mergedCurrent]));\n };\n var mergedShowMask = typeof mergedMask === 'boolean' ? mergedMask : !!mergedMask;\n var mergedMaskStyle = typeof mergedMask === 'boolean' ? undefined : mergedMask;\n\n // when targetElement is not exist, use body as triggerDOMNode\n var getTriggerDOMNode = function getTriggerDOMNode(node) {\n return node || targetElement || document.body;\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Mask, {\n zIndex: zIndex,\n prefixCls: prefixCls,\n pos: posInfo,\n showMask: mergedShowMask,\n style: mergedMaskStyle === null || mergedMaskStyle === void 0 ? void 0 : mergedMaskStyle.style,\n fill: mergedMaskStyle === null || mergedMaskStyle === void 0 ? void 0 : mergedMaskStyle.color,\n open: mergedOpen,\n animated: animated,\n rootClassName: rootClassName\n }), /*#__PURE__*/React.createElement(Trigger, _extends({\n builtinPlacements: getPlacements(arrowPointAtCenter)\n }, restProps, {\n ref: triggerRef,\n popupStyle: stepStyle,\n popupPlacement: mergedPlacement,\n popupVisible: mergedOpen,\n popupClassName: classNames(rootClassName, stepClassName),\n prefixCls: prefixCls,\n popup: getPopupElement,\n forceRender: false,\n destroyPopupOnHide: true,\n zIndex: zIndex,\n getTriggerDOMNode: getTriggerDOMNode,\n arrow: !!mergedArrow\n }), /*#__PURE__*/React.createElement(Portal, {\n open: mergedOpen,\n autoLock: true\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(rootClassName, \"\".concat(prefixCls, \"-target-placeholder\")),\n style: _objectSpread(_objectSpread({}, posInfo || CENTER_PLACEHOLDER), {}, {\n position: 'fixed',\n pointerEvents: 'none'\n })\n }))));\n};\nexport default Tour;","import Tour from \"./Tour\";\nexport default Tour;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport Button from '../button';\nimport { useLocale } from '../locale';\nimport defaultLocale from '../locale/en_US';\nfunction isValidNode(node) {\n return node !== undefined && node !== null;\n}\nconst TourPanel = _ref => {\n let {\n stepProps,\n current,\n type,\n indicatorsRender\n } = _ref;\n var _a, _b;\n const {\n prefixCls,\n total = 1,\n title,\n onClose,\n onPrev,\n onNext,\n onFinish,\n cover,\n description,\n nextButtonProps,\n prevButtonProps,\n type: stepType,\n className\n } = stepProps;\n const mergedType = stepType !== null && stepType !== void 0 ? stepType : type;\n const isLastStep = current === total - 1;\n const prevBtnClick = () => {\n var _a;\n onPrev === null || onPrev === void 0 ? void 0 : onPrev();\n (_a = prevButtonProps === null || prevButtonProps === void 0 ? void 0 : prevButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(prevButtonProps);\n };\n const nextBtnClick = () => {\n var _a;\n if (isLastStep) {\n onFinish === null || onFinish === void 0 ? void 0 : onFinish();\n } else {\n onNext === null || onNext === void 0 ? void 0 : onNext();\n }\n (_a = nextButtonProps === null || nextButtonProps === void 0 ? void 0 : nextButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(nextButtonProps);\n };\n const headerNode = isValidNode(title) ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-header`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, title)) : null;\n const descriptionNode = isValidNode(description) ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-description`\n }, description) : null;\n const coverNode = isValidNode(cover) ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-cover`\n }, cover) : null;\n let mergeIndicatorNode;\n if (indicatorsRender) {\n mergeIndicatorNode = indicatorsRender(current, total);\n } else {\n mergeIndicatorNode = _toConsumableArray(Array.from({\n length: total\n }).keys()).map((stepItem, index) => /*#__PURE__*/React.createElement(\"span\", {\n key: stepItem,\n className: classNames(index === current && `${prefixCls}-indicator-active`, `${prefixCls}-indicator`)\n }));\n }\n const mainBtnType = mergedType === 'primary' ? 'default' : 'primary';\n const secondaryBtnProps = {\n type: 'default',\n ghost: mergedType === 'primary'\n };\n const [contextLocale] = useLocale('Tour', defaultLocale.Tour);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(className, `${prefixCls}-content`)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inner`\n }, /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close`,\n onClick: onClose\n }), coverNode, headerNode, descriptionNode, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-footer`\n }, total > 1 && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-indicators`\n }, mergeIndicatorNode), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-buttons`\n }, current !== 0 ? /*#__PURE__*/React.createElement(Button, Object.assign({}, secondaryBtnProps, prevButtonProps, {\n onClick: prevBtnClick,\n size: \"small\",\n className: classNames(`${prefixCls}-prev-btn`, prevButtonProps === null || prevButtonProps === void 0 ? void 0 : prevButtonProps.className)\n }), (_a = prevButtonProps === null || prevButtonProps === void 0 ? void 0 : prevButtonProps.children) !== null && _a !== void 0 ? _a : contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.Previous) : null, /*#__PURE__*/React.createElement(Button, Object.assign({\n type: mainBtnType\n }, nextButtonProps, {\n onClick: nextBtnClick,\n size: \"small\",\n className: classNames(`${prefixCls}-next-btn`, nextButtonProps === null || nextButtonProps === void 0 ? void 0 : nextButtonProps.className)\n }), (_b = nextButtonProps === null || nextButtonProps === void 0 ? void 0 : nextButtonProps.children) !== null && _b !== void 0 ? _b : isLastStep ? contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.Finish : contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.Next)))));\n};\nexport default TourPanel;","import { TinyColor } from '@ctrl/tinycolor';\nimport { resetComponent } from '../../style';\nimport getArrowStyle, { MAX_VERTICAL_CONTENT_RADIUS } from '../../style/placementArrow';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n lineHeight,\n padding,\n paddingXS,\n borderRadius,\n borderRadiusXS,\n colorPrimary,\n colorText,\n colorFill,\n indicatorHeight,\n indicatorWidth,\n boxShadowTertiary,\n tourZIndexPopup,\n fontSize,\n colorBgElevated,\n fontWeightStrong,\n marginXS,\n colorTextLightSolid,\n tourBorderRadius,\n colorWhite,\n colorBgTextHover,\n tourCloseSize,\n motionDurationSlow,\n antCls\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n color: colorText,\n position: 'absolute',\n zIndex: tourZIndexPopup,\n display: 'block',\n visibility: 'visible',\n fontSize,\n lineHeight,\n width: 520,\n '--antd-arrow-background-color': colorBgElevated,\n '&-pure': {\n maxWidth: '100%',\n position: 'relative'\n },\n [`&${componentCls}-hidden`]: {\n display: 'none'\n },\n // ============================= panel content ============================\n [`${componentCls}-content`]: {\n position: 'relative'\n },\n [`${componentCls}-inner`]: {\n textAlign: 'start',\n textDecoration: 'none',\n borderRadius: tourBorderRadius,\n boxShadow: boxShadowTertiary,\n position: 'relative',\n backgroundColor: colorBgElevated,\n border: 'none',\n backgroundClip: 'padding-box',\n [`${componentCls}-close`]: {\n position: 'absolute',\n top: padding,\n insetInlineEnd: padding,\n color: token.colorIcon,\n outline: 'none',\n width: tourCloseSize,\n height: tourCloseSize,\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 [`${componentCls}-cover`]: {\n textAlign: 'center',\n padding: `${padding + tourCloseSize + paddingXS}px ${padding}px 0`,\n img: {\n width: '100%'\n }\n },\n [`${componentCls}-header`]: {\n padding: `${padding}px ${padding}px ${paddingXS}px`,\n [`${componentCls}-title`]: {\n lineHeight,\n fontSize,\n fontWeight: fontWeightStrong\n }\n },\n [`${componentCls}-description`]: {\n padding: `0 ${padding}px`,\n lineHeight,\n wordWrap: 'break-word'\n },\n [`${componentCls}-footer`]: {\n padding: `${paddingXS}px ${padding}px ${padding}px`,\n textAlign: 'end',\n borderRadius: `0 0 ${borderRadiusXS}px ${borderRadiusXS}px`,\n display: 'flex',\n [`${componentCls}-indicators`]: {\n display: 'inline-block',\n [`${componentCls}-indicator`]: {\n width: indicatorWidth,\n height: indicatorHeight,\n display: 'inline-block',\n borderRadius: '50%',\n background: colorFill,\n '&:not(:last-child)': {\n marginInlineEnd: indicatorHeight\n },\n '&-active': {\n background: colorPrimary\n }\n }\n },\n [`${componentCls}-buttons`]: {\n marginInlineStart: 'auto',\n [`${antCls}-btn`]: {\n marginInlineStart: marginXS\n }\n }\n }\n },\n // ============================= primary type ===========================\n // `$` for panel, `&$` for pure panel\n [`${componentCls}-primary, &${componentCls}-primary`]: {\n '--antd-arrow-background-color': colorPrimary,\n [`${componentCls}-inner`]: {\n color: colorTextLightSolid,\n textAlign: 'start',\n textDecoration: 'none',\n backgroundColor: colorPrimary,\n borderRadius,\n boxShadow: boxShadowTertiary,\n [`${componentCls}-close`]: {\n color: colorTextLightSolid\n },\n [`${componentCls}-indicators`]: {\n [`${componentCls}-indicator`]: {\n background: new TinyColor(colorTextLightSolid).setAlpha(0.15).toRgbString(),\n '&-active': {\n background: colorTextLightSolid\n }\n }\n },\n [`${componentCls}-prev-btn`]: {\n color: colorTextLightSolid,\n borderColor: new TinyColor(colorTextLightSolid).setAlpha(0.15).toRgbString(),\n backgroundColor: colorPrimary,\n '&:hover': {\n backgroundColor: new TinyColor(colorTextLightSolid).setAlpha(0.15).toRgbString(),\n borderColor: 'transparent'\n }\n },\n [`${componentCls}-next-btn`]: {\n color: colorPrimary,\n borderColor: 'transparent',\n background: colorWhite,\n '&:hover': {\n background: new TinyColor(colorBgTextHover).onBackground(colorWhite).toRgbString()\n }\n }\n }\n }\n }),\n // ============================= mask ===========================\n [`${componentCls}-mask`]: {\n [`${componentCls}-placeholder-animated`]: {\n transition: `all ${motionDurationSlow}`\n }\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(tourBorderRadius, MAX_VERTICAL_CONTENT_RADIUS)\n }\n }\n },\n // ============================= Arrow ===========================\n getArrowStyle(token, {\n colorBg: 'var(--antd-arrow-background-color)',\n contentRadius: tourBorderRadius,\n limitVerticalRadius: true\n })];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Tour', token => {\n const {\n borderRadiusLG,\n fontSize,\n lineHeight\n } = token;\n const TourToken = mergeToken(token, {\n tourZIndexPopup: token.zIndexPopupBase + 70,\n indicatorWidth: 6,\n indicatorHeight: 6,\n tourBorderRadius: borderRadiusLG,\n tourCloseSize: fontSize * lineHeight\n });\n return [genBaseStyle(TourToken)];\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 { RawPurePanel as PopoverRawPurePanel } from '../popover/PurePanel';\nimport TourPanel from './panelRender';\nimport useStyle from './style';\nimport { withPureRenderTheme } from '../_util/PurePanel';\nconst PurePanel = props => {\n const {\n prefixCls: customizePrefixCls,\n current = 0,\n total = 6,\n className,\n style,\n type\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"current\", \"total\", \"className\", \"style\", \"type\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('tour', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n return wrapSSR( /*#__PURE__*/React.createElement(PopoverRawPurePanel, {\n prefixCls: prefixCls,\n hashId: hashId,\n className: classNames(className, `${prefixCls}-pure`, type && `${prefixCls}-${type}`),\n style: style\n }, /*#__PURE__*/React.createElement(TourPanel, {\n stepProps: Object.assign(Object.assign({}, restProps), {\n prefixCls,\n total\n }),\n current: current,\n type: type\n })));\n};\nexport default withPureRenderTheme(PurePanel);","import useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport { useLayoutEffect } from 'react';\n/**\n * returns the merged type of a step or the default type.\n */\nconst useMergedType = _ref => {\n let {\n defaultType,\n steps = [],\n current,\n defaultCurrent\n } = _ref;\n var _a;\n const [innerCurrent, updateInnerCurrent] = useMergedState(defaultCurrent, {\n value: current\n });\n useLayoutEffect(() => {\n if (current === undefined) return;\n updateInnerCurrent(current);\n }, [current]);\n const innerType = typeof innerCurrent === 'number' ? (_a = steps[innerCurrent]) === null || _a === void 0 ? void 0 : _a.type : defaultType;\n const currentMergedType = innerType !== null && innerType !== void 0 ? innerType : defaultType;\n return {\n currentMergedType,\n updateInnerCurrent\n };\n};\nexport default useMergedType;","'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 RCTour from '@rc-component/tour';\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport getPlacements from '../_util/placements';\nimport { ConfigContext } from '../config-provider';\nimport theme from '../theme';\nimport PurePanel from './PurePanel';\nimport TourPanel from './panelRender';\nimport useStyle from './style';\nimport useMergedType from './useMergedType';\nconst Tour = props => {\n const {\n prefixCls: customizePrefixCls,\n current,\n defaultCurrent,\n type,\n rootClassName,\n indicatorsRender,\n steps\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"current\", \"defaultCurrent\", \"type\", \"rootClassName\", \"indicatorsRender\", \"steps\"]);\n const {\n getPrefixCls,\n direction\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('tour', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const {\n token\n } = theme.useToken();\n const {\n currentMergedType,\n updateInnerCurrent\n } = useMergedType({\n defaultType: type,\n steps,\n current,\n defaultCurrent\n });\n const builtinPlacements = getPlacements({\n arrowPointAtCenter: true,\n autoAdjustOverflow: true,\n offset: token.marginXXS,\n arrowWidth: token.sizePopupArrow,\n borderRadius: token.borderRadius\n });\n const customClassName = classNames({\n [`${prefixCls}-primary`]: currentMergedType === 'primary',\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, hashId, rootClassName);\n const mergedRenderPanel = (stepProps, stepCurrent) => /*#__PURE__*/React.createElement(TourPanel, {\n type: type,\n stepProps: stepProps,\n current: stepCurrent,\n indicatorsRender: indicatorsRender\n });\n const onStepChange = stepCurrent => {\n var _a;\n updateInnerCurrent(stepCurrent);\n (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, stepCurrent);\n };\n return wrapSSR( /*#__PURE__*/React.createElement(RCTour, Object.assign({}, restProps, {\n rootClassName: customClassName,\n prefixCls: prefixCls,\n current: current,\n defaultCurrent: defaultCurrent,\n animated: true,\n renderPanel: mergedRenderPanel,\n builtinPlacements: builtinPlacements,\n onChange: onStepChange,\n steps: steps\n })));\n};\nif (process.env.NODE_ENV !== 'production') {\n Tour.displayName = 'Tour';\n}\nTour._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Tour;","export const groupKeysMap = keys => {\n const map = new Map();\n keys.forEach((key, index) => {\n map.set(key, index);\n });\n return map;\n};\nexport const groupDisabledKeysMap = dataSource => {\n const map = new Map();\n dataSource.forEach((_ref, index) => {\n let {\n disabled,\n key\n } = _ref;\n if (disabled) {\n map.set(key, index);\n }\n });\n return map;\n};","import * as React from 'react';\nimport { groupKeysMap } from '../../_util/transKeys';\nfunction useData(dataSource, rowKey, targetKeys) {\n const mergedDataSource = React.useMemo(() => (dataSource || []).map(record => {\n if (rowKey) {\n record = Object.assign(Object.assign({}, record), {\n key: rowKey(record)\n });\n }\n return record;\n }), [dataSource, rowKey]);\n const [leftDataSource, rightDataSource] = React.useMemo(() => {\n const leftData = [];\n const rightData = new Array((targetKeys || []).length);\n const targetKeysMap = groupKeysMap(targetKeys || []);\n mergedDataSource.forEach(record => {\n // rightData should be ordered by targetKeys\n // leftData should be ordered by dataSource\n if (targetKeysMap.has(record.key)) {\n rightData[targetKeysMap.get(record.key)] = record;\n } else {\n leftData.push(record);\n }\n });\n return [leftData, rightData];\n }, [mergedDataSource, targetKeys, rowKey]);\n return [mergedDataSource, leftDataSource, rightDataSource];\n}\nexport default useData;","import * as React from 'react';\nconst EMPTY_KEYS = [];\nfunction filterKeys(keys, dataKeys) {\n const filteredKeys = keys.filter(key => dataKeys.has(key));\n return keys.length === filteredKeys.length ? keys : filteredKeys;\n}\nfunction flattenKeys(keys) {\n return Array.from(keys).join(';');\n}\nexport default function useSelection(leftDataSource, rightDataSource) {\n let selectedKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_KEYS;\n // Prepare `dataSource` keys\n const [leftKeys, rightKeys] = React.useMemo(() => [new Set(leftDataSource.map(src => src.key)), new Set(rightDataSource.map(src => src.key))], [leftDataSource, rightDataSource]);\n // Selected Keys\n const [sourceSelectedKeys, setSourceSelectedKeys] = React.useState(() => filterKeys(selectedKeys, leftKeys));\n const [targetSelectedKeys, setTargetSelectedKeys] = React.useState(() => filterKeys(selectedKeys, rightKeys));\n // Fill selected keys\n React.useEffect(() => {\n setSourceSelectedKeys(filterKeys(selectedKeys, leftKeys));\n setTargetSelectedKeys(filterKeys(selectedKeys, rightKeys));\n }, [selectedKeys]);\n // Reset when data changed\n React.useEffect(() => {\n setSourceSelectedKeys(filterKeys(sourceSelectedKeys, leftKeys));\n setTargetSelectedKeys(filterKeys(targetSelectedKeys, rightKeys));\n }, [flattenKeys(leftKeys), flattenKeys(rightKeys)]);\n return [\n // Keys\n sourceSelectedKeys, targetSelectedKeys,\n // Updater\n setSourceSelectedKeys, setTargetSelectedKeys];\n}","import DeleteOutlined from \"@ant-design/icons/es/icons/DeleteOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport TransButton from '../_util/transButton';\nimport Checkbox from '../checkbox';\nimport { useLocale } from '../locale';\nimport defaultLocale from '../locale/en_US';\nconst ListItem = props => {\n const {\n renderedText,\n renderedEl,\n item,\n checked,\n disabled,\n prefixCls,\n onClick,\n onRemove,\n showRemove\n } = props;\n const className = classNames(`${prefixCls}-content-item`, {\n [`${prefixCls}-content-item-disabled`]: disabled || item.disabled,\n [`${prefixCls}-content-item-checked`]: checked\n });\n let title;\n if (typeof renderedText === 'string' || typeof renderedText === 'number') {\n title = String(renderedText);\n }\n const [contextLocale] = useLocale('Transfer', defaultLocale.Transfer);\n const liProps = {\n className,\n title\n };\n const labelNode = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-content-item-text`\n }, renderedEl);\n if (showRemove) {\n return /*#__PURE__*/React.createElement(\"li\", Object.assign({}, liProps), labelNode, /*#__PURE__*/React.createElement(TransButton, {\n disabled: disabled || item.disabled,\n className: `${prefixCls}-content-item-remove`,\n \"aria-label\": contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.remove,\n onClick: () => {\n onRemove === null || onRemove === void 0 ? void 0 : onRemove(item);\n }\n }, /*#__PURE__*/React.createElement(DeleteOutlined, null)));\n }\n // Default click to select\n liProps.onClick = disabled || item.disabled ? undefined : () => onClick(item);\n return /*#__PURE__*/React.createElement(\"li\", Object.assign({}, liProps), /*#__PURE__*/React.createElement(Checkbox, {\n className: `${prefixCls}-checkbox`,\n checked: checked,\n disabled: disabled || item.disabled\n }), labelNode);\n};\nexport default /*#__PURE__*/React.memo(ListItem);","import classNames from 'classnames';\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Pagination from '../pagination';\nimport ListItem from './ListItem';\nexport const OmitProps = ['handleFilter', 'handleClear', 'checkedKeys'];\nconst parsePagination = pagination => {\n const defaultPagination = {\n simple: true,\n showSizeChanger: false,\n showLessItems: false\n };\n return Object.assign(Object.assign({}, defaultPagination), pagination);\n};\nconst TransferListBody = (props, ref) => {\n const {\n prefixCls,\n filteredRenderItems,\n selectedKeys,\n disabled: globalDisabled,\n showRemove,\n pagination,\n onScroll,\n onItemSelect,\n onItemRemove\n } = props;\n const [current, setCurrent] = React.useState(1);\n const mergedPagination = React.useMemo(() => {\n if (!pagination) {\n return null;\n }\n const convertPagination = typeof pagination === 'object' ? pagination : {};\n return parsePagination(convertPagination);\n }, [pagination]);\n const [pageSize, setPageSize] = useMergedState(10, {\n value: mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.pageSize\n });\n React.useEffect(() => {\n if (mergedPagination) {\n const maxPageCount = Math.ceil(filteredRenderItems.length / pageSize);\n setCurrent(Math.min(current, maxPageCount));\n }\n }, [filteredRenderItems, mergedPagination, pageSize]);\n const onClick = item => {\n onItemSelect === null || onItemSelect === void 0 ? void 0 : onItemSelect(item.key, !selectedKeys.includes(item.key));\n };\n const onRemove = item => {\n onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove([item.key]);\n };\n const onPageChange = cur => {\n setCurrent(cur);\n };\n const onSizeChange = (cur, size) => {\n setCurrent(cur);\n setPageSize(size);\n };\n const memoizedItems = React.useMemo(() => {\n const displayItems = mergedPagination ? filteredRenderItems.slice((current - 1) * pageSize, current * pageSize) : filteredRenderItems;\n return displayItems;\n }, [current, filteredRenderItems, mergedPagination, pageSize]);\n React.useImperativeHandle(ref, () => ({\n items: memoizedItems\n }));\n const paginationNode = mergedPagination ? /*#__PURE__*/React.createElement(Pagination, {\n size: \"small\",\n disabled: globalDisabled,\n simple: mergedPagination.simple,\n pageSize: pageSize,\n showLessItems: mergedPagination.showLessItems,\n showSizeChanger: mergedPagination.showSizeChanger,\n className: `${prefixCls}-pagination`,\n total: filteredRenderItems.length,\n current: current,\n onChange: onPageChange,\n onShowSizeChange: onSizeChange\n }) : null;\n const cls = classNames(`${prefixCls}-content`, {\n [`${prefixCls}-content-show-remove`]: showRemove\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"ul\", {\n className: cls,\n onScroll: onScroll\n }, (memoizedItems || []).map(_ref => {\n let {\n renderedEl,\n renderedText,\n item\n } = _ref;\n return /*#__PURE__*/React.createElement(ListItem, {\n key: item.key,\n item: item,\n renderedText: renderedText,\n renderedEl: renderedEl,\n prefixCls: prefixCls,\n showRemove: showRemove,\n onClick: onClick,\n onRemove: onRemove,\n checked: selectedKeys.includes(item.key),\n disabled: globalDisabled || item.disabled\n });\n })), paginationNode);\n};\nif (process.env.NODE_ENV !== 'production') {\n TransferListBody.displayName = 'TransferListBody';\n}\nexport default /*#__PURE__*/React.forwardRef(TransferListBody);","import SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport * as React from 'react';\nimport Input from '../input';\nconst Search = props => {\n const {\n placeholder = '',\n value,\n prefixCls,\n disabled,\n onChange,\n handleClear\n } = props;\n const handleChange = React.useCallback(e => {\n onChange === null || onChange === void 0 ? void 0 : onChange(e);\n if (e.target.value === '') {\n handleClear === null || handleClear === void 0 ? void 0 : handleClear();\n }\n }, [onChange]);\n return /*#__PURE__*/React.createElement(Input, {\n placeholder: placeholder,\n className: prefixCls,\n value: value,\n onChange: handleChange,\n disabled: disabled,\n allowClear: true,\n prefix: /*#__PURE__*/React.createElement(SearchOutlined, null)\n });\n};\nif (process.env.NODE_ENV !== 'production') {\n Search.displayName = 'Search';\n}\nexport default Search;","import DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport React, { useMemo, useRef, useState } from 'react';\nimport { isValidElement } from '../_util/reactNode';\nimport { groupKeysMap } from '../_util/transKeys';\nimport Checkbox from '../checkbox';\nimport Dropdown from '../dropdown';\nimport DefaultListBody, { OmitProps } from './ListBody';\nimport Search from './search';\nconst defaultRender = () => null;\nfunction isRenderResultPlainObject(result) {\n return !!(result && !isValidElement(result) && Object.prototype.toString.call(result) === '[object Object]');\n}\nfunction getEnabledItemKeys(items) {\n return items.filter(data => !data.disabled).map(data => data.key);\n}\nconst isValidIcon = icon => icon !== undefined;\nconst TransferList = props => {\n const {\n prefixCls,\n dataSource = [],\n titleText = '',\n checkedKeys,\n disabled,\n showSearch = false,\n style,\n searchPlaceholder,\n notFoundContent,\n selectAll,\n selectCurrent,\n selectInvert,\n removeAll,\n removeCurrent,\n showSelectAll = true,\n showRemove,\n pagination,\n direction,\n itemsUnit,\n itemUnit,\n selectAllLabel,\n selectionsIcon,\n footer,\n renderList,\n onItemSelectAll,\n onItemRemove,\n handleFilter,\n handleClear,\n filterOption,\n render = defaultRender\n } = props;\n const [filterValue, setFilterValue] = useState('');\n const listBodyRef = useRef({});\n const internalHandleFilter = e => {\n setFilterValue(e.target.value);\n handleFilter(e);\n };\n const internalHandleClear = () => {\n setFilterValue('');\n handleClear();\n };\n const matchFilter = (text, item) => {\n if (filterOption) {\n return filterOption(filterValue, item);\n }\n return text.includes(filterValue);\n };\n const renderListBody = listProps => {\n let bodyContent = renderList ? renderList(listProps) : null;\n const customize = !!bodyContent;\n if (!customize) {\n bodyContent = /*#__PURE__*/React.createElement(DefaultListBody, Object.assign({\n ref: listBodyRef\n }, listProps));\n }\n return {\n customize,\n bodyContent\n };\n };\n const renderItem = item => {\n const renderResult = render(item);\n const isRenderResultPlain = isRenderResultPlainObject(renderResult);\n return {\n item,\n renderedEl: isRenderResultPlain ? renderResult.label : renderResult,\n renderedText: isRenderResultPlain ? renderResult.value : renderResult\n };\n };\n const notFoundContentEle = useMemo(() => Array.isArray(notFoundContent) ? notFoundContent[direction === 'left' ? 0 : 1] : notFoundContent, [notFoundContent, direction]);\n const [filteredItems, filteredRenderItems] = useMemo(() => {\n const filterItems = [];\n const filterRenderItems = [];\n dataSource.forEach(item => {\n const renderedItem = renderItem(item);\n if (filterValue && !matchFilter(renderedItem.renderedText, item)) {\n return;\n }\n filterItems.push(item);\n filterRenderItems.push(renderedItem);\n });\n return [filterItems, filterRenderItems];\n }, [dataSource, filterValue]);\n const checkStatus = useMemo(() => {\n if (checkedKeys.length === 0) {\n return 'none';\n }\n const checkedKeysMap = groupKeysMap(checkedKeys);\n if (filteredItems.every(item => checkedKeysMap.has(item.key) || !!item.disabled)) {\n return 'all';\n }\n return 'part';\n }, [checkedKeys, filteredItems]);\n const listBody = useMemo(() => {\n const search = showSearch ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-body-search-wrapper`\n }, /*#__PURE__*/React.createElement(Search, {\n prefixCls: `${prefixCls}-search`,\n onChange: internalHandleFilter,\n handleClear: internalHandleClear,\n placeholder: searchPlaceholder,\n value: filterValue,\n disabled: disabled\n })) : null;\n const {\n customize,\n bodyContent\n } = renderListBody(Object.assign(Object.assign({}, omit(props, OmitProps)), {\n filteredItems,\n filteredRenderItems,\n selectedKeys: checkedKeys\n }));\n let bodyNode;\n // We should wrap customize list body in a classNamed div to use flex layout.\n if (customize) {\n bodyNode = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-body-customize-wrapper`\n }, bodyContent);\n } else {\n bodyNode = filteredItems.length ? bodyContent : /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-body-not-found`\n }, notFoundContentEle);\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(showSearch ? `${prefixCls}-body ${prefixCls}-body-with-search` : `${prefixCls}-body`)\n }, search, bodyNode);\n }, [showSearch, prefixCls, searchPlaceholder, filterValue, disabled, checkedKeys, filteredItems, filteredRenderItems, notFoundContentEle]);\n const checkBox = /*#__PURE__*/React.createElement(Checkbox, {\n disabled: dataSource.length === 0 || disabled,\n checked: checkStatus === 'all',\n indeterminate: checkStatus === 'part',\n className: `${prefixCls}-checkbox`,\n onChange: () => {\n // Only select enabled items\n onItemSelectAll === null || onItemSelectAll === void 0 ? void 0 : onItemSelectAll(filteredItems.filter(item => !item.disabled).map(_ref => {\n let {\n key\n } = _ref;\n return key;\n }), checkStatus !== 'all');\n }\n });\n const getSelectAllLabel = (selectedCount, totalCount) => {\n if (selectAllLabel) {\n return typeof selectAllLabel === 'function' ? selectAllLabel({\n selectedCount,\n totalCount\n }) : selectAllLabel;\n }\n const unit = totalCount > 1 ? itemsUnit : itemUnit;\n return /*#__PURE__*/React.createElement(React.Fragment, null, (selectedCount > 0 ? `${selectedCount}/` : '') + totalCount, \" \", unit);\n };\n // Custom Layout\n const footerDom = footer && (footer.length < 2 ? footer(props) : footer(props, {\n direction\n }));\n const listCls = classNames(prefixCls, {\n [`${prefixCls}-with-pagination`]: !!pagination,\n [`${prefixCls}-with-footer`]: !!footerDom\n });\n // ====================== Get filtered, checked item list ======================\n const listFooter = footerDom ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-footer`\n }, footerDom) : null;\n const checkAllCheckbox = !showRemove && !pagination && checkBox;\n let items;\n if (showRemove) {\n items = [/* Remove Current Page */\n pagination ? {\n key: 'removeCurrent',\n label: removeCurrent,\n onClick() {\n var _a;\n const pageKeys = getEnabledItemKeys((((_a = listBodyRef.current) === null || _a === void 0 ? void 0 : _a.items) || []).map(entity => entity.item));\n onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove(pageKeys);\n }\n } : null, /* Remove All */\n {\n key: 'removeAll',\n label: removeAll,\n onClick() {\n onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove(getEnabledItemKeys(filteredItems));\n }\n }].filter(Boolean);\n } else {\n items = [{\n key: 'selectAll',\n label: selectAll,\n onClick() {\n const keys = getEnabledItemKeys(filteredItems);\n onItemSelectAll === null || onItemSelectAll === void 0 ? void 0 : onItemSelectAll(keys, keys.length !== checkedKeys.length);\n }\n }, pagination ? {\n key: 'selectCurrent',\n label: selectCurrent,\n onClick() {\n var _a;\n const pageItems = ((_a = listBodyRef.current) === null || _a === void 0 ? void 0 : _a.items) || [];\n onItemSelectAll === null || onItemSelectAll === void 0 ? void 0 : onItemSelectAll(getEnabledItemKeys(pageItems.map(entity => entity.item)), true);\n }\n } : null, {\n key: 'selectInvert',\n label: selectInvert,\n onClick() {\n var _a;\n const availableKeys = getEnabledItemKeys(pagination ? (((_a = listBodyRef.current) === null || _a === void 0 ? void 0 : _a.items) || []).map(entity => entity.item) : filteredItems);\n const checkedKeySet = new Set(checkedKeys);\n const newCheckedKeys = [];\n const newUnCheckedKeys = [];\n availableKeys.forEach(key => {\n if (checkedKeySet.has(key)) {\n newUnCheckedKeys.push(key);\n } else {\n newCheckedKeys.push(key);\n }\n });\n onItemSelectAll === null || onItemSelectAll === void 0 ? void 0 : onItemSelectAll(newCheckedKeys, 'replace');\n }\n }];\n }\n const dropdown = /*#__PURE__*/React.createElement(Dropdown, {\n className: `${prefixCls}-header-dropdown`,\n menu: {\n items\n },\n disabled: disabled\n }, isValidIcon(selectionsIcon) ? selectionsIcon : /*#__PURE__*/React.createElement(DownOutlined, null));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: listCls,\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-header`\n }, showSelectAll ? /*#__PURE__*/React.createElement(React.Fragment, null, checkAllCheckbox, dropdown) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-header-selected`\n }, getSelectAllLabel(checkedKeys.length, filteredItems.length)), /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-header-title`\n }, titleText)), listBody, listFooter);\n};\nif (process.env.NODE_ENV !== 'production') {\n TransferList.displayName = 'TransferList';\n}\nexport default TransferList;","import LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport * as React from 'react';\nimport Button from '../button';\nconst Operation = props => {\n const {\n disabled,\n moveToLeft,\n moveToRight,\n leftArrowText = '',\n rightArrowText = '',\n leftActive,\n rightActive,\n className,\n style,\n direction,\n oneWay\n } = props;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: style\n }, /*#__PURE__*/React.createElement(Button, {\n type: \"primary\",\n size: \"small\",\n disabled: disabled || !rightActive,\n onClick: moveToRight,\n icon: direction !== 'rtl' ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null)\n }, rightArrowText), !oneWay && /*#__PURE__*/React.createElement(Button, {\n type: \"primary\",\n size: \"small\",\n disabled: disabled || !leftActive,\n onClick: moveToLeft,\n icon: direction !== 'rtl' ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null)\n }, leftArrowText));\n};\nif (process.env.NODE_ENV !== 'production') {\n Operation.displayName = 'Operation';\n}\nexport default Operation;","import { resetComponent, resetIcon, textEllipsis } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genTransferCustomizeStyle = token => {\n const {\n antCls,\n componentCls,\n listHeight,\n controlHeightLG,\n marginXXS,\n margin\n } = token;\n const tableCls = `${antCls}-table`;\n const inputCls = `${antCls}-input`;\n return {\n [`${componentCls}-customize-list`]: {\n [`${componentCls}-list`]: {\n flex: '1 1 50%',\n width: 'auto',\n height: 'auto',\n minHeight: listHeight\n },\n // =================== Hook Components ===================\n [`${tableCls}-wrapper`]: {\n [`${tableCls}-small`]: {\n border: 0,\n borderRadius: 0,\n [`${tableCls}-selection-column`]: {\n width: controlHeightLG,\n minWidth: controlHeightLG\n }\n },\n [`${tableCls}-pagination${tableCls}-pagination`]: {\n margin: `${margin}px 0 ${marginXXS}px`\n }\n },\n [`${inputCls}[disabled]`]: {\n backgroundColor: 'transparent'\n }\n }\n };\n};\nconst genTransferStatusColor = (token, color) => {\n const {\n componentCls,\n colorBorder\n } = token;\n return {\n [`${componentCls}-list`]: {\n borderColor: color,\n '&-search:not([disabled])': {\n borderColor: colorBorder\n }\n }\n };\n};\nconst genTransferStatusStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-status-error`]: Object.assign({}, genTransferStatusColor(token, token.colorError)),\n [`${componentCls}-status-warning`]: Object.assign({}, genTransferStatusColor(token, token.colorWarning))\n };\n};\nconst genTransferListStyle = token => {\n const {\n componentCls,\n colorBorder,\n colorSplit,\n lineWidth,\n itemHeight,\n headerHeight,\n transferHeaderVerticalPadding,\n itemPaddingBlock,\n controlItemBgActive,\n colorTextDisabled,\n listHeight,\n listWidth,\n listWidthLG,\n fontSizeIcon,\n marginXS,\n paddingSM,\n lineType,\n antCls,\n iconCls,\n motionDurationSlow,\n controlItemBgHover,\n borderRadiusLG,\n colorBgContainer,\n colorText,\n controlItemBgActiveHover\n } = token;\n return {\n display: 'flex',\n flexDirection: 'column',\n width: listWidth,\n height: listHeight,\n border: `${lineWidth}px ${lineType} ${colorBorder}`,\n borderRadius: token.borderRadiusLG,\n '&-with-pagination': {\n width: listWidthLG,\n height: 'auto'\n },\n '&-search': {\n [`${iconCls}-search`]: {\n color: colorTextDisabled\n }\n },\n '&-header': {\n display: 'flex',\n flex: 'none',\n alignItems: 'center',\n height: headerHeight,\n // border-top is on the transfer dom. We should minus 1px for this\n padding: `${transferHeaderVerticalPadding - lineWidth}px ${paddingSM}px ${transferHeaderVerticalPadding}px`,\n color: colorText,\n background: colorBgContainer,\n borderBottom: `${lineWidth}px ${lineType} ${colorSplit}`,\n borderRadius: `${borderRadiusLG}px ${borderRadiusLG}px 0 0`,\n '> *:not(:last-child)': {\n marginInlineEnd: 4 // This is magic and fixed number, DO NOT use token since it may change.\n },\n\n '> *': {\n flex: 'none'\n },\n '&-title': Object.assign(Object.assign({}, textEllipsis), {\n flex: 'auto',\n textAlign: 'end'\n }),\n '&-dropdown': Object.assign(Object.assign({}, resetIcon()), {\n fontSize: fontSizeIcon,\n transform: 'translateY(10%)',\n cursor: 'pointer',\n '&[disabled]': {\n cursor: 'not-allowed'\n }\n })\n },\n '&-body': {\n display: 'flex',\n flex: 'auto',\n flexDirection: 'column',\n fontSize: token.fontSize,\n // https://blog.csdn.net/qq449245884/article/details/107373672/\n minHeight: 0,\n '&-search-wrapper': {\n position: 'relative',\n flex: 'none',\n padding: paddingSM\n }\n },\n '&-content': {\n flex: 'auto',\n margin: 0,\n padding: 0,\n overflow: 'auto',\n listStyle: 'none',\n '&-item': {\n display: 'flex',\n alignItems: 'center',\n minHeight: itemHeight,\n padding: `${itemPaddingBlock}px ${paddingSM}px`,\n transition: `all ${motionDurationSlow}`,\n '> *:not(:last-child)': {\n marginInlineEnd: marginXS\n },\n '> *': {\n flex: 'none'\n },\n '&-text': Object.assign(Object.assign({}, textEllipsis), {\n flex: 'auto'\n }),\n '&-remove': {\n position: 'relative',\n color: colorBorder,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n color: token.colorLinkHover\n },\n '&::after': {\n position: 'absolute',\n inset: `-${itemPaddingBlock}px -50%`,\n content: '\"\"'\n }\n },\n [`&:not(${componentCls}-list-content-item-disabled)`]: {\n '&:hover': {\n backgroundColor: controlItemBgHover,\n cursor: 'pointer'\n },\n [`&${componentCls}-list-content-item-checked:hover`]: {\n backgroundColor: controlItemBgActiveHover\n }\n },\n '&-checked': {\n backgroundColor: controlItemBgActive\n },\n '&-disabled': {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n },\n // Do not change hover style when `oneWay` mode\n [`&-show-remove ${componentCls}-list-content-item:not(${componentCls}-list-content-item-disabled):hover`]: {\n background: 'transparent',\n cursor: 'default'\n }\n },\n '&-pagination': {\n padding: `${token.paddingXS}px 0`,\n textAlign: 'end',\n borderTop: `${lineWidth}px ${lineType} ${colorSplit}`,\n [`${antCls}-pagination-options`]: {\n paddingInlineEnd: token.paddingXS\n }\n },\n '&-body-not-found': {\n flex: 'none',\n width: '100%',\n margin: 'auto 0',\n color: colorTextDisabled,\n textAlign: 'center'\n },\n '&-footer': {\n borderTop: `${lineWidth}px ${lineType} ${colorSplit}`\n }\n };\n};\nconst genTransferStyle = token => {\n const {\n antCls,\n iconCls,\n componentCls,\n headerHeight,\n marginXS,\n marginXXS,\n fontSizeIcon,\n fontSize,\n lineHeight,\n colorBgContainerDisabled\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'flex',\n alignItems: 'stretch',\n [`${componentCls}-disabled`]: {\n [`${componentCls}-list`]: {\n background: colorBgContainerDisabled\n }\n },\n [`${componentCls}-list`]: genTransferListStyle(token),\n [`${componentCls}-operation`]: {\n display: 'flex',\n flex: 'none',\n flexDirection: 'column',\n alignSelf: 'center',\n margin: `0 ${marginXS}px`,\n verticalAlign: 'middle',\n [`${antCls}-btn`]: {\n display: 'block',\n '&:first-child': {\n marginBottom: marginXXS\n },\n [iconCls]: {\n fontSize: fontSizeIcon\n }\n }\n },\n [`${antCls}-empty-image`]: {\n maxHeight: headerHeight / 2 - Math.round(fontSize * lineHeight)\n }\n })\n };\n};\nconst genTransferRTLStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Transfer', token => {\n const {\n fontSize,\n lineHeight,\n lineWidth,\n controlHeightLG\n } = token;\n const fontHeight = Math.round(fontSize * lineHeight);\n const transferToken = mergeToken(token, {\n transferHeaderVerticalPadding: Math.ceil((controlHeightLG - lineWidth - fontHeight) / 2)\n });\n return [genTransferStyle(transferToken), genTransferCustomizeStyle(transferToken), genTransferStatusStyle(transferToken), genTransferRTLStyle(transferToken)];\n}, token => {\n const {\n fontSize,\n lineHeight,\n controlHeight,\n controlHeightLG\n } = token;\n const fontHeight = Math.round(fontSize * lineHeight);\n return {\n listWidth: 180,\n listHeight: 200,\n listWidthLG: 250,\n headerHeight: controlHeightLG,\n itemHeight: controlHeight,\n itemPaddingBlock: (controlHeight - fontHeight) / 2\n };\n});","'use client';\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport React, { useCallback, useContext } from 'react';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { groupDisabledKeysMap, groupKeysMap } from '../_util/transKeys';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport { FormItemInputContext } from '../form/context';\nimport { useLocale } from '../locale';\nimport defaultLocale from '../locale/en_US';\nimport useData from './hooks/useData';\nimport useSelection from './hooks/useSelection';\nimport List from './list';\nimport Operation from './operation';\nimport Search from './search';\nimport useStyle from './style';\nconst Transfer = props => {\n const {\n dataSource,\n targetKeys = [],\n selectedKeys,\n selectAllLabels = [],\n operations = [],\n style = {},\n listStyle = {},\n locale = {},\n titles,\n disabled,\n showSearch = false,\n operationStyle,\n showSelectAll,\n oneWay,\n pagination,\n status: customStatus,\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n selectionsIcon,\n filterOption,\n render,\n footer,\n children,\n rowKey,\n onScroll,\n onChange,\n onSearch,\n onSelectChange\n } = props;\n const {\n getPrefixCls,\n renderEmpty,\n direction: dir,\n transfer\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('transfer', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n // Fill record with `key`\n const [mergedDataSource, leftDataSource, rightDataSource] = useData(dataSource, rowKey, targetKeys);\n // Get direction selected keys\n const [\n // Keys\n sourceSelectedKeys, targetSelectedKeys,\n // Setters\n setSourceSelectedKeys, setTargetSelectedKeys] = useSelection(leftDataSource, rightDataSource, selectedKeys);\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!pagination || !children, 'Transfer', '`pagination` not support customize render list.') : void 0;\n }\n const setStateKeys = useCallback((direction, keys) => {\n if (direction === 'left') {\n const nextKeys = typeof keys === 'function' ? keys(sourceSelectedKeys || []) : keys;\n setSourceSelectedKeys(nextKeys);\n } else {\n const nextKeys = typeof keys === 'function' ? keys(targetSelectedKeys || []) : keys;\n setTargetSelectedKeys(nextKeys);\n }\n }, [sourceSelectedKeys, targetSelectedKeys]);\n const handleSelectChange = useCallback((direction, holder) => {\n if (direction === 'left') {\n onSelectChange === null || onSelectChange === void 0 ? void 0 : onSelectChange(holder, targetSelectedKeys);\n } else {\n onSelectChange === null || onSelectChange === void 0 ? void 0 : onSelectChange(sourceSelectedKeys, holder);\n }\n }, [sourceSelectedKeys, targetSelectedKeys]);\n const getTitles = transferLocale => {\n var _a;\n return (_a = titles !== null && titles !== void 0 ? titles : transferLocale.titles) !== null && _a !== void 0 ? _a : [];\n };\n const handleLeftScroll = e => {\n onScroll === null || onScroll === void 0 ? void 0 : onScroll('left', e);\n };\n const handleRightScroll = e => {\n onScroll === null || onScroll === void 0 ? void 0 : onScroll('right', e);\n };\n const moveTo = direction => {\n const moveKeys = direction === 'right' ? sourceSelectedKeys : targetSelectedKeys;\n const dataSourceDisabledKeysMap = groupDisabledKeysMap(mergedDataSource);\n // filter the disabled options\n const newMoveKeys = moveKeys.filter(key => !dataSourceDisabledKeysMap.has(key));\n const newMoveKeysMap = groupKeysMap(newMoveKeys);\n // move items to target box\n const newTargetKeys = direction === 'right' ? newMoveKeys.concat(targetKeys) : targetKeys.filter(targetKey => !newMoveKeysMap.has(targetKey));\n // empty checked keys\n const oppositeDirection = direction === 'right' ? 'left' : 'right';\n setStateKeys(oppositeDirection, []);\n handleSelectChange(oppositeDirection, []);\n onChange === null || onChange === void 0 ? void 0 : onChange(newTargetKeys, direction, newMoveKeys);\n };\n const moveToLeft = () => {\n moveTo('left');\n };\n const moveToRight = () => {\n moveTo('right');\n };\n const onItemSelectAll = (direction, keys, checkAll) => {\n setStateKeys(direction, prevKeys => {\n let mergedCheckedKeys = [];\n if (checkAll === 'replace') {\n mergedCheckedKeys = keys;\n } else if (checkAll) {\n // Merge current keys with origin key\n mergedCheckedKeys = Array.from(new Set([].concat(_toConsumableArray(prevKeys), _toConsumableArray(keys))));\n } else {\n const selectedKeysMap = groupKeysMap(keys);\n // Remove current keys from origin keys\n mergedCheckedKeys = prevKeys.filter(key => !selectedKeysMap.has(key));\n }\n handleSelectChange(direction, mergedCheckedKeys);\n return mergedCheckedKeys;\n });\n };\n const onLeftItemSelectAll = (keys, checkAll) => {\n onItemSelectAll('left', keys, checkAll);\n };\n const onRightItemSelectAll = (keys, checkAll) => {\n onItemSelectAll('right', keys, checkAll);\n };\n const leftFilter = e => onSearch === null || onSearch === void 0 ? void 0 : onSearch('left', e.target.value);\n const rightFilter = e => onSearch === null || onSearch === void 0 ? void 0 : onSearch('right', e.target.value);\n const handleLeftClear = () => onSearch === null || onSearch === void 0 ? void 0 : onSearch('left', '');\n const handleRightClear = () => onSearch === null || onSearch === void 0 ? void 0 : onSearch('right', '');\n const onItemSelect = (direction, selectedKey, checked) => {\n const holder = _toConsumableArray(direction === 'left' ? sourceSelectedKeys : targetSelectedKeys);\n const index = holder.indexOf(selectedKey);\n if (index > -1) {\n holder.splice(index, 1);\n }\n if (checked) {\n holder.push(selectedKey);\n }\n handleSelectChange(direction, holder);\n if (!props.selectedKeys) {\n setStateKeys(direction, holder);\n }\n };\n const onLeftItemSelect = (selectedKey, checked) => {\n onItemSelect('left', selectedKey, checked);\n };\n const onRightItemSelect = (selectedKey, checked) => {\n onItemSelect('right', selectedKey, checked);\n };\n const onRightItemRemove = keys => {\n setStateKeys('right', []);\n onChange === null || onChange === void 0 ? void 0 : onChange(targetKeys.filter(key => !keys.includes(key)), 'left', _toConsumableArray(keys));\n };\n const handleListStyle = direction => {\n if (typeof listStyle === 'function') {\n return listStyle({\n direction\n });\n }\n return listStyle || {};\n };\n const formItemContext = useContext(FormItemInputContext);\n const {\n hasFeedback,\n status\n } = formItemContext;\n const getLocale = transferLocale => Object.assign(Object.assign(Object.assign({}, transferLocale), {\n notFoundContent: (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Transfer')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Transfer\"\n })\n }), locale);\n const mergedStatus = getMergedStatus(status, customStatus);\n const mergedPagination = !children && pagination;\n const leftActive = targetSelectedKeys.length > 0;\n const rightActive = sourceSelectedKeys.length > 0;\n const cls = classNames(prefixCls, {\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-customize-list`]: !!children,\n [`${prefixCls}-rtl`]: dir === 'rtl'\n }, getStatusClassNames(prefixCls, mergedStatus, hasFeedback), transfer === null || transfer === void 0 ? void 0 : transfer.className, className, rootClassName, hashId);\n const [contextLocale] = useLocale('Transfer', defaultLocale.Transfer);\n const listLocale = getLocale(contextLocale);\n const [leftTitle, rightTitle] = getTitles(listLocale);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: Object.assign(Object.assign({}, transfer === null || transfer === void 0 ? void 0 : transfer.style), style)\n }, /*#__PURE__*/React.createElement(List, Object.assign({\n prefixCls: `${prefixCls}-list`,\n titleText: leftTitle,\n dataSource: leftDataSource,\n filterOption: filterOption,\n style: handleListStyle('left'),\n checkedKeys: sourceSelectedKeys,\n handleFilter: leftFilter,\n handleClear: handleLeftClear,\n onItemSelect: onLeftItemSelect,\n onItemSelectAll: onLeftItemSelectAll,\n render: render,\n showSearch: showSearch,\n renderList: children,\n footer: footer,\n onScroll: handleLeftScroll,\n disabled: disabled,\n direction: dir === 'rtl' ? 'right' : 'left',\n showSelectAll: showSelectAll,\n selectAllLabel: selectAllLabels[0],\n pagination: mergedPagination,\n selectionsIcon: selectionsIcon\n }, listLocale)), /*#__PURE__*/React.createElement(Operation, {\n className: `${prefixCls}-operation`,\n rightActive: rightActive,\n rightArrowText: operations[0],\n moveToRight: moveToRight,\n leftActive: leftActive,\n leftArrowText: operations[1],\n moveToLeft: moveToLeft,\n style: operationStyle,\n disabled: disabled,\n direction: dir,\n oneWay: oneWay\n }), /*#__PURE__*/React.createElement(List, Object.assign({\n prefixCls: `${prefixCls}-list`,\n titleText: rightTitle,\n dataSource: rightDataSource,\n filterOption: filterOption,\n style: handleListStyle('right'),\n checkedKeys: targetSelectedKeys,\n handleFilter: rightFilter,\n handleClear: handleRightClear,\n onItemSelect: onRightItemSelect,\n onItemSelectAll: onRightItemSelectAll,\n onItemRemove: onRightItemRemove,\n render: render,\n showSearch: showSearch,\n renderList: children,\n footer: footer,\n onScroll: handleRightScroll,\n disabled: disabled,\n direction: dir === 'rtl' ? 'left' : 'right',\n showSelectAll: showSelectAll,\n selectAllLabel: selectAllLabels[1],\n showRemove: oneWay,\n pagination: mergedPagination,\n selectionsIcon: selectionsIcon\n }, listLocale))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Transfer.displayName = 'Transfer';\n}\nTransfer.List = List;\nTransfer.Search = Search;\nTransfer.Operation = Operation;\nexport default Transfer;","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 React from 'react';\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport default DomWrapper;","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport * as React from 'react';\nvar defaultOptions = {\n subtree: true,\n childList: true,\n attributeFilter: ['style', 'class']\n};\nexport default function useMutateObserver(nodeOrList, callback) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultOptions;\n React.useEffect(function () {\n if (!canUseDom() || !nodeOrList) {\n return;\n }\n var instance;\n var nodeList = Array.isArray(nodeOrList) ? nodeOrList : [nodeOrList];\n if ('MutationObserver' in window) {\n instance = new MutationObserver(callback);\n nodeList.forEach(function (element) {\n instance.observe(element, options);\n });\n }\n return function () {\n var _instance, _instance2;\n (_instance = instance) === null || _instance === void 0 ? void 0 : _instance.takeRecords();\n (_instance2 = instance) === null || _instance2 === void 0 ? void 0 : _instance2.disconnect();\n };\n }, [options, nodeOrList]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport DomWrapper from \"./wrapper\";\nimport useMutateObserver from \"./useMutateObserver\";\nvar MutateObserver = function MutateObserver(props) {\n var children = props.children,\n options = props.options,\n _props$onMutate = props.onMutate,\n onMutate = _props$onMutate === void 0 ? function () {} : _props$onMutate;\n var callback = useEvent(onMutate);\n var wrapperRef = React.useRef(null);\n var elementRef = React.useRef(null);\n var canRef = /*#__PURE__*/React.isValidElement(children) && supportRef(children);\n var mergedRef = useComposeRef(elementRef, canRef ? children.ref : null);\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n target = _React$useState2[0],\n setTarget = _React$useState2[1];\n useMutateObserver(target, callback, options);\n\n // =========================== Effect ===========================\n // Bind target\n useLayoutEffect(function () {\n setTarget(findDOMNode(elementRef.current) || findDOMNode(wrapperRef.current));\n });\n\n // =========================== Render ===========================\n if (!children) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('MutationObserver need children props');\n }\n return null;\n }\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperRef\n }, canRef ? /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n }) : children);\n};\nexport default MutateObserver;","import MutateObserver from \"./MutateObserver\";\nimport useMutateObserver from \"./useMutateObserver\";\nexport { useMutateObserver };\nexport default MutateObserver;","export const FontGap = 3;\nfunction prepareCanvas(width, height) {\n let ratio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const realWidth = width * ratio;\n const realHeight = height * ratio;\n canvas.setAttribute('width', `${realWidth}px`);\n canvas.setAttribute('height', `${realHeight}px`);\n ctx.save();\n return [ctx, canvas, realWidth, realHeight];\n}\n/**\n * Get the clips of text content.\n * This is a lazy hook function since SSR no need this\n */\nexport default function useClips() {\n // Get single clips\n function getClips(content, rotate, ratio, width, height, font, gapX, gapY) {\n // ================= Text / Image =================\n const [ctx, canvas, contentWidth, contentHeight] = prepareCanvas(width, height, ratio);\n if (content instanceof HTMLImageElement) {\n // Image\n ctx.drawImage(content, 0, 0, contentWidth, contentHeight);\n } else {\n // Text\n const {\n color,\n fontSize,\n fontStyle,\n fontWeight,\n fontFamily\n } = font;\n const mergedFontSize = Number(fontSize) * ratio;\n ctx.font = `${fontStyle} normal ${fontWeight} ${mergedFontSize}px/${height}px ${fontFamily}`;\n ctx.fillStyle = color;\n ctx.textAlign = 'center';\n ctx.textBaseline = 'top';\n const contents = Array.isArray(content) ? content : [content];\n contents === null || contents === void 0 ? void 0 : contents.forEach((item, index) => {\n ctx.fillText(item !== null && item !== void 0 ? item : '', contentWidth / 2, index * (mergedFontSize + FontGap * ratio));\n });\n }\n // ==================== Rotate ====================\n const angle = Math.PI / 180 * Number(rotate);\n const maxSize = Math.max(width, height);\n const [rCtx, rCanvas, realMaxSize] = prepareCanvas(maxSize, maxSize, ratio);\n // Copy from `ctx` and rotate\n rCtx.translate(realMaxSize / 2, realMaxSize / 2);\n rCtx.rotate(angle);\n rCtx.drawImage(canvas, -contentWidth / 2, -contentHeight / 2);\n // Get boundary of rotated text\n function getRotatePos(x, y) {\n const targetX = x * Math.cos(angle) - y * Math.sin(angle);\n const targetY = x * Math.sin(angle) + y * Math.cos(angle);\n return [targetX, targetY];\n }\n let left = 0;\n let right = 0;\n let top = 0;\n let bottom = 0;\n const halfWidth = contentWidth / 2;\n const halfHeight = contentHeight / 2;\n const points = [[0 - halfWidth, 0 - halfHeight], [0 + halfWidth, 0 - halfHeight], [0 + halfWidth, 0 + halfHeight], [0 - halfWidth, 0 + halfHeight]];\n points.forEach(_ref => {\n let [x, y] = _ref;\n const [targetX, targetY] = getRotatePos(x, y);\n left = Math.min(left, targetX);\n right = Math.max(right, targetX);\n top = Math.min(top, targetY);\n bottom = Math.max(bottom, targetY);\n });\n const cutLeft = left + realMaxSize / 2;\n const cutTop = top + realMaxSize / 2;\n const cutWidth = right - left;\n const cutHeight = bottom - top;\n // ================ Fill Alternate ================\n const realGapX = gapX * ratio;\n const realGapY = gapY * ratio;\n const filledWidth = (cutWidth + realGapX) * 2;\n const filledHeight = cutHeight + realGapY;\n const [fCtx, fCanvas] = prepareCanvas(filledWidth, filledHeight);\n function drawImg() {\n let targetX = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let targetY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n fCtx.drawImage(rCanvas, cutLeft, cutTop, cutWidth, cutHeight, targetX, targetY, cutWidth, cutHeight);\n }\n drawImg();\n drawImg(cutWidth + realGapX, -cutHeight / 2 - realGapY / 2);\n drawImg(cutWidth + realGapX, +cutHeight / 2 + realGapY / 2);\n return [fCanvas.toDataURL(), filledWidth / ratio, filledHeight / ratio];\n }\n return getClips;\n}","/** converting camel-cased strings to be lowercase and link it with Separato */\nexport function toLowercaseSeparator(key) {\n return key.replace(/([A-Z])/g, '-$1').toLowerCase();\n}\nexport function getStyleStr(style) {\n return Object.keys(style).map(key => `${toLowercaseSeparator(key)}: ${style[key]};`).join(' ');\n}\n/** Returns the ratio of the device's physical pixel resolution to the css pixel resolution */\nexport function getPixelRatio() {\n return window.devicePixelRatio || 1;\n}\n/** Whether to re-render the watermark */\nexport const reRendering = (mutation, watermarkElement) => {\n let flag = false;\n // Whether to delete the watermark node\n if (mutation.removedNodes.length) {\n flag = Array.from(mutation.removedNodes).some(node => node === watermarkElement);\n }\n // Whether the watermark dom property value has been modified\n if (mutation.type === 'attributes' && mutation.target === watermarkElement) {\n flag = true;\n }\n return flag;\n};","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport React, { useEffect, useRef } from 'react';\nimport MutateObserver from '@rc-component/mutate-observer';\nimport classNames from 'classnames';\nimport theme from '../theme';\nimport useClips, { FontGap } from './useClips';\nimport { getPixelRatio, getStyleStr, reRendering } from './utils';\nconst Watermark = props => {\n var _a, _b;\n const {\n /**\n * The antd content layer zIndex is basically below 10\n * https://github.com/ant-design/ant-design/blob/6192403b2ce517c017f9e58a32d58774921c10cd/components/style/themes/default.less#L335\n */\n zIndex = 9,\n rotate = -22,\n width,\n height,\n image,\n content,\n font = {},\n style,\n className,\n rootClassName,\n gap = [100, 100],\n offset,\n children\n } = props;\n const {\n token\n } = theme.useToken();\n const {\n color = token.colorFill,\n fontSize = token.fontSizeLG,\n fontWeight = 'normal',\n fontStyle = 'normal',\n fontFamily = 'sans-serif'\n } = font;\n const [gapX, gapY] = gap;\n const gapXCenter = gapX / 2;\n const gapYCenter = gapY / 2;\n const offsetLeft = (_a = offset === null || offset === void 0 ? void 0 : offset[0]) !== null && _a !== void 0 ? _a : gapXCenter;\n const offsetTop = (_b = offset === null || offset === void 0 ? void 0 : offset[1]) !== null && _b !== void 0 ? _b : gapYCenter;\n const getMarkStyle = () => {\n const markStyle = {\n zIndex,\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n backgroundRepeat: 'repeat'\n };\n /** Calculate the style of the offset */\n let positionLeft = offsetLeft - gapXCenter;\n let positionTop = offsetTop - gapYCenter;\n if (positionLeft > 0) {\n markStyle.left = `${positionLeft}px`;\n markStyle.width = `calc(100% - ${positionLeft}px)`;\n positionLeft = 0;\n }\n if (positionTop > 0) {\n markStyle.top = `${positionTop}px`;\n markStyle.height = `calc(100% - ${positionTop}px)`;\n positionTop = 0;\n }\n markStyle.backgroundPosition = `${positionLeft}px ${positionTop}px`;\n return markStyle;\n };\n const containerRef = useRef(null);\n const watermarkRef = useRef();\n const stopObservation = useRef(false);\n const destroyWatermark = () => {\n if (watermarkRef.current) {\n watermarkRef.current.remove();\n watermarkRef.current = undefined;\n }\n };\n const appendWatermark = (base64Url, markWidth) => {\n var _a;\n if (containerRef.current && watermarkRef.current) {\n stopObservation.current = true;\n watermarkRef.current.setAttribute('style', getStyleStr(Object.assign(Object.assign({}, getMarkStyle()), {\n backgroundImage: `url('${base64Url}')`,\n backgroundSize: `${Math.floor(markWidth)}px`\n })));\n (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.append(watermarkRef.current);\n // Delayed execution\n setTimeout(() => {\n stopObservation.current = false;\n });\n }\n };\n /**\n * Get the width and height of the watermark. The default values are as follows\n * Image: [120, 64]; Content: It's calculated by content;\n */\n const getMarkSize = ctx => {\n let defaultWidth = 120;\n let defaultHeight = 64;\n if (!image && ctx.measureText) {\n ctx.font = `${Number(fontSize)}px ${fontFamily}`;\n const contents = Array.isArray(content) ? content : [content];\n const sizes = contents.map(item => {\n const metrics = ctx.measureText(item);\n return [metrics.width, metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent];\n });\n defaultWidth = Math.ceil(Math.max.apply(Math, _toConsumableArray(sizes.map(size => size[0]))));\n defaultHeight = Math.ceil(Math.max.apply(Math, _toConsumableArray(sizes.map(size => size[1])))) * contents.length + (contents.length - 1) * FontGap;\n }\n return [width !== null && width !== void 0 ? width : defaultWidth, height !== null && height !== void 0 ? height : defaultHeight];\n };\n const getClips = useClips();\n const renderWatermark = () => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n if (ctx) {\n if (!watermarkRef.current) {\n watermarkRef.current = document.createElement('div');\n }\n const ratio = getPixelRatio();\n const [markWidth, markHeight] = getMarkSize(ctx);\n const drawCanvas = drawContent => {\n const [textClips, clipWidth] = getClips(drawContent || '', rotate, ratio, markWidth, markHeight, {\n color,\n fontSize,\n fontStyle,\n fontWeight,\n fontFamily\n }, gapX, gapY);\n appendWatermark(textClips, clipWidth);\n };\n if (image) {\n const img = new Image();\n img.onload = () => {\n drawCanvas(img);\n };\n img.onerror = () => {\n drawCanvas(content);\n };\n img.crossOrigin = 'anonymous';\n img.referrerPolicy = 'no-referrer';\n img.src = image;\n } else {\n drawCanvas(content);\n }\n }\n };\n const onMutate = mutations => {\n if (stopObservation.current) {\n return;\n }\n mutations.forEach(mutation => {\n if (reRendering(mutation, watermarkRef.current)) {\n destroyWatermark();\n renderWatermark();\n }\n });\n };\n useEffect(renderWatermark, [rotate, zIndex, width, height, image, content, color, fontSize, fontWeight, fontStyle, fontFamily, gapX, gapY, offsetLeft, offsetTop]);\n return /*#__PURE__*/React.createElement(MutateObserver, {\n onMutate: onMutate\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: classNames(className, rootClassName),\n style: Object.assign({\n position: 'relative'\n }, style)\n }, children));\n};\nif (process.env.NODE_ENV !== 'production') {\n Watermark.displayName = 'Watermark';\n}\nexport default Watermark;","import { genComponentStyleHook } from '../../theme/internal';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n iconCls,\n antCls,\n zIndexPopup,\n colorText,\n colorWarning,\n marginXXS,\n marginXS,\n fontSize,\n fontWeightStrong,\n colorTextHeading\n } = token;\n return {\n [componentCls]: {\n zIndex: zIndexPopup,\n [`&${antCls}-popover`]: {\n fontSize\n },\n [`${componentCls}-message`]: {\n marginBottom: marginXS,\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'start',\n [`> ${componentCls}-message-icon ${iconCls}`]: {\n color: colorWarning,\n fontSize,\n lineHeight: 1,\n marginInlineEnd: marginXS\n },\n [`${componentCls}-title`]: {\n fontWeight: fontWeightStrong,\n color: colorTextHeading,\n '&:only-child': {\n fontWeight: 'normal'\n }\n },\n [`${componentCls}-description`]: {\n marginTop: marginXXS,\n color: colorText\n }\n },\n [`${componentCls}-buttons`]: {\n textAlign: 'end',\n whiteSpace: 'nowrap',\n button: {\n marginInlineStart: marginXS\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Popconfirm', token => genBaseStyle(token), token => {\n const {\n zIndexPopupBase\n } = token;\n return {\n zIndexPopup: zIndexPopupBase + 60\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 ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport ActionButton from '../_util/ActionButton';\nimport { getRenderPropValue } from '../_util/getRenderPropValue';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nimport { ConfigContext } from '../config-provider';\nimport { useLocale } from '../locale';\nimport defaultLocale from '../locale/en_US';\nimport PopoverPurePanel from '../popover/PurePanel';\nimport useStyle from './style';\nexport const Overlay = props => {\n const {\n prefixCls,\n okButtonProps,\n cancelButtonProps,\n title,\n description,\n cancelText,\n okText,\n okType = 'primary',\n icon = /*#__PURE__*/React.createElement(ExclamationCircleFilled, null),\n showCancel = true,\n close,\n onConfirm,\n onCancel,\n onPopupClick\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const [contextLocale] = useLocale('Popconfirm', defaultLocale.Popconfirm);\n const theTitle = getRenderPropValue(title);\n const theDescription = getRenderPropValue(description);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inner-content`,\n onClick: onPopupClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-message`\n }, icon && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-message-icon`\n }, icon), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-message-text`\n }, theTitle && /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-title`)\n }, theTitle), theDescription && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-description`\n }, theDescription))), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-buttons`\n }, showCancel && /*#__PURE__*/React.createElement(Button, Object.assign({\n onClick: onCancel,\n size: \"small\"\n }, cancelButtonProps), cancelText !== null && cancelText !== void 0 ? cancelText : contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.cancelText), /*#__PURE__*/React.createElement(ActionButton, {\n buttonProps: Object.assign(Object.assign({\n size: 'small'\n }, convertLegacyProps(okType)), okButtonProps),\n actionFn: onConfirm,\n close: close,\n prefixCls: getPrefixCls('btn'),\n quitOnNullishReturnValue: true,\n emitEvent: true\n }, okText !== null && okText !== void 0 ? okText : contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.okText)));\n};\nconst PurePanel = props => {\n const {\n prefixCls: customizePrefixCls,\n placement,\n className,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"placement\", \"className\", \"style\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('popconfirm', customizePrefixCls);\n const [wrapSSR] = useStyle(prefixCls);\n return wrapSSR( /*#__PURE__*/React.createElement(PopoverPurePanel, {\n placement: placement,\n className: classNames(prefixCls, className),\n style: style,\n content: /*#__PURE__*/React.createElement(Overlay, Object.assign({\n prefixCls: prefixCls\n }, restProps))\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 ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { cloneElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport Popover from '../popover';\nimport PurePanel, { Overlay } from './PurePanel';\nimport usePopconfirmStyle from './style';\nconst Popconfirm = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n placement = 'top',\n trigger = 'click',\n okType = 'primary',\n icon = /*#__PURE__*/React.createElement(ExclamationCircleFilled, null),\n children,\n overlayClassName,\n onOpenChange,\n onVisibleChange\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"placement\", \"trigger\", \"okType\", \"icon\", \"children\", \"overlayClassName\", \"onOpenChange\", \"onVisibleChange\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const [open, setOpen] = useMergedState(false, {\n value: props.open,\n defaultValue: props.defaultOpen\n });\n // const isDestroyed = useDestroyed();\n const settingOpen = (value, e) => {\n setOpen(value, true);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(value);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(value, e);\n };\n const close = e => {\n settingOpen(false, e);\n };\n const onConfirm = e => {\n var _a;\n return (_a = props.onConfirm) === null || _a === void 0 ? void 0 : _a.call(this, e);\n };\n const onCancel = e => {\n var _a;\n settingOpen(false, e);\n (_a = props.onCancel) === null || _a === void 0 ? void 0 : _a.call(this, e);\n };\n const onKeyDown = e => {\n if (e.keyCode === KeyCode.ESC && open) {\n settingOpen(false, e);\n }\n };\n const onInternalOpenChange = value => {\n const {\n disabled = false\n } = props;\n if (disabled) {\n return;\n }\n settingOpen(value);\n };\n const prefixCls = getPrefixCls('popconfirm', customizePrefixCls);\n const overlayClassNames = classNames(prefixCls, overlayClassName);\n const [wrapSSR] = usePopconfirmStyle(prefixCls);\n return wrapSSR( /*#__PURE__*/React.createElement(Popover, Object.assign({}, omit(restProps, ['title']), {\n trigger: trigger,\n placement: placement,\n onOpenChange: onInternalOpenChange,\n open: open,\n ref: ref,\n overlayClassName: overlayClassNames,\n content: /*#__PURE__*/React.createElement(Overlay, Object.assign({\n okType: okType,\n icon: icon\n }, props, {\n prefixCls: prefixCls,\n close: close,\n onConfirm: onConfirm,\n onCancel: onCancel\n })),\n \"data-popover-inject\": true\n }), cloneElement(children, {\n onKeyDown: e => {\n var _a, _b;\n if ( /*#__PURE__*/React.isValidElement(children)) {\n (_b = children === null || children === void 0 ? void 0 : (_a = children.props).onKeyDown) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n }\n onKeyDown(e);\n }\n })));\n});\n// We don't care debug panel\n/* istanbul ignore next */\nPopconfirm._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nif (process.env.NODE_ENV !== 'production') {\n Popconfirm.displayName = 'Popconfirm';\n}\nexport default Popconfirm;","// This icon file is generated automatically.\nvar StarFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0046.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z\" } }] }, \"name\": \"star\", \"theme\": \"filled\" };\nexport default StarFilled;\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 StarFilledSvg from \"@ant-design/icons-svg/es/asn/StarFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar StarFilled = function StarFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: StarFilledSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n StarFilled.displayName = 'StarFilled';\n}\nexport default /*#__PURE__*/React.forwardRef(StarFilled);","import React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport classNames from 'classnames';\nfunction Star(props, ref) {\n var disabled = props.disabled,\n prefixCls = props.prefixCls,\n character = props.character,\n characterRender = props.characterRender,\n index = props.index,\n count = props.count,\n value = props.value,\n allowHalf = props.allowHalf,\n focused = props.focused,\n onHover = props.onHover,\n onClick = props.onClick;\n // =========================== Events ===========================\n var onInternalHover = function onInternalHover(e) {\n onHover(e, index);\n };\n var onInternalClick = function onInternalClick(e) {\n onClick(e, index);\n };\n var onInternalKeyDown = function onInternalKeyDown(e) {\n if (e.keyCode === KeyCode.ENTER) {\n onClick(e, index);\n }\n };\n // =========================== Render ===========================\n // >>>>> ClassName\n var starValue = index + 1;\n var classNameList = new Set([prefixCls]);\n // TODO: Current we just refactor from CC to FC. This logic seems can be optimized.\n if (value === 0 && index === 0 && focused) {\n classNameList.add(\"\".concat(prefixCls, \"-focused\"));\n } else if (allowHalf && value + 0.5 >= starValue && value < starValue) {\n classNameList.add(\"\".concat(prefixCls, \"-half\"));\n classNameList.add(\"\".concat(prefixCls, \"-active\"));\n if (focused) {\n classNameList.add(\"\".concat(prefixCls, \"-focused\"));\n }\n } else {\n if (starValue <= value) {\n classNameList.add(\"\".concat(prefixCls, \"-full\"));\n } else {\n classNameList.add(\"\".concat(prefixCls, \"-zero\"));\n }\n if (starValue === value && focused) {\n classNameList.add(\"\".concat(prefixCls, \"-focused\"));\n }\n }\n // >>>>> Node\n var characterNode = typeof character === 'function' ? character(props) : character;\n var start = /*#__PURE__*/React.createElement(\"li\", {\n className: classNames(Array.from(classNameList)),\n ref: ref\n }, /*#__PURE__*/React.createElement(\"div\", {\n onClick: disabled ? null : onInternalClick,\n onKeyDown: disabled ? null : onInternalKeyDown,\n onMouseMove: disabled ? null : onInternalHover,\n role: \"radio\",\n \"aria-checked\": value > index ? 'true' : 'false',\n \"aria-posinset\": index + 1,\n \"aria-setsize\": count,\n tabIndex: disabled ? -1 : 0\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-first\")\n }, characterNode), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-second\")\n }, characterNode)));\n if (characterRender) {\n start = characterRender(start, props);\n }\n return start;\n}\nexport default /*#__PURE__*/React.forwardRef(Star);","import * as React from 'react';\nexport default function useRefs() {\n var nodeRef = React.useRef({});\n function getRef(index) {\n return nodeRef.current[index];\n }\n function setRef(index) {\n return function (node) {\n nodeRef.current[index] = node;\n };\n }\n return [getRef, setRef];\n}","function getScroll(w) {\n var ret = w.pageXOffset;\n var method = 'scrollLeft';\n if (typeof ret !== 'number') {\n var d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\nfunction getClientPosition(elem) {\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement;\n var box = elem.getBoundingClientRect();\n x = box.left;\n y = box.top;\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\nexport function getOffsetLeft(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n // Only IE use `parentWindow`\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScroll(w);\n return pos.left;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"defaultValue\", \"value\", \"count\", \"allowHalf\", \"allowClear\", \"character\", \"characterRender\", \"disabled\", \"direction\", \"tabIndex\", \"autoFocus\", \"onHoverChange\", \"onChange\", \"onFocus\", \"onBlur\", \"onKeyDown\", \"onMouseLeave\"];\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport React from 'react';\nimport Star from './Star';\nimport useRefs from './useRefs';\nimport { getOffsetLeft } from './util';\nfunction Rate(props, ref) {\n var _classNames;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-rate' : _props$prefixCls,\n className = props.className,\n defaultValue = props.defaultValue,\n propValue = props.value,\n _props$count = props.count,\n count = _props$count === void 0 ? 5 : _props$count,\n _props$allowHalf = props.allowHalf,\n allowHalf = _props$allowHalf === void 0 ? false : _props$allowHalf,\n _props$allowClear = props.allowClear,\n allowClear = _props$allowClear === void 0 ? true : _props$allowClear,\n _props$character = props.character,\n character = _props$character === void 0 ? '★' : _props$character,\n characterRender = props.characterRender,\n disabled = props.disabled,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'ltr' : _props$direction,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n autoFocus = props.autoFocus,\n onHoverChange = props.onHoverChange,\n onChange = props.onChange,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onKeyDown = props.onKeyDown,\n onMouseLeave = props.onMouseLeave,\n restProps = _objectWithoutProperties(props, _excluded);\n var _useRefs = useRefs(),\n _useRefs2 = _slicedToArray(_useRefs, 2),\n getStarRef = _useRefs2[0],\n setStarRef = _useRefs2[1];\n var rateRef = React.useRef(null);\n // ============================ Ref =============================\n var triggerFocus = function triggerFocus() {\n if (!disabled) {\n var _rateRef$current;\n (_rateRef$current = rateRef.current) === null || _rateRef$current === void 0 ? void 0 : _rateRef$current.focus();\n }\n };\n React.useImperativeHandle(ref, function () {\n return {\n focus: triggerFocus,\n blur: function blur() {\n if (!disabled) {\n var _rateRef$current2;\n (_rateRef$current2 = rateRef.current) === null || _rateRef$current2 === void 0 ? void 0 : _rateRef$current2.blur();\n }\n }\n };\n });\n // =========================== Value ============================\n var _useMergedState = useMergedState(defaultValue || 0, {\n value: propValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var _useMergedState3 = useMergedState(null),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n cleanedValue = _useMergedState4[0],\n setCleanedValue = _useMergedState4[1];\n var getStarValue = function getStarValue(index, x) {\n var reverse = direction === 'rtl';\n var starValue = index + 1;\n if (allowHalf) {\n var starEle = getStarRef(index);\n var leftDis = getOffsetLeft(starEle);\n var width = starEle.clientWidth;\n if (reverse && x - leftDis > width / 2) {\n starValue -= 0.5;\n } else if (!reverse && x - leftDis < width / 2) {\n starValue -= 0.5;\n }\n }\n return starValue;\n };\n // >>>>> Change\n var changeValue = function changeValue(nextValue) {\n setValue(nextValue);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue);\n };\n // =========================== Focus ============================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n focused = _React$useState2[0],\n setFocused = _React$useState2[1];\n var onInternalFocus = function onInternalFocus() {\n setFocused(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus();\n };\n var onInternalBlur = function onInternalBlur() {\n setFocused(false);\n onBlur === null || onBlur === void 0 ? void 0 : onBlur();\n };\n // =========================== Hover ============================\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n hoverValue = _React$useState4[0],\n setHoverValue = _React$useState4[1];\n var onHover = function onHover(event, index) {\n var nextHoverValue = getStarValue(index, event.pageX);\n if (nextHoverValue !== cleanedValue) {\n setHoverValue(nextHoverValue);\n setCleanedValue(null);\n }\n onHoverChange === null || onHoverChange === void 0 ? void 0 : onHoverChange(nextHoverValue);\n };\n var onMouseLeaveCallback = function onMouseLeaveCallback(event) {\n if (!disabled) {\n setHoverValue(null);\n setCleanedValue(null);\n onHoverChange === null || onHoverChange === void 0 ? void 0 : onHoverChange(undefined);\n }\n if (event) {\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(event);\n }\n };\n // =========================== Click ============================\n var onClick = function onClick(event, index) {\n var newValue = getStarValue(index, event.pageX);\n var isReset = false;\n if (allowClear) {\n isReset = newValue === value;\n }\n onMouseLeaveCallback();\n changeValue(isReset ? 0 : newValue);\n setCleanedValue(isReset ? newValue : null);\n };\n var onInternalKeyDown = function onInternalKeyDown(event) {\n var keyCode = event.keyCode;\n var reverse = direction === 'rtl';\n var nextValue = value;\n if (keyCode === KeyCode.RIGHT && nextValue < count && !reverse) {\n if (allowHalf) {\n nextValue += 0.5;\n } else {\n nextValue += 1;\n }\n changeValue(nextValue);\n event.preventDefault();\n } else if (keyCode === KeyCode.LEFT && nextValue > 0 && !reverse) {\n if (allowHalf) {\n nextValue -= 0.5;\n } else {\n nextValue -= 1;\n }\n changeValue(nextValue);\n event.preventDefault();\n } else if (keyCode === KeyCode.RIGHT && nextValue > 0 && reverse) {\n if (allowHalf) {\n nextValue -= 0.5;\n } else {\n nextValue -= 1;\n }\n changeValue(nextValue);\n event.preventDefault();\n } else if (keyCode === KeyCode.LEFT && nextValue < count && reverse) {\n if (allowHalf) {\n nextValue += 0.5;\n } else {\n nextValue += 1;\n }\n changeValue(nextValue);\n event.preventDefault();\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n };\n // =========================== Effect ===========================\n React.useEffect(function () {\n if (autoFocus && !disabled) {\n triggerFocus();\n }\n }, []);\n // =========================== Render ===========================\n // >>> Star\n var starNodes = new Array(count).fill(0).map(function (item, index) {\n return /*#__PURE__*/React.createElement(Star, {\n ref: setStarRef(index),\n index: index,\n count: count,\n disabled: disabled,\n prefixCls: \"\".concat(prefixCls, \"-star\"),\n allowHalf: allowHalf,\n value: hoverValue === null ? value : hoverValue,\n onClick: onClick,\n onHover: onHover,\n key: item || index,\n character: character,\n characterRender: characterRender,\n focused: focused\n });\n });\n var classString = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames));\n // >>> Node\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classString,\n onMouseLeave: onMouseLeaveCallback,\n tabIndex: disabled ? -1 : tabIndex,\n onFocus: disabled ? null : onInternalFocus,\n onBlur: disabled ? null : onInternalBlur,\n onKeyDown: disabled ? null : onInternalKeyDown,\n ref: rateRef,\n role: \"radiogroup\"\n }, pickAttrs(restProps, {\n aria: true,\n data: true,\n attr: true\n })), starNodes);\n}\nexport default /*#__PURE__*/React.forwardRef(Rate);","import Rate from './Rate';\nexport default Rate;","import { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genRateStarStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-star`]: {\n position: 'relative',\n display: 'inline-block',\n color: 'inherit',\n cursor: 'pointer',\n '&:not(:last-child)': {\n marginInlineEnd: token.marginXS\n },\n '> div': {\n transition: `all ${token.motionDurationMid}, outline 0s`,\n '&:hover': {\n transform: token.starHoverScale\n },\n '&:focus': {\n outline: 0\n },\n '&:focus-visible': {\n outline: `${token.lineWidth}px dashed ${token.starColor}`,\n transform: token.starHoverScale\n }\n },\n '&-first, &-second': {\n color: token.starBg,\n transition: `all ${token.motionDurationMid}`,\n userSelect: 'none',\n [token.iconCls]: {\n verticalAlign: 'middle'\n }\n },\n '&-first': {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n width: '50%',\n height: '100%',\n overflow: 'hidden',\n opacity: 0\n },\n [`&-half ${componentCls}-star-first, &-half ${componentCls}-star-second`]: {\n opacity: 1\n },\n [`&-half ${componentCls}-star-first, &-full ${componentCls}-star-second`]: {\n color: 'inherit'\n }\n }\n };\n};\nconst genRateRtlStyle = token => ({\n [`&-rtl${token.componentCls}`]: {\n direction: 'rtl'\n }\n});\nconst genRateStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n margin: 0,\n padding: 0,\n color: token.starColor,\n fontSize: token.starSize,\n lineHeight: 'unset',\n listStyle: 'none',\n outline: 'none',\n // disable styles\n [`&-disabled${componentCls} ${componentCls}-star`]: {\n cursor: 'default',\n '> div:hover': {\n transform: 'scale(1)'\n }\n }\n }), genRateStarStyle(token)), {\n // text styles\n [`+ ${componentCls}-text`]: {\n display: 'inline-block',\n marginInlineStart: token.marginXS,\n fontSize: token.fontSize\n }\n }), genRateRtlStyle(token))\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Rate', token => {\n const rateToken = mergeToken(token, {});\n return [genRateStyle(rateToken)];\n}, token => ({\n starColor: token.yellow6,\n starSize: token.controlHeightLG * 0.5,\n starHoverScale: 'scale(1.1)',\n starBg: token.colorFillContent\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 StarFilled from \"@ant-design/icons/es/icons/StarFilled\";\nimport classNames from 'classnames';\nimport RcRate from 'rc-rate';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Tooltip from '../tooltip';\nimport useStyle from './style';\nconst Rate = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls,\n className,\n rootClassName,\n style,\n tooltips,\n character = /*#__PURE__*/React.createElement(StarFilled, null)\n } = props,\n rest = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"style\", \"tooltips\", \"character\"]);\n const characterRender = (node, _ref) => {\n let {\n index\n } = _ref;\n if (!tooltips) {\n return node;\n }\n return /*#__PURE__*/React.createElement(Tooltip, {\n title: tooltips[index]\n }, node);\n };\n const {\n getPrefixCls,\n direction,\n rate\n } = React.useContext(ConfigContext);\n const ratePrefixCls = getPrefixCls('rate', prefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(ratePrefixCls);\n const mergedStyle = Object.assign(Object.assign({}, rate === null || rate === void 0 ? void 0 : rate.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(RcRate, Object.assign({\n ref: ref,\n character: character,\n characterRender: characterRender\n }, rest, {\n className: classNames(className, rootClassName, hashId, rate === null || rate === void 0 ? void 0 : rate.className),\n style: mergedStyle,\n prefixCls: ratePrefixCls,\n direction: direction\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Rate.displayName = 'Rate';\n}\nexport default Rate;","'use client';\n\nimport { Row } from '../grid';\nexport default Row;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nvar calcThumbStyle = function calcThumbStyle(targetElement) {\n return targetElement ? {\n left: targetElement.offsetLeft,\n right: targetElement.parentElement.clientWidth - targetElement.clientWidth - targetElement.offsetLeft,\n width: targetElement.clientWidth\n } : null;\n};\nvar toPX = function toPX(value) {\n return value !== undefined ? \"\".concat(value, \"px\") : undefined;\n};\nexport default function MotionThumb(props) {\n var prefixCls = props.prefixCls,\n containerRef = props.containerRef,\n value = props.value,\n getValueIndex = props.getValueIndex,\n motionName = props.motionName,\n onMotionStart = props.onMotionStart,\n onMotionEnd = props.onMotionEnd,\n direction = props.direction;\n var thumbRef = React.useRef(null);\n var _React$useState = React.useState(value),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevValue = _React$useState2[0],\n setPrevValue = _React$useState2[1];\n\n // =========================== Effect ===========================\n var findValueElement = function findValueElement(val) {\n var _containerRef$current;\n var index = getValueIndex(val);\n var ele = (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.querySelectorAll(\".\".concat(prefixCls, \"-item\"))[index];\n return (ele === null || ele === void 0 ? void 0 : ele.offsetParent) && ele;\n };\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n prevStyle = _React$useState4[0],\n setPrevStyle = _React$useState4[1];\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n nextStyle = _React$useState6[0],\n setNextStyle = _React$useState6[1];\n useLayoutEffect(function () {\n if (prevValue !== value) {\n var prev = findValueElement(prevValue);\n var next = findValueElement(value);\n var calcPrevStyle = calcThumbStyle(prev);\n var calcNextStyle = calcThumbStyle(next);\n setPrevValue(value);\n setPrevStyle(calcPrevStyle);\n setNextStyle(calcNextStyle);\n if (prev && next) {\n onMotionStart();\n } else {\n onMotionEnd();\n }\n }\n }, [value]);\n var thumbStart = React.useMemo(function () {\n return direction === 'rtl' ? toPX(-(prevStyle === null || prevStyle === void 0 ? void 0 : prevStyle.right)) : toPX(prevStyle === null || prevStyle === void 0 ? void 0 : prevStyle.left);\n }, [direction, prevStyle]);\n var thumbActive = React.useMemo(function () {\n return direction === 'rtl' ? toPX(-(nextStyle === null || nextStyle === void 0 ? void 0 : nextStyle.right)) : toPX(nextStyle === null || nextStyle === void 0 ? void 0 : nextStyle.left);\n }, [direction, nextStyle]);\n\n // =========================== Motion ===========================\n var onAppearStart = function onAppearStart() {\n return {\n transform: \"translateX(var(--thumb-start-left))\",\n width: \"var(--thumb-start-width)\"\n };\n };\n var onAppearActive = function onAppearActive() {\n return {\n transform: \"translateX(var(--thumb-active-left))\",\n width: \"var(--thumb-active-width)\"\n };\n };\n var onVisibleChanged = function onVisibleChanged() {\n setPrevStyle(null);\n setNextStyle(null);\n onMotionEnd();\n };\n\n // =========================== Render ===========================\n // No need motion when nothing exist in queue\n if (!prevStyle || !nextStyle) {\n return null;\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: true,\n motionName: motionName,\n motionAppear: true,\n onAppearStart: onAppearStart,\n onAppearActive: onAppearActive,\n onVisibleChanged: onVisibleChanged\n }, function (_ref, ref) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedStyle = _objectSpread(_objectSpread({}, motionStyle), {}, {\n '--thumb-start-left': thumbStart,\n '--thumb-start-width': toPX(prevStyle === null || prevStyle === void 0 ? void 0 : prevStyle.width),\n '--thumb-active-left': thumbActive,\n '--thumb-active-width': toPX(nextStyle === null || nextStyle === void 0 ? void 0 : nextStyle.width)\n });\n\n // It's little ugly which should be refactor when @umi/test update to latest jsdom\n var motionProps = {\n ref: composeRef(thumbRef, ref),\n style: mergedStyle,\n className: classNames(\"\".concat(prefixCls, \"-thumb\"), motionClassName)\n };\n if (process.env.NODE_ENV === 'test') {\n motionProps['data-test-style'] = JSON.stringify(mergedStyle);\n }\n return /*#__PURE__*/React.createElement(\"div\", motionProps);\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"prefixCls\", \"direction\", \"options\", \"disabled\", \"defaultValue\", \"value\", \"onChange\", \"className\", \"motionName\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport omit from \"rc-util/es/omit\";\nimport MotionThumb from \"./MotionThumb\";\nfunction getValidTitle(option) {\n if (typeof option.title !== 'undefined') {\n return option.title;\n }\n\n // read `label` when title is `undefined`\n if (_typeof(option.label) !== 'object') {\n var _option$label;\n return (_option$label = option.label) === null || _option$label === void 0 ? void 0 : _option$label.toString();\n }\n}\nfunction normalizeOptions(options) {\n return options.map(function (option) {\n if (_typeof(option) === 'object' && option !== null) {\n var validTitle = getValidTitle(option);\n return _objectSpread(_objectSpread({}, option), {}, {\n title: validTitle\n });\n }\n return {\n label: option === null || option === void 0 ? void 0 : option.toString(),\n title: option === null || option === void 0 ? void 0 : option.toString(),\n value: option\n };\n });\n}\nvar InternalSegmentedOption = function InternalSegmentedOption(_ref) {\n var prefixCls = _ref.prefixCls,\n className = _ref.className,\n disabled = _ref.disabled,\n checked = _ref.checked,\n label = _ref.label,\n title = _ref.title,\n value = _ref.value,\n onChange = _ref.onChange;\n var handleChange = function handleChange(event) {\n if (disabled) {\n return;\n }\n onChange(event, value);\n };\n return /*#__PURE__*/React.createElement(\"label\", {\n className: classNames(className, _defineProperty({}, \"\".concat(prefixCls, \"-item-disabled\"), disabled))\n }, /*#__PURE__*/React.createElement(\"input\", {\n className: \"\".concat(prefixCls, \"-item-input\"),\n type: \"radio\",\n disabled: disabled,\n checked: checked,\n onChange: handleChange\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-label\"),\n title: title\n }, label));\n};\nvar Segmented = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _segmentedOptions$, _classNames2;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-segmented' : _props$prefixCls,\n direction = props.direction,\n options = props.options,\n disabled = props.disabled,\n defaultValue = props.defaultValue,\n value = props.value,\n onChange = props.onChange,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n _props$motionName = props.motionName,\n motionName = _props$motionName === void 0 ? 'thumb-motion' : _props$motionName,\n restProps = _objectWithoutProperties(props, _excluded);\n var containerRef = React.useRef(null);\n var mergedRef = React.useMemo(function () {\n return composeRef(containerRef, ref);\n }, [containerRef, ref]);\n var segmentedOptions = React.useMemo(function () {\n return normalizeOptions(options);\n }, [options]);\n\n // Note: We should not auto switch value when value not exist in options\n // which may break single source of truth.\n var _useMergedState = useMergedState((_segmentedOptions$ = segmentedOptions[0]) === null || _segmentedOptions$ === void 0 ? void 0 : _segmentedOptions$.value, {\n value: value,\n defaultValue: defaultValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n rawValue = _useMergedState2[0],\n setRawValue = _useMergedState2[1];\n\n // ======================= Change ========================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n thumbShow = _React$useState2[0],\n setThumbShow = _React$useState2[1];\n var handleChange = function handleChange(event, val) {\n if (disabled) {\n return;\n }\n setRawValue(val);\n onChange === null || onChange === void 0 ? void 0 : onChange(val);\n };\n var divProps = omit(restProps, ['children']);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n className: classNames(prefixCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames2), className),\n ref: mergedRef\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-group\")\n }, /*#__PURE__*/React.createElement(MotionThumb, {\n prefixCls: prefixCls,\n value: rawValue,\n containerRef: containerRef,\n motionName: \"\".concat(prefixCls, \"-\").concat(motionName),\n direction: direction,\n getValueIndex: function getValueIndex(val) {\n return segmentedOptions.findIndex(function (n) {\n return n.value === val;\n });\n },\n onMotionStart: function onMotionStart() {\n setThumbShow(true);\n },\n onMotionEnd: function onMotionEnd() {\n setThumbShow(false);\n }\n }), segmentedOptions.map(function (segmentedOption) {\n return /*#__PURE__*/React.createElement(InternalSegmentedOption, _extends({}, segmentedOption, {\n key: segmentedOption.value,\n prefixCls: prefixCls,\n className: classNames(segmentedOption.className, \"\".concat(prefixCls, \"-item\"), _defineProperty({}, \"\".concat(prefixCls, \"-item-selected\"), segmentedOption.value === rawValue && !thumbShow)),\n checked: segmentedOption.value === rawValue,\n onChange: handleChange,\n disabled: !!disabled || !!segmentedOption.disabled\n }));\n })));\n});\nSegmented.displayName = 'Segmented';\nSegmented.defaultProps = {\n options: []\n};\nexport default Segmented;","import { resetComponent, textEllipsis } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Mixins ==============================\nfunction getItemDisabledStyle(cls, token) {\n return {\n [`${cls}, ${cls}:hover, ${cls}:focus`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n };\n}\nfunction getItemSelectedStyle(token) {\n return {\n backgroundColor: token.itemSelectedBg,\n boxShadow: token.boxShadowTertiary\n };\n}\nconst segmentedTextEllipsisCss = Object.assign({\n overflow: 'hidden'\n}, textEllipsis);\n// ============================== Styles ==============================\nconst genSegmentedStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n padding: token.segmentedPadding,\n color: token.itemColor,\n backgroundColor: token.segmentedBgColor,\n borderRadius: token.borderRadius,\n transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n [`${componentCls}-group`]: {\n position: 'relative',\n display: 'flex',\n alignItems: 'stretch',\n justifyItems: 'flex-start',\n width: '100%'\n },\n // RTL styles\n [`&${componentCls}-rtl`]: {\n direction: 'rtl'\n },\n // block styles\n [`&${componentCls}-block`]: {\n display: 'flex'\n },\n [`&${componentCls}-block ${componentCls}-item`]: {\n flex: 1,\n minWidth: 0\n },\n // item styles\n [`${componentCls}-item`]: {\n position: 'relative',\n textAlign: 'center',\n cursor: 'pointer',\n transition: `color ${token.motionDurationMid} ${token.motionEaseInOut}`,\n borderRadius: token.borderRadiusSM,\n '&-selected': Object.assign(Object.assign({}, getItemSelectedStyle(token)), {\n color: token.itemHoverColor\n }),\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n insetInlineStart: 0,\n borderRadius: 'inherit',\n transition: `background-color ${token.motionDurationMid}`,\n // This is mandatory to make it not clickable or hoverable\n // Ref: https://github.com/ant-design/ant-design/issues/40888\n pointerEvents: 'none'\n },\n [`&:hover:not(${componentCls}-item-selected):not(${componentCls}-item-disabled)`]: {\n color: token.itemHoverColor,\n '&::after': {\n backgroundColor: token.itemHoverBg\n }\n },\n [`&:active:not(${componentCls}-item-selected):not(${componentCls}-item-disabled)`]: {\n color: token.itemHoverColor,\n '&::after': {\n backgroundColor: token.itemActiveBg\n }\n },\n '&-label': Object.assign({\n minHeight: token.controlHeight - token.segmentedPadding * 2,\n lineHeight: `${token.controlHeight - token.segmentedPadding * 2}px`,\n padding: `0 ${token.segmentedPaddingHorizontal}px`\n }, segmentedTextEllipsisCss),\n // syntactic sugar to add `icon` for Segmented Item\n '&-icon + *': {\n marginInlineStart: token.marginSM / 2\n },\n '&-input': {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n width: 0,\n height: 0,\n opacity: 0,\n pointerEvents: 'none'\n }\n },\n // thumb styles\n [`${componentCls}-thumb`]: Object.assign(Object.assign({}, getItemSelectedStyle(token)), {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n width: 0,\n height: '100%',\n padding: `${token.paddingXXS}px 0`,\n borderRadius: token.borderRadiusSM,\n [`& ~ ${componentCls}-item:not(${componentCls}-item-selected):not(${componentCls}-item-disabled)::after`]: {\n backgroundColor: 'transparent'\n }\n }),\n // size styles\n [`&${componentCls}-lg`]: {\n borderRadius: token.borderRadiusLG,\n [`${componentCls}-item-label`]: {\n minHeight: token.controlHeightLG - token.segmentedPadding * 2,\n lineHeight: `${token.controlHeightLG - token.segmentedPadding * 2}px`,\n padding: `0 ${token.segmentedPaddingHorizontal}px`,\n fontSize: token.fontSizeLG\n },\n [`${componentCls}-item, ${componentCls}-thumb`]: {\n borderRadius: token.borderRadius\n }\n },\n [`&${componentCls}-sm`]: {\n borderRadius: token.borderRadiusSM,\n [`${componentCls}-item-label`]: {\n minHeight: token.controlHeightSM - token.segmentedPadding * 2,\n lineHeight: `${token.controlHeightSM - token.segmentedPadding * 2}px`,\n padding: `0 ${token.segmentedPaddingHorizontalSM}px`\n },\n [`${componentCls}-item, ${componentCls}-thumb`]: {\n borderRadius: token.borderRadiusXS\n }\n }\n }), getItemDisabledStyle(`&-disabled ${componentCls}-item`, token)), getItemDisabledStyle(`${componentCls}-item-disabled`, token)), {\n // transition effect when `appear-active`\n [`${componentCls}-thumb-motion-appear-active`]: {\n transition: `transform ${token.motionDurationSlow} ${token.motionEaseInOut}, width ${token.motionDurationSlow} ${token.motionEaseInOut}`,\n willChange: 'transform, width'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Segmented', token => {\n const {\n lineWidth,\n lineWidthBold,\n colorBgLayout\n } = token;\n const segmentedToken = mergeToken(token, {\n segmentedPadding: lineWidthBold,\n segmentedBgColor: colorBgLayout,\n segmentedPaddingHorizontal: token.controlPaddingHorizontal - lineWidth,\n segmentedPaddingHorizontalSM: token.controlPaddingHorizontalSM - lineWidth\n });\n return [genSegmentedStyle(segmentedToken)];\n}, token => {\n const {\n colorTextLabel,\n colorText,\n colorFillSecondary,\n colorBgElevated,\n colorFill\n } = token;\n return {\n itemColor: colorTextLabel,\n itemHoverColor: colorText,\n itemHoverBg: colorFillSecondary,\n itemSelectedBg: colorBgElevated,\n itemActiveBg: colorFill\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 RcSegmented from 'rc-segmented';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport useStyle from './style';\nfunction isSegmentedLabeledOptionWithIcon(option) {\n return typeof option === 'object' && !!(option === null || option === void 0 ? void 0 : option.icon);\n}\nconst Segmented = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n block,\n options = [],\n size: customSize = 'middle',\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"block\", \"options\", \"size\", \"style\"]);\n const {\n getPrefixCls,\n direction,\n segmented\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('segmented', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n // ===================== Size =====================\n const mergedSize = useSize(customSize);\n // syntactic sugar to support `icon` for Segmented Item\n const extendedOptions = React.useMemo(() => options.map(option => {\n if (isSegmentedLabeledOptionWithIcon(option)) {\n const {\n icon,\n label\n } = option,\n restOption = __rest(option, [\"icon\", \"label\"]);\n return Object.assign(Object.assign({}, restOption), {\n label: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-item-icon`\n }, icon), label && /*#__PURE__*/React.createElement(\"span\", null, label))\n });\n }\n return option;\n }), [options, prefixCls]);\n const cls = classNames(className, rootClassName, segmented === null || segmented === void 0 ? void 0 : segmented.className, {\n [`${prefixCls}-block`]: block,\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large'\n }, hashId);\n const mergedStyle = Object.assign(Object.assign({}, segmented === null || segmented === void 0 ? void 0 : segmented.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(RcSegmented, Object.assign({}, restProps, {\n className: cls,\n style: mergedStyle,\n options: extendedOptions,\n ref: ref,\n prefixCls: prefixCls,\n direction: direction\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Segmented.displayName = 'Segmented';\n}\nexport default Segmented;","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 = [\"className\", \"prefixCls\", \"style\", \"active\", \"status\", \"iconPrefix\", \"icon\", \"wrapperStyle\", \"stepNumber\", \"disabled\", \"description\", \"title\", \"subTitle\", \"progressDot\", \"stepIcon\", \"tailContent\", \"icons\", \"stepIndex\", \"onStepClick\", \"onClick\", \"render\"];\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nfunction isString(str) {\n return typeof str === 'string';\n}\nfunction Step(props) {\n var _classNames2;\n var className = props.className,\n prefixCls = props.prefixCls,\n style = props.style,\n active = props.active,\n status = props.status,\n iconPrefix = props.iconPrefix,\n icon = props.icon,\n wrapperStyle = props.wrapperStyle,\n stepNumber = props.stepNumber,\n disabled = props.disabled,\n description = props.description,\n title = props.title,\n subTitle = props.subTitle,\n progressDot = props.progressDot,\n stepIcon = props.stepIcon,\n tailContent = props.tailContent,\n icons = props.icons,\n stepIndex = props.stepIndex,\n onStepClick = props.onStepClick,\n onClick = props.onClick,\n render = props.render,\n restProps = _objectWithoutProperties(props, _excluded);\n\n // ========================= Click ==========================\n var clickable = !!onStepClick && !disabled;\n var accessibilityProps = {};\n if (clickable) {\n accessibilityProps.role = 'button';\n accessibilityProps.tabIndex = 0;\n accessibilityProps.onClick = function (e) {\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n onStepClick(stepIndex);\n };\n accessibilityProps.onKeyDown = function (e) {\n var which = e.which;\n if (which === KeyCode.ENTER || which === KeyCode.SPACE) {\n onStepClick(stepIndex);\n }\n };\n }\n\n // ========================= Render =========================\n var renderIconNode = function renderIconNode() {\n var _classNames;\n var iconNode;\n var iconClassName = classNames(\"\".concat(prefixCls, \"-icon\"), \"\".concat(iconPrefix, \"icon\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-\").concat(icon), icon && isString(icon)), _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-check\"), !icon && status === 'finish' && (icons && !icons.finish || !icons)), _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-cross\"), !icon && status === 'error' && (icons && !icons.error || !icons)), _classNames));\n var iconDot = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon-dot\")\n });\n // `progressDot` enjoy the highest priority\n if (progressDot) {\n if (typeof progressDot === 'function') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, progressDot(iconDot, {\n index: stepNumber - 1,\n status: status,\n title: title,\n description: description\n }));\n } else {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, iconDot);\n }\n } else if (icon && !isString(icon)) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icon);\n } else if (icons && icons.finish && status === 'finish') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icons.finish);\n } else if (icons && icons.error && status === 'error') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icons.error);\n } else if (icon || status === 'finish' || status === 'error') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n } else {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, stepNumber);\n }\n if (stepIcon) {\n iconNode = stepIcon({\n index: stepNumber - 1,\n status: status,\n title: title,\n description: description,\n node: iconNode\n });\n }\n return iconNode;\n };\n var mergedStatus = status || 'wait';\n var classString = classNames(\"\".concat(prefixCls, \"-item\"), \"\".concat(prefixCls, \"-item-\").concat(mergedStatus), className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-custom\"), icon), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-active\"), active), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-disabled\"), disabled === true), _classNames2));\n var stepItemStyle = _objectSpread({}, style);\n var stepNode = /*#__PURE__*/React.createElement(\"div\", _extends({}, restProps, {\n className: classString,\n style: stepItemStyle\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n onClick: onClick\n }, accessibilityProps, {\n className: \"\".concat(prefixCls, \"-item-container\")\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-tail\")\n }, tailContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-icon\")\n }, renderIconNode()), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-content\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-title\")\n }, title, subTitle && /*#__PURE__*/React.createElement(\"div\", {\n title: typeof subTitle === 'string' ? subTitle : undefined,\n className: \"\".concat(prefixCls, \"-item-subtitle\")\n }, subTitle)), description && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-description\")\n }, description))));\n if (render) {\n stepNode = render(stepNode) || null;\n }\n return stepNode;\n}\nexport default Step;","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\", \"style\", \"className\", \"children\", \"direction\", \"type\", \"labelPlacement\", \"iconPrefix\", \"status\", \"size\", \"current\", \"progressDot\", \"stepIcon\", \"initial\", \"icons\", \"onChange\", \"itemRender\", \"items\"];\n/* eslint react/no-did-mount-set-state: 0, react/prop-types: 0 */\nimport classNames from 'classnames';\nimport React from 'react';\nimport Step from \"./Step\";\nfunction Steps(props) {\n var _classNames;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-steps' : _props$prefixCls,\n _props$style = props.style,\n style = _props$style === void 0 ? {} : _props$style,\n className = props.className,\n children = props.children,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'horizontal' : _props$direction,\n _props$type = props.type,\n type = _props$type === void 0 ? 'default' : _props$type,\n _props$labelPlacement = props.labelPlacement,\n labelPlacement = _props$labelPlacement === void 0 ? 'horizontal' : _props$labelPlacement,\n _props$iconPrefix = props.iconPrefix,\n iconPrefix = _props$iconPrefix === void 0 ? 'rc' : _props$iconPrefix,\n _props$status = props.status,\n status = _props$status === void 0 ? 'process' : _props$status,\n size = props.size,\n _props$current = props.current,\n current = _props$current === void 0 ? 0 : _props$current,\n _props$progressDot = props.progressDot,\n progressDot = _props$progressDot === void 0 ? false : _props$progressDot,\n stepIcon = props.stepIcon,\n _props$initial = props.initial,\n initial = _props$initial === void 0 ? 0 : _props$initial,\n icons = props.icons,\n onChange = props.onChange,\n itemRender = props.itemRender,\n _props$items = props.items,\n items = _props$items === void 0 ? [] : _props$items,\n restProps = _objectWithoutProperties(props, _excluded);\n var isNav = type === 'navigation';\n var isInline = type === 'inline';\n\n // inline type requires fixed progressDot direction size.\n var mergedProgressDot = isInline || progressDot;\n var mergedDirection = isInline ? 'horizontal' : direction;\n var mergedSize = isInline ? undefined : size;\n var adjustedLabelPlacement = mergedProgressDot ? 'vertical' : labelPlacement;\n var classString = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(mergedDirection), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(mergedSize), mergedSize), _defineProperty(_classNames, \"\".concat(prefixCls, \"-label-\").concat(adjustedLabelPlacement), mergedDirection === 'horizontal'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot\"), !!mergedProgressDot), _defineProperty(_classNames, \"\".concat(prefixCls, \"-navigation\"), isNav), _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline\"), isInline), _classNames));\n var onStepClick = function onStepClick(next) {\n if (onChange && current !== next) {\n onChange(next);\n }\n };\n var renderStep = function renderStep(item, index) {\n var mergedItem = _objectSpread({}, item);\n var stepNumber = initial + index;\n // fix tail color\n if (status === 'error' && index === current - 1) {\n mergedItem.className = \"\".concat(prefixCls, \"-next-error\");\n }\n if (!mergedItem.status) {\n if (stepNumber === current) {\n mergedItem.status = status;\n } else if (stepNumber < current) {\n mergedItem.status = 'finish';\n } else {\n mergedItem.status = 'wait';\n }\n }\n if (isInline) {\n mergedItem.icon = undefined;\n mergedItem.subTitle = undefined;\n }\n if (!mergedItem.render && itemRender) {\n mergedItem.render = function (stepItem) {\n return itemRender(mergedItem, stepItem);\n };\n }\n return /*#__PURE__*/React.createElement(Step, _extends({}, mergedItem, {\n active: stepNumber === current,\n stepNumber: stepNumber + 1,\n stepIndex: stepNumber,\n key: stepNumber,\n prefixCls: prefixCls,\n iconPrefix: iconPrefix,\n wrapperStyle: style,\n progressDot: mergedProgressDot,\n stepIcon: stepIcon,\n icons: icons,\n onStepClick: onChange && onStepClick\n }));\n };\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classString,\n style: style\n }, restProps), items.filter(function (item) {\n return item;\n }).map(renderStep));\n}\nSteps.Step = Step;\nexport default Steps;","import Steps from \"./Steps\";\nimport Step from \"./Step\";\nexport { Step };\nexport default Steps;","const genStepsCustomIconStyle = token => {\n const {\n componentCls,\n customIconTop,\n customIconSize,\n customIconFontSize\n } = token;\n return {\n [`${componentCls}-item-custom`]: {\n [`> ${componentCls}-item-container > ${componentCls}-item-icon`]: {\n height: 'auto',\n background: 'none',\n border: 0,\n [`> ${componentCls}-icon`]: {\n top: customIconTop,\n width: customIconSize,\n height: customIconSize,\n fontSize: customIconFontSize,\n lineHeight: `${customIconFontSize}px`\n }\n }\n },\n // Only adjust horizontal customize icon width\n [`&:not(${componentCls}-vertical)`]: {\n [`${componentCls}-item-custom`]: {\n [`${componentCls}-item-icon`]: {\n width: 'auto',\n background: 'none'\n }\n }\n }\n };\n};\nexport default genStepsCustomIconStyle;","const genStepsInlineStyle = token => {\n const {\n componentCls,\n inlineDotSize,\n inlineTitleColor,\n inlineTailColor\n } = token;\n const containerPaddingTop = token.paddingXS + token.lineWidth;\n const titleStyle = {\n [`${componentCls}-item-container ${componentCls}-item-content ${componentCls}-item-title`]: {\n color: inlineTitleColor\n }\n };\n return {\n [`&${componentCls}-inline`]: {\n width: 'auto',\n display: 'inline-flex',\n [`${componentCls}-item`]: {\n flex: 'none',\n '&-container': {\n padding: `${containerPaddingTop}px ${token.paddingXXS}px 0`,\n margin: `0 ${token.marginXXS / 2}px`,\n borderRadius: token.borderRadiusSM,\n cursor: 'pointer',\n transition: `background-color ${token.motionDurationMid}`,\n '&:hover': {\n background: token.controlItemBgHover\n },\n [`&[role='button']:hover`]: {\n opacity: 1\n }\n },\n '&-icon': {\n width: inlineDotSize,\n height: inlineDotSize,\n marginInlineStart: `calc(50% - ${inlineDotSize / 2}px)`,\n [`> ${componentCls}-icon`]: {\n top: 0\n },\n [`${componentCls}-icon-dot`]: {\n borderRadius: token.fontSizeSM / 4\n }\n },\n '&-content': {\n width: 'auto',\n marginTop: token.marginXS - token.lineWidth\n },\n '&-title': {\n color: inlineTitleColor,\n fontSize: token.fontSizeSM,\n lineHeight: token.lineHeightSM,\n fontWeight: 'normal',\n marginBottom: token.marginXXS / 2\n },\n '&-description': {\n display: 'none'\n },\n '&-tail': {\n marginInlineStart: 0,\n top: containerPaddingTop + inlineDotSize / 2,\n transform: `translateY(-50%)`,\n '&:after': {\n width: '100%',\n height: token.lineWidth,\n borderRadius: 0,\n marginInlineStart: 0,\n background: inlineTailColor\n }\n },\n [`&:first-child ${componentCls}-item-tail`]: {\n width: '50%',\n marginInlineStart: '50%'\n },\n [`&:last-child ${componentCls}-item-tail`]: {\n display: 'block',\n width: '50%'\n },\n '&-wait': Object.assign({\n [`${componentCls}-item-icon ${componentCls}-icon ${componentCls}-icon-dot`]: {\n backgroundColor: token.colorBorderBg,\n border: `${token.lineWidth}px ${token.lineType} ${inlineTailColor}`\n }\n }, titleStyle),\n '&-finish': Object.assign({\n [`${componentCls}-item-tail::after`]: {\n backgroundColor: inlineTailColor\n },\n [`${componentCls}-item-icon ${componentCls}-icon ${componentCls}-icon-dot`]: {\n backgroundColor: inlineTailColor,\n border: `${token.lineWidth}px ${token.lineType} ${inlineTailColor}`\n }\n }, titleStyle),\n '&-error': titleStyle,\n '&-active, &-process': Object.assign({\n [`${componentCls}-item-icon`]: {\n width: inlineDotSize,\n height: inlineDotSize,\n marginInlineStart: `calc(50% - ${inlineDotSize / 2}px)`,\n top: 0\n }\n }, titleStyle),\n [`&:not(${componentCls}-item-active) > ${componentCls}-item-container[role='button']:hover`]: {\n [`${componentCls}-item-title`]: {\n color: inlineTitleColor\n }\n }\n }\n }\n };\n};\nexport default genStepsInlineStyle;","const genStepsLabelPlacementStyle = token => {\n const {\n componentCls,\n iconSize,\n lineHeight,\n iconSizeSM\n } = token;\n return {\n [`&${componentCls}-label-vertical`]: {\n [`${componentCls}-item`]: {\n overflow: 'visible',\n '&-tail': {\n marginInlineStart: iconSize / 2 + token.controlHeightLG,\n padding: `${token.paddingXXS}px ${token.paddingLG}px`\n },\n '&-content': {\n display: 'block',\n width: (iconSize / 2 + token.controlHeightLG) * 2,\n marginTop: token.marginSM,\n textAlign: 'center'\n },\n '&-icon': {\n display: 'inline-block',\n marginInlineStart: token.controlHeightLG\n },\n '&-title': {\n paddingInlineEnd: 0,\n paddingInlineStart: 0,\n '&::after': {\n display: 'none'\n }\n },\n '&-subtitle': {\n display: 'block',\n marginBottom: token.marginXXS,\n marginInlineStart: 0,\n lineHeight\n }\n },\n [`&${componentCls}-small:not(${componentCls}-dot)`]: {\n [`${componentCls}-item`]: {\n '&-icon': {\n marginInlineStart: token.controlHeightLG + (iconSize - iconSizeSM) / 2\n }\n }\n }\n }\n };\n};\nexport default genStepsLabelPlacementStyle;","import { textEllipsis } from '../../style';\nconst genStepsNavStyle = token => {\n const {\n componentCls,\n navContentMaxWidth,\n navArrowColor,\n stepsNavActiveColor,\n motionDurationSlow\n } = token;\n return {\n [`&${componentCls}-navigation`]: {\n paddingTop: token.paddingSM,\n [`&${componentCls}-small`]: {\n [`${componentCls}-item`]: {\n '&-container': {\n marginInlineStart: -token.marginSM\n }\n }\n },\n [`${componentCls}-item`]: {\n overflow: 'visible',\n textAlign: 'center',\n '&-container': {\n display: 'inline-block',\n height: '100%',\n marginInlineStart: -token.margin,\n paddingBottom: token.paddingSM,\n textAlign: 'start',\n transition: `opacity ${motionDurationSlow}`,\n [`${componentCls}-item-content`]: {\n maxWidth: navContentMaxWidth\n },\n [`${componentCls}-item-title`]: Object.assign(Object.assign({\n maxWidth: '100%',\n paddingInlineEnd: 0\n }, textEllipsis), {\n '&::after': {\n display: 'none'\n }\n })\n },\n [`&:not(${componentCls}-item-active)`]: {\n [`${componentCls}-item-container[role='button']`]: {\n cursor: 'pointer',\n '&:hover': {\n opacity: 0.85\n }\n }\n },\n '&:last-child': {\n flex: 1,\n '&::after': {\n display: 'none'\n }\n },\n '&::after': {\n position: 'absolute',\n top: `calc(50% - ${token.paddingSM / 2}px)`,\n insetInlineStart: '100%',\n display: 'inline-block',\n width: token.fontSizeIcon,\n height: token.fontSizeIcon,\n borderTop: `${token.lineWidth}px ${token.lineType} ${navArrowColor}`,\n borderBottom: 'none',\n borderInlineStart: 'none',\n borderInlineEnd: `${token.lineWidth}px ${token.lineType} ${navArrowColor}`,\n transform: 'translateY(-50%) translateX(-50%) rotate(45deg)',\n content: '\"\"'\n },\n '&::before': {\n position: 'absolute',\n bottom: 0,\n insetInlineStart: '50%',\n display: 'inline-block',\n width: 0,\n height: token.lineWidthBold,\n backgroundColor: stepsNavActiveColor,\n transition: `width ${motionDurationSlow}, inset-inline-start ${motionDurationSlow}`,\n transitionTimingFunction: 'ease-out',\n content: '\"\"'\n }\n },\n [`${componentCls}-item${componentCls}-item-active::before`]: {\n insetInlineStart: 0,\n width: '100%'\n }\n },\n [`&${componentCls}-navigation${componentCls}-vertical`]: {\n [`> ${componentCls}-item`]: {\n marginInlineEnd: 0,\n '&::before': {\n display: 'none'\n },\n [`&${componentCls}-item-active::before`]: {\n top: 0,\n insetInlineEnd: 0,\n insetInlineStart: 'unset',\n display: 'block',\n width: token.lineWidth * 3,\n height: `calc(100% - ${token.marginLG}px)`\n },\n '&::after': {\n position: 'relative',\n insetInlineStart: '50%',\n display: 'block',\n width: token.controlHeight * 0.25,\n height: token.controlHeight * 0.25,\n marginBottom: token.marginXS,\n textAlign: 'center',\n transform: 'translateY(-50%) translateX(-50%) rotate(135deg)'\n },\n [`> ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n visibility: 'hidden'\n }\n }\n },\n [`&${componentCls}-navigation${componentCls}-horizontal`]: {\n [`> ${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n visibility: 'hidden'\n }\n }\n };\n};\nexport default genStepsNavStyle;","const genStepsProgressStyle = token => {\n const {\n antCls,\n componentCls\n } = token;\n return {\n [`&${componentCls}-with-progress`]: {\n [`${componentCls}-item`]: {\n paddingTop: token.paddingXXS,\n [`&-process ${componentCls}-item-container ${componentCls}-item-icon ${componentCls}-icon`]: {\n color: token.processIconColor\n }\n },\n [`&${componentCls}-vertical > ${componentCls}-item `]: {\n paddingInlineStart: token.paddingXXS,\n [`> ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n top: token.marginXXS,\n insetInlineStart: token.iconSize / 2 - token.lineWidth + token.paddingXXS\n }\n },\n [`&, &${componentCls}-small`]: {\n [`&${componentCls}-horizontal ${componentCls}-item:first-child`]: {\n paddingBottom: token.paddingXXS,\n paddingInlineStart: token.paddingXXS\n }\n },\n [`&${componentCls}-small${componentCls}-vertical > ${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n insetInlineStart: token.iconSizeSM / 2 - token.lineWidth + token.paddingXXS\n },\n [`&${componentCls}-label-vertical`]: {\n [`${componentCls}-item ${componentCls}-item-tail`]: {\n top: token.margin - 2 * token.lineWidth\n }\n },\n [`${componentCls}-item-icon`]: {\n position: 'relative',\n [`${antCls}-progress`]: {\n position: 'absolute',\n insetBlockStart: (token.iconSize - token.stepsProgressSize - token.lineWidth * 2) / 2,\n insetInlineStart: (token.iconSize - token.stepsProgressSize - token.lineWidth * 2) / 2\n }\n }\n }\n };\n};\nexport default genStepsProgressStyle;","const genStepsProgressDotStyle = token => {\n const {\n componentCls,\n descriptionMaxWidth,\n lineHeight,\n dotCurrentSize,\n dotSize,\n motionDurationSlow\n } = token;\n return {\n [`&${componentCls}-dot, &${componentCls}-dot${componentCls}-small`]: {\n [`${componentCls}-item`]: {\n '&-title': {\n lineHeight\n },\n '&-tail': {\n top: Math.floor((token.dotSize - token.lineWidth * 3) / 2),\n width: '100%',\n marginTop: 0,\n marginBottom: 0,\n marginInline: `${descriptionMaxWidth / 2}px 0`,\n padding: 0,\n '&::after': {\n width: `calc(100% - ${token.marginSM * 2}px)`,\n height: token.lineWidth * 3,\n marginInlineStart: token.marginSM\n }\n },\n '&-icon': {\n width: dotSize,\n height: dotSize,\n marginInlineStart: (token.descriptionMaxWidth - dotSize) / 2,\n paddingInlineEnd: 0,\n lineHeight: `${dotSize}px`,\n background: 'transparent',\n border: 0,\n [`${componentCls}-icon-dot`]: {\n position: 'relative',\n float: 'left',\n width: '100%',\n height: '100%',\n borderRadius: 100,\n transition: `all ${motionDurationSlow}`,\n /* expand hover area */\n '&::after': {\n position: 'absolute',\n top: -token.marginSM,\n insetInlineStart: (dotSize - token.controlHeightLG * 1.5) / 2,\n width: token.controlHeightLG * 1.5,\n height: token.controlHeight,\n background: 'transparent',\n content: '\"\"'\n }\n }\n },\n '&-content': {\n width: descriptionMaxWidth\n },\n [`&-process ${componentCls}-item-icon`]: {\n position: 'relative',\n top: (dotSize - dotCurrentSize) / 2,\n width: dotCurrentSize,\n height: dotCurrentSize,\n lineHeight: `${dotCurrentSize}px`,\n background: 'none',\n marginInlineStart: (token.descriptionMaxWidth - dotCurrentSize) / 2\n },\n [`&-process ${componentCls}-icon`]: {\n [`&:first-child ${componentCls}-icon-dot`]: {\n insetInlineStart: 0\n }\n }\n }\n },\n [`&${componentCls}-vertical${componentCls}-dot`]: {\n [`${componentCls}-item-icon`]: {\n marginTop: (token.controlHeight - dotSize) / 2,\n marginInlineStart: 0,\n background: 'none'\n },\n [`${componentCls}-item-process ${componentCls}-item-icon`]: {\n marginTop: (token.controlHeight - dotCurrentSize) / 2,\n top: 0,\n insetInlineStart: (dotSize - dotCurrentSize) / 2,\n marginInlineStart: 0\n },\n // https://github.com/ant-design/ant-design/issues/18354\n [`${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n top: (token.controlHeight - dotSize) / 2,\n insetInlineStart: 0,\n margin: 0,\n padding: `${dotSize + token.paddingXS}px 0 ${token.paddingXS}px`,\n '&::after': {\n marginInlineStart: (dotSize - token.lineWidth) / 2\n }\n },\n [`&${componentCls}-small`]: {\n [`${componentCls}-item-icon`]: {\n marginTop: (token.controlHeightSM - dotSize) / 2\n },\n [`${componentCls}-item-process ${componentCls}-item-icon`]: {\n marginTop: (token.controlHeightSM - dotCurrentSize) / 2\n },\n [`${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n top: (token.controlHeightSM - dotSize) / 2\n }\n },\n [`${componentCls}-item:first-child ${componentCls}-icon-dot`]: {\n insetInlineStart: 0\n },\n [`${componentCls}-item-content`]: {\n width: 'inherit'\n }\n }\n };\n};\nexport default genStepsProgressDotStyle;","const genStepsRTLStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`&${componentCls}-rtl`]: {\n direction: 'rtl',\n [`${componentCls}-item`]: {\n '&-subtitle': {\n float: 'left'\n }\n },\n // nav\n [`&${componentCls}-navigation`]: {\n [`${componentCls}-item::after`]: {\n transform: 'rotate(-45deg)'\n }\n },\n // vertical\n [`&${componentCls}-vertical`]: {\n [`> ${componentCls}-item`]: {\n '&::after': {\n transform: 'rotate(225deg)'\n },\n [`${componentCls}-item-icon`]: {\n float: 'right'\n }\n }\n },\n // progress-dot\n [`&${componentCls}-dot`]: {\n [`${componentCls}-item-icon ${componentCls}-icon-dot, &${componentCls}-small ${componentCls}-item-icon ${componentCls}-icon-dot`]: {\n float: 'right'\n }\n }\n }\n };\n};\nexport default genStepsRTLStyle;","const genStepsSmallStyle = token => {\n const {\n componentCls,\n iconSizeSM,\n // stepsSmallIconMargin,\n fontSizeSM,\n fontSize,\n colorTextDescription\n } = token;\n return {\n [`&${componentCls}-small`]: {\n [`&${componentCls}-horizontal:not(${componentCls}-label-vertical) ${componentCls}-item`]: {\n paddingInlineStart: token.paddingSM,\n '&:first-child': {\n paddingInlineStart: 0\n }\n },\n [`${componentCls}-item-icon`]: {\n width: iconSizeSM,\n height: iconSizeSM,\n // margin: stepsSmallIconMargin,\n marginTop: 0,\n marginBottom: 0,\n marginInline: `0 ${token.marginXS}px`,\n fontSize: fontSizeSM,\n lineHeight: `${iconSizeSM}px`,\n textAlign: 'center',\n borderRadius: iconSizeSM\n },\n [`${componentCls}-item-title`]: {\n paddingInlineEnd: token.paddingSM,\n fontSize,\n lineHeight: `${iconSizeSM}px`,\n '&::after': {\n top: iconSizeSM / 2\n }\n },\n [`${componentCls}-item-description`]: {\n color: colorTextDescription,\n fontSize\n },\n [`${componentCls}-item-tail`]: {\n top: iconSizeSM / 2 - token.paddingXXS\n },\n [`${componentCls}-item-custom ${componentCls}-item-icon`]: {\n width: 'inherit',\n height: 'inherit',\n lineHeight: 'inherit',\n background: 'none',\n border: 0,\n borderRadius: 0,\n [`> ${componentCls}-icon`]: {\n fontSize: iconSizeSM,\n lineHeight: `${iconSizeSM}px`,\n transform: 'none'\n }\n }\n }\n };\n};\nexport default genStepsSmallStyle;","const genStepsVerticalStyle = token => {\n const {\n componentCls,\n iconSizeSM,\n iconSize\n } = token;\n return {\n [`&${componentCls}-vertical`]: {\n display: 'flex',\n flexDirection: 'column',\n [`> ${componentCls}-item`]: {\n display: 'block',\n flex: '1 0 auto',\n paddingInlineStart: 0,\n overflow: 'visible',\n [`${componentCls}-item-icon`]: {\n float: 'left',\n marginInlineEnd: token.margin\n },\n [`${componentCls}-item-content`]: {\n display: 'block',\n minHeight: token.controlHeight * 1.5,\n overflow: 'hidden'\n },\n [`${componentCls}-item-title`]: {\n lineHeight: `${iconSize}px`\n },\n [`${componentCls}-item-description`]: {\n paddingBottom: token.paddingSM\n }\n },\n [`> ${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n position: 'absolute',\n top: 0,\n insetInlineStart: iconSize / 2 - token.lineWidth,\n width: token.lineWidth,\n height: '100%',\n padding: `${iconSize + token.marginXXS * 1.5}px 0 ${token.marginXXS * 1.5}px`,\n '&::after': {\n width: token.lineWidth,\n height: '100%'\n }\n },\n [`> ${componentCls}-item:not(:last-child) > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n display: 'block'\n },\n [` > ${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-content > ${componentCls}-item-title`]: {\n '&::after': {\n display: 'none'\n }\n },\n [`&${componentCls}-small ${componentCls}-item-container`]: {\n [`${componentCls}-item-tail`]: {\n position: 'absolute',\n top: 0,\n insetInlineStart: iconSizeSM / 2 - token.lineWidth,\n padding: `${iconSizeSM + token.marginXXS * 1.5}px 0 ${token.marginXXS * 1.5}px`\n },\n [`${componentCls}-item-title`]: {\n lineHeight: `${iconSizeSM}px`\n }\n }\n }\n };\n};\nexport default genStepsVerticalStyle;","import { genFocusOutline, resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genStepsCustomIconStyle from './custom-icon';\nimport genStepsInlineStyle from './inline';\nimport genStepsLabelPlacementStyle from './label-placement';\nimport genStepsNavStyle from './nav';\nimport genStepsProgressStyle from './progress';\nimport genStepsProgressDotStyle from './progress-dot';\nimport genStepsRTLStyle from './rtl';\nimport genStepsSmallStyle from './small';\nimport genStepsVerticalStyle from './vertical';\nvar StepItemStatusEnum;\n(function (StepItemStatusEnum) {\n StepItemStatusEnum[\"wait\"] = \"wait\";\n StepItemStatusEnum[\"process\"] = \"process\";\n StepItemStatusEnum[\"finish\"] = \"finish\";\n StepItemStatusEnum[\"error\"] = \"error\";\n})(StepItemStatusEnum || (StepItemStatusEnum = {}));\nconst genStepsItemStatusStyle = (status, token) => {\n const prefix = `${token.componentCls}-item`;\n const iconColorKey = `${status}IconColor`;\n const titleColorKey = `${status}TitleColor`;\n const descriptionColorKey = `${status}DescriptionColor`;\n const tailColorKey = `${status}TailColor`;\n const iconBgColorKey = `${status}IconBgColor`;\n const iconBorderColorKey = `${status}IconBorderColor`;\n const dotColorKey = `${status}DotColor`;\n return {\n [`${prefix}-${status} ${prefix}-icon`]: {\n backgroundColor: token[iconBgColorKey],\n borderColor: token[iconBorderColorKey],\n [`> ${token.componentCls}-icon`]: {\n color: token[iconColorKey],\n [`${token.componentCls}-icon-dot`]: {\n background: token[dotColorKey]\n }\n }\n },\n [`${prefix}-${status}${prefix}-custom ${prefix}-icon`]: {\n [`> ${token.componentCls}-icon`]: {\n color: token[dotColorKey]\n }\n },\n [`${prefix}-${status} > ${prefix}-container > ${prefix}-content > ${prefix}-title`]: {\n color: token[titleColorKey],\n '&::after': {\n backgroundColor: token[tailColorKey]\n }\n },\n [`${prefix}-${status} > ${prefix}-container > ${prefix}-content > ${prefix}-description`]: {\n color: token[descriptionColorKey]\n },\n [`${prefix}-${status} > ${prefix}-container > ${prefix}-tail::after`]: {\n backgroundColor: token[tailColorKey]\n }\n };\n};\nconst genStepsItemStyle = token => {\n const {\n componentCls,\n motionDurationSlow\n } = token;\n const stepsItemCls = `${componentCls}-item`; // .ant-steps-item\n const stepItemIconCls = `${stepsItemCls}-icon`;\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n [stepsItemCls]: {\n position: 'relative',\n display: 'inline-block',\n flex: 1,\n overflow: 'hidden',\n verticalAlign: 'top',\n '&:last-child': {\n flex: 'none',\n [`> ${stepsItemCls}-container > ${stepsItemCls}-tail, > ${stepsItemCls}-container > ${stepsItemCls}-content > ${stepsItemCls}-title::after`]: {\n display: 'none'\n }\n }\n },\n [`${stepsItemCls}-container`]: {\n outline: 'none',\n [`&:focus-visible`]: {\n [stepItemIconCls]: Object.assign({}, genFocusOutline(token))\n }\n },\n [`${stepItemIconCls}, ${stepsItemCls}-content`]: {\n display: 'inline-block',\n verticalAlign: 'top'\n },\n [stepItemIconCls]: {\n width: token.iconSize,\n height: token.iconSize,\n marginTop: 0,\n marginBottom: 0,\n marginInlineStart: 0,\n marginInlineEnd: token.marginXS,\n fontSize: token.iconFontSize,\n fontFamily: token.fontFamily,\n lineHeight: `${token.iconSize}px`,\n textAlign: 'center',\n borderRadius: token.iconSize,\n border: `${token.lineWidth}px ${token.lineType} transparent`,\n transition: `background-color ${motionDurationSlow}, border-color ${motionDurationSlow}`,\n [`${componentCls}-icon`]: {\n position: 'relative',\n top: token.iconTop,\n color: token.colorPrimary,\n lineHeight: 1\n }\n },\n [`${stepsItemCls}-tail`]: {\n position: 'absolute',\n top: token.iconSize / 2 - token.paddingXXS,\n insetInlineStart: 0,\n width: '100%',\n '&::after': {\n display: 'inline-block',\n width: '100%',\n height: token.lineWidth,\n background: token.colorSplit,\n borderRadius: token.lineWidth,\n transition: `background ${motionDurationSlow}`,\n content: '\"\"'\n }\n },\n [`${stepsItemCls}-title`]: {\n position: 'relative',\n display: 'inline-block',\n paddingInlineEnd: token.padding,\n color: token.colorText,\n fontSize: token.fontSizeLG,\n lineHeight: `${token.titleLineHeight}px`,\n '&::after': {\n position: 'absolute',\n top: token.titleLineHeight / 2,\n insetInlineStart: '100%',\n display: 'block',\n width: 9999,\n height: token.lineWidth,\n background: token.processTailColor,\n content: '\"\"'\n }\n },\n [`${stepsItemCls}-subtitle`]: {\n display: 'inline',\n marginInlineStart: token.marginXS,\n color: token.colorTextDescription,\n fontWeight: 'normal',\n fontSize: token.fontSize\n },\n [`${stepsItemCls}-description`]: {\n color: token.colorTextDescription,\n fontSize: token.fontSize\n }\n }, genStepsItemStatusStyle(StepItemStatusEnum.wait, token)), genStepsItemStatusStyle(StepItemStatusEnum.process, token)), {\n [`${stepsItemCls}-process > ${stepsItemCls}-container > ${stepsItemCls}-title`]: {\n fontWeight: token.fontWeightStrong\n }\n }), genStepsItemStatusStyle(StepItemStatusEnum.finish, token)), genStepsItemStatusStyle(StepItemStatusEnum.error, token)), {\n [`${stepsItemCls}${componentCls}-next-error > ${componentCls}-item-title::after`]: {\n background: token.colorError\n },\n [`${stepsItemCls}-disabled`]: {\n cursor: 'not-allowed'\n }\n });\n};\n// ============================= Clickable ===========================\nconst genStepsClickableStyle = token => {\n const {\n componentCls,\n motionDurationSlow\n } = token;\n return {\n [`& ${componentCls}-item`]: {\n [`&:not(${componentCls}-item-active)`]: {\n [`& > ${componentCls}-item-container[role='button']`]: {\n cursor: 'pointer',\n [`${componentCls}-item`]: {\n [`&-title, &-subtitle, &-description, &-icon ${componentCls}-icon`]: {\n transition: `color ${motionDurationSlow}`\n }\n },\n '&:hover': {\n [`${componentCls}-item`]: {\n [`&-title, &-subtitle, &-description`]: {\n color: token.colorPrimary\n }\n }\n }\n },\n [`&:not(${componentCls}-item-process)`]: {\n [`& > ${componentCls}-item-container[role='button']:hover`]: {\n [`${componentCls}-item`]: {\n '&-icon': {\n borderColor: token.colorPrimary,\n [`${componentCls}-icon`]: {\n color: token.colorPrimary\n }\n }\n }\n }\n }\n }\n },\n [`&${componentCls}-horizontal:not(${componentCls}-label-vertical)`]: {\n [`${componentCls}-item`]: {\n paddingInlineStart: token.padding,\n whiteSpace: 'nowrap',\n '&:first-child': {\n paddingInlineStart: 0\n },\n [`&:last-child ${componentCls}-item-title`]: {\n paddingInlineEnd: 0\n },\n '&-tail': {\n display: 'none'\n },\n '&-description': {\n maxWidth: token.descriptionMaxWidth,\n whiteSpace: 'normal'\n }\n }\n }\n };\n};\nconst genStepsStyle = token => {\n const {\n componentCls\n } = token; // .ant-steps\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'flex',\n width: '100%',\n fontSize: 0,\n textAlign: 'initial'\n }), genStepsItemStyle(token)), genStepsClickableStyle(token)), genStepsCustomIconStyle(token)), genStepsSmallStyle(token)), genStepsVerticalStyle(token)), genStepsLabelPlacementStyle(token)), genStepsProgressDotStyle(token)), genStepsNavStyle(token)), genStepsRTLStyle(token)), genStepsProgressStyle(token)), genStepsInlineStyle(token))\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Steps', token => {\n const {\n wireframe,\n colorTextDisabled,\n controlHeightLG,\n colorTextLightSolid,\n colorText,\n colorPrimary,\n colorTextLabel,\n colorTextDescription,\n colorTextQuaternary,\n colorFillContent,\n controlItemBgActive,\n colorError,\n colorBgContainer,\n colorBorderSecondary,\n colorSplit\n } = token;\n const stepsToken = mergeToken(token, {\n // Steps component less variable\n processIconColor: colorTextLightSolid,\n processTitleColor: colorText,\n processDescriptionColor: colorText,\n processIconBgColor: colorPrimary,\n processIconBorderColor: colorPrimary,\n processDotColor: colorPrimary,\n processTailColor: colorSplit,\n waitIconColor: wireframe ? colorTextDisabled : colorTextLabel,\n waitTitleColor: colorTextDescription,\n waitDescriptionColor: colorTextDescription,\n waitTailColor: colorSplit,\n waitIconBgColor: wireframe ? colorBgContainer : colorFillContent,\n waitIconBorderColor: wireframe ? colorTextDisabled : 'transparent',\n waitDotColor: colorTextDisabled,\n finishIconColor: colorPrimary,\n finishTitleColor: colorText,\n finishDescriptionColor: colorTextDescription,\n finishTailColor: colorPrimary,\n finishIconBgColor: wireframe ? colorBgContainer : controlItemBgActive,\n finishIconBorderColor: wireframe ? colorPrimary : controlItemBgActive,\n finishDotColor: colorPrimary,\n errorIconColor: colorTextLightSolid,\n errorTitleColor: colorError,\n errorDescriptionColor: colorError,\n errorTailColor: colorSplit,\n errorIconBgColor: colorError,\n errorIconBorderColor: colorError,\n errorDotColor: colorError,\n stepsNavActiveColor: colorPrimary,\n stepsProgressSize: controlHeightLG,\n // Steps inline variable\n inlineDotSize: 6,\n inlineTitleColor: colorTextQuaternary,\n inlineTailColor: colorBorderSecondary\n });\n return [genStepsStyle(stepsToken)];\n}, token => {\n const {\n colorTextDisabled,\n fontSize,\n controlHeightSM,\n controlHeight,\n controlHeightLG,\n fontSizeHeading3\n } = token;\n return {\n titleLineHeight: controlHeight,\n customIconSize: controlHeight,\n customIconTop: 0,\n customIconFontSize: controlHeightSM,\n iconSize: controlHeight,\n iconTop: -0.5,\n iconFontSize: fontSize,\n iconSizeSM: fontSizeHeading3,\n dotSize: controlHeight / 4,\n dotCurrentSize: controlHeightLG / 4,\n navArrowColor: colorTextDisabled,\n navContentMaxWidth: 'auto',\n descriptionMaxWidth: 140\n };\n});","import * 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, 'Steps', 'Step is deprecated. Please use `items` directly.') : void 0;\n const childrenItems = toArray(children).map(node => {\n if ( /*#__PURE__*/React.isValidElement(node)) {\n const {\n props\n } = node;\n const item = Object.assign({}, props);\n return item;\n }\n return null;\n });\n return filter(childrenItems);\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 CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport RcSteps from 'rc-steps';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport Progress from '../progress';\nimport Tooltip from '../tooltip';\nimport useStyle from './style';\nimport useLegacyItems from './useLegacyItems';\nconst Steps = props => {\n const {\n percent,\n size: customizeSize,\n className,\n rootClassName,\n direction,\n items,\n responsive = true,\n current = 0,\n children,\n style\n } = props,\n restProps = __rest(props, [\"percent\", \"size\", \"className\", \"rootClassName\", \"direction\", \"items\", \"responsive\", \"current\", \"children\", \"style\"]);\n const {\n xs\n } = useBreakpoint(responsive);\n const {\n getPrefixCls,\n direction: rtlDirection,\n steps\n } = React.useContext(ConfigContext);\n const realDirectionValue = React.useMemo(() => responsive && xs ? 'vertical' : direction, [xs, direction]);\n const size = useSize(customizeSize);\n const prefixCls = getPrefixCls('steps', props.prefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const isInline = props.type === 'inline';\n const iconPrefix = getPrefixCls('', props.iconPrefix);\n const mergedItems = useLegacyItems(items, children);\n const mergedPercent = isInline ? undefined : percent;\n const mergedStyle = Object.assign(Object.assign({}, steps === null || steps === void 0 ? void 0 : steps.style), style);\n const stepsClassName = classNames(steps === null || steps === void 0 ? void 0 : steps.className, {\n [`${prefixCls}-rtl`]: rtlDirection === 'rtl',\n [`${prefixCls}-with-progress`]: mergedPercent !== undefined\n }, className, rootClassName, hashId);\n const icons = {\n finish: /*#__PURE__*/React.createElement(CheckOutlined, {\n className: `${prefixCls}-finish-icon`\n }),\n error: /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-error-icon`\n })\n };\n const stepIconRender = _ref => {\n let {\n node,\n status\n } = _ref;\n if (status === 'process' && mergedPercent !== undefined) {\n // currently it's hard-coded, since we can't easily read the actually width of icon\n const progressWidth = size === 'small' ? 32 : 40;\n // iconWithProgress\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-progress-icon`\n }, /*#__PURE__*/React.createElement(Progress, {\n type: \"circle\",\n percent: mergedPercent,\n size: progressWidth,\n strokeWidth: 4,\n format: () => null\n }), node);\n }\n return node;\n };\n const itemRender = (item, stepItem) => item.description ? /*#__PURE__*/React.createElement(Tooltip, {\n title: item.description\n }, stepItem) : stepItem;\n return wrapSSR( /*#__PURE__*/React.createElement(RcSteps, Object.assign({\n icons: icons\n }, restProps, {\n style: mergedStyle,\n current: current,\n size: size,\n items: mergedItems,\n itemRender: isInline ? itemRender : undefined,\n stepIcon: stepIconRender,\n direction: realDirectionValue,\n prefixCls: prefixCls,\n iconPrefix: iconPrefix,\n className: stepsClassName\n })));\n};\nSteps.Step = RcSteps.Step;\nif (process.env.NODE_ENV !== 'production') {\n Steps.displayName = 'Steps';\n}\nexport default Steps;","// eslint-disable-next-line import/prefer-default-export\nexport const operationUnit = token => ({\n // FIXME: This use link but is a operation unit. Seems should be a colorPrimary.\n // And Typography use this to generate link style which should not do this.\n color: token.colorLink,\n textDecoration: 'none',\n outline: 'none',\n cursor: 'pointer',\n transition: `color ${token.motionDurationSlow}`,\n '&:focus, &:hover': {\n color: token.colorLinkHover\n },\n '&:active': {\n color: token.colorLinkActive\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"checked\", \"defaultChecked\", \"disabled\", \"loadingIcon\", \"checkedChildren\", \"unCheckedChildren\", \"onClick\", \"onChange\", \"onKeyDown\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nvar Switch = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var _classNames;\n var _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-switch' : _ref$prefixCls,\n className = _ref.className,\n checked = _ref.checked,\n defaultChecked = _ref.defaultChecked,\n disabled = _ref.disabled,\n loadingIcon = _ref.loadingIcon,\n checkedChildren = _ref.checkedChildren,\n unCheckedChildren = _ref.unCheckedChildren,\n onClick = _ref.onClick,\n onChange = _ref.onChange,\n onKeyDown = _ref.onKeyDown,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _useMergedState = useMergedState(false, {\n value: checked,\n defaultValue: defaultChecked\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n innerChecked = _useMergedState2[0],\n setInnerChecked = _useMergedState2[1];\n function triggerChange(newChecked, event) {\n var mergedChecked = innerChecked;\n if (!disabled) {\n mergedChecked = newChecked;\n setInnerChecked(mergedChecked);\n onChange === null || onChange === void 0 ? void 0 : onChange(mergedChecked, event);\n }\n return mergedChecked;\n }\n function onInternalKeyDown(e) {\n if (e.which === KeyCode.LEFT) {\n triggerChange(false, e);\n } else if (e.which === KeyCode.RIGHT) {\n triggerChange(true, e);\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n }\n function onInternalClick(e) {\n var ret = triggerChange(!innerChecked, e);\n // [Legacy] trigger onClick with value\n onClick === null || onClick === void 0 ? void 0 : onClick(ret, e);\n }\n var switchClassName = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checked\"), innerChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames));\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, restProps, {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": innerChecked,\n disabled: disabled,\n className: switchClassName,\n ref: ref,\n onKeyDown: onInternalKeyDown,\n onClick: onInternalClick\n }), loadingIcon, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner\")\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner-checked\")\n }, checkedChildren), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner-unchecked\")\n }, unCheckedChildren)));\n});\nSwitch.displayName = 'Switch';\nexport default Switch;","import { TinyColor } from '@ctrl/tinycolor';\nimport { genFocusStyle, resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genSwitchSmallStyle = token => {\n const {\n componentCls\n } = token;\n const switchInnerCls = `${componentCls}-inner`;\n return {\n [componentCls]: {\n [`&${componentCls}-small`]: {\n minWidth: token.switchMinWidthSM,\n height: token.switchHeightSM,\n lineHeight: `${token.switchHeightSM}px`,\n [`${componentCls}-inner`]: {\n paddingInlineStart: token.switchInnerMarginMaxSM,\n paddingInlineEnd: token.switchInnerMarginMinSM,\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: `calc(-100% + ${token.switchPinSizeSM + token.switchPadding * 2}px - ${token.switchInnerMarginMaxSM * 2}px)`,\n marginInlineEnd: `calc(100% - ${token.switchPinSizeSM + token.switchPadding * 2}px + ${token.switchInnerMarginMaxSM * 2}px)`\n },\n [`${switchInnerCls}-unchecked`]: {\n marginTop: -token.switchHeightSM,\n marginInlineStart: 0,\n marginInlineEnd: 0\n }\n },\n [`${componentCls}-handle`]: {\n width: token.switchPinSizeSM,\n height: token.switchPinSizeSM\n },\n [`${componentCls}-loading-icon`]: {\n top: (token.switchPinSizeSM - token.switchLoadingIconSize) / 2,\n fontSize: token.switchLoadingIconSize\n },\n [`&${componentCls}-checked`]: {\n [`${componentCls}-inner`]: {\n paddingInlineStart: token.switchInnerMarginMinSM,\n paddingInlineEnd: token.switchInnerMarginMaxSM,\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: 0,\n marginInlineEnd: 0\n },\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: `calc(100% - ${token.switchPinSizeSM + token.switchPadding * 2}px + ${token.switchInnerMarginMaxSM * 2}px)`,\n marginInlineEnd: `calc(-100% + ${token.switchPinSizeSM + token.switchPadding * 2}px - ${token.switchInnerMarginMaxSM * 2}px)`\n }\n },\n [`${componentCls}-handle`]: {\n insetInlineStart: `calc(100% - ${token.switchPinSizeSM + token.switchPadding}px)`\n }\n },\n [`&:not(${componentCls}-disabled):active`]: {\n [`&:not(${componentCls}-checked) ${switchInnerCls}`]: {\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: token.marginXXS / 2,\n marginInlineEnd: -token.marginXXS / 2\n }\n },\n [`&${componentCls}-checked ${switchInnerCls}`]: {\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: -token.marginXXS / 2,\n marginInlineEnd: token.marginXXS / 2\n }\n }\n }\n }\n }\n };\n};\nconst genSwitchLoadingStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n [`${componentCls}-loading-icon${token.iconCls}`]: {\n position: 'relative',\n top: (token.switchPinSize - token.fontSize) / 2,\n color: token.switchLoadingIconColor,\n verticalAlign: 'top'\n },\n [`&${componentCls}-checked ${componentCls}-loading-icon`]: {\n color: token.switchColor\n }\n }\n };\n};\nconst genSwitchHandleStyle = token => {\n const {\n componentCls,\n motion\n } = token;\n const switchHandleCls = `${componentCls}-handle`;\n return {\n [componentCls]: {\n [switchHandleCls]: {\n position: 'absolute',\n top: token.switchPadding,\n insetInlineStart: token.switchPadding,\n width: token.switchPinSize,\n height: token.switchPinSize,\n transition: `all ${token.switchDuration} ease-in-out`,\n '&::before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n backgroundColor: token.colorWhite,\n borderRadius: token.switchPinSize / 2,\n boxShadow: token.switchHandleShadow,\n transition: `all ${token.switchDuration} ease-in-out`,\n content: '\"\"'\n }\n },\n [`&${componentCls}-checked ${switchHandleCls}`]: {\n insetInlineStart: `calc(100% - ${token.switchPinSize + token.switchPadding}px)`\n },\n [`&:not(${componentCls}-disabled):active`]: motion ? {\n [`${switchHandleCls}::before`]: {\n insetInlineEnd: token.switchHandleActiveInset,\n insetInlineStart: 0\n },\n [`&${componentCls}-checked ${switchHandleCls}::before`]: {\n insetInlineEnd: 0,\n insetInlineStart: token.switchHandleActiveInset\n }\n } : /* istanbul ignore next */\n {}\n }\n };\n};\nconst genSwitchInnerStyle = token => {\n const {\n componentCls\n } = token;\n const switchInnerCls = `${componentCls}-inner`;\n return {\n [componentCls]: {\n [switchInnerCls]: {\n display: 'block',\n overflow: 'hidden',\n borderRadius: 100,\n height: '100%',\n paddingInlineStart: token.switchInnerMarginMax,\n paddingInlineEnd: token.switchInnerMarginMin,\n transition: `padding-inline-start ${token.switchDuration} ease-in-out, padding-inline-end ${token.switchDuration} ease-in-out`,\n [`${switchInnerCls}-checked, ${switchInnerCls}-unchecked`]: {\n display: 'block',\n color: token.colorTextLightSolid,\n fontSize: token.fontSizeSM,\n transition: `margin-inline-start ${token.switchDuration} ease-in-out, margin-inline-end ${token.switchDuration} ease-in-out`,\n pointerEvents: 'none'\n },\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: `calc(-100% + ${token.switchPinSize + token.switchPadding * 2}px - ${token.switchInnerMarginMax * 2}px)`,\n marginInlineEnd: `calc(100% - ${token.switchPinSize + token.switchPadding * 2}px + ${token.switchInnerMarginMax * 2}px)`\n },\n [`${switchInnerCls}-unchecked`]: {\n marginTop: -token.switchHeight,\n marginInlineStart: 0,\n marginInlineEnd: 0\n }\n },\n [`&${componentCls}-checked ${switchInnerCls}`]: {\n paddingInlineStart: token.switchInnerMarginMin,\n paddingInlineEnd: token.switchInnerMarginMax,\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: 0,\n marginInlineEnd: 0\n },\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: `calc(100% - ${token.switchPinSize + token.switchPadding * 2}px + ${token.switchInnerMarginMax * 2}px)`,\n marginInlineEnd: `calc(-100% + ${token.switchPinSize + token.switchPadding * 2}px - ${token.switchInnerMarginMax * 2}px)`\n }\n },\n [`&:not(${componentCls}-disabled):active`]: {\n [`&:not(${componentCls}-checked) ${switchInnerCls}`]: {\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: token.switchPadding * 2,\n marginInlineEnd: -token.switchPadding * 2\n }\n },\n [`&${componentCls}-checked ${switchInnerCls}`]: {\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: -token.switchPadding * 2,\n marginInlineEnd: token.switchPadding * 2\n }\n }\n }\n }\n };\n};\nconst genSwitchStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n boxSizing: 'border-box',\n minWidth: token.switchMinWidth,\n height: token.switchHeight,\n lineHeight: `${token.switchHeight}px`,\n verticalAlign: 'middle',\n background: token.colorTextQuaternary,\n border: '0',\n borderRadius: 100,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}`,\n userSelect: 'none',\n [`&:hover:not(${componentCls}-disabled)`]: {\n background: token.colorTextTertiary\n }\n }), genFocusStyle(token)), {\n [`&${componentCls}-checked`]: {\n background: token.switchColor,\n [`&:hover:not(${componentCls}-disabled)`]: {\n background: token.colorPrimaryHover\n }\n },\n [`&${componentCls}-loading, &${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n opacity: token.switchDisabledOpacity,\n '*': {\n boxShadow: 'none',\n cursor: 'not-allowed'\n }\n },\n // rtl style\n [`&${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Switch', token => {\n const switchHeight = token.fontSize * token.lineHeight;\n const switchHeightSM = token.controlHeight / 2;\n const switchPadding = 2; // This is magic\n const switchPinSize = switchHeight - switchPadding * 2;\n const switchPinSizeSM = switchHeightSM - switchPadding * 2;\n const switchToken = mergeToken(token, {\n switchMinWidth: switchPinSize * 2 + switchPadding * 4,\n switchHeight,\n switchDuration: token.motionDurationMid,\n switchColor: token.colorPrimary,\n switchDisabledOpacity: token.opacityLoading,\n switchInnerMarginMin: switchPinSize / 2,\n switchInnerMarginMax: switchPinSize + switchPadding + switchPadding * 2,\n switchPadding,\n switchPinSize,\n switchBg: token.colorBgContainer,\n switchMinWidthSM: switchPinSizeSM * 2 + switchPadding * 2,\n switchHeightSM,\n switchInnerMarginMinSM: switchPinSizeSM / 2,\n switchInnerMarginMaxSM: switchPinSizeSM + switchPadding + switchPadding * 2,\n switchPinSizeSM,\n switchHandleShadow: `0 2px 4px 0 ${new TinyColor('#00230b').setAlpha(0.2).toRgbString()}`,\n switchLoadingIconSize: token.fontSizeIcon * 0.75,\n switchLoadingIconColor: `rgba(0, 0, 0, ${token.opacityLoading})`,\n switchHandleActiveInset: '-30%'\n });\n return [genSwitchStyle(switchToken),\n // inner style\n genSwitchInnerStyle(switchToken),\n // handle style\n genSwitchHandleStyle(switchToken),\n // loading style\n genSwitchLoadingStyle(switchToken),\n // small style\n genSwitchSmallStyle(switchToken)];\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 LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport RcSwitch from 'rc-switch';\nimport * as React 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 useStyle from './style';\nconst Switch = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n size: customizeSize,\n disabled: customDisabled,\n loading,\n className,\n rootClassName,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"size\", \"disabled\", \"loading\", \"className\", \"rootClassName\", \"style\"]);\n process.env.NODE_ENV !== \"production\" ? warning('checked' in props || !('value' in props), 'Switch', '`value` is not a valid prop, do you mean `checked`?') : void 0;\n const {\n getPrefixCls,\n direction,\n switch: SWITCH\n } = React.useContext(ConfigContext);\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = (customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled) || loading;\n const prefixCls = getPrefixCls('switch', customizePrefixCls);\n const loadingIcon = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-handle`\n }, loading && /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: `${prefixCls}-loading-icon`\n }));\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergedSize = useSize(customizeSize);\n const classes = classNames(SWITCH === null || SWITCH === void 0 ? void 0 : SWITCH.className, {\n [`${prefixCls}-small`]: mergedSize === 'small',\n [`${prefixCls}-loading`]: loading,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId);\n const mergedStyle = Object.assign(Object.assign({}, SWITCH === null || SWITCH === void 0 ? void 0 : SWITCH.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(Wave, {\n component: \"Switch\"\n }, /*#__PURE__*/React.createElement(RcSwitch, Object.assign({}, restProps, {\n prefixCls: prefixCls,\n className: classes,\n style: mergedStyle,\n disabled: mergedDisabled,\n ref: ref,\n loadingIcon: loadingIcon\n }))));\n});\nSwitch.__ANT_SWITCH = true;\nif (process.env.NODE_ENV !== 'production') {\n Switch.displayName = 'Switch';\n}\nexport default Switch;","import * as React from 'react';\nexport default function useLazyKVMap(data, childrenColumnName, getRowKey) {\n const mapCacheRef = React.useRef({});\n function getRecordByKey(key) {\n if (!mapCacheRef.current || mapCacheRef.current.data !== data || mapCacheRef.current.childrenColumnName !== childrenColumnName || mapCacheRef.current.getRowKey !== getRowKey) {\n const kvMap = new Map();\n /* eslint-disable no-inner-declarations */\n function dig(records) {\n records.forEach((record, index) => {\n const rowKey = getRowKey(record, index);\n kvMap.set(rowKey, record);\n if (record && typeof record === 'object' && childrenColumnName in record) {\n dig(record[childrenColumnName] || []);\n }\n });\n }\n /* eslint-enable */\n dig(data);\n mapCacheRef.current = {\n data,\n childrenColumnName,\n kvMap,\n getRowKey\n };\n }\n return mapCacheRef.current.kvMap.get(key);\n }\n return [getRecordByKey];\n}","export var EXPAND_COLUMN = {};\nexport var INTERNAL_HOOKS = 'rc-table-internal-hook';","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nexport function createContext(defaultValue) {\n var Context = /*#__PURE__*/React.createContext(undefined);\n var Provider = function Provider(_ref) {\n var value = _ref.value,\n children = _ref.children;\n var valueRef = React.useRef(value);\n valueRef.current = value;\n var _React$useState = React.useState(function () {\n return {\n getValue: function getValue() {\n return valueRef.current;\n },\n listeners: new Set()\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n context = _React$useState2[0];\n useLayoutEffect(function () {\n unstable_batchedUpdates(function () {\n context.listeners.forEach(function (listener) {\n listener(value);\n });\n });\n }, [value]);\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: context\n }, children);\n };\n return {\n Context: Context,\n Provider: Provider,\n defaultValue: defaultValue\n };\n}\n\n/** e.g. useSelect(userContext) => user */\n\n/** e.g. useSelect(userContext, user => user.name) => user.name */\n\n/** e.g. useSelect(userContext, ['name', 'age']) => user { name, age } */\n\n/** e.g. useSelect(userContext, 'name') => user.name */\n\nexport function useContext(holder, selector) {\n var eventSelector = useEvent(typeof selector === 'function' ? selector : function (ctx) {\n if (selector === undefined) {\n return ctx;\n }\n if (!Array.isArray(selector)) {\n return ctx[selector];\n }\n var obj = {};\n selector.forEach(function (key) {\n obj[key] = ctx[key];\n });\n return obj;\n });\n var context = React.useContext(holder === null || holder === void 0 ? void 0 : holder.Context);\n var _ref2 = context || {},\n listeners = _ref2.listeners,\n getValue = _ref2.getValue;\n var valueRef = React.useRef();\n valueRef.current = eventSelector(context ? getValue() : holder === null || holder === void 0 ? void 0 : holder.defaultValue);\n var _React$useState3 = React.useState({}),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n forceUpdate = _React$useState4[1];\n useLayoutEffect(function () {\n if (!context) {\n return;\n }\n function trigger(nextValue) {\n var nextSelectorValue = eventSelector(nextValue);\n if (!isEqual(valueRef.current, nextSelectorValue, true)) {\n forceUpdate({});\n }\n }\n listeners.add(trigger);\n return function () {\n listeners.delete(trigger);\n };\n }, [context]);\n return valueRef.current;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\n/**\n * Create Immutable pair for `makeImmutable` and `responseImmutable`.\n */\nexport default function createImmutable() {\n var ImmutableContext = /*#__PURE__*/React.createContext(null);\n\n /**\n * Get render update mark by `makeImmutable` root.\n * Do not deps on the return value as render times\n * but only use for `useMemo` or `useCallback` deps.\n */\n function useImmutableMark() {\n return React.useContext(ImmutableContext);\n }\n\n /**\n * Wrapped Component will be marked as Immutable.\n * When Component parent trigger render,\n * it will notice children component (use with `responseImmutable`) node that parent has updated.\n * @param Component Passed Component\n * @param triggerRender Customize trigger `responseImmutable` children re-render logic. Default will always trigger re-render when this component re-render.\n */\n function makeImmutable(Component, shouldTriggerRender) {\n var refAble = supportRef(Component);\n var ImmutableComponent = function ImmutableComponent(props, ref) {\n var refProps = refAble ? {\n ref: ref\n } : {};\n var renderTimesRef = React.useRef(0);\n var prevProps = React.useRef(props);\n\n // If parent has the context, we do not wrap it\n var mark = useImmutableMark();\n if (mark !== null) {\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps));\n }\n if (\n // Always trigger re-render if not provide `notTriggerRender`\n !shouldTriggerRender || shouldTriggerRender(prevProps.current, props)) {\n renderTimesRef.current += 1;\n }\n prevProps.current = props;\n return /*#__PURE__*/React.createElement(ImmutableContext.Provider, {\n value: renderTimesRef.current\n }, /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps)));\n };\n if (process.env.NODE_ENV !== 'production') {\n ImmutableComponent.displayName = \"ImmutableRoot(\".concat(Component.displayName || Component.name, \")\");\n }\n return refAble ? /*#__PURE__*/React.forwardRef(ImmutableComponent) : ImmutableComponent;\n }\n\n /**\n * Wrapped Component with `React.memo`.\n * But will rerender when parent with `makeImmutable` rerender.\n */\n function responseImmutable(Component, propsAreEqual) {\n var refAble = supportRef(Component);\n var ImmutableComponent = function ImmutableComponent(props, ref) {\n var refProps = refAble ? {\n ref: ref\n } : {};\n useImmutableMark();\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps));\n };\n if (process.env.NODE_ENV !== 'production') {\n ImmutableComponent.displayName = \"ImmutableResponse(\".concat(Component.displayName || Component.name, \")\");\n }\n return refAble ? /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(ImmutableComponent), propsAreEqual) : /*#__PURE__*/React.memo(ImmutableComponent, propsAreEqual);\n }\n return {\n makeImmutable: makeImmutable,\n responseImmutable: responseImmutable,\n useImmutableMark: useImmutableMark\n };\n}","import { createContext, useContext } from \"./context\";\nimport createImmutable from \"./Immutable\";\n\n// For legacy usage, we export it directly\nvar _createImmutable = createImmutable(),\n makeImmutable = _createImmutable.makeImmutable,\n responseImmutable = _createImmutable.responseImmutable,\n useImmutableMark = _createImmutable.useImmutableMark;\nexport { createContext, useContext, createImmutable, makeImmutable, responseImmutable, useImmutableMark };","import { createContext } from '@rc-component/context';\nvar TableContext = createContext();\nexport default TableContext;","/* istanbul ignore file */\nimport * as React from 'react';\nfunction useRenderTimes(props, debug) {\n // Render times\n var timesRef = React.useRef(0);\n timesRef.current += 1;\n\n // Props changed\n var propsRef = React.useRef(props);\n var keys = [];\n Object.keys(props || {}).map(function (key) {\n var _propsRef$current;\n if ((props === null || props === void 0 ? void 0 : props[key]) !== ((_propsRef$current = propsRef.current) === null || _propsRef$current === void 0 ? void 0 : _propsRef$current[key])) {\n keys.push(key);\n }\n });\n propsRef.current = props;\n\n // Cache keys since React rerender may cause it lost\n var keysRef = React.useRef([]);\n if (keys.length) {\n keysRef.current = keys;\n }\n React.useDebugValue(timesRef.current);\n React.useDebugValue(keysRef.current.join(', '));\n if (debug) {\n console.log(\"\".concat(debug, \":\"), timesRef.current, keysRef.current);\n }\n return timesRef.current;\n}\nexport default process.env.NODE_ENV !== 'production' ? useRenderTimes : function () {};\nexport var RenderBlock = /*#__PURE__*/React.memo(function () {\n var times = useRenderTimes();\n return /*#__PURE__*/React.createElement(\"h1\", null, \"Render Times: \", times);\n});\nRenderBlock.displayName = 'RenderBlock';","import * as React from 'react';\n// TODO: Remove when use `responsiveImmutable`\nvar PerfContext = /*#__PURE__*/React.createContext({\n renderWithProps: false\n});\nexport default PerfContext;","var INTERNAL_KEY_PREFIX = 'RC_TABLE_KEY';\nfunction toArray(arr) {\n if (arr === undefined || arr === null) {\n return [];\n }\n return Array.isArray(arr) ? arr : [arr];\n}\nexport function getColumnsKey(columns) {\n var columnKeys = [];\n var keys = {};\n columns.forEach(function (column) {\n var _ref = column || {},\n key = _ref.key,\n dataIndex = _ref.dataIndex;\n var mergedKey = key || toArray(dataIndex).join('-') || INTERNAL_KEY_PREFIX;\n while (keys[mergedKey]) {\n mergedKey = \"\".concat(mergedKey, \"_next\");\n }\n keys[mergedKey] = true;\n columnKeys.push(mergedKey);\n });\n return columnKeys;\n}\nexport function validateValue(val) {\n return val !== null && val !== undefined;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { useImmutableMark } from '@rc-component/context';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport getValue from \"rc-util/es/utils/get\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport PerfContext from \"../context/PerfContext\";\nimport { validateValue } from \"../utils/valueUtil\";\nfunction isRenderCell(data) {\n return data && _typeof(data) === 'object' && !Array.isArray(data) && ! /*#__PURE__*/React.isValidElement(data);\n}\nexport default function useCellRender(record, dataIndex, renderIndex, children, render, shouldCellUpdate) {\n // TODO: Remove this after next major version\n var perfRecord = React.useContext(PerfContext);\n var mark = useImmutableMark();\n\n // ======================== Render ========================\n var retData = useMemo(function () {\n if (validateValue(children)) {\n return [children];\n }\n var path = dataIndex === null || dataIndex === undefined || dataIndex === '' ? [] : Array.isArray(dataIndex) ? dataIndex : [dataIndex];\n var value = getValue(record, path);\n\n // Customize render node\n var returnChildNode = value;\n var returnCellProps = undefined;\n if (render) {\n var renderData = render(value, record, renderIndex);\n if (isRenderCell(renderData)) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`columns.render` return cell props is deprecated with perf issue, please use `onCell` instead.');\n }\n returnChildNode = renderData.children;\n returnCellProps = renderData.props;\n perfRecord.renderWithProps = true;\n } else {\n returnChildNode = renderData;\n }\n }\n return [returnChildNode, returnCellProps];\n }, [\n // Force update deps\n mark,\n // Normal deps\n record, children, dataIndex, render, renderIndex], function (prev, next) {\n if (shouldCellUpdate) {\n var _prev = _slicedToArray(prev, 2),\n prevRecord = _prev[1];\n var _next = _slicedToArray(next, 2),\n nextRecord = _next[1];\n return shouldCellUpdate(nextRecord, prevRecord);\n }\n\n // Legacy mode should always update\n if (perfRecord.renderWithProps) {\n return true;\n }\n return !isEqual(prev, next, true);\n });\n return retData;\n}","import { useContext } from '@rc-component/context';\nimport TableContext from \"../context/TableContext\";\n/** Check if cell is in hover range */\nfunction inHoverRange(cellStartRow, cellRowSpan, startRow, endRow) {\n var cellEndRow = cellStartRow + cellRowSpan - 1;\n return cellStartRow <= endRow && cellEndRow >= startRow;\n}\nexport default function useHoverState(rowIndex, rowSpan) {\n return useContext(TableContext, function (ctx) {\n var hovering = inHoverRange(rowIndex, rowSpan || 1, ctx.hoverStartRow, ctx.hoverEndRow);\n return [hovering, ctx.onHover];\n });\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 _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport useCellRender from \"./useCellRender\";\nimport useHoverState from \"./useHoverState\";\nvar getTitleFromCellRenderChildren = function getTitleFromCellRenderChildren(_ref) {\n var ellipsis = _ref.ellipsis,\n rowType = _ref.rowType,\n children = _ref.children;\n var title;\n var ellipsisConfig = ellipsis === true ? {\n showTitle: true\n } : ellipsis;\n if (ellipsisConfig && (ellipsisConfig.showTitle || rowType === 'header')) {\n if (typeof children === 'string' || typeof children === 'number') {\n title = children.toString();\n } else if ( /*#__PURE__*/React.isValidElement(children) && typeof children.props.children === 'string') {\n title = children.props.children;\n }\n }\n return title;\n};\nfunction Cell(props) {\n var _ref2, _ref3, _legacyCellProps$colS, _ref4, _ref5, _legacyCellProps$rowS, _additionalProps$titl, _classNames;\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var Component = props.component,\n children = props.children,\n ellipsis = props.ellipsis,\n scope = props.scope,\n prefixCls = props.prefixCls,\n className = props.className,\n align = props.align,\n record = props.record,\n render = props.render,\n dataIndex = props.dataIndex,\n renderIndex = props.renderIndex,\n shouldCellUpdate = props.shouldCellUpdate,\n index = props.index,\n rowType = props.rowType,\n colSpan = props.colSpan,\n rowSpan = props.rowSpan,\n fixLeft = props.fixLeft,\n fixRight = props.fixRight,\n firstFixLeft = props.firstFixLeft,\n lastFixLeft = props.lastFixLeft,\n firstFixRight = props.firstFixRight,\n lastFixRight = props.lastFixRight,\n appendNode = props.appendNode,\n _props$additionalProp = props.additionalProps,\n additionalProps = _props$additionalProp === void 0 ? {} : _props$additionalProp,\n isSticky = props.isSticky;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var _useContext = useContext(TableContext, ['supportSticky', 'allColumnsFixedLeft']),\n supportSticky = _useContext.supportSticky,\n allColumnsFixedLeft = _useContext.allColumnsFixedLeft;\n\n // ====================== Value =======================\n var _useCellRender = useCellRender(record, dataIndex, renderIndex, children, render, shouldCellUpdate),\n _useCellRender2 = _slicedToArray(_useCellRender, 2),\n childNode = _useCellRender2[0],\n legacyCellProps = _useCellRender2[1];\n\n // ====================== Fixed =======================\n var fixedStyle = {};\n var isFixLeft = typeof fixLeft === 'number' && supportSticky;\n var isFixRight = typeof fixRight === 'number' && supportSticky;\n if (isFixLeft) {\n fixedStyle.position = 'sticky';\n fixedStyle.left = fixLeft;\n }\n if (isFixRight) {\n fixedStyle.position = 'sticky';\n fixedStyle.right = fixRight;\n }\n\n // ================ RowSpan & ColSpan =================\n var mergedColSpan = (_ref2 = (_ref3 = (_legacyCellProps$colS = legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.colSpan) !== null && _legacyCellProps$colS !== void 0 ? _legacyCellProps$colS : additionalProps.colSpan) !== null && _ref3 !== void 0 ? _ref3 : colSpan) !== null && _ref2 !== void 0 ? _ref2 : 1;\n var mergedRowSpan = (_ref4 = (_ref5 = (_legacyCellProps$rowS = legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.rowSpan) !== null && _legacyCellProps$rowS !== void 0 ? _legacyCellProps$rowS : additionalProps.rowSpan) !== null && _ref5 !== void 0 ? _ref5 : rowSpan) !== null && _ref4 !== void 0 ? _ref4 : 1;\n\n // ====================== Hover =======================\n var _useHoverState = useHoverState(index, mergedRowSpan),\n _useHoverState2 = _slicedToArray(_useHoverState, 2),\n hovering = _useHoverState2[0],\n onHover = _useHoverState2[1];\n var onMouseEnter = function onMouseEnter(event) {\n var _additionalProps$onMo;\n if (record) {\n onHover(index, index + mergedRowSpan - 1);\n }\n additionalProps === null || additionalProps === void 0 ? void 0 : (_additionalProps$onMo = additionalProps.onMouseEnter) === null || _additionalProps$onMo === void 0 ? void 0 : _additionalProps$onMo.call(additionalProps, event);\n };\n var onMouseLeave = function onMouseLeave(event) {\n var _additionalProps$onMo2;\n if (record) {\n onHover(-1, -1);\n }\n additionalProps === null || additionalProps === void 0 ? void 0 : (_additionalProps$onMo2 = additionalProps.onMouseLeave) === null || _additionalProps$onMo2 === void 0 ? void 0 : _additionalProps$onMo2.call(additionalProps, event);\n };\n\n // ====================== Render ======================\n if (mergedColSpan === 0 || mergedRowSpan === 0) {\n return null;\n }\n\n // >>>>> Title\n var title = (_additionalProps$titl = additionalProps.title) !== null && _additionalProps$titl !== void 0 ? _additionalProps$titl : getTitleFromCellRenderChildren({\n rowType: rowType,\n ellipsis: ellipsis,\n children: childNode\n });\n\n // >>>>> ClassName\n var mergedClassName = classNames(cellPrefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left\"), isFixLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left-first\"), firstFixLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left-last\"), lastFixLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left-all\"), lastFixLeft && allColumnsFixedLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-right\"), isFixRight && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-right-first\"), firstFixRight && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-right-last\"), lastFixRight && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-ellipsis\"), ellipsis), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-with-append\"), appendNode), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-sticky\"), (isFixLeft || isFixRight) && isSticky && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-row-hover\"), !legacyCellProps && hovering), _classNames), additionalProps.className, legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.className);\n\n // >>>>> Style\n var alignStyle = {};\n if (align) {\n alignStyle.textAlign = align;\n }\n var mergedStyle = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, additionalProps.style), alignStyle), fixedStyle), legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.style);\n\n // >>>>> Children Node\n var mergedChildNode = childNode;\n\n // Not crash if final `childNode` is not validate ReactNode\n if (_typeof(mergedChildNode) === 'object' && !Array.isArray(mergedChildNode) && ! /*#__PURE__*/React.isValidElement(mergedChildNode)) {\n mergedChildNode = null;\n }\n if (ellipsis && (lastFixLeft || firstFixRight)) {\n mergedChildNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(cellPrefixCls, \"-content\")\n }, mergedChildNode);\n }\n return /*#__PURE__*/React.createElement(Component, _extends({}, legacyCellProps, additionalProps, {\n className: mergedClassName,\n style: mergedStyle\n // A11y\n ,\n title: title,\n scope: scope\n // Hover\n ,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n //Span\n ,\n colSpan: mergedColSpan !== 1 ? mergedColSpan : null,\n rowSpan: mergedRowSpan !== 1 ? mergedRowSpan : null\n }), appendNode, mergedChildNode);\n}\nexport default /*#__PURE__*/React.memo(Cell);","export function getCellFixedInfo(colStart, colEnd, columns, stickyOffsets, direction, curColumns) {\n var startColumn = columns[colStart] || {};\n var endColumn = columns[colEnd] || {};\n var fixLeft;\n var fixRight;\n if (startColumn.fixed === 'left') {\n fixLeft = stickyOffsets.left[direction === 'rtl' ? colEnd : colStart];\n } else if (endColumn.fixed === 'right') {\n fixRight = stickyOffsets.right[direction === 'rtl' ? colStart : colEnd];\n }\n var lastFixLeft = false;\n var firstFixRight = false;\n var lastFixRight = false;\n var firstFixLeft = false;\n var nextColumn = columns[colEnd + 1];\n var prevColumn = columns[colStart - 1];\n\n // no children only\n var canLastFix = !(curColumns !== null && curColumns !== void 0 && curColumns.children);\n if (direction === 'rtl') {\n if (fixLeft !== undefined) {\n var prevFixLeft = prevColumn && prevColumn.fixed === 'left';\n firstFixLeft = !prevFixLeft && canLastFix;\n } else if (fixRight !== undefined) {\n var nextFixRight = nextColumn && nextColumn.fixed === 'right';\n lastFixRight = !nextFixRight && canLastFix;\n }\n } else if (fixLeft !== undefined) {\n var nextFixLeft = nextColumn && nextColumn.fixed === 'left';\n lastFixLeft = !nextFixLeft && canLastFix;\n } else if (fixRight !== undefined) {\n var prevFixRight = prevColumn && prevColumn.fixed === 'right';\n firstFixRight = !prevFixRight && canLastFix;\n }\n return {\n fixLeft: fixLeft,\n fixRight: fixRight,\n lastFixLeft: lastFixLeft,\n firstFixRight: firstFixRight,\n lastFixRight: lastFixRight,\n firstFixLeft: firstFixLeft,\n isSticky: stickyOffsets.isSticky\n };\n}","import * as React from 'react';\nvar SummaryContext = /*#__PURE__*/React.createContext({});\nexport default SummaryContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport { useContext } from '@rc-component/context';\nimport { getCellFixedInfo } from \"../utils/fixUtil\";\nimport SummaryContext from \"./SummaryContext\";\nexport default function SummaryCell(_ref) {\n var className = _ref.className,\n index = _ref.index,\n children = _ref.children,\n _ref$colSpan = _ref.colSpan,\n colSpan = _ref$colSpan === void 0 ? 1 : _ref$colSpan,\n rowSpan = _ref.rowSpan,\n align = _ref.align;\n var _useContext = useContext(TableContext, ['prefixCls', 'direction']),\n prefixCls = _useContext.prefixCls,\n direction = _useContext.direction;\n var _React$useContext = React.useContext(SummaryContext),\n scrollColumnIndex = _React$useContext.scrollColumnIndex,\n stickyOffsets = _React$useContext.stickyOffsets,\n flattenColumns = _React$useContext.flattenColumns,\n columns = _React$useContext.columns;\n var lastIndex = index + colSpan - 1;\n var mergedColSpan = lastIndex + 1 === scrollColumnIndex ? colSpan + 1 : colSpan;\n var fixedInfo = getCellFixedInfo(index, index + mergedColSpan - 1, flattenColumns, stickyOffsets, direction, columns === null || columns === void 0 ? void 0 : columns[index]);\n return /*#__PURE__*/React.createElement(Cell, _extends({\n className: className,\n index: index,\n component: \"td\",\n prefixCls: prefixCls,\n record: null,\n dataIndex: null,\n align: align,\n colSpan: mergedColSpan,\n rowSpan: rowSpan,\n render: function render() {\n return children;\n }\n }, fixedInfo));\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport default function FooterRow(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"tr\", props, children);\n}","import Cell from \"./Cell\";\nimport Row from \"./Row\";\n/**\n * Syntactic sugar. Do not support HOC.\n */\nfunction Summary(_ref) {\n var children = _ref.children;\n return children;\n}\nSummary.Row = Row;\nSummary.Cell = Cell;\nexport default Summary;","import { responseImmutable, useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport Summary from \"./Summary\";\nimport SummaryContext from \"./SummaryContext\";\nfunction Footer(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var children = props.children,\n stickyOffsets = props.stickyOffsets,\n flattenColumns = props.flattenColumns,\n columns = props.columns;\n var prefixCls = useContext(TableContext, 'prefixCls');\n var lastColumnIndex = flattenColumns.length - 1;\n var scrollColumn = flattenColumns[lastColumnIndex];\n var summaryContext = React.useMemo(function () {\n return {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns,\n scrollColumnIndex: scrollColumn !== null && scrollColumn !== void 0 && scrollColumn.scrollbar ? lastColumnIndex : null,\n columns: columns\n };\n }, [scrollColumn, flattenColumns, lastColumnIndex, stickyOffsets, columns]);\n return /*#__PURE__*/React.createElement(SummaryContext.Provider, {\n value: summaryContext\n }, /*#__PURE__*/React.createElement(\"tfoot\", {\n className: \"\".concat(prefixCls, \"-summary\")\n }, children));\n}\nexport default responseImmutable(Footer);\nexport var FooterComponents = Summary;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\n// recursion (flat tree structure)\nfunction flatRecord(record, indent, childrenColumnName, expandedKeys, getRowKey, index) {\n var arr = [];\n arr.push({\n record: record,\n indent: indent,\n index: index\n });\n var key = getRowKey(record);\n var expanded = expandedKeys === null || expandedKeys === void 0 ? void 0 : expandedKeys.has(key);\n if (record && Array.isArray(record[childrenColumnName]) && expanded) {\n // expanded state, flat record\n for (var i = 0; i < record[childrenColumnName].length; i += 1) {\n var tempArr = flatRecord(record[childrenColumnName][i], indent + 1, childrenColumnName, expandedKeys, getRowKey, i);\n arr.push.apply(arr, _toConsumableArray(tempArr));\n }\n }\n return arr;\n}\n\n/**\n * flat tree data on expanded state\n *\n * @export\n * @template T\n * @param {*} data : table data\n * @param {string} childrenColumnName : 指定树形结构的列名\n * @param {Set} expandedKeys : 展开的行对应的keys\n * @param {GetRowKey} getRowKey : 获取当前rowKey的方法\n * @returns flattened data\n */\nexport default function useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey) {\n var arr = React.useMemo(function () {\n if (expandedKeys !== null && expandedKeys !== void 0 && expandedKeys.size) {\n var temp = [];\n\n // collect flattened record\n for (var i = 0; i < (data === null || data === void 0 ? void 0 : data.length); i += 1) {\n var _temp;\n var record = data[i];\n\n // using array.push or spread operator may cause \"Maximum call stack size exceeded\" exception if array size is big enough.\n temp = (_temp = temp).concat.apply(_temp, _toConsumableArray(flatRecord(record, 0, childrenColumnName, expandedKeys, getRowKey, i)));\n }\n return temp;\n }\n return data === null || data === void 0 ? void 0 : data.map(function (item, index) {\n return {\n record: item,\n indent: 0,\n index: index\n };\n });\n }, [data, childrenColumnName, expandedKeys, getRowKey]);\n return arr;\n}","import { useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nfunction ExpandedRow(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var prefixCls = props.prefixCls,\n children = props.children,\n Component = props.component,\n cellComponent = props.cellComponent,\n className = props.className,\n expanded = props.expanded,\n colSpan = props.colSpan,\n isEmpty = props.isEmpty;\n var _useContext = useContext(TableContext, ['scrollbarSize', 'fixHeader', 'fixColumn', 'componentWidth', 'horizonScroll']),\n scrollbarSize = _useContext.scrollbarSize,\n fixHeader = _useContext.fixHeader,\n fixColumn = _useContext.fixColumn,\n componentWidth = _useContext.componentWidth,\n horizonScroll = _useContext.horizonScroll;\n\n // Cache render node\n var contentNode = children;\n if (isEmpty ? horizonScroll : fixColumn) {\n contentNode = /*#__PURE__*/React.createElement(\"div\", {\n style: {\n width: componentWidth - (fixHeader ? scrollbarSize : 0),\n position: 'sticky',\n left: 0,\n overflow: 'hidden'\n },\n className: \"\".concat(prefixCls, \"-expanded-row-fixed\")\n }, componentWidth !== 0 && contentNode);\n }\n return /*#__PURE__*/React.createElement(Component, {\n className: className,\n style: {\n display: expanded ? null : 'none'\n }\n }, /*#__PURE__*/React.createElement(Cell, {\n component: cellComponent,\n prefixCls: prefixCls,\n colSpan: colSpan\n }, contentNode));\n}\nexport default ExpandedRow;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { responseImmutable, useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport { getColumnsKey } from \"../utils/valueUtil\";\nimport ExpandedRow from \"./ExpandedRow\";\nfunction BodyRow(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var className = props.className,\n style = props.style,\n record = props.record,\n index = props.index,\n renderIndex = props.renderIndex,\n rowKey = props.rowKey,\n rowExpandable = props.rowExpandable,\n expandedKeys = props.expandedKeys,\n onRow = props.onRow,\n _props$indent = props.indent,\n indent = _props$indent === void 0 ? 0 : _props$indent,\n RowComponent = props.rowComponent,\n cellComponent = props.cellComponent,\n scopeCellComponent = props.scopeCellComponent,\n childrenColumnName = props.childrenColumnName;\n var _useContext = useContext(TableContext, ['prefixCls', 'fixedInfoList', 'flattenColumns', 'expandableType', 'expandRowByClick', 'onTriggerExpand', 'rowClassName', 'expandedRowClassName', 'indentSize', 'expandIcon', 'expandedRowRender', 'expandIconColumnIndex']),\n prefixCls = _useContext.prefixCls,\n fixedInfoList = _useContext.fixedInfoList,\n flattenColumns = _useContext.flattenColumns,\n expandableType = _useContext.expandableType,\n expandRowByClick = _useContext.expandRowByClick,\n onTriggerExpand = _useContext.onTriggerExpand,\n rowClassName = _useContext.rowClassName,\n expandedRowClassName = _useContext.expandedRowClassName,\n indentSize = _useContext.indentSize,\n expandIcon = _useContext.expandIcon,\n expandedRowRender = _useContext.expandedRowRender,\n expandIconColumnIndex = _useContext.expandIconColumnIndex;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n expandRended = _React$useState2[0],\n setExpandRended = _React$useState2[1];\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var expanded = expandedKeys && expandedKeys.has(rowKey);\n React.useEffect(function () {\n if (expanded) {\n setExpandRended(true);\n }\n }, [expanded]);\n var rowSupportExpand = expandableType === 'row' && (!rowExpandable || rowExpandable(record));\n // Only when row is not expandable and `children` exist in record\n var nestExpandable = expandableType === 'nest';\n var hasNestChildren = childrenColumnName && record && record[childrenColumnName];\n var mergedExpandable = rowSupportExpand || nestExpandable;\n\n // ======================== Expandable =========================\n var onExpandRef = React.useRef(onTriggerExpand);\n onExpandRef.current = onTriggerExpand;\n var onInternalTriggerExpand = function onInternalTriggerExpand() {\n onExpandRef.current.apply(onExpandRef, arguments);\n };\n\n // =========================== onRow ===========================\n var additionalProps = onRow === null || onRow === void 0 ? void 0 : onRow(record, index);\n var onClick = function onClick(event) {\n var _additionalProps$onCl;\n if (expandRowByClick && mergedExpandable) {\n onInternalTriggerExpand(record, event);\n }\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 additionalProps === null || additionalProps === void 0 ? void 0 : (_additionalProps$onCl = additionalProps.onClick) === null || _additionalProps$onCl === void 0 ? void 0 : _additionalProps$onCl.call.apply(_additionalProps$onCl, [additionalProps, event].concat(args));\n };\n\n // ======================== Base tr row ========================\n var computeRowClassName;\n if (typeof rowClassName === 'string') {\n computeRowClassName = rowClassName;\n } else if (typeof rowClassName === 'function') {\n computeRowClassName = rowClassName(record, index, indent);\n }\n var columnsKey = getColumnsKey(flattenColumns);\n var baseRowNode = /*#__PURE__*/React.createElement(RowComponent, _extends({}, additionalProps, {\n \"data-row-key\": rowKey,\n className: classNames(className, \"\".concat(prefixCls, \"-row\"), \"\".concat(prefixCls, \"-row-level-\").concat(indent), computeRowClassName, additionalProps && additionalProps.className),\n style: _objectSpread(_objectSpread({}, style), additionalProps ? additionalProps.style : null),\n onClick: onClick\n }), flattenColumns.map(function (column, colIndex) {\n var render = column.render,\n dataIndex = column.dataIndex,\n columnClassName = column.className;\n var key = columnsKey[colIndex];\n var fixedInfo = fixedInfoList[colIndex];\n\n // ============= Used for nest expandable =============\n var appendCellNode;\n if (colIndex === (expandIconColumnIndex || 0) && nestExpandable) {\n appendCellNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n style: {\n paddingLeft: \"\".concat(indentSize * indent, \"px\")\n },\n className: \"\".concat(prefixCls, \"-row-indent indent-level-\").concat(indent)\n }), expandIcon({\n prefixCls: prefixCls,\n expanded: expanded,\n expandable: hasNestChildren,\n record: record,\n onExpand: onInternalTriggerExpand\n }));\n }\n var additionalCellProps;\n if (column.onCell) {\n additionalCellProps = column.onCell(record, index);\n }\n return /*#__PURE__*/React.createElement(Cell, _extends({\n className: columnClassName,\n ellipsis: column.ellipsis,\n align: column.align,\n scope: column.rowScope,\n component: column.rowScope ? scopeCellComponent : cellComponent,\n prefixCls: prefixCls,\n key: key,\n record: record,\n index: index,\n renderIndex: renderIndex,\n dataIndex: dataIndex,\n render: render,\n shouldCellUpdate: column.shouldCellUpdate,\n expanded: appendCellNode && expanded\n }, fixedInfo, {\n appendNode: appendCellNode,\n additionalProps: additionalCellProps\n }));\n }));\n\n // ======================== Expand Row =========================\n var expandRowNode;\n if (rowSupportExpand && (expandRended || expanded)) {\n var expandContent = expandedRowRender(record, index, indent + 1, expanded);\n var computedExpandedRowClassName = expandedRowClassName && expandedRowClassName(record, index, indent);\n expandRowNode = /*#__PURE__*/React.createElement(ExpandedRow, {\n expanded: expanded,\n className: classNames(\"\".concat(prefixCls, \"-expanded-row\"), \"\".concat(prefixCls, \"-expanded-row-level-\").concat(indent + 1), computedExpandedRowClassName),\n prefixCls: prefixCls,\n component: RowComponent,\n cellComponent: cellComponent,\n colSpan: flattenColumns.length,\n isEmpty: false\n }, expandContent);\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, baseRowNode, expandRowNode);\n}\nBodyRow.displayName = 'BodyRow';\nexport default responseImmutable(BodyRow);","import * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nexport default function MeasureCell(_ref) {\n var columnKey = _ref.columnKey,\n onColumnResize = _ref.onColumnResize;\n var cellRef = React.useRef();\n React.useEffect(function () {\n if (cellRef.current) {\n onColumnResize(columnKey, cellRef.current.offsetWidth);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n data: columnKey\n }, /*#__PURE__*/React.createElement(\"td\", {\n ref: cellRef,\n style: {\n padding: 0,\n border: 0,\n height: 0\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n height: 0,\n overflow: 'hidden'\n }\n }, \"\\xA0\")));\n}","import * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport MeasureCell from \"./MeasureCell\";\nexport default function MeasureRow(_ref) {\n var prefixCls = _ref.prefixCls,\n columnsKey = _ref.columnsKey,\n onColumnResize = _ref.onColumnResize;\n return /*#__PURE__*/React.createElement(\"tr\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-measure-row\"),\n style: {\n height: 0,\n fontSize: 0\n }\n }, /*#__PURE__*/React.createElement(ResizeObserver.Collection, {\n onBatchResize: function onBatchResize(infoList) {\n infoList.forEach(function (_ref2) {\n var columnKey = _ref2.data,\n size = _ref2.size;\n onColumnResize(columnKey, size.offsetWidth);\n });\n }\n }, columnsKey.map(function (columnKey) {\n return /*#__PURE__*/React.createElement(MeasureCell, {\n key: columnKey,\n columnKey: columnKey,\n onColumnResize: onColumnResize\n });\n })));\n}","import { responseImmutable, useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport PerfContext from \"../context/PerfContext\";\nimport TableContext from \"../context/TableContext\";\nimport useFlattenRecords from \"../hooks/useFlattenRecords\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport { getColumnsKey } from \"../utils/valueUtil\";\nimport BodyRow from \"./BodyRow\";\nimport ExpandedRow from \"./ExpandedRow\";\nimport MeasureRow from \"./MeasureRow\";\nfunction Body(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var data = props.data,\n getRowKey = props.getRowKey,\n measureColumnWidth = props.measureColumnWidth,\n expandedKeys = props.expandedKeys,\n onRow = props.onRow,\n rowExpandable = props.rowExpandable,\n emptyNode = props.emptyNode,\n childrenColumnName = props.childrenColumnName;\n var _useContext = useContext(TableContext, ['prefixCls', 'getComponent', 'onColumnResize', 'flattenColumns']),\n prefixCls = _useContext.prefixCls,\n getComponent = _useContext.getComponent,\n onColumnResize = _useContext.onColumnResize,\n flattenColumns = _useContext.flattenColumns;\n var flattenData = useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey);\n\n // =================== Performance ====================\n var perfRef = React.useRef({\n renderWithProps: false\n });\n\n // ====================== Render ======================\n var WrapperComponent = getComponent(['body', 'wrapper'], 'tbody');\n var trComponent = getComponent(['body', 'row'], 'tr');\n var tdComponent = getComponent(['body', 'cell'], 'td');\n var thComponent = getComponent(['body', 'cell'], 'th');\n var rows;\n if (data.length) {\n rows = flattenData.map(function (item, idx) {\n var record = item.record,\n indent = item.indent,\n renderIndex = item.index;\n var key = getRowKey(record, idx);\n return /*#__PURE__*/React.createElement(BodyRow, {\n key: key,\n rowKey: key,\n record: record,\n index: idx,\n renderIndex: renderIndex,\n rowComponent: trComponent,\n cellComponent: tdComponent,\n scopeCellComponent: thComponent,\n expandedKeys: expandedKeys,\n onRow: onRow,\n getRowKey: getRowKey,\n rowExpandable: rowExpandable,\n childrenColumnName: childrenColumnName,\n indent: indent\n });\n });\n } else {\n rows = /*#__PURE__*/React.createElement(ExpandedRow, {\n expanded: true,\n className: \"\".concat(prefixCls, \"-placeholder\"),\n prefixCls: prefixCls,\n component: trComponent,\n cellComponent: tdComponent,\n colSpan: flattenColumns.length,\n isEmpty: true\n }, emptyNode);\n }\n var columnsKey = getColumnsKey(flattenColumns);\n return /*#__PURE__*/React.createElement(PerfContext.Provider, {\n value: perfRef.current\n }, /*#__PURE__*/React.createElement(WrapperComponent, {\n className: \"\".concat(prefixCls, \"-tbody\")\n }, measureColumnWidth && /*#__PURE__*/React.createElement(MeasureRow, {\n prefixCls: prefixCls,\n columnsKey: columnsKey,\n onColumnResize: onColumnResize\n }), rows));\n}\nBody.displayName = 'Body';\nexport default responseImmutable(Body);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"expandable\"];\nimport warning from \"rc-util/es/warning\";\nexport var INTERNAL_COL_DEFINE = 'RC_TABLE_INTERNAL_COL_DEFINE';\nexport function getExpandableProps(props) {\n var expandable = props.expandable,\n legacyExpandableConfig = _objectWithoutProperties(props, _excluded);\n var config;\n if ('expandable' in props) {\n config = _objectSpread(_objectSpread({}, legacyExpandableConfig), expandable);\n } else {\n if (process.env.NODE_ENV !== 'production' && ['indentSize', 'expandedRowKeys', 'defaultExpandedRowKeys', 'defaultExpandAllRows', 'expandedRowRender', 'expandRowByClick', 'expandIcon', 'onExpand', 'onExpandedRowsChange', 'expandedRowClassName', 'expandIconColumnIndex', 'showExpandColumn', 'title'].some(function (prop) {\n return prop in props;\n })) {\n warning(false, 'expanded related props have been moved into `expandable`.');\n }\n config = legacyExpandableConfig;\n }\n if (config.showExpandColumn === false) {\n config.expandIconColumnIndex = -1;\n }\n return config;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"columnType\"];\nimport * as React from 'react';\nimport { INTERNAL_COL_DEFINE } from \"./utils/legacyUtil\";\nfunction ColGroup(_ref) {\n var colWidths = _ref.colWidths,\n columns = _ref.columns,\n columCount = _ref.columCount;\n var cols = [];\n var len = columCount || columns.length;\n\n // Only insert col with width & additional props\n // Skip if rest col do not have any useful info\n var mustInsert = false;\n for (var i = len - 1; i >= 0; i -= 1) {\n var width = colWidths[i];\n var column = columns && columns[i];\n var additionalProps = column && column[INTERNAL_COL_DEFINE];\n if (width || additionalProps || mustInsert) {\n var _ref2 = additionalProps || {},\n columnType = _ref2.columnType,\n restAdditionalProps = _objectWithoutProperties(_ref2, _excluded);\n cols.unshift( /*#__PURE__*/React.createElement(\"col\", _extends({\n key: i,\n style: {\n width: width\n }\n }, restAdditionalProps)));\n mustInsert = true;\n }\n }\n return /*#__PURE__*/React.createElement(\"colgroup\", null, cols);\n}\nexport default ColGroup;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"noData\", \"columns\", \"flattenColumns\", \"colWidths\", \"columCount\", \"stickyOffsets\", \"direction\", \"fixHeader\", \"stickyTopOffset\", \"stickyBottomOffset\", \"stickyClassName\", \"onScroll\", \"maxContentScroll\", \"children\"];\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport { fillRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport ColGroup from \"../ColGroup\";\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nfunction useColumnWidth(colWidths, columCount) {\n return useMemo(function () {\n var cloneColumns = [];\n for (var i = 0; i < columCount; i += 1) {\n var val = colWidths[i];\n if (val !== undefined) {\n cloneColumns[i] = val;\n } else {\n return null;\n }\n }\n return cloneColumns;\n }, [colWidths.join('_'), columCount]);\n}\nvar FixedHolder = /*#__PURE__*/React.forwardRef(function (props, ref) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var className = props.className,\n noData = props.noData,\n columns = props.columns,\n flattenColumns = props.flattenColumns,\n colWidths = props.colWidths,\n columCount = props.columCount,\n stickyOffsets = props.stickyOffsets,\n direction = props.direction,\n fixHeader = props.fixHeader,\n stickyTopOffset = props.stickyTopOffset,\n stickyBottomOffset = props.stickyBottomOffset,\n stickyClassName = props.stickyClassName,\n onScroll = props.onScroll,\n maxContentScroll = props.maxContentScroll,\n children = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n var _useContext = useContext(TableContext, ['prefixCls', 'scrollbarSize', 'isSticky']),\n prefixCls = _useContext.prefixCls,\n scrollbarSize = _useContext.scrollbarSize,\n isSticky = _useContext.isSticky;\n var combinationScrollBarSize = isSticky && !fixHeader ? 0 : scrollbarSize;\n\n // Pass wheel to scroll event\n var scrollRef = React.useRef(null);\n var setScrollRef = React.useCallback(function (element) {\n fillRef(ref, element);\n fillRef(scrollRef, element);\n }, []);\n React.useEffect(function () {\n var _scrollRef$current;\n function onWheel(e) {\n var _ref = e,\n currentTarget = _ref.currentTarget,\n deltaX = _ref.deltaX;\n if (deltaX) {\n onScroll({\n currentTarget: currentTarget,\n scrollLeft: currentTarget.scrollLeft + deltaX\n });\n e.preventDefault();\n }\n }\n (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.addEventListener('wheel', onWheel);\n return function () {\n var _scrollRef$current2;\n (_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 ? void 0 : _scrollRef$current2.removeEventListener('wheel', onWheel);\n };\n }, []);\n\n // Check if all flattenColumns has width\n var allFlattenColumnsWithWidth = React.useMemo(function () {\n return flattenColumns.every(function (column) {\n return column.width >= 0;\n });\n }, [flattenColumns]);\n\n // Add scrollbar column\n var lastColumn = flattenColumns[flattenColumns.length - 1];\n var ScrollBarColumn = {\n fixed: lastColumn ? lastColumn.fixed : null,\n scrollbar: true,\n onHeaderCell: function onHeaderCell() {\n return {\n className: \"\".concat(prefixCls, \"-cell-scrollbar\")\n };\n }\n };\n var columnsWithScrollbar = useMemo(function () {\n return combinationScrollBarSize ? [].concat(_toConsumableArray(columns), [ScrollBarColumn]) : columns;\n }, [combinationScrollBarSize, columns]);\n var flattenColumnsWithScrollbar = useMemo(function () {\n return combinationScrollBarSize ? [].concat(_toConsumableArray(flattenColumns), [ScrollBarColumn]) : flattenColumns;\n }, [combinationScrollBarSize, flattenColumns]);\n\n // Calculate the sticky offsets\n var headerStickyOffsets = useMemo(function () {\n var right = stickyOffsets.right,\n left = stickyOffsets.left;\n return _objectSpread(_objectSpread({}, stickyOffsets), {}, {\n left: direction === 'rtl' ? [].concat(_toConsumableArray(left.map(function (width) {\n return width + combinationScrollBarSize;\n })), [0]) : left,\n right: direction === 'rtl' ? right : [].concat(_toConsumableArray(right.map(function (width) {\n return width + combinationScrollBarSize;\n })), [0]),\n isSticky: isSticky\n });\n }, [combinationScrollBarSize, stickyOffsets, isSticky]);\n var mergedColumnWidth = useColumnWidth(colWidths, columCount);\n return /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread({\n overflow: 'hidden'\n }, isSticky ? {\n top: stickyTopOffset,\n bottom: stickyBottomOffset\n } : {}),\n ref: setScrollRef,\n className: classNames(className, _defineProperty({}, stickyClassName, !!stickyClassName))\n }, /*#__PURE__*/React.createElement(\"table\", {\n style: {\n tableLayout: 'fixed',\n visibility: noData || mergedColumnWidth ? null : 'hidden'\n }\n }, (!noData || !maxContentScroll || allFlattenColumnsWithWidth) && /*#__PURE__*/React.createElement(ColGroup, {\n colWidths: mergedColumnWidth ? [].concat(_toConsumableArray(mergedColumnWidth), [combinationScrollBarSize]) : [],\n columCount: columCount + 1,\n columns: flattenColumnsWithScrollbar\n }), children(_objectSpread(_objectSpread({}, restProps), {}, {\n stickyOffsets: headerStickyOffsets,\n columns: columnsWithScrollbar,\n flattenColumns: flattenColumnsWithScrollbar\n }))));\n});\nFixedHolder.displayName = 'FixedHolder';\n\n/** Return a table in div as fixed element which contains sticky info */\n// export default responseImmutable(FixedHolder);\nexport default /*#__PURE__*/React.memo(FixedHolder);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport { useContext } from '@rc-component/context';\nimport { getCellFixedInfo } from \"../utils/fixUtil\";\nimport { getColumnsKey } from \"../utils/valueUtil\";\nfunction HeaderRow(_ref) {\n var cells = _ref.cells,\n stickyOffsets = _ref.stickyOffsets,\n flattenColumns = _ref.flattenColumns,\n RowComponent = _ref.rowComponent,\n CellComponent = _ref.cellComponent,\n tdCellComponent = _ref.tdCellComponent,\n onHeaderRow = _ref.onHeaderRow,\n index = _ref.index;\n var _useContext = useContext(TableContext, ['prefixCls', 'direction']),\n prefixCls = _useContext.prefixCls,\n direction = _useContext.direction;\n var rowProps;\n if (onHeaderRow) {\n rowProps = onHeaderRow(cells.map(function (cell) {\n return cell.column;\n }), index);\n }\n var columnsKey = getColumnsKey(cells.map(function (cell) {\n return cell.column;\n }));\n return /*#__PURE__*/React.createElement(RowComponent, rowProps, cells.map(function (cell, cellIndex) {\n var column = cell.column;\n var fixedInfo = getCellFixedInfo(cell.colStart, cell.colEnd, flattenColumns, stickyOffsets, direction, column);\n var additionalProps;\n if (column && column.onHeaderCell) {\n additionalProps = cell.column.onHeaderCell(column);\n }\n return /*#__PURE__*/React.createElement(Cell, _extends({}, cell, {\n scope: column.title ? cell.colSpan > 1 ? 'colgroup' : 'col' : null,\n ellipsis: column.ellipsis,\n align: column.align,\n component: column.title ? CellComponent : tdCellComponent,\n prefixCls: prefixCls,\n key: columnsKey[cellIndex]\n }, fixedInfo, {\n additionalProps: additionalProps,\n rowType: \"header\"\n }));\n }));\n}\nHeaderRow.displayName = 'HeaderRow';\nexport default HeaderRow;","import { responseImmutable, useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport HeaderRow from \"./HeaderRow\";\nfunction parseHeaderRows(rootColumns) {\n var rows = [];\n function fillRowCells(columns, colIndex) {\n var rowIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n // Init rows\n rows[rowIndex] = rows[rowIndex] || [];\n var currentColIndex = colIndex;\n var colSpans = columns.filter(Boolean).map(function (column) {\n var cell = {\n key: column.key,\n className: column.className || '',\n children: column.title,\n column: column,\n colStart: currentColIndex\n };\n var colSpan = 1;\n var subColumns = column.children;\n if (subColumns && subColumns.length > 0) {\n colSpan = fillRowCells(subColumns, currentColIndex, rowIndex + 1).reduce(function (total, count) {\n return total + count;\n }, 0);\n cell.hasSubColumns = true;\n }\n if ('colSpan' in column) {\n colSpan = column.colSpan;\n }\n if ('rowSpan' in column) {\n cell.rowSpan = column.rowSpan;\n }\n cell.colSpan = colSpan;\n cell.colEnd = cell.colStart + colSpan - 1;\n rows[rowIndex].push(cell);\n currentColIndex += colSpan;\n return colSpan;\n });\n return colSpans;\n }\n\n // Generate `rows` cell data\n fillRowCells(rootColumns, 0);\n\n // Handle `rowSpan`\n var rowCount = rows.length;\n var _loop = function _loop(rowIndex) {\n rows[rowIndex].forEach(function (cell) {\n if (!('rowSpan' in cell) && !cell.hasSubColumns) {\n // eslint-disable-next-line no-param-reassign\n cell.rowSpan = rowCount - rowIndex;\n }\n });\n };\n for (var rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\n _loop(rowIndex);\n }\n return rows;\n}\nfunction Header(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var stickyOffsets = props.stickyOffsets,\n columns = props.columns,\n flattenColumns = props.flattenColumns,\n onHeaderRow = props.onHeaderRow;\n var _useContext = useContext(TableContext, ['prefixCls', 'getComponent']),\n prefixCls = _useContext.prefixCls,\n getComponent = _useContext.getComponent;\n var rows = React.useMemo(function () {\n return parseHeaderRows(columns);\n }, [columns]);\n var WrapperComponent = getComponent(['header', 'wrapper'], 'thead');\n var trComponent = getComponent(['header', 'row'], 'tr');\n var thComponent = getComponent(['header', 'cell'], 'th');\n var tdComponent = getComponent(['header', 'cell'], 'td');\n return /*#__PURE__*/React.createElement(WrapperComponent, {\n className: \"\".concat(prefixCls, \"-thead\")\n }, rows.map(function (row, rowIndex) {\n var rowNode = /*#__PURE__*/React.createElement(HeaderRow, {\n key: rowIndex,\n flattenColumns: flattenColumns,\n cells: row,\n stickyOffsets: stickyOffsets,\n rowComponent: trComponent,\n cellComponent: thComponent,\n tdCellComponent: tdComponent,\n onHeaderRow: onHeaderRow,\n index: rowIndex\n });\n return rowNode;\n }));\n}\nexport default responseImmutable(Header);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\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 = [\"children\"],\n _excluded2 = [\"fixed\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { EXPAND_COLUMN } from \"../constant\";\nimport { INTERNAL_COL_DEFINE } from \"../utils/legacyUtil\";\nexport function convertChildrenToColumns(children) {\n return toArray(children).filter(function (node) {\n return /*#__PURE__*/React.isValidElement(node);\n }).map(function (_ref) {\n var key = _ref.key,\n props = _ref.props;\n var nodeChildren = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n var column = _objectSpread({\n key: key\n }, restProps);\n if (nodeChildren) {\n column.children = convertChildrenToColumns(nodeChildren);\n }\n return column;\n });\n}\nfunction flatColumns(columns) {\n return columns.filter(function (column) {\n return column && _typeof(column) === 'object';\n }).reduce(function (list, column) {\n var fixed = column.fixed;\n // Convert `fixed='true'` to `fixed='left'` instead\n var parsedFixed = fixed === true ? 'left' : fixed;\n var subColumns = column.children;\n if (subColumns && subColumns.length > 0) {\n return [].concat(_toConsumableArray(list), _toConsumableArray(flatColumns(subColumns).map(function (subColum) {\n return _objectSpread({\n fixed: parsedFixed\n }, subColum);\n })));\n }\n return [].concat(_toConsumableArray(list), [_objectSpread(_objectSpread({}, column), {}, {\n fixed: parsedFixed\n })]);\n }, []);\n}\nfunction warningFixed(flattenColumns) {\n var allFixLeft = true;\n for (var i = 0; i < flattenColumns.length; i += 1) {\n var col = flattenColumns[i];\n if (allFixLeft && col.fixed !== 'left') {\n allFixLeft = false;\n } else if (!allFixLeft && col.fixed === 'left') {\n warning(false, \"Index \".concat(i - 1, \" of `columns` missing `fixed='left'` prop.\"));\n break;\n }\n }\n var allFixRight = true;\n for (var _i = flattenColumns.length - 1; _i >= 0; _i -= 1) {\n var _col = flattenColumns[_i];\n if (allFixRight && _col.fixed !== 'right') {\n allFixRight = false;\n } else if (!allFixRight && _col.fixed === 'right') {\n warning(false, \"Index \".concat(_i + 1, \" of `columns` missing `fixed='right'` prop.\"));\n break;\n }\n }\n}\nfunction revertForRtl(columns) {\n return columns.map(function (column) {\n var fixed = column.fixed,\n restProps = _objectWithoutProperties(column, _excluded2);\n\n // Convert `fixed='left'` to `fixed='right'` instead\n var parsedFixed = fixed;\n if (fixed === 'left') {\n parsedFixed = 'right';\n } else if (fixed === 'right') {\n parsedFixed = 'left';\n }\n return _objectSpread({\n fixed: parsedFixed\n }, restProps);\n });\n}\n\n/**\n * Parse `columns` & `children` into `columns`.\n */\nfunction useColumns(_ref2, transformColumns) {\n var prefixCls = _ref2.prefixCls,\n columns = _ref2.columns,\n children = _ref2.children,\n expandable = _ref2.expandable,\n expandedKeys = _ref2.expandedKeys,\n columnTitle = _ref2.columnTitle,\n getRowKey = _ref2.getRowKey,\n onTriggerExpand = _ref2.onTriggerExpand,\n expandIcon = _ref2.expandIcon,\n rowExpandable = _ref2.rowExpandable,\n expandIconColumnIndex = _ref2.expandIconColumnIndex,\n direction = _ref2.direction,\n expandRowByClick = _ref2.expandRowByClick,\n columnWidth = _ref2.columnWidth,\n fixed = _ref2.fixed;\n var baseColumns = React.useMemo(function () {\n return columns || convertChildrenToColumns(children);\n }, [columns, children]);\n\n // ========================== Expand ==========================\n var withExpandColumns = React.useMemo(function () {\n if (expandable) {\n var _expandColumn;\n var cloneColumns = baseColumns.slice();\n\n // >>> Warning if use `expandIconColumnIndex`\n if (process.env.NODE_ENV !== 'production' && expandIconColumnIndex >= 0) {\n warning(false, '`expandIconColumnIndex` is deprecated. Please use `Table.EXPAND_COLUMN` in `columns` instead.');\n }\n\n // >>> Insert expand column if not exist\n if (!cloneColumns.includes(EXPAND_COLUMN)) {\n var expandColIndex = expandIconColumnIndex || 0;\n if (expandColIndex >= 0) {\n cloneColumns.splice(expandColIndex, 0, EXPAND_COLUMN);\n }\n }\n\n // >>> Deduplicate additional expand column\n if (process.env.NODE_ENV !== 'production' && cloneColumns.filter(function (c) {\n return c === EXPAND_COLUMN;\n }).length > 1) {\n warning(false, 'There exist more than one `EXPAND_COLUMN` in `columns`.');\n }\n var expandColumnIndex = cloneColumns.indexOf(EXPAND_COLUMN);\n cloneColumns = cloneColumns.filter(function (column, index) {\n return column !== EXPAND_COLUMN || index === expandColumnIndex;\n });\n\n // >>> Check if expand column need to fixed\n var prevColumn = baseColumns[expandColumnIndex];\n var fixedColumn;\n if ((fixed === 'left' || fixed) && !expandIconColumnIndex) {\n fixedColumn = 'left';\n } else if ((fixed === 'right' || fixed) && expandIconColumnIndex === baseColumns.length) {\n fixedColumn = 'right';\n } else {\n fixedColumn = prevColumn ? prevColumn.fixed : null;\n }\n\n // >>> Create expandable column\n var expandColumn = (_expandColumn = {}, _defineProperty(_expandColumn, INTERNAL_COL_DEFINE, {\n className: \"\".concat(prefixCls, \"-expand-icon-col\"),\n columnType: 'EXPAND_COLUMN'\n }), _defineProperty(_expandColumn, \"title\", columnTitle), _defineProperty(_expandColumn, \"fixed\", fixedColumn), _defineProperty(_expandColumn, \"className\", \"\".concat(prefixCls, \"-row-expand-icon-cell\")), _defineProperty(_expandColumn, \"width\", columnWidth), _defineProperty(_expandColumn, \"render\", function render(_, record, index) {\n var rowKey = getRowKey(record, index);\n var expanded = expandedKeys.has(rowKey);\n var recordExpandable = rowExpandable ? rowExpandable(record) : true;\n var icon = expandIcon({\n prefixCls: prefixCls,\n expanded: expanded,\n expandable: recordExpandable,\n record: record,\n onExpand: onTriggerExpand\n });\n if (expandRowByClick) {\n return /*#__PURE__*/React.createElement(\"span\", {\n onClick: function onClick(e) {\n return e.stopPropagation();\n }\n }, icon);\n }\n return icon;\n }), _expandColumn);\n return cloneColumns.map(function (col) {\n return col === EXPAND_COLUMN ? expandColumn : col;\n });\n }\n if (process.env.NODE_ENV !== 'production' && baseColumns.includes(EXPAND_COLUMN)) {\n warning(false, '`expandable` is not config but there exist `EXPAND_COLUMN` in `columns`.');\n }\n return baseColumns.filter(function (col) {\n return col !== EXPAND_COLUMN;\n });\n }, [expandable, baseColumns, getRowKey, expandedKeys, expandIcon, direction]);\n\n // ========================= Transform ========================\n var mergedColumns = React.useMemo(function () {\n var finalColumns = withExpandColumns;\n if (transformColumns) {\n finalColumns = transformColumns(finalColumns);\n }\n\n // Always provides at least one column for table display\n if (!finalColumns.length) {\n finalColumns = [{\n render: function render() {\n return null;\n }\n }];\n }\n return finalColumns;\n }, [transformColumns, withExpandColumns, direction]);\n\n // ========================== Flatten =========================\n var flattenColumns = React.useMemo(function () {\n if (direction === 'rtl') {\n return revertForRtl(flatColumns(mergedColumns));\n }\n return flatColumns(mergedColumns);\n }, [mergedColumns, direction]);\n // Only check out of production since it's waste for each render\n if (process.env.NODE_ENV !== 'production') {\n warningFixed(direction === 'rtl' ? flattenColumns.slice().reverse() : flattenColumns);\n }\n return [mergedColumns, flattenColumns];\n}\nexport default useColumns;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nexport function renderExpandIcon(_ref) {\n var _classNames;\n var prefixCls = _ref.prefixCls,\n record = _ref.record,\n onExpand = _ref.onExpand,\n expanded = _ref.expanded,\n expandable = _ref.expandable;\n var expandClassName = \"\".concat(prefixCls, \"-row-expand-icon\");\n if (!expandable) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(expandClassName, \"\".concat(prefixCls, \"-row-spaced\"))\n });\n }\n var onClick = function onClick(event) {\n onExpand(record, event);\n event.stopPropagation();\n };\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(expandClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-row-expanded\"), expanded), _defineProperty(_classNames, \"\".concat(prefixCls, \"-row-collapsed\"), !expanded), _classNames)),\n onClick: onClick\n });\n}\nexport function findAllChildrenKeys(data, getRowKey, childrenColumnName) {\n var keys = [];\n function dig(list) {\n (list || []).forEach(function (item, index) {\n keys.push(getRowKey(item, index));\n dig(item[childrenColumnName]);\n });\n }\n dig(data);\n return keys;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { INTERNAL_HOOKS } from \"../constant\";\nimport { findAllChildrenKeys, renderExpandIcon } from \"../utils/expandUtil\";\nimport { getExpandableProps } from \"../utils/legacyUtil\";\nexport default function useExpand(props, mergedData, getRowKey) {\n var expandableConfig = getExpandableProps(props);\n var expandIcon = expandableConfig.expandIcon,\n expandedRowKeys = expandableConfig.expandedRowKeys,\n defaultExpandedRowKeys = expandableConfig.defaultExpandedRowKeys,\n defaultExpandAllRows = expandableConfig.defaultExpandAllRows,\n expandedRowRender = expandableConfig.expandedRowRender,\n onExpand = expandableConfig.onExpand,\n onExpandedRowsChange = expandableConfig.onExpandedRowsChange,\n childrenColumnName = expandableConfig.childrenColumnName;\n var mergedExpandIcon = expandIcon || renderExpandIcon;\n var mergedChildrenColumnName = childrenColumnName || 'children';\n var expandableType = React.useMemo(function () {\n if (expandedRowRender) {\n return 'row';\n }\n /* eslint-disable no-underscore-dangle */\n /**\n * Fix https://github.com/ant-design/ant-design/issues/21154\n * This is a workaround to not to break current behavior.\n * We can remove follow code after final release.\n *\n * To other developer:\n * Do not use `__PARENT_RENDER_ICON__` in prod since we will remove this when refactor\n */\n if (props.expandable && props.internalHooks === INTERNAL_HOOKS && props.expandable.__PARENT_RENDER_ICON__ || mergedData.some(function (record) {\n return record && _typeof(record) === 'object' && record[mergedChildrenColumnName];\n })) {\n return 'nest';\n }\n /* eslint-enable */\n return false;\n }, [!!expandedRowRender, mergedData]);\n var _React$useState = React.useState(function () {\n if (defaultExpandedRowKeys) {\n return defaultExpandedRowKeys;\n }\n if (defaultExpandAllRows) {\n return findAllChildrenKeys(mergedData, getRowKey, mergedChildrenColumnName);\n }\n return [];\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerExpandedKeys = _React$useState2[0],\n setInnerExpandedKeys = _React$useState2[1];\n var mergedExpandedKeys = React.useMemo(function () {\n return new Set(expandedRowKeys || innerExpandedKeys || []);\n }, [expandedRowKeys, innerExpandedKeys]);\n var onTriggerExpand = React.useCallback(function (record) {\n var key = getRowKey(record, mergedData.indexOf(record));\n var newExpandedKeys;\n var hasKey = mergedExpandedKeys.has(key);\n if (hasKey) {\n mergedExpandedKeys.delete(key);\n newExpandedKeys = _toConsumableArray(mergedExpandedKeys);\n } else {\n newExpandedKeys = [].concat(_toConsumableArray(mergedExpandedKeys), [key]);\n }\n setInnerExpandedKeys(newExpandedKeys);\n if (onExpand) {\n onExpand(!hasKey, record);\n }\n if (onExpandedRowsChange) {\n onExpandedRowsChange(newExpandedKeys);\n }\n }, [getRowKey, mergedExpandedKeys, mergedData, onExpand, onExpandedRowsChange]);\n\n // Warning if use `expandedRowRender` and nest children in the same time\n if (process.env.NODE_ENV !== 'production' && expandedRowRender && mergedData.some(function (record) {\n return Array.isArray(record === null || record === void 0 ? void 0 : record[mergedChildrenColumnName]);\n })) {\n warning(false, '`expandedRowRender` should not use with nested Table');\n }\n return [expandableConfig, expandableType, mergedExpandedKeys, mergedExpandIcon, mergedChildrenColumnName, onTriggerExpand];\n}","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport { getCellFixedInfo } from \"../utils/fixUtil\";\nexport default function useFixedInfo(flattenColumns, stickyOffsets, direction, columns) {\n var fixedInfoList = flattenColumns.map(function (_, colIndex) {\n return getCellFixedInfo(colIndex, colIndex, flattenColumns, stickyOffsets, direction, columns === null || columns === void 0 ? void 0 : columns[colIndex]);\n });\n return useMemo(function () {\n return fixedInfoList;\n }, [fixedInfoList], function (prev, next) {\n return !isEqual(prev, next);\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef, useState, useEffect } from 'react';\n/**\n * Execute code before next frame but async\n */\nexport function useLayoutState(defaultState) {\n var stateRef = useRef(defaultState);\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n var lastPromiseRef = useRef(null);\n var updateBatchRef = useRef([]);\n function setFrameState(updater) {\n updateBatchRef.current.push(updater);\n var promise = Promise.resolve();\n lastPromiseRef.current = promise;\n promise.then(function () {\n if (lastPromiseRef.current === promise) {\n var prevBatch = updateBatchRef.current;\n var prevState = stateRef.current;\n updateBatchRef.current = [];\n prevBatch.forEach(function (batchUpdater) {\n stateRef.current = batchUpdater(stateRef.current);\n });\n lastPromiseRef.current = null;\n if (prevState !== stateRef.current) {\n forceUpdate({});\n }\n }\n });\n }\n useEffect(function () {\n return function () {\n lastPromiseRef.current = null;\n };\n }, []);\n return [stateRef.current, setFrameState];\n}\n\n/** Lock frame, when frame pass reset the lock. */\nexport function useTimeoutLock(defaultState) {\n var frameRef = useRef(defaultState || null);\n var timeoutRef = useRef();\n function cleanUp() {\n window.clearTimeout(timeoutRef.current);\n }\n function setState(newState) {\n frameRef.current = newState;\n cleanUp();\n timeoutRef.current = window.setTimeout(function () {\n frameRef.current = null;\n timeoutRef.current = undefined;\n }, 100);\n }\n function getState() {\n return frameRef.current;\n }\n useEffect(function () {\n return cleanUp;\n }, []);\n return [setState, getState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useHover() {\n var _React$useState = React.useState(-1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n startRow = _React$useState2[0],\n setStartRow = _React$useState2[1];\n var _React$useState3 = React.useState(-1),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n endRow = _React$useState4[0],\n setEndRow = _React$useState4[1];\n var onHover = React.useCallback(function (start, end) {\n setStartRow(start);\n setEndRow(end);\n }, []);\n return [startRow, endRow, onHover];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\n// fix ssr render\nvar defaultContainer = canUseDom() ? window : null;\n\n/** Sticky header hooks */\nexport default function useSticky(sticky, prefixCls) {\n var _ref = _typeof(sticky) === 'object' ? sticky : {},\n _ref$offsetHeader = _ref.offsetHeader,\n offsetHeader = _ref$offsetHeader === void 0 ? 0 : _ref$offsetHeader,\n _ref$offsetSummary = _ref.offsetSummary,\n offsetSummary = _ref$offsetSummary === void 0 ? 0 : _ref$offsetSummary,\n _ref$offsetScroll = _ref.offsetScroll,\n offsetScroll = _ref$offsetScroll === void 0 ? 0 : _ref$offsetScroll,\n _ref$getContainer = _ref.getContainer,\n getContainer = _ref$getContainer === void 0 ? function () {\n return defaultContainer;\n } : _ref$getContainer;\n var container = getContainer() || defaultContainer;\n return React.useMemo(function () {\n var isSticky = !!sticky;\n return {\n isSticky: isSticky,\n stickyClassName: isSticky ? \"\".concat(prefixCls, \"-sticky-holder\") : '',\n offsetHeader: offsetHeader,\n offsetSummary: offsetSummary,\n offsetScroll: offsetScroll,\n container: container\n };\n }, [offsetScroll, offsetHeader, offsetSummary, prefixCls, container]);\n}","import { useMemo } from 'react';\n/**\n * Get sticky column offset width\n */\nfunction useStickyOffsets(colWidths, columnCount, direction) {\n var stickyOffsets = useMemo(function () {\n var leftOffsets = [];\n var rightOffsets = [];\n var left = 0;\n var right = 0;\n for (var start = 0; start < columnCount; start += 1) {\n if (direction === 'rtl') {\n // Left offset\n rightOffsets[start] = right;\n right += colWidths[start] || 0;\n\n // Right offset\n var end = columnCount - start - 1;\n leftOffsets[end] = left;\n left += colWidths[end] || 0;\n } else {\n // Left offset\n leftOffsets[start] = left;\n left += colWidths[start] || 0;\n\n // Right offset\n var _end = columnCount - start - 1;\n rightOffsets[_end] = right;\n right += colWidths[_end] || 0;\n }\n }\n return {\n left: leftOffsets,\n right: rightOffsets\n };\n }, [colWidths, columnCount, direction]);\n return stickyOffsets;\n}\nexport default useStickyOffsets;","import * as React from 'react';\nfunction Panel(_ref) {\n var className = _ref.className,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, children);\n}\nexport default Panel;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { getOffset } from \"rc-util/es/Dom/css\";\nimport getScrollBarSize from \"rc-util/es/getScrollBarSize\";\nimport * as React from 'react';\nimport TableContext from \"./context/TableContext\";\nimport { useLayoutState } from \"./hooks/useFrame\";\nvar StickyScrollBar = function StickyScrollBar(_ref, ref) {\n var _scrollBodyRef$curren, _scrollBodyRef$curren2;\n var scrollBodyRef = _ref.scrollBodyRef,\n onScroll = _ref.onScroll,\n offsetScroll = _ref.offsetScroll,\n container = _ref.container;\n var prefixCls = useContext(TableContext, 'prefixCls');\n var bodyScrollWidth = ((_scrollBodyRef$curren = scrollBodyRef.current) === null || _scrollBodyRef$curren === void 0 ? void 0 : _scrollBodyRef$curren.scrollWidth) || 0;\n var bodyWidth = ((_scrollBodyRef$curren2 = scrollBodyRef.current) === null || _scrollBodyRef$curren2 === void 0 ? void 0 : _scrollBodyRef$curren2.clientWidth) || 0;\n var scrollBarWidth = bodyScrollWidth && bodyWidth * (bodyWidth / bodyScrollWidth);\n var scrollBarRef = React.useRef();\n var _useLayoutState = useLayoutState({\n scrollLeft: 0,\n isHiddenScrollBar: false\n }),\n _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n scrollState = _useLayoutState2[0],\n setScrollState = _useLayoutState2[1];\n var refState = React.useRef({\n delta: 0,\n x: 0\n });\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n isActive = _React$useState2[0],\n setActive = _React$useState2[1];\n var onMouseUp = function onMouseUp() {\n setActive(false);\n };\n var onMouseDown = function onMouseDown(event) {\n event.persist();\n refState.current.delta = event.pageX - scrollState.scrollLeft;\n refState.current.x = 0;\n setActive(true);\n event.preventDefault();\n };\n var onMouseMove = function onMouseMove(event) {\n var _window;\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons\n var _ref2 = event || ((_window = window) === null || _window === void 0 ? void 0 : _window.event),\n buttons = _ref2.buttons;\n if (!isActive || buttons === 0) {\n // If out body mouse up, we can set isActive false when mouse move\n if (isActive) {\n setActive(false);\n }\n return;\n }\n var left = refState.current.x + event.pageX - refState.current.x - refState.current.delta;\n if (left <= 0) {\n left = 0;\n }\n if (left + scrollBarWidth >= bodyWidth) {\n left = bodyWidth - scrollBarWidth;\n }\n onScroll({\n scrollLeft: left / bodyWidth * (bodyScrollWidth + 2)\n });\n refState.current.x = event.pageX;\n };\n var onContainerScroll = function onContainerScroll() {\n if (!scrollBodyRef.current) {\n return;\n }\n var tableOffsetTop = getOffset(scrollBodyRef.current).top;\n var tableBottomOffset = tableOffsetTop + scrollBodyRef.current.offsetHeight;\n var currentClientOffset = container === window ? document.documentElement.scrollTop + window.innerHeight : getOffset(container).top + container.clientHeight;\n if (tableBottomOffset - getScrollBarSize() <= currentClientOffset || tableOffsetTop >= currentClientOffset - offsetScroll) {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n isHiddenScrollBar: true\n });\n });\n } else {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n isHiddenScrollBar: false\n });\n });\n }\n };\n var setScrollLeft = function setScrollLeft(left) {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n scrollLeft: left / bodyScrollWidth * bodyWidth || 0\n });\n });\n };\n React.useImperativeHandle(ref, function () {\n return {\n setScrollLeft: setScrollLeft\n };\n });\n React.useEffect(function () {\n var onMouseUpListener = addEventListener(document.body, 'mouseup', onMouseUp, false);\n var onMouseMoveListener = addEventListener(document.body, 'mousemove', onMouseMove, false);\n onContainerScroll();\n return function () {\n onMouseUpListener.remove();\n onMouseMoveListener.remove();\n };\n }, [scrollBarWidth, isActive]);\n React.useEffect(function () {\n var onScrollListener = addEventListener(container, 'scroll', onContainerScroll, false);\n var onResizeListener = addEventListener(window, 'resize', onContainerScroll, false);\n return function () {\n onScrollListener.remove();\n onResizeListener.remove();\n };\n }, [container]);\n React.useEffect(function () {\n if (!scrollState.isHiddenScrollBar) {\n setScrollState(function (state) {\n var bodyNode = scrollBodyRef.current;\n if (!bodyNode) {\n return state;\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n scrollLeft: bodyNode.scrollLeft / bodyNode.scrollWidth * bodyNode.clientWidth\n });\n });\n }\n }, [scrollState.isHiddenScrollBar]);\n if (bodyScrollWidth <= bodyWidth || !scrollBarWidth || scrollState.isHiddenScrollBar) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n height: getScrollBarSize(),\n width: bodyWidth,\n bottom: offsetScroll\n },\n className: \"\".concat(prefixCls, \"-sticky-scroll\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n onMouseDown: onMouseDown,\n ref: scrollBarRef,\n className: classNames(\"\".concat(prefixCls, \"-sticky-scroll-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-sticky-scroll-bar-active\"), isActive)),\n style: {\n width: \"\".concat(scrollBarWidth, \"px\"),\n transform: \"translate3d(\".concat(scrollState.scrollLeft, \"px, 0, 0)\")\n }\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(StickyScrollBar);","/* istanbul ignore next */\n/**\n * This is a syntactic sugar for `columns` prop.\n * So HOC will not work on this.\n */ // eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction Column(_) {\n return null;\n}\nexport default Column;","/* istanbul ignore next */\n/**\n * This is a syntactic sugar for `columns` prop.\n * So HOC will not work on this.\n */ // eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction ColumnGroup(_) {\n return null;\n}\nexport default ColumnGroup;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n/**\n * Feature:\n * - fixed not need to set width\n * - support `rowExpandable` to config row expand logic\n * - add `summary` to support `() => ReactNode`\n *\n * Update:\n * - `dataIndex` is `array[]` now\n * - `expandable` wrap all the expand related props\n *\n * Removed:\n * - expandIconAsCell\n * - useFixedHeader\n * - rowRef\n * - columns[number].onCellClick\n * - onRowClick\n * - onRowDoubleClick\n * - onRowMouseEnter\n * - onRowMouseLeave\n * - getBodyWrapper\n * - bodyStyle\n *\n * Deprecated:\n * - All expanded props, move into expandable\n */\n\nimport { makeImmutable } from '@rc-component/context';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport getValue from \"rc-util/es/utils/get\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport Body from \"./Body\";\nimport ColGroup from \"./ColGroup\";\nimport { EXPAND_COLUMN, INTERNAL_HOOKS } from \"./constant\";\nimport TableContext from \"./context/TableContext\";\nimport FixedHolder from \"./FixedHolder\";\nimport Footer, { FooterComponents } from \"./Footer\";\nimport Summary from \"./Footer/Summary\";\nimport Header from \"./Header/Header\";\nimport useColumns from \"./hooks/useColumns\";\nimport useExpand from \"./hooks/useExpand\";\nimport useFixedInfo from \"./hooks/useFixedInfo\";\nimport { useLayoutState, useTimeoutLock } from \"./hooks/useFrame\";\nimport useHover from \"./hooks/useHover\";\nimport useSticky from \"./hooks/useSticky\";\nimport useStickyOffsets from \"./hooks/useStickyOffsets\";\nimport Panel from \"./Panel\";\nimport StickyScrollBar from \"./stickyScrollBar\";\nimport Column from \"./sugar/Column\";\nimport ColumnGroup from \"./sugar/ColumnGroup\";\nimport { getColumnsKey, validateValue } from \"./utils/valueUtil\";\n\n// Used for conditions cache\nvar EMPTY_DATA = [];\n\n// Used for customize scroll\nvar EMPTY_SCROLL_TARGET = {};\nfunction defaultEmpty() {\n return 'No Data';\n}\nfunction Table(tableProps) {\n var _classNames;\n var props = _objectSpread({\n rowKey: 'key',\n prefixCls: 'rc-table',\n emptyText: defaultEmpty\n }, tableProps);\n var prefixCls = props.prefixCls,\n className = props.className,\n rowClassName = props.rowClassName,\n style = props.style,\n data = props.data,\n rowKey = props.rowKey,\n scroll = props.scroll,\n tableLayout = props.tableLayout,\n direction = props.direction,\n title = props.title,\n footer = props.footer,\n summary = props.summary,\n caption = props.caption,\n id = props.id,\n showHeader = props.showHeader,\n components = props.components,\n emptyText = props.emptyText,\n onRow = props.onRow,\n onHeaderRow = props.onHeaderRow,\n internalHooks = props.internalHooks,\n transformColumns = props.transformColumns,\n internalRefs = props.internalRefs,\n sticky = props.sticky;\n var mergedData = data || EMPTY_DATA;\n var hasData = !!mergedData.length;\n\n // ===================== Warning ======================\n if (process.env.NODE_ENV !== 'production') {\n ['onRowClick', 'onRowDoubleClick', 'onRowContextMenu', 'onRowMouseEnter', 'onRowMouseLeave'].forEach(function (name) {\n warning(props[name] === undefined, \"`\".concat(name, \"` is removed, please use `onRow` instead.\"));\n });\n warning(!('getBodyWrapper' in props), '`getBodyWrapper` is deprecated, please use custom `components` instead.');\n }\n\n // ==================== Customize =====================\n var getComponent = React.useCallback(function (path, defaultComponent) {\n return getValue(components, path) || defaultComponent;\n }, [components]);\n var getRowKey = React.useMemo(function () {\n if (typeof rowKey === 'function') {\n return rowKey;\n }\n return function (record) {\n var key = record && record[rowKey];\n if (process.env.NODE_ENV !== 'production') {\n warning(key !== undefined, 'Each record in table should have a unique `key` prop, or set `rowKey` to an unique primary key.');\n }\n return key;\n };\n }, [rowKey]);\n\n // ====================== Hover =======================\n var _useHover = useHover(),\n _useHover2 = _slicedToArray(_useHover, 3),\n startRow = _useHover2[0],\n endRow = _useHover2[1],\n onHover = _useHover2[2];\n\n // ====================== Expand ======================\n var _useExpand = useExpand(props, mergedData, getRowKey),\n _useExpand2 = _slicedToArray(_useExpand, 6),\n expandableConfig = _useExpand2[0],\n expandableType = _useExpand2[1],\n mergedExpandedKeys = _useExpand2[2],\n mergedExpandIcon = _useExpand2[3],\n mergedChildrenColumnName = _useExpand2[4],\n onTriggerExpand = _useExpand2[5];\n\n // ====================== Column ======================\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n componentWidth = _React$useState2[0],\n setComponentWidth = _React$useState2[1];\n var _useColumns = useColumns(_objectSpread(_objectSpread(_objectSpread({}, props), expandableConfig), {}, {\n expandable: !!expandableConfig.expandedRowRender,\n columnTitle: expandableConfig.columnTitle,\n expandedKeys: mergedExpandedKeys,\n getRowKey: getRowKey,\n // https://github.com/ant-design/ant-design/issues/23894\n onTriggerExpand: onTriggerExpand,\n expandIcon: mergedExpandIcon,\n expandIconColumnIndex: expandableConfig.expandIconColumnIndex,\n direction: direction\n }), internalHooks === INTERNAL_HOOKS ? transformColumns : null),\n _useColumns2 = _slicedToArray(_useColumns, 2),\n columns = _useColumns2[0],\n flattenColumns = _useColumns2[1];\n var columnContext = React.useMemo(function () {\n return {\n columns: columns,\n flattenColumns: flattenColumns\n };\n }, [columns, flattenColumns]);\n\n // ====================== Scroll ======================\n var fullTableRef = React.useRef();\n var scrollHeaderRef = React.useRef();\n var scrollBodyRef = React.useRef();\n var scrollBodyContainerRef = React.useRef();\n var scrollSummaryRef = React.useRef();\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n pingedLeft = _React$useState4[0],\n setPingedLeft = _React$useState4[1];\n var _React$useState5 = React.useState(false),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n pingedRight = _React$useState6[0],\n setPingedRight = _React$useState6[1];\n var _useLayoutState = useLayoutState(new Map()),\n _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n colsWidths = _useLayoutState2[0],\n updateColsWidths = _useLayoutState2[1];\n\n // Convert map to number width\n var colsKeys = getColumnsKey(flattenColumns);\n var pureColWidths = colsKeys.map(function (columnKey) {\n return colsWidths.get(columnKey);\n });\n var colWidths = React.useMemo(function () {\n return pureColWidths;\n }, [pureColWidths.join('_')]);\n var stickyOffsets = useStickyOffsets(colWidths, flattenColumns.length, direction);\n var fixHeader = scroll && validateValue(scroll.y);\n var horizonScroll = scroll && validateValue(scroll.x) || Boolean(expandableConfig.fixed);\n var fixColumn = horizonScroll && flattenColumns.some(function (_ref) {\n var fixed = _ref.fixed;\n return fixed;\n });\n\n // Sticky\n var stickyRef = React.useRef();\n var _useSticky = useSticky(sticky, prefixCls),\n isSticky = _useSticky.isSticky,\n offsetHeader = _useSticky.offsetHeader,\n offsetSummary = _useSticky.offsetSummary,\n offsetScroll = _useSticky.offsetScroll,\n stickyClassName = _useSticky.stickyClassName,\n container = _useSticky.container;\n\n // Footer (Fix footer must fixed header)\n var summaryNode = React.useMemo(function () {\n return summary === null || summary === void 0 ? void 0 : summary(mergedData);\n }, [summary, mergedData]);\n var fixFooter = (fixHeader || isSticky) && /*#__PURE__*/React.isValidElement(summaryNode) && summaryNode.type === Summary && summaryNode.props.fixed;\n\n // Scroll\n var scrollXStyle;\n var scrollYStyle;\n var scrollTableStyle;\n if (fixHeader) {\n scrollYStyle = {\n overflowY: 'scroll',\n maxHeight: scroll.y\n };\n }\n if (horizonScroll) {\n scrollXStyle = {\n overflowX: 'auto'\n };\n // When no vertical scrollbar, should hide it\n // https://github.com/ant-design/ant-design/pull/20705\n // https://github.com/ant-design/ant-design/issues/21879\n if (!fixHeader) {\n scrollYStyle = {\n overflowY: 'hidden'\n };\n }\n scrollTableStyle = {\n width: (scroll === null || scroll === void 0 ? void 0 : scroll.x) === true ? 'auto' : scroll === null || scroll === void 0 ? void 0 : scroll.x,\n minWidth: '100%'\n };\n }\n var onColumnResize = React.useCallback(function (columnKey, width) {\n if (isVisible(fullTableRef.current)) {\n updateColsWidths(function (widths) {\n if (widths.get(columnKey) !== width) {\n var newWidths = new Map(widths);\n newWidths.set(columnKey, width);\n return newWidths;\n }\n return widths;\n });\n }\n }, []);\n var _useTimeoutLock = useTimeoutLock(null),\n _useTimeoutLock2 = _slicedToArray(_useTimeoutLock, 2),\n setScrollTarget = _useTimeoutLock2[0],\n getScrollTarget = _useTimeoutLock2[1];\n function forceScroll(scrollLeft, target) {\n if (!target) {\n return;\n }\n if (typeof target === 'function') {\n target(scrollLeft);\n } else if (target.scrollLeft !== scrollLeft) {\n target.scrollLeft = scrollLeft;\n\n // Delay to force scroll position if not sync\n // ref: https://github.com/ant-design/ant-design/issues/37179\n if (target.scrollLeft !== scrollLeft) {\n setTimeout(function () {\n target.scrollLeft = scrollLeft;\n }, 0);\n }\n }\n }\n var onScroll = useEvent(function (_ref2) {\n var currentTarget = _ref2.currentTarget,\n scrollLeft = _ref2.scrollLeft;\n var isRTL = direction === 'rtl';\n var mergedScrollLeft = typeof scrollLeft === 'number' ? scrollLeft : currentTarget.scrollLeft;\n var compareTarget = currentTarget || EMPTY_SCROLL_TARGET;\n if (!getScrollTarget() || getScrollTarget() === compareTarget) {\n var _stickyRef$current;\n setScrollTarget(compareTarget);\n forceScroll(mergedScrollLeft, scrollHeaderRef.current);\n forceScroll(mergedScrollLeft, scrollBodyRef.current);\n forceScroll(mergedScrollLeft, scrollSummaryRef.current);\n forceScroll(mergedScrollLeft, (_stickyRef$current = stickyRef.current) === null || _stickyRef$current === void 0 ? void 0 : _stickyRef$current.setScrollLeft);\n }\n if (currentTarget) {\n var scrollWidth = currentTarget.scrollWidth,\n clientWidth = currentTarget.clientWidth;\n // There is no space to scroll\n if (scrollWidth === clientWidth) {\n setPingedLeft(false);\n setPingedRight(false);\n return;\n }\n if (isRTL) {\n setPingedLeft(-mergedScrollLeft < scrollWidth - clientWidth);\n setPingedRight(-mergedScrollLeft > 0);\n } else {\n setPingedLeft(mergedScrollLeft > 0);\n setPingedRight(mergedScrollLeft < scrollWidth - clientWidth);\n }\n }\n });\n var triggerOnScroll = function triggerOnScroll() {\n if (horizonScroll && scrollBodyRef.current) {\n onScroll({\n currentTarget: scrollBodyRef.current\n });\n } else {\n setPingedLeft(false);\n setPingedRight(false);\n }\n };\n var onFullTableResize = function onFullTableResize(_ref3) {\n var width = _ref3.width;\n if (width !== componentWidth) {\n triggerOnScroll();\n setComponentWidth(fullTableRef.current ? fullTableRef.current.offsetWidth : width);\n }\n };\n\n // Sync scroll bar when init or `horizonScroll`, `data` and `columns.length` changed\n var mounted = React.useRef(false);\n React.useEffect(function () {\n // onFullTableResize will be trigger once when ResizeObserver is mounted\n // This will reduce one duplicated triggerOnScroll time\n if (mounted.current) {\n triggerOnScroll();\n }\n }, [horizonScroll, data, columns.length]);\n React.useEffect(function () {\n mounted.current = true;\n }, []);\n\n // ===================== Effects ======================\n var _React$useState7 = React.useState(0),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n scrollbarSize = _React$useState8[0],\n setScrollbarSize = _React$useState8[1];\n var _React$useState9 = React.useState(true),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n supportSticky = _React$useState10[0],\n setSupportSticky = _React$useState10[1]; // Only IE not support, we mark as support first\n\n React.useEffect(function () {\n if (scrollBodyRef.current instanceof Element) {\n setScrollbarSize(getTargetScrollBarSize(scrollBodyRef.current).width);\n } else {\n setScrollbarSize(getTargetScrollBarSize(scrollBodyContainerRef.current).width);\n }\n setSupportSticky(isStyleSupport('position', 'sticky'));\n }, []);\n\n // ================== INTERNAL HOOKS ==================\n React.useEffect(function () {\n if (internalHooks === INTERNAL_HOOKS && internalRefs) {\n internalRefs.body.current = scrollBodyRef.current;\n }\n });\n\n // ========================================================================\n // == Render ==\n // ========================================================================\n // =================== Render: Func ===================\n var renderFixedHeaderTable = React.useCallback(function (fixedHolderPassProps) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header, fixedHolderPassProps), fixFooter === 'top' && /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode));\n }, [fixFooter, summaryNode]);\n var renderFixedFooterTable = React.useCallback(function (fixedHolderPassProps) {\n return /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode);\n }, [summaryNode]);\n\n // =================== Render: Node ===================\n var TableComponent = getComponent(['table'], 'table');\n\n // Table layout\n var mergedTableLayout = React.useMemo(function () {\n if (tableLayout) {\n return tableLayout;\n }\n // https://github.com/ant-design/ant-design/issues/25227\n // When scroll.x is max-content, no need to fix table layout\n // it's width should stretch out to fit content\n if (fixColumn) {\n return (scroll === null || scroll === void 0 ? void 0 : scroll.x) === 'max-content' ? 'auto' : 'fixed';\n }\n if (fixHeader || isSticky || flattenColumns.some(function (_ref4) {\n var ellipsis = _ref4.ellipsis;\n return ellipsis;\n })) {\n return 'fixed';\n }\n return 'auto';\n }, [fixHeader, fixColumn, flattenColumns, tableLayout, isSticky]);\n var groupTableNode;\n\n // Header props\n var headerProps = {\n colWidths: colWidths,\n columCount: flattenColumns.length,\n stickyOffsets: stickyOffsets,\n onHeaderRow: onHeaderRow,\n fixHeader: fixHeader,\n scroll: scroll\n };\n\n // Empty\n var emptyNode = React.useMemo(function () {\n if (hasData) {\n return null;\n }\n if (typeof emptyText === 'function') {\n return emptyText();\n }\n return emptyText;\n }, [hasData, emptyText]);\n\n // Body\n var bodyTable = /*#__PURE__*/React.createElement(Body, {\n data: mergedData,\n measureColumnWidth: fixHeader || horizonScroll || isSticky,\n expandedKeys: mergedExpandedKeys,\n rowExpandable: expandableConfig.rowExpandable,\n getRowKey: getRowKey,\n onRow: onRow,\n emptyNode: emptyNode,\n childrenColumnName: mergedChildrenColumnName\n });\n var bodyColGroup = /*#__PURE__*/React.createElement(ColGroup, {\n colWidths: flattenColumns.map(function (_ref5) {\n var width = _ref5.width;\n return width;\n }),\n columns: flattenColumns\n });\n var captionElement = caption !== null && caption !== undefined ? /*#__PURE__*/React.createElement(\"caption\", {\n className: \"\".concat(prefixCls, \"-caption\")\n }, caption) : undefined;\n var customizeScrollBody = getComponent(['body']);\n if (process.env.NODE_ENV !== 'production' && typeof customizeScrollBody === 'function' && hasData && !fixHeader) {\n warning(false, '`components.body` with render props is only work on `scroll.y`.');\n }\n var dataProps = pickAttrs(props, {\n data: true\n });\n var ariaProps = pickAttrs(props, {\n aria: true\n });\n if (fixHeader || isSticky) {\n // >>>>>> Fixed Header\n var bodyContent;\n if (typeof customizeScrollBody === 'function') {\n bodyContent = customizeScrollBody(mergedData, {\n scrollbarSize: scrollbarSize,\n ref: scrollBodyRef,\n onScroll: onScroll\n });\n headerProps.colWidths = flattenColumns.map(function (_ref6, index) {\n var width = _ref6.width;\n var colWidth = index === flattenColumns.length - 1 ? width - scrollbarSize : width;\n if (typeof colWidth === 'number' && !Number.isNaN(colWidth)) {\n return colWidth;\n }\n if (process.env.NODE_ENV !== 'production') {\n warning(props.columns.length === 0, 'When use `components.body` with render props. Each column should have a fixed `width` value.');\n }\n return 0;\n });\n } else {\n bodyContent = /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n onScroll: onScroll,\n ref: scrollBodyRef,\n className: classNames(\"\".concat(prefixCls, \"-body\"))\n }, /*#__PURE__*/React.createElement(TableComponent, _extends({\n style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n tableLayout: mergedTableLayout\n })\n }, ariaProps), captionElement, bodyColGroup, bodyTable, !fixFooter && summaryNode && /*#__PURE__*/React.createElement(Footer, {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns,\n columns: columns\n }, summaryNode)));\n }\n\n // Fixed holder share the props\n var fixedHolderProps = _objectSpread(_objectSpread(_objectSpread({\n noData: !mergedData.length,\n maxContentScroll: horizonScroll && scroll.x === 'max-content'\n }, headerProps), columnContext), {}, {\n direction: direction,\n stickyClassName: stickyClassName,\n onScroll: onScroll\n });\n groupTableNode = /*#__PURE__*/React.createElement(React.Fragment, null, showHeader !== false && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n stickyTopOffset: offsetHeader,\n className: \"\".concat(prefixCls, \"-header\"),\n ref: scrollHeaderRef\n }), renderFixedHeaderTable), bodyContent, fixFooter && fixFooter !== 'top' && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n stickyBottomOffset: offsetSummary,\n className: \"\".concat(prefixCls, \"-summary\"),\n ref: scrollSummaryRef\n }), renderFixedFooterTable), isSticky && /*#__PURE__*/React.createElement(StickyScrollBar, {\n ref: stickyRef,\n offsetScroll: offsetScroll,\n scrollBodyRef: scrollBodyRef,\n onScroll: onScroll,\n container: container\n }));\n } else {\n // >>>>>> Unique table\n groupTableNode = /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n className: classNames(\"\".concat(prefixCls, \"-content\")),\n onScroll: onScroll,\n ref: scrollBodyRef\n }, /*#__PURE__*/React.createElement(TableComponent, _extends({\n style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n tableLayout: mergedTableLayout\n })\n }, ariaProps), captionElement, bodyColGroup, showHeader !== false && /*#__PURE__*/React.createElement(Header, _extends({}, headerProps, columnContext)), bodyTable, summaryNode && /*#__PURE__*/React.createElement(Footer, {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns,\n columns: columns\n }, summaryNode)));\n }\n var fullTable = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ping-left\"), pingedLeft), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ping-right\"), pingedRight), _defineProperty(_classNames, \"\".concat(prefixCls, \"-layout-fixed\"), tableLayout === 'fixed'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-fixed-header\"), fixHeader), _defineProperty(_classNames, \"\".concat(prefixCls, \"-fixed-column\"), fixColumn), _defineProperty(_classNames, \"\".concat(prefixCls, \"-scroll-horizontal\"), horizonScroll), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-fix-left\"), flattenColumns[0] && flattenColumns[0].fixed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-fix-right\"), flattenColumns[flattenColumns.length - 1] && flattenColumns[flattenColumns.length - 1].fixed === 'right'), _classNames)),\n style: style,\n id: id,\n ref: fullTableRef\n }, dataProps), title && /*#__PURE__*/React.createElement(Panel, {\n className: \"\".concat(prefixCls, \"-title\")\n }, title(mergedData)), /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollBodyContainerRef,\n className: \"\".concat(prefixCls, \"-container\")\n }, groupTableNode), footer && /*#__PURE__*/React.createElement(Panel, {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer(mergedData)));\n if (horizonScroll) {\n fullTable = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onFullTableResize\n }, fullTable);\n }\n var fixedInfoList = useFixedInfo(flattenColumns, stickyOffsets, direction, columns);\n var TableContextValue = React.useMemo(function () {\n return {\n // Table\n prefixCls: prefixCls,\n getComponent: getComponent,\n scrollbarSize: scrollbarSize,\n direction: direction,\n fixedInfoList: fixedInfoList,\n isSticky: isSticky,\n supportSticky: supportSticky,\n componentWidth: componentWidth,\n fixHeader: fixHeader,\n fixColumn: fixColumn,\n horizonScroll: horizonScroll,\n // Body\n\n tableLayout: mergedTableLayout,\n rowClassName: rowClassName,\n expandedRowClassName: expandableConfig.expandedRowClassName,\n expandIcon: mergedExpandIcon,\n expandableType: expandableType,\n expandRowByClick: expandableConfig.expandRowByClick,\n expandedRowRender: expandableConfig.expandedRowRender,\n onTriggerExpand: onTriggerExpand,\n expandIconColumnIndex: expandableConfig.expandIconColumnIndex,\n indentSize: expandableConfig.indentSize,\n allColumnsFixedLeft: flattenColumns.every(function (col) {\n return col.fixed === 'left';\n }),\n // Column\n columns: columns,\n flattenColumns: flattenColumns,\n onColumnResize: onColumnResize,\n // Row\n hoverStartRow: startRow,\n hoverEndRow: endRow,\n onHover: onHover\n };\n }, [\n // Table\n prefixCls, getComponent, scrollbarSize, direction, fixedInfoList, isSticky, supportSticky, componentWidth, fixHeader, fixColumn, horizonScroll,\n // Body\n mergedTableLayout, rowClassName, expandableConfig.expandedRowClassName, mergedExpandIcon, expandableType, expandableConfig.expandRowByClick, expandableConfig.expandedRowRender, onTriggerExpand, expandableConfig.expandIconColumnIndex, expandableConfig.indentSize,\n // Column\n columns, flattenColumns, onColumnResize,\n // Row\n startRow, endRow, onHover]);\n return /*#__PURE__*/React.createElement(TableContext.Provider, {\n value: TableContextValue\n }, fullTable);\n}\nexport function genTable(shouldTriggerRender) {\n return makeImmutable(Table, shouldTriggerRender);\n}\nvar ImmutableTable = genTable();\nImmutableTable.EXPAND_COLUMN = EXPAND_COLUMN;\nImmutableTable.INTERNAL_HOOKS = INTERNAL_HOOKS;\nImmutableTable.Column = Column;\nImmutableTable.ColumnGroup = ColumnGroup;\nImmutableTable.Summary = FooterComponents;\nexport default ImmutableTable;","import { EXPAND_COLUMN, INTERNAL_HOOKS } from \"./constant\";\nimport { FooterComponents as Summary } from \"./Footer\";\nimport Column from \"./sugar/Column\";\nimport ColumnGroup from \"./sugar/ColumnGroup\";\nimport Table, { genTable } from \"./Table\";\nimport { INTERNAL_COL_DEFINE } from \"./utils/legacyUtil\";\nexport { genTable, Summary, Column, ColumnGroup, INTERNAL_COL_DEFINE, EXPAND_COLUMN, INTERNAL_HOOKS };\nexport default Table;","/* istanbul ignore next */\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\n// eslint-disable-next-line no-unused-vars\nfunction Column(_) {\n return null;\n}\nexport default Column;","/* istanbul ignore next */\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\n// eslint-disable-next-line no-unused-vars\nfunction ColumnGroup(_) {\n return null;\n}\nexport default ColumnGroup;","import classNames from 'classnames';\nimport * as React from 'react';\nfunction renderExpandIcon(locale) {\n return function expandIcon(_ref) {\n let {\n prefixCls,\n onExpand,\n record,\n expanded,\n expandable\n } = _ref;\n const iconPrefix = `${prefixCls}-row-expand-icon`;\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: e => {\n onExpand(record, e);\n e.stopPropagation();\n },\n className: classNames(iconPrefix, {\n [`${iconPrefix}-spaced`]: !expandable,\n [`${iconPrefix}-expanded`]: expandable && expanded,\n [`${iconPrefix}-collapsed`]: expandable && !expanded\n }),\n \"aria-label\": expanded ? locale.collapse : locale.expand,\n \"aria-expanded\": expanded\n });\n };\n}\nexport default renderExpandIcon;","import { genTable } from 'rc-table';\n/**\n * Same as `rc-table` but we modify trigger children update logic instead.\n */\nexport default genTable((prev, next) => {\n const {\n _renderTimes: prevRenderTimes\n } = prev;\n const {\n _renderTimes: nextRenderTimes\n } = next;\n return prevRenderTimes !== nextRenderTimes;\n});","export function getColumnKey(column, defaultKey) {\n if ('key' in column && column.key !== undefined && column.key !== null) {\n return column.key;\n }\n if (column.dataIndex) {\n return Array.isArray(column.dataIndex) ? column.dataIndex.join('.') : column.dataIndex;\n }\n return defaultKey;\n}\nexport function getColumnPos(index, pos) {\n return pos ? `${pos}-${index}` : `${index}`;\n}\nexport function renderColumnTitle(title, props) {\n if (typeof title === 'function') {\n return title(props);\n }\n return title;\n}\n/**\n * Safe get column title\n *\n * Should filter [object Object]\n *\n * @param title\n * @returns\n */\nexport function safeColumnTitle(title, props) {\n const res = renderColumnTitle(title, props);\n if (Object.prototype.toString.call(res) === '[object Object]') return '';\n return res;\n}","// This icon file is generated automatically.\nvar FilterFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z\" } }] }, \"name\": \"filter\", \"theme\": \"filled\" };\nexport default FilterFilled;\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 FilterFilledSvg from \"@ant-design/icons-svg/es/asn/FilterFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FilterFilled = function FilterFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FilterFilledSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n FilterFilled.displayName = 'FilterFilled';\n}\nexport default /*#__PURE__*/React.forwardRef(FilterFilled);","import * as React from 'react';\nimport useForceUpdate from './useForceUpdate';\nexport default function useSyncState(initialValue) {\n const ref = React.useRef(initialValue);\n const forceUpdate = useForceUpdate();\n return [() => ref.current, newValue => {\n ref.current = newValue;\n // re-render\n forceUpdate();\n }];\n}","import SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport * as React from 'react';\nimport Input from '../../../input';\nfunction FilterSearch(_ref) {\n let {\n value,\n onChange,\n filterSearch,\n tablePrefixCls,\n locale\n } = _ref;\n if (!filterSearch) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${tablePrefixCls}-filter-dropdown-search`\n }, /*#__PURE__*/React.createElement(Input, {\n prefix: /*#__PURE__*/React.createElement(SearchOutlined, null),\n placeholder: locale.filterSearchPlaceholder,\n onChange: onChange,\n value: value,\n // for skip min-width of input\n htmlSize: 1,\n className: `${tablePrefixCls}-filter-dropdown-search-input`\n }));\n}\nexport default FilterSearch;","import KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nconst onKeyDown = event => {\n const {\n keyCode\n } = event;\n if (keyCode === KeyCode.ENTER) {\n event.stopPropagation();\n }\n};\nconst FilterDropdownMenuWrapper = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(\"div\", {\n className: props.className,\n onClick: e => e.stopPropagation(),\n onKeyDown: onKeyDown,\n ref: ref\n}, props.children));\nif (process.env.NODE_ENV !== 'production') {\n FilterDropdownMenuWrapper.displayName = 'FilterDropdownMenuWrapper';\n}\nexport default FilterDropdownMenuWrapper;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport FilterFilled from \"@ant-design/icons/es/icons/FilterFilled\";\nimport classNames from 'classnames';\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport useSyncState from '../../../_util/hooks/useSyncState';\nimport warning from '../../../_util/warning';\nimport Button from '../../../button';\nimport Checkbox from '../../../checkbox';\nimport { ConfigContext } from '../../../config-provider/context';\nimport Dropdown from '../../../dropdown';\nimport Empty from '../../../empty';\nimport Menu from '../../../menu';\nimport { OverrideProvider } from '../../../menu/OverrideContext';\nimport Radio from '../../../radio';\nimport Tree from '../../../tree';\nimport FilterSearch from './FilterSearch';\nimport FilterDropdownMenuWrapper from './FilterWrapper';\nexport function flattenKeys(filters) {\n let keys = [];\n (filters || []).forEach(_ref => {\n let {\n value,\n children\n } = _ref;\n keys.push(value);\n if (children) {\n keys = [].concat(_toConsumableArray(keys), _toConsumableArray(flattenKeys(children)));\n }\n });\n return keys;\n}\nfunction hasSubMenu(filters) {\n return filters.some(_ref2 => {\n let {\n children\n } = _ref2;\n return children;\n });\n}\nfunction searchValueMatched(searchValue, text) {\n if (typeof text === 'string' || typeof text === 'number') {\n return text === null || text === void 0 ? void 0 : text.toString().toLowerCase().includes(searchValue.trim().toLowerCase());\n }\n return false;\n}\nfunction renderFilterItems(_ref3) {\n let {\n filters,\n prefixCls,\n filteredKeys,\n filterMultiple,\n searchValue,\n filterSearch\n } = _ref3;\n return filters.map((filter, index) => {\n const key = String(filter.value);\n if (filter.children) {\n return {\n key: key || index,\n label: filter.text,\n popupClassName: `${prefixCls}-dropdown-submenu`,\n children: renderFilterItems({\n filters: filter.children,\n prefixCls,\n filteredKeys,\n filterMultiple,\n searchValue,\n filterSearch\n })\n };\n }\n const Component = filterMultiple ? Checkbox : Radio;\n const item = {\n key: filter.value !== undefined ? key : index,\n label: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Component, {\n checked: filteredKeys.includes(key)\n }), /*#__PURE__*/React.createElement(\"span\", null, filter.text))\n };\n if (searchValue.trim()) {\n if (typeof filterSearch === 'function') {\n return filterSearch(searchValue, filter) ? item : null;\n }\n return searchValueMatched(searchValue, filter.text) ? item : null;\n }\n return item;\n });\n}\nfunction FilterDropdown(props) {\n var _a, _b;\n const {\n tablePrefixCls,\n prefixCls,\n column,\n dropdownPrefixCls,\n columnKey,\n filterMultiple,\n filterMode = 'menu',\n filterSearch = false,\n filterState,\n triggerFilter,\n locale,\n children,\n getPopupContainer\n } = props;\n const {\n filterDropdownOpen,\n onFilterDropdownOpenChange,\n filterResetToDefaultFilteredValue,\n defaultFilteredValue,\n // Deprecated\n filterDropdownVisible,\n onFilterDropdownVisibleChange\n } = column;\n const [visible, setVisible] = React.useState(false);\n const filtered = !!(filterState && (((_a = filterState.filteredKeys) === null || _a === void 0 ? void 0 : _a.length) || filterState.forceFiltered));\n const triggerVisible = newVisible => {\n setVisible(newVisible);\n onFilterDropdownOpenChange === null || onFilterDropdownOpenChange === void 0 ? void 0 : onFilterDropdownOpenChange(newVisible);\n onFilterDropdownVisibleChange === null || onFilterDropdownVisibleChange === void 0 ? void 0 : onFilterDropdownVisibleChange(newVisible);\n };\n if (process.env.NODE_ENV !== 'production') {\n [['filterDropdownVisible', 'filterDropdownOpen', filterDropdownVisible], ['onFilterDropdownVisibleChange', 'onFilterDropdownOpenChange', onFilterDropdownVisibleChange]].forEach(_ref4 => {\n let [deprecatedName, newName, prop] = _ref4;\n process.env.NODE_ENV !== \"production\" ? warning(prop === undefined || prop === null, 'Table', `\\`${deprecatedName}\\` is deprecated. Please use \\`${newName}\\` instead.`) : void 0;\n });\n }\n const mergedVisible = (_b = filterDropdownOpen !== null && filterDropdownOpen !== void 0 ? filterDropdownOpen : filterDropdownVisible) !== null && _b !== void 0 ? _b : visible;\n // ===================== Select Keys =====================\n const propFilteredKeys = filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys;\n const [getFilteredKeysSync, setFilteredKeysSync] = useSyncState(propFilteredKeys || []);\n const onSelectKeys = _ref5 => {\n let {\n selectedKeys\n } = _ref5;\n setFilteredKeysSync(selectedKeys);\n };\n const onCheck = (keys, _ref6) => {\n let {\n node,\n checked\n } = _ref6;\n if (!filterMultiple) {\n onSelectKeys({\n selectedKeys: checked && node.key ? [node.key] : []\n });\n } else {\n onSelectKeys({\n selectedKeys: keys\n });\n }\n };\n React.useEffect(() => {\n if (!visible) {\n return;\n }\n onSelectKeys({\n selectedKeys: propFilteredKeys || []\n });\n }, [propFilteredKeys]);\n // ====================== Open Keys ======================\n const [openKeys, setOpenKeys] = React.useState([]);\n const onOpenChange = keys => {\n setOpenKeys(keys);\n };\n // search in tree mode column filter\n const [searchValue, setSearchValue] = React.useState('');\n const onSearch = e => {\n const {\n value\n } = e.target;\n setSearchValue(value);\n };\n // clear search value after close filter dropdown\n React.useEffect(() => {\n if (!visible) {\n setSearchValue('');\n }\n }, [visible]);\n // ======================= Submit ========================\n const internalTriggerFilter = keys => {\n const mergedKeys = keys && keys.length ? keys : null;\n if (mergedKeys === null && (!filterState || !filterState.filteredKeys)) {\n return null;\n }\n if (isEqual(mergedKeys, filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys, true)) {\n return null;\n }\n triggerFilter({\n column,\n key: columnKey,\n filteredKeys: mergedKeys\n });\n };\n const onConfirm = () => {\n triggerVisible(false);\n internalTriggerFilter(getFilteredKeysSync());\n };\n const onReset = function () {\n let {\n confirm,\n closeDropdown\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n confirm: false,\n closeDropdown: false\n };\n if (confirm) {\n internalTriggerFilter([]);\n }\n if (closeDropdown) {\n triggerVisible(false);\n }\n setSearchValue('');\n if (filterResetToDefaultFilteredValue) {\n setFilteredKeysSync((defaultFilteredValue || []).map(key => String(key)));\n } else {\n setFilteredKeysSync([]);\n }\n };\n const doFilter = function () {\n let {\n closeDropdown\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n closeDropdown: true\n };\n if (closeDropdown) {\n triggerVisible(false);\n }\n internalTriggerFilter(getFilteredKeysSync());\n };\n const onVisibleChange = newVisible => {\n if (newVisible && propFilteredKeys !== undefined) {\n // Sync filteredKeys on appear in controlled mode (propFilteredKeys !== undefined)\n setFilteredKeysSync(propFilteredKeys || []);\n }\n triggerVisible(newVisible);\n // Default will filter when closed\n if (!newVisible && !column.filterDropdown) {\n onConfirm();\n }\n };\n // ======================== Style ========================\n const dropdownMenuClass = classNames({\n [`${dropdownPrefixCls}-menu-without-submenu`]: !hasSubMenu(column.filters || [])\n });\n const onCheckAll = e => {\n if (e.target.checked) {\n const allFilterKeys = flattenKeys(column === null || column === void 0 ? void 0 : column.filters).map(key => String(key));\n setFilteredKeysSync(allFilterKeys);\n } else {\n setFilteredKeysSync([]);\n }\n };\n const getTreeData = _ref7 => {\n let {\n filters\n } = _ref7;\n return (filters || []).map((filter, index) => {\n const key = String(filter.value);\n const item = {\n title: filter.text,\n key: filter.value !== undefined ? key : index\n };\n if (filter.children) {\n item.children = getTreeData({\n filters: filter.children\n });\n }\n return item;\n });\n };\n const getFilterData = node => {\n var _a;\n return Object.assign(Object.assign({}, node), {\n text: node.title,\n value: node.key,\n children: ((_a = node.children) === null || _a === void 0 ? void 0 : _a.map(item => getFilterData(item))) || []\n });\n };\n let dropdownContent;\n if (typeof column.filterDropdown === 'function') {\n dropdownContent = column.filterDropdown({\n prefixCls: `${dropdownPrefixCls}-custom`,\n setSelectedKeys: selectedKeys => onSelectKeys({\n selectedKeys\n }),\n selectedKeys: getFilteredKeysSync(),\n confirm: doFilter,\n clearFilters: onReset,\n filters: column.filters,\n visible: mergedVisible,\n close: () => {\n triggerVisible(false);\n }\n });\n } else if (column.filterDropdown) {\n dropdownContent = column.filterDropdown;\n } else {\n const selectedKeys = getFilteredKeysSync() || [];\n const getFilterComponent = () => {\n if ((column.filters || []).length === 0) {\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE,\n description: locale.filterEmptyText,\n imageStyle: {\n height: 24\n },\n style: {\n margin: 0,\n padding: '16px 0'\n }\n });\n }\n if (filterMode === 'tree') {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n filterSearch: filterSearch,\n value: searchValue,\n onChange: onSearch,\n tablePrefixCls: tablePrefixCls,\n locale: locale\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: `${tablePrefixCls}-filter-dropdown-tree`\n }, filterMultiple ? /*#__PURE__*/React.createElement(Checkbox, {\n checked: selectedKeys.length === flattenKeys(column.filters).length,\n indeterminate: selectedKeys.length > 0 && selectedKeys.length < flattenKeys(column.filters).length,\n className: `${tablePrefixCls}-filter-dropdown-checkall`,\n onChange: onCheckAll\n }, locale.filterCheckall) : null, /*#__PURE__*/React.createElement(Tree, {\n checkable: true,\n selectable: false,\n blockNode: true,\n multiple: filterMultiple,\n checkStrictly: !filterMultiple,\n className: `${dropdownPrefixCls}-menu`,\n onCheck: onCheck,\n checkedKeys: selectedKeys,\n selectedKeys: selectedKeys,\n showIcon: false,\n treeData: getTreeData({\n filters: column.filters\n }),\n autoExpandParent: true,\n defaultExpandAll: true,\n filterTreeNode: searchValue.trim() ? node => {\n if (typeof filterSearch === 'function') {\n return filterSearch(searchValue, getFilterData(node));\n }\n return searchValueMatched(searchValue, node.title);\n } : undefined\n })));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n filterSearch: filterSearch,\n value: searchValue,\n onChange: onSearch,\n tablePrefixCls: tablePrefixCls,\n locale: locale\n }), /*#__PURE__*/React.createElement(Menu, {\n selectable: true,\n multiple: filterMultiple,\n prefixCls: `${dropdownPrefixCls}-menu`,\n className: dropdownMenuClass,\n onSelect: onSelectKeys,\n onDeselect: onSelectKeys,\n selectedKeys: selectedKeys,\n getPopupContainer: getPopupContainer,\n openKeys: openKeys,\n onOpenChange: onOpenChange,\n items: renderFilterItems({\n filters: column.filters || [],\n filterSearch,\n prefixCls,\n filteredKeys: getFilteredKeysSync(),\n filterMultiple,\n searchValue\n })\n }));\n };\n const getResetDisabled = () => {\n if (filterResetToDefaultFilteredValue) {\n return isEqual((defaultFilteredValue || []).map(key => String(key)), selectedKeys, true);\n }\n return selectedKeys.length === 0;\n };\n dropdownContent = /*#__PURE__*/React.createElement(React.Fragment, null, getFilterComponent(), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-dropdown-btns`\n }, /*#__PURE__*/React.createElement(Button, {\n type: \"link\",\n size: \"small\",\n disabled: getResetDisabled(),\n onClick: () => onReset()\n }, locale.filterReset), /*#__PURE__*/React.createElement(Button, {\n type: \"primary\",\n size: \"small\",\n onClick: onConfirm\n }, locale.filterConfirm)));\n }\n // We should not block customize Menu with additional props\n if (column.filterDropdown) {\n dropdownContent = /*#__PURE__*/React.createElement(OverrideProvider, {\n selectable: undefined\n }, dropdownContent);\n }\n const menu = () => /*#__PURE__*/React.createElement(FilterDropdownMenuWrapper, {\n className: `${prefixCls}-dropdown`\n }, dropdownContent);\n let filterIcon;\n if (typeof column.filterIcon === 'function') {\n filterIcon = column.filterIcon(filtered);\n } else if (column.filterIcon) {\n filterIcon = column.filterIcon;\n } else {\n filterIcon = /*#__PURE__*/React.createElement(FilterFilled, null);\n }\n const {\n direction\n } = React.useContext(ConfigContext);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-column`\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${tablePrefixCls}-column-title`\n }, children), /*#__PURE__*/React.createElement(Dropdown, {\n dropdownRender: menu,\n trigger: ['click'],\n open: mergedVisible,\n onOpenChange: onVisibleChange,\n getPopupContainer: getPopupContainer,\n placement: direction === 'rtl' ? 'bottomLeft' : 'bottomRight'\n }, /*#__PURE__*/React.createElement(\"span\", {\n role: \"button\",\n tabIndex: -1,\n className: classNames(`${prefixCls}-trigger`, {\n active: filtered\n }),\n onClick: e => {\n e.stopPropagation();\n }\n }, filterIcon)));\n}\nexport default FilterDropdown;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from '../../../_util/warning';\nimport { getColumnKey, getColumnPos, renderColumnTitle } from '../../util';\nimport FilterDropdown, { flattenKeys } from './FilterDropdown';\nfunction collectFilterStates(columns, init, pos) {\n let filterStates = [];\n (columns || []).forEach((column, index) => {\n var _a;\n const columnPos = getColumnPos(index, pos);\n if (column.filters || 'filterDropdown' in column || 'onFilter' in column) {\n if ('filteredValue' in column) {\n // Controlled\n let filteredValues = column.filteredValue;\n if (!('filterDropdown' in column)) {\n filteredValues = (_a = filteredValues === null || filteredValues === void 0 ? void 0 : filteredValues.map(String)) !== null && _a !== void 0 ? _a : filteredValues;\n }\n filterStates.push({\n column,\n key: getColumnKey(column, columnPos),\n filteredKeys: filteredValues,\n forceFiltered: column.filtered\n });\n } else {\n // Uncontrolled\n filterStates.push({\n column,\n key: getColumnKey(column, columnPos),\n filteredKeys: init && column.defaultFilteredValue ? column.defaultFilteredValue : undefined,\n forceFiltered: column.filtered\n });\n }\n }\n if ('children' in column) {\n filterStates = [].concat(_toConsumableArray(filterStates), _toConsumableArray(collectFilterStates(column.children, init, columnPos)));\n }\n });\n return filterStates;\n}\nfunction injectFilter(prefixCls, dropdownPrefixCls, columns, filterStates, locale, triggerFilter, getPopupContainer, pos) {\n return columns.map((column, index) => {\n const columnPos = getColumnPos(index, pos);\n const {\n filterMultiple = true,\n filterMode,\n filterSearch\n } = column;\n let newColumn = column;\n if (newColumn.filters || newColumn.filterDropdown) {\n const columnKey = getColumnKey(newColumn, columnPos);\n const filterState = filterStates.find(_ref => {\n let {\n key\n } = _ref;\n return columnKey === key;\n });\n newColumn = Object.assign(Object.assign({}, newColumn), {\n title: renderProps => /*#__PURE__*/React.createElement(FilterDropdown, {\n tablePrefixCls: prefixCls,\n prefixCls: `${prefixCls}-filter`,\n dropdownPrefixCls: dropdownPrefixCls,\n column: newColumn,\n columnKey: columnKey,\n filterState: filterState,\n filterMultiple: filterMultiple,\n filterMode: filterMode,\n filterSearch: filterSearch,\n triggerFilter: triggerFilter,\n locale: locale,\n getPopupContainer: getPopupContainer\n }, renderColumnTitle(column.title, renderProps))\n });\n }\n if ('children' in newColumn) {\n newColumn = Object.assign(Object.assign({}, newColumn), {\n children: injectFilter(prefixCls, dropdownPrefixCls, newColumn.children, filterStates, locale, triggerFilter, getPopupContainer, columnPos)\n });\n }\n return newColumn;\n });\n}\nfunction generateFilterInfo(filterStates) {\n const currentFilters = {};\n filterStates.forEach(_ref2 => {\n let {\n key,\n filteredKeys,\n column\n } = _ref2;\n const {\n filters,\n filterDropdown\n } = column;\n if (filterDropdown) {\n currentFilters[key] = filteredKeys || null;\n } else if (Array.isArray(filteredKeys)) {\n const keys = flattenKeys(filters);\n currentFilters[key] = keys.filter(originKey => filteredKeys.includes(String(originKey)));\n } else {\n currentFilters[key] = null;\n }\n });\n return currentFilters;\n}\nexport function getFilterData(data, filterStates) {\n return filterStates.reduce((currentData, filterState) => {\n const {\n column: {\n onFilter,\n filters\n },\n filteredKeys\n } = filterState;\n if (onFilter && filteredKeys && filteredKeys.length) {\n return currentData.filter(record => filteredKeys.some(key => {\n const keys = flattenKeys(filters);\n const keyIndex = keys.findIndex(k => String(k) === String(key));\n const realKey = keyIndex !== -1 ? keys[keyIndex] : key;\n return onFilter(realKey, record);\n }));\n }\n return currentData;\n }, data);\n}\nconst getMergedColumns = rawMergedColumns => rawMergedColumns.flatMap(column => {\n if ('children' in column) {\n return [column].concat(_toConsumableArray(getMergedColumns(column.children || [])));\n }\n return [column];\n});\nfunction useFilter(_ref3) {\n let {\n prefixCls,\n dropdownPrefixCls,\n mergedColumns: rawMergedColumns,\n onFilterChange,\n getPopupContainer,\n locale: tableLocale\n } = _ref3;\n const mergedColumns = React.useMemo(() => getMergedColumns(rawMergedColumns || []), [rawMergedColumns]);\n const [filterStates, setFilterStates] = React.useState(() => collectFilterStates(mergedColumns, true));\n const mergedFilterStates = React.useMemo(() => {\n const collectedStates = collectFilterStates(mergedColumns, false);\n if (collectedStates.length === 0) {\n return collectedStates;\n }\n let filteredKeysIsAllNotControlled = true;\n let filteredKeysIsAllControlled = true;\n collectedStates.forEach(_ref4 => {\n let {\n filteredKeys\n } = _ref4;\n if (filteredKeys !== undefined) {\n filteredKeysIsAllNotControlled = false;\n } else {\n filteredKeysIsAllControlled = false;\n }\n });\n // Return if not controlled\n if (filteredKeysIsAllNotControlled) {\n // Filter column may have been removed\n const keyList = (mergedColumns || []).map((column, index) => getColumnKey(column, getColumnPos(index)));\n return filterStates.filter(_ref5 => {\n let {\n key\n } = _ref5;\n return keyList.includes(key);\n }).map(item => {\n const col = mergedColumns[keyList.findIndex(key => key === item.key)];\n return Object.assign(Object.assign({}, item), {\n column: Object.assign(Object.assign({}, item.column), col),\n forceFiltered: col.filtered\n });\n });\n }\n process.env.NODE_ENV !== \"production\" ? warning(filteredKeysIsAllControlled, 'Table', 'Columns should all contain `filteredValue` or not contain `filteredValue`.') : void 0;\n return collectedStates;\n }, [mergedColumns, filterStates]);\n const filters = React.useMemo(() => generateFilterInfo(mergedFilterStates), [mergedFilterStates]);\n const triggerFilter = filterState => {\n const newFilterStates = mergedFilterStates.filter(_ref6 => {\n let {\n key\n } = _ref6;\n return key !== filterState.key;\n });\n newFilterStates.push(filterState);\n setFilterStates(newFilterStates);\n onFilterChange(generateFilterInfo(newFilterStates), newFilterStates);\n };\n const transformColumns = innerColumns => injectFilter(prefixCls, dropdownPrefixCls, innerColumns, mergedFilterStates, tableLocale, triggerFilter, getPopupContainer);\n return [transformColumns, mergedFilterStates, filters];\n}\nexport { flattenKeys };\nexport default useFilter;","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 { useState } from 'react';\nimport extendsObject from '../../_util/extendsObject';\nexport const DEFAULT_PAGE_SIZE = 10;\nexport function getPaginationParam(mergedPagination, pagination) {\n const param = {\n current: mergedPagination.current,\n pageSize: mergedPagination.pageSize\n };\n const paginationObj = pagination && typeof pagination === 'object' ? pagination : {};\n Object.keys(paginationObj).forEach(pageProp => {\n const value = mergedPagination[pageProp];\n if (typeof value !== 'function') {\n param[pageProp] = value;\n }\n });\n return param;\n}\nfunction usePagination(total, onChange, pagination) {\n const _a = pagination && typeof pagination === 'object' ? pagination : {},\n {\n total: paginationTotal = 0\n } = _a,\n paginationObj = __rest(_a, [\"total\"]);\n const [innerPagination, setInnerPagination] = useState(() => ({\n current: 'defaultCurrent' in paginationObj ? paginationObj.defaultCurrent : 1,\n pageSize: 'defaultPageSize' in paginationObj ? paginationObj.defaultPageSize : DEFAULT_PAGE_SIZE\n }));\n // ============ Basic Pagination Config ============\n const mergedPagination = extendsObject(innerPagination, paginationObj, {\n total: paginationTotal > 0 ? paginationTotal : total\n });\n // Reset `current` if data length or pageSize changed\n const maxPage = Math.ceil((paginationTotal || total) / mergedPagination.pageSize);\n if (mergedPagination.current > maxPage) {\n // Prevent a maximum page count of 0\n mergedPagination.current = maxPage || 1;\n }\n const refreshPagination = (current, pageSize) => {\n setInnerPagination({\n current: current !== null && current !== void 0 ? current : 1,\n pageSize: pageSize || mergedPagination.pageSize\n });\n };\n const onInternalChange = (current, pageSize) => {\n var _a;\n if (pagination) {\n (_a = pagination.onChange) === null || _a === void 0 ? void 0 : _a.call(pagination, current, pageSize);\n }\n refreshPagination(current, pageSize);\n onChange(current, pageSize || (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.pageSize));\n };\n if (pagination === false) {\n return [{}, () => {}];\n }\n return [Object.assign(Object.assign({}, mergedPagination), {\n onChange: onInternalChange\n }), refreshPagination];\n}\nexport default usePagination;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport classNames from 'classnames';\nimport { INTERNAL_COL_DEFINE } from 'rc-table';\nimport { arrAdd, arrDel } from \"rc-tree/es/util\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { useCallback, useMemo, useState } from 'react';\nimport warning from '../../_util/warning';\nimport Checkbox from '../../checkbox';\nimport Dropdown from '../../dropdown';\nimport Radio from '../../radio';\n// TODO: warning if use ajax!!!\nexport const SELECTION_COLUMN = {};\nexport const SELECTION_ALL = 'SELECT_ALL';\nexport const SELECTION_INVERT = 'SELECT_INVERT';\nexport const SELECTION_NONE = 'SELECT_NONE';\nconst EMPTY_LIST = [];\nconst flattenData = (childrenColumnName, data) => {\n let list = [];\n (data || []).forEach(record => {\n list.push(record);\n if (record && typeof record === 'object' && childrenColumnName in record) {\n list = [].concat(_toConsumableArray(list), _toConsumableArray(flattenData(childrenColumnName, record[childrenColumnName])));\n }\n });\n return list;\n};\nconst useSelection = (config, rowSelection) => {\n const {\n preserveSelectedRowKeys,\n selectedRowKeys,\n defaultSelectedRowKeys,\n getCheckboxProps,\n onChange: onSelectionChange,\n onSelect,\n onSelectAll,\n onSelectInvert,\n onSelectNone,\n onSelectMultiple,\n columnWidth: selectionColWidth,\n type: selectionType,\n selections,\n fixed,\n renderCell: customizeRenderCell,\n hideSelectAll,\n checkStrictly = true\n } = rowSelection || {};\n const {\n prefixCls,\n data,\n pageData,\n getRecordByKey,\n getRowKey,\n expandType,\n childrenColumnName,\n locale: tableLocale,\n getPopupContainer\n } = config;\n // ========================= Keys =========================\n const [mergedSelectedKeys, setMergedSelectedKeys] = useMergedState(selectedRowKeys || defaultSelectedRowKeys || EMPTY_LIST, {\n value: selectedRowKeys\n });\n // ======================== Caches ========================\n const preserveRecordsRef = React.useRef(new Map());\n const updatePreserveRecordsCache = useCallback(keys => {\n if (preserveSelectedRowKeys) {\n const newCache = new Map();\n // Keep key if mark as preserveSelectedRowKeys\n keys.forEach(key => {\n let record = getRecordByKey(key);\n if (!record && preserveRecordsRef.current.has(key)) {\n record = preserveRecordsRef.current.get(key);\n }\n newCache.set(key, record);\n });\n // Refresh to new cache\n preserveRecordsRef.current = newCache;\n }\n }, [getRecordByKey, preserveSelectedRowKeys]);\n // Update cache with selectedKeys\n React.useEffect(() => {\n updatePreserveRecordsCache(mergedSelectedKeys);\n }, [mergedSelectedKeys]);\n const {\n keyEntities\n } = useMemo(() => {\n if (checkStrictly) {\n return {\n keyEntities: null\n };\n }\n let convertData = data;\n if (preserveSelectedRowKeys) {\n const keysSet = new Set(data.map((record, index) => getRowKey(record, index)));\n // remove preserveRecords that duplicate data\n const preserveRecords = Array.from(preserveRecordsRef.current).reduce((total, _ref) => {\n let [key, value] = _ref;\n return keysSet.has(key) ? total : total.concat(value);\n }, []);\n convertData = [].concat(_toConsumableArray(convertData), _toConsumableArray(preserveRecords));\n }\n return convertDataToEntities(convertData, {\n externalGetKey: getRowKey,\n childrenPropName: childrenColumnName\n });\n }, [data, getRowKey, checkStrictly, childrenColumnName, preserveSelectedRowKeys]);\n // Get flatten data\n const flattedData = useMemo(() => flattenData(childrenColumnName, pageData), [childrenColumnName, pageData]);\n // Get all checkbox props\n const checkboxPropsMap = useMemo(() => {\n const map = new Map();\n flattedData.forEach((record, index) => {\n const key = getRowKey(record, index);\n const checkboxProps = (getCheckboxProps ? getCheckboxProps(record) : null) || {};\n map.set(key, checkboxProps);\n process.env.NODE_ENV !== \"production\" ? warning(!('checked' in checkboxProps || 'defaultChecked' in checkboxProps), 'Table', 'Do not set `checked` or `defaultChecked` in `getCheckboxProps`. Please use `selectedRowKeys` instead.') : void 0;\n });\n return map;\n }, [flattedData, getRowKey, getCheckboxProps]);\n const isCheckboxDisabled = useCallback(r => {\n var _a;\n return !!((_a = checkboxPropsMap.get(getRowKey(r))) === null || _a === void 0 ? void 0 : _a.disabled);\n }, [checkboxPropsMap, getRowKey]);\n const [derivedSelectedKeys, derivedHalfSelectedKeys] = useMemo(() => {\n if (checkStrictly) {\n return [mergedSelectedKeys || [], []];\n }\n const {\n checkedKeys,\n halfCheckedKeys\n } = conductCheck(mergedSelectedKeys, true, keyEntities, isCheckboxDisabled);\n return [checkedKeys || [], halfCheckedKeys];\n }, [mergedSelectedKeys, checkStrictly, keyEntities, isCheckboxDisabled]);\n const derivedSelectedKeySet = useMemo(() => {\n const keys = selectionType === 'radio' ? derivedSelectedKeys.slice(0, 1) : derivedSelectedKeys;\n return new Set(keys);\n }, [derivedSelectedKeys, selectionType]);\n const derivedHalfSelectedKeySet = useMemo(() => selectionType === 'radio' ? new Set() : new Set(derivedHalfSelectedKeys), [derivedHalfSelectedKeys, selectionType]);\n // Save last selected key to enable range selection\n const [lastSelectedKey, setLastSelectedKey] = useState(null);\n // Reset if rowSelection reset\n React.useEffect(() => {\n if (!rowSelection) {\n setMergedSelectedKeys(EMPTY_LIST);\n }\n }, [!!rowSelection]);\n const setSelectedKeys = useCallback((keys, method) => {\n let availableKeys;\n let records;\n updatePreserveRecordsCache(keys);\n if (preserveSelectedRowKeys) {\n availableKeys = keys;\n records = keys.map(key => preserveRecordsRef.current.get(key));\n } else {\n // Filter key which not exist in the `dataSource`\n availableKeys = [];\n records = [];\n keys.forEach(key => {\n const record = getRecordByKey(key);\n if (record !== undefined) {\n availableKeys.push(key);\n records.push(record);\n }\n });\n }\n setMergedSelectedKeys(availableKeys);\n onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(availableKeys, records, {\n type: method\n });\n }, [setMergedSelectedKeys, getRecordByKey, onSelectionChange, preserveSelectedRowKeys]);\n // ====================== Selections ======================\n // Trigger single `onSelect` event\n const triggerSingleSelection = useCallback((key, selected, keys, event) => {\n if (onSelect) {\n const rows = keys.map(k => getRecordByKey(k));\n onSelect(getRecordByKey(key), selected, rows, event);\n }\n setSelectedKeys(keys, 'single');\n }, [onSelect, getRecordByKey, setSelectedKeys]);\n const mergedSelections = useMemo(() => {\n if (!selections || hideSelectAll) {\n return null;\n }\n const selectionList = selections === true ? [SELECTION_ALL, SELECTION_INVERT, SELECTION_NONE] : selections;\n return selectionList.map(selection => {\n if (selection === SELECTION_ALL) {\n return {\n key: 'all',\n text: tableLocale.selectionAll,\n onSelect() {\n setSelectedKeys(data.map((record, index) => getRowKey(record, index)).filter(key => {\n const checkProps = checkboxPropsMap.get(key);\n return !(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled) || derivedSelectedKeySet.has(key);\n }), 'all');\n }\n };\n }\n if (selection === SELECTION_INVERT) {\n return {\n key: 'invert',\n text: tableLocale.selectInvert,\n onSelect() {\n const keySet = new Set(derivedSelectedKeySet);\n pageData.forEach((record, index) => {\n const key = getRowKey(record, index);\n const checkProps = checkboxPropsMap.get(key);\n if (!(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled)) {\n if (keySet.has(key)) {\n keySet.delete(key);\n } else {\n keySet.add(key);\n }\n }\n });\n const keys = Array.from(keySet);\n if (onSelectInvert) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Table', '`onSelectInvert` will be removed in future. Please use `onChange` instead.') : void 0;\n onSelectInvert(keys);\n }\n setSelectedKeys(keys, 'invert');\n }\n };\n }\n if (selection === SELECTION_NONE) {\n return {\n key: 'none',\n text: tableLocale.selectNone,\n onSelect() {\n onSelectNone === null || onSelectNone === void 0 ? void 0 : onSelectNone();\n setSelectedKeys(Array.from(derivedSelectedKeySet).filter(key => {\n const checkProps = checkboxPropsMap.get(key);\n return checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled;\n }), 'none');\n }\n };\n }\n return selection;\n }).map(selection => Object.assign(Object.assign({}, selection), {\n onSelect: function () {\n var _a2;\n var _a;\n for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n (_a = selection.onSelect) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [selection].concat(rest));\n setLastSelectedKey(null);\n }\n }));\n }, [selections, derivedSelectedKeySet, pageData, getRowKey, onSelectInvert, setSelectedKeys]);\n // ======================= Columns ========================\n const transformColumns = useCallback(columns => {\n var _a;\n // >>>>>>>>>>> Skip if not exists `rowSelection`\n if (!rowSelection) {\n process.env.NODE_ENV !== \"production\" ? warning(!columns.includes(SELECTION_COLUMN), 'Table', '`rowSelection` is not config but `SELECTION_COLUMN` exists in the `columns`.') : void 0;\n return columns.filter(col => col !== SELECTION_COLUMN);\n }\n // >>>>>>>>>>> Support selection\n let cloneColumns = _toConsumableArray(columns);\n const keySet = new Set(derivedSelectedKeySet);\n // Record key only need check with enabled\n const recordKeys = flattedData.map(getRowKey).filter(key => !checkboxPropsMap.get(key).disabled);\n const checkedCurrentAll = recordKeys.every(key => keySet.has(key));\n const checkedCurrentSome = recordKeys.some(key => keySet.has(key));\n const onSelectAllChange = () => {\n const changeKeys = [];\n if (checkedCurrentAll) {\n recordKeys.forEach(key => {\n keySet.delete(key);\n changeKeys.push(key);\n });\n } else {\n recordKeys.forEach(key => {\n if (!keySet.has(key)) {\n keySet.add(key);\n changeKeys.push(key);\n }\n });\n }\n const keys = Array.from(keySet);\n onSelectAll === null || onSelectAll === void 0 ? void 0 : onSelectAll(!checkedCurrentAll, keys.map(k => getRecordByKey(k)), changeKeys.map(k => getRecordByKey(k)));\n setSelectedKeys(keys, 'all');\n setLastSelectedKey(null);\n };\n // ===================== Render =====================\n // Title Cell\n let title;\n if (selectionType !== 'radio') {\n let customizeSelections;\n if (mergedSelections) {\n const menu = {\n getPopupContainer,\n items: mergedSelections.map((selection, index) => {\n const {\n key,\n text,\n onSelect: onSelectionClick\n } = selection;\n return {\n key: key !== null && key !== void 0 ? key : index,\n onClick: () => {\n onSelectionClick === null || onSelectionClick === void 0 ? void 0 : onSelectionClick(recordKeys);\n },\n label: text\n };\n })\n };\n customizeSelections = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-selection-extra`\n }, /*#__PURE__*/React.createElement(Dropdown, {\n menu: menu,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(DownOutlined, null))));\n }\n const allDisabledData = flattedData.map((record, index) => {\n const key = getRowKey(record, index);\n const checkboxProps = checkboxPropsMap.get(key) || {};\n return Object.assign({\n checked: keySet.has(key)\n }, checkboxProps);\n }).filter(_ref2 => {\n let {\n disabled\n } = _ref2;\n return disabled;\n });\n const allDisabled = !!allDisabledData.length && allDisabledData.length === flattedData.length;\n const allDisabledAndChecked = allDisabled && allDisabledData.every(_ref3 => {\n let {\n checked\n } = _ref3;\n return checked;\n });\n const allDisabledSomeChecked = allDisabled && allDisabledData.some(_ref4 => {\n let {\n checked\n } = _ref4;\n return checked;\n });\n title = !hideSelectAll && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-selection`\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: !allDisabled ? !!flattedData.length && checkedCurrentAll : allDisabledAndChecked,\n indeterminate: !allDisabled ? !checkedCurrentAll && checkedCurrentSome : !allDisabledAndChecked && allDisabledSomeChecked,\n onChange: onSelectAllChange,\n disabled: flattedData.length === 0 || allDisabled,\n \"aria-label\": customizeSelections ? 'Custom selection' : 'Select all',\n skipGroup: true\n }), customizeSelections);\n }\n // Body Cell\n let renderCell;\n if (selectionType === 'radio') {\n renderCell = (_, record, index) => {\n const key = getRowKey(record, index);\n const checked = keySet.has(key);\n return {\n node: /*#__PURE__*/React.createElement(Radio, Object.assign({}, checkboxPropsMap.get(key), {\n checked: checked,\n onClick: e => e.stopPropagation(),\n onChange: event => {\n if (!keySet.has(key)) {\n triggerSingleSelection(key, true, [key], event.nativeEvent);\n }\n }\n })),\n checked\n };\n };\n } else {\n renderCell = (_, record, index) => {\n var _a;\n const key = getRowKey(record, index);\n const checked = keySet.has(key);\n const indeterminate = derivedHalfSelectedKeySet.has(key);\n const checkboxProps = checkboxPropsMap.get(key);\n let mergedIndeterminate;\n if (expandType === 'nest') {\n mergedIndeterminate = indeterminate;\n process.env.NODE_ENV !== \"production\" ? warning(typeof (checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== 'boolean', 'Table', 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.') : void 0;\n } else {\n mergedIndeterminate = (_a = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== null && _a !== void 0 ? _a : indeterminate;\n }\n // Record checked\n return {\n node: /*#__PURE__*/React.createElement(Checkbox, Object.assign({}, checkboxProps, {\n indeterminate: mergedIndeterminate,\n checked: checked,\n skipGroup: true,\n onClick: e => e.stopPropagation(),\n onChange: _ref5 => {\n let {\n nativeEvent\n } = _ref5;\n const {\n shiftKey\n } = nativeEvent;\n let startIndex = -1;\n let endIndex = -1;\n // Get range of this\n if (shiftKey && checkStrictly) {\n const pointKeys = new Set([lastSelectedKey, key]);\n recordKeys.some((recordKey, recordIndex) => {\n if (pointKeys.has(recordKey)) {\n if (startIndex === -1) {\n startIndex = recordIndex;\n } else {\n endIndex = recordIndex;\n return true;\n }\n }\n return false;\n });\n }\n if (endIndex !== -1 && startIndex !== endIndex && checkStrictly) {\n // Batch update selections\n const rangeKeys = recordKeys.slice(startIndex, endIndex + 1);\n const changedKeys = [];\n if (checked) {\n rangeKeys.forEach(recordKey => {\n if (keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet.delete(recordKey);\n }\n });\n } else {\n rangeKeys.forEach(recordKey => {\n if (!keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet.add(recordKey);\n }\n });\n }\n const keys = Array.from(keySet);\n onSelectMultiple === null || onSelectMultiple === void 0 ? void 0 : onSelectMultiple(!checked, keys.map(recordKey => getRecordByKey(recordKey)), changedKeys.map(recordKey => getRecordByKey(recordKey)));\n setSelectedKeys(keys, 'multiple');\n } else {\n // Single record selected\n const originCheckedKeys = derivedSelectedKeys;\n if (checkStrictly) {\n const checkedKeys = checked ? arrDel(originCheckedKeys, key) : arrAdd(originCheckedKeys, key);\n triggerSingleSelection(key, !checked, checkedKeys, nativeEvent);\n } else {\n // Always fill first\n const result = conductCheck([].concat(_toConsumableArray(originCheckedKeys), [key]), true, keyEntities, isCheckboxDisabled);\n const {\n checkedKeys,\n halfCheckedKeys\n } = result;\n let nextCheckedKeys = checkedKeys;\n // If remove, we do it again to correction\n if (checked) {\n const tempKeySet = new Set(checkedKeys);\n tempKeySet.delete(key);\n nextCheckedKeys = conductCheck(Array.from(tempKeySet), {\n checked: false,\n halfCheckedKeys\n }, keyEntities, isCheckboxDisabled).checkedKeys;\n }\n triggerSingleSelection(key, !checked, nextCheckedKeys, nativeEvent);\n }\n }\n if (checked) {\n setLastSelectedKey(null);\n } else {\n setLastSelectedKey(key);\n }\n }\n })),\n checked\n };\n };\n }\n const renderSelectionCell = (_, record, index) => {\n const {\n node,\n checked\n } = renderCell(_, record, index);\n if (customizeRenderCell) {\n return customizeRenderCell(checked, record, index, node);\n }\n return node;\n };\n // Insert selection column if not exist\n if (!cloneColumns.includes(SELECTION_COLUMN)) {\n // Always after expand icon\n if (cloneColumns.findIndex(col => {\n var _a;\n return ((_a = col[INTERNAL_COL_DEFINE]) === null || _a === void 0 ? void 0 : _a.columnType) === 'EXPAND_COLUMN';\n }) === 0) {\n const [expandColumn, ...restColumns] = cloneColumns;\n cloneColumns = [expandColumn, SELECTION_COLUMN].concat(_toConsumableArray(restColumns));\n } else {\n // Normal insert at first column\n cloneColumns = [SELECTION_COLUMN].concat(_toConsumableArray(cloneColumns));\n }\n }\n // Deduplicate selection column\n const selectionColumnIndex = cloneColumns.indexOf(SELECTION_COLUMN);\n process.env.NODE_ENV !== \"production\" ? warning(cloneColumns.filter(col => col === SELECTION_COLUMN).length <= 1, 'Table', 'Multiple `SELECTION_COLUMN` exist in `columns`.') : void 0;\n cloneColumns = cloneColumns.filter((column, index) => column !== SELECTION_COLUMN || index === selectionColumnIndex);\n // Fixed column logic\n const prevCol = cloneColumns[selectionColumnIndex - 1];\n const nextCol = cloneColumns[selectionColumnIndex + 1];\n let mergedFixed = fixed;\n if (mergedFixed === undefined) {\n if ((nextCol === null || nextCol === void 0 ? void 0 : nextCol.fixed) !== undefined) {\n mergedFixed = nextCol.fixed;\n } else if ((prevCol === null || prevCol === void 0 ? void 0 : prevCol.fixed) !== undefined) {\n mergedFixed = prevCol.fixed;\n }\n }\n if (mergedFixed && prevCol && ((_a = prevCol[INTERNAL_COL_DEFINE]) === null || _a === void 0 ? void 0 : _a.columnType) === 'EXPAND_COLUMN' && prevCol.fixed === undefined) {\n prevCol.fixed = mergedFixed;\n }\n const columnCls = classNames(`${prefixCls}-selection-col`, {\n [`${prefixCls}-selection-col-with-dropdown`]: selections && selectionType === 'checkbox'\n });\n // Replace with real selection column\n const selectionColumn = {\n fixed: mergedFixed,\n width: selectionColWidth,\n className: `${prefixCls}-selection-column`,\n title: rowSelection.columnTitle || title,\n render: renderSelectionCell,\n onCell: rowSelection.onCell,\n [INTERNAL_COL_DEFINE]: {\n className: columnCls\n }\n };\n return cloneColumns.map(col => col === SELECTION_COLUMN ? selectionColumn : col);\n }, [getRowKey, flattedData, rowSelection, derivedSelectedKeys, derivedSelectedKeySet, derivedHalfSelectedKeySet, selectionColWidth, mergedSelections, expandType, lastSelectedKey, checkboxPropsMap, onSelectMultiple, triggerSingleSelection, isCheckboxDisabled]);\n return [transformColumns, derivedSelectedKeySet];\n};\nexport default useSelection;","// This icon file is generated automatically.\nvar CaretDownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\" } }] }, \"name\": \"caret-down\", \"theme\": \"outlined\" };\nexport default CaretDownOutlined;\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 CaretDownOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretDownOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CaretDownOutlined = function CaretDownOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CaretDownOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CaretDownOutlined.displayName = 'CaretDownOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(CaretDownOutlined);","// This icon file is generated automatically.\nvar CaretUpOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z\" } }] }, \"name\": \"caret-up\", \"theme\": \"outlined\" };\nexport default CaretUpOutlined;\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 CaretUpOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretUpOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CaretUpOutlined = function CaretUpOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CaretUpOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CaretUpOutlined.displayName = 'CaretUpOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(CaretUpOutlined);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport CaretDownOutlined from \"@ant-design/icons/es/icons/CaretDownOutlined\";\nimport CaretUpOutlined from \"@ant-design/icons/es/icons/CaretUpOutlined\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport Tooltip from '../../tooltip';\nimport { getColumnKey, getColumnPos, renderColumnTitle, safeColumnTitle } from '../util';\nconst ASCEND = 'ascend';\nconst DESCEND = 'descend';\nfunction getMultiplePriority(column) {\n if (typeof column.sorter === 'object' && typeof column.sorter.multiple === 'number') {\n return column.sorter.multiple;\n }\n return false;\n}\nfunction getSortFunction(sorter) {\n if (typeof sorter === 'function') {\n return sorter;\n }\n if (sorter && typeof sorter === 'object' && sorter.compare) {\n return sorter.compare;\n }\n return false;\n}\nfunction nextSortDirection(sortDirections, current) {\n if (!current) {\n return sortDirections[0];\n }\n return sortDirections[sortDirections.indexOf(current) + 1];\n}\nfunction collectSortStates(columns, init, pos) {\n let sortStates = [];\n function pushState(column, columnPos) {\n sortStates.push({\n column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.sortOrder\n });\n }\n (columns || []).forEach((column, index) => {\n const columnPos = getColumnPos(index, pos);\n if (column.children) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n }\n sortStates = [].concat(_toConsumableArray(sortStates), _toConsumableArray(collectSortStates(column.children, init, columnPos)));\n } else if (column.sorter) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n } else if (init && column.defaultSortOrder) {\n // Default sorter\n sortStates.push({\n column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.defaultSortOrder\n });\n }\n }\n });\n return sortStates;\n}\nfunction injectSorter(prefixCls, columns, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, pos) {\n return (columns || []).map((column, index) => {\n const columnPos = getColumnPos(index, pos);\n let newColumn = column;\n if (newColumn.sorter) {\n const sortDirections = newColumn.sortDirections || defaultSortDirections;\n const showSorterTooltip = newColumn.showSorterTooltip === undefined ? tableShowSorterTooltip : newColumn.showSorterTooltip;\n const columnKey = getColumnKey(newColumn, columnPos);\n const sorterState = sorterStates.find(_ref => {\n let {\n key\n } = _ref;\n return key === columnKey;\n });\n const sortOrder = sorterState ? sorterState.sortOrder : null;\n const nextSortOrder = nextSortDirection(sortDirections, sortOrder);\n let sorter;\n if (column.sortIcon) {\n sorter = column.sortIcon({\n sortOrder\n });\n } else {\n const upNode = sortDirections.includes(ASCEND) && /*#__PURE__*/React.createElement(CaretUpOutlined, {\n className: classNames(`${prefixCls}-column-sorter-up`, {\n active: sortOrder === ASCEND\n })\n });\n const downNode = sortDirections.includes(DESCEND) && /*#__PURE__*/React.createElement(CaretDownOutlined, {\n className: classNames(`${prefixCls}-column-sorter-down`, {\n active: sortOrder === DESCEND\n })\n });\n sorter = /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${prefixCls}-column-sorter`, {\n [`${prefixCls}-column-sorter-full`]: !!(upNode && downNode)\n })\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-column-sorter-inner`,\n \"aria-hidden\": \"true\"\n }, upNode, downNode));\n }\n const {\n cancelSort,\n triggerAsc,\n triggerDesc\n } = tableLocale || {};\n let sortTip = cancelSort;\n if (nextSortOrder === DESCEND) {\n sortTip = triggerDesc;\n } else if (nextSortOrder === ASCEND) {\n sortTip = triggerAsc;\n }\n const tooltipProps = typeof showSorterTooltip === 'object' ? showSorterTooltip : {\n title: sortTip\n };\n newColumn = Object.assign(Object.assign({}, newColumn), {\n className: classNames(newColumn.className, {\n [`${prefixCls}-column-sort`]: sortOrder\n }),\n title: renderProps => {\n const renderSortTitle = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-column-sorters`\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-column-title`\n }, renderColumnTitle(column.title, renderProps)), sorter);\n return showSorterTooltip ? /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps), renderSortTitle) : renderSortTitle;\n },\n onHeaderCell: col => {\n const cell = column.onHeaderCell && column.onHeaderCell(col) || {};\n const originOnClick = cell.onClick;\n const originOKeyDown = cell.onKeyDown;\n cell.onClick = event => {\n triggerSorter({\n column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOnClick === null || originOnClick === void 0 ? void 0 : originOnClick(event);\n };\n cell.onKeyDown = event => {\n if (event.keyCode === KeyCode.ENTER) {\n triggerSorter({\n column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOKeyDown === null || originOKeyDown === void 0 ? void 0 : originOKeyDown(event);\n }\n };\n const renderTitle = safeColumnTitle(column.title, {});\n const displayTitle = renderTitle === null || renderTitle === void 0 ? void 0 : renderTitle.toString();\n // Inform the screen-reader so it can tell the visually impaired user which column is sorted\n if (sortOrder) {\n cell['aria-sort'] = sortOrder === 'ascend' ? 'ascending' : 'descending';\n } else {\n cell['aria-label'] = displayTitle || '';\n }\n cell.className = classNames(cell.className, `${prefixCls}-column-has-sorters`);\n cell.tabIndex = 0;\n if (column.ellipsis) {\n cell.title = (renderTitle !== null && renderTitle !== void 0 ? renderTitle : '').toString();\n }\n return cell;\n }\n });\n }\n if ('children' in newColumn) {\n newColumn = Object.assign(Object.assign({}, newColumn), {\n children: injectSorter(prefixCls, newColumn.children, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, columnPos)\n });\n }\n return newColumn;\n });\n}\nfunction stateToInfo(sorterStates) {\n const {\n column,\n sortOrder\n } = sorterStates;\n return {\n column,\n order: sortOrder,\n field: column.dataIndex,\n columnKey: column.key\n };\n}\nfunction generateSorterInfo(sorterStates) {\n const list = sorterStates.filter(_ref2 => {\n let {\n sortOrder\n } = _ref2;\n return sortOrder;\n }).map(stateToInfo);\n // =========== Legacy compatible support ===========\n // https://github.com/ant-design/ant-design/pull/19226\n if (list.length === 0 && sorterStates.length) {\n return Object.assign(Object.assign({}, stateToInfo(sorterStates[sorterStates.length - 1])), {\n column: undefined\n });\n }\n if (list.length <= 1) {\n return list[0] || {};\n }\n return list;\n}\nexport function getSortData(data, sortStates, childrenColumnName) {\n const innerSorterStates = sortStates.slice().sort((a, b) => b.multiplePriority - a.multiplePriority);\n const cloneData = data.slice();\n const runningSorters = innerSorterStates.filter(_ref3 => {\n let {\n column: {\n sorter\n },\n sortOrder\n } = _ref3;\n return getSortFunction(sorter) && sortOrder;\n });\n // Skip if no sorter needed\n if (!runningSorters.length) {\n return cloneData;\n }\n return cloneData.sort((record1, record2) => {\n for (let i = 0; i < runningSorters.length; i += 1) {\n const sorterState = runningSorters[i];\n const {\n column: {\n sorter\n },\n sortOrder\n } = sorterState;\n const compareFn = getSortFunction(sorter);\n if (compareFn && sortOrder) {\n const compareResult = compareFn(record1, record2, sortOrder);\n if (compareResult !== 0) {\n return sortOrder === ASCEND ? compareResult : -compareResult;\n }\n }\n }\n return 0;\n }).map(record => {\n const subRecords = record[childrenColumnName];\n if (subRecords) {\n return Object.assign(Object.assign({}, record), {\n [childrenColumnName]: getSortData(subRecords, sortStates, childrenColumnName)\n });\n }\n return record;\n });\n}\nexport default function useFilterSorter(_ref4) {\n let {\n prefixCls,\n mergedColumns,\n onSorterChange,\n sortDirections,\n tableLocale,\n showSorterTooltip\n } = _ref4;\n const [sortStates, setSortStates] = React.useState(collectSortStates(mergedColumns, true));\n const mergedSorterStates = React.useMemo(() => {\n let validate = true;\n const collectedStates = collectSortStates(mergedColumns, false);\n // Return if not controlled\n if (!collectedStates.length) {\n return sortStates;\n }\n const validateStates = [];\n function patchStates(state) {\n if (validate) {\n validateStates.push(state);\n } else {\n validateStates.push(Object.assign(Object.assign({}, state), {\n sortOrder: null\n }));\n }\n }\n let multipleMode = null;\n collectedStates.forEach(state => {\n if (multipleMode === null) {\n patchStates(state);\n if (state.sortOrder) {\n if (state.multiplePriority === false) {\n validate = false;\n } else {\n multipleMode = true;\n }\n }\n } else if (multipleMode && state.multiplePriority !== false) {\n patchStates(state);\n } else {\n validate = false;\n patchStates(state);\n }\n });\n return validateStates;\n }, [mergedColumns, sortStates]);\n // Get render columns title required props\n const columnTitleSorterProps = React.useMemo(() => {\n const sortColumns = mergedSorterStates.map(_ref5 => {\n let {\n column,\n sortOrder\n } = _ref5;\n return {\n column,\n order: sortOrder\n };\n });\n return {\n sortColumns,\n // Legacy\n sortColumn: sortColumns[0] && sortColumns[0].column,\n sortOrder: sortColumns[0] && sortColumns[0].order\n };\n }, [mergedSorterStates]);\n function triggerSorter(sortState) {\n let newSorterStates;\n if (sortState.multiplePriority === false || !mergedSorterStates.length || mergedSorterStates[0].multiplePriority === false) {\n newSorterStates = [sortState];\n } else {\n newSorterStates = [].concat(_toConsumableArray(mergedSorterStates.filter(_ref6 => {\n let {\n key\n } = _ref6;\n return key !== sortState.key;\n })), [sortState]);\n }\n setSortStates(newSorterStates);\n onSorterChange(generateSorterInfo(newSorterStates), newSorterStates);\n }\n const transformColumns = innerColumns => injectSorter(prefixCls, innerColumns, mergedSorterStates, triggerSorter, sortDirections, tableLocale, showSorterTooltip);\n const getSorters = () => generateSorterInfo(mergedSorterStates);\n return [transformColumns, mergedSorterStates, columnTitleSorterProps, getSorters];\n}","import * as React from 'react';\nimport { renderColumnTitle } from '../util';\nfunction fillTitle(columns, columnTitleProps) {\n return columns.map(column => {\n const cloneColumn = Object.assign({}, column);\n cloneColumn.title = renderColumnTitle(column.title, columnTitleProps);\n if ('children' in cloneColumn) {\n cloneColumn.children = fillTitle(cloneColumn.children, columnTitleProps);\n }\n return cloneColumn;\n });\n}\nexport default function useTitleColumns(columnTitleProps) {\n const filledColumns = React.useCallback(columns => fillTitle(columns, columnTitleProps), [columnTitleProps]);\n return [filledColumns];\n}","const genBorderedStyle = token => {\n const {\n componentCls\n } = token;\n const tableBorder = `${token.lineWidth}px ${token.lineType} ${token.tableBorderColor}`;\n const getSizeBorderStyle = (size, paddingVertical, paddingHorizontal) => ({\n [`&${componentCls}-${size}`]: {\n [`> ${componentCls}-container`]: {\n [`> ${componentCls}-content, > ${componentCls}-body`]: {\n [`\n > table > tbody > tr > th,\n > table > tbody > tr > td\n `]: {\n [`> ${componentCls}-expanded-row-fixed`]: {\n margin: `-${paddingVertical}px -${paddingHorizontal + token.lineWidth}px`\n }\n }\n }\n }\n }\n });\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}${componentCls}-bordered`]: Object.assign(Object.assign(Object.assign({\n // ============================ Title =============================\n [`> ${componentCls}-title`]: {\n border: tableBorder,\n borderBottom: 0\n },\n // ============================ Content ============================\n [`> ${componentCls}-container`]: {\n borderInlineStart: tableBorder,\n borderTop: tableBorder,\n [`\n > ${componentCls}-content,\n > ${componentCls}-header,\n > ${componentCls}-body,\n > ${componentCls}-summary\n `]: {\n '> table': {\n // ============================= Cell =============================\n [`\n > thead > tr > th,\n > thead > tr > td,\n > tbody > tr > th,\n > tbody > tr > td,\n > tfoot > tr > th,\n > tfoot > tr > td\n `]: {\n borderInlineEnd: tableBorder\n },\n // ============================ Header ============================\n '> thead': {\n '> tr:not(:last-child) > th': {\n borderBottom: tableBorder\n },\n '> tr > th::before': {\n backgroundColor: 'transparent !important'\n }\n },\n // Fixed right should provides additional border\n [`\n > thead > tr,\n > tbody > tr,\n > tfoot > tr\n `]: {\n [`> ${componentCls}-cell-fix-right-first::after`]: {\n borderInlineEnd: tableBorder\n }\n },\n // ========================== Expandable ==========================\n [`\n > tbody > tr > th,\n > tbody > tr > td\n `]: {\n [`> ${componentCls}-expanded-row-fixed`]: {\n margin: `-${token.tablePaddingVertical}px -${token.tablePaddingHorizontal + token.lineWidth}px`,\n '&::after': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: token.lineWidth,\n bottom: 0,\n borderInlineEnd: tableBorder,\n content: '\"\"'\n }\n }\n }\n }\n }\n },\n // ============================ Scroll ============================\n [`&${componentCls}-scroll-horizontal`]: {\n [`> ${componentCls}-container > ${componentCls}-body`]: {\n '> table > tbody': {\n [`\n > tr${componentCls}-expanded-row,\n > tr${componentCls}-placeholder\n `]: {\n [`> th, > td`]: {\n borderInlineEnd: 0\n }\n }\n }\n }\n }\n }, getSizeBorderStyle('middle', token.tablePaddingVerticalMiddle, token.tablePaddingHorizontalMiddle)), getSizeBorderStyle('small', token.tablePaddingVerticalSmall, token.tablePaddingHorizontalSmall)), {\n // ============================ Footer ============================\n [`> ${componentCls}-footer`]: {\n border: tableBorder,\n borderTop: 0\n }\n }),\n // ============================ Nested ============================\n [`${componentCls}-cell`]: {\n [`${componentCls}-container:first-child`]: {\n // :first-child to avoid the case when bordered and title is set\n borderTop: 0\n },\n // https://github.com/ant-design/ant-design/issues/35577\n '&-scrollbar:not([rowspan])': {\n boxShadow: `0 ${token.lineWidth}px 0 ${token.lineWidth}px ${token.tableHeaderBg}`\n }\n },\n [`${componentCls}-bordered ${componentCls}-cell-scrollbar`]: {\n borderInlineEnd: tableBorder\n }\n }\n };\n};\nexport default genBorderedStyle;","import { textEllipsis } from '../../style';\nconst genEllipsisStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-cell-ellipsis`]: Object.assign(Object.assign({}, textEllipsis), {\n wordBreak: 'keep-all',\n // Fixed first or last should special process\n [`\n &${componentCls}-cell-fix-left-last,\n &${componentCls}-cell-fix-right-first\n `]: {\n overflow: 'visible',\n [`${componentCls}-cell-content`]: {\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n }\n },\n [`${componentCls}-column-title`]: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n wordBreak: 'keep-all'\n }\n })\n }\n };\n};\nexport default genEllipsisStyle;","// ========================= Placeholder ==========================\nconst genEmptyStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-tbody > tr${componentCls}-placeholder`]: {\n textAlign: 'center',\n color: token.colorTextDisabled,\n [`\n &:hover > th,\n &:hover > td,\n `]: {\n background: token.colorBgContainer\n }\n }\n }\n };\n};\nexport default genEmptyStyle;","import { operationUnit } from '../../style';\nconst genExpandStyle = token => {\n const {\n componentCls,\n antCls,\n controlInteractiveSize: checkboxSize,\n motionDurationSlow,\n lineWidth,\n paddingXS,\n lineType,\n tableBorderColor,\n tableExpandIconBg,\n tableExpandColumnWidth,\n borderRadius,\n fontSize,\n fontSizeSM,\n lineHeight,\n tablePaddingVertical,\n tablePaddingHorizontal,\n tableExpandedRowBg,\n paddingXXS\n } = token;\n const halfInnerSize = checkboxSize / 2 - lineWidth;\n // must be odd number, unless it cannot align center\n const expandIconSize = halfInnerSize * 2 + lineWidth * 3;\n const tableBorder = `${lineWidth}px ${lineType} ${tableBorderColor}`;\n const expandIconLineOffset = paddingXXS - lineWidth;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-expand-icon-col`]: {\n width: tableExpandColumnWidth\n },\n [`${componentCls}-row-expand-icon-cell`]: {\n textAlign: 'center',\n [`${componentCls}-row-expand-icon`]: {\n display: 'inline-flex',\n float: 'none',\n verticalAlign: 'sub'\n }\n },\n [`${componentCls}-row-indent`]: {\n height: 1,\n float: 'left'\n },\n [`${componentCls}-row-expand-icon`]: Object.assign(Object.assign({}, operationUnit(token)), {\n position: 'relative',\n float: 'left',\n boxSizing: 'border-box',\n width: expandIconSize,\n height: expandIconSize,\n padding: 0,\n color: 'inherit',\n lineHeight: `${expandIconSize}px`,\n background: tableExpandIconBg,\n border: tableBorder,\n borderRadius,\n transform: `scale(${checkboxSize / expandIconSize})`,\n transition: `all ${motionDurationSlow}`,\n userSelect: 'none',\n [`&:focus, &:hover, &:active`]: {\n borderColor: 'currentcolor'\n },\n [`&::before, &::after`]: {\n position: 'absolute',\n background: 'currentcolor',\n transition: `transform ${motionDurationSlow} ease-out`,\n content: '\"\"'\n },\n '&::before': {\n top: halfInnerSize,\n insetInlineEnd: expandIconLineOffset,\n insetInlineStart: expandIconLineOffset,\n height: lineWidth\n },\n '&::after': {\n top: expandIconLineOffset,\n bottom: expandIconLineOffset,\n insetInlineStart: halfInnerSize,\n width: lineWidth,\n transform: 'rotate(90deg)'\n },\n // Motion effect\n '&-collapsed::before': {\n transform: 'rotate(-180deg)'\n },\n '&-collapsed::after': {\n transform: 'rotate(0deg)'\n },\n '&-spaced': {\n '&::before, &::after': {\n display: 'none',\n content: 'none'\n },\n background: 'transparent',\n border: 0,\n visibility: 'hidden'\n }\n }),\n [`${componentCls}-row-indent + ${componentCls}-row-expand-icon`]: {\n marginTop: (fontSize * lineHeight - lineWidth * 3) / 2 - Math.ceil((fontSizeSM * 1.4 - lineWidth * 3) / 2),\n marginInlineEnd: paddingXS\n },\n [`tr${componentCls}-expanded-row`]: {\n '&, &:hover': {\n [`> th, > td`]: {\n background: tableExpandedRowBg\n }\n },\n // https://github.com/ant-design/ant-design/issues/25573\n [`${antCls}-descriptions-view`]: {\n display: 'flex',\n table: {\n flex: 'auto',\n width: 'auto'\n }\n }\n },\n // With fixed\n [`${componentCls}-expanded-row-fixed`]: {\n position: 'relative',\n margin: `-${tablePaddingVertical}px -${tablePaddingHorizontal}px`,\n padding: `${tablePaddingVertical}px ${tablePaddingHorizontal}px`\n }\n }\n };\n};\nexport default genExpandStyle;","import { resetComponent } from '../../style';\nconst genFilterStyle = token => {\n const {\n componentCls,\n antCls,\n iconCls,\n tableFilterDropdownWidth,\n tableFilterDropdownSearchWidth,\n paddingXXS,\n paddingXS,\n colorText,\n lineWidth,\n lineType,\n tableBorderColor,\n tableHeaderIconColor,\n fontSizeSM,\n tablePaddingHorizontal,\n borderRadius,\n motionDurationSlow,\n colorTextDescription,\n colorPrimary,\n tableHeaderFilterActiveBg,\n colorTextDisabled,\n tableFilterDropdownBg,\n tableFilterDropdownHeight,\n controlItemBgHover,\n controlItemBgActive,\n boxShadowSecondary\n } = token;\n const dropdownPrefixCls = `${antCls}-dropdown`;\n const tableFilterDropdownPrefixCls = `${componentCls}-filter-dropdown`;\n const treePrefixCls = `${antCls}-tree`;\n const tableBorder = `${lineWidth}px ${lineType} ${tableBorderColor}`;\n return [{\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-filter-column`]: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n [`${componentCls}-filter-trigger`]: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n marginBlock: -paddingXXS,\n marginInline: `${paddingXXS}px ${-tablePaddingHorizontal / 2}px`,\n padding: `0 ${paddingXXS}px`,\n color: tableHeaderIconColor,\n fontSize: fontSizeSM,\n borderRadius,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n color: colorTextDescription,\n background: tableHeaderFilterActiveBg\n },\n '&.active': {\n color: colorPrimary\n }\n }\n }\n }, {\n // Dropdown\n [`${antCls}-dropdown`]: {\n [tableFilterDropdownPrefixCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n minWidth: tableFilterDropdownWidth,\n backgroundColor: tableFilterDropdownBg,\n borderRadius,\n boxShadow: boxShadowSecondary,\n overflow: 'hidden',\n // Reset menu\n [`${dropdownPrefixCls}-menu`]: {\n // https://github.com/ant-design/ant-design/issues/4916\n // https://github.com/ant-design/ant-design/issues/19542\n maxHeight: tableFilterDropdownHeight,\n overflowX: 'hidden',\n border: 0,\n boxShadow: 'none',\n borderRadius: 'unset',\n '&:empty::after': {\n display: 'block',\n padding: `${paddingXS}px 0`,\n color: colorTextDisabled,\n fontSize: fontSizeSM,\n textAlign: 'center',\n content: '\"Not Found\"'\n }\n },\n [`${tableFilterDropdownPrefixCls}-tree`]: {\n paddingBlock: `${paddingXS}px 0`,\n paddingInline: paddingXS,\n [treePrefixCls]: {\n padding: 0\n },\n [`${treePrefixCls}-treenode ${treePrefixCls}-node-content-wrapper:hover`]: {\n backgroundColor: controlItemBgHover\n },\n [`${treePrefixCls}-treenode-checkbox-checked ${treePrefixCls}-node-content-wrapper`]: {\n '&, &:hover': {\n backgroundColor: controlItemBgActive\n }\n }\n },\n [`${tableFilterDropdownPrefixCls}-search`]: {\n padding: paddingXS,\n borderBottom: tableBorder,\n '&-input': {\n input: {\n minWidth: tableFilterDropdownSearchWidth\n },\n [iconCls]: {\n color: colorTextDisabled\n }\n }\n },\n [`${tableFilterDropdownPrefixCls}-checkall`]: {\n width: '100%',\n marginBottom: paddingXXS,\n marginInlineStart: paddingXXS\n },\n // Operation\n [`${tableFilterDropdownPrefixCls}-btns`]: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: `${paddingXS - lineWidth}px ${paddingXS}px`,\n overflow: 'hidden',\n borderTop: tableBorder\n }\n })\n }\n },\n // Dropdown Menu & SubMenu\n {\n // submenu of table filter dropdown\n [`${antCls}-dropdown ${tableFilterDropdownPrefixCls}, ${tableFilterDropdownPrefixCls}-submenu`]: {\n // Checkbox\n [`${antCls}-checkbox-wrapper + span`]: {\n paddingInlineStart: paddingXS,\n color: colorText\n },\n [`> ul`]: {\n maxHeight: 'calc(100vh - 130px)',\n overflowX: 'hidden',\n overflowY: 'auto'\n }\n }\n }];\n};\nexport default genFilterStyle;","const genFixedStyle = token => {\n const {\n componentCls,\n lineWidth,\n colorSplit,\n motionDurationSlow,\n zIndexTableFixed,\n tableBg,\n zIndexTableSticky\n } = token;\n const shadowColor = colorSplit;\n // Follow style is magic of shadow which should not follow token:\n return {\n [`${componentCls}-wrapper`]: {\n [`\n ${componentCls}-cell-fix-left,\n ${componentCls}-cell-fix-right\n `]: {\n position: 'sticky !important',\n zIndex: zIndexTableFixed,\n background: tableBg\n },\n [`\n ${componentCls}-cell-fix-left-first::after,\n ${componentCls}-cell-fix-left-last::after\n `]: {\n position: 'absolute',\n top: 0,\n right: {\n _skip_check_: true,\n value: 0\n },\n bottom: -lineWidth,\n width: 30,\n transform: 'translateX(100%)',\n transition: `box-shadow ${motionDurationSlow}`,\n content: '\"\"',\n pointerEvents: 'none'\n },\n [`${componentCls}-cell-fix-left-all::after`]: {\n display: 'none'\n },\n [`\n ${componentCls}-cell-fix-right-first::after,\n ${componentCls}-cell-fix-right-last::after\n `]: {\n position: 'absolute',\n top: 0,\n bottom: -lineWidth,\n left: {\n _skip_check_: true,\n value: 0\n },\n width: 30,\n transform: 'translateX(-100%)',\n transition: `box-shadow ${motionDurationSlow}`,\n content: '\"\"',\n pointerEvents: 'none'\n },\n [`${componentCls}-container`]: {\n '&::before, &::after': {\n position: 'absolute',\n top: 0,\n bottom: 0,\n zIndex: zIndexTableSticky + 1,\n width: 30,\n transition: `box-shadow ${motionDurationSlow}`,\n content: '\"\"',\n pointerEvents: 'none'\n },\n '&::before': {\n insetInlineStart: 0\n },\n '&::after': {\n insetInlineEnd: 0\n }\n },\n [`${componentCls}-ping-left`]: {\n [`&:not(${componentCls}-has-fix-left) ${componentCls}-container`]: {\n position: 'relative',\n '&::before': {\n boxShadow: `inset 10px 0 8px -8px ${shadowColor}`\n }\n },\n [`\n ${componentCls}-cell-fix-left-first::after,\n ${componentCls}-cell-fix-left-last::after\n `]: {\n boxShadow: `inset 10px 0 8px -8px ${shadowColor}`\n },\n [`${componentCls}-cell-fix-left-last::before`]: {\n backgroundColor: 'transparent !important'\n }\n },\n [`${componentCls}-ping-right`]: {\n [`&:not(${componentCls}-has-fix-right) ${componentCls}-container`]: {\n position: 'relative',\n '&::after': {\n boxShadow: `inset -10px 0 8px -8px ${shadowColor}`\n }\n },\n [`\n ${componentCls}-cell-fix-right-first::after,\n ${componentCls}-cell-fix-right-last::after\n `]: {\n boxShadow: `inset -10px 0 8px -8px ${shadowColor}`\n }\n }\n }\n };\n};\nexport default genFixedStyle;","const genPaginationStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n // ========================== Pagination ==========================\n [`${componentCls}-pagination${antCls}-pagination`]: {\n margin: `${token.margin}px 0`\n },\n [`${componentCls}-pagination`]: {\n display: 'flex',\n flexWrap: 'wrap',\n rowGap: token.paddingXS,\n '> *': {\n flex: 'none'\n },\n '&-left': {\n justifyContent: 'flex-start'\n },\n '&-center': {\n justifyContent: 'center'\n },\n '&-right': {\n justifyContent: 'flex-end'\n }\n }\n }\n };\n};\nexport default genPaginationStyle;","const genRadiusStyle = token => {\n const {\n componentCls,\n tableRadius\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [componentCls]: {\n // https://github.com/ant-design/ant-design/issues/39115#issuecomment-1362314574\n [`${componentCls}-title, ${componentCls}-header`]: {\n borderRadius: `${tableRadius}px ${tableRadius}px 0 0`\n },\n [`${componentCls}-title + ${componentCls}-container`]: {\n borderStartStartRadius: 0,\n borderStartEndRadius: 0,\n // https://github.com/ant-design/ant-design/issues/41975\n [`${componentCls}-header, table`]: {\n borderRadius: 0\n },\n 'table > thead > tr:first-child': {\n 'th:first-child, th:last-child, td:first-child, td:last-child': {\n borderRadius: 0\n }\n }\n },\n '&-container': {\n borderStartStartRadius: tableRadius,\n borderStartEndRadius: tableRadius,\n 'table > thead > tr:first-child': {\n '> *:first-child': {\n borderStartStartRadius: tableRadius\n },\n '> *:last-child': {\n borderStartEndRadius: tableRadius\n }\n }\n },\n '&-footer': {\n borderRadius: `0 0 ${tableRadius}px ${tableRadius}px`\n }\n }\n }\n };\n};\nexport default genRadiusStyle;","const genStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-wrapper-rtl`]: {\n direction: 'rtl',\n table: {\n direction: 'rtl'\n },\n [`${componentCls}-pagination-left`]: {\n justifyContent: 'flex-end'\n },\n [`${componentCls}-pagination-right`]: {\n justifyContent: 'flex-start'\n },\n [`${componentCls}-row-expand-icon`]: {\n float: 'right',\n '&::after': {\n transform: 'rotate(-90deg)'\n },\n '&-collapsed::before': {\n transform: 'rotate(180deg)'\n },\n '&-collapsed::after': {\n transform: 'rotate(0deg)'\n }\n },\n [`${componentCls}-container`]: {\n '&::before': {\n insetInlineStart: 'unset',\n insetInlineEnd: 0\n },\n '&::after': {\n insetInlineStart: 0,\n insetInlineEnd: 'unset'\n },\n [`${componentCls}-row-indent`]: {\n float: 'right'\n }\n }\n }\n };\n};\nexport default genStyle;","const genSelectionStyle = token => {\n const {\n componentCls,\n antCls,\n iconCls,\n fontSizeIcon,\n padding,\n paddingXS,\n tableHeaderIconColor,\n tableHeaderIconColorHover,\n tableSelectionColumnWidth\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n // ========================== Selections ==========================\n [`${componentCls}-selection-col`]: {\n width: tableSelectionColumnWidth,\n [`&${componentCls}-selection-col-with-dropdown`]: {\n width: tableSelectionColumnWidth + fontSizeIcon + padding / 4\n }\n },\n [`${componentCls}-bordered ${componentCls}-selection-col`]: {\n width: tableSelectionColumnWidth + paddingXS * 2,\n [`&${componentCls}-selection-col-with-dropdown`]: {\n width: tableSelectionColumnWidth + fontSizeIcon + padding / 4 + paddingXS * 2\n }\n },\n [`\n table tr th${componentCls}-selection-column,\n table tr td${componentCls}-selection-column\n `]: {\n paddingInlineEnd: token.paddingXS,\n paddingInlineStart: token.paddingXS,\n textAlign: 'center',\n [`${antCls}-radio-wrapper`]: {\n marginInlineEnd: 0\n }\n },\n [`table tr th${componentCls}-selection-column${componentCls}-cell-fix-left`]: {\n zIndex: token.zIndexTableFixed + 1\n },\n [`table tr th${componentCls}-selection-column::after`]: {\n backgroundColor: 'transparent !important'\n },\n [`${componentCls}-selection`]: {\n position: 'relative',\n display: 'inline-flex',\n flexDirection: 'column'\n },\n [`${componentCls}-selection-extra`]: {\n position: 'absolute',\n top: 0,\n zIndex: 1,\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n marginInlineStart: '100%',\n paddingInlineStart: `${token.tablePaddingHorizontal / 4}px`,\n [iconCls]: {\n color: tableHeaderIconColor,\n fontSize: fontSizeIcon,\n verticalAlign: 'baseline',\n '&:hover': {\n color: tableHeaderIconColorHover\n }\n }\n }\n }\n };\n};\nexport default genSelectionStyle;","const genSizeStyle = token => {\n const {\n componentCls\n } = token;\n const getSizeStyle = (size, paddingVertical, paddingHorizontal, fontSize) => ({\n [`${componentCls}${componentCls}-${size}`]: {\n fontSize,\n [`\n ${componentCls}-title,\n ${componentCls}-footer,\n ${componentCls}-thead > tr > th,\n ${componentCls}-tbody > tr > th,\n ${componentCls}-tbody > tr > td,\n tfoot > tr > th,\n tfoot > tr > td\n `]: {\n padding: `${paddingVertical}px ${paddingHorizontal}px`\n },\n [`${componentCls}-filter-trigger`]: {\n marginInlineEnd: `-${paddingHorizontal / 2}px`\n },\n [`${componentCls}-expanded-row-fixed`]: {\n margin: `-${paddingVertical}px -${paddingHorizontal}px`\n },\n [`${componentCls}-tbody`]: {\n // ========================= Nest Table ===========================\n [`${componentCls}-wrapper:only-child ${componentCls}`]: {\n marginBlock: `-${paddingVertical}px`,\n marginInline: `${token.tableExpandColumnWidth - paddingHorizontal}px -${paddingHorizontal}px`\n }\n },\n // https://github.com/ant-design/ant-design/issues/35167\n [`${componentCls}-selection-column`]: {\n paddingInlineStart: `${paddingHorizontal / 4}px`\n }\n }\n });\n return {\n [`${componentCls}-wrapper`]: Object.assign(Object.assign({}, getSizeStyle('middle', token.tablePaddingVerticalMiddle, token.tablePaddingHorizontalMiddle, token.tableFontSizeMiddle)), getSizeStyle('small', token.tablePaddingVerticalSmall, token.tablePaddingHorizontalSmall, token.tableFontSizeSmall))\n };\n};\nexport default genSizeStyle;","const genSorterStyle = token => {\n const {\n componentCls,\n marginXXS,\n fontSizeIcon,\n tableHeaderIconColor,\n tableHeaderIconColorHover\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-thead th${componentCls}-column-has-sorters`]: {\n outline: 'none',\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n '&:hover': {\n background: token.tableHeaderSortHoverBg,\n '&::before': {\n backgroundColor: 'transparent !important'\n }\n },\n '&:focus-visible': {\n color: token.colorPrimary\n },\n // https://github.com/ant-design/ant-design/issues/30969\n [`\n &${componentCls}-cell-fix-left:hover,\n &${componentCls}-cell-fix-right:hover\n `]: {\n background: token.tableFixedHeaderSortActiveBg\n }\n },\n [`${componentCls}-thead th${componentCls}-column-sort`]: {\n background: token.tableHeaderSortBg,\n '&::before': {\n backgroundColor: 'transparent !important'\n }\n },\n [`td${componentCls}-column-sort`]: {\n background: token.tableBodySortBg\n },\n [`${componentCls}-column-title`]: {\n position: 'relative',\n zIndex: 1,\n flex: 1\n },\n [`${componentCls}-column-sorters`]: {\n display: 'flex',\n flex: 'auto',\n alignItems: 'center',\n justifyContent: 'space-between',\n '&::after': {\n position: 'absolute',\n inset: 0,\n width: '100%',\n height: '100%',\n content: '\"\"'\n }\n },\n [`${componentCls}-column-sorter`]: {\n marginInlineStart: marginXXS,\n color: tableHeaderIconColor,\n fontSize: 0,\n transition: `color ${token.motionDurationSlow}`,\n '&-inner': {\n display: 'inline-flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n '&-up, &-down': {\n fontSize: fontSizeIcon,\n '&.active': {\n color: token.colorPrimary\n }\n },\n [`${componentCls}-column-sorter-up + ${componentCls}-column-sorter-down`]: {\n marginTop: '-0.3em'\n }\n },\n [`${componentCls}-column-sorters:hover ${componentCls}-column-sorter`]: {\n color: tableHeaderIconColorHover\n }\n }\n };\n};\nexport default genSorterStyle;","const genStickyStyle = token => {\n const {\n componentCls,\n opacityLoading,\n tableScrollThumbBg,\n tableScrollThumbBgHover,\n tableScrollThumbSize,\n tableScrollBg,\n zIndexTableSticky\n } = token;\n const tableBorder = `${token.lineWidth}px ${token.lineType} ${token.tableBorderColor}`;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-sticky`]: {\n '&-holder': {\n position: 'sticky',\n zIndex: zIndexTableSticky,\n background: token.colorBgContainer\n },\n '&-scroll': {\n position: 'sticky',\n bottom: 0,\n height: `${tableScrollThumbSize}px !important`,\n zIndex: zIndexTableSticky,\n display: 'flex',\n alignItems: 'center',\n background: tableScrollBg,\n borderTop: tableBorder,\n opacity: opacityLoading,\n '&:hover': {\n transformOrigin: 'center bottom'\n },\n // fake scrollbar style of sticky\n '&-bar': {\n height: tableScrollThumbSize,\n backgroundColor: tableScrollThumbBg,\n borderRadius: 100,\n transition: `all ${token.motionDurationSlow}, transform none`,\n position: 'absolute',\n bottom: 0,\n '&:hover, &-active': {\n backgroundColor: tableScrollThumbBgHover\n }\n }\n }\n }\n }\n };\n};\nexport default genStickyStyle;","const genSummaryStyle = token => {\n const {\n componentCls,\n lineWidth,\n tableBorderColor\n } = token;\n const tableBorder = `${lineWidth}px ${token.lineType} ${tableBorderColor}`;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-summary`]: {\n position: 'relative',\n zIndex: token.zIndexTableFixed,\n background: token.tableBg,\n '> tr': {\n '> th, > td': {\n borderBottom: tableBorder\n }\n }\n },\n [`div${componentCls}-summary`]: {\n boxShadow: `0 -${lineWidth}px 0 ${tableBorderColor}`\n }\n }\n };\n};\nexport default genSummaryStyle;","import { TinyColor } from '@ctrl/tinycolor';\nimport { clearFix, resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genBorderedStyle from './bordered';\nimport genEllipsisStyle from './ellipsis';\nimport genEmptyStyle from './empty';\nimport genExpandStyle from './expand';\nimport genFilterStyle from './filter';\nimport genFixedStyle from './fixed';\nimport genPaginationStyle from './pagination';\nimport genRadiusStyle from './radius';\nimport genRtlStyle from './rtl';\nimport genSelectionStyle from './selection';\nimport genSizeStyle from './size';\nimport genSorterStyle from './sorter';\nimport genStickyStyle from './sticky';\nimport genSummaryStyle from './summary';\nconst genTableStyle = token => {\n const {\n componentCls,\n fontWeightStrong,\n tablePaddingVertical,\n tablePaddingHorizontal,\n lineWidth,\n lineType,\n tableBorderColor,\n tableFontSize,\n tableBg,\n tableRadius,\n tableHeaderTextColor,\n motionDurationMid,\n tableHeaderBg,\n tableHeaderCellSplitColor,\n tableRowHoverBg,\n tableSelectedRowBg,\n tableSelectedRowHoverBg,\n tableFooterTextColor,\n tableFooterBg,\n paddingContentVerticalLG\n } = token;\n const tableBorder = `${lineWidth}px ${lineType} ${tableBorderColor}`;\n return {\n [`${componentCls}-wrapper`]: Object.assign(Object.assign({\n clear: 'both',\n maxWidth: '100%'\n }, clearFix()), {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n fontSize: tableFontSize,\n background: tableBg,\n borderRadius: `${tableRadius}px ${tableRadius}px 0 0`\n }),\n // https://github.com/ant-design/ant-design/issues/17611\n table: {\n width: '100%',\n textAlign: 'start',\n borderRadius: `${tableRadius}px ${tableRadius}px 0 0`,\n borderCollapse: 'separate',\n borderSpacing: 0\n },\n // ============================= Cell =============================\n [`\n ${componentCls}-thead > tr > th,\n ${componentCls}-tbody > tr > th,\n ${componentCls}-tbody > tr > td,\n tfoot > tr > th,\n tfoot > tr > td\n `]: {\n position: 'relative',\n padding: `${paddingContentVerticalLG}px ${tablePaddingHorizontal}px`,\n overflowWrap: 'break-word'\n },\n // ============================ Title =============================\n [`${componentCls}-title`]: {\n padding: `${tablePaddingVertical}px ${tablePaddingHorizontal}px`\n },\n // ============================ Header ============================\n [`${componentCls}-thead`]: {\n [`\n > tr > th,\n > tr > td\n `]: {\n position: 'relative',\n color: tableHeaderTextColor,\n fontWeight: fontWeightStrong,\n textAlign: 'start',\n background: tableHeaderBg,\n borderBottom: tableBorder,\n transition: `background ${motionDurationMid} ease`,\n \"&[colspan]:not([colspan='1'])\": {\n textAlign: 'center'\n },\n [`&:not(:last-child):not(${componentCls}-selection-column):not(${componentCls}-row-expand-icon-cell):not([colspan])::before`]: {\n position: 'absolute',\n top: '50%',\n insetInlineEnd: 0,\n width: 1,\n height: '1.6em',\n backgroundColor: tableHeaderCellSplitColor,\n transform: 'translateY(-50%)',\n transition: `background-color ${motionDurationMid}`,\n content: '\"\"'\n }\n },\n '> tr:not(:last-child) > th[colspan]': {\n borderBottom: 0\n }\n },\n // ============================ Body ============================\n [`${componentCls}-tbody`]: {\n '> tr': {\n [`> th, > td`]: {\n transition: `background ${motionDurationMid}, border-color ${motionDurationMid}`,\n borderBottom: tableBorder,\n // ========================= Nest Table ===========================\n [`\n > ${componentCls}-wrapper:only-child,\n > ${componentCls}-expanded-row-fixed > ${componentCls}-wrapper:only-child\n `]: {\n [componentCls]: {\n marginBlock: `-${tablePaddingVertical}px`,\n marginInline: `${token.tableExpandColumnWidth - tablePaddingHorizontal}px -${tablePaddingHorizontal}px`,\n [`${componentCls}-tbody > tr:last-child > td`]: {\n borderBottom: 0,\n '&:first-child, &:last-child': {\n borderRadius: 0\n }\n }\n }\n }\n },\n '> th': {\n position: 'relative',\n color: tableHeaderTextColor,\n fontWeight: fontWeightStrong,\n textAlign: 'start',\n background: tableHeaderBg,\n borderBottom: tableBorder,\n transition: `background ${motionDurationMid} ease`\n },\n [`\n &${componentCls}-row:hover > th,\n &${componentCls}-row:hover > td,\n > th${componentCls}-cell-row-hover,\n > td${componentCls}-cell-row-hover\n `]: {\n background: tableRowHoverBg\n },\n [`&${componentCls}-row-selected`]: {\n [`> th, > td`]: {\n background: tableSelectedRowBg\n },\n [`&:hover > th, &:hover > td`]: {\n background: tableSelectedRowHoverBg\n }\n }\n }\n },\n // ============================ Footer ============================\n [`${componentCls}-footer`]: {\n padding: `${tablePaddingVertical}px ${tablePaddingHorizontal}px`,\n color: tableFooterTextColor,\n background: tableFooterBg\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Table', token => {\n const {\n controlItemBgActive,\n controlItemBgActiveHover,\n colorTextPlaceholder,\n colorTextHeading,\n colorSplit,\n colorBorderSecondary,\n fontSize,\n padding,\n paddingXS,\n paddingSM,\n controlHeight,\n colorFillAlter,\n colorIcon,\n colorIconHover,\n opacityLoading,\n colorBgContainer,\n borderRadiusLG,\n colorFillContent,\n colorFillSecondary,\n controlInteractiveSize: checkboxSize\n } = token;\n const baseColorAction = new TinyColor(colorIcon);\n const baseColorActionHover = new TinyColor(colorIconHover);\n const tableSelectedRowBg = controlItemBgActive;\n const zIndexTableFixed = 2;\n const colorFillSecondarySolid = new TinyColor(colorFillSecondary).onBackground(colorBgContainer).toHexShortString();\n const colorFillContentSolid = new TinyColor(colorFillContent).onBackground(colorBgContainer).toHexShortString();\n const colorFillAlterSolid = new TinyColor(colorFillAlter).onBackground(colorBgContainer).toHexShortString();\n const tableToken = mergeToken(token, {\n tableFontSize: fontSize,\n tableBg: colorBgContainer,\n tableRadius: borderRadiusLG,\n tablePaddingVertical: padding,\n tablePaddingHorizontal: padding,\n tablePaddingVerticalMiddle: paddingSM,\n tablePaddingHorizontalMiddle: paddingXS,\n tablePaddingVerticalSmall: paddingXS,\n tablePaddingHorizontalSmall: paddingXS,\n tableBorderColor: colorBorderSecondary,\n tableHeaderTextColor: colorTextHeading,\n tableHeaderBg: colorFillAlterSolid,\n tableFooterTextColor: colorTextHeading,\n tableFooterBg: colorFillAlterSolid,\n tableHeaderCellSplitColor: colorBorderSecondary,\n tableHeaderSortBg: colorFillSecondarySolid,\n tableHeaderSortHoverBg: colorFillContentSolid,\n tableHeaderIconColor: baseColorAction.clone().setAlpha(baseColorAction.getAlpha() * opacityLoading).toRgbString(),\n tableHeaderIconColorHover: baseColorActionHover.clone().setAlpha(baseColorActionHover.getAlpha() * opacityLoading).toRgbString(),\n tableBodySortBg: colorFillAlterSolid,\n tableFixedHeaderSortActiveBg: colorFillSecondarySolid,\n tableHeaderFilterActiveBg: colorFillContent,\n tableFilterDropdownBg: colorBgContainer,\n tableRowHoverBg: colorFillAlterSolid,\n tableSelectedRowBg,\n tableSelectedRowHoverBg: controlItemBgActiveHover,\n zIndexTableFixed,\n zIndexTableSticky: zIndexTableFixed + 1,\n tableFontSizeMiddle: fontSize,\n tableFontSizeSmall: fontSize,\n tableSelectionColumnWidth: controlHeight,\n tableExpandIconBg: colorBgContainer,\n tableExpandColumnWidth: checkboxSize + 2 * token.padding,\n tableExpandedRowBg: colorFillAlter,\n // Dropdown\n tableFilterDropdownWidth: 120,\n tableFilterDropdownHeight: 264,\n tableFilterDropdownSearchWidth: 140,\n // Virtual Scroll Bar\n tableScrollThumbSize: 8,\n tableScrollThumbBg: colorTextPlaceholder,\n tableScrollThumbBgHover: colorTextHeading,\n tableScrollBg: colorSplit\n });\n return [genTableStyle(tableToken), genPaginationStyle(tableToken), genSummaryStyle(tableToken), genSorterStyle(tableToken), genFilterStyle(tableToken), genBorderedStyle(tableToken), genRadiusStyle(tableToken), genExpandStyle(tableToken), genSummaryStyle(tableToken), genEmptyStyle(tableToken), genSelectionStyle(tableToken), genFixedStyle(tableToken), genStickyStyle(tableToken), genEllipsisStyle(tableToken), genSizeStyle(tableToken), genRtlStyle(tableToken)];\n});","import classNames from 'classnames';\nimport { INTERNAL_HOOKS } from 'rc-table';\nimport { convertChildrenToColumns } from \"rc-table/es/hooks/useColumns\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport scrollTo from '../_util/scrollTo';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider/context';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport useSize from '../config-provider/hooks/useSize';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport defaultLocale from '../locale/en_US';\nimport Pagination from '../pagination';\nimport Spin from '../spin';\nimport renderExpandIcon from './ExpandIcon';\nimport RcTable from './RcTable';\nimport useFilter, { getFilterData } from './hooks/useFilter';\nimport useLazyKVMap from './hooks/useLazyKVMap';\nimport usePagination, { DEFAULT_PAGE_SIZE, getPaginationParam } from './hooks/usePagination';\nimport useSelection from './hooks/useSelection';\nimport useSorter, { getSortData } from './hooks/useSorter';\nimport useTitleColumns from './hooks/useTitleColumns';\nimport useStyle from './style';\nconst EMPTY_LIST = [];\nconst InternalTable = (props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n size: customizeSize,\n bordered,\n dropdownPrefixCls: customizeDropdownPrefixCls,\n dataSource,\n pagination,\n rowSelection,\n rowKey = 'key',\n rowClassName,\n columns,\n children,\n childrenColumnName: legacyChildrenColumnName,\n onChange,\n getPopupContainer,\n loading,\n expandIcon,\n expandable,\n expandedRowRender,\n expandIconColumnIndex,\n indentSize,\n scroll,\n sortDirections,\n locale,\n showSorterTooltip = true\n } = props;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof rowKey === 'function' && rowKey.length > 1), 'Table', '`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected.') : void 0;\n }\n const baseColumns = React.useMemo(() => columns || convertChildrenToColumns(children), [columns, children]);\n const needResponsive = React.useMemo(() => baseColumns.some(col => col.responsive), [baseColumns]);\n const screens = useBreakpoint(needResponsive);\n const mergedColumns = React.useMemo(() => {\n const matched = new Set(Object.keys(screens).filter(m => screens[m]));\n return baseColumns.filter(c => !c.responsive || c.responsive.some(r => matched.has(r)));\n }, [baseColumns, screens]);\n const tableProps = omit(props, ['className', 'style', 'columns']);\n const {\n locale: contextLocale = defaultLocale,\n direction,\n table,\n renderEmpty,\n getPrefixCls,\n getPopupContainer: getContextPopupContainer\n } = React.useContext(ConfigContext);\n const mergedSize = useSize(customizeSize);\n const tableLocale = Object.assign(Object.assign({}, contextLocale.Table), locale);\n const rawData = dataSource || EMPTY_LIST;\n const prefixCls = getPrefixCls('table', customizePrefixCls);\n const dropdownPrefixCls = getPrefixCls('dropdown', customizeDropdownPrefixCls);\n const mergedExpandable = Object.assign({\n childrenColumnName: legacyChildrenColumnName,\n expandIconColumnIndex\n }, expandable);\n const {\n childrenColumnName = 'children'\n } = mergedExpandable;\n const expandType = React.useMemo(() => {\n if (rawData.some(item => item === null || item === void 0 ? void 0 : item[childrenColumnName])) {\n return 'nest';\n }\n if (expandedRowRender || expandable && expandable.expandedRowRender) {\n return 'row';\n }\n return null;\n }, [rawData]);\n const internalRefs = {\n body: React.useRef()\n };\n // ============================ RowKey ============================\n const getRowKey = React.useMemo(() => {\n if (typeof rowKey === 'function') {\n return rowKey;\n }\n return record => record === null || record === void 0 ? void 0 : record[rowKey];\n }, [rowKey]);\n const [getRecordByKey] = useLazyKVMap(rawData, childrenColumnName, getRowKey);\n // ============================ Events =============================\n const changeEventInfo = {};\n const triggerOnChange = function (info, action) {\n let reset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _a, _b, _c;\n const changeInfo = Object.assign(Object.assign({}, changeEventInfo), info);\n if (reset) {\n (_a = changeEventInfo.resetPagination) === null || _a === void 0 ? void 0 : _a.call(changeEventInfo);\n // Reset event param\n if ((_b = changeInfo.pagination) === null || _b === void 0 ? void 0 : _b.current) {\n changeInfo.pagination.current = 1;\n }\n // Trigger pagination events\n if (pagination && pagination.onChange) {\n pagination.onChange(1, (_c = changeInfo.pagination) === null || _c === void 0 ? void 0 : _c.pageSize);\n }\n }\n if (scroll && scroll.scrollToFirstRowOnChange !== false && internalRefs.body.current) {\n scrollTo(0, {\n getContainer: () => internalRefs.body.current\n });\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(changeInfo.pagination, changeInfo.filters, changeInfo.sorter, {\n currentDataSource: getFilterData(getSortData(rawData, changeInfo.sorterStates, childrenColumnName), changeInfo.filterStates),\n action\n });\n };\n /**\n * Controlled state in `columns` is not a good idea that makes too many code (1000+ line?) to read\n * state out and then put it back to title render. Move these code into `hooks` but still too\n * complex. We should provides Table props like `sorter` & `filter` to handle control in next big\n * version.\n */\n // ============================ Sorter =============================\n const onSorterChange = (sorter, sorterStates) => {\n triggerOnChange({\n sorter,\n sorterStates\n }, 'sort', false);\n };\n const [transformSorterColumns, sortStates, sorterTitleProps, getSorters] = useSorter({\n prefixCls,\n mergedColumns,\n onSorterChange,\n sortDirections: sortDirections || ['ascend', 'descend'],\n tableLocale,\n showSorterTooltip\n });\n const sortedData = React.useMemo(() => getSortData(rawData, sortStates, childrenColumnName), [rawData, sortStates]);\n changeEventInfo.sorter = getSorters();\n changeEventInfo.sorterStates = sortStates;\n // ============================ Filter ============================\n const onFilterChange = (filters, filterStates) => {\n triggerOnChange({\n filters,\n filterStates\n }, 'filter', true);\n };\n const [transformFilterColumns, filterStates, filters] = useFilter({\n prefixCls,\n locale: tableLocale,\n dropdownPrefixCls,\n mergedColumns,\n onFilterChange,\n getPopupContainer: getPopupContainer || getContextPopupContainer\n });\n const mergedData = getFilterData(sortedData, filterStates);\n changeEventInfo.filters = filters;\n changeEventInfo.filterStates = filterStates;\n // ============================ Column ============================\n const columnTitleProps = React.useMemo(() => {\n const mergedFilters = {};\n Object.keys(filters).forEach(filterKey => {\n if (filters[filterKey] !== null) {\n mergedFilters[filterKey] = filters[filterKey];\n }\n });\n return Object.assign(Object.assign({}, sorterTitleProps), {\n filters: mergedFilters\n });\n }, [sorterTitleProps, filters]);\n const [transformTitleColumns] = useTitleColumns(columnTitleProps);\n // ========================== Pagination ==========================\n const onPaginationChange = (current, pageSize) => {\n triggerOnChange({\n pagination: Object.assign(Object.assign({}, changeEventInfo.pagination), {\n current,\n pageSize\n })\n }, 'paginate');\n };\n const [mergedPagination, resetPagination] = usePagination(mergedData.length, onPaginationChange, pagination);\n changeEventInfo.pagination = pagination === false ? {} : getPaginationParam(mergedPagination, pagination);\n changeEventInfo.resetPagination = resetPagination;\n // ============================= Data =============================\n const pageData = React.useMemo(() => {\n if (pagination === false || !mergedPagination.pageSize) {\n return mergedData;\n }\n const {\n current = 1,\n total,\n pageSize = DEFAULT_PAGE_SIZE\n } = mergedPagination;\n process.env.NODE_ENV !== \"production\" ? warning(current > 0, 'Table', '`current` should be positive number.') : void 0;\n // Dynamic table data\n if (mergedData.length < total) {\n if (mergedData.length > pageSize) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Table', '`dataSource` length is less than `pagination.total` but large than `pagination.pageSize`. Please make sure your config correct data with async mode.') : void 0;\n return mergedData.slice((current - 1) * pageSize, current * pageSize);\n }\n return mergedData;\n }\n return mergedData.slice((current - 1) * pageSize, current * pageSize);\n }, [!!pagination, mergedData, mergedPagination && mergedPagination.current, mergedPagination && mergedPagination.pageSize, mergedPagination && mergedPagination.total]);\n // ========================== Selections ==========================\n const [transformSelectionColumns, selectedKeySet] = useSelection({\n prefixCls,\n data: mergedData,\n pageData,\n getRowKey,\n getRecordByKey,\n expandType,\n childrenColumnName,\n locale: tableLocale,\n getPopupContainer: getPopupContainer || getContextPopupContainer\n }, rowSelection);\n const internalRowClassName = (record, index, indent) => {\n let mergedRowClassName;\n if (typeof rowClassName === 'function') {\n mergedRowClassName = classNames(rowClassName(record, index, indent));\n } else {\n mergedRowClassName = classNames(rowClassName);\n }\n return classNames({\n [`${prefixCls}-row-selected`]: selectedKeySet.has(getRowKey(record, index))\n }, mergedRowClassName);\n };\n // ========================== Expandable ==========================\n // Pass origin render status into `rc-table`, this can be removed when refactor with `rc-table`\n mergedExpandable.__PARENT_RENDER_ICON__ = mergedExpandable.expandIcon;\n // Customize expandable icon\n mergedExpandable.expandIcon = mergedExpandable.expandIcon || expandIcon || renderExpandIcon(tableLocale);\n // Adjust expand icon index, no overwrite expandIconColumnIndex if set.\n if (expandType === 'nest' && mergedExpandable.expandIconColumnIndex === undefined) {\n mergedExpandable.expandIconColumnIndex = rowSelection ? 1 : 0;\n } else if (mergedExpandable.expandIconColumnIndex > 0 && rowSelection) {\n mergedExpandable.expandIconColumnIndex -= 1;\n }\n // Indent size\n if (typeof mergedExpandable.indentSize !== 'number') {\n mergedExpandable.indentSize = typeof indentSize === 'number' ? indentSize : 15;\n }\n // ============================ Render ============================\n const transformColumns = React.useCallback(innerColumns => transformTitleColumns(transformSelectionColumns(transformFilterColumns(transformSorterColumns(innerColumns)))), [transformSorterColumns, transformFilterColumns, transformSelectionColumns]);\n let topPaginationNode;\n let bottomPaginationNode;\n if (pagination !== false && (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.total)) {\n let paginationSize;\n if (mergedPagination.size) {\n paginationSize = mergedPagination.size;\n } else {\n paginationSize = mergedSize === 'small' || mergedSize === 'middle' ? 'small' : undefined;\n }\n const renderPagination = position => /*#__PURE__*/React.createElement(Pagination, Object.assign({}, mergedPagination, {\n className: classNames(`${prefixCls}-pagination ${prefixCls}-pagination-${position}`, mergedPagination.className),\n size: paginationSize\n }));\n const defaultPosition = direction === 'rtl' ? 'left' : 'right';\n const {\n position\n } = mergedPagination;\n if (position !== null && Array.isArray(position)) {\n const topPos = position.find(p => p.includes('top'));\n const bottomPos = position.find(p => p.includes('bottom'));\n const isDisable = position.every(p => `${p}` === 'none');\n if (!topPos && !bottomPos && !isDisable) {\n bottomPaginationNode = renderPagination(defaultPosition);\n }\n if (topPos) {\n topPaginationNode = renderPagination(topPos.toLowerCase().replace('top', ''));\n }\n if (bottomPos) {\n bottomPaginationNode = renderPagination(bottomPos.toLowerCase().replace('bottom', ''));\n }\n } else {\n bottomPaginationNode = renderPagination(defaultPosition);\n }\n }\n // >>>>>>>>> Spinning\n let spinProps;\n if (typeof loading === 'boolean') {\n spinProps = {\n spinning: loading\n };\n } else if (typeof loading === 'object') {\n spinProps = Object.assign({\n spinning: true\n }, loading);\n }\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const wrapperClassNames = classNames(`${prefixCls}-wrapper`, table === null || table === void 0 ? void 0 : table.className, {\n [`${prefixCls}-wrapper-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId);\n const mergedStyle = Object.assign(Object.assign({}, table === null || table === void 0 ? void 0 : table.style), style);\n const emptyText = locale && locale.emptyText || (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Table')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Table\"\n });\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n className: wrapperClassNames,\n style: mergedStyle\n }, /*#__PURE__*/React.createElement(Spin, Object.assign({\n spinning: false\n }, spinProps), topPaginationNode, /*#__PURE__*/React.createElement(RcTable, Object.assign({}, tableProps, {\n columns: mergedColumns,\n direction: direction,\n expandable: mergedExpandable,\n prefixCls: prefixCls,\n className: classNames({\n [`${prefixCls}-middle`]: mergedSize === 'middle',\n [`${prefixCls}-small`]: mergedSize === 'small',\n [`${prefixCls}-bordered`]: bordered,\n [`${prefixCls}-empty`]: rawData.length === 0\n }),\n data: pageData,\n rowKey: getRowKey,\n rowClassName: internalRowClassName,\n emptyText: emptyText,\n // Internal\n internalHooks: INTERNAL_HOOKS,\n internalRefs: internalRefs,\n transformColumns: transformColumns\n })), bottomPaginationNode)));\n};\nexport default /*#__PURE__*/React.forwardRef(InternalTable);","import { EXPAND_COLUMN, Summary } from 'rc-table';\nimport * as React from 'react';\nimport Column from './Column';\nimport ColumnGroup from './ColumnGroup';\nimport InternalTable from './InternalTable';\nimport { SELECTION_ALL, SELECTION_COLUMN, SELECTION_INVERT, SELECTION_NONE } from './hooks/useSelection';\nconst Table = (props, ref) => {\n const renderTimesRef = React.useRef(0);\n renderTimesRef.current += 1;\n return /*#__PURE__*/React.createElement(InternalTable, Object.assign({}, props, {\n ref: ref,\n _renderTimes: renderTimesRef.current\n }));\n};\nconst ForwardTable = /*#__PURE__*/React.forwardRef(Table);\nForwardTable.SELECTION_COLUMN = SELECTION_COLUMN;\nForwardTable.EXPAND_COLUMN = EXPAND_COLUMN;\nForwardTable.SELECTION_ALL = SELECTION_ALL;\nForwardTable.SELECTION_INVERT = SELECTION_INVERT;\nForwardTable.SELECTION_NONE = SELECTION_NONE;\nForwardTable.Column = Column;\nForwardTable.ColumnGroup = ColumnGroup;\nForwardTable.Summary = Summary;\nif (process.env.NODE_ENV !== 'production') {\n ForwardTable.displayName = 'Table';\n}\nexport default ForwardTable;","'use client';\n\nimport Table from './Table';\nexport default Table;","'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 * as React from 'react';\nimport genPurePanel from '../_util/PurePanel';\nimport warning from '../_util/warning';\nimport DatePicker from '../date-picker';\nconst {\n TimePicker: InternalTimePicker,\n RangePicker: InternalRangePicker\n} = DatePicker;\nconst RangePicker = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(InternalRangePicker, Object.assign({}, props, {\n picker: \"time\",\n mode: undefined,\n ref: ref\n})));\nconst TimePicker = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n addon,\n renderExtraFooter\n } = _a,\n restProps = __rest(_a, [\"addon\", \"renderExtraFooter\"]);\n const internalRenderExtraFooter = React.useMemo(() => {\n if (renderExtraFooter) {\n return renderExtraFooter;\n }\n if (addon) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'TimePicker', '`addon` is deprecated. Please use `renderExtraFooter` instead.') : void 0;\n return addon;\n }\n return undefined;\n }, [addon, renderExtraFooter]);\n return /*#__PURE__*/React.createElement(InternalTimePicker, Object.assign({}, restProps, {\n mode: undefined,\n ref: ref,\n renderExtraFooter: internalRenderExtraFooter\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n TimePicker.displayName = 'TimePicker';\n}\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(TimePicker, 'picker');\nTimePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nTimePicker.RangePicker = RangePicker;\nTimePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default TimePicker;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\n/**\n * This function will try to call requestIdleCallback if available to save performance.\n * No need `getLabel` here since already fetch on `rawLabeledValue`.\n */\nexport default (function (values) {\n var cacheRef = React.useRef({\n valueLabels: new Map()\n });\n return React.useMemo(function () {\n var valueLabels = cacheRef.current.valueLabels;\n var valueLabelsCache = new Map();\n var filledValues = values.map(function (item) {\n var _item$label;\n var value = item.value;\n var mergedLabel = (_item$label = item.label) !== null && _item$label !== void 0 ? _item$label : valueLabels.get(value);\n\n // Save in cache\n valueLabelsCache.set(value, mergedLabel);\n return _objectSpread(_objectSpread({}, item), {}, {\n label: mergedLabel\n });\n });\n cacheRef.current.valueLabels = valueLabelsCache;\n return [filledValues];\n }, [values]);\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nexport default (function (rawLabeledValues, rawHalfCheckedValues, treeConduction, keyEntities) {\n return React.useMemo(function () {\n var checkedKeys = rawLabeledValues.map(function (_ref) {\n var value = _ref.value;\n return value;\n });\n var halfCheckedKeys = rawHalfCheckedValues.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n });\n var missingValues = checkedKeys.filter(function (key) {\n return !keyEntities[key];\n });\n if (treeConduction) {\n var _conductCheck = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = _conductCheck.checkedKeys;\n halfCheckedKeys = _conductCheck.halfCheckedKeys;\n }\n return [\n // Checked keys should fill with missing keys which should de-duplicated\n Array.from(new Set([].concat(_toConsumableArray(missingValues), _toConsumableArray(checkedKeys)))),\n // Half checked keys\n halfCheckedKeys];\n }, [rawLabeledValues, rawHalfCheckedValues, treeConduction, keyEntities]);\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport warning from \"rc-util/es/warning\";\nimport { isNil } from \"../utils/valueUtil\";\nexport default (function (treeData, fieldNames) {\n return React.useMemo(function () {\n var collection = convertDataToEntities(treeData, {\n fieldNames: fieldNames,\n initWrapper: function initWrapper(wrapper) {\n return _objectSpread(_objectSpread({}, wrapper), {}, {\n valueEntities: new Map()\n });\n },\n processEntity: function processEntity(entity, wrapper) {\n var val = entity.node[fieldNames.value];\n\n // Check if exist same value\n if (process.env.NODE_ENV !== 'production') {\n var key = entity.node.key;\n warning(!isNil(val), 'TreeNode `value` is invalidate: undefined');\n warning(!wrapper.valueEntities.has(val), \"Same `value` exist in the tree: \".concat(val));\n warning(!key || String(key) === String(val), \"`key` or `value` with TreeNode must be the same or you can remove one of them. key: \".concat(key, \", value: \").concat(val, \".\"));\n }\n wrapper.valueEntities.set(val, entity);\n }\n });\n return collection;\n }, [treeData, fieldNames]);\n});","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar TreeNode = function TreeNode() {\n return null;\n};\nexport default TreeNode;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"value\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport TreeNode from \"../TreeNode\";\nexport function convertChildrenToData(nodes) {\n return toArray(nodes).map(function (node) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return null;\n }\n var _ref = node,\n key = _ref.key,\n _ref$props = _ref.props,\n children = _ref$props.children,\n value = _ref$props.value,\n restProps = _objectWithoutProperties(_ref$props, _excluded);\n var data = _objectSpread({\n key: key,\n value: value\n }, restProps);\n var childData = convertChildrenToData(children);\n if (childData.length) {\n data.children = childData;\n }\n return data;\n }).filter(function (data) {\n return data;\n });\n}\nexport function fillLegacyProps(dataNode) {\n if (!dataNode) {\n return dataNode;\n }\n var cloneNode = _objectSpread({}, dataNode);\n if (!('props' in cloneNode)) {\n Object.defineProperty(cloneNode, 'props', {\n get: function get() {\n warning(false, 'New `rc-tree-select` not support return node instance as argument anymore. Please consider to remove `props` access.');\n return cloneNode;\n }\n });\n }\n return cloneNode;\n}\nexport function fillAdditionalInfo(extra, triggerValue, checkedValues, treeData, showPosition, fieldNames) {\n var triggerNode = null;\n var nodeList = null;\n function generateMap() {\n function dig(list) {\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';\n var parentIncluded = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return list.map(function (option, index) {\n var pos = \"\".concat(level, \"-\").concat(index);\n var value = option[fieldNames.value];\n var included = checkedValues.includes(value);\n var children = dig(option[fieldNames.children] || [], pos, included);\n var node = /*#__PURE__*/React.createElement(TreeNode, option, children.map(function (child) {\n return child.node;\n }));\n\n // Link with trigger node\n if (triggerValue === value) {\n triggerNode = node;\n }\n if (included) {\n var checkedNode = {\n pos: pos,\n node: node,\n children: children\n };\n if (!parentIncluded) {\n nodeList.push(checkedNode);\n }\n return checkedNode;\n }\n return null;\n }).filter(function (node) {\n return node;\n });\n }\n if (!nodeList) {\n nodeList = [];\n dig(treeData);\n\n // Sort to keep the checked node length\n nodeList.sort(function (_ref2, _ref3) {\n var val1 = _ref2.node.props.value;\n var val2 = _ref3.node.props.value;\n var index1 = checkedValues.indexOf(val1);\n var index2 = checkedValues.indexOf(val2);\n return index1 - index2;\n });\n }\n }\n Object.defineProperty(extra, 'triggerNode', {\n get: function get() {\n warning(false, '`triggerNode` is deprecated. Please consider decoupling data with node.');\n generateMap();\n return triggerNode;\n }\n });\n Object.defineProperty(extra, 'allCheckedNodes', {\n get: function get() {\n warning(false, '`allCheckedNodes` is deprecated. Please consider decoupling data with node.');\n generateMap();\n if (showPosition) {\n return nodeList;\n }\n return nodeList.map(function (_ref4) {\n var node = _ref4.node;\n return node;\n });\n }\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { fillLegacyProps } from \"../utils/legacyUtil\";\nexport default (function (treeData, searchValue, _ref) {\n var treeNodeFilterProp = _ref.treeNodeFilterProp,\n filterTreeNode = _ref.filterTreeNode,\n fieldNames = _ref.fieldNames;\n var fieldChildren = fieldNames.children;\n return React.useMemo(function () {\n if (!searchValue || filterTreeNode === false) {\n return treeData;\n }\n var filterOptionFunc;\n if (typeof filterTreeNode === 'function') {\n filterOptionFunc = filterTreeNode;\n } else {\n var upperStr = searchValue.toUpperCase();\n filterOptionFunc = function filterOptionFunc(_, dataNode) {\n var value = dataNode[treeNodeFilterProp];\n return String(value).toUpperCase().includes(upperStr);\n };\n }\n function dig(list) {\n var keepAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return list.reduce(function (total, dataNode) {\n var children = dataNode[fieldChildren];\n var match = keepAll || filterOptionFunc(searchValue, fillLegacyProps(dataNode));\n var childList = dig(children || [], match);\n if (match || childList.length) {\n total.push(_objectSpread(_objectSpread({}, dataNode), {}, _defineProperty({\n isLeaf: undefined\n }, fieldChildren, childList)));\n }\n return total;\n }, []);\n }\n return dig(treeData);\n }, [treeData, searchValue, fieldChildren, treeNodeFilterProp, filterTreeNode]);\n});","import * as React from 'react';\n\n/**\n * Same as `React.useCallback` but always return a memoized function\n * but redirect to real function.\n */\nexport default function useRefFunc(callback) {\n var funcRef = React.useRef();\n funcRef.current = callback;\n var cacheFn = React.useCallback(function () {\n return funcRef.current.apply(funcRef, arguments);\n }, []);\n return cacheFn;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { convertChildrenToData } from \"../utils/legacyUtil\";\nfunction parseSimpleTreeData(treeData, _ref) {\n var id = _ref.id,\n pId = _ref.pId,\n rootPId = _ref.rootPId;\n var keyNodes = {};\n var rootNodeList = [];\n\n // Fill in the map\n var nodeList = treeData.map(function (node) {\n var clone = _objectSpread({}, node);\n var key = clone[id];\n keyNodes[key] = clone;\n clone.key = clone.key || key;\n return clone;\n });\n\n // Connect tree\n nodeList.forEach(function (node) {\n var parentKey = node[pId];\n var parent = keyNodes[parentKey];\n\n // Fill parent\n if (parent) {\n parent.children = parent.children || [];\n parent.children.push(node);\n }\n\n // Fill root tree node\n if (parentKey === rootPId || !parent && rootPId === null) {\n rootNodeList.push(node);\n }\n });\n return rootNodeList;\n}\n\n/**\n * Convert `treeData` or `children` into formatted `treeData`.\n * Will not re-calculate if `treeData` or `children` not change.\n */\nexport default function useTreeData(treeData, children, simpleMode) {\n return React.useMemo(function () {\n if (treeData) {\n return simpleMode ? parseSimpleTreeData(treeData, _objectSpread({\n id: 'id',\n pId: 'pId',\n rootPId: null\n }, simpleMode !== true ? simpleMode : {})) : treeData;\n }\n return convertChildrenToData(children);\n }, [children, simpleMode, treeData]);\n}","import * as React from 'react';\nvar LegacySelectContext = /*#__PURE__*/React.createContext(null);\nexport default LegacySelectContext;","import * as React from 'react';\nvar TreeSelectContext = /*#__PURE__*/React.createContext(null);\nexport default TreeSelectContext;","export function toArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n return value !== undefined ? [value] : [];\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n label = _ref.label,\n value = _ref.value,\n children = _ref.children;\n var mergedValue = value || 'value';\n return {\n _title: label ? [label] : ['title', 'label'],\n value: mergedValue,\n key: mergedValue,\n children: children || 'children'\n };\n}\nexport function isCheckDisabled(node) {\n return !node || node.disabled || node.disableCheckbox || node.checkable === false;\n}\n\n/** Loop fetch all the keys exist in the tree */\nexport function getAllKeys(treeData, fieldNames) {\n var keys = [];\n function dig(list) {\n list.forEach(function (item) {\n var children = item[fieldNames.children];\n if (children) {\n keys.push(item[fieldNames.value]);\n dig(children);\n }\n });\n }\n dig(treeData);\n return keys;\n}\nexport function isNil(val) {\n return val === null || val === undefined;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport { useBaseProps } from 'rc-select';\nimport Tree from 'rc-tree';\nimport LegacyContext from \"./LegacyContext\";\nimport TreeSelectContext from \"./TreeSelectContext\";\nimport { getAllKeys, isCheckDisabled } from \"./utils/valueUtil\";\nvar HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0\n};\nvar OptionList = function OptionList(_, ref) {\n var _useBaseProps = useBaseProps(),\n prefixCls = _useBaseProps.prefixCls,\n multiple = _useBaseProps.multiple,\n searchValue = _useBaseProps.searchValue,\n toggleOpen = _useBaseProps.toggleOpen,\n open = _useBaseProps.open,\n notFoundContent = _useBaseProps.notFoundContent;\n var _React$useContext = React.useContext(TreeSelectContext),\n virtual = _React$useContext.virtual,\n listHeight = _React$useContext.listHeight,\n listItemHeight = _React$useContext.listItemHeight,\n treeData = _React$useContext.treeData,\n fieldNames = _React$useContext.fieldNames,\n onSelect = _React$useContext.onSelect,\n dropdownMatchSelectWidth = _React$useContext.dropdownMatchSelectWidth,\n treeExpandAction = _React$useContext.treeExpandAction;\n var _React$useContext2 = React.useContext(LegacyContext),\n checkable = _React$useContext2.checkable,\n checkedKeys = _React$useContext2.checkedKeys,\n halfCheckedKeys = _React$useContext2.halfCheckedKeys,\n treeExpandedKeys = _React$useContext2.treeExpandedKeys,\n treeDefaultExpandAll = _React$useContext2.treeDefaultExpandAll,\n treeDefaultExpandedKeys = _React$useContext2.treeDefaultExpandedKeys,\n onTreeExpand = _React$useContext2.onTreeExpand,\n treeIcon = _React$useContext2.treeIcon,\n showTreeIcon = _React$useContext2.showTreeIcon,\n switcherIcon = _React$useContext2.switcherIcon,\n treeLine = _React$useContext2.treeLine,\n treeNodeFilterProp = _React$useContext2.treeNodeFilterProp,\n loadData = _React$useContext2.loadData,\n treeLoadedKeys = _React$useContext2.treeLoadedKeys,\n treeMotion = _React$useContext2.treeMotion,\n onTreeLoad = _React$useContext2.onTreeLoad,\n keyEntities = _React$useContext2.keyEntities;\n var treeRef = React.useRef();\n var memoTreeData = useMemo(function () {\n return treeData;\n }, [open, treeData], function (prev, next) {\n return next[0] && prev[1] !== next[1];\n });\n\n // ========================== Values ==========================\n var mergedCheckedKeys = React.useMemo(function () {\n if (!checkable) {\n return null;\n }\n return {\n checked: checkedKeys,\n halfChecked: halfCheckedKeys\n };\n }, [checkable, checkedKeys, halfCheckedKeys]);\n\n // ========================== Scroll ==========================\n React.useEffect(function () {\n // Single mode should scroll to current key\n if (open && !multiple && checkedKeys.length) {\n var _treeRef$current;\n (_treeRef$current = treeRef.current) === null || _treeRef$current === void 0 ? void 0 : _treeRef$current.scrollTo({\n key: checkedKeys[0]\n });\n }\n }, [open]);\n\n // ========================== Search ==========================\n var lowerSearchValue = String(searchValue).toLowerCase();\n var filterTreeNode = function filterTreeNode(treeNode) {\n if (!lowerSearchValue) {\n return false;\n }\n return String(treeNode[treeNodeFilterProp]).toLowerCase().includes(lowerSearchValue);\n };\n\n // =========================== Keys ===========================\n var _React$useState = React.useState(treeDefaultExpandedKeys),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n expandedKeys = _React$useState2[0],\n setExpandedKeys = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n searchExpandedKeys = _React$useState4[0],\n setSearchExpandedKeys = _React$useState4[1];\n var mergedExpandedKeys = React.useMemo(function () {\n if (treeExpandedKeys) {\n return _toConsumableArray(treeExpandedKeys);\n }\n return searchValue ? searchExpandedKeys : expandedKeys;\n }, [expandedKeys, searchExpandedKeys, treeExpandedKeys, searchValue]);\n React.useEffect(function () {\n if (searchValue) {\n setSearchExpandedKeys(getAllKeys(treeData, fieldNames));\n }\n }, [searchValue]);\n var onInternalExpand = function onInternalExpand(keys) {\n setExpandedKeys(keys);\n setSearchExpandedKeys(keys);\n if (onTreeExpand) {\n onTreeExpand(keys);\n }\n };\n\n // ========================== Events ==========================\n var onListMouseDown = function onListMouseDown(event) {\n event.preventDefault();\n };\n var onInternalSelect = function onInternalSelect(__, info) {\n var node = info.node;\n if (checkable && isCheckDisabled(node)) {\n return;\n }\n onSelect(node.key, {\n selected: !checkedKeys.includes(node.key)\n });\n if (!multiple) {\n toggleOpen(false);\n }\n };\n\n // ========================= Keyboard =========================\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n activeKey = _React$useState6[0],\n setActiveKey = _React$useState6[1];\n var activeEntity = keyEntities[activeKey];\n React.useImperativeHandle(ref, function () {\n var _treeRef$current2;\n return {\n scrollTo: (_treeRef$current2 = treeRef.current) === null || _treeRef$current2 === void 0 ? void 0 : _treeRef$current2.scrollTo,\n onKeyDown: function onKeyDown(event) {\n var _treeRef$current3;\n var which = event.which;\n switch (which) {\n // >>> Arrow keys\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n (_treeRef$current3 = treeRef.current) === null || _treeRef$current3 === void 0 ? void 0 : _treeRef$current3.onKeyDown(event);\n break;\n\n // >>> Select item\n case KeyCode.ENTER:\n {\n if (activeEntity) {\n var _ref = (activeEntity === null || activeEntity === void 0 ? void 0 : activeEntity.node) || {},\n selectable = _ref.selectable,\n value = _ref.value;\n if (selectable !== false) {\n onInternalSelect(null, {\n node: {\n key: activeKey\n },\n selected: !checkedKeys.includes(value)\n });\n }\n }\n break;\n }\n\n // >>> Close\n case KeyCode.ESC:\n {\n toggleOpen(false);\n }\n }\n },\n onKeyUp: function onKeyUp() {}\n };\n });\n\n // ========================== Render ==========================\n if (memoTreeData.length === 0) {\n return /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n className: \"\".concat(prefixCls, \"-empty\"),\n onMouseDown: onListMouseDown\n }, notFoundContent);\n }\n var treeProps = {\n fieldNames: fieldNames\n };\n if (treeLoadedKeys) {\n treeProps.loadedKeys = treeLoadedKeys;\n }\n if (mergedExpandedKeys) {\n treeProps.expandedKeys = mergedExpandedKeys;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n onMouseDown: onListMouseDown\n }, activeEntity && open && /*#__PURE__*/React.createElement(\"span\", {\n style: HIDDEN_STYLE,\n \"aria-live\": \"assertive\"\n }, activeEntity.node.value), /*#__PURE__*/React.createElement(Tree, _extends({\n ref: treeRef,\n focusable: false,\n prefixCls: \"\".concat(prefixCls, \"-tree\"),\n treeData: memoTreeData,\n height: listHeight,\n itemHeight: listItemHeight,\n virtual: virtual !== false && dropdownMatchSelectWidth !== false,\n multiple: multiple,\n icon: treeIcon,\n showIcon: showTreeIcon,\n switcherIcon: switcherIcon,\n showLine: treeLine,\n loadData: searchValue ? null : loadData,\n motion: treeMotion,\n activeKey: activeKey\n // We handle keys by out instead tree self\n ,\n checkable: checkable,\n checkStrictly: true,\n checkedKeys: mergedCheckedKeys,\n selectedKeys: !checkable ? checkedKeys : [],\n defaultExpandAll: treeDefaultExpandAll\n }, treeProps, {\n // Proxy event out\n onActiveChange: setActiveKey,\n onSelect: onInternalSelect,\n onCheck: onInternalSelect,\n onExpand: onInternalExpand,\n onLoad: onTreeLoad,\n filterTreeNode: filterTreeNode,\n expandAction: treeExpandAction\n })));\n};\nvar RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);\nRefOptionList.displayName = 'OptionList';\nexport default RefOptionList;","import { isCheckDisabled } from \"./valueUtil\";\nexport var SHOW_ALL = 'SHOW_ALL';\nexport var SHOW_PARENT = 'SHOW_PARENT';\nexport var SHOW_CHILD = 'SHOW_CHILD';\nexport function formatStrategyValues(values, strategy, keyEntities, fieldNames) {\n var valueSet = new Set(values);\n if (strategy === SHOW_CHILD) {\n return values.filter(function (key) {\n var entity = keyEntities[key];\n if (entity && entity.children && entity.children.some(function (_ref) {\n var node = _ref.node;\n return valueSet.has(node[fieldNames.value]);\n }) && entity.children.every(function (_ref2) {\n var node = _ref2.node;\n return isCheckDisabled(node) || valueSet.has(node[fieldNames.value]);\n })) {\n return false;\n }\n return true;\n });\n }\n if (strategy === SHOW_PARENT) {\n return values.filter(function (key) {\n var entity = keyEntities[key];\n var parent = entity ? entity.parent : null;\n if (parent && !isCheckDisabled(parent.node) && valueSet.has(parent.key)) {\n return false;\n }\n return true;\n });\n }\n return values;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"rc-util/es/warning\";\nimport { toArray } from \"./valueUtil\";\nfunction warningProps(props) {\n var searchPlaceholder = props.searchPlaceholder,\n treeCheckStrictly = props.treeCheckStrictly,\n treeCheckable = props.treeCheckable,\n labelInValue = props.labelInValue,\n value = props.value,\n multiple = props.multiple;\n warning(!searchPlaceholder, '`searchPlaceholder` has been removed.');\n if (treeCheckStrictly && labelInValue === false) {\n warning(false, '`treeCheckStrictly` will force set `labelInValue` to `true`.');\n }\n if (labelInValue || treeCheckStrictly) {\n warning(toArray(value).every(function (val) {\n return val && _typeof(val) === 'object' && 'value' in val;\n }), 'Invalid prop `value` supplied to `TreeSelect`. You should use { label: string, value: string | number } or [{ label: string, value: string | number }] instead.');\n }\n if (treeCheckStrictly || multiple || treeCheckable) {\n warning(!value || Array.isArray(value), '`value` should be an array when `TreeSelect` is checkable or multiple.');\n } else {\n warning(!Array.isArray(value), '`value` should not be array when `TreeSelect` is single mode.');\n }\n}\nexport default warningProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\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 _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"id\", \"prefixCls\", \"value\", \"defaultValue\", \"onChange\", \"onSelect\", \"onDeselect\", \"searchValue\", \"inputValue\", \"onSearch\", \"autoClearSearchValue\", \"filterTreeNode\", \"treeNodeFilterProp\", \"showCheckedStrategy\", \"treeNodeLabelProp\", \"multiple\", \"treeCheckable\", \"treeCheckStrictly\", \"labelInValue\", \"fieldNames\", \"treeDataSimpleMode\", \"treeData\", \"children\", \"loadData\", \"treeLoadedKeys\", \"onTreeLoad\", \"treeDefaultExpandAll\", \"treeExpandedKeys\", \"treeDefaultExpandedKeys\", \"onTreeExpand\", \"treeExpandAction\", \"virtual\", \"listHeight\", \"listItemHeight\", \"onDropdownVisibleChange\", \"dropdownMatchSelectWidth\", \"treeLine\", \"treeIcon\", \"showTreeIcon\", \"switcherIcon\", \"treeMotion\"];\nimport { BaseSelect } from 'rc-select';\nimport useId from \"rc-select/es/hooks/useId\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport useCache from \"./hooks/useCache\";\nimport useCheckedKeys from \"./hooks/useCheckedKeys\";\nimport useDataEntities from \"./hooks/useDataEntities\";\nimport useFilterTreeData from \"./hooks/useFilterTreeData\";\nimport useRefFunc from \"./hooks/useRefFunc\";\nimport useTreeData from \"./hooks/useTreeData\";\nimport LegacyContext from \"./LegacyContext\";\nimport OptionList from \"./OptionList\";\nimport TreeNode from \"./TreeNode\";\nimport TreeSelectContext from \"./TreeSelectContext\";\nimport { fillAdditionalInfo, fillLegacyProps } from \"./utils/legacyUtil\";\nimport { formatStrategyValues, SHOW_ALL, SHOW_CHILD, SHOW_PARENT } from \"./utils/strategyUtil\";\nimport { fillFieldNames, isNil, toArray } from \"./utils/valueUtil\";\nimport warningProps from \"./utils/warningPropsUtil\";\n\n/** @deprecated This is only used for legacy compatible. Not works on new code. */\n\nfunction isRawValue(value) {\n return !value || _typeof(value) !== 'object';\n}\nvar TreeSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var id = props.id,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tree-select' : _props$prefixCls,\n value = props.value,\n defaultValue = props.defaultValue,\n onChange = props.onChange,\n onSelect = props.onSelect,\n onDeselect = props.onDeselect,\n searchValue = props.searchValue,\n inputValue = props.inputValue,\n onSearch = props.onSearch,\n _props$autoClearSearc = props.autoClearSearchValue,\n autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n filterTreeNode = props.filterTreeNode,\n _props$treeNodeFilter = props.treeNodeFilterProp,\n treeNodeFilterProp = _props$treeNodeFilter === void 0 ? 'value' : _props$treeNodeFilter,\n showCheckedStrategy = props.showCheckedStrategy,\n treeNodeLabelProp = props.treeNodeLabelProp,\n multiple = props.multiple,\n treeCheckable = props.treeCheckable,\n treeCheckStrictly = props.treeCheckStrictly,\n labelInValue = props.labelInValue,\n fieldNames = props.fieldNames,\n treeDataSimpleMode = props.treeDataSimpleMode,\n treeData = props.treeData,\n children = props.children,\n loadData = props.loadData,\n treeLoadedKeys = props.treeLoadedKeys,\n onTreeLoad = props.onTreeLoad,\n treeDefaultExpandAll = props.treeDefaultExpandAll,\n treeExpandedKeys = props.treeExpandedKeys,\n treeDefaultExpandedKeys = props.treeDefaultExpandedKeys,\n onTreeExpand = props.onTreeExpand,\n treeExpandAction = props.treeExpandAction,\n virtual = props.virtual,\n _props$listHeight = props.listHeight,\n listHeight = _props$listHeight === void 0 ? 200 : _props$listHeight,\n _props$listItemHeight = props.listItemHeight,\n listItemHeight = _props$listItemHeight === void 0 ? 20 : _props$listItemHeight,\n onDropdownVisibleChange = props.onDropdownVisibleChange,\n _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n treeLine = props.treeLine,\n treeIcon = props.treeIcon,\n showTreeIcon = props.showTreeIcon,\n switcherIcon = props.switcherIcon,\n treeMotion = props.treeMotion,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedId = useId(id);\n var treeConduction = treeCheckable && !treeCheckStrictly;\n var mergedCheckable = treeCheckable || treeCheckStrictly;\n var mergedLabelInValue = treeCheckStrictly || labelInValue;\n var mergedMultiple = mergedCheckable || multiple;\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n internalValue = _useMergedState2[0],\n setInternalValue = _useMergedState2[1];\n\n // `multiple` && `!treeCheckable` should be show all\n var mergedShowCheckedStrategy = React.useMemo(function () {\n if (!treeCheckable) {\n return SHOW_ALL;\n }\n return showCheckedStrategy || SHOW_CHILD;\n }, [showCheckedStrategy, treeCheckable]);\n\n // ========================== Warning ===========================\n if (process.env.NODE_ENV !== 'production') {\n warningProps(props);\n }\n\n // ========================= FieldNames =========================\n var mergedFieldNames = React.useMemo(function () {\n return fillFieldNames(fieldNames);\n }, /* eslint-disable react-hooks/exhaustive-deps */\n [JSON.stringify(fieldNames)]\n /* eslint-enable react-hooks/exhaustive-deps */);\n\n // =========================== Search ===========================\n var _useMergedState3 = useMergedState('', {\n value: searchValue !== undefined ? searchValue : inputValue,\n postState: function postState(search) {\n return search || '';\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedSearchValue = _useMergedState4[0],\n setSearchValue = _useMergedState4[1];\n var onInternalSearch = function onInternalSearch(searchText) {\n setSearchValue(searchText);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchText);\n };\n\n // ============================ Data ============================\n // `useTreeData` only do convert of `children` or `simpleMode`.\n // Else will return origin `treeData` for perf consideration.\n // Do not do anything to loop the data.\n var mergedTreeData = useTreeData(treeData, children, treeDataSimpleMode);\n var _useDataEntities = useDataEntities(mergedTreeData, mergedFieldNames),\n keyEntities = _useDataEntities.keyEntities,\n valueEntities = _useDataEntities.valueEntities;\n\n /** Get `missingRawValues` which not exist in the tree yet */\n var splitRawValues = React.useCallback(function (newRawValues) {\n var missingRawValues = [];\n var existRawValues = [];\n\n // Keep missing value in the cache\n newRawValues.forEach(function (val) {\n if (valueEntities.has(val)) {\n existRawValues.push(val);\n } else {\n missingRawValues.push(val);\n }\n });\n return {\n missingRawValues: missingRawValues,\n existRawValues: existRawValues\n };\n }, [valueEntities]);\n\n // Filtered Tree\n var filteredTreeData = useFilterTreeData(mergedTreeData, mergedSearchValue, {\n fieldNames: mergedFieldNames,\n treeNodeFilterProp: treeNodeFilterProp,\n filterTreeNode: filterTreeNode\n });\n\n // =========================== Label ============================\n var getLabel = React.useCallback(function (item) {\n if (item) {\n if (treeNodeLabelProp) {\n return item[treeNodeLabelProp];\n }\n\n // Loop from fieldNames\n var titleList = mergedFieldNames._title;\n for (var i = 0; i < titleList.length; i += 1) {\n var title = item[titleList[i]];\n if (title !== undefined) {\n return title;\n }\n }\n }\n }, [mergedFieldNames, treeNodeLabelProp]);\n\n // ========================= Wrap Value =========================\n var toLabeledValues = React.useCallback(function (draftValues) {\n var values = toArray(draftValues);\n return values.map(function (val) {\n if (isRawValue(val)) {\n return {\n value: val\n };\n }\n return val;\n });\n }, []);\n var convert2LabelValues = React.useCallback(function (draftValues) {\n var values = toLabeledValues(draftValues);\n return values.map(function (item) {\n var rawLabel = item.label;\n var rawValue = item.value,\n rawHalfChecked = item.halfChecked;\n var rawDisabled;\n var entity = valueEntities.get(rawValue);\n\n // Fill missing label & status\n if (entity) {\n var _rawLabel;\n rawLabel = (_rawLabel = rawLabel) !== null && _rawLabel !== void 0 ? _rawLabel : getLabel(entity.node);\n rawDisabled = entity.node.disabled;\n } else if (rawLabel === undefined) {\n // We try to find in current `labelInValue` value\n var labelInValueItem = toLabeledValues(internalValue).find(function (labeledItem) {\n return labeledItem.value === rawValue;\n });\n rawLabel = labelInValueItem.label;\n }\n return {\n label: rawLabel,\n value: rawValue,\n halfChecked: rawHalfChecked,\n disabled: rawDisabled\n };\n });\n }, [valueEntities, getLabel, toLabeledValues, internalValue]);\n\n // =========================== Values ===========================\n var rawMixedLabeledValues = React.useMemo(function () {\n return toLabeledValues(internalValue);\n }, [toLabeledValues, internalValue]);\n\n // Split value into full check and half check\n var _React$useMemo = React.useMemo(function () {\n var fullCheckValues = [];\n var halfCheckValues = [];\n rawMixedLabeledValues.forEach(function (item) {\n if (item.halfChecked) {\n halfCheckValues.push(item);\n } else {\n fullCheckValues.push(item);\n }\n });\n return [fullCheckValues, halfCheckValues];\n }, [rawMixedLabeledValues]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n rawLabeledValues = _React$useMemo2[0],\n rawHalfLabeledValues = _React$useMemo2[1];\n\n // const [mergedValues] = useCache(rawLabeledValues);\n var rawValues = React.useMemo(function () {\n return rawLabeledValues.map(function (item) {\n return item.value;\n });\n }, [rawLabeledValues]);\n\n // Convert value to key. Will fill missed keys for conduct check.\n var _useCheckedKeys = useCheckedKeys(rawLabeledValues, rawHalfLabeledValues, treeConduction, keyEntities),\n _useCheckedKeys2 = _slicedToArray(_useCheckedKeys, 2),\n rawCheckedValues = _useCheckedKeys2[0],\n rawHalfCheckedValues = _useCheckedKeys2[1];\n\n // Convert rawCheckedKeys to check strategy related values\n var displayValues = React.useMemo(function () {\n // Collect keys which need to show\n var displayKeys = formatStrategyValues(rawCheckedValues, mergedShowCheckedStrategy, keyEntities, mergedFieldNames);\n\n // Convert to value and filled with label\n var values = displayKeys.map(function (key) {\n var _keyEntities$key$node, _keyEntities$key, _keyEntities$key$node2;\n return (_keyEntities$key$node = (_keyEntities$key = keyEntities[key]) === null || _keyEntities$key === void 0 ? void 0 : (_keyEntities$key$node2 = _keyEntities$key.node) === null || _keyEntities$key$node2 === void 0 ? void 0 : _keyEntities$key$node2[mergedFieldNames.value]) !== null && _keyEntities$key$node !== void 0 ? _keyEntities$key$node : key;\n });\n\n // Back fill with origin label\n var labeledValues = values.map(function (val) {\n var targetItem = rawLabeledValues.find(function (item) {\n return item.value === val;\n });\n return {\n value: val,\n label: targetItem === null || targetItem === void 0 ? void 0 : targetItem.label\n };\n });\n var rawDisplayValues = convert2LabelValues(labeledValues);\n var firstVal = rawDisplayValues[0];\n if (!mergedMultiple && firstVal && isNil(firstVal.value) && isNil(firstVal.label)) {\n return [];\n }\n return rawDisplayValues.map(function (item) {\n var _item$label;\n return _objectSpread(_objectSpread({}, item), {}, {\n label: (_item$label = item.label) !== null && _item$label !== void 0 ? _item$label : item.value\n });\n });\n }, [mergedFieldNames, mergedMultiple, rawCheckedValues, rawLabeledValues, convert2LabelValues, mergedShowCheckedStrategy, keyEntities]);\n var _useCache = useCache(displayValues),\n _useCache2 = _slicedToArray(_useCache, 1),\n cachedDisplayValues = _useCache2[0];\n\n // =========================== Change ===========================\n var triggerChange = useRefFunc(function (newRawValues, extra, source) {\n var labeledValues = convert2LabelValues(newRawValues);\n setInternalValue(labeledValues);\n\n // Clean up if needed\n if (autoClearSearchValue) {\n setSearchValue('');\n }\n\n // Generate rest parameters is costly, so only do it when necessary\n if (onChange) {\n var eventValues = newRawValues;\n if (treeConduction) {\n var formattedKeyList = formatStrategyValues(newRawValues, mergedShowCheckedStrategy, keyEntities, mergedFieldNames);\n eventValues = formattedKeyList.map(function (key) {\n var entity = valueEntities.get(key);\n return entity ? entity.node[mergedFieldNames.value] : key;\n });\n }\n var _ref = extra || {\n triggerValue: undefined,\n selected: undefined\n },\n triggerValue = _ref.triggerValue,\n selected = _ref.selected;\n var returnRawValues = eventValues;\n\n // We need fill half check back\n if (treeCheckStrictly) {\n var halfValues = rawHalfLabeledValues.filter(function (item) {\n return !eventValues.includes(item.value);\n });\n returnRawValues = [].concat(_toConsumableArray(returnRawValues), _toConsumableArray(halfValues));\n }\n var returnLabeledValues = convert2LabelValues(returnRawValues);\n var additionalInfo = {\n // [Legacy] Always return as array contains label & value\n preValue: rawLabeledValues,\n triggerValue: triggerValue\n };\n\n // [Legacy] Fill legacy data if user query.\n // This is expansive that we only fill when user query\n // https://github.com/react-component/tree-select/blob/fe33eb7c27830c9ac70cd1fdb1ebbe7bc679c16a/src/Select.jsx\n var showPosition = true;\n if (treeCheckStrictly || source === 'selection' && !selected) {\n showPosition = false;\n }\n fillAdditionalInfo(additionalInfo, triggerValue, newRawValues, mergedTreeData, showPosition, mergedFieldNames);\n if (mergedCheckable) {\n additionalInfo.checked = selected;\n } else {\n additionalInfo.selected = selected;\n }\n var returnValues = mergedLabelInValue ? returnLabeledValues : returnLabeledValues.map(function (item) {\n return item.value;\n });\n onChange(mergedMultiple ? returnValues : returnValues[0], mergedLabelInValue ? null : returnLabeledValues.map(function (item) {\n return item.label;\n }), additionalInfo);\n }\n });\n\n // ========================== Options ===========================\n /** Trigger by option list */\n var onOptionSelect = React.useCallback(function (selectedKey, _ref2) {\n var _node$mergedFieldName;\n var selected = _ref2.selected,\n source = _ref2.source;\n var entity = keyEntities[selectedKey];\n var node = entity === null || entity === void 0 ? void 0 : entity.node;\n var selectedValue = (_node$mergedFieldName = node === null || node === void 0 ? void 0 : node[mergedFieldNames.value]) !== null && _node$mergedFieldName !== void 0 ? _node$mergedFieldName : selectedKey;\n\n // Never be falsy but keep it safe\n if (!mergedMultiple) {\n // Single mode always set value\n triggerChange([selectedValue], {\n selected: true,\n triggerValue: selectedValue\n }, 'option');\n } else {\n var newRawValues = selected ? [].concat(_toConsumableArray(rawValues), [selectedValue]) : rawCheckedValues.filter(function (v) {\n return v !== selectedValue;\n });\n\n // Add keys if tree conduction\n if (treeConduction) {\n // Should keep missing values\n var _splitRawValues = splitRawValues(newRawValues),\n missingRawValues = _splitRawValues.missingRawValues,\n existRawValues = _splitRawValues.existRawValues;\n var keyList = existRawValues.map(function (val) {\n return valueEntities.get(val).key;\n });\n\n // Conduction by selected or not\n var checkedKeys;\n if (selected) {\n var _conductCheck = conductCheck(keyList, true, keyEntities);\n checkedKeys = _conductCheck.checkedKeys;\n } else {\n var _conductCheck2 = conductCheck(keyList, {\n checked: false,\n halfCheckedKeys: rawHalfCheckedValues\n }, keyEntities);\n checkedKeys = _conductCheck2.checkedKeys;\n }\n\n // Fill back of keys\n newRawValues = [].concat(_toConsumableArray(missingRawValues), _toConsumableArray(checkedKeys.map(function (key) {\n return keyEntities[key].node[mergedFieldNames.value];\n })));\n }\n triggerChange(newRawValues, {\n selected: selected,\n triggerValue: selectedValue\n }, source || 'option');\n }\n\n // Trigger select event\n if (selected || !mergedMultiple) {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedValue, fillLegacyProps(node));\n } else {\n onDeselect === null || onDeselect === void 0 ? void 0 : onDeselect(selectedValue, fillLegacyProps(node));\n }\n }, [splitRawValues, valueEntities, keyEntities, mergedFieldNames, mergedMultiple, rawValues, triggerChange, treeConduction, onSelect, onDeselect, rawCheckedValues, rawHalfCheckedValues]);\n\n // ========================== Dropdown ==========================\n var onInternalDropdownVisibleChange = React.useCallback(function (open) {\n if (onDropdownVisibleChange) {\n var legacyParam = {};\n Object.defineProperty(legacyParam, 'documentClickClose', {\n get: function get() {\n warning(false, 'Second param of `onDropdownVisibleChange` has been removed.');\n return false;\n }\n });\n onDropdownVisibleChange(open, legacyParam);\n }\n }, [onDropdownVisibleChange]);\n\n // ====================== Display Change ========================\n var onDisplayValuesChange = useRefFunc(function (newValues, info) {\n var newRawValues = newValues.map(function (item) {\n return item.value;\n });\n if (info.type === 'clear') {\n triggerChange(newRawValues, {}, 'selection');\n return;\n }\n\n // TreeSelect only have multiple mode which means display change only has remove\n if (info.values.length) {\n onOptionSelect(info.values[0].value, {\n selected: false,\n source: 'selection'\n });\n }\n });\n\n // ========================== Context ===========================\n var treeSelectContext = React.useMemo(function () {\n return {\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n treeData: filteredTreeData,\n fieldNames: mergedFieldNames,\n onSelect: onOptionSelect,\n treeExpandAction: treeExpandAction\n };\n }, [virtual, dropdownMatchSelectWidth, listHeight, listItemHeight, filteredTreeData, mergedFieldNames, onOptionSelect, treeExpandAction]);\n\n // ======================= Legacy Context =======================\n var legacyContext = React.useMemo(function () {\n return {\n checkable: mergedCheckable,\n loadData: loadData,\n treeLoadedKeys: treeLoadedKeys,\n onTreeLoad: onTreeLoad,\n checkedKeys: rawCheckedValues,\n halfCheckedKeys: rawHalfCheckedValues,\n treeDefaultExpandAll: treeDefaultExpandAll,\n treeExpandedKeys: treeExpandedKeys,\n treeDefaultExpandedKeys: treeDefaultExpandedKeys,\n onTreeExpand: onTreeExpand,\n treeIcon: treeIcon,\n treeMotion: treeMotion,\n showTreeIcon: showTreeIcon,\n switcherIcon: switcherIcon,\n treeLine: treeLine,\n treeNodeFilterProp: treeNodeFilterProp,\n keyEntities: keyEntities\n };\n }, [mergedCheckable, loadData, treeLoadedKeys, onTreeLoad, rawCheckedValues, rawHalfCheckedValues, treeDefaultExpandAll, treeExpandedKeys, treeDefaultExpandedKeys, onTreeExpand, treeIcon, treeMotion, showTreeIcon, switcherIcon, treeLine, treeNodeFilterProp, keyEntities]);\n\n // =========================== Render ===========================\n return /*#__PURE__*/React.createElement(TreeSelectContext.Provider, {\n value: treeSelectContext\n }, /*#__PURE__*/React.createElement(LegacyContext.Provider, {\n value: legacyContext\n }, /*#__PURE__*/React.createElement(BaseSelect, _extends({\n ref: ref\n }, restProps, {\n // >>> MISC\n id: mergedId,\n prefixCls: prefixCls,\n mode: mergedMultiple ? 'multiple' : undefined\n // >>> Display Value\n ,\n displayValues: cachedDisplayValues,\n onDisplayValuesChange: onDisplayValuesChange\n // >>> Search\n ,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch\n // >>> Options\n ,\n OptionList: OptionList,\n emptyOptions: !mergedTreeData.length,\n onDropdownVisibleChange: onInternalDropdownVisibleChange,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n }))));\n});\n\n// Assign name for Debug\nif (process.env.NODE_ENV !== 'production') {\n TreeSelect.displayName = 'TreeSelect';\n}\nvar GenericTreeSelect = TreeSelect;\nGenericTreeSelect.TreeNode = TreeNode;\nGenericTreeSelect.SHOW_ALL = SHOW_ALL;\nGenericTreeSelect.SHOW_PARENT = SHOW_PARENT;\nGenericTreeSelect.SHOW_CHILD = SHOW_CHILD;\nexport default GenericTreeSelect;","import TreeSelect from \"./TreeSelect\";\nimport TreeNode from \"./TreeNode\";\nimport { SHOW_ALL, SHOW_CHILD, SHOW_PARENT } from \"./utils/strategyUtil\";\nexport { TreeNode, SHOW_ALL, SHOW_CHILD, SHOW_PARENT };\nexport default TreeSelect;","import { getStyle as getCheckboxStyle } from '../../checkbox/style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { genTreeStyle } from '../../tree/style';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n treePrefixCls,\n colorBgElevated\n } = token;\n const treeCls = `.${treePrefixCls}`;\n return [\n // ======================================================\n // == Dropdown ==\n // ======================================================\n {\n [`${componentCls}-dropdown`]: [{\n padding: `${token.paddingXS}px ${token.paddingXS / 2}px`\n },\n // ====================== Tree ======================\n genTreeStyle(treePrefixCls, mergeToken(token, {\n colorBgContainer: colorBgElevated\n })), {\n [treeCls]: {\n borderRadius: 0,\n [`${treeCls}-list-holder-inner`]: {\n alignItems: 'stretch',\n [`${treeCls}-treenode`]: {\n [`${treeCls}-node-content-wrapper`]: {\n flex: 'auto'\n }\n }\n }\n }\n },\n // ==================== Checkbox ====================\n getCheckboxStyle(`${treePrefixCls}-checkbox`, token),\n // ====================== RTL =======================\n {\n '&-rtl': {\n direction: 'rtl',\n [`${treeCls}-switcher${treeCls}-switcher_close`]: {\n [`${treeCls}-switcher-icon svg`]: {\n transform: 'rotate(90deg)'\n }\n }\n }\n }]\n }];\n};\n// ============================== Export ==============================\nexport default function useTreeSelectStyle(prefixCls, treePrefixCls) {\n return genComponentStyleHook('TreeSelect', token => {\n const treeSelectToken = mergeToken(token, {\n treePrefixCls\n });\n return [genBaseStyle(treeSelectToken)];\n })(prefixCls);\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 RcTreeSelect, { SHOW_ALL, SHOW_CHILD, SHOW_PARENT, TreeNode } from 'rc-tree-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 useSelectStyle from '../select/style';\nimport useBuiltinPlacements from '../select/useBuiltinPlacements';\nimport useShowArrow from '../select/useShowArrow';\nimport getIcons from '../select/utils/iconUtil';\nimport { useCompactItemContext } from '../space/Compact';\nimport SwitcherIconCom from '../tree/utils/iconUtil';\nimport useStyle from './style';\nconst InternalTreeSelect = (_a, ref) => {\n var _b;\n var {\n prefixCls: customizePrefixCls,\n size: customizeSize,\n disabled: customDisabled,\n bordered = true,\n className,\n rootClassName,\n treeCheckable,\n multiple,\n listHeight = 256,\n listItemHeight = 26,\n placement,\n notFoundContent,\n switcherIcon,\n treeLine,\n getPopupContainer,\n popupClassName,\n dropdownClassName,\n treeIcon = false,\n transitionName,\n choiceTransitionName = '',\n status: customStatus,\n treeExpandAction,\n builtinPlacements,\n dropdownMatchSelectWidth,\n popupMatchSelectWidth,\n allowClear\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"size\", \"disabled\", \"bordered\", \"className\", \"rootClassName\", \"treeCheckable\", \"multiple\", \"listHeight\", \"listItemHeight\", \"placement\", \"notFoundContent\", \"switcherIcon\", \"treeLine\", \"getPopupContainer\", \"popupClassName\", \"dropdownClassName\", \"treeIcon\", \"transitionName\", \"choiceTransitionName\", \"status\", \"treeExpandAction\", \"builtinPlacements\", \"dropdownMatchSelectWidth\", \"popupMatchSelectWidth\", \"allowClear\"]);\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n renderEmpty,\n direction,\n virtual,\n popupMatchSelectWidth: contextPopupMatchSelectWidth,\n popupOverflow\n } = React.useContext(ConfigContext);\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(multiple !== false || !treeCheckable, 'TreeSelect', '`multiple` will always be `true` when `treeCheckable` is true') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'TreeSelect', '`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), 'TreeSelect', '`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 const rootPrefixCls = getPrefixCls();\n const prefixCls = getPrefixCls('select', customizePrefixCls);\n const treePrefixCls = getPrefixCls('select-tree', customizePrefixCls);\n const treeSelectPrefixCls = getPrefixCls('tree-select', customizePrefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const [wrapSelectSSR, hashId] = useSelectStyle(prefixCls);\n const [wrapTreeSelectSSR] = useStyle(treeSelectPrefixCls, treePrefixCls);\n const mergedDropdownClassName = classNames(popupClassName || dropdownClassName, `${treeSelectPrefixCls}-dropdown`, {\n [`${treeSelectPrefixCls}-dropdown-rtl`]: direction === 'rtl'\n }, rootClassName, hashId);\n const isMultiple = !!(treeCheckable || multiple);\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 =====================\n const {\n status: contextStatus,\n hasFeedback,\n isFormItemInput,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Icons =====================\n const {\n suffixIcon,\n removeIcon,\n clearIcon\n } = getIcons(Object.assign(Object.assign({}, props), {\n multiple: isMultiple,\n showSuffixIcon,\n hasFeedback,\n feedbackIcon,\n prefixCls,\n componentName: 'TreeSelect'\n }));\n const mergedAllowClear = allowClear === true ? {\n clearIcon\n } : allowClear;\n // ===================== Empty =====================\n let mergedNotFound;\n if (notFoundContent !== undefined) {\n mergedNotFound = notFoundContent;\n } else {\n mergedNotFound = (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Select')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Select\"\n });\n }\n // ==================== Render =====================\n const selectProps = omit(props, ['suffixIcon', 'itemIcon', 'removeIcon', 'clearIcon', 'switcherIcon']);\n // ===================== Placement =====================\n const memoizedPlacement = 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 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(!customizePrefixCls && treeSelectPrefixCls, {\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, className, rootClassName, hashId);\n const renderSwitcherIcon = nodeProps => /*#__PURE__*/React.createElement(SwitcherIconCom, {\n prefixCls: treePrefixCls,\n switcherIcon: switcherIcon,\n treeNodeProps: nodeProps,\n showLine: treeLine\n });\n const returnNode = /*#__PURE__*/React.createElement(RcTreeSelect, Object.assign({\n virtual: virtual,\n disabled: mergedDisabled\n }, selectProps, {\n dropdownMatchSelectWidth: mergedPopupMatchSelectWidth,\n builtinPlacements: mergedBuiltinPlacements,\n ref: ref,\n prefixCls: prefixCls,\n className: mergedClassName,\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n treeCheckable: treeCheckable ? /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-tree-checkbox-inner`\n }) : treeCheckable,\n treeLine: !!treeLine,\n suffixIcon: suffixIcon,\n multiple: isMultiple,\n placement: memoizedPlacement,\n removeIcon: removeIcon,\n allowClear: mergedAllowClear,\n switcherIcon: renderSwitcherIcon,\n showTreeIcon: treeIcon,\n notFoundContent: mergedNotFound,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n treeMotion: null,\n dropdownClassName: mergedDropdownClassName,\n choiceTransitionName: getTransitionName(rootPrefixCls, '', choiceTransitionName),\n transitionName: getTransitionName(rootPrefixCls, 'slide-up', transitionName),\n treeExpandAction: treeExpandAction\n }));\n return wrapSelectSSR(wrapTreeSelectSSR(returnNode));\n};\nconst TreeSelectRef = /*#__PURE__*/React.forwardRef(InternalTreeSelect);\nconst TreeSelect = TreeSelectRef;\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(TreeSelect);\nTreeSelect.TreeNode = TreeNode;\nTreeSelect.SHOW_ALL = SHOW_ALL;\nTreeSelect.SHOW_PARENT = SHOW_PARENT;\nTreeSelect.SHOW_CHILD = SHOW_CHILD;\nTreeSelect._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nif (process.env.NODE_ENV !== 'production') {\n TreeSelect.displayName = 'TreeSelect';\n}\nexport { TreeNode };\nexport default TreeSelect;","// This icon file is generated automatically.\nvar FolderOpenOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z\" } }] }, \"name\": \"folder-open\", \"theme\": \"outlined\" };\nexport default FolderOpenOutlined;\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 FolderOpenOutlinedSvg from \"@ant-design/icons-svg/es/asn/FolderOpenOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FolderOpenOutlined = function FolderOpenOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FolderOpenOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n FolderOpenOutlined.displayName = 'FolderOpenOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(FolderOpenOutlined);","// This icon file is generated automatically.\nvar FolderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z\" } }] }, \"name\": \"folder\", \"theme\": \"outlined\" };\nexport default FolderOutlined;\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 FolderOutlinedSvg from \"@ant-design/icons-svg/es/asn/FolderOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FolderOutlined = function FolderOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FolderOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n FolderOutlined.displayName = 'FolderOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(FolderOutlined);","// This icon file is generated automatically.\nvar HolderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z\" } }] }, \"name\": \"holder\", \"theme\": \"outlined\" };\nexport default HolderOutlined;\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 HolderOutlinedSvg from \"@ant-design/icons-svg/es/asn/HolderOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar HolderOutlined = function HolderOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: HolderOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n HolderOutlined.displayName = 'HolderOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(HolderOutlined);","import React from 'react';\nexport const offset = 4;\nexport default function dropIndicatorRender(props) {\n const {\n dropPosition,\n dropLevelOffset,\n prefixCls,\n indent,\n direction = 'ltr'\n } = props;\n const startPosition = direction === 'ltr' ? 'left' : 'right';\n const endPosition = direction === 'ltr' ? 'right' : 'left';\n const style = {\n [startPosition]: -dropLevelOffset * indent + offset,\n [endPosition]: 0\n };\n switch (dropPosition) {\n case -1:\n style.top = -3;\n break;\n case 1:\n style.bottom = -3;\n break;\n default:\n // dropPosition === 0\n style.bottom = -3;\n style[startPosition] = indent + offset;\n break;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style,\n className: `${prefixCls}-drop-indicator`\n });\n}","import HolderOutlined from \"@ant-design/icons/es/icons/HolderOutlined\";\nimport classNames from 'classnames';\nimport RcTree from 'rc-tree';\nimport React from 'react';\nimport initCollapseMotion from '../_util/motion';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport dropIndicatorRender from './utils/dropIndicator';\nimport SwitcherIconCom from './utils/iconUtil';\nconst Tree = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction,\n virtual,\n tree\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n showIcon = false,\n showLine,\n switcherIcon,\n blockNode = false,\n children,\n checkable = false,\n selectable = true,\n draggable,\n motion: customMotion,\n style\n } = props;\n const prefixCls = getPrefixCls('tree', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const motion = customMotion !== null && customMotion !== void 0 ? customMotion : Object.assign(Object.assign({}, initCollapseMotion(rootPrefixCls)), {\n motionAppear: false\n });\n const newProps = Object.assign(Object.assign({}, props), {\n checkable,\n selectable,\n showIcon,\n motion,\n blockNode,\n showLine: Boolean(showLine),\n dropIndicatorRender\n });\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const draggableConfig = React.useMemo(() => {\n if (!draggable) {\n return false;\n }\n let mergedDraggable = {};\n switch (typeof draggable) {\n case 'function':\n mergedDraggable.nodeDraggable = draggable;\n break;\n case 'object':\n mergedDraggable = Object.assign({}, draggable);\n break;\n default:\n break;\n // Do nothing\n }\n\n if (mergedDraggable.icon !== false) {\n mergedDraggable.icon = mergedDraggable.icon || /*#__PURE__*/React.createElement(HolderOutlined, null);\n }\n return mergedDraggable;\n }, [draggable]);\n const renderSwitcherIcon = nodeProps => /*#__PURE__*/React.createElement(SwitcherIconCom, {\n prefixCls: prefixCls,\n switcherIcon: switcherIcon,\n treeNodeProps: nodeProps,\n showLine: showLine\n });\n return wrapSSR( /*#__PURE__*/React.createElement(RcTree, Object.assign({\n itemHeight: 20,\n ref: ref,\n virtual: virtual\n }, newProps, {\n // newProps may contain style so declare style below it\n style: Object.assign(Object.assign({}, tree === null || tree === void 0 ? void 0 : tree.style), style),\n prefixCls: prefixCls,\n className: classNames({\n [`${prefixCls}-icon-hide`]: !showIcon,\n [`${prefixCls}-block-node`]: blockNode,\n [`${prefixCls}-unselectable`]: !selectable,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, tree === null || tree === void 0 ? void 0 : tree.className, className, hashId),\n direction: direction,\n checkable: checkable ? /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-checkbox-inner`\n }) : checkable,\n selectable: selectable,\n switcherIcon: renderSwitcherIcon,\n draggable: draggableConfig\n }), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Tree.displayName = 'Tree';\n}\nexport default Tree;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar Record;\n(function (Record) {\n Record[Record[\"None\"] = 0] = \"None\";\n Record[Record[\"Start\"] = 1] = \"Start\";\n Record[Record[\"End\"] = 2] = \"End\";\n})(Record || (Record = {}));\nfunction traverseNodesKey(treeData, callback) {\n function processNode(dataNode) {\n const {\n key,\n children\n } = dataNode;\n if (callback(key, dataNode) !== false) {\n traverseNodesKey(children || [], callback);\n }\n }\n treeData.forEach(processNode);\n}\n/** 计算选中范围,只考虑expanded情况以优化性能 */\nexport function calcRangeKeys(_ref) {\n let {\n treeData,\n expandedKeys,\n startKey,\n endKey\n } = _ref;\n const keys = [];\n let record = Record.None;\n if (startKey && startKey === endKey) {\n return [startKey];\n }\n if (!startKey || !endKey) {\n return [];\n }\n function matchKey(key) {\n return key === startKey || key === endKey;\n }\n traverseNodesKey(treeData, key => {\n if (record === Record.End) {\n return false;\n }\n if (matchKey(key)) {\n // Match test\n keys.push(key);\n if (record === Record.None) {\n record = Record.Start;\n } else if (record === Record.Start) {\n record = Record.End;\n return false;\n }\n } else if (record === Record.Start) {\n // Append selection\n keys.push(key);\n }\n return expandedKeys.includes(key);\n });\n return keys;\n}\nexport function convertDirectoryKeysToNodes(treeData, keys) {\n const restKeys = _toConsumableArray(keys);\n const nodes = [];\n traverseNodesKey(treeData, (key, node) => {\n const index = restKeys.indexOf(key);\n if (index !== -1) {\n nodes.push(node);\n restKeys.splice(index, 1);\n }\n return !!restKeys.length;\n });\n return nodes;\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 FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport FolderOpenOutlined from \"@ant-design/icons/es/icons/FolderOpenOutlined\";\nimport FolderOutlined from \"@ant-design/icons/es/icons/FolderOutlined\";\nimport classNames from 'classnames';\nimport { conductExpandParent } from \"rc-tree/es/util\";\nimport { convertDataToEntities, convertTreeToData } from \"rc-tree/es/utils/treeUtil\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Tree from './Tree';\nimport { calcRangeKeys, convertDirectoryKeysToNodes } from './utils/dictUtil';\nfunction getIcon(props) {\n const {\n isLeaf,\n expanded\n } = props;\n if (isLeaf) {\n return /*#__PURE__*/React.createElement(FileOutlined, null);\n }\n return expanded ? /*#__PURE__*/React.createElement(FolderOpenOutlined, null) : /*#__PURE__*/React.createElement(FolderOutlined, null);\n}\nfunction getTreeData(_ref) {\n let {\n treeData,\n children\n } = _ref;\n return treeData || convertTreeToData(children);\n}\nconst DirectoryTree = (_a, ref) => {\n var {\n defaultExpandAll,\n defaultExpandParent,\n defaultExpandedKeys\n } = _a,\n props = __rest(_a, [\"defaultExpandAll\", \"defaultExpandParent\", \"defaultExpandedKeys\"]);\n // Shift click usage\n const lastSelectedKey = React.useRef();\n const cachedSelectedKeys = React.useRef();\n const getInitExpandedKeys = () => {\n const {\n keyEntities\n } = convertDataToEntities(getTreeData(props));\n let initExpandedKeys;\n // Expanded keys\n if (defaultExpandAll) {\n initExpandedKeys = Object.keys(keyEntities);\n } else if (defaultExpandParent) {\n initExpandedKeys = conductExpandParent(props.expandedKeys || defaultExpandedKeys || [], keyEntities);\n } else {\n initExpandedKeys = props.expandedKeys || defaultExpandedKeys;\n }\n return initExpandedKeys;\n };\n const [selectedKeys, setSelectedKeys] = React.useState(props.selectedKeys || props.defaultSelectedKeys || []);\n const [expandedKeys, setExpandedKeys] = React.useState(() => getInitExpandedKeys());\n React.useEffect(() => {\n if ('selectedKeys' in props) {\n setSelectedKeys(props.selectedKeys);\n }\n }, [props.selectedKeys]);\n React.useEffect(() => {\n if ('expandedKeys' in props) {\n setExpandedKeys(props.expandedKeys);\n }\n }, [props.expandedKeys]);\n const onExpand = (keys, info) => {\n var _a;\n if (!('expandedKeys' in props)) {\n setExpandedKeys(keys);\n }\n // Call origin function\n return (_a = props.onExpand) === null || _a === void 0 ? void 0 : _a.call(props, keys, info);\n };\n const onSelect = (keys, event) => {\n var _a;\n const {\n multiple\n } = props;\n const {\n node,\n nativeEvent\n } = event;\n const {\n key = ''\n } = node;\n const treeData = getTreeData(props);\n // const newState: DirectoryTreeState = {};\n // We need wrap this event since some value is not same\n const newEvent = Object.assign(Object.assign({}, event), {\n selected: true\n });\n // Windows / Mac single pick\n const ctrlPick = (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.ctrlKey) || (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.metaKey);\n const shiftPick = nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.shiftKey;\n // Generate new selected keys\n let newSelectedKeys;\n if (multiple && ctrlPick) {\n // Control click\n newSelectedKeys = keys;\n lastSelectedKey.current = key;\n cachedSelectedKeys.current = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n } else if (multiple && shiftPick) {\n // Shift click\n newSelectedKeys = Array.from(new Set([].concat(_toConsumableArray(cachedSelectedKeys.current || []), _toConsumableArray(calcRangeKeys({\n treeData,\n expandedKeys,\n startKey: key,\n endKey: lastSelectedKey.current\n })))));\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n } else {\n // Single click\n newSelectedKeys = [key];\n lastSelectedKey.current = key;\n cachedSelectedKeys.current = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n }\n (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, newSelectedKeys, newEvent);\n if (!('selectedKeys' in props)) {\n setSelectedKeys(newSelectedKeys);\n }\n };\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n showIcon = true,\n expandAction = 'click'\n } = props,\n otherProps = __rest(props, [\"prefixCls\", \"className\", \"showIcon\", \"expandAction\"]);\n const prefixCls = getPrefixCls('tree', customizePrefixCls);\n const connectClassName = classNames(`${prefixCls}-directory`, {\n [`${prefixCls}-directory-rtl`]: direction === 'rtl'\n }, className);\n return /*#__PURE__*/React.createElement(Tree, Object.assign({\n icon: getIcon,\n ref: ref,\n blockNode: true\n }, otherProps, {\n showIcon: showIcon,\n expandAction: expandAction,\n prefixCls: prefixCls,\n className: connectClassName,\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n onSelect: onSelect,\n onExpand: onExpand\n }));\n};\nconst ForwardDirectoryTree = /*#__PURE__*/React.forwardRef(DirectoryTree);\nif (process.env.NODE_ENV !== 'production') {\n ForwardDirectoryTree.displayName = 'DirectoryTree';\n}\nexport default ForwardDirectoryTree;","'use client';\n\nimport { TreeNode } from 'rc-tree';\nimport DirectoryTree from './DirectoryTree';\nimport TreePure from './Tree';\nconst Tree = TreePure;\nTree.DirectoryTree = DirectoryTree;\nTree.TreeNode = TreeNode;\nexport default Tree;","import { Keyframes } from '@ant-design/cssinjs';\nimport { getStyle as getCheckboxStyle } from '../../checkbox/style';\nimport { genFocusOutline, resetComponent } from '../../style';\nimport { genCollapseMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================ Keyframes =============================\nconst treeNodeFX = new Keyframes('ant-tree-node-fx-do-not-use', {\n '0%': {\n opacity: 0\n },\n '100%': {\n opacity: 1\n }\n});\n// ============================== Switch ==============================\nconst getSwitchStyle = (prefixCls, token) => ({\n [`.${prefixCls}-switcher-icon`]: {\n display: 'inline-block',\n fontSize: 10,\n verticalAlign: 'baseline',\n svg: {\n transition: `transform ${token.motionDurationSlow}`\n }\n }\n});\n// =============================== Drop ===============================\nconst getDropIndicatorStyle = (prefixCls, token) => ({\n [`.${prefixCls}-drop-indicator`]: {\n position: 'absolute',\n // it should displayed over the following node\n zIndex: 1,\n height: 2,\n backgroundColor: token.colorPrimary,\n borderRadius: 1,\n pointerEvents: 'none',\n '&:after': {\n position: 'absolute',\n top: -3,\n insetInlineStart: -6,\n width: 8,\n height: 8,\n backgroundColor: 'transparent',\n border: `${token.lineWidthBold}px solid ${token.colorPrimary}`,\n borderRadius: '50%',\n content: '\"\"'\n }\n }\n});\nexport const genBaseStyle = (prefixCls, token) => {\n const {\n treeCls,\n treeNodeCls,\n treeNodePadding,\n treeTitleHeight\n } = token;\n const treeCheckBoxMarginHorizontal = token.paddingXS;\n return {\n [treeCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n background: token.colorBgContainer,\n borderRadius: token.borderRadius,\n transition: `background-color ${token.motionDurationSlow}`,\n [`&${treeCls}-rtl`]: {\n // >>> Switcher\n [`${treeCls}-switcher`]: {\n '&_close': {\n [`${treeCls}-switcher-icon`]: {\n svg: {\n transform: 'rotate(90deg)'\n }\n }\n }\n }\n },\n [`&-focused:not(:hover):not(${treeCls}-active-focused)`]: Object.assign({}, genFocusOutline(token)),\n // =================== Virtual List ===================\n [`${treeCls}-list-holder-inner`]: {\n alignItems: 'flex-start'\n },\n [`&${treeCls}-block-node`]: {\n [`${treeCls}-list-holder-inner`]: {\n alignItems: 'stretch',\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n flex: 'auto'\n },\n // >>> Drag\n [`${treeNodeCls}.dragging`]: {\n position: 'relative',\n '&:after': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: treeNodePadding,\n insetInlineStart: 0,\n border: `1px solid ${token.colorPrimary}`,\n opacity: 0,\n animationName: treeNodeFX,\n animationDuration: token.motionDurationSlow,\n animationPlayState: 'running',\n animationFillMode: 'forwards',\n content: '\"\"',\n pointerEvents: 'none'\n }\n }\n }\n },\n // ===================== TreeNode =====================\n [`${treeNodeCls}`]: {\n display: 'flex',\n alignItems: 'flex-start',\n padding: `0 0 ${treeNodePadding}px 0`,\n outline: 'none',\n '&-rtl': {\n direction: 'rtl'\n },\n // Disabled\n '&-disabled': {\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n '&:hover': {\n background: 'transparent'\n }\n }\n },\n [`&-active ${treeCls}-node-content-wrapper`]: Object.assign({}, genFocusOutline(token)),\n [`&:not(${treeNodeCls}-disabled).filter-node ${treeCls}-title`]: {\n color: 'inherit',\n fontWeight: 500\n },\n '&-draggable': {\n [`${treeCls}-draggable-icon`]: {\n // https://github.com/ant-design/ant-design/issues/41915\n flexShrink: 0,\n width: treeTitleHeight,\n lineHeight: `${treeTitleHeight}px`,\n textAlign: 'center',\n visibility: 'visible',\n opacity: 0.2,\n transition: `opacity ${token.motionDurationSlow}`,\n [`${treeNodeCls}:hover &`]: {\n opacity: 0.45\n }\n },\n [`&${treeNodeCls}-disabled`]: {\n [`${treeCls}-draggable-icon`]: {\n visibility: 'hidden'\n }\n }\n }\n },\n // >>> Indent\n [`${treeCls}-indent`]: {\n alignSelf: 'stretch',\n whiteSpace: 'nowrap',\n userSelect: 'none',\n '&-unit': {\n display: 'inline-block',\n width: treeTitleHeight\n }\n },\n // >>> Drag Handler\n [`${treeCls}-draggable-icon`]: {\n visibility: 'hidden'\n },\n // >>> Switcher\n [`${treeCls}-switcher`]: Object.assign(Object.assign({}, getSwitchStyle(prefixCls, token)), {\n position: 'relative',\n flex: 'none',\n alignSelf: 'stretch',\n width: treeTitleHeight,\n margin: 0,\n lineHeight: `${treeTitleHeight}px`,\n textAlign: 'center',\n cursor: 'pointer',\n userSelect: 'none',\n '&-noop': {\n cursor: 'default'\n },\n '&_close': {\n [`${treeCls}-switcher-icon`]: {\n svg: {\n transform: 'rotate(-90deg)'\n }\n }\n },\n '&-loading-icon': {\n color: token.colorPrimary\n },\n '&-leaf-line': {\n position: 'relative',\n zIndex: 1,\n display: 'inline-block',\n width: '100%',\n height: '100%',\n // https://github.com/ant-design/ant-design/issues/31884\n '&:before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: treeTitleHeight / 2,\n bottom: -treeNodePadding,\n marginInlineStart: -1,\n borderInlineEnd: `1px solid ${token.colorBorder}`,\n content: '\"\"'\n },\n '&:after': {\n position: 'absolute',\n width: treeTitleHeight / 2 * 0.8,\n height: treeTitleHeight / 2,\n borderBottom: `1px solid ${token.colorBorder}`,\n content: '\"\"'\n }\n }\n }),\n // >>> Checkbox\n [`${treeCls}-checkbox`]: {\n top: 'initial',\n marginInlineEnd: treeCheckBoxMarginHorizontal\n },\n // >>> Title\n // add `${treeCls}-checkbox + span` to cover checkbox `${checkboxCls} + span`\n [`${treeCls}-node-content-wrapper, ${treeCls}-checkbox + span`]: {\n position: 'relative',\n zIndex: 'auto',\n minHeight: treeTitleHeight,\n margin: 0,\n padding: `0 ${token.paddingXS / 2}px`,\n color: 'inherit',\n lineHeight: `${treeTitleHeight}px`,\n background: 'transparent',\n borderRadius: token.borderRadius,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}, border 0s, line-height 0s, box-shadow 0s`,\n '&:hover': {\n backgroundColor: token.controlItemBgHover\n },\n [`&${treeCls}-node-selected`]: {\n backgroundColor: token.controlItemBgActive\n },\n // Icon\n [`${treeCls}-iconEle`]: {\n display: 'inline-block',\n width: treeTitleHeight,\n height: treeTitleHeight,\n lineHeight: `${treeTitleHeight}px`,\n textAlign: 'center',\n verticalAlign: 'top',\n '&:empty': {\n display: 'none'\n }\n }\n },\n // https://github.com/ant-design/ant-design/issues/28217\n [`${treeCls}-unselectable ${treeCls}-node-content-wrapper:hover`]: {\n backgroundColor: 'transparent'\n },\n // ==================== Draggable =====================\n [`${treeCls}-node-content-wrapper`]: Object.assign({\n lineHeight: `${treeTitleHeight}px`,\n userSelect: 'none'\n }, getDropIndicatorStyle(prefixCls, token)),\n [`${treeNodeCls}.drop-container`]: {\n '> [draggable]': {\n boxShadow: `0 0 0 2px ${token.colorPrimary}`\n }\n },\n // ==================== Show Line =====================\n '&-show-line': {\n // ================ Indent lines ================\n [`${treeCls}-indent`]: {\n '&-unit': {\n position: 'relative',\n height: '100%',\n '&:before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: treeTitleHeight / 2,\n bottom: -treeNodePadding,\n borderInlineEnd: `1px solid ${token.colorBorder}`,\n content: '\"\"'\n },\n '&-end': {\n '&:before': {\n display: 'none'\n }\n }\n }\n },\n // ============== Cover Background ==============\n [`${treeCls}-switcher`]: {\n background: 'transparent',\n '&-line-icon': {\n // https://github.com/ant-design/ant-design/issues/32813\n verticalAlign: '-0.15em'\n }\n }\n },\n [`${treeNodeCls}-leaf-last`]: {\n [`${treeCls}-switcher`]: {\n '&-leaf-line': {\n '&:before': {\n top: 'auto !important',\n bottom: 'auto !important',\n height: `${treeTitleHeight / 2}px !important`\n }\n }\n }\n }\n })\n };\n};\n// ============================ Directory =============================\nexport const genDirectoryStyle = token => {\n const {\n treeCls,\n treeNodeCls,\n treeNodePadding\n } = token;\n return {\n [`${treeCls}${treeCls}-directory`]: {\n // ================== TreeNode ==================\n [treeNodeCls]: {\n position: 'relative',\n // Hover color\n '&:before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: treeNodePadding,\n insetInlineStart: 0,\n transition: `background-color ${token.motionDurationMid}`,\n content: '\"\"',\n pointerEvents: 'none'\n },\n '&:hover': {\n '&:before': {\n background: token.controlItemBgHover\n }\n },\n // Elements\n '> *': {\n zIndex: 1\n },\n // >>> Switcher\n [`${treeCls}-switcher`]: {\n transition: `color ${token.motionDurationMid}`\n },\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n borderRadius: 0,\n userSelect: 'none',\n '&:hover': {\n background: 'transparent'\n },\n [`&${treeCls}-node-selected`]: {\n color: token.colorTextLightSolid,\n background: 'transparent'\n }\n },\n // ============= Selected =============\n '&-selected': {\n [`\n &:hover::before,\n &::before\n `]: {\n background: token.colorPrimary\n },\n // >>> Switcher\n [`${treeCls}-switcher`]: {\n color: token.colorTextLightSolid\n },\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n color: token.colorTextLightSolid,\n background: 'transparent'\n }\n }\n }\n }\n };\n};\n// ============================== Merged ==============================\nexport const genTreeStyle = (prefixCls, token) => {\n const treeCls = `.${prefixCls}`;\n const treeNodeCls = `${treeCls}-treenode`;\n const treeNodePadding = token.paddingXS / 2;\n const treeTitleHeight = token.controlHeightSM;\n const treeToken = mergeToken(token, {\n treeCls,\n treeNodeCls,\n treeNodePadding,\n treeTitleHeight\n });\n return [\n // Basic\n genBaseStyle(prefixCls, treeToken),\n // Directory\n genDirectoryStyle(treeToken)];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Tree', (token, _ref) => {\n let {\n prefixCls\n } = _ref;\n return [{\n [token.componentCls]: getCheckboxStyle(`${prefixCls}-checkbox`, token)\n }, genTreeStyle(prefixCls, token), genCollapseMotion(token)];\n});","// This icon file is generated automatically.\nvar CaretDownFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\" } }] }, \"name\": \"caret-down\", \"theme\": \"filled\" };\nexport default CaretDownFilled;\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 CaretDownFilledSvg from \"@ant-design/icons-svg/es/asn/CaretDownFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CaretDownFilled = function CaretDownFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CaretDownFilledSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CaretDownFilled.displayName = 'CaretDownFilled';\n}\nexport default /*#__PURE__*/React.forwardRef(CaretDownFilled);","// This icon file is generated automatically.\nvar MinusSquareOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"minus-square\", \"theme\": \"outlined\" };\nexport default MinusSquareOutlined;\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 MinusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/MinusSquareOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar MinusSquareOutlined = function MinusSquareOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: MinusSquareOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n MinusSquareOutlined.displayName = 'MinusSquareOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(MinusSquareOutlined);","// This icon file is generated automatically.\nvar PlusSquareOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"plus-square\", \"theme\": \"outlined\" };\nexport default PlusSquareOutlined;\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 PlusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusSquareOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PlusSquareOutlined = function PlusSquareOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: PlusSquareOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n PlusSquareOutlined.displayName = 'PlusSquareOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(PlusSquareOutlined);","import CaretDownFilled from \"@ant-design/icons/es/icons/CaretDownFilled\";\nimport FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport MinusSquareOutlined from \"@ant-design/icons/es/icons/MinusSquareOutlined\";\nimport PlusSquareOutlined from \"@ant-design/icons/es/icons/PlusSquareOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from '../../_util/reactNode';\nconst SwitcherIconCom = props => {\n const {\n prefixCls,\n switcherIcon,\n treeNodeProps,\n showLine\n } = props;\n const {\n isLeaf,\n expanded,\n loading\n } = treeNodeProps;\n if (loading) {\n return /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: `${prefixCls}-switcher-loading-icon`\n });\n }\n let showLeafIcon;\n if (showLine && typeof showLine === 'object') {\n showLeafIcon = showLine.showLeafIcon;\n }\n if (isLeaf) {\n if (!showLine) {\n return null;\n }\n if (typeof showLeafIcon !== 'boolean' && !!showLeafIcon) {\n const leafIcon = typeof showLeafIcon === 'function' ? showLeafIcon(treeNodeProps) : showLeafIcon;\n const leafCls = `${prefixCls}-switcher-line-custom-icon`;\n if (isValidElement(leafIcon)) {\n return cloneElement(leafIcon, {\n className: classNames(leafIcon.props.className || '', leafCls)\n });\n }\n return leafIcon;\n }\n return showLeafIcon ? /*#__PURE__*/React.createElement(FileOutlined, {\n className: `${prefixCls}-switcher-line-icon`\n }) : /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-switcher-leaf-line`\n });\n }\n const switcherCls = `${prefixCls}-switcher-icon`;\n const switcher = typeof switcherIcon === 'function' ? switcherIcon(treeNodeProps) : switcherIcon;\n if (isValidElement(switcher)) {\n return cloneElement(switcher, {\n className: classNames(switcher.props.className || '', switcherCls)\n });\n }\n if (switcher !== undefined) {\n return switcher;\n }\n if (showLine) {\n return expanded ? /*#__PURE__*/React.createElement(MinusSquareOutlined, {\n className: `${prefixCls}-switcher-line-icon`\n }) : /*#__PURE__*/React.createElement(PlusSquareOutlined, {\n className: `${prefixCls}-switcher-line-icon`\n });\n }\n return /*#__PURE__*/React.createElement(CaretDownFilled, {\n className: switcherCls\n });\n};\nexport default SwitcherIconCom;","// This icon file is generated automatically.\nvar EditOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z\" } }] }, \"name\": \"edit\", \"theme\": \"outlined\" };\nexport default EditOutlined;\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 EditOutlinedSvg from \"@ant-design/icons-svg/es/asn/EditOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EditOutlined = function EditOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EditOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n EditOutlined.displayName = 'EditOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(EditOutlined);","// This icon file is generated automatically.\nvar EnterOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"enter\", \"theme\": \"outlined\" };\nexport default EnterOutlined;\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 EnterOutlinedSvg from \"@ant-design/icons-svg/es/asn/EnterOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EnterOutlined = function EnterOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EnterOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n EnterOutlined.displayName = 'EnterOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(EnterOutlined);","/*\n.typography-title(@fontSize; @fontWeight; @lineHeight; @headingColor; @headingMarginBottom;) {\n margin-bottom: @headingMarginBottom;\n color: @headingColor;\n font-weight: @fontWeight;\n fontSize: @fontSize;\n line-height: @lineHeight;\n}\n*/\nimport { gold } from '@ant-design/colors';\nimport { initInputToken } from '../../input/style';\nimport { operationUnit } from '../../style';\n// eslint-disable-next-line import/prefer-default-export\nconst getTitleStyle = (fontSize, lineHeight, color, token) => {\n const {\n titleMarginBottom,\n fontWeightStrong\n } = token;\n return {\n marginBottom: titleMarginBottom,\n color,\n fontWeight: fontWeightStrong,\n fontSize,\n lineHeight\n };\n};\n// eslint-disable-next-line import/prefer-default-export\nexport const getTitleStyles = token => {\n const headings = [1, 2, 3, 4, 5];\n const styles = {};\n headings.forEach(headingLevel => {\n styles[`\n h${headingLevel}&,\n div&-h${headingLevel},\n div&-h${headingLevel} > textarea,\n h${headingLevel}\n `] = getTitleStyle(token[`fontSizeHeading${headingLevel}`], token[`lineHeightHeading${headingLevel}`], token.colorTextHeading, token);\n });\n return styles;\n};\nexport const getLinkStyles = token => {\n const {\n componentCls\n } = token;\n return {\n 'a&, a': Object.assign(Object.assign({}, operationUnit(token)), {\n textDecoration: token.linkDecoration,\n '&:active, &:hover': {\n textDecoration: token.linkHoverDecoration\n },\n [`&[disabled], &${componentCls}-disabled`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n '&:active, &:hover': {\n color: token.colorTextDisabled\n },\n '&:active': {\n pointerEvents: 'none'\n }\n }\n })\n };\n};\nexport const getResetStyles = token => ({\n code: {\n margin: '0 0.2em',\n paddingInline: '0.4em',\n paddingBlock: '0.2em 0.1em',\n fontSize: '85%',\n fontFamily: token.fontFamilyCode,\n background: 'rgba(150, 150, 150, 0.1)',\n border: '1px solid rgba(100, 100, 100, 0.2)',\n borderRadius: 3\n },\n kbd: {\n margin: '0 0.2em',\n paddingInline: '0.4em',\n paddingBlock: '0.15em 0.1em',\n fontSize: '90%',\n fontFamily: token.fontFamilyCode,\n background: 'rgba(150, 150, 150, 0.06)',\n border: '1px solid rgba(100, 100, 100, 0.2)',\n borderBottomWidth: 2,\n borderRadius: 3\n },\n mark: {\n padding: 0,\n // FIXME hardcode in v4\n backgroundColor: gold[2]\n },\n 'u, ins': {\n textDecoration: 'underline',\n textDecorationSkipInk: 'auto'\n },\n 's, del': {\n textDecoration: 'line-through'\n },\n strong: {\n fontWeight: 600\n },\n // list\n 'ul, ol': {\n marginInline: 0,\n marginBlock: '0 1em',\n padding: 0,\n li: {\n marginInline: '20px 0',\n marginBlock: 0,\n paddingInline: '4px 0',\n paddingBlock: 0\n }\n },\n ul: {\n listStyleType: 'circle',\n ul: {\n listStyleType: 'disc'\n }\n },\n ol: {\n listStyleType: 'decimal'\n },\n // pre & block\n 'pre, blockquote': {\n margin: '1em 0'\n },\n pre: {\n padding: '0.4em 0.6em',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n background: 'rgba(150, 150, 150, 0.1)',\n border: '1px solid rgba(100, 100, 100, 0.2)',\n borderRadius: 3,\n fontFamily: token.fontFamilyCode,\n // Compatible for marked\n code: {\n display: 'inline',\n margin: 0,\n padding: 0,\n fontSize: 'inherit',\n fontFamily: 'inherit',\n background: 'transparent',\n border: 0\n }\n },\n blockquote: {\n paddingInline: '0.6em 0',\n paddingBlock: 0,\n borderInlineStart: '4px solid rgba(100, 100, 100, 0.2)',\n opacity: 0.85\n }\n});\nexport const getEditableStyles = token => {\n const {\n componentCls\n } = token;\n const inputToken = initInputToken(token);\n const inputShift = inputToken.inputPaddingVertical + 1;\n return {\n '&-edit-content': {\n position: 'relative',\n 'div&': {\n insetInlineStart: -token.paddingSM,\n marginTop: -inputShift,\n marginBottom: `calc(1em - ${inputShift}px)`\n },\n [`${componentCls}-edit-content-confirm`]: {\n position: 'absolute',\n insetInlineEnd: token.marginXS + 2,\n insetBlockEnd: token.marginXS,\n color: token.colorTextDescription,\n // default style\n fontWeight: 'normal',\n fontSize: token.fontSize,\n fontStyle: 'normal',\n pointerEvents: 'none'\n },\n textarea: {\n margin: '0!important',\n // Fix Editable Textarea flash in Firefox\n MozTransition: 'none',\n height: '1em'\n }\n }\n };\n};\nexport const getCopyableStyles = token => ({\n '&-copy-success': {\n [`\n &,\n &:hover,\n &:focus`]: {\n color: token.colorSuccess\n }\n }\n});\nexport const getEllipsisStyles = () => ({\n [`\n a&-ellipsis,\n span&-ellipsis\n `]: {\n display: 'inline-block',\n maxWidth: '100%'\n },\n '&-single-line': {\n whiteSpace: 'nowrap'\n },\n '&-ellipsis-single-line': {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n // https://blog.csdn.net/iefreer/article/details/50421025\n 'a&, span&': {\n verticalAlign: 'bottom'\n }\n },\n '&-ellipsis-multiple-line': {\n display: '-webkit-box',\n overflow: 'hidden',\n WebkitLineClamp: 3,\n WebkitBoxOrient: 'vertical'\n }\n});","import { operationUnit } from '../../style';\nimport { genComponentStyleHook } from '../../theme/internal';\nimport { getCopyableStyles, getEditableStyles, getEllipsisStyles, getLinkStyles, getResetStyles, getTitleStyles } from './mixins';\nconst genTypographyStyle = token => {\n const {\n componentCls,\n titleMarginTop\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n color: token.colorText,\n wordBreak: 'break-word',\n lineHeight: token.lineHeight,\n [`&${componentCls}-secondary`]: {\n color: token.colorTextDescription\n },\n [`&${componentCls}-success`]: {\n color: token.colorSuccess\n },\n [`&${componentCls}-warning`]: {\n color: token.colorWarning\n },\n [`&${componentCls}-danger`]: {\n color: token.colorError,\n 'a&:active, a&:focus': {\n color: token.colorErrorActive\n },\n 'a&:hover': {\n color: token.colorErrorHover\n }\n },\n [`&${componentCls}-disabled`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n userSelect: 'none'\n },\n [`\n div&,\n p\n `]: {\n marginBottom: '1em'\n }\n }, getTitleStyles(token)), {\n [`\n & + h1${componentCls},\n & + h2${componentCls},\n & + h3${componentCls},\n & + h4${componentCls},\n & + h5${componentCls}\n `]: {\n marginTop: titleMarginTop\n },\n [`\n div,\n ul,\n li,\n p,\n h1,\n h2,\n h3,\n h4,\n h5`]: {\n [`\n + h1,\n + h2,\n + h3,\n + h4,\n + h5\n `]: {\n marginTop: titleMarginTop\n }\n }\n }), getResetStyles(token)), getLinkStyles(token)), {\n // Operation\n [`\n ${componentCls}-expand,\n ${componentCls}-edit,\n ${componentCls}-copy\n `]: Object.assign(Object.assign({}, operationUnit(token)), {\n marginInlineStart: token.marginXXS\n })\n }), getEditableStyles(token)), getCopyableStyles(token)), getEllipsisStyles()), {\n '&-rtl': {\n direction: 'rtl'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Typography', token => [genTypographyStyle(token)], () => ({\n titleMarginTop: '1.2em',\n titleMarginBottom: '0.5em'\n}));","import EnterOutlined from \"@ant-design/icons/es/icons/EnterOutlined\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { cloneElement } from '../_util/reactNode';\nimport TextArea from '../input/TextArea';\nimport useStyle from './style';\nconst Editable = props => {\n const {\n prefixCls,\n 'aria-label': ariaLabel,\n className,\n style,\n direction,\n maxLength,\n autoSize = true,\n value,\n onSave,\n onCancel,\n onEnd,\n component,\n enterIcon = /*#__PURE__*/React.createElement(EnterOutlined, null)\n } = props;\n const ref = React.useRef(null);\n const inComposition = React.useRef(false);\n const lastKeyCode = React.useRef();\n const [current, setCurrent] = React.useState(value);\n React.useEffect(() => {\n setCurrent(value);\n }, [value]);\n React.useEffect(() => {\n if (ref.current && ref.current.resizableTextArea) {\n const {\n textArea\n } = ref.current.resizableTextArea;\n textArea.focus();\n const {\n length\n } = textArea.value;\n textArea.setSelectionRange(length, length);\n }\n }, []);\n const onChange = _ref => {\n let {\n target\n } = _ref;\n setCurrent(target.value.replace(/[\\n\\r]/g, ''));\n };\n const onCompositionStart = () => {\n inComposition.current = true;\n };\n const onCompositionEnd = () => {\n inComposition.current = false;\n };\n const onKeyDown = _ref2 => {\n let {\n keyCode\n } = _ref2;\n // We don't record keyCode when IME is using\n if (inComposition.current) return;\n lastKeyCode.current = keyCode;\n };\n const confirmChange = () => {\n onSave(current.trim());\n };\n const onKeyUp = _ref3 => {\n let {\n keyCode,\n ctrlKey,\n altKey,\n metaKey,\n shiftKey\n } = _ref3;\n // Check if it's a real key\n if (lastKeyCode.current === keyCode && !inComposition.current && !ctrlKey && !altKey && !metaKey && !shiftKey) {\n if (keyCode === KeyCode.ENTER) {\n confirmChange();\n onEnd === null || onEnd === void 0 ? void 0 : onEnd();\n } else if (keyCode === KeyCode.ESC) {\n onCancel();\n }\n }\n };\n const onBlur = () => {\n confirmChange();\n };\n const textClassName = component ? `${prefixCls}-${component}` : '';\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const textAreaClassName = classNames(prefixCls, `${prefixCls}-edit-content`, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, textClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: textAreaClassName,\n style: style\n }, /*#__PURE__*/React.createElement(TextArea, {\n ref: ref,\n maxLength: maxLength,\n value: current,\n onChange: onChange,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onCompositionStart: onCompositionStart,\n onCompositionEnd: onCompositionEnd,\n onBlur: onBlur,\n \"aria-label\": ariaLabel,\n rows: 1,\n autoSize: autoSize\n }), enterIcon !== null ? cloneElement(enterIcon, {\n className: `${prefixCls}-edit-content-confirm`\n }) : null));\n};\nexport default Editable;","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 { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst Typography = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n component: Component = 'article',\n className,\n rootClassName,\n setContentRef,\n children,\n direction: typographyDirection,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"component\", \"className\", \"rootClassName\", \"setContentRef\", \"children\", \"direction\", \"style\"]);\n const {\n getPrefixCls,\n direction: contextDirection,\n typography\n } = React.useContext(ConfigContext);\n const direction = typographyDirection !== null && typographyDirection !== void 0 ? typographyDirection : contextDirection;\n let mergedRef = ref;\n if (setContentRef) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Typography', '`setContentRef` is deprecated. Please use `ref` instead.') : void 0;\n mergedRef = composeRef(ref, setContentRef);\n }\n const prefixCls = getPrefixCls('typography', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const componentClassName = classNames(prefixCls, typography === null || typography === void 0 ? void 0 : typography.className, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId);\n const mergedStyle = Object.assign(Object.assign({}, typography === null || typography === void 0 ? void 0 : typography.style), style);\n return wrapSSR(\n /*#__PURE__*/\n // @ts-expect-error: Expression produces a union type that is too complex to represent.\n React.createElement(Component, Object.assign({\n className: componentClassName,\n style: mergedStyle,\n ref: mergedRef\n }, restProps), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Typography.displayName = 'Typography';\n}\n// es default export should use const instead of let\nexport default Typography;","import * as React from 'react';\nexport default function useMergedConfig(propConfig, templateConfig) {\n return React.useMemo(() => {\n const support = !!propConfig;\n return [support, Object.assign(Object.assign({}, templateConfig), support && typeof propConfig === 'object' ? propConfig : null)];\n }, [propConfig]);\n}","import * as React from 'react';\n/** Similar with `useEffect` but only trigger after mounted */\nconst useUpdatedEffect = (callback, conditions) => {\n const mountRef = React.useRef(false);\n React.useEffect(() => {\n if (mountRef.current) {\n callback();\n } else {\n mountRef.current = true;\n }\n }, conditions);\n};\nexport default useUpdatedEffect;","import toArray from \"rc-util/es/Children/toArray\";\nimport useIsomorphicLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nfunction cuttable(node) {\n const type = typeof node;\n return type === 'string' || type === 'number';\n}\nfunction getNodesLen(nodeList) {\n let totalLen = 0;\n nodeList.forEach(node => {\n if (cuttable(node)) {\n totalLen += String(node).length;\n } else {\n totalLen += 1;\n }\n });\n return totalLen;\n}\nfunction sliceNodes(nodeList, len) {\n let currLen = 0;\n const currentNodeList = [];\n for (let i = 0; i < nodeList.length; i += 1) {\n // Match to return\n if (currLen === len) {\n return currentNodeList;\n }\n const node = nodeList[i];\n const canCut = cuttable(node);\n const nodeLen = canCut ? String(node).length : 1;\n const nextLen = currLen + nodeLen;\n // Exceed but current not which means we need cut this\n // This will not happen on validate ReactElement\n if (nextLen > len) {\n const restLen = len - currLen;\n currentNodeList.push(String(node).slice(0, restLen));\n return currentNodeList;\n }\n currentNodeList.push(node);\n currLen = nextLen;\n }\n return nodeList;\n}\nconst NONE = 0;\nconst PREPARE = 1;\nconst WALKING = 2;\nconst DONE_WITH_ELLIPSIS = 3;\nconst DONE_WITHOUT_ELLIPSIS = 4;\nconst Ellipsis = _ref => {\n let {\n enabledMeasure,\n children,\n text,\n width,\n fontSize,\n rows,\n onEllipsis\n } = _ref;\n const [[startLen, midLen, endLen], setCutLength] = React.useState([0, 0, 0]);\n const [walkingState, setWalkingState] = React.useState(NONE);\n const [singleRowHeight, setSingleRowHeight] = React.useState(0);\n const singleRowRef = React.useRef(null);\n const midRowRef = React.useRef(null);\n const nodeList = React.useMemo(() => toArray(text), [text]);\n const totalLen = React.useMemo(() => getNodesLen(nodeList), [nodeList]);\n const mergedChildren = React.useMemo(() => {\n if (!enabledMeasure || walkingState !== DONE_WITH_ELLIPSIS) {\n return children(nodeList, false);\n }\n return children(sliceNodes(nodeList, midLen), midLen < totalLen);\n }, [enabledMeasure, walkingState, children, nodeList, midLen, totalLen]);\n // ======================== Walk ========================\n useIsomorphicLayoutEffect(() => {\n if (enabledMeasure && width && fontSize && totalLen) {\n setWalkingState(PREPARE);\n setCutLength([0, Math.ceil(totalLen / 2), totalLen]);\n }\n }, [enabledMeasure, width, fontSize, text, totalLen, rows]);\n useIsomorphicLayoutEffect(() => {\n var _a;\n if (walkingState === PREPARE) {\n setSingleRowHeight(((_a = singleRowRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0);\n }\n }, [walkingState]);\n useIsomorphicLayoutEffect(() => {\n var _a, _b;\n if (singleRowHeight) {\n if (walkingState === PREPARE) {\n // Ignore if position is enough\n const midHeight = ((_a = midRowRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0;\n const maxHeight = rows * singleRowHeight;\n if (midHeight <= maxHeight) {\n setWalkingState(DONE_WITHOUT_ELLIPSIS);\n onEllipsis(false);\n } else {\n setWalkingState(WALKING);\n }\n } else if (walkingState === WALKING) {\n if (startLen !== endLen) {\n const midHeight = ((_b = midRowRef.current) === null || _b === void 0 ? void 0 : _b.offsetHeight) || 0;\n const maxHeight = rows * singleRowHeight;\n let nextStartLen = startLen;\n let nextEndLen = endLen;\n // We reach the last round\n if (startLen === endLen - 1) {\n nextEndLen = startLen;\n } else if (midHeight <= maxHeight) {\n nextStartLen = midLen;\n } else {\n nextEndLen = midLen;\n }\n const nextMidLen = Math.ceil((nextStartLen + nextEndLen) / 2);\n setCutLength([nextStartLen, nextMidLen, nextEndLen]);\n } else {\n setWalkingState(DONE_WITH_ELLIPSIS);\n onEllipsis(true);\n }\n }\n }\n }, [walkingState, startLen, endLen, rows, singleRowHeight]);\n // ======================= Render =======================\n const measureStyle = {\n width,\n whiteSpace: 'normal',\n margin: 0,\n padding: 0\n };\n const renderMeasure = (content, ref, style) => /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true,\n ref: ref,\n style: Object.assign({\n position: 'fixed',\n display: 'block',\n left: 0,\n top: 0,\n zIndex: -9999,\n visibility: 'hidden',\n pointerEvents: 'none',\n fontSize: Math.floor(fontSize / 2) * 2\n }, style)\n }, content);\n const renderMeasureSlice = (len, ref) => {\n const sliceNodeList = sliceNodes(nodeList, len);\n return renderMeasure(children(sliceNodeList, true), ref, measureStyle);\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, mergedChildren, enabledMeasure && walkingState !== DONE_WITH_ELLIPSIS && walkingState !== DONE_WITHOUT_ELLIPSIS && /*#__PURE__*/React.createElement(React.Fragment, null, renderMeasure('lg', singleRowRef, {\n wordBreak: 'keep-all',\n whiteSpace: 'nowrap'\n }), walkingState === PREPARE ? renderMeasure(children(nodeList, false), midRowRef, measureStyle) : renderMeasureSlice(midLen, midRowRef)));\n};\nif (process.env.NODE_ENV !== 'production') {\n Ellipsis.displayName = 'Ellipsis';\n}\nexport default Ellipsis;","import * as React from 'react';\nimport Tooltip from '../../tooltip';\nconst EllipsisTooltip = _ref => {\n let {\n enabledEllipsis,\n isEllipsis,\n children,\n tooltipProps\n } = _ref;\n if (!(tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.title) || !enabledEllipsis) {\n return children;\n }\n return /*#__PURE__*/React.createElement(Tooltip, Object.assign({\n open: isEllipsis ? undefined : false\n }, tooltipProps), children);\n};\nif (process.env.NODE_ENV !== 'production') {\n EllipsisTooltip.displayName = 'EllipsisTooltip';\n}\nexport default EllipsisTooltip;","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 CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CopyOutlined from \"@ant-design/icons/es/icons/CopyOutlined\";\nimport EditOutlined from \"@ant-design/icons/es/icons/EditOutlined\";\nimport classNames from 'classnames';\nimport copy from 'copy-to-clipboard';\nimport ResizeObserver from 'rc-resize-observer';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport useIsomorphicLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { isStyleSupport } from '../../_util/styleChecker';\nimport TransButton from '../../_util/transButton';\nimport { ConfigContext } from '../../config-provider';\nimport useLocale from '../../locale/useLocale';\nimport Tooltip from '../../tooltip';\nimport Editable from '../Editable';\nimport Typography from '../Typography';\nimport useMergedConfig from '../hooks/useMergedConfig';\nimport useUpdatedEffect from '../hooks/useUpdatedEffect';\nimport Ellipsis from './Ellipsis';\nimport EllipsisTooltip from './EllipsisTooltip';\nfunction wrapperDecorations(_ref, content) {\n let {\n mark,\n code,\n underline,\n delete: del,\n strong,\n keyboard,\n italic\n } = _ref;\n let currentContent = content;\n function wrap(tag, needed) {\n if (!needed) {\n return;\n }\n currentContent = /*#__PURE__*/React.createElement(tag, {}, currentContent);\n }\n wrap('strong', strong);\n wrap('u', underline);\n wrap('del', del);\n wrap('code', code);\n wrap('mark', mark);\n wrap('kbd', keyboard);\n wrap('i', italic);\n return currentContent;\n}\nfunction getNode(dom, defaultNode, needDom) {\n if (dom === true || dom === undefined) {\n return defaultNode;\n }\n return dom || needDom && defaultNode;\n}\nfunction toList(val) {\n if (val === false) {\n return [false, false];\n }\n return Array.isArray(val) ? val : [val];\n}\nconst ELLIPSIS_STR = '...';\nconst Base = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a, _b, _c;\n const {\n prefixCls: customizePrefixCls,\n className,\n style,\n type,\n disabled,\n children,\n ellipsis,\n editable,\n copyable,\n component,\n title\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"type\", \"disabled\", \"children\", \"ellipsis\", \"editable\", \"copyable\", \"component\", \"title\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const [textLocale] = useLocale('Text');\n const typographyRef = React.useRef(null);\n const editIconRef = React.useRef(null);\n // ============================ MISC ============================\n const prefixCls = getPrefixCls('typography', customizePrefixCls);\n const textProps = omit(restProps, ['mark', 'code', 'delete', 'underline', 'strong', 'keyboard', 'italic']);\n // ========================== Editable ==========================\n const [enableEdit, editConfig] = useMergedConfig(editable);\n const [editing, setEditing] = useMergedState(false, {\n value: editConfig.editing\n });\n const {\n triggerType = ['icon']\n } = editConfig;\n const triggerEdit = edit => {\n var _a;\n if (edit) {\n (_a = editConfig.onStart) === null || _a === void 0 ? void 0 : _a.call(editConfig);\n }\n setEditing(edit);\n };\n // Focus edit icon when back\n useUpdatedEffect(() => {\n var _a;\n if (!editing) {\n (_a = editIconRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }, [editing]);\n const onEditClick = e => {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n triggerEdit(true);\n };\n const onEditChange = value => {\n var _a;\n (_a = editConfig.onChange) === null || _a === void 0 ? void 0 : _a.call(editConfig, value);\n triggerEdit(false);\n };\n const onEditCancel = () => {\n var _a;\n (_a = editConfig.onCancel) === null || _a === void 0 ? void 0 : _a.call(editConfig);\n triggerEdit(false);\n };\n // ========================== Copyable ==========================\n const [enableCopy, copyConfig] = useMergedConfig(copyable);\n const [copied, setCopied] = React.useState(false);\n const copyIdRef = React.useRef(null);\n const copyOptions = {};\n if (copyConfig.format) {\n copyOptions.format = copyConfig.format;\n }\n const cleanCopyId = () => {\n if (copyIdRef.current) {\n clearTimeout(copyIdRef.current);\n }\n };\n const onCopyClick = e => {\n var _a;\n e === null || e === void 0 ? void 0 : e.preventDefault();\n e === null || e === void 0 ? void 0 : e.stopPropagation();\n copy(copyConfig.text || String(children) || '', copyOptions);\n setCopied(true);\n // Trigger tips update\n cleanCopyId();\n copyIdRef.current = setTimeout(() => {\n setCopied(false);\n }, 3000);\n (_a = copyConfig.onCopy) === null || _a === void 0 ? void 0 : _a.call(copyConfig, e);\n };\n React.useEffect(() => cleanCopyId, []);\n // ========================== Ellipsis ==========================\n const [isLineClampSupport, setIsLineClampSupport] = React.useState(false);\n const [isTextOverflowSupport, setIsTextOverflowSupport] = React.useState(false);\n const [expanded, setExpanded] = React.useState(false);\n const [isJsEllipsis, setIsJsEllipsis] = React.useState(false);\n const [isNativeEllipsis, setIsNativeEllipsis] = React.useState(false);\n const [isNativeVisible, setIsNativeVisible] = React.useState(true);\n const [enableEllipsis, ellipsisConfig] = useMergedConfig(ellipsis, {\n expandable: false\n });\n const mergedEnableEllipsis = enableEllipsis && !expanded;\n // Shared prop to reduce bundle size\n const {\n rows = 1\n } = ellipsisConfig;\n const needMeasureEllipsis = React.useMemo(() =>\n // Disable ellipsis\n !mergedEnableEllipsis ||\n // Provide suffix\n ellipsisConfig.suffix !== undefined || ellipsisConfig.onEllipsis ||\n // Can't use css ellipsis since we need to provide the place for button\n ellipsisConfig.expandable || enableEdit || enableCopy, [mergedEnableEllipsis, ellipsisConfig, enableEdit, enableCopy]);\n useIsomorphicLayoutEffect(() => {\n if (enableEllipsis && !needMeasureEllipsis) {\n setIsLineClampSupport(isStyleSupport('webkitLineClamp'));\n setIsTextOverflowSupport(isStyleSupport('textOverflow'));\n }\n }, [needMeasureEllipsis, enableEllipsis]);\n const cssEllipsis = React.useMemo(() => {\n if (needMeasureEllipsis) {\n return false;\n }\n if (rows === 1) {\n return isTextOverflowSupport;\n }\n return isLineClampSupport;\n }, [needMeasureEllipsis, isTextOverflowSupport, isLineClampSupport]);\n const isMergedEllipsis = mergedEnableEllipsis && (cssEllipsis ? isNativeEllipsis : isJsEllipsis);\n const cssTextOverflow = mergedEnableEllipsis && rows === 1 && cssEllipsis;\n const cssLineClamp = mergedEnableEllipsis && rows > 1 && cssEllipsis;\n // >>>>> Expand\n const onExpandClick = e => {\n var _a;\n setExpanded(true);\n (_a = ellipsisConfig.onExpand) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, e);\n };\n const [ellipsisWidth, setEllipsisWidth] = React.useState(0);\n const [ellipsisFontSize, setEllipsisFontSize] = React.useState(0);\n const onResize = (_ref2, element) => {\n let {\n offsetWidth\n } = _ref2;\n var _a;\n setEllipsisWidth(offsetWidth);\n setEllipsisFontSize(parseInt((_a = window.getComputedStyle) === null || _a === void 0 ? void 0 : _a.call(window, element).fontSize, 10) || 0);\n };\n // >>>>> JS Ellipsis\n const onJsEllipsis = jsEllipsis => {\n var _a;\n setIsJsEllipsis(jsEllipsis);\n // Trigger if changed\n if (isJsEllipsis !== jsEllipsis) {\n (_a = ellipsisConfig.onEllipsis) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, jsEllipsis);\n }\n };\n // >>>>> Native ellipsis\n React.useEffect(() => {\n const textEle = typographyRef.current;\n if (enableEllipsis && cssEllipsis && textEle) {\n const currentEllipsis = cssLineClamp ? textEle.offsetHeight < textEle.scrollHeight : textEle.offsetWidth < textEle.scrollWidth;\n if (isNativeEllipsis !== currentEllipsis) {\n setIsNativeEllipsis(currentEllipsis);\n }\n }\n }, [enableEllipsis, cssEllipsis, children, cssLineClamp, isNativeVisible]);\n // https://github.com/ant-design/ant-design/issues/36786\n // Use IntersectionObserver to check if element is invisible\n React.useEffect(() => {\n const textEle = typographyRef.current;\n if (typeof IntersectionObserver === 'undefined' || !textEle || !cssEllipsis || !mergedEnableEllipsis) {\n return;\n }\n /* eslint-disable-next-line compat/compat */\n const observer = new IntersectionObserver(() => {\n setIsNativeVisible(!!textEle.offsetParent);\n });\n observer.observe(textEle);\n return () => {\n observer.disconnect();\n };\n }, [cssEllipsis, mergedEnableEllipsis]);\n // ========================== Tooltip ===========================\n let tooltipProps = {};\n if (ellipsisConfig.tooltip === true) {\n tooltipProps = {\n title: (_a = editConfig.text) !== null && _a !== void 0 ? _a : children\n };\n } else if ( /*#__PURE__*/React.isValidElement(ellipsisConfig.tooltip)) {\n tooltipProps = {\n title: ellipsisConfig.tooltip\n };\n } else if (typeof ellipsisConfig.tooltip === 'object') {\n tooltipProps = Object.assign({\n title: (_b = editConfig.text) !== null && _b !== void 0 ? _b : children\n }, ellipsisConfig.tooltip);\n } else {\n tooltipProps = {\n title: ellipsisConfig.tooltip\n };\n }\n const topAriaLabel = React.useMemo(() => {\n const isValid = val => ['string', 'number'].includes(typeof val);\n if (!enableEllipsis || cssEllipsis) {\n return undefined;\n }\n if (isValid(editConfig.text)) {\n return editConfig.text;\n }\n if (isValid(children)) {\n return children;\n }\n if (isValid(title)) {\n return title;\n }\n if (isValid(tooltipProps.title)) {\n return tooltipProps.title;\n }\n return undefined;\n }, [enableEllipsis, cssEllipsis, title, tooltipProps.title, isMergedEllipsis]);\n // =========================== Render ===========================\n // >>>>>>>>>>> Editing input\n if (editing) {\n return /*#__PURE__*/React.createElement(Editable, {\n value: (_c = editConfig.text) !== null && _c !== void 0 ? _c : typeof children === 'string' ? children : '',\n onSave: onEditChange,\n onCancel: onEditCancel,\n onEnd: editConfig.onEnd,\n prefixCls: prefixCls,\n className: className,\n style: style,\n direction: direction,\n component: component,\n maxLength: editConfig.maxLength,\n autoSize: editConfig.autoSize,\n enterIcon: editConfig.enterIcon\n });\n }\n // >>>>>>>>>>> Typography\n // Expand\n const renderExpand = () => {\n const {\n expandable,\n symbol\n } = ellipsisConfig;\n if (!expandable) return null;\n let expandContent;\n if (symbol) {\n expandContent = symbol;\n } else {\n expandContent = textLocale === null || textLocale === void 0 ? void 0 : textLocale.expand;\n }\n return /*#__PURE__*/React.createElement(\"a\", {\n key: \"expand\",\n className: `${prefixCls}-expand`,\n onClick: onExpandClick,\n \"aria-label\": textLocale === null || textLocale === void 0 ? void 0 : textLocale.expand\n }, expandContent);\n };\n // Edit\n const renderEdit = () => {\n if (!enableEdit) return;\n const {\n icon,\n tooltip\n } = editConfig;\n const editTitle = toArray(tooltip)[0] || (textLocale === null || textLocale === void 0 ? void 0 : textLocale.edit);\n const ariaLabel = typeof editTitle === 'string' ? editTitle : '';\n return triggerType.includes('icon') ? /*#__PURE__*/React.createElement(Tooltip, {\n key: \"edit\",\n title: tooltip === false ? '' : editTitle\n }, /*#__PURE__*/React.createElement(TransButton, {\n ref: editIconRef,\n className: `${prefixCls}-edit`,\n onClick: onEditClick,\n \"aria-label\": ariaLabel\n }, icon || /*#__PURE__*/React.createElement(EditOutlined, {\n role: \"button\"\n }))) : null;\n };\n // Copy\n const renderCopy = () => {\n if (!enableCopy) return;\n const {\n tooltips,\n icon\n } = copyConfig;\n const tooltipNodes = toList(tooltips);\n const iconNodes = toList(icon);\n const copyTitle = copied ? getNode(tooltipNodes[1], textLocale === null || textLocale === void 0 ? void 0 : textLocale.copied) : getNode(tooltipNodes[0], textLocale === null || textLocale === void 0 ? void 0 : textLocale.copy);\n const systemStr = copied ? textLocale === null || textLocale === void 0 ? void 0 : textLocale.copied : textLocale === null || textLocale === void 0 ? void 0 : textLocale.copy;\n const ariaLabel = typeof copyTitle === 'string' ? copyTitle : systemStr;\n return /*#__PURE__*/React.createElement(Tooltip, {\n key: \"copy\",\n title: copyTitle\n }, /*#__PURE__*/React.createElement(TransButton, {\n className: classNames(`${prefixCls}-copy`, copied && `${prefixCls}-copy-success`),\n onClick: onCopyClick,\n \"aria-label\": ariaLabel\n }, copied ? getNode(iconNodes[1], /*#__PURE__*/React.createElement(CheckOutlined, null), true) : getNode(iconNodes[0], /*#__PURE__*/React.createElement(CopyOutlined, null), true)));\n };\n const renderOperations = renderExpanded => [renderExpanded && renderExpand(), renderEdit(), renderCopy()];\n const renderEllipsis = needEllipsis => [needEllipsis && /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true,\n key: \"ellipsis\"\n }, ELLIPSIS_STR), ellipsisConfig.suffix, renderOperations(needEllipsis)];\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onResize,\n disabled: !mergedEnableEllipsis || cssEllipsis\n }, resizeRef => /*#__PURE__*/React.createElement(EllipsisTooltip, {\n tooltipProps: tooltipProps,\n enabledEllipsis: mergedEnableEllipsis,\n isEllipsis: isMergedEllipsis\n }, /*#__PURE__*/React.createElement(Typography, Object.assign({\n className: classNames({\n [`${prefixCls}-${type}`]: type,\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-ellipsis`]: enableEllipsis,\n [`${prefixCls}-single-line`]: mergedEnableEllipsis && rows === 1,\n [`${prefixCls}-ellipsis-single-line`]: cssTextOverflow,\n [`${prefixCls}-ellipsis-multiple-line`]: cssLineClamp\n }, className),\n prefixCls: customizePrefixCls,\n style: Object.assign(Object.assign({}, style), {\n WebkitLineClamp: cssLineClamp ? rows : undefined\n }),\n component: component,\n ref: composeRef(resizeRef, typographyRef, ref),\n direction: direction,\n onClick: triggerType.includes('text') ? onEditClick : undefined,\n \"aria-label\": topAriaLabel === null || topAriaLabel === void 0 ? void 0 : topAriaLabel.toString(),\n title: title\n }, textProps), /*#__PURE__*/React.createElement(Ellipsis, {\n enabledMeasure: mergedEnableEllipsis && !cssEllipsis,\n text: children,\n rows: rows,\n width: ellipsisWidth,\n fontSize: ellipsisFontSize,\n onEllipsis: onJsEllipsis\n }, (node, needEllipsis) => {\n let renderNode = node;\n if (node.length && needEllipsis && topAriaLabel) {\n renderNode = /*#__PURE__*/React.createElement(\"span\", {\n key: \"show-content\",\n \"aria-hidden\": true\n }, renderNode);\n }\n const wrappedContext = wrapperDecorations(props, /*#__PURE__*/React.createElement(React.Fragment, null, renderNode, renderEllipsis(needEllipsis)));\n return wrappedContext;\n }))));\n});\nexport default Base;","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 warning from '../_util/warning';\nimport Base from './Base';\nconst Link = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n ellipsis,\n rel\n } = _a,\n restProps = __rest(_a, [\"ellipsis\", \"rel\"]);\n process.env.NODE_ENV !== \"production\" ? warning(typeof ellipsis !== 'object', 'Typography.Link', '`ellipsis` only supports boolean value.') : void 0;\n const mergedProps = Object.assign(Object.assign({}, restProps), {\n rel: rel === undefined && restProps.target === '_blank' ? 'noopener noreferrer' : rel\n });\n // @ts-expect-error: https://github.com/ant-design/ant-design/issues/26622\n delete mergedProps.navigate;\n return /*#__PURE__*/React.createElement(Base, Object.assign({}, mergedProps, {\n ref: ref,\n ellipsis: !!ellipsis,\n component: \"a\"\n }));\n});\nexport default Link;","import * as React from 'react';\nimport Base from './Base';\nconst Paragraph = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(Base, Object.assign({\n ref: ref\n}, props, {\n component: \"div\"\n})));\nexport default Paragraph;","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 omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport Base from './Base';\nconst Text = (_a, ref) => {\n var {\n ellipsis\n } = _a,\n restProps = __rest(_a, [\"ellipsis\"]);\n const mergedEllipsis = React.useMemo(() => {\n if (ellipsis && typeof ellipsis === 'object') {\n return omit(ellipsis, ['expandable', 'rows']);\n }\n return ellipsis;\n }, [ellipsis]);\n process.env.NODE_ENV !== \"production\" ? warning(typeof ellipsis !== 'object' || !ellipsis || !('expandable' in ellipsis) && !('rows' in ellipsis), 'Typography.Text', '`ellipsis` do not support `expandable` or `rows` props.') : void 0;\n return /*#__PURE__*/React.createElement(Base, Object.assign({\n ref: ref\n }, restProps, {\n ellipsis: mergedEllipsis,\n component: \"span\"\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(Text);","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 warning from '../_util/warning';\nimport Base from './Base';\nconst TITLE_ELE_LIST = [1, 2, 3, 4, 5];\nconst Title = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n level = 1\n } = props,\n restProps = __rest(props, [\"level\"]);\n let component;\n if (TITLE_ELE_LIST.includes(level)) {\n component = `h${level}`;\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Typography.Title', 'Title only accept `1 | 2 | 3 | 4 | 5` as `level` value. And `5` need 4.6.0+ version.') : void 0;\n component = 'h1';\n }\n return /*#__PURE__*/React.createElement(Base, Object.assign({\n ref: ref\n }, restProps, {\n component: component\n }));\n});\nexport default Title;","'use client';\n\nimport Link from './Link';\nimport Paragraph from './Paragraph';\nimport Text from './Text';\nimport Title from './Title';\nimport OriginTypography from './Typography';\nconst Typography = OriginTypography;\nTypography.Text = Text;\nTypography.Link = Link;\nTypography.Title = Title;\nTypography.Paragraph = Paragraph;\nexport default Typography;","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={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\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(r=\"undefined\"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){\"use strict\";return function(r,e,t){r=r||{};var n=e.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],m=h.length,c=0;c0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekday=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,i=this.$W,n=(i\n * Build: `lodash modularize exports=\"npm\" -o ./`\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\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\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 proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\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/**\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 to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\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/** 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/** 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\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\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 */\nfunction 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 * 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\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\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\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\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\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 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 * 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/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\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/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.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 symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\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 */\nvar 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 * 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/**\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\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\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\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\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\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\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/**\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\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\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\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\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\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\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/**\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\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\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\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\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\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\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/**\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\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\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\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\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\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\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\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 */\nfunction 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 */\nfunction 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 */\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\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 */\nfunction 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 `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 */\nvar baseFor = createBaseFor();\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\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\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\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\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 */\nfunction 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 `_.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 */\nfunction 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 */\nfunction 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 `_.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 */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), 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 */\nvar 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 * 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 */\nfunction 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 */\nfunction 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 `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 */\nfunction 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 * 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 */\nfunction 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 */\nfunction 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 * 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 */\nfunction 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 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 */\nfunction 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 * 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\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\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\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 */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\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 */\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\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 */\nfunction 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 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\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\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\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 */\nfunction 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 */\nfunction 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 */\nfunction 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 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 */\nfunction 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 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 */\nvar setToString = shortOut(baseSetToString);\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 */\nfunction 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 * 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\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\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\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\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\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 */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\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 */\nvar isBuffer = nativeIsBuffer || stubFalse;\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\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\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\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\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 */\nfunction 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 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\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 */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\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 */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\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 */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\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 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/** 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/**\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 = toNumber;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\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 */\nfunction 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\nmodule.exports = assignMergeValue;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\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 */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var createBaseFor = require('./_createBaseFor');\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 */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\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 */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\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 */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\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 */\nfunction 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\nmodule.exports = baseIsMatch;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\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 */\nfunction 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\nmodule.exports = baseIteratee;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\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 */\nfunction 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\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\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 */\nfunction 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\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\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 */\nfunction 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\nmodule.exports = baseMatchesProperty;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\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 */\nfunction 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\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\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 */\nfunction 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\nmodule.exports = baseMergeDeep;\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 */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\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 */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var identity = require('./identity');\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 */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var isArrayLike = require('./isArrayLike');\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 */\nfunction 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\nmodule.exports = createBaseEach;\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 */\nfunction 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\nmodule.exports = createBaseFor;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\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 */\nfunction 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\nmodule.exports = getMatchData;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\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 */\nfunction 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\nmodule.exports = hasPath;\n","var isObject = require('./isObject');\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 */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\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 */\nfunction 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\nmodule.exports = matchesStrictComparable;\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 */\nfunction 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\nmodule.exports = safeGet;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\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 */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","module.exports = require('./forEach');\n","var arrayEach = require('./_arrayEach'),\n baseEach = require('./_baseEach'),\n castFunction = require('./_castFunction'),\n isArray = require('./isArray');\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 */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\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 */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","var baseGet = require('./_baseGet');\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 */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\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 */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\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 */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\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 */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\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 */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\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 */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\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 */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","import dayjs from 'dayjs';\nimport { noteOnce } from \"rc-util/es/warning\";\nimport weekday from 'dayjs/plugin/weekday';\nimport localeData from 'dayjs/plugin/localeData';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport weekYear from 'dayjs/plugin/weekYear';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\ndayjs.extend(customParseFormat);\ndayjs.extend(advancedFormat);\ndayjs.extend(weekday);\ndayjs.extend(localeData);\ndayjs.extend(weekOfYear);\ndayjs.extend(weekYear);\ndayjs.extend(function (o, c) {\n // todo support Wo (ISO week)\n var proto = c.prototype;\n var oldFormat = proto.format;\n proto.format = function f(formatStr) {\n var str = (formatStr || '').replace('Wo', 'wo');\n return oldFormat.bind(this)(str);\n };\n});\nvar localeMap = {\n // ar_EG:\n // az_AZ:\n // bg_BG:\n bn_BD: 'bn-bd',\n by_BY: 'be',\n // ca_ES:\n // cs_CZ:\n // da_DK:\n // de_DE:\n // el_GR:\n en_GB: 'en-gb',\n en_US: 'en',\n // es_ES:\n // et_EE:\n // fa_IR:\n // fi_FI:\n fr_BE: 'fr',\n // todo: dayjs has no fr_BE locale, use fr at present\n fr_CA: 'fr-ca',\n // fr_FR:\n // ga_IE:\n // gl_ES:\n // he_IL:\n // hi_IN:\n // hr_HR:\n // hu_HU:\n hy_AM: 'hy-am',\n // id_ID:\n // is_IS:\n // it_IT:\n // ja_JP:\n // ka_GE:\n // kk_KZ:\n // km_KH:\n kmr_IQ: 'ku',\n // kn_IN:\n // ko_KR:\n // ku_IQ: // previous ku in antd\n // lt_LT:\n // lv_LV:\n // mk_MK:\n // ml_IN:\n // mn_MN:\n // ms_MY:\n // nb_NO:\n // ne_NP:\n nl_BE: 'nl-be',\n // nl_NL:\n // pl_PL:\n pt_BR: 'pt-br',\n // pt_PT:\n // ro_RO:\n // ru_RU:\n // sk_SK:\n // sl_SI:\n // sr_RS:\n // sv_SE:\n // ta_IN:\n // th_TH:\n // tr_TR:\n // uk_UA:\n // ur_PK:\n // vi_VN:\n zh_CN: 'zh-cn',\n zh_HK: 'zh-hk',\n zh_TW: 'zh-tw'\n};\nvar parseLocale = function parseLocale(locale) {\n var mapLocale = localeMap[locale];\n return mapLocale || locale.split('_')[0];\n};\nvar parseNoMatchNotice = function parseNoMatchNotice() {\n /* istanbul ignore next */\n noteOnce(false, 'Not match any format. Please help to fire a issue about this.');\n};\nvar generateConfig = {\n // get\n getNow: function getNow() {\n return dayjs();\n },\n getFixedDate: function getFixedDate(string) {\n return dayjs(string, ['YYYY-M-DD', 'YYYY-MM-DD']);\n },\n getEndDate: function getEndDate(date) {\n return date.endOf('month');\n },\n getWeekDay: function getWeekDay(date) {\n var clone = date.locale('en');\n return clone.weekday() + clone.localeData().firstDayOfWeek();\n },\n getYear: function getYear(date) {\n return date.year();\n },\n getMonth: function getMonth(date) {\n return date.month();\n },\n getDate: function getDate(date) {\n return date.date();\n },\n getHour: function getHour(date) {\n return date.hour();\n },\n getMinute: function getMinute(date) {\n return date.minute();\n },\n getSecond: function getSecond(date) {\n return date.second();\n },\n // set\n addYear: function addYear(date, diff) {\n return date.add(diff, 'year');\n },\n addMonth: function addMonth(date, diff) {\n return date.add(diff, 'month');\n },\n addDate: function addDate(date, diff) {\n return date.add(diff, 'day');\n },\n setYear: function setYear(date, year) {\n return date.year(year);\n },\n setMonth: function setMonth(date, month) {\n return date.month(month);\n },\n setDate: function setDate(date, num) {\n return date.date(num);\n },\n setHour: function setHour(date, hour) {\n return date.hour(hour);\n },\n setMinute: function setMinute(date, minute) {\n return date.minute(minute);\n },\n setSecond: function setSecond(date, second) {\n return date.second(second);\n },\n // Compare\n isAfter: function isAfter(date1, date2) {\n return date1.isAfter(date2);\n },\n isValidate: function isValidate(date) {\n return date.isValid();\n },\n locale: {\n getWeekFirstDay: function getWeekFirstDay(locale) {\n return dayjs().locale(parseLocale(locale)).localeData().firstDayOfWeek();\n },\n getWeekFirstDate: function getWeekFirstDate(locale, date) {\n return date.locale(parseLocale(locale)).weekday(0);\n },\n getWeek: function getWeek(locale, date) {\n return date.locale(parseLocale(locale)).week();\n },\n getShortWeekDays: function getShortWeekDays(locale) {\n return dayjs().locale(parseLocale(locale)).localeData().weekdaysMin();\n },\n getShortMonths: function getShortMonths(locale) {\n return dayjs().locale(parseLocale(locale)).localeData().monthsShort();\n },\n format: function format(locale, date, _format) {\n return date.locale(parseLocale(locale)).format(_format);\n },\n parse: function parse(locale, text, formats) {\n var localeStr = parseLocale(locale);\n for (var i = 0; i < formats.length; i += 1) {\n var format = formats[i];\n var formatText = text;\n if (format.includes('wo') || format.includes('Wo')) {\n // parse Wo\n var year = formatText.split('-')[0];\n var weekStr = formatText.split('-')[1];\n var firstWeek = dayjs(year, 'YYYY').startOf('year').locale(localeStr);\n for (var j = 0; j <= 52; j += 1) {\n var nextWeek = firstWeek.add(j, 'week');\n if (nextWeek.format('Wo') === weekStr) {\n return nextWeek;\n }\n }\n parseNoMatchNotice();\n return null;\n }\n var date = dayjs(formatText, format, true).locale(localeStr);\n if (date.isValid()) {\n return date;\n }\n }\n if (text) {\n parseNoMatchNotice();\n }\n return null;\n }\n }\n};\nexport default generateConfig;","export var DECADE_UNIT_DIFF = 10;\nexport var DECADE_DISTANCE_COUNT = DECADE_UNIT_DIFF * 10;","import { DECADE_UNIT_DIFF } from \"../panels/DecadePanel/constant\";\nexport var WEEK_DAY_COUNT = 7;\nexport function isNullEqual(value1, value2) {\n if (!value1 && !value2) {\n return true;\n }\n if (!value1 || !value2) {\n return false;\n }\n return undefined;\n}\nexport function isSameDecade(generateConfig, decade1, decade2) {\n var equal = isNullEqual(decade1, decade2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n var num1 = Math.floor(generateConfig.getYear(decade1) / 10);\n var num2 = Math.floor(generateConfig.getYear(decade2) / 10);\n return num1 === num2;\n}\nexport function isSameYear(generateConfig, year1, year2) {\n var equal = isNullEqual(year1, year2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return generateConfig.getYear(year1) === generateConfig.getYear(year2);\n}\nexport function getQuarter(generateConfig, date) {\n var quota = Math.floor(generateConfig.getMonth(date) / 3);\n return quota + 1;\n}\nexport function isSameQuarter(generateConfig, quarter1, quarter2) {\n var equal = isNullEqual(quarter1, quarter2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return isSameYear(generateConfig, quarter1, quarter2) && getQuarter(generateConfig, quarter1) === getQuarter(generateConfig, quarter2);\n}\nexport function isSameMonth(generateConfig, month1, month2) {\n var equal = isNullEqual(month1, month2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return isSameYear(generateConfig, month1, month2) && generateConfig.getMonth(month1) === generateConfig.getMonth(month2);\n}\nexport function isSameDate(generateConfig, date1, date2) {\n var equal = isNullEqual(date1, date2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return generateConfig.getYear(date1) === generateConfig.getYear(date2) && generateConfig.getMonth(date1) === generateConfig.getMonth(date2) && generateConfig.getDate(date1) === generateConfig.getDate(date2);\n}\nexport function isSameTime(generateConfig, time1, time2) {\n var equal = isNullEqual(time1, time2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return generateConfig.getHour(time1) === generateConfig.getHour(time2) && generateConfig.getMinute(time1) === generateConfig.getMinute(time2) && generateConfig.getSecond(time1) === generateConfig.getSecond(time2);\n}\nexport function isSameWeek(generateConfig, locale, date1, date2) {\n var equal = isNullEqual(date1, date2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return isSameYear(generateConfig, date1, date2) && generateConfig.locale.getWeek(locale, date1) === generateConfig.locale.getWeek(locale, date2);\n}\nexport function isEqual(generateConfig, value1, value2) {\n return isSameDate(generateConfig, value1, value2) && isSameTime(generateConfig, value1, value2);\n}\n\n/** Between in date but not equal of date */\nexport function isInRange(generateConfig, startDate, endDate, current) {\n if (!startDate || !endDate || !current) {\n return false;\n }\n return !isSameDate(generateConfig, startDate, current) && !isSameDate(generateConfig, endDate, current) && generateConfig.isAfter(current, startDate) && generateConfig.isAfter(endDate, current);\n}\nexport function getWeekStartDate(locale, generateConfig, value) {\n var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale);\n var monthStartDate = generateConfig.setDate(value, 1);\n var startDateWeekDay = generateConfig.getWeekDay(monthStartDate);\n var alignStartDate = generateConfig.addDate(monthStartDate, weekFirstDay - startDateWeekDay);\n if (generateConfig.getMonth(alignStartDate) === generateConfig.getMonth(value) && generateConfig.getDate(alignStartDate) > 1) {\n alignStartDate = generateConfig.addDate(alignStartDate, -7);\n }\n return alignStartDate;\n}\nexport function getClosingViewDate(viewDate, picker, generateConfig) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n switch (picker) {\n case 'year':\n return generateConfig.addYear(viewDate, offset * 10);\n case 'quarter':\n case 'month':\n return generateConfig.addYear(viewDate, offset);\n default:\n return generateConfig.addMonth(viewDate, offset);\n }\n}\nexport function formatValue(value, _ref) {\n var generateConfig = _ref.generateConfig,\n locale = _ref.locale,\n format = _ref.format;\n return typeof format === 'function' ? format(value) : generateConfig.locale.format(locale.locale, value, format);\n}\nexport function parseValue(value, _ref2) {\n var generateConfig = _ref2.generateConfig,\n locale = _ref2.locale,\n formatList = _ref2.formatList;\n if (!value || typeof formatList[0] === 'function') {\n return null;\n }\n return generateConfig.locale.parse(locale.locale, value, formatList);\n}\n\n// eslint-disable-next-line consistent-return\nexport function getCellDateDisabled(_ref3) {\n var cellDate = _ref3.cellDate,\n mode = _ref3.mode,\n disabledDate = _ref3.disabledDate,\n generateConfig = _ref3.generateConfig;\n if (!disabledDate) return false;\n // Whether cellDate is disabled in range\n var getDisabledFromRange = function getDisabledFromRange(currentMode, start, end) {\n var current = start;\n while (current <= end) {\n var _date = void 0;\n switch (currentMode) {\n case 'date':\n {\n _date = generateConfig.setDate(cellDate, current);\n if (!disabledDate(_date)) {\n return false;\n }\n break;\n }\n case 'month':\n {\n _date = generateConfig.setMonth(cellDate, current);\n if (!getCellDateDisabled({\n cellDate: _date,\n mode: 'month',\n generateConfig: generateConfig,\n disabledDate: disabledDate\n })) {\n return false;\n }\n break;\n }\n case 'year':\n {\n _date = generateConfig.setYear(cellDate, current);\n if (!getCellDateDisabled({\n cellDate: _date,\n mode: 'year',\n generateConfig: generateConfig,\n disabledDate: disabledDate\n })) {\n return false;\n }\n break;\n }\n }\n current += 1;\n }\n return true;\n };\n switch (mode) {\n case 'date':\n case 'week':\n {\n return disabledDate(cellDate);\n }\n case 'month':\n {\n var startDate = 1;\n var endDate = generateConfig.getDate(generateConfig.getEndDate(cellDate));\n return getDisabledFromRange('date', startDate, endDate);\n }\n case 'quarter':\n {\n var startMonth = Math.floor(generateConfig.getMonth(cellDate) / 3) * 3;\n var endMonth = startMonth + 2;\n return getDisabledFromRange('month', startMonth, endMonth);\n }\n case 'year':\n {\n return getDisabledFromRange('month', 0, 11);\n }\n case 'decade':\n {\n var year = generateConfig.getYear(cellDate);\n var startYear = Math.floor(year / DECADE_UNIT_DIFF) * DECADE_UNIT_DIFF;\n var endYear = startYear + DECADE_UNIT_DIFF - 1;\n return getDisabledFromRange('year', startYear, endYear);\n }\n }\n}","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport shallowEqual from \"rc-util/es/isEqual\";\nimport { formatValue, isEqual } from \"../utils/dateUtil\";\nexport default function useValueTexts(value, _ref) {\n var formatList = _ref.formatList,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale;\n return useMemo(function () {\n if (!value) {\n return [[''], ''];\n }\n\n // We will convert data format back to first format\n var firstValueText = '';\n var fullValueTexts = [];\n for (var i = 0; i < formatList.length; i += 1) {\n var format = formatList[i];\n var formatStr = formatValue(value, {\n generateConfig: generateConfig,\n locale: locale,\n format: format\n });\n fullValueTexts.push(formatStr);\n if (i === 0) {\n firstValueText = formatStr;\n }\n }\n return [fullValueTexts, firstValueText];\n }, [value, formatList, locale], function (prev, next) {\n return (\n // Not Same Date\n !isEqual(generateConfig, prev[0], next[0]) ||\n // Not Same format\n !shallowEqual(prev[1], next[1], true) ||\n // Not Same locale\n !shallowEqual(prev[2], next[2], true)\n );\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport useValueTexts from \"./useValueTexts\";\nexport default function useHoverValue(valueText, _ref) {\n var formatList = _ref.formatList,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale;\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n internalSetValue = _useState2[1];\n var raf = useRef(null);\n function setValue(val) {\n var immediately = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n cancelAnimationFrame(raf.current);\n if (immediately) {\n internalSetValue(val);\n return;\n }\n raf.current = requestAnimationFrame(function () {\n internalSetValue(val);\n });\n }\n var _useValueTexts = useValueTexts(value, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n firstText = _useValueTexts2[1];\n function onEnter(date) {\n setValue(date);\n }\n function onLeave() {\n var immediately = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n setValue(null, immediately);\n }\n useEffect(function () {\n onLeave(true);\n }, [valueText]);\n useEffect(function () {\n return function () {\n return cancelAnimationFrame(raf.current);\n };\n }, []);\n return [firstText, onEnter, onLeave];\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nvar scrollIds = new Map();\n\n/** Trigger when element is visible in view */\nexport function waitElementReady(element, callback) {\n var id;\n function tryOrNextFrame() {\n if (isVisible(element)) {\n callback();\n } else {\n id = raf(function () {\n tryOrNextFrame();\n });\n }\n }\n tryOrNextFrame();\n return function () {\n raf.cancel(id);\n };\n}\n\n/* eslint-disable no-param-reassign */\nexport function scrollTo(element, to, duration) {\n if (scrollIds.get(element)) {\n cancelAnimationFrame(scrollIds.get(element));\n }\n\n // jump to target if duration zero\n if (duration <= 0) {\n scrollIds.set(element, requestAnimationFrame(function () {\n element.scrollTop = to;\n }));\n return;\n }\n var difference = to - element.scrollTop;\n var perTick = difference / duration * 10;\n scrollIds.set(element, requestAnimationFrame(function () {\n element.scrollTop += perTick;\n if (element.scrollTop !== to) {\n scrollTo(element, to, duration - 10);\n }\n }));\n}\n/* eslint-enable */\n\nexport function createKeyDownHandler(event, _ref) {\n var onLeftRight = _ref.onLeftRight,\n onCtrlLeftRight = _ref.onCtrlLeftRight,\n onUpDown = _ref.onUpDown,\n onPageUpDown = _ref.onPageUpDown,\n onEnter = _ref.onEnter;\n var which = event.which,\n ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n switch (which) {\n case KeyCode.LEFT:\n if (ctrlKey || metaKey) {\n if (onCtrlLeftRight) {\n onCtrlLeftRight(-1);\n return true;\n }\n } else if (onLeftRight) {\n onLeftRight(-1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.RIGHT:\n if (ctrlKey || metaKey) {\n if (onCtrlLeftRight) {\n onCtrlLeftRight(1);\n return true;\n }\n } else if (onLeftRight) {\n onLeftRight(1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.UP:\n if (onUpDown) {\n onUpDown(-1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.DOWN:\n if (onUpDown) {\n onUpDown(1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.PAGE_UP:\n if (onPageUpDown) {\n onPageUpDown(-1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.PAGE_DOWN:\n if (onPageUpDown) {\n onPageUpDown(1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.ENTER:\n if (onEnter) {\n onEnter();\n return true;\n }\n /* istanbul ignore next */\n break;\n }\n return false;\n}\n\n// ===================== Format =====================\nexport function getDefaultFormat(format, picker, showTime, use12Hours) {\n var mergedFormat = format;\n if (!mergedFormat) {\n switch (picker) {\n case 'time':\n mergedFormat = use12Hours ? 'hh:mm:ss a' : 'HH:mm:ss';\n break;\n case 'week':\n mergedFormat = 'gggg-wo';\n break;\n case 'month':\n mergedFormat = 'YYYY-MM';\n break;\n case 'quarter':\n mergedFormat = 'YYYY-[Q]Q';\n break;\n case 'year':\n mergedFormat = 'YYYY';\n break;\n default:\n mergedFormat = showTime ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';\n }\n }\n return mergedFormat;\n}\nexport function getInputSize(picker, format, generateConfig) {\n var defaultSize = picker === 'time' ? 8 : 10;\n var length = typeof format === 'function' ? format(generateConfig.getNow()).length : format.length;\n return Math.max(defaultSize, length) + 2;\n}\n\n// ===================== Window =====================\n\nvar globalClickFunc = null;\nvar clickCallbacks = new Set();\nexport function addGlobalMouseDownEvent(callback) {\n if (!globalClickFunc && typeof window !== 'undefined' && window.addEventListener) {\n globalClickFunc = function globalClickFunc(e) {\n // Clone a new list to avoid repeat trigger events\n _toConsumableArray(clickCallbacks).forEach(function (queueFunc) {\n queueFunc(e);\n });\n };\n window.addEventListener('mousedown', globalClickFunc);\n }\n clickCallbacks.add(callback);\n return function () {\n clickCallbacks.delete(callback);\n if (clickCallbacks.size === 0) {\n window.removeEventListener('mousedown', globalClickFunc);\n globalClickFunc = null;\n }\n };\n}\nexport function getTargetFromEvent(e) {\n var target = e.target;\n\n // get target if in shadow dom\n if (e.composed && target.shadowRoot) {\n var _e$composedPath;\n return ((_e$composedPath = e.composedPath) === null || _e$composedPath === void 0 ? void 0 : _e$composedPath.call(e)[0]) || target;\n }\n return target;\n}\n\n// ====================== Mode ======================\nvar getYearNextMode = function getYearNextMode(next) {\n if (next === 'month' || next === 'date') {\n return 'year';\n }\n return next;\n};\nvar getMonthNextMode = function getMonthNextMode(next) {\n if (next === 'date') {\n return 'month';\n }\n return next;\n};\nvar getQuarterNextMode = function getQuarterNextMode(next) {\n if (next === 'month' || next === 'date') {\n return 'quarter';\n }\n return next;\n};\nvar getWeekNextMode = function getWeekNextMode(next) {\n if (next === 'date') {\n return 'week';\n }\n return next;\n};\nexport var PickerModeMap = {\n year: getYearNextMode,\n month: getMonthNextMode,\n quarter: getQuarterNextMode,\n week: getWeekNextMode,\n time: null,\n date: null\n};\nexport function elementsContains(elements, target) {\n return elements.some(function (ele) {\n return ele && ele.contains(target);\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { useEffect, useRef, useState } from 'react';\nimport { addGlobalMouseDownEvent, getTargetFromEvent } from \"../utils/uiUtil\";\nexport default function usePickerInput(_ref) {\n var open = _ref.open,\n value = _ref.value,\n isClickOutside = _ref.isClickOutside,\n triggerOpen = _ref.triggerOpen,\n forwardKeyDown = _ref.forwardKeyDown,\n _onKeyDown = _ref.onKeyDown,\n blurToCancel = _ref.blurToCancel,\n onSubmit = _ref.onSubmit,\n onCancel = _ref.onCancel,\n _onFocus = _ref.onFocus,\n _onBlur = _ref.onBlur,\n changeOnBlur = _ref.changeOnBlur;\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n typing = _useState2[0],\n setTyping = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n focused = _useState4[0],\n setFocused = _useState4[1];\n\n /**\n * We will prevent blur to handle open event when user click outside,\n * since this will repeat trigger `onOpenChange` event.\n */\n var preventBlurRef = useRef(false);\n var valueChangedRef = useRef(false);\n var preventDefaultRef = useRef(false);\n var inputProps = {\n onMouseDown: function onMouseDown() {\n setTyping(true);\n triggerOpen(true);\n },\n onKeyDown: function onKeyDown(e) {\n var preventDefault = function preventDefault() {\n preventDefaultRef.current = true;\n };\n _onKeyDown(e, preventDefault);\n if (preventDefaultRef.current) return;\n switch (e.which) {\n case KeyCode.ENTER:\n {\n if (!open) {\n triggerOpen(true);\n } else if (onSubmit() !== false) {\n setTyping(true);\n }\n e.preventDefault();\n return;\n }\n case KeyCode.TAB:\n {\n if (typing && open && !e.shiftKey) {\n setTyping(false);\n e.preventDefault();\n } else if (!typing && open) {\n if (!forwardKeyDown(e) && e.shiftKey) {\n setTyping(true);\n e.preventDefault();\n }\n }\n return;\n }\n case KeyCode.ESC:\n {\n setTyping(true);\n onCancel();\n return;\n }\n }\n if (!open && ![KeyCode.SHIFT].includes(e.which)) {\n triggerOpen(true);\n } else if (!typing) {\n // Let popup panel handle keyboard\n forwardKeyDown(e);\n }\n },\n onFocus: function onFocus(e) {\n setTyping(true);\n setFocused(true);\n if (_onFocus) {\n _onFocus(e);\n }\n },\n onBlur: function onBlur(e) {\n if (preventBlurRef.current || !isClickOutside(document.activeElement)) {\n preventBlurRef.current = false;\n return;\n }\n if (blurToCancel) {\n setTimeout(function () {\n var _document = document,\n activeElement = _document.activeElement;\n while (activeElement && activeElement.shadowRoot) {\n activeElement = activeElement.shadowRoot.activeElement;\n }\n if (isClickOutside(activeElement)) {\n onCancel();\n }\n }, 0);\n } else if (open) {\n triggerOpen(false);\n if (valueChangedRef.current) {\n onSubmit();\n }\n }\n setFocused(false);\n _onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(e);\n }\n };\n\n // check if value changed\n useEffect(function () {\n valueChangedRef.current = false;\n }, [open]);\n useEffect(function () {\n valueChangedRef.current = true;\n }, [value]);\n\n // Global click handler\n useEffect(function () {\n return addGlobalMouseDownEvent(function (e) {\n var target = getTargetFromEvent(e);\n var clickedOutside = isClickOutside(target);\n if (open) {\n if (!clickedOutside) {\n preventBlurRef.current = true;\n\n // Always set back in case `onBlur` prevented by user\n raf(function () {\n preventBlurRef.current = false;\n });\n } else if (!changeOnBlur && (!focused || clickedOutside)) {\n triggerOpen(false);\n }\n }\n });\n });\n return [inputProps, {\n focused: focused,\n typing: typing\n }];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nexport default function usePresets(presets, legacyRanges) {\n return React.useMemo(function () {\n if (presets) {\n return presets;\n }\n if (legacyRanges) {\n warning(false, '`ranges` is deprecated. Please use `presets` instead.');\n return Object.entries(legacyRanges).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n label = _ref2[0],\n value = _ref2[1];\n return {\n label: label,\n value: value\n };\n });\n }\n return [];\n }, [presets, legacyRanges]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nexport default function useTextValueMapping(_ref) {\n var valueTexts = _ref.valueTexts,\n onTextChange = _ref.onTextChange;\n var _React$useState = React.useState(''),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n text = _React$useState2[0],\n setInnerText = _React$useState2[1];\n var valueTextsRef = React.useRef([]);\n valueTextsRef.current = valueTexts;\n function triggerTextChange(value) {\n setInnerText(value);\n onTextChange(value);\n }\n function resetText() {\n setInnerText(valueTextsRef.current[0]);\n }\n useLayoutEffect(function () {\n if (valueTexts.every(function (valText) {\n return valText !== text;\n })) {\n resetText();\n }\n }, [valueTexts.join('||')]);\n return [text, triggerTextChange, resetText];\n}","import * as React from 'react';\nvar PanelContext = /*#__PURE__*/React.createContext({});\nexport default PanelContext;","import React from 'react';\nexport function useCellRender(_ref) {\n var cellRender = _ref.cellRender,\n monthCellRender = _ref.monthCellRender,\n dateRender = _ref.dateRender;\n var mergedCellRender = React.useMemo(function () {\n if (cellRender) return cellRender;\n if (!monthCellRender && !dateRender) return undefined;\n return function (current, info) {\n var date = current;\n if (dateRender && info.type === 'date') {\n return dateRender(date, info.today);\n }\n if (monthCellRender && info.type === 'month') {\n return monthCellRender(date, info.locale);\n }\n return info.originNode;\n };\n }, [cellRender, monthCellRender, dateRender]);\n return mergedCellRender;\n}","export function leftPad(str, length) {\n var fill = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n var current = String(str);\n while (current.length < length) {\n current = \"\".concat(fill).concat(str);\n }\n return current;\n}\nexport var tuple = function tuple() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args;\n};\nexport function toArray(val) {\n if (val === null || val === undefined) {\n return [];\n }\n return Array.isArray(val) ? val : [val];\n}\nexport function getValue(values, index) {\n return values ? values[index] : null;\n}\nexport function updateValues(values, value, index) {\n var newValues = [getValue(values, 0), getValue(values, 1)];\n newValues[index] = typeof value === 'function' ? value(newValues[index]) : value;\n if (!newValues[0] && !newValues[1]) {\n return null;\n }\n return newValues;\n}\nexport function executeValue(value) {\n return typeof value === 'function' ? value() : value;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isInRange } from \"../utils/dateUtil\";\nimport { getValue } from \"../utils/miscUtil\";\nexport default function useCellClassName(_ref) {\n var cellPrefixCls = _ref.cellPrefixCls,\n generateConfig = _ref.generateConfig,\n rangedValue = _ref.rangedValue,\n hoverRangedValue = _ref.hoverRangedValue,\n isInView = _ref.isInView,\n isSameCell = _ref.isSameCell,\n offsetCell = _ref.offsetCell,\n today = _ref.today,\n value = _ref.value;\n function getClassName(currentDate) {\n var _ref2;\n var prevDate = offsetCell(currentDate, -1);\n var nextDate = offsetCell(currentDate, 1);\n var rangeStart = getValue(rangedValue, 0);\n var rangeEnd = getValue(rangedValue, 1);\n var hoverStart = getValue(hoverRangedValue, 0);\n var hoverEnd = getValue(hoverRangedValue, 1);\n var isRangeHovered = isInRange(generateConfig, hoverStart, hoverEnd, currentDate);\n function isRangeStart(date) {\n return isSameCell(rangeStart, date);\n }\n function isRangeEnd(date) {\n return isSameCell(rangeEnd, date);\n }\n var isHoverStart = isSameCell(hoverStart, currentDate);\n var isHoverEnd = isSameCell(hoverEnd, currentDate);\n var isHoverEdgeStart = (isRangeHovered || isHoverEnd) && (!isInView(prevDate) || isRangeEnd(prevDate));\n var isHoverEdgeEnd = (isRangeHovered || isHoverStart) && (!isInView(nextDate) || isRangeStart(nextDate));\n return _ref2 = {}, _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-in-view\"), isInView(currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-in-range\"), isInRange(generateConfig, rangeStart, rangeEnd, currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-start\"), isRangeStart(currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-end\"), isRangeEnd(currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-start-single\"), isRangeStart(currentDate) && !rangeEnd), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-end-single\"), isRangeEnd(currentDate) && !rangeStart), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-start-near-hover\"), isRangeStart(currentDate) && (isSameCell(prevDate, hoverStart) || isInRange(generateConfig, hoverStart, hoverEnd, prevDate))), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-end-near-hover\"), isRangeEnd(currentDate) && (isSameCell(nextDate, hoverEnd) || isInRange(generateConfig, hoverStart, hoverEnd, nextDate))), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover\"), isRangeHovered), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-start\"), isHoverStart), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-end\"), isHoverEnd), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-start\"), isHoverEdgeStart), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-end\"), isHoverEdgeEnd), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-start-near-range\"), isHoverEdgeStart && isSameCell(prevDate, rangeEnd)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-end-near-range\"), isHoverEdgeEnd && isSameCell(nextDate, rangeStart)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-today\"), isSameCell(today, currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-selected\"), isSameCell(value, currentDate)), _ref2;\n }\n return getClassName;\n}","import * as React from 'react';\nvar RangeContext = /*#__PURE__*/React.createContext({});\nexport default RangeContext;","export function setTime(generateConfig, date, hour, minute, second) {\n var nextTime = generateConfig.setHour(date, hour);\n nextTime = generateConfig.setMinute(nextTime, minute);\n nextTime = generateConfig.setSecond(nextTime, second);\n return nextTime;\n}\nexport function setDateTime(generateConfig, date, defaultDate) {\n if (!defaultDate) {\n return date;\n }\n var newDate = date;\n newDate = generateConfig.setHour(newDate, generateConfig.getHour(defaultDate));\n newDate = generateConfig.setMinute(newDate, generateConfig.getMinute(defaultDate));\n newDate = generateConfig.setSecond(newDate, generateConfig.getSecond(defaultDate));\n return newDate;\n}\nexport function getLowerBoundTime(hour, minute, second, hourStep, minuteStep, secondStep) {\n var lowerBoundHour = Math.floor(hour / hourStep) * hourStep;\n if (lowerBoundHour < hour) {\n return [lowerBoundHour, 60 - minuteStep, 60 - secondStep];\n }\n var lowerBoundMinute = Math.floor(minute / minuteStep) * minuteStep;\n if (lowerBoundMinute < minute) {\n return [lowerBoundHour, lowerBoundMinute, 60 - secondStep];\n }\n var lowerBoundSecond = Math.floor(second / secondStep) * secondStep;\n return [lowerBoundHour, lowerBoundMinute, lowerBoundSecond];\n}\nexport function getLastDay(generateConfig, date) {\n var year = generateConfig.getYear(date);\n var month = generateConfig.getMonth(date) + 1;\n var endDate = generateConfig.getEndDate(generateConfig.getFixedDate(\"\".concat(year, \"-\").concat(month, \"-01\")));\n var lastDay = generateConfig.getDate(endDate);\n var monthShow = month < 10 ? \"0\".concat(month) : \"\".concat(month);\n return \"\".concat(year, \"-\").concat(monthShow, \"-\").concat(lastDay);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport PanelContext from \"../PanelContext\";\nimport { getCellDateDisabled } from \"../utils/dateUtil\";\nimport { getLastDay } from \"../utils/timeUtil\";\nexport default function PanelBody(_ref) {\n var prefixCls = _ref.prefixCls,\n disabledDate = _ref.disabledDate,\n onSelect = _ref.onSelect,\n picker = _ref.picker,\n rowNum = _ref.rowNum,\n colNum = _ref.colNum,\n prefixColumn = _ref.prefixColumn,\n rowClassName = _ref.rowClassName,\n baseDate = _ref.baseDate,\n getCellClassName = _ref.getCellClassName,\n getCellText = _ref.getCellText,\n getCellNode = _ref.getCellNode,\n getCellDate = _ref.getCellDate,\n generateConfig = _ref.generateConfig,\n titleCell = _ref.titleCell,\n headerCells = _ref.headerCells;\n var _React$useContext = React.useContext(PanelContext),\n onDateMouseEnter = _React$useContext.onDateMouseEnter,\n onDateMouseLeave = _React$useContext.onDateMouseLeave,\n mode = _React$useContext.mode;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n\n // =============================== Body ===============================\n var rows = [];\n for (var i = 0; i < rowNum; i += 1) {\n var row = [];\n var rowStartDate = void 0;\n var _loop = function _loop() {\n var _objectSpread2;\n var offset = i * colNum + j;\n var currentDate = getCellDate(baseDate, offset);\n var disabled = getCellDateDisabled({\n cellDate: currentDate,\n mode: mode,\n disabledDate: disabledDate,\n generateConfig: generateConfig\n });\n if (j === 0) {\n rowStartDate = currentDate;\n if (prefixColumn) {\n row.push(prefixColumn(rowStartDate));\n }\n }\n var title = titleCell && titleCell(currentDate);\n var inner = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, getCellText(currentDate));\n row.push( /*#__PURE__*/React.createElement(\"td\", {\n key: j,\n title: title,\n className: classNames(cellPrefixCls, _objectSpread((_objectSpread2 = {}, _defineProperty(_objectSpread2, \"\".concat(cellPrefixCls, \"-disabled\"), disabled), _defineProperty(_objectSpread2, \"\".concat(cellPrefixCls, \"-start\"), getCellText(currentDate) === 1 || picker === 'year' && Number(title) % 10 === 0), _defineProperty(_objectSpread2, \"\".concat(cellPrefixCls, \"-end\"), title === getLastDay(generateConfig, currentDate) || picker === 'year' && Number(title) % 10 === 9), _objectSpread2), getCellClassName(currentDate))),\n onClick: function onClick() {\n if (!disabled) {\n onSelect(currentDate);\n }\n },\n onMouseEnter: function onMouseEnter() {\n if (!disabled && onDateMouseEnter) {\n onDateMouseEnter(currentDate);\n }\n },\n onMouseLeave: function onMouseLeave() {\n if (!disabled && onDateMouseLeave) {\n onDateMouseLeave(currentDate);\n }\n }\n }, getCellNode ? getCellNode(currentDate, inner) : inner));\n };\n for (var j = 0; j < colNum; j += 1) {\n _loop();\n }\n rows.push( /*#__PURE__*/React.createElement(\"tr\", {\n key: i,\n className: rowClassName && rowClassName(rowStartDate)\n }, row));\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\")\n }, /*#__PURE__*/React.createElement(\"table\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, headerCells && /*#__PURE__*/React.createElement(\"thead\", null, /*#__PURE__*/React.createElement(\"tr\", null, headerCells)), /*#__PURE__*/React.createElement(\"tbody\", null, rows)));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useCellClassName from \"../../hooks/useCellClassName\";\nimport RangeContext from \"../../RangeContext\";\nimport { formatValue, getWeekStartDate, isSameDate, isSameMonth, WEEK_DAY_COUNT } from \"../../utils/dateUtil\";\nimport PanelBody from \"../PanelBody\";\nfunction DateBody(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n prefixColumn = props.prefixColumn,\n locale = props.locale,\n rowCount = props.rowCount,\n viewDate = props.viewDate,\n value = props.value,\n cellRender = props.cellRender,\n isSameCell = props.isSameCell;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var baseDate = getWeekStartDate(locale.locale, generateConfig, viewDate);\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale.locale);\n var today = generateConfig.getNow();\n\n // ============================== Header ==============================\n var headerCells = [];\n var weekDaysLocale = locale.shortWeekDays || (generateConfig.locale.getShortWeekDays ? generateConfig.locale.getShortWeekDays(locale.locale) : []);\n if (prefixColumn) {\n headerCells.push( /*#__PURE__*/React.createElement(\"th\", {\n key: \"empty\",\n \"aria-label\": \"empty cell\"\n }));\n }\n for (var i = 0; i < WEEK_DAY_COUNT; i += 1) {\n headerCells.push( /*#__PURE__*/React.createElement(\"th\", {\n key: i\n }, weekDaysLocale[(i + weekFirstDay) % WEEK_DAY_COUNT]));\n }\n\n // =============================== Body ===============================\n var getCellClassName = useCellClassName({\n cellPrefixCls: cellPrefixCls,\n today: today,\n value: value,\n generateConfig: generateConfig,\n rangedValue: prefixColumn ? null : rangedValue,\n hoverRangedValue: prefixColumn ? null : hoverRangedValue,\n isSameCell: isSameCell || function (current, target) {\n return isSameDate(generateConfig, current, target);\n },\n isInView: function isInView(date) {\n return isSameMonth(generateConfig, date, viewDate);\n },\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addDate(date, offset);\n }\n });\n var getCellNode = cellRender ? function (date, wrapperNode) {\n return cellRender(date, {\n originNode: wrapperNode,\n today: today,\n type: 'date',\n locale: locale\n });\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: rowCount,\n colNum: WEEK_DAY_COUNT,\n baseDate: baseDate,\n getCellNode: getCellNode,\n getCellText: generateConfig.getDate,\n getCellClassName: getCellClassName,\n getCellDate: generateConfig.addDate,\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY-MM-DD',\n generateConfig: generateConfig\n });\n },\n headerCells: headerCells\n }));\n}\nexport default DateBody;","import * as React from 'react';\nimport PanelContext from \"../PanelContext\";\nvar HIDDEN_STYLE = {\n visibility: 'hidden'\n};\nfunction Header(_ref) {\n var prefixCls = _ref.prefixCls,\n _ref$prevIcon = _ref.prevIcon,\n prevIcon = _ref$prevIcon === void 0 ? \"\\u2039\" : _ref$prevIcon,\n _ref$nextIcon = _ref.nextIcon,\n nextIcon = _ref$nextIcon === void 0 ? \"\\u203A\" : _ref$nextIcon,\n _ref$superPrevIcon = _ref.superPrevIcon,\n superPrevIcon = _ref$superPrevIcon === void 0 ? \"\\xAB\" : _ref$superPrevIcon,\n _ref$superNextIcon = _ref.superNextIcon,\n superNextIcon = _ref$superNextIcon === void 0 ? \"\\xBB\" : _ref$superNextIcon,\n onSuperPrev = _ref.onSuperPrev,\n onSuperNext = _ref.onSuperNext,\n onPrev = _ref.onPrev,\n onNext = _ref.onNext,\n children = _ref.children;\n var _React$useContext = React.useContext(PanelContext),\n hideNextBtn = _React$useContext.hideNextBtn,\n hidePrevBtn = _React$useContext.hidePrevBtn;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: prefixCls\n }, onSuperPrev && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onSuperPrev,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-super-prev-btn\"),\n style: hidePrevBtn ? HIDDEN_STYLE : {}\n }, superPrevIcon), onPrev && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onPrev,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-prev-btn\"),\n style: hidePrevBtn ? HIDDEN_STYLE : {}\n }, prevIcon), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-view\")\n }, children), onNext && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onNext,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-next-btn\"),\n style: hideNextBtn ? HIDDEN_STYLE : {}\n }, nextIcon), onSuperNext && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onSuperNext,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-super-next-btn\"),\n style: hideNextBtn ? HIDDEN_STYLE : {}\n }, superNextIcon));\n}\nexport default Header;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from \"../Header\";\nimport PanelContext from \"../../PanelContext\";\nimport { formatValue } from \"../../utils/dateUtil\";\nfunction DateHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n viewDate = props.viewDate,\n onNextMonth = props.onNextMonth,\n onPrevMonth = props.onPrevMonth,\n onNextYear = props.onNextYear,\n onPrevYear = props.onPrevYear,\n onYearClick = props.onYearClick,\n onMonthClick = props.onMonthClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);\n var month = generateConfig.getMonth(viewDate);\n\n // =================== Month & Year ===================\n var yearNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"year\",\n onClick: onYearClick,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(viewDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }));\n var monthNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"month\",\n onClick: onMonthClick,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-month-btn\")\n }, locale.monthFormat ? formatValue(viewDate, {\n locale: locale,\n format: locale.monthFormat,\n generateConfig: generateConfig\n }) : monthsLocale[month]);\n var monthYearNodes = locale.monthBeforeYear ? [monthNode, yearNode] : [yearNode, monthNode];\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevYear,\n onPrev: onPrevMonth,\n onNext: onNextMonth,\n onSuperNext: onNextYear\n }), monthYearNodes);\n}\nexport default DateHeader;","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 classNames from 'classnames';\nimport * as React from 'react';\nimport { WEEK_DAY_COUNT } from \"../../utils/dateUtil\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\nimport DateBody from \"./DateBody\";\nimport DateHeader from \"./DateHeader\";\nvar DATE_ROW_COUNT = 6;\nfunction DatePanel(props) {\n var prefixCls = props.prefixCls,\n _props$panelName = props.panelName,\n panelName = _props$panelName === void 0 ? 'date' : _props$panelName,\n keyboardConfig = props.keyboardConfig,\n active = props.active,\n operationRef = props.operationRef,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n onViewDateChange = props.onViewDateChange,\n onPanelChange = props.onPanelChange,\n _onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-\").concat(panelName, \"-panel\");\n\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, _objectSpread({\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addDate(value || viewDate, diff), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addDate(value || viewDate, diff * WEEK_DAY_COUNT), 'key');\n },\n onPageUpDown: function onPageUpDown(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');\n }\n }, keyboardConfig));\n }\n };\n\n // ==================== View Operation ====================\n var onYearChange = function onYearChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n var onMonthChange = function onMonthChange(diff) {\n var newDate = generateConfig.addMonth(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, _defineProperty({}, \"\".concat(panelPrefixCls, \"-active\"), active))\n }, /*#__PURE__*/React.createElement(DateHeader, _extends({}, props, {\n prefixCls: prefixCls,\n value: value,\n viewDate: viewDate\n // View Operation\n ,\n onPrevYear: function onPrevYear() {\n onYearChange(-1);\n },\n onNextYear: function onNextYear() {\n onYearChange(1);\n },\n onPrevMonth: function onPrevMonth() {\n onMonthChange(-1);\n },\n onNextMonth: function onNextMonth() {\n onMonthChange(1);\n },\n onMonthClick: function onMonthClick() {\n onPanelChange('month', viewDate);\n },\n onYearClick: function onYearClick() {\n onPanelChange('year', viewDate);\n }\n })), /*#__PURE__*/React.createElement(DateBody, _extends({}, props, {\n onSelect: function onSelect(date) {\n return _onSelect(date, 'mouse');\n },\n prefixCls: prefixCls,\n value: value,\n viewDate: viewDate,\n rowCount: DATE_ROW_COUNT\n })));\n}\nexport default DatePanel;","import * as React from 'react';\nimport Header from \"../Header\";\nimport PanelContext from \"../../PanelContext\";\nimport { formatValue } from \"../../utils/dateUtil\";\nfunction TimeHeader(props) {\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n value = props.value,\n format = props.format;\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n return /*#__PURE__*/React.createElement(Header, {\n prefixCls: headerPrefixCls\n }, value ? formatValue(value, {\n locale: locale,\n format: format,\n generateConfig: generateConfig\n }) : \"\\xA0\");\n}\nexport default TimeHeader;","import { setTime as utilSetTime } from \"../utils/timeUtil\";\nexport default function useTimeSelection(_ref) {\n var value = _ref.value,\n generateConfig = _ref.generateConfig,\n disabledMinutes = _ref.disabledMinutes,\n disabledSeconds = _ref.disabledSeconds,\n minutes = _ref.minutes,\n seconds = _ref.seconds,\n use12Hours = _ref.use12Hours;\n var setTime = function setTime(isNewPM, newHour, newMinute, newSecond) {\n var newDate = value || generateConfig.getNow();\n var mergedHour = Math.max(0, newHour);\n var mergedMinute = Math.max(0, newMinute);\n var mergedSecond = Math.max(0, newSecond);\n var newDisabledMinutes = disabledMinutes && disabledMinutes(mergedHour);\n if (newDisabledMinutes !== null && newDisabledMinutes !== void 0 && newDisabledMinutes.includes(mergedMinute)) {\n // find the first available minute in minutes\n var availableMinute = minutes.find(function (i) {\n return !newDisabledMinutes.includes(i.value);\n });\n if (availableMinute) {\n mergedMinute = availableMinute.value;\n } else {\n return null;\n }\n }\n var newDisabledSeconds = disabledSeconds && disabledSeconds(mergedHour, mergedMinute);\n if (newDisabledSeconds !== null && newDisabledSeconds !== void 0 && newDisabledSeconds.includes(mergedSecond)) {\n // find the first available second in seconds\n var availableSecond = seconds.find(function (i) {\n return !newDisabledSeconds.includes(i.value);\n });\n if (availableSecond) {\n mergedSecond = availableSecond.value;\n } else {\n return null;\n }\n }\n newDate = utilSetTime(generateConfig, newDate, !use12Hours || !isNewPM ? mergedHour : mergedHour + 12, mergedMinute, mergedSecond);\n return newDate;\n };\n return setTime;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport { useRef, useLayoutEffect } from 'react';\nimport classNames from 'classnames';\nimport { scrollTo, waitElementReady } from \"../../utils/uiUtil\";\nimport PanelContext from \"../../PanelContext\";\nfunction TimeUnitColumn(props) {\n var prefixCls = props.prefixCls,\n units = props.units,\n onSelect = props.onSelect,\n value = props.value,\n active = props.active,\n hideDisabledOptions = props.hideDisabledOptions,\n info = props.info,\n type = props.type;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var _React$useContext = React.useContext(PanelContext),\n open = _React$useContext.open;\n var ulRef = useRef(null);\n var liRefs = useRef(new Map());\n var scrollRef = useRef();\n\n // `useLayoutEffect` here to avoid blink by duration is 0\n useLayoutEffect(function () {\n var li = liRefs.current.get(value);\n if (li && open !== false) {\n scrollTo(ulRef.current, li.offsetTop, 120);\n }\n }, [value]);\n useLayoutEffect(function () {\n if (open) {\n var li = liRefs.current.get(value);\n if (li) {\n scrollRef.current = waitElementReady(li, function () {\n scrollTo(ulRef.current, li.offsetTop, 0);\n });\n }\n }\n return function () {\n var _scrollRef$current;\n (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.call(scrollRef);\n };\n }, [open]);\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: classNames(\"\".concat(prefixCls, \"-column\"), _defineProperty({}, \"\".concat(prefixCls, \"-column-active\"), active)),\n ref: ulRef,\n style: {\n position: 'relative'\n }\n }, units.map(function (unit) {\n var _classNames2;\n if (hideDisabledOptions && unit.disabled) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n key: unit.value,\n ref: function ref(element) {\n liRefs.current.set(unit.value, element);\n },\n className: classNames(cellPrefixCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(cellPrefixCls, \"-disabled\"), unit.disabled), _defineProperty(_classNames2, \"\".concat(cellPrefixCls, \"-selected\"), value === unit.value), _classNames2)),\n onClick: function onClick() {\n if (unit.disabled) {\n return;\n }\n onSelect(unit.value);\n }\n }, info.cellRender ? info.cellRender(unit.value, {\n today: info.today,\n locale: info.locale,\n originNode: /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, unit.label),\n type: 'time',\n subType: type\n }) : /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, unit.label));\n }));\n}\nexport default TimeUnitColumn;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport * as React from 'react';\nimport useTimeSelection from \"../../hooks/useTimeSelection\";\nimport { leftPad } from \"../../utils/miscUtil\";\nimport TimeUnitColumn from \"./TimeUnitColumn\";\nfunction shouldUnitsUpdate(prevUnits, nextUnits) {\n if (prevUnits.length !== nextUnits.length) return true;\n // if any unit's disabled status is different, the units should be re-evaluted\n for (var i = 0; i < prevUnits.length; i += 1) {\n if (prevUnits[i].disabled !== nextUnits[i].disabled) return true;\n }\n return false;\n}\nfunction generateUnits(start, end, step, disabledUnits) {\n var units = [];\n var integerStep = step >= 1 ? step | 0 : 1;\n for (var i = start; i <= end; i += integerStep) {\n units.push({\n label: leftPad(i, 2),\n value: i,\n disabled: (disabledUnits || []).includes(i)\n });\n }\n return units;\n}\nfunction TimeBody(props) {\n var generateConfig = props.generateConfig,\n prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n activeColumnIndex = props.activeColumnIndex,\n value = props.value,\n showHour = props.showHour,\n showMinute = props.showMinute,\n showSecond = props.showSecond,\n use12Hours = props.use12Hours,\n _props$hourStep = props.hourStep,\n hourStep = _props$hourStep === void 0 ? 1 : _props$hourStep,\n _props$minuteStep = props.minuteStep,\n minuteStep = _props$minuteStep === void 0 ? 1 : _props$minuteStep,\n _props$secondStep = props.secondStep,\n secondStep = _props$secondStep === void 0 ? 1 : _props$secondStep,\n disabledHours = props.disabledHours,\n disabledMinutes = props.disabledMinutes,\n disabledSeconds = props.disabledSeconds,\n disabledTime = props.disabledTime,\n hideDisabledOptions = props.hideDisabledOptions,\n onSelect = props.onSelect,\n cellRender = props.cellRender,\n locale = props.locale;\n\n // Misc\n var columns = [];\n var contentPrefixCls = \"\".concat(prefixCls, \"-content\");\n var columnPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n var isPM;\n var originHour = value ? generateConfig.getHour(value) : -1;\n var hour = originHour;\n var minute = value ? generateConfig.getMinute(value) : -1;\n var second = value ? generateConfig.getSecond(value) : -1;\n\n // Disabled Time\n var now = generateConfig.getNow();\n var _React$useMemo = React.useMemo(function () {\n if (disabledTime) {\n var disabledConfig = disabledTime(now);\n return [disabledConfig.disabledHours, disabledConfig.disabledMinutes, disabledConfig.disabledSeconds];\n }\n return [disabledHours, disabledMinutes, disabledSeconds];\n }, [disabledHours, disabledMinutes, disabledSeconds, disabledTime, now]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 3),\n mergedDisabledHours = _React$useMemo2[0],\n mergedDisabledMinutes = _React$useMemo2[1],\n mergedDisabledSeconds = _React$useMemo2[2];\n\n // ========================= Unit =========================\n var rawHours = generateUnits(0, 23, hourStep, mergedDisabledHours && mergedDisabledHours());\n var memorizedRawHours = useMemo(function () {\n return rawHours;\n }, rawHours, shouldUnitsUpdate);\n\n // Should additional logic to handle 12 hours\n if (use12Hours) {\n isPM = hour >= 12; // -1 means should display AM\n hour %= 12;\n }\n var _React$useMemo3 = React.useMemo(function () {\n if (!use12Hours) {\n return [false, false];\n }\n var AMPMDisabled = [true, true];\n memorizedRawHours.forEach(function (_ref) {\n var disabled = _ref.disabled,\n hourValue = _ref.value;\n if (disabled) return;\n if (hourValue >= 12) {\n AMPMDisabled[1] = false;\n } else {\n AMPMDisabled[0] = false;\n }\n });\n return AMPMDisabled;\n }, [use12Hours, memorizedRawHours]),\n _React$useMemo4 = _slicedToArray(_React$useMemo3, 2),\n AMDisabled = _React$useMemo4[0],\n PMDisabled = _React$useMemo4[1];\n var hours = React.useMemo(function () {\n if (!use12Hours) return memorizedRawHours;\n return memorizedRawHours.filter(isPM ? function (hourMeta) {\n return hourMeta.value >= 12;\n } : function (hourMeta) {\n return hourMeta.value < 12;\n }).map(function (hourMeta) {\n var hourValue = hourMeta.value % 12;\n var hourLabel = hourValue === 0 ? '12' : leftPad(hourValue, 2);\n return _objectSpread(_objectSpread({}, hourMeta), {}, {\n label: hourLabel,\n value: hourValue\n });\n });\n }, [use12Hours, isPM, memorizedRawHours]);\n var minutes = generateUnits(0, 59, minuteStep, mergedDisabledMinutes && mergedDisabledMinutes(originHour));\n var seconds = generateUnits(0, 59, secondStep, mergedDisabledSeconds && mergedDisabledSeconds(originHour, minute));\n\n // Set Time\n var setTime = useTimeSelection({\n value: value,\n generateConfig: generateConfig,\n disabledMinutes: mergedDisabledMinutes,\n disabledSeconds: mergedDisabledSeconds,\n minutes: minutes,\n seconds: seconds,\n use12Hours: use12Hours\n });\n\n // ====================== Operations ======================\n operationRef.current = {\n onUpDown: function onUpDown(diff) {\n var column = columns[activeColumnIndex];\n if (column) {\n var valueIndex = column.units.findIndex(function (unit) {\n return unit.value === column.value;\n });\n var unitLen = column.units.length;\n for (var i = 1; i < unitLen; i += 1) {\n var nextUnit = column.units[(valueIndex + diff * i + unitLen) % unitLen];\n if (nextUnit.disabled !== true) {\n column.onSelect(nextUnit.value);\n break;\n }\n }\n }\n }\n };\n\n // ======================== Render ========================\n function addColumnNode(condition, node, columnValue, units, onColumnSelect) {\n if (condition !== false) {\n columns.push({\n node: /*#__PURE__*/React.cloneElement(node, {\n prefixCls: columnPrefixCls,\n value: columnValue,\n active: activeColumnIndex === columns.length,\n onSelect: onColumnSelect,\n units: units,\n hideDisabledOptions: hideDisabledOptions\n }),\n onSelect: onColumnSelect,\n value: columnValue,\n units: units\n });\n }\n }\n\n // Hour\n addColumnNode(showHour, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"hour\",\n type: \"hour\",\n info: {\n today: now,\n locale: locale,\n cellRender: cellRender\n }\n }), hour, hours, function (num) {\n onSelect(setTime(isPM, num, minute, second), 'mouse');\n });\n\n // Minute\n addColumnNode(showMinute, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"minute\",\n type: \"minute\",\n info: {\n today: now,\n locale: locale,\n cellRender: cellRender\n }\n }), minute, minutes, function (num) {\n onSelect(setTime(isPM, hour, num, second), 'mouse');\n });\n\n // Second\n addColumnNode(showSecond, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"second\",\n type: \"second\",\n info: {\n today: now,\n locale: locale,\n cellRender: cellRender\n }\n }), second, seconds, function (num) {\n onSelect(setTime(isPM, hour, minute, num), 'mouse');\n });\n\n // 12 Hours\n var PMIndex = -1;\n if (typeof isPM === 'boolean') {\n PMIndex = isPM ? 1 : 0;\n }\n addColumnNode(use12Hours === true, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"meridiem\",\n type: \"meridiem\",\n info: {\n today: now,\n locale: locale,\n cellRender: cellRender\n }\n }), PMIndex, [{\n label: 'AM',\n value: 0,\n disabled: AMDisabled\n }, {\n label: 'PM',\n value: 1,\n disabled: PMDisabled\n }], function (num) {\n onSelect(setTime(!!num, hour, minute, second), 'mouse');\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: contentPrefixCls\n }, columns.map(function (_ref2) {\n var node = _ref2.node;\n return node;\n }));\n}\nexport default TimeBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport TimeHeader from \"./TimeHeader\";\nimport TimeBody from \"./TimeBody\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\nvar countBoolean = function countBoolean(boolList) {\n return boolList.filter(function (bool) {\n return bool !== false;\n }).length;\n};\nfunction TimePanel(props) {\n var generateConfig = props.generateConfig,\n _props$format = props.format,\n format = _props$format === void 0 ? 'HH:mm:ss' : _props$format,\n prefixCls = props.prefixCls,\n active = props.active,\n operationRef = props.operationRef,\n showHour = props.showHour,\n showMinute = props.showMinute,\n showSecond = props.showSecond,\n _props$use12Hours = props.use12Hours,\n use12Hours = _props$use12Hours === void 0 ? false : _props$use12Hours,\n onSelect = props.onSelect,\n value = props.value;\n var panelPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n var bodyOperationRef = React.useRef();\n\n // ======================= Keyboard =======================\n var _React$useState = React.useState(-1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeColumnIndex = _React$useState2[0],\n setActiveColumnIndex = _React$useState2[1];\n var columnsCount = countBoolean([showHour, showMinute, showSecond, use12Hours]);\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n setActiveColumnIndex((activeColumnIndex + diff + columnsCount) % columnsCount);\n },\n onUpDown: function onUpDown(diff) {\n if (activeColumnIndex === -1) {\n setActiveColumnIndex(0);\n } else if (bodyOperationRef.current) {\n bodyOperationRef.current.onUpDown(diff);\n }\n },\n onEnter: function onEnter() {\n onSelect(value || generateConfig.getNow(), 'key');\n setActiveColumnIndex(-1);\n }\n });\n },\n onBlur: function onBlur() {\n setActiveColumnIndex(-1);\n }\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, _defineProperty({}, \"\".concat(panelPrefixCls, \"-active\"), active))\n }, /*#__PURE__*/React.createElement(TimeHeader, _extends({}, props, {\n format: format,\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(TimeBody, _extends({}, props, {\n prefixCls: prefixCls,\n activeColumnIndex: activeColumnIndex,\n operationRef: bodyOperationRef\n })));\n}\nexport default TimePanel;","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 _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { tuple } from \"../../utils/miscUtil\";\nimport { setDateTime as setTime } from \"../../utils/timeUtil\";\nimport DatePanel from \"../DatePanel\";\nimport TimePanel from \"../TimePanel\";\nvar ACTIVE_PANEL = tuple('date', 'time');\nfunction DatetimePanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n generateConfig = props.generateConfig,\n value = props.value,\n defaultValue = props.defaultValue,\n disabledTime = props.disabledTime,\n showTime = props.showTime,\n onSelect = props.onSelect,\n cellRender = props.cellRender;\n var panelPrefixCls = \"\".concat(prefixCls, \"-datetime-panel\");\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activePanel = _React$useState2[0],\n setActivePanel = _React$useState2[1];\n var dateOperationRef = React.useRef({});\n var timeOperationRef = React.useRef({});\n var timeProps = _typeof(showTime) === 'object' ? _objectSpread({}, showTime) : {};\n\n // ======================= Keyboard =======================\n function getNextActive(offset) {\n var activeIndex = ACTIVE_PANEL.indexOf(activePanel) + offset;\n var nextActivePanel = ACTIVE_PANEL[activeIndex] || null;\n return nextActivePanel;\n }\n var onBlur = function onBlur(e) {\n if (timeOperationRef.current.onBlur) {\n timeOperationRef.current.onBlur(e);\n }\n setActivePanel(null);\n };\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n // Switch active panel\n if (event.which === KeyCode.TAB) {\n var nextActivePanel = getNextActive(event.shiftKey ? -1 : 1);\n setActivePanel(nextActivePanel);\n if (nextActivePanel) {\n event.preventDefault();\n }\n return true;\n }\n\n // Operate on current active panel\n if (activePanel) {\n var ref = activePanel === 'date' ? dateOperationRef : timeOperationRef;\n if (ref.current && ref.current.onKeyDown) {\n ref.current.onKeyDown(event);\n }\n return true;\n }\n\n // Switch first active panel if operate without panel\n if ([KeyCode.LEFT, KeyCode.RIGHT, KeyCode.UP, KeyCode.DOWN].includes(event.which)) {\n setActivePanel('date');\n return true;\n }\n return false;\n },\n onBlur: onBlur,\n onClose: onBlur\n };\n\n // ======================== Events ========================\n var onInternalSelect = function onInternalSelect(date, source) {\n var selectedDate = date;\n if (source === 'date' && !value && timeProps.defaultValue) {\n // Date with time defaultValue\n selectedDate = generateConfig.setHour(selectedDate, generateConfig.getHour(timeProps.defaultValue));\n selectedDate = generateConfig.setMinute(selectedDate, generateConfig.getMinute(timeProps.defaultValue));\n selectedDate = generateConfig.setSecond(selectedDate, generateConfig.getSecond(timeProps.defaultValue));\n } else if (source === 'time' && !value && defaultValue) {\n selectedDate = generateConfig.setYear(selectedDate, generateConfig.getYear(defaultValue));\n selectedDate = generateConfig.setMonth(selectedDate, generateConfig.getMonth(defaultValue));\n selectedDate = generateConfig.setDate(selectedDate, generateConfig.getDate(defaultValue));\n }\n if (onSelect) {\n onSelect(selectedDate, 'mouse');\n }\n };\n\n // ======================== Render ========================\n var disabledTimes = disabledTime ? disabledTime(value || null) : {};\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, _defineProperty({}, \"\".concat(panelPrefixCls, \"-active\"), activePanel))\n }, /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {\n cellRender: cellRender,\n operationRef: dateOperationRef,\n active: activePanel === 'date',\n onSelect: function onSelect(date) {\n onInternalSelect(setTime(generateConfig, date, !value && _typeof(showTime) === 'object' ? showTime.defaultValue : null), 'date');\n }\n })), /*#__PURE__*/React.createElement(TimePanel, _extends({}, props, {\n cellRender: cellRender ? function (current, info) {\n return cellRender(current, _objectSpread(_objectSpread({}, info), {}, {\n type: 'time'\n }));\n } : undefined,\n format: undefined\n }, timeProps, disabledTimes, {\n disabledTime: null,\n defaultValue: undefined,\n operationRef: timeOperationRef,\n active: activePanel === 'time',\n onSelect: function onSelect(date) {\n onInternalSelect(date, 'time');\n }\n })));\n}\nexport default DatetimePanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from \"../Header\";\nimport { DECADE_DISTANCE_COUNT } from \"./constant\";\nimport PanelContext from \"../../PanelContext\";\nfunction DecadeHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n viewDate = props.viewDate,\n onPrevDecades = props.onPrevDecades,\n onNextDecades = props.onNextDecades;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var yearNumber = generateConfig.getYear(viewDate);\n var startYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;\n var endYear = startYear + DECADE_DISTANCE_COUNT - 1;\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevDecades,\n onSuperNext: onNextDecades\n }), startYear, \"-\", endYear);\n}\nexport default DecadeHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport { DECADE_DISTANCE_COUNT, DECADE_UNIT_DIFF } from \"./constant\";\nimport PanelBody from \"../PanelBody\";\nexport var DECADE_COL_COUNT = 3;\nvar DECADE_ROW_COUNT = 4;\nfunction DecadeBody(props) {\n var DECADE_UNIT_DIFF_DES = DECADE_UNIT_DIFF - 1;\n var prefixCls = props.prefixCls,\n viewDate = props.viewDate,\n generateConfig = props.generateConfig,\n cellRender = props.cellRender,\n locale = props.locale;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var yearNumber = generateConfig.getYear(viewDate);\n var decadeYearNumber = Math.floor(yearNumber / DECADE_UNIT_DIFF) * DECADE_UNIT_DIFF;\n var startDecadeYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;\n var endDecadeYear = startDecadeYear + DECADE_DISTANCE_COUNT - 1;\n var baseDecadeYear = generateConfig.setYear(viewDate, startDecadeYear - Math.ceil((DECADE_COL_COUNT * DECADE_ROW_COUNT * DECADE_UNIT_DIFF - DECADE_DISTANCE_COUNT) / 2));\n var getCellClassName = function getCellClassName(date) {\n var _ref;\n var startDecadeNumber = generateConfig.getYear(date);\n var endDecadeNumber = startDecadeNumber + DECADE_UNIT_DIFF_DES;\n return _ref = {}, _defineProperty(_ref, \"\".concat(cellPrefixCls, \"-in-view\"), startDecadeYear <= startDecadeNumber && endDecadeNumber <= endDecadeYear), _defineProperty(_ref, \"\".concat(cellPrefixCls, \"-selected\"), startDecadeNumber === decadeYearNumber), _ref;\n };\n var getCellNode = cellRender ? function (date, wrapperNode) {\n return cellRender(date, {\n originNode: wrapperNode,\n today: generateConfig.getNow(),\n type: 'decade',\n locale: locale\n });\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: DECADE_ROW_COUNT,\n colNum: DECADE_COL_COUNT,\n baseDate: baseDecadeYear,\n getCellNode: getCellNode,\n getCellText: function getCellText(date) {\n var startDecadeNumber = generateConfig.getYear(date);\n return \"\".concat(startDecadeNumber, \"-\").concat(startDecadeNumber + DECADE_UNIT_DIFF_DES);\n },\n getCellClassName: getCellClassName,\n getCellDate: function getCellDate(date, offset) {\n return generateConfig.addYear(date, offset * DECADE_UNIT_DIFF);\n }\n }));\n}\nexport default DecadeBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport DecadeHeader from \"./DecadeHeader\";\nimport DecadeBody, { DECADE_COL_COUNT } from \"./DecadeBody\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\nimport { DECADE_DISTANCE_COUNT, DECADE_UNIT_DIFF } from \"./constant\";\nexport { DECADE_DISTANCE_COUNT, DECADE_UNIT_DIFF };\nfunction DecadePanel(props) {\n var prefixCls = props.prefixCls,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n viewDate = props.viewDate,\n operationRef = props.operationRef,\n onSelect = props.onSelect,\n onPanelChange = props.onPanelChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-decade-panel\");\n\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n onSelect(generateConfig.addYear(viewDate, diff * DECADE_UNIT_DIFF), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n onSelect(generateConfig.addYear(viewDate, diff * DECADE_DISTANCE_COUNT), 'key');\n },\n onUpDown: function onUpDown(diff) {\n onSelect(generateConfig.addYear(viewDate, diff * DECADE_UNIT_DIFF * DECADE_COL_COUNT), 'key');\n },\n onEnter: function onEnter() {\n onPanelChange('year', viewDate);\n }\n });\n }\n };\n\n // ==================== View Operation ====================\n var onDecadesChange = function onDecadesChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff * DECADE_DISTANCE_COUNT);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n var onInternalSelect = function onInternalSelect(date) {\n onSelect(date, 'mouse');\n onPanelChange('year', date);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(DecadeHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevDecades: function onPrevDecades() {\n onDecadesChange(-1);\n },\n onNextDecades: function onNextDecades() {\n onDecadesChange(1);\n }\n })), /*#__PURE__*/React.createElement(DecadeBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: onInternalSelect\n })));\n}\nexport default DecadePanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from \"../Header\";\nimport PanelContext from \"../../PanelContext\";\nimport { formatValue } from \"../../utils/dateUtil\";\nfunction MonthHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n viewDate = props.viewDate,\n onNextYear = props.onNextYear,\n onPrevYear = props.onPrevYear,\n onYearClick = props.onYearClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevYear,\n onSuperNext: onNextYear\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onYearClick,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(viewDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n })));\n}\nexport default MonthHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useCellClassName from \"../../hooks/useCellClassName\";\nimport RangeContext from \"../../RangeContext\";\nimport { formatValue, isSameMonth } from \"../../utils/dateUtil\";\nimport PanelBody from \"../PanelBody\";\nexport var MONTH_COL_COUNT = 3;\nvar MONTH_ROW_COUNT = 4;\nfunction MonthBody(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n value = props.value,\n viewDate = props.viewDate,\n generateConfig = props.generateConfig,\n cellRender = props.cellRender;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var getCellClassName = useCellClassName({\n cellPrefixCls: cellPrefixCls,\n value: value,\n generateConfig: generateConfig,\n rangedValue: rangedValue,\n hoverRangedValue: hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameMonth(generateConfig, current, target);\n },\n isInView: function isInView() {\n return true;\n },\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addMonth(date, offset);\n }\n });\n var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);\n var baseMonth = generateConfig.setMonth(viewDate, 0);\n var getCellNode = cellRender ? function (date, wrapperNode) {\n return cellRender(date, {\n originNode: wrapperNode,\n locale: locale,\n today: generateConfig.getNow(),\n type: 'month'\n });\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: MONTH_ROW_COUNT,\n colNum: MONTH_COL_COUNT,\n baseDate: baseMonth,\n getCellNode: getCellNode,\n getCellText: function getCellText(date) {\n return locale.monthFormat ? formatValue(date, {\n locale: locale,\n format: locale.monthFormat,\n generateConfig: generateConfig\n }) : monthsLocale[generateConfig.getMonth(date)];\n },\n getCellClassName: getCellClassName,\n getCellDate: generateConfig.addMonth,\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY-MM',\n generateConfig: generateConfig\n });\n }\n }));\n}\nexport default MonthBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport MonthHeader from \"./MonthHeader\";\nimport MonthBody, { MONTH_COL_COUNT } from \"./MonthBody\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\nfunction MonthPanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n onPanelChange = props.onPanelChange,\n _onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-month-panel\");\n\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff * MONTH_COL_COUNT), 'key');\n },\n onEnter: function onEnter() {\n onPanelChange('date', value || viewDate);\n }\n });\n }\n };\n\n // ==================== View Operation ====================\n var onYearChange = function onYearChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(MonthHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevYear: function onPrevYear() {\n onYearChange(-1);\n },\n onNextYear: function onNextYear() {\n onYearChange(1);\n },\n onYearClick: function onYearClick() {\n onPanelChange('year', viewDate);\n }\n })), /*#__PURE__*/React.createElement(MonthBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: function onSelect(date) {\n _onSelect(date, 'mouse');\n onPanelChange('date', date);\n }\n })));\n}\nexport default MonthPanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from \"../Header\";\nimport PanelContext from \"../../PanelContext\";\nimport { formatValue } from \"../../utils/dateUtil\";\nfunction QuarterHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n viewDate = props.viewDate,\n onNextYear = props.onNextYear,\n onPrevYear = props.onPrevYear,\n onYearClick = props.onYearClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevYear,\n onSuperNext: onNextYear\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onYearClick,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(viewDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n })));\n}\nexport default QuarterHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { formatValue, isSameQuarter } from \"../../utils/dateUtil\";\nimport RangeContext from \"../../RangeContext\";\nimport useCellClassName from \"../../hooks/useCellClassName\";\nimport PanelBody from \"../PanelBody\";\nexport var QUARTER_COL_COUNT = 4;\nvar QUARTER_ROW_COUNT = 1;\nfunction QuarterBody(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n value = props.value,\n viewDate = props.viewDate,\n generateConfig = props.generateConfig,\n cellRender = props.cellRender;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var getCellClassName = useCellClassName({\n cellPrefixCls: cellPrefixCls,\n value: value,\n generateConfig: generateConfig,\n rangedValue: rangedValue,\n hoverRangedValue: hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameQuarter(generateConfig, current, target);\n },\n isInView: function isInView() {\n return true;\n },\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addMonth(date, offset * 3);\n }\n });\n var baseQuarter = generateConfig.setDate(generateConfig.setMonth(viewDate, 0), 1);\n var getCellNode = cellRender ? function (date, wrapperNode) {\n return cellRender(date, {\n originNode: wrapperNode,\n locale: locale,\n today: generateConfig.getNow(),\n type: 'quarter'\n });\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: QUARTER_ROW_COUNT,\n colNum: QUARTER_COL_COUNT,\n baseDate: baseQuarter,\n getCellNode: getCellNode,\n getCellText: function getCellText(date) {\n return formatValue(date, {\n locale: locale,\n format: locale.quarterFormat || '[Q]Q',\n generateConfig: generateConfig\n });\n },\n getCellClassName: getCellClassName,\n getCellDate: function getCellDate(date, offset) {\n return generateConfig.addMonth(date, offset * 3);\n },\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY-[Q]Q',\n generateConfig: generateConfig\n });\n }\n }));\n}\nexport default QuarterBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport QuarterHeader from \"./QuarterHeader\";\nimport QuarterBody from \"./QuarterBody\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\nfunction QuarterPanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n onPanelChange = props.onPanelChange,\n _onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-quarter-panel\");\n\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff * 3), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n }\n });\n }\n };\n\n // ==================== View Operation ====================\n var onYearChange = function onYearChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(QuarterHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevYear: function onPrevYear() {\n onYearChange(-1);\n },\n onNextYear: function onNextYear() {\n onYearChange(1);\n },\n onYearClick: function onYearClick() {\n onPanelChange('year', viewDate);\n }\n })), /*#__PURE__*/React.createElement(QuarterBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: function onSelect(date) {\n _onSelect(date, 'mouse');\n }\n })));\n}\nexport default QuarterPanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport PanelContext from \"../../PanelContext\";\nimport RangeContext from \"../../RangeContext\";\nimport { getCellDateDisabled, isInRange, isSameWeek } from \"../../utils/dateUtil\";\nimport DatePanel from \"../DatePanel\";\nfunction WeekPanel(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n value = props.value,\n disabledDate = props.disabledDate,\n onSelect = props.onSelect;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var _React$useContext2 = React.useContext(PanelContext),\n onDateMouseEnter = _React$useContext2.onDateMouseEnter,\n onDateMouseLeave = _React$useContext2.onDateMouseLeave;\n var rangeStart = (hoverRangedValue === null || hoverRangedValue === void 0 ? void 0 : hoverRangedValue[0]) || (rangedValue === null || rangedValue === void 0 ? void 0 : rangedValue[0]);\n var rangeEnd = (hoverRangedValue === null || hoverRangedValue === void 0 ? void 0 : hoverRangedValue[1]) || (rangedValue === null || rangedValue === void 0 ? void 0 : rangedValue[1]);\n\n // Render additional column\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var prefixColumn = function prefixColumn(date) {\n // >>> Additional check for disabled\n var disabled = getCellDateDisabled({\n cellDate: date,\n mode: 'week',\n disabledDate: disabledDate,\n generateConfig: generateConfig\n });\n return /*#__PURE__*/React.createElement(\"td\", {\n key: \"week\",\n className: classNames(cellPrefixCls, \"\".concat(cellPrefixCls, \"-week\"))\n // Operation: Same as code in PanelBody\n ,\n onClick: function onClick() {\n if (!disabled) {\n onSelect(date, 'mouse');\n }\n },\n onMouseEnter: function onMouseEnter() {\n if (!disabled && onDateMouseEnter) {\n onDateMouseEnter(date);\n }\n },\n onMouseLeave: function onMouseLeave() {\n if (!disabled && onDateMouseLeave) {\n onDateMouseLeave(date);\n }\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, generateConfig.locale.getWeek(locale.locale, date)));\n };\n\n // Add row className\n var rowPrefixCls = \"\".concat(prefixCls, \"-week-panel-row\");\n var rowClassName = function rowClassName(date) {\n var _classNames;\n var isRangeStart = isSameWeek(generateConfig, locale.locale, rangeStart, date);\n var isRangeEnd = isSameWeek(generateConfig, locale.locale, rangeEnd, date);\n return classNames(rowPrefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(rowPrefixCls, \"-selected\"), !rangedValue && isSameWeek(generateConfig, locale.locale, value, date)), _defineProperty(_classNames, \"\".concat(rowPrefixCls, \"-range-start\"), isRangeStart), _defineProperty(_classNames, \"\".concat(rowPrefixCls, \"-range-end\"), isRangeEnd), _defineProperty(_classNames, \"\".concat(rowPrefixCls, \"-range-hover\"), !isRangeStart && !isRangeEnd && isInRange(generateConfig, rangeStart, rangeEnd, date)), _classNames));\n };\n return /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {\n panelName: \"week\",\n prefixColumn: prefixColumn,\n rowClassName: rowClassName,\n keyboardConfig: {\n onLeftRight: null\n }\n // No need check cell level\n ,\n isSameCell: function isSameCell() {\n return false;\n }\n }));\n}\nexport default WeekPanel;","export var YEAR_DECADE_COUNT = 10;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from \"../Header\";\nimport { YEAR_DECADE_COUNT } from \"./constant\";\nimport PanelContext from \"../../PanelContext\";\nfunction YearHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n viewDate = props.viewDate,\n onPrevDecade = props.onPrevDecade,\n onNextDecade = props.onNextDecade,\n onDecadeClick = props.onDecadeClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var yearNumber = generateConfig.getYear(viewDate);\n var startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;\n var endYear = startYear + YEAR_DECADE_COUNT - 1;\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevDecade,\n onSuperNext: onNextDecade\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onDecadeClick,\n className: \"\".concat(prefixCls, \"-decade-btn\")\n }, startYear, \"-\", endYear));\n}\nexport default YearHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { YEAR_DECADE_COUNT } from \"./constant\";\nimport useCellClassName from \"../../hooks/useCellClassName\";\nimport { formatValue, isSameYear } from \"../../utils/dateUtil\";\nimport RangeContext from \"../../RangeContext\";\nimport PanelBody from \"../PanelBody\";\nexport var YEAR_COL_COUNT = 3;\nvar YEAR_ROW_COUNT = 4;\nfunction YearBody(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n viewDate = props.viewDate,\n locale = props.locale,\n generateConfig = props.generateConfig,\n cellRender = props.cellRender;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var yearPrefixCls = \"\".concat(prefixCls, \"-cell\");\n\n // =============================== Year ===============================\n var yearNumber = generateConfig.getYear(viewDate);\n var startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;\n var endYear = startYear + YEAR_DECADE_COUNT - 1;\n var baseYear = generateConfig.setYear(viewDate, startYear - Math.ceil((YEAR_COL_COUNT * YEAR_ROW_COUNT - YEAR_DECADE_COUNT) / 2));\n var today = generateConfig.getNow();\n var isInView = function isInView(date) {\n var currentYearNumber = generateConfig.getYear(date);\n return startYear <= currentYearNumber && currentYearNumber <= endYear;\n };\n var getCellClassName = useCellClassName({\n cellPrefixCls: yearPrefixCls,\n value: value,\n generateConfig: generateConfig,\n rangedValue: rangedValue,\n hoverRangedValue: hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameYear(generateConfig, current, target);\n },\n isInView: isInView,\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addYear(date, offset);\n }\n });\n var getCellNode = cellRender ? function (date, wrapperNode) {\n return cellRender(date, {\n originNode: wrapperNode,\n today: today,\n type: 'year',\n locale: locale\n });\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: YEAR_ROW_COUNT,\n colNum: YEAR_COL_COUNT,\n baseDate: baseYear,\n getCellNode: getCellNode,\n getCellText: generateConfig.getYear,\n getCellClassName: getCellClassName,\n getCellDate: generateConfig.addYear,\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY',\n generateConfig: generateConfig\n });\n }\n }));\n}\nexport default YearBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport YearHeader from \"./YearHeader\";\nimport YearBody, { YEAR_COL_COUNT } from \"./YearBody\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\nimport { YEAR_DECADE_COUNT } from \"./constant\";\nexport { YEAR_DECADE_COUNT };\nfunction YearPanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n sourceMode = props.sourceMode,\n _onSelect = props.onSelect,\n onPanelChange = props.onPanelChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-year-panel\");\n\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_DECADE_COUNT), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_COL_COUNT), 'key');\n },\n onEnter: function onEnter() {\n onPanelChange(sourceMode === 'date' ? 'date' : 'month', value || viewDate);\n }\n });\n }\n };\n\n // ==================== View Operation ====================\n var onDecadeChange = function onDecadeChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff * 10);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(YearHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevDecade: function onPrevDecade() {\n onDecadeChange(-1);\n },\n onNextDecade: function onNextDecade() {\n onDecadeChange(1);\n },\n onDecadeClick: function onDecadeClick() {\n onPanelChange('decade', viewDate);\n }\n })), /*#__PURE__*/React.createElement(YearBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: function onSelect(date) {\n onPanelChange(sourceMode === 'date' ? 'date' : 'month', date);\n _onSelect(date, 'mouse');\n }\n })));\n}\nexport default YearPanel;","import * as React from 'react';\nexport default function getExtraFooter(prefixCls, mode, renderExtraFooter) {\n if (!renderExtraFooter) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer-extra\")\n }, renderExtraFooter(mode));\n}","import * as React from 'react';\nexport default function getRanges(_ref) {\n var prefixCls = _ref.prefixCls,\n _ref$components = _ref.components,\n components = _ref$components === void 0 ? {} : _ref$components,\n needConfirmButton = _ref.needConfirmButton,\n onNow = _ref.onNow,\n onOk = _ref.onOk,\n okDisabled = _ref.okDisabled,\n showNow = _ref.showNow,\n locale = _ref.locale;\n var presetNode;\n var okNode;\n if (needConfirmButton) {\n var Button = components.button || 'button';\n if (onNow && showNow !== false) {\n presetNode = /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-now\")\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-now-btn\"),\n onClick: onNow\n }, locale.now));\n }\n okNode = needConfirmButton && /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-ok\")\n }, /*#__PURE__*/React.createElement(Button, {\n disabled: okDisabled,\n onClick: onOk\n }, locale.ok));\n }\n if (!presetNode && !okNode) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-ranges\")\n }, presetNode, okNode);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * Logic:\n * When `mode` === `picker`,\n * click will trigger `onSelect` (if value changed trigger `onChange` also).\n * Panel change will not trigger `onSelect` but trigger `onPanelChange`\n */\n\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useCellRender } from \"./hooks/useCellRender\";\nimport PanelContext from \"./PanelContext\";\nimport DatePanel from \"./panels/DatePanel\";\nimport DatetimePanel from \"./panels/DatetimePanel\";\nimport DecadePanel from \"./panels/DecadePanel\";\nimport MonthPanel from \"./panels/MonthPanel\";\nimport { MONTH_COL_COUNT } from \"./panels/MonthPanel/MonthBody\";\nimport QuarterPanel from \"./panels/QuarterPanel\";\nimport TimePanel from \"./panels/TimePanel\";\nimport WeekPanel from \"./panels/WeekPanel\";\nimport YearPanel from \"./panels/YearPanel\";\nimport RangeContext from \"./RangeContext\";\nimport { isEqual, WEEK_DAY_COUNT } from \"./utils/dateUtil\";\nimport getExtraFooter from \"./utils/getExtraFooter\";\nimport getRanges from \"./utils/getRanges\";\nimport { getLowerBoundTime, setDateTime, setTime } from \"./utils/timeUtil\";\nimport { PickerModeMap } from \"./utils/uiUtil\";\n\n// TMP type to fit for ts 3.9.2\n\n// Calendar picker type\nvar CALENDAR_PANEL_MODE = ['date', 'month'];\nfunction PickerPanel(props) {\n var _classNames;\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-picker' : _ref$prefixCls,\n className = _ref.className,\n style = _ref.style,\n locale = _ref.locale,\n generateConfig = _ref.generateConfig,\n value = _ref.value,\n defaultValue = _ref.defaultValue,\n pickerValue = _ref.pickerValue,\n defaultPickerValue = _ref.defaultPickerValue,\n disabledDate = _ref.disabledDate,\n mode = _ref.mode,\n _ref$picker = _ref.picker,\n picker = _ref$picker === void 0 ? 'date' : _ref$picker,\n _ref$tabIndex = _ref.tabIndex,\n tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,\n showNow = _ref.showNow,\n showTime = _ref.showTime,\n showToday = _ref.showToday,\n renderExtraFooter = _ref.renderExtraFooter,\n hideHeader = _ref.hideHeader,\n onSelect = _ref.onSelect,\n onChange = _ref.onChange,\n onPanelChange = _ref.onPanelChange,\n onMouseDown = _ref.onMouseDown,\n onPickerValueChange = _ref.onPickerValueChange,\n _onOk = _ref.onOk,\n components = _ref.components,\n direction = _ref.direction,\n _ref$hourStep = _ref.hourStep,\n hourStep = _ref$hourStep === void 0 ? 1 : _ref$hourStep,\n _ref$minuteStep = _ref.minuteStep,\n minuteStep = _ref$minuteStep === void 0 ? 1 : _ref$minuteStep,\n _ref$secondStep = _ref.secondStep,\n secondStep = _ref$secondStep === void 0 ? 1 : _ref$secondStep,\n dateRender = _ref.dateRender,\n monthCellRender = _ref.monthCellRender,\n cellRender = _ref.cellRender;\n var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n var isHourStepValid = 24 % hourStep === 0;\n var isMinuteStepValid = 60 % minuteStep === 0;\n var isSecondStepValid = 60 % secondStep === 0;\n if (process.env.NODE_ENV !== 'production') {\n warning(!value || generateConfig.isValidate(value), 'Invalidate date pass to `value`.');\n warning(!value || generateConfig.isValidate(value), 'Invalidate date pass to `defaultValue`.');\n warning(isHourStepValid, \"`hourStep` \".concat(hourStep, \" is invalid. It should be a factor of 24.\"));\n warning(isMinuteStepValid, \"`minuteStep` \".concat(minuteStep, \" is invalid. It should be a factor of 60.\"));\n warning(isSecondStepValid, \"`secondStep` \".concat(secondStep, \" is invalid. It should be a factor of 60.\"));\n warning(!dateRender, \"'dateRender' is deprecated. Please use 'cellRender' instead.\");\n warning(!monthCellRender, \"'monthCellRender' is deprecated. Please use 'cellRender' instead.\");\n }\n\n // ============================ State =============================\n\n var panelContext = React.useContext(PanelContext);\n var operationRef = panelContext.operationRef,\n onContextSelect = panelContext.onSelect,\n hideRanges = panelContext.hideRanges,\n defaultOpenValue = panelContext.defaultOpenValue;\n var _React$useContext = React.useContext(RangeContext),\n inRange = _React$useContext.inRange,\n panelPosition = _React$useContext.panelPosition,\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var panelRef = React.useRef({});\n\n // Handle init logic\n var initRef = React.useRef(true);\n\n // Value\n var _useMergedState = useMergedState(null, {\n value: value,\n defaultValue: defaultValue,\n postState: function postState(val) {\n if (!val && defaultOpenValue && picker === 'time') {\n return defaultOpenValue;\n }\n return val;\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setInnerValue = _useMergedState2[1];\n\n // View date control\n var _useMergedState3 = useMergedState(null, {\n value: pickerValue,\n defaultValue: defaultPickerValue || mergedValue,\n postState: function postState(date) {\n var now = generateConfig.getNow();\n if (!date) {\n return now;\n }\n // When value is null and set showTime\n if (!mergedValue && showTime) {\n var defaultDateObject = _typeof(showTime) === 'object' ? showTime.defaultValue : defaultValue;\n return setDateTime(generateConfig, Array.isArray(date) ? date[0] : date, defaultDateObject || now);\n }\n return Array.isArray(date) ? date[0] : date;\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n viewDate = _useMergedState4[0],\n setInnerViewDate = _useMergedState4[1];\n var setViewDate = function setViewDate(date) {\n setInnerViewDate(date);\n if (onPickerValueChange) {\n onPickerValueChange(date);\n }\n };\n\n // Panel control\n var getInternalNextMode = function getInternalNextMode(nextMode) {\n var getNextMode = PickerModeMap[picker];\n if (getNextMode) {\n return getNextMode(nextMode);\n }\n return nextMode;\n };\n\n // Save panel is changed from which panel\n var _useMergedState5 = useMergedState(function () {\n if (picker === 'time') {\n return 'time';\n }\n return getInternalNextMode('date');\n }, {\n value: mode\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedMode = _useMergedState6[0],\n setInnerMode = _useMergedState6[1];\n React.useEffect(function () {\n setInnerMode(picker);\n }, [picker]);\n var _React$useState = React.useState(function () {\n return mergedMode;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n sourceMode = _React$useState2[0],\n setSourceMode = _React$useState2[1];\n var onInternalPanelChange = function onInternalPanelChange(newMode, viewValue) {\n var nextMode = getInternalNextMode(newMode || mergedMode);\n setSourceMode(mergedMode);\n setInnerMode(nextMode);\n if (onPanelChange && (mergedMode !== nextMode || isEqual(generateConfig, viewDate, viewDate))) {\n onPanelChange(viewValue, nextMode);\n }\n };\n var triggerSelect = function triggerSelect(date, type) {\n var forceTriggerSelect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (mergedMode === picker || forceTriggerSelect) {\n setInnerValue(date);\n if (onSelect) {\n onSelect(date);\n }\n if (onContextSelect) {\n onContextSelect(date, type);\n }\n if (onChange && !isEqual(generateConfig, date, mergedValue) && !(disabledDate !== null && disabledDate !== void 0 && disabledDate(date))) {\n onChange(date);\n }\n }\n };\n var isSelectable = function isSelectable(key) {\n if (CALENDAR_PANEL_MODE.includes(mergedMode)) {\n var _date;\n var operationFnc;\n var isDateMode = mergedMode === 'date';\n if (key === KeyCode.PAGE_UP || key === KeyCode.PAGE_DOWN) {\n operationFnc = isDateMode ? generateConfig.addMonth : generateConfig.addYear;\n } else {\n operationFnc = isDateMode ? generateConfig.addDate : generateConfig.addMonth;\n }\n switch (key) {\n case KeyCode.LEFT:\n case KeyCode.PAGE_UP:\n _date = operationFnc(viewDate, -1);\n break;\n case KeyCode.RIGHT:\n case KeyCode.PAGE_DOWN:\n _date = operationFnc(viewDate, 1);\n break;\n case KeyCode.UP:\n case KeyCode.DOWN:\n _date = operationFnc(viewDate, Number(\"\".concat(key === KeyCode.UP ? '-' : '').concat(isDateMode ? WEEK_DAY_COUNT : MONTH_COL_COUNT)));\n break;\n }\n if (_date) {\n return !(disabledDate !== null && disabledDate !== void 0 && disabledDate(_date));\n }\n }\n return true;\n };\n\n // ========================= Interactive ==========================\n var onInternalKeyDown = function onInternalKeyDown(e) {\n if (panelRef.current && panelRef.current.onKeyDown) {\n var selectable = true;\n var which = e.which;\n if ([KeyCode.LEFT, KeyCode.RIGHT, KeyCode.UP, KeyCode.DOWN, KeyCode.PAGE_UP, KeyCode.PAGE_DOWN, KeyCode.ENTER].includes(which)) {\n e.preventDefault();\n if (which !== KeyCode.ENTER && tabIndex === 0) {\n selectable = isSelectable(which);\n }\n }\n\n // Cannot use keyboard to select disabled date\n if (selectable) {\n return panelRef.current.onKeyDown(e);\n }\n }\n\n /* istanbul ignore next */\n /* eslint-disable no-lone-blocks */\n {\n warning(false, 'Panel not correct handle keyDown event. Please help to fire issue about this.');\n return false;\n }\n /* eslint-enable no-lone-blocks */\n };\n\n var onInternalBlur = function onInternalBlur(e) {\n if (panelRef.current && panelRef.current.onBlur) {\n panelRef.current.onBlur(e);\n }\n };\n if (operationRef && panelPosition !== 'right') {\n operationRef.current = {\n onKeyDown: onInternalKeyDown,\n onClose: function onClose() {\n if (panelRef.current && panelRef.current.onClose) {\n panelRef.current.onClose();\n }\n }\n };\n }\n\n // ============================ Effect ============================\n React.useEffect(function () {\n if (value && !initRef.current) {\n setInnerViewDate(value);\n }\n }, [value]);\n React.useEffect(function () {\n initRef.current = false;\n }, []);\n\n // ============================ Panels ============================\n var panelNode;\n var mergedCellRender = useCellRender({\n cellRender: cellRender,\n monthCellRender: monthCellRender,\n dateRender: dateRender\n });\n var pickerProps = _objectSpread(_objectSpread({}, props), {}, {\n cellRender: mergedCellRender,\n operationRef: panelRef,\n prefixCls: prefixCls,\n viewDate: viewDate,\n value: mergedValue,\n onViewDateChange: setViewDate,\n sourceMode: sourceMode,\n onPanelChange: onInternalPanelChange,\n disabledDate: disabledDate\n });\n delete pickerProps.onChange;\n delete pickerProps.onSelect;\n switch (mergedMode) {\n case 'decade':\n panelNode = /*#__PURE__*/React.createElement(DecadePanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'year':\n panelNode = /*#__PURE__*/React.createElement(YearPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'month':\n panelNode = /*#__PURE__*/React.createElement(MonthPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'quarter':\n panelNode = /*#__PURE__*/React.createElement(QuarterPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'week':\n panelNode = /*#__PURE__*/React.createElement(WeekPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'time':\n delete pickerProps.showTime;\n panelNode = /*#__PURE__*/React.createElement(TimePanel, _extends({}, pickerProps, _typeof(showTime) === 'object' ? showTime : null, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n default:\n if (showTime) {\n panelNode = /*#__PURE__*/React.createElement(DatetimePanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n } else {\n panelNode = /*#__PURE__*/React.createElement(DatePanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n }\n }\n\n // ============================ Footer ============================\n var extraFooter;\n var rangesNode;\n var onNow = function onNow() {\n var now = generateConfig.getNow();\n var lowerBoundTime = getLowerBoundTime(generateConfig.getHour(now), generateConfig.getMinute(now), generateConfig.getSecond(now), isHourStepValid ? hourStep : 1, isMinuteStepValid ? minuteStep : 1, isSecondStepValid ? secondStep : 1);\n var adjustedNow = setTime(generateConfig, now, lowerBoundTime[0],\n // hour\n lowerBoundTime[1],\n // minute\n lowerBoundTime[2] // second\n );\n\n triggerSelect(adjustedNow, 'submit');\n };\n if (!hideRanges) {\n extraFooter = getExtraFooter(prefixCls, mergedMode, renderExtraFooter);\n\n // This content is not displayed when the header switches year and month\n if (showTime && mergedMode !== 'date') {\n rangesNode = null;\n } else {\n rangesNode = getRanges({\n prefixCls: prefixCls,\n components: components,\n needConfirmButton: needConfirmButton,\n okDisabled: !mergedValue || disabledDate && disabledDate(mergedValue),\n locale: locale,\n showNow: showNow,\n onNow: needConfirmButton && onNow,\n onOk: function onOk() {\n if (mergedValue) {\n triggerSelect(mergedValue, 'submit', true);\n if (_onOk) {\n _onOk(mergedValue);\n }\n }\n }\n });\n }\n }\n var todayNode;\n if (showToday && mergedMode === 'date' && picker === 'date' && !showTime) {\n var now = generateConfig.getNow();\n var todayCls = \"\".concat(prefixCls, \"-today-btn\");\n var disabled = disabledDate && disabledDate(now);\n todayNode = /*#__PURE__*/React.createElement(\"a\", {\n className: classNames(todayCls, disabled && \"\".concat(todayCls, \"-disabled\")),\n \"aria-disabled\": disabled,\n onClick: function onClick() {\n if (!disabled) {\n triggerSelect(now, 'mouse', true);\n }\n }\n }, locale.today);\n }\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: _objectSpread(_objectSpread({}, panelContext), {}, {\n mode: mergedMode,\n hideHeader: 'hideHeader' in props ? hideHeader : panelContext.hideHeader,\n hidePrevBtn: inRange && panelPosition === 'right',\n hideNextBtn: inRange && panelPosition === 'left'\n })\n }, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: tabIndex,\n className: classNames(\"\".concat(prefixCls, \"-panel\"), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-panel-has-range\"), rangedValue && rangedValue[0] && rangedValue[1]), _defineProperty(_classNames, \"\".concat(prefixCls, \"-panel-has-range-hover\"), hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1]), _defineProperty(_classNames, \"\".concat(prefixCls, \"-panel-rtl\"), direction === 'rtl'), _classNames)),\n style: style,\n onKeyDown: onInternalKeyDown,\n onBlur: onInternalBlur,\n onMouseDown: onMouseDown\n }, panelNode, extraFooter || rangesNode || todayNode ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, extraFooter, rangesNode, todayNode) : null));\n}\nexport default PickerPanel;\n/* eslint-enable */","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Trigger from '@rc-component/trigger';\nvar BUILT_IN_PLACEMENTS = {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n }\n};\nfunction PickerTrigger(_ref) {\n var _classNames;\n var prefixCls = _ref.prefixCls,\n popupElement = _ref.popupElement,\n popupStyle = _ref.popupStyle,\n visible = _ref.visible,\n dropdownClassName = _ref.dropdownClassName,\n dropdownAlign = _ref.dropdownAlign,\n transitionName = _ref.transitionName,\n getPopupContainer = _ref.getPopupContainer,\n children = _ref.children,\n range = _ref.range,\n popupPlacement = _ref.popupPlacement,\n direction = _ref.direction;\n var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n var getPopupPlacement = function getPopupPlacement() {\n if (popupPlacement !== undefined) {\n return popupPlacement;\n }\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n };\n return /*#__PURE__*/React.createElement(Trigger, {\n showAction: [],\n hideAction: [],\n popupPlacement: getPopupPlacement(),\n builtinPlacements: BUILT_IN_PLACEMENTS,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: transitionName,\n popup: popupElement,\n popupAlign: dropdownAlign,\n popupVisible: visible,\n popupClassName: classNames(dropdownClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(dropdownPrefixCls, \"-range\"), range), _defineProperty(_classNames, \"\".concat(dropdownPrefixCls, \"-rtl\"), direction === 'rtl'), _classNames)),\n popupStyle: popupStyle,\n getPopupContainer: getPopupContainer\n }, children);\n}\nexport default PickerTrigger;","import * as React from 'react';\nimport { executeValue } from \"./utils/miscUtil\";\nexport default function PresetPanel(props) {\n var prefixCls = props.prefixCls,\n presets = props.presets,\n _onClick = props.onClick,\n onHover = props.onHover;\n if (!presets.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-presets\")\n }, /*#__PURE__*/React.createElement(\"ul\", null, presets.map(function (_ref, index) {\n var label = _ref.label,\n value = _ref.value;\n return /*#__PURE__*/React.createElement(\"li\", {\n key: index,\n onClick: function onClick() {\n return _onClick === null || _onClick === void 0 ? void 0 : _onClick(executeValue(value));\n },\n onMouseEnter: function onMouseEnter() {\n return onHover === null || onHover === void 0 ? void 0 : onHover(executeValue(value));\n },\n onMouseLeave: function onMouseLeave() {\n return onHover === null || onHover === void 0 ? void 0 : onHover(null);\n }\n }, label);\n })));\n}","import warning from \"rc-util/es/warning\";\nexport function legacyPropsWarning(props) {\n var picker = props.picker,\n disabledHours = props.disabledHours,\n disabledMinutes = props.disabledMinutes,\n disabledSeconds = props.disabledSeconds;\n if (picker === 'time' && (disabledHours || disabledMinutes || disabledSeconds)) {\n warning(false, \"'disabledHours', 'disabledMinutes', 'disabledSeconds' will be removed in the next major version, please use 'disabledTime' instead.\");\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from \"react\";\nexport function getClearIcon(prefixCls, allowClear, clearIcon) {\n var mergedClearIcon = _typeof(allowClear) === \"object\" ? allowClear.clearIcon : clearIcon;\n return mergedClearIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-clear-btn\")\n });\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _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\";\n/**\n * Removed:\n * - getCalendarContainer: use `getPopupContainer` instead\n * - onOk\n *\n * New Feature:\n * - picker\n * - allowEmpty\n * - selectable\n *\n * Tips: Should add faq about `datetime` mode with `defaultValue`\n */\n\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport useHoverValue from \"./hooks/useHoverValue\";\nimport usePickerInput from \"./hooks/usePickerInput\";\nimport usePresets from \"./hooks/usePresets\";\nimport useTextValueMapping from \"./hooks/useTextValueMapping\";\nimport useValueTexts from \"./hooks/useValueTexts\";\nimport PanelContext from \"./PanelContext\";\nimport PickerPanel from \"./PickerPanel\";\nimport PickerTrigger from \"./PickerTrigger\";\nimport PresetPanel from \"./PresetPanel\";\nimport { formatValue, isEqual, parseValue } from \"./utils/dateUtil\";\nimport { toArray } from \"./utils/miscUtil\";\nimport { elementsContains, getDefaultFormat, getInputSize } from \"./utils/uiUtil\";\nimport { legacyPropsWarning } from \"./utils/warnUtil\";\nimport { getClearIcon } from \"./utils/getClearIcon\";\n\n// TMP type to fit for ts 3.9.2\n\nfunction InnerPicker(props) {\n var _classNames2;\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-picker' : _ref$prefixCls,\n id = _ref.id,\n name = _ref.name,\n tabIndex = _ref.tabIndex,\n style = _ref.style,\n className = _ref.className,\n dropdownClassName = _ref.dropdownClassName,\n dropdownAlign = _ref.dropdownAlign,\n popupStyle = _ref.popupStyle,\n transitionName = _ref.transitionName,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale,\n inputReadOnly = _ref.inputReadOnly,\n allowClear = _ref.allowClear,\n autoFocus = _ref.autoFocus,\n showTime = _ref.showTime,\n _ref$picker = _ref.picker,\n picker = _ref$picker === void 0 ? 'date' : _ref$picker,\n format = _ref.format,\n use12Hours = _ref.use12Hours,\n value = _ref.value,\n defaultValue = _ref.defaultValue,\n presets = _ref.presets,\n open = _ref.open,\n defaultOpen = _ref.defaultOpen,\n defaultOpenValue = _ref.defaultOpenValue,\n suffixIcon = _ref.suffixIcon,\n clearIcon = _ref.clearIcon,\n disabled = _ref.disabled,\n disabledDate = _ref.disabledDate,\n placeholder = _ref.placeholder,\n getPopupContainer = _ref.getPopupContainer,\n pickerRef = _ref.pickerRef,\n panelRender = _ref.panelRender,\n onChange = _ref.onChange,\n onOpenChange = _ref.onOpenChange,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onMouseDown = _ref.onMouseDown,\n onMouseUp = _ref.onMouseUp,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave,\n onContextMenu = _ref.onContextMenu,\n onClick = _ref.onClick,\n _onKeyDown = _ref.onKeyDown,\n _onSelect = _ref.onSelect,\n direction = _ref.direction,\n _ref$autoComplete = _ref.autoComplete,\n autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,\n inputRender = _ref.inputRender,\n changeOnBlur = _ref.changeOnBlur;\n var inputRef = React.useRef(null);\n var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n var presetList = usePresets(presets);\n\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n legacyPropsWarning(props);\n }\n\n // ============================= State =============================\n var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours));\n\n // Panel ref\n var panelDivRef = React.useRef(null);\n var inputDivRef = React.useRef(null);\n var containerRef = React.useRef(null);\n\n // Real value\n var _useMergedState = useMergedState(null, {\n value: value,\n defaultValue: defaultValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setInnerValue = _useMergedState2[1];\n\n // Selected value\n var _React$useState = React.useState(mergedValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n selectedValue = _React$useState2[0],\n setSelectedValue = _React$useState2[1];\n\n // Operation ref\n var operationRef = React.useRef(null);\n\n // Open\n var _useMergedState3 = useMergedState(false, {\n value: open,\n defaultValue: defaultOpen,\n postState: function postState(postOpen) {\n return disabled ? false : postOpen;\n },\n onChange: function onChange(newOpen) {\n if (onOpenChange) {\n onOpenChange(newOpen);\n }\n if (!newOpen && operationRef.current && operationRef.current.onClose) {\n operationRef.current.onClose();\n }\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedOpen = _useMergedState4[0],\n triggerInnerOpen = _useMergedState4[1];\n\n // ============================= Text ==============================\n var _useValueTexts = useValueTexts(selectedValue, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n valueTexts = _useValueTexts2[0],\n firstValueText = _useValueTexts2[1];\n var _useTextValueMapping = useTextValueMapping({\n valueTexts: valueTexts,\n onTextChange: function onTextChange(newText) {\n var inputDate = parseValue(newText, {\n locale: locale,\n formatList: formatList,\n generateConfig: generateConfig\n });\n if (inputDate && (!disabledDate || !disabledDate(inputDate))) {\n setSelectedValue(inputDate);\n }\n }\n }),\n _useTextValueMapping2 = _slicedToArray(_useTextValueMapping, 3),\n text = _useTextValueMapping2[0],\n triggerTextChange = _useTextValueMapping2[1],\n resetText = _useTextValueMapping2[2];\n\n // ============================ Trigger ============================\n var triggerChange = function triggerChange(newValue) {\n setSelectedValue(newValue);\n setInnerValue(newValue);\n if (onChange && !isEqual(generateConfig, mergedValue, newValue)) {\n onChange(newValue, newValue ? formatValue(newValue, {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n }) : '');\n }\n };\n var triggerOpen = function triggerOpen(newOpen) {\n if (disabled && newOpen) {\n return;\n }\n triggerInnerOpen(newOpen);\n };\n var forwardKeyDown = function forwardKeyDown(e) {\n if (mergedOpen && operationRef.current && operationRef.current.onKeyDown) {\n // Let popup panel handle keyboard\n return operationRef.current.onKeyDown(e);\n }\n\n /* istanbul ignore next */\n /* eslint-disable no-lone-blocks */\n {\n warning(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');\n return false;\n }\n };\n var onInternalClick = function onInternalClick() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n onClick === null || onClick === void 0 ? void 0 : onClick.apply(void 0, args);\n if (inputRef.current) {\n inputRef.current.focus();\n triggerOpen(true);\n }\n };\n\n // ============================= Input =============================\n var onInternalBlur = function onInternalBlur(e) {\n if (changeOnBlur) {\n triggerChange(selectedValue);\n }\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n var _usePickerInput = usePickerInput({\n blurToCancel: needConfirmButton,\n open: mergedOpen,\n value: text,\n triggerOpen: triggerOpen,\n forwardKeyDown: forwardKeyDown,\n isClickOutside: function isClickOutside(target) {\n return !elementsContains([panelDivRef.current, inputDivRef.current, containerRef.current], target);\n },\n onSubmit: function onSubmit() {\n if (\n // When user typing disabledDate with keyboard and enter, this value will be empty\n !selectedValue ||\n // Normal disabled check\n disabledDate && disabledDate(selectedValue)) {\n return false;\n }\n triggerChange(selectedValue);\n triggerOpen(false);\n resetText();\n return true;\n },\n onCancel: function onCancel() {\n triggerOpen(false);\n setSelectedValue(mergedValue);\n resetText();\n },\n onKeyDown: function onKeyDown(e, preventDefault) {\n _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e, preventDefault);\n },\n onFocus: onFocus,\n onBlur: onInternalBlur,\n changeOnBlur: changeOnBlur\n }),\n _usePickerInput2 = _slicedToArray(_usePickerInput, 2),\n inputProps = _usePickerInput2[0],\n _usePickerInput2$ = _usePickerInput2[1],\n focused = _usePickerInput2$.focused,\n typing = _usePickerInput2$.typing;\n\n // ============================= Sync ==============================\n // Close should sync back with text value\n React.useEffect(function () {\n if (!mergedOpen) {\n setSelectedValue(mergedValue);\n if (!valueTexts.length || valueTexts[0] === '') {\n triggerTextChange('');\n } else if (firstValueText !== text) {\n resetText();\n }\n }\n }, [mergedOpen, valueTexts]);\n\n // Change picker should sync back with text value\n React.useEffect(function () {\n if (!mergedOpen) {\n resetText();\n }\n }, [picker]);\n\n // Sync innerValue with control mode\n React.useEffect(function () {\n // Sync select value\n setSelectedValue(mergedValue);\n }, [mergedValue]);\n\n // ============================ Private ============================\n if (pickerRef) {\n pickerRef.current = {\n focus: function focus() {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n },\n blur: function blur() {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.blur();\n }\n };\n }\n var _useHoverValue = useHoverValue(text, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useHoverValue2 = _slicedToArray(_useHoverValue, 3),\n hoverValue = _useHoverValue2[0],\n onEnter = _useHoverValue2[1],\n onLeave = _useHoverValue2[2];\n\n // ============================= Panel =============================\n var panelProps = _objectSpread(_objectSpread({}, props), {}, {\n className: undefined,\n style: undefined,\n pickerValue: undefined,\n onPickerValueChange: undefined,\n onChange: null\n });\n var panelNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-layout\")\n }, /*#__PURE__*/React.createElement(PresetPanel, {\n prefixCls: prefixCls,\n presets: presetList,\n onClick: function onClick(nextValue) {\n triggerChange(nextValue);\n triggerOpen(false);\n }\n }), /*#__PURE__*/React.createElement(PickerPanel, _extends({}, panelProps, {\n generateConfig: generateConfig,\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-panel-focused\"), !typing)),\n value: selectedValue,\n locale: locale,\n tabIndex: -1,\n onSelect: function onSelect(date) {\n _onSelect === null || _onSelect === void 0 ? void 0 : _onSelect(date);\n setSelectedValue(date);\n },\n direction: direction,\n onPanelChange: function onPanelChange(viewDate, mode) {\n var onPanelChange = props.onPanelChange;\n onLeave(true);\n onPanelChange === null || onPanelChange === void 0 ? void 0 : onPanelChange(viewDate, mode);\n }\n })));\n if (panelRender) {\n panelNode = panelRender(panelNode);\n }\n var panel = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-container\"),\n ref: panelDivRef,\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n }, panelNode);\n var suffixNode;\n if (suffixIcon) {\n suffixNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\"),\n onMouseDown: function onMouseDown(e) {\n // Not lost focus\n e.preventDefault();\n }\n }, suffixIcon);\n }\n\n // ============================ Clear ============================\n if (process.env.NODE_ENV !== 'production') {\n warning(!props.clearIcon, '`clearIcon` will be removed in future. Please use `allowClear` instead.');\n }\n var mergedClearIcon = getClearIcon(prefixCls, allowClear, clearIcon);\n var clearNode = /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n onMouseUp: function onMouseUp(e) {\n e.preventDefault();\n e.stopPropagation();\n triggerChange(null);\n triggerOpen(false);\n },\n className: \"\".concat(prefixCls, \"-clear\"),\n role: \"button\"\n }, mergedClearIcon);\n var mergedAllowClear = !!allowClear && mergedValue && !disabled;\n var mergedInputProps = _objectSpread(_objectSpread(_objectSpread({\n id: id,\n tabIndex: tabIndex,\n disabled: disabled,\n readOnly: inputReadOnly || typeof formatList[0] === 'function' || !typing,\n value: hoverValue || text,\n onChange: function onChange(e) {\n triggerTextChange(e.target.value);\n },\n autoFocus: autoFocus,\n placeholder: placeholder,\n ref: inputRef,\n title: text\n }, inputProps), {}, {\n size: getInputSize(picker, formatList[0], generateConfig),\n name: name\n }, pickAttrs(props, {\n aria: true,\n data: true\n })), {}, {\n autoComplete: autoComplete\n });\n var inputNode = inputRender ? inputRender(mergedInputProps) : /*#__PURE__*/React.createElement(\"input\", mergedInputProps);\n\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n warning(!defaultOpenValue, '`defaultOpenValue` may confuse user for the current value status. Please use `defaultValue` instead.');\n }\n\n // ============================ Return =============================\n var onContextSelect = function onContextSelect(date, type) {\n if (type === 'submit' || type !== 'key' && !needConfirmButton) {\n // triggerChange will also update selected values\n triggerChange(date);\n triggerOpen(false);\n }\n };\n var popupPlacement = direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: {\n operationRef: operationRef,\n hideHeader: picker === 'time',\n onSelect: onContextSelect,\n open: mergedOpen,\n defaultOpenValue: defaultOpenValue,\n onDateMouseEnter: onEnter,\n onDateMouseLeave: onLeave\n }\n }, /*#__PURE__*/React.createElement(PickerTrigger, {\n visible: mergedOpen,\n popupElement: panel,\n popupStyle: popupStyle,\n prefixCls: prefixCls,\n dropdownClassName: dropdownClassName,\n dropdownAlign: dropdownAlign,\n getPopupContainer: getPopupContainer,\n transitionName: transitionName,\n popupPlacement: popupPlacement,\n direction: direction\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: classNames(prefixCls, className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), focused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames2)),\n style: style,\n onMouseDown: onMouseDown,\n onMouseUp: onMouseUp,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onContextMenu: onContextMenu,\n onClick: onInternalClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), _defineProperty({}, \"\".concat(prefixCls, \"-input-placeholder\"), !!hoverValue)),\n ref: inputDivRef\n }, inputNode, suffixNode, mergedAllowClear && clearNode))));\n}\n\n// Wrap with class component to enable pass generic with instance method\nvar Picker = /*#__PURE__*/function (_React$Component) {\n _inherits(Picker, _React$Component);\n var _super = _createSuper(Picker);\n function Picker() {\n var _this;\n _classCallCheck(this, Picker);\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"pickerRef\", /*#__PURE__*/React.createRef());\n _defineProperty(_assertThisInitialized(_this), \"focus\", function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.focus();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"blur\", function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.blur();\n }\n });\n return _this;\n }\n _createClass(Picker, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(InnerPicker, _extends({}, this.props, {\n pickerRef: this.pickerRef\n }));\n }\n }]);\n return Picker;\n}(React.Component);\nexport default Picker;","import * as React from 'react';\nimport { getQuarter, isSameDate } from \"../utils/dateUtil\";\nimport { getValue } from \"../utils/miscUtil\";\nexport default function useRangeDisabled(_ref, firstTimeOpen) {\n var picker = _ref.picker,\n locale = _ref.locale,\n selectedValue = _ref.selectedValue,\n disabledDate = _ref.disabledDate,\n disabled = _ref.disabled,\n generateConfig = _ref.generateConfig;\n var startDate = getValue(selectedValue, 0);\n var endDate = getValue(selectedValue, 1);\n function weekFirstDate(date) {\n return generateConfig.locale.getWeekFirstDate(locale.locale, date);\n }\n function monthNumber(date) {\n var year = generateConfig.getYear(date);\n var month = generateConfig.getMonth(date);\n return year * 100 + month;\n }\n function quarterNumber(date) {\n var year = generateConfig.getYear(date);\n var quarter = getQuarter(generateConfig, date);\n return year * 10 + quarter;\n }\n var disabledStartDate = React.useCallback(function (date) {\n if (disabled[0] || disabledDate && disabledDate(date)) {\n return true;\n }\n\n // Disabled range\n if (disabled[1] && endDate) {\n return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(date, endDate);\n }\n\n // Disabled part\n if (!firstTimeOpen && endDate) {\n switch (picker) {\n case 'quarter':\n return quarterNumber(date) > quarterNumber(endDate);\n case 'month':\n return monthNumber(date) > monthNumber(endDate);\n case 'week':\n return weekFirstDate(date) > weekFirstDate(endDate);\n default:\n return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(date, endDate);\n }\n }\n return false;\n }, [disabledDate, disabled[1], endDate, firstTimeOpen]);\n var disabledEndDate = React.useCallback(function (date) {\n if (disabled[1] || disabledDate && disabledDate(date)) {\n return true;\n }\n\n // Disabled range\n if (disabled[0] && startDate) {\n return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(startDate, date);\n }\n\n // Disabled part\n if (!firstTimeOpen && startDate) {\n switch (picker) {\n case 'quarter':\n return quarterNumber(date) < quarterNumber(startDate);\n case 'month':\n return monthNumber(date) < monthNumber(startDate);\n case 'week':\n return weekFirstDate(date) < weekFirstDate(startDate);\n default:\n return !isSameDate(generateConfig, date, startDate) && generateConfig.isAfter(startDate, date);\n }\n }\n return false;\n }, [disabledDate, disabled[0], startDate, firstTimeOpen]);\n return [disabledStartDate, disabledEndDate];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useMergedState } from 'rc-util';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\n\n/**\n * 1. Click input to show picker\n * 2. Calculate next open index\n *\n * If click `confirm`:\n * 3. Hide current picker\n * 4. Open next index picker if exist\n *\n * If not `changeOnBlur` and click outside:\n * 3. Hide picker\n *\n * If `changeOnBlur` and click outside:\n * 3. Hide current picker\n * 4. Open next index picker if exist\n */\n\n/**\n * Auto control of open state\n */\nexport default function useRangeOpen(defaultOpen, open, activePickerIndex, changeOnBlur, startInputRef, endInputRef, startSelectedValue, endSelectedValue, disabled, onOpenChange) {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n firstTimeOpen = _React$useState2[0],\n setFirstTimeOpen = _React$useState2[1];\n var _useMergedState = useMergedState(defaultOpen || false, {\n value: open\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n afferentOpen = _useMergedState2[0],\n setAfferentOpen = _useMergedState2[1];\n var _useMergedState3 = useMergedState(defaultOpen || false, {\n value: open,\n onChange: function onChange(nextOpen) {\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedOpen = _useMergedState4[0],\n setMergedOpen = _useMergedState4[1];\n var _useMergedState5 = useMergedState(0, {\n value: activePickerIndex\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedActivePickerIndex = _useMergedState6[0],\n setMergedActivePickerIndex = _useMergedState6[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n nextActiveIndex = _React$useState4[0],\n setNextActiveIndex = _React$useState4[1];\n React.useEffect(function () {\n if (mergedOpen) {\n setFirstTimeOpen(true);\n }\n }, [mergedOpen]);\n var queryNextIndex = function queryNextIndex(index) {\n return index === 0 ? 1 : 0;\n };\n var triggerOpen = useEvent(function (nextOpen, index, source) {\n if (index === false) {\n // Only when `nextOpen` is false and no need open to next index\n setMergedOpen(nextOpen);\n } else if (nextOpen) {\n setMergedActivePickerIndex(index);\n setMergedOpen(nextOpen);\n var nextIndex = queryNextIndex(index);\n\n // Record next open index\n if (!mergedOpen ||\n // Also set next index if next is empty\n ![startSelectedValue, endSelectedValue][nextIndex]) {\n setNextActiveIndex(nextIndex);\n } else {\n setFirstTimeOpen(false);\n if (nextActiveIndex !== null) {\n setNextActiveIndex(null);\n }\n }\n } else if (source === 'confirm' || source === 'blur' && changeOnBlur) {\n var customNextActiveIndex = afferentOpen ? queryNextIndex(index) : nextActiveIndex;\n if (customNextActiveIndex !== null) {\n setFirstTimeOpen(false);\n setMergedActivePickerIndex(customNextActiveIndex);\n }\n setNextActiveIndex(null);\n\n // Focus back\n if (customNextActiveIndex !== null && !disabled[customNextActiveIndex]) {\n raf(function () {\n var _ref$current;\n var ref = [startInputRef, endInputRef][customNextActiveIndex];\n (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.focus();\n });\n } else {\n setMergedOpen(false);\n }\n } else {\n setMergedOpen(false);\n setAfferentOpen(false);\n }\n });\n return [mergedOpen, mergedActivePickerIndex, firstTimeOpen, triggerOpen];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { getValue, updateValues } from \"../utils/miscUtil\";\nimport { getClosingViewDate, isSameYear, isSameMonth, isSameDecade } from \"../utils/dateUtil\";\nfunction getStartEndDistance(startDate, endDate, picker, generateConfig) {\n var startNext = getClosingViewDate(startDate, picker, generateConfig, 1);\n function getDistance(compareFunc) {\n if (compareFunc(startDate, endDate)) {\n return 'same';\n }\n if (compareFunc(startNext, endDate)) {\n return 'closing';\n }\n return 'far';\n }\n switch (picker) {\n case 'year':\n return getDistance(function (start, end) {\n return isSameDecade(generateConfig, start, end);\n });\n case 'quarter':\n case 'month':\n return getDistance(function (start, end) {\n return isSameYear(generateConfig, start, end);\n });\n default:\n return getDistance(function (start, end) {\n return isSameMonth(generateConfig, start, end);\n });\n }\n}\nfunction getRangeViewDate(values, index, picker, generateConfig) {\n var startDate = getValue(values, 0);\n var endDate = getValue(values, 1);\n if (index === 0) {\n return startDate;\n }\n if (startDate && endDate) {\n var distance = getStartEndDistance(startDate, endDate, picker, generateConfig);\n switch (distance) {\n case 'same':\n return startDate;\n case 'closing':\n return startDate;\n default:\n return getClosingViewDate(endDate, picker, generateConfig, -1);\n }\n }\n return startDate;\n}\nexport default function useRangeViewDates(_ref) {\n var values = _ref.values,\n picker = _ref.picker,\n defaultDates = _ref.defaultDates,\n generateConfig = _ref.generateConfig;\n var _React$useState = React.useState(function () {\n return [getValue(defaultDates, 0), getValue(defaultDates, 1)];\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n defaultViewDates = _React$useState2[0],\n setDefaultViewDates = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n viewDates = _React$useState4[0],\n setInternalViewDates = _React$useState4[1];\n var startDate = getValue(values, 0);\n var endDate = getValue(values, 1);\n function getViewDate(index) {\n // If set default view date, use it\n if (defaultViewDates[index]) {\n return defaultViewDates[index];\n }\n return getValue(viewDates, index) || getRangeViewDate(values, index, picker, generateConfig) || startDate || endDate || generateConfig.getNow();\n }\n function setViewDate(viewDate, index) {\n if (viewDate) {\n var newViewDates = updateValues(viewDates, viewDate, index);\n // Set view date will clean up default one\n setDefaultViewDates(\n // Should always be an array\n updateValues(defaultViewDates, null, index) || [null, null]);\n\n // Reset another one when not have value\n var anotherIndex = (index + 1) % 2;\n if (!getValue(values, anotherIndex)) {\n newViewDates = updateValues(newViewDates, viewDate, anotherIndex);\n }\n setInternalViewDates(newViewDates);\n } else if (startDate || endDate) {\n // Reset all when has values when `viewDate` is `null` which means from open trigger\n setInternalViewDates(null);\n }\n }\n return [getViewDate, setViewDate];\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport raf from \"rc-util/es/raf\";\nimport warning from \"rc-util/es/warning\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport { useCellRender } from \"./hooks/useCellRender\";\nimport useHoverValue from \"./hooks/useHoverValue\";\nimport usePickerInput from \"./hooks/usePickerInput\";\nimport usePresets from \"./hooks/usePresets\";\nimport useRangeDisabled from \"./hooks/useRangeDisabled\";\nimport useRangeOpen from \"./hooks/useRangeOpen\";\nimport useRangeViewDates from \"./hooks/useRangeViewDates\";\nimport useTextValueMapping from \"./hooks/useTextValueMapping\";\nimport useValueTexts from \"./hooks/useValueTexts\";\nimport PanelContext from \"./PanelContext\";\nimport PickerPanel from \"./PickerPanel\";\nimport PickerTrigger from \"./PickerTrigger\";\nimport PresetPanel from \"./PresetPanel\";\nimport RangeContext from \"./RangeContext\";\nimport { formatValue, getClosingViewDate, isEqual, isSameDate, isSameQuarter, isSameWeek, parseValue } from \"./utils/dateUtil\";\nimport getExtraFooter from \"./utils/getExtraFooter\";\nimport getRanges from \"./utils/getRanges\";\nimport { getValue, toArray, updateValues } from \"./utils/miscUtil\";\nimport { elementsContains, getDefaultFormat, getInputSize } from \"./utils/uiUtil\";\nimport { legacyPropsWarning } from \"./utils/warnUtil\";\nimport { getClearIcon } from \"./utils/getClearIcon\";\nfunction reorderValues(values, generateConfig) {\n if (values && values[0] && values[1] && generateConfig.isAfter(values[0], values[1])) {\n return [values[1], values[0]];\n }\n return values;\n}\nfunction canValueTrigger(value, index, disabled, allowEmpty) {\n if (value) {\n return true;\n }\n if (allowEmpty && allowEmpty[index]) {\n return true;\n }\n if (disabled[(index + 1) % 2]) {\n return true;\n }\n return false;\n}\n\n// TMP type to fit for ts 3.9.2\n\nfunction InnerRangePicker(props) {\n var _classNames2, _classNames3, _classNames4;\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-picker' : _ref$prefixCls,\n id = _ref.id,\n style = _ref.style,\n className = _ref.className,\n popupStyle = _ref.popupStyle,\n dropdownClassName = _ref.dropdownClassName,\n transitionName = _ref.transitionName,\n dropdownAlign = _ref.dropdownAlign,\n getPopupContainer = _ref.getPopupContainer,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale,\n placeholder = _ref.placeholder,\n autoFocus = _ref.autoFocus,\n disabled = _ref.disabled,\n format = _ref.format,\n _ref$picker = _ref.picker,\n picker = _ref$picker === void 0 ? 'date' : _ref$picker,\n showTime = _ref.showTime,\n use12Hours = _ref.use12Hours,\n _ref$separator = _ref.separator,\n separator = _ref$separator === void 0 ? '~' : _ref$separator,\n value = _ref.value,\n defaultValue = _ref.defaultValue,\n defaultPickerValue = _ref.defaultPickerValue,\n open = _ref.open,\n defaultOpen = _ref.defaultOpen,\n disabledDate = _ref.disabledDate,\n _disabledTime = _ref.disabledTime,\n dateRender = _ref.dateRender,\n monthCellRender = _ref.monthCellRender,\n cellRender = _ref.cellRender,\n panelRender = _ref.panelRender,\n presets = _ref.presets,\n ranges = _ref.ranges,\n allowEmpty = _ref.allowEmpty,\n allowClear = _ref.allowClear,\n suffixIcon = _ref.suffixIcon,\n clearIcon = _ref.clearIcon,\n pickerRef = _ref.pickerRef,\n inputReadOnly = _ref.inputReadOnly,\n mode = _ref.mode,\n renderExtraFooter = _ref.renderExtraFooter,\n onChange = _ref.onChange,\n onOpenChange = _ref.onOpenChange,\n onPanelChange = _ref.onPanelChange,\n onCalendarChange = _ref.onCalendarChange,\n _onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onMouseDown = _ref.onMouseDown,\n onMouseUp = _ref.onMouseUp,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave,\n onClick = _ref.onClick,\n _onOk = _ref.onOk,\n _onKeyDown = _ref.onKeyDown,\n components = _ref.components,\n order = _ref.order,\n direction = _ref.direction,\n activePickerIndex = _ref.activePickerIndex,\n _ref$autoComplete = _ref.autoComplete,\n autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,\n changeOnBlur = _ref.changeOnBlur;\n var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n var containerRef = useRef(null);\n var panelDivRef = useRef(null);\n var startInputDivRef = useRef(null);\n var endInputDivRef = useRef(null);\n var separatorRef = useRef(null);\n var startInputRef = useRef(null);\n var endInputRef = useRef(null);\n var arrowRef = useRef(null);\n\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n legacyPropsWarning(props);\n }\n\n // ============================= Misc ==============================\n var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours));\n\n // Operation ref\n var operationRef = useRef(null);\n var mergedDisabled = React.useMemo(function () {\n if (Array.isArray(disabled)) {\n return disabled;\n }\n return [disabled || false, disabled || false];\n }, [disabled]);\n\n // ============================= Value =============================\n var _useMergedState = useMergedState(null, {\n value: value,\n defaultValue: defaultValue,\n postState: function postState(values) {\n return picker === 'time' && !order ? values : reorderValues(values, generateConfig);\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setInnerValue = _useMergedState2[1];\n\n // =========================== View Date ===========================\n // Config view panel\n var _useRangeViewDates = useRangeViewDates({\n values: mergedValue,\n picker: picker,\n defaultDates: defaultPickerValue,\n generateConfig: generateConfig\n }),\n _useRangeViewDates2 = _slicedToArray(_useRangeViewDates, 2),\n getViewDate = _useRangeViewDates2[0],\n setViewDate = _useRangeViewDates2[1];\n\n // ========================= Select Values =========================\n var _useMergedState3 = useMergedState(mergedValue, {\n postState: function postState(values) {\n var postValues = values;\n if (mergedDisabled[0] && mergedDisabled[1]) {\n return postValues;\n }\n\n // Fill disabled unit\n for (var i = 0; i < 2; i += 1) {\n if (mergedDisabled[i] && !postValues && !getValue(postValues, i) && !getValue(allowEmpty, i)) {\n postValues = updateValues(postValues, generateConfig.getNow(), i);\n }\n }\n return postValues;\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n selectedValue = _useMergedState4[0],\n setSelectedValue = _useMergedState4[1];\n\n // ============================= Modes =============================\n var _useMergedState5 = useMergedState([picker, picker], {\n value: mode\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedModes = _useMergedState6[0],\n setInnerModes = _useMergedState6[1];\n useEffect(function () {\n setInnerModes([picker, picker]);\n }, [picker]);\n var triggerModesChange = function triggerModesChange(modes, values) {\n setInnerModes(modes);\n if (onPanelChange) {\n onPanelChange(values, modes);\n }\n };\n\n // ============================= Open ==============================\n var _useRangeOpen = useRangeOpen(defaultOpen, open, activePickerIndex, changeOnBlur, startInputRef, endInputRef, getValue(selectedValue, 0), getValue(selectedValue, 1), mergedDisabled, onOpenChange),\n _useRangeOpen2 = _slicedToArray(_useRangeOpen, 4),\n mergedOpen = _useRangeOpen2[0],\n mergedActivePickerIndex = _useRangeOpen2[1],\n firstTimeOpen = _useRangeOpen2[2],\n _triggerOpen = _useRangeOpen2[3];\n var startOpen = mergedOpen && mergedActivePickerIndex === 0;\n var endOpen = mergedOpen && mergedActivePickerIndex === 1;\n\n // ========================= Disable Date ==========================\n var _useRangeDisabled = useRangeDisabled({\n picker: picker,\n selectedValue: selectedValue,\n locale: locale,\n disabled: mergedDisabled,\n disabledDate: disabledDate,\n generateConfig: generateConfig\n }, !mergedOpen || firstTimeOpen),\n _useRangeDisabled2 = _slicedToArray(_useRangeDisabled, 2),\n disabledStartDate = _useRangeDisabled2[0],\n disabledEndDate = _useRangeDisabled2[1];\n\n // ============================= Popup =============================\n // Popup min width\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n popupMinWidth = _useState2[0],\n setPopupMinWidth = _useState2[1];\n useEffect(function () {\n if (!mergedOpen && containerRef.current) {\n setPopupMinWidth(containerRef.current.offsetWidth);\n }\n }, [mergedOpen]);\n\n // ============================ Trigger ============================\n function triggerOpenAndFocus(index) {\n _triggerOpen(true, index, 'open');\n // Use setTimeout to make sure panel DOM exists\n raf(function () {\n var _inputRef$current;\n var inputRef = [startInputRef, endInputRef][index];\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n }, 0);\n }\n function triggerChange(newValue, sourceIndex) {\n var values = newValue;\n var startValue = getValue(values, 0);\n var endValue = getValue(values, 1);\n\n // >>>>> Format start & end values\n if (startValue && endValue && generateConfig.isAfter(startValue, endValue)) {\n if (\n // WeekPicker only compare week\n picker === 'week' && !isSameWeek(generateConfig, locale.locale, startValue, endValue) ||\n // QuotaPicker only compare week\n picker === 'quarter' && !isSameQuarter(generateConfig, startValue, endValue) ||\n // Other non-TimePicker compare date\n picker !== 'week' && picker !== 'quarter' && picker !== 'time' && !isSameDate(generateConfig, startValue, endValue)) {\n // Clean up end date when start date is after end date\n if (sourceIndex === 0) {\n values = [startValue, null];\n endValue = null;\n } else {\n startValue = null;\n values = [null, endValue];\n }\n } else if (picker !== 'time' || order !== false) {\n // Reorder when in same date\n values = reorderValues(values, generateConfig);\n }\n }\n setSelectedValue(values);\n var startStr = values && values[0] ? formatValue(values[0], {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n }) : '';\n var endStr = values && values[1] ? formatValue(values[1], {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n }) : '';\n if (onCalendarChange) {\n var _info = {\n range: sourceIndex === 0 ? 'start' : 'end'\n };\n onCalendarChange(values, [startStr, endStr], _info);\n }\n\n // >>>>> Trigger `onChange` event\n var canStartValueTrigger = canValueTrigger(startValue, 0, mergedDisabled, allowEmpty);\n var canEndValueTrigger = canValueTrigger(endValue, 1, mergedDisabled, allowEmpty);\n var canTrigger = values === null || canStartValueTrigger && canEndValueTrigger;\n if (canTrigger) {\n // Trigger onChange only when value is validate\n setInnerValue(values);\n if (onChange && (!isEqual(generateConfig, getValue(mergedValue, 0), startValue) || !isEqual(generateConfig, getValue(mergedValue, 1), endValue))) {\n onChange(values, [startStr, endStr]);\n }\n }\n }\n var forwardKeyDown = function forwardKeyDown(e) {\n if (mergedOpen && operationRef.current && operationRef.current.onKeyDown) {\n // Let popup panel handle keyboard\n return operationRef.current.onKeyDown(e);\n }\n\n /* istanbul ignore next */\n /* eslint-disable no-lone-blocks */\n {\n warning(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');\n return false;\n }\n };\n\n // ============================= Text ==============================\n var sharedTextHooksProps = {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n };\n var _useValueTexts = useValueTexts(getValue(selectedValue, 0), sharedTextHooksProps),\n _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n startValueTexts = _useValueTexts2[0],\n firstStartValueText = _useValueTexts2[1];\n var _useValueTexts3 = useValueTexts(getValue(selectedValue, 1), sharedTextHooksProps),\n _useValueTexts4 = _slicedToArray(_useValueTexts3, 2),\n endValueTexts = _useValueTexts4[0],\n firstEndValueText = _useValueTexts4[1];\n var _onTextChange = function onTextChange(newText, index) {\n var inputDate = parseValue(newText, {\n locale: locale,\n formatList: formatList,\n generateConfig: generateConfig\n });\n var disabledFunc = index === 0 ? disabledStartDate : disabledEndDate;\n if (inputDate && !disabledFunc(inputDate)) {\n setSelectedValue(updateValues(selectedValue, inputDate, index));\n setViewDate(inputDate, index);\n }\n };\n var _useTextValueMapping = useTextValueMapping({\n valueTexts: startValueTexts,\n onTextChange: function onTextChange(newText) {\n return _onTextChange(newText, 0);\n }\n }),\n _useTextValueMapping2 = _slicedToArray(_useTextValueMapping, 3),\n startText = _useTextValueMapping2[0],\n triggerStartTextChange = _useTextValueMapping2[1],\n resetStartText = _useTextValueMapping2[2];\n var _useTextValueMapping3 = useTextValueMapping({\n valueTexts: endValueTexts,\n onTextChange: function onTextChange(newText) {\n return _onTextChange(newText, 1);\n }\n }),\n _useTextValueMapping4 = _slicedToArray(_useTextValueMapping3, 3),\n endText = _useTextValueMapping4[0],\n triggerEndTextChange = _useTextValueMapping4[1],\n resetEndText = _useTextValueMapping4[2];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n rangeHoverValue = _useState4[0],\n setRangeHoverValue = _useState4[1];\n\n // ========================== Hover Range ==========================\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n hoverRangedValue = _useState6[0],\n setHoverRangedValue = _useState6[1];\n var _useHoverValue = useHoverValue(startText, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useHoverValue2 = _slicedToArray(_useHoverValue, 3),\n startHoverValue = _useHoverValue2[0],\n onStartEnter = _useHoverValue2[1],\n onStartLeave = _useHoverValue2[2];\n var _useHoverValue3 = useHoverValue(endText, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useHoverValue4 = _slicedToArray(_useHoverValue3, 3),\n endHoverValue = _useHoverValue4[0],\n onEndEnter = _useHoverValue4[1],\n onEndLeave = _useHoverValue4[2];\n var onDateMouseEnter = function onDateMouseEnter(date) {\n setHoverRangedValue(updateValues(selectedValue, date, mergedActivePickerIndex));\n if (mergedActivePickerIndex === 0) {\n onStartEnter(date);\n } else {\n onEndEnter(date);\n }\n };\n var onDateMouseLeave = function onDateMouseLeave() {\n setHoverRangedValue(updateValues(selectedValue, null, mergedActivePickerIndex));\n if (mergedActivePickerIndex === 0) {\n onStartLeave();\n } else {\n onEndLeave();\n }\n };\n\n // ============================= Input =============================\n // We call effect to update `delayOpen` here since\n // when popup closed and input focused, should not trigger change when click another input\n var _React$useState = React.useState(mergedOpen),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n delayOpen = _React$useState2[0],\n setDelayOpen = _React$useState2[1];\n React.useEffect(function () {\n setDelayOpen(mergedOpen);\n }, [mergedOpen]);\n var onInternalBlur = function onInternalBlur(e) {\n if (changeOnBlur && delayOpen) {\n var selectedIndexValue = getValue(selectedValue, mergedActivePickerIndex);\n if (selectedIndexValue) {\n triggerChange(selectedValue, mergedActivePickerIndex);\n }\n }\n return onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n var getSharedInputHookProps = function getSharedInputHookProps(index, resetText) {\n return {\n blurToCancel: !changeOnBlur && needConfirmButton,\n forwardKeyDown: forwardKeyDown,\n onBlur: onInternalBlur,\n isClickOutside: function isClickOutside(target) {\n return !elementsContains([panelDivRef.current, startInputDivRef.current, endInputDivRef.current, containerRef.current], target);\n },\n onFocus: function onFocus(e) {\n if (_onFocus) {\n _onFocus(e);\n }\n },\n triggerOpen: function triggerOpen(newOpen) {\n if (newOpen) {\n _triggerOpen(newOpen, index, 'open');\n } else {\n _triggerOpen(newOpen,\n // Close directly if no selected value provided\n getValue(selectedValue, index) ? index : false, 'blur');\n }\n },\n onSubmit: function onSubmit() {\n if (\n // When user typing disabledDate with keyboard and enter, this value will be empty\n !selectedValue ||\n // Normal disabled check\n disabledDate && disabledDate(selectedValue[index])) {\n return false;\n }\n triggerChange(selectedValue, index);\n resetText();\n\n // Switch\n _triggerOpen(false, mergedActivePickerIndex, 'confirm');\n },\n onCancel: function onCancel() {\n _triggerOpen(false, index, 'cancel');\n setSelectedValue(mergedValue);\n resetText();\n }\n };\n };\n var sharedPickerInput = {\n onKeyDown: function onKeyDown(e, preventDefault) {\n _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e, preventDefault);\n },\n changeOnBlur: changeOnBlur\n };\n var _usePickerInput = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(0, resetStartText)), {}, {\n open: startOpen,\n value: startText\n }, sharedPickerInput)),\n _usePickerInput2 = _slicedToArray(_usePickerInput, 2),\n startInputProps = _usePickerInput2[0],\n _usePickerInput2$ = _usePickerInput2[1],\n startFocused = _usePickerInput2$.focused,\n startTyping = _usePickerInput2$.typing;\n var _usePickerInput3 = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(1, resetEndText)), {}, {\n open: endOpen,\n value: endText\n }, sharedPickerInput)),\n _usePickerInput4 = _slicedToArray(_usePickerInput3, 2),\n endInputProps = _usePickerInput4[0],\n _usePickerInput4$ = _usePickerInput4[1],\n endFocused = _usePickerInput4$.focused,\n endTyping = _usePickerInput4$.typing;\n\n // ========================== Click Picker ==========================\n var onPickerClick = function onPickerClick(e) {\n // When click inside the picker & outside the picker's input elements\n // the panel should still be opened\n if (onClick) {\n onClick(e);\n }\n if (!mergedOpen && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n if (!mergedDisabled[0]) {\n triggerOpenAndFocus(0);\n } else if (!mergedDisabled[1]) {\n triggerOpenAndFocus(1);\n }\n }\n };\n var onPickerMouseDown = function onPickerMouseDown(e) {\n // shouldn't affect input elements if picker is active\n if (onMouseDown) {\n onMouseDown(e);\n }\n if (mergedOpen && (startFocused || endFocused) && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n e.preventDefault();\n }\n };\n\n // ============================= Sync ==============================\n // Close should sync back with text value\n var startStr = mergedValue && mergedValue[0] ? formatValue(mergedValue[0], {\n locale: locale,\n format: 'YYYYMMDDHHmmss',\n generateConfig: generateConfig\n }) : '';\n var endStr = mergedValue && mergedValue[1] ? formatValue(mergedValue[1], {\n locale: locale,\n format: 'YYYYMMDDHHmmss',\n generateConfig: generateConfig\n }) : '';\n useEffect(function () {\n if (!mergedOpen) {\n setSelectedValue(mergedValue);\n if (!startValueTexts.length || startValueTexts[0] === '') {\n triggerStartTextChange('');\n } else if (firstStartValueText !== startText) {\n resetStartText();\n }\n if (!endValueTexts.length || endValueTexts[0] === '') {\n triggerEndTextChange('');\n } else if (firstEndValueText !== endText) {\n resetEndText();\n }\n }\n }, [mergedOpen, startValueTexts, endValueTexts]);\n\n // Sync innerValue with control mode\n useEffect(function () {\n setSelectedValue(mergedValue);\n }, [startStr, endStr]);\n var mergedCellRender = useCellRender({\n cellRender: cellRender,\n monthCellRender: monthCellRender,\n dateRender: dateRender\n });\n var panelDateRender = React.useMemo(function () {\n if (!mergedCellRender) return undefined;\n return function (date, info) {\n return mergedCellRender(date, _objectSpread(_objectSpread({}, info), {}, {\n range: mergedActivePickerIndex ? 'end' : 'start'\n }));\n };\n }, [mergedActivePickerIndex, mergedCellRender]);\n\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n if (value && Array.isArray(disabled) && (getValue(disabled, 0) && !getValue(value, 0) || getValue(disabled, 1) && !getValue(value, 1))) {\n warning(false, '`disabled` should not set with empty `value`. You should set `allowEmpty` or `value` instead.');\n }\n warning(!dateRender, \"'dateRender' is deprecated. Please use 'cellRender' instead.\");\n warning(!monthCellRender, \"'monthCellRender' is deprecated. Please use 'cellRender' instead.\");\n warning(!clearIcon, '`clearIcon` will be removed in future. Please use `allowClear` instead.');\n }\n\n // ============================ Private ============================\n if (pickerRef) {\n pickerRef.current = {\n focus: function focus() {\n if (startInputRef.current) {\n startInputRef.current.focus();\n }\n },\n blur: function blur() {\n if (startInputRef.current) {\n startInputRef.current.blur();\n }\n if (endInputRef.current) {\n endInputRef.current.blur();\n }\n }\n };\n }\n\n // ============================ Ranges =============================\n var presetList = usePresets(presets, ranges);\n\n // ============================= Panel =============================\n function renderPanel() {\n var panelPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var panelProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var panelHoverRangedValue = null;\n if (mergedOpen && hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1] && generateConfig.isAfter(hoverRangedValue[1], hoverRangedValue[0])) {\n panelHoverRangedValue = hoverRangedValue;\n }\n var panelShowTime = showTime;\n if (showTime && _typeof(showTime) === 'object' && showTime.defaultValue) {\n var timeDefaultValues = showTime.defaultValue;\n panelShowTime = _objectSpread(_objectSpread({}, showTime), {}, {\n defaultValue: getValue(timeDefaultValues, mergedActivePickerIndex) || undefined\n });\n }\n return /*#__PURE__*/React.createElement(RangeContext.Provider, {\n value: {\n inRange: true,\n panelPosition: panelPosition,\n rangedValue: rangeHoverValue || selectedValue,\n hoverRangedValue: panelHoverRangedValue\n }\n }, /*#__PURE__*/React.createElement(PickerPanel, _extends({}, props, panelProps, {\n cellRender: panelDateRender,\n showTime: panelShowTime,\n mode: mergedModes[mergedActivePickerIndex],\n generateConfig: generateConfig,\n style: undefined,\n direction: direction,\n disabledDate: mergedActivePickerIndex === 0 ? disabledStartDate : disabledEndDate,\n disabledTime: function disabledTime(date) {\n if (_disabledTime) {\n return _disabledTime(date, mergedActivePickerIndex === 0 ? 'start' : 'end');\n }\n return false;\n },\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-panel-focused\"), mergedActivePickerIndex === 0 ? !startTyping : !endTyping)),\n value: getValue(selectedValue, mergedActivePickerIndex),\n locale: locale,\n tabIndex: -1,\n onPanelChange: function onPanelChange(date, newMode) {\n // clear hover value when panel change\n if (mergedActivePickerIndex === 0) {\n onStartLeave(true);\n }\n if (mergedActivePickerIndex === 1) {\n onEndLeave(true);\n }\n triggerModesChange(updateValues(mergedModes, newMode, mergedActivePickerIndex), updateValues(selectedValue, date, mergedActivePickerIndex));\n var viewDate = date;\n if (panelPosition === 'right' && mergedModes[mergedActivePickerIndex] === newMode) {\n viewDate = getClosingViewDate(viewDate, newMode, generateConfig, -1);\n }\n setViewDate(viewDate, mergedActivePickerIndex);\n },\n onOk: null,\n onSelect: undefined,\n onChange: undefined,\n defaultValue: mergedActivePickerIndex === 0 ? getValue(selectedValue, 1) : getValue(selectedValue, 0)\n // defaultPickerValue={undefined}\n })));\n }\n\n var arrowLeft = 0;\n var panelLeft = 0;\n if (mergedActivePickerIndex && startInputDivRef.current && separatorRef.current && panelDivRef.current && arrowRef.current) {\n // Arrow offset\n arrowLeft = startInputDivRef.current.offsetWidth + separatorRef.current.offsetWidth;\n\n // If panelWidth - arrowWidth - arrowMarginLeft < arrowLeft, panel should move to right side.\n // If arrowOffsetLeft > arrowLeft, arrowMarginLeft = arrowOffsetLeft - arrowLeft\n var arrowMarginLeft = arrowRef.current.offsetLeft > arrowLeft ? arrowRef.current.offsetLeft - arrowLeft : arrowRef.current.offsetLeft;\n var panelWidth = panelDivRef.current.offsetWidth;\n var arrowWidth = arrowRef.current.offsetWidth;\n if (panelWidth && arrowWidth && arrowLeft > panelWidth - arrowWidth - (direction === 'rtl' ? 0 : arrowMarginLeft)) {\n panelLeft = arrowLeft;\n }\n }\n var arrowPositionStyle = direction === 'rtl' ? {\n right: arrowLeft\n } : {\n left: arrowLeft\n };\n function renderPanels() {\n var panels;\n var extraNode = getExtraFooter(prefixCls, mergedModes[mergedActivePickerIndex], renderExtraFooter);\n var rangesNode = getRanges({\n prefixCls: prefixCls,\n components: components,\n needConfirmButton: needConfirmButton,\n okDisabled: !getValue(selectedValue, mergedActivePickerIndex) || disabledDate && disabledDate(selectedValue[mergedActivePickerIndex]),\n locale: locale,\n // rangeList,\n onOk: function onOk() {\n var selectedIndexValue = getValue(selectedValue, mergedActivePickerIndex);\n if (selectedIndexValue) {\n triggerChange(selectedValue, mergedActivePickerIndex);\n _onOk === null || _onOk === void 0 ? void 0 : _onOk(selectedValue);\n\n // Switch\n _triggerOpen(false, mergedActivePickerIndex, 'confirm');\n }\n }\n });\n if (picker !== 'time' && !showTime) {\n var viewDate = getViewDate(mergedActivePickerIndex);\n var nextViewDate = getClosingViewDate(viewDate, picker, generateConfig);\n var currentMode = mergedModes[mergedActivePickerIndex];\n var showDoublePanel = currentMode === picker;\n var leftPanel = renderPanel(showDoublePanel ? 'left' : false, {\n pickerValue: viewDate,\n onPickerValueChange: function onPickerValueChange(newViewDate) {\n setViewDate(newViewDate, mergedActivePickerIndex);\n }\n });\n var rightPanel = renderPanel('right', {\n pickerValue: nextViewDate,\n onPickerValueChange: function onPickerValueChange(newViewDate) {\n setViewDate(getClosingViewDate(newViewDate, picker, generateConfig, -1), mergedActivePickerIndex);\n }\n });\n if (direction === 'rtl') {\n panels = /*#__PURE__*/React.createElement(React.Fragment, null, rightPanel, showDoublePanel && leftPanel);\n } else {\n panels = /*#__PURE__*/React.createElement(React.Fragment, null, leftPanel, showDoublePanel && rightPanel);\n }\n } else {\n panels = renderPanel();\n }\n var mergedNodes = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-layout\")\n }, /*#__PURE__*/React.createElement(PresetPanel, {\n prefixCls: prefixCls,\n presets: presetList,\n onClick: function onClick(nextValue) {\n triggerChange(nextValue, null);\n _triggerOpen(false, mergedActivePickerIndex, 'preset');\n },\n onHover: function onHover(hoverValue) {\n setRangeHoverValue(hoverValue);\n }\n }), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panels\")\n }, panels), (extraNode || rangesNode) && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, extraNode, rangesNode)));\n if (panelRender) {\n mergedNodes = panelRender(mergedNodes);\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-container\"),\n style: {\n marginLeft: panelLeft\n },\n ref: panelDivRef,\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n }, mergedNodes);\n }\n var rangePanel = /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-range-wrapper\"), \"\".concat(prefixCls, \"-\").concat(picker, \"-range-wrapper\")),\n style: {\n minWidth: popupMinWidth\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: arrowRef,\n className: \"\".concat(prefixCls, \"-range-arrow\"),\n style: arrowPositionStyle\n }), renderPanels());\n\n // ============================= Icons =============================\n var suffixNode;\n if (suffixIcon) {\n suffixNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\"),\n onMouseDown: function onMouseDown(e) {\n // Not lost focus\n e.preventDefault();\n }\n }, suffixIcon);\n }\n var mergedClearIcon = getClearIcon(prefixCls, allowClear, clearIcon);\n var clearNode = /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n onMouseUp: function onMouseUp(e) {\n e.preventDefault();\n e.stopPropagation();\n var values = mergedValue;\n if (!mergedDisabled[0]) {\n values = updateValues(values, null, 0);\n }\n if (!mergedDisabled[1]) {\n values = updateValues(values, null, 1);\n }\n triggerChange(values, null);\n _triggerOpen(false, mergedActivePickerIndex, 'clear');\n },\n className: \"\".concat(prefixCls, \"-clear\"),\n role: \"button\"\n }, mergedClearIcon);\n var mergedAllowClear = allowClear && (getValue(mergedValue, 0) && !mergedDisabled[0] || getValue(mergedValue, 1) && !mergedDisabled[1]);\n var inputSharedProps = {\n size: getInputSize(picker, formatList[0], generateConfig)\n };\n var activeBarLeft = 0;\n var activeBarWidth = 0;\n if (startInputDivRef.current && endInputDivRef.current && separatorRef.current) {\n if (mergedActivePickerIndex === 0) {\n activeBarWidth = startInputDivRef.current.offsetWidth;\n } else {\n activeBarLeft = arrowLeft;\n activeBarWidth = endInputDivRef.current.offsetWidth;\n }\n }\n var activeBarPositionStyle = direction === 'rtl' ? {\n right: activeBarLeft\n } : {\n left: activeBarLeft\n };\n // ============================ Return =============================\n var onContextSelect = function onContextSelect(date, type) {\n var values = updateValues(selectedValue, date, mergedActivePickerIndex);\n if (type === 'submit' || type !== 'key' && !needConfirmButton) {\n // triggerChange will also update selected values\n triggerChange(values, mergedActivePickerIndex);\n // clear hover value style\n if (mergedActivePickerIndex === 0) {\n onStartLeave();\n } else {\n onEndLeave();\n }\n\n // Switch\n var nextActivePickerIndex = mergedActivePickerIndex === 0 ? 1 : 0;\n if (mergedDisabled[nextActivePickerIndex]) {\n _triggerOpen(false, false, 'confirm');\n } else {\n _triggerOpen(false, mergedActivePickerIndex, 'confirm');\n }\n } else {\n setSelectedValue(values);\n }\n };\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: {\n operationRef: operationRef,\n hideHeader: picker === 'time',\n onDateMouseEnter: onDateMouseEnter,\n onDateMouseLeave: onDateMouseLeave,\n hideRanges: true,\n onSelect: onContextSelect,\n open: mergedOpen\n }\n }, /*#__PURE__*/React.createElement(PickerTrigger, {\n visible: mergedOpen,\n popupElement: rangePanel,\n popupStyle: popupStyle,\n prefixCls: prefixCls,\n dropdownClassName: dropdownClassName,\n dropdownAlign: dropdownAlign,\n getPopupContainer: getPopupContainer,\n transitionName: transitionName,\n range: true,\n direction: direction\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: containerRef,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-range\"), className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), mergedDisabled[0] && mergedDisabled[1]), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), mergedActivePickerIndex === 0 ? startFocused : endFocused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames2)),\n style: style,\n onClick: onPickerClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDown: onPickerMouseDown,\n onMouseUp: onMouseUp\n }, pickAttrs(props, {\n aria: true,\n data: true\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), (_classNames3 = {}, _defineProperty(_classNames3, \"\".concat(prefixCls, \"-input-active\"), mergedActivePickerIndex === 0), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-input-placeholder\"), !!startHoverValue), _classNames3)),\n ref: startInputDivRef\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n id: id,\n disabled: mergedDisabled[0],\n readOnly: inputReadOnly || typeof formatList[0] === 'function' || !startTyping,\n value: startHoverValue || startText,\n onChange: function onChange(e) {\n triggerStartTextChange(e.target.value);\n },\n autoFocus: autoFocus,\n placeholder: getValue(placeholder, 0) || '',\n ref: startInputRef\n }, startInputProps, inputSharedProps, {\n autoComplete: autoComplete\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-range-separator\"),\n ref: separatorRef\n }, separator), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), (_classNames4 = {}, _defineProperty(_classNames4, \"\".concat(prefixCls, \"-input-active\"), mergedActivePickerIndex === 1), _defineProperty(_classNames4, \"\".concat(prefixCls, \"-input-placeholder\"), !!endHoverValue), _classNames4)),\n ref: endInputDivRef\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n disabled: mergedDisabled[1],\n readOnly: inputReadOnly || typeof formatList[0] === 'function' || !endTyping,\n value: endHoverValue || endText,\n onChange: function onChange(e) {\n triggerEndTextChange(e.target.value);\n },\n placeholder: getValue(placeholder, 1) || '',\n ref: endInputRef\n }, endInputProps, inputSharedProps, {\n autoComplete: autoComplete\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-active-bar\"),\n style: _objectSpread(_objectSpread({}, activeBarPositionStyle), {}, {\n width: activeBarWidth,\n position: 'absolute'\n })\n }), suffixNode, mergedAllowClear && clearNode)));\n}\n\n// Wrap with class component to enable pass generic with instance method\nvar RangePicker = /*#__PURE__*/function (_React$Component) {\n _inherits(RangePicker, _React$Component);\n var _super = _createSuper(RangePicker);\n function RangePicker() {\n var _this;\n _classCallCheck(this, RangePicker);\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 _defineProperty(_assertThisInitialized(_this), \"pickerRef\", /*#__PURE__*/React.createRef());\n _defineProperty(_assertThisInitialized(_this), \"focus\", function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.focus();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"blur\", function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.blur();\n }\n });\n return _this;\n }\n _createClass(RangePicker, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(InnerRangePicker, _extends({}, this.props, {\n pickerRef: this.pickerRef\n }));\n }\n }]);\n return RangePicker;\n}(React.Component);\nexport default RangePicker;","import Picker from \"./Picker\";\nimport PickerPanel from \"./PickerPanel\";\nimport RangePicker from \"./RangePicker\";\nexport { PickerPanel, RangePicker };\nexport default Picker;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nvar Indent = function Indent(_ref) {\n var prefixCls = _ref.prefixCls,\n level = _ref.level,\n isStart = _ref.isStart,\n isEnd = _ref.isEnd;\n var baseClassName = \"\".concat(prefixCls, \"-indent-unit\");\n var list = [];\n for (var i = 0; i < level; i += 1) {\n var _classNames;\n list.push( /*#__PURE__*/React.createElement(\"span\", {\n key: i,\n className: classNames(baseClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(baseClassName, \"-start\"), isStart[i]), _defineProperty(_classNames, \"\".concat(baseClassName, \"-end\"), isEnd[i]), _classNames))\n }));\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-indent\")\n }, list);\n};\nexport default /*#__PURE__*/React.memo(Indent);","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 _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"eventKey\", \"className\", \"style\", \"dragOver\", \"dragOverGapTop\", \"dragOverGapBottom\", \"isLeaf\", \"isStart\", \"isEnd\", \"expanded\", \"selected\", \"checked\", \"halfChecked\", \"loading\", \"domRef\", \"active\", \"data\", \"onMouseMove\", \"selectable\"];\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\n// @ts-ignore\nimport { TreeContext } from './contextTypes';\nimport Indent from './Indent';\nimport { convertNodePropsToEventData } from './utils/treeUtil';\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\nvar defaultTitle = '---';\nvar InternalTreeNode = /*#__PURE__*/function (_React$Component) {\n _inherits(InternalTreeNode, _React$Component);\n var _super = _createSuper(InternalTreeNode);\n function InternalTreeNode() {\n var _this;\n _classCallCheck(this, InternalTreeNode);\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 dragNodeHighlight: false\n };\n _this.selectHandle = void 0;\n _this.cacheIndent = void 0;\n _this.onSelectorClick = function (e) {\n // Click trigger before select/check operation\n var onNodeClick = _this.props.context.onNodeClick;\n onNodeClick(e, convertNodePropsToEventData(_this.props));\n if (_this.isSelectable()) {\n _this.onSelect(e);\n } else {\n _this.onCheck(e);\n }\n };\n _this.onSelectorDoubleClick = function (e) {\n var onNodeDoubleClick = _this.props.context.onNodeDoubleClick;\n onNodeDoubleClick(e, convertNodePropsToEventData(_this.props));\n };\n _this.onSelect = function (e) {\n if (_this.isDisabled()) return;\n var onNodeSelect = _this.props.context.onNodeSelect;\n onNodeSelect(e, convertNodePropsToEventData(_this.props));\n };\n _this.onCheck = function (e) {\n if (_this.isDisabled()) return;\n var _this$props = _this.props,\n disableCheckbox = _this$props.disableCheckbox,\n checked = _this$props.checked;\n var onNodeCheck = _this.props.context.onNodeCheck;\n if (!_this.isCheckable() || disableCheckbox) return;\n var targetChecked = !checked;\n onNodeCheck(e, convertNodePropsToEventData(_this.props), targetChecked);\n };\n _this.onMouseEnter = function (e) {\n var onNodeMouseEnter = _this.props.context.onNodeMouseEnter;\n onNodeMouseEnter(e, convertNodePropsToEventData(_this.props));\n };\n _this.onMouseLeave = function (e) {\n var onNodeMouseLeave = _this.props.context.onNodeMouseLeave;\n onNodeMouseLeave(e, convertNodePropsToEventData(_this.props));\n };\n _this.onContextMenu = function (e) {\n var onNodeContextMenu = _this.props.context.onNodeContextMenu;\n onNodeContextMenu(e, convertNodePropsToEventData(_this.props));\n };\n _this.onDragStart = function (e) {\n var onNodeDragStart = _this.props.context.onNodeDragStart;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: true\n });\n onNodeDragStart(e, _assertThisInitialized(_this));\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n };\n _this.onDragEnter = function (e) {\n var onNodeDragEnter = _this.props.context.onNodeDragEnter;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, _assertThisInitialized(_this));\n };\n _this.onDragOver = function (e) {\n var onNodeDragOver = _this.props.context.onNodeDragOver;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, _assertThisInitialized(_this));\n };\n _this.onDragLeave = function (e) {\n var onNodeDragLeave = _this.props.context.onNodeDragLeave;\n e.stopPropagation();\n onNodeDragLeave(e, _assertThisInitialized(_this));\n };\n _this.onDragEnd = function (e) {\n var onNodeDragEnd = _this.props.context.onNodeDragEnd;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDragEnd(e, _assertThisInitialized(_this));\n };\n _this.onDrop = function (e) {\n var onNodeDrop = _this.props.context.onNodeDrop;\n e.preventDefault();\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDrop(e, _assertThisInitialized(_this));\n };\n // Disabled item still can be switch\n _this.onExpand = function (e) {\n var _this$props2 = _this.props,\n loading = _this$props2.loading,\n onNodeExpand = _this$props2.context.onNodeExpand;\n if (loading) return;\n onNodeExpand(e, convertNodePropsToEventData(_this.props));\n };\n // Drag usage\n _this.setSelectHandle = function (node) {\n _this.selectHandle = node;\n };\n _this.getNodeState = function () {\n var expanded = _this.props.expanded;\n if (_this.isLeaf()) {\n return null;\n }\n return expanded ? ICON_OPEN : ICON_CLOSE;\n };\n _this.hasChildren = function () {\n var eventKey = _this.props.eventKey;\n var keyEntities = _this.props.context.keyEntities;\n var _ref = keyEntities[eventKey] || {},\n children = _ref.children;\n return !!(children || []).length;\n };\n _this.isLeaf = function () {\n var _this$props3 = _this.props,\n isLeaf = _this$props3.isLeaf,\n loaded = _this$props3.loaded;\n var loadData = _this.props.context.loadData;\n var hasChildren = _this.hasChildren();\n if (isLeaf === false) {\n return false;\n }\n return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;\n };\n _this.isDisabled = function () {\n var disabled = _this.props.disabled;\n var treeDisabled = _this.props.context.disabled;\n return !!(treeDisabled || disabled);\n };\n _this.isCheckable = function () {\n var checkable = _this.props.checkable;\n var treeCheckable = _this.props.context.checkable;\n // Return false if tree or treeNode is not checkable\n if (!treeCheckable || checkable === false) return false;\n return treeCheckable;\n };\n // Load data to avoid default expanded tree without data\n _this.syncLoadData = function (props) {\n var expanded = props.expanded,\n loading = props.loading,\n loaded = props.loaded;\n var _this$props$context = _this.props.context,\n loadData = _this$props$context.loadData,\n onNodeLoad = _this$props$context.onNodeLoad;\n if (loading) {\n return;\n }\n // read from state to avoid loadData at same time\n if (loadData && expanded && !_this.isLeaf()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n if (!_this.hasChildren() && !loaded) {\n onNodeLoad(convertNodePropsToEventData(_this.props));\n }\n }\n };\n _this.isDraggable = function () {\n var _this$props4 = _this.props,\n data = _this$props4.data,\n draggable = _this$props4.context.draggable;\n return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data)));\n };\n // ==================== Render: Drag Handler ====================\n _this.renderDragHandler = function () {\n var _this$props$context2 = _this.props.context,\n draggable = _this$props$context2.draggable,\n prefixCls = _this$props$context2.prefixCls;\n return (draggable === null || draggable === void 0 ? void 0 : draggable.icon) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-draggable-icon\")\n }, draggable.icon) : null;\n };\n // ====================== Render: Switcher ======================\n _this.renderSwitcherIconDom = function (isLeaf) {\n var switcherIconFromProps = _this.props.switcherIcon;\n var switcherIconFromCtx = _this.props.context.switcherIcon;\n var switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n // if switcherIconDom is null, no render switcher span\n if (typeof switcherIcon === 'function') {\n return switcherIcon(_objectSpread(_objectSpread({}, _this.props), {}, {\n isLeaf: isLeaf\n }));\n }\n return switcherIcon;\n };\n // Switcher\n _this.renderSwitcher = function () {\n var expanded = _this.props.expanded;\n var prefixCls = _this.props.context.prefixCls;\n if (_this.isLeaf()) {\n // if switcherIconDom is null, no render switcher span\n var _switcherIconDom = _this.renderSwitcherIconDom(true);\n return _switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher-noop\"))\n }, _switcherIconDom) : null;\n }\n var switcherCls = classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher_\").concat(expanded ? ICON_OPEN : ICON_CLOSE));\n var switcherIconDom = _this.renderSwitcherIconDom(false);\n return switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: _this.onExpand,\n className: switcherCls\n }, switcherIconDom) : null;\n };\n // ====================== Render: Checkbox ======================\n // Checkbox\n _this.renderCheckbox = function () {\n var _this$props5 = _this.props,\n checked = _this$props5.checked,\n halfChecked = _this$props5.halfChecked,\n disableCheckbox = _this$props5.disableCheckbox;\n var prefixCls = _this.props.context.prefixCls;\n var disabled = _this.isDisabled();\n var checkable = _this.isCheckable();\n if (!checkable) return null;\n // [Legacy] Custom element should be separate with `checkable` in future\n var $custom = typeof checkable !== 'boolean' ? checkable : null;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-checkbox\"), checked && \"\".concat(prefixCls, \"-checkbox-checked\"), !checked && halfChecked && \"\".concat(prefixCls, \"-checkbox-indeterminate\"), (disabled || disableCheckbox) && \"\".concat(prefixCls, \"-checkbox-disabled\")),\n onClick: _this.onCheck\n }, $custom);\n };\n // ==================== Render: Title + Icon ====================\n _this.renderIcon = function () {\n var loading = _this.props.loading;\n var prefixCls = _this.props.context.prefixCls;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__\").concat(_this.getNodeState() || 'docu'), loading && \"\".concat(prefixCls, \"-icon_loading\"))\n });\n };\n // Icon + Title\n _this.renderSelector = function () {\n var dragNodeHighlight = _this.state.dragNodeHighlight;\n var _this$props6 = _this.props,\n _this$props6$title = _this$props6.title,\n title = _this$props6$title === void 0 ? defaultTitle : _this$props6$title,\n selected = _this$props6.selected,\n icon = _this$props6.icon,\n loading = _this$props6.loading,\n data = _this$props6.data;\n var _this$props$context3 = _this.props.context,\n prefixCls = _this$props$context3.prefixCls,\n showIcon = _this$props$context3.showIcon,\n treeIcon = _this$props$context3.icon,\n loadData = _this$props$context3.loadData,\n titleRender = _this$props$context3.titleRender;\n var disabled = _this.isDisabled();\n var wrapClass = \"\".concat(prefixCls, \"-node-content-wrapper\");\n // Icon - Still show loading icon when loading without showIcon\n var $icon;\n if (showIcon) {\n var currentIcon = icon || treeIcon;\n $icon = currentIcon ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__customize\"))\n }, typeof currentIcon === 'function' ? currentIcon(_this.props) : currentIcon) : _this.renderIcon();\n } else if (loadData && loading) {\n $icon = _this.renderIcon();\n }\n // Title\n var titleNode;\n if (typeof title === 'function') {\n titleNode = title(data);\n } else if (titleRender) {\n titleNode = titleRender(data);\n } else {\n titleNode = title;\n }\n var $title = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, titleNode);\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: _this.setSelectHandle,\n title: typeof title === 'string' ? title : '',\n className: classNames(\"\".concat(wrapClass), \"\".concat(wrapClass, \"-\").concat(_this.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && \"\".concat(prefixCls, \"-node-selected\")),\n onMouseEnter: _this.onMouseEnter,\n onMouseLeave: _this.onMouseLeave,\n onContextMenu: _this.onContextMenu,\n onClick: _this.onSelectorClick,\n onDoubleClick: _this.onSelectorDoubleClick\n }, $icon, $title, _this.renderDropIndicator());\n };\n // =================== Render: Drop Indicator ===================\n _this.renderDropIndicator = function () {\n var _this$props7 = _this.props,\n disabled = _this$props7.disabled,\n eventKey = _this$props7.eventKey;\n var _this$props$context4 = _this.props.context,\n draggable = _this$props$context4.draggable,\n dropLevelOffset = _this$props$context4.dropLevelOffset,\n dropPosition = _this$props$context4.dropPosition,\n prefixCls = _this$props$context4.prefixCls,\n indent = _this$props$context4.indent,\n dropIndicatorRender = _this$props$context4.dropIndicatorRender,\n dragOverNodeKey = _this$props$context4.dragOverNodeKey,\n direction = _this$props$context4.direction;\n var rootDraggable = !!draggable;\n // allowDrop is calculated in Tree.tsx, there is no need for calc it here\n var showIndicator = !disabled && rootDraggable && dragOverNodeKey === eventKey;\n // This is a hot fix which is already fixed in\n // https://github.com/react-component/tree/pull/743/files\n // But some case need break point so we hack on this\n // ref https://github.com/ant-design/ant-design/issues/43493\n var mergedIndent = indent !== null && indent !== void 0 ? indent : _this.cacheIndent;\n _this.cacheIndent = indent;\n return showIndicator ? dropIndicatorRender({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n indent: mergedIndent,\n prefixCls: prefixCls,\n direction: direction\n }) : null;\n };\n return _this;\n }\n _createClass(InternalTreeNode, [{\n key: \"componentDidMount\",\n value:\n // Isomorphic needn't load data in server side\n function componentDidMount() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"isSelectable\",\n value: function isSelectable() {\n var selectable = this.props.selectable;\n var treeSelectable = this.props.context.selectable;\n // Ignore when selectable is undefined or null\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n return treeSelectable;\n }\n }, {\n key: \"render\",\n value:\n // =========================== Render ===========================\n function render() {\n var _classNames;\n var _this$props8 = this.props,\n eventKey = _this$props8.eventKey,\n className = _this$props8.className,\n style = _this$props8.style,\n dragOver = _this$props8.dragOver,\n dragOverGapTop = _this$props8.dragOverGapTop,\n dragOverGapBottom = _this$props8.dragOverGapBottom,\n isLeaf = _this$props8.isLeaf,\n isStart = _this$props8.isStart,\n isEnd = _this$props8.isEnd,\n expanded = _this$props8.expanded,\n selected = _this$props8.selected,\n checked = _this$props8.checked,\n halfChecked = _this$props8.halfChecked,\n loading = _this$props8.loading,\n domRef = _this$props8.domRef,\n active = _this$props8.active,\n data = _this$props8.data,\n onMouseMove = _this$props8.onMouseMove,\n selectable = _this$props8.selectable,\n otherProps = _objectWithoutProperties(_this$props8, _excluded);\n var _this$props$context5 = this.props.context,\n prefixCls = _this$props$context5.prefixCls,\n filterTreeNode = _this$props$context5.filterTreeNode,\n keyEntities = _this$props$context5.keyEntities,\n dropContainerKey = _this$props$context5.dropContainerKey,\n dropTargetKey = _this$props$context5.dropTargetKey,\n draggingNodeKey = _this$props$context5.draggingNodeKey;\n var disabled = this.isDisabled();\n var dataOrAriaAttributeProps = pickAttrs(otherProps, {\n aria: true,\n data: true\n });\n var _ref2 = keyEntities[eventKey] || {},\n level = _ref2.level;\n var isEndNode = isEnd[isEnd.length - 1];\n var mergedDraggable = this.isDraggable();\n var draggableWithoutDisabled = !disabled && mergedDraggable;\n var dragging = draggingNodeKey === eventKey;\n var ariaSelected = selectable !== undefined ? {\n 'aria-selected': !!selectable\n } : undefined;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: domRef,\n className: classNames(className, \"\".concat(prefixCls, \"-treenode\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-switcher-\").concat(expanded ? 'open' : 'close'), !isLeaf), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-checked\"), checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-indeterminate\"), halfChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-selected\"), selected), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-active\"), active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-leaf-last\"), isEndNode), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-draggable\"), mergedDraggable), _defineProperty(_classNames, \"dragging\", dragging), _defineProperty(_classNames, 'drop-target', dropTargetKey === eventKey), _defineProperty(_classNames, 'drop-container', dropContainerKey === eventKey), _defineProperty(_classNames, 'drag-over', !disabled && dragOver), _defineProperty(_classNames, 'drag-over-gap-top', !disabled && dragOverGapTop), _defineProperty(_classNames, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), _defineProperty(_classNames, 'filter-node', filterTreeNode && filterTreeNode(convertNodePropsToEventData(this.props))), _classNames)),\n style: style\n // Draggable config\n ,\n draggable: draggableWithoutDisabled,\n \"aria-grabbed\": dragging,\n onDragStart: draggableWithoutDisabled ? this.onDragStart : undefined\n // Drop config\n ,\n onDragEnter: mergedDraggable ? this.onDragEnter : undefined,\n onDragOver: mergedDraggable ? this.onDragOver : undefined,\n onDragLeave: mergedDraggable ? this.onDragLeave : undefined,\n onDrop: mergedDraggable ? this.onDrop : undefined,\n onDragEnd: mergedDraggable ? this.onDragEnd : undefined,\n onMouseMove: onMouseMove\n }, ariaSelected, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(Indent, {\n prefixCls: prefixCls,\n level: level,\n isStart: isStart,\n isEnd: isEnd\n }), this.renderDragHandler(), this.renderSwitcher(), this.renderCheckbox(), this.renderSelector());\n }\n }]);\n return InternalTreeNode;\n}(React.Component);\nvar ContextTreeNode = function ContextTreeNode(props) {\n return /*#__PURE__*/React.createElement(TreeContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalTreeNode, _extends({}, props, {\n context: context\n }));\n });\n};\nContextTreeNode.displayName = 'TreeNode';\nContextTreeNode.isTreeNode = 1;\nexport default ContextTreeNode;","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\nimport * as React from 'react';\nexport var TreeContext = /*#__PURE__*/React.createContext(null);","export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Trigger only when component unmount\n */\nexport default function useUnmount(triggerStart, triggerEnd) {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n firstMount = _React$useState2[0],\n setFirstMount = _React$useState2[1];\n React.useLayoutEffect(function () {\n if (firstMount) {\n triggerStart();\n return function () {\n triggerEnd();\n };\n }\n }, [firstMount]);\n React.useLayoutEffect(function () {\n setFirstMount(true);\n return function () {\n setFirstMount(false);\n };\n }, []);\n}","import _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"style\", \"motion\", \"motionNodes\", \"motionType\", \"onMotionStart\", \"onMotionEnd\", \"active\", \"treeNodeRequiredProps\"];\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { TreeContext } from './contextTypes';\nimport TreeNode from './TreeNode';\nimport useUnmount from './useUnmount';\nimport { getTreeNodeProps } from './utils/treeUtil';\nvar MotionTreeNode = function MotionTreeNode(_ref, ref) {\n var className = _ref.className,\n style = _ref.style,\n motion = _ref.motion,\n motionNodes = _ref.motionNodes,\n motionType = _ref.motionType,\n onOriginMotionStart = _ref.onMotionStart,\n onOriginMotionEnd = _ref.onMotionEnd,\n active = _ref.active,\n treeNodeRequiredProps = _ref.treeNodeRequiredProps,\n props = _objectWithoutProperties(_ref, _excluded);\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n var _React$useContext = React.useContext(TreeContext),\n prefixCls = _React$useContext.prefixCls;\n // Calculate target visible here.\n // And apply in effect to make `leave` motion work.\n var targetVisible = motionNodes && motionType !== 'hide';\n useLayoutEffect(function () {\n if (motionNodes) {\n if (targetVisible !== visible) {\n setVisible(targetVisible);\n }\n }\n }, [motionNodes]);\n var triggerMotionStart = function triggerMotionStart() {\n if (motionNodes) {\n onOriginMotionStart();\n }\n };\n // Should only trigger once\n var triggerMotionEndRef = React.useRef(false);\n var triggerMotionEnd = function triggerMotionEnd() {\n if (motionNodes && !triggerMotionEndRef.current) {\n triggerMotionEndRef.current = true;\n onOriginMotionEnd();\n }\n };\n // Effect if unmount\n useUnmount(triggerMotionStart, triggerMotionEnd);\n // Motion end event\n var onVisibleChanged = function onVisibleChanged(nextVisible) {\n if (targetVisible === nextVisible) {\n triggerMotionEnd();\n }\n };\n if (motionNodes) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n ref: ref,\n visible: visible\n }, motion, {\n motionAppear: motionType === 'show',\n onVisibleChanged: onVisibleChanged\n }), function (_ref2, motionRef) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: classNames(\"\".concat(prefixCls, \"-treenode-motion\"), motionClassName),\n style: motionStyle\n }, motionNodes.map(function (treeNode) {\n var restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(key, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: active,\n data: treeNode.data,\n key: key,\n isStart: isStart,\n isEnd: isEnd\n }));\n }));\n });\n }\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n domRef: ref,\n className: className,\n style: style\n }, props, {\n active: active\n }));\n};\nMotionTreeNode.displayName = 'MotionTreeNode';\nvar RefMotionTreeNode = /*#__PURE__*/React.forwardRef(MotionTreeNode);\nexport default RefMotionTreeNode;","export function findExpandedKeys() {\n var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var prevLen = prev.length;\n var nextLen = next.length;\n if (Math.abs(prevLen - nextLen) !== 1) {\n return {\n add: false,\n key: null\n };\n }\n function find(shorter, longer) {\n var cache = new Map();\n shorter.forEach(function (key) {\n cache.set(key, true);\n });\n var keys = longer.filter(function (key) {\n return !cache.has(key);\n });\n return keys.length === 1 ? keys[0] : null;\n }\n if (prevLen < nextLen) {\n return {\n add: true,\n key: find(prev, next)\n };\n }\n return {\n add: false,\n key: find(next, prev)\n };\n}\nexport function getExpandRange(shorter, longer, key) {\n var shorterStartIndex = shorter.findIndex(function (data) {\n return data.key === key;\n });\n var shorterEndNode = shorter[shorterStartIndex + 1];\n var longerStartIndex = longer.findIndex(function (data) {\n return data.key === key;\n });\n if (shorterEndNode) {\n var longerEndIndex = longer.findIndex(function (data) {\n return data.key === shorterEndNode.key;\n });\n return longer.slice(longerStartIndex + 1, longerEndIndex);\n }\n return longer.slice(longerStartIndex + 1);\n}","import _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"selectable\", \"checkable\", \"expandedKeys\", \"selectedKeys\", \"checkedKeys\", \"loadedKeys\", \"loadingKeys\", \"halfCheckedKeys\", \"keyEntities\", \"disabled\", \"dragging\", \"dragOverNodeKey\", \"dropPosition\", \"motion\", \"height\", \"itemHeight\", \"virtual\", \"focusable\", \"activeItem\", \"focused\", \"tabIndex\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onActiveChange\", \"onListChangeStart\", \"onListChangeEnd\"];\n/**\n * Handle virtual list of the TreeNodes.\n */\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport VirtualList from 'rc-virtual-list';\nimport * as React from 'react';\nimport MotionTreeNode from './MotionTreeNode';\nimport { findExpandedKeys, getExpandRange } from './utils/diffUtil';\nimport { getKey, getTreeNodeProps } from './utils/treeUtil';\nvar HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0\n};\nvar noop = function noop() {};\nexport var MOTION_KEY = \"RC_TREE_MOTION_\".concat(Math.random());\nvar MotionNode = {\n key: MOTION_KEY\n};\nexport var MotionEntity = {\n key: MOTION_KEY,\n level: 0,\n index: 0,\n pos: '0',\n node: MotionNode,\n nodes: [MotionNode]\n};\nvar MotionFlattenData = {\n parent: null,\n children: [],\n pos: MotionEntity.pos,\n data: MotionNode,\n title: null,\n key: MOTION_KEY,\n /** Hold empty list here since we do not use it */\n isStart: [],\n isEnd: []\n};\n/**\n * We only need get visible content items to play the animation.\n */\nexport function getMinimumRangeTransitionRange(list, virtual, height, itemHeight) {\n if (virtual === false || !height) {\n return list;\n }\n return list.slice(0, Math.ceil(height / itemHeight) + 1);\n}\nfunction itemKey(item) {\n var key = item.key,\n pos = item.pos;\n return getKey(key, pos);\n}\nfunction getAccessibilityPath(item) {\n var path = String(item.data.key);\n var current = item;\n while (current.parent) {\n current = current.parent;\n path = \"\".concat(current.data.key, \" > \").concat(path);\n }\n return path;\n}\nvar NodeList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n data = props.data,\n selectable = props.selectable,\n checkable = props.checkable,\n expandedKeys = props.expandedKeys,\n selectedKeys = props.selectedKeys,\n checkedKeys = props.checkedKeys,\n loadedKeys = props.loadedKeys,\n loadingKeys = props.loadingKeys,\n halfCheckedKeys = props.halfCheckedKeys,\n keyEntities = props.keyEntities,\n disabled = props.disabled,\n dragging = props.dragging,\n dragOverNodeKey = props.dragOverNodeKey,\n dropPosition = props.dropPosition,\n motion = props.motion,\n height = props.height,\n itemHeight = props.itemHeight,\n virtual = props.virtual,\n focusable = props.focusable,\n activeItem = props.activeItem,\n focused = props.focused,\n tabIndex = props.tabIndex,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onActiveChange = props.onActiveChange,\n onListChangeStart = props.onListChangeStart,\n onListChangeEnd = props.onListChangeEnd,\n domProps = _objectWithoutProperties(props, _excluded);\n // =============================== Ref ================================\n var listRef = React.useRef(null);\n var indentMeasurerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n scrollTo: function scrollTo(scroll) {\n listRef.current.scrollTo(scroll);\n },\n getIndentWidth: function getIndentWidth() {\n return indentMeasurerRef.current.offsetWidth;\n }\n };\n });\n // ============================== Motion ==============================\n var _React$useState = React.useState(expandedKeys),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevExpandedKeys = _React$useState2[0],\n setPrevExpandedKeys = _React$useState2[1];\n var _React$useState3 = React.useState(data),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n prevData = _React$useState4[0],\n setPrevData = _React$useState4[1];\n var _React$useState5 = React.useState(data),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n transitionData = _React$useState6[0],\n setTransitionData = _React$useState6[1];\n var _React$useState7 = React.useState([]),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n transitionRange = _React$useState8[0],\n setTransitionRange = _React$useState8[1];\n var _React$useState9 = React.useState(null),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n motionType = _React$useState10[0],\n setMotionType = _React$useState10[1];\n // When motion end but data change, this will makes data back to previous one\n var dataRef = React.useRef(data);\n dataRef.current = data;\n function onMotionEnd() {\n var latestData = dataRef.current;\n setPrevData(latestData);\n setTransitionData(latestData);\n setTransitionRange([]);\n setMotionType(null);\n onListChangeEnd();\n }\n // Do animation if expanded keys changed\n // layoutEffect here to avoid blink of node removing\n useLayoutEffect(function () {\n setPrevExpandedKeys(expandedKeys);\n var diffExpanded = findExpandedKeys(prevExpandedKeys, expandedKeys);\n if (diffExpanded.key !== null) {\n if (diffExpanded.add) {\n var keyIndex = prevData.findIndex(function (_ref) {\n var key = _ref.key;\n return key === diffExpanded.key;\n });\n var rangeNodes = getMinimumRangeTransitionRange(getExpandRange(prevData, data, diffExpanded.key), virtual, height, itemHeight);\n var newTransitionData = prevData.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('show');\n } else {\n var _keyIndex = data.findIndex(function (_ref2) {\n var key = _ref2.key;\n return key === diffExpanded.key;\n });\n var _rangeNodes = getMinimumRangeTransitionRange(getExpandRange(data, prevData, diffExpanded.key), virtual, height, itemHeight);\n var _newTransitionData = data.slice();\n _newTransitionData.splice(_keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(_newTransitionData);\n setTransitionRange(_rangeNodes);\n setMotionType('hide');\n }\n } else if (prevData !== data) {\n // If whole data changed, we just refresh the list\n setPrevData(data);\n setTransitionData(data);\n }\n }, [expandedKeys, data]);\n // We should clean up motion if is changed by dragging\n React.useEffect(function () {\n if (!dragging) {\n onMotionEnd();\n }\n }, [dragging]);\n var mergedData = motion ? transitionData : data;\n var treeNodeRequiredProps = {\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n loadedKeys: loadedKeys,\n loadingKeys: loadingKeys,\n checkedKeys: checkedKeys,\n halfCheckedKeys: halfCheckedKeys,\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, focused && activeItem && /*#__PURE__*/React.createElement(\"span\", {\n style: HIDDEN_STYLE,\n \"aria-live\": \"assertive\"\n }, getAccessibilityPath(activeItem)), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"input\", {\n style: HIDDEN_STYLE,\n disabled: focusable === false || disabled,\n tabIndex: focusable !== false ? tabIndex : null,\n onKeyDown: onKeyDown,\n onFocus: onFocus,\n onBlur: onBlur,\n value: \"\",\n onChange: noop,\n \"aria-label\": \"for screen reader\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-treenode\"),\n \"aria-hidden\": true,\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n visibility: 'hidden',\n height: 0,\n overflow: 'hidden',\n border: 0,\n padding: 0\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-indent\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: indentMeasurerRef,\n className: \"\".concat(prefixCls, \"-indent-unit\")\n }))), /*#__PURE__*/React.createElement(VirtualList, _extends({}, domProps, {\n data: mergedData,\n itemKey: itemKey,\n height: height,\n fullHeight: false,\n virtual: virtual,\n itemHeight: itemHeight,\n prefixCls: \"\".concat(prefixCls, \"-list\"),\n ref: listRef,\n onVisibleChange: function onVisibleChange(originList, fullList) {\n var originSet = new Set(originList);\n var restList = fullList.filter(function (item) {\n return !originSet.has(item);\n });\n // Motion node is not render. Skip motion\n if (restList.some(function (item) {\n return itemKey(item) === MOTION_KEY;\n })) {\n onMotionEnd();\n }\n }\n }), function (treeNode) {\n var pos = treeNode.pos,\n restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n var mergedKey = getKey(key, pos);\n delete restProps.key;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(mergedKey, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(MotionTreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: !!activeItem && key === activeItem.key,\n pos: pos,\n data: treeNode.data,\n isStart: isStart,\n isEnd: isEnd,\n motion: motion,\n motionNodes: key === MOTION_KEY ? transitionRange : null,\n motionType: motionType,\n onMotionStart: onListChangeStart,\n onMotionEnd: onMotionEnd,\n treeNodeRequiredProps: treeNodeRequiredProps,\n onMouseMove: function onMouseMove() {\n onActiveChange(null);\n }\n }));\n }));\n});\nNodeList.displayName = 'NodeList';\nexport default NodeList;","import * as React from 'react';\nexport default function DropIndicator(_ref) {\n var dropPosition = _ref.dropPosition,\n dropLevelOffset = _ref.dropLevelOffset,\n indent = _ref.indent;\n var style = {\n pointerEvents: 'none',\n position: 'absolute',\n right: 0,\n backgroundColor: 'red',\n height: 2\n };\n switch (dropPosition) {\n case -1:\n style.top = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 1:\n style.bottom = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 0:\n style.bottom = 0;\n style.left = indent;\n break;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style\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 _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\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 _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n// TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html\n// Fully accessibility support\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport warning from \"rc-util/es/warning\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport classNames from 'classnames';\nimport { TreeContext } from './contextTypes';\nimport { getDragChildrenKeys, parseCheckedKeys, conductExpandParent, calcSelectedKeys, calcDropPosition, arrAdd, arrDel, posToArr } from './util';\nimport { flattenTreeData, convertTreeToData, convertDataToEntities, warningWithoutKey, convertNodePropsToEventData, getTreeNodeProps, fillFieldNames } from './utils/treeUtil';\nimport NodeList, { MOTION_KEY, MotionEntity } from './NodeList';\nimport TreeNode from './TreeNode';\nimport { conductCheck } from './utils/conductUtil';\nimport DropIndicator from './DropIndicator';\nvar MAX_RETRY_TIMES = 10;\nvar Tree = /*#__PURE__*/function (_React$Component) {\n _inherits(Tree, _React$Component);\n var _super = _createSuper(Tree);\n function Tree() {\n var _this;\n _classCallCheck(this, Tree);\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.destroyed = false;\n _this.delayedDragEnterLogic = void 0;\n _this.loadingRetryTimes = {};\n _this.state = {\n keyEntities: {},\n indent: null,\n selectedKeys: [],\n checkedKeys: [],\n halfCheckedKeys: [],\n loadedKeys: [],\n loadingKeys: [],\n expandedKeys: [],\n draggingNodeKey: null,\n dragChildrenKeys: [],\n // dropTargetKey is the key of abstract-drop-node\n // the abstract-drop-node is the real drop node when drag and drop\n // not the DOM drag over node\n dropTargetKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropLevelOffset: null,\n dropTargetPos: null,\n dropAllowed: true,\n // the abstract-drag-over-node\n // if mouse is on the bottom of top dom node or no the top of the bottom dom node\n // abstract-drag-over-node is the top node\n dragOverNodeKey: null,\n treeData: [],\n flattenNodes: [],\n focused: false,\n activeKey: null,\n listChanging: false,\n prevProps: null,\n fieldNames: fillFieldNames()\n };\n _this.dragStartMousePosition = null;\n _this.dragNode = void 0;\n _this.currentMouseOverDroppableNodeKey = null;\n _this.listRef = /*#__PURE__*/React.createRef();\n _this.onNodeDragStart = function (event, node) {\n var _this$state = _this.state,\n expandedKeys = _this$state.expandedKeys,\n keyEntities = _this$state.keyEntities;\n var onDragStart = _this.props.onDragStart;\n var eventKey = node.props.eventKey;\n _this.dragNode = node;\n _this.dragStartMousePosition = {\n x: event.clientX,\n y: event.clientY\n };\n var newExpandedKeys = arrDel(expandedKeys, eventKey);\n _this.setState({\n draggingNodeKey: eventKey,\n dragChildrenKeys: getDragChildrenKeys(eventKey, keyEntities),\n indent: _this.listRef.current.getIndentWidth()\n });\n _this.setExpandedKeys(newExpandedKeys);\n window.addEventListener('dragend', _this.onWindowDragEnd);\n onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n /**\n * [Legacy] Select handler is smaller than node,\n * so that this will trigger when drag enter node or select handler.\n * This is a little tricky if customize css without padding.\n * Better for use mouse move event to refresh drag state.\n * But let's just keep it to avoid event trigger logic change.\n */\n _this.onNodeDragEnter = function (event, node) {\n var _this$state2 = _this.state,\n expandedKeys = _this$state2.expandedKeys,\n keyEntities = _this$state2.keyEntities,\n dragChildrenKeys = _this$state2.dragChildrenKeys,\n flattenNodes = _this$state2.flattenNodes,\n indent = _this$state2.indent;\n var _this$props = _this.props,\n onDragEnter = _this$props.onDragEnter,\n onExpand = _this$props.onExpand,\n allowDrop = _this$props.allowDrop,\n direction = _this$props.direction;\n var _node$props = node.props,\n pos = _node$props.pos,\n eventKey = _node$props.eventKey;\n var _assertThisInitialize = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize.dragNode;\n // record the key of node which is latest entered, used in dragleave event.\n if (_this.currentMouseOverDroppableNodeKey !== eventKey) {\n _this.currentMouseOverDroppableNodeKey = eventKey;\n }\n if (!dragNode) {\n _this.resetDragState();\n return;\n }\n var _calcDropPosition = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition.dropPosition,\n dropLevelOffset = _calcDropPosition.dropLevelOffset,\n dropTargetKey = _calcDropPosition.dropTargetKey,\n dropContainerKey = _calcDropPosition.dropContainerKey,\n dropTargetPos = _calcDropPosition.dropTargetPos,\n dropAllowed = _calcDropPosition.dropAllowed,\n dragOverNodeKey = _calcDropPosition.dragOverNodeKey;\n if (\n // don't allow drop inside its children\n dragChildrenKeys.indexOf(dropTargetKey) !== -1 ||\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n !dropAllowed) {\n _this.resetDragState();\n return;\n }\n // Side effect for delay drag\n if (!_this.delayedDragEnterLogic) {\n _this.delayedDragEnterLogic = {};\n }\n Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {\n clearTimeout(_this.delayedDragEnterLogic[key]);\n });\n if (dragNode.props.eventKey !== node.props.eventKey) {\n // hoist expand logic here\n // since if logic is on the bottom\n // it will be blocked by abstract dragover node check\n // => if you dragenter from top, you mouse will still be consider as in the top node\n event.persist();\n _this.delayedDragEnterLogic[pos] = window.setTimeout(function () {\n if (_this.state.draggingNodeKey === null) return;\n var newExpandedKeys = _toConsumableArray(expandedKeys);\n var entity = keyEntities[node.props.eventKey];\n if (entity && (entity.children || []).length) {\n newExpandedKeys = arrAdd(expandedKeys, node.props.eventKey);\n }\n if (!('expandedKeys' in _this.props)) {\n _this.setExpandedKeys(newExpandedKeys);\n }\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(newExpandedKeys, {\n node: convertNodePropsToEventData(node.props),\n expanded: true,\n nativeEvent: event.nativeEvent\n });\n }, 800);\n }\n // Skip if drag node is self\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n _this.resetDragState();\n return;\n }\n // Update drag over node and drag state\n _this.setState({\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed\n });\n onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter({\n event: event,\n node: convertNodePropsToEventData(node.props),\n expandedKeys: expandedKeys\n });\n };\n _this.onNodeDragOver = function (event, node) {\n var _this$state3 = _this.state,\n dragChildrenKeys = _this$state3.dragChildrenKeys,\n flattenNodes = _this$state3.flattenNodes,\n keyEntities = _this$state3.keyEntities,\n expandedKeys = _this$state3.expandedKeys,\n indent = _this$state3.indent;\n var _this$props2 = _this.props,\n onDragOver = _this$props2.onDragOver,\n allowDrop = _this$props2.allowDrop,\n direction = _this$props2.direction;\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize2.dragNode;\n if (!dragNode) {\n return;\n }\n var _calcDropPosition2 = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition2.dropPosition,\n dropLevelOffset = _calcDropPosition2.dropLevelOffset,\n dropTargetKey = _calcDropPosition2.dropTargetKey,\n dropContainerKey = _calcDropPosition2.dropContainerKey,\n dropAllowed = _calcDropPosition2.dropAllowed,\n dropTargetPos = _calcDropPosition2.dropTargetPos,\n dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;\n if (dragChildrenKeys.indexOf(dropTargetKey) !== -1 || !dropAllowed) {\n // don't allow drop inside its children\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n return;\n }\n // Update drag position\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n if (!(_this.state.dropPosition === null && _this.state.dropLevelOffset === null && _this.state.dropTargetKey === null && _this.state.dropContainerKey === null && _this.state.dropTargetPos === null && _this.state.dropAllowed === false && _this.state.dragOverNodeKey === null)) {\n _this.resetDragState();\n }\n } else if (!(dropPosition === _this.state.dropPosition && dropLevelOffset === _this.state.dropLevelOffset && dropTargetKey === _this.state.dropTargetKey && dropContainerKey === _this.state.dropContainerKey && dropTargetPos === _this.state.dropTargetPos && dropAllowed === _this.state.dropAllowed && dragOverNodeKey === _this.state.dragOverNodeKey)) {\n _this.setState({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed,\n dragOverNodeKey: dragOverNodeKey\n });\n }\n onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n _this.onNodeDragLeave = function (event, node) {\n // if it is outside the droppable area\n // currentMouseOverDroppableNodeKey will be updated in dragenter event when into another droppable receiver.\n if (_this.currentMouseOverDroppableNodeKey === node.props.eventKey && !event.currentTarget.contains(event.relatedTarget)) {\n _this.resetDragState();\n _this.currentMouseOverDroppableNodeKey = null;\n }\n var onDragLeave = _this.props.onDragLeave;\n onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n // since stopPropagation() is called in treeNode\n // if onWindowDrag is called, whice means state is keeped, drag state should be cleared\n _this.onWindowDragEnd = function (event) {\n _this.onNodeDragEnd(event, null, true);\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n };\n // if onNodeDragEnd is called, onWindowDragEnd won't be called since stopPropagation() is called\n _this.onNodeDragEnd = function (event, node) {\n var onDragEnd = _this.props.onDragEnd;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n _this.dragNode = null;\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n };\n _this.onNodeDrop = function (event, node) {\n var _this$getActiveItem;\n var outsideTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _this$state4 = _this.state,\n dragChildrenKeys = _this$state4.dragChildrenKeys,\n dropPosition = _this$state4.dropPosition,\n dropTargetKey = _this$state4.dropTargetKey,\n dropTargetPos = _this$state4.dropTargetPos,\n dropAllowed = _this$state4.dropAllowed;\n if (!dropAllowed) return;\n var onDrop = _this.props.onDrop;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n if (dropTargetKey === null) return;\n var abstractDropNodeProps = _objectSpread(_objectSpread({}, getTreeNodeProps(dropTargetKey, _this.getTreeNodeRequiredProps())), {}, {\n active: ((_this$getActiveItem = _this.getActiveItem()) === null || _this$getActiveItem === void 0 ? void 0 : _this$getActiveItem.key) === dropTargetKey,\n data: _this.state.keyEntities[dropTargetKey].node\n });\n var dropToChild = dragChildrenKeys.indexOf(dropTargetKey) !== -1;\n warning(!dropToChild, \"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.\");\n var posArr = posToArr(dropTargetPos);\n var dropResult = {\n event: event,\n node: convertNodePropsToEventData(abstractDropNodeProps),\n dragNode: _this.dragNode ? convertNodePropsToEventData(_this.dragNode.props) : null,\n dragNodesKeys: [_this.dragNode.props.eventKey].concat(dragChildrenKeys),\n dropToGap: dropPosition !== 0,\n dropPosition: dropPosition + Number(posArr[posArr.length - 1])\n };\n if (!outsideTree) {\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(dropResult);\n }\n _this.dragNode = null;\n };\n _this.cleanDragState = function () {\n var draggingNodeKey = _this.state.draggingNodeKey;\n if (draggingNodeKey !== null) {\n _this.setState({\n draggingNodeKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropTargetKey: null,\n dropLevelOffset: null,\n dropAllowed: true,\n dragOverNodeKey: null\n });\n }\n _this.dragStartMousePosition = null;\n _this.currentMouseOverDroppableNodeKey = null;\n };\n _this.triggerExpandActionExpand = function (e, treeNode) {\n var _this$state5 = _this.state,\n expandedKeys = _this$state5.expandedKeys,\n flattenNodes = _this$state5.flattenNodes;\n var expanded = treeNode.expanded,\n key = treeNode.key,\n isLeaf = treeNode.isLeaf;\n if (isLeaf || e.shiftKey || e.metaKey || e.ctrlKey) {\n return;\n }\n var node = flattenNodes.filter(function (nodeItem) {\n return nodeItem.key === key;\n })[0];\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(key, _this.getTreeNodeRequiredProps())), {}, {\n data: node.data\n }));\n _this.setExpandedKeys(expanded ? arrDel(expandedKeys, key) : arrAdd(expandedKeys, key));\n _this.onNodeExpand(e, eventNode);\n };\n _this.onNodeClick = function (e, treeNode) {\n var _this$props3 = _this.props,\n onClick = _this$props3.onClick,\n expandAction = _this$props3.expandAction;\n if (expandAction === 'click') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e, treeNode);\n };\n _this.onNodeDoubleClick = function (e, treeNode) {\n var _this$props4 = _this.props,\n onDoubleClick = _this$props4.onDoubleClick,\n expandAction = _this$props4.expandAction;\n if (expandAction === 'doubleClick') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick(e, treeNode);\n };\n _this.onNodeSelect = function (e, treeNode) {\n var selectedKeys = _this.state.selectedKeys;\n var _this$state6 = _this.state,\n keyEntities = _this$state6.keyEntities,\n fieldNames = _this$state6.fieldNames;\n var _this$props5 = _this.props,\n onSelect = _this$props5.onSelect,\n multiple = _this$props5.multiple;\n var selected = treeNode.selected;\n var key = treeNode[fieldNames.key];\n var targetSelected = !selected;\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, key);\n } else if (!multiple) {\n selectedKeys = [key];\n } else {\n selectedKeys = arrAdd(selectedKeys, key);\n }\n // [Legacy] Not found related usage in doc or upper libs\n var selectedNodes = selectedKeys.map(function (selectedKey) {\n var entity = keyEntities[selectedKey];\n if (!entity) return null;\n return entity.node;\n }).filter(function (node) {\n return node;\n });\n _this.setUncontrolledState({\n selectedKeys: selectedKeys\n });\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedKeys, {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes: selectedNodes,\n nativeEvent: e.nativeEvent\n });\n };\n _this.onNodeCheck = function (e, treeNode, checked) {\n var _this$state7 = _this.state,\n keyEntities = _this$state7.keyEntities,\n oriCheckedKeys = _this$state7.checkedKeys,\n oriHalfCheckedKeys = _this$state7.halfCheckedKeys;\n var _this$props6 = _this.props,\n checkStrictly = _this$props6.checkStrictly,\n onCheck = _this$props6.onCheck;\n var key = treeNode.key;\n // Prepare trigger arguments\n var checkedObj;\n var eventObj = {\n event: 'check',\n node: treeNode,\n checked: checked,\n nativeEvent: e.nativeEvent\n };\n if (checkStrictly) {\n var checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);\n var halfCheckedKeys = arrDel(oriHalfCheckedKeys, key);\n checkedObj = {\n checked: checkedKeys,\n halfChecked: halfCheckedKeys\n };\n eventObj.checkedNodes = checkedKeys.map(function (checkedKey) {\n return keyEntities[checkedKey];\n }).filter(function (entity) {\n return entity;\n }).map(function (entity) {\n return entity.node;\n });\n _this.setUncontrolledState({\n checkedKeys: checkedKeys\n });\n } else {\n // Always fill first\n var _conductCheck = conductCheck([].concat(_toConsumableArray(oriCheckedKeys), [key]), true, keyEntities),\n _checkedKeys = _conductCheck.checkedKeys,\n _halfCheckedKeys = _conductCheck.halfCheckedKeys;\n // If remove, we do it again to correction\n if (!checked) {\n var keySet = new Set(_checkedKeys);\n keySet.delete(key);\n var _conductCheck2 = conductCheck(Array.from(keySet), {\n checked: false,\n halfCheckedKeys: _halfCheckedKeys\n }, keyEntities);\n _checkedKeys = _conductCheck2.checkedKeys;\n _halfCheckedKeys = _conductCheck2.halfCheckedKeys;\n }\n checkedObj = _checkedKeys;\n // [Legacy] This is used for `rc-tree-select`\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = _halfCheckedKeys;\n _checkedKeys.forEach(function (checkedKey) {\n var entity = keyEntities[checkedKey];\n if (!entity) return;\n var node = entity.node,\n pos = entity.pos;\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({\n node: node,\n pos: pos\n });\n });\n _this.setUncontrolledState({\n checkedKeys: _checkedKeys\n }, false, {\n halfCheckedKeys: _halfCheckedKeys\n });\n }\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(checkedObj, eventObj);\n };\n _this.onNodeLoad = function (treeNode) {\n var key = treeNode.key;\n var loadPromise = new Promise(function (resolve, reject) {\n // We need to get the latest state of loading/loaded keys\n _this.setState(function (_ref) {\n var _ref$loadedKeys = _ref.loadedKeys,\n loadedKeys = _ref$loadedKeys === void 0 ? [] : _ref$loadedKeys,\n _ref$loadingKeys = _ref.loadingKeys,\n loadingKeys = _ref$loadingKeys === void 0 ? [] : _ref$loadingKeys;\n var _this$props7 = _this.props,\n loadData = _this$props7.loadData,\n onLoad = _this$props7.onLoad;\n if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {\n return null;\n }\n // Process load data\n var promise = loadData(treeNode);\n promise.then(function () {\n var currentLoadedKeys = _this.state.loadedKeys;\n var newLoadedKeys = arrAdd(currentLoadedKeys, key);\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(newLoadedKeys, {\n event: 'load',\n node: treeNode\n });\n _this.setUncontrolledState({\n loadedKeys: newLoadedKeys\n });\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n resolve();\n }).catch(function (e) {\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n // If exceed max retry times, we give up retry\n _this.loadingRetryTimes[key] = (_this.loadingRetryTimes[key] || 0) + 1;\n if (_this.loadingRetryTimes[key] >= MAX_RETRY_TIMES) {\n var currentLoadedKeys = _this.state.loadedKeys;\n warning(false, 'Retry for `loadData` many times but still failed. No more retry.');\n _this.setUncontrolledState({\n loadedKeys: arrAdd(currentLoadedKeys, key)\n });\n resolve();\n }\n reject(e);\n });\n return {\n loadingKeys: arrAdd(loadingKeys, key)\n };\n });\n });\n // Not care warning if we ignore this\n loadPromise.catch(function () {});\n return loadPromise;\n };\n _this.onNodeMouseEnter = function (event, node) {\n var onMouseEnter = _this.props.onMouseEnter;\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n event: event,\n node: node\n });\n };\n _this.onNodeMouseLeave = function (event, node) {\n var onMouseLeave = _this.props.onMouseLeave;\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n event: event,\n node: node\n });\n };\n _this.onNodeContextMenu = function (event, node) {\n var onRightClick = _this.props.onRightClick;\n if (onRightClick) {\n event.preventDefault();\n onRightClick({\n event: event,\n node: node\n });\n }\n };\n _this.onFocus = function () {\n var onFocus = _this.props.onFocus;\n _this.setState({\n focused: true\n });\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n onFocus === null || onFocus === void 0 ? void 0 : onFocus.apply(void 0, args);\n };\n _this.onBlur = function () {\n var onBlur = _this.props.onBlur;\n _this.setState({\n focused: false\n });\n _this.onActiveChange(null);\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n onBlur === null || onBlur === void 0 ? void 0 : onBlur.apply(void 0, args);\n };\n _this.getTreeNodeRequiredProps = function () {\n var _this$state8 = _this.state,\n expandedKeys = _this$state8.expandedKeys,\n selectedKeys = _this$state8.selectedKeys,\n loadedKeys = _this$state8.loadedKeys,\n loadingKeys = _this$state8.loadingKeys,\n checkedKeys = _this$state8.checkedKeys,\n halfCheckedKeys = _this$state8.halfCheckedKeys,\n dragOverNodeKey = _this$state8.dragOverNodeKey,\n dropPosition = _this$state8.dropPosition,\n keyEntities = _this$state8.keyEntities;\n return {\n expandedKeys: expandedKeys || [],\n selectedKeys: selectedKeys || [],\n loadedKeys: loadedKeys || [],\n loadingKeys: loadingKeys || [],\n checkedKeys: checkedKeys || [],\n halfCheckedKeys: halfCheckedKeys || [],\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n };\n // =========================== Expanded ===========================\n /** Set uncontrolled `expandedKeys`. This will also auto update `flattenNodes`. */\n _this.setExpandedKeys = function (expandedKeys) {\n var _this$state9 = _this.state,\n treeData = _this$state9.treeData,\n fieldNames = _this$state9.fieldNames;\n var flattenNodes = flattenTreeData(treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n expandedKeys: expandedKeys,\n flattenNodes: flattenNodes\n }, true);\n };\n _this.onNodeExpand = function (e, treeNode) {\n var expandedKeys = _this.state.expandedKeys;\n var _this$state10 = _this.state,\n listChanging = _this$state10.listChanging,\n fieldNames = _this$state10.fieldNames;\n var _this$props8 = _this.props,\n onExpand = _this$props8.onExpand,\n loadData = _this$props8.loadData;\n var expanded = treeNode.expanded;\n var key = treeNode[fieldNames.key];\n // Do nothing when motion is in progress\n if (listChanging) {\n return;\n }\n // Update selected keys\n var index = expandedKeys.indexOf(key);\n var targetExpanded = !expanded;\n warning(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, key);\n } else {\n expandedKeys = arrDel(expandedKeys, key);\n }\n _this.setExpandedKeys(expandedKeys);\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e.nativeEvent\n });\n // Async Load data\n if (targetExpanded && loadData) {\n var loadPromise = _this.onNodeLoad(treeNode);\n if (loadPromise) {\n loadPromise.then(function () {\n // [Legacy] Refresh logic\n var newFlattenTreeData = flattenTreeData(_this.state.treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n flattenNodes: newFlattenTreeData\n });\n }).catch(function () {\n var currentExpandedKeys = _this.state.expandedKeys;\n var expandedKeysToRestore = arrDel(currentExpandedKeys, key);\n _this.setExpandedKeys(expandedKeysToRestore);\n });\n }\n }\n };\n _this.onListChangeStart = function () {\n _this.setUncontrolledState({\n listChanging: true\n });\n };\n _this.onListChangeEnd = function () {\n setTimeout(function () {\n _this.setUncontrolledState({\n listChanging: false\n });\n });\n };\n // =========================== Keyboard ===========================\n _this.onActiveChange = function (newActiveKey) {\n var activeKey = _this.state.activeKey;\n var onActiveChange = _this.props.onActiveChange;\n if (activeKey === newActiveKey) {\n return;\n }\n _this.setState({\n activeKey: newActiveKey\n });\n if (newActiveKey !== null) {\n _this.scrollTo({\n key: newActiveKey\n });\n }\n onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(newActiveKey);\n };\n _this.getActiveItem = function () {\n var _this$state11 = _this.state,\n activeKey = _this$state11.activeKey,\n flattenNodes = _this$state11.flattenNodes;\n if (activeKey === null) {\n return null;\n }\n return flattenNodes.find(function (_ref2) {\n var key = _ref2.key;\n return key === activeKey;\n }) || null;\n };\n _this.offsetActiveKey = function (offset) {\n var _this$state12 = _this.state,\n flattenNodes = _this$state12.flattenNodes,\n activeKey = _this$state12.activeKey;\n var index = flattenNodes.findIndex(function (_ref3) {\n var key = _ref3.key;\n return key === activeKey;\n });\n // Align with index\n if (index === -1 && offset < 0) {\n index = flattenNodes.length;\n }\n index = (index + offset + flattenNodes.length) % flattenNodes.length;\n var item = flattenNodes[index];\n if (item) {\n var key = item.key;\n _this.onActiveChange(key);\n } else {\n _this.onActiveChange(null);\n }\n };\n _this.onKeyDown = function (event) {\n var _this$state13 = _this.state,\n activeKey = _this$state13.activeKey,\n expandedKeys = _this$state13.expandedKeys,\n checkedKeys = _this$state13.checkedKeys,\n fieldNames = _this$state13.fieldNames;\n var _this$props9 = _this.props,\n onKeyDown = _this$props9.onKeyDown,\n checkable = _this$props9.checkable,\n selectable = _this$props9.selectable;\n // >>>>>>>>>> Direction\n switch (event.which) {\n case KeyCode.UP:\n {\n _this.offsetActiveKey(-1);\n event.preventDefault();\n break;\n }\n case KeyCode.DOWN:\n {\n _this.offsetActiveKey(1);\n event.preventDefault();\n break;\n }\n }\n // >>>>>>>>>> Expand & Selection\n var activeItem = _this.getActiveItem();\n if (activeItem && activeItem.data) {\n var treeNodeRequiredProps = _this.getTreeNodeRequiredProps();\n var expandable = activeItem.data.isLeaf === false || !!(activeItem.data[fieldNames.children] || []).length;\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(activeKey, treeNodeRequiredProps)), {}, {\n data: activeItem.data,\n active: true\n }));\n switch (event.which) {\n // >>> Expand\n case KeyCode.LEFT:\n {\n // Collapse if possible\n if (expandable && expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.parent) {\n _this.onActiveChange(activeItem.parent.key);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.RIGHT:\n {\n // Expand if possible\n if (expandable && !expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.children && activeItem.children.length) {\n _this.onActiveChange(activeItem.children[0].key);\n }\n event.preventDefault();\n break;\n }\n // Selection\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n {\n if (checkable && !eventNode.disabled && eventNode.checkable !== false && !eventNode.disableCheckbox) {\n _this.onNodeCheck({}, eventNode, !checkedKeys.includes(activeKey));\n } else if (!checkable && selectable && !eventNode.disabled && eventNode.selectable !== false) {\n _this.onNodeSelect({}, eventNode);\n }\n break;\n }\n }\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n };\n /**\n * Only update the value which is not in props\n */\n _this.setUncontrolledState = function (state) {\n var atomic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var forceState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!_this.destroyed) {\n var needSync = false;\n var allPassed = true;\n var newState = {};\n Object.keys(state).forEach(function (name) {\n if (name in _this.props) {\n allPassed = false;\n return;\n }\n needSync = true;\n newState[name] = state[name];\n });\n if (needSync && (!atomic || allPassed)) {\n _this.setState(_objectSpread(_objectSpread({}, newState), forceState));\n }\n }\n };\n _this.scrollTo = function (scroll) {\n _this.listRef.current.scrollTo(scroll);\n };\n return _this;\n }\n _createClass(Tree, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.destroyed = false;\n this.onUpdated();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onUpdated();\n }\n }, {\n key: \"onUpdated\",\n value: function onUpdated() {\n var activeKey = this.props.activeKey;\n if (activeKey !== undefined && activeKey !== this.state.activeKey) {\n this.setState({\n activeKey: activeKey\n });\n if (activeKey !== null) {\n this.scrollTo({\n key: activeKey\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener('dragend', this.onWindowDragEnd);\n this.destroyed = true;\n }\n }, {\n key: \"resetDragState\",\n value: function resetDragState() {\n this.setState({\n dragOverNodeKey: null,\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n var _this$state14 = this.state,\n focused = _this$state14.focused,\n flattenNodes = _this$state14.flattenNodes,\n keyEntities = _this$state14.keyEntities,\n draggingNodeKey = _this$state14.draggingNodeKey,\n activeKey = _this$state14.activeKey,\n dropLevelOffset = _this$state14.dropLevelOffset,\n dropContainerKey = _this$state14.dropContainerKey,\n dropTargetKey = _this$state14.dropTargetKey,\n dropPosition = _this$state14.dropPosition,\n dragOverNodeKey = _this$state14.dragOverNodeKey,\n indent = _this$state14.indent;\n var _this$props10 = this.props,\n prefixCls = _this$props10.prefixCls,\n className = _this$props10.className,\n style = _this$props10.style,\n showLine = _this$props10.showLine,\n focusable = _this$props10.focusable,\n _this$props10$tabInde = _this$props10.tabIndex,\n tabIndex = _this$props10$tabInde === void 0 ? 0 : _this$props10$tabInde,\n selectable = _this$props10.selectable,\n showIcon = _this$props10.showIcon,\n icon = _this$props10.icon,\n switcherIcon = _this$props10.switcherIcon,\n draggable = _this$props10.draggable,\n checkable = _this$props10.checkable,\n checkStrictly = _this$props10.checkStrictly,\n disabled = _this$props10.disabled,\n motion = _this$props10.motion,\n loadData = _this$props10.loadData,\n filterTreeNode = _this$props10.filterTreeNode,\n height = _this$props10.height,\n itemHeight = _this$props10.itemHeight,\n virtual = _this$props10.virtual,\n titleRender = _this$props10.titleRender,\n dropIndicatorRender = _this$props10.dropIndicatorRender,\n onContextMenu = _this$props10.onContextMenu,\n onScroll = _this$props10.onScroll,\n direction = _this$props10.direction,\n rootClassName = _this$props10.rootClassName,\n rootStyle = _this$props10.rootStyle;\n var domProps = pickAttrs(this.props, {\n aria: true,\n data: true\n });\n // It's better move to hooks but we just simply keep here\n var draggableConfig;\n if (draggable) {\n if (_typeof(draggable) === 'object') {\n draggableConfig = draggable;\n } else if (typeof draggable === 'function') {\n draggableConfig = {\n nodeDraggable: draggable\n };\n } else {\n draggableConfig = {};\n }\n }\n return /*#__PURE__*/React.createElement(TreeContext.Provider, {\n value: {\n prefixCls: prefixCls,\n selectable: selectable,\n showIcon: showIcon,\n icon: icon,\n switcherIcon: switcherIcon,\n draggable: draggableConfig,\n draggingNodeKey: draggingNodeKey,\n checkable: checkable,\n checkStrictly: checkStrictly,\n disabled: disabled,\n keyEntities: keyEntities,\n dropLevelOffset: dropLevelOffset,\n dropContainerKey: dropContainerKey,\n dropTargetKey: dropTargetKey,\n dropPosition: dropPosition,\n dragOverNodeKey: dragOverNodeKey,\n indent: indent,\n direction: direction,\n dropIndicatorRender: dropIndicatorRender,\n loadData: loadData,\n filterTreeNode: filterTreeNode,\n titleRender: titleRender,\n onNodeClick: this.onNodeClick,\n onNodeDoubleClick: this.onNodeDoubleClick,\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeCheck: this.onNodeCheck,\n onNodeLoad: this.onNodeLoad,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tree\",\n className: classNames(prefixCls, className, rootClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-line\"), showLine), _defineProperty(_classNames, \"\".concat(prefixCls, \"-focused\"), focused), _defineProperty(_classNames, \"\".concat(prefixCls, \"-active-focused\"), activeKey !== null), _classNames)),\n style: rootStyle\n }, /*#__PURE__*/React.createElement(NodeList, _extends({\n ref: this.listRef,\n prefixCls: prefixCls,\n style: style,\n data: flattenNodes,\n disabled: disabled,\n selectable: selectable,\n checkable: !!checkable,\n motion: motion,\n dragging: draggingNodeKey !== null,\n height: height,\n itemHeight: itemHeight,\n virtual: virtual,\n focusable: focusable,\n focused: focused,\n tabIndex: tabIndex,\n activeItem: this.getActiveItem(),\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.onKeyDown,\n onActiveChange: this.onActiveChange,\n onListChangeStart: this.onListChangeStart,\n onListChangeEnd: this.onListChangeEnd,\n onContextMenu: onContextMenu,\n onScroll: onScroll\n }, this.getTreeNodeRequiredProps(), domProps))));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var prevProps = prevState.prevProps;\n var newState = {\n prevProps: props\n };\n function needSync(name) {\n return !prevProps && name in props || prevProps && prevProps[name] !== props[name];\n }\n // ================== Tree Node ==================\n var treeData;\n // fieldNames\n var fieldNames = prevState.fieldNames;\n if (needSync('fieldNames')) {\n fieldNames = fillFieldNames(props.fieldNames);\n newState.fieldNames = fieldNames;\n }\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n treeData = props.treeData;\n } else if (needSync('children')) {\n warning(false, '`children` of Tree is deprecated. Please use `treeData` instead.');\n treeData = convertTreeToData(props.children);\n }\n // Save flatten nodes info and convert `treeData` into keyEntities\n if (treeData) {\n newState.treeData = treeData;\n var entitiesMap = convertDataToEntities(treeData, {\n fieldNames: fieldNames\n });\n newState.keyEntities = _objectSpread(_defineProperty({}, MOTION_KEY, MotionEntity), entitiesMap.keyEntities);\n // Warning if treeNode not provide key\n if (process.env.NODE_ENV !== 'production') {\n warningWithoutKey(treeData, fieldNames);\n }\n }\n var keyEntities = newState.keyEntities || prevState.keyEntities;\n // ================ expandedKeys =================\n if (needSync('expandedKeys') || prevProps && needSync('autoExpandParent')) {\n newState.expandedKeys = props.autoExpandParent || !prevProps && props.defaultExpandParent ? conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;\n } else if (!prevProps && props.defaultExpandAll) {\n var cloneKeyEntities = _objectSpread({}, keyEntities);\n delete cloneKeyEntities[MOTION_KEY];\n newState.expandedKeys = Object.keys(cloneKeyEntities).map(function (key) {\n return cloneKeyEntities[key].key;\n });\n } else if (!prevProps && props.defaultExpandedKeys) {\n newState.expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n }\n if (!newState.expandedKeys) {\n delete newState.expandedKeys;\n }\n // ================ flattenNodes =================\n if (treeData || newState.expandedKeys) {\n var flattenNodes = flattenTreeData(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys, fieldNames);\n newState.flattenNodes = flattenNodes;\n }\n // ================ selectedKeys =================\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n } else if (!prevProps && props.defaultSelectedKeys) {\n newState.selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n }\n // ================= checkedKeys =================\n if (props.checkable) {\n var checkedKeyEntity;\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeData) {\n // If `treeData` changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState.checkedKeys,\n halfCheckedKeys: prevState.halfCheckedKeys\n };\n }\n if (checkedKeyEntity) {\n var _checkedKeyEntity = checkedKeyEntity,\n _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,\n checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,\n _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,\n halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;\n if (!props.checkStrictly) {\n var conductKeys = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = conductKeys.checkedKeys;\n halfCheckedKeys = conductKeys.halfCheckedKeys;\n }\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n }\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState.loadedKeys = props.loadedKeys;\n }\n return newState;\n }\n }]);\n return Tree;\n}(React.Component);\nTree.defaultProps = {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: [],\n dropIndicatorRender: DropIndicator,\n allowDrop: function allowDrop() {\n return true;\n },\n expandAction: false\n};\nTree.TreeNode = TreeNode;\nexport default Tree;","import Tree from './Tree';\nimport TreeNode from './TreeNode';\nexport { TreeNode };\nexport default Tree;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\n/* eslint-disable no-lonely-if */\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\nimport React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport TreeNode from './TreeNode';\nexport { getPosition, isTreeNode } from './utils/treeUtil';\nexport function arrDel(list, value) {\n if (!list) return [];\n var clone = list.slice();\n var index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\nexport function arrAdd(list, value) {\n var clone = (list || []).slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\nexport function posToArr(pos) {\n return pos.split('-');\n}\nexport function getDragChildrenKeys(dragNodeKey, keyEntities) {\n // not contains self\n // self for left or right drag\n var dragChildrenKeys = [];\n var entity = keyEntities[dragNodeKey];\n function dig() {\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n list.forEach(function (_ref) {\n var key = _ref.key,\n children = _ref.children;\n dragChildrenKeys.push(key);\n dig(children);\n });\n }\n dig(entity.children);\n return dragChildrenKeys;\n}\nexport function isLastChild(treeNodeEntity) {\n if (treeNodeEntity.parent) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n }\n return false;\n}\nexport function isFirstChild(treeNodeEntity) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === 0;\n}\n// Only used when drag, not affect SSR.\nexport function calcDropPosition(event, dragNode, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {\n var _abstractDropNodeEnti;\n var clientX = event.clientX,\n clientY = event.clientY;\n var _event$target$getBoun = event.target.getBoundingClientRect(),\n top = _event$target$getBoun.top,\n height = _event$target$getBoun.height;\n // optional chain for testing\n var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);\n var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent;\n // find abstract drop node by horizontal offset\n var abstractDropNodeEntity = keyEntities[targetNode.props.eventKey];\n if (clientY < top + height / 2) {\n // first half, set abstract drop node to previous node\n var nodeIndex = flattenedNodes.findIndex(function (flattenedNode) {\n return flattenedNode.key === abstractDropNodeEntity.key;\n });\n var prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n var prevNodeKey = flattenedNodes[prevNodeIndex].key;\n abstractDropNodeEntity = keyEntities[prevNodeKey];\n }\n var initialAbstractDropNodeKey = abstractDropNodeEntity.key;\n var abstractDragOverEntity = abstractDropNodeEntity;\n var dragOverNodeKey = abstractDropNodeEntity.key;\n var dropPosition = 0;\n var dropLevelOffset = 0;\n // Only allow cross level drop when dragging on a non-expanded node\n if (!expandKeys.includes(initialAbstractDropNodeKey)) {\n for (var i = 0; i < rawDropLevelOffset; i += 1) {\n if (isLastChild(abstractDropNodeEntity)) {\n abstractDropNodeEntity = abstractDropNodeEntity.parent;\n dropLevelOffset += 1;\n } else {\n break;\n }\n }\n }\n var abstractDragDataNode = dragNode.props.data;\n var abstractDropDataNode = abstractDropNodeEntity.node;\n var dropAllowed = true;\n if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: -1\n }) && abstractDropNodeEntity.key === targetNode.props.eventKey) {\n // first half of first node in first level\n dropPosition = -1;\n } else if ((abstractDragOverEntity.children || []).length && expandKeys.includes(dragOverNodeKey)) {\n // drop on expanded node\n // only allow drop inside\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else {\n dropAllowed = false;\n }\n } else if (dropLevelOffset === 0) {\n if (rawDropLevelOffset > -1.5) {\n // | Node | <- abstractDropNode\n // | -^-===== | <- mousePosition\n // 1. try drop after\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n } else {\n // | Node | <- abstractDropNode\n // | ---==^== | <- mousePosition\n // whether it has children or doesn't has children\n // always\n // 1. try drop inside\n // 2. try drop after\n // 3. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n } else {\n // | Node1 | <- abstractDropNode\n // | Node2 |\n // --^--|----=====| <- mousePosition\n // 1. try insert after Node1\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n return {\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: abstractDropNodeEntity.key,\n dropTargetPos: abstractDropNodeEntity.pos,\n dragOverNodeKey: dragOverNodeKey,\n dropContainerKey: dropPosition === 0 ? null : ((_abstractDropNodeEnti = abstractDropNodeEntity.parent) === null || _abstractDropNodeEnti === void 0 ? void 0 : _abstractDropNodeEnti.key) || null,\n dropAllowed: dropAllowed\n };\n}\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) return undefined;\n var multiple = props.multiple;\n if (multiple) {\n return selectedKeys.slice();\n }\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\nvar internalProcessProps = function internalProcessProps(props) {\n return props;\n};\nexport function convertDataToTree(treeData, processor) {\n if (!treeData) return [];\n var _ref2 = processor || {},\n _ref2$processProps = _ref2.processProps,\n processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref3) {\n var children = _ref3.children,\n props = _objectWithoutProperties(_ref3, _excluded);\n var childrenNodes = convertDataToTree(children, processor);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n key: props.key\n }, processProps(props)), childrenNodes);\n });\n}\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n }\n // Convert keys to object format\n var keyProps;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined\n };\n } else if (_typeof(keys) === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n return keyProps;\n}\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = new Set();\n function conductUp(key) {\n if (expandedKeys.has(key)) return;\n var entity = keyEntities[key];\n if (!entity) return;\n expandedKeys.add(key);\n var parent = entity.parent,\n node = entity.node;\n if (node.disabled) return;\n if (parent) {\n conductUp(parent.key);\n }\n }\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n return _toConsumableArray(expandedKeys);\n}","import warning from \"rc-util/es/warning\";\nfunction removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {\n var filteredKeys = new Set();\n halfCheckedKeys.forEach(function (key) {\n if (!checkedKeys.has(key)) {\n filteredKeys.add(key);\n }\n });\n return filteredKeys;\n}\nexport function isCheckDisabled(node) {\n var _ref = node || {},\n disabled = _ref.disabled,\n disableCheckbox = _ref.disableCheckbox,\n checkable = _ref.checkable;\n return !!(disabled || disableCheckbox) || checkable === false;\n}\n// Fill miss keys\nfunction fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set();\n // Add checked keys top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children = entity.children,\n children = _entity$children === void 0 ? [] : _entity$children;\n if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.add(childEntity.key);\n });\n }\n });\n }\n // Add checked keys from bottom to top\n var visitedKeys = new Set();\n for (var _level = maxLevel; _level >= 0; _level -= 1) {\n var _entities = levelEntities.get(_level) || new Set();\n _entities.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref2) {\n var key = _ref2.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (allChecked) {\n checkedKeys.add(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n// Remove useless key\nfunction cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set(halfKeys);\n // Remove checked keys from top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children2 = entity.children,\n children = _entity$children2 === void 0 ? [] : _entity$children2;\n if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.delete(childEntity.key);\n });\n }\n });\n }\n // Remove checked keys form bottom to top\n halfCheckedKeys = new Set();\n var visitedKeys = new Set();\n for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {\n var _entities2 = levelEntities.get(_level2) || new Set();\n _entities2.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref3) {\n var key = _ref3.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (!allChecked) {\n checkedKeys.delete(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\nexport function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {\n var warningMissKeys = [];\n var syntheticGetCheckDisabled;\n if (getCheckDisabled) {\n syntheticGetCheckDisabled = getCheckDisabled;\n } else {\n syntheticGetCheckDisabled = isCheckDisabled;\n }\n // We only handle exist keys\n var keys = new Set(keyList.filter(function (key) {\n var hasEntity = !!keyEntities[key];\n if (!hasEntity) {\n warningMissKeys.push(key);\n }\n return hasEntity;\n }));\n var levelEntities = new Map();\n var maxLevel = 0;\n // Convert entities by level for calculation\n Object.keys(keyEntities).forEach(function (key) {\n var entity = keyEntities[key];\n var level = entity.level;\n var levelSet = levelEntities.get(level);\n if (!levelSet) {\n levelSet = new Set();\n levelEntities.set(level, levelSet);\n }\n levelSet.add(entity);\n maxLevel = Math.max(maxLevel, level);\n });\n warning(!warningMissKeys.length, \"Tree missing follow keys: \".concat(warningMissKeys.slice(0, 100).map(function (key) {\n return \"'\".concat(key, \"'\");\n }).join(', ')));\n var result;\n if (checked === true) {\n result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n } else {\n result = cleanConductCheck(keys, checked.halfCheckedKeys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n }\n return result;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport warning from \"rc-util/es/warning\";\nexport function getPosition(level, index) {\n return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\nexport function getKey(key, pos) {\n if (key !== null && key !== undefined) {\n return key;\n }\n return pos;\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n title = _ref.title,\n _title = _ref._title,\n key = _ref.key,\n children = _ref.children;\n var mergedTitle = title || 'title';\n return {\n title: mergedTitle,\n _title: _title || [mergedTitle],\n key: key || 'key',\n children: children || 'children'\n };\n}\n/**\n * Warning if TreeNode do not provides key\n */\nexport function warningWithoutKey(treeData, fieldNames) {\n var keys = new Map();\n function dig(list) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (list || []).forEach(function (treeNode) {\n var key = treeNode[fieldNames.key];\n var children = treeNode[fieldNames.children];\n warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n var recordKey = String(key);\n warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n keys.set(recordKey, true);\n dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n });\n }\n dig(treeData);\n}\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\nexport function convertTreeToData(rootNodes) {\n function dig(node) {\n var treeNodes = toArray(node);\n return treeNodes.map(function (treeNode) {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n return null;\n }\n var key = treeNode.key;\n var _treeNode$props = treeNode.props,\n children = _treeNode$props.children,\n rest = _objectWithoutProperties(_treeNode$props, _excluded);\n var dataNode = _objectSpread({\n key: key\n }, rest);\n var parsedChildren = dig(children);\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n return dataNode;\n }).filter(function (dataNode) {\n return dataNode;\n });\n }\n return dig(rootNodes);\n}\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\nexport function flattenTreeData(treeNodeList, expandedKeys, fieldNames) {\n var _fillFieldNames = fillFieldNames(fieldNames),\n fieldTitles = _fillFieldNames._title,\n fieldKey = _fillFieldNames.key,\n fieldChildren = _fillFieldNames.children;\n var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n var flattenList = [];\n function dig(list) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return list.map(function (treeNode, index) {\n var pos = getPosition(parent ? parent.pos : '0', index);\n var mergedKey = getKey(treeNode[fieldKey], pos);\n // Pick matched title in field title list\n var mergedTitle;\n for (var i = 0; i < fieldTitles.length; i += 1) {\n var fieldTitle = fieldTitles[i];\n if (treeNode[fieldTitle] !== undefined) {\n mergedTitle = treeNode[fieldTitle];\n break;\n }\n }\n // Add FlattenDataNode into list\n var flattenNode = _objectSpread(_objectSpread({}, omit(treeNode, [].concat(_toConsumableArray(fieldTitles), [fieldKey, fieldChildren]))), {}, {\n title: mergedTitle,\n key: mergedKey,\n parent: parent,\n pos: pos,\n children: null,\n data: treeNode,\n isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n });\n flattenList.push(flattenNode);\n // Loop treeNode children\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);\n } else {\n flattenNode.children = [];\n }\n return flattenNode;\n });\n }\n dig(treeNodeList);\n return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\nexport function traverseDataNodes(dataNodes, callback,\n// To avoid too many params, let use config instead of origin param\nconfig) {\n var mergedConfig = {};\n if (_typeof(config) === 'object') {\n mergedConfig = config;\n } else {\n mergedConfig = {\n externalGetKey: config\n };\n }\n mergedConfig = mergedConfig || {};\n // Init config\n var _mergedConfig = mergedConfig,\n childrenPropName = _mergedConfig.childrenPropName,\n externalGetKey = _mergedConfig.externalGetKey,\n fieldNames = _mergedConfig.fieldNames;\n var _fillFieldNames2 = fillFieldNames(fieldNames),\n fieldKey = _fillFieldNames2.key,\n fieldChildren = _fillFieldNames2.children;\n var mergeChildrenPropName = childrenPropName || fieldChildren;\n // Get keys\n var syntheticGetKey;\n if (externalGetKey) {\n if (typeof externalGetKey === 'string') {\n syntheticGetKey = function syntheticGetKey(node) {\n return node[externalGetKey];\n };\n } else if (typeof externalGetKey === 'function') {\n syntheticGetKey = function syntheticGetKey(node) {\n return externalGetKey(node);\n };\n }\n } else {\n syntheticGetKey = function syntheticGetKey(node, pos) {\n return getKey(node[fieldKey], pos);\n };\n }\n // Process\n function processNode(node, index, parent, pathNodes) {\n var children = node ? node[mergeChildrenPropName] : dataNodes;\n var pos = node ? getPosition(parent.pos, index) : '0';\n var connectNodes = node ? [].concat(_toConsumableArray(pathNodes), [node]) : [];\n // Process node if is not root\n if (node) {\n var key = syntheticGetKey(node, pos);\n var data = {\n node: node,\n index: index,\n pos: pos,\n key: key,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1,\n nodes: connectNodes\n };\n callback(data);\n }\n // Process children node\n if (children) {\n children.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, {\n node: node,\n pos: pos,\n level: parent ? parent.level + 1 : -1\n }, connectNodes);\n });\n }\n }\n processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\nexport function convertDataToEntities(dataNodes) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref2.initWrapper,\n processEntity = _ref2.processEntity,\n onProcessFinished = _ref2.onProcessFinished,\n externalGetKey = _ref2.externalGetKey,\n childrenPropName = _ref2.childrenPropName,\n fieldNames = _ref2.fieldNames;\n var /** @deprecated Use `config.externalGetKey` instead */\n legacyExternalGetKey = arguments.length > 2 ? arguments[2] : undefined;\n // Init config\n var mergedExternalGetKey = externalGetKey || legacyExternalGetKey;\n var posEntities = {};\n var keyEntities = {};\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n traverseDataNodes(dataNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos,\n level = item.level,\n nodes = item.nodes;\n var entity = {\n node: node,\n nodes: nodes,\n index: index,\n key: key,\n pos: pos,\n level: level\n };\n var mergedKey = getKey(key, pos);\n posEntities[pos] = entity;\n keyEntities[mergedKey] = entity;\n // Fill children\n entity.parent = posEntities[parentPos];\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n }, {\n externalGetKey: mergedExternalGetKey,\n childrenPropName: childrenPropName,\n fieldNames: fieldNames\n });\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\nexport function getTreeNodeProps(key, _ref3) {\n var expandedKeys = _ref3.expandedKeys,\n selectedKeys = _ref3.selectedKeys,\n loadedKeys = _ref3.loadedKeys,\n loadingKeys = _ref3.loadingKeys,\n checkedKeys = _ref3.checkedKeys,\n halfCheckedKeys = _ref3.halfCheckedKeys,\n dragOverNodeKey = _ref3.dragOverNodeKey,\n dropPosition = _ref3.dropPosition,\n keyEntities = _ref3.keyEntities;\n var entity = keyEntities[key];\n var treeNodeProps = {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n // [Legacy] Drag props\n // Since the interaction of drag is changed, the semantic of the props are\n // not accuracy, I think it should be finally removed\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n };\n return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n var data = props.data,\n expanded = props.expanded,\n selected = props.selected,\n checked = props.checked,\n loaded = props.loaded,\n loading = props.loading,\n halfChecked = props.halfChecked,\n dragOver = props.dragOver,\n dragOverGapTop = props.dragOverGapTop,\n dragOverGapBottom = props.dragOverGapBottom,\n pos = props.pos,\n active = props.active,\n eventKey = props.eventKey;\n var eventData = _objectSpread(_objectSpread({}, data), {}, {\n expanded: expanded,\n selected: selected,\n checked: checked,\n loaded: loaded,\n loading: loading,\n halfChecked: halfChecked,\n dragOver: dragOver,\n dragOverGapTop: dragOverGapTop,\n dragOverGapBottom: dragOverGapBottom,\n pos: pos,\n active: active,\n key: eventKey\n });\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get: function get() {\n warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n return props;\n }\n });\n }\n return eventData;\n}","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n if (target !== null && target !== void 0 && target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n return {\n remove: function remove() {\n if (target !== null && target !== void 0 && target.removeEventListener) {\n target.removeEventListener(eventType, callback, option);\n }\n }\n };\n}","/* eslint-disable no-nested-ternary */\nvar PIXEL_PATTERN = /margin|padding|width|height|max|min|offset/;\nvar removePixel = {\n left: true,\n top: true\n};\nvar floatMap = {\n cssFloat: 1,\n styleFloat: 1,\n float: 1\n};\nfunction getComputedStyle(node) {\n return node.nodeType === 1 ? node.ownerDocument.defaultView.getComputedStyle(node, null) : {};\n}\nfunction getStyleValue(node, type, value) {\n type = type.toLowerCase();\n if (value === 'auto') {\n if (type === 'height') {\n return node.offsetHeight;\n }\n if (type === 'width') {\n return node.offsetWidth;\n }\n }\n if (!(type in removePixel)) {\n removePixel[type] = PIXEL_PATTERN.test(type);\n }\n return removePixel[type] ? parseFloat(value) || 0 : value;\n}\nexport function get(node, name) {\n var length = arguments.length;\n var style = getComputedStyle(node);\n name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n return length === 1 ? style : getStyleValue(node, name, style[name] || node.style[name]);\n}\nexport function set(node, name, value) {\n var length = arguments.length;\n name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n if (length === 3) {\n if (typeof value === 'number' && PIXEL_PATTERN.test(name)) {\n value = \"\".concat(value, \"px\");\n }\n node.style[name] = value; // Number\n return value;\n }\n for (var x in name) {\n if (name.hasOwnProperty(x)) {\n set(node, x, name[x]);\n }\n }\n return getComputedStyle(node);\n}\nexport function getOuterWidth(el) {\n if (el === document.body) {\n return document.documentElement.clientWidth;\n }\n return el.offsetWidth;\n}\nexport function getOuterHeight(el) {\n if (el === document.body) {\n return window.innerHeight || document.documentElement.clientHeight;\n }\n return el.offsetHeight;\n}\nexport function getDocSize() {\n var width = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);\n var height = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n return {\n width: width,\n height: height\n };\n}\nexport function getClientSize() {\n var width = document.documentElement.clientWidth;\n var height = window.innerHeight || document.documentElement.clientHeight;\n return {\n width: width,\n height: height\n };\n}\nexport function getScroll() {\n return {\n scrollLeft: Math.max(document.documentElement.scrollLeft, document.body.scrollLeft),\n scrollTop: Math.max(document.documentElement.scrollTop, document.body.scrollTop)\n };\n}\nexport function getOffset(node) {\n var box = node.getBoundingClientRect();\n var docElem = document.documentElement;\n\n // < ie8 不支持 win.pageXOffset, 则使用 docElem.scrollLeft\n return {\n left: box.left + (window.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || document.body.clientLeft || 0),\n top: box.top + (window.pageYOffset || docElem.scrollTop) - (docElem.clientTop || document.body.clientTop || 0)\n };\n}","import canUseDom from \"./canUseDom\";\nvar isStyleNameSupport = function isStyleNameSupport(styleName) {\n if (canUseDom() && window.document.documentElement) {\n var styleNameList = Array.isArray(styleName) ? styleName : [styleName];\n var documentElement = window.document.documentElement;\n return styleNameList.some(function (name) {\n return name in documentElement.style;\n });\n }\n return false;\n};\nvar isStyleValueSupport = function isStyleValueSupport(styleName, value) {\n if (!isStyleNameSupport(styleName)) {\n return false;\n }\n var ele = document.createElement('div');\n var origin = ele.style[styleName];\n ele.style[styleName] = value;\n return ele.style[styleName] !== origin;\n};\nexport function isStyleSupport(styleName, styleValue) {\n if (!Array.isArray(styleName) && styleValue !== undefined) {\n return isStyleValueSupport(styleName, styleValue);\n }\n return isStyleNameSupport(styleName);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.autoprefix = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar transforms = {\n borderRadius: function borderRadius(value) {\n return {\n msBorderRadius: value,\n MozBorderRadius: value,\n OBorderRadius: value,\n WebkitBorderRadius: value,\n borderRadius: value\n };\n },\n boxShadow: function boxShadow(value) {\n return {\n msBoxShadow: value,\n MozBoxShadow: value,\n OBoxShadow: value,\n WebkitBoxShadow: value,\n boxShadow: value\n };\n },\n userSelect: function userSelect(value) {\n return {\n WebkitTouchCallout: value,\n KhtmlUserSelect: value,\n MozUserSelect: value,\n msUserSelect: value,\n WebkitUserSelect: value,\n userSelect: value\n };\n },\n\n flex: function flex(value) {\n return {\n WebkitBoxFlex: value,\n MozBoxFlex: value,\n WebkitFlex: value,\n msFlex: value,\n flex: value\n };\n },\n flexBasis: function flexBasis(value) {\n return {\n WebkitFlexBasis: value,\n flexBasis: value\n };\n },\n justifyContent: function justifyContent(value) {\n return {\n WebkitJustifyContent: value,\n justifyContent: value\n };\n },\n\n transition: function transition(value) {\n return {\n msTransition: value,\n MozTransition: value,\n OTransition: value,\n WebkitTransition: value,\n transition: value\n };\n },\n\n transform: function transform(value) {\n return {\n msTransform: value,\n MozTransform: value,\n OTransform: value,\n WebkitTransform: value,\n transform: value\n };\n },\n absolute: function absolute(value) {\n var direction = value && value.split(' ');\n return {\n position: 'absolute',\n top: direction && direction[0],\n right: direction && direction[1],\n bottom: direction && direction[2],\n left: direction && direction[3]\n };\n },\n extend: function extend(name, otherElementStyles) {\n var otherStyle = otherElementStyles[name];\n if (otherStyle) {\n return otherStyle;\n }\n return {\n 'extend': name\n };\n }\n};\n\nvar autoprefix = exports.autoprefix = function autoprefix(elements) {\n var prefixed = {};\n (0, _forOwn3.default)(elements, function (styles, element) {\n var expanded = {};\n (0, _forOwn3.default)(styles, function (value, key) {\n var transform = transforms[key];\n if (transform) {\n expanded = _extends({}, expanded, transform(value));\n } else {\n expanded[key] = value;\n }\n });\n prefixed[element] = expanded;\n });\n return prefixed;\n};\n\nexports.default = autoprefix;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.active = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar active = exports.active = function active(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Active, _React$Component);\n\n function Active() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Active);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Active.__proto__ || Object.getPrototypeOf(Active)).call.apply(_ref, [this].concat(args))), _this), _this.state = { active: false }, _this.handleMouseDown = function () {\n return _this.setState({ active: true });\n }, _this.handleMouseUp = function () {\n return _this.setState({ active: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseDown: _this.handleMouseDown, onMouseUp: _this.handleMouseUp },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Active;\n }(_react2.default.Component);\n};\n\nexports.default = active;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hover = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar hover = exports.hover = function hover(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Hover, _React$Component);\n\n function Hover() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hover);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Hover.__proto__ || Object.getPrototypeOf(Hover)).call.apply(_ref, [this].concat(args))), _this), _this.state = { hover: false }, _this.handleMouseOver = function () {\n return _this.setState({ hover: true });\n }, _this.handleMouseOut = function () {\n return _this.setState({ hover: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseOver: _this.handleMouseOver, onMouseOut: _this.handleMouseOut },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Hover;\n }(_react2.default.Component);\n};\n\nexports.default = hover;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flattenNames = undefined;\n\nvar _isString2 = require('lodash/isString');\n\nvar _isString3 = _interopRequireDefault(_isString2);\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _isPlainObject2 = require('lodash/isPlainObject');\n\nvar _isPlainObject3 = _interopRequireDefault(_isPlainObject2);\n\nvar _map2 = require('lodash/map');\n\nvar _map3 = _interopRequireDefault(_map2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar flattenNames = exports.flattenNames = function flattenNames() {\n var things = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var names = [];\n\n (0, _map3.default)(things, function (thing) {\n if (Array.isArray(thing)) {\n flattenNames(thing).map(function (name) {\n return names.push(name);\n });\n } else if ((0, _isPlainObject3.default)(thing)) {\n (0, _forOwn3.default)(thing, function (value, key) {\n value === true && names.push(key);\n names.push(key + '-' + value);\n });\n } else if ((0, _isString3.default)(thing)) {\n names.push(thing);\n }\n });\n\n return names;\n};\n\nexports.default = flattenNames;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined;\n\nvar _flattenNames = require('./flattenNames');\n\nvar _flattenNames2 = _interopRequireDefault(_flattenNames);\n\nvar _mergeClasses = require('./mergeClasses');\n\nvar _mergeClasses2 = _interopRequireDefault(_mergeClasses);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _hover2 = require('./components/hover');\n\nvar _hover3 = _interopRequireDefault(_hover2);\n\nvar _active = require('./components/active');\n\nvar _active2 = _interopRequireDefault(_active);\n\nvar _loop2 = require('./loop');\n\nvar _loop3 = _interopRequireDefault(_loop2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\nvar ReactCSS = exports.ReactCSS = function ReactCSS(classes) {\n for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n activations[_key - 1] = arguments[_key];\n }\n\n var activeNames = (0, _flattenNames2.default)(activations);\n var merged = (0, _mergeClasses2.default)(classes, activeNames);\n return (0, _autoprefix2.default)(merged);\n};\n\nexports.default = ReactCSS;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar loopable = function loopable(i, length) {\n var props = {};\n var setProp = function setProp(name) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n props[name] = value;\n };\n\n i === 0 && setProp('first-child');\n i === length - 1 && setProp('last-child');\n (i === 0 || i % 2 === 0) && setProp('even');\n Math.abs(i % 2) === 1 && setProp('odd');\n setProp('nth-child', i);\n\n return props;\n};\n\nexports.default = loopable;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mergeClasses = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _cloneDeep2 = require('lodash/cloneDeep');\n\nvar _cloneDeep3 = _interopRequireDefault(_cloneDeep2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mergeClasses = exports.mergeClasses = function mergeClasses(classes) {\n var activeNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var styles = classes.default && (0, _cloneDeep3.default)(classes.default) || {};\n activeNames.map(function (name) {\n var toMerge = classes[name];\n if (toMerge) {\n (0, _forOwn3.default)(toMerge, function (value, key) {\n if (!styles[key]) {\n styles[key] = {};\n }\n\n styles[key] = _extends({}, styles[key], toMerge[key]);\n });\n }\n\n return name;\n });\n return styles;\n};\n\nexports.default = mergeClasses;","'use strict'\n\nconst { hasOwnProperty } = Object.prototype\n\nconst stringify = configure()\n\n// @ts-expect-error\nstringify.configure = configure\n// @ts-expect-error\nstringify.stringify = stringify\n\n// @ts-expect-error\nstringify.default = stringify\n\n// @ts-expect-error used for named export\nexports.stringify = stringify\n// @ts-expect-error used for named export\nexports.configure = configure\n\nmodule.exports = stringify\n\n// eslint-disable-next-line no-control-regex\nconst strEscapeSequencesRegExp = /[\\u0000-\\u001f\\u0022\\u005c\\ud800-\\udfff]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?:[^\\ud800-\\udbff]|^)[\\udc00-\\udfff]/\n\n// Escape C0 control characters, double quotes, the backslash and every code\n// unit with a numeric value in the inclusive range 0xD800 to 0xDFFF.\nfunction strEscape (str) {\n // Some magic numbers that worked out fine while benchmarking with v8 8.0\n if (str.length < 5000 && !strEscapeSequencesRegExp.test(str)) {\n return `\"${str}\"`\n }\n return JSON.stringify(str)\n}\n\nfunction insertSort (array) {\n // Insertion sort is very efficient for small input sizes but it has a bad\n // worst case complexity. Thus, use native array sort for bigger values.\n if (array.length > 2e2) {\n return array.sort()\n }\n for (let i = 1; i < array.length; i++) {\n const currentValue = array[i]\n let position = i\n while (position !== 0 && array[position - 1] > currentValue) {\n array[position] = array[position - 1]\n position--\n }\n array[position] = currentValue\n }\n return array\n}\n\nconst typedArrayPrototypeGetSymbolToStringTag =\n Object.getOwnPropertyDescriptor(\n Object.getPrototypeOf(\n Object.getPrototypeOf(\n new Int8Array()\n )\n ),\n Symbol.toStringTag\n ).get\n\nfunction isTypedArrayWithEntries (value) {\n return typedArrayPrototypeGetSymbolToStringTag.call(value) !== undefined && value.length !== 0\n}\n\nfunction stringifyTypedArray (array, separator, maximumBreadth) {\n if (array.length < maximumBreadth) {\n maximumBreadth = array.length\n }\n const whitespace = separator === ',' ? '' : ' '\n let res = `\"0\":${whitespace}${array[0]}`\n for (let i = 1; i < maximumBreadth; i++) {\n res += `${separator}\"${i}\":${whitespace}${array[i]}`\n }\n return res\n}\n\nfunction getCircularValueOption (options) {\n if (hasOwnProperty.call(options, 'circularValue')) {\n const circularValue = options.circularValue\n if (typeof circularValue === 'string') {\n return `\"${circularValue}\"`\n }\n if (circularValue == null) {\n return circularValue\n }\n if (circularValue === Error || circularValue === TypeError) {\n return {\n toString () {\n throw new TypeError('Converting circular structure to JSON')\n }\n }\n }\n throw new TypeError('The \"circularValue\" argument must be of type string or the value null or undefined')\n }\n return '\"[Circular]\"'\n}\n\nfunction getBooleanOption (options, key) {\n let value\n if (hasOwnProperty.call(options, key)) {\n value = options[key]\n if (typeof value !== 'boolean') {\n throw new TypeError(`The \"${key}\" argument must be of type boolean`)\n }\n }\n return value === undefined ? true : value\n}\n\nfunction getPositiveIntegerOption (options, key) {\n let value\n if (hasOwnProperty.call(options, key)) {\n value = options[key]\n if (typeof value !== 'number') {\n throw new TypeError(`The \"${key}\" argument must be of type number`)\n }\n if (!Number.isInteger(value)) {\n throw new TypeError(`The \"${key}\" argument must be an integer`)\n }\n if (value < 1) {\n throw new RangeError(`The \"${key}\" argument must be >= 1`)\n }\n }\n return value === undefined ? Infinity : value\n}\n\nfunction getItemCount (number) {\n if (number === 1) {\n return '1 item'\n }\n return `${number} items`\n}\n\nfunction getUniqueReplacerSet (replacerArray) {\n const replacerSet = new Set()\n for (const value of replacerArray) {\n if (typeof value === 'string' || typeof value === 'number') {\n replacerSet.add(String(value))\n }\n }\n return replacerSet\n}\n\nfunction getStrictOption (options) {\n if (hasOwnProperty.call(options, 'strict')) {\n const value = options.strict\n if (typeof value !== 'boolean') {\n throw new TypeError('The \"strict\" argument must be of type boolean')\n }\n if (value) {\n return (value) => {\n let message = `Object can not safely be stringified. Received type ${typeof value}`\n if (typeof value !== 'function') message += ` (${value.toString()})`\n throw new Error(message)\n }\n }\n }\n}\n\nfunction configure (options) {\n options = { ...options }\n const fail = getStrictOption(options)\n if (fail) {\n if (options.bigint === undefined) {\n options.bigint = false\n }\n if (!('circularValue' in options)) {\n options.circularValue = Error\n }\n }\n const circularValue = getCircularValueOption(options)\n const bigint = getBooleanOption(options, 'bigint')\n const deterministic = getBooleanOption(options, 'deterministic')\n const maximumDepth = getPositiveIntegerOption(options, 'maximumDepth')\n const maximumBreadth = getPositiveIntegerOption(options, 'maximumBreadth')\n\n function stringifyFnReplacer (key, parent, stack, replacer, spacer, indentation) {\n let value = parent[key]\n\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n value = replacer.call(parent, key, value)\n\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n let res = ''\n let join = ','\n const originalIndentation = indentation\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n if (spacer !== '') {\n indentation += spacer\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n }\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyFnReplacer(String(i), value, stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyFnReplacer(String(i), value, stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n if (spacer !== '') {\n res += `\\n${originalIndentation}`\n }\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n let whitespace = ''\n let separator = ''\n if (spacer !== '') {\n indentation += spacer\n join = `,\\n${indentation}`\n whitespace = ' '\n }\n const maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (deterministic && !isTypedArrayWithEntries(value)) {\n keys = insertSort(keys)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifyFnReplacer(key, value, stack, replacer, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}:${whitespace}${tmp}`\n separator = join\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\":${whitespace}\"${getItemCount(removedKeys)} not stringified\"`\n separator = join\n }\n if (spacer !== '' && separator.length > 1) {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifyArrayReplacer (key, value, stack, replacer, spacer, indentation) {\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n const originalIndentation = indentation\n let res = ''\n let join = ','\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n if (spacer !== '') {\n indentation += spacer\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n }\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyArrayReplacer(String(i), value[i], stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyArrayReplacer(String(i), value[i], stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n if (spacer !== '') {\n res += `\\n${originalIndentation}`\n }\n stack.pop()\n return `[${res}]`\n }\n stack.push(value)\n let whitespace = ''\n if (spacer !== '') {\n indentation += spacer\n join = `,\\n${indentation}`\n whitespace = ' '\n }\n let separator = ''\n for (const key of replacer) {\n const tmp = stringifyArrayReplacer(key, value[key], stack, replacer, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}:${whitespace}${tmp}`\n separator = join\n }\n }\n if (spacer !== '' && separator.length > 1) {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifyIndent (key, value, stack, spacer, indentation) {\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n // Prevent calling `toJSON` again.\n if (typeof value !== 'object') {\n return stringifyIndent(key, value, stack, spacer, indentation)\n }\n if (value === null) {\n return 'null'\n }\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n const originalIndentation = indentation\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n indentation += spacer\n let res = `\\n${indentation}`\n const join = `,\\n${indentation}`\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyIndent(String(i), value[i], stack, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyIndent(String(i), value[i], stack, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n res += `\\n${originalIndentation}`\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n indentation += spacer\n const join = `,\\n${indentation}`\n let res = ''\n let separator = ''\n let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (isTypedArrayWithEntries(value)) {\n res += stringifyTypedArray(value, join, maximumBreadth)\n keys = keys.slice(value.length)\n maximumPropertiesToStringify -= value.length\n separator = join\n }\n if (deterministic) {\n keys = insertSort(keys)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifyIndent(key, value[key], stack, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}: ${tmp}`\n separator = join\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\": \"${getItemCount(removedKeys)} not stringified\"`\n separator = join\n }\n if (separator !== '') {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifySimple (key, value, stack) {\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n // Prevent calling `toJSON` again\n if (typeof value !== 'object') {\n return stringifySimple(key, value, stack)\n }\n if (value === null) {\n return 'null'\n }\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n let res = ''\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifySimple(String(i), value[i], stack)\n res += tmp !== undefined ? tmp : 'null'\n res += ','\n }\n const tmp = stringifySimple(String(i), value[i], stack)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `,\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n let separator = ''\n let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (isTypedArrayWithEntries(value)) {\n res += stringifyTypedArray(value, ',', maximumBreadth)\n keys = keys.slice(value.length)\n maximumPropertiesToStringify -= value.length\n separator = ','\n }\n if (deterministic) {\n keys = insertSort(keys)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifySimple(key, value[key], stack)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}:${tmp}`\n separator = ','\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\":\"${getItemCount(removedKeys)} not stringified\"`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringify (value, replacer, space) {\n if (arguments.length > 1) {\n let spacer = ''\n if (typeof space === 'number') {\n spacer = ' '.repeat(Math.min(space, 10))\n } else if (typeof space === 'string') {\n spacer = space.slice(0, 10)\n }\n if (replacer != null) {\n if (typeof replacer === 'function') {\n return stringifyFnReplacer('', { '': value }, [], replacer, spacer, '')\n }\n if (Array.isArray(replacer)) {\n return stringifyArrayReplacer('', value, [], getUniqueReplacerSet(replacer), spacer, '')\n }\n }\n if (spacer.length !== 0) {\n return stringifyIndent('', value, [], spacer, '')\n }\n }\n return stringifySimple('', value, [])\n }\n\n return stringify\n}\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/deepdataspace/server/static/818.9ff3ddb4.async.js b/deepdataspace/server/static/818.9ff3ddb4.async.js deleted file mode 100644 index be590d4..0000000 --- a/deepdataspace/server/static/818.9ff3ddb4.async.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[818],{15618:function(dr,Kt,l){l.d(Kt,{Z:function(){return fe}});var v=l(85678),ct=l(79999),Ge=l(52495),ge=l(69831),p=l(33064),dt=l(87608),re=l.n(dt),O=l(17598),L=l(33926),w=l(58757),Ee=l(37047),he=l(61836),le=l(78330),Ne=l(52628),ut=l(22151);const ve=(I,P,S,F,W)=>({backgroundColor:I,border:`${F.lineWidth}px ${F.lineType} ${P}`,[`${W}-icon`]:{color:S}}),Ye=I=>{const{componentCls:P,motionDurationSlow:S,marginXS:F,marginSM:W,fontSize:ce,fontSizeLG:Le,lineHeight:We,borderRadiusLG:Ve,motionEaseInOutCirc:Re,alertIconSizeLG:Qe,colorText:ot,paddingContentVerticalSM:Je,alertPaddingHorizontal:ke,paddingMD:ze,paddingContentHorizontalLG:De,colorTextHeading:pt}=I;return{[P]:Object.assign(Object.assign({},(0,le.Wf)(I)),{position:"relative",display:"flex",alignItems:"center",padding:`${Je}px ${ke}px`,wordWrap:"break-word",borderRadius:Ve,[`&${P}-rtl`]:{direction:"rtl"},[`${P}-content`]:{flex:1,minWidth:0},[`${P}-icon`]:{marginInlineEnd:F,lineHeight:0},["&-description"]:{display:"none",fontSize:ce,lineHeight:We},"&-message":{color:ot},[`&${P}-motion-leave`]:{overflow:"hidden",opacity:1,transition:`max-height ${S} ${Re}, opacity ${S} ${Re}, - padding-top ${S} ${Re}, padding-bottom ${S} ${Re}, - margin-bottom ${S} ${Re}`},[`&${P}-motion-leave-active`]:{maxHeight:0,marginBottom:"0 !important",paddingTop:0,paddingBottom:0,opacity:0}}),[`${P}-with-description`]:{alignItems:"flex-start",paddingInline:De,paddingBlock:ze,[`${P}-icon`]:{marginInlineEnd:W,fontSize:Qe,lineHeight:0},[`${P}-message`]:{display:"block",marginBottom:F,color:pt,fontSize:Le},[`${P}-description`]:{display:"block"}},[`${P}-banner`]:{marginBottom:0,border:"0 !important",borderRadius:0}}},St=I=>{const{componentCls:P,colorSuccess:S,colorSuccessBorder:F,colorSuccessBg:W,colorWarning:ce,colorWarningBorder:Le,colorWarningBg:We,colorError:Ve,colorErrorBorder:Re,colorErrorBg:Qe,colorInfo:ot,colorInfoBorder:Je,colorInfoBg:ke}=I;return{[P]:{"&-success":ve(W,F,S,I,P),"&-info":ve(ke,Je,ot,I,P),"&-warning":ve(We,Le,ce,I,P),"&-error":Object.assign(Object.assign({},ve(Qe,Re,Ve,I,P)),{[`${P}-description > pre`]:{margin:0,padding:0}})}}},Yt=I=>{const{componentCls:P,iconCls:S,motionDurationMid:F,marginXS:W,fontSizeIcon:ce,colorIcon:Le,colorIconHover:We}=I;return{[P]:{["&-action"]:{marginInlineStart:W},[`${P}-close-icon`]:{marginInlineStart:W,padding:0,overflow:"hidden",fontSize:ce,lineHeight:`${ce}px`,backgroundColor:"transparent",border:"none",outline:"none",cursor:"pointer",[`${S}-close`]:{color:Le,transition:`color ${F}`,"&:hover":{color:We}}},"&-close-text":{color:Le,transition:`color ${F}`,"&:hover":{color:We}}}}},Qt=I=>[Ye(I),St(I),Yt(I)];var Ft=(0,Ne.Z)("Alert",I=>{const{fontSizeHeading3:P}=I,S=(0,ut.TS)(I,{alertIconSizeLG:P,alertPaddingHorizontal:12});return[Qt(S)]}),rt=function(I,P){var S={};for(var F in I)Object.prototype.hasOwnProperty.call(I,F)&&P.indexOf(F)<0&&(S[F]=I[F]);if(I!=null&&typeof Object.getOwnPropertySymbols=="function")for(var W=0,F=Object.getOwnPropertySymbols(I);W{const{icon:P,prefixCls:S,type:F}=I,W=Fe[F]||null;return P?(0,Ee.wm)(P,w.createElement("span",{className:`${S}-icon`},P),()=>({className:re()(`${S}-icon`,{[P.props.className]:P.props.className})})):w.createElement(W,{className:`${S}-icon`})},gt=I=>{const{isClosable:P,prefixCls:S,closeIcon:F,handleClose:W}=I,ce=F===!0||F===void 0?w.createElement(Ge.Z,null):F;return P?w.createElement("button",{type:"button",onClick:W,className:`${S}-close-icon`,tabIndex:0},ce):null};var nt=I=>{const{description:P,prefixCls:S,message:F,banner:W,className:ce,rootClassName:Le,style:We,onMouseEnter:Ve,onMouseLeave:Re,onClick:Qe,afterClose:ot,showIcon:Je,closable:ke,closeText:ze,closeIcon:De,action:pt}=I,Wt=rt(I,["description","prefixCls","message","banner","className","rootClassName","style","onMouseEnter","onMouseLeave","onClick","afterClose","showIcon","closable","closeText","closeIcon","action"]),[Rt,Ht]=w.useState(!1),Xt=w.useRef(null),{getPrefixCls:Dt,direction:er,alert:vt}=w.useContext(he.E_),Ie=Dt("alert",S),[Jt,lr]=Ft(Ie),tr=h=>{var b;Ht(!0),(b=I.onClose)===null||b===void 0||b.call(I,h)},nr=w.useMemo(()=>I.type!==void 0?I.type:W?"warning":"info",[I.type,W]),or=w.useMemo(()=>ze?!0:typeof ke=="boolean"?ke:De!==!1&&De!==null&&De!==void 0,[ze,De,ke]),yt=W&&Je===void 0?!0:Je,r=re()(Ie,`${Ie}-${nr}`,{[`${Ie}-with-description`]:!!P,[`${Ie}-no-icon`]:!yt,[`${Ie}-banner`]:!!W,[`${Ie}-rtl`]:er==="rtl"},vt==null?void 0:vt.className,ce,Le,lr),c=(0,L.Z)(Wt,{aria:!0,data:!0});return Jt(w.createElement(O.ZP,{visible:!Rt,motionName:`${Ie}-motion`,motionAppear:!1,motionEnter:!1,onLeaveStart:h=>({maxHeight:h.offsetHeight}),onLeaveEnd:ot},h=>{let{className:b,style:x}=h;return w.createElement("div",Object.assign({ref:Xt,"data-show":!Rt,className:re()(r,b),style:Object.assign(Object.assign(Object.assign({},vt==null?void 0:vt.style),We),x),onMouseEnter:Ve,onMouseLeave:Re,onClick:Qe,role:"alert"},c),yt?w.createElement(jt,{description:P,icon:I.icon,prefixCls:Ie,type:nr}):null,w.createElement("div",{className:`${Ie}-content`},F?w.createElement("div",{className:`${Ie}-message`},F):null,P?w.createElement("div",{className:`${Ie}-description`},P):null),pt?w.createElement("div",{className:`${Ie}-action`},pt):null,w.createElement(gt,{isClosable:or,prefixCls:Ie,closeIcon:ze||De,handleClose:tr}))}))},mt=l(60412),ft=l(14346),Ue=l(87498),ht=l(73726),Lt=function(I){(0,Ue.Z)(S,I);var P=(0,ht.Z)(S);function S(){var F;return(0,mt.Z)(this,S),F=P.apply(this,arguments),F.state={error:void 0,info:{componentStack:""}},F}return(0,ft.Z)(S,[{key:"componentDidCatch",value:function(W,ce){this.setState({error:W,info:ce})}},{key:"render",value:function(){const{message:W,description:ce,children:Le}=this.props,{error:We,info:Ve}=this.state,Re=Ve&&Ve.componentStack?Ve.componentStack:null,Qe=typeof W=="undefined"?(We||"").toString():W,ot=typeof ce=="undefined"?Re:ce;return We?w.createElement(nt,{type:"error",message:Qe,description:w.createElement("pre",{style:{fontSize:"0.9em",overflowX:"auto"}},ot)}):Le}}]),S}(w.Component);const je=nt;je.ErrorBoundary=Lt;var fe=je},47513:function(dr,Kt,l){l.d(Kt,{Z:function(){return It}});var v=l(29140),ct=l(87608),Ge=l.n(ct),ge=l(17598),p=l(58757),dt=l(90881),re=l(81496);function O(e){const[u,g]=p.useState(e);return p.useEffect(()=>{const m=setTimeout(()=>{g(e)},e.length?0:10);return()=>{clearTimeout(m)}},[e]),u}var L=l(78330),w=l(28107),Ee=l(41086),he=l(52628),le=l(22151),ut=e=>{const{componentCls:u}=e,g=`${u}-show-help`,m=`${u}-show-help-item`;return{[g]:{transition:`opacity ${e.motionDurationSlow} ${e.motionEaseInOut}`,"&-appear, &-enter":{opacity:0,"&-active":{opacity:1}},"&-leave":{opacity:1,"&-active":{opacity:0}},[m]:{overflow:"hidden",transition:`height ${e.motionDurationSlow} ${e.motionEaseInOut}, - opacity ${e.motionDurationSlow} ${e.motionEaseInOut}, - transform ${e.motionDurationSlow} ${e.motionEaseInOut} !important`,[`&${m}-appear, &${m}-enter`]:{transform:"translateY(-5px)",opacity:0,["&-active"]:{transform:"translateY(0)",opacity:1}},[`&${m}-leave-active`]:{transform:"translateY(-5px)"}}}}};const ve=e=>({legend:{display:"block",width:"100%",marginBottom:e.marginLG,padding:0,color:e.colorTextDescription,fontSize:e.fontSizeLG,lineHeight:"inherit",border:0,borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`},label:{fontSize:e.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 ${e.controlOutlineWidth}px ${e.controlOutline}`},output:{display:"block",paddingTop:15,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight}}),Ye=(e,u)=>{const{formItemCls:g}=e;return{[g]:{[`${g}-label > label`]:{height:u},[`${g}-control-input`]:{minHeight:u}}}},St=e=>{const{componentCls:u}=e;return{[e.componentCls]:Object.assign(Object.assign(Object.assign({},(0,L.Wf)(e)),ve(e)),{[`${u}-text`]:{display:"inline-block",paddingInlineEnd:e.paddingSM},"&-small":Object.assign({},Ye(e,e.controlHeightSM)),"&-large":Object.assign({},Ye(e,e.controlHeightLG))})}},Yt=e=>{const{formItemCls:u,iconCls:g,componentCls:m,rootPrefixCls:y}=e;return{[u]:Object.assign(Object.assign({},(0,L.Wf)(e)),{marginBottom:e.marginLG,verticalAlign:"top","&-with-help":{transition:"none"},[`&-hidden, - &-hidden.${y}-row`]:{display:"none"},"&-has-warning":{[`${u}-split`]:{color:e.colorError}},"&-has-error":{[`${u}-split`]:{color:e.colorWarning}},[`${u}-label`]:{display:"inline-block",flexGrow:0,overflow:"hidden",whiteSpace:"nowrap",textAlign:"end",verticalAlign:"middle","&-left":{textAlign:"start"},"&-wrap":{overflow:"unset",lineHeight:`${e.lineHeight} - 0.25em`,whiteSpace:"unset"},"> label":{position:"relative",display:"inline-flex",alignItems:"center",maxWidth:"100%",height:e.controlHeight,color:e.colorTextHeading,fontSize:e.fontSize,[`> ${g}`]:{fontSize:e.fontSize,verticalAlign:"top"},[`&${u}-required:not(${u}-required-mark-optional)::before`]:{display:"inline-block",marginInlineEnd:e.marginXXS,color:e.colorError,fontSize:e.fontSize,fontFamily:"SimSun, sans-serif",lineHeight:1,content:'"*"',[`${m}-hide-required-mark &`]:{display:"none"}},[`${u}-optional`]:{display:"inline-block",marginInlineStart:e.marginXXS,color:e.colorTextDescription,[`${m}-hide-required-mark &`]:{display:"none"}},[`${u}-tooltip`]:{color:e.colorTextDescription,cursor:"help",writingMode:"horizontal-tb",marginInlineStart:e.marginXXS},"&::after":{content:'":"',position:"relative",marginBlock:0,marginInlineStart:e.marginXXS/2,marginInlineEnd:e.marginXS},[`&${u}-no-colon::after`]:{content:'"\\a0"'}}},[`${u}-control`]:{display:"flex",flexDirection:"column",flexGrow:1,[`&:first-child:not([class^="'${y}-col-'"]):not([class*="' ${y}-col-'"])`]:{width:"100%"},"&-input":{position:"relative",display:"flex",alignItems:"center",minHeight:e.controlHeight,"&-content":{flex:"auto",maxWidth:"100%"}}},[u]:{"&-explain, &-extra":{clear:"both",color:e.colorTextDescription,fontSize:e.fontSize,lineHeight:e.lineHeight},"&-explain-connected":{width:"100%"},"&-extra":{minHeight:e.controlHeightSM,transition:`color ${e.motionDurationMid} ${e.motionEaseOut}`},"&-explain":{"&-error":{color:e.colorError},"&-warning":{color:e.colorWarning}}},[`&-with-help ${u}-explain`]:{height:"auto",opacity:1},[`${u}-feedback-icon`]:{fontSize:e.fontSize,textAlign:"center",visibility:"visible",animationName:w.kr,animationDuration:e.motionDurationMid,animationTimingFunction:e.motionEaseOutBack,pointerEvents:"none","&-success":{color:e.colorSuccess},"&-error":{color:e.colorError},"&-warning":{color:e.colorWarning},"&-validating":{color:e.colorPrimary}}})}},Qt=e=>{const{componentCls:u,formItemCls:g,rootPrefixCls:m}=e;return{[`${u}-horizontal`]:{[`${g}-label`]:{flexGrow:0},[`${g}-control`]:{flex:"1 1 0",minWidth:0},[`${g}-label.${m}-col-24 + ${g}-control`]:{minWidth:"unset"}}}},Ft=e=>{const{componentCls:u,formItemCls:g}=e;return{[`${u}-inline`]:{display:"flex",flexWrap:"wrap",[g]:{flex:"none",marginInlineEnd:e.margin,marginBottom:0,"&-row":{flexWrap:"nowrap"},[`> ${g}-label, - > ${g}-control`]:{display:"inline-block",verticalAlign:"top"},[`> ${g}-label`]:{flex:"none"},[`${u}-text`]:{display:"inline-block"},[`${g}-has-feedback`]:{display:"inline-block"}}}}},rt=e=>({padding:`0 0 ${e.paddingXS}px`,whiteSpace:"initial",textAlign:"start","> label":{margin:0,"&::after":{visibility:"hidden"}}}),Fe=e=>{const{componentCls:u,formItemCls:g,rootPrefixCls:m}=e;return{[`${g} ${g}-label`]:rt(e),[u]:{[g]:{flexWrap:"wrap",[`${g}-label, ${g}-control`]:{[`&:not([class*=" ${m}-col-xs"])`]:{flex:"0 0 100%",maxWidth:"100%"}}}}}},jt=e=>{const{componentCls:u,formItemCls:g,rootPrefixCls:m}=e;return{[`${u}-vertical`]:{[g]:{"&-row":{flexDirection:"column"},"&-label > label":{height:"auto"},[`${u}-item-control`]:{width:"100%"}}},[`${u}-vertical ${g}-label, - .${m}-col-24${g}-label, - .${m}-col-xl-24${g}-label`]:rt(e),[`@media (max-width: ${e.screenXSMax}px)`]:[Fe(e),{[u]:{[`.${m}-col-xs-24${g}-label`]:rt(e)}}],[`@media (max-width: ${e.screenSMMax}px)`]:{[u]:{[`.${m}-col-sm-24${g}-label`]:rt(e)}},[`@media (max-width: ${e.screenMDMax}px)`]:{[u]:{[`.${m}-col-md-24${g}-label`]:rt(e)}},[`@media (max-width: ${e.screenLGMax}px)`]:{[u]:{[`.${m}-col-lg-24${g}-label`]:rt(e)}}}};var gt=(0,he.Z)("Form",(e,u)=>{let{rootPrefixCls:g}=u;const m=(0,le.TS)(e,{formItemCls:`${e.componentCls}-item`,rootPrefixCls:g});return[St(m),Yt(m),ut(m),Qt(m),Ft(m),jt(m),(0,Ee.Z)(m),w.kr]});const xt=[];function nt(e,u,g){let m=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;return{key:typeof e=="string"?e:`${u}-${m}`,error:e,errorStatus:g}}var ft=e=>{let{help:u,helpStatus:g,errors:m=xt,warnings:y=xt,className:N,fieldId:A,onVisibleChanged:Q}=e;const{prefixCls:U}=p.useContext(re.Rk),V=`${U}-item-explain`,[,ee]=gt(U),Te=(0,p.useMemo)(()=>(0,dt.Z)(U),[U]),_e=O(m),xe=O(y),et=p.useMemo(()=>u!=null?[nt(u,"help",g)]:[].concat((0,v.Z)(_e.map((i,n)=>nt(i,"error","error",n))),(0,v.Z)(xe.map((i,n)=>nt(i,"warning","warning",n)))),[u,g,_e,xe]),t={};return A&&(t.id=`${A}_help`),p.createElement(ge.ZP,{motionDeadline:Te.motionDeadline,motionName:`${U}-show-help`,visible:!!et.length,onVisibleChanged:Q},i=>{const{className:n,style:o}=i;return p.createElement("div",Object.assign({},t,{className:Ge()(V,n,N,ee),style:o,role:"alert"}),p.createElement(ge.V4,Object.assign({keys:et},(0,dt.Z)(U),{motionName:`${U}-show-help-item`,component:!1}),f=>{const{key:s,error:d,errorStatus:a,className:$,style:C}=f;return p.createElement("div",{key:s,className:Ge()($,{[`${V}-${a}`]:a}),style:C},d)}))})},Ue=l(94866),ht=l(61836),Vt=l(92428),Lt=l(33446),je=l(58785),fe=l(18591);const I=["parentNode"],P="form_item";function S(e){return e===void 0||e===!1?[]:Array.isArray(e)?e:[e]}function F(e,u){if(!e.length)return;const g=e.join("_");return u?`${u}_${g}`:I.includes(g)?`${P}_${g}`:g}function W(e){return S(e).join("_")}function ce(e){const[u]=(0,Ue.cI)(),g=p.useRef({}),m=p.useMemo(()=>e!=null?e:Object.assign(Object.assign({},u),{__INTERNAL__:{itemRef:y=>N=>{const A=W(y);N?g.current[A]=N:delete g.current[A]}},scrollToField:function(y){let N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const A=S(y),Q=F(A,m.__INTERNAL__.name),U=Q?document.getElementById(Q):null;U&&(0,fe.Z)(U,Object.assign({scrollMode:"if-needed",block:"nearest"},N))},getFieldInstance:y=>{const N=W(y);return g.current[N]}}),[e,u]);return[m]}var Le=l(48736),We=function(e,u){var g={};for(var m in e)Object.prototype.hasOwnProperty.call(e,m)&&u.indexOf(m)<0&&(g[m]=e[m]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var y=0,m=Object.getOwnPropertySymbols(e);y{const g=p.useContext(Vt.Z),{getPrefixCls:m,direction:y,form:N}=p.useContext(ht.E_),{prefixCls:A,className:Q,rootClassName:U,size:V,disabled:ee=g,form:Te,colon:_e,labelAlign:xe,labelWrap:et,labelCol:t,wrapperCol:i,hideRequiredMark:n,layout:o="horizontal",scrollToFirstError:f,requiredMark:s,onFinishFailed:d,name:a,style:$}=e,C=We(e,["prefixCls","className","rootClassName","size","disabled","form","colon","labelAlign","labelWrap","labelCol","wrapperCol","hideRequiredMark","layout","scrollToFirstError","requiredMark","onFinishFailed","name","style"]),E=(0,je.Z)(V),M=p.useContext(Le.Z),R=(0,p.useMemo)(()=>s!==void 0?s:N&&N.requiredMark!==void 0?N.requiredMark:!n,[n,s,N]),J=_e!=null?_e:N==null?void 0:N.colon,de=m("form",A),[te,Pe]=gt(de),ye=Ge()(de,`${de}-${o}`,{[`${de}-hide-required-mark`]:R===!1,[`${de}-rtl`]:y==="rtl",[`${de}-${E}`]:E},Pe,N==null?void 0:N.className,Q,U),[X]=ce(Te),{__INTERNAL__:q}=X;q.name=a;const ue=(0,p.useMemo)(()=>({name:a,labelAlign:xe,labelCol:t,labelWrap:et,wrapperCol:i,vertical:o==="vertical",colon:J,requiredMark:R,itemRef:q.itemRef,form:X}),[a,xe,t,i,o,J,R,X]);p.useImperativeHandle(u,()=>X);const D=(_,Ke)=>{if(_){let Y={block:"nearest"};typeof _=="object"&&(Y=_),X.scrollToField(Ke,Y)}},Xe=_=>{if(d==null||d(_),_.errorFields.length){const Ke=_.errorFields[0].name;if(f!==void 0){D(f,Ke);return}N&&N.scrollToFirstError!==void 0&&D(N.scrollToFirstError,Ke)}};return te(p.createElement(Vt.n,{disabled:ee},p.createElement(Lt.q,{size:E},p.createElement(re.RV,{validateMessages:M},p.createElement(re.q3.Provider,{value:ue},p.createElement(Ue.ZP,Object.assign({id:a},C,{name:a,onFinishFailed:Xe,form:X,style:Object.assign(Object.assign({},N==null?void 0:N.style),$),className:ye})))))))};var Qe=p.forwardRef(Ve),ot=l(13989),Je=l(21319),ke=l(37047);const ze=()=>{const{status:e,errors:u=[],warnings:g=[]}=(0,p.useContext)(re.aM);return{status:e,errors:u,warnings:g}};ze.Context=re.aM;var De=ze,pt=l(61834);function Wt(e){const[u,g]=p.useState(e),m=(0,p.useRef)(null),y=(0,p.useRef)([]),N=(0,p.useRef)(!1);p.useEffect(()=>(N.current=!1,()=>{N.current=!0,pt.Z.cancel(m.current),m.current=null}),[]);function A(Q){N.current||(m.current===null&&(y.current=[],m.current=(0,pt.Z)(()=>{m.current=null,g(U=>{let V=U;return y.current.forEach(ee=>{V=ee(V)}),V})})),y.current.push(Q))}return[u,A]}function Rt(){const{itemRef:e}=p.useContext(re.q3),u=p.useRef({});function g(m,y){const N=y&&typeof y=="object"&&y.ref,A=m.join("_");return(u.current.name!==A||u.current.originRef!==N)&&(u.current.name=A,u.current.originRef=N,u.current.ref=(0,Je.sQ)(e(m),N)),u.current.ref}return g}var Ht=l(85678),Xt=l(79999),Dt=l(69831),er=l(25755),vt=l(81334),Ie=l(46499),Jt=l(98186),lr=l(67665),tr=l(91334),or=e=>{const{prefixCls:u,status:g,wrapperCol:m,children:y,errors:N,warnings:A,_internalItemRender:Q,extra:U,help:V,fieldId:ee,marginBottom:Te,onErrorVisibleChanged:_e}=e,xe=`${u}-item`,et=p.useContext(re.q3),t=m||et.wrapperCol||{},i=Ge()(`${xe}-control`,t.className),n=p.useMemo(()=>Object.assign({},et),[et]);delete n.labelCol,delete n.wrapperCol;const o=p.createElement("div",{className:`${xe}-control-input`},p.createElement("div",{className:`${xe}-control-input-content`},y)),f=p.useMemo(()=>({prefixCls:u,status:g}),[u,g]),s=Te!==null||N.length||A.length?p.createElement("div",{style:{display:"flex",flexWrap:"nowrap"}},p.createElement(re.Rk.Provider,{value:f},p.createElement(ft,{fieldId:ee,errors:N,warnings:A,help:V,helpStatus:g,className:`${xe}-explain-connected`,onVisibleChanged:_e})),!!Te&&p.createElement("div",{style:{width:0,height:Te}})):null,d={};ee&&(d.id=`${ee}_extra`);const a=U?p.createElement("div",Object.assign({},d,{className:`${xe}-extra`}),U):null,$=Q&&Q.mark==="pro_table_render"&&Q.render?Q.render(e,{input:o,errorList:s,extra:a}):p.createElement(p.Fragment,null,o,s,a);return p.createElement(re.q3.Provider,{value:n},p.createElement(tr.Z,Object.assign({},t,{className:i}),$))},yt=l(60698),r={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"},c=r,h=l(17202),b=function(u,g){return p.createElement(h.Z,(0,yt.Z)({},u,{ref:g,icon:c}))},x=p.forwardRef(b),H=l(80076),T=l(29487),Z=l(74820),B=function(e,u){var g={};for(var m in e)Object.prototype.hasOwnProperty.call(e,m)&&u.indexOf(m)<0&&(g[m]=e[m]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var y=0,m=Object.getOwnPropertySymbols(e);y{let{prefixCls:u,label:g,htmlFor:m,labelCol:y,labelAlign:N,colon:A,required:Q,requiredMark:U,tooltip:V}=e;var ee;const[Te]=(0,T.Z)("Form"),{vertical:_e,labelAlign:xe,labelCol:et,labelWrap:t,colon:i}=p.useContext(re.q3);if(!g)return null;const n=y||et||{},o=N||xe,f=`${u}-item-label`,s=Ge()(f,o==="left"&&`${f}-left`,n.className,{[`${f}-wrap`]:!!t});let d=g;const a=A===!0||i!==!1&&A!==!1;a&&!_e&&typeof g=="string"&&g.trim()!==""&&(d=g.replace(/[:|:]\s*$/,""));const C=ie(V);if(C){const{icon:M=p.createElement(x,null)}=C,R=B(C,["icon"]),J=p.createElement(Z.Z,Object.assign({},R),p.cloneElement(M,{className:`${u}-item-tooltip`,title:""}));d=p.createElement(p.Fragment,null,d,J)}U==="optional"&&!Q&&(d=p.createElement(p.Fragment,null,d,p.createElement("span",{className:`${u}-item-optional`,title:""},(Te==null?void 0:Te.optional)||((ee=H.Z.Form)===null||ee===void 0?void 0:ee.optional))));const E=Ge()({[`${u}-item-required`]:Q,[`${u}-item-required-mark-optional`]:U==="optional",[`${u}-item-no-colon`]:!a});return p.createElement(tr.Z,Object.assign({},n,{className:s}),p.createElement("label",{htmlFor:m,className:E,title:typeof g=="string"?g:""},d))},Oe=function(e,u){var g={};for(var m in e)Object.prototype.hasOwnProperty.call(e,m)&&u.indexOf(m)<0&&(g[m]=e[m]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var y=0,m=Object.getOwnPropertySymbols(e);y{if(C&&s.current){const X=getComputedStyle(s.current);R(parseInt(X.marginBottom,10))}},[C,E]);const J=X=>{X||R(null)},te=function(){let X=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,q="";const ue=X?d:V.errors,D=X?a:V.warnings;return U!==void 0?q=U:V.validating?q="validating":ue.length?q="error":D.length?q="warning":(V.touched||ee&&V.validated)&&(q="success"),q}(),Pe=p.useMemo(()=>{let X;if(ee){const q=te&&He[te];X=q?p.createElement("span",{className:Ge()(`${o}-feedback-icon`,`${o}-feedback-icon-${te}`)},p.createElement(q,null)):null}return{status:te,errors:A,warnings:Q,hasFeedback:ee,feedbackIcon:X,isFormItemInput:!0}},[te,ee]),ye=Ge()(o,g,m,{[`${o}-with-help`]:$||d.length||a.length,[`${o}-has-feedback`]:te&&ee,[`${o}-has-success`]:te==="success",[`${o}-has-warning`]:te==="warning",[`${o}-has-error`]:te==="error",[`${o}-is-validating`]:te==="validating",[`${o}-hidden`]:Te});return p.createElement("div",{className:ye,style:y,ref:s},p.createElement(lr.Z,Object.assign({className:`${o}-row`},(0,Jt.Z)(n,["_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"])),p.createElement($e,Object.assign({htmlFor:xe},e,{requiredMark:f,required:et!=null?et:t,prefixCls:u})),p.createElement(or,Object.assign({},e,V,{errors:d,warnings:a,prefixCls:u,status:te,help:N,marginBottom:M,onErrorVisibleChanged:J}),p.createElement(re.qI.Provider,{value:i},p.createElement(re.aM.Provider,{value:Pe},_e)))),!!M&&p.createElement("div",{className:`${o}-margin-offset`,style:{marginBottom:-M}}))}var Me=l(42156);function ne(e){if(typeof e=="function")return e;const u=(0,Me.Z)(e);return u.length<=1?u[0]:u}const it="__SPLIT__",Mt=null,Be=p.memo(e=>{let{children:u}=e;return u},(e,u)=>e.value===u.value&&e.update===u.update&&e.childProps.length===u.childProps.length&&e.childProps.every((g,m)=>g===u.childProps[m]));function ae(e){return e!=null}function wt(){return{errors:[],warnings:[],touched:!1,validating:!1,name:[],validated:!1}}function Tt(e){const{name:u,noStyle:g,className:m,dependencies:y,prefixCls:N,shouldUpdate:A,rules:Q,children:U,required:V,label:ee,messageVariables:Te,trigger:_e="onChange",validateTrigger:xe,hidden:et,help:t}=e,{getPrefixCls:i}=p.useContext(ht.E_),{name:n}=p.useContext(re.q3),o=ne(U),f=typeof o=="function",s=p.useContext(re.qI),{validateTrigger:d}=p.useContext(Ue.zb),a=xe!==void 0?xe:d,$=ae(u),C=i("form",N),[E,M]=gt(C),R=p.useContext(Ue.ZM),J=p.useRef(),[de,te]=Wt({}),[Pe,ye]=(0,ot.Z)(()=>wt()),X=Y=>{const me=R==null?void 0:R.getKey(Y.name);if(ye(Y.destroy?wt():Y,!0),g&&t!==!1&&s){let Ze=Y.name;if(Y.destroy)Ze=J.current||Ze;else if(me!==void 0){const[Ot,Zt]=me;Ze=[Ot].concat((0,v.Z)(Zt)),J.current=Ze}s(Y,Ze)}},q=(Y,me)=>{te(Ze=>{const Ot=Object.assign({},Ze),tt=[].concat((0,v.Z)(Y.name.slice(0,-1)),(0,v.Z)(me)).join(it);return Y.destroy?delete Ot[tt]:Ot[tt]=Y,Ot})},[ue,D]=p.useMemo(()=>{const Y=(0,v.Z)(Pe.errors),me=(0,v.Z)(Pe.warnings);return Object.values(de).forEach(Ze=>{Y.push.apply(Y,(0,v.Z)(Ze.errors||[])),me.push.apply(me,(0,v.Z)(Ze.warnings||[]))}),[Y,me]},[de,Pe.errors,Pe.warnings]),Xe=Rt();function _(Y,me,Ze){return g&&!et?Y:p.createElement(Se,Object.assign({key:"row"},e,{className:Ge()(m,M),prefixCls:C,fieldId:me,isRequired:Ze,errors:ue,warnings:D,meta:Pe,onSubItemMetaChange:q}),Y)}if(!$&&!f&&!y)return E(_(o));let Ke={};return typeof ee=="string"?Ke.label=ee:u&&(Ke.label=String(u)),Te&&(Ke=Object.assign(Object.assign({},Ke),Te)),E(p.createElement(Ue.gN,Object.assign({},e,{messageVariables:Ke,trigger:_e,validateTrigger:a,onMetaChange:X}),(Y,me,Ze)=>{const Ot=S(u).length&&me?me.name:[],Zt=F(Ot,n),tt=V!==void 0?V:!!(Q&&Q.some(be=>{if(be&&typeof be=="object"&&be.required&&!be.warningOnly)return!0;if(typeof be=="function"){const Bt=be(Ze);return Bt&&Bt.required&&!Bt.warningOnly}return!1})),pe=Object.assign({},Y);let Pt=null;if(Array.isArray(o)&&$)Pt=o;else if(!(f&&(!(A||y)||$))){if(!(y&&!f&&!$))if((0,ke.l$)(o)){const be=Object.assign(Object.assign({},o.props),pe);if(be.id||(be.id=Zt),t||ue.length>0||D.length>0||e.extra){const at=[];(t||ue.length>0)&&at.push(`${Zt}_help`),e.extra&&at.push(`${Zt}_extra`),be["aria-describedby"]=at.join(" ")}ue.length>0&&(be["aria-invalid"]="true"),tt&&(be["aria-required"]="true"),(0,Je.Yr)(o)&&(be.ref=Xe(Ot,o)),new Set([].concat((0,v.Z)(S(_e)),(0,v.Z)(S(a)))).forEach(at=>{be[at]=function(){for(var zt,kt,j,we,st,lt=arguments.length,Nt=new Array(lt),At=0;At{var{prefixCls:u,children:g}=e,m=Et(e,["prefixCls","children"]);const{getPrefixCls:y}=p.useContext(ht.E_),N=y("form",u),A=p.useMemo(()=>({prefixCls:N,status:"error"}),[N]);return p.createElement(Ue.aV,Object.assign({},m),(Q,U,V)=>p.createElement(re.Rk.Provider,{value:A},g(Q.map(ee=>Object.assign(Object.assign({},ee),{fieldKey:ee.key})),U,{errors:V.errors,warnings:V.warnings})))};function Ct(){const{form:e}=(0,p.useContext)(re.q3);return e}const se=Qe;se.Item=bt,se.List=rr,se.ErrorList=ft,se.useForm=ce,se.useFormInstance=Ct,se.useWatch=Ue.qo,se.Provider=re.RV,se.create=()=>{};var It=se},95664:function(dr,Kt,l){l.d(Kt,{Z:function(){return yt}});var v=l(85678),ct=l(35725),Ge=l(79999),ge=l(52495),p=l(87608),dt=l.n(p),re=l(98186),O=l(58757),L=l(61836),w=l(60698),Ee=l(57370),he=l(47075),le={percent:0,prefixCls:"rc-progress",strokeColor:"#2db7f5",strokeLinecap:"round",strokeWidth:1,trailColor:"#D9D9D9",trailWidth:1,gapPosition:"bottom"},Ne=function(){var c=(0,O.useRef)([]),h=(0,O.useRef)(null);return(0,O.useEffect)(function(){var b=Date.now(),x=!1;c.current.forEach(function(H){if(H){x=!0;var T=H.style;T.transitionDuration=".3s, .3s, .3s, .06s",h.current&&b-h.current<100&&(T.transitionDuration="0s, 0s")}}),x&&(h.current=Date.now())}),c.current},ut=["className","percent","prefixCls","strokeColor","strokeLinecap","strokeWidth","style","trailColor","trailWidth","transition"],ve=function(c){var h=(0,Ee.Z)((0,Ee.Z)({},le),c),b=h.className,x=h.percent,H=h.prefixCls,T=h.strokeColor,Z=h.strokeLinecap,B=h.strokeWidth,ie=h.style,k=h.trailColor,$e=h.trailWidth,Oe=h.transition,He=(0,he.Z)(h,ut);delete He.gapPosition;var Se=Array.isArray(x)?x:[x],Me=Array.isArray(T)?T:[T],ne=Ne(),it=B/2,Mt=100-B/2,Be="M ".concat(Z==="round"?it:0,",").concat(it,` - L `).concat(Z==="round"?Mt:100,",").concat(it),ae="0 0 100 ".concat(B),wt=0;return O.createElement("svg",(0,w.Z)({className:dt()("".concat(H,"-line"),b),viewBox:ae,preserveAspectRatio:"none",style:ie},He),O.createElement("path",{className:"".concat(H,"-line-trail"),d:Be,strokeLinecap:Z,stroke:k,strokeWidth:$e||B,fillOpacity:"0"}),Se.map(function(Tt,qe){var bt=1;switch(Z){case"round":bt=1-B/100;break;case"square":bt=1-B/2/100;break;default:bt=1;break}var Et={strokeDasharray:"".concat(Tt*bt,"px, 100px"),strokeDashoffset:"-".concat(wt,"px"),transition:Oe||"stroke-dashoffset 0.3s ease 0s, stroke-dasharray .3s ease 0s, stroke 0.3s linear"},Gt=Me[qe]||Me[Me.length-1];return wt+=Tt,O.createElement("path",{key:qe,className:"".concat(H,"-line-path"),d:Be,strokeLinecap:Z,stroke:Gt,strokeWidth:B,fillOpacity:"0",ref:function(Ct){ne[qe]=Ct},style:Et})}))},Ye=ve,St=l(38790),Yt=l(28314),Qt=l(19075),Ft=0,rt=(0,Qt.Z)();function Fe(){var r;return rt?(r=Ft,Ft+=1):r="TEST_OR_SSR",r}var jt=function(r){var c=O.useState(),h=(0,Yt.Z)(c,2),b=h[0],x=h[1];return O.useEffect(function(){x("rc_progress_".concat(Fe()))},[]),r||b},gt=["id","prefixCls","steps","strokeWidth","trailWidth","gapDegree","gapPosition","trailColor","strokeLinecap","style","className","strokeColor","percent"];function xt(r){return+r.replace("%","")}function nt(r){var c=r!=null?r:[];return Array.isArray(c)?c:[c]}var mt=100,ft=function(c,h,b,x,H,T,Z,B,ie,k){var $e=arguments.length>10&&arguments[10]!==void 0?arguments[10]:0,Oe=b/100*360*((360-T)/360),He=T===0?0:{bottom:0,top:180,left:90,right:-90}[Z],Se=(100-x)/100*h;return ie==="round"&&x!==100&&(Se+=k/2,Se>=h&&(Se=h-.01)),{stroke:typeof B=="string"?B:void 0,strokeDasharray:"".concat(h,"px ").concat(c),strokeDashoffset:Se+$e,transform:"rotate(".concat(H+Oe+He,"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}},Ue=function(c){var h=(0,Ee.Z)((0,Ee.Z)({},le),c),b=h.id,x=h.prefixCls,H=h.steps,T=h.strokeWidth,Z=h.trailWidth,B=h.gapDegree,ie=B===void 0?0:B,k=h.gapPosition,$e=h.trailColor,Oe=h.strokeLinecap,He=h.style,Se=h.className,Me=h.strokeColor,ne=h.percent,it=(0,he.Z)(h,gt),Mt=jt(b),Be="".concat(Mt,"-gradient"),ae=mt/2-T/2,wt=Math.PI*2*ae,Tt=ie>0?90+ie/2:-90,qe=wt*((360-ie)/360),bt=(0,St.Z)(H)==="object"?H:{count:H,space:2},Et=bt.count,Gt=bt.space,rr=ft(wt,qe,0,100,Tt,ie,k,$e,Oe,T),Ct=nt(ne),se=nt(Me),It=se.find(function(m){return m&&(0,St.Z)(m)==="object"}),e=Ne(),u=function(){var y=0;return Ct.map(function(N,A){var Q=se[A]||se[se.length-1],U=Q&&(0,St.Z)(Q)==="object"?"url(#".concat(Be,")"):void 0,V=ft(wt,qe,y,N,Tt,ie,k,Q,Oe,T);return y+=N,O.createElement("circle",{key:A,className:"".concat(x,"-circle-path"),r:ae,cx:0,cy:0,stroke:U,strokeLinecap:Oe,strokeWidth:T,opacity:N===0?0:1,style:V,ref:function(Te){e[A]=Te}})}).reverse()},g=function(){var y=Math.round(Et*(Ct[0]/100)),N=100/Et,A=0;return new Array(Et).fill(null).map(function(Q,U){var V=U<=y-1?se[0]:$e,ee=V&&(0,St.Z)(V)==="object"?"url(#".concat(Be,")"):void 0,Te=ft(wt,qe,A,N,Tt,ie,k,V,"butt",T,Gt);return A+=(qe-Te.strokeDashoffset+Gt)*100/qe,O.createElement("circle",{key:U,className:"".concat(x,"-circle-path"),r:ae,cx:0,cy:0,stroke:ee,strokeWidth:T,opacity:1,style:Te,ref:function(xe){e[U]=xe}})})};return O.createElement("svg",(0,w.Z)({className:dt()("".concat(x,"-circle"),Se),viewBox:"".concat(-mt/2," ").concat(-mt/2," ").concat(mt," ").concat(mt),style:He,id:b,role:"presentation"},it),It&&O.createElement("defs",null,O.createElement("linearGradient",{id:Be,x1:"100%",y1:"0%",x2:"0%",y2:"0%"},Object.keys(It).sort(function(m,y){return xt(m)-xt(y)}).map(function(m,y){return O.createElement("stop",{key:y,offset:m,stopColor:It[m]})}))),!Et&&O.createElement("circle",{className:"".concat(x,"-circle-trail"),r:ae,cx:0,cy:0,stroke:$e,strokeLinecap:Oe,strokeWidth:Z||T,style:rr}),Et?g():u())},ht=Ue,Vt={Line:Ye,Circle:ht},Lt=l(74820),je=l(26134);function fe(r){return!r||r<0?0:r>100?100:r}function I(r){let{success:c,successPercent:h}=r,b=h;return c&&"progress"in c&&(b=c.progress),c&&"percent"in c&&(b=c.percent),b}const P=r=>{let{percent:c,success:h,successPercent:b}=r;const x=fe(I({success:h,successPercent:b}));return[x,fe(fe(c)-x)]},S=r=>{let{success:c={},strokeColor:h}=r;const{strokeColor:b}=c;return[b||je.presetPrimaryColors.green,h||null]},F=(r,c,h)=>{var b,x,H,T;let Z=-1,B=-1;if(c==="step"){const ie=h.steps,k=h.strokeWidth;typeof r=="string"||typeof r=="undefined"?(Z=r==="small"?2:14,B=k!=null?k:8):typeof r=="number"?[Z,B]=[r,r]:[Z=14,B=8]=r,Z*=ie}else if(c==="line"){const ie=h==null?void 0:h.strokeWidth;typeof r=="string"||typeof r=="undefined"?B=ie||(r==="small"?6:8):typeof r=="number"?[Z,B]=[r,r]:[Z=-1,B=8]=r}else(c==="circle"||c==="dashboard")&&(typeof r=="string"||typeof r=="undefined"?[Z,B]=r==="small"?[60,60]:[120,120]:typeof r=="number"?[Z,B]=[r,r]:(Z=(x=(b=r[0])!==null&&b!==void 0?b:r[1])!==null&&x!==void 0?x:120,B=(T=(H=r[0])!==null&&H!==void 0?H:r[1])!==null&&T!==void 0?T:120));return[Z,B]},W=3,ce=r=>W/r*100;var We=r=>{const{prefixCls:c,trailColor:h=null,strokeLinecap:b="round",gapPosition:x,gapDegree:H,width:T=120,type:Z,children:B,success:ie,size:k=T}=r,[$e,Oe]=F(k,"circle");let{strokeWidth:He}=r;He===void 0&&(He=Math.max(ce($e),6));const Se={width:$e,height:Oe,fontSize:$e*.15+6},Me=O.useMemo(()=>{if(H||H===0)return H;if(Z==="dashboard")return 75},[H,Z]),ne=x||Z==="dashboard"&&"bottom"||void 0,it=Object.prototype.toString.call(r.strokeColor)==="[object Object]",Mt=S({success:ie,strokeColor:r.strokeColor}),Be=dt()(`${c}-inner`,{[`${c}-circle-gradient`]:it}),ae=O.createElement(ht,{percent:P(r),strokeWidth:He,trailWidth:He,strokeColor:Mt,strokeLinecap:b,trailColor:h,prefixCls:c,gapDegree:Me,gapPosition:ne});return O.createElement("div",{className:Be,style:Se},$e<=20?O.createElement(Lt.Z,{title:B},O.createElement("span",null,ae)):O.createElement(O.Fragment,null,ae,B))},Ve=function(r,c){var h={};for(var b in r)Object.prototype.hasOwnProperty.call(r,b)&&c.indexOf(b)<0&&(h[b]=r[b]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var x=0,b=Object.getOwnPropertySymbols(r);x{let c=[];return Object.keys(r).forEach(h=>{const b=parseFloat(h.replace(/%/g,""));isNaN(b)||c.push({key:b,value:r[h]})}),c=c.sort((h,b)=>h.key-b.key),c.map(h=>{let{key:b,value:x}=h;return`${x} ${b}%`}).join(", ")},Qe=(r,c)=>{const{from:h=je.presetPrimaryColors.blue,to:b=je.presetPrimaryColors.blue,direction:x=c==="rtl"?"to left":"to right"}=r,H=Ve(r,["from","to","direction"]);if(Object.keys(H).length!==0){const T=Re(H);return{backgroundImage:`linear-gradient(${x}, ${T})`}}return{backgroundImage:`linear-gradient(${x}, ${h}, ${b})`}};var Je=r=>{const{prefixCls:c,direction:h,percent:b,size:x,strokeWidth:H,strokeColor:T,strokeLinecap:Z="round",children:B,trailColor:ie=null,success:k}=r,$e=T&&typeof T!="string"?Qe(T,h):{backgroundColor:T},Oe=Z==="square"||Z==="butt"?0:void 0,He={backgroundColor:ie||void 0,borderRadius:Oe},Se=x!=null?x:[-1,H||(x==="small"?6:8)],[Me,ne]=F(Se,"line",{strokeWidth:H}),it=Object.assign({width:`${fe(b)}%`,height:ne,borderRadius:Oe},$e),Mt=I(r),Be={width:`${fe(Mt)}%`,height:ne,borderRadius:Oe,backgroundColor:k==null?void 0:k.strokeColor},ae={width:Me<0?"100%":Me,height:ne};return O.createElement(O.Fragment,null,O.createElement("div",{className:`${c}-outer`,style:ae},O.createElement("div",{className:`${c}-inner`,style:He},O.createElement("div",{className:`${c}-bg`,style:it}),Mt!==void 0?O.createElement("div",{className:`${c}-success-bg`,style:Be}):null)),B)},ze=r=>{const{size:c,steps:h,percent:b=0,strokeWidth:x=8,strokeColor:H,trailColor:T=null,prefixCls:Z,children:B}=r,ie=Math.round(h*(b/100)),k=c==="small"?2:14,$e=c!=null?c:[k,x],[Oe,He]=F($e,"step",{steps:h,strokeWidth:x}),Se=Oe/h,Me=new Array(h);for(let ne=0;ne{const c=r?"100%":"-100%";return new De.E4(`antProgress${r?"RTL":"LTR"}Active`,{"0%":{transform:`translateX(${c}) scaleX(0)`,opacity:.1},"20%":{transform:`translateX(${c}) scaleX(0)`,opacity:.5},to:{transform:"translateX(0) scaleX(1)",opacity:0}})},Xt=r=>{const{componentCls:c,iconCls:h}=r;return{[c]:Object.assign(Object.assign({},(0,pt.Wf)(r)),{display:"inline-block","&-rtl":{direction:"rtl"},"&-line":{position:"relative",width:"100%",fontSize:r.fontSize,marginInlineEnd:r.marginXS,marginBottom:r.marginXS},[`${c}-outer`]:{display:"inline-block",width:"100%"},[`&${c}-show-info`]:{[`${c}-outer`]:{marginInlineEnd:`calc(-2em - ${r.marginXS}px)`,paddingInlineEnd:`calc(2em + ${r.paddingXS}px)`}},[`${c}-inner`]:{position:"relative",display:"inline-block",width:"100%",overflow:"hidden",verticalAlign:"middle",backgroundColor:r.progressRemainingColor,borderRadius:r.progressLineRadius},[`${c}-inner:not(${c}-circle-gradient)`]:{[`${c}-circle-path`]:{stroke:r.colorInfo}},[`${c}-success-bg, ${c}-bg`]:{position:"relative",backgroundColor:r.colorInfo,borderRadius:r.progressLineRadius,transition:`all ${r.motionDurationSlow} ${r.motionEaseInOutCirc}`},[`${c}-success-bg`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,backgroundColor:r.colorSuccess},[`${c}-text`]:{display:"inline-block",width:"2em",marginInlineStart:r.marginXS,color:r.progressInfoTextColor,lineHeight:1,whiteSpace:"nowrap",textAlign:"start",verticalAlign:"middle",wordBreak:"normal",[h]:{fontSize:r.fontSize}},[`&${c}-status-active`]:{[`${c}-bg::before`]:{position:"absolute",inset:0,backgroundColor:r.colorBgContainer,borderRadius:r.progressLineRadius,opacity:0,animationName:Ht(),animationDuration:r.progressActiveMotionDuration,animationTimingFunction:r.motionEaseOutQuint,animationIterationCount:"infinite",content:'""'}},[`&${c}-rtl${c}-status-active`]:{[`${c}-bg::before`]:{animationName:Ht(!0)}},[`&${c}-status-exception`]:{[`${c}-bg`]:{backgroundColor:r.colorError},[`${c}-text`]:{color:r.colorError}},[`&${c}-status-exception ${c}-inner:not(${c}-circle-gradient)`]:{[`${c}-circle-path`]:{stroke:r.colorError}},[`&${c}-status-success`]:{[`${c}-bg`]:{backgroundColor:r.colorSuccess},[`${c}-text`]:{color:r.colorSuccess}},[`&${c}-status-success ${c}-inner:not(${c}-circle-gradient)`]:{[`${c}-circle-path`]:{stroke:r.colorSuccess}}})}},Dt=r=>{const{componentCls:c,iconCls:h}=r;return{[c]:{[`${c}-circle-trail`]:{stroke:r.progressRemainingColor},[`&${c}-circle ${c}-inner`]:{position:"relative",lineHeight:1,backgroundColor:"transparent"},[`&${c}-circle ${c}-text`]:{position:"absolute",insetBlockStart:"50%",insetInlineStart:0,width:"100%",margin:0,padding:0,color:r.colorText,lineHeight:1,whiteSpace:"normal",textAlign:"center",transform:"translateY(-50%)",[h]:{fontSize:`${r.fontSize/r.fontSizeSM}em`}},[`${c}-circle&-status-exception`]:{[`${c}-text`]:{color:r.colorError}},[`${c}-circle&-status-success`]:{[`${c}-text`]:{color:r.colorSuccess}}},[`${c}-inline-circle`]:{lineHeight:1,[`${c}-inner`]:{verticalAlign:"bottom"}}}},er=r=>{const{componentCls:c}=r;return{[c]:{[`${c}-steps`]:{display:"inline-block","&-outer":{display:"flex",flexDirection:"row",alignItems:"center"},"&-item":{flexShrink:0,minWidth:r.progressStepMinWidth,marginInlineEnd:r.progressStepMarginInlineEnd,backgroundColor:r.progressRemainingColor,transition:`all ${r.motionDurationSlow}`,"&-active":{backgroundColor:r.colorInfo}}}}}},vt=r=>{const{componentCls:c,iconCls:h}=r;return{[c]:{[`${c}-small&-line, ${c}-small&-line ${c}-text ${h}`]:{fontSize:r.fontSizeSM}}}};var Ie=(0,Wt.Z)("Progress",r=>{const c=r.marginXXS/2,h=(0,Rt.TS)(r,{progressLineRadius:100,progressInfoTextColor:r.colorText,progressDefaultColor:r.colorInfo,progressRemainingColor:r.colorFillSecondary,progressStepMarginInlineEnd:c,progressStepMinWidth:c,progressActiveMotionDuration:"2.4s"});return[Xt(h),Dt(h),er(h),vt(h)]}),Jt=function(r,c){var h={};for(var b in r)Object.prototype.hasOwnProperty.call(r,b)&&c.indexOf(b)<0&&(h[b]=r[b]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var x=0,b=Object.getOwnPropertySymbols(r);x{const{prefixCls:h,className:b,rootClassName:x,steps:H,strokeColor:T,percent:Z=0,size:B="default",showInfo:ie=!0,type:k="line",status:$e,format:Oe,style:He}=r,Se=Jt(r,["prefixCls","className","rootClassName","steps","strokeColor","percent","size","showInfo","type","status","format","style"]),Me=O.useMemo(()=>{var Ct,se;const It=I(r);return parseInt(It!==void 0?(Ct=It!=null?It:0)===null||Ct===void 0?void 0:Ct.toString():(se=Z!=null?Z:0)===null||se===void 0?void 0:se.toString(),10)},[Z,r.success,r.successPercent]),ne=O.useMemo(()=>!tr.includes($e)&&Me>=100?"success":$e||"normal",[$e,Me]),{getPrefixCls:it,direction:Mt,progress:Be}=O.useContext(L.E_),ae=it("progress",h),[wt,Tt]=Ie(ae),qe=O.useMemo(()=>{if(!ie)return null;const Ct=I(r);let se;const It=Oe||(u=>`${u}%`),e=k==="line";return Oe||ne!=="exception"&&ne!=="success"?se=It(fe(Z),fe(Ct)):ne==="exception"?se=e?O.createElement(Ge.Z,null):O.createElement(ge.Z,null):ne==="success"&&(se=e?O.createElement(v.Z,null):O.createElement(ct.Z,null)),O.createElement("span",{className:`${ae}-text`,title:typeof se=="string"?se:void 0},se)},[ie,Z,Me,ne,k,ae,Oe]),bt=Array.isArray(T)?T[0]:T,Et=typeof T=="string"||Array.isArray(T)?T:void 0;let Gt;k==="line"?Gt=H?O.createElement(ze,Object.assign({},r,{strokeColor:Et,prefixCls:ae,steps:H}),qe):O.createElement(Je,Object.assign({},r,{strokeColor:bt,prefixCls:ae,direction:Mt}),qe):(k==="circle"||k==="dashboard")&&(Gt=O.createElement(We,Object.assign({},r,{strokeColor:bt,prefixCls:ae,progressStatus:ne}),qe));const rr=dt()(ae,`${ae}-status-${ne}`,`${ae}-${k==="dashboard"&&"circle"||H&&"steps"||k}`,{[`${ae}-inline-circle`]:k==="circle"&&F(B,"circle")[0]<=20,[`${ae}-show-info`]:ie,[`${ae}-${B}`]:typeof B=="string",[`${ae}-rtl`]:Mt==="rtl"},Be==null?void 0:Be.className,b,x,Tt);return wt(O.createElement("div",Object.assign({ref:c,style:Object.assign(Object.assign({},Be==null?void 0:Be.style),He),className:rr,role:"progressbar","aria-valuenow":Me},(0,re.Z)(Se,["trailColor","strokeWidth","width","gapDegree","gapPosition","strokeLinecap","success","successPercent"])),Gt))}),yt=or},23241:function(dr,Kt,l){l.d(Kt,{Z:function(){return et}});var v=l(58757),ct=l(29140),Ge=l(87608),ge=l.n(Ge),p=l(60698),dt=l(60412),re=l(14346),O=l(87498),L=l(73726),w=l(37734),Ee=l(47075),he=l(74632),le=l(38790),Ne=l(79290),ut=l(33926);function ve(t,i){var n="cannot ".concat(t.method," ").concat(t.action," ").concat(i.status,"'"),o=new Error(n);return o.status=i.status,o.method=t.method,o.url=t.action,o}function Ye(t){var i=t.responseText||t.response;if(!i)return i;try{return JSON.parse(i)}catch(n){return i}}function St(t){var i=new XMLHttpRequest;t.onProgress&&i.upload&&(i.upload.onprogress=function(s){s.total>0&&(s.percent=s.loaded/s.total*100),t.onProgress(s)});var n=new FormData;t.data&&Object.keys(t.data).forEach(function(f){var s=t.data[f];if(Array.isArray(s)){s.forEach(function(d){n.append("".concat(f,"[]"),d)});return}n.append(f,s)}),t.file instanceof Blob?n.append(t.filename,t.file,t.file.name):n.append(t.filename,t.file),i.onerror=function(s){t.onError(s)},i.onload=function(){return i.status<200||i.status>=300?t.onError(ve(t,i),Ye(i)):t.onSuccess(Ye(i),i)},i.open(t.method,t.action,!0),t.withCredentials&&"withCredentials"in i&&(i.withCredentials=!0);var o=t.headers||{};return o["X-Requested-With"]!==null&&i.setRequestHeader("X-Requested-With","XMLHttpRequest"),Object.keys(o).forEach(function(f){o[f]!==null&&i.setRequestHeader(f,o[f])}),i.send(n),{abort:function(){i.abort()}}}var Yt=+new Date,Qt=0;function Ft(){return"rc-upload-".concat(Yt,"-").concat(++Qt)}var rt=l(75556),Fe=function(t,i){if(t&&i){var n=Array.isArray(i)?i:i.split(","),o=t.name||"",f=t.type||"",s=f.replace(/\/.*$/,"");return n.some(function(d){var a=d.trim();if(/^\*(\/\*)?$/.test(d))return!0;if(a.charAt(0)==="."){var $=o.toLowerCase(),C=a.toLowerCase(),E=[C];return(C===".jpg"||C===".jpeg")&&(E=[".jpg",".jpeg"]),E.some(function(M){return $.endsWith(M)})}return/\/\*$/.test(a)?s===a.replace(/\/.*$/,""):f===a?!0:/^\w+$/.test(a)?((0,rt.ZP)(!1,"Upload takes an invalidate 'accept' type '".concat(a,"'.Skip for check.")),!0):!1})}return!0};function jt(t,i){var n=t.createReader(),o=[];function f(){n.readEntries(function(s){var d=Array.prototype.slice.apply(s);o=o.concat(d);var a=!d.length;a?i(o):f()})}f()}var gt=function(i,n,o){var f=function s(d,a){d.path=a||"",d.isFile?d.file(function($){o($)&&(d.fullPath&&!$.webkitRelativePath&&(Object.defineProperties($,{webkitRelativePath:{writable:!0}}),$.webkitRelativePath=d.fullPath.replace(/^\//,""),Object.defineProperties($,{webkitRelativePath:{writable:!1}})),n([$]))}):d.isDirectory&&jt(d,function($){$.forEach(function(C){s(C,"".concat(a).concat(d.name,"/"))})})};i.forEach(function(s){f(s.webkitGetAsEntry())})},xt=gt,nt=["component","prefixCls","className","disabled","id","style","multiple","accept","capture","children","directory","openFileDialogOnClick","onMouseEnter","onMouseLeave"],mt=function(t){(0,O.Z)(n,t);var i=(0,L.Z)(n);function n(){var o;(0,dt.Z)(this,n);for(var f=arguments.length,s=new Array(f),d=0;d{let{uid:s}=f;return s===t.uid});return o===-1?n.push(t):n[o]=t,n}function Jt(t,i){const n=t.uid!==void 0?"uid":"name";return i.filter(o=>o[n]===t[n])[0]}function lr(t,i){const n=t.uid!==void 0?"uid":"name",o=i.filter(f=>f[n]!==t[n]);return o.length===i.length?null:o}const tr=function(){const i=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:"").split("/"),o=i[i.length-1].split(/#|\?/)[0];return(/\.[^./\\]*$/.exec(o)||[""])[0]},nr=t=>t.indexOf("image/")===0,or=t=>{if(t.type&&!t.thumbUrl)return nr(t.type);const i=t.thumbUrl||t.url||"",n=tr(i);return/^data:image\//.test(i)||/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico|heic|heif)$/i.test(n)?!0:!(/^data:/.test(i)||n)},yt=200;function r(t){return new Promise(i=>{if(!t.type||!nr(t.type)){i("");return}const n=document.createElement("canvas");n.width=yt,n.height=yt,n.style.cssText=`position: fixed; left: 0; top: 0; width: ${yt}px; height: ${yt}px; z-index: 9999; display: none;`,document.body.appendChild(n);const o=n.getContext("2d"),f=new Image;if(f.onload=()=>{const{width:s,height:d}=f;let a=yt,$=yt,C=0,E=0;s>d?($=d*(yt/s),E=-($-a)/2):(a=s*(yt/d),C=-(a-$)/2),o.drawImage(f,C,E,a,$);const M=n.toDataURL();document.body.removeChild(n),window.URL.revokeObjectURL(f.src),i(M)},f.crossOrigin="anonymous",t.type.startsWith("image/svg+xml")){const s=new FileReader;s.onload=()=>{s.result&&(f.src=s.result)},s.readAsDataURL(t)}else if(t.type.startsWith("image/gif")){const s=new FileReader;s.onload=()=>{s.result&&i(s.result)},s.readAsDataURL(t)}else f.src=window.URL.createObjectURL(t)})}var c=l(23605),h={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"},b=h,x=function(i,n){return v.createElement(Le.Z,(0,p.Z)({},i,{ref:n,icon:b}))},H=v.forwardRef(x),T=l(56019),Z=l(95664),B=l(74820),k=v.forwardRef((t,i)=>{let{prefixCls:n,className:o,style:f,locale:s,listType:d,file:a,items:$,progress:C,iconRender:E,actionIconRender:M,itemRender:R,isImgUrl:J,showPreviewIcon:de,showRemoveIcon:te,showDownloadIcon:Pe,previewIcon:ye,removeIcon:X,downloadIcon:q,onPreview:ue,onDownload:D,onClose:Xe}=t;var _,Ke;const{status:Y}=a,[me,Ze]=v.useState(Y);v.useEffect(()=>{Y!=="removed"&&Ze(Y)},[Y]);const[Ot,Zt]=v.useState(!1);v.useEffect(()=>{const G=setTimeout(()=>{Zt(!0)},300);return()=>{clearTimeout(G)}},[]);const tt=E(a);let pe=v.createElement("div",{className:`${n}-icon`},tt);if(d==="picture"||d==="picture-card"||d==="picture-circle")if(me==="uploading"||!a.thumbUrl&&!a.url){const G=ge()(`${n}-list-item-thumbnail`,{[`${n}-list-item-file`]:me!=="uploading"});pe=v.createElement("div",{className:G},tt)}else{const G=J!=null&&J(a)?v.createElement("img",{src:a.thumbUrl||a.url,alt:a.name,className:`${n}-list-item-image`,crossOrigin:a.crossOrigin}):tt,_t=ge()(`${n}-list-item-thumbnail`,{[`${n}-list-item-file`]:J&&!J(a)});pe=v.createElement("a",{className:_t,onClick:ir=>ue(a,ir),href:a.url||a.thumbUrl,target:"_blank",rel:"noopener noreferrer"},G)}const Pt=ge()(`${n}-list-item`,`${n}-list-item-${me}`),be=typeof a.linkProps=="string"?JSON.parse(a.linkProps):a.linkProps,Bt=te?M((typeof X=="function"?X(a):X)||v.createElement(c.Z,null),()=>Xe(a),n,s.removeFile):null,Ut=Pe&&me==="done"?M((typeof q=="function"?q(a):q)||v.createElement(H,null),()=>D(a),n,s.downloadFile):null,at=d!=="picture-card"&&d!=="picture-circle"&&v.createElement("span",{key:"download-delete",className:ge()(`${n}-list-item-actions`,{picture:d==="picture"})},Ut,Bt),zt=ge()(`${n}-list-item-name`),kt=a.url?[v.createElement("a",Object.assign({key:"view",target:"_blank",rel:"noopener noreferrer",className:zt,title:a.name},be,{href:a.url,onClick:G=>ue(a,G)}),a.name),at]:[v.createElement("span",{key:"view",className:zt,onClick:G=>ue(a,G),title:a.name},a.name),at],j={pointerEvents:"none",opacity:.5},we=de?v.createElement("a",{href:a.url||a.thumbUrl,target:"_blank",rel:"noopener noreferrer",style:a.url||a.thumbUrl?void 0:j,onClick:G=>ue(a,G),title:s.previewFile},typeof ye=="function"?ye(a):ye||v.createElement(T.Z,null)):null,st=(d==="picture-card"||d==="picture-circle")&&me!=="uploading"&&v.createElement("span",{className:`${n}-list-item-actions`},we,me==="done"&&Ut,Bt),{getPrefixCls:lt}=v.useContext(I.E_),Nt=lt(),At=v.createElement("div",{className:Pt},pe,kt,st,Ot&&v.createElement(Rt.ZP,{motionName:`${Nt}-fade`,visible:me==="uploading",motionDeadline:2e3},G=>{let{className:_t}=G;const ir="percent"in a?v.createElement(Z.Z,Object.assign({},C,{type:"line",percent:a.percent,"aria-label":a["aria-label"],"aria-labelledby":a["aria-labelledby"]})):null;return v.createElement("div",{className:ge()(`${n}-list-item-progress`,_t)},ir)})),ur=a.response&&typeof a.response=="string"?a.response:((_=a.error)===null||_===void 0?void 0:_.statusText)||((Ke=a.error)===null||Ke===void 0?void 0:Ke.message)||s.uploadError,qt=me==="error"?v.createElement(B.Z,{title:ur,getPopupContainer:G=>G.parentNode},At):At;return v.createElement("div",{className:ge()(`${n}-list-item-container`,o),style:f,ref:i},R?R(qt,a,$,{download:D.bind(null,a),preview:ue.bind(null,a),remove:Xe.bind(null,a)}):qt)});const $e=(t,i)=>{const{listType:n="text",previewFile:o=r,onPreview:f,onDownload:s,onRemove:d,locale:a,iconRender:$,isImageUrl:C=or,prefixCls:E,items:M=[],showPreviewIcon:R=!0,showRemoveIcon:J=!0,showDownloadIcon:de=!1,removeIcon:te,previewIcon:Pe,downloadIcon:ye,progress:X={size:[-1,2],showInfo:!1},appendAction:q,appendActionVisible:ue=!0,itemRender:D,disabled:Xe}=t,_=(0,Ht.Z)(),[Ke,Y]=v.useState(!1);v.useEffect(()=>{n!=="picture"&&n!=="picture-card"&&n!=="picture-circle"||(M||[]).forEach(j=>{typeof document=="undefined"||typeof window=="undefined"||!window.FileReader||!window.File||!(j.originFileObj instanceof File||j.originFileObj instanceof Blob)||j.thumbUrl!==void 0||(j.thumbUrl="",o&&o(j.originFileObj).then(we=>{j.thumbUrl=we||"",_()}))})},[n,M,o]),v.useEffect(()=>{Y(!0)},[]);const me=(j,we)=>{if(f)return we==null||we.preventDefault(),f(j)},Ze=j=>{typeof s=="function"?s(j):j.url&&window.open(j.url)},Ot=j=>{d==null||d(j)},Zt=j=>{if($)return $(j,n);const we=j.status==="uploading",st=C&&C(j)?v.createElement(Wt,null):v.createElement(Ve,null);let lt=we?v.createElement(Re.Z,null):v.createElement(ke,null);return n==="picture"?lt=we?v.createElement(Re.Z,null):st:(n==="picture-card"||n==="picture-circle")&&(lt=we?a.uploading:st),lt},tt=(j,we,st,lt)=>{const Nt={type:"text",size:"small",title:lt,onClick:At=>{we(),(0,Dt.l$)(j)&&j.props.onClick&&j.props.onClick(At)},className:`${st}-list-item-action`,disabled:Xe};if((0,Dt.l$)(j)){const At=(0,Dt.Tm)(j,Object.assign(Object.assign({},j.props),{onClick:()=>{}}));return v.createElement(er.ZP,Object.assign({},Nt,{icon:At}))}return v.createElement(er.ZP,Object.assign({},Nt),v.createElement("span",null,j))};v.useImperativeHandle(i,()=>({handlePreview:me,handleDownload:Ze}));const{getPrefixCls:pe}=v.useContext(I.E_),Pt=pe("upload",E),be=pe(),Bt=ge()(`${Pt}-list`,`${Pt}-list-${n}`),Ut=(0,ct.Z)(M.map(j=>({key:j.uid,file:j})));let zt={motionDeadline:2e3,motionName:`${Pt}-${n==="picture-card"||n==="picture-circle"?"animate-inline":"animate"}`,keys:Ut,motionAppear:Ke};const kt=v.useMemo(()=>{const j=Object.assign({},(0,Xt.Z)(be));return delete j.onAppearEnd,delete j.onEnterEnd,delete j.onLeaveEnd,j},[be]);return n!=="picture-card"&&n!=="picture-circle"&&(zt=Object.assign(Object.assign({},kt),zt)),v.createElement("div",{className:Bt},v.createElement(Rt.V4,Object.assign({},zt,{component:!1}),j=>{let{key:we,file:st,className:lt,style:Nt}=j;return v.createElement(k,{key:we,locale:a,prefixCls:Pt,className:lt,style:Nt,file:st,items:M,progress:X,listType:n,isImgUrl:C,showPreviewIcon:R,showRemoveIcon:J,showDownloadIcon:de,removeIcon:te,previewIcon:Pe,downloadIcon:ye,iconRender:Zt,actionIconRender:tt,itemRender:D,onPreview:me,onDownload:Ze,onClose:Ot})}),q&&v.createElement(Rt.ZP,Object.assign({},zt,{visible:ue,forceRender:!0}),j=>{let{className:we,style:st}=j;return(0,Dt.Tm)(q,lt=>({className:ge()(lt.className,we),style:Object.assign(Object.assign(Object.assign({},st),{pointerEvents:we?"none":void 0}),lt.style)}))}))};var He=v.forwardRef($e),Se=l(78330),Me=l(41086),ne=l(52628),it=l(22151),Be=t=>{const{componentCls:i,iconCls:n}=t;return{[`${i}-wrapper`]:{[`${i}-drag`]:{position:"relative",width:"100%",height:"100%",textAlign:"center",background:t.colorFillAlter,border:`${t.lineWidth}px dashed ${t.colorBorder}`,borderRadius:t.borderRadiusLG,cursor:"pointer",transition:`border-color ${t.motionDurationSlow}`,[i]:{padding:`${t.padding}px 0`},[`${i}-btn`]:{display:"table",width:"100%",height:"100%",outline:"none"},[`${i}-drag-container`]:{display:"table-cell",verticalAlign:"middle"},[`&:not(${i}-disabled):hover`]:{borderColor:t.colorPrimaryHover},[`p${i}-drag-icon`]:{marginBottom:t.margin,[n]:{color:t.colorPrimary,fontSize:t.uploadThumbnailSize}},[`p${i}-text`]:{margin:`0 0 ${t.marginXXS}px`,color:t.colorTextHeading,fontSize:t.fontSizeLG},[`p${i}-hint`]:{color:t.colorTextDescription,fontSize:t.fontSize},[`&${i}-disabled`]:{cursor:"not-allowed",[`p${i}-drag-icon ${n}, - p${i}-text, - p${i}-hint - `]:{color:t.colorTextDisabled}}}}}},wt=t=>{const{componentCls:i,antCls:n,iconCls:o,fontSize:f,lineHeight:s}=t,d=`${i}-list-item`,a=`${d}-actions`,$=`${d}-action`,C=Math.round(f*s);return{[`${i}-wrapper`]:{[`${i}-list`]:Object.assign(Object.assign({},(0,Se.dF)()),{lineHeight:t.lineHeight,[d]:{position:"relative",height:t.lineHeight*f,marginTop:t.marginXS,fontSize:f,display:"flex",alignItems:"center",transition:`background-color ${t.motionDurationSlow}`,"&:hover":{backgroundColor:t.controlItemBgHover},[`${d}-name`]:Object.assign(Object.assign({},Se.vS),{padding:`0 ${t.paddingXS}px`,lineHeight:s,flex:"auto",transition:`all ${t.motionDurationSlow}`}),[a]:{[$]:{opacity:0},[`${$}${n}-btn-sm`]:{height:C,border:0,lineHeight:1,"> span":{transform:"scale(1)"}},[` - ${$}:focus, - &.picture ${$} - `]:{opacity:1},[o]:{color:t.actionsColor,transition:`all ${t.motionDurationSlow}`},[`&:hover ${o}`]:{color:t.colorText}},[`${i}-icon ${o}`]:{color:t.colorTextDescription,fontSize:f},[`${d}-progress`]:{position:"absolute",bottom:-t.uploadProgressOffset,width:"100%",paddingInlineStart:f+t.paddingXS,fontSize:f,lineHeight:0,pointerEvents:"none","> div":{margin:0}}},[`${d}:hover ${$}`]:{opacity:1,color:t.colorText},[`${d}-error`]:{color:t.colorError,[`${d}-name, ${i}-icon ${o}`]:{color:t.colorError},[a]:{[`${o}, ${o}:hover`]:{color:t.colorError},[$]:{opacity:1}}},[`${i}-list-item-container`]:{transition:`opacity ${t.motionDurationSlow}, height ${t.motionDurationSlow}`,"&::before":{display:"table",width:0,height:0,content:'""'}}})}}},Tt=l(57793),qe=l(7239);const bt=new Tt.E4("uploadAnimateInlineIn",{from:{width:0,height:0,margin:0,padding:0,opacity:0}}),Et=new Tt.E4("uploadAnimateInlineOut",{to:{width:0,height:0,margin:0,padding:0,opacity:0}});var rr=t=>{const{componentCls:i}=t,n=`${i}-animate-inline`;return[{[`${i}-wrapper`]:{[`${n}-appear, ${n}-enter, ${n}-leave`]:{animationDuration:t.motionDurationSlow,animationTimingFunction:t.motionEaseInOutCirc,animationFillMode:"forwards"},[`${n}-appear, ${n}-enter`]:{animationName:bt},[`${n}-leave`]:{animationName:Et}}},{[`${i}-wrapper`]:(0,qe.J$)(t)},bt,Et]},Ct=l(26134),se=l(66671);const It=t=>{const{componentCls:i,iconCls:n,uploadThumbnailSize:o,uploadProgressOffset:f}=t,s=`${i}-list`,d=`${s}-item`;return{[`${i}-wrapper`]:{[` - ${s}${s}-picture, - ${s}${s}-picture-card, - ${s}${s}-picture-circle - `]:{[d]:{position:"relative",height:o+t.lineWidth*2+t.paddingXS*2,padding:t.paddingXS,border:`${t.lineWidth}px ${t.lineType} ${t.colorBorder}`,borderRadius:t.borderRadiusLG,"&:hover":{background:"transparent"},[`${d}-thumbnail`]:Object.assign(Object.assign({},Se.vS),{width:o,height:o,lineHeight:`${o+t.paddingSM}px`,textAlign:"center",flex:"none",[n]:{fontSize:t.fontSizeHeading2,color:t.colorPrimary},img:{display:"block",width:"100%",height:"100%",overflow:"hidden"}}),[`${d}-progress`]:{bottom:f,width:`calc(100% - ${t.paddingSM*2}px)`,marginTop:0,paddingInlineStart:o+t.paddingXS}},[`${d}-error`]:{borderColor:t.colorError,[`${d}-thumbnail ${n}`]:{[`svg path[fill='${Ct.blue[0]}']`]:{fill:t.colorErrorBg},[`svg path[fill='${Ct.blue.primary}']`]:{fill:t.colorError}}},[`${d}-uploading`]:{borderStyle:"dashed",[`${d}-name`]:{marginBottom:f}}},[`${s}${s}-picture-circle ${d}`]:{[`&, &::before, ${d}-thumbnail`]:{borderRadius:"50%"}}}}},e=t=>{const{componentCls:i,iconCls:n,fontSizeLG:o,colorTextLightSolid:f}=t,s=`${i}-list`,d=`${s}-item`,a=t.uploadPicCardSize;return{[` - ${i}-wrapper${i}-picture-card-wrapper, - ${i}-wrapper${i}-picture-circle-wrapper - `]:Object.assign(Object.assign({},(0,Se.dF)()),{display:"inline-block",width:"100%",[`${i}${i}-select`]:{width:a,height:a,marginInlineEnd:t.marginXS,marginBottom:t.marginXS,textAlign:"center",verticalAlign:"top",backgroundColor:t.colorFillAlter,border:`${t.lineWidth}px dashed ${t.colorBorder}`,borderRadius:t.borderRadiusLG,cursor:"pointer",transition:`border-color ${t.motionDurationSlow}`,[`> ${i}`]:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center"},[`&:not(${i}-disabled):hover`]:{borderColor:t.colorPrimary}},[`${s}${s}-picture-card, ${s}${s}-picture-circle`]:{[`${s}-item-container`]:{display:"inline-block",width:a,height:a,marginBlock:`0 ${t.marginXS}px`,marginInline:`0 ${t.marginXS}px`,verticalAlign:"top"},"&::after":{display:"none"},[d]:{height:"100%",margin:0,"&::before":{position:"absolute",zIndex:1,width:`calc(100% - ${t.paddingXS*2}px)`,height:`calc(100% - ${t.paddingXS*2}px)`,backgroundColor:t.colorBgMask,opacity:0,transition:`all ${t.motionDurationSlow}`,content:'" "'}},[`${d}:hover`]:{[`&::before, ${d}-actions`]:{opacity:1}},[`${d}-actions`]:{position:"absolute",insetInlineStart:0,zIndex:10,width:"100%",whiteSpace:"nowrap",textAlign:"center",opacity:0,transition:`all ${t.motionDurationSlow}`,[`${n}-eye, ${n}-download, ${n}-delete`]:{zIndex:10,width:o,margin:`0 ${t.marginXXS}px`,fontSize:o,cursor:"pointer",transition:`all ${t.motionDurationSlow}`,svg:{verticalAlign:"baseline"}}},[`${d}-actions, ${d}-actions:hover`]:{[`${n}-eye, ${n}-download, ${n}-delete`]:{color:new se.C(f).setAlpha(.65).toRgbString(),"&:hover":{color:f}}},[`${d}-thumbnail, ${d}-thumbnail img`]:{position:"static",display:"block",width:"100%",height:"100%",objectFit:"contain"},[`${d}-name`]:{display:"none",textAlign:"center"},[`${d}-file + ${d}-name`]:{position:"absolute",bottom:t.margin,display:"block",width:`calc(100% - ${t.paddingXS*2}px)`},[`${d}-uploading`]:{[`&${d}`]:{backgroundColor:t.colorFillAlter},[`&::before, ${n}-eye, ${n}-download, ${n}-delete`]:{display:"none"}},[`${d}-progress`]:{bottom:t.marginXL,width:`calc(100% - ${t.paddingXS*2}px)`,paddingInlineStart:0}}}),[`${i}-wrapper${i}-picture-circle-wrapper`]:{[`${i}${i}-select`]:{borderRadius:"50%"}}}};var g=t=>{const{componentCls:i}=t;return{[`${i}-rtl`]:{direction:"rtl"}}};const m=t=>{const{componentCls:i,colorTextDisabled:n}=t;return{[`${i}-wrapper`]:Object.assign(Object.assign({},(0,Se.Wf)(t)),{[i]:{outline:0,"input[type='file']":{cursor:"pointer"}},[`${i}-select`]:{display:"inline-block"},[`${i}-disabled`]:{color:n,cursor:"not-allowed"}})}};var y=(0,ne.Z)("Upload",t=>{const{fontSizeHeading3:i,fontSize:n,lineHeight:o,lineWidth:f,controlHeightLG:s}=t,d=Math.round(n*o),a=(0,it.TS)(t,{uploadThumbnailSize:i*2,uploadProgressOffset:d/2+f,uploadPicCardSize:s*2.55});return[m(a),Be(a),It(a),e(a),wt(a),rr(a),g(a),(0,Me.Z)(a)]},t=>({actionsColor:t.colorTextDescription})),N=function(t,i,n,o){function f(s){return s instanceof n?s:new n(function(d){d(s)})}return new(n||(n=Promise))(function(s,d){function a(E){try{C(o.next(E))}catch(M){d(M)}}function $(E){try{C(o.throw(E))}catch(M){d(M)}}function C(E){E.done?s(E.value):f(E.value).then(a,$)}C((o=o.apply(t,i||[])).next())})};const A=`__LIST_IGNORE_${Date.now()}__`,Q=(t,i)=>{const{fileList:n,defaultFileList:o,onRemove:f,showUploadList:s=!0,listType:d="text",onPreview:a,onDownload:$,onChange:C,onDrop:E,previewFile:M,disabled:R,locale:J,iconRender:de,isImageUrl:te,progress:Pe,prefixCls:ye,className:X,type:q="select",children:ue,style:D,itemRender:Xe,maxCount:_,data:Ke={},multiple:Y=!1,action:me="",accept:Ze="",supportServerRender:Ot=!0}=t,Zt=v.useContext(P.Z),tt=R!=null?R:Zt,[pe,Pt]=(0,je.Z)(o||[],{value:n,postState:z=>z!=null?z:[]}),[be,Bt]=v.useState("drop"),Ut=v.useRef(null);v.useMemo(()=>{const z=Date.now();(n||[]).forEach((oe,Ae)=>{!oe.uid&&!Object.isFrozen(oe)&&(oe.uid=`__AUTO__${z}_${Ae}__`)})},[n]);const at=(z,oe,Ae)=>{let K=(0,ct.Z)(oe),Ce=!1;_===1?K=K.slice(-1):_&&(Ce=K.length>_,K=K.slice(0,_)),(0,fe.flushSync)(()=>{Pt(K)});const $t={file:z,fileList:K};Ae&&($t.event=Ae),(!Ce||K.some(ar=>ar.uid===z.uid))&&(0,fe.flushSync)(()=>{C==null||C($t)})},zt=(z,oe)=>N(void 0,void 0,void 0,function*(){const{beforeUpload:Ae,transformFile:K}=t;let Ce=z;if(Ae){const $t=yield Ae(z,oe);if($t===!1)return!1;if(delete z[A],$t===A)return Object.defineProperty(z,A,{value:!0,configurable:!0}),!1;typeof $t=="object"&&$t&&(Ce=$t)}return K&&(Ce=yield K(Ce)),Ce}),kt=z=>{const oe=z.filter(Ce=>!Ce.file[A]);if(!oe.length)return;const Ae=oe.map(Ce=>vt(Ce.file));let K=(0,ct.Z)(pe);Ae.forEach(Ce=>{K=Ie(Ce,K)}),Ae.forEach((Ce,$t)=>{let ar=Ce;if(oe[$t].parsedFile)Ce.status="uploading";else{const{originFileObj:cr}=Ce;let sr;try{sr=new File([cr],cr.name,{type:cr.type})}catch(Ir){sr=new Blob([cr],{type:cr.type}),sr.name=cr.name,sr.lastModifiedDate=new Date,sr.lastModified=new Date().getTime()}sr.uid=Ce.uid,ar=sr}at(ar,K)})},j=(z,oe,Ae)=>{try{typeof z=="string"&&(z=JSON.parse(z))}catch($t){}if(!Jt(oe,pe))return;const K=vt(oe);K.status="done",K.percent=100,K.response=z,K.xhr=Ae;const Ce=Ie(K,pe);at(K,Ce)},we=(z,oe)=>{if(!Jt(oe,pe))return;const Ae=vt(oe);Ae.status="uploading",Ae.percent=z.percent;const K=Ie(Ae,pe);at(Ae,K,z)},st=(z,oe,Ae)=>{if(!Jt(Ae,pe))return;const K=vt(Ae);K.error=z,K.response=oe,K.status="error";const Ce=Ie(K,pe);at(K,Ce)},lt=z=>{let oe;Promise.resolve(typeof f=="function"?f(z):f).then(Ae=>{var K;if(Ae===!1)return;const Ce=lr(z,pe);Ce&&(oe=Object.assign(Object.assign({},z),{status:"removed"}),pe==null||pe.forEach($t=>{const ar=oe.uid!==void 0?"uid":"name";$t[ar]===oe[ar]&&!Object.isFrozen($t)&&($t.status="removed")}),(K=Ut.current)===null||K===void 0||K.abort(oe),at(oe,Ce))})},Nt=z=>{Bt(z.type),z.type==="drop"&&(E==null||E(z))};v.useImperativeHandle(i,()=>({onBatchStart:kt,onSuccess:j,onProgress:we,onError:st,fileList:pe,upload:Ut.current}));const{getPrefixCls:At,direction:ur,upload:qt}=v.useContext(I.E_),G=At("upload",ye),_t=Object.assign(Object.assign({onBatchStart:kt,onError:st,onProgress:we,onSuccess:j},t),{data:Ke,multiple:Y,action:me,accept:Ze,supportServerRender:Ot,prefixCls:G,disabled:tt,beforeUpload:zt,onChange:void 0});delete _t.className,delete _t.style,(!ue||tt)&&delete _t.id;const[ir,pr]=y(G),[hr]=(0,S.Z)("Upload",F.Z.Upload),{showRemoveIcon:vr,showPreviewIcon:yr,showDownloadIcon:br,removeIcon:Cr,previewIcon:$r,downloadIcon:Sr}=typeof s=="boolean"?{}:s,mr=(z,oe)=>s?v.createElement(He,{prefixCls:G,listType:d,items:pe,previewFile:M,onPreview:a,onDownload:$,onRemove:lt,showRemoveIcon:!tt&&vr,showPreviewIcon:yr,showDownloadIcon:br,removeIcon:Cr,previewIcon:$r,downloadIcon:Sr,iconRender:de,locale:Object.assign(Object.assign({},hr),J),isImageUrl:te,progress:Pe,appendAction:z,appendActionVisible:oe,itemRender:Xe,disabled:tt}):z,fr=ge()(`${G}-wrapper`,X,pr,qt==null?void 0:qt.className,{[`${G}-rtl`]:ur==="rtl",[`${G}-picture-card-wrapper`]:d==="picture-card",[`${G}-picture-circle-wrapper`]:d==="picture-circle"}),xr=Object.assign(Object.assign({},qt==null?void 0:qt.style),D);if(q==="drag"){const z=ge()(pr,G,`${G}-drag`,{[`${G}-drag-uploading`]:pe.some(oe=>oe.status==="uploading"),[`${G}-drag-hover`]:be==="dragover",[`${G}-disabled`]:tt,[`${G}-rtl`]:ur==="rtl"});return ir(v.createElement("span",{className:fr},v.createElement("div",{className:z,style:xr,onDrop:Nt,onDragOver:Nt,onDragLeave:Nt},v.createElement(Lt,Object.assign({},_t,{ref:Ut,className:`${G}-btn`}),v.createElement("div",{className:`${G}-drag-container`},ue))),mr()))}const wr=ge()(G,`${G}-select`,{[`${G}-disabled`]:tt}),gr=(z=>v.createElement("div",{className:wr,style:z},v.createElement(Lt,Object.assign({},_t,{ref:Ut}))))(ue?void 0:{display:"none"});return ir(d==="picture-card"||d==="picture-circle"?v.createElement("span",{className:fr},mr(gr,!!ue)):v.createElement("span",{className:fr},gr,mr()))};var V=v.forwardRef(Q),ee=function(t,i){var n={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&i.indexOf(o)<0&&(n[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f{var{style:n,height:o}=t,f=ee(t,["style","height"]);return v.createElement(V,Object.assign({ref:i},f,{type:"drag",style:Object.assign(Object.assign({},n),{height:o})}))});const xe=V;xe.Dragger=_e,xe.LIST_IGNORE=A;var et=xe},18591:function(dr,Kt,l){l.d(Kt,{Z:function(){return O}});const v=L=>typeof L=="object"&&L!=null&&L.nodeType===1,ct=(L,w)=>(!w||L!=="hidden")&&L!=="visible"&&L!=="clip",Ge=(L,w)=>{if(L.clientHeight{const le=(Ne=>{if(!Ne.ownerDocument||!Ne.ownerDocument.defaultView)return null;try{return Ne.ownerDocument.defaultView.frameElement}catch(ut){return null}})(he);return!!le&&(le.clientHeightNew||Ne>L&&ut=w&&ve>=Ee?Ne-L-he:ut>w&&veEe?ut-w+le:0,p=L=>{const w=L.parentElement;return w==null?L.getRootNode().host||null:w},dt=(L,w)=>{var Ee,he,le,Ne;if(typeof document=="undefined")return[];const{scrollMode:ut,block:ve,inline:Ye,boundary:St,skipOverflowHiddenElements:Yt}=w,Qt=typeof St=="function"?St:P=>P!==St;if(!v(L))throw new TypeError("Invalid target");const Ft=document.scrollingElement||document.documentElement,rt=[];let Fe=L;for(;v(Fe)&&Qt(Fe);){if(Fe=p(Fe),Fe===Ft){rt.push(Fe);break}Fe!=null&&Fe===document.body&&Ge(Fe)&&!Ge(document.documentElement)||Fe!=null&&Ge(Fe,Yt)&&rt.push(Fe)}const jt=(he=(Ee=window.visualViewport)==null?void 0:Ee.width)!=null?he:innerWidth,gt=(Ne=(le=window.visualViewport)==null?void 0:le.height)!=null?Ne:innerHeight,{scrollX:xt,scrollY:nt}=window,{height:mt,width:ft,top:Ue,right:ht,bottom:Vt,left:Lt}=L.getBoundingClientRect();let je=ve==="start"||ve==="nearest"?Ue:ve==="end"?Vt:Ue+mt/2,fe=Ye==="center"?Lt+ft/2:Ye==="end"?ht:Lt;const I=[];for(let P=0;P=0&&Lt>=0&&Vt<=gt&&ht<=jt&&Ue>=ce&&Vt<=We&&Lt>=Ve&&ht<=Le)return I;const Re=getComputedStyle(S),Qe=parseInt(Re.borderLeftWidth,10),ot=parseInt(Re.borderTopWidth,10),Je=parseInt(Re.borderRightWidth,10),ke=parseInt(Re.borderBottomWidth,10);let ze=0,De=0;const pt="offsetWidth"in S?S.offsetWidth-S.clientWidth-Qe-Je:0,Wt="offsetHeight"in S?S.offsetHeight-S.clientHeight-ot-ke:0,Rt="offsetWidth"in S?S.offsetWidth===0?0:W/S.offsetWidth:0,Ht="offsetHeight"in S?S.offsetHeight===0?0:F/S.offsetHeight:0;if(Ft===S)ze=ve==="start"?je:ve==="end"?je-gt:ve==="nearest"?ge(nt,nt+gt,gt,ot,ke,nt+je,nt+je+mt,mt):je-gt/2,De=Ye==="start"?fe:Ye==="center"?fe-jt/2:Ye==="end"?fe-jt:ge(xt,xt+jt,jt,Qe,Je,xt+fe,xt+fe+ft,ft),ze=Math.max(0,ze+nt),De=Math.max(0,De+xt);else{ze=ve==="start"?je-ce-ot:ve==="end"?je-We+ke+Wt:ve==="nearest"?ge(ce,We,F,ot,ke+Wt,je,je+mt,mt):je-(ce+F/2)+Wt/2,De=Ye==="start"?fe-Ve-Qe:Ye==="center"?fe-(Ve+W/2)+pt/2:Ye==="end"?fe-Le+Je+pt:ge(Ve,Le,W,Qe,Je+pt,fe,fe+ft,ft);const{scrollLeft:Xt,scrollTop:Dt}=S;ze=Math.max(0,Math.min(Dt+ze/Ht,S.scrollHeight-F/Ht+Wt)),De=Math.max(0,Math.min(Xt+De/Rt,S.scrollWidth-W/Rt+pt)),je+=Dt-ze,fe+=Xt-De}I.push({el:S,top:ze,left:De})}return I},re=L=>L===!1?{block:"end",inline:"nearest"}:(w=>w===Object(w)&&Object.keys(w).length!==0)(L)?L:{block:"start",inline:"nearest"};function O(L,w){if(!L.isConnected||!(he=>{let le=he;for(;le&&le.parentNode;){if(le.parentNode===document)return!0;le=le.parentNode instanceof ShadowRoot?le.parentNode.host:le.parentNode}return!1})(L))return;if((he=>typeof he=="object"&&typeof he.behavior=="function")(w))return w.behavior(dt(L,w));const Ee=typeof w=="boolean"||w==null?void 0:w.behavior;for(const{el:he,top:le,left:Ne}of dt(L,re(w)))he.scroll({top:le,left:Ne,behavior:Ee})}}}]); - -//# sourceMappingURL=818.9ff3ddb4.async.js.map \ No newline at end of file diff --git a/deepdataspace/server/static/818.9ff3ddb4.async.js.map b/deepdataspace/server/static/818.9ff3ddb4.async.js.map deleted file mode 100644 index add9c6a..0000000 --- a/deepdataspace/server/static/818.9ff3ddb4.async.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"818.9ff3ddb4.async.js","mappings":";AA0DA;AACA;AClCA;AACA;ACaA;AAAA;AA8DA;AA6MA;AA0EA;AACA;AClWA;ACyBA;AACA;AACA;ACPA;AACA;AACA;AClCA;AACA;AACA;AACA;AAyEA;AACA;AACA","sources":["webpack://app/../../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/alert/style/index.js","webpack://app/../../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/form/style/explain.js","webpack://app/../../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/form/style/index.js","webpack://app/../../node_modules/.pnpm/rc-progress@3.4.2_react-dom@18.2.0_react@18.2.0/node_modules/rc-progress/es/Line.js","webpack://app/../../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/upload/style/dragger.js","webpack://app/../../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/upload/style/list.js","webpack://app/../../node_modules/.pnpm/antd@5.8.5_react-dom@18.2.0_react@18.2.0/node_modules/antd/es/upload/style/picture.js"],"sourcesContent":["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});","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 _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;","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 { 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 };"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/deepdataspace/server/static/index.html b/deepdataspace/server/static/index.html index 2c4de8e..09a0c2a 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__Annotator__index.783e658f.async.js b/deepdataspace/server/static/p__Annotator__index.783e658f.async.js new file mode 100644 index 0000000..7244bd4 --- /dev/null +++ b/deepdataspace/server/static/p__Annotator__index.783e658f.async.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[734],{25970:function(l,e,_){_.r(e);var a=_(63900),n=_.n(a),E=_(58757),s=_(20138),d=_(97375),t=_(35667),o=function(){var u=(0,d.useModel)("Annotator.model");return(0,t.jsx)(s.Z,n()({},u))};e.default=o}}]); diff --git a/deepdataspace/server/static/p__Annotator__index.a6aa2d70.chunk.css b/deepdataspace/server/static/p__Annotator__index.a6aa2d70.chunk.css deleted file mode 100644 index 18ef41e..0000000 --- a/deepdataspace/server/static/p__Annotator__index.a6aa2d70.chunk.css +++ /dev/null @@ -1,3 +0,0 @@ -.container___l9ot9{position:relative;display:flex;background:#212121}.container___l9ot9 .left___z70k4{display:flex;flex-direction:column;align-items:stretch;width:200px;height:100%;padding:16px;gap:8px}.container___l9ot9 .right___JbF7R{flex:1 1;height:100%}.modal___FjMyp .ant-modal .ant-modal-header{margin-bottom:20px}.image-options-list___oaSKK{height:100vh}.image-options-list___oaSKK .virtual-list___au11F{border-radius:8px}.image-options-list___oaSKK .image-options___Kuy9B{margin:8px 0;width:100%;height:120px;box-sizing:border-box;object-fit:cover;border-radius:8px;background-color:#fff;cursor:pointer;transition:transform .3s ease}.image-options-list___oaSKK .image-options___Kuy9B:hover{transform:scale(.95)}.image-options-list___oaSKK .image-selected___qoFO4{border:3px solid #fff;border-radius:8px}.upload___kWr2Q .ant-upload{width:100%}.categories___BMpKT{display:flex;justify-items:flex-start;gap:30px;width:100%;height:100%}.categories___BMpKT .ant-form-item{margin-bottom:14px}.categories-add___EDmRO{display:flex;flex-direction:column;justify-items:space-around;align-items:flex-start;height:100%}.categories-add-textarea___IszF4{width:350px}.categories-add-button___MFR7y{margin-top:20px}.categories-current___DghDV{width:300px;display:flex;flex-direction:column;justify-items:space-around;height:100%}.categories-current-list___CkCO_{height:142px;overflow-y:scroll}.categories-current-list-item___oTUHZ:hover{background:rgba(0,0,0,.05)}.categories-current-text____g2ks{margin-left:10px}.container___JWsIP{overflow:hidden}.container___JWsIP .virtual-list___RHt_f{border-radius:8px;overflow-y:hidden}.container___JWsIP .row-container___jF4kE{display:flex}.container___JWsIP .preview-container___MBTvK{position:relative;display:flex;flex-direction:column;align-items:center;overflow:hidden;cursor:pointer;border-radius:5px;padding-bottom:10px}.container___JWsIP .remove-button___ehI2E{display:none;position:absolute!important;top:4px;right:4px}.container___JWsIP .preview-container___MBTvK:hover{background-color:#f0f0f0;border-radius:5px;box-shadow:0 1px 2px #0000004d}.container___JWsIP .preview-container___MBTvK:hover .remove-button___ehI2E{display:block}.container___JWsIP .image-preview___LLGBt{box-sizing:border-box;object-fit:cover;background-color:#fff;border-radius:5px}.container___JWsIP .image-name___VQaOl{width:90%;margin:5px;word-wrap:break-word;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} - -/*# sourceMappingURL=p__Annotator__index.a6aa2d70.chunk.css.map*/ \ No newline at end of file diff --git a/deepdataspace/server/static/p__Annotator__index.a6aa2d70.chunk.css.map b/deepdataspace/server/static/p__Annotator__index.a6aa2d70.chunk.css.map deleted file mode 100644 index c79a927..0000000 --- a/deepdataspace/server/static/p__Annotator__index.a6aa2d70.chunk.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"p__Annotator__index.a6aa2d70.chunk.css","mappings":"AAAA","sources":["webpack://app/./src/pages/Annotator/index.less"],"sourcesContent":[".container {\n position: relative;\n display: flex;\n background: #212121;\n\n .left {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n width: 200px;\n height: 100%;\n padding: 16px;\n gap: 8px;\n }\n\n .right {\n flex: 1;\n height: 100%;\n }\n}\n\n.modal {\n :global {\n .ant-modal .ant-modal-header {\n margin-bottom: 20px;\n }\n }\n}\n\n@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;@colorPrimary: #1e53f5;@colorSuccess: #52c41a;@colorWarning: #faad14;@colorError: #ff4d4f;@colorInfo: #1677ff;@colorLink: #1677ff;@colorTextBase: #000;@colorBgBase: #fff;@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';@fontFamilyCode: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;@fontSize: 14;@lineWidth: 1;@lineType: solid;@motionUnit: 0.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: 1000;@opacityImage: 1;@wireframe: false;@motion: true;@blue-1: #e6f4ff;@blue1: #e6f4ff;@blue-2: #bae0ff;@blue2: #bae0ff;@blue-3: #91caff;@blue3: #91caff;@blue-4: #69b1ff;@blue4: #69b1ff;@blue-5: #4096ff;@blue5: #4096ff;@blue-6: #1677ff;@blue6: #1677ff;@blue-7: #0958d9;@blue7: #0958d9;@blue-8: #003eb3;@blue8: #003eb3;@blue-9: #002c8c;@blue9: #002c8c;@blue-10: #001d66;@blue10: #001d66;@purple-1: #f9f0ff;@purple1: #f9f0ff;@purple-2: #efdbff;@purple2: #efdbff;@purple-3: #d3adf7;@purple3: #d3adf7;@purple-4: #b37feb;@purple4: #b37feb;@purple-5: #9254de;@purple5: #9254de;@purple-6: #722ed1;@purple6: #722ed1;@purple-7: #531dab;@purple7: #531dab;@purple-8: #391085;@purple8: #391085;@purple-9: #22075e;@purple9: #22075e;@purple-10: #120338;@purple10: #120338;@cyan-1: #e6fffb;@cyan1: #e6fffb;@cyan-2: #b5f5ec;@cyan2: #b5f5ec;@cyan-3: #87e8de;@cyan3: #87e8de;@cyan-4: #5cdbd3;@cyan4: #5cdbd3;@cyan-5: #36cfc9;@cyan5: #36cfc9;@cyan-6: #13c2c2;@cyan6: #13c2c2;@cyan-7: #08979c;@cyan7: #08979c;@cyan-8: #006d75;@cyan8: #006d75;@cyan-9: #00474f;@cyan9: #00474f;@cyan-10: #002329;@cyan10: #002329;@green-1: #f6ffed;@green1: #f6ffed;@green-2: #d9f7be;@green2: #d9f7be;@green-3: #b7eb8f;@green3: #b7eb8f;@green-4: #95de64;@green4: #95de64;@green-5: #73d13d;@green5: #73d13d;@green-6: #52c41a;@green6: #52c41a;@green-7: #389e0d;@green7: #389e0d;@green-8: #237804;@green8: #237804;@green-9: #135200;@green9: #135200;@green-10: #092b00;@green10: #092b00;@magenta-1: #fff0f6;@magenta1: #fff0f6;@magenta-2: #ffd6e7;@magenta2: #ffd6e7;@magenta-3: #ffadd2;@magenta3: #ffadd2;@magenta-4: #ff85c0;@magenta4: #ff85c0;@magenta-5: #f759ab;@magenta5: #f759ab;@magenta-6: #eb2f96;@magenta6: #eb2f96;@magenta-7: #c41d7f;@magenta7: #c41d7f;@magenta-8: #9e1068;@magenta8: #9e1068;@magenta-9: #780650;@magenta9: #780650;@magenta-10: #520339;@magenta10: #520339;@pink-1: #fff0f6;@pink1: #fff0f6;@pink-2: #ffd6e7;@pink2: #ffd6e7;@pink-3: #ffadd2;@pink3: #ffadd2;@pink-4: #ff85c0;@pink4: #ff85c0;@pink-5: #f759ab;@pink5: #f759ab;@pink-6: #eb2f96;@pink6: #eb2f96;@pink-7: #c41d7f;@pink7: #c41d7f;@pink-8: #9e1068;@pink8: #9e1068;@pink-9: #780650;@pink9: #780650;@pink-10: #520339;@pink10: #520339;@red-1: #fff1f0;@red1: #fff1f0;@red-2: #ffccc7;@red2: #ffccc7;@red-3: #ffa39e;@red3: #ffa39e;@red-4: #ff7875;@red4: #ff7875;@red-5: #ff4d4f;@red5: #ff4d4f;@red-6: #f5222d;@red6: #f5222d;@red-7: #cf1322;@red7: #cf1322;@red-8: #a8071a;@red8: #a8071a;@red-9: #820014;@red9: #820014;@red-10: #5c0011;@red10: #5c0011;@orange-1: #fff7e6;@orange1: #fff7e6;@orange-2: #ffe7ba;@orange2: #ffe7ba;@orange-3: #ffd591;@orange3: #ffd591;@orange-4: #ffc069;@orange4: #ffc069;@orange-5: #ffa940;@orange5: #ffa940;@orange-6: #fa8c16;@orange6: #fa8c16;@orange-7: #d46b08;@orange7: #d46b08;@orange-8: #ad4e00;@orange8: #ad4e00;@orange-9: #873800;@orange9: #873800;@orange-10: #612500;@orange10: #612500;@yellow-1: #feffe6;@yellow1: #feffe6;@yellow-2: #ffffb8;@yellow2: #ffffb8;@yellow-3: #fffb8f;@yellow3: #fffb8f;@yellow-4: #fff566;@yellow4: #fff566;@yellow-5: #ffec3d;@yellow5: #ffec3d;@yellow-6: #fadb14;@yellow6: #fadb14;@yellow-7: #d4b106;@yellow7: #d4b106;@yellow-8: #ad8b00;@yellow8: #ad8b00;@yellow-9: #876800;@yellow9: #876800;@yellow-10: #614700;@yellow10: #614700;@volcano-1: #fff2e8;@volcano1: #fff2e8;@volcano-2: #ffd8bf;@volcano2: #ffd8bf;@volcano-3: #ffbb96;@volcano3: #ffbb96;@volcano-4: #ff9c6e;@volcano4: #ff9c6e;@volcano-5: #ff7a45;@volcano5: #ff7a45;@volcano-6: #fa541c;@volcano6: #fa541c;@volcano-7: #d4380d;@volcano7: #d4380d;@volcano-8: #ad2102;@volcano8: #ad2102;@volcano-9: #871400;@volcano9: #871400;@volcano-10: #610b00;@volcano10: #610b00;@geekblue-1: #f0f5ff;@geekblue1: #f0f5ff;@geekblue-2: #d6e4ff;@geekblue2: #d6e4ff;@geekblue-3: #adc6ff;@geekblue3: #adc6ff;@geekblue-4: #85a5ff;@geekblue4: #85a5ff;@geekblue-5: #597ef7;@geekblue5: #597ef7;@geekblue-6: #2f54eb;@geekblue6: #2f54eb;@geekblue-7: #1d39c4;@geekblue7: #1d39c4;@geekblue-8: #10239e;@geekblue8: #10239e;@geekblue-9: #061178;@geekblue9: #061178;@geekblue-10: #030852;@geekblue10: #030852;@gold-1: #fffbe6;@gold1: #fffbe6;@gold-2: #fff1b8;@gold2: #fff1b8;@gold-3: #ffe58f;@gold3: #ffe58f;@gold-4: #ffd666;@gold4: #ffd666;@gold-5: #ffc53d;@gold5: #ffc53d;@gold-6: #faad14;@gold6: #faad14;@gold-7: #d48806;@gold7: #d48806;@gold-8: #ad6800;@gold8: #ad6800;@gold-9: #874d00;@gold9: #874d00;@gold-10: #613400;@gold10: #613400;@lime-1: #fcffe6;@lime1: #fcffe6;@lime-2: #f4ffb8;@lime2: #f4ffb8;@lime-3: #eaff8f;@lime3: #eaff8f;@lime-4: #d3f261;@lime4: #d3f261;@lime-5: #bae637;@lime5: #bae637;@lime-6: #a0d911;@lime6: #a0d911;@lime-7: #7cb305;@lime7: #7cb305;@lime-8: #5b8c00;@lime8: #5b8c00;@lime-9: #3f6600;@lime9: #3f6600;@lime-10: #254000;@lime10: #254000;@colorText: rgba(0, 0, 0, 0.88);@colorTextSecondary: rgba(0, 0, 0, 0.65);@colorTextTertiary: rgba(0, 0, 0, 0.45);@colorTextQuaternary: rgba(0, 0, 0, 0.25);@colorFill: rgba(0, 0, 0, 0.15);@colorFillSecondary: rgba(0, 0, 0, 0.06);@colorFillTertiary: rgba(0, 0, 0, 0.04);@colorFillQuaternary: rgba(0, 0, 0, 0.02);@colorBgLayout: #f5f5f5;@colorBgContainer: #ffffff;@colorBgElevated: #ffffff;@colorBgSpotlight: rgba(0, 0, 0, 0.85);@colorBorder: #d9d9d9;@colorBorderSecondary: #f0f0f0;@colorPrimaryBg: #ebf3ff;@colorPrimaryBgHover: #c2d9ff;@colorPrimaryBorder: #99bdff;@colorPrimaryBorderHover: #709dff;@colorPrimaryHover: #477bff;@colorPrimaryActive: #0e38cf;@colorPrimaryTextHover: #477bff;@colorPrimaryText: #1e53f5;@colorPrimaryTextActive: #0e38cf;@colorSuccessBg: #f6ffed;@colorSuccessBgHover: #d9f7be;@colorSuccessBorder: #b7eb8f;@colorSuccessBorderHover: #95de64;@colorSuccessHover: #95de64;@colorSuccessActive: #389e0d;@colorSuccessTextHover: #73d13d;@colorSuccessText: #52c41a;@colorSuccessTextActive: #389e0d;@colorErrorBg: #fff2f0;@colorErrorBgHover: #fff1f0;@colorErrorBorder: #ffccc7;@colorErrorBorderHover: #ffa39e;@colorErrorHover: #ff7875;@colorErrorActive: #d9363e;@colorErrorTextHover: #ff7875;@colorErrorText: #ff4d4f;@colorErrorTextActive: #d9363e;@colorWarningBg: #fffbe6;@colorWarningBgHover: #fff1b8;@colorWarningBorder: #ffe58f;@colorWarningBorderHover: #ffd666;@colorWarningHover: #ffd666;@colorWarningActive: #d48806;@colorWarningTextHover: #ffc53d;@colorWarningText: #faad14;@colorWarningTextActive: #d48806;@colorInfoBg: #e6f4ff;@colorInfoBgHover: #bae0ff;@colorInfoBorder: #91caff;@colorInfoBorderHover: #69b1ff;@colorInfoHover: #69b1ff;@colorInfoActive: #0958d9;@colorInfoTextHover: #4096ff;@colorInfoText: #1677ff;@colorInfoTextActive: #0958d9;@colorLinkHover: #69b1ff;@colorLinkActive: #0958d9;@colorBgMask: rgba(0, 0, 0, 0.45);@colorWhite: #fff;@fontSizeSM: 12;@fontSizeLG: 16;@fontSizeXL: 20;@fontSizeHeading1: 38;@fontSizeHeading2: 30;@fontSizeHeading3: 24;@fontSizeHeading4: 20;@fontSizeHeading5: 16;@lineHeight: 1.5714285714285714;@lineHeightLG: 1.5;@lineHeightSM: 1.6666666666666667;@lineHeightHeading1: 1.2105263157894737;@lineHeightHeading2: 1.2666666666666666;@lineHeightHeading3: 1.3333333333333333;@lineHeightHeading4: 1.4;@lineHeightHeading5: 1.5;@sizeXXL: 48;@sizeXL: 32;@sizeLG: 24;@sizeMD: 20;@sizeMS: 16;@size: 16;@sizeSM: 12;@sizeXS: 8;@sizeXXS: 4;@controlHeightSM: 24;@controlHeightXS: 16;@controlHeightLG: 40;@motionDurationFast: 0.1s;@motionDurationMid: 0.2s;@motionDurationSlow: 0.3s;@lineWidthBold: 2;@borderRadiusXS: 2;@borderRadiusSM: 4;@borderRadiusLG: 8;@borderRadiusOuter: 4;"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/deepdataspace/server/static/p__Annotator__index.d45bba40.async.js b/deepdataspace/server/static/p__Annotator__index.d45bba40.async.js deleted file mode 100644 index 8f6cc13..0000000 --- a/deepdataspace/server/static/p__Annotator__index.d45bba40.async.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[734],{39800:function(re,w,t){t.d(w,{Z:function(){return B}});var $=t(60698),S=t(58757),i={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"},D=i,R=t(17202),V=function(e,G){return S.createElement(R.Z,(0,$.Z)({},e,{ref:G,icon:D}))},B=S.forwardRef(V)},54819:function(re,w,t){t.r(w),t.d(w,{default:function(){return Fe}});var $=t(88205),S=t.n($),i=t(58757),D=t(97375),R={container:"container___l9ot9",left:"left___z70k4",right:"right___JbF7R",modal:"modal___FjMyp"},V=t(15979),B=t(18695),P={"image-options-list":"image-options-list___oaSKK","virtual-list":"virtual-list___au11F","image-options":"image-options___Kuy9B","image-selected":"image-selected___qoFO4"},e=t(35667),G=function(r){var l=r.images,M=r.selected,m=r.onImageSelected,o=(0,i.useState)(0),U=S()(o,2),y=U[0],f=U[1],x=120,c=(0,i.useCallback)(function(){var h=document.getElementById("image-options-container");if(h){var u=h.offsetHeight||0;f(u-56)}},[]);(0,i.useEffect)(function(){return c(),window.addEventListener("resize",c),function(){window.removeEventListener("resize",c)}},[c]);var F=function(u){u<0||u>=l.length||m(u)};return(0,e.jsx)("div",{id:"image-options-container",className:P["image-options-list"],children:(0,e.jsx)(B.Z,{className:P["virtual-list"],data:l,height:y,fullHeight:!0,itemHeight:x,itemKey:"id",children:function(u,j){var d=j===M?P["image-selected"]:"";return(0,e.jsx)("div",{children:(0,e.jsx)("img",{className:"".concat(P["image-options"]," ").concat(d),src:u.url,onClick:function(){return F(j)}},u.id)})}})})},E=t(12562),se=t(39800),le=t(34485),K=t.n(le),ce=t(63900),Q=t.n(ce),de=t(60698),ue={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"},me=ue,ge=t(17202),ve=function(r,l){return i.createElement(ge.Z,(0,de.Z)({},r,{ref:l,icon:me}))},fe=i.forwardRef(ve),X=t(23605),H=t(47513),he=t(65388),pe=t(62109),xe=t(15618),je=t(23241),Ce=t(21149),Y=t(37617),k=10,b=1e3,I={upload:"upload___kWr2Q",categories:"categories___BMpKT","categories-add":"categories-add___EDmRO","categories-add-textarea":"categories-add-textarea___IszF4","categories-add-button":"categories-add-button___MFR7y","categories-current":"categories-current___DghDV","categories-current-list":"categories-current-list___CkCO_","categories-current-list-item":"categories-current-list-item___oTUHZ","categories-current-text":"categories-current-text____g2ks"},q=t(65246),_=t(53357),L={container:"container___JWsIP","virtual-list":"virtual-list___RHt_f","row-container":"row-container___jF4kE","preview-container":"preview-container___MBTvK","remove-button":"remove-button___ehI2E","image-preview":"image-preview___LLGBt","image-name":"image-name___VQaOl"},ee=t(39378),Ie=(0,i.memo)(function(O){var r=O.files,l=O.colume,M=O.containerWidth,m=O.containerHeight,o=O.onRemoveFile,U=(0,i.useMemo)(function(){return(0,ee.chunk)(r,l).map(function(d,n){return{index:n,rowImages:d}})},[r,l]),y=8,f=.75,x=.95,c=30,F=(0,i.useMemo)(function(){return(M-(l-1)*y)/l},[M,l,y]),h=(0,i.useMemo)(function(){return F*x},[F,x]),u=(0,i.useMemo)(function(){return h*f},[h,f]),j=(0,i.useMemo)(function(){return u+c+10},[u,c]);return(0,e.jsx)("div",{id:"file-preview-container",className:L.container,style:{height:m},children:(0,e.jsx)(B.Z,{className:L["virtual-list"],data:U,height:m,fullHeight:!0,itemHeight:j,itemKey:"index",children:function(n,A){return(0,e.jsx)("div",{className:L["row-container"],style:{gap:y},children:n.rowImages.map(function(C,W){return(0,e.jsxs)("div",{className:"".concat(L["preview-container"]),style:{width:F,height:j},children:[(0,e.jsx)("div",{className:"".concat(L["remove-button"]),children:(0,e.jsx)(E.ZP,{className:L.btn,icon:(0,e.jsx)(X.Z,{}),shape:"circle",danger:!0,onClick:function(z){z.stopPropagation(),o(A*l+W)}})}),(0,e.jsx)("img",{className:"".concat(L["image-preview"]),src:C.thumbUrl||C.url,style:{width:h,height:u}}),(0,e.jsx)("div",{className:"".concat(L["image-name"]),children:C.name})]},C.uid)})},A)}})})}),Me=function(r){var l=r.open,M=r.setOpen,m=(0,_.bU)(),o=m.localeText,U=H.Z.useForm(),y=S()(U,1),f=y[0],x=(0,D.useModel)("Annotator.model"),c=x.images,F=x.categories,h=x.setImages,u=x.setCategories,j=(0,q.x)([]),d=S()(j,2),n=d[0],A=d[1],C=(0,q.x)(F),W=S()(C,2),T=W[0],z=W[1],Ne=he.Z.useNotification(),ae=S()(Ne,2),Se=ae[0],Oe=ae[1],ne=function(a){Se.info(Q()(Q()({},a),{},{placement:"topRight"}))},Ze=function(a){var g=a.file,p=a.fileList;if(g.uid===p[p.length-1].uid){var N=p.filter(function(Z){return!(Z.size&&Z.size/1024/1024>k)}).slice(0,b).map(function(Z){var J=URL.createObjectURL(Z.originFileObj);return Z.url=J,Z.thumbUrl=J,Z});A(N)}},oe=(0,i.useCallback)(function(s){return c[s]&&c[s].objects.length>0},[c]),Le=(0,i.useCallback)(function(s){if(oe(s)){ne({message:o("annotator.formModal.deleteImage.title"),description:o("annotator.formModal.deleteImage.desc"),duration:3});return}var a=(0,ee.cloneDeep)(n);a.splice(s,1),A(a)},[n,oe]),Ue=function(a){var g=a.map(function(v){return v.uid}),p=c.map(function(v){return v.id}),N=c.filter(function(v){return g.includes(v.id)&&p.includes(v.id)});h(N);var Z=a.filter(function(v){return!p.includes(v.uid)}),J=Z.map(function(v){var ie=v.url||URL.createObjectURL(v.originFileObj),be={id:v.uid,url:ie,urlFullRes:ie,fileName:v.name,objects:[]};return be});h(function(v){return[].concat(K()(v),K()(J))})};(0,i.useEffect)(function(){z(F)},[l]);var Ae=function(){return T.length===0?Promise.reject(o("annotator.formModal.categoryRequiredMsg")):Promise.resolve()},Te=function(a){var g=a.split(` -`).map(function(p){return p.trim()}).filter(Boolean);return g},Re=function(a){var g=K()(T).map(function(N){return N.name}),p=[];a.forEach(function(N){g.includes(N)||(g.push(N),p.push({id:N,name:N}))}),z([].concat(K()(T),p))},Ee=function(){var a=f.getFieldValue("categoryStr"),g=Te(a);Re(g),f.setFieldValue("categoryStr",""),f.validateFields()},He=function(a){z(T.filter(function(g){return g.name!==a}))},Pe=function(a){return!!c.find(function(g){return g.objects.find(function(p){return p.categoryName===a})})};return(0,e.jsxs)(pe.Z,{open:l,centered:!0,width:700,title:o("annotator.formModal.title"),onCancel:function(){f.validateFields().then(function(){M(!1)})},onOk:function(){f.validateFields().then(function(){Ue(n),u(T),M(!1)}).catch(function(a){console.log("Validate Failed:",a)})},children:[Oe,(0,e.jsx)(xe.Z,{message:o("annotator.notice"),type:"info",showIcon:!0,style:{margin:"20px 0"}}),(0,e.jsxs)(H.Z,{layout:"vertical",form:f,requiredMark:!1,children:[(0,e.jsx)(H.Z.Item,{label:(0,e.jsx)("h4",{children:o("annotator.formModal.importImages")}),name:"fileList",required:!0,extra:(0,e.jsxs)(e.Fragment,{children:[n.length>0&&(0,e.jsx)(Ie,{files:n,colume:4,containerWidth:652,containerHeight:270,onRemoveFile:Le}),(0,e.jsx)("p",{children:o("annotator.formModal.imageTips",{count:b,size:k})})]}),children:(0,e.jsx)(je.Z,{className:I.upload,multiple:!0,showUploadList:!1,beforeUpload:function(){return!1},accept:"image/png, image/jpeg, image/jpg",fileList:n,maxCount:b,openFileDialogOnClick:n.length=b,children:o("dataset.import.modal.upload")})})}),(0,e.jsx)(H.Z.Item,{label:(0,e.jsx)("h4",{children:o("annotator.formModal.categories")}),children:(0,e.jsxs)("div",{className:I.categories,children:[(0,e.jsxs)("div",{className:I["categories-add"],children:[(0,e.jsx)(H.Z.Item,{name:"categoryStr",initialValue:"",children:(0,e.jsx)(Ce.Z.TextArea,{className:I["categories-add-textarea"],rows:6,placeholder:o("annotator.formModal.categoryPlaceholder"),onKeyDown:function(a){return a.stopPropagation()},allowClear:!0,value:f.getFieldValue("categoryStr")})}),(0,e.jsx)(E.ZP,{className:I["categories-add-btn"],onClick:Ee,children:o("annotator.formModal.addCategory")})]}),(0,e.jsxs)("div",{className:I["categories-current"],children:[(0,e.jsx)(H.Z.Item,{name:"tempCategories",rules:[{validator:Ae}],children:(0,e.jsx)(Y.Z,{className:I["categories-current-list"],bordered:!0,size:"small",dataSource:T,renderItem:function(a){return(0,e.jsx)(Y.Z.Item,{className:I["categories-current-list-item"],style:{padding:"2px 16px"},actions:[(0,e.jsx)(E.ZP,{danger:!0,type:"text",icon:(0,e.jsx)(X.Z,{}),onClick:function(){Pe(a.name)?ne({message:o("annotator.formModal.deleteCategory.title"),description:o("annotator.formModal.deleteCategory.desc"),duration:3}):He(a.name)}},"delete")],children:a.name},a.id)}})}),(0,e.jsx)("p",{className:I["categories-current-text"],children:"".concat(o("annotator.formModal.categoriesCount"),": ").concat(T.length)})]})]})})]})]})},te=t(2556),ye=function(){var r=(0,D.useModel)("Annotator.model"),l=r.images,M=r.setImages,m=r.current,o=r.setCurrent,U=r.categories,y=r.setCategories,f=r.exportAnnotations,x=(0,_.bU)(),c=x.localeText,F=(0,i.useState)(!0),h=S()(F,2),u=h[0],j=h[1];return(0,i.useEffect)(function(){},[]),(0,i.useEffect)(function(){var d=localStorage.getItem("images"),n=localStorage.getItem("categories");d&&n&&(M(JSON.parse(d)),y(JSON.parse(n)),j(!1))},[]),(0,te.Z)("uparrow",function(){o(Math.max(0,m-1))},{exactMatch:!0}),(0,te.Z)("downarrow",function(){o(Math.min(m+1,l.length-1))},{exactMatch:!0}),(0,e.jsxs)("div",{className:R.container,children:[(0,e.jsxs)("div",{className:R.left,onMouseDown:function(n){n.stopPropagation()},onMouseUp:function(n){n.stopPropagation()},children:[(0,e.jsx)(E.ZP,{type:"primary",icon:(0,e.jsx)(se.Z,{}),onClick:function(){j(!0)},children:c("annotator.setting")}),(0,e.jsx)(G,{images:l,selected:m,onImageSelected:function(n){o(n)}})]}),(0,e.jsx)("div",{className:R.right,children:(0,e.jsx)(V.kl,{isSeperate:!0,visible:!0,mode:V.je.Edit,categories:U,setCategories:y,list:l,current:m,actionElements:[(0,e.jsx)(E.ZP,{type:"primary",onClick:f,children:c("annotator.export")},"export")],onAutoSave:function(n,A){M(function(C){C[m]&&(C[m].objects=n,C[m].width=A.width,C[m].height=A.height)})}})}),(0,e.jsx)("div",{className:R.modal,onMouseDown:function(n){return n.stopPropagation()},onMouseUp:function(n){return n.stopPropagation()},children:(0,e.jsx)(Me,{open:u,setOpen:j})})]})},Fe=ye}}]); - -//# sourceMappingURL=p__Annotator__index.d45bba40.async.js.map \ No newline at end of file diff --git a/deepdataspace/server/static/p__Annotator__index.d45bba40.async.js.map b/deepdataspace/server/static/p__Annotator__index.d45bba40.async.js.map deleted file mode 100644 index f51ce74..0000000 --- a/deepdataspace/server/static/p__Annotator__index.d45bba40.async.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"p__Annotator__index.d45bba40.async.js","mappings":";AAsJA","sources":["webpack://app/./src/pages/Annotator/components/FormModal/index.tsx"],"sourcesContent":["import { DeleteOutlined, UploadOutlined } from '@ant-design/icons';\nimport {\n Alert,\n Button,\n Form,\n Input,\n List,\n Modal,\n Upload,\n UploadFile,\n notification,\n} from 'antd';\nimport { MAX_FILE_COUNT, MAX_FILE_SIZE } from '../../constants';\nimport { useModel } from '@umijs/max';\nimport { UploadProps } from 'antd/es/upload';\nimport styles from './index.less';\nimport { useImmer } from 'use-immer';\nimport { LabelImageFile } from '@/types/annotator';\nimport { useCallback, useEffect } from 'react';\nimport { useLocale } from 'dds-utils/locale';\nimport { UploadImageList } from '@/components/UploadImageList';\nimport { cloneDeep } from 'lodash';\nimport { ArgsProps } from 'antd/es/notification/interface';\nimport { Category } from '@/types';\n\ninterface IProps {\n open: boolean;\n setOpen: React.Dispatch>;\n}\n\nexport const FormModal: React.FC = ({ open, setOpen }: IProps) => {\n const { localeText } = useLocale();\n const [form] = Form.useForm<{\n fileList: UploadFile[];\n categoryStr: string;\n tempCategories: Category[];\n }>();\n\n const { images, categories, setImages, setCategories } =\n useModel('Annotator.model');\n\n /** Temporarily store Image in the Form */\n const [tempImages, setTempImages] = useImmer([]);\n\n /** Temporarily Displayed Category in the Form */\n const [tempCategories, setTempCategories] = useImmer(categories);\n\n const [api, contextHolder] = notification.useNotification();\n const openNotification = (props: ArgsProps) => {\n api.info({\n ...props,\n placement: 'topRight',\n });\n };\n\n /**\n * Logics for importing files\n */\n\n const handleUploadChange: UploadProps['onChange'] = ({ file, fileList }) => {\n // ensure excute once while batch upload files\n if (file.uid !== fileList[fileList.length - 1].uid) return;\n\n const validFiles = fileList\n .filter((file) => !(file.size && file.size / 1024 / 1024 > MAX_FILE_SIZE))\n .slice(0, MAX_FILE_COUNT)\n .map((file) => {\n const objectUrl = URL.createObjectURL(file.originFileObj as Blob);\n file.url = objectUrl;\n file.thumbUrl = objectUrl;\n return file;\n });\n setTempImages(validFiles);\n };\n\n const hasAnnotsOnImage = useCallback(\n (index: number) => {\n return images[index] && images[index].objects.length > 0;\n },\n [images],\n );\n\n const onRemoveTempFile = useCallback(\n (index: number) => {\n if (hasAnnotsOnImage(index)) {\n openNotification({\n message: localeText('annotator.formModal.deleteImage.title'),\n description: localeText('annotator.formModal.deleteImage.desc'),\n duration: 3,\n });\n return;\n }\n const newList = cloneDeep(tempImages);\n newList.splice(index, 1);\n setTempImages(newList);\n },\n [tempImages, hasAnnotsOnImage],\n );\n\n const updateImages = (fileList: UploadFile[]) => {\n const submitFileIds = fileList.map((file) => file.uid);\n const existingImageIds = images.map((image) => image.id);\n\n // Delete files that are not present in fileList\n const savedImages = images.filter(\n (image) =>\n submitFileIds.includes(image.id) && existingImageIds.includes(image.id),\n );\n setImages(savedImages);\n\n // Load new files that are not present in images\n const newFiles = fileList.filter(\n (file) => !existingImageIds.includes(file.uid),\n );\n\n // updated images\n const imageFiles = newFiles.map((file) => {\n const objectUrl =\n file.url || URL.createObjectURL(file.originFileObj as Blob);\n const item: LabelImageFile = {\n id: file.uid,\n url: objectUrl,\n urlFullRes: objectUrl,\n fileName: file.name,\n objects: [],\n };\n return item;\n });\n setImages((images) => [...images, ...imageFiles]);\n };\n\n /**\n * Logics for editing categories\n */\n\n useEffect(() => {\n // Sync the latest categories to form data, considering the categories could be added out of the form\n setTempCategories(categories);\n }, [open]);\n\n const validateCategories = () => {\n if (tempCategories.length === 0) {\n return Promise.reject(\n localeText('annotator.formModal.categoryRequiredMsg'),\n );\n }\n return Promise.resolve();\n };\n\n const convertInputToLabels = (text: string): string[] => {\n const labels = text\n .split('\\n')\n .map((s) => s.trim())\n .filter(Boolean);\n return labels;\n };\n\n const addLabelsToTempCategories = (labels: string[]) => {\n const existing = [...tempCategories].map((item) => item.name);\n const newCategories: Category[] = [];\n labels.forEach((label) => {\n if (existing.includes(label)) return;\n existing.push(label);\n newCategories.push({\n id: label,\n name: label,\n });\n });\n setTempCategories([...tempCategories, ...newCategories]);\n };\n\n const addTempCategories = () => {\n const text = form.getFieldValue('categoryStr');\n const labels = convertInputToLabels(text);\n addLabelsToTempCategories(labels);\n form.setFieldValue('categoryStr', '');\n form.validateFields();\n };\n\n const deleteTempCategories = (name: string) => {\n setTempCategories(tempCategories.filter((item) => item.name !== name));\n };\n\n const hasRelatedAnnots = (categoryName: string) => {\n return !!images.find((image) =>\n image.objects.find((obj) => obj.categoryName === categoryName),\n );\n };\n\n return (\n {\n form.validateFields().then(() => {\n setOpen(false);\n });\n }}\n onOk={() => {\n form\n .validateFields()\n .then(() => {\n updateImages(tempImages);\n setCategories(tempCategories);\n setOpen(false);\n })\n .catch((info) => {\n console.log('Validate Failed:', info);\n });\n }}\n >\n {contextHolder}\n \n \n {localeText('annotator.formModal.importImages')}}\n name=\"fileList\"\n required\n extra={\n <>\n {tempImages.length > 0 && (\n \n )}\n

    \n {localeText('annotator.formModal.imageTips', {\n count: MAX_FILE_COUNT,\n size: MAX_FILE_SIZE,\n })}\n

    \n \n }\n >\n false}\n accept={'image/png, image/jpeg, image/jpg'}\n fileList={tempImages}\n maxCount={MAX_FILE_COUNT}\n openFileDialogOnClick={tempImages.length < MAX_FILE_COUNT}\n onChange={handleUploadChange}\n >\n }\n style={{ marginBlockEnd: '10px' }}\n disabled={tempImages.length >= MAX_FILE_COUNT}\n >\n {localeText('dataset.import.modal.upload')}\n \n \n \n {localeText('annotator.formModal.categories')}}\n >\n
    \n
    \n \n e.stopPropagation()}\n allowClear\n value={form.getFieldValue('categoryStr')}\n />\n \n \n {localeText('annotator.formModal.addCategory')}\n \n
    \n
    \n \n (\n }\n key=\"delete\"\n onClick={() => {\n if (hasRelatedAnnots(item.name)) {\n openNotification({\n message: localeText(\n 'annotator.formModal.deleteCategory.title',\n ),\n description: localeText(\n 'annotator.formModal.deleteCategory.desc',\n ),\n duration: 3,\n });\n } else {\n deleteTempCategories(item.name);\n }\n }}\n />,\n ]}\n >\n {item.name}\n \n )}\n />\n \n

    {`${localeText(\n 'annotator.formModal.categoriesCount',\n )}: ${tempCategories.length}`}

    \n
    \n
    \n \n \n \n );\n};\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/deepdataspace/server/static/p__Dataset__index.9c289e03.async.js b/deepdataspace/server/static/p__Dataset__index.9c289e03.async.js deleted file mode 100644 index 89168fb..0000000 --- a/deepdataspace/server/static/p__Dataset__index.9c289e03.async.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[33],{51204:function(se,A,e){e.d(A,{Z:function(){return V}});var Y=e(58757),x=e(59504),S=e(53357),Z={wrapper:"wrapper___FtwXk"},u=e(35667),o=function(P){var i=(0,S.bU)(),s=i.localeText,h=P.categoryId,t=P.categories,f=P.onCategoryChange;return(0,u.jsxs)("div",{className:Z.wrapper,children:[s("dataset.detail.category"),":",(0,u.jsx)(x.Z,{showSearch:!0,style:{width:"160px",marginLeft:"10px"},dropdownMatchSelectWidth:!1,placeholder:"Select a category",optionFilterProp:"children",value:h,onChange:f,filterOption:function(E,g){return g.children.toLowerCase().includes(E.toLowerCase())},getPopupContainer:function(){return document.getElementById("filterWrap")},children:t.map(function(v){return(0,u.jsx)(x.Z.Option,{value:v.id,children:v.name},v.id)})})]})},V=o},85205:function(se,A,e){e.d(A,{Z:function(){return t}});var Y=e(58757),x=e(10852),S=e(38904),Z=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),h=function(v){var E=(0,P.bU)(),g=E.localeText,J=v.annotationTypes,B=v.disableChangeType,R=v.displayAnnotationType,m=v.displayOptions,$=v.displayOptionsValue,K=v.onDisplayAnnotationTypeChange,N=v.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)(x.ZP.Group,{disabled:B,onChange:function(Q){return K(Q.target.value)},value:R,children:J.map(function(D){return(0,s.jsx)(x.ZP,{value:D,children:D},D)})})]}),(0,s.jsx)(S.Z.Group,{className:u.displayOptions,onChange:N,value:$,children:(0,s.jsx)(Z.Z,{direction:"vertical",children:m.map(function(D){return(0,s.jsx)(S.Z,{value:D,children:g(i.Ss[D])},D)})})})]}),children:g("dataset.detail.displayOptions")})},t=h},87615:function(se,A,e){e.d(A,{Z:function(){return h}});var Y=e(58757),x=e(38904),S=e(10852),Z=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(f){var v=f.data,E=f.multiple,g=f.type,J=g===void 0?"primary":g,B=f.ghost,R=B===void 0?!0:B,m=f.value,$=f.filterOptionValue,K=f.filterOptionName,N=f.onChange,D=f.className,Q=f.children,q=f.customOverlay,F=E?x.Z:S.ZP,a=function(b){N&&N(E?b:b.target.value)};return(0,i.jsx)(Z.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:m,children:(0,i.jsx)(u.Z,{direction:"vertical",children:v==null?void 0:v.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:R,children:[Q,(0,i.jsx)(V.Z,{})]})})},h=s},77589:function(se,A,e){e.d(A,{Z:function(){return v}});var Y=e(58757),x=e(38904),S=e(57414),Z=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),h=e(53357),t=e(35667),f=function(g){var J=(0,h.bU)(),B=J.localeText,R=g.showMatting,m=g.showKeyPoints,$=g.isTiledDiff,K=g.labels,N=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")}),!R&&(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)(x.Z.Group,{onChange:q,value:N,className:o.options,children:(0,t.jsx)(S.Z,{direction:"vertical",children:K.map(function(C,b){var _=(0,s.iE)(C.id,N,$),oe=_.strokeDash,ne=_.lineWidth,he=_.colorAplha;return(0,t.jsxs)("div",{className:o.optionRow,children:[(0,t.jsx)(x.Z,{value:C.id,className:o.checkbox,disabled:!N.includes(C.id)&&N.length>=i.JQ.length,children:C.name}),!R&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(Z.Z,{tooltip:{open:!0,prefixCls:"slider-tooltip",getPopupContainer:function(){return document.getElementById("labelsPanel")}},className:o.slider,range:!0,min:0,max:1,value:C.confidenceRange,step:.01,onChange:function(ye){return F(b,ye)},disabled:C.source!==i.$j.pred}),(0,t.jsx)("div",{style:{width:"100px",marginLeft:"40px"},children:N.includes(C.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")}),m&&(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(he,")")}),(0,t.jsx)("circle",{cx:70,cy:5,r:3,stroke:"black",strokeWidth:1,fill:"rgba(133, 208, 252, ".concat(he,")")})]})]})})]})]},C.id)})})})]}),!R&&!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(C){return(0,t.jsx)(u.ZP,{value:C,children:B(C)},C)})})})]}),children:B("dataset.detail.labelSets")})},v=f},10666:function(se,A,e){e.r(A),e.d(A,{default:function(){return Ve}});var Y=e(24454),x=e.n(Y),S=e(56592),Z=e.n(S),u=e(58757),o=e(97375),V=e(9457),W=e(61845),P=e(37617),i=e(79233),s=e(6233),h=e.n(s),t=e(12562),f=e(92183),v=e(60698),E={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=E,J=e(17202),B=function(p,d){return u.createElement(J.Z,(0,v.Z)({},p,{ref:d,icon:g}))},R=u.forwardRef(B),m=e(76180),$=e(23707),K=e(51204),N=e(77589),D=e(85205),Q=e(2258),q=e(53357),F={fixMenu:"fixMenu___sFkoc",filter:"filter___YLCNA",rightFilters:"rightFilters___ciVMw",backBtn:"backBtn___czLrv",dropBtn:"dropBtn___dmpsD"},a=e(35667),C=function(){var p=(0,q.bU)(),d=p.localeText,O=(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=O.filters,M=O.filterValues,c=O.comparisons,L=O.isTiledDiff,H=O.cloumnCount,T=(0,o.useModel)("dataset.filters"),j=T.onCategoryChange,k=T.onDisplayOptionsChange,z=T.onDisplayAnnotationTypeChange,te=T.onLabelsChange,w=T.onLabelConfidenceChange,re=T.onLabelsDiffModeChange,de=T.onColumnCountChange,G=(0,o.useModel)("dataset.comparisons"),ce=G.openAnalysisModal,ee=r.labels,ue=M.selectedLabelIds,pe=M.displayAnnotationType===m.JJ.Matting,le=M.displayAnnotationType===m.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)(f.Z,{}),type:"text",className:F.backBtn,onClick:function(){return(0,$.yS)("/dataset")}}),(0,a.jsx)(K.Z,{categoryId:M.categoryId,categories:r.categories,onCategoryChange:j})]}),(0,a.jsxs)("div",{className:F.rightFilters,children:[c?null:(0,a.jsx)(N.Z,{showMatting:pe,showKeyPoints:le,isTiledDiff:L,labels:ee,selectedLabelIds:ue,diffMode:M.diffMode,onLabelsChange:te,onLabelConfidenceChange:w,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)(R,{}),d("dataset.detail.analysis")]}),!L&&(0,a.jsx)(Q.ii,{cloumnCount:H,onColumnCountChange:de})]})]})},b=C,_=e(88205),oe=e.n(_),ne=e(84045),he=e(62109),me=e(59504),ye=e(10852),ie=e(38904),Se=e(94706),Me=e(87615),y={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"},Le=e(41260),Ne=function(){var p,d,O=(0,q.bU)(),r=O.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,H=(0,u.useState)(void 0),T=oe()(H,2),j=T[0],k=T[1],z=(0,o.useModel)("dataset.comparisons"),te=z.showAnalysisModal,w=z.closeAnalysisModal,re=z.compareLabelSet,de=z.exitComparisons,G=z.onFilterComparisonsPrecision,ce=L.length>0&&L.find(function(n){return n.source===m.$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===m.$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}}),pe=function(l){k(l)},le=function(){if(!ce){ne.ZP.warning(r("dataset.toAnalysis.unSupportWarn"));return}var l=L.find(function(Ce){return Ce.id===j});if(!j||!l){ne.ZP.warning(r("dataset.toAnalysis.unSelectWarn"));return}w(),re(l)};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(he.Z,{title:r("dataset.detail.analModal.title"),footer:[(0,a.jsx)(t.ZP,{type:"primary",onClick:le,children:r("dataset.detail.analModal.btn")},"analysis")],open:te,onCancel:w,children:(0,a.jsxs)("div",{className:y.anlysisModal,children:[(0,a.jsx)("div",{children:ee==null?void 0:ee.name}),(0,a.jsx)("div",{className:y.vs,children:"vs"}),(0,a.jsx)(me.Z,{placeholder:r("dataset.detail.analModal.select"),style:{width:240},onChange:pe,options:ue,value:j})]})}),c&&(0,a.jsxs)("div",{className:y.tools,children:[(0,a.jsxs)("div",{className:y.toolsBar,children:[(0,a.jsxs)("div",{className:y.selector,children:[(0,a.jsxs)("div",{className:y.title,children:[r("dataset.detail.analModal.sort")," :"]}),(0,a.jsx)(Me.Z,{data:m.J1,value:c.orderBy,filterOptionName:function(l){return l.name},filterOptionValue:function(l){return l.value},onChange:function(l){return G("orderBy",l)},ghost:!1,type:"default",children:(p=m.J1.find(function(n){return n.value===c.orderBy}))===null||p===void 0?void 0:p.name}),(0,a.jsx)("span",{className:y.text,children:"with Confidence Precision"}),(0,a.jsxs)(Me.Z,{data:c.label.comparePrecisions,value:c.precision,filterOptionName:function(l){return"".concat(l.precision," (Threshold: ").concat((0,Le.O)(l.threshold),")")},filterOptionValue:function(l){return l.precision},onChange:function(l){return G("precision",l)},ghost:!1,type:"default",children:[c.precision," (Threshold: ".concat((0,Le.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:y.vsText,children:["GroundTruch ",(0,a.jsx)("span",{className:y.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:y.displayBar,children:[(0,a.jsxs)("div",{className:y.title,children:[r("dataset.detail.analModal.display")," :"]}),(0,a.jsx)(ye.ZP.Group,{options:m.Wp.map(function(n){return{label:"".concat(r(n)).concat(r("dataset.detail.analModal.diff")),value:n}}),onChange:function(l){return G("diffMode",l.target.value)},value:c.diffMode,optionType:"button"}),(0,a.jsx)("div",{className:y.splitLine}),(0,a.jsxs)(ie.Z.Group,{value:c.displays,onChange:function(l){return G("displays",l)},children:[(0,a.jsx)("span",{className:y.optionsTitle,children:"GroundTruth :"}),(0,a.jsx)(ie.Z,{value:m.$j.gt,children:"Matched"}),(0,a.jsx)(ie.Z,{value:m.BP.fn,children:"FN"}),(0,a.jsx)("div",{className:y.splitLineLeft}),(0,a.jsx)("span",{className:y.optionsTitle,children:"Prediction :"}),(0,a.jsx)(ie.Z,{value:m.$j.pred,children:"Matched"}),(0,a.jsx)(ie.Z,{value:m.BP.fp,children:"FP"})]}),(0,a.jsx)("div",{className:y.splitLineLeft}),(0,a.jsxs)("div",{className:y.scoreSlider,children:["Confidence threshold:",(0,a.jsx)(Se.Z,{className:y.slider,min:0,max:1,value:c.score,step:.01,onChange:function(l){return G("score",l)}})]})]})]})]})},be=Ne,Oe=e(74595),xe={toolsBar:"toolsBar___YbUXd",name:"name___QVqrS",vs:"vs___xuWpM"},Ie=function(p){var d=p.itemWidth,O=(0,o.useModel)("dataset.common",function(j){return{selectedLabelIds:j.pageState.filterValues.selectedLabelIds,displayAnnotationType:j.pageState.filterValues.displayAnnotationType,labels:j.pageData.filters.labels,comparisons:j.pageState.comparisons,isTiledDiff:j.isTiledDiff}}),r=O.comparisons,M=O.isTiledDiff,c=O.labels,L=O.selectedLabelIds,H=O.displayAnnotationType;if(r||L.length<=1)return null;var T=(0,Oe.WR)(c,L,H);return(0,a.jsx)("div",{className:xe.toolsBar,children:T.map(function(j,k){return(0,a.jsxs)(u.Fragment,{children:[!M&&k>0&&(0,a.jsx)("span",{className:xe.vs,children:"VS"}),(0,a.jsx)("span",{className:xe.name,style:{width:M&&k+1!==T.length?d:"auto"},children:j.name})]},j.id)})})},Ae=Ie,Te=e(15979),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"},Be=function(){var p=(0,o.useModel)("dataset.common"),d=p.pageState,O=p.onInitPageState,r=p.pageData,M=p.loading,c=p.displayLabelIds,L=p.isTiledDiff,H=p.displayOptionsResult,T=p.onPageContentLoaded,j=p.onPreviewIndexChange,k=p.exitPreview,z=p.displayObjectsFilter,te=p.getCustomObjectStyles,w=(0,o.useModel)("Dataset.model"),re=w.onPageDidMount,de=w.onPageWillUnmount,G=w.clickItem,ce=w.doubleClickItem,ee=w.onPageChange,ue=w.onPageSizeChange,pe=(0,o.useModel)("global"),le=pe.layoutInnerWidth,n=d.cloumnCount,l=d.isSingleAnnotation,Ce=d.filterValues,je=d.flagTools;(0,V._)({onPageDidMount:re,onPageWillUnmount:de,onInitPageState:O,pageState:d});var Pe=le?le-80:0,ve=(0,u.useMemo)(function(){return L?(0,Oe.JC)(r.imgList,c,Ce.displayAnnotationType):r.imgList},[L,r.imgList,c]),De=L?ve.length/(r.imgList.length||1):n,ae=Pe?(Pe-16*(De-1))/(De||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)(be,{}),(0,a.jsx)(Ae,{itemWidth:ae+16})]})},fixedHeader:!0,children:[(0,a.jsx)("div",{className:X.container,children:(0,a.jsx)(P.Z,{loading:M,children:ve.length?(0,a.jsx)(h(),{options:{gutter:16,horizontalOrder:!0,transitionDuration:0},onImagesLoaded:function(){return T()},enableResizableChildren:!0,children:ve.map(function(I,ge){return(0,a.jsxs)("div",{className:X.item,style:{width:ae},onClick:function(){return G(ge)},onDoubleClick:function(){return ce(ge)},children:[(0,a.jsx)("div",{className:X.itemImgWrap,style:{width:ae,height:je?ae*3/4:"auto"},children:(0,a.jsx)(Te.D5,{categories:r.filters.categories,data:I,wrapWidth:ae,wrapHeight:je?ae*3/4:void 0,minHeight:ae*3/4,objectsFilter:z,getCustomObjectStyles:te,displayOptionsResult:H,displayAnnotationType:d.filterValues.displayAnnotationType})}),I.flag>0&&(0,a.jsx)(Ze.r,{fill:m.a5[I.flag],className:X.flagIcon}),H.showImgDesc&&(0,a.jsxs)("div",{className:X.label,children:[" ",I.caption||I.desc," "]}),je&&I.selected?(0,a.jsx)("div",{className:X.itemSelectedMask}):null]},"".concat(I.id,"_").concat(ge))})}):null})}),!M&&(0,a.jsx)(Q.ZJ,{current:d.page,size:d.pageSize,total:r.total,onPageChange:ee,onPageSizeChange:ue}),(0,a.jsx)(Te.j5,{visible:d.previewIndex>=0&&!l,categories:r.filters.categories,list:ve,current:d.previewIndex,onCancel:k,onNext:Z()(x()().mark(function I(){return x()().wrap(function(U){for(;;)switch(U.prev=U.next){case 0:d.previewIndex0&&j(d.previewIndex-1);case 1:case"end":return U.stop()}},I)})),objectsFilter:z,getCustomObjectStyles:te,displayOptionsResult:H,displayAnnotationType:d.filterValues.displayAnnotationType}),r.screenLoading?(0,a.jsx)("div",{className:X.pageSpin,children:(0,a.jsx)(i.Z,{spinning:!0,tip:r.screenLoading})}):null]})},Ve=Be},4394:function(se,A,e){e.d(A,{r:function(){return W}});var Y=e(58757),x=Object.defineProperty,S=Object.getOwnPropertySymbols,Z=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable,o=(i,s,h)=>s in i?x(i,s,{enumerable:!0,configurable:!0,writable:!0,value:h}):i[s]=h,V=(i,s)=>{for(var h in s||(s={}))Z.call(s,h)&&o(i,h,s[h]);if(S)for(var h of S(s))u.call(s,h)&&o(i,h,s[h]);return i};const W=i=>Y.createElement("svg",V({viewBox:"0 0 16 16",fill:"#52C41A",xmlns:"http://www.w3.org/2000/svg"},i),Y.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__Dataset__index.cf791d40.async.js b/deepdataspace/server/static/p__Dataset__index.cf791d40.async.js new file mode 100644 index 0000000..6dd5225 --- /dev/null +++ b/deepdataspace/server/static/p__Dataset__index.cf791d40.async.js @@ -0,0 +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(9457),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(2258),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(9644),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.32268c0e.async.js b/deepdataspace/server/static/p__Lab__FlagTool__index.32268c0e.async.js new file mode 100644 index 0000000..3e2522b --- /dev/null +++ b/deepdataspace/server/static/p__Lab__FlagTool__index.32268c0e.async.js @@ -0,0 +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(9457),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(2258),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(9644),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__Lab__FlagTool__index.4fb1726e.async.js b/deepdataspace/server/static/p__Lab__FlagTool__index.4fb1726e.async.js deleted file mode 100644 index ff360b1..0000000 --- a/deepdataspace/server/static/p__Lab__FlagTool__index.4fb1726e.async.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[397],{51204:function(_,M,e){e.d(M,{Z:function(){return I}});var V=e(58757),p=e(59504),j=e(53357),P={wrapper:"wrapper___FtwXk"},g=e(35667),i=function(y){var o=(0,j.bU)(),t=o.localeText,u=y.categoryId,n=y.categories,v=y.onCategoryChange;return(0,g.jsxs)("div",{className:P.wrapper,children:[t("dataset.detail.category"),":",(0,g.jsx)(p.Z,{showSearch:!0,style:{width:"160px",marginLeft:"10px"},dropdownMatchSelectWidth:!1,placeholder:"Select a category",optionFilterProp:"children",value:u,onChange:v,filterOption:function(w,d){return d.children.toLowerCase().includes(w.toLowerCase())},getPopupContainer:function(){return document.getElementById("filterWrap")},children:n.map(function(l){return(0,g.jsx)(p.Z.Option,{value:l.id,children:l.name},l.id)})})]})},I=i},85205:function(_,M,e){e.d(M,{Z:function(){return n}});var V=e(58757),p=e(10852),j=e(38904),P=e(57414),g={dropBtn:"dropBtn___SYvIY",displayPanel:"displayPanel___JkzSB",objectTypeOption:"objectTypeOption___O6sJL",typeTitle:"typeTitle___l97pr",displayOptions:"displayOptions___NQVYA"},i=e(87615),I=e(87608),N=e.n(I),y=e(53357),o=e(76180),t=e(35667),u=function(l){var w=(0,y.bU)(),d=w.localeText,z=l.annotationTypes,L=l.disableChangeType,Z=l.displayAnnotationType,b=l.displayOptions,a=l.displayOptionsValue,E=l.onDisplayAnnotationTypeChange,O=l.onDisplayOptionsChange;return(0,t.jsx)(i.Z,{className:g.dropBtn,customOverlay:(0,t.jsxs)("div",{className:N()(g.displayPanel),children:[z.length>0&&(0,t.jsxs)("div",{className:g.objectTypeOption,children:[(0,t.jsxs)("span",{className:g.typeTitle,children:[d("dataset.detail.displayType"),":"]}),(0,t.jsx)(p.ZP.Group,{disabled:L,onChange:function(U){return E(U.target.value)},value:Z,children:z.map(function(C){return(0,t.jsx)(p.ZP,{value:C,children:C},C)})})]}),(0,t.jsx)(j.Z.Group,{className:g.displayOptions,onChange:O,value:a,children:(0,t.jsx)(P.Z,{direction:"vertical",children:b.map(function(C){return(0,t.jsx)(j.Z,{value:C,children:d(o.Ss[C])},C)})})})]}),children:d("dataset.detail.displayOptions")})},n=u},87615:function(_,M,e){e.d(M,{Z:function(){return u}});var V=e(58757),p=e(38904),j=e(10852),P=e(73267),g=e(57414),i=e(12562),I=e(10130),N=e(53357),y={dropdownSelector:"dropdownSelector___gvMFq",dropdownWrap:"dropdownWrap___WWYlz",dropdownBox:"dropdownBox___lpUVf"},o=e(35667),t=function(v){var l=v.data,w=v.multiple,d=v.type,z=d===void 0?"primary":d,L=v.ghost,Z=L===void 0?!0:L,b=v.value,a=v.filterOptionValue,E=v.filterOptionName,O=v.onChange,C=v.className,U=v.children,Q=v.customOverlay,X=w?p.Z:j.ZP,ee=function(S){O&&O(w?S:S.target.value)};return(0,o.jsx)(P.Z,{overlayClassName:y.dropdownSelector,trigger:["click"],dropdownRender:function(){return(0,o.jsx)("div",{className:y.dropdownWrap,children:Q||(0,o.jsx)(X.Group,{className:y.dropdownBox,onChange:ee,value:b,children:(0,o.jsx)(g.Z,{direction:"vertical",children:l==null?void 0:l.map(function(S,Y){var $=a?a(S):S,A=E?E(S):S;return(0,o.jsx)(X,{value:$,children:(0,N._w)(A)},Y)})})})})},children:(0,o.jsxs)(i.ZP,{className:C,type:z,ghost:Z,children:[U,(0,o.jsx)(I.Z,{})]})})},u=t},77589:function(_,M,e){e.d(M,{Z:function(){return l}});var V=e(58757),p=e(38904),j=e(57414),P=e(94706),g=e(10852),i={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),N=e(87608),y=e.n(N),o=e(76180),t=e(74595),u=e(53357),n=e(35667),v=function(d){var z=(0,u.bU)(),L=z.localeText,Z=d.showMatting,b=d.showKeyPoints,a=d.isTiledDiff,E=d.labels,O=d.selectedLabelIds,C=d.diffMode,U=d.disableChangeDiffMode,Q=d.onLabelsChange,X=d.onLabelConfidenceChange,ee=d.onLabelsDiffModeChange;return(0,n.jsx)(I.Z,{customOverlay:(0,n.jsxs)("div",{className:y()(i.labelsPanel),id:"labelsPanel",children:[(0,n.jsxs)("div",{className:i.labels,children:[(0,n.jsxs)("div",{className:i.labelTitle,children:[(0,n.jsx)("div",{style:{width:"240px",paddingLeft:"24px"},children:L("dataset.detail.labelSetsName")}),!Z&&(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)(p.Z.Group,{onChange:Q,value:O,className:i.options,children:(0,n.jsx)(j.Z,{direction:"vertical",children:E.map(function(f,S){var Y=(0,t.iE)(f.id,O,a),$=Y.strokeDash,A=Y.lineWidth,B=Y.colorAplha;return(0,n.jsxs)("div",{className:i.optionRow,children:[(0,n.jsx)(p.Z,{value:f.id,className:i.checkbox,disabled:!O.includes(f.id)&&O.length>=o.JQ.length,children:f.name}),!Z&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(P.Z,{tooltip:{open:!0,prefixCls:"slider-tooltip",getPopupContainer:function(){return document.getElementById("labelsPanel")}},className:i.slider,range:!0,min:0,max:1,value:f.confidenceRange,step:.01,onChange:function(ie){return X(S,ie)},disabled:f.source!==o.$j.pred}),(0,n.jsx)("div",{style:{width:"100px",marginLeft:"40px"},children:O.includes(f.id)&&(0,n.jsxs)("svg",{className:i.lineStyle,children:[(0,n.jsx)("line",{x1:5,y1:5,x2:70,y2:5,strokeDasharray:$.join(","),strokeWidth:"".concat(A,"pt")}),b&&(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(B,")")}),(0,n.jsx)("circle",{cx:70,cy:5,r:3,stroke:"black",strokeWidth:1,fill:"rgba(133, 208, 252, ".concat(B,")")})]})]})})]})]},f.id)})})})]}),!Z&&!U&&(0,n.jsx)("div",{className:i.modes,children:(0,n.jsx)(g.ZP.Group,{onChange:function(S){return ee(S.target.value)},value:C,children:o.Wp.map(function(f){return(0,n.jsx)(g.ZP,{value:f,children:L(f)},f)})})})]}),children:L("dataset.detail.labelSets")})},l=v},14481:function(_,M,e){e.r(M),e.d(M,{default:function(){return je}});var V=e(24454),p=e.n(V),j=e(56592),P=e.n(j),g=e(58757),i=e(97375),I=e(9457),N=e(61845),y=e(37617),o=e(79233),t=e(6233),u=e.n(t),n=e(12562),v=e(92183),l=e(76180),w=e(23707),d=e(51204),z=e(77589),L=e(85205),Z=e(2258),b={fixMenu:"fixMenu___3BTI4",filter:"filter___f53Ll",rightFilters:"rightFilters___PcqUj",backBtn:"backBtn___zqjXV",dropBtn:"dropBtn___f3XQO"},a=e(35667),E=function(){var r=(0,i.useModel)("dataset.common",function(J){return{isTiledDiff:J.isTiledDiff,cloumnCount:J.pageState.cloumnCount,filters:J.pageData.filters,filterValues:J.pageState.filterValues,comparisons:J.pageState.comparisons}}),s=r.filters,h=r.filterValues,x=r.comparisons,G=r.isTiledDiff,F=r.cloumnCount,T=(0,i.useModel)("dataset.filters"),K=T.onCategoryChange,ae=T.onDisplayOptionsChange,k=T.onDisplayAnnotationTypeChange,ne=T.onLabelsChange,c=T.onLabelConfidenceChange,m=T.onLabelsDiffModeChange,H=T.onColumnCountChange,de=s.labels,ce=h.selectedLabelIds,ge=h.displayAnnotationType===l.JJ.Matting,ue=h.displayAnnotationType===l.JJ.KeyPoints;return(0,a.jsxs)("div",{className:b.fixMenu,id:"filterWrap",children:[(0,a.jsxs)("div",{className:b.filter,children:[(0,a.jsx)(n.ZP,{icon:(0,a.jsx)(v.Z,{}),type:"text",className:b.backBtn,onClick:function(){return(0,w.yS)("/dataset")}}),(0,a.jsx)(d.Z,{categoryId:h.categoryId,categories:s.categories,onCategoryChange:K})]}),(0,a.jsxs)("div",{className:b.rightFilters,children:[(0,a.jsx)(z.Z,{showMatting:ge,showKeyPoints:ue,isTiledDiff:G,labels:de,selectedLabelIds:ce,diffMode:l.uP.Overlay,disableChangeDiffMode:!0,onLabelsChange:ne,onLabelConfidenceChange:c,onLabelsDiffModeChange:m}),(0,a.jsx)(L.Z,{annotationTypes:s.annotationTypes,disableChangeType:!!x,displayAnnotationType:h.displayAnnotationType,displayOptions:s.displayOptions,displayOptionsValue:h.displayOptions,onDisplayAnnotationTypeChange:k,onDisplayOptionsChange:ae}),!G&&(0,a.jsx)(Z.ii,{cloumnCount:F,onColumnCountChange:H})]})]})},O=E,C=e(38904),U=e(74820),Q=e(60698),X={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"},ee=X,f=e(17202),S=function(r,s){return g.createElement(f.Z,(0,Q.Z)({},r,{ref:s,icon:ee}))},Y=g.forwardRef(S),$=e(4394),A=e(53357),B={toolsBar:"toolsBar___BaJ18",selector:"selector___oykI4",antiBtn:"antiBtn___BMNv_",flagTip:"flagTip___jQeUr",flag:"flag___AuDg7",flagBtn:"flagBtn___kI5rw",rightContent:"rightContent___J7I4T",lineSplit:"lineSplit___cRXnA"},se=e(87615),ie=function(){var r,s=(0,i.useModel)("dataset.common",function(c){var m;return{pageSize:c.pageState.pageSize,flagStatus:(m=c.pageState.flagTools)===null||m===void 0?void 0:m.flagStatus,flagTools:c.pageState.flagTools&&c.pageData.flagTools}}),h=s.flagTools,x=s.flagStatus,G=s.pageSize,F=(0,i.useModel)("dataset.flag"),T=F.onChangeFlagStatus,K=F.changeSelectAll,ae=F.antiSelect,k=F.saveFlag,ne=F.updateOrder;return h?(0,a.jsxs)("div",{className:B.toolsBar,children:[(0,a.jsxs)("div",{className:B.selector,children:[(0,a.jsx)(C.Z,{indeterminate:h.count>0&&h.count!==G,checked:(h==null?void 0:h.count)===G,onChange:K,children:h.count===0?(0,a.jsx)(A.Og,{id:"lab.toolsBar.selectAll"}):(0,a.jsx)(A.Og,{id:"lab.toolsBar.selectSome",values:{num:h.count}})}),(0,a.jsx)(n.ZP,{onClick:function(){return ae()},className:B.antiBtn,children:(0,a.jsx)(A.Og,{id:"lab.toolsBar.selectInvert"})}),(0,a.jsxs)(se.Z,{data:l.j3,value:x,filterOptionName:function(m){return m.name},filterOptionValue:function(m){return m.value},onChange:function(m){return T(m)},ghost:!1,type:"default",className:B.antiBtn,children:[(0,a.jsx)(A.Og,{id:"lab.toolsBar.filter"})," :"," ",(r=l.j3.find(function(c){return c.value===x}))===null||r===void 0?void 0:r.name]}),(0,a.jsxs)("div",{className:B.flagTip,children:[(0,a.jsx)(A.Og,{id:"lab.toolsBar.saveAs"}),"\uFF1A"]}),l.YC.map(function(c){return(0,a.jsx)(U.Z,{placement:"bottom",title:c.tip,children:(0,a.jsx)(n.ZP,{ghost:!0,onClick:function(){return k(c.value)},className:B.flagBtn,style:{borderColor:l.a5[c.value],opacity:h.count<=0?.5:1},icon:(0,a.jsx)($.r,{fill:l.a5[c.value]})})},c.value)})]}),(0,a.jsx)("div",{className:B.rightContent,children:(0,a.jsxs)(n.ZP,{onClick:ne,children:[(0,a.jsx)(Y,{}),(0,a.jsx)(A.Og,{id:"lab.toolsBar.updateOrder"})]})})]}):null},me=ie,he=e(15979),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"},Ce=e(95073),xe=function(){var r=(0,i.useModel)("dataset.common"),s=r.pageState,h=r.onInitPageState,x=r.pageData,G=r.loading,F=r.displayLabelIds,T=r.isTiledDiff,K=r.displayOptionsResult,ae=r.onPageContentLoaded,k=r.onPreviewIndexChange,ne=r.exitPreview,c=r.displayObjectsFilter,m=r.getCustomObjectStyles,H=(0,i.useModel)("Lab.FlagTool.model"),de=H.onPageDidMount,ce=H.onPageWillUnmount,ge=H.clickItem,ue=H.doubleClickItem,J=H.onPageChange,Oe=H.onPageSizeChange,Se=s.cloumnCount,Te=s.isSingleAnnotation,De=s.filterValues,ve=s.flagTools;(0,I._)({onPageDidMount:de,onPageWillUnmount:ce,onInitPageState:h,pageState:s});var oe=(0,Ce.Z)(function(){return document.querySelector(".ant-pro-page-container")}),pe=oe!=null&&oe.width?oe.width-80:0,te=(0,g.useMemo)(function(){return T?(0,ye.JC)(x.imgList,F,De.displayAnnotationType):x.imgList},[T,x.imgList,F]),fe=T?te.length/(x.imgList.length||1):Se,q=pe?(pe-16*(fe-1))/(fe||1):0;return(0,a.jsxs)(N._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:te.length?(0,a.jsx)(u(),{options:{gutter:16,horizontalOrder:!0,transitionDuration:0},onImagesLoaded:function(){return ae()},children:te.map(function(D,le){return(0,a.jsxs)("div",{className:R.item,style:{width:q},onClick:function(){return ge(le)},onDoubleClick:function(){return ue(le)},children:[(0,a.jsx)("div",{className:R.itemImgWrap,style:{width:q,height:ve?q*3/4:"auto"},children:(0,a.jsx)(he.D5,{categories:x.filters.categories,data:D,wrapWidth:q,wrapHeight:ve?q*3/4:void 0,minHeight:q*3/4,objectsFilter:c,getCustomObjectStyles:m,displayOptionsResult:K,displayAnnotationType:s.filterValues.displayAnnotationType})}),D.flag>0&&(0,a.jsx)($.r,{fill:l.a5[D.flag],className:R.flagIcon}),K.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(le))})}):null})}),!G&&(0,a.jsx)(Z.ZJ,{current:s.page,size:s.pageSize,total:x.total,onPageChange:J,onPageSizeChange:Oe}),(0,a.jsx)(he.j5,{visible:s.previewIndex>=0&&!Te,categories:x.filters.categories,list:te,current:s.previewIndex,onCancel:ne,onNext:P()(p()().mark(function D(){return p()().wrap(function(W){for(;;)switch(W.prev=W.next){case 0:s.previewIndex0&&k(s.previewIndex-1);case 1:case"end":return W.stop()}},D)})),objectsFilter:c,getCustomObjectStyles:m,displayOptionsResult:K,displayAnnotationType:s.filterValues.displayAnnotationType}),x.screenLoading?(0,a.jsx)("div",{className:R.pageSpin,children:(0,a.jsx)(o.Z,{spinning:!0,tip:x.screenLoading})}):null]})},je=xe},4394:function(_,M,e){e.d(M,{r:function(){return N}});var V=e(58757),p=Object.defineProperty,j=Object.getOwnPropertySymbols,P=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable,i=(o,t,u)=>t in o?p(o,t,{enumerable:!0,configurable:!0,writable:!0,value:u}):o[t]=u,I=(o,t)=>{for(var u in t||(t={}))P.call(t,u)&&i(o,u,t[u]);if(j)for(var u of j(t))g.call(t,u)&&i(o,u,t[u]);return o};const N=o=>V.createElement("svg",I({viewBox:"0 0 16 16",fill:"#52C41A",xmlns:"http://www.w3.org/2000/svg"},o),V.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.03e0e895.async.js b/deepdataspace/server/static/p__Project__Workspace__index.03e0e895.async.js deleted file mode 100644 index ee80338..0000000 --- a/deepdataspace/server/static/p__Project__Workspace__index.03e0e895.async.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[914],{87615:function(oe,S,e){e.d(S,{Z:function(){return T}});var p=e(58757),R=e(38904),y=e(10852),M=e(73267),d=e(57414),b=e(12562),L=e(10130),O=e(53357),j={dropdownSelector:"dropdownSelector___gvMFq",dropdownWrap:"dropdownWrap___WWYlz",dropdownBox:"dropdownBox___lpUVf"},o=e(35667),D=function(i){var s=i.data,w=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,Y=i.className,x=i.children,P=i.customOverlay,u=w?R.Z:y.ZP,a=function(n){f&&f(w?n:n.target.value)};return(0,o.jsx)(M.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,O._w)(z)},B)})})})})},children:(0,o.jsxs)(b.ZP,{className:Y,type:m,ghost:V,children:[x,(0,o.jsx)(L.Z,{})]})})},T=D},61470:function(oe,S,e){e.r(S),e.d(S,{default:function(){return f}});var p=e(58757),R=e(97375),y=e(9457),M=e(61845),d=e(12562),b=e(16951),L=e(37617),O=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),G=e(93059),i=e(15979),s=e(35459),w=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,ne=a.projectId,l=a.curRole,h=a.userRoles,re=a.tabItems,A=a.labelImages,F=a.isEditorVisible,ie=a.onStatusTabChange,le=a.onRoleChange,se=a.clickItem,de=a.loadMore,ce=a.onExitEditor,ue=a.onNextImage,ve=a.onPrevImage,ge=a.onLabelSave,me=a.onReviewResult,X=a.onEnterEdit,J=a.onStartLabel,Q=a.onStartRework,q=a.onStartReview;(0,y._)({onInitPageState:z,pageState:n});var he=(0,$.bU)(),v=he.localeText,pe=(0,y.w)(),je=pe.height,Z=(0,C.Z)(function(){return document.querySelector(".ant-pro-page-container")}),_=Z!=null&&Z.width?Z.width-80:0,fe=p.useRef(null),I=5,W=_?(_-16*(I-1))/(I||1):0,K=W*3/4,ee=je-46,xe=function(c){Math.floor(c.currentTarget.scrollHeight-c.currentTarget.scrollTop)===Math.floor(ee)&&de()},U=(0,p.useMemo)(function(){return(0,D.chunk)(A,I).map(function(E,c){return{index:c,lineImgs:E}})},[r.list]),Se=(0,p.useMemo)(function(){return r.editorMode!==i.je.View||n.taskStatus!==s.gZ.Working?[]:u(h,m.Oc.StartLabel)?n.status===s.j$.Labeling?[(0,t.jsx)(d.ZP,{type:"primary",onClick:J,children:v("proj.workspace.eTask.startLabel")},"label")]:n.status===s.j$.Reviewing?[(0,t.jsx)(d.ZP,{type:"primary",onClick:X,children:v("proj.workspace.eTask.edit")},"edit")]:n.status===s.j$.Rejected?[(0,t.jsx)(d.ZP,{type:"primary",onClick:Q,children:v("proj.workspace.eTask.startRework")},"rework")]:[]:u(h,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,h]);return(0,t.jsxs)(M._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)(w.Z,{}),type:"text",className:o.backBtn,onClick:function(){return(0,V.yS)("/project/".concat(ne))}}),(0,t.jsx)(b.Z,{className:o.tabs,activeKey:n.status,onChange:ie,items:re,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(h,m.Oc.StartLabel)&&(0,t.jsx)(d.ZP,{type:"primary",className:o.btn,onClick:J,children:v("proj.workspace.eProj.startLabeling")}),l&&(l==null?void 0:l.reviewNumRejected)>0&&n.taskStatus===s.gZ.Working&&u(h,m.Oc.StartLabel)&&(0,t.jsx)(d.ZP,{type:"primary",className:o.btn,onClick:Q,children:v("proj.workspace.eProj.startRework")}),l&&(l==null?void 0:l.reviewNumWaiting)>0&&n.taskStatus===s.gZ.Working&&u(h,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:le,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)(L.Z,{loading:B,className:o.list,children:U.length>0&&(0,t.jsx)(j.Z,{ref:fe,data:U,height:ee,itemHeight:K+16,itemKey:"index",onScroll:xe,children:function(c,g){return(0,t.jsxs)(p.Fragment,{children:[(0,t.jsx)("div",{className:o.line,children:c.lineImgs.map(function(te,ae){return(0,t.jsx)("div",{className:o.item,style:{width:W},onClick:function(){return se(g*I+ae)},children:(0,t.jsx)("div",{className:o.itemImgWrap,style:{width:W,height:K},children:(0,t.jsx)(i.D5,{categories:r.categoryList,data:te,wrapWidth:W,wrapHeight:K})})},"".concat(te.id,"_").concat(ae))})}),g===U.length-1&&r.loadingImagesType===G.D.More&&(0,t.jsx)(O.Z,{className:o.bottomSpin})]},g)}})}),F&&(0,t.jsx)("div",{className:o.editor,children:(0,t.jsx)(i.kl,{isSeperate:!1,mode:r.editorMode,visible:F,categories:r.categoryList,list:A,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:Se,onCancel:ce,onSave:ge,onReviewResult:me,onEnterEdit:X,onNext:ue,onPrev:ve})})]})},f=k}}]); diff --git a/deepdataspace/server/static/p__Project__Workspace__index.153c0fa4.async.js b/deepdataspace/server/static/p__Project__Workspace__index.153c0fa4.async.js new file mode 100644 index 0000000..6ce2ab7 --- /dev/null +++ b/deepdataspace/server/static/p__Project__Workspace__index.153c0fa4.async.js @@ -0,0 +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(9457),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(9644),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.26db4b74.css b/deepdataspace/server/static/umi.26db4b74.css new file mode 100644 index 0000000..90c4dbc --- /dev/null +++ b/deepdataspace/server/static/umi.26db4b74.css @@ -0,0 +1,3 @@ +*{margin:0;padding:0;box-sizing:border-box}body{background:#f5f5f5;overflow:overlay}#root .ant-page-header{background-color:#fff}#root .ant-pro .ant-layout-header.ant-pro-layout-header-fixed-header{padding:0 44px;background-color:#fff;border-bottom:1px solid #f0f0f0}#root .ant-pro-page-container-affix .ant-affix{top:0!important}#root .ant-pro-top-nav-header-main{padding-inline-start:0}#root .ant-pro-top-nav-header-logo>*:first-child>img{height:40px}#root .ant-image-preview-mask{z-index:900!important}#root .ant-image-preview-wrap{z-index:901!important}#root .ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding:0!important}#root .ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding:0!important}#root .ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,#root .ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{cursor:pointer!important}#root .ant-pro .ant-pro-layout .ant-pro-layout-content{margin-block:0;margin-inline:0}#root .ant-table-tbody>tr>td>.ant-space{flex-wrap:wrap}#root .ant-table-pagination.ant-pagination{margin:16px 0}html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type="range"]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}.dds-lang-selector{height:34px;padding:4px 8px}.dds-lang-selector div{position:relative;width:1.2em;height:1.2em}.dds-lang-selector .cur-lang{position:absolute;font-size:1.2em;line-height:1;left:-5%;top:0;transform:scale(.7);transform-origin:0 0;z-index:1}.dds-lang-selector .cur-lang-light{color:#fff;border:1px solid rgba(0,0,0,.88);background-color:#000000e0}.dds-lang-selector .cur-lang-dark{color:#000;border:1px solid rgba(255,255,255,.88);background-color:#ffffffe0}.dds-lang-selector .change-lang{position:absolute;font-size:1.2em;line-height:1;right:-5%;bottom:0;transform:scale(.5);transform-origin:100% 100%;z-index:0}.dds-lang-selector .change-lang-light{color:#000000e0;border:1px solid rgba(0,0,0,.88)}.dds-lang-selector .change-lang-dark{color:#ffffffe0;border:1px solid rgba(255,255,255,.88)}.dds-column-settings-panel{display:flex;flex-direction:column;padding:0 16px 24px;background-color:#fff;border-radius:2px;outline:none;box-shadow:0 2px 8px #00000026;max-height:400px;overflow:scroll;scrollbar-width:none;-ms-overflow-style:none}.dds-column-settings-panel::-webkit-scrollbar{display:none}.dds-column-settings-panel .item-title{margin:24px 0;font-size:14px;line-height:22px;color:#000}.dds-column-settings-panel .item-content{display:flex;justify-content:center}.dds-column-settings-panel .slider{width:168px;margin-right:26px}.dds-column-settings-panel .num-box{display:flex;align-items:center;justify-content:center;width:94px;height:26px;border:1px solid #d9d9d9;box-shadow:0 2px #00000004;border-radius:2px 0 0 2px}.dds-column-settings-panel .num-box .num{margin:0 8px;width:32px;height:26px;line-height:26px;text-align:center;color:#262626;border:1px solid #d9d9d9}.dds-column-settings-panel .num-box svg{width:16px;height:16px;cursor:pointer}.dds-column-settings-btn{display:flex;justify-content:center;align-items:center;margin-left:16px;width:32px;height:32px;background:#f5f5f5;cursor:pointer}.dds-dynamic-pagination{position:absolute;bottom:0;left:0;margin:20px 0;width:100%;display:flex;justify-content:center}.dds-dynamic-pagination .pagesize-wrap{display:flex;align-items:center;justify-content:center;margin:0 16px}.dds-dynamic-pagination .pagesize-wrap .pagesize-label{color:#000000e0;font-size:14px}.dds-dynamic-pagination .pagesize-wrap .ant-input-number{margin-left:8px}.dds-annotator-objectlist{scrollbar-width:none;-ms-overflow-style:none}.dds-annotator-objectlist::-webkit-scrollbar{display:none}.dds-annotator-objectlist .ant-tabs{color:#ffffff80}.dds-annotator-objectlist .ant-tabs-tab+.ant-tabs-tab{margin:0}.dds-annotator-objectlist .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#fff}.dds-annotator-objectlist .ant-tabs-tab{padding:12px;margin:0;font-size:16px}.dds-annotator-objectlist .ant-tabs-ink-bar{background:transparent}.dds-annotator-objectlist .ant-tabs-nav{margin:0;position:sticky;top:0;z-index:1;background:#000}.dds-annotator-objectlist .ant-tabs-nav:before{display:none}.dds-annotator-objectlist .ant-collapse-item{scroll-margin:48px 0 0 0}.dds-annotator-objectlist .ant-list{color:#fff}.dds-annotator-objectlist .ant-list-item{padding:0;color:#fff}.dds-annotator-objectlist .objects-selector{width:144px;color:#fff;text-align:left;padding:0}.dds-annotator-objectlist .ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{color:#fff}.dds-annotator-objectlist .objects-select-popup{background:#050505;color:#fff;border-radius:1px;padding:0;margin-top:-10px}.dds-annotator-objectlist .objects-select-popup .ant-select-item{color:#fff;text-align:left}.dds-annotator-objectlist .objects-select-popup .ant-select-item-option-active:not(.ant-select-item-option-disabled){background-color:#4c4c4c}.dds-annotator-objectlist .objects-select-popup .ant-select-item-option-selected:not(.ant-select-item-option-disabled){color:#fff;font-weight:600;background-color:#050505}.dds-annotator-objectlist .ant-select-multiple .ant-select-selection-item{background:rgba(0,0,0,.3);color:#ffffffe6;border-color:#ffffffb3}.dds-annotator-objectlist .ant-select-multiple .ant-select-selection-item-remove{color:#ffffffb3}.dds-annotator-objectlist .tab-header-actions{position:absolute;right:5%;top:50%;transform:translateY(-50%)}.dds-annotator-objectlist .tab-header-actions button{border:0}.dds-annotator-objectlist .tab-header-actions-color-btn{width:28px;height:28px;margin:0 .5rem;border:0;background-color:transparent;color:#fff;border-radius:5px;box-shadow:unset}.dds-annotator-objectlist .tab-header-actions-color-btn:hover{background-color:#1e53f5;transform:scale(1.2)}.dds-annotator-objectlist .tab-header-actions-color-btn-active{color:#1e53f5;background-color:#1e53f5}.dds-annotator-objectlist .tab-collapse{width:100%}.dds-annotator-objectlist .tab-collapse .collapse-header{position:relative;display:flex;align-items:center;padding:0;width:256px;font-size:14px;color:#fff;background:#1f1f1f}.dds-annotator-objectlist .tab-collapse .collapse-header .label-name{margin:0 15px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dds-annotator-objectlist .tab-collapse .collapse-header .label-count{display:inline-block;padding-inline:5px;margin-inline:10px;height:25px;min-width:25px;line-height:25px;border-radius:5px;background-color:#236bf7;font-size:12px;text-align:center}.dds-annotator-objectlist .tab-collapse .collapse-header .selected-line{position:absolute;left:0;top:0;width:4px;height:100%}.dds-annotator-objectlist .tab-collapse .collapse-header .label-icon{margin-left:14px;margin-right:14px;width:15px;height:15px}.dds-annotator-objectlist .tab-collapse .collapse-header .label-actions{position:absolute;right:5%;top:50%;transform:translateY(-50%)}.dds-annotator-objectlist .tab-collapse .collapse-header .label-btn{border:0}.dds-annotator-objectlist .tab-collapse .collapse-header .down-arrow{transform:rotate(180deg);width:10px;height:10px}.dds-annotator-objectlist .tab-collapse .collapseHeader:hover{background-color:#4b4f52}.dds-annotator-objectlist .tab-collapse .collapse-header-selected .arrow{transform:rotate(0)}.dds-annotator-objectlist .tab-collapse .collapse-item{position:relative;display:flex;justify-items:flex-start;align-items:center;height:35px;padding-left:10px;margin-left:6px;color:#fff;background:#1f1f1f;font-size:14px}.dds-annotator-objectlist .tab-collapse .collapse-item .color-hint{position:absolute;left:3%;margin-left:0;width:.5rem;height:.5rem;border:.1rem solid rgba(255,255,255,.8);border-radius:50%}.dds-annotator-objectlist .tab-collapse .collapse-item .label-icon{margin-left:15px;margin-right:12px;width:15px;height:15px}.dds-annotator-objectlist .tab-collapse .collapse-item .label{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dds-annotator-objectlist .tab-collapse .collapse-item .label-actions{margin-right:5%;display:flex;align-items:center;justify-content:center}.dds-annotator-objectlist .tab-collapse .collapse-item .label-btn,.dds-annotator-objectlist .tab-collapse .collapse-item .attr-btn{border:0}.dds-annotator-objectlist .tab-collapse .collapse-item .attr-btn svg{width:22px;height:22px;fill:#1e53f5}.dds-annotator-objectlist .tab-collapse .collapse-item .attr-btn-warn svg{fill:#f53f3f}.dds-annotator-objectlist .tab-collapse .collapse-item .frame-count{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 8px;font-size:14px}.dds-annotator-objectlist .tab-collapse .collapse-item .frame-count svg{width:14px;height:14px;fill:#fff}.dds-annotator-objectlist .tab-collapse .collapse-item:hover{background-color:#4b4f52}.dds-annotator-smart-container{position:absolute;right:1rem;top:1rem;width:375px;box-shadow:2px 2px 12px 3px #0009;opacity:0;transition:opacity .15s ease;pointer-events:none;z-index:9}.dds-annotator-smart-container .ant-card-head{background-color:#1e53f5;color:#fff;font-size:15px;padding:0 15px;min-height:45px}.dds-annotator-smart-container .ant-card-body{padding:12px}.dds-annotator-smart-container-btn{border:0}.dds-annotator-smart-container-btn:hover{background-color:#fff3!important}.dds-annotator-smart-container-btn:hover svg{color:#fff}.dds-annotator-smart-container-title{display:flex;align-items:center;justify-content:space-between}.dds-annotator-smart-container-title-icon{display:flex;align-items:center;justify-content:center;gap:12px}.dds-annotator-smart-container-content{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:12px}.dds-annotator-smart-container-content-item{display:flex;align-items:center;justify-content:space-around;gap:12px;width:100%}.dds-annotator-smart-container-content-param-controls{display:flex;flex-direction:column;width:100%}.dds-annotator-smart-container-content-param-item{display:flex;flex-direction:row;justify-content:space-around}.dds-annotator-smart-container-content-param-item-title{width:100px}.dds-annotator-smart-container-content-param-item-select{flex:1 1}.dds-annotator-smart-container-content-param-item-slider{align-self:flex-end;flex:1 1}.dds-annotator-smart-container-content-instruction{font-size:13px}.dds-annotator-smart-container-content-actions{display:flex;justify-content:space-between;width:100%}.dds-annotator-smart-container-content-column-item{display:flex;flex-direction:column;align-items:flex-start;gap:12px;width:100%}.dds-annotator-smart-container-content-tip-text span{font-weight:700}.dds-annotator-smart-container:hover{box-shadow:2px 2px 12px 3px #0009}.dds-annotator-smart-container-visible{opacity:1;pointer-events:all}.dds-annotator-operation-tip{position:absolute;right:1rem;top:1rem;display:flex;flex-direction:column;gap:10px;z-index:9}.dds-annotator-operation-tip-item{display:flex;justify-content:space-between;align-items:center;padding:5px 10px;background-color:#3c56f899;border-radius:5px}.dds-annotator-operation-tip-item span{margin-right:20px;color:#fff}.dds-annotator-toppagination{display:flex;flex-direction:row;justify-content:center;align-items:center;z-index:99;border-radius:10px;padding:.4rem .5rem}.dds-annotator-toppagination-btn{width:32px;height:32px;margin:0 .5rem;border:0;background-color:transparent;color:#fff;border-radius:5px}.dds-annotator-toppagination-btn:hover{background-color:#1e53f5;transform:scale(1.2)}.dds-annotator-toppagination-btn-disabled{color:#ffffff40;pointer-events:none}.dds-annotator-toppagination-btn-disabled svg{fill:#ffffff40}.dds-annotator-toppagination-scale-text{color:#fffc;margin:0 8px}.dds-annotator-toppagination-divider{height:100%;margin:6px 8px;border-left:1px solid #bbb}.dds-annotator-popover-menu{position:absolute;display:flex;flex-direction:column;justify-content:center;background:#fff;border:2px solid #1f4dd8;border-radius:50px;color:#000000d9;font-size:14px;box-shadow:2px 2px 6px 3px #00000026;pointer-events:none}.dds-annotator-popover-menu-content{display:flex;justify-content:space-around}.dds-annotator-popover-menu-text{max-width:150px;line-height:32px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;margin:0 10px}.dds-annotator-imageview-reload-cover{position:absolute;left:0;top:0;width:100%;height:100%;z-index:2}.dds-annotator-imageview-reload-cover img{display:block;position:absolute;left:0;top:0;width:100%;height:100%}.dds-annotator-imageview-reload-cover svg{position:absolute;left:0;top:0;width:100%;height:100%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.dds-annotator-imageview-reload-cover .content-box{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f0f0f080}.dds-annotator-imageview-reload-cover .reload-trigger{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:0}.dds-annotator-imageview-reload-cover .reload-trigger span{width:24px;height:24px}.dds-annotator-imageview-canvas{position:absolute;left:0;top:0}.dds-annotator-classification{scrollbar-width:none;-ms-overflow-style:none}.dds-annotator-classification::-webkit-scrollbar{display:none}.dds-annotator-classification .ant-tabs{color:#ffffff80}.dds-annotator-classification .ant-tabs-tab+.ant-tabs-tab{margin:0}.dds-annotator-classification .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#fff}.dds-annotator-classification .ant-tabs-tab{padding:12px;margin:0;font-size:16px}.dds-annotator-classification .ant-tabs-ink-bar{background:transparent}.dds-annotator-classification .ant-tabs-nav{margin:0;position:sticky;top:0;z-index:1;background:#000}.dds-annotator-classification .ant-tabs-nav:before{display:none}.dds-annotator-classification .tab-header-actions{position:absolute;right:5%;top:50%;transform:translateY(-50%);border:0}.dds-annotator-attributes-form{width:100%;padding:12px 12px 0}.dds-annotator-attributes-form .ant-form-item{margin-bottom:14px}.dds-annotator-attributes-form .ant-form-item-label{font-weight:500}.dds-annotator-attributes-form .ant-input{border-color:#1e53f5}.dds-annotator-attributes-form-item-title{display:flex;align-items:center}.dds-annotator-attributes-form-item-title-btn{margin-left:12px;height:24px;border:0;display:flex;align-items:center;justify-items:center}.dds-annotator-attributes-form-item-title-btn svg{width:22px;height:22px;fill:#1e53f5}.dds-annotator-attributes-form-item-title .attribute-warn{fill:#f53f3f}.dds-annotator-attributes-form-dark .ant-form-item-label>label{color:#fff}.dds-annotator-attributes-form-dark .ant-radio-wrapper{color:#fff}.dds-annotator-attributes-form-dark .ant-radio-wrapper .ant-radio-disabled .ant-radio-inner{background-color:#fff}.dds-annotator-attributes-form-dark .ant-checkbox-wrapper{color:#fff}.dds-annotator-attributes-form-dark .ant-checkbox-wrapper .ant-checkbox-disabled .ant-checkbox-inner{background-color:#fff}.dds-annotator-attributes-form-dark .ant-checkbox-wrapper .ant-checkbox-disabled+span{color:#fff}.dds-annotator-attributes-form-dark .ant-input{color:#fff;background-color:transparent}.dds-annotator-attributes-form-dark .ant-input::placeholder{color:#ffffff4d}.dds-annotator-attribute-editor{position:absolute;right:1rem;top:1rem;width:320px;box-shadow:2px 2px 12px 3px #0009;opacity:1;pointer-events:all;z-index:99}.dds-annotator-attribute-editor .ant-card-head{background-color:#1e53f5;color:#fff;font-size:15px;padding:0 15px;min-height:45px}.dds-annotator-attribute-editor .ant-card-body{padding:0 4px}.dds-annotator-attribute-editor-title{display:flex;align-items:center;justify-content:space-between}.dds-annotator-attribute-editor-title-btn{border:0}.dds-annotator-attribute-editor-title-btn:hover{background-color:#fff3!important}.dds-annotator-attribute-editor-title-btn:hover svg{color:#fff}.dds-annotator-attribute-editor-content{display:flex;flex-direction:column;align-items:flex-end}.dds-annotator-attribute-editor-actions{padding:0 12px 12px}.dds-annotator-attribute-editor:hover{box-shadow:2px 2px 12px 3px #0009}.dds-annotator-seg-confirm{position:absolute;right:1rem;top:1rem;width:300px;box-shadow:2px 2px 12px 3px #0009;opacity:0;transition:opacity .15s ease;pointer-events:none;z-index:99}.dds-annotator-seg-confirm .ant-card-head{background-color:#1e53f5;color:#fff;font-size:15px;padding:0 15px;min-height:45px}.dds-annotator-seg-confirm .ant-card-body{padding:12px}.dds-annotator-seg-confirm .btn{border:0}.dds-annotator-seg-confirm .title{display:flex;align-items:center;justify-content:space-between}.dds-annotator-seg-confirm .content{display:flex;align-items:center;justify-content:space-between;gap:12px}.dds-annotator-seg-confirm .content .item{display:flex;align-items:center;justify-content:space-around;gap:12px;width:100%}.dds-annotator-seg-confirm .content .selector{width:100%}.dds-annotator-seg-confirm .content .actions{display:flex;justify-content:space-between;width:100%}.dds-annotator-seg-confirm:hover{box-shadow:2px 2px 12px 3px #0009}.dds-annotator-seg-confirm-visible{opacity:1;pointer-events:all}.dds-annotator-shortcutsinfo{background:#262626!important;max-height:calc(100vh - 60px);overflow:scroll}.dds-annotator-shortcutsinfo .ant-dropdown-menu{padding:0}.dds-annotator-shortcutsinfo .ant-dropdown-menu-item-group-title{color:#fff!important;text-shadow:0 -1px 0 rgba(0,0,0,.12);background-color:#595959;font-weight:600}.dds-annotator-shortcutsinfo .ant-dropdown-menu-item{color:#ffffffe6!important;display:flex;flex-direction:row-reverse}.dds-annotator-shortcutsinfo .ant-dropdown-menu-title-content{align-self:flex-start}.dds-annotator-shortcutsinfo .ant-dropdown-menu-item-icon{margin:0 0 0 8px}.dds-annotator-shortcutsinfo-key{padding:2px 4px;height:22px;min-width:22px;color:#000;justify-content:center;align-items:center;align-self:flex-start;background:#f9fafb;border:1px solid #374151;border-radius:4px;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;display:inline-flex;flex:0 0 22px;font-size:11px;font-weight:600}.dds-annotator-shortcutsinfo-combine{color:#ffffffe6}.dds-annotator-shortcutsinfo-icon svg{margin-left:2px;margin-right:12px;fill:#fff;cursor:pointer}.dds-annotator-shortcutsinfo-icon svg:hover{fill:#1e53f5}.dds-annotator-slidertoolbar{position:relative;height:100%;background:#212121;border-radius:0;display:flex;flex-direction:column;justify-content:space-between;align-items:center;gap:12px;width:50px;pointer-events:auto;font-weight:600;padding:1rem .5rem 2rem;z-index:99;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none}.dds-annotator-slidertoolbar::-webkit-scrollbar{display:none}.dds-annotator-slidertoolbar-content{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px}.dds-annotator-slidertoolbar .slidertoolbar-btn{width:32px;height:32px;border:0;background-color:transparent;border-radius:5px}.dds-annotator-slidertoolbar .slidertoolbar-btn svg{color:#fff;fill:#fff;scale:1.2}.dds-annotator-slidertoolbar .slidertoolbar-btn:hover{background-color:#1e53f5;transform:scale(1.2)}.dds-annotator-slidertoolbar .slidertoolbar-btn-active{color:#1e53f5;background-color:#1e53f5}.dds-annotator-slidertoolbar .slidertoolbar-btn-disabled{color:#ffffff40;pointer-events:none}.dds-annotator-slidertoolbar .slidertoolbar-btn-disabled svg{fill:#ffffff40}.dds-annotator-slidertoolbar .slidertoolbar-annotool-active-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;width:50px;padding:10px 0;background:#484848;border-radius:12px}.dds-annotator-slidertoolbar .slidertoolbar-scale-text{font-size:12px;font-weight:400;color:#fffc;margin:12px 0;user-select:none}.dds-annotator-slidertoolbar .slidertoolbar-divider{width:100%;margin:8px 6px;border-bottom:1px solid #bbb}.dds-annotator-slidertoolbar-popover{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.dds-annotator-slidertoolbar-popover .popover-title{font-weight:600;font-size:14px;margin-right:10px}.dds-annotator-slidertoolbar-popover .popover-key{min-width:30px;justify-content:center;border-radius:2px;padding:2px 5px;color:#000c;box-shadow:0 1px 3px #0000004d,0 1px 2px #0000001a;font-size:12px;font-weight:600}.dds-annotator-slidertoolbar-popover .popover-divider{width:100%;margin:10px 0;border-bottom:1px solid rgba(0,0,0,.1)}.dds-annotator-slidertoolbar-popover .popover-description{max-width:220px;font-size:13px;color:#000c}.dds-annotator-editor-light .dds-annotator-slidertoolbar{background:#fff}.dds-annotator-editor-light .dds-annotator-slidertoolbar .slidertoolbar-btn{box-shadow:none}.dds-annotator-editor-light .dds-annotator-slidertoolbar .slidertoolbar-btn svg{color:#000;fill:#000;scale:1.2}.dds-annotator-editor-light .dds-annotator-slidertoolbar .slidertoolbar-btn:hover svg{color:#fff;fill:#fff}.dds-annotator-editor-light .dds-annotator-slidertoolbar .slidertoolbar-btn-active svg{color:#fff;fill:#fff;scale:1.2}.dds-annotator-editor-light .dds-annotator-slidertoolbar .slidertoolbar-btn-disabled{color:#00000040}.dds-annotator-editor-light .dds-annotator-slidertoolbar .slidertoolbar-btn-disabled svg{fill:#00000040}.dds-annotator-editor-light .dds-annotator-slidertoolbar .slidertoolbar-annotool-active-wrap{background:#484848}.dds-annotator-editor-light .dds-annotator-slidertoolbar .slidertoolbar-scale-text{color:#000c}.dds-annotator-editor-light .dds-annotator-slidertoolbar .slidertoolbar-divider{border-bottom:1px solid #bbb}.dds-annotator-editor-light .dds-annotator-slidertoolbar-popover .popover-key{color:#fffc;box-shadow:0 1px 3px #ffffff4d,0 1px 2px #ffffff1a}.dds-annotator-editor-light .dds-annotator-slidertoolbar-popover .popover-divider{border-bottom:1px solid rgba(255,255,255,.1)}.dds-annotator-editor-light .dds-annotator-slidertoolbar-popover .popover-description{color:#fffc}.dds-annotator-display{cursor:pointer}.dds-annotator-display-popover{border-radius:10px}.dds-annotator-display-popover .ant-popover-inner{padding:0}.dds-annotator-display-pop-container{border-radius:10px;color:#fff;padding-bottom:8px}.dds-annotator-display-pop-container-header{display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid rgba(107,114,128);padding:8px 8px 8px 16px;margin-bottom:8px}.dds-annotator-display-pop-container-btn{width:24px;height:24px;margin:0 .25rem;border:0;background-color:transparent;color:#fff;box-shadow:unset;font-size:12px}.dds-annotator-display-pop-container-btn:hover{background-color:#1e53f5;transform:scale(1.2)}.dds-annotator-display-pop-container-btn:hover svg{fill:#000}.dds-annotator-display-pop-container-option{display:flex;flex-flow:column nowrap;padding:4px 16px;width:240px}.dds-annotator-display-pop-container-option .ant-slider{margin:5px 8px}.dds-annotator-editor-status{position:relative;height:30px;padding:0 8px;display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;font-size:14px;font-weight:500;border-radius:5px}.dds-annotator-editor-status svg{width:20px;height:20px}.dds-annotator-editor-status-1{border:1px solid #26a1f4;background:rgba(38,161,244,.38)}.dds-annotator-editor-status-2{border:1px solid #ffd305;background:rgba(255,211,5,.38)}.dds-annnotator-toptools{position:relative;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 16px;width:100%;height:56px;color:#fff;background:#1f1f1f;border-bottom:1px solid #141414;pointer-events:auto;overflow-x:scroll;z-index:1;scrollbar-width:none;-ms-overflow-style:none}.dds-annnotator-toptools::-webkit-scrollbar{display:none}.dds-annnotator-toptools-row{display:flex;align-items:center;gap:16px;opacity:.85}.dds-annnotator-toptools-row-icon{padding:8px;color:#fff;border-radius:5px;cursor:pointer}.dds-annnotator-toptools-row-icon span{vertical-align:middle}.dds-annnotator-toptools-row-icon svg{width:20px;height:20px;fill:#fff;vertical-align:middle}.dds-annnotator-toptools-row-icon:hover{background-color:#1e53f5}.dds-annnotator-toptools-row-icon-disable{color:#ffffff40;pointer-events:none}.dds-annnotator-toptools-row-icon-disable svg{fill:#ffffff40}.dds-annnotator-toptools-row-split{margin:5px;width:1px;height:20px;background-color:#3b3838}.dds-annnotator-toptools-progress{position:absolute;left:50%;transform:translate(-50%);font-size:13px;line-height:20px;color:#fff;user-select:none}.dds-annotator-label-selector{width:220px;margin-left:-5px}.dds-annotator-label-selector .ant-select{width:100%}.dds-annotator-label-selector .ant-select .ant-select-selector{background-color:transparent!important;color:#fff}.dds-annotator-label-selector .ant-select .ant-select-selection-item{display:flex;align-items:center}.dds-annotator-label-selector .ant-select .ant-select-selection-item svg{width:16px;height:16px;margin-right:10px}.dds-annotator-label-selector .ant-select .ant-select-arrow,.dds-annotator-label-selector .ant-select-open .ant-select-selection-item{color:#ffffff80}.dds-annotator-label-selector-option-color{width:12px;height:12px;margin-right:10px;background-color:#fff}.dds-annotator-label-selector-option .ant-select-item-option-content{display:flex;align-items:center}.dds-annotator-label-selector-option svg{width:16px;height:16px;margin-right:10px}.dds-annotator-editor-light .dds-annotator-label-selector .ant-select .ant-select-selector{color:#000;border:1px solid #acacac}.dds-annotator-editor-light .dds-annotator-label-selector .ant-select .ant-select-arrow,.dds-annotator-editor-light .dds-annotator-label-selector .ant-select-open .ant-select-selection-item{color:#00000080}.dds-annotator-editor-light .dds-annotator-label-selector-option-color{background-color:#000}.dds-annotator-model-selector{width:220px;margin-left:-5px}.dds-annotator-model-selector .ant-select{width:100%}.dds-annotator-model-selector .ant-select .ant-select-selector{background-color:transparent!important;color:#fff}.dds-annotator-model-selector .ant-select .ant-select-selection-item{display:flex;align-items:center}.dds-annotator-model-selector .ant-select .ant-select-selection-item svg{width:16px;height:16px;margin-right:10px}.dds-annotator-model-selector .ant-select .ant-select-arrow,.dds-annotator-model-selector .ant-select-open .ant-select-selection-item{color:#ffffff80}.dds-annotator-model-selector-option-color{width:12px;height:12px;margin-right:10px;background-color:#fff}.dds-annotator-model-selector-option .ant-select-item-option-content{display:flex;align-items:center}.dds-annotator-model-selector-option svg{width:16px;height:16px;margin-right:10px}.dds-annotator-editor-light .dds-annotator-model-selector .ant-select .ant-select-selector{color:#000;border:1px solid #acacac}.dds-annotator-editor-light .dds-annotator-model-selector .ant-select .ant-select-arrow,.dds-annotator-editor-light .dds-annotator-model-selector .ant-select-open .ant-select-selection-item{color:#00000080}.dds-annotator-editor-light .dds-annotator-model-selector-option-color{background-color:#000}.dds-annotator-subtoolbar{display:flex;flex-direction:row;justify-content:center;align-items:center;z-index:99;background-color:#212121;border-radius:10px;padding:.5rem;padding-left:0;height:50px;pointer-events:auto;font-weight:600}.dds-annotator-subtoolbar-btn{width:32px;height:32px;margin:0 .25rem;border:0;background-color:transparent;color:#fff;border-radius:5px}.dds-annotator-subtoolbar-btn svg{scale:1.2}.dds-annotator-subtoolbar-btn:hover{color:#fff}.dds-annotator-subtoolbar-btn-limited:hover{background-color:#1e53f5;transform:scale(1.2)}.dds-annotator-subtoolbar-btn-active{background-color:#1e53f5}.dds-annotator-subtoolbar-divider{height:65%;margin:10px 8px;border-left:1px solid #fff}.dds-annotator-subtoolbar-title{margin:0 .25rem;color:#fff}.dds-annotator-subtoolbar-slider{width:100px;margin:0 .25rem}.dds-annotator-subtoolbar-slider .ant-slider-rail{background-color:#37404a}.dds-annotator-subtoolbar-action{height:32px;margin:0 .25rem;border:0;color:#fff;border-radius:5px}.dds-annotator-subtoolbar-popover{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.dds-annotator-subtoolbar-popover-title{font-weight:500;font-size:14px}.dds-annotator-subtoolbar-popover-key{justify-content:center;border-radius:2px;margin-left:10px;padding:2px 5px;color:#000c;box-shadow:0 1px 3px #0000004d,0 1px 2px #0000001a;font-size:12px;font-weight:500}.dds-annotator-subtoolbar-popover-divider{width:100%;margin:10px 0;border-bottom:1px solid rgba(0,0,0,.1)}.dds-annotator-loading{position:fixed;top:0;left:0;bottom:0;right:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.2);z-index:10001}.dds-annotator-logo{margin-left:-5px;width:33px;height:33px;cursor:pointer}.dds-annotator-logo-replace{margin-left:-5px;width:33px;height:33px}.dds-annotator .edit-wrap{position:absolute;inset:0;font-size:0;user-select:none;pointer-events:auto}.dds-annotator .edit-wrap img{display:none}.dds-annotator .edit-wrap canvas{position:absolute;inset:0;cursor:crosshair}.dds-annotator-qk-actions{display:flex;align-items:center;justify-content:center;gap:18px}.dds-annotator-qk-actions svg{cursor:pointer;fill:#fff}.dds-annotator-qk-actions svg:hover{fill:#1e53f5}.dds-annotator-dropdown-options{display:flex;flex-direction:column;background-color:#fff;border-radius:5px;overflow:hidden}.dds-annotator-dropdown-options-object{position:relative;padding:5px 10px 5px 20px;min-width:120px;user-select:none;cursor:pointer}.dds-annotator-dropdown-options-object:hover{color:#1e53f5;background-color:#e2e6f9}.dds-annotator-dropdown-options-object-dot{position:absolute;top:50%;left:8px;transform:translateY(-50%);width:4px;height:4px;border-radius:50%;background-color:red}.dds-annotator-editor{position:relative;top:0;left:0;z-index:100;width:100%;height:100vh;background-color:#000;overflow:hidden}.dds-annotator-editor .editor-container{position:absolute;inset:56px 0 0;display:flex;flex-direction:row;pointer-events:auto}.dds-annotator-editor .editor-container .left-slider{position:relative;height:100%;background:#212121;padding:0;border-radius:0;border-left:1px solid black;overflow-y:scroll;overflow-x:hidden;z-index:1}.dds-annotator-editor .editor-container .center-content{position:relative;flex:1 1;height:100%;display:flex;flex-direction:column;overflow:hidden}.dds-annotator-editor .editor-container .center-content .draw-area{position:relative;flex:1 1;width:100%}.dds-annotator-editor .editor-container .right-slider{position:relative;width:256px;min-width:256px;height:100%;background:#262626;border-left:2px solid #141414;backdrop-filter:blur(12px);display:flex;flex-direction:column;z-index:1}.dds-annotator-editor .editor-container .right-slider .classifications{max-height:50%;overflow-x:hidden;overflow-y:scroll}.dds-annotator-editor .editor-container .right-slider .object-list{flex:1 1;width:100%;overflow-y:scroll;overflow-x:hidden}.dds-annotator-editor-light{background-color:#f7f7f7}.dds-annotator-editor-light .dds-annnotator-toptools{background-color:#f1f2f4;border-bottom:1px solid #f7f7f7}.dds-annotator-editor-light .dds-annnotator-toptools-row-icon{color:#000}.dds-annotator-editor-light .dds-annnotator-toptools-row-icon svg{fill:#fff}.dds-annotator-preview{position:fixed;top:0;left:0;width:100%;height:100%;z-index:100;background-color:#000000b3}.dds-annotator-preview .top-tools{background:linear-gradient(180deg,rgba(0,0,0,.8) 0%,rgba(0,0,0,.15) 100%)!important;border:none!important}.dds-annotator-preview .switch{position:absolute;bottom:40px;display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-top:-22px;color:#ffffffd9;background:rgba(0,0,0,.5);border-radius:50%;cursor:pointer;pointer-events:auto;z-index:1}.dds-annotator-preview .switch-disable{color:#ffffff40;cursor:not-allowed}.dds-annotator-preview .switch-left{right:calc(50vw + 32px)}.dds-annotator-preview .switch-right{left:calc(50vw + 32px)}.dds-annotator-preview .info-wrap{position:absolute;right:40px;top:50%;transform:translateY(-50%);pointer-events:auto;user-select:none}.dds-annotator-preview .info-wrap .info-box{width:248px;max-height:calc(100vh - 192px);padding:24px 20px 0;display:flex;flex-direction:column;background-color:#00000073;color:#fff;border-radius:4px;pointer-events:auto;overflow-y:scroll;z-index:1;user-select:text;scrollbar-width:none;-ms-overflow-style:none}.dds-annotator-preview .info-wrap .info-box::-webkit-scrollbar{display:none}.dds-annotator-preview .info-wrap .info-box .item{max-width:100%;margin-bottom:16px;text-align:left;word-break:break-all;font-size:14px;line-height:22px}.dds-annotator-preview .info-wrap .info-box .item:last-child{margin-bottom:24px}.dds-annotator-preview .info-wrap .bottom-mask{position:absolute;bottom:0;left:0;width:100%;height:40px;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,#000 100%);opacity:.45}.dds-annotator-preview .hide-info-btn{position:absolute;right:-24px;top:50%;transform:translateY(-50%);width:24px;height:48px;line-height:48px;background-color:#00000073;border-radius:0 48px 48px 0;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;cursor:pointer;pointer-events:auto;z-index:1}.dds-annotator-preview .show-info-btn{position:absolute;right:0;top:50%;transform:translateY(-50%);width:24px;height:48px;line-height:48px;background-color:#00000073;border-radius:48px 0 0 48px;display:flex;align-items:center;justify-content:flex-start;padding-left:8px;cursor:pointer;pointer-events:auto;z-index:1}.dds-annotator-preview .show-info-btn svg{transform:rotate(180deg)}.dds-annotator-view{position:relative;display:flex}.dds-annotator-model-selector-modal{display:flex;gap:30px}.dds-annotator-model-selector-modal-option{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding-top:30px;padding-block-end:20px;margin-block:25px;width:220px;height:180px;border:.5px solid #d6d6d6}.dds-annotator-model-selector-modal-option-icon svg{width:55px;height:55px}.dds-annotator-model-selector-modal-option-name{color:#000;font-size:18px;font-weight:500;user-select:none}.dds-annotator-model-selector-modal-option-description{text-align:center;width:80%;color:#0006;font-size:12px;font-weight:400;text-overflow:ellipsis;user-select:none}.dds-annotator-model-selector-modal-option-tag{position:absolute;top:10px;right:10px;margin:0}.dds-annotator-model-selector-modal-option:hover{border:2px solid #165cff;background:rgba(185,206,255,.11);box-shadow:0 4px 4px #00000040}.dds-annotator-model-selector-modal-option-hightlight{border:2px solid #165cff5f;box-shadow:0 1px 2px #00000040;background:rgba(185,206,255,.3)}.dds-annotator-points-editor{position:absolute;right:1rem;top:1rem;box-shadow:2px 2px 12px 3px #0009;opacity:0;transition:opacity .15s ease;pointer-events:none;z-index:99;border-radius:6px;overflow:hidden}.dds-annotator-points-editor .ant-card-head{background-color:#1e53f5;color:#fff;font-size:15px;padding:0;min-height:auto}.dds-annotator-points-editor .ant-card-body{padding:0}.dds-annotator-points-editor .btn{border:0}.dds-annotator-points-editor .title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;min-height:40px;cursor:pointer}.dds-annotator-points-editor .title .extra-btn{cursor:pointer}.dds-annotator-points-editor .title .extra-btn:hover{transform:scale(1.05)}.dds-annotator-points-editor .content{display:flex;flex-direction:column;gap:5px;width:280px;height:140px;overflow-y:scroll;padding:10px 0 12px 10px}.dds-annotator-points-editor:hover{box-shadow:2px 2px 12px 3px #0009}.dds-annotator-points-editor-visible{opacity:1;pointer-events:all}.item___v9XQ_{display:flex;flex-flow:row nowrap;border-radius:2px}.item___v9XQ_ .selected___H8gjQ{left:0;top:0;width:4px;height:100%;margin-right:5px}.item___v9XQ_ .info___YLqTh{width:50%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.item___v9XQ_ .action___zGuUy{flex:1 1}.item___v9XQ_ .btn___ean1l{border:0}.item___v9XQ_:hover{background-color:#f0f8ff}.dds-quicklabel-options-list{height:100vh}.dds-quicklabel-options-list-virtual{border-radius:8px}.dds-quicklabel-options-list-image{margin:8px 0;width:100%;height:120px;box-sizing:border-box;object-fit:cover;border-radius:8px;background-color:#fff;cursor:pointer;transition:transform .3s ease}.dds-quicklabel-options-list-image:hover{transform:scale(.95)}.dds-quicklabel-options-list-image-selected{border:3px solid #fff;border-radius:8px}.dds-upload-list{position:relative;width:100%;height:100%}.dds-upload-list .virtual-list{border-radius:8px;overflow-y:hidden}.dds-upload-list .row-container{display:flex}.dds-upload-list .preview-container{position:relative;display:flex;flex-direction:column;align-items:center;overflow:hidden;cursor:pointer;border-radius:5px}.dds-upload-list .preview-container .file-preview{box-sizing:border-box;object-fit:cover;background-color:#fff;border-radius:5px}.dds-upload-list .preview-container .file-name{width:90%;margin:5px;word-wrap:break-word;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dds-upload-list .preview-container .remove-button{display:none;position:absolute!important;top:4px;right:4px}.dds-upload-list .preview-container:hover{background-color:#f0f0f0;border-radius:5px;box-shadow:0 1px 2px #0000004d}.dds-upload-list .preview-container:hover .remove-button{display:block}.dds-upload-list .preview-container-success .file-name{color:#1e53f5}.dds-upload-list .preview-container-success .file-preview{border:1px solid #1e53f5}.dds-upload-list .preview-container-error .file-name{color:red}.dds-upload-list .preview-container-error .file-preview{border:1px solid red}.dds-upload{position:relative;width:100%;height:100%}.dds-upload-loading{position:absolute;left:0;right:0;top:0;bottom:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.3)}.dds-upload input{display:none!important}.dds-upload-title{font-size:24px;font-weight:500;line-height:1}.dds-upload-text{font-size:14px;font-weight:400;color:#c1c1c1}.dds-upload-empty{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;border-radius:5px;border:1px solid #c9cdd4;cursor:pointer}.dds-upload-empty svg{width:91px;height:75px}.dds-upload-empty .dds-upload-title{margin-top:30px}.dds-upload-content{width:100%;height:100%;border-radius:5px;border:1px solid #c9cdd4}.dds-upload-content-list{position:relative;width:100%;height:calc(100% - 64px);padding:30px 0 0}.dds-upload-content-list-count{position:absolute;left:18px;top:8px;font-size:14px;color:#00000073}.dds-upload-draging{border:1px solid #1e53f5;background:#e8efff}.dds-upload-topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-radius:0;border-bottom:1px solid #c9cdd4}.dds-upload-topbar .dds-upload-title{font-size:20px}.dds-upload-topbar .dds-upload-text{font-size:12px;margin-top:4px}.dds-upload-pre-anno .ant-upload{width:100%}.dds-upload-pre-anno .ant-card{border:1px solid #c9cdd4;background:none}.dds-upload-pre-anno .ant-card .ant-card-meta-avatar{width:56px;height:56px;margin-right:20px}.dds-upload-pre-anno .ant-card .ant-card-meta-avatar svg{width:56px;height:56px}.dds-upload-pre-anno .ant-card .ant-card-meta-title{font-size:24px;font-weight:500}.dds-upload-pre-anno .ant-card:hover{cursor:pointer}.dds-quicklabel-subtitle{font-size:16px;font-weight:500;margin:20px 0 10px}.dds-quicklabel-upload{width:100%;height:360px}.dds-quicklabel-upload-tip{margin:10px 0 0;background-color:transparent;border-width:0}.dds-quicklabel-upload-preannot-btn{width:100%;height:42px;font-weight:600;border-radius:5px;background:#fff}.dds-quicklabel-image-filter{display:flex;align-items:center;gap:10px}.dds-quicklabel{position:relative;display:flex;background:#212121}.dds-quicklabel-list{display:flex;flex-direction:column;align-items:stretch;width:200px;height:100%;padding:16px;gap:8px}.dds-quicklabel-workspace{flex:1 1;height:100%} + +/*# sourceMappingURL=umi.26db4b74.css.map*/ \ No newline at end of file diff --git a/deepdataspace/server/static/umi.36ffdc32.css.map b/deepdataspace/server/static/umi.26db4b74.css.map similarity index 99% rename from deepdataspace/server/static/umi.36ffdc32.css.map rename to deepdataspace/server/static/umi.26db4b74.css.map index 51724cc..316c8fd 100644 --- a/deepdataspace/server/static/umi.36ffdc32.css.map +++ b/deepdataspace/server/static/umi.26db4b74.css.map @@ -1 +1 @@ -{"version":3,"file":"umi.36ffdc32.css","mappings":"AAAA","sources":["webpack://app/./src/global.less"],"sourcesContent":["* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n background: #f5f5f5;\n overflow: overlay; // Scrollbar does not occupy width.\n}\n\n#root {\n .ant-page-header {\n background-color: #fff;\n }\n\n .ant-pro .ant-layout-header.ant-pro-layout-header-fixed-header {\n padding: 0 44px;\n background-color: white;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-pro-page-container-affix .ant-affix {\n top: 0 !important;\n }\n\n .ant-pro-top-nav-header-main {\n padding-inline-start: 0;\n }\n\n .ant-pro-top-nav-header-logo > *:first-child > img {\n height: 40px;\n }\n\n .ant-image-preview-mask {\n z-index: 900 !important;\n }\n\n .ant-image-preview-wrap {\n z-index: 901 !important;\n }\n\n .ant-collapse\n > .ant-collapse-item.ant-collapse-no-arrow\n > .ant-collapse-header {\n padding: 0 !important;\n }\n\n .ant-collapse-ghost\n > .ant-collapse-item\n > .ant-collapse-content\n > .ant-collapse-content-box {\n padding: 0 !important;\n }\n\n .ant-collapse .ant-collapse-item-disabled > .ant-collapse-header,\n .ant-collapse .ant-collapse-item-disabled > .ant-collapse-header > .arrow {\n cursor: pointer !important;\n }\n\n .ant-pro .ant-pro-layout .ant-pro-layout-content {\n margin-block: 0;\n margin-inline: 0;\n }\n\n .ant-table-tbody > tr > td > .ant-space {\n flex-wrap: wrap;\n }\n\n .ant-table-pagination.ant-pagination {\n margin: 16px 0;\n }\n}\n\n@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;@colorPrimary: #1e53f5;@colorSuccess: #52c41a;@colorWarning: #faad14;@colorError: #ff4d4f;@colorInfo: #1677ff;@colorLink: #1677ff;@colorTextBase: #000;@colorBgBase: #fff;@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';@fontFamilyCode: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;@fontSize: 14;@lineWidth: 1;@lineType: solid;@motionUnit: 0.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: 1000;@opacityImage: 1;@wireframe: false;@motion: true;@blue-1: #e6f4ff;@blue1: #e6f4ff;@blue-2: #bae0ff;@blue2: #bae0ff;@blue-3: #91caff;@blue3: #91caff;@blue-4: #69b1ff;@blue4: #69b1ff;@blue-5: #4096ff;@blue5: #4096ff;@blue-6: #1677ff;@blue6: #1677ff;@blue-7: #0958d9;@blue7: #0958d9;@blue-8: #003eb3;@blue8: #003eb3;@blue-9: #002c8c;@blue9: #002c8c;@blue-10: #001d66;@blue10: #001d66;@purple-1: #f9f0ff;@purple1: #f9f0ff;@purple-2: #efdbff;@purple2: #efdbff;@purple-3: #d3adf7;@purple3: #d3adf7;@purple-4: #b37feb;@purple4: #b37feb;@purple-5: #9254de;@purple5: #9254de;@purple-6: #722ed1;@purple6: #722ed1;@purple-7: #531dab;@purple7: #531dab;@purple-8: #391085;@purple8: #391085;@purple-9: #22075e;@purple9: #22075e;@purple-10: #120338;@purple10: #120338;@cyan-1: #e6fffb;@cyan1: #e6fffb;@cyan-2: #b5f5ec;@cyan2: #b5f5ec;@cyan-3: #87e8de;@cyan3: #87e8de;@cyan-4: #5cdbd3;@cyan4: #5cdbd3;@cyan-5: #36cfc9;@cyan5: #36cfc9;@cyan-6: #13c2c2;@cyan6: #13c2c2;@cyan-7: #08979c;@cyan7: #08979c;@cyan-8: #006d75;@cyan8: #006d75;@cyan-9: #00474f;@cyan9: #00474f;@cyan-10: #002329;@cyan10: #002329;@green-1: #f6ffed;@green1: #f6ffed;@green-2: #d9f7be;@green2: #d9f7be;@green-3: #b7eb8f;@green3: #b7eb8f;@green-4: #95de64;@green4: #95de64;@green-5: #73d13d;@green5: #73d13d;@green-6: #52c41a;@green6: #52c41a;@green-7: #389e0d;@green7: #389e0d;@green-8: #237804;@green8: #237804;@green-9: #135200;@green9: #135200;@green-10: #092b00;@green10: #092b00;@magenta-1: #fff0f6;@magenta1: #fff0f6;@magenta-2: #ffd6e7;@magenta2: #ffd6e7;@magenta-3: #ffadd2;@magenta3: #ffadd2;@magenta-4: #ff85c0;@magenta4: #ff85c0;@magenta-5: #f759ab;@magenta5: #f759ab;@magenta-6: #eb2f96;@magenta6: #eb2f96;@magenta-7: #c41d7f;@magenta7: #c41d7f;@magenta-8: #9e1068;@magenta8: #9e1068;@magenta-9: #780650;@magenta9: #780650;@magenta-10: #520339;@magenta10: #520339;@pink-1: #fff0f6;@pink1: #fff0f6;@pink-2: #ffd6e7;@pink2: #ffd6e7;@pink-3: #ffadd2;@pink3: #ffadd2;@pink-4: #ff85c0;@pink4: #ff85c0;@pink-5: #f759ab;@pink5: #f759ab;@pink-6: #eb2f96;@pink6: #eb2f96;@pink-7: #c41d7f;@pink7: #c41d7f;@pink-8: #9e1068;@pink8: #9e1068;@pink-9: #780650;@pink9: #780650;@pink-10: #520339;@pink10: #520339;@red-1: #fff1f0;@red1: #fff1f0;@red-2: #ffccc7;@red2: #ffccc7;@red-3: #ffa39e;@red3: #ffa39e;@red-4: #ff7875;@red4: #ff7875;@red-5: #ff4d4f;@red5: #ff4d4f;@red-6: #f5222d;@red6: #f5222d;@red-7: #cf1322;@red7: #cf1322;@red-8: #a8071a;@red8: #a8071a;@red-9: #820014;@red9: #820014;@red-10: #5c0011;@red10: #5c0011;@orange-1: #fff7e6;@orange1: #fff7e6;@orange-2: #ffe7ba;@orange2: #ffe7ba;@orange-3: #ffd591;@orange3: #ffd591;@orange-4: #ffc069;@orange4: #ffc069;@orange-5: #ffa940;@orange5: #ffa940;@orange-6: #fa8c16;@orange6: #fa8c16;@orange-7: #d46b08;@orange7: #d46b08;@orange-8: #ad4e00;@orange8: #ad4e00;@orange-9: #873800;@orange9: #873800;@orange-10: #612500;@orange10: #612500;@yellow-1: #feffe6;@yellow1: #feffe6;@yellow-2: #ffffb8;@yellow2: #ffffb8;@yellow-3: #fffb8f;@yellow3: #fffb8f;@yellow-4: #fff566;@yellow4: #fff566;@yellow-5: #ffec3d;@yellow5: #ffec3d;@yellow-6: #fadb14;@yellow6: #fadb14;@yellow-7: #d4b106;@yellow7: #d4b106;@yellow-8: #ad8b00;@yellow8: #ad8b00;@yellow-9: #876800;@yellow9: #876800;@yellow-10: #614700;@yellow10: #614700;@volcano-1: #fff2e8;@volcano1: #fff2e8;@volcano-2: #ffd8bf;@volcano2: #ffd8bf;@volcano-3: #ffbb96;@volcano3: #ffbb96;@volcano-4: #ff9c6e;@volcano4: #ff9c6e;@volcano-5: #ff7a45;@volcano5: #ff7a45;@volcano-6: #fa541c;@volcano6: #fa541c;@volcano-7: #d4380d;@volcano7: #d4380d;@volcano-8: #ad2102;@volcano8: #ad2102;@volcano-9: #871400;@volcano9: #871400;@volcano-10: #610b00;@volcano10: #610b00;@geekblue-1: #f0f5ff;@geekblue1: #f0f5ff;@geekblue-2: #d6e4ff;@geekblue2: #d6e4ff;@geekblue-3: #adc6ff;@geekblue3: #adc6ff;@geekblue-4: #85a5ff;@geekblue4: #85a5ff;@geekblue-5: #597ef7;@geekblue5: #597ef7;@geekblue-6: #2f54eb;@geekblue6: #2f54eb;@geekblue-7: #1d39c4;@geekblue7: #1d39c4;@geekblue-8: #10239e;@geekblue8: #10239e;@geekblue-9: #061178;@geekblue9: #061178;@geekblue-10: #030852;@geekblue10: #030852;@gold-1: #fffbe6;@gold1: #fffbe6;@gold-2: #fff1b8;@gold2: #fff1b8;@gold-3: #ffe58f;@gold3: #ffe58f;@gold-4: #ffd666;@gold4: #ffd666;@gold-5: #ffc53d;@gold5: #ffc53d;@gold-6: #faad14;@gold6: #faad14;@gold-7: #d48806;@gold7: #d48806;@gold-8: #ad6800;@gold8: #ad6800;@gold-9: #874d00;@gold9: #874d00;@gold-10: #613400;@gold10: #613400;@lime-1: #fcffe6;@lime1: #fcffe6;@lime-2: #f4ffb8;@lime2: #f4ffb8;@lime-3: #eaff8f;@lime3: #eaff8f;@lime-4: #d3f261;@lime4: #d3f261;@lime-5: #bae637;@lime5: #bae637;@lime-6: #a0d911;@lime6: #a0d911;@lime-7: #7cb305;@lime7: #7cb305;@lime-8: #5b8c00;@lime8: #5b8c00;@lime-9: #3f6600;@lime9: #3f6600;@lime-10: #254000;@lime10: #254000;@colorText: rgba(0, 0, 0, 0.88);@colorTextSecondary: rgba(0, 0, 0, 0.65);@colorTextTertiary: rgba(0, 0, 0, 0.45);@colorTextQuaternary: rgba(0, 0, 0, 0.25);@colorFill: rgba(0, 0, 0, 0.15);@colorFillSecondary: rgba(0, 0, 0, 0.06);@colorFillTertiary: rgba(0, 0, 0, 0.04);@colorFillQuaternary: rgba(0, 0, 0, 0.02);@colorBgLayout: #f5f5f5;@colorBgContainer: #ffffff;@colorBgElevated: #ffffff;@colorBgSpotlight: rgba(0, 0, 0, 0.85);@colorBorder: #d9d9d9;@colorBorderSecondary: #f0f0f0;@colorPrimaryBg: #ebf3ff;@colorPrimaryBgHover: #c2d9ff;@colorPrimaryBorder: #99bdff;@colorPrimaryBorderHover: #709dff;@colorPrimaryHover: #477bff;@colorPrimaryActive: #0e38cf;@colorPrimaryTextHover: #477bff;@colorPrimaryText: #1e53f5;@colorPrimaryTextActive: #0e38cf;@colorSuccessBg: #f6ffed;@colorSuccessBgHover: #d9f7be;@colorSuccessBorder: #b7eb8f;@colorSuccessBorderHover: #95de64;@colorSuccessHover: #95de64;@colorSuccessActive: #389e0d;@colorSuccessTextHover: #73d13d;@colorSuccessText: #52c41a;@colorSuccessTextActive: #389e0d;@colorErrorBg: #fff2f0;@colorErrorBgHover: #fff1f0;@colorErrorBorder: #ffccc7;@colorErrorBorderHover: #ffa39e;@colorErrorHover: #ff7875;@colorErrorActive: #d9363e;@colorErrorTextHover: #ff7875;@colorErrorText: #ff4d4f;@colorErrorTextActive: #d9363e;@colorWarningBg: #fffbe6;@colorWarningBgHover: #fff1b8;@colorWarningBorder: #ffe58f;@colorWarningBorderHover: #ffd666;@colorWarningHover: #ffd666;@colorWarningActive: #d48806;@colorWarningTextHover: #ffc53d;@colorWarningText: #faad14;@colorWarningTextActive: #d48806;@colorInfoBg: #e6f4ff;@colorInfoBgHover: #bae0ff;@colorInfoBorder: #91caff;@colorInfoBorderHover: #69b1ff;@colorInfoHover: #69b1ff;@colorInfoActive: #0958d9;@colorInfoTextHover: #4096ff;@colorInfoText: #1677ff;@colorInfoTextActive: #0958d9;@colorLinkHover: #69b1ff;@colorLinkActive: #0958d9;@colorBgMask: rgba(0, 0, 0, 0.45);@colorWhite: #fff;@fontSizeSM: 12;@fontSizeLG: 16;@fontSizeXL: 20;@fontSizeHeading1: 38;@fontSizeHeading2: 30;@fontSizeHeading3: 24;@fontSizeHeading4: 20;@fontSizeHeading5: 16;@lineHeight: 1.5714285714285714;@lineHeightLG: 1.5;@lineHeightSM: 1.6666666666666667;@lineHeightHeading1: 1.2105263157894737;@lineHeightHeading2: 1.2666666666666666;@lineHeightHeading3: 1.3333333333333333;@lineHeightHeading4: 1.4;@lineHeightHeading5: 1.5;@sizeXXL: 48;@sizeXL: 32;@sizeLG: 24;@sizeMD: 20;@sizeMS: 16;@size: 16;@sizeSM: 12;@sizeXS: 8;@sizeXXS: 4;@controlHeightSM: 24;@controlHeightXS: 16;@controlHeightLG: 40;@motionDurationFast: 0.1s;@motionDurationMid: 0.2s;@motionDurationSlow: 0.3s;@lineWidthBold: 2;@borderRadiusXS: 2;@borderRadiusSM: 4;@borderRadiusLG: 8;@borderRadiusOuter: 4;"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"umi.26db4b74.css","mappings":"AAAA","sources":["webpack://app/./src/global.less"],"sourcesContent":["* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n background: #f5f5f5;\n overflow: overlay; // Scrollbar does not occupy width.\n}\n\n#root {\n .ant-page-header {\n background-color: #fff;\n }\n\n .ant-pro .ant-layout-header.ant-pro-layout-header-fixed-header {\n padding: 0 44px;\n background-color: white;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-pro-page-container-affix .ant-affix {\n top: 0 !important;\n }\n\n .ant-pro-top-nav-header-main {\n padding-inline-start: 0;\n }\n\n .ant-pro-top-nav-header-logo > *:first-child > img {\n height: 40px;\n }\n\n .ant-image-preview-mask {\n z-index: 900 !important;\n }\n\n .ant-image-preview-wrap {\n z-index: 901 !important;\n }\n\n .ant-collapse\n > .ant-collapse-item.ant-collapse-no-arrow\n > .ant-collapse-header {\n padding: 0 !important;\n }\n\n .ant-collapse-ghost\n > .ant-collapse-item\n > .ant-collapse-content\n > .ant-collapse-content-box {\n padding: 0 !important;\n }\n\n .ant-collapse .ant-collapse-item-disabled > .ant-collapse-header,\n .ant-collapse .ant-collapse-item-disabled > .ant-collapse-header > .arrow {\n cursor: pointer !important;\n }\n\n .ant-pro .ant-pro-layout .ant-pro-layout-content {\n margin-block: 0;\n margin-inline: 0;\n }\n\n .ant-table-tbody > tr > td > .ant-space {\n flex-wrap: wrap;\n }\n\n .ant-table-pagination.ant-pagination {\n margin: 16px 0;\n }\n}\n\n@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;@colorPrimary: #1e53f5;@colorSuccess: #52c41a;@colorWarning: #faad14;@colorError: #ff4d4f;@colorInfo: #1677ff;@colorLink: #1677ff;@colorTextBase: #000;@colorBgBase: #fff;@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';@fontFamilyCode: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;@fontSize: 14;@lineWidth: 1;@lineType: solid;@motionUnit: 0.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: 1000;@opacityImage: 1;@wireframe: false;@motion: true;@blue-1: #e6f4ff;@blue1: #e6f4ff;@blue-2: #bae0ff;@blue2: #bae0ff;@blue-3: #91caff;@blue3: #91caff;@blue-4: #69b1ff;@blue4: #69b1ff;@blue-5: #4096ff;@blue5: #4096ff;@blue-6: #1677ff;@blue6: #1677ff;@blue-7: #0958d9;@blue7: #0958d9;@blue-8: #003eb3;@blue8: #003eb3;@blue-9: #002c8c;@blue9: #002c8c;@blue-10: #001d66;@blue10: #001d66;@purple-1: #f9f0ff;@purple1: #f9f0ff;@purple-2: #efdbff;@purple2: #efdbff;@purple-3: #d3adf7;@purple3: #d3adf7;@purple-4: #b37feb;@purple4: #b37feb;@purple-5: #9254de;@purple5: #9254de;@purple-6: #722ed1;@purple6: #722ed1;@purple-7: #531dab;@purple7: #531dab;@purple-8: #391085;@purple8: #391085;@purple-9: #22075e;@purple9: #22075e;@purple-10: #120338;@purple10: #120338;@cyan-1: #e6fffb;@cyan1: #e6fffb;@cyan-2: #b5f5ec;@cyan2: #b5f5ec;@cyan-3: #87e8de;@cyan3: #87e8de;@cyan-4: #5cdbd3;@cyan4: #5cdbd3;@cyan-5: #36cfc9;@cyan5: #36cfc9;@cyan-6: #13c2c2;@cyan6: #13c2c2;@cyan-7: #08979c;@cyan7: #08979c;@cyan-8: #006d75;@cyan8: #006d75;@cyan-9: #00474f;@cyan9: #00474f;@cyan-10: #002329;@cyan10: #002329;@green-1: #f6ffed;@green1: #f6ffed;@green-2: #d9f7be;@green2: #d9f7be;@green-3: #b7eb8f;@green3: #b7eb8f;@green-4: #95de64;@green4: #95de64;@green-5: #73d13d;@green5: #73d13d;@green-6: #52c41a;@green6: #52c41a;@green-7: #389e0d;@green7: #389e0d;@green-8: #237804;@green8: #237804;@green-9: #135200;@green9: #135200;@green-10: #092b00;@green10: #092b00;@magenta-1: #fff0f6;@magenta1: #fff0f6;@magenta-2: #ffd6e7;@magenta2: #ffd6e7;@magenta-3: #ffadd2;@magenta3: #ffadd2;@magenta-4: #ff85c0;@magenta4: #ff85c0;@magenta-5: #f759ab;@magenta5: #f759ab;@magenta-6: #eb2f96;@magenta6: #eb2f96;@magenta-7: #c41d7f;@magenta7: #c41d7f;@magenta-8: #9e1068;@magenta8: #9e1068;@magenta-9: #780650;@magenta9: #780650;@magenta-10: #520339;@magenta10: #520339;@pink-1: #fff0f6;@pink1: #fff0f6;@pink-2: #ffd6e7;@pink2: #ffd6e7;@pink-3: #ffadd2;@pink3: #ffadd2;@pink-4: #ff85c0;@pink4: #ff85c0;@pink-5: #f759ab;@pink5: #f759ab;@pink-6: #eb2f96;@pink6: #eb2f96;@pink-7: #c41d7f;@pink7: #c41d7f;@pink-8: #9e1068;@pink8: #9e1068;@pink-9: #780650;@pink9: #780650;@pink-10: #520339;@pink10: #520339;@red-1: #fff1f0;@red1: #fff1f0;@red-2: #ffccc7;@red2: #ffccc7;@red-3: #ffa39e;@red3: #ffa39e;@red-4: #ff7875;@red4: #ff7875;@red-5: #ff4d4f;@red5: #ff4d4f;@red-6: #f5222d;@red6: #f5222d;@red-7: #cf1322;@red7: #cf1322;@red-8: #a8071a;@red8: #a8071a;@red-9: #820014;@red9: #820014;@red-10: #5c0011;@red10: #5c0011;@orange-1: #fff7e6;@orange1: #fff7e6;@orange-2: #ffe7ba;@orange2: #ffe7ba;@orange-3: #ffd591;@orange3: #ffd591;@orange-4: #ffc069;@orange4: #ffc069;@orange-5: #ffa940;@orange5: #ffa940;@orange-6: #fa8c16;@orange6: #fa8c16;@orange-7: #d46b08;@orange7: #d46b08;@orange-8: #ad4e00;@orange8: #ad4e00;@orange-9: #873800;@orange9: #873800;@orange-10: #612500;@orange10: #612500;@yellow-1: #feffe6;@yellow1: #feffe6;@yellow-2: #ffffb8;@yellow2: #ffffb8;@yellow-3: #fffb8f;@yellow3: #fffb8f;@yellow-4: #fff566;@yellow4: #fff566;@yellow-5: #ffec3d;@yellow5: #ffec3d;@yellow-6: #fadb14;@yellow6: #fadb14;@yellow-7: #d4b106;@yellow7: #d4b106;@yellow-8: #ad8b00;@yellow8: #ad8b00;@yellow-9: #876800;@yellow9: #876800;@yellow-10: #614700;@yellow10: #614700;@volcano-1: #fff2e8;@volcano1: #fff2e8;@volcano-2: #ffd8bf;@volcano2: #ffd8bf;@volcano-3: #ffbb96;@volcano3: #ffbb96;@volcano-4: #ff9c6e;@volcano4: #ff9c6e;@volcano-5: #ff7a45;@volcano5: #ff7a45;@volcano-6: #fa541c;@volcano6: #fa541c;@volcano-7: #d4380d;@volcano7: #d4380d;@volcano-8: #ad2102;@volcano8: #ad2102;@volcano-9: #871400;@volcano9: #871400;@volcano-10: #610b00;@volcano10: #610b00;@geekblue-1: #f0f5ff;@geekblue1: #f0f5ff;@geekblue-2: #d6e4ff;@geekblue2: #d6e4ff;@geekblue-3: #adc6ff;@geekblue3: #adc6ff;@geekblue-4: #85a5ff;@geekblue4: #85a5ff;@geekblue-5: #597ef7;@geekblue5: #597ef7;@geekblue-6: #2f54eb;@geekblue6: #2f54eb;@geekblue-7: #1d39c4;@geekblue7: #1d39c4;@geekblue-8: #10239e;@geekblue8: #10239e;@geekblue-9: #061178;@geekblue9: #061178;@geekblue-10: #030852;@geekblue10: #030852;@gold-1: #fffbe6;@gold1: #fffbe6;@gold-2: #fff1b8;@gold2: #fff1b8;@gold-3: #ffe58f;@gold3: #ffe58f;@gold-4: #ffd666;@gold4: #ffd666;@gold-5: #ffc53d;@gold5: #ffc53d;@gold-6: #faad14;@gold6: #faad14;@gold-7: #d48806;@gold7: #d48806;@gold-8: #ad6800;@gold8: #ad6800;@gold-9: #874d00;@gold9: #874d00;@gold-10: #613400;@gold10: #613400;@lime-1: #fcffe6;@lime1: #fcffe6;@lime-2: #f4ffb8;@lime2: #f4ffb8;@lime-3: #eaff8f;@lime3: #eaff8f;@lime-4: #d3f261;@lime4: #d3f261;@lime-5: #bae637;@lime5: #bae637;@lime-6: #a0d911;@lime6: #a0d911;@lime-7: #7cb305;@lime7: #7cb305;@lime-8: #5b8c00;@lime8: #5b8c00;@lime-9: #3f6600;@lime9: #3f6600;@lime-10: #254000;@lime10: #254000;@colorText: rgba(0, 0, 0, 0.88);@colorTextSecondary: rgba(0, 0, 0, 0.65);@colorTextTertiary: rgba(0, 0, 0, 0.45);@colorTextQuaternary: rgba(0, 0, 0, 0.25);@colorFill: rgba(0, 0, 0, 0.15);@colorFillSecondary: rgba(0, 0, 0, 0.06);@colorFillTertiary: rgba(0, 0, 0, 0.04);@colorFillQuaternary: rgba(0, 0, 0, 0.02);@colorBgLayout: #f5f5f5;@colorBgContainer: #ffffff;@colorBgElevated: #ffffff;@colorBgSpotlight: rgba(0, 0, 0, 0.85);@colorBorder: #d9d9d9;@colorBorderSecondary: #f0f0f0;@colorPrimaryBg: #ebf3ff;@colorPrimaryBgHover: #c2d9ff;@colorPrimaryBorder: #99bdff;@colorPrimaryBorderHover: #709dff;@colorPrimaryHover: #477bff;@colorPrimaryActive: #0e38cf;@colorPrimaryTextHover: #477bff;@colorPrimaryText: #1e53f5;@colorPrimaryTextActive: #0e38cf;@colorSuccessBg: #f6ffed;@colorSuccessBgHover: #d9f7be;@colorSuccessBorder: #b7eb8f;@colorSuccessBorderHover: #95de64;@colorSuccessHover: #95de64;@colorSuccessActive: #389e0d;@colorSuccessTextHover: #73d13d;@colorSuccessText: #52c41a;@colorSuccessTextActive: #389e0d;@colorErrorBg: #fff2f0;@colorErrorBgHover: #fff1f0;@colorErrorBorder: #ffccc7;@colorErrorBorderHover: #ffa39e;@colorErrorHover: #ff7875;@colorErrorActive: #d9363e;@colorErrorTextHover: #ff7875;@colorErrorText: #ff4d4f;@colorErrorTextActive: #d9363e;@colorWarningBg: #fffbe6;@colorWarningBgHover: #fff1b8;@colorWarningBorder: #ffe58f;@colorWarningBorderHover: #ffd666;@colorWarningHover: #ffd666;@colorWarningActive: #d48806;@colorWarningTextHover: #ffc53d;@colorWarningText: #faad14;@colorWarningTextActive: #d48806;@colorInfoBg: #e6f4ff;@colorInfoBgHover: #bae0ff;@colorInfoBorder: #91caff;@colorInfoBorderHover: #69b1ff;@colorInfoHover: #69b1ff;@colorInfoActive: #0958d9;@colorInfoTextHover: #4096ff;@colorInfoText: #1677ff;@colorInfoTextActive: #0958d9;@colorLinkHover: #69b1ff;@colorLinkActive: #0958d9;@colorBgMask: rgba(0, 0, 0, 0.45);@colorWhite: #fff;@fontSizeSM: 12;@fontSizeLG: 16;@fontSizeXL: 20;@fontSizeHeading1: 38;@fontSizeHeading2: 30;@fontSizeHeading3: 24;@fontSizeHeading4: 20;@fontSizeHeading5: 16;@lineHeight: 1.5714285714285714;@lineHeightLG: 1.5;@lineHeightSM: 1.6666666666666667;@lineHeightHeading1: 1.2105263157894737;@lineHeightHeading2: 1.2666666666666666;@lineHeightHeading3: 1.3333333333333333;@lineHeightHeading4: 1.4;@lineHeightHeading5: 1.5;@sizeXXL: 48;@sizeXL: 32;@sizeLG: 24;@sizeMD: 20;@sizeMS: 16;@size: 16;@sizeSM: 12;@sizeXS: 8;@sizeXXS: 4;@controlHeightSM: 24;@controlHeightXS: 16;@controlHeightLG: 40;@motionDurationFast: 0.1s;@motionDurationMid: 0.2s;@motionDurationSlow: 0.3s;@lineWidthBold: 2;@borderRadiusXS: 2;@borderRadiusSM: 4;@borderRadiusLG: 8;@borderRadiusOuter: 4;"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/deepdataspace/server/static/umi.36ffdc32.css b/deepdataspace/server/static/umi.36ffdc32.css deleted file mode 100644 index bbe442d..0000000 --- a/deepdataspace/server/static/umi.36ffdc32.css +++ /dev/null @@ -1,3 +0,0 @@ -*{margin:0;padding:0;box-sizing:border-box}body{background:#f5f5f5;overflow:overlay}#root .ant-page-header{background-color:#fff}#root .ant-pro .ant-layout-header.ant-pro-layout-header-fixed-header{padding:0 44px;background-color:#fff;border-bottom:1px solid #f0f0f0}#root .ant-pro-page-container-affix .ant-affix{top:0!important}#root .ant-pro-top-nav-header-main{padding-inline-start:0}#root .ant-pro-top-nav-header-logo>*:first-child>img{height:40px}#root .ant-image-preview-mask{z-index:900!important}#root .ant-image-preview-wrap{z-index:901!important}#root .ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding:0!important}#root .ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding:0!important}#root .ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,#root .ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{cursor:pointer!important}#root .ant-pro .ant-pro-layout .ant-pro-layout-content{margin-block:0;margin-inline:0}#root .ant-table-tbody>tr>td>.ant-space{flex-wrap:wrap}#root .ant-table-pagination.ant-pagination{margin:16px 0}html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type="range"]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}.dds-lang-selector{height:34px;padding:4px 8px}.dds-lang-selector div{position:relative;width:1.2em;height:1.2em}.dds-lang-selector .cur-lang{position:absolute;font-size:1.2em;line-height:1;left:-5%;top:0;transform:scale(.7);transform-origin:0 0;z-index:1}.dds-lang-selector .cur-lang-light{color:#fff;border:1px solid rgba(0,0,0,.88);background-color:#000000e0}.dds-lang-selector .cur-lang-dark{color:#000;border:1px solid rgba(255,255,255,.88);background-color:#ffffffe0}.dds-lang-selector .change-lang{position:absolute;font-size:1.2em;line-height:1;right:-5%;bottom:0;transform:scale(.5);transform-origin:100% 100%;z-index:0}.dds-lang-selector .change-lang-light{color:#000000e0;border:1px solid rgba(0,0,0,.88)}.dds-lang-selector .change-lang-dark{color:#ffffffe0;border:1px solid rgba(255,255,255,.88)}.dds-column-settings-panel{display:flex;flex-direction:column;padding:0 16px 24px;background-color:#fff;border-radius:2px;outline:none;box-shadow:0 2px 8px #00000026;max-height:400px;overflow:scroll;scrollbar-width:none;-ms-overflow-style:none}.dds-column-settings-panel::-webkit-scrollbar{display:none}.dds-column-settings-panel .item-title{margin:24px 0;font-size:14px;line-height:22px;color:#000}.dds-column-settings-panel .item-content{display:flex;justify-content:center}.dds-column-settings-panel .slider{width:168px;margin-right:26px}.dds-column-settings-panel .num-box{display:flex;align-items:center;justify-content:center;width:94px;height:26px;border:1px solid #d9d9d9;box-shadow:0 2px #00000004;border-radius:2px 0 0 2px}.dds-column-settings-panel .num-box .num{margin:0 8px;width:32px;height:26px;line-height:26px;text-align:center;color:#262626;border:1px solid #d9d9d9}.dds-column-settings-panel .num-box svg{width:16px;height:16px;cursor:pointer}.dds-column-settings-btn{display:flex;justify-content:center;align-items:center;margin-left:16px;width:32px;height:32px;background:#f5f5f5;cursor:pointer}.dds-dynamic-pagination{position:absolute;bottom:0;left:0;margin:20px 0;width:100%;display:flex;justify-content:center}.dds-dynamic-pagination .pagesize-wrap{display:flex;align-items:center;justify-content:center;margin:0 16px}.dds-dynamic-pagination .pagesize-wrap .pagesize-label{color:#000000e0;font-size:14px}.dds-dynamic-pagination .pagesize-wrap .ant-input-number{margin-left:8px}.dds-annnotator-toptools{position:relative;display:flex;justify-content:space-between;align-items:center;padding:0 16px;width:100%;height:56px;color:#fff;background:#1f1f1f;border-bottom:2px solid #141414;pointer-events:auto;z-index:1}.dds-annnotator-toptools-row{display:flex;align-items:center;gap:16px;opacity:.85}.dds-annnotator-toptools-row-icon{padding:8px;color:#fff;border-radius:5px;cursor:pointer}.dds-annnotator-toptools-row-icon span{vertical-align:middle}.dds-annnotator-toptools-row-icon svg{width:20px;height:20px;fill:#fff;vertical-align:middle}.dds-annnotator-toptools-row-icon:hover{background-color:#1e53f5}.dds-annnotator-toptools-row-icon-disable{color:#ffffff40;pointer-events:none}.dds-annnotator-toptools-row-icon-disable svg{fill:#ffffff40}.dds-annnotator-toptools-row-split{margin:5px;width:1px;height:20px;background-color:#3b3838}.dds-annnotator-toptools-progress{position:absolute;left:50%;transform:translate(-50%);font-size:13px;line-height:20px;color:#fff;user-select:none}.dds-annotator-popover-menu{position:absolute;display:flex;flex-direction:column;justify-content:center;background:#fff;border:2px solid #1f4dd8;border-radius:50px;color:#000000d9;font-size:14px;box-shadow:2px 2px 6px 3px #00000026;pointer-events:none}.dds-annotator-popover-menu-content{display:flex;justify-content:space-around}.dds-annotator-popover-menu-text{max-width:150px;line-height:32px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;margin:0 10px}.dds-annotator-objectlist{scrollbar-width:none;-ms-overflow-style:none}.dds-annotator-objectlist::-webkit-scrollbar{display:none}.dds-annotator-objectlist .ant-tabs{color:#ffffff80}.dds-annotator-objectlist .ant-tabs-tab+.ant-tabs-tab{margin:0}.dds-annotator-objectlist .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#fff}.dds-annotator-objectlist .ant-tabs-tab{padding:12px;margin:0}.dds-annotator-objectlist .ant-tabs-tab-active{border-bottom:2px solid #1e53f5}.dds-annotator-objectlist .ant-tabs-nav{margin:0;position:sticky;top:0;z-index:1;background:#000}.dds-annotator-objectlist .ant-collapse-item{scroll-margin:48px 0 0 0}.dds-annotator-objectlist .ant-list{color:#fff}.dds-annotator-objectlist .ant-list-item{padding:0;color:#fff}.dds-annotator-objectlist .objects-selector{width:144px;color:#fff;text-align:left;padding:0}.dds-annotator-objectlist .ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{color:#fff}.dds-annotator-objectlist .objects-select-popup{background:#050505;color:#fff;border-radius:1px;padding:0;margin-top:-10px}.dds-annotator-objectlist .objects-select-popup .ant-select-item{color:#fff;text-align:left}.dds-annotator-objectlist .objects-select-popup .ant-select-item-option-active:not(.ant-select-item-option-disabled){background-color:#4c4c4c}.dds-annotator-objectlist .objects-select-popup .ant-select-item-option-selected:not(.ant-select-item-option-disabled){color:#fff;font-weight:600;background-color:#050505}.dds-annotator-objectlist .ant-select-multiple .ant-select-selection-item{background:rgba(0,0,0,.3);color:#ffffffe6;border-color:#ffffffb3}.dds-annotator-objectlist .ant-select-multiple .ant-select-selection-item-remove{color:#ffffffb3}.dds-annotator-objectlist .tab-header-actions{position:absolute;right:5%;top:50%;transform:translateY(-50%);border:0}.dds-annotator-objectlist .tab-collapse{width:100%}.dds-annotator-objectlist .tab-collapse .collapse-header{position:relative;display:flex;align-items:center;padding:0;width:256px;font-size:14px;color:#fff;background:#1f1f1f}.dds-annotator-objectlist .tab-collapse .collapse-header .label-name{margin:0 15px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dds-annotator-objectlist .tab-collapse .collapse-header .label-count{display:inline-block;padding-inline:5px;margin-inline:10px;height:25px;min-width:25px;line-height:25px;border-radius:5px;background-color:#236bf7;font-size:12px;text-align:center}.dds-annotator-objectlist .tab-collapse .collapse-header .selected-line{position:absolute;left:0;top:0;width:4px;height:100%}.dds-annotator-objectlist .tab-collapse .collapse-header .label-icon{margin-left:14px;margin-right:14px;width:15px;height:15px}.dds-annotator-objectlist .tab-collapse .collapse-header .label-actions{position:absolute;right:5%;top:50%;transform:translateY(-50%)}.dds-annotator-objectlist .tab-collapse .collapse-header .label-btn{border:0}.dds-annotator-objectlist .tab-collapse .collapse-header .down-arrow{transform:rotate(180deg);width:10px;height:10px}.dds-annotator-objectlist .tab-collapse .collapseHeader:hover{background-color:#4b4f52}.dds-annotator-objectlist .tab-collapse .collapse-header-selected .arrow{transform:rotate(0)}.dds-annotator-objectlist .tab-collapse .collapse-item{position:relative;display:flex;justify-items:flex-start;align-items:center;height:35px;padding-left:10px;margin-left:6px;color:#fff;background:#1f1f1f;font-size:14px}.dds-annotator-objectlist .tab-collapse .collapse-item .color-hint{position:absolute;left:3%;margin-left:0;width:.5rem;height:.5rem;border:.1rem solid rgba(255,255,255,.8);border-radius:50%}.dds-annotator-objectlist .tab-collapse .collapse-item .label-icon{margin-left:15px;width:15px;height:15px}.dds-annotator-objectlist .tab-collapse .collapse-item .label{flex:1 1;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dds-annotator-objectlist .tab-collapse .collapse-item .label-actions{margin-right:5%}.dds-annotator-objectlist .tab-collapse .collapse-item .label-btn{border:0}.dds-annotator-objectlist .tab-collapse .collapse-item:hover{background-color:#4b4f52}.dds-annotator-shortcutsinfo{background:#262626!important;max-height:calc(100vh - 60px);overflow:scroll}.dds-annotator-shortcutsinfo .ant-dropdown-menu{padding:0}.dds-annotator-shortcutsinfo .ant-dropdown-menu-item-group-title{color:#fff!important;text-shadow:0 -1px 0 rgba(0,0,0,.12);background-color:#595959;font-weight:600}.dds-annotator-shortcutsinfo .ant-dropdown-menu-item{color:#ffffffe6!important;display:flex;flex-direction:row-reverse}.dds-annotator-shortcutsinfo .ant-dropdown-menu-title-content{align-self:flex-start}.dds-annotator-shortcutsinfo .ant-dropdown-menu-item-icon{margin:0 0 0 8px}.dds-annotator-shortcutsinfo-key{padding:2px 4px;height:22px;min-width:22px;color:#000;justify-content:center;align-items:center;align-self:flex-start;background:#f9fafb;border:1px solid #374151;border-radius:4px;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;display:inline-flex;flex:0 0 22px;font-size:11px;font-weight:600}.dds-annotator-shortcutsinfo-combine{color:#ffffffe6}.dds-annotator-maintoolbar{position:absolute;left:1rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:99;background-color:#212121;border-radius:10px;padding:.5rem;width:50px;pointer-events:auto;font-weight:600}.dds-annotator-maintoolbar .maintoolbar-btn{width:32px;height:32px;margin:.25rem 0;border:0;background-color:transparent;border-radius:5px}.dds-annotator-maintoolbar .maintoolbar-btn svg{scale:1.2}.dds-annotator-maintoolbar .maintoolbar-btn:hover{color:#1e53f5;background-color:#1e53f5;transform:scale(1.2)}.dds-annotator-maintoolbar .maintoolbar-btn-active{color:#1e53f5;background-color:#1e53f5}.dds-annotator-maintoolbar .maintoolbar-divider{width:100%;margin:8px 6px;border-bottom:1px solid #bbb}.dds-annotator-maintoolbar-popover{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.dds-annotator-maintoolbar-popover .popover-title{font-weight:600;font-size:14px;margin-right:10px}.dds-annotator-maintoolbar-popover .popover-key{min-width:30px;justify-content:center;border-radius:2px;padding:2px 5px;color:#000c;box-shadow:0 1px 3px #0000004d,0 1px 2px #0000001a;font-size:12px;font-weight:600}.dds-annotator-maintoolbar-popover .popover-divider{width:100%;margin:10px 0;border-bottom:1px solid rgba(0,0,0,.1)}.dds-annotator-maintoolbar-popover .popover-description{max-width:220px;font-size:13px;color:#000c}.dds-annotator-smart-container{position:absolute;right:1rem;top:1rem;width:375px;box-shadow:2px 2px 12px 3px #0009;opacity:0;transition:opacity .15s ease;pointer-events:none;z-index:9}.dds-annotator-smart-container .ant-card-head{background-color:#1e53f5;color:#fff;font-size:15px;padding:0 15px;min-height:45px}.dds-annotator-smart-container .ant-card-body{padding:12px}.dds-annotator-smart-container-btn{border:0}.dds-annotator-smart-container-title{display:flex;align-items:center;justify-content:space-between}.dds-annotator-smart-container-title-icon{display:flex;align-items:center;justify-content:center;gap:12px}.dds-annotator-smart-container-content{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:12px}.dds-annotator-smart-container-content-item{display:flex;align-items:center;justify-content:space-around;gap:12px;width:100%}.dds-annotator-smart-container-content-param-controls{display:flex;flex-direction:column;width:100%}.dds-annotator-smart-container-content-param-item{display:flex;flex-direction:row;justify-content:space-around}.dds-annotator-smart-container-content-param-item-title{width:100px}.dds-annotator-smart-container-content-param-item-select{flex:1 1}.dds-annotator-smart-container-content-param-item-slider{align-self:flex-end;flex:1 1}.dds-annotator-smart-container-content-instruction{font-size:13px}.dds-annotator-smart-container-content-actions{display:flex;justify-content:space-between;width:100%}.dds-annotator-smart-container-content-column-item{display:flex;flex-direction:column;align-items:flex-start;gap:12px;width:100%}.dds-annotator-smart-container-content-tip-text span{font-weight:700}.dds-annotator-smart-container:hover{box-shadow:2px 2px 12px 3px #0009}.dds-annotator-smart-container-visible{opacity:1;pointer-events:all}.dds-annotator-operation-tip{position:absolute;right:1rem;top:1rem;display:flex;flex-direction:column;gap:10px;z-index:9}.dds-annotator-operation-tip-item{display:flex;justify-content:space-between;align-items:center;padding:5px 10px;background-color:#3c56f899;border-radius:5px}.dds-annotator-operation-tip-item span{margin-right:20px;color:#fff}.dds-annotator-scaletoolbar{position:absolute;bottom:1rem;left:1rem;display:flex;flex-direction:row;justify-content:center;align-items:center;z-index:99;background-color:#212121;border-radius:10px;padding:.4rem .5rem}.dds-annotator-scaletoolbar-btn{width:32px;height:32px;margin:0 .25rem;border:0;background-color:transparent;color:#fff;border-radius:5px;box-shadow:unset}.dds-annotator-scaletoolbar-btn:hover{background-color:#1e53f5;transform:scale(1.2)}.dds-annotator-scaletoolbar-btn-active{color:#1e53f5;background-color:#1e53f5}.dds-annotator-scaletoolbar-btn-disabled{color:#ffffff40;pointer-events:none}.dds-annotator-scaletoolbar-btn-disabled svg{fill:#ffffff40}.dds-annotator-scaletoolbar-scale-text{color:#fffc;margin:0 8px;user-select:none}.dds-annotator-scaletoolbar-divider{height:24px;margin:0 8px;border-left:1px solid #bbb}.dds-annotator-scaletoolbar-popover{border-radius:10px}.dds-annotator-scaletoolbar-popover .ant-popover-inner{padding:0}.dds-annotator-scaletoolbar-pop-container{border-radius:10px;color:#fff;padding-bottom:8px}.dds-annotator-scaletoolbar-pop-container-header{display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid rgba(107,114,128);padding:8px 8px 8px 16px;margin-bottom:8px}.dds-annotator-scaletoolbar-pop-container-btn{width:24px;height:24px;margin:0 .25rem;border:0;background-color:transparent;color:#fff;box-shadow:unset;font-size:12px}.dds-annotator-scaletoolbar-pop-container-btn:hover{background-color:#1e53f5;transform:scale(1.2)}.dds-annotator-scaletoolbar-pop-container-btn:hover svg{fill:#000}.dds-annotator-scaletoolbar-pop-container-option{display:flex;flex-flow:column nowrap;padding:4px 16px;width:240px}.dds-annotator-scaletoolbar-pop-container-option .ant-slider{margin:5px 8px}.dds-annotator-toppagination{display:flex;flex-direction:row;justify-content:center;align-items:center;z-index:99;border-radius:10px;padding:.4rem .5rem}.dds-annotator-toppagination-btn{width:32px;height:32px;margin:0 .5rem;border:0;background-color:transparent;color:#fff;border-radius:5px}.dds-annotator-toppagination-btn:hover{background-color:#1e53f5;transform:scale(1.2)}.dds-annotator-toppagination-btn-disabled{color:#ffffff40;pointer-events:none}.dds-annotator-toppagination-btn-disabled svg{fill:#ffffff40}.dds-annotator-toppagination-scale-text{color:#fffc;margin:0 8px}.dds-annotator-toppagination-divider{height:100%;margin:6px 8px;border-left:1px solid #bbb}.item___v9XQ_{display:flex;flex-flow:row nowrap;border-radius:2px}.item___v9XQ_ .selected___H8gjQ{left:0;top:0;width:4px;height:100%;margin-right:5px}.item___v9XQ_ .info___YLqTh{width:50%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.item___v9XQ_ .action___zGuUy{flex:1 1}.item___v9XQ_ .btn___ean1l{border:0}.item___v9XQ_:hover{background-color:#f0f8ff}.dds-annotator-anno-editor{position:absolute;right:1rem;top:1rem;width:300px;box-shadow:2px 2px 12px 3px #0009;opacity:0;transition:opacity .15s ease;pointer-events:none;z-index:99}.dds-annotator-anno-editor .ant-card-head{background-color:#1e53f5;color:#fff;font-size:15px;padding:0 15px;min-height:45px}.dds-annotator-anno-editor .ant-card-body{padding:12px}.dds-annotator-anno-editor .btn{border:0}.dds-annotator-anno-editor .title{display:flex;align-items:center;justify-content:space-between}.dds-annotator-anno-editor .content{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:12px}.dds-annotator-anno-editor .content .item{display:flex;align-items:center;justify-content:space-around;gap:12px;width:100%}.dds-annotator-anno-editor .content .list{display:flex;flex-direction:column;gap:5px;width:100%;height:150px;overflow-y:scroll}.dds-annotator-anno-editor .content .selector{width:100%}.dds-annotator-anno-editor .content .actions{display:flex;justify-content:space-between;width:100%}.dds-annotator-anno-editor:hover{box-shadow:2px 2px 12px 3px #0009}.dds-annotator-anno-editor-visible{opacity:1;pointer-events:all}.dds-annotator-subtoolbar{position:absolute;left:1rem;top:1rem;display:flex;flex-direction:row;justify-content:center;align-items:center;z-index:99;background-color:#212121;border-radius:10px;padding:.5rem;height:50px;pointer-events:auto;font-weight:600}.dds-annotator-subtoolbar-btn{width:32px;height:32px;margin:0 .25rem;border:0;background-color:transparent;color:#fff;border-radius:5px}.dds-annotator-subtoolbar-btn svg{scale:1.2}.dds-annotator-subtoolbar-btn:hover{color:#fff}.dds-annotator-subtoolbar-btn-limited:hover{background-color:#1e53f5;transform:scale(1.2)}.dds-annotator-subtoolbar-btn-active{background-color:#1e53f5}.dds-annotator-subtoolbar-divider{height:100%;margin:10px 8px;border-left:1px solid #fff}.dds-annotator-subtoolbar-slider{width:100px;margin:0 .25rem}.dds-annotator-subtoolbar-slider .ant-slider-rail{background-color:#37404a}.dds-annotator-subtoolbar-action{height:32px;margin:0 .25rem;border:0;color:#fff;border-radius:5px}.dds-annotator-subtoolbar-popover{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.dds-annotator-subtoolbar-popover-title{font-weight:500;font-size:14px}.dds-annotator-subtoolbar-popover-key{justify-content:center;border-radius:2px;margin-left:10px;padding:2px 5px;color:#000c;box-shadow:0 1px 3px #0000004d,0 1px 2px #0000001a;font-size:12px;font-weight:500}.dds-annotator-subtoolbar-popover-divider{width:100%;margin:10px 0;border-bottom:1px solid rgba(0,0,0,.1)}.dds-annotator-imageview-reload-cover{position:absolute;left:0;top:0;width:100%;height:100%;z-index:2}.dds-annotator-imageview-reload-cover img{display:block;position:absolute;left:0;top:0;width:100%;height:100%}.dds-annotator-imageview-reload-cover svg{position:absolute;left:0;top:0;width:100%;height:100%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.dds-annotator-imageview-reload-cover .content-box{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f0f0f080}.dds-annotator-imageview-reload-cover .reload-trigger{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:0}.dds-annotator-imageview-reload-cover .reload-trigger span{width:24px;height:24px}.dds-annotator-imageview-canvas{position:absolute;left:0;top:0}.dds-annotator .edit-wrap{position:absolute;inset:0;font-size:0;user-select:none;pointer-events:auto}.dds-annotator .edit-wrap img{display:none}.dds-annotator .edit-wrap canvas{position:absolute;inset:0;cursor:crosshair}.dds-annotator-dropdown-options{display:flex;flex-direction:column;background-color:#fff;border-radius:5px;overflow:hidden}.dds-annotator-dropdown-options-object{position:relative;padding:5px 10px 5px 20px;min-width:120px;user-select:none;cursor:pointer}.dds-annotator-dropdown-options-object:hover{color:#1e53f5;background-color:#e2e6f9}.dds-annotator-dropdown-options-object-dot{position:absolute;top:50%;left:8px;transform:translateY(-50%);width:4px;height:4px;border-radius:50%;background-color:red}.dds-annotator-editor{top:0;left:0;z-index:100;position:relative;width:100%;height:100vh;background-color:#000;overflow:hidden}.dds-annotator-editor .editor-container{position:absolute;inset:56px 0 0;display:flex;flex-direction:row;pointer-events:auto}.dds-annotator-editor .editor-container .left-slider{position:relative;width:0;height:100%;background:#262626;border-right:2px solid #141414;backdrop-filter:blur(12px);overflow-y:scroll;overflow-x:hidden;z-index:1}.dds-annotator-editor .editor-container .center-content{position:relative;flex:1 1;height:100%}.dds-annotator-editor .editor-container .right-slider{position:relative;width:256px;height:100%;background:#262626;border-left:2px solid #141414;backdrop-filter:blur(12px);overflow-y:scroll;overflow-x:hidden;z-index:1}.dds-annotator-preview{position:fixed;top:0;left:0;width:100%;height:100%;z-index:100;background-color:#000000b3}.dds-annotator-preview .top-tools{background:linear-gradient(180deg,rgba(0,0,0,.8) 0%,rgba(0,0,0,.15) 100%)!important;border:none!important}.dds-annotator-preview .switch{position:absolute;bottom:40px;display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-top:-22px;color:#ffffffd9;background:rgba(0,0,0,.5);border-radius:50%;cursor:pointer;pointer-events:auto;z-index:1}.dds-annotator-preview .switch-disable{color:#ffffff40;cursor:not-allowed}.dds-annotator-preview .switch-left{right:calc(50vw + 32px)}.dds-annotator-preview .switch-right{left:calc(50vw + 32px)}.dds-annotator-preview .info-wrap{position:absolute;right:40px;top:50%;transform:translateY(-50%);pointer-events:auto;user-select:none}.dds-annotator-preview .info-wrap .info-box{width:248px;max-height:calc(100vh - 192px);padding:24px 20px 0;display:flex;flex-direction:column;background-color:#00000073;color:#fff;border-radius:4px;pointer-events:auto;overflow-y:scroll;z-index:1;user-select:text;scrollbar-width:none;-ms-overflow-style:none}.dds-annotator-preview .info-wrap .info-box::-webkit-scrollbar{display:none}.dds-annotator-preview .info-wrap .info-box .item{max-width:100%;margin-bottom:16px;text-align:left;word-break:break-all;font-size:14px;line-height:22px}.dds-annotator-preview .info-wrap .info-box .item:last-child{margin-bottom:24px}.dds-annotator-preview .info-wrap .bottom-mask{position:absolute;bottom:0;left:0;width:100%;height:40px;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,#000 100%);opacity:.45}.dds-annotator-preview .hide-info-btn{position:absolute;right:-24px;top:50%;transform:translateY(-50%);width:24px;height:48px;line-height:48px;background-color:#00000073;border-radius:0 48px 48px 0;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;cursor:pointer;pointer-events:auto;z-index:1}.dds-annotator-preview .show-info-btn{position:absolute;right:0;top:50%;transform:translateY(-50%);width:24px;height:48px;line-height:48px;background-color:#00000073;border-radius:48px 0 0 48px;display:flex;align-items:center;justify-content:flex-start;padding-left:8px;cursor:pointer;pointer-events:auto;z-index:1}.dds-annotator-preview .show-info-btn svg{transform:rotate(180deg)}.dds-annotator-view{position:relative;display:flex} - -/*# sourceMappingURL=umi.36ffdc32.css.map*/ \ No newline at end of file diff --git a/deepdataspace/server/static/umi.56db2ca8.js b/deepdataspace/server/static/umi.56db2ca8.js new file mode 100644 index 0000000..2dc3dba --- /dev/null +++ b/deepdataspace/server/static/umi.56db2ca8.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=(xu,kl,Ot)=>kl in xu?mg(xu,kl,{enumerable:!0,configurable:!0,writable:!0,value:Ot}):xu[kl]=Ot,Xa=(xu,kl)=>{for(var Ot in kl||(kl={}))yg.call(kl,Ot)&&_f(xu,Ot,kl[Ot]);if(Hf)for(var Ot of Hf(kl))bg.call(kl,Ot)&&_f(xu,Ot,kl[Ot]);return xu},Gs=(xu,kl)=>pg(xu,hg(kl));var xf=(xu,kl,Ot)=>new Promise((If,M)=>{var b=t=>{try{a(Ot.next(t))}catch(o){M(o)}},e=t=>{try{a(Ot.throw(t))}catch(o){M(o)}},a=t=>t.done?If(t.value):Promise.resolve(t.value).then(b,e);a((Ot=Ot.apply(xu,kl)).next())});(function(){var xu={26134:function(M,b,e){"use strict";e.r(b),e.d(b,{blue:function(){return le},cyan:function(){return ee},geekblue:function(){return Q},generate:function(){return B},gold:function(){return O},gray:function(){return H},green:function(){return U},grey:function(){return I},lime:function(){return K},magenta:function(){return q},orange:function(){return $},presetDarkPalettes:function(){return F},presetPalettes:function(){return T},presetPrimaryColors:function(){return w},purple:function(){return G},red:function(){return A},volcano:function(){return L},yellow:function(){return P}});var a=e(20117),t=e(76981),o=2,s=.16,n=.05,c=.05,l=.15,d=5,h=4,p=[{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 y(Y){var D=Y.r,_=Y.g,ue=Y.b,be=(0,a.py)(D,_,ue);return{h:be.h*360,s:be.s,v:be.v}}function g(Y){var D=Y.r,_=Y.g,ue=Y.b;return"#".concat((0,a.vq)(D,_,ue,!1))}function S(Y,D,_){var ue=_/100,be={r:(D.r-Y.r)*ue+Y.r,g:(D.g-Y.g)*ue+Y.g,b:(D.b-Y.b)*ue+Y.b};return be}function j(Y,D,_){var ue;return Math.round(Y.h)>=60&&Math.round(Y.h)<=240?ue=_?Math.round(Y.h)-o*D:Math.round(Y.h)+o*D:ue=_?Math.round(Y.h)+o*D:Math.round(Y.h)-o*D,ue<0?ue+=360:ue>=360&&(ue-=360),ue}function x(Y,D,_){if(Y.h===0&&Y.s===0)return Y.s;var ue;return _?ue=Y.s-s*D:D===h?ue=Y.s+s:ue=Y.s+n*D,ue>1&&(ue=1),_&&D===d&&ue>.1&&(ue=.1),ue<.06&&(ue=.06),Number(ue.toFixed(2))}function Z(Y,D,_){var ue;return _?ue=Y.v+c*D:ue=Y.v-l*D,ue>1&&(ue=1),Number(ue.toFixed(2))}function B(Y){for(var D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},_=[],ue=(0,t.uA)(Y),be=d;be>0;be-=1){var ce=y(ue),he=g((0,t.uA)({h:j(ce,be,!0),s:x(ce,be,!0),v:Z(ce,be,!0)}));_.push(he)}_.push(g(ue));for(var Fe=1;Fe<=h;Fe+=1){var Je=y(ue),et=g((0,t.uA)({h:j(Je,Fe),s:x(Je,Fe),v:Z(Je,Fe)}));_.push(et)}return D.theme==="dark"?p.map(function(ae){var yt=ae.index,Pt=ae.opacity,bt=g(S((0,t.uA)(D.backgroundColor||"#141414"),(0,t.uA)(_[yt]),Pt*100));return bt}):_}var w={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"},T={},F={};Object.keys(w).forEach(function(Y){T[Y]=B(w[Y]),T[Y].primary=T[Y][5],F[Y]=B(w[Y],{theme:"dark",backgroundColor:"#141414"}),F[Y].primary=F[Y][5]});var A=T.red,L=T.volcano,O=T.gold,$=T.orange,P=T.yellow,K=T.lime,U=T.green,ee=T.cyan,le=T.blue,Q=T.geekblue,G=T.purple,q=T.magenta,I=T.grey,H=T.grey},57793:function(M,b,e){"use strict";e.d(b,{E4:function(){return Sr},jG:function(){return H},t2:function(){return _e},fp:function(){return Pe},xy:function(){return xn}});var a=e(29140),t=e(57370);function o(kt){for(var Sn=0,Dn,Qn=0,br=kt.length;br>=4;++Qn,br-=4)Dn=kt.charCodeAt(Qn)&255|(kt.charCodeAt(++Qn)&255)<<8|(kt.charCodeAt(++Qn)&255)<<16|(kt.charCodeAt(++Qn)&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(br){case 3:Sn^=(kt.charCodeAt(Qn+2)&255)<<16;case 2:Sn^=(kt.charCodeAt(Qn+1)&255)<<8;case 1:Sn^=kt.charCodeAt(Qn)&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),c=e.t(n,2),l=e(27903),d=e(7637),h=e(60412),p=e(14346),y=e(37734),g="%",S=function(){function kt(Sn){(0,h.Z)(this,kt),(0,y.Z)(this,"instanceId",void 0),(0,y.Z)(this,"cache",new Map),this.instanceId=Sn}return(0,p.Z)(kt,[{key:"get",value:function(Dn){return this.cache.get(Dn.join(g))||null}},{key:"update",value:function(Dn,Qn){var br=Dn.join(g),Hr=this.cache.get(br),Jr=Qn(Hr);Jr===null?this.cache.delete(br):this.cache.set(br,Jr)}}]),kt}(),j=S,x=null,Z="data-token-hash",B="data-css-hash",w="data-cache-path",T="__cssinjs_instance__";function F(){var kt=Math.random().toString(12).slice(2);if(typeof document!="undefined"&&document.head&&document.body){var Sn=document.body.querySelectorAll("style[".concat(B,"]"))||[],Dn=document.head.firstChild;Array.from(Sn).forEach(function(br){br[T]=br[T]||kt,br[T]===kt&&document.head.insertBefore(br,Dn)});var Qn={};Array.from(document.querySelectorAll("style[".concat(B,"]"))).forEach(function(br){var Hr=br.getAttribute(B);if(Qn[Hr]){if(br[T]===kt){var Jr;(Jr=br.parentNode)===null||Jr===void 0||Jr.removeChild(br)}}else Qn[Hr]=!0})}return new j(kt)}var A=n.createContext({hashPriority:"low",cache:F(),defaultCache:!0}),L=function(Sn){var Dn=Sn.children,Qn=_objectWithoutProperties(Sn,x),br=React.useContext(A),Hr=useMemo(function(){var Jr=_objectSpread({},br);Object.keys(Qn).forEach(function(Wr){var ua=Qn[Wr];Qn[Wr]!==void 0&&(Jr[Wr]=ua)});var ir=Qn.cache;return Jr.cache=Jr.cache||F(),Jr.defaultCache=!ir&&br.defaultCache,Jr},[br,Qn],function(Jr,ir){return!isEqual(Jr[0],ir[0],!0)||!isEqual(Jr[1],ir[1],!0)});return React.createElement(A.Provider,{value:Hr},Dn)},O=A,$=e(38790),P=e(19075),K=e(39678),U=e(28314);function ee(kt,Sn){if(kt.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(ir){if(!Jr)Jr=void 0;else{var Wr,ua;Jr=(Wr=Jr)===null||Wr===void 0||(ua=Wr.map)===null||ua===void 0?void 0:ua.get(ir)}}),(Qn=Jr)!==null&&Qn!==void 0&&Qn.value&&Hr&&(Jr.value[1]=this.cacheCallTimes++),(br=Jr)===null||br===void 0?void 0:br.value}},{key:"get",value:function(Dn){var Qn;return(Qn=this.internalGet(Dn,!0))===null||Qn===void 0?void 0:Qn[0]}},{key:"has",value:function(Dn){return!!this.internalGet(Dn)}},{key:"set",value:function(Dn,Qn){var br=this;if(!this.has(Dn)){if(this.size()+1>kt.MAX_CACHE_SIZE+kt.MAX_CACHE_OFFSET){var Hr=this.keys.reduce(function(ua,Na){var wa=(0,U.Z)(ua,2),oo=wa[1];return br.internalGet(Na)[1]0,"[Ant Design CSS-in-JS] Theme should have at least one derivative function."),G+=1}return(0,p.Z)(kt,[{key:"getDerivativeToken",value:function(Dn){return this.derivatives.reduce(function(Qn,br){return br(Dn,Qn)},void 0)}}]),kt}(),I=new le;function H(kt){var Sn=Array.isArray(kt)?kt:[kt];return I.has(Sn)||I.set(Sn,new q(Sn)),I.get(Sn)}var Y=new WeakMap;function D(kt){var Sn=Y.get(kt)||"";return Sn||(Object.keys(kt).forEach(function(Dn){var Qn=kt[Dn];Sn+=Dn,Qn instanceof q?Sn+=Qn.id:Qn&&(0,$.Z)(Qn)==="object"?Sn+=D(Qn):Sn+=Qn}),Y.set(kt,Sn)),Sn}function _(kt,Sn){return s("".concat(Sn,"_").concat(D(kt)))}var ue="random-".concat(Date.now(),"-").concat(Math.random()).replace(/\./g,""),be="_bAmBoO_";function ce(kt,Sn,Dn){if((0,P.Z)()){var Qn,br;(0,K.hq)(kt,ue);var Hr=document.createElement("div");Hr.style.position="fixed",Hr.style.left="0",Hr.style.top="0",Sn==null||Sn(Hr),document.body.appendChild(Hr);var Jr=Dn?Dn(Hr):(Qn=getComputedStyle(Hr).content)===null||Qn===void 0?void 0:Qn.includes(be);return(br=Hr.parentNode)===null||br===void 0||br.removeChild(Hr),(0,K.jL)(ue),Jr}return!1}var he=void 0;function Fe(){return he===void 0&&(he=ce("@layer ".concat(ue," { .").concat(ue,' { content: "').concat(be,'"!important; } }'),function(kt){kt.className=ue})),he}var Je=void 0;function et(){return Je===void 0&&(Je=ce(":where(.".concat(ue,') { content: "').concat(be,'"!important; }'),function(kt){kt.className=ue})),Je}var ae=void 0;function yt(){return ae===void 0&&(ae=ce(".".concat(ue," { inset-block: 93px !important; }"),function(kt){kt.className=ue},function(kt){return getComputedStyle(kt).bottom==="93px"})),ae}var Pt=e(81334),bt=(0,t.Z)({},c),Ct=bt.useInsertionEffect,Le=function(Sn,Dn,Qn){n.useMemo(Sn,Qn),(0,Pt.Z)(function(){return Dn(!0)},Qn)},Ke=Ct?function(kt,Sn,Dn){return Ct(function(){return kt(),Sn()},Dn)}:Le,st=Ke,We=(0,t.Z)({},c),ge=We.useInsertionEffect,X=function(Sn){var Dn=[],Qn=!1;function br(Hr){Qn||Dn.push(Hr)}return n.useEffect(function(){return Qn=!1,function(){Qn=!0,Dn.length&&Dn.forEach(function(Hr){return Hr()})}},Sn),br},W=function(){return function(Sn){Sn()}},R=typeof ge!="undefined"?X:W,N=R;function oe(){return!1}var ve=!1;function te(){return ve}var me=oe;if(!1)var we,xe;function Se(kt,Sn,Dn,Qn,br){var Hr=n.useContext(O),Jr=Hr.cache,ir=[kt].concat((0,a.Z)(Sn)),Wr=ir.join("_"),ua=N([Wr]),Na=me(),wa=function(eo){Jr.update(ir,function(jo){var bo=jo||[],Da=(0,U.Z)(bo,2),Ja=Da[0],Po=Ja===void 0?0:Ja,oi=Da[1],ii=oi,po=ii||Dn(),Oi=[Po,po];return eo?eo(Oi):Oi})};n.useMemo(function(){wa()},[Wr]);var oo=Jr.get(ir),Oo=oo[1];return st(function(){br==null||br(Oo)},function(Ro){return wa(function(eo){var jo=(0,U.Z)(eo,2),bo=jo[0],Da=jo[1];return Ro&&bo===0&&(br==null||br(Oo)),[bo+1,Da]}),function(){Jr.update(ir,function(eo){var jo=eo||[],bo=(0,U.Z)(jo,2),Da=bo[0],Ja=Da===void 0?0:Da,Po=bo[1],oi=Ja-1;return oi===0?(ua(function(){return Qn==null?void 0:Qn(Po,!1)}),null):[Ja-1,Po]})}},[Wr]),Oo}var ke={},ne="css",re=new Map;function se(kt){re.set(kt,(re.get(kt)||0)+1)}function Ee(kt,Sn){if(typeof document!="undefined"){var Dn=document.querySelectorAll("style[".concat(Z,'="').concat(kt,'"]'));Dn.forEach(function(Qn){if(Qn[T]===Sn){var br;(br=Qn.parentNode)===null||br===void 0||br.removeChild(Qn)}})}}var Re=0;function fe(kt,Sn){re.set(kt,(re.get(kt)||0)-1);var Dn=Array.from(re.keys()),Qn=Dn.filter(function(br){var Hr=re.get(br)||0;return Hr<=0});Dn.length-Qn.length>Re&&Qn.forEach(function(br){Ee(br,Sn),re.delete(br)})}var _e=function(Sn,Dn,Qn,br){var Hr=Qn.getDerivativeToken(Sn),Jr=(0,t.Z)((0,t.Z)({},Hr),Dn);return br&&(Jr=br(Jr)),Jr};function Pe(kt,Sn){var Dn=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Qn=(0,n.useContext)(O),br=Qn.cache.instanceId,Hr=Dn.salt,Jr=Hr===void 0?"":Hr,ir=Dn.override,Wr=ir===void 0?ke:ir,ua=Dn.formatToken,Na=Dn.getComputedToken,wa=n.useMemo(function(){return Object.assign.apply(Object,[{}].concat((0,a.Z)(Sn)))},[Sn]),oo=n.useMemo(function(){return D(wa)},[wa]),Oo=n.useMemo(function(){return D(Wr)},[Wr]),Ro=Se("token",[Jr,kt.id,oo,Oo],function(){var eo=Na?Na(wa,Wr,kt):_e(wa,Wr,kt,ua),jo=_(eo,Jr);eo._tokenKey=jo,se(jo);var bo="".concat(ne,"-").concat(s(jo));return eo._hashId=bo,[eo,bo]},function(eo){fe(eo[0]._tokenKey,br)});return Ro}var ze=e(60698),Qe={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},gt=Qe,ut="-ms-",rt="-moz-",qe="-webkit-",Ve="comm",tt="rule",Oe="decl",Me="@page",Ne="@media",Te="@import",Be="@charset",nt="@viewport",ot="@supports",wt="@document",Et="@namespace",nn="@keyframes",$t="@font-face",fn="@counter-style",ln="@font-feature-values",Wt="@layer",$e=Math.abs,De=String.fromCharCode,jt=Object.assign;function Ft(kt,Sn){return Qt(kt,0)^45?(((Sn<<2^Qt(kt,0))<<2^Qt(kt,1))<<2^Qt(kt,2))<<2^Qt(kt,3):0}function Xe(kt){return kt.trim()}function at(kt,Sn){return(kt=Sn.exec(kt))?kt[0]:kt}function Bt(kt,Sn,Dn){return kt.replace(Sn,Dn)}function Zt(kt,Sn){return kt.indexOf(Sn)}function Qt(kt,Sn){return kt.charCodeAt(Sn)|0}function rn(kt,Sn,Dn){return kt.slice(Sn,Dn)}function hn(kt){return kt.length}function on(kt){return kt.length}function Rn(kt,Sn){return Sn.push(kt),kt}function zn(kt,Sn){return kt.map(Sn).join("")}function lr(kt,Sn){return kt.filter(function(Dn){return!at(Dn,Sn)})}function ur(kt,Sn){for(var Dn="",Qn=0;Qn0?Qt(mt,--pn):0,Vt--,en===10&&(Vt=1,Kt--),en}function gn(){return en=pn2||vt(en)>3?"":" "}function Cn(kt){for(;gn();)switch(vt(en)){case 0:append(Nn(pn-1),kt);break;case 2:append(Nt(en),kt);break;default:append(from(en),kt)}return kt}function Ln(kt,Sn){for(;--Sn&&gn()&&!(en<48||en>102||en>57&&en<65||en>70&&en<97););return ft(kt,tr()+(Sn<6&&kn()==32&&gn()==32))}function hr(kt){for(;gn();)switch(en){case kt:return pn;case 34:case 39:kt!==34&&kt!==39&&hr(en);break;case 40:kt===41&&hr(kt);break;case 92:gn();break}return pn}function qn(kt,Sn){for(;gn()&&kt+en!==57;)if(kt+en===84&&kn()===47)break;return"/*"+ft(Sn,pn-1)+"*"+De(kt===47?kt:gn())}function Nn(kt){for(;!vt(kn());)gn();return ft(kt,pn)}function $r(kt){return Mt(gr("",null,null,null,[""],kt=St(kt),0,[0],kt))}function gr(kt,Sn,Dn,Qn,br,Hr,Jr,ir,Wr){for(var ua=0,Na=0,wa=Jr,oo=0,Oo=0,Ro=0,eo=1,jo=1,bo=1,Da=0,Ja="",Po=br,oi=Hr,ii=Qn,po=Ja;jo;)switch(Ro=Da,Da=gn()){case 40:if(Ro!=108&&Qt(po,wa-1)==58){Zt(po+=Bt(Nt(Da),"&","&\f"),"&\f")!=-1&&(bo=-1);break}case 34:case 39:case 91:po+=Nt(Da);break;case 9:case 10:case 13:case 32:po+=Xt(Ro);break;case 92:po+=Ln(tr()-1,7);continue;case 47:switch(kn()){case 42:case 47:Rn(Pr(qn(gn(),tr()),Sn,Dn,Wr),Wr);break;default:po+="/"}break;case 123*eo:ir[ua++]=hn(po)*bo;case 125*eo:case 59:case 0:switch(Da){case 0:case 125:jo=0;case 59+Na:bo==-1&&(po=Bt(po,/\f/g,"")),Oo>0&&hn(po)-wa&&Rn(Oo>32?Fn(po+";",Qn,Dn,wa-1,Wr):Fn(Bt(po," ","")+";",Qn,Dn,wa-2,Wr),Wr);break;case 59:po+=";";default:if(Rn(ii=aa(po,Sn,Dn,ua,Na,br,ir,Ja,Po=[],oi=[],wa,Hr),Hr),Da===123)if(Na===0)gr(po,Sn,ii,ii,Po,Hr,wa,ir,oi);else switch(oo===99&&Qt(po,3)===110?100:oo){case 100:case 108:case 109:case 115:gr(kt,ii,ii,Qn&&Rn(aa(kt,ii,ii,0,0,br,ir,Ja,br,Po=[],wa,oi),oi),br,oi,wa,ir,Qn?Po:oi);break;default:gr(po,ii,ii,ii,[""],oi,0,ir,oi)}}ua=Na=Oo=0,eo=bo=1,Ja=po="",wa=Jr;break;case 58:wa=1+hn(po),Oo=Ro;default:if(eo<1){if(Da==123)--eo;else if(Da==125&&eo++==0&&mn()==125)continue}switch(po+=De(Da),Da*eo){case 38:bo=Na>0?1:(po+="\f",-1);break;case 44:ir[ua++]=(hn(po)-1)*bo,bo=1;break;case 64:kn()===45&&(po+=Nt(gn())),oo=kn(),Na=wa=hn(Ja=po+=Nn(tr())),Da++;break;case 45:Ro===45&&hn(po)==2&&(eo=0)}}return Hr}function aa(kt,Sn,Dn,Qn,br,Hr,Jr,ir,Wr,ua,Na,wa){for(var oo=br-1,Oo=br===0?Hr:[""],Ro=on(Oo),eo=0,jo=0,bo=0;eo0?Oo[Da]+" "+Ja:Bt(Ja,/&\f/g,Oo[Da])))&&(Wr[bo++]=Po);return pt(kt,Sn,Dn,br===0?tt:ir,Wr,ua,Na,wa)}function Pr(kt,Sn,Dn,Qn){return pt(kt,Sn,Dn,Ve,De(Yt()),rn(kt,2,-2),0,Qn)}function Fn(kt,Sn,Dn,Qn,br){return pt(kt,Sn,Dn,Oe,rn(kt,0,Qn),rn(kt,Qn+1,-1),Qn,br)}function En(kt,Sn){var Dn=Sn.path,Qn=Sn.parentSelectors;devWarning(!1,"[Ant Design CSS-in-JS] ".concat(Dn?"Error in ".concat(Dn,": "):"").concat(kt).concat(Qn.length?" Selector: ".concat(Qn.join(" | ")):""))}var wn=function(Sn,Dn,Qn){if(Sn==="content"){var br=/(attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\(|(no-)?(open|close)-quote/,Hr=["normal","none","initial","inherit","unset"];(typeof Dn!="string"||Hr.indexOf(Dn)===-1&&!br.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,"\"'`."),Qn)}},ar=null,fr=function(Sn,Dn,Qn){Sn==="animation"&&Qn.hashId&&Dn!=="none"&&lintWarning("You seem to be using hashed animation '".concat(Dn,"', in which case 'animationName' with Keyframe as value is recommended."),Qn)},Kr=null;function ea(kt){var Sn,Dn=((Sn=kt.match(/:not\(([^)]*)\)/))===null||Sn===void 0?void 0:Sn[1])||"",Qn=Dn.split(/(\[[^[]*])|(?=[.#])/).filter(function(br){return br});return Qn.length>1}function ya(kt){return kt.parentSelectors.reduce(function(Sn,Dn){return Sn?Dn.includes("&")?Dn.replace(/&/g,Sn):"".concat(Sn," ").concat(Dn):Dn},"")}var vr=function(Sn,Dn,Qn){var br=ya(Qn),Hr=br.match(/:not\([^)]*\)/g)||[];Hr.length>0&&Hr.some(ea)&&lintWarning("Concat ':not' selector not support in legacy browsers.",Qn)},zr=null,Oa=function(Sn,Dn,Qn){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."),Qn);return;case"margin":case"padding":case"borderWidth":case"borderStyle":if(typeof Dn=="string"){var br=Dn.split(" ").map(function(ir){return ir.trim()});br.length===4&&br[1]!==br[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."),Qn)}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."),Qn);return;case"borderRadius":if(typeof Dn=="string"){var Hr=Dn.split("/").map(function(ir){return ir.trim()}),Jr=Hr.reduce(function(ir,Wr){if(ir)return ir;var ua=Wr.split(" ").map(function(Na){return Na.trim()});return ua.length>=2&&ua[0]!==ua[1]||ua.length===3&&ua[1]!==ua[2]||ua.length===4&&ua[2]!==ua[3]?!0:ir},!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."),Qn)}return;default:}},va=null,Vn=function(Sn,Dn,Qn){Qn.parentSelectors.some(function(br){var Hr=br.split(",");return Hr.some(function(Jr){return Jr.split("&").length>2})})&&lintWarning("Should not use more than one `&` in a selector.",Qn)},Bn=null,pr="data-ant-cssinjs-cache-path",qr="_FILE_STYLE__";function Er(kt){return Object.keys(kt).map(function(Sn){var Dn=kt[Sn];return"".concat(Sn,":").concat(Dn)}).join(";")}var At,tn=!0;function yn(kt){var Sn=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;At=kt,tn=Sn}function lo(){if(!At&&(At={},(0,P.Z)())){var kt=document.createElement("div");kt.className=pr,kt.style.position="fixed",kt.style.visibility="hidden",kt.style.top="-9999px",document.body.appendChild(kt);var Sn=getComputedStyle(kt).content||"";Sn=Sn.replace(/^"/,"").replace(/"$/,""),Sn.split(";").forEach(function(br){var Hr=br.split(":"),Jr=(0,U.Z)(Hr,2),ir=Jr[0],Wr=Jr[1];At[ir]=Wr});var Dn=document.querySelector("style[".concat(pr,"]"));if(Dn){var Qn;tn=!1,(Qn=Dn.parentNode)===null||Qn===void 0||Qn.removeChild(Dn)}document.body.removeChild(kt)}}function Ao(kt){return lo(),!!At[kt]}function Ka(kt){var Sn=At[kt],Dn=null;if(Sn&&(0,P.Z)())if(tn)Dn=qr;else{var Qn=document.querySelector("style[".concat(B,'="').concat(At[kt],'"]'));Qn?Dn=Qn.innerHTML:delete At[kt]}return[Dn,Sn]}var Qa=(0,P.Z)(),qa="_skip_check_",$o="_multi_value_";function _o(kt){var Sn=ur($r(kt),zt);return Sn.replace(/\{%%%\:[^;];}/g,";")}function yo(kt){return(0,$.Z)(kt)==="object"&&kt&&(qa in kt||$o in kt)}function ct(kt,Sn,Dn){if(!Sn)return kt;var Qn=".".concat(Sn),br=Dn==="low"?":where(".concat(Qn,")"):Qn,Hr=kt.split(",").map(function(Jr){var ir,Wr=Jr.trim().split(/\s+/),ua=Wr[0]||"",Na=((ir=ua.match(/^\w+/))===null||ir===void 0?void 0:ir[0])||"";return ua="".concat(Na).concat(br).concat(ua.slice(Na.length)),[ua].concat((0,a.Z)(Wr.slice(1))).join(" ")});return Hr.join(",")}var xt=function kt(Sn){var Dn=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Qn=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{root:!0,parentSelectors:[]},br=Qn.root,Hr=Qn.injectHash,Jr=Qn.parentSelectors,ir=Dn.hashId,Wr=Dn.layer,ua=Dn.path,Na=Dn.hashPriority,wa=Dn.transformers,oo=wa===void 0?[]:wa,Oo=Dn.linters,Ro=Oo===void 0?[]:Oo,eo="",jo={};function bo(ii){var po=ii.getName(ir);if(!jo[po]){var Oi=kt(ii.style,Dn,{root:!1,parentSelectors:Jr}),Ni=(0,U.Z)(Oi,1),ni=Ni[0];jo[po]="@keyframes ".concat(ii.getName(ir)).concat(ni)}}function Da(ii){var po=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return ii.forEach(function(Oi){Array.isArray(Oi)?Da(Oi,po):Oi&&po.push(Oi)}),po}var Ja=Da(Array.isArray(Sn)?Sn:[Sn]);if(Ja.forEach(function(ii){var po=typeof ii=="string"&&!br?{}:ii;if(typeof po=="string")eo+="".concat(po,` +`);else if(po._keyframe)bo(po);else{var Oi=oo.reduce(function(Ni,ni){var Di;return(ni==null||(Di=ni.visit)===null||Di===void 0?void 0:Di.call(ni,Ni))||Ni},po);Object.keys(Oi).forEach(function(Ni){var ni=Oi[Ni];if((0,$.Z)(ni)==="object"&&ni&&(Ni!=="animationName"||!ni._keyframe)&&!yo(ni)){var Di=!1,Ri=Ni.trim(),ji=!1;(br||Hr)&&ir?Ri.startsWith("@")?Di=!0:Ri=ct(Ni,ir,Na):br&&!ir&&(Ri==="&"||Ri==="")&&(Ri="",ji=!0);var wi=kt(ni,Dn,{root:ji,injectHash:Di,parentSelectors:[].concat((0,a.Z)(Jr),[Ri])}),Ui=(0,U.Z)(wi,2),zi=Ui[0],vo=Ui[1];jo=(0,t.Z)((0,t.Z)({},jo),vo),eo+="".concat(Ri).concat(zi)}else{let ai=function(Uo,Yo){var xi=Uo.replace(/[A-Z]/g,function(_i){return"-".concat(_i.toLowerCase())}),Hi=Yo;!gt[Uo]&&typeof Hi=="number"&&Hi!==0&&(Hi="".concat(Hi,"px")),Uo==="animationName"&&Yo!==null&&Yo!==void 0&&Yo._keyframe&&(bo(Yo),Hi=Yo.getName(ir)),eo+="".concat(xi,":").concat(Hi,";")};var ro,ci=(ro=ni==null?void 0:ni.value)!==null&&ro!==void 0?ro:ni;(0,$.Z)(ni)==="object"&&ni!==null&&ni!==void 0&&ni[$o]&&Array.isArray(ci)?ci.forEach(function(Uo){ai(Ni,Uo)}):ai(Ni,ci)}})}}),!br)eo="{".concat(eo,"}");else if(Wr&&Fe()){var Po=Wr.split(","),oi=Po[Po.length-1].trim();eo="@layer ".concat(oi," {").concat(eo,"}"),Po.length>1&&(eo="@layer ".concat(Wr,"{%%%:%}").concat(eo))}return[eo,jo]};function Ce(kt,Sn){return s("".concat(kt.join("%")).concat(Sn))}function un(){return null}function xn(kt,Sn){var Dn=kt.token,Qn=kt.path,br=kt.hashId,Hr=kt.layer,Jr=kt.nonce,ir=kt.clientOnly,Wr=kt.order,ua=Wr===void 0?0:Wr,Na=n.useContext(O),wa=Na.autoClear,oo=Na.mock,Oo=Na.defaultCache,Ro=Na.hashPriority,eo=Na.container,jo=Na.ssrInline,bo=Na.transformers,Da=Na.linters,Ja=Na.cache,Po=Dn._tokenKey,oi=[Po].concat((0,a.Z)(Qn)),ii=Qa,po=Se("style",oi,function(){var Ri=oi.join("|");if(Ao(Ri)){var ji=Ka(Ri),wi=(0,U.Z)(ji,2),Ui=wi[0],zi=wi[1];if(Ui)return[Ui,Po,zi,{},ir,ua]}var vo=Sn(),ro=xt(vo,{hashId:br,hashPriority:Ro,layer:Hr,path:Qn.join("-"),transformers:bo,linters:Da}),ci=(0,U.Z)(ro,2),ai=ci[0],Uo=ci[1],Yo=_o(ai),xi=Ce(oi,Yo);return[Yo,Po,xi,Uo,ir,ua]},function(Ri,ji){var wi=(0,U.Z)(Ri,3),Ui=wi[2];(ji||wa)&&Qa&&(0,K.jL)(Ui,{mark:B})},function(Ri){var ji=(0,U.Z)(Ri,4),wi=ji[0],Ui=ji[1],zi=ji[2],vo=ji[3];if(ii&&wi!==qr){var ro={mark:B,prepend:"queue",attachTo:eo,priority:ua},ci=typeof Jr=="function"?Jr():Jr;ci&&(ro.csp={nonce:ci});var ai=(0,K.hq)(wi,zi,ro);ai[T]=Ja.instanceId,ai.setAttribute(Z,Po),Object.keys(vo).forEach(function(Uo){(0,K.hq)(_o(vo[Uo]),"_effect-".concat(Uo),ro)})}}),Oi=(0,U.Z)(po,3),Ni=Oi[0],ni=Oi[1],Di=Oi[2];return function(Ri){var ji;if(!jo||ii||!Oo)ji=n.createElement(un,null);else{var wi;ji=n.createElement("style",(0,ze.Z)({},(wi={},(0,y.Z)(wi,Z,ni),(0,y.Z)(wi,B,Di),wi),{dangerouslySetInnerHTML:{__html:Ni}}))}return n.createElement(n.Fragment,null,ji,Ri)}}function Hn(kt){var Sn=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,Dn="style%",Qn=Array.from(kt.cache.keys()).filter(function(ua){return ua.startsWith(Dn)}),br={},Hr={},Jr="";function ir(ua,Na,wa){var oo,Oo=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},Ro=_objectSpread(_objectSpread({},Oo),{},(oo={},_defineProperty(oo,ATTR_TOKEN,Na),_defineProperty(oo,ATTR_MARK,wa),oo)),eo=Object.keys(Ro).map(function(jo){var bo=Ro[jo];return bo?"".concat(jo,'="').concat(bo,'"'):null}).filter(function(jo){return jo}).join(" ");return Sn?ua:"")}var Wr=Qn.map(function(ua){var Na=ua.slice(Dn.length).replace(/%/g,"|"),wa=_slicedToArray(kt.cache.get(ua)[1],6),oo=wa[0],Oo=wa[1],Ro=wa[2],eo=wa[3],jo=wa[4],bo=wa[5];if(jo)return null;var Da={"data-rc-order":"prependQueue","data-rc-priority":"".concat(bo)},Ja=ir(oo,Oo,Ro,Da);Hr[Na]=Ro,eo&&Object.keys(eo).forEach(function(oi){br[oi]||(br[oi]=!0,Ja+=ir(_o(eo[oi]),Oo,"_effect-".concat(oi),Da))});var Po=[bo,Ja];return Po}).filter(function(ua){return ua});return Wr.sort(function(ua,Na){return ua[0]-Na[0]}).forEach(function(ua){var Na=_slicedToArray(ua,2),wa=Na[1];Jr+=wa}),Jr+=ir(".".concat(ATTR_CACHE_MAP,'{content:"').concat(serializeCacheMap(Hr),'";}'),void 0,void 0,_defineProperty({},ATTR_CACHE_MAP,ATTR_CACHE_MAP)),Jr}var Kn=function(){function kt(Sn,Dn){(0,h.Z)(this,kt),(0,y.Z)(this,"name",void 0),(0,y.Z)(this,"style",void 0),(0,y.Z)(this,"_keyframe",!0),this.name=Sn,this.style=Dn}return(0,p.Z)(kt,[{key:"getName",value:function(){var Dn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return Dn?"".concat(Dn,"-").concat(this.name):this.name}}]),kt}(),Sr=Kn;function kr(kt){if(typeof kt=="number")return[[kt],!1];var Sn=String(kt).trim(),Dn=Sn.match(/(.*)(!important)/),Qn=(Dn?Dn[1]:Sn).trim().split(/\s+/),br="",Hr=0;return[Qn.reduce(function(Jr,ir){return ir.includes("(")?(br+=ir,Hr+=ir.split("(").length-1):ir.includes(")")?(br+=ir,Hr-=ir.split(")").length-1,Hr===0&&(Jr.push(br),br="")):Hr>0?br+=ir:Jr.push(ir),Jr},[]),!!Dn]}function La(kt){return kt.notSplit=!0,kt}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:La(["borderTop","borderBottom"]),borderBlockStart:La(["borderTop"]),borderBlockEnd:La(["borderBottom"]),borderInline:La(["borderLeft","borderRight"]),borderInlineStart:La(["borderLeft"]),borderInlineEnd:La(["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 Xr(kt,Sn){var Dn=kt;return Sn&&(Dn="".concat(Dn," !important")),{_skip_check_:!0,value:Dn}}var ta={visit:function(Sn){var Dn={};return Object.keys(Sn).forEach(function(Qn){var br=Sn[Qn],Hr=oa[Qn];if(Hr&&(typeof br=="number"||typeof br=="string")){var Jr=kr(br),ir=(0,U.Z)(Jr,2),Wr=ir[0],ua=ir[1];Hr.length&&Hr.notSplit?Hr.forEach(function(Na){Dn[Na]=Xr(br,ua)}):Hr.length===1?Dn[Hr[0]]=Xr(br,ua):Hr.length===2?Hr.forEach(function(Na,wa){var oo;Dn[Na]=Xr((oo=Wr[wa])!==null&&oo!==void 0?oo:Wr[0],ua)}):Hr.length===4?Hr.forEach(function(Na,wa){var oo,Oo;Dn[Na]=Xr((oo=(Oo=Wr[wa])!==null&&Oo!==void 0?Oo:Wr[wa-2])!==null&&oo!==void 0?oo:Wr[0],ua)}):Dn[Qn]=br}else Dn[Qn]=br}),Dn}},xr=null,Zr=/url\([^)]+\)|var\([^)]+\)|(\d*\.?\d+)px/g;function ga(kt,Sn){var Dn=Math.pow(10,Sn+1),Qn=Math.floor(kt*Dn);return Math.round(Qn/10)*10/Dn}var ka=function(){var Sn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Dn=Sn.rootValue,Qn=Dn===void 0?16:Dn,br=Sn.precision,Hr=br===void 0?5:br,Jr=Sn.mediaQuery,ir=Jr===void 0?!1:Jr,Wr=function(wa,oo){if(!oo)return wa;var Oo=parseFloat(oo);if(Oo<=1)return wa;var Ro=ga(Oo/Qn,Hr);return"".concat(Ro,"rem")},ua=function(wa){var oo=_objectSpread({},wa);return Object.entries(wa).forEach(function(Oo){var Ro=_slicedToArray(Oo,2),eo=Ro[0],jo=Ro[1];if(typeof jo=="string"&&jo.includes("px")){var bo=jo.replace(Zr,Wr);oo[eo]=bo}!unitless[eo]&&typeof jo=="number"&&jo!==0&&(oo[eo]="".concat(jo,"px").replace(Zr,Wr));var Da=eo.trim();if(Da.startsWith("@")&&Da.includes("px")&&ir){var Ja=eo.replace(Zr,Wr);oo[Ja]=oo[eo],delete oo[eo]}}),oo};return{visit:ua}},mo=null,no={supportModernCSS:function(){return et()&&yt()}}},17202:function(M,b,e){"use strict";e.d(b,{Z:function(){return L}});var a=e(60698),t=e(28314),o=e(37734),s=e(47075),n=e(58757),c=e(87608),l=e.n(c),d=e(26134),h=e(71048),p=e(57370),y=e(17332),g=["icon","className","onClick","style","primaryColor","secondaryColor"],S={primaryColor:"#333",secondaryColor:"#E6E6E6",calculated:!1};function j(O){var $=O.primaryColor,P=O.secondaryColor;S.primaryColor=$,S.secondaryColor=P||(0,y.pw)($),S.calculated=!!P}function x(){return(0,p.Z)({},S)}var Z=function($){var P=$.icon,K=$.className,U=$.onClick,ee=$.style,le=$.primaryColor,Q=$.secondaryColor,G=(0,s.Z)($,g),q=n.useRef(),I=S;if(le&&(I={primaryColor:le,secondaryColor:Q||(0,y.pw)(le)}),(0,y.C3)(q),(0,y.Kp)((0,y.r)(P),"icon should be icon definiton, but got ".concat(P)),!(0,y.r)(P))return null;var H=P;return H&&typeof H.icon=="function"&&(H=(0,p.Z)((0,p.Z)({},H),{},{icon:H.icon(I.primaryColor,I.secondaryColor)})),(0,y.R_)(H.icon,"svg-".concat(H.name),(0,p.Z)((0,p.Z)({className:K,onClick:U,style:ee,"data-icon":H.name,width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true"},G),{},{ref:q}))};Z.displayName="IconReact",Z.getTwoToneColors=x,Z.setTwoToneColors=j;var B=Z;function w(O){var $=(0,y.H9)(O),P=(0,t.Z)($,2),K=P[0],U=P[1];return B.setTwoToneColors({primaryColor:K,secondaryColor:U})}function T(){var O=B.getTwoToneColors();return O.calculated?[O.primaryColor,O.secondaryColor]:O.primaryColor}var F=["className","icon","spin","rotate","tabIndex","onClick","twoToneColor"];w(d.blue.primary);var A=n.forwardRef(function(O,$){var P,K=O.className,U=O.icon,ee=O.spin,le=O.rotate,Q=O.tabIndex,G=O.onClick,q=O.twoToneColor,I=(0,s.Z)(O,F),H=n.useContext(h.Z),Y=H.prefixCls,D=Y===void 0?"anticon":Y,_=H.rootClassName,ue=l()(_,D,(P={},(0,o.Z)(P,"".concat(D,"-").concat(U.name),!!U.name),(0,o.Z)(P,"".concat(D,"-spin"),!!ee||U.name==="loading"),P),K),be=Q;be===void 0&&G&&(be=-1);var ce=le?{msTransform:"rotate(".concat(le,"deg)"),transform:"rotate(".concat(le,"deg)")}:void 0,he=(0,y.H9)(q),Fe=(0,t.Z)(he,2),Je=Fe[0],et=Fe[1];return n.createElement("span",(0,a.Z)({role:"img","aria-label":U.name},I,{ref:$,tabIndex:be,onClick:G,className:ue}),n.createElement(B,{icon:U,primaryColor:Je,secondaryColor:et,style:ce}))});A.displayName="AntdIcon",A.getTwoToneColor=T,A.setTwoToneColor=w;var L=A},71048:function(M,b,e){"use strict";var a=e(58757),t=(0,a.createContext)({});b.Z=t},39875:function(M,b,e){"use strict";var a=e(60698),t=e(57370),o=e(37734),s=e(47075),n=e(58757),c=e(87608),l=e.n(c),d=e(21319),h=e(71048),p=e(17332),y=["className","component","viewBox","spin","rotate","tabIndex","onClick","children"],g=n.forwardRef(function(S,j){var x=S.className,Z=S.component,B=S.viewBox,w=S.spin,T=S.rotate,F=S.tabIndex,A=S.onClick,L=S.children,O=(0,s.Z)(S,y),$=n.useRef(),P=(0,d.x1)($,j);(0,p.Kp)(!!(Z||L),"Should have `component` prop or `children`."),(0,p.C3)($);var K=n.useContext(h.Z),U=K.prefixCls,ee=U===void 0?"anticon":U,le=K.rootClassName,Q=l()(le,ee,x),G=l()((0,o.Z)({},"".concat(ee,"-spin"),!!w)),q=T?{msTransform:"rotate(".concat(T,"deg)"),transform:"rotate(".concat(T,"deg)")}:void 0,I=(0,t.Z)((0,t.Z)({},p.vD),{},{className:G,style:q,viewBox:B});B||delete I.viewBox;var H=function(){return Z?n.createElement(Z,I,L):L?((0,p.Kp)(!!B||n.Children.count(L)===1&&n.isValidElement(L)&&n.Children.only(L).type==="use","Make sure that you provide correct `viewBox` prop (default `0 0 1024 1024`) to the icon."),n.createElement("svg",(0,a.Z)({},I,{viewBox:B}),L)):null},Y=F;return Y===void 0&&A&&(Y=-1),n.createElement("span",(0,a.Z)({role:"img"},O,{ref:P,tabIndex:Y,onClick:A,className:Q}),H())});g.displayName="AntdIcon",b.Z=g},92183:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},85678:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},35725:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},79999:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},52495:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},23605:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},10130:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},18974:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},69831:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},83720:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},56019:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},33064:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},99142:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},25755:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},12673:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},22283:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},91169:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},99534:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},39800:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},23926:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},98030:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},2528:function(M,b,e){"use strict";e.d(b,{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),c=function(h,p){return t.createElement(n.Z,(0,a.Z)({},h,{ref:p,icon:s}))},l=t.forwardRef(c)},17332:function(M,b,e){"use strict";e.d(b,{C3:function(){return T},H9:function(){return Z},Kp:function(){return y},R_:function(){return j},pw:function(){return x},r:function(){return g},vD:function(){return B}});var a=e(57370),t=e(38790),o=e(26134),s=e(61012),n=e.n(s),c=e(39678),l=e(4171),d=e(75556),h=e(58757),p=e(71048);function y(F,A){(0,d.ZP)(F,"[@ant-design/icons] ".concat(A))}function g(F){return(0,t.Z)(F)==="object"&&typeof F.name=="string"&&typeof F.theme=="string"&&((0,t.Z)(F.icon)==="object"||typeof F.icon=="function")}function S(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Object.keys(F).reduce(function(A,L){var O=F[L];switch(L){case"class":A.className=O,delete A.class;break;default:delete A[L],A[n()(L)]=O}return A},{})}function j(F,A,L){return L?h.createElement(F.tag,(0,a.Z)((0,a.Z)({key:A},S(F.attrs)),L),(F.children||[]).map(function(O,$){return j(O,"".concat(A,"-").concat(F.tag,"-").concat($))})):h.createElement(F.tag,(0,a.Z)({key:A},S(F.attrs)),(F.children||[]).map(function(O,$){return j(O,"".concat(A,"-").concat(F.tag,"-").concat($))}))}function x(F){return(0,o.generate)(F)[0]}function Z(F){return F?Array.isArray(F)?F:[F]:[]}var B={width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",focusable:"false"},w=` +.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(A){var L=(0,h.useContext)(p.Z),O=L.csp,$=L.prefixCls,P=w;$&&(P=P.replace(/anticon/g,$)),(0,h.useEffect)(function(){var K=A.current,U=(0,l.A)(K);(0,c.hq)(P,"@ant-design-icons",{prepend:!0,csp:O,attachTo:U})},[])}},8295:function(M,b,e){"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return o}});var a=e(58757),t=(0,a.createContext)({}),o=t},38875:function(M,b,e){"use strict";var a;a={value:!0},Object.defineProperty(b,"Z",{enumerable:!0,get:function(){return B}});var t=p(e(58757)),o=d(e(87608)),s=e(25697),n=d(e(8295)),c=e(96757);function l(w,T,F){return T in w?Object.defineProperty(w,T,{value:F,enumerable:!0,configurable:!0,writable:!0}):w[T]=F,w}function d(w){return w&&w.__esModule?w:{default:w}}function h(w){if(typeof WeakMap!="function")return null;var T=new WeakMap,F=new WeakMap;return(h=function(A){return A?F:T})(w)}function p(w,T){if(!T&&w&&w.__esModule)return w;if(w===null||typeof w!="object"&&typeof w!="function")return{default:w};var F=h(T);if(F&&F.has(w))return F.get(w);var A={},L=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var O in w)if(O!=="default"&&Object.prototype.hasOwnProperty.call(w,O)){var $=L?Object.getOwnPropertyDescriptor(w,O):null;$&&($.get||$.set)?Object.defineProperty(A,O,$):A[O]=w[O]}return A.default=w,F&&F.set(w,A),A}function y(w){for(var T=1;T=0)&&Object.prototype.propertyIsEnumerable.call(w,A)&&(F[A]=w[A])}return F}function x(w,T){if(w==null)return{};var F={},A=Object.keys(w),L,O;for(O=0;O=0)&&(F[L]=w[L]);return F}var Z=t.forwardRef(function(w,T){var F=w.className,A=w.component,L=w.viewBox,O=w.spin,$=w.rotate,P=w.tabIndex,K=w.onClick,U=w.children,ee=j(w,["className","component","viewBox","spin","rotate","tabIndex","onClick","children"]),le=t.useRef(),Q=(0,s.useComposeRef)(le,T);(0,c.warning)(!!(A||U),"Should have `component` prop or `children`."),(0,c.useInsertStyles)(le);var G=t.useContext(n.default),q=G.prefixCls,I=q===void 0?"anticon":q,H=G.rootClassName,Y=(0,o.default)(H,I,F),D=(0,o.default)(l({},"".concat(I,"-spin"),!!O)),_=$?{msTransform:"rotate(".concat($,"deg)"),transform:"rotate(".concat($,"deg)")}:void 0,ue=S(y({},c.svgBaseProps),{className:D,style:_,viewBox:L});L||delete ue.viewBox;var be=function(){return A?t.createElement(A,ue,U):U?((0,c.warning)(!!L||t.Children.count(U)===1&&t.isValidElement(U)&&t.Children.only(U).type==="use","Make sure that you provide correct `viewBox` prop (default `0 0 1024 1024`) to the icon."),t.createElement("svg",S(y({},ue),{viewBox:L}),U)):null},ce=P;return ce===void 0&&K&&(ce=-1),t.createElement("span",S(y({role:"img"},ee),{ref:Q,tabIndex:ce,onClick:K,className:Y}),be())});Z.displayName="AntdIcon";var B=Z},96757:function(M,b,e){"use strict";Object.defineProperty(b,"__esModule",{value:!0});function a(O,$){for(var P in $)Object.defineProperty(O,P,{enumerable:!0,get:$[P]})}a(b,{warning:function(){return j},isIconDefinition:function(){return x},normalizeAttrs:function(){return Z},generate:function(){return B},getSecondaryColor:function(){return w},normalizeTwoToneColors:function(){return T},svgBaseProps:function(){return F},iconStyles:function(){return A},useInsertStyles:function(){return L}});var t=e(26134),o=p(e(61012)),s=e(82912),n=e(13393),c=p(e(66780)),l=g(e(58757)),d=p(e(8295));function h(O,$,P){return $ in O?Object.defineProperty(O,$,{value:P,enumerable:!0,configurable:!0,writable:!0}):O[$]=P,O}function p(O){return O&&O.__esModule?O:{default:O}}function y(O){if(typeof WeakMap!="function")return null;var $=new WeakMap,P=new WeakMap;return(y=function(K){return K?P:$})(O)}function g(O,$){if(!$&&O&&O.__esModule)return O;if(O===null||typeof O!="object"&&typeof O!="function")return{default:O};var P=y($);if(P&&P.has(O))return P.get(O);var K={},U=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var ee in O)if(ee!=="default"&&Object.prototype.hasOwnProperty.call(O,ee)){var le=U?Object.getOwnPropertyDescriptor(O,ee):null;le&&(le.get||le.set)?Object.defineProperty(K,ee,le):K[ee]=O[ee]}return K.default=O,P&&P.set(O,K),K}function S(O){for(var $=1;$0&&arguments[0]!==void 0?arguments[0]:{};return Object.keys(O).reduce(function($,P){var K=O[P];switch(P){case"class":$.className=K,delete $.class;break;default:delete $[P],$[(0,o.default)(P)]=K}return $},{})}function B(O,$,P){return P?l.default.createElement(O.tag,S({key:$},Z(O.attrs),P),(O.children||[]).map(function(K,U){return B(K,"".concat($,"-").concat(O.tag,"-").concat(U))})):l.default.createElement(O.tag,S({key:$},Z(O.attrs)),(O.children||[]).map(function(K,U){return B(K,"".concat($,"-").concat(O.tag,"-").concat(U))}))}function w(O){return(0,t.generate)(O)[0]}function T(O){return O?Array.isArray(O)?O:[O]:[]}var F={width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",focusable:"false"},A=` +.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(O){var $=(0,l.useContext)(d.default),P=$.csp,K=$.prefixCls,U=A;K&&(U=U.replace(/anticon/g,K)),(0,l.useEffect)(function(){var ee=O.current,le=(0,n.getShadowRoot)(ee);(0,s.updateCSS)(U,"@ant-design-icons",{prepend:!0,csp:P,attachTo:le})},[])}},20117:function(M,b,e){"use strict";e.d(b,{T6:function(){return g},VD:function(){return S},WE:function(){return l},Yt:function(){return j},lC:function(){return o},py:function(){return c},rW:function(){return t},s:function(){return h},ve:function(){return n},vq:function(){return d}});var a=e(33146);function t(x,Z,B){return{r:(0,a.sh)(x,255)*255,g:(0,a.sh)(Z,255)*255,b:(0,a.sh)(B,255)*255}}function o(x,Z,B){x=(0,a.sh)(x,255),Z=(0,a.sh)(Z,255),B=(0,a.sh)(B,255);var w=Math.max(x,Z,B),T=Math.min(x,Z,B),F=0,A=0,L=(w+T)/2;if(w===T)A=0,F=0;else{var O=w-T;switch(A=L>.5?O/(2-w-T):O/(w+T),w){case x:F=(Z-B)/O+(Z1&&(B-=1),B<.16666666666666666?x+(Z-x)*(6*B):B<.5?Z:B<.6666666666666666?x+(Z-x)*(.6666666666666666-B)*6:x}function n(x,Z,B){var w,T,F;if(x=(0,a.sh)(x,360),Z=(0,a.sh)(Z,100),B=(0,a.sh)(B,100),Z===0)T=B,F=B,w=B;else{var A=B<.5?B*(1+Z):B+Z-B*Z,L=2*B-A;w=s(L,A,x+.3333333333333333),T=s(L,A,x),F=s(L,A,x-.3333333333333333)}return{r:w*255,g:T*255,b:F*255}}function c(x,Z,B){x=(0,a.sh)(x,255),Z=(0,a.sh)(Z,255),B=(0,a.sh)(B,255);var w=Math.max(x,Z,B),T=Math.min(x,Z,B),F=0,A=w,L=w-T,O=w===0?0:L/w;if(w===T)F=0;else{switch(w){case x:F=(Z-B)/L+(Z>16,g:(x&65280)>>8,b:x&255}}},53099:function(M,b,e){"use strict";e.d(b,{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(M,b,e){"use strict";e.d(b,{uA:function(){return s}});var a=e(20117),t=e(53099),o=e(33146);function s(S){var j={r:0,g:0,b:0},x=1,Z=null,B=null,w=null,T=!1,F=!1;return typeof S=="string"&&(S=y(S)),typeof S=="object"&&(g(S.r)&&g(S.g)&&g(S.b)?(j=(0,a.rW)(S.r,S.g,S.b),T=!0,F=String(S.r).substr(-1)==="%"?"prgb":"rgb"):g(S.h)&&g(S.s)&&g(S.v)?(Z=(0,o.JX)(S.s),B=(0,o.JX)(S.v),j=(0,a.WE)(S.h,Z,B),T=!0,F="hsv"):g(S.h)&&g(S.s)&&g(S.l)&&(Z=(0,o.JX)(S.s),w=(0,o.JX)(S.l),j=(0,a.ve)(S.h,Z,w),T=!0,F="hsl"),Object.prototype.hasOwnProperty.call(S,"a")&&(x=S.a)),x=(0,o.Yq)(x),{ok:T,format:S.format||F,r:Math.min(255,Math.max(j.r,0)),g:Math.min(255,Math.max(j.g,0)),b:Math.min(255,Math.max(j.b,0)),a:x}}var n="[-\\+]?\\d+%?",c="[-\\+]?\\d*\\.\\d+%?",l="(?:".concat(c,")|(?:").concat(n,")"),d="[\\s|\\(]+(".concat(l,")[,|\\s]+(").concat(l,")[,|\\s]+(").concat(l,")\\s*\\)?"),h="[\\s|\\(]+(".concat(l,")[,|\\s]+(").concat(l,")[,|\\s]+(").concat(l,")[,|\\s]+(").concat(l,")\\s*\\)?"),p={CSS_UNIT:new RegExp(l),rgb:new RegExp("rgb"+d),rgba:new RegExp("rgba"+h),hsl:new RegExp("hsl"+d),hsla:new RegExp("hsla"+h),hsv:new RegExp("hsv"+d),hsva:new RegExp("hsva"+h),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 y(S){if(S=S.trim().toLowerCase(),S.length===0)return!1;var j=!1;if(t.R[S])S=t.R[S],j=!0;else if(S==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var x=p.rgb.exec(S);return x?{r:x[1],g:x[2],b:x[3]}:(x=p.rgba.exec(S),x?{r:x[1],g:x[2],b:x[3],a:x[4]}:(x=p.hsl.exec(S),x?{h:x[1],s:x[2],l:x[3]}:(x=p.hsla.exec(S),x?{h:x[1],s:x[2],l:x[3],a:x[4]}:(x=p.hsv.exec(S),x?{h:x[1],s:x[2],v:x[3]}:(x=p.hsva.exec(S),x?{h:x[1],s:x[2],v:x[3],a:x[4]}:(x=p.hex8.exec(S),x?{r:(0,a.VD)(x[1]),g:(0,a.VD)(x[2]),b:(0,a.VD)(x[3]),a:(0,a.T6)(x[4]),format:j?"name":"hex8"}:(x=p.hex6.exec(S),x?{r:(0,a.VD)(x[1]),g:(0,a.VD)(x[2]),b:(0,a.VD)(x[3]),format:j?"name":"hex"}:(x=p.hex4.exec(S),x?{r:(0,a.VD)(x[1]+x[1]),g:(0,a.VD)(x[2]+x[2]),b:(0,a.VD)(x[3]+x[3]),a:(0,a.T6)(x[4]+x[4]),format:j?"name":"hex8"}:(x=p.hex3.exec(S),x?{r:(0,a.VD)(x[1]+x[1]),g:(0,a.VD)(x[2]+x[2]),b:(0,a.VD)(x[3]+x[3]),format:j?"name":"hex"}:!1)))))))))}function g(S){return!!p.CSS_UNIT.exec(String(S))}},66671:function(M,b,e){"use strict";e.d(b,{C:function(){return n}});var a=e(20117),t=e(53099),o=e(76981),s=e(33146),n=function(){function l(d,h){d===void 0&&(d=""),h===void 0&&(h={});var p;if(d instanceof l)return d;typeof d=="number"&&(d=(0,a.Yt)(d)),this.originalInput=d;var y=(0,o.uA)(d);this.originalInput=d,this.r=y.r,this.g=y.g,this.b=y.b,this.a=y.a,this.roundA=Math.round(100*this.a)/100,this.format=(p=h.format)!==null&&p!==void 0?p:y.format,this.gradientType=h.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=y.ok}return l.prototype.isDark=function(){return this.getBrightness()<128},l.prototype.isLight=function(){return!this.isDark()},l.prototype.getBrightness=function(){var d=this.toRgb();return(d.r*299+d.g*587+d.b*114)/1e3},l.prototype.getLuminance=function(){var d=this.toRgb(),h,p,y,g=d.r/255,S=d.g/255,j=d.b/255;return g<=.03928?h=g/12.92:h=Math.pow((g+.055)/1.055,2.4),S<=.03928?p=S/12.92:p=Math.pow((S+.055)/1.055,2.4),j<=.03928?y=j/12.92:y=Math.pow((j+.055)/1.055,2.4),.2126*h+.7152*p+.0722*y},l.prototype.getAlpha=function(){return this.a},l.prototype.setAlpha=function(d){return this.a=(0,s.Yq)(d),this.roundA=Math.round(100*this.a)/100,this},l.prototype.isMonochrome=function(){var d=this.toHsl().s;return d===0},l.prototype.toHsv=function(){var d=(0,a.py)(this.r,this.g,this.b);return{h:d.h*360,s:d.s,v:d.v,a:this.a}},l.prototype.toHsvString=function(){var d=(0,a.py)(this.r,this.g,this.b),h=Math.round(d.h*360),p=Math.round(d.s*100),y=Math.round(d.v*100);return this.a===1?"hsv(".concat(h,", ").concat(p,"%, ").concat(y,"%)"):"hsva(".concat(h,", ").concat(p,"%, ").concat(y,"%, ").concat(this.roundA,")")},l.prototype.toHsl=function(){var d=(0,a.lC)(this.r,this.g,this.b);return{h:d.h*360,s:d.s,l:d.l,a:this.a}},l.prototype.toHslString=function(){var d=(0,a.lC)(this.r,this.g,this.b),h=Math.round(d.h*360),p=Math.round(d.s*100),y=Math.round(d.l*100);return this.a===1?"hsl(".concat(h,", ").concat(p,"%, ").concat(y,"%)"):"hsla(".concat(h,", ").concat(p,"%, ").concat(y,"%, ").concat(this.roundA,")")},l.prototype.toHex=function(d){return d===void 0&&(d=!1),(0,a.vq)(this.r,this.g,this.b,d)},l.prototype.toHexString=function(d){return d===void 0&&(d=!1),"#"+this.toHex(d)},l.prototype.toHex8=function(d){return d===void 0&&(d=!1),(0,a.s)(this.r,this.g,this.b,this.a,d)},l.prototype.toHex8String=function(d){return d===void 0&&(d=!1),"#"+this.toHex8(d)},l.prototype.toHexShortString=function(d){return d===void 0&&(d=!1),this.a===1?this.toHexString(d):this.toHex8String(d)},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 d=Math.round(this.r),h=Math.round(this.g),p=Math.round(this.b);return this.a===1?"rgb(".concat(d,", ").concat(h,", ").concat(p,")"):"rgba(".concat(d,", ").concat(h,", ").concat(p,", ").concat(this.roundA,")")},l.prototype.toPercentageRgb=function(){var d=function(h){return"".concat(Math.round((0,s.sh)(h,255)*100),"%")};return{r:d(this.r),g:d(this.g),b:d(this.b),a:this.a}},l.prototype.toPercentageRgbString=function(){var d=function(h){return Math.round((0,s.sh)(h,255)*100)};return this.a===1?"rgb(".concat(d(this.r),"%, ").concat(d(this.g),"%, ").concat(d(this.b),"%)"):"rgba(".concat(d(this.r),"%, ").concat(d(this.g),"%, ").concat(d(this.b),"%, ").concat(this.roundA,")")},l.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var d="#"+(0,a.vq)(this.r,this.g,this.b,!1),h=0,p=Object.entries(t.R);h=0,g=!h&&y&&(d.startsWith("hex")||d==="name");return g?d==="name"&&this.a===0?this.toName():this.toRgbString():(d==="rgb"&&(p=this.toRgbString()),d==="prgb"&&(p=this.toPercentageRgbString()),(d==="hex"||d==="hex6")&&(p=this.toHexString()),d==="hex3"&&(p=this.toHexString(!0)),d==="hex4"&&(p=this.toHex8String(!0)),d==="hex8"&&(p=this.toHex8String()),d==="name"&&(p=this.toName()),d==="hsl"&&(p=this.toHslString()),d==="hsv"&&(p=this.toHsvString()),p||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(d){d===void 0&&(d=10);var h=this.toHsl();return h.l+=d/100,h.l=(0,s.V2)(h.l),new l(h)},l.prototype.brighten=function(d){d===void 0&&(d=10);var h=this.toRgb();return h.r=Math.max(0,Math.min(255,h.r-Math.round(255*-(d/100)))),h.g=Math.max(0,Math.min(255,h.g-Math.round(255*-(d/100)))),h.b=Math.max(0,Math.min(255,h.b-Math.round(255*-(d/100)))),new l(h)},l.prototype.darken=function(d){d===void 0&&(d=10);var h=this.toHsl();return h.l-=d/100,h.l=(0,s.V2)(h.l),new l(h)},l.prototype.tint=function(d){return d===void 0&&(d=10),this.mix("white",d)},l.prototype.shade=function(d){return d===void 0&&(d=10),this.mix("black",d)},l.prototype.desaturate=function(d){d===void 0&&(d=10);var h=this.toHsl();return h.s-=d/100,h.s=(0,s.V2)(h.s),new l(h)},l.prototype.saturate=function(d){d===void 0&&(d=10);var h=this.toHsl();return h.s+=d/100,h.s=(0,s.V2)(h.s),new l(h)},l.prototype.greyscale=function(){return this.desaturate(100)},l.prototype.spin=function(d){var h=this.toHsl(),p=(h.h+d)%360;return h.h=p<0?360+p:p,new l(h)},l.prototype.mix=function(d,h){h===void 0&&(h=50);var p=this.toRgb(),y=new l(d).toRgb(),g=h/100,S={r:(y.r-p.r)*g+p.r,g:(y.g-p.g)*g+p.g,b:(y.b-p.b)*g+p.b,a:(y.a-p.a)*g+p.a};return new l(S)},l.prototype.analogous=function(d,h){d===void 0&&(d=6),h===void 0&&(h=30);var p=this.toHsl(),y=360/h,g=[this];for(p.h=(p.h-(y*d>>1)+720)%360;--d;)p.h=(p.h+y)%360,g.push(new l(p));return g},l.prototype.complement=function(){var d=this.toHsl();return d.h=(d.h+180)%360,new l(d)},l.prototype.monochromatic=function(d){d===void 0&&(d=6);for(var h=this.toHsv(),p=h.h,y=h.s,g=h.v,S=[],j=1/d;d--;)S.push(new l({h:p,s:y,v:g})),g=(g+j)%1;return S},l.prototype.splitcomplement=function(){var d=this.toHsl(),h=d.h;return[this,new l({h:(h+72)%360,s:d.s,l:d.l}),new l({h:(h+216)%360,s:d.s,l:d.l})]},l.prototype.onBackground=function(d){var h=this.toRgb(),p=new l(d).toRgb(),y=h.a+p.a*(1-h.a);return new l({r:(h.r*h.a+p.r*p.a*(1-h.a))/y,g:(h.g*h.a+p.g*p.a*(1-h.a))/y,b:(h.b*h.a+p.b*p.a*(1-h.a))/y,a:y})},l.prototype.triad=function(){return this.polyad(3)},l.prototype.tetrad=function(){return this.polyad(4)},l.prototype.polyad=function(d){for(var h=this.toHsl(),p=h.h,y=[this],g=360/d,S=1;S1)&&(d=1),d}function c(d){return d<=1?"".concat(Number(d)*100,"%"):d}function l(d){return d.length===1?"0"+d:String(d)}},57127:function(M,b,e){"use strict";e.d(b,{Z:function(){return $}});var a=e(28314),t=e(58757),o=e(26736),s=e(19075),n=e(75556),c=e(21319),l=t.createContext(null),d=l,h=e(29140),p=e(81334),y=[];function g(P,K){var U=t.useState(function(){if(!(0,s.Z)())return null;var be=document.createElement("div");return be}),ee=(0,a.Z)(U,1),le=ee[0],Q=t.useRef(!1),G=t.useContext(d),q=t.useState(y),I=(0,a.Z)(q,2),H=I[0],Y=I[1],D=G||(Q.current?void 0:function(be){Y(function(ce){var he=[be].concat((0,h.Z)(ce));return he})});function _(){le.parentElement||document.body.appendChild(le),Q.current=!0}function ue(){var be;(be=le.parentElement)===null||be===void 0||be.removeChild(le),Q.current=!1}return(0,p.Z)(function(){return P?G?G(_):_():ue(),ue},[P]),(0,p.Z)(function(){H.length&&(H.forEach(function(be){return be()}),Y(y))},[H]),[le,D]}var S=e(39678),j=e(17502);function x(){return document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth}var Z="rc-util-locker-".concat(Date.now()),B=0;function w(P){var K=!!P,U=t.useState(function(){return B+=1,"".concat(Z,"_").concat(B)}),ee=(0,a.Z)(U,1),le=ee[0];(0,p.Z)(function(){if(K){var Q=(0,j.o)(document.body).width,G=x();(0,S.hq)(` +html body { + overflow-y: hidden; + `.concat(G?"width: calc(100% - ".concat(Q,"px);"):"",` +}`),le)}else(0,S.jL)(le);return function(){(0,S.jL)(le)}},[K,le])}var T=!1;function F(P){return typeof P=="boolean"&&(T=P),T}var A=function(K){return K===!1?!1:!(0,s.Z)()||!K?null:typeof K=="string"?document.querySelector(K):typeof K=="function"?K():K},L=t.forwardRef(function(P,K){var U=P.open,ee=P.autoLock,le=P.getContainer,Q=P.debug,G=P.autoDestroy,q=G===void 0?!0:G,I=P.children,H=t.useState(U),Y=(0,a.Z)(H,2),D=Y[0],_=Y[1],ue=D||U;t.useEffect(function(){(q||U)&&_(U)},[U,q]);var be=t.useState(function(){return A(le)}),ce=(0,a.Z)(be,2),he=ce[0],Fe=ce[1];t.useEffect(function(){var We=A(le);Fe(We!=null?We:null)});var Je=g(ue&&!he,Q),et=(0,a.Z)(Je,2),ae=et[0],yt=et[1],Pt=he!=null?he:ae;w(ee&&U&&(0,s.Z)()&&(Pt===ae||Pt===document.body));var bt=null;if(I&&(0,c.Yr)(I)&&K){var Ct=I;bt=Ct.ref}var Le=(0,c.x1)(bt,K);if(!ue||!(0,s.Z)()||he===void 0)return null;var Ke=Pt===!1||F(),st=I;return K&&(st=t.cloneElement(I,{ref:Le})),t.createElement(d.Provider,{value:yt},Ke?st:(0,o.createPortal)(st,Pt))}),O=L,$=O},99863:function(M,b,e){"use strict";e.d(b,{Z:function(){return We}});var a=e(57370),t=e(28314),o=e(47075),s=e(57127),n=e(87608),c=e.n(n),l=e(19425),d=e(69188),h=e(4171),p=e(51729),y=e(97071),g=e(81334),S=e(21618),j=e(58757),x=e(26736),Z=j.createContext(null),B=Z;function w(ge){return ge?Array.isArray(ge)?ge:[ge]:[]}function T(ge,X,W,R){return j.useMemo(function(){var N=w(W!=null?W:X),oe=w(R!=null?R:X),ve=new Set(N),te=new Set(oe);return ge&&(ve.has("hover")&&(ve.delete("hover"),ve.add("click")),te.has("hover")&&(te.delete("hover"),te.add("click"))),[ve,te]},[ge,X,W,R])}var F=e(46499);function A(){var ge=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],X=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],W=arguments.length>2?arguments[2]:void 0;return W?ge[0]===X[0]:ge[0]===X[0]&&ge[1]===X[1]}function L(ge,X,W,R){for(var N=W.points,oe=Object.keys(ge),ve=0;ve1&&arguments[1]!==void 0?arguments[1]:1;return Number.isNaN(ge)?X:ge}function U(ge){return K(parseFloat(ge),0)}function ee(ge,X){var W=(0,a.Z)({},ge);return(X||[]).forEach(function(R){if(!(R instanceof HTMLBodyElement||R instanceof HTMLHtmlElement)){var N=$(R).getComputedStyle(R),oe=N.overflow,ve=N.overflowClipMargin,te=N.borderTopWidth,me=N.borderBottomWidth,we=N.borderLeftWidth,xe=N.borderRightWidth,Se=R.getBoundingClientRect(),ke=R.offsetHeight,ne=R.clientHeight,re=R.offsetWidth,se=R.clientWidth,Ee=U(te),Re=U(me),fe=U(we),_e=U(xe),Pe=K(Math.round(Se.width/re*1e3)/1e3),ze=K(Math.round(Se.height/ke*1e3)/1e3),Qe=(re-se-fe-_e)*Pe,gt=(ke-ne-Ee-Re)*ze,ut=Ee*ze,rt=Re*ze,qe=fe*Pe,Ve=_e*Pe,tt=0,Oe=0;if(oe==="clip"){var Me=U(ve);tt=Me*Pe,Oe=Me*ze}var Ne=Se.x+qe-tt,Te=Se.y+ut-Oe,Be=Ne+Se.width+2*tt-qe-Ve-Qe,nt=Te+Se.height+2*Oe-ut-rt-gt;W.left=Math.max(W.left,Ne),W.top=Math.max(W.top,Te),W.right=Math.min(W.right,Be),W.bottom=Math.min(W.bottom,nt)}}),W}function le(ge){var X=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,W="".concat(X),R=W.match(/^(.*)\%$/);return R?ge*(parseFloat(R[1])/100):parseFloat(W)}function Q(ge,X){var W=X||[],R=(0,t.Z)(W,2),N=R[0],oe=R[1];return[le(ge.width,N),le(ge.height,oe)]}function G(){var ge=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return[ge[0],ge[1]]}function q(ge,X){var W=X[0],R=X[1],N,oe;return W==="t"?oe=ge.y:W==="b"?oe=ge.y+ge.height:oe=ge.y+ge.height/2,R==="l"?N=ge.x:R==="r"?N=ge.x+ge.width:N=ge.x+ge.width/2,{x:N,y:oe}}function I(ge,X){var W={t:"b",b:"t",l:"r",r:"l"};return ge.map(function(R,N){return N===X?W[R]||"c":R}).join("")}function H(ge,X,W,R,N,oe,ve){var te=j.useState({ready:!1,offsetX:0,offsetY:0,offsetR:0,offsetB:0,arrowX:0,arrowY:0,scaleX:1,scaleY:1,align:N[R]||{}}),me=(0,t.Z)(te,2),we=me[0],xe=me[1],Se=j.useRef(0),ke=j.useMemo(function(){return X?P(X):[]},[X]),ne=j.useRef({}),re=function(){ne.current={}};ge||re();var se=(0,p.Z)(function(){if(X&&W&&ge){let ga=function(mo,no){var kt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Rn,Sn=ot.x+mo,Dn=ot.y+no,Qn=Sn+De,br=Dn+$e,Hr=Math.max(Sn,kt.left),Jr=Math.max(Dn,kt.top),ir=Math.min(Qn,kt.right),Wr=Math.min(br,kt.bottom);return Math.max(0,(ir-Hr)*(Wr-Jr))},ka=function(){ar=ot.y+Xt,fr=ar+$e,Kr=ot.x+sn,ea=Kr+De};var fe,_e,Pe=X,ze=Pe.ownerDocument,Qe=$(Pe),gt=Qe.getComputedStyle(Pe),ut=gt.width,rt=gt.height,qe=gt.position,Ve=Pe.style.left,tt=Pe.style.top,Oe=Pe.style.right,Me=Pe.style.bottom,Ne=(0,a.Z)((0,a.Z)({},N[R]),oe),Te=ze.createElement("div");(fe=Pe.parentElement)===null||fe===void 0||fe.appendChild(Te),Te.style.left="".concat(Pe.offsetLeft,"px"),Te.style.top="".concat(Pe.offsetTop,"px"),Te.style.position=qe,Te.style.height="".concat(Pe.offsetHeight,"px"),Te.style.width="".concat(Pe.offsetWidth,"px"),Pe.style.left="0",Pe.style.top="0",Pe.style.right="auto",Pe.style.bottom="auto";var Be;if(Array.isArray(W))Be={x:W[0],y:W[1],width:0,height:0};else{var nt=W.getBoundingClientRect();Be={x:nt.x,y:nt.y,width:nt.width,height:nt.height}}var ot=Pe.getBoundingClientRect(),wt=ze.documentElement,Et=wt.clientWidth,nn=wt.clientHeight,$t=wt.scrollWidth,fn=wt.scrollHeight,ln=wt.scrollTop,Wt=wt.scrollLeft,$e=ot.height,De=ot.width,jt=Be.height,Ft=Be.width,Xe={left:0,top:0,right:Et,bottom:nn},at={left:-Wt,top:-ln,right:$t-Wt,bottom:fn-ln},Bt=Ne.htmlRegion,Zt="visible",Qt="visibleFirst";Bt!=="scroll"&&Bt!==Qt&&(Bt=Zt);var rn=Bt===Qt,hn=ee(at,ke),on=ee(Xe,ke),Rn=Bt===Zt?on:hn,zn=rn?on:Rn;Pe.style.left="auto",Pe.style.top="auto",Pe.style.right="0",Pe.style.bottom="0";var lr=Pe.getBoundingClientRect();Pe.style.left=Ve,Pe.style.top=tt,Pe.style.right=Oe,Pe.style.bottom=Me,(_e=Pe.parentElement)===null||_e===void 0||_e.removeChild(Te);var ur=K(Math.round(De/parseFloat(ut)*1e3)/1e3),zt=K(Math.round($e/parseFloat(rt)*1e3)/1e3);if(ur===0||zt===0||(0,d.S)(W)&&!(0,F.Z)(W))return;var Kt=Ne.offset,Vt=Ne.targetOffset,dn=Q(ot,Kt),pn=(0,t.Z)(dn,2),en=pn[0],mt=pn[1],pt=Q(Be,Vt),an=(0,t.Z)(pt,2),qt=an[0],Yt=an[1];Be.x-=qt,Be.y-=Yt;var mn=Ne.points||[],gn=(0,t.Z)(mn,2),kn=gn[0],tr=gn[1],ft=G(tr),vt=G(kn),St=q(Be,ft),Mt=q(ot,vt),Nt=(0,a.Z)({},Ne),sn=St.x-Mt.x+en,Xt=St.y-Mt.y+mt,Cn=ga(sn,Xt),Ln=ga(sn,Xt,on),hr=q(Be,["t","l"]),qn=q(ot,["t","l"]),Nn=q(Be,["b","r"]),$r=q(ot,["b","r"]),gr=Ne.overflow||{},aa=gr.adjustX,Pr=gr.adjustY,Fn=gr.shiftX,En=gr.shiftY,wn=function(no){return typeof no=="boolean"?no:no>=0},ar,fr,Kr,ea;ka();var ya=wn(Pr),vr=vt[0]===ft[0];if(ya&&vt[0]==="t"&&(fr>zn.bottom||ne.current.bt)){var zr=Xt;vr?zr-=$e-jt:zr=hr.y-$r.y-mt;var Oa=ga(sn,zr),va=ga(sn,zr,on);Oa>Cn||Oa===Cn&&(!rn||va>=Ln)?(ne.current.bt=!0,Xt=zr,mt=-mt,Nt.points=[I(vt,0),I(ft,0)]):ne.current.bt=!1}if(ya&&vt[0]==="b"&&(arCn||Bn===Cn&&(!rn||pr>=Ln)?(ne.current.tb=!0,Xt=Vn,mt=-mt,Nt.points=[I(vt,0),I(ft,0)]):ne.current.tb=!1}var qr=wn(aa),Er=vt[1]===ft[1];if(qr&&vt[1]==="l"&&(ea>zn.right||ne.current.rl)){var At=sn;Er?At-=De-Ft:At=hr.x-$r.x-en;var tn=ga(At,Xt),yn=ga(At,Xt,on);tn>Cn||tn===Cn&&(!rn||yn>=Ln)?(ne.current.rl=!0,sn=At,en=-en,Nt.points=[I(vt,1),I(ft,1)]):ne.current.rl=!1}if(qr&&vt[1]==="r"&&(KrCn||Ao===Cn&&(!rn||Ka>=Ln)?(ne.current.lr=!0,sn=lo,en=-en,Nt.points=[I(vt,1),I(ft,1)]):ne.current.lr=!1}ka();var Qa=Fn===!0?0:Fn;typeof Qa=="number"&&(Kron.right&&(sn-=ea-on.right-en,Be.x>on.right-Qa&&(sn+=Be.x-on.right+Qa)));var qa=En===!0?0:En;typeof qa=="number"&&(aron.bottom&&(Xt-=fr-on.bottom-mt,Be.y>on.bottom-qa&&(Xt+=Be.y-on.bottom+qa)));var $o=ot.x+sn,_o=$o+De,yo=ot.y+Xt,ct=yo+$e,xt=Be.x,Ce=xt+Ft,un=Be.y,xn=un+jt,Hn=Math.max($o,xt),Kn=Math.min(_o,Ce),Sr=(Hn+Kn)/2,kr=Sr-$o,La=Math.max(yo,un),oa=Math.min(ct,xn),Xr=(La+oa)/2,ta=Xr-yo;ve==null||ve(X,Nt);var xr=lr.right-ot.x-(sn+ot.width),Zr=lr.bottom-ot.y-(Xt+ot.height);xe({ready:!0,offsetX:sn/ur,offsetY:Xt/zt,offsetR:xr/ur,offsetB:Zr/zt,arrowX:kr/ur,arrowY:ta/zt,scaleX:ur,scaleY:zt,align:Nt})}}),Ee=function(){Se.current+=1;var _e=Se.current;Promise.resolve().then(function(){Se.current===_e&&se()})},Re=function(){xe(function(_e){return(0,a.Z)((0,a.Z)({},_e),{},{ready:!1})})};return(0,g.Z)(Re,[R]),(0,g.Z)(function(){ge||Re()},[ge]),[we.ready,we.offsetX,we.offsetY,we.offsetR,we.offsetB,we.arrowX,we.arrowY,we.scaleX,we.scaleY,we.align,Ee]}var Y=e(29140);function D(ge,X,W,R,N){(0,g.Z)(function(){if(ge&&X&&W){let Se=function(){R(),N()};var oe=X,ve=W,te=P(oe),me=P(ve),we=$(ve),xe=new Set([we].concat((0,Y.Z)(te),(0,Y.Z)(me)));return xe.forEach(function(ke){ke.addEventListener("scroll",Se,{passive:!0})}),we.addEventListener("resize",Se,{passive:!0}),R(),function(){xe.forEach(function(ke){ke.removeEventListener("scroll",Se),we.removeEventListener("resize",Se)})}}},[ge,X,W])}var _=e(71219),ue=e(61834);function be(ge,X,W,R,N,oe,ve,te){var me=j.useRef(ge),we=j.useRef(!1);me.current!==ge&&(we.current=!0,me.current=ge),j.useEffect(function(){var xe=(0,ue.Z)(function(){we.current=!1});return function(){ue.Z.cancel(xe)}},[ge]),j.useEffect(function(){if(X&&R&&(!N||oe)){var xe=function(){var qe=!1,Ve=function(Me){var Ne=Me.target;qe=ve(Ne)},tt=function(Me){var Ne=Me.target;!we.current&&me.current&&!qe&&!ve(Ne)&&te(!1)};return[Ve,tt]},Se=xe(),ke=(0,t.Z)(Se,2),ne=ke[0],re=ke[1],se=xe(),Ee=(0,t.Z)(se,2),Re=Ee[0],fe=Ee[1],_e=$(R);_e.addEventListener("mousedown",ne,!0),_e.addEventListener("click",re,!0),_e.addEventListener("contextmenu",re,!0);var Pe=(0,h.A)(W);if(Pe&&(Pe.addEventListener("mousedown",Re,!0),Pe.addEventListener("click",fe,!0),Pe.addEventListener("contextmenu",fe,!0)),!1)var ze,Qe,gt,ut;return function(){_e.removeEventListener("mousedown",ne,!0),_e.removeEventListener("click",re,!0),_e.removeEventListener("contextmenu",re,!0),Pe&&(Pe.removeEventListener("mousedown",Re,!0),Pe.removeEventListener("click",fe,!0),Pe.removeEventListener("contextmenu",fe,!0))}}},[X,W,R,N,oe])}var ce=e(60698),he=e(17598),Fe=e(21319);function Je(ge){var X=ge.prefixCls,W=ge.align,R=ge.arrow,N=ge.arrowPos,oe=R||{},ve=oe.className,te=oe.content,me=N.x,we=me===void 0?0:me,xe=N.y,Se=xe===void 0?0:xe,ke=j.useRef();if(!W||!W.points)return null;var ne={position:"absolute"};if(W.autoArrow!==!1){var re=W.points[0],se=W.points[1],Ee=re[0],Re=re[1],fe=se[0],_e=se[1];Ee===fe||!["t","b"].includes(Ee)?ne.top=Se:Ee==="t"?ne.top=0:ne.bottom=0,Re===_e||!["l","r"].includes(Re)?ne.left=we:Re==="l"?ne.left=0:ne.right=0}return j.createElement("div",{ref:ke,className:c()("".concat(X,"-arrow"),ve),style:ne},te)}function et(ge){var X=ge.prefixCls,W=ge.open,R=ge.zIndex,N=ge.mask,oe=ge.motion;return N?j.createElement(he.ZP,(0,ce.Z)({},oe,{motionAppear:!0,visible:W,removeOnLeave:!0}),function(ve){var te=ve.className;return j.createElement("div",{style:{zIndex:R},className:c()("".concat(X,"-mask"),te)})}):null}var ae=j.memo(function(ge){var X=ge.children;return X},function(ge,X){return X.cache}),yt=ae,Pt=j.forwardRef(function(ge,X){var W=ge.popup,R=ge.className,N=ge.prefixCls,oe=ge.style,ve=ge.target,te=ge.onVisibleChanged,me=ge.open,we=ge.keepDom,xe=ge.onClick,Se=ge.mask,ke=ge.arrow,ne=ge.arrowPos,re=ge.align,se=ge.motion,Ee=ge.maskMotion,Re=ge.forceRender,fe=ge.getPopupContainer,_e=ge.autoDestroy,Pe=ge.portal,ze=ge.zIndex,Qe=ge.onMouseEnter,gt=ge.onMouseLeave,ut=ge.onPointerEnter,rt=ge.ready,qe=ge.offsetX,Ve=ge.offsetY,tt=ge.offsetR,Oe=ge.offsetB,Me=ge.onAlign,Ne=ge.onPrepare,Te=ge.stretch,Be=ge.targetWidth,nt=ge.targetHeight,ot=typeof W=="function"?W():W,wt=me||we,Et=(fe==null?void 0:fe.length)>0,nn=j.useState(!fe||!Et),$t=(0,t.Z)(nn,2),fn=$t[0],ln=$t[1];if((0,g.Z)(function(){!fn&&Et&&ve&&ln(!0)},[fn,Et,ve]),!fn)return null;var Wt="auto",$e={left:"-1000vw",top:"-1000vh",right:Wt,bottom:Wt};if(rt||!me){var De=re.points,jt=re._experimental,Ft=jt==null?void 0:jt.dynamicInset,Xe=Ft&&De[0][1]==="r",at=Ft&&De[0][0]==="b";Xe?($e.right=tt,$e.left=Wt):($e.left=qe,$e.right=Wt),at?($e.bottom=Oe,$e.top=Wt):($e.top=Ve,$e.bottom=Wt)}var Bt={};return Te&&(Te.includes("height")&&nt?Bt.height=nt:Te.includes("minHeight")&&nt&&(Bt.minHeight=nt),Te.includes("width")&&Be?Bt.width=Be:Te.includes("minWidth")&&Be&&(Bt.minWidth=Be)),me||(Bt.pointerEvents="none"),j.createElement(Pe,{open:Re||wt,getContainer:fe&&function(){return fe(ve)},autoDestroy:_e},j.createElement(et,{prefixCls:N,open:me,zIndex:ze,mask:Se,motion:Ee}),j.createElement(l.Z,{onResize:Me,disabled:!me},function(Zt){return j.createElement(he.ZP,(0,ce.Z)({motionAppear:!0,motionEnter:!0,motionLeave:!0,removeOnLeave:!1,forceRender:Re,leavedClassName:"".concat(N,"-hidden")},se,{onAppearPrepare:Ne,onEnterPrepare:Ne,visible:me,onVisibleChanged:function(rn){var hn;se==null||(hn=se.onVisibleChanged)===null||hn===void 0||hn.call(se,rn),te(rn)}}),function(Qt,rn){var hn=Qt.className,on=Qt.style,Rn=c()(N,hn,R);return j.createElement("div",{ref:(0,Fe.sQ)(Zt,X,rn),className:Rn,style:(0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({"--arrow-x":"".concat(ne.x||0,"px"),"--arrow-y":"".concat(ne.y||0,"px")},$e),Bt),on),{},{boxSizing:"border-box",zIndex:ze},oe),onMouseEnter:Qe,onMouseLeave:gt,onPointerEnter:ut,onClick:xe},ke&&j.createElement(Je,{prefixCls:N,arrow:ke,arrowPos:ne,align:re}),j.createElement(yt,{cache:!me},ot))})}))}),bt=Pt,Ct=j.forwardRef(function(ge,X){var W=ge.children,R=ge.getTriggerDOMNode,N=(0,Fe.Yr)(W),oe=j.useCallback(function(te){(0,Fe.mH)(X,R?R(te):te)},[R]),ve=(0,Fe.x1)(oe,W.ref);return N?j.cloneElement(W,{ref:ve}):W}),Le=Ct,Ke=["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 st(){var ge=arguments.length>0&&arguments[0]!==void 0?arguments[0]:s.Z,X=j.forwardRef(function(W,R){var N=W.prefixCls,oe=N===void 0?"rc-trigger-popup":N,ve=W.children,te=W.action,me=te===void 0?"hover":te,we=W.showAction,xe=W.hideAction,Se=W.popupVisible,ke=W.defaultPopupVisible,ne=W.onPopupVisibleChange,re=W.afterPopupVisibleChange,se=W.mouseEnterDelay,Ee=W.mouseLeaveDelay,Re=Ee===void 0?.1:Ee,fe=W.focusDelay,_e=W.blurDelay,Pe=W.mask,ze=W.maskClosable,Qe=ze===void 0?!0:ze,gt=W.getPopupContainer,ut=W.forceRender,rt=W.autoDestroy,qe=W.destroyPopupOnHide,Ve=W.popup,tt=W.popupClassName,Oe=W.popupStyle,Me=W.popupPlacement,Ne=W.builtinPlacements,Te=Ne===void 0?{}:Ne,Be=W.popupAlign,nt=W.zIndex,ot=W.stretch,wt=W.getPopupClassNameFromAlign,Et=W.alignPoint,nn=W.onPopupClick,$t=W.onPopupAlign,fn=W.arrow,ln=W.popupMotion,Wt=W.maskMotion,$e=W.popupTransitionName,De=W.popupAnimation,jt=W.maskTransitionName,Ft=W.maskAnimation,Xe=W.className,at=W.getTriggerDOMNode,Bt=(0,o.Z)(W,Ke),Zt=rt||qe||!1,Qt=j.useState(!1),rn=(0,t.Z)(Qt,2),hn=rn[0],on=rn[1];(0,g.Z)(function(){on((0,S.Z)())},[]);var Rn=j.useRef({}),zn=j.useContext(B),lr=j.useMemo(function(){return{registerSubPopup:function(Wr,ua){Rn.current[Wr]=ua,zn==null||zn.registerSubPopup(Wr,ua)}}},[zn]),ur=(0,y.Z)(),zt=j.useState(null),Kt=(0,t.Z)(zt,2),Vt=Kt[0],dn=Kt[1],pn=(0,p.Z)(function(ir){(0,d.S)(ir)&&Vt!==ir&&dn(ir),zn==null||zn.registerSubPopup(ur,ir)}),en=j.useState(null),mt=(0,t.Z)(en,2),pt=mt[0],an=mt[1],qt=(0,p.Z)(function(ir){(0,d.S)(ir)&&pt!==ir&&an(ir)}),Yt=j.Children.only(ve),mn=(Yt==null?void 0:Yt.props)||{},gn={},kn=(0,p.Z)(function(ir){var Wr,ua,Na=pt;return(Na==null?void 0:Na.contains(ir))||((Wr=(0,h.A)(Na))===null||Wr===void 0?void 0:Wr.host)===ir||ir===Na||(Vt==null?void 0:Vt.contains(ir))||((ua=(0,h.A)(Vt))===null||ua===void 0?void 0:ua.host)===ir||ir===Vt||Object.values(Rn.current).some(function(wa){return(wa==null?void 0:wa.contains(ir))||ir===wa})}),tr=O(oe,ln,De,$e),ft=O(oe,Wt,Ft,jt),vt=j.useState(ke||!1),St=(0,t.Z)(vt,2),Mt=St[0],Nt=St[1],sn=Se!=null?Se:Mt,Xt=(0,p.Z)(function(ir){Se===void 0&&Nt(ir)});(0,g.Z)(function(){Nt(Se||!1)},[Se]);var Cn=j.useRef(sn);Cn.current=sn;var Ln=(0,p.Z)(function(ir){(0,x.flushSync)(function(){sn!==ir&&(Xt(ir),ne==null||ne(ir))})}),hr=j.useRef(),qn=function(){clearTimeout(hr.current)},Nn=function(Wr){var ua=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;qn(),ua===0?Ln(Wr):hr.current=setTimeout(function(){Ln(Wr)},ua*1e3)};j.useEffect(function(){return qn},[]);var $r=j.useState(!1),gr=(0,t.Z)($r,2),aa=gr[0],Pr=gr[1];(0,g.Z)(function(ir){(!ir||sn)&&Pr(!0)},[sn]);var Fn=j.useState(null),En=(0,t.Z)(Fn,2),wn=En[0],ar=En[1],fr=j.useState([0,0]),Kr=(0,t.Z)(fr,2),ea=Kr[0],ya=Kr[1],vr=function(Wr){ya([Wr.clientX,Wr.clientY])},zr=H(sn,Vt,Et?ea:pt,Me,Te,Be,$t),Oa=(0,t.Z)(zr,11),va=Oa[0],Vn=Oa[1],Bn=Oa[2],pr=Oa[3],qr=Oa[4],Er=Oa[5],At=Oa[6],tn=Oa[7],yn=Oa[8],lo=Oa[9],Ao=Oa[10],Ka=T(hn,me,we,xe),Qa=(0,t.Z)(Ka,2),qa=Qa[0],$o=Qa[1],_o=qa.has("click"),yo=$o.has("click")||$o.has("contextMenu"),ct=(0,p.Z)(function(){aa||Ao()}),xt=function(){Cn.current&&Et&&yo&&Nn(!1)};D(sn,pt,Vt,ct,xt),(0,g.Z)(function(){ct()},[ea,Me]),(0,g.Z)(function(){sn&&!(Te!=null&&Te[Me])&&ct()},[JSON.stringify(Be)]);var Ce=j.useMemo(function(){var ir=L(Te,oe,lo,Et);return c()(ir,wt==null?void 0:wt(lo))},[lo,wt,Te,oe,Et]);j.useImperativeHandle(R,function(){return{forceAlign:ct}});var un=j.useState(0),xn=(0,t.Z)(un,2),Hn=xn[0],Kn=xn[1],Sr=j.useState(0),kr=(0,t.Z)(Sr,2),La=kr[0],oa=kr[1],Xr=function(){if(ot&&pt){var Wr=pt.getBoundingClientRect();Kn(Wr.width),oa(Wr.height)}},ta=function(){Xr(),ct()},xr=function(Wr){Pr(!1),Ao(),re==null||re(Wr)},Zr=function(){return new Promise(function(Wr){Xr(),ar(function(){return Wr})})};(0,g.Z)(function(){wn&&(Ao(),wn(),ar(null))},[wn]);function ga(ir,Wr,ua,Na){gn[ir]=function(wa){var oo;Na==null||Na(wa),Nn(Wr,ua);for(var Oo=arguments.length,Ro=new Array(Oo>1?Oo-1:0),eo=1;eo1?ua-1:0),wa=1;wa1?ua-1:0),wa=1;waDate.now()/1e3};function n(){const{performance:x}=o;if(!x||!x.now)return;const Z=Date.now()-x.now();return{now:()=>x.now(),timeOrigin:Z}}function c(){try{return(0,a.l$)(M,"perf_hooks").performance}catch(x){return}}const l=(0,a.KV)()?c():n(),d=l===void 0?s:{nowSeconds:()=>(l.timeOrigin+l.now())/1e3},h=s.nowSeconds.bind(s),p=d.nowSeconds.bind(d),y=null,g=l!==void 0;let S;const j=(()=>{const{performance:x}=o;if(!x||!x.now){S="none";return}const Z=3600*1e3,B=x.now(),w=Date.now(),T=x.timeOrigin?Math.abs(x.timeOrigin+B-w):Z,F=Tk.getRandomValues(new Uint8Array(1))[0]:()=>Math.random()*16;return([1e7]+1e3+4e3+8e3+1e11).replace(/[018]/g,Ae=>(Ae^(pe()&15)>>Ae/4).toString(16))}function L(V){return V.exception&&V.exception.values?V.exception.values[0]:void 0}function O(V){const{message:k,event_id:pe}=V;if(k)return k;const Ae=L(V);return Ae?Ae.type&&Ae.value?`${Ae.type}: ${Ae.value}`:Ae.type||Ae.value||pe||"":pe||""}function $(V,k,pe){const Ae=V.exception=V.exception||{},Ge=Ae.values=Ae.values||[],dt=Ge[0]=Ge[0]||{};dt.value||(dt.value=k||""),dt.type||(dt.type=pe||"Error")}function P(V,k){const pe=L(V);if(!pe)return;const Ae={type:"generic",handled:!0},Ge=pe.mechanism;if(pe.mechanism=Xa(Xa(Xa({},Ae),Ge),k),k&&"data"in k){const dt=Xa(Xa({},Ge&&Ge.data),k.data);pe.mechanism.data=dt}}const K=/^(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 U(V){const k=V.match(K)||[],pe=parseInt(k[1],10),Ae=parseInt(k[2],10),Ge=parseInt(k[3],10);return{buildmetadata:k[5],major:isNaN(pe)?void 0:pe,minor:isNaN(Ae)?void 0:Ae,patch:isNaN(Ge)?void 0:Ge,prerelease:k[4]}}function ee(V,k,pe=5){if(k.lineno===void 0)return;const Ae=V.length,Ge=Math.max(Math.min(Ae-1,k.lineno-1),0);k.pre_context=V.slice(Math.max(0,Ge-pe),Ge).map(dt=>snipLine(dt,0)),k.context_line=snipLine(V[Math.min(Ae-1,Ge)],k.colno||0),k.post_context=V.slice(Math.min(Ge+1,Ae),Ge+1+pe).map(dt=>snipLine(dt,0))}function le(V){if(V&&V.__sentry_captured__)return!0;try{addNonEnumerableProperty(V,"__sentry_captured__",!0)}catch(k){}return!1}function Q(V){return Array.isArray(V)?V:[V]}var G=e(43038);const q="Sentry Logger ",I=["debug","info","warn","error","log","assert","trace"];function H(V){if(!("console"in F.n2))return V();const k=F.n2.console,pe={};I.forEach(Ae=>{const Ge=k[Ae]&&k[Ae].__sentry_original__;Ae in k&&Ge&&(pe[Ae]=k[Ae],k[Ae]=Ge)});try{return V()}finally{Object.keys(pe).forEach(Ae=>{k[Ae]=pe[Ae]})}}function Y(){let V=!1;const k={enable:()=>{V=!0},disable:()=>{V=!1}};return typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__?I.forEach(pe=>{k[pe]=(...Ae)=>{V&&H(()=>{F.n2.console[pe](`${q}[${pe}]:`,...Ae)})}}):I.forEach(pe=>{k[pe]=()=>{}}),k}let D;typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__?D=(0,F.YO)("logger",Y):D=Y();const _="production",ue=Object.prototype.toString;function be(V){switch(ue.call(V)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return We(V,Error)}}function ce(V,k){return ue.call(V)===`[object ${k}]`}function he(V){return ce(V,"ErrorEvent")}function Fe(V){return ce(V,"DOMError")}function Je(V){return ce(V,"DOMException")}function et(V){return ce(V,"String")}function ae(V){return V===null||typeof V!="object"&&typeof V!="function"}function yt(V){return ce(V,"Object")}function Pt(V){return typeof Event!="undefined"&&We(V,Event)}function bt(V){return typeof Element!="undefined"&&We(V,Element)}function Ct(V){return ce(V,"RegExp")}function Le(V){return!!(V&&V.then&&typeof V.then=="function")}function Ke(V){return yt(V)&&"nativeEvent"in V&&"preventDefault"in V&&"stopPropagation"in V}function st(V){return typeof V=="number"&&V!==V}function We(V,k){try{return V instanceof k}catch(pe){return!1}}var ge;(function(V){V[V.PENDING=0]="PENDING";const pe=1;V[V.RESOLVED=pe]="RESOLVED";const Ae=2;V[V.REJECTED=Ae]="REJECTED"})(ge||(ge={}));function X(V){return new R(k=>{k(V)})}function W(V){return new R((k,pe)=>{pe(V)})}class R{constructor(k){R.prototype.__init.call(this),R.prototype.__init2.call(this),R.prototype.__init3.call(this),R.prototype.__init4.call(this),this._state=ge.PENDING,this._handlers=[];try{k(this._resolve,this._reject)}catch(pe){this._reject(pe)}}then(k,pe){return new R((Ae,Ge)=>{this._handlers.push([!1,dt=>{if(!k)Ae(dt);else try{Ae(k(dt))}catch(Ht){Ge(Ht)}},dt=>{if(!pe)Ge(dt);else try{Ae(pe(dt))}catch(Ht){Ge(Ht)}}]),this._executeHandlers()})}catch(k){return this.then(pe=>pe,k)}finally(k){return new R((pe,Ae)=>{let Ge,dt;return this.then(Ht=>{dt=!1,Ge=Ht,k&&k()},Ht=>{dt=!0,Ge=Ht,k&&k()}).then(()=>{if(dt){Ae(Ge);return}pe(Ge)})})}__init(){this._resolve=k=>{this._setResult(ge.RESOLVED,k)}}__init2(){this._reject=k=>{this._setResult(ge.REJECTED,k)}}__init3(){this._setResult=(k,pe)=>{if(this._state===ge.PENDING){if(Le(pe)){pe.then(this._resolve,this._reject);return}this._state=k,this._value=pe,this._executeHandlers()}}}__init4(){this._executeHandlers=()=>{if(this._state===ge.PENDING)return;const k=this._handlers.slice();this._handlers=[],k.forEach(pe=>{pe[0]||(this._state===ge.RESOLVED&&pe[1](this._value),this._state===ge.REJECTED&&pe[2](this._value),pe[0]=!0)})}}}const N=(0,F.Rf)(),oe=80;function ve(V,k={}){try{let pe=V;const Ae=5,Ge=[];let dt=0,Ht=0;const Jt=" > ",Gt=Jt.length;let cn;const rr=Array.isArray(k)?k:k.keyAttrs,On=!Array.isArray(k)&&k.maxStringLength||oe;for(;pe&&dt++1&&Ht+Ge.length*Gt+cn.length>=On));)Ge.push(cn),Ht+=cn.length,pe=pe.parentNode;return Ge.reverse().join(Jt)}catch(pe){return""}}function te(V,k){const pe=V,Ae=[];let Ge,dt,Ht,Jt,Gt;if(!pe||!pe.tagName)return"";Ae.push(pe.tagName.toLowerCase());const cn=k&&k.length?k.filter(On=>pe.getAttribute(On)).map(On=>[On,pe.getAttribute(On)]):null;if(cn&&cn.length)cn.forEach(On=>{Ae.push(`[${On[0]}="${On[1]}"]`)});else if(pe.id&&Ae.push(`#${pe.id}`),Ge=pe.className,Ge&&et(Ge))for(dt=Ge.split(/\s+/),Gt=0;GtAe&&(k=Ae);let Ge=Math.max(k-60,0);Ge<5&&(Ge=0);let dt=Math.min(Ge+140,Ae);return dt>Ae-5&&(dt=Ae),dt===Ae&&(Ge=Math.max(dt-140,0)),pe=pe.slice(Ge,dt),Ge>0&&(pe=`'{snip} ${pe}`),dtne(V,Ae,pe))}function se(V,k,pe){if(!(k in V))return;const Ae=V[k],Ge=pe(Ae);if(typeof Ge=="function")try{Re(Ge,Ae)}catch(dt){}V[k]=Ge}function Ee(V,k,pe){Object.defineProperty(V,k,{value:pe,writable:!0,configurable:!0})}function Re(V,k){const pe=k.prototype||{};V.prototype=k.prototype=pe,Ee(V,"__sentry_original__",k)}function fe(V){return V.__sentry_original__}function _e(V){return Object.keys(V).map(k=>`${encodeURIComponent(k)}=${encodeURIComponent(V[k])}`).join("&")}function Pe(V){if(be(V))return Xa({message:V.message,name:V.name,stack:V.stack},Qe(V));if(Pt(V)){const k=Xa({type:V.type,target:ze(V.target),currentTarget:ze(V.currentTarget)},Qe(V));return typeof CustomEvent!="undefined"&&We(V,CustomEvent)&&(k.detail=V.detail),k}else return V}function ze(V){try{return bt(V)?ve(V):Object.prototype.toString.call(V)}catch(k){return""}}function Qe(V){if(typeof V=="object"&&V!==null){const k={};for(const pe in V)Object.prototype.hasOwnProperty.call(V,pe)&&(k[pe]=V[pe]);return k}else return{}}function gt(V,k=40){const pe=Object.keys(Pe(V));if(pe.sort(),!pe.length)return"[object has no keys]";if(pe[0].length>=k)return xe(pe[0],k);for(let Ae=pe.length;Ae>0;Ae--){const Ge=pe.slice(0,Ae).join(", ");if(!(Ge.length>k))return Ae===pe.length?Ge:xe(Ge,k)}return""}function ut(V){return rt(V,new Map)}function rt(V,k){if(yt(V)){const pe=k.get(V);if(pe!==void 0)return pe;const Ae={};k.set(V,Ae);for(const Ge of Object.keys(V))typeof V[Ge]!="undefined"&&(Ae[Ge]=rt(V[Ge],k));return Ae}if(Array.isArray(V)){const pe=k.get(V);if(pe!==void 0)return pe;const Ae=[];return k.set(V,Ae),V.forEach(Ge=>{Ae.push(rt(Ge,k))}),Ae}return V}function qe(V){let k;switch(!0){case V==null:k=new String(V);break;case(typeof V=="symbol"||typeof V=="bigint"):k=Object(V);break;case isPrimitive(V):k=new V.constructor(V);break;default:k=V;break}return k}function Ve(V){const k=(0,G.ph)(),pe={sid:A(),init:!0,timestamp:k,started:k,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>Me(pe)};return V&&tt(pe,V),pe}function tt(V,k={}){if(k.user&&(!V.ipAddress&&k.user.ip_address&&(V.ipAddress=k.user.ip_address),!V.did&&!k.did&&(V.did=k.user.id||k.user.email||k.user.username)),V.timestamp=k.timestamp||(0,G.ph)(),k.ignoreDuration&&(V.ignoreDuration=k.ignoreDuration),k.sid&&(V.sid=k.sid.length===32?k.sid:A()),k.init!==void 0&&(V.init=k.init),!V.did&&k.did&&(V.did=`${k.did}`),typeof k.started=="number"&&(V.started=k.started),V.ignoreDuration)V.duration=void 0;else if(typeof k.duration=="number")V.duration=k.duration;else{const pe=V.timestamp-V.started;V.duration=pe>=0?pe:0}k.release&&(V.release=k.release),k.environment&&(V.environment=k.environment),!V.ipAddress&&k.ipAddress&&(V.ipAddress=k.ipAddress),!V.userAgent&&k.userAgent&&(V.userAgent=k.userAgent),typeof k.errors=="number"&&(V.errors=k.errors),k.status&&(V.status=k.status)}function Oe(V,k){let pe={};k?pe={status:k}:V.status==="ok"&&(pe={status:"exited"}),tt(V,pe)}function Me(V){return ut({sid:`${V.sid}`,init:V.init,started:new Date(V.started*1e3).toISOString(),timestamp:new Date(V.timestamp*1e3).toISOString(),status:V.status,errors:V.errors,did:typeof V.did=="number"||typeof V.did=="string"?`${V.did}`:void 0,duration:V.duration,attrs:{release:V.release,environment:V.environment,ip_address:V.ipAddress,user_agent:V.userAgent}})}const Ne=100;class Te{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext=ot()}static clone(k){const pe=new Te;return k&&(pe._breadcrumbs=[...k._breadcrumbs],pe._tags=Xa({},k._tags),pe._extra=Xa({},k._extra),pe._contexts=Xa({},k._contexts),pe._user=k._user,pe._level=k._level,pe._span=k._span,pe._session=k._session,pe._transactionName=k._transactionName,pe._fingerprint=k._fingerprint,pe._eventProcessors=[...k._eventProcessors],pe._requestSession=k._requestSession,pe._attachments=[...k._attachments],pe._sdkProcessingMetadata=Xa({},k._sdkProcessingMetadata),pe._propagationContext=Xa({},k._propagationContext)),pe}addScopeListener(k){this._scopeListeners.push(k)}addEventProcessor(k){return this._eventProcessors.push(k),this}setUser(k){return this._user=k||{},this._session&&tt(this._session,{user:k}),this._notifyScopeListeners(),this}getUser(){return this._user}getRequestSession(){return this._requestSession}setRequestSession(k){return this._requestSession=k,this}setTags(k){return this._tags=Xa(Xa({},this._tags),k),this._notifyScopeListeners(),this}setTag(k,pe){return this._tags=Gs(Xa({},this._tags),{[k]:pe}),this._notifyScopeListeners(),this}setExtras(k){return this._extra=Xa(Xa({},this._extra),k),this._notifyScopeListeners(),this}setExtra(k,pe){return this._extra=Gs(Xa({},this._extra),{[k]:pe}),this._notifyScopeListeners(),this}setFingerprint(k){return this._fingerprint=k,this._notifyScopeListeners(),this}setLevel(k){return this._level=k,this._notifyScopeListeners(),this}setTransactionName(k){return this._transactionName=k,this._notifyScopeListeners(),this}setContext(k,pe){return pe===null?delete this._contexts[k]:this._contexts[k]=pe,this._notifyScopeListeners(),this}setSpan(k){return this._span=k,this._notifyScopeListeners(),this}getSpan(){return this._span}getTransaction(){const k=this.getSpan();return k&&k.transaction}setSession(k){return k?this._session=k:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(k){if(!k)return this;if(typeof k=="function"){const pe=k(this);return pe instanceof Te?pe:this}return k instanceof Te?(this._tags=Xa(Xa({},this._tags),k._tags),this._extra=Xa(Xa({},this._extra),k._extra),this._contexts=Xa(Xa({},this._contexts),k._contexts),k._user&&Object.keys(k._user).length&&(this._user=k._user),k._level&&(this._level=k._level),k._fingerprint&&(this._fingerprint=k._fingerprint),k._requestSession&&(this._requestSession=k._requestSession),k._propagationContext&&(this._propagationContext=k._propagationContext)):yt(k)&&(k=k,this._tags=Xa(Xa({},this._tags),k.tags),this._extra=Xa(Xa({},this._extra),k.extra),this._contexts=Xa(Xa({},this._contexts),k.contexts),k.user&&(this._user=k.user),k.level&&(this._level=k.level),k.fingerprint&&(this._fingerprint=k.fingerprint),k.requestSession&&(this._requestSession=k.requestSession),k.propagationContext&&(this._propagationContext=k.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=ot(),this}addBreadcrumb(k,pe){const Ae=typeof pe=="number"?pe:Ne;if(Ae<=0)return this;const Ge=Xa({timestamp:(0,G.yW)()},k);return this._breadcrumbs=[...this._breadcrumbs,Ge].slice(-Ae),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(k){return this._attachments.push(k),this}getAttachments(){return this._attachments}clearAttachments(){return this._attachments=[],this}applyToEvent(k,pe={}){if(this._extra&&Object.keys(this._extra).length&&(k.extra=Xa(Xa({},this._extra),k.extra)),this._tags&&Object.keys(this._tags).length&&(k.tags=Xa(Xa({},this._tags),k.tags)),this._user&&Object.keys(this._user).length&&(k.user=Xa(Xa({},this._user),k.user)),this._contexts&&Object.keys(this._contexts).length&&(k.contexts=Xa(Xa({},this._contexts),k.contexts)),this._level&&(k.level=this._level),this._transactionName&&(k.transaction=this._transactionName),this._span){k.contexts=Xa({trace:this._span.getTraceContext()},k.contexts);const Ae=this._span.transaction;if(Ae){k.sdkProcessingMetadata=Xa({dynamicSamplingContext:Ae.getDynamicSamplingContext()},k.sdkProcessingMetadata);const Ge=Ae.name;Ge&&(k.tags=Xa({transaction:Ge},k.tags))}}return this._applyFingerprint(k),k.breadcrumbs=[...k.breadcrumbs||[],...this._breadcrumbs],k.breadcrumbs=k.breadcrumbs.length>0?k.breadcrumbs:void 0,k.sdkProcessingMetadata=Gs(Xa(Xa({},k.sdkProcessingMetadata),this._sdkProcessingMetadata),{propagationContext:this._propagationContext}),this._notifyEventProcessors([...Be(),...this._eventProcessors],k,pe)}setSDKProcessingMetadata(k){return this._sdkProcessingMetadata=Xa(Xa({},this._sdkProcessingMetadata),k),this}setPropagationContext(k){return this._propagationContext=k,this}getPropagationContext(){return this._propagationContext}_notifyEventProcessors(k,pe,Ae,Ge=0){return new R((dt,Ht)=>{const Jt=k[Ge];if(pe===null||typeof Jt!="function")dt(pe);else{const Gt=Jt(Xa({},pe),Ae);(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&Jt.id&&Gt===null&&D.log(`Event processor "${Jt.id}" dropped event`),Le(Gt)?Gt.then(cn=>this._notifyEventProcessors(k,cn,Ae,Ge+1).then(dt)).then(null,Ht):this._notifyEventProcessors(k,Gt,Ae,Ge+1).then(dt).then(null,Ht)}})}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(k=>{k(this)}),this._notifyingListeners=!1)}_applyFingerprint(k){k.fingerprint=k.fingerprint?Q(k.fingerprint):[],this._fingerprint&&(k.fingerprint=k.fingerprint.concat(this._fingerprint)),k.fingerprint&&!k.fingerprint.length&&delete k.fingerprint}}function Be(){return(0,F.YO)("globalEventProcessors",()=>[])}function nt(V){Be().push(V)}function ot(){return{traceId:A(),spanId:A().substring(16),sampled:!1}}const wt=4,Et=100;class nn{constructor(k,pe=new Te,Ae=wt){this._version=Ae,this._stack=[{scope:pe}],k&&this.bindClient(k)}isOlderThan(k){return this._version{dt.captureException(k,Gs(Xa({originalException:k,syntheticException:Ge},pe),{event_id:Ae}),Ht)}),Ae}captureMessage(k,pe,Ae){const Ge=this._lastEventId=Ae&&Ae.event_id?Ae.event_id:A(),dt=new Error(k);return this._withClient((Ht,Jt)=>{Ht.captureMessage(k,pe,Gs(Xa({originalException:k,syntheticException:dt},Ae),{event_id:Ge}),Jt)}),Ge}captureEvent(k,pe){const Ae=pe&&pe.event_id?pe.event_id:A();return k.type||(this._lastEventId=Ae),this._withClient((Ge,dt)=>{Ge.captureEvent(k,Gs(Xa({},pe),{event_id:Ae}),dt)}),Ae}lastEventId(){return this._lastEventId}addBreadcrumb(k,pe){const{scope:Ae,client:Ge}=this.getStackTop();if(!Ge)return;const{beforeBreadcrumb:dt=null,maxBreadcrumbs:Ht=Et}=Ge.getOptions&&Ge.getOptions()||{};if(Ht<=0)return;const Jt=(0,G.yW)(),Gt=Xa({timestamp:Jt},k),cn=dt?H(()=>dt(Gt,pe)):Gt;cn!==null&&(Ge.emit&&Ge.emit("beforeAddBreadcrumb",cn,pe),Ae.addBreadcrumb(cn,Ht))}setUser(k){this.getScope().setUser(k)}setTags(k){this.getScope().setTags(k)}setExtras(k){this.getScope().setExtras(k)}setTag(k,pe){this.getScope().setTag(k,pe)}setExtra(k,pe){this.getScope().setExtra(k,pe)}setContext(k,pe){this.getScope().setContext(k,pe)}configureScope(k){const{scope:pe,client:Ae}=this.getStackTop();Ae&&k(pe)}run(k){const pe=fn(this);try{k(this)}finally{fn(pe)}}getIntegration(k){const pe=this.getClient();if(!pe)return null;try{return pe.getIntegration(k)}catch(Ae){return(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.warn(`Cannot retrieve integration ${k.id} from the current Hub`),null}}startTransaction(k,pe){const Ae=this._callExtensionMethod("startTransaction",k,pe);if((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&!Ae){const Ge=this.getClient();console.warn(Ge?`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 Ae}traceHeaders(){return this._callExtensionMethod("traceHeaders")}captureSession(k=!1){if(k)return this.endSession();this._sendSessionUpdate()}endSession(){const pe=this.getStackTop().scope,Ae=pe.getSession();Ae&&Oe(Ae),this._sendSessionUpdate(),pe.setSession()}startSession(k){const{scope:pe,client:Ae}=this.getStackTop(),{release:Ge,environment:dt=_}=Ae&&Ae.getOptions()||{},{userAgent:Ht}=F.n2.navigator||{},Jt=Ve(Xa(Xa({release:Ge,environment:dt,user:pe.getUser()},Ht&&{userAgent:Ht}),k)),Gt=pe.getSession&&pe.getSession();return Gt&&Gt.status==="ok"&&tt(Gt,{status:"exited"}),this.endSession(),pe.setSession(Jt),Jt}shouldSendDefaultPii(){const k=this.getClient(),pe=k&&k.getOptions();return!!(pe&&pe.sendDefaultPii)}_sendSessionUpdate(){const{scope:k,client:pe}=this.getStackTop(),Ae=k.getSession();Ae&&pe&&pe.captureSession&&pe.captureSession(Ae)}_withClient(k){const{scope:pe,client:Ae}=this.getStackTop();Ae&&k(Ae,pe)}_callExtensionMethod(k,...pe){const Ge=$t().__SENTRY__;if(Ge&&Ge.extensions&&typeof Ge.extensions[k]=="function")return Ge.extensions[k].apply(this,pe);(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.warn(`Extension method ${k} couldn't be found, doing nothing.`)}}function $t(){return F.n2.__SENTRY__=F.n2.__SENTRY__||{extensions:{},hub:void 0},F.n2}function fn(V){const k=$t(),pe=Xe(k);return at(k,V),pe}function ln(){const V=$t();if(V.__SENTRY__&&V.__SENTRY__.acs){const k=V.__SENTRY__.acs.getCurrentHub();if(k)return k}return Wt(V)}function Wt(V=$t()){return(!Ft(V)||Xe(V).isOlderThan(wt))&&at(V,new nn),Xe(V)}function $e(V,k=Wt()){if(!Ft(V)||Xe(V).isOlderThan(wt)){const pe=k.getStackTop();at(V,new nn(pe.client,Scope.clone(pe.scope)))}}function De(V){const k=$t();k.__SENTRY__=k.__SENTRY__||{},k.__SENTRY__.acs=V}function jt(V,k={}){const pe=$t();return pe.__SENTRY__&&pe.__SENTRY__.acs?pe.__SENTRY__.acs.runWithAsyncContext(V,k):V()}function Ft(V){return!!(V&&V.__SENTRY__&&V.__SENTRY__.hub)}function Xe(V){return(0,F.YO)("hub",()=>new nn,V)}function at(V,k){if(!V)return!1;const pe=V.__SENTRY__=V.__SENTRY__||{};return pe.hub=k,!0}const Bt=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/],Zt=[/^.*healthcheck.*$/,/^.*healthy.*$/,/^.*live.*$/,/^.*ready.*$/,/^.*heartbeat.*$/,/^.*\/health$/,/^.*\/healthz$/];class Qt{static __initStatic(){this.id="InboundFilters"}constructor(k={}){this.name=Qt.id,this._options=k}setupOnce(k,pe){const Ae=Ge=>{const dt=pe();if(dt){const Ht=dt.getIntegration(Qt);if(Ht){const Jt=dt.getClient(),Gt=Jt?Jt.getOptions():{},cn=rn(Ht._options,Gt);return hn(Ge,cn)?null:Ge}}return Ge};Ae.id=this.name,k(Ae)}}Qt.__initStatic();function rn(V={},k={}){return{allowUrls:[...V.allowUrls||[],...k.allowUrls||[]],denyUrls:[...V.denyUrls||[],...k.denyUrls||[]],ignoreErrors:[...V.ignoreErrors||[],...k.ignoreErrors||[],...V.disableErrorDefaults?[]:Bt],ignoreTransactions:[...V.ignoreTransactions||[],...k.ignoreTransactions||[],...V.disableTransactionDefaults?[]:Zt],ignoreInternal:V.ignoreInternal!==void 0?V.ignoreInternal:!0}}function hn(V,k){return k.ignoreInternal&&zt(V)?((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.warn(`Event dropped due to being internal Sentry Error. +Event: ${O(V)}`),!0):on(V,k.ignoreErrors)?((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.warn(`Event dropped due to being matched by \`ignoreErrors\` option. +Event: ${O(V)}`),!0):Rn(V,k.ignoreTransactions)?((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. +Event: ${O(V)}`),!0):zn(V,k.denyUrls)?((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.warn(`Event dropped due to being matched by \`denyUrls\` option. +Event: ${O(V)}. +Url: ${Vt(V)}`),!0):lr(V,k.allowUrls)?!1:((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.warn(`Event dropped due to not being matched by \`allowUrls\` option. +Event: ${O(V)}. +Url: ${Vt(V)}`),!0)}function on(V,k){return V.type||!k||!k.length?!1:ur(V).some(pe=>re(pe,k))}function Rn(V,k){if(V.type!=="transaction"||!k||!k.length)return!1;const pe=V.transaction;return pe?re(pe,k):!1}function zn(V,k){if(!k||!k.length)return!1;const pe=Vt(V);return pe?re(pe,k):!1}function lr(V,k){if(!k||!k.length)return!0;const pe=Vt(V);return pe?re(pe,k):!0}function ur(V){if(V.message)return[V.message];if(V.exception){const{values:k}=V.exception;try{const{type:pe="",value:Ae=""}=k&&k[k.length-1]||{};return[`${Ae}`,`${pe}: ${Ae}`]}catch(pe){return(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.error(`Cannot extract message for event ${O(V)}`),[]}}return[]}function zt(V){try{return V.exception.values[0].type==="SentryError"}catch(k){}return!1}function Kt(V=[]){for(let k=V.length-1;k>=0;k--){const pe=V[k];if(pe&&pe.filename!==""&&pe.filename!=="[native code]")return pe.filename||null}return null}function Vt(V){try{let k;try{k=V.exception.values[0].stacktrace.frames}catch(pe){}return k?Kt(k):null}catch(k){return(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.error(`Cannot extract url for event ${O(V)}`),null}}let dn;class pn{static __initStatic(){this.id="FunctionToString"}constructor(){this.name=pn.id}setupOnce(){dn=Function.prototype.toString;try{Function.prototype.toString=function(...k){const pe=fe(this)||this;return dn.apply(pe,k)}}catch(k){}}}pn.__initStatic();const en=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function mt(V){return V==="http"||V==="https"}function pt(V,k=!1){const{host:pe,path:Ae,pass:Ge,port:dt,projectId:Ht,protocol:Jt,publicKey:Gt}=V;return`${Jt}://${Gt}${k&&Ge?`:${Ge}`:""}@${pe}${dt?`:${dt}`:""}/${Ae&&`${Ae}/`}${Ht}`}function an(V){const k=en.exec(V);if(!k){console.error(`Invalid Sentry Dsn: ${V}`);return}const[pe,Ae,Ge="",dt,Ht="",Jt]=k.slice(1);let Gt="",cn=Jt;const rr=cn.split("/");if(rr.length>1&&(Gt=rr.slice(0,-1).join("/"),cn=rr.pop()),cn){const On=cn.match(/^\d+/);On&&(cn=On[0])}return qt({host:dt,pass:Ge,path:Gt,projectId:cn,port:Ht,protocol:pe,publicKey:Ae})}function qt(V){return{protocol:V.protocol,publicKey:V.publicKey||"",pass:V.pass||"",host:V.host,port:V.port||"",path:V.path||"",projectId:V.projectId}}function Yt(V){if(!(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__))return!0;const{port:k,projectId:pe,protocol:Ae}=V;return["protocol","publicKey","host","projectId"].find(Ht=>V[Ht]?!1:(D.error(`Invalid Sentry Dsn: ${Ht} missing`),!0))?!1:pe.match(/^\d+$/)?mt(Ae)?k&&isNaN(parseInt(k,10))?(D.error(`Invalid Sentry Dsn: Invalid port ${k}`),!1):!0:(D.error(`Invalid Sentry Dsn: Invalid protocol ${Ae}`),!1):(D.error(`Invalid Sentry Dsn: Invalid projectId ${pe}`),!1)}function mn(V){const k=typeof V=="string"?an(V):qt(V);if(!(!k||!Yt(k)))return k}const gn="7";function kn(V){const k=V.protocol?`${V.protocol}:`:"",pe=V.port?`:${V.port}`:"";return`${k}//${V.host}${pe}${V.path?`/${V.path}`:""}/api/`}function tr(V){return`${kn(V)}${V.projectId}/envelope/`}function ft(V,k){return urlEncode(Xa({sentry_key:V.publicKey,sentry_version:gn},k&&{sentry_client:`${k.name}/${k.version}`}))}function vt(V,k={}){const pe=typeof k=="string"?k:k.tunnel,Ae=typeof k=="string"||!k._metadata?void 0:k._metadata.sdk;return pe||`${tr(V)}?${ft(V,Ae)}`}function St(V,k){const pe=mn(V);if(!pe)return"";const Ae=`${kn(pe)}embed/error-page/`;let Ge=`dsn=${pt(pe)}`;for(const dt in k)if(dt!=="dsn")if(dt==="user"){const Ht=k.user;if(!Ht)continue;Ht.name&&(Ge+=`&name=${encodeURIComponent(Ht.name)}`),Ht.email&&(Ge+=`&email=${encodeURIComponent(Ht.email)}`)}else Ge+=`&${encodeURIComponent(dt)}=${encodeURIComponent(k[dt])}`;return`${Ae}?${Ge}`}function Mt(V,k){return ln().captureException(V,{captureContext:k})}function Nt(V,k){const pe=typeof k=="string"?k:void 0,Ae=typeof k!="string"?{captureContext:k}:void 0;return getCurrentHub().captureMessage(V,pe,Ae)}function sn(V,k){return getCurrentHub().captureEvent(V,k)}function Xt(V){getCurrentHub().configureScope(V)}function Cn(V){getCurrentHub().addBreadcrumb(V)}function Ln(V,k){getCurrentHub().setContext(V,k)}function hr(V){getCurrentHub().setExtras(V)}function qn(V,k){getCurrentHub().setExtra(V,k)}function Nn(V){getCurrentHub().setTags(V)}function $r(V,k){getCurrentHub().setTag(V,k)}function gr(V){getCurrentHub().setUser(V)}function aa(V){ln().withScope(V)}function Pr(V,k){return getCurrentHub().startTransaction(Xa({},V),k)}function Fn(V,k){const pe=getCurrentHub(),Ae=pe.getScope(),Ge=pe.getClient();if(!Ge)(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&logger.warn("Cannot capture check-in. No client defined.");else if(!Ge.captureCheckIn)(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&logger.warn("Cannot capture check-in. Client does not support sending check-ins.");else return Ge.captureCheckIn(V,k,Ae);return uuid4()}function En(V){return xf(this,null,function*(){const k=getCurrentHub().getClient();return k?k.flush(V):((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&logger.warn("Cannot flush events. No client defined."),Promise.resolve(!1))})}function wn(V){return xf(this,null,function*(){const k=getCurrentHub().getClient();return k?k.close(V):((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&logger.warn("Cannot flush events and disable SDK. No client defined."),Promise.resolve(!1))})}function ar(){return getCurrentHub().lastEventId()}const fr=F.n2;let Kr=0;function ea(){return Kr>0}function ya(){Kr++,setTimeout(()=>{Kr--})}function vr(V,k={},pe){if(typeof V!="function")return V;try{const Ge=V.__sentry_wrapped__;if(Ge)return Ge;if(fe(V))return V}catch(Ge){return V}const Ae=function(){const Ge=Array.prototype.slice.call(arguments);try{pe&&typeof pe=="function"&&pe.apply(this,arguments);const dt=Ge.map(Ht=>vr(Ht,k));return V.apply(this,dt)}catch(dt){throw ya(),aa(Ht=>{Ht.addEventProcessor(Jt=>(k.mechanism&&($(Jt,void 0,void 0),P(Jt,k.mechanism)),Jt.extra=Gs(Xa({},Jt.extra),{arguments:Ge}),Jt)),Mt(dt)}),dt}};try{for(const Ge in V)Object.prototype.hasOwnProperty.call(V,Ge)&&(Ae[Ge]=V[Ge])}catch(Ge){}Re(Ae,V),Ee(V,"__sentry_wrapped__",Ae);try{Object.getOwnPropertyDescriptor(Ae,"name").configurable&&Object.defineProperty(Ae,"name",{get(){return V.name}})}catch(Ge){}return Ae}const zr=50,Oa=/\(error: (.*)\)/,va=/captureMessage|captureException/;function Vn(...V){const k=V.sort((pe,Ae)=>pe[0]-Ae[0]).map(pe=>pe[1]);return(pe,Ae=0)=>{const Ge=[],dt=pe.split(` +`);for(let Ht=Ae;Ht1024)continue;const Gt=Oa.test(Jt)?Jt.replace(Oa,"$1"):Jt;if(!Gt.match(/\S*Error: /)){for(const cn of k){const rr=cn(Gt);if(rr){Ge.push(rr);break}}if(Ge.length>=zr)break}}return pr(Ge)}}function Bn(V){return Array.isArray(V)?Vn(...V):V}function pr(V){if(!V.length)return[];const k=Array.from(V);return/sentryWrapped/.test(k[k.length-1].function||"")&&k.pop(),k.reverse(),va.test(k[k.length-1].function||"")&&(k.pop(),va.test(k[k.length-1].function||"")&&k.pop()),k.slice(0,zr).map(pe=>Gs(Xa({},pe),{filename:pe.filename||k[k.length-1].filename,function:pe.function||"?"}))}const qr="";function Er(V){try{return!V||typeof V!="function"?qr:V.name||qr}catch(k){return qr}}function At(V){return[90,node(V)]}const tn=(0,F.Rf)();function yn(){try{return new ErrorEvent(""),!0}catch(V){return!1}}function lo(){try{return new DOMError(""),!0}catch(V){return!1}}function Ao(){try{return new DOMException(""),!0}catch(V){return!1}}function Ka(){if(!("fetch"in tn))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch(V){return!1}}function Qa(V){return V&&/^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(V.toString())}function qa(){if(!Ka())return!1;if(Qa(tn.fetch))return!0;let V=!1;const k=tn.document;if(k&&typeof k.createElement=="function")try{const pe=k.createElement("iframe");pe.hidden=!0,k.head.appendChild(pe),pe.contentWindow&&pe.contentWindow.fetch&&(V=Qa(pe.contentWindow.fetch)),k.head.removeChild(pe)}catch(pe){(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",pe)}return V}function $o(){return"ReportingObserver"in tn}function _o(){if(!Ka())return!1;try{return new Request("_",{referrerPolicy:"origin"}),!0}catch(V){return!1}}const yo=(0,F.Rf)();function ct(){const V=yo.chrome,k=V&&V.app&&V.app.runtime,pe="history"in yo&&!!yo.history.pushState&&!!yo.history.replaceState;return!k&&pe}const xt=(0,F.Rf)(),Ce="__sentry_xhr_v2__",un={},xn={};function Hn(V){if(!xn[V])switch(xn[V]=!0,V){case"console":kr();break;case"dom":Qn();break;case"xhr":xr();break;case"fetch":La();break;case"history":ga();break;case"error":Hr();break;case"unhandledrejection":ir();break;default:(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.warn("unknown instrumentation type:",V);return}}function Kn(V,k){un[V]=un[V]||[],un[V].push(k),Hn(V)}function Sr(V,k){if(!(!V||!un[V]))for(const pe of un[V]||[])try{pe(k)}catch(Ae){(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.error(`Error while triggering instrumentation handler. +Type: ${V} +Name: ${Er(pe)} +Error:`,Ae)}}function kr(){"console"in xt&&I.forEach(function(V){V in xt.console&&se(xt.console,V,function(k){return function(...pe){Sr("console",{args:pe,level:V}),k&&k.apply(xt.console,pe)}})})}function La(){qa()&&se(xt,"fetch",function(V){return function(...k){const{method:pe,url:Ae}=ta(k),Ge={args:k,fetchData:{method:pe,url:Ae},startTimestamp:Date.now()};return Sr("fetch",Xa({},Ge)),V.apply(xt,k).then(dt=>(Sr("fetch",Gs(Xa({},Ge),{endTimestamp:Date.now(),response:dt})),dt),dt=>{throw Sr("fetch",Gs(Xa({},Ge),{endTimestamp:Date.now(),error:dt})),dt})}})}function oa(V,k){return!!V&&typeof V=="object"&&!!V[k]}function Xr(V){return typeof V=="string"?V:V?oa(V,"url")?V.url:V.toString?V.toString():"":""}function ta(V){if(V.length===0)return{method:"GET",url:""};if(V.length===2){const[pe,Ae]=V;return{url:Xr(pe),method:oa(Ae,"method")?String(Ae.method).toUpperCase():"GET"}}const k=V[0];return{url:Xr(k),method:oa(k,"method")?String(k.method).toUpperCase():"GET"}}function xr(){if(!("XMLHttpRequest"in xt))return;const V=XMLHttpRequest.prototype;se(V,"open",function(k){return function(...pe){const Ae=pe[1],Ge=this[Ce]={method:et(pe[0])?pe[0].toUpperCase():pe[0],url:pe[1],request_headers:{}};et(Ae)&&Ge.method==="POST"&&Ae.match(/sentry_key/)&&(this.__sentry_own_request__=!0);const dt=()=>{const Ht=this[Ce];if(Ht&&this.readyState===4){try{Ht.status_code=this.status}catch(Jt){}Sr("xhr",{args:pe,endTimestamp:Date.now(),startTimestamp:Date.now(),xhr:this})}};return"onreadystatechange"in this&&typeof this.onreadystatechange=="function"?se(this,"onreadystatechange",function(Ht){return function(...Jt){return dt(),Ht.apply(this,Jt)}}):this.addEventListener("readystatechange",dt),se(this,"setRequestHeader",function(Ht){return function(...Jt){const[Gt,cn]=Jt,rr=this[Ce];return rr&&(rr.request_headers[Gt.toLowerCase()]=cn),Ht.apply(this,Jt)}}),k.apply(this,pe)}}),se(V,"send",function(k){return function(...pe){const Ae=this[Ce];return Ae&&pe[0]!==void 0&&(Ae.body=pe[0]),Sr("xhr",{args:pe,startTimestamp:Date.now(),xhr:this}),k.apply(this,pe)}})}let Zr;function ga(){if(!ct())return;const V=xt.onpopstate;xt.onpopstate=function(...pe){const Ae=xt.location.href,Ge=Zr;if(Zr=Ae,Sr("history",{from:Ge,to:Ae}),V)try{return V.apply(this,pe)}catch(dt){}};function k(pe){return function(...Ae){const Ge=Ae.length>2?Ae[2]:void 0;if(Ge){const dt=Zr,Ht=String(Ge);Zr=Ht,Sr("history",{from:dt,to:Ht})}return pe.apply(this,Ae)}}se(xt.history,"pushState",k),se(xt.history,"replaceState",k)}const ka=1e3;let mo,no;function kt(V,k){if(!V||V.type!==k.type)return!0;try{if(V.target!==k.target)return!0}catch(pe){}return!1}function Sn(V){if(V.type!=="keypress")return!1;try{const k=V.target;if(!k||!k.tagName)return!0;if(k.tagName==="INPUT"||k.tagName==="TEXTAREA"||k.isContentEditable)return!1}catch(k){}return!0}function Dn(V,k=!1){return pe=>{if(!pe||no===pe||Sn(pe))return;const Ae=pe.type==="keypress"?"input":pe.type;mo===void 0?(V({event:pe,name:Ae,global:k}),no=pe):kt(no,pe)&&(V({event:pe,name:Ae,global:k}),no=pe),clearTimeout(mo),mo=xt.setTimeout(()=>{mo=void 0},ka)}}function Qn(){if(!("document"in xt))return;const V=Sr.bind(null,"dom"),k=Dn(V,!0);xt.document.addEventListener("click",k,!1),xt.document.addEventListener("keypress",k,!1),["EventTarget","Node"].forEach(pe=>{const Ae=xt[pe]&&xt[pe].prototype;!Ae||!Ae.hasOwnProperty||!Ae.hasOwnProperty("addEventListener")||(se(Ae,"addEventListener",function(Ge){return function(dt,Ht,Jt){if(dt==="click"||dt=="keypress")try{const Gt=this,cn=Gt.__sentry_instrumentation_handlers__=Gt.__sentry_instrumentation_handlers__||{},rr=cn[dt]=cn[dt]||{refCount:0};if(!rr.handler){const On=Dn(V);rr.handler=On,Ge.call(this,dt,On,Jt)}rr.refCount++}catch(Gt){}return Ge.call(this,dt,Ht,Jt)}}),se(Ae,"removeEventListener",function(Ge){return function(dt,Ht,Jt){if(dt==="click"||dt=="keypress")try{const Gt=this,cn=Gt.__sentry_instrumentation_handlers__||{},rr=cn[dt];rr&&(rr.refCount--,rr.refCount<=0&&(Ge.call(this,dt,rr.handler,Jt),rr.handler=void 0,delete cn[dt]),Object.keys(cn).length===0&&delete Gt.__sentry_instrumentation_handlers__)}catch(Gt){}return Ge.call(this,dt,Ht,Jt)}}))})}let br=null;function Hr(){br=xt.onerror,xt.onerror=function(V,k,pe,Ae,Ge){return Sr("error",{column:Ae,error:Ge,line:pe,msg:V,url:k}),br&&!br.__SENTRY_LOADER__?br.apply(this,arguments):!1},xt.onerror.__SENTRY_INSTRUMENTED__=!0}let Jr=null;function ir(){Jr=xt.onunhandledrejection,xt.onunhandledrejection=function(V){return Sr("unhandledrejection",V),Jr&&!Jr.__SENTRY_LOADER__?Jr.apply(this,arguments):!0},xt.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}function Wr(){const V=typeof WeakSet=="function",k=V?new WeakSet:[];function pe(Ge){if(V)return k.has(Ge)?!0:(k.add(Ge),!1);for(let dt=0;dtpe?Na(V,k-1,pe):Ae}function wa(V,k,pe=1/0,Ae=1/0,Ge=Wr()){const[dt,Ht]=Ge;if(k==null||["number","boolean","string"].includes(typeof k)&&!st(k))return k;const Jt=oo(V,k);if(!Jt.startsWith("[object "))return Jt;if(k.__sentry_skip_normalization__)return k;const Gt=typeof k.__sentry_override_normalization_depth__=="number"?k.__sentry_override_normalization_depth__:pe;if(Gt===0)return Jt.replace("object ","");if(dt(k))return"[Circular ~]";const cn=k;if(cn&&typeof cn.toJSON=="function")try{const Gr=cn.toJSON();return wa("",Gr,Gt-1,Ae,Ge)}catch(Gr){}const rr=Array.isArray(k)?[]:{};let On=0;const Zn=Pe(k);for(const Gr in Zn){if(!Object.prototype.hasOwnProperty.call(Zn,Gr))continue;if(On>=Ae){rr[Gr]="[MaxProperties ~]";break}const jr=Zn[Gr];rr[Gr]=wa(Gr,jr,Gt-1,Ae,Ge),On++}return Ht(k),rr}function oo(V,k){try{if(V==="domain"&&k&&typeof k=="object"&&k._events)return"[Domain]";if(V==="domainEmitter")return"[DomainEmitter]";if(typeof e.g!="undefined"&&k===e.g)return"[Global]";if(typeof window!="undefined"&&k===window)return"[Window]";if(typeof document!="undefined"&&k===document)return"[Document]";if(Ke(k))return"[SyntheticEvent]";if(typeof k=="number"&&k!==k)return"[NaN]";if(typeof k=="function")return`[Function: ${Er(k)}]`;if(typeof k=="symbol")return`[${String(k)}]`;if(typeof k=="bigint")return`[BigInt: ${String(k)}]`;const pe=Oo(k);return/^HTML(\w*)Element$/.test(pe)?`[HTMLElement: ${pe}]`:`[object ${pe}]`}catch(pe){return`**non-serializable** (${pe})`}}function Oo(V){const k=Object.getPrototypeOf(V);return k?k.constructor.name:"null prototype"}function Ro(V){return~-encodeURI(V).split(/%..|./).length}function eo(V){return Ro(JSON.stringify(V))}function jo(V,k){const pe=Ja(V,k),Ae={type:k&&k.name,value:ii(k)};return pe.length&&(Ae.stacktrace={frames:pe}),Ae.type===void 0&&Ae.value===""&&(Ae.value="Unrecoverable error caught"),Ae}function bo(V,k,pe,Ae){const dt=ln().getClient(),Ht=dt&&dt.getOptions().normalizeDepth,Jt={exception:{values:[{type:Pt(k)?k.constructor.name:Ae?"UnhandledRejection":"Error",value:Di(k,{isUnhandledRejection:Ae})}]},extra:{__serialized__:Na(k,Ht)}};if(pe){const Gt=Ja(V,pe);Gt.length&&(Jt.exception.values[0].stacktrace={frames:Gt})}return Jt}function Da(V,k){return{exception:{values:[jo(V,k)]}}}function Ja(V,k){const pe=k.stacktrace||k.stack||"",Ae=oi(k);try{return V(pe,Ae)}catch(Ge){}return[]}const Po=/Minified React error #\d+;/i;function oi(V){if(V){if(typeof V.framesToPop=="number")return V.framesToPop;if(Po.test(V.message))return 1}return 0}function ii(V){const k=V&&V.message;return k?k.error&&typeof k.error.message=="string"?k.error.message:k:"No error message"}function po(V,k,pe,Ae){const Ge=pe&&pe.syntheticException||void 0,dt=Ni(V,k,Ge,Ae);return addExceptionMechanism(dt),dt.level="error",pe&&pe.event_id&&(dt.event_id=pe.event_id),resolvedSyncPromise(dt)}function Oi(V,k,pe="info",Ae,Ge){const dt=Ae&&Ae.syntheticException||void 0,Ht=ni(V,k,dt,Ge);return Ht.level=pe,Ae&&Ae.event_id&&(Ht.event_id=Ae.event_id),resolvedSyncPromise(Ht)}function Ni(V,k,pe,Ae,Ge){let dt;if(he(k)&&k.error)return Da(V,k.error);if(Fe(k)||Je(k)){const Ht=k;if("stack"in k)dt=Da(V,k);else{const Jt=Ht.name||(Fe(Ht)?"DOMError":"DOMException"),Gt=Ht.message?`${Jt}: ${Ht.message}`:Jt;dt=ni(V,Gt,pe,Ae),$(dt,Gt)}return"code"in Ht&&(dt.tags=Gs(Xa({},dt.tags),{"DOMException.code":`${Ht.code}`})),dt}return be(k)?Da(V,k):yt(k)||Pt(k)?(dt=bo(V,k,pe,Ge),P(dt,{synthetic:!0}),dt):(dt=ni(V,k,pe,Ae),$(dt,`${k}`,void 0),P(dt,{synthetic:!0}),dt)}function ni(V,k,pe,Ae){const Ge={message:k};if(Ae&&pe){const dt=Ja(V,pe);dt.length&&(Ge.exception={values:[{value:k,stacktrace:{frames:dt}}]})}return Ge}function Di(V,{isUnhandledRejection:k}){const pe=gt(V),Ae=k?"promise rejection":"exception";return he(V)?`Event \`ErrorEvent\` captured as ${Ae} with message \`${V.message}\``:Pt(V)?`Event \`${Ri(V)}\` (type=${V.type}) captured as ${Ae}`:`Object captured as ${Ae} with keys: ${pe}`}function Ri(V){try{const k=Object.getPrototypeOf(V);return k?k.constructor.name:void 0}catch(k){}}class ji{static __initStatic(){this.id="GlobalHandlers"}constructor(k){this.name=ji.id,this._options=Xa({onerror:!0,onunhandledrejection:!0},k),this._installFunc={onerror:wi,onunhandledrejection:Ui}}setupOnce(){Error.stackTraceLimit=50;const k=this._options;for(const pe in k){const Ae=this._installFunc[pe];Ae&&k[pe]&&(ci(pe),Ae(),this._installFunc[pe]=void 0)}}}ji.__initStatic();function wi(){Kn("error",V=>{const[k,pe,Ae]=Uo();if(!k.getIntegration(ji))return;const{msg:Ge,url:dt,line:Ht,column:Jt,error:Gt}=V;if(ea()||Gt&&Gt.__sentry_own_request__)return;const cn=Gt===void 0&&et(Ge)?vo(Ge,dt,Ht,Jt):ro(Ni(pe,Gt||Ge,void 0,Ae,!1),dt,Ht,Jt);cn.level="error",ai(k,Gt,cn,"onerror")})}function Ui(){Kn("unhandledrejection",V=>{const[k,pe,Ae]=Uo();if(!k.getIntegration(ji))return;let Ge=V;try{"reason"in V?Ge=V.reason:"detail"in V&&"reason"in V.detail&&(Ge=V.detail.reason)}catch(Ht){}if(ea()||Ge&&Ge.__sentry_own_request__)return!0;const dt=ae(Ge)?zi(Ge):Ni(pe,Ge,void 0,Ae,!0);dt.level="error",ai(k,Ge,dt,"onunhandledrejection")})}function zi(V){return{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(V)}`}]}}}function vo(V,k,pe,Ae){const Ge=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;let dt=he(V)?V.message:V,Ht="Error";const Jt=dt.match(Ge);return Jt&&(Ht=Jt[1],dt=Jt[2]),ro({exception:{values:[{type:Ht,value:dt}]}},k,pe,Ae)}function ro(V,k,pe,Ae){const Ge=V.exception=V.exception||{},dt=Ge.values=Ge.values||[],Ht=dt[0]=dt[0]||{},Jt=Ht.stacktrace=Ht.stacktrace||{},Gt=Jt.frames=Jt.frames||[],cn=isNaN(parseInt(Ae,10))?void 0:Ae,rr=isNaN(parseInt(pe,10))?void 0:pe,On=et(k)&&k.length>0?k:me();return Gt.length===0&&Gt.push({colno:cn,filename:On,function:"?",in_app:!0,lineno:rr}),V}function ci(V){(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.log(`Global Handler attached: ${V}`)}function ai(V,k,pe,Ae){P(pe,{handled:!1,type:Ae}),V.captureEvent(pe,{originalException:k})}function Uo(){const V=ln(),k=V.getClient(),pe=k&&k.getOptions()||{stackParser:()=>[],attachStacktrace:!1};return[V,pe.stackParser,pe.attachStacktrace]}const Yo=["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 xi{static __initStatic(){this.id="TryCatch"}constructor(k){this.name=xi.id,this._options=Xa({XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0},k)}setupOnce(){this._options.setTimeout&&se(fr,"setTimeout",Hi),this._options.setInterval&&se(fr,"setInterval",Hi),this._options.requestAnimationFrame&&se(fr,"requestAnimationFrame",_i),this._options.XMLHttpRequest&&"XMLHttpRequest"in fr&&se(XMLHttpRequest.prototype,"send",Es);const k=this._options.eventTarget;k&&(Array.isArray(k)?k:Yo).forEach(hs)}}xi.__initStatic();function Hi(V){return function(...k){const pe=k[0];return k[0]=vr(pe,{mechanism:{data:{function:Er(V)},handled:!0,type:"instrument"}}),V.apply(this,k)}}function _i(V){return function(k){return V.apply(this,[vr(k,{mechanism:{data:{function:"requestAnimationFrame",handler:Er(V)},handled:!0,type:"instrument"}})])}}function Es(V){return function(...k){const pe=this;return["onload","onerror","onprogress","onreadystatechange"].forEach(Ge=>{Ge in pe&&typeof pe[Ge]=="function"&&se(pe,Ge,function(dt){const Ht={mechanism:{data:{function:Ge,handler:Er(dt)},handled:!0,type:"instrument"}},Jt=fe(dt);return Jt&&(Ht.mechanism.data.handler=Er(Jt)),vr(dt,Ht)})}),V.apply(this,k)}}function hs(V){const k=fr,pe=k[V]&&k[V].prototype;!pe||!pe.hasOwnProperty||!pe.hasOwnProperty("addEventListener")||(se(pe,"addEventListener",function(Ae){return function(Ge,dt,Ht){try{typeof dt.handleEvent=="function"&&(dt.handleEvent=vr(dt.handleEvent,{mechanism:{data:{function:"handleEvent",handler:Er(dt),target:V},handled:!0,type:"instrument"}}))}catch(Jt){}return Ae.apply(this,[Ge,vr(dt,{mechanism:{data:{function:"addEventListener",handler:Er(dt),target:V},handled:!0,type:"instrument"}}),Ht])}}),se(pe,"removeEventListener",function(Ae){return function(Ge,dt,Ht){const Jt=dt;try{const Gt=Jt&&Jt.__sentry_wrapped__;Gt&&Ae.call(this,Ge,Gt,Ht)}catch(Gt){}return Ae.call(this,Ge,Jt,Ht)}}))}const Ks=["fatal","error","warning","log","info","debug"];function Wl(V){return Yn(V)}function Yn(V){return V==="warn"?"warning":Ks.includes(V)?V:"log"}function Vr(V){if(!V)return{};const k=V.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!k)return{};const pe=k[6]||"",Ae=k[8]||"";return{host:k[4],path:k[5],protocol:k[2],search:pe,hash:Ae,relative:k[5]+pe+Ae}}function Or(V){return V.split(/[\?#]/,1)[0]}function Ur(V){return V.split(/\\?\//).filter(k=>k.length>0&&k!==",").length}function na(V){const{protocol:k,host:pe,path:Ae}=V,Ge=pe&&pe.replace(/^.*@/,"[filtered]:[filtered]@").replace(":80","").replace(":443","")||"";return`${k?`${k}://`:""}${Ge}${Ae}`}const Ba=1024,Ya="Breadcrumbs";class Ua{static __initStatic(){this.id=Ya}constructor(k){this.name=Ua.id,this.options=Xa({console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0},k)}setupOnce(){this.options.console&&Kn("console",Xo),this.options.dom&&Kn("dom",Wo(this.options.dom)),this.options.xhr&&Kn("xhr",Jo),this.options.fetch&&Kn("fetch",ki),this.options.history&&Kn("history",ys)}addSentryBreadcrumb(k){this.options.sentry&&ln().addBreadcrumb({category:`sentry.${k.type==="transaction"?"transaction":"event"}`,event_id:k.event_id,level:k.level,message:O(k)},{event:k})}}Ua.__initStatic();function Wo(V){function k(pe){let Ae,Ge=typeof V=="object"?V.serializeAttribute:void 0,dt=typeof V=="object"&&typeof V.maxStringLength=="number"?V.maxStringLength:void 0;dt&&dt>Ba&&((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.warn(`\`dom.maxStringLength\` cannot exceed ${Ba}, but a value of ${dt} was configured. Sentry will use ${Ba} instead.`),dt=Ba),typeof Ge=="string"&&(Ge=[Ge]);try{const Ht=pe.event;Ae=Qi(Ht)?ve(Ht.target,{keyAttrs:Ge,maxStringLength:dt}):ve(Ht,{keyAttrs:Ge,maxStringLength:dt})}catch(Ht){Ae=""}Ae.length!==0&&ln().addBreadcrumb({category:`ui.${pe.name}`,message:Ae},{event:pe.event,name:pe.name,global:pe.global})}return k}function Xo(V){for(let pe=0;pe0?dt.exception.values[dt.exception.values.length-1]:void 0;Jt&&(dt.exception.values=Il(ls(V,k,Ge,Ht.originalException,Ae,dt.exception.values,Jt,0),pe))}function ls(V,k,pe,Ae,Ge,dt,Ht,Jt){if(dt.length>=pe+1)return dt;let Gt=[...dt];if(We(Ae[Ge],Error)){ri(Ht,Jt);const cn=V(k,Ae[Ge]),rr=Gt.length;Ll(cn,Ge,rr,Jt),Gt=ls(V,k,pe,Ae[Ge],Ge,[cn,...Gt],cn,rr)}return Array.isArray(Ae.errors)&&Ae.errors.forEach((cn,rr)=>{if(We(cn,Error)){ri(Ht,Jt);const On=V(k,cn),Zn=Gt.length;Ll(On,`errors[${rr}]`,Zn,Jt),Gt=ls(V,k,pe,cn,Ge,[On,...Gt],On,Zn)}}),Gt}function ri(V,k){V.mechanism=V.mechanism||{type:"generic",handled:!0},V.mechanism=Gs(Xa({},V.mechanism),{is_exception_group:!0,exception_id:k})}function Ll(V,k,pe,Ae){V.mechanism=V.mechanism||{type:"generic",handled:!0},V.mechanism=Gs(Xa({},V.mechanism),{type:"chained",source:k,exception_id:pe,parent_id:Ae})}function Il(V,k){return V.map(pe=>(pe.value&&(pe.value=xe(pe.value,k)),pe))}const Al="cause",du=5;class cl{static __initStatic(){this.id="LinkedErrors"}constructor(k={}){this.name=cl.id,this._key=k.key||Al,this._limit=k.limit||du}setupOnce(k,pe){k((Ae,Ge)=>{const dt=pe(),Ht=dt.getClient(),Jt=dt.getIntegration(cl);if(!Ht||!Jt)return Ae;const Gt=Ht.getOptions();return Ts(jo,Gt.stackParser,Gt.maxValueLength,Jt._key,Jt._limit,Ae,Ge),Ae})}}cl.__initStatic();class dl{static __initStatic(){this.id="HttpContext"}constructor(){this.name=dl.id}setupOnce(){nt(k=>{if(ln().getIntegration(dl)){if(!fr.navigator&&!fr.location&&!fr.document)return k;const pe=k.request&&k.request.url||fr.location&&fr.location.href,{referrer:Ae}=fr.document||{},{userAgent:Ge}=fr.navigator||{},dt=Xa(Xa(Xa({},k.request&&k.request.headers),Ae&&{Referer:Ae}),Ge&&{"User-Agent":Ge}),Ht=Gs(Xa(Xa({},k.request),pe&&{url:pe}),{headers:dt});return Gs(Xa({},k),{request:Ht})}return k})}}dl.__initStatic();class zs{static __initStatic(){this.id="Dedupe"}constructor(){this.name=zs.id}setupOnce(k,pe){const Ae=Ge=>{if(Ge.type)return Ge;const dt=pe().getIntegration(zs);if(dt){try{if(Qs(Ge,dt._previousEvent))return(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.warn("Event dropped due to being a duplicate of previously captured event."),null}catch(Ht){return dt._previousEvent=Ge}return dt._previousEvent=Ge}return Ge};Ae.id=this.name,k(Ae)}}zs.__initStatic();function Qs(V,k){return k?!!(fl(V,k)||fu(V,k)):!1}function fl(V,k){const pe=V.message,Ae=k.message;return!(!pe&&!Ae||pe&&!Ae||!pe&&Ae||pe!==Ae||!bs(V,k)||!fs(V,k))}function fu(V,k){const pe=Fs(k),Ae=Fs(V);return!(!pe||!Ae||pe.type!==Ae.type||pe.value!==Ae.value||!bs(V,k)||!fs(V,k))}function fs(V,k){let pe=Bs(V),Ae=Bs(k);if(!pe&&!Ae)return!0;if(pe&&!Ae||!pe&&Ae||(pe=pe,Ae=Ae,Ae.length!==pe.length))return!1;for(let Ge=0;Ge{k===void 0||k===pe||Vo(getCurrentHub())}))}function la(V){const k=getCurrentHub().getClient();k&&k.captureUserFeedback(V)}var vl=e(10063);const _l="/home/runner/work/sentry-javascript/sentry-javascript/packages/react/src/errorboundary.tsx";function Zs(V){const k=V.match(/^([^.]+)/);return k!==null&&parseInt(k[0])>=17}const Yl="unknown",eu={componentStack:null,error:null,eventId:null};function No(V,k){const pe=new WeakMap;function Ae(Ge,dt){if(!pe.has(Ge)){if(Ge.cause)return pe.set(Ge,!0),Ae(Ge.cause,dt);Ge.cause=dt}}Ae(V,k)}class Ei extends x.Component{constructor(k){super(k),Ei.prototype.__init.call(this),this.state=eu,this._openFallbackReportDialog=!0;const pe=ln().getClient();pe&&pe.on&&k.showDialog&&(this._openFallbackReportDialog=!1,pe.on("afterSendEvent",Ae=>{!Ae.type&&Ae.event_id===this._lastEventId&&Cs(Gs(Xa({},k.dialogOptions),{eventId:this._lastEventId}))}))}componentDidCatch(k,{componentStack:pe}){const{beforeCapture:Ae,onError:Ge,showDialog:dt,dialogOptions:Ht}=this.props;aa(Jt=>{if(Zs(x.version)&&be(k)){const cn=new Error(k.message);cn.name=`React ErrorBoundary ${cn.name}`,cn.stack=pe,No(k,cn)}Ae&&Ae(Jt,k,pe);const Gt=Mt(k,{contexts:{react:{componentStack:pe}}});Ge&&Ge(k,pe,Gt),dt&&(this._lastEventId=Gt,this._openFallbackReportDialog&&Cs(Gs(Xa({},Ht),{eventId:Gt}))),this.setState({error:k,componentStack:pe,eventId:Gt})})}componentDidMount(){const{onMount:k}=this.props;k&&k()}componentWillUnmount(){const{error:k,componentStack:pe,eventId:Ae}=this.state,{onUnmount:Ge}=this.props;Ge&&Ge(k,pe,Ae)}__init(){this.resetErrorBoundary=()=>{const{onReset:k}=this.props,{error:pe,componentStack:Ae,eventId:Ge}=this.state;k&&k(pe,Ae,Ge),this.setState(eu)}}render(){const{fallback:k,children:pe}=this.props,Ae=this.state;if(Ae.error){let Ge;return typeof k=="function"?Ge=k({error:Ae.error,componentStack:Ae.componentStack,resetError:this.resetErrorBoundary,eventId:Ae.eventId}):Ge=k,x.isValidElement(Ge)?Ge:(k&&(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&D.warn("fallback did not produce a valid ReactElement"),null)}return typeof pe=="function"?pe():pe}}function lc(V,k){const pe=V.displayName||V.name||Yl,Ae=Ge=>React.createElement(Ei,Gs(Xa({},k),{__self:this,__source:{fileName:_l,lineNumber:227}}),React.createElement(V,Gs(Xa({},Ge),{__self:this,__source:{fileName:_l,lineNumber:228}})));return Ae.displayName=`errorBoundary(${pe})`,hoistNonReactStatics(Ae,V),Ae}var ku=e(2258),io=e(76180),ns=e(53357),Xs={200:"requestConfig.success.msg",401:"requestConfig.unAuth.msg",403:"requestConfig.permissionDenied.msg",429:"errCode.TokenExceedsRateLimit",500:"requestConfig.responseStatus.msg"},Wa={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"},tu=function(k,pe){return k&&Wa[k]?(0,ns._w)(Wa[k]):pe&&Xs[pe]?(0,ns._w)(Xs[pe]):(0,ns._w)("requestConfig.errorData.msg",{code:"".concat(pe).concat(k?"-".concat(k):"")})},Xi=e(35667);function gl(){return Dl.apply(this,arguments)}function Dl(){return Dl=j()(p()().mark(function V(){return p()().wrap(function(pe){for(;;)switch(pe.prev=pe.next){case 0:return document.addEventListener("wheel",function(Ae){(Ae.ctrlKey||Ae.detail)&&Ae.preventDefault()},{capture:!1,passive:!1}),document.addEventListener("keydown",function(Ae){(Ae.ctrlKey===!0||Ae.metaKey===!0)&&(Ae.keyCode===61||Ae.keyCode===107||Ae.keyCode===173||Ae.keyCode===109||Ae.keyCode===187||Ae.keyCode===189)&&Ae.preventDefault()},!1),w.ZP.config({duration:1.5,maxCount:2}),pe.abrupt("return",{name:"@umijs/max"});case 4:case"end":return pe.stop()}},V)})),Dl.apply(this,arguments)}var nu=function(){return{pure:!0,title:(0,ns._w)("layout.title")}};function Nl(V){var k={showDialog:!0,fallback:function(Ae){return(0,Xi.jsx)(ku.xA,g()({},Ae))}};return x.createElement(Ei,k,V)}var uc={baseURL:"",timeout:1e5,headers:{"Content-Type":"application/json"},errorConfig:{errorHandler:function(k,pe){var Ae;if(!/^2/.test(k.status)&&!(pe!=null&&pe.skipErrorHandler)&&(((Ae=k.response)===null||Ae===void 0?void 0:Ae.status)===401&&(T.history.push("/"),localStorage.removeItem(io.Uf.AUTH_TOKEN)),!(pe!=null&&pe.hideCodeErrorMsg)))if(k.response){var Ge;w.ZP.error(tu((Ge=k.response.data)===null||Ge===void 0?void 0:Ge.code,k.response.status))}else k.request?w.ZP.error((0,ns._w)("requestConfig.noResponse.msg")):w.ZP.error((0,ns._w)("requestConfig.requestError.msg"))}},requestInterceptors:[function(V){if(V.params&&(V.params=B().decamelizeKeys(V.params)),V.data&&(V.data=B().decamelizeKeys(V.data)),V.headers){var k,pe;if((k=V.url)!==null&&k!==void 0&&k.includes("https://api.deepdataspace.com"))V.headers.Token="dds-tool-free";else if(((pe=V.url)===null||pe===void 0?void 0:pe.indexOf("http"))!==0){var Ae=localStorage.getItem(io.Uf.AUTH_TOKEN);Ae&&(V.headers.Token=Ae)}}return g()({},V)}],responseInterceptors:[function(V){var k;if(((k=V.data)===null||k===void 0?void 0:k.code)===0){var pe;return V.data=B().camelizeKeys(((pe=V.data)===null||pe===void 0?void 0:pe.data)||{}),V}else{var Ae;if(!((Ae=V.config)!==null&&Ae!==void 0&&Ae.hideCodeErrorMsg)){var Ge;w.ZP.error(tu((Ge=V.data)===null||Ge===void 0?void 0:Ge.code,200))}throw V}}]},Wu=e(7862),Ho=e.n(Wu),Hu=e(81690),Vl=e.n(Hu),Ji=e(21700),Js=e.n(Ji),qs=e(31236),Rt=e.n(qs);function Pi(){return Pi=Object.assign||function(V){for(var k=1;k=0||(Ge[pe]=V[pe]);return Ge}var Mo={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},Iu={rel:["amphtml","canonical","alternate"]},gu={type:["application/ld+json"]},xs={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"]},el=Object.keys(Mo).map(function(V){return Mo[V]}),Ii={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},Ti=Object.keys(Ii).reduce(function(V,k){return V[Ii[k]]=k,V},{}),qi=function(V,k){for(var pe=V.length-1;pe>=0;pe-=1){var Ae=V[pe];if(Object.prototype.hasOwnProperty.call(Ae,k))return Ae[k]}return null},us=function(V){var k=qi(V,Mo.TITLE),pe=qi(V,"titleTemplate");if(Array.isArray(k)&&(k=k.join("")),pe&&k)return pe.replace(/%s/g,function(){return k});var Ae=qi(V,"defaultTitle");return k||Ae||void 0},Io=function(V){return qi(V,"onChangeClientState")||function(){}},Us=function(V,k){return k.filter(function(pe){return pe[V]!==void 0}).map(function(pe){return pe[V]}).reduce(function(pe,Ae){return Pi({},pe,Ae)},{})},mu=function(V,k){return k.filter(function(pe){return pe[Mo.BASE]!==void 0}).map(function(pe){return pe[Mo.BASE]}).reverse().reduce(function(pe,Ae){if(!pe.length)for(var Ge=Object.keys(Ae),dt=0;dt/g,">").replace(/"/g,""").replace(/'/g,"'")},Is=function(V){return Object.keys(V).reduce(function(k,pe){var Ae=V[pe]!==void 0?pe+'="'+V[pe]+'"':""+pe;return k?k+" "+Ae:Ae},"")},Ou=function(V,k){return k===void 0&&(k={}),Object.keys(V).reduce(function(pe,Ae){return pe[Ii[Ae]||Ae]=V[Ae],pe},k)},Ls=function(V,k){return k.map(function(pe,Ae){var Ge,dt=((Ge={key:Ae})["data-rh"]=!0,Ge);return Object.keys(pe).forEach(function(Ht){var Jt=Ii[Ht]||Ht;Jt==="innerHTML"||Jt==="cssText"?dt.dangerouslySetInnerHTML={__html:pe.innerHTML||pe.cssText}:dt[Jt]=pe[Ht]}),x.createElement(V,dt)})},ma=function(V,k,pe){switch(V){case Mo.TITLE:return{toComponent:function(){return Ge=k.titleAttributes,(dt={key:Ae=k.title})["data-rh"]=!0,Ht=Ou(Ge,dt),[x.createElement(Mo.TITLE,Ht,Ae)];var Ae,Ge,dt,Ht},toString:function(){return function(Ae,Ge,dt,Ht){var Jt=Is(dt),Gt=Au(Ge);return Jt?"<"+Ae+' data-rh="true" '+Jt+">"+Ms(Gt,Ht)+"":"<"+Ae+' data-rh="true">'+Ms(Gt,Ht)+""}(V,k.title,k.titleAttributes,pe)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return Ou(k)},toString:function(){return Is(k)}};default:return{toComponent:function(){return Ls(V,k)},toString:function(){return function(Ae,Ge,dt){return Ge.reduce(function(Ht,Jt){var Gt=Object.keys(Jt).filter(function(On){return!(On==="innerHTML"||On==="cssText")}).reduce(function(On,Zn){var Gr=Jt[Zn]===void 0?Zn:Zn+'="'+Ms(Jt[Zn],dt)+'"';return On?On+" "+Gr:Gr},""),cn=Jt.innerHTML||Jt.cssText||"",rr=ml.indexOf(Ae)===-1;return Ht+"<"+Ae+' data-rh="true" '+Gt+(rr?"/>":">"+cn+"")},"")}(V,k,pe)}}}},it=function(V){var k=V.baseTag,pe=V.bodyAttributes,Ae=V.encode,Ge=V.htmlAttributes,dt=V.noscriptTags,Ht=V.styleTags,Jt=V.title,Gt=Jt===void 0?"":Jt,cn=V.titleAttributes,rr=V.linkTags,On=V.metaTags,Zn=V.scriptTags,Gr={toComponent:function(){},toString:function(){return""}};if(V.prioritizeSeoTags){var jr=function(Qr){var pa=Qr.linkTags,Ma=Qr.scriptTags,_a=Qr.encode,Pa=ks(Qr.metaTags,xs),Fa=ks(pa,Iu),Aa=ks(Ma,gu);return{priorityMethods:{toComponent:function(){return[].concat(Ls(Mo.META,Pa.priority),Ls(Mo.LINK,Fa.priority),Ls(Mo.SCRIPT,Aa.priority))},toString:function(){return ma(Mo.META,Pa.priority,_a)+" "+ma(Mo.LINK,Fa.priority,_a)+" "+ma(Mo.SCRIPT,Aa.priority,_a)}},metaTags:Pa.default,linkTags:Fa.default,scriptTags:Aa.default}}(V);Gr=jr.priorityMethods,rr=jr.linkTags,On=jr.metaTags,Zn=jr.scriptTags}return{priority:Gr,base:ma(Mo.BASE,k,Ae),bodyAttributes:ma("bodyAttributes",pe,Ae),htmlAttributes:ma("htmlAttributes",Ge,Ae),link:ma(Mo.LINK,rr,Ae),meta:ma(Mo.META,On,Ae),noscript:ma(Mo.NOSCRIPT,dt,Ae),script:ma(Mo.SCRIPT,Zn,Ae),style:ma(Mo.STYLE,Ht,Ae),title:ma(Mo.TITLE,{title:Gt,titleAttributes:cn},Ae)}},Ut=[],_n=function(V,k){var pe=this;k===void 0&&(k=typeof document!="undefined"),this.instances=[],this.value={setHelmet:function(Ae){pe.context.helmet=Ae},helmetInstances:{get:function(){return pe.canUseDOM?Ut:pe.instances},add:function(Ae){(pe.canUseDOM?Ut:pe.instances).push(Ae)},remove:function(Ae){var Ge=(pe.canUseDOM?Ut:pe.instances).indexOf(Ae);(pe.canUseDOM?Ut:pe.instances).splice(Ge,1)}}},this.context=V,this.canUseDOM=k,k||(V.helmet=it({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},dr=x.createContext({}),Ra=Ho().shape({setHelmet:Ho().func,helmetInstances:Ho().shape({get:Ho().func,add:Ho().func,remove:Ho().func})}),So=typeof document!="undefined",fi=function(V){function k(pe){var Ae;return(Ae=V.call(this,pe)||this).helmetData=new _n(Ae.props.context,k.canUseDOM),Ae}return Rl(k,V),k.prototype.render=function(){return x.createElement(dr.Provider,{value:this.helmetData.value},this.props.children)},k}(x.Component);fi.canUseDOM=So,fi.propTypes={context:Ho().shape({helmet:Ho().shape()}),children:Ho().node.isRequired},fi.defaultProps={context:{}},fi.displayName="HelmetProvider";var Go=function(V,k){var pe,Ae=document.head||document.querySelector(Mo.HEAD),Ge=Ae.querySelectorAll(V+"[data-rh]"),dt=[].slice.call(Ge),Ht=[];return k&&k.length&&k.forEach(function(Jt){var Gt=document.createElement(V);for(var cn in Jt)Object.prototype.hasOwnProperty.call(Jt,cn)&&(cn==="innerHTML"?Gt.innerHTML=Jt.innerHTML:cn==="cssText"?Gt.styleSheet?Gt.styleSheet.cssText=Jt.cssText:Gt.appendChild(document.createTextNode(Jt.cssText)):Gt.setAttribute(cn,Jt[cn]===void 0?"":Jt[cn]));Gt.setAttribute("data-rh","true"),dt.some(function(rr,On){return pe=On,Gt.isEqualNode(rr)})?dt.splice(pe,1):Ht.push(Gt)}),dt.forEach(function(Jt){return Jt.parentNode.removeChild(Jt)}),Ht.forEach(function(Jt){return Ae.appendChild(Jt)}),{oldTags:dt,newTags:Ht}},rs=function(V,k){var pe=document.getElementsByTagName(V)[0];if(pe){for(var Ae=pe.getAttribute("data-rh"),Ge=Ae?Ae.split(","):[],dt=[].concat(Ge),Ht=Object.keys(k),Jt=0;Jt=0;On-=1)pe.removeAttribute(dt[On]);Ge.length===dt.length?pe.removeAttribute("data-rh"):pe.getAttribute("data-rh")!==Ht.join(",")&&pe.setAttribute("data-rh",Ht.join(","))}},vi=function(V,k){var pe=V.baseTag,Ae=V.htmlAttributes,Ge=V.linkTags,dt=V.metaTags,Ht=V.noscriptTags,Jt=V.onChangeClientState,Gt=V.scriptTags,cn=V.styleTags,rr=V.title,On=V.titleAttributes;rs(Mo.BODY,V.bodyAttributes),rs(Mo.HTML,Ae),function(Qr,pa){Qr!==void 0&&document.title!==Qr&&(document.title=Au(Qr)),rs(Mo.TITLE,pa)}(rr,On);var Zn={baseTag:Go(Mo.BASE,pe),linkTags:Go(Mo.LINK,Ge),metaTags:Go(Mo.META,dt),noscriptTags:Go(Mo.NOSCRIPT,Ht),scriptTags:Go(Mo.SCRIPT,Gt),styleTags:Go(Mo.STYLE,cn)},Gr={},jr={};Object.keys(Zn).forEach(function(Qr){var pa=Zn[Qr],Ma=pa.newTags,_a=pa.oldTags;Ma.length&&(Gr[Qr]=Ma),_a.length&&(jr[Qr]=Zn[Qr].oldTags)}),k&&k(),Jt(V,Gr,jr)},yi=null,Lo=function(V){function k(){for(var Ae,Ge=arguments.length,dt=new Array(Ge),Ht=0;Ht elements are self-closing and can not contain children. Refer to our API for more information.")}},pe.flattenArrayTypeChildren=function(Ae){var Ge,dt=Ae.child,Ht=Ae.arrayTypeChildren;return Pi({},Ht,((Ge={})[dt.type]=[].concat(Ht[dt.type]||[],[Pi({},Ae.newChildProps,this.mapNestedChildrenToProps(dt,Ae.nestedChildren))]),Ge))},pe.mapObjectTypeChildren=function(Ae){var Ge,dt,Ht=Ae.child,Jt=Ae.newProps,Gt=Ae.newChildProps,cn=Ae.nestedChildren;switch(Ht.type){case Mo.TITLE:return Pi({},Jt,((Ge={})[Ht.type]=cn,Ge.titleAttributes=Pi({},Gt),Ge));case Mo.BODY:return Pi({},Jt,{bodyAttributes:Pi({},Gt)});case Mo.HTML:return Pi({},Jt,{htmlAttributes:Pi({},Gt)});default:return Pi({},Jt,((dt={})[Ht.type]=Pi({},Gt),dt))}},pe.mapArrayTypeChildrenToProps=function(Ae,Ge){var dt=Pi({},Ge);return Object.keys(Ae).forEach(function(Ht){var Jt;dt=Pi({},dt,((Jt={})[Ht]=Ae[Ht],Jt))}),dt},pe.warnOnInvalidChildren=function(Ae,Ge){return Js()(el.some(function(dt){return Ae.type===dt}),typeof Ae.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 "+el.join(", ")+" are allowed. Helmet does not support rendering <"+Ae.type+"> elements. Refer to our API for more information."),Js()(!Ge||typeof Ge=="string"||Array.isArray(Ge)&&!Ge.some(function(dt){return typeof dt!="string"}),"Helmet expects a string as a child of <"+Ae.type+">. Did you forget to wrap your children in braces? ( <"+Ae.type+">{``} ) Refer to our API for more information."),!0},pe.mapChildrenToProps=function(Ae,Ge){var dt=this,Ht={};return x.Children.forEach(Ae,function(Jt){if(Jt&&Jt.props){var Gt=Jt.props,cn=Gt.children,rr=Ko(Gt,Fo),On=Object.keys(rr).reduce(function(Gr,jr){return Gr[Ti[jr]||jr]=rr[jr],Gr},{}),Zn=Jt.type;switch(typeof Zn=="symbol"?Zn=Zn.toString():dt.warnOnInvalidChildren(Jt,cn),Zn){case Mo.FRAGMENT:Ge=dt.mapChildrenToProps(cn,Ge);break;case Mo.LINK:case Mo.META:case Mo.NOSCRIPT:case Mo.SCRIPT:case Mo.STYLE:Ht=dt.flattenArrayTypeChildren({child:Jt,arrayTypeChildren:Ht,newChildProps:On,nestedChildren:cn});break;default:Ge=dt.mapObjectTypeChildren({child:Jt,newProps:Ge,newChildProps:On,nestedChildren:cn})}}}),this.mapArrayTypeChildrenToProps(Ht,Ge)},pe.render=function(){var Ae=this.props,Ge=Ae.children,dt=Ko(Ae,Vi),Ht=Pi({},dt),Jt=dt.helmetData;return Ge&&(Ht=this.mapChildrenToProps(Ge,Ht)),!Jt||Jt instanceof _n||(Jt=new _n(Jt.context,Jt.instances)),Jt?x.createElement(Lo,Pi({},Ht,{context:Jt.value,helmetData:void 0})):x.createElement(dr.Consumer,null,function(Gt){return x.createElement(Lo,Pi({},Ht,{context:Gt}))})},k}(x.Component);vs.propTypes={base:Ho().object,bodyAttributes:Ho().object,children:Ho().oneOfType([Ho().arrayOf(Ho().node),Ho().node]),defaultTitle:Ho().string,defer:Ho().bool,encodeSpecialCharacters:Ho().bool,htmlAttributes:Ho().object,link:Ho().arrayOf(Ho().object),meta:Ho().arrayOf(Ho().object),noscript:Ho().arrayOf(Ho().object),onChangeClientState:Ho().func,script:Ho().arrayOf(Ho().object),style:Ho().arrayOf(Ho().object),title:Ho().string,titleAttributes:Ho().object,titleTemplate:Ho().string,prioritizeSeoTags:Ho().bool,helmetData:Ho().object},vs.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},vs.displayName="Helmet";var hu={},Gl=function(k){return x.createElement(fi,{context:hu},k)},As=e(96662);function Du(V){var k={};return(0,Xi.jsx)(As.J.Provider,{value:k,children:V.children})}function zl(V){return(0,Xi.jsx)(Du,{children:V})}var Ss=e(62376),Ac=e.n(Ss),_u=e(62109),tl=e(65388),jl=e(42505),ru=["appConfig"],Yu=null,Oc=function(){return Yu||(Yu=sa().applyPlugins({key:"antd",type:T.ApplyPluginsType.modify,initialValue:g()({},{theme:{token:{colorLink:"#1e53f5",colorPrimary:"#1e53f5"}}})})),Yu};function wu(V){var k=Oc(),pe=k.appConfig,Ae=Ac()(k,ru),Ge=V;return Ae.prefixCls&&(_u.Z.config({rootPrefixCls:Ae.prefixCls}),w.ZP.config({prefixCls:"".concat(Ae.prefixCls,"-message")}),tl.Z.config({prefixCls:"".concat(Ae.prefixCls,"-notification")})),Ae.iconPrefixCls&&jl.ZP.config({iconPrefixCls:Ae.iconPrefixCls}),Ae.theme&&jl.ZP.config({theme:Ae.theme}),Ge=(0,Xi.jsx)(jl.ZP,g()(g()({},Ae),{},{children:Ge})),Ge}var au=e(47338);function yu(){return(0,Xi.jsx)("div",{})}function as(V){var k=x.useRef(!1),pe=(0,au.t)("@@initialState")||{},Ae=pe.loading,Ge=Ae===void 0?!1:Ae;return x.useEffect(function(){Ge||(k.current=!0)},[Ge]),Ge&&!k.current?(0,Xi.jsx)(yu,{}):V.children}function bu(V){return(0,Xi.jsx)(as,{children:V})}var Os={};function es(V){return V.replace(V[0],V[0].toUpperCase()).replace(/-(w)/g,function(k,pe){return pe.toUpperCase()})}function Ws(V){var k=V.routes;Object.keys(k).forEach(function(pe){var Ae=k[pe].icon;if(Ae&&typeof Ae=="string"){var Ge=es(Ae);(Os[Ge]||Os[Ge+"Outlined"])&&(k[pe].icon=x.createElement(Os[Ge]||Os[Ge+"Outlined"]))}})}var pl=e(88205),Qo=e.n(pl),ou=e(6901),cs=e.n(ou),Vu=e(85417),nl=e(16221);function hl(){var V=getLocale();if(moment!=null&&moment.locale){var k;moment.locale(((k=localeInfo[V])===null||k===void 0?void 0:k.momentLocale)||"")}setIntl(V)}var rl=typeof window!="undefined"&&typeof window.document!="undefined"&&typeof window.document.createElement!="undefined"?x.useLayoutEffect:x.useEffect,bi=function(k){var pe,Ae=(0,nl.Kd)(),Ge=x.useState(Ae),dt=Qo()(Ge,2),Ht=dt[0],Jt=dt[1],Gt=x.useState(function(){return(0,nl.lw)(Ht,!0)}),cn=Qo()(Gt,2),rr=cn[0],On=cn[1],Zn=function(pa){if(cs()!==null&&cs()!==void 0&&cs().locale){var Ma;cs().locale(((Ma=nl.H8[pa])===null||Ma===void 0?void 0:Ma.momentLocale)||"en")}Jt(pa),On((0,nl.lw)(pa))};rl(function(){return nl.B.on(nl.PZ,Zn),function(){nl.B.off(nl.PZ,Zn)}},[]);var Gr={},jr=(0,nl.Mg)();return(0,Xi.jsx)(jl.ZP,{direction:jr,locale:((pe=nl.H8[Ht])===null||pe===void 0?void 0:pe.antd)||Gr,children:(0,Xi.jsx)(nl.eU,{value:rr,children:k.children})})};function Ds(V){return x.createElement(bi,null,V)}var ju=e(34485),Mu=e.n(ju),yl=e(65246),Pu=e(7986);function Tu(V,k){return Kl.apply(this,arguments)}function Kl(){return Kl=j()(p()().mark(function V(k,pe){return p()().wrap(function(Ge){for(;;)switch(Ge.prev=Ge.next){case 0:return Ge.abrupt("return",(0,T.request)("/api/v1/datasets",g()({method:"GET",params:k},pe||{})));case 1:case"end":return Ge.stop()}},V)})),Kl.apply(this,arguments)}function Pl(V,k){return Fl.apply(this,arguments)}function Fl(){return Fl=j()(p()().mark(function V(k,pe){return p()().wrap(function(Ge){for(;;)switch(Ge.prev=Ge.next){case 0:return Ge.abrupt("return",(0,T.request)("/api/v1/datasets/".concat(k.datasetId),g()({method:"GET"},pe||{})));case 1:case"end":return Ge.stop()}},V)})),Fl.apply(this,arguments)}function si(V,k){return z.apply(this,arguments)}function z(){return z=j()(p()().mark(function V(k,pe){return p()().wrap(function(Ge){for(;;)switch(Ge.prev=Ge.next){case 0:return Ge.abrupt("return",(0,T.request)("/api/v1/images",g()({method:"GET",params:k},pe||{})));case 1:case"end":return Ge.stop()}},V)})),z.apply(this,arguments)}function de(V,k){return He.apply(this,arguments)}function He(){return He=j()(p()().mark(function V(k,pe){return p()().wrap(function(Ge){for(;;)switch(Ge.prev=Ge.next){case 0:return Ge.abrupt("return",(0,T.request)("/api/v1/image_flags",g()({method:"POST",data:g()({},k)},pe||{})));case 1:case"end":return Ge.stop()}},V)})),He.apply(this,arguments)}function lt(V,k){return Dt.apply(this,arguments)}function Dt(){return Dt=j()(p()().mark(function V(k,pe){return p()().wrap(function(Ge){for(;;)switch(Ge.prev=Ge.next){case 0:return Ge.abrupt("return",(0,T.request)("/api/v1/tasks/rerank_by_flags",g()({method:"POST",data:g()({},k)},pe||{})));case 1:case"end":return Ge.stop()}},V)})),Dt.apply(this,arguments)}function An(V,k){return Rr.apply(this,arguments)}function Rr(){return Rr=j()(p()().mark(function V(k,pe){return p()().wrap(function(Ge){for(;;)switch(Ge.prev=Ge.next){case 0:return Ge.abrupt("return",(0,T.request)("/api/v1/tasks/".concat(k.name,"/").concat(k.id),g()({method:"GET"},pe||{})));case 1:case"end":return Ge.stop()}},V)})),Rr.apply(this,arguments)}function Eo(V,k){return Zo.apply(this,arguments)}function Zo(){return Zo=_asyncToGenerator(_regeneratorRuntime().mark(function V(k,pe){return _regeneratorRuntime().wrap(function(Ge){for(;;)switch(Ge.prev=Ge.next){case 0:return Ge.abrupt("return",request("/api/v1/annotations",_objectSpread({method:"POST",data:_objectSpread({},k)},pe||{})));case 1:case"end":return Ge.stop()}},V)})),Zo.apply(this,arguments)}function mi(V,k){return $i.apply(this,arguments)}function $i(){return $i=j()(p()().mark(function V(k,pe){return p()().wrap(function(Ge){for(;;)switch(Ge.prev=Ge.next){case 0:return Ge.abrupt("return",(0,T.request)("/api/v1/comparisons",g()({method:"GET",params:k},pe||{})));case 1:case"end":return Ge.stop()}},V)})),$i.apply(this,arguments)}function al(V,k){return bl.apply(this,arguments)}function bl(){return bl=_asyncToGenerator(_regeneratorRuntime().mark(function V(k,pe){return _regeneratorRuntime().wrap(function(Ge){for(;;)switch(Ge.prev=Ge.next){case 0:return Ge.abrupt("return",request("/api/v1/label_clone",_objectSpread({method:"POST",data:_objectSpread({},k)},pe||{})));case 1:case"end":return Ge.stop()}},V)})),bl.apply(this,arguments)}var Gu=e(74595),ts={categoryId:"All",displayAnnotationType:void 0,displayOptions:[io.zY.showAnnotations,io.zY.showAllCategory],selectedLabelIds:[],diffMode:io.uP.Overlay},Lu={datasetId:"",datasetName:"",page:1,pageSize:io.L8,cloumnCount:5,isSingleAnnotation:!1,previewIndex:-1,filterValues:g()({},ts),comparisons:void 0,flagTools:void 0},cc={imgList:[],total:0,flagTools:{lastShiftIndex:-1,lastSavedIndexs:[],count:0}},Ku=g()(g()({},cc),{},{screenLoading:"",hasEmbedFile:!1,filters:{categories:[],annotationTypes:[],displayOptions:io.EX,labels:[]}}),dc=e(39378),fc=function(){var V,k,pe,Ae=(0,yl.x)(g()({},Lu)),Ge=Qo()(Ae,2),dt=Ge[0],Ht=Ge[1],Jt=(0,yl.x)(g()({},Ku)),Gt=Qo()(Jt,2),cn=Gt[0],rr=Gt[1],On=dt.filterValues,Zn=dt.comparisons,Gr=cn.filters,jr=function(Ea){Ht(function(ha){Object.assign(ha,Lu,Ea)})},Qr=function(){},pa=(0,Pu.Z)(function(ia){if(!dt.datasetId)throw null;return Pl({datasetId:dt.datasetId})},{refreshDeps:[dt.datasetId],onSuccess:function(Ea,ha){var Va=Ea.categoryList,Za=Ea.labelList,uo=Ea.objectTypes,Nr=ha.length>0?ha[0]:io.$j.gt,Co=uo.filter(function(co){return co!==io.JJ.Classification}),da=dt.filterValues.displayAnnotationType&&Co.find(function(co){return co===dt.filterValues.displayAnnotationType});rr(function(co){var so=da||Co[0],Mi=(0,Gu.B8)(dt.filterValues.displayOptions,so),ho=Qo()(Mi,2),zo=ho[0],pi=ho[1];co.filters.categories=[{id:"All",name:"All"}].concat(Mu()(Va)),co.filters.annotationTypes=Co,co.filters.displayOptions=zo,da||Ht(function(li){li.filterValues.displayOptions=pi,li.filterValues.displayAnnotationType=so}),dt.filterValues.categoryId||Ht(function(li){li.filterValues.categoryId="All"}),Za&&Za.length&&(co.filters.labels=Za.map(function(li){return li.confidenceRange=li.source===io.$j.pred?[.2,1]:[0,1],li.source===Nr&&!da&&Ht(function(di){di.filterValues.selectedLabelIds=[li.id]}),li}))})},onError:function(){}},[function(ia){return{onBefore:function(){var ha;return{loading:!(!((ha=ia.state.params)===null||ha===void 0)&&ha.length)}}}}]),Ma=pa.loading,_a=pa.runAsync,Pa=(0,Pu.Z)(function(){var ia=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(!dt.datasetId||!dt.filterValues.categoryId)throw null;ia||(rr(function(Va){Object.assign(Va,cc)}),window.scrollTo(0,0));var Ea=dt.filterValues.categoryId==="All"?void 0:dt.filterValues.categoryId,ha={datasetId:dt.datasetId,categoryId:Ea,pageNum:dt.page,pageSize:dt.pageSize};return dt.comparisons?mi(g()(g()({},ha),{},{labelId:dt.comparisons.label.id,precision:dt.comparisons.precision,orderBy:dt.comparisons.orderBy,displayCategoryId:Ea})):(dt.flagTools&&dt.flagTools.flagStatus>=0&&Object.assign(ha,{flag:dt.flagTools.flagStatus}),si(ha))},{debounceWait:20,refreshDeps:[dt.datasetId,dt.filterValues.categoryId,dt.page,dt.pageSize,(V=dt.comparisons)===null||V===void 0?void 0:V.precision,(k=dt.comparisons)===null||k===void 0?void 0:k.orderBy,(pe=dt.flagTools)===null||pe===void 0?void 0:pe.flagStatus],onSuccess:function(Ea){rr(function(ha){ha.imgList=Ea.imageList,ha.total=Ea.total})},onError:function(){}},[function(ia){return{onBefore:function(){var ha;return{loading:!(!((ha=ia.state.params)===null||ha===void 0)&&ha.length)}}}}]),Fa=Pa.loading,Aa=Pa.run,$a=function(Ea){Ht(function(ha){ha.previewIndex=Ea})},Ir=function(){Ht(function(Ea){Ea.previewIndex=-1})},nr=Ma||Fa,Ar=(0,x.useMemo)(function(){if(Zn){var ia=[],Ea=Gr.labels.find(function(ha){return ha.source===io.$j.gt});return(Zn.displays.includes(io.$j.gt)||Zn.displays.includes(io.BP.fn))&&Ea&&ia.push(Ea.id),(Zn.displays.includes(io.$j.pred)||Zn.displays.includes(io.BP.fp))&&ia.push(Zn.label.id),ia}return On.selectedLabelIds},[Zn,On.selectedLabelIds,Gr.labels]),xa=(0,x.useMemo)(function(){return Ar.length>1&&(On.displayAnnotationType===io.JJ.Matting||(Zn?Zn.diffMode===io.uP.Tiled:On.diffMode===io.uP.Tiled))},[Zn,On.diffMode,Ar]),Ta=(0,x.useMemo)(function(){var ia={};return Object.keys(io.zY).forEach(function(Ea){var ha;ia[Ea]=!!(!((ha=On.displayOptions)===null||ha===void 0)&&ha.find(function(Va){return Va===Ea}))}),ia},[dt.filterValues.displayOptions]),ba=(0,x.useCallback)(function(ia){var Ea=Mu()(ia.objects)||[],ha=dt.comparisons,Va={labels:cn.filters.labels,displayLabelIds:Ar,isTiledDiff:xa},Za=dt.filterValues.displayAnnotationType;if(Ea=Ea.filter(function(Nr){return Nr.mask&&Za===io.JJ.Mask||Nr.alpha&&Za===io.JJ.Matting||Nr.points&&Za===io.JJ.KeyPoints||Nr.segmentation&&Za===io.JJ.Segmentation||Nr.boundingBox&&Za===io.JJ.Detection}).map(function(Nr){return g()(g()({},Nr),{},{mask:Za===io.JJ.Mask?Nr.mask:void 0,alpha:Za===io.JJ.Matting?Nr.alpha:void 0,points:Za===io.JJ.KeyPoints?Nr.points:void 0,segmentation:Za===io.JJ.Segmentation?Nr.segmentation:void 0,boundingBox:[io.JJ.Detection,io.JJ.KeyPoints].includes(Za)?Nr.boundingBox:void 0})}),ha){var uo=Ea.filter(function(Nr){return Nr.source===io.$j.pred});Ea=Ea.filter(function(Nr){return(Nr.conf||0)>=ha.score}),Ea=Ea.map(function(Nr){var Co=g()({},Nr);if(Nr.source===io.$j.gt){var da=(0,dc.isNumber)(Nr.matchedDetIdx)&&Nr.matchedDetIdx>=0&&Ea.includes(uo[Nr.matchedDetIdx])?io.BP.ok:io.BP.fn;Co.compareResult=da}return Co}),Ea=Ea.filter(function(Nr){return Nr.compareResult===io.BP.ok?Nr.source&&ha.displays.includes(Nr.source):Nr.compareResult&&ha.displays.includes(Nr.compareResult)})}return Ea.filter(function(Nr){var Co=Ta.showAnnotations,da=Ta.showAllCategory,co=dt.filterValues.categoryId||"";if(!Co||!da&&Nr.categoryId!==co||Va&&Nr.labelId&&!Va.displayLabelIds.includes(Nr.labelId)||Va&&Va.isTiledDiff&&Nr.labelId!==ia.curLabelId)return!1;if(!ha&&Va){var so=Va.labels.find(function(Mi){return Mi.id===Nr.labelId});return so?so.source===io.$j.gt?!0:Nr.conf!==void 0&&Nr.conf>=(so==null?void 0:so.confidenceRange[0])&&Nr.conf<=(so==null?void 0:so.confidenceRange[1]):!1}return!0}).map(function(Nr){var Co=g()({},Nr),da=(0,Gu.iE)(Nr.labelId,Ar,xa||!!dt.comparisons),co=da.colorAplha,so=da.strokeDash,Mi=da.lineWidth;return ha&&Nr.compareResult?Co.customStyles={pointAplha:co,strokeDash:so,thickness:Mi,fillColor:io.pB[Nr.compareResult]||"transparent"}:Co.customStyles={pointAplha:co,strokeDash:so,thickness:Mi},Co})},[dt.filterValues.displayAnnotationType,dt.comparisons,cn.filters.labels,Ar,xa,Ta]);return{pageState:dt,setPageState:Ht,pageData:cn,setPageData:rr,onInitPageState:jr,onPageContentLoaded:Qr,onPreviewIndexChange:$a,exitPreview:Ir,loadDatasetInfo:_a,loadImgList:Aa,loading:nr,displayLabelIds:Ar,isTiledDiff:xa,displayOptionsResult:Ta,displayObjectsFilter:ba}},Nu=e(41260),Gi=function(){var V=(0,x.useState)(!1),k=Qo()(V,2),pe=k[0],Ae=k[1],Ge=(0,T.useModel)("dataset.common"),dt=Ge.setPageState,Ht=function(){Ae(!0)},Jt=function(){Ae(!1)},Gt=function(Zn){dt(function(Gr){Gr.page=1,Gr.filterValues.displayAnnotationType=io.JJ.Detection,Gr.flagTools=void 0,Gr.comparisons={label:Zn,orderBy:io.YZ.fn,precision:Zn.comparePrecisions[0].precision,displays:io.G3.map(function(jr){return jr.value}),diffMode:io.uP.Overlay,score:(0,Nu.p)(Zn.comparePrecisions[0].threshold,2)}})},cn=function(){dt(function(Zn){Zn.page=1,Zn.comparisons=void 0})},rr=function(Zn,Gr){dt(function(jr){if(jr.comparisons&&(jr.comparisons[Zn]=Gr,Zn==="precision")){var Qr=jr.comparisons.label.comparePrecisions.find(function(pa){return pa.precision===Gr});Qr&&(jr.comparisons.score=(0,Nu.p)(Qr.threshold,2))}})};return{showAnalysisModal:pe,openAnalysisModal:Ht,closeAnalysisModal:Jt,compareLabelSet:Gt,exitComparisons:cn,onFilterComparisonsPrecision:rr}},Do=function(){var V=(0,T.useModel)("dataset.common"),k=V.pageState,pe=V.setPageState,Ae=V.pageData,Ge=V.setPageData,dt=function(Gr){pe(function(jr){jr.filterValues.categoryId=Gr,jr.page=1})},Ht=function(Gr){var jr;typeof Gr=="number"?jr=Gr:Gr?jr=k.cloumnCount1?k.cloumnCount-1:k.cloumnCount,pe(function(Qr){Qr.cloumnCount=jr})},Jt=function(Gr){pe(function(jr){jr.filterValues.displayOptions=Gr})},Gt=function(Gr){pe(function(jr){jr.filterValues.selectedLabelIds=Gr.sort(function(Qr,pa){return Ae.filters.labels.findIndex(function(Ma){return Ma.id===Qr})-Ae.filters.labels.findIndex(function(Ma){return Ma.id===pa})})})},cn=function(Gr){pe(function(jr){jr.filterValues.diffMode=Gr})},rr=function(Gr,jr){Ge(function(Qr){Qr.filters.labels[Gr].confidenceRange=jr})},On=function(Gr){var jr=(0,Gu.B8)(k.filterValues.displayOptions,Gr),Qr=Qo()(jr,2),pa=Qr[0],Ma=Qr[1];Ge(function(_a){_a.filters.displayOptions=pa}),pe(function(_a){_a.filterValues.displayAnnotationType=Gr,_a.filterValues.displayOptions=Ma})};return{onCategoryChange:dt,onColumnCountChange:Ht,onDisplayOptionsChange:Jt,onDisplayAnnotationTypeChange:On,onLabelsChange:Gt,onLabelsDiffModeChange:cn,onLabelConfidenceChange:rr}},gs=e(2556),vc=function(k){var pe=[],Ae=[];return k.forEach(function(Ge,dt){Ge.selected&&(pe.push(dt),Ae.push(Ge.id))}),{selectIndexs:pe,selectedIds:Ae}},Su=function(){var V=(0,T.useModel)("dataset.common"),k=V.pageState,pe=V.setPageState,Ae=V.pageData,Ge=V.setPageData,dt=V.loadImgList,Ht=(0,yl.x)(!1),Jt=Qo()(Ht,2),Gt=Jt[0],cn=Jt[1],rr=function(Ir){Ge(function(nr){if(k.flagTools){var Ar=!nr.imgList[Ir].selected;if(Gt&&nr.flagTools.lastShiftIndex>=0&&Ir!==nr.flagTools.lastShiftIndex){var xa=nr.flagTools.count;nr.imgList.forEach(function(Ta,ba){(ba>=nr.flagTools.lastShiftIndex&&ba<=Ir||ba>=Ir&&ba<=nr.flagTools.lastShiftIndex)&&(xa+=Ta.selected?0:1,Ta.selected=!0)}),nr.flagTools.lastShiftIndex=-1,nr.flagTools.count=xa}else nr.imgList[Ir].selected=Ar,nr.flagTools.lastShiftIndex=Ar?Ir:-1,nr.flagTools.count+=Ar?1:-1}})},On=function(){var Ir=Ae.flagTools.count!==k.pageSize;Ge(function(nr){nr.imgList.forEach(function(Ar){Ar.selected=Ir}),nr.flagTools.lastShiftIndex=-1,nr.flagTools.count=Ir?k.pageSize:0})},Zn=function(){Ge(function(Ir){Ir.imgList.forEach(function(nr){nr.selected=!nr.selected}),Ir.flagTools.lastShiftIndex=-1,Ir.flagTools.count=k.pageSize-Ir.flagTools.count})},Gr=function(){return new Promise(function(Ir){if(!k.flagTools){Ir(null);return}var nr=vc(Ae.imgList),Ar=nr.selectIndexs;if(Ar.length>0&&(Ar.length!==Ae.flagTools.lastSavedIndexs.length||Ae.flagTools.lastSavedIndexs.find(function(xa){return!Ar.includes(xa)}))){_u.Z.confirm({content:"Now selected items have not been saved, these will lose if you click 'OK', are you sure?",onOk:function(){Ir(null)}});return}Ir(null)})},jr=function(Ir){Gr().then(function(){pe(function(nr){nr.page=1,nr.flagTools.flagStatus=Ir})})},Qr=function(){Ge(function(Ir){Ir.flagTools.lastShiftIndex=-1,Ir.flagTools.lastSavedIndexs=[],Ir.flagTools.count=0}),pe(function(Ir){Ir.page=1,Ir.flagTools={flagStatus:io.po.all}})},pa=function(){Gr().then(function(){pe(function(Ir){Ir.page=1,Ir.flagTools=void 0})})},Ma=function(){var $a=j()(p()().mark(function Ir(nr){var Ar,xa,Ta,ba;return p()().wrap(function(Ea){for(;;)switch(Ea.prev=Ea.next){case 0:if(!(Ae.flagTools.count<=0)){Ea.next=3;break}return w.ZP.warning("No any image to be selected!"),Ea.abrupt("return");case 3:return Ar=vc(Ae.imgList),xa=Ar.selectIndexs,Ta=Ar.selectedIds,ba=w.ZP.loading("Flag saving..."),Ea.prev=5,Ea.next=8,de({datasetId:k.datasetId,flagGroups:[{flag:nr,ids:Ta}]});case 8:ba(),Ge(function(ha){ha.imgList.forEach(function(Va){Va.selected&&(Va.flag=nr)}),ha.flagTools.lastSavedIndexs=xa}),Ea.next=17;break;case 12:Ea.prev=12,Ea.t0=Ea.catch(5),console.error("error",Ea.t0),ba(),w.ZP.error("Flag save fail, please retry!");case 17:case"end":return Ea.stop()}},Ir,null,[[5,12]])}));return function(nr){return $a.apply(this,arguments)}}(),_a=(0,Pu.Z)(function($a){return An($a)},{manual:!0,pollingInterval:1e3,pollingWhenHidden:!0,onSuccess:function(Ir){var nr=Ir.status;nr==="success"?(Fa(),w.ZP.success("Order update success!"),Ge(function(Ar){Ar.screenLoading=""}),pe(function(Ar){Ar.page=1}),dt()):nr==="fail"&&(Fa(),w.ZP.error("Query order task fail, Please retry!"),Ge(function(Ar){Ar.screenLoading=""}))}}),Pa=_a.run,Fa=_a.cancel,Aa=function(){var $a=j()(p()().mark(function Ir(){var nr,Ar,xa;return p()().wrap(function(ba){for(;;)switch(ba.prev=ba.next){case 0:return ba.prev=0,Ge(function(ia){ia.screenLoading="Updating order..."}),ba.next=4,lt({datasetId:k.datasetId});case 4:nr=ba.sent,Ar=nr.id,xa=nr.name,Pa({id:Ar,name:xa}),ba.next=14;break;case 10:ba.prev=10,ba.t0=ba.catch(0),console.error("error",ba.t0),Ge(function(ia){ia.screenLoading=""});case 14:case"end":return ba.stop()}},Ir,null,[[0,10]])}));return function(){return $a.apply(this,arguments)}}();return(0,gs.Z)(["Shift"],function($a){!k.flagTools||k.previewIndex>=0||cn($a.type==="keydown")},{events:["keydown","keyup"]}),(0,gs.Z)(["shift.q","shift.Q","shift.e","shift.E","v","V"],function($a){!k.flagTools||k.previewIndex>=0||(["v","V"].includes($a.key)&&Zn(),["q","Q"].includes($a.key)&&$a.shiftKey&&Ma(io.po.picked),["e","E"].includes($a.key)&&$a.shiftKey&&Ma(io.po.rejected))}),{enterFlagTools:Qr,exitFlagTools:pa,onChangeFlagStatus:jr,selectItem:rr,changeSelectAll:On,antiSelect:Zn,limitNoSaveChangePage:Gr,saveFlag:Ma,updateOrder:Aa}},nc=function(){var V=(0,yl.x)({page:1,pageSize:io.L8}),k=Qo()(V,2),pe=k[0],Ae=k[1],Ge=(0,yl.x)({list:[],total:0}),dt=Qo()(Ge,2),Ht=dt[0],Jt=dt[1],Gt=(0,Pu.Z)(function(Gr,jr){return Tu({pageNum:Gr||pe.page,pageSize:jr||pe.pageSize})},{manual:!0,debounceWait:100,refreshDeps:[pe.page,pe.pageSize],onSuccess:function(jr){var Qr=jr.datasetList,pa=jr.total;Jt(function(Ma){Ma.list=Qr,Ma.total=pa})},onError:function(){}}),cn=Gt.loading,rr=Gt.run,On=function(jr){Ae(function(Qr){Qr.page=jr}),rr(jr)},Zn=function(jr,Qr){Ae(function(pa){pa.page=jr,pa.pageSize=Qr}),rr(jr,Qr)};return{loading:cn,pagination:pe,datasetsData:Ht,loadDatasets:rr,setPagination:Ae,onPageChange:On,onPageSizeChange:Zn}},Kc=e(7214),Hs=e(21325),ol=!1;(0,Kc.ac)(function(V){ol=V});var Dc=function(){var V=(0,x.useState)(!1),k=Qo()(V,2),pe=k[0],Ae=k[1],Ge=(0,x.useState)(""),dt=Qo()(Ge,2),Ht=dt[0],Jt=dt[1],Gt=(0,x.useState)(ol),cn=Qo()(Gt,2),rr=cn[0],On=cn[1],Zn=(0,x.useState)(0),Gr=Qo()(Zn,2),jr=Gr[0],Qr=Gr[1],pa=(0,x.useState)(window.innerWidth),Ma=Qo()(pa,2),_a=Ma[0],Pa=Ma[1];return(0,x.useEffect)(function(){(0,Kc.ac)(function(Fa){On(Fa)})},[]),(0,x.useEffect)(function(){Pa(window.innerWidth-jr)},[jr]),(0,Hs.Z)("resize",function(){var Fa=window.innerWidth-jr;Pa(Fa)},{target:window}),{loading:pe,setLoading:Ae,loadingTip:Ht,setLoadingTip:Jt,isMobile:rr,fixSliderWidth:jr,setFixSliderWidth:Qr,layoutInnerWidth:_a}};function rc(V){return Ml.apply(this,arguments)}function Ml(){return Ml=j()(p()().mark(function V(k){return p()().wrap(function(Ae){for(;;)switch(Ae.prev=Ae.next){case 0:return Ae.abrupt("return",(0,T.request)("/api/v1/user_info",g()({method:"GET",skipErrorHandler:!0},k||{})));case 1:case"end":return Ae.stop()}},V)})),Ml.apply(this,arguments)}function Sl(V,k){return Ru.apply(this,arguments)}function Ru(){return Ru=j()(p()().mark(function V(k,pe){return p()().wrap(function(Ge){for(;;)switch(Ge.prev=Ge.next){case 0:return Ge.abrupt("return",(0,T.request)("/api/v1/login",g()({method:"POST",data:g()({},k),skipErrorHandler:!0},pe||{})));case 1:case"end":return Ge.stop()}},V)})),Ru.apply(this,arguments)}function _s(V){return Ql.apply(this,arguments)}function Ql(){return Ql=j()(p()().mark(function V(k){return p()().wrap(function(Ae){for(;;)switch(Ae.prev=Ae.next){case 0:return Ae.abrupt("return",(0,T.request)("/api/v1/logout",g()({method:"POST"},k||{})));case 1:case"end":return Ae.stop()}},V)})),Ql.apply(this,arguments)}var wc=function(){var V=(0,T.useModel)("global"),k=V.setLoading,pe=(0,x.useState)(!1),Ae=Qo()(pe,2),Ge=Ae[0],dt=Ae[1],Ht=(0,yl.x)({}),Jt=Qo()(Ht,2),Gt=Jt[0],cn=Jt[1],rr=function(){return new Promise(function(Qr){if(Gt.isLogin){Qr(null);return}dt(!0)})},On=function(){var jr=j()(p()().mark(function Qr(){var pa,Ma,_a,Pa,Fa,Aa;return p()().wrap(function(Ir){for(;;)switch(Ir.prev=Ir.next){case 0:return Ir.prev=0,pa=localStorage.getItem(io.Uf.AUTH_TOKEN),Ir.next=4,rc();case 4:Ma=Ir.sent,_a=Ma.id,Pa=Ma.name,Fa=Ma.status,Aa=Ma.isStaff,pa&&Fa===io.oC.Active&&cn({isLogin:!0,username:Pa,userId:_a,token:pa,isStaff:Aa}),Ir.next=16;break;case 12:Ir.prev=12,Ir.t0=Ir.catch(0),console.error("error",Ir.t0),cn({isLogin:!1});case 16:case"end":return Ir.stop()}},Qr,null,[[0,12]])}));return function(){return jr.apply(this,arguments)}}(),Zn=function(){var jr=j()(p()().mark(function Qr(pa){var Ma,_a,Pa,Fa,Aa,$a,Ir,nr,Ar;return p()().wrap(function(Ta){for(;;)switch(Ta.prev=Ta.next){case 0:return Ma=pa.username,_a=pa.password,Pa=window.location.pathname,Fa=Pa.includes("page/login"),k(!0),Ta.prev=4,Ta.next=7,Sl({username:Ma,password:_a});case 7:Aa=Ta.sent,$a=Aa.username,Ir=Aa.userId,nr=Aa.token,Ar=Aa.isStaff,cn({isLogin:!0,username:$a,token:nr,userId:Ir,isStaff:Ar}),localStorage.setItem(io.Uf.AUTH_TOKEN,nr),Fa||dt(!1),w.ZP.success((0,ns._w)("loginSuccess")),Ta.next=21;break;case 18:Ta.prev=18,Ta.t0=Ta.catch(4),w.ZP.error((0,ns._w)("loginAuthenticationFailed"));case 21:return Ta.prev=21,k(!1),Ta.finish(21);case 24:case"end":return Ta.stop()}},Qr,null,[[4,18,21,24]])}));return function(pa){return jr.apply(this,arguments)}}(),Gr=function(){var jr=j()(p()().mark(function Qr(){return p()().wrap(function(Ma){for(;;)switch(Ma.prev=Ma.next){case 0:return Ma.prev=0,Ma.next=3,_s();case 3:cn({isLogin:!1}),w.ZP.success((0,ns._w)("logoutSuccess")),localStorage.removeItem(io.Uf.AUTH_TOKEN),T.history.push("/"),Ma.next=13;break;case 9:Ma.prev=9,Ma.t0=Ma.catch(0),console.error("error",Ma.t0),w.ZP.error((0,ns._w)("logoutFailed"));case 13:case"end":return Ma.stop()}},Qr,null,[[0,9]])}));return function(){return jr.apply(this,arguments)}}();return{user:Gt,setUser:cn,checkLoginStatus:On,onLogin:Zn,onLogout:Gr,showLoginModal:Ge,setShowLoginModal:dt,limitLoginAction:rr}},jc=e(1239),gc=e(32694),zc=e(54518),mc=e(93059),pc=e(45060),Pc=e(16962),iu=e.n(Pc),Eu=e(88479),hc=e.n(Eu),Xl=e(67761),Qu=e(46134),Ue=function(k,pe){var Ae=function(rr){return"".concat(k).concat(rr)},Ge=function(rr){return rr.startsWith(k)},dt=function(rr){var On=rr.substring(k.length),Zn=parseInt(On);return isNaN(Zn)?-1:Zn},Ht=function(rr){var On=rr.filter(function(Zn){return!!Zn.id&&Ge(Zn.id)}).map(function(Zn){return dt(Zn.id)});return On.length>0?Math.max.apply(Math,Mu()(On)):-1},Jt=Ht(pe)+1,Gt=function(rr){return rr&&Ge(rr)?dt(rr):Jt++};return{getStringItemId:Ae,getIntItemId:Gt}},ye="user_import_category",je="user_import_image",In="user_import_annot",It=function(k,pe){for(var Ae=pe.width,Ge=pe.height,dt=[],Ht=0,Jt=0;Jt0){var Nr=nr.mask,Co=(0,Xl.ei)(Nr,Fa,"#fff"),da=It(Nr,Fa);if(Co){var co=(0,Qu.e4)(Co),so=co.area;Object.assign(Ar,{segmentation:da,area:so})}else Object.assign(Ar,{segmentation:da})}if(nr.points&&nr.points.length>0){for(var Mi=nr.points,ho=[],zo=0,pi=0;pi*60&&(pa.categories=Ge==null?void 0:Ge.map(function(Fa){var Aa=Fa.id,$a=Fa.name;return{id:On(Aa),name:$a}})),dt&&dt.length>0){var Ma=new Map(pa.images.map(function(Fa){return[Fa.name,Fa]}));dt.forEach(function(Fa){var Aa=Ma.get(Fa.file_name);Aa&&(Aa.id=Gr(Fa.id),Aa.width=Fa.width,Aa.height=Fa.height)})}if(Ht&&Ht.length>0){var _a=new Map(dt.map(function(Fa){return[Fa.id,Fa]})),Pa=new Map(pa.images.map(function(Fa){return[Fa.id,Fa]}));Ht.forEach(function(Fa){var Aa=Fa.id,$a=Fa.image_id,Ir=Fa.category_id,nr=Fa.bbox,Ar=_a.get($a),xa=Pa.get(Gr($a));if(Ar&&xa){var Ta,ba=Ar.width,ia=Ar.height,Ea=nr,ha=Qo()(Ea,4),Va=ha[0],Za=ha[1],uo=ha[2],Nr=ha[3],Co={id:Qr(Aa),categoryId:On(Ir),categoryName:Ge==null||(Ta=Ge.find(function(da){return da.id===Ir}))===null||Ta===void 0?void 0:Ta.name,boundingBox:(0,Qu.kq)({x:Va,y:Za,width:uo,height:Nr},{width:ba,height:ia})};xa.objects||(xa.objects=[]),xa.objects.push(Co)}})}return pa},Mn=function(k){if(!k||iu()(k)!=="object")return{success:!1,message:"Format Error"};if(!k.images||!Array.isArray(k.images)||k.images.length===0)return{success:!1,message:"Field Images Empty"};if(!k.images.every(function(Jt){return iu()(Jt)==="object"&&Jt.hasOwnProperty("id")&&Jt.hasOwnProperty("file_name")}))return{success:!1,message:"Invalid Image Data"};if(!k.annotations||!Array.isArray(k.annotations))return{success:!1,message:"Annotations Format Error"};if(!k.annotations.every(function(Jt){return iu()(Jt)==="object"&&Jt.hasOwnProperty("id")&&Jt.hasOwnProperty("image_id")}))return{success:!1,message:"Invalid Annotation Data"};if(!k.categories||!Array.isArray(k.categories))return{success:!1,message:"Categories Format Error"};if(!k.categories.every(function(Jt){return iu()(Jt)==="object"&&Jt.hasOwnProperty("id")&&Jt.hasOwnProperty("name")}))return{success:!1,message:"Invalid Category Data"};for(var pe=function(Gt,cn){var rr=new Set,On=hc()(Gt),Zn;try{for(On.s();!(Zn=On.n()).done;){var Gr=Zn.value;if(iu()(Gr.id)===void 0)return{success:!1,message:"Missing ".concat(cn," ID")};if(!Number.isInteger(Gr.id))return{success:!1,message:"Int ID Required for ".concat(cn)};if(rr.has(Gr.id))return{success:!1,message:"Duplicate ".concat(cn," ID")};rr.add(Gr.id)}}catch(jr){On.e(jr)}finally{On.f()}},Ae=[pe(k.images,"Image"),pe(k.annotations,"Annotation"),pe(k.categories,"Category")],Ge=0,dt=Ae;Ge-1?Ht:0),T.history.push("/quickstart")},so=function(){pe.length<=0||(nr(pe),ba(!1))},Mi=function(){da(),ba(!1),Jt(-1)},ho=(0,x.useCallback)(function(is){var ms=pe.find(function(Ai){return Ai.id===Ir[is].id});return ms&&ms.objects.length>0},[pe,Ir]),zo=(0,x.useCallback)(function(is){return ho(is)?(tl.Z.error({message:(0,ns._w)("quicklabel.formModal.deleteImage.title"),description:(0,ns._w)("quicklabel.formModal.deleteImage.desc"),duration:3}),!0):!1},[ho]),pi=function(){var is=j()(p()().mark(function ms(){var Ai,Fi;return p()().wrap(function(su){for(;;)switch(su.prev=su.next){case 0:return su.next=2,Tn({info:rr,images:pe,categories:jr});case 2:Ai=su.sent,Fi=(0,pc.XV)(Date.now(),"Annotations"),(0,pc.Gf)(Ai,Fi);case 5:case"end":return su.stop()}},ms)}));return function(){return is.apply(this,arguments)}}(),li=function(ms){var Ai=ms.file,Fi=ms.fileList;if(!(Fi.length===0||!Fi[0].originFileObj)){var il=new FileReader;il.readAsText(Fi[0].originFileObj),il.onload=function(su){var lu,sl=JSON.parse((lu=su.target)===null||lu===void 0?void 0:lu.result),ws=Mn(sl);ws.success?(Va([Ai]),Co(sl)):w.ZP.error(ws.message)}}},di=function(ms){var Ai=ha.findIndex(function(Fi){return Fi.uid===ms.uid});ha.splice(Ai,1),Va(Mu()(ha)),Co(Wn)},os=function(ms){Pa(ms),Jt(-1)},Jl=function(){Pa(null),Jt(-1)};return{qsModalVisible:Ta,setQsModalVisible:ba,uploadFiles:Ir,setUploadFiles:nr,images:pe,setImages:Ae,filterImages:Fa,onClickQuickstart:co,onCancelUploadFiles:so,onConfirmUploadFiles:Mi,limitRemoveFile:zo,current:Ht,setCurrent:Jt,categories:jr,setCategories:Qr,filterCategoryName:_a,setFilterCategoryName:Pa,exportAnnotations:pi,uploadPreAnnot:ha,onChangePreAnnotFile:li,onRemovePreAnnotFile:di,onSelectFilterCategory:os,onClearFilterCategory:Jl}},sr=function(){return er()},Jn=function(){var V=(0,T.useModel)("dataset.common"),k=V.pageState,pe=V.setPageState,Ae=V.setPageData,Ge=function(On){pe(function(Zn){Zn.previewIndex=On})},dt=function(On){pe(function(Zn){Zn.previewIndex=On})},Ht=function(On){k.page!==On&&pe(function(Zn){Zn.page=On})},Jt=function(On,Zn){pe(function(Gr){Gr.pageSize=Zn})},Gt=function(){},cn=function(){Ae(function(On){Object.assign(On,Ku)}),pe(function(On){Object.assign(On,Lu)})};return{onPageDidMount:Gt,onPageWillUnmount:cn,clickItem:Ge,doubleClickItem:dt,onPageChange:Ht,onPageSizeChange:Jt}},Pn=e(86724),Sa=e.n(Pn),Fr=function(){var V=(0,T.useModel)("datasets"),k=V.loadDatasets,pe=V.setPagination,Ae=function(Jt){var Gt=JSON.stringify({datasetId:Jt.id,datasetName:Jt.name});T.history.push("/dataset/detail?pageState=".concat(encodeURIComponent(Gt)))},Ge=function(Jt,Gt){var cn=JSON.stringify({datasetId:Gt.id,datasetName:Gt.name}),rr="".concat(window.location.origin,"/page/dataset/detail?pageState=").concat(encodeURIComponent(cn)),On=Sa()(rr);On&&w.ZP.success((0,ns._w)("dataset.onClickCopyLink.success")),Jt.stopPropagation()},dt=function(Jt){pe(function(Gt){Object.assign(Gt,{page:1,pageSize:io.L8},Jt)}),k()};return{onInitPageState:dt,onClickItem:Ae,onClickCopyLink:Ge}},Xn=e(23707),Br=function(){var V=(0,T.useModel)("datasets"),k=V.loadDatasets,pe=V.setPagination,Ae=(0,Xn.BQ)("type")||"flagtool",Ge=function(Gt){var cn=JSON.stringify({datasetId:Gt.id,datasetName:Gt.name});T.history.push("/lab/".concat(Ae,"?pageState=").concat(encodeURIComponent(cn)))},dt=function(Gt,cn){var rr=JSON.stringify({datasetId:cn.id,datasetName:cn.name}),On="".concat(window.location.origin,"/page/dataset/detail?pageState=").concat(encodeURIComponent(rr)),Zn=Sa()(On);Zn&&w.ZP.success((0,ns._w)("lab.onClickCopyLink.success")),Gt.stopPropagation()},Ht=function(Gt){pe(function(cn){Object.assign(cn,{page:1,pageSize:io.L8},Gt)}),k()};return{labType:Ae,onInitPageState:Ht,onClickItem:Ge,onClickCopyLink:dt}},Tr=function(){var V=(0,T.useModel)("user"),k=V.showLoginModal,pe=(0,T.useModel)("dataset.common"),Ae=pe.pageState,Ge=pe.setPageState,dt=pe.pageData,Ht=pe.setPageData,Jt=(0,T.useModel)("dataset.flag"),Gt=Jt.selectItem,cn=Jt.enterFlagTools,rr=Jt.limitNoSaveChangePage,On=function(_a){Gt(_a)},Zn=function(_a){Ge(function(Pa){Pa.previewIndex=_a})},Gr=function(_a){Ae.page!==_a&&rr().then(function(){Ge(function(Pa){Pa.page=_a})})},jr=function(_a,Pa){rr().then(function(){Ge(function(Fa){Fa.pageSize=Pa})})};(0,gs.Z)(["a","A","d","D","shift.q","shift.Q","shift.e","shift.E","z","Z"],function(Ma){Ae.previewIndex>=0||k||(["a","A"].includes(Ma.key)&&Ae.page>1&&Gr(Ae.page-1),["d","D"].includes(Ma.key)&&Ae.page=0)&&(St[Nt]=ft[Nt]);return St}const d=["onClick","reloadDocument","replace","state","target","to"],h=null;function p(ft,vt){if(!ft){typeof console!="undefined"&&console.warn(vt);try{throw new Error(vt)}catch(St){}}}function y(ft){let{basename:vt,children:St,window:Mt}=ft,Nt=useRef();Nt.current==null&&(Nt.current=createBrowserHistory({window:Mt}));let sn=Nt.current,[Xt,Cn]=useState({action:sn.action,location:sn.location});return useLayoutEffect(()=>sn.listen(Cn),[sn]),createElement(Router,{basename:vt,children:St,location:Xt.location,navigationType:Xt.action,navigator:sn})}function g(ft){let{basename:vt,children:St,window:Mt}=ft,Nt=useRef();Nt.current==null&&(Nt.current=createHashHistory({window:Mt}));let sn=Nt.current,[Xt,Cn]=useState({action:sn.action,location:sn.location});return useLayoutEffect(()=>sn.listen(Cn),[sn]),createElement(Router,{basename:vt,children:St,location:Xt.location,navigationType:Xt.action,navigator:sn})}function S(ft){let{basename:vt,children:St,history:Mt}=ft;const[Nt,sn]=useState({action:Mt.action,location:Mt.location});return useLayoutEffect(()=>Mt.listen(sn),[Mt]),createElement(Router,{basename:vt,children:St,location:Nt.location,navigationType:Nt.action,navigator:Mt})}function j(ft){return!!(ft.metaKey||ft.altKey||ft.ctrlKey||ft.shiftKey)}const x=(0,o.forwardRef)(function(vt,St){let{onClick:Mt,reloadDocument:Nt,replace:sn=!1,state:Xt,target:Cn,to:Ln}=vt,hr=l(vt,d),qn=(0,s.useHref)(Ln),Nn=B(Ln,{replace:sn,state:Xt,target:Cn});function $r(gr){Mt&&Mt(gr),!gr.defaultPrevented&&!Nt&&Nn(gr)}return(0,o.createElement)("a",c({},hr,{href:qn,onClick:$r,ref:St,target:Cn}))}),Z=null;function B(ft,vt){let{target:St,replace:Mt,state:Nt}=vt===void 0?{}:vt,sn=(0,s.useNavigate)(),Xt=(0,s.useLocation)(),Cn=(0,s.useResolvedPath)(ft);return(0,o.useCallback)(Ln=>{if(Ln.button===0&&(!St||St==="_self")&&!j(Ln)){Ln.preventDefault();let hr=!!Mt||(0,n.Ep)(Xt)===(0,n.Ep)(Cn);sn(ft,{replace:hr,state:Nt})}},[Xt,sn,Cn,Mt,Nt,St,ft])}function w(ft){let vt=useRef(T(ft)),St=useLocation(),Mt=useMemo(()=>{let Xt=T(St.search);for(let Cn of vt.current.keys())Xt.has(Cn)||vt.current.getAll(Cn).forEach(Ln=>{Xt.append(Cn,Ln)});return Xt},[St.search]),Nt=useNavigate(),sn=useCallback((Xt,Cn)=>{Nt("?"+T(Xt),Cn)},[Nt]);return[Mt,sn]}function T(ft){return ft===void 0&&(ft=""),new URLSearchParams(typeof ft=="string"||Array.isArray(ft)||ft instanceof URLSearchParams?ft:Object.keys(ft).reduce((vt,St)=>{let Mt=ft[St];return vt.concat(Array.isArray(Mt)?Mt.map(Nt=>[St,Nt]):[[St,Mt]])},[]))}var F=e(60581),A=["prefetch"];function L(ft){var vt,St=ft.prefetch,Mt=(0,t.Z)(ft,A),Nt=(0,F.Ov)(),sn=typeof ft.to=="string"?ft.to:(vt=ft.to)===null||vt===void 0?void 0:vt.pathname;return sn?o.createElement(x,(0,a.Z)({onMouseEnter:function(){var Cn;return St&&sn&&((Cn=Nt.preloadRoute)===null||Cn===void 0?void 0:Cn.call(Nt,sn))}},Mt),ft.children):null}var O=e(83753);function $(){"use strict";$=function(){return ft};var ft={},vt=Object.prototype,St=vt.hasOwnProperty,Mt=Object.defineProperty||function(Vn,Bn,pr){Vn[Bn]=pr.value},Nt=typeof Symbol=="function"?Symbol:{},sn=Nt.iterator||"@@iterator",Xt=Nt.asyncIterator||"@@asyncIterator",Cn=Nt.toStringTag||"@@toStringTag";function Ln(Vn,Bn,pr){return Object.defineProperty(Vn,Bn,{value:pr,enumerable:!0,configurable:!0,writable:!0}),Vn[Bn]}try{Ln({},"")}catch(Vn){Ln=function(pr,qr,Er){return pr[qr]=Er}}function hr(Vn,Bn,pr,qr){var Er=Bn&&Bn.prototype instanceof $r?Bn:$r,At=Object.create(Er.prototype),tn=new zr(qr||[]);return Mt(At,"_invoke",{value:Kr(Vn,pr,tn)}),At}function qn(Vn,Bn,pr){try{return{type:"normal",arg:Vn.call(Bn,pr)}}catch(qr){return{type:"throw",arg:qr}}}ft.wrap=hr;var Nn={};function $r(){}function gr(){}function aa(){}var Pr={};Ln(Pr,sn,function(){return this});var Fn=Object.getPrototypeOf,En=Fn&&Fn(Fn(Oa([])));En&&En!==vt&&St.call(En,sn)&&(Pr=En);var wn=aa.prototype=$r.prototype=Object.create(Pr);function ar(Vn){["next","throw","return"].forEach(function(Bn){Ln(Vn,Bn,function(pr){return this._invoke(Bn,pr)})})}function fr(Vn,Bn){function pr(Er,At,tn,yn){var lo=qn(Vn[Er],Vn,At);if(lo.type!=="throw"){var Ao=lo.arg,Ka=Ao.value;return Ka&&(0,O.Z)(Ka)=="object"&&St.call(Ka,"__await")?Bn.resolve(Ka.__await).then(function(Qa){pr("next",Qa,tn,yn)},function(Qa){pr("throw",Qa,tn,yn)}):Bn.resolve(Ka).then(function(Qa){Ao.value=Qa,tn(Ao)},function(Qa){return pr("throw",Qa,tn,yn)})}yn(lo.arg)}var qr;Mt(this,"_invoke",{value:function(At,tn){function yn(){return new Bn(function(lo,Ao){pr(At,tn,lo,Ao)})}return qr=qr?qr.then(yn,yn):yn()}})}function Kr(Vn,Bn,pr){var qr="suspendedStart";return function(Er,At){if(qr==="executing")throw new Error("Generator is already running");if(qr==="completed"){if(Er==="throw")throw At;return va()}for(pr.method=Er,pr.arg=At;;){var tn=pr.delegate;if(tn){var yn=ea(tn,pr);if(yn){if(yn===Nn)continue;return yn}}if(pr.method==="next")pr.sent=pr._sent=pr.arg;else if(pr.method==="throw"){if(qr==="suspendedStart")throw qr="completed",pr.arg;pr.dispatchException(pr.arg)}else pr.method==="return"&&pr.abrupt("return",pr.arg);qr="executing";var lo=qn(Vn,Bn,pr);if(lo.type==="normal"){if(qr=pr.done?"completed":"suspendedYield",lo.arg===Nn)continue;return{value:lo.arg,done:pr.done}}lo.type==="throw"&&(qr="completed",pr.method="throw",pr.arg=lo.arg)}}}function ea(Vn,Bn){var pr=Bn.method,qr=Vn.iterator[pr];if(qr===void 0)return Bn.delegate=null,pr==="throw"&&Vn.iterator.return&&(Bn.method="return",Bn.arg=void 0,ea(Vn,Bn),Bn.method==="throw")||pr!=="return"&&(Bn.method="throw",Bn.arg=new TypeError("The iterator does not provide a '"+pr+"' method")),Nn;var Er=qn(qr,Vn.iterator,Bn.arg);if(Er.type==="throw")return Bn.method="throw",Bn.arg=Er.arg,Bn.delegate=null,Nn;var At=Er.arg;return At?At.done?(Bn[Vn.resultName]=At.value,Bn.next=Vn.nextLoc,Bn.method!=="return"&&(Bn.method="next",Bn.arg=void 0),Bn.delegate=null,Nn):At:(Bn.method="throw",Bn.arg=new TypeError("iterator result is not an object"),Bn.delegate=null,Nn)}function ya(Vn){var Bn={tryLoc:Vn[0]};1 in Vn&&(Bn.catchLoc=Vn[1]),2 in Vn&&(Bn.finallyLoc=Vn[2],Bn.afterLoc=Vn[3]),this.tryEntries.push(Bn)}function vr(Vn){var Bn=Vn.completion||{};Bn.type="normal",delete Bn.arg,Vn.completion=Bn}function zr(Vn){this.tryEntries=[{tryLoc:"root"}],Vn.forEach(ya,this),this.reset(!0)}function Oa(Vn){if(Vn){var Bn=Vn[sn];if(Bn)return Bn.call(Vn);if(typeof Vn.next=="function")return Vn;if(!isNaN(Vn.length)){var pr=-1,qr=function Er(){for(;++pr=0;--Er){var At=this.tryEntries[Er],tn=At.completion;if(At.tryLoc==="root")return qr("end");if(At.tryLoc<=this.prev){var yn=St.call(At,"catchLoc"),lo=St.call(At,"finallyLoc");if(yn&&lo){if(this.prev=0;--qr){var Er=this.tryEntries[qr];if(Er.tryLoc<=this.prev&&St.call(Er,"finallyLoc")&&this.prev=0;--pr){var qr=this.tryEntries[pr];if(qr.finallyLoc===Bn)return this.complete(qr.completion,qr.afterLoc),vr(qr),Nn}},catch:function(Bn){for(var pr=this.tryEntries.length-1;pr>=0;--pr){var qr=this.tryEntries[pr];if(qr.tryLoc===Bn){var Er=qr.completion;if(Er.type==="throw"){var At=Er.arg;vr(qr)}return At}}throw new Error("illegal catch attempt")},delegateYield:function(Bn,pr,qr){return this.delegate={iterator:Oa(Bn),resultName:pr,nextLoc:qr},this.method==="next"&&(this.arg=void 0),Nn}},ft}var P=e(5452);function K(ft,vt,St,Mt,Nt,sn,Xt){try{var Cn=ft[sn](Xt),Ln=Cn.value}catch(hr){St(hr);return}Cn.done?vt(Ln):Promise.resolve(Ln).then(Mt,Nt)}function U(ft){return function(){var vt=this,St=arguments;return new Promise(function(Mt,Nt){var sn=ft.apply(vt,St);function Xt(Ln){K(sn,Mt,Nt,Xt,Cn,"next",Ln)}function Cn(Ln){K(sn,Mt,Nt,Xt,Cn,"throw",Ln)}Xt(void 0)})}}var ee=e(50648);function le(ft,vt){var St=typeof Symbol!="undefined"&&ft[Symbol.iterator]||ft["@@iterator"];if(!St){if(Array.isArray(ft)||(St=(0,ee.Z)(ft))||vt&&ft&&typeof ft.length=="number"){St&&(ft=St);var Mt=0,Nt=function(){};return{s:Nt,n:function(){return Mt>=ft.length?{done:!0}:{done:!1,value:ft[Mt++]}},e:function(hr){throw hr},f:Nt}}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 sn=!0,Xt=!1,Cn;return{s:function(){St=St.call(ft)},n:function(){var hr=St.next();return sn=hr.done,hr},e:function(hr){Xt=!0,Cn=hr},f:function(){try{!sn&&St.return!=null&&St.return()}finally{if(Xt)throw Cn}}}}var Q=e(40642);function G(ft){if(typeof Symbol!="undefined"&&ft[Symbol.iterator]!=null||ft["@@iterator"]!=null)return Array.from(ft)}var q=e(8010);function I(ft){return(0,Q.Z)(ft)||G(ft)||(0,ee.Z)(ft)||(0,q.Z)()}function H(ft,vt){if(!(ft instanceof vt))throw new TypeError("Cannot call a class as a function")}var Y=e(4566);function D(ft,vt){for(var St=0;St-1,"register failed, invalid key ".concat(Nt," ").concat(St.path?"from plugin ".concat(St.path):"",".")),Mt.hooks[Nt]=(Mt.hooks[Nt]||[]).concat(St.apply[Nt])})}},{key:"getHooks",value:function(St){var Mt=St.split("."),Nt=I(Mt),sn=Nt[0],Xt=Nt.slice(1),Cn=this.hooks[sn]||[];return Xt.length&&(Cn=Cn.map(function(Ln){try{var hr=Ln,qn=le(Xt),Nn;try{for(qn.s();!(Nn=qn.n()).done;){var $r=Nn.value;hr=hr[$r]}}catch(gr){qn.e(gr)}finally{qn.f()}return hr}catch(gr){return null}}).filter(Boolean)),Cn}},{key:"applyPlugins",value:function(St){var Mt=St.key,Nt=St.type,sn=St.initialValue,Xt=St.args,Cn=St.async,Ln=this.getHooks(Mt)||[];switch(Xt&&be((0,O.Z)(Xt)==="object","applyPlugins failed, args must be plain object."),Cn&&be(Nt===Fe.modify||Nt===Fe.event,"async only works with modify and event type."),Nt){case Fe.modify:return Cn?Ln.reduce(function(){var hr=U($().mark(function qn(Nn,$r){var gr;return $().wrap(function(Pr){for(;;)switch(Pr.prev=Pr.next){case 0:if(be(typeof $r=="function"||(0,O.Z)($r)==="object"||he($r),"applyPlugins failed, all hooks for key ".concat(Mt," must be function, plain object or Promise.")),!he(Nn)){Pr.next=5;break}return Pr.next=4,Nn;case 4:Nn=Pr.sent;case 5:if(typeof $r!="function"){Pr.next=16;break}if(gr=$r(Nn,Xt),!he(gr)){Pr.next=13;break}return Pr.next=10,gr;case 10:return Pr.abrupt("return",Pr.sent);case 13:return Pr.abrupt("return",gr);case 14:Pr.next=21;break;case 16:if(!he($r)){Pr.next=20;break}return Pr.next=19,$r;case 19:$r=Pr.sent;case 20:return Pr.abrupt("return",(0,P.Z)((0,P.Z)({},Nn),$r));case 21:case"end":return Pr.stop()}},qn)}));return function(qn,Nn){return hr.apply(this,arguments)}}(),he(sn)?sn:Promise.resolve(sn)):Ln.reduce(function(hr,qn){return be(typeof qn=="function"||(0,O.Z)(qn)==="object","applyPlugins failed, all hooks for key ".concat(Mt," must be function or plain object.")),typeof qn=="function"?qn(hr,Xt):(0,P.Z)((0,P.Z)({},hr),qn)},sn);case Fe.event:return U($().mark(function hr(){var qn,Nn,$r,gr;return $().wrap(function(Pr){for(;;)switch(Pr.prev=Pr.next){case 0:qn=le(Ln),Pr.prev=1,qn.s();case 3:if((Nn=qn.n()).done){Pr.next=12;break}if($r=Nn.value,be(typeof $r=="function","applyPlugins failed, all hooks for key ".concat(Mt," must be function.")),gr=$r(Xt),!(Cn&&he(gr))){Pr.next=10;break}return Pr.next=10,gr;case 10:Pr.next=3;break;case 12:Pr.next=17;break;case 14:Pr.prev=14,Pr.t0=Pr.catch(1),qn.e(Pr.t0);case 17:return Pr.prev=17,qn.f(),Pr.finish(17);case 20:case"end":return Pr.stop()}},hr,null,[[1,14,17,20]])}))();case Fe.compose:return function(){return ce({fns:Ln.concat(sn),args:Xt})()}}}}],[{key:"create",value:function(St){var Mt=new ft({validKeys:St.validKeys});return St.plugins.forEach(function(Nt){Mt.register(Nt)}),Mt}}]),ft}(),et=e(12763),ae=e(16962),yt=e.n(ae),Pt=0,bt=0;function Ct(ft,vt){if(!1)var St}function Le(ft){return JSON.stringify(ft,null,2)}function Ke(ft){var vt=ft.length>1?ft.map(st).join(" "):ft[0];return yt()(vt)==="object"?"".concat(Le(vt)):vt.toString()}function st(ft){return yt()(ft)==="object"?"".concat(JSON.stringify(ft)):ft.toString()}var We={log:function(){for(var vt=arguments.length,St=new Array(vt),Mt=0;Mt-1&&(sn=setTimeout(function(){re.delete(vt)},St)),re.set(vt,{data:Mt,timer:sn,startTime:new Date().getTime()})},Ee=function(vt){var St=re.get(vt);return{data:St==null?void 0:St.data,startTime:St==null?void 0:St.startTime}},Re=function(ft,vt){var St=typeof Symbol=="function"&&ft[Symbol.iterator];if(!St)return ft;var Mt=St.call(ft),Nt,sn=[],Xt;try{for(;(vt===void 0||vt-- >0)&&!(Nt=Mt.next()).done;)sn.push(Nt.value)}catch(Cn){Xt={error:Cn}}finally{try{Nt&&!Nt.done&&(St=Mt.return)&&St.call(Mt)}finally{if(Xt)throw Xt.error}}return sn},fe=function(){for(var ft=[],vt=0;vt0)&&!(Nt=Mt.next()).done;)sn.push(Nt.value)}catch(Cn){Xt={error:Cn}}finally{try{Nt&&!Nt.done&&(St=Mt.return)&&St.call(Mt)}finally{if(Xt)throw Xt.error}}return sn},ze=function(){for(var ft=[],vt=0;vt0)&&!(Nt=Mt.next()).done;)sn.push(Nt.value)}catch(Cn){Xt={error:Cn}}finally{try{Nt&&!Nt.done&&(St=Mt.return)&&St.call(Mt)}finally{if(Xt)throw Xt.error}}return sn},nn=function(){for(var ft=[],vt=0;vt0){var xr=zr&&((ta=getCache(zr))===null||ta===void 0?void 0:ta.startTime)||0;Bn===-1||new Date().getTime()-xr<=Bn||Object.values(un).forEach(function(Zr){Zr.refresh()})}else kr.current.apply(kr,nn(ar))},[]);var oa=useCallback(function(){Object.values(Hn.current).forEach(function(ta){ta.unmount()}),Ao.current=$t,xn({}),Hn.current={}},[xn]);useUpdateEffect(function(){Xt||Object.values(Hn.current).forEach(function(ta){ta.refresh()})},nn(Nt)),useEffect(function(){return function(){Object.values(Hn.current).forEach(function(ta){ta.unmount()})}},[]);var Xr=useCallback(function(ta){return function(){console.warn("You should't call "+ta+" when service not executed once.")}},[]);return wt(wt({loading:tn&&!Xt||$r,data:Er,error:void 0,params:[],cancel:Xr("cancel"),refresh:Xr("refresh"),mutate:Xr("mutate")},un[Ao.current]||{}),{run:Sr,fetches:un,reset:oa})}var Wt=null,$e=function(){return $e=Object.assign||function(ft){for(var vt,St=1,Mt=arguments.length;St0)&&!(Nt=Mt.next()).done;)sn.push(Nt.value)}catch(Cn){Xt={error:Cn}}finally{try{Nt&&!Nt.done&&(St=Mt.return)&&St.call(Mt)}finally{if(Xt)throw Xt.error}}return sn},Ft=function(){for(var ft=[],vt=0;vt0)&&!(Nt=Mt.next()).done;)sn.push(Nt.value)}catch(Cn){Xt={error:Cn}}finally{try{Nt&&!Nt.done&&(St=Mt.return)&&St.call(Mt)}finally{if(Xt)throw Xt.error}}return sn},rn=function(){for(var ft=[],vt=0;vtlo&&(tn=Math.max(1,lo)),vr({current:tn,pageSize:yn})},[zr,vr]),Vn=useCallback(function(Er){va(Er,ar)},[va,ar]),Bn=useCallback(function(Er){va(En,Er)},[va,En]),pr=useRef(Vn);pr.current=Vn,useUpdateEffect(function(){vt.manual||pr.current(1)},rn(Xt));var qr=useCallback(function(Er,At,tn){vr({current:Er.current,pageSize:Er.pageSize||Nt,filters:At,sorter:tn})},[ya,Kr,vr]);return Bt({loading:gr,data:qn,params:Nn,run:$r,pagination:{current:En,pageSize:ar,total:zr,totalPage:Oa,onChange:va,changeCurrent:Vn,changePageSize:Bn},tableProps:{dataSource:(qn==null?void 0:qn.list)||[],loading:gr,onChange:qr,pagination:{current:En,pageSize:ar,total:zr}},sorter:Kr,filters:ya},aa)}var on=null,Rn=o.createContext({});Rn.displayName="UseRequestConfigContext";var zn=Rn,lr=function(){return lr=Object.assign||function(ft){for(var vt,St=1,Mt=arguments.length;St0)&&!(Nt=Mt.next()).done;)sn.push(Nt.value)}catch(Cn){Xt={error:Cn}}finally{try{Nt&&!Nt.done&&(St=Mt.return)&&St.call(Mt)}finally{if(Xt)throw Xt.error}}return sn},Kt=function(){for(var ft=[],vt=0;vt1&&arguments[1]!==void 0?arguments[1]:{};return useUmiRequest(ft,_objectSpread({formatResult:function(Mt){return Mt==null?void 0:Mt.data},requestMethod:function(Mt){if(typeof Mt=="string")return kn(Mt);if(_typeof(Mt)==="object"){var Nt=Mt.url,sn=_objectWithoutProperties(Mt,pt);return kn(Nt,sn)}throw new Error("request options error")}},vt))}var qt,Yt,mn=function(){return Yt||(Yt=(0,mt.We)().applyPlugins({key:"request",type:Fe.modify,initialValue:{}}),Yt)},gn=function(){var vt,St;if(qt)return qt;var Mt=mn();return qt=te().create(Mt),Mt==null||(vt=Mt.requestInterceptors)===null||vt===void 0||vt.forEach(function(Nt){Nt instanceof Array?qt.interceptors.request.use(function(sn){var Xt=sn.url;if(Nt[0].length===2){var Cn=Nt[0](Xt,sn),Ln=Cn.url,hr=Cn.options;return oe()(oe()({},hr),{},{url:Ln})}return Nt[0](sn)},Nt[1]):qt.interceptors.request.use(function(sn){var Xt=sn.url;if(Nt.length===2){var Cn=Nt(Xt,sn),Ln=Cn.url,hr=Cn.options;return oe()(oe()({},hr),{},{url:Ln})}return Nt(sn)})}),Mt==null||(St=Mt.responseInterceptors)===null||St===void 0||St.forEach(function(Nt){Nt instanceof Array?qt.interceptors.response.use(Nt[0],Nt[1]):qt.interceptors.response.use(Nt)}),qt.interceptors.response.use(function(Nt){var sn,Xt=Nt.data;return(Xt==null?void 0:Xt.success)===!1&&Mt!==null&&Mt!==void 0&&(sn=Mt.errorConfig)!==null&&sn!==void 0&&sn.errorThrower&&Mt.errorConfig.errorThrower(Xt),Nt}),qt},kn=function(vt){var St=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{method:"GET"},Mt=gn(),Nt=mn(),sn=St.getResponse,Xt=sn===void 0?!1:sn,Cn=St.requestInterceptors,Ln=St.responseInterceptors,hr=Cn==null?void 0:Cn.map(function(Nn){return Nn instanceof Array?Mt.interceptors.request.use(function($r){var gr=$r.url;if(Nn[0].length===2){var aa=Nn[0](gr,$r),Pr=aa.url,Fn=aa.options;return oe()(oe()({},Fn),{},{url:Pr})}return Nn[0]($r)},Nn[1]):Mt.interceptors.request.use(function($r){var gr=$r.url;if(Nn.length===2){var aa=Nn(gr,$r),Pr=aa.url,Fn=aa.options;return oe()(oe()({},Fn),{},{url:Pr})}return Nn($r)})}),qn=Ln==null?void 0:Ln.map(function(Nn){return Nn instanceof Array?Mt.interceptors.response.use(Nn[0],Nn[1]):Mt.interceptors.response.use(Nn)});return new Promise(function(Nn,$r){Mt.request(oe()(oe()({},St),{},{url:vt})).then(function(gr){hr==null||hr.forEach(function(aa){Mt.interceptors.request.eject(aa)}),qn==null||qn.forEach(function(aa){Mt.interceptors.response.eject(aa)}),Nn(Xt?gr:gr.data)}).catch(function(gr){hr==null||hr.forEach(function(Fn){Mt.interceptors.request.eject(Fn)}),qn==null||qn.forEach(function(Fn){Mt.interceptors.response.eject(Fn)});try{var aa,Pr=Nt==null||(aa=Nt.errorConfig)===null||aa===void 0?void 0:aa.errorHandler;Pr&&Pr(gr,St,Nt)}catch(Fn){$r(Fn)}$r(gr)})})},tr=function(){}},96662:function(M,b,e){"use strict";e.d(b,{J:function(){return t}});var a=e(58757),t=a.createContext(null)},64470:function(M,b,e){"use strict";e.d(b,{Mf:function(){return c}});var a=e(58757),t=e(96662),o=e(35667),s=function(){return a.useContext(t.J)},n=function(d){return _jsx(_Fragment,{children:d.accessible?d.children:d.fallback})},c=function(d){var h=s(),p=a.useMemo(function(){var y=function g(S,j,x){var Z,B,w=S.access,T=S;if(!w&&j&&(w=j,T=x),S.unaccessible=!1,typeof w=="string"){var F=h[w];typeof F=="function"?S.unaccessible=!F(T):typeof F=="boolean"?S.unaccessible=!F:typeof F=="undefined"&&(S.unaccessible=!0)}if((Z=S.children)!==null&&Z!==void 0&&Z.length){var A=!S.children.reduce(function(O,$){return g($,w,S),O||!$.unaccessible},!1);A&&(S.unaccessible=!0)}if((B=S.routes)!==null&&B!==void 0&&B.length){var L=!S.routes.reduce(function(O,$){return g($,w,S),O||!$.unaccessible},!1);L&&(S.unaccessible=!0)}return S};return d.map(function(g){return y(g)})},[d.length,h]);return p}},93325:function(M,b,e){"use strict";e.d(b,{_H:function(){return a._H},pD:function(){return T},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),c=e.n(n),l=e(62376),d=e.n(l),h=e(58757),p=e(73267),y=e(93430),g=e(85706),S=e(35667),j=["overlayClassName"],x=["globalIconClassName","postLocalesData","onItemClick","icon","style","reload"],Z=function(A){var L=A.overlayClassName,O=d()(A,j);return(0,S.jsx)(p.Z,c()({overlayClassName:L},O))},B=function(A){return A.reduce(function(L,O){return O.lang?_objectSpread(_objectSpread({},L),{},_defineProperty({},O.lang,O)):L},{})},w={"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"}},T=function(A){var L,O=A.globalIconClassName,$=A.postLocalesData,P=A.onItemClick,K=A.icon,U=A.style,ee=A.reload,le=d()(A,x),Q=(0,h.useState)(function(){return(0,a.Kd)()}),G=o()(Q,2),q=G[0],I=G[1],H=function(et){var ae=et.key;(0,a.i_)(ae,ee),I((0,a.Kd)())},Y=(0,a.XZ)().map(function(Je){return w[Je]||{lang:Je,label:Je,icon:"\u{1F310}",title:Je}}),D=($==null?void 0:$(Y))||Y,_=P?function(Je){return P(Je)}:H,ue={minWidth:"160px"},be={marginRight:"8px"},ce={selectedKeys:[q],onClick:_,items:D.map(function(Je){return{key:Je.lang||Je.key,style:ue,label:(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)("span",{role:"img","aria-label":(Je==null?void 0:Je.label)||"en-US",style:be,children:(Je==null?void 0:Je.icon)||"\u{1F310}"}),(Je==null?void 0:Je.label)||"en-US"]})}})},he;y.Z.startsWith("5.")||y.Z.startsWith("4.24.")?he={menu:ce}:y.Z.startsWith("3.")?he={overlay:(0,S.jsx)(g.Z,{children:ce.items.map(function(Je){return(0,S.jsx)(g.Z.Item,{onClick:Je.onClick,children:Je.label},Je.key)})})}:he={overlay:(0,S.jsx)(g.Z,c()({},ce))};var Fe=c()({cursor:"pointer",padding:"12px",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:18,verticalAlign:"middle"},U);return(0,S.jsx)(Z,c()(c()(c()({},he),{},{placement:"bottomRight"},le),{},{children:(0,S.jsx)("span",{className:O,style:Fe,children:(0,S.jsx)("i",{className:"anticon",title:(L=D[q])===null||L===void 0?void 0:L.title,children:K||(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(M,b,e){"use strict";e.d(b,{_H:function(){return En},PZ:function(){return qr},eU:function(){return O},B:function(){return pr},wv:function(){return _o},XZ:function(){return yo},Mg:function(){return Qa},lw:function(){return lo},Kd:function(){return Ka},H8:function(){return Er},i_:function(){return qa},YB:function(){return wn}});var a=e(62376),t=e.n(a),o=e(63900),s=e.n(o),n=e(77016),c=e.n(n),l=e(61697),d=e.n(l),h=e(1769),p=e.n(h),y=e(19881),g=e.n(y),S=e(58757),j=e.t(S,2),x=e(2657),Z=e(10063),B=e.n(Z),w=B()||Z;function T(ct){return ct.displayName||ct.name||"Component"}var F=S.createContext(null),A=F.Consumer,L=F.Provider,O=L,$=F;function P(ct,xt){var Ce=xt||{},un=Ce.intlPropName,xn=un===void 0?"intl":un,Hn=Ce.forwardRef,Kn=Hn===void 0?!1:Hn,Sr=Ce.enforceContext,kr=Sr===void 0?!0:Sr,La=function(Xr){return React.createElement(A,null,function(ta){return kr&&invariantIntlContext(ta),React.createElement(ct,Object.assign({},Xr,_defineProperty({},xn,ta),{ref:Kn?Xr.forwardedRef:null}))})};return La.displayName="injectIntl(".concat(T(ct),")"),La.WrappedComponent=ct,w(Kn?React.forwardRef(function(oa,Xr){return React.createElement(La,Object.assign({},oa,{forwardedRef:Xr}))}):La,ct)}var K;(function(ct){ct[ct.literal=0]="literal",ct[ct.argument=1]="argument",ct[ct.number=2]="number",ct[ct.date=3]="date",ct[ct.time=4]="time",ct[ct.select=5]="select",ct[ct.plural=6]="plural",ct[ct.pound=7]="pound"})(K||(K={}));function U(ct){return ct.type===K.literal}function ee(ct){return ct.type===K.argument}function le(ct){return ct.type===K.number}function Q(ct){return ct.type===K.date}function G(ct){return ct.type===K.time}function q(ct){return ct.type===K.select}function I(ct){return ct.type===K.plural}function H(ct){return ct.type===K.pound}function Y(ct){return!!(ct&&typeof ct=="object"&&ct.type===0)}function D(ct){return!!(ct&&typeof ct=="object"&&ct.type===1)}function _(ct){return{type:K.literal,value:ct}}function ue(ct,xt){return{type:K.number,value:ct,style:xt}}var be=function(){var ct=function(xt,Ce){return ct=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(un,xn){un.__proto__=xn}||function(un,xn){for(var Hn in xn)xn.hasOwnProperty(Hn)&&(un[Hn]=xn[Hn])},ct(xt,Ce)};return function(xt,Ce){ct(xt,Ce);function un(){this.constructor=xt}xt.prototype=Ce===null?Object.create(Ce):(un.prototype=Ce.prototype,new un)}}(),ce=function(){return ce=Object.assign||function(ct){for(var xt,Ce=1,un=arguments.length;Ce0){for(ta=1,xr=1;taVo&&(Vo=Tt,Ol=[]),Ol.push(it))}function tu(it,Ut){return new he(it,[],"",Ut)}function Xi(it,Ut,_n){return new he(he.buildMessage(it,Ut),it,Ut,_n)}function gl(){var it;return it=Dl(),it}function Dl(){var it,Ut;for(it=[],Ut=nu();Ut!==Ce;)it.push(Ut),Ut=nu();return it}function nu(){var it;return it=uc(),it===Ce&&(it=Ho(),it===Ce&&(it=Iu(),it===Ce&&(it=gu(),it===Ce&&(it=xs(),it===Ce&&(it=Wu()))))),it}function Nl(){var it,Ut,_n;if(it=Tt,Ut=[],_n=Wi(),_n===Ce&&(_n=pu(),_n===Ce&&(_n=Au())),_n!==Ce)for(;_n!==Ce;)Ut.push(_n),_n=Wi(),_n===Ce&&(_n=pu(),_n===Ce&&(_n=Au()));else Ut=Ce;return Ut!==Ce&&(To=it,Ut=Hn(Ut)),it=Ut,it}function uc(){var it,Ut;return it=Tt,Ut=Nl(),Ut!==Ce&&(To=it,Ut=Kn(Ut)),it=Ut,it}function Wu(){var it,Ut;return it=Tt,ct.charCodeAt(Tt)===35?(Ut=Sr,Tt++):(Ut=Ce,la===0&&Wa(kr)),Ut!==Ce&&(To=it,Ut=La()),it=Ut,it}function Ho(){var it,Ut,_n,dr,Ra,So;return la++,it=Tt,ct.charCodeAt(Tt)===123?(Ut=Xr,Tt++):(Ut=Ce,la===0&&Wa(ta)),Ut!==Ce?(_n=Io(),_n!==Ce?(dr=wl(),dr!==Ce?(Ra=Io(),Ra!==Ce?(ct.charCodeAt(Tt)===125?(So=xr,Tt++):(So=Ce,la===0&&Wa(Zr)),So!==Ce?(To=it,Ut=ga(dr),it=Ut):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce),la--,it===Ce&&(Ut=Ce,la===0&&Wa(oa)),it}function Hu(){var it,Ut,_n,dr,Ra;if(la++,it=Tt,Ut=[],_n=Tt,dr=Tt,la++,Ra=qi(),Ra===Ce&&(mo.test(ct.charAt(Tt))?(Ra=ct.charAt(Tt),Tt++):(Ra=Ce,la===0&&Wa(no))),la--,Ra===Ce?dr=void 0:(Tt=dr,dr=Ce),dr!==Ce?(ct.length>Tt?(Ra=ct.charAt(Tt),Tt++):(Ra=Ce,la===0&&Wa(kt)),Ra!==Ce?(dr=[dr,Ra],_n=dr):(Tt=_n,_n=Ce)):(Tt=_n,_n=Ce),_n!==Ce)for(;_n!==Ce;)Ut.push(_n),_n=Tt,dr=Tt,la++,Ra=qi(),Ra===Ce&&(mo.test(ct.charAt(Tt))?(Ra=ct.charAt(Tt),Tt++):(Ra=Ce,la===0&&Wa(no))),la--,Ra===Ce?dr=void 0:(Tt=dr,dr=Ce),dr!==Ce?(ct.length>Tt?(Ra=ct.charAt(Tt),Tt++):(Ra=Ce,la===0&&Wa(kt)),Ra!==Ce?(dr=[dr,Ra],_n=dr):(Tt=_n,_n=Ce)):(Tt=_n,_n=Ce);else Ut=Ce;return Ut!==Ce?it=ct.substring(it,Tt):it=Ut,la--,it===Ce&&(Ut=Ce,la===0&&Wa(ka)),it}function Vl(){var it,Ut,_n;return la++,it=Tt,ct.charCodeAt(Tt)===47?(Ut=Dn,Tt++):(Ut=Ce,la===0&&Wa(Qn)),Ut!==Ce?(_n=Hu(),_n!==Ce?(To=it,Ut=br(_n),it=Ut):(Tt=it,it=Ce)):(Tt=it,it=Ce),la--,it===Ce&&(Ut=Ce,la===0&&Wa(Sn)),it}function Ji(){var it,Ut,_n,dr,Ra;if(la++,it=Tt,Ut=Io(),Ut!==Ce)if(_n=Hu(),_n!==Ce){for(dr=[],Ra=Vl();Ra!==Ce;)dr.push(Ra),Ra=Vl();dr!==Ce?(To=it,Ut=Jr(_n,dr),it=Ut):(Tt=it,it=Ce)}else Tt=it,it=Ce;else Tt=it,it=Ce;return la--,it===Ce&&(Ut=Ce,la===0&&Wa(Hr)),it}function Js(){var it,Ut,_n;if(it=Tt,Ut=[],_n=Ji(),_n!==Ce)for(;_n!==Ce;)Ut.push(_n),_n=Ji();else Ut=Ce;return Ut!==Ce&&(To=it,Ut=ir(Ut)),it=Ut,it}function qs(){var it,Ut,_n;return it=Tt,ct.substr(Tt,2)===Wr?(Ut=Wr,Tt+=2):(Ut=Ce,la===0&&Wa(ua)),Ut!==Ce?(_n=Js(),_n!==Ce?(To=it,Ut=Na(_n),it=Ut):(Tt=it,it=Ce)):(Tt=it,it=Ce),it===Ce&&(it=Tt,To=Tt,Ut=wa(),Ut?Ut=void 0:Ut=Ce,Ut!==Ce?(_n=Nl(),_n!==Ce?(To=it,Ut=oo(_n),it=Ut):(Tt=it,it=Ce)):(Tt=it,it=Ce)),it}function Rt(){var it,Ut,_n,dr,Ra,So,fi,Go,rs,vi,yi,Lo,Fo;return it=Tt,ct.charCodeAt(Tt)===123?(Ut=Xr,Tt++):(Ut=Ce,la===0&&Wa(ta)),Ut!==Ce?(_n=Io(),_n!==Ce?(dr=wl(),dr!==Ce?(Ra=Io(),Ra!==Ce?(ct.charCodeAt(Tt)===44?(So=Oo,Tt++):(So=Ce,la===0&&Wa(Ro)),So!==Ce?(fi=Io(),fi!==Ce?(ct.substr(Tt,6)===eo?(Go=eo,Tt+=6):(Go=Ce,la===0&&Wa(jo)),Go!==Ce?(rs=Io(),rs!==Ce?(vi=Tt,ct.charCodeAt(Tt)===44?(yi=Oo,Tt++):(yi=Ce,la===0&&Wa(Ro)),yi!==Ce?(Lo=Io(),Lo!==Ce?(Fo=qs(),Fo!==Ce?(yi=[yi,Lo,Fo],vi=yi):(Tt=vi,vi=Ce)):(Tt=vi,vi=Ce)):(Tt=vi,vi=Ce),vi===Ce&&(vi=null),vi!==Ce?(yi=Io(),yi!==Ce?(ct.charCodeAt(Tt)===125?(Lo=xr,Tt++):(Lo=Ce,la===0&&Wa(Zr)),Lo!==Ce?(To=it,Ut=bo(dr,Go,vi),it=Ut):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce),it}function Pi(){var it,Ut,_n,dr;if(it=Tt,ct.charCodeAt(Tt)===39?(Ut=Da,Tt++):(Ut=Ce,la===0&&Wa(Ja)),Ut!==Ce){if(_n=[],dr=Wi(),dr===Ce&&(Po.test(ct.charAt(Tt))?(dr=ct.charAt(Tt),Tt++):(dr=Ce,la===0&&Wa(oi))),dr!==Ce)for(;dr!==Ce;)_n.push(dr),dr=Wi(),dr===Ce&&(Po.test(ct.charAt(Tt))?(dr=ct.charAt(Tt),Tt++):(dr=Ce,la===0&&Wa(oi)));else _n=Ce;_n!==Ce?(ct.charCodeAt(Tt)===39?(dr=Da,Tt++):(dr=Ce,la===0&&Wa(Ja)),dr!==Ce?(Ut=[Ut,_n,dr],it=Ut):(Tt=it,it=Ce)):(Tt=it,it=Ce)}else Tt=it,it=Ce;if(it===Ce)if(it=[],Ut=Wi(),Ut===Ce&&(ii.test(ct.charAt(Tt))?(Ut=ct.charAt(Tt),Tt++):(Ut=Ce,la===0&&Wa(po))),Ut!==Ce)for(;Ut!==Ce;)it.push(Ut),Ut=Wi(),Ut===Ce&&(ii.test(ct.charAt(Tt))?(Ut=ct.charAt(Tt),Tt++):(Ut=Ce,la===0&&Wa(po)));else it=Ce;return it}function Rl(){var it,Ut;if(it=[],Oi.test(ct.charAt(Tt))?(Ut=ct.charAt(Tt),Tt++):(Ut=Ce,la===0&&Wa(Ni)),Ut!==Ce)for(;Ut!==Ce;)it.push(Ut),Oi.test(ct.charAt(Tt))?(Ut=ct.charAt(Tt),Tt++):(Ut=Ce,la===0&&Wa(Ni));else it=Ce;return it}function Yi(){var it,Ut,_n,dr;if(it=Tt,Ut=Tt,_n=[],dr=Pi(),dr===Ce&&(dr=Rl()),dr!==Ce)for(;dr!==Ce;)_n.push(dr),dr=Pi(),dr===Ce&&(dr=Rl());else _n=Ce;return _n!==Ce?Ut=ct.substring(Ut,Tt):Ut=_n,Ut!==Ce&&(To=it,Ut=ni(Ut)),it=Ut,it}function Ko(){var it,Ut,_n;return it=Tt,ct.substr(Tt,2)===Wr?(Ut=Wr,Tt+=2):(Ut=Ce,la===0&&Wa(ua)),Ut!==Ce?(_n=Yi(),_n!==Ce?(To=it,Ut=Na(_n),it=Ut):(Tt=it,it=Ce)):(Tt=it,it=Ce),it===Ce&&(it=Tt,To=Tt,Ut=Di(),Ut?Ut=void 0:Ut=Ce,Ut!==Ce?(_n=Nl(),_n!==Ce?(To=it,Ut=oo(_n),it=Ut):(Tt=it,it=Ce)):(Tt=it,it=Ce)),it}function Mo(){var it,Ut,_n,dr,Ra,So,fi,Go,rs,vi,yi,Lo,Fo;return it=Tt,ct.charCodeAt(Tt)===123?(Ut=Xr,Tt++):(Ut=Ce,la===0&&Wa(ta)),Ut!==Ce?(_n=Io(),_n!==Ce?(dr=wl(),dr!==Ce?(Ra=Io(),Ra!==Ce?(ct.charCodeAt(Tt)===44?(So=Oo,Tt++):(So=Ce,la===0&&Wa(Ro)),So!==Ce?(fi=Io(),fi!==Ce?(ct.substr(Tt,4)===Ri?(Go=Ri,Tt+=4):(Go=Ce,la===0&&Wa(ji)),Go===Ce&&(ct.substr(Tt,4)===wi?(Go=wi,Tt+=4):(Go=Ce,la===0&&Wa(Ui))),Go!==Ce?(rs=Io(),rs!==Ce?(vi=Tt,ct.charCodeAt(Tt)===44?(yi=Oo,Tt++):(yi=Ce,la===0&&Wa(Ro)),yi!==Ce?(Lo=Io(),Lo!==Ce?(Fo=Ko(),Fo!==Ce?(yi=[yi,Lo,Fo],vi=yi):(Tt=vi,vi=Ce)):(Tt=vi,vi=Ce)):(Tt=vi,vi=Ce),vi===Ce&&(vi=null),vi!==Ce?(yi=Io(),yi!==Ce?(ct.charCodeAt(Tt)===125?(Lo=xr,Tt++):(Lo=Ce,la===0&&Wa(Zr)),Lo!==Ce?(To=it,Ut=bo(dr,Go,vi),it=Ut):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce),it}function Iu(){var it;return it=Rt(),it===Ce&&(it=Mo()),it}function gu(){var it,Ut,_n,dr,Ra,So,fi,Go,rs,vi,yi,Lo,Fo,Vi,vs,hu;if(it=Tt,ct.charCodeAt(Tt)===123?(Ut=Xr,Tt++):(Ut=Ce,la===0&&Wa(ta)),Ut!==Ce)if(_n=Io(),_n!==Ce)if(dr=wl(),dr!==Ce)if(Ra=Io(),Ra!==Ce)if(ct.charCodeAt(Tt)===44?(So=Oo,Tt++):(So=Ce,la===0&&Wa(Ro)),So!==Ce)if(fi=Io(),fi!==Ce)if(ct.substr(Tt,6)===zi?(Go=zi,Tt+=6):(Go=Ce,la===0&&Wa(vo)),Go===Ce&&(ct.substr(Tt,13)===ro?(Go=ro,Tt+=13):(Go=Ce,la===0&&Wa(ci))),Go!==Ce)if(rs=Io(),rs!==Ce)if(ct.charCodeAt(Tt)===44?(vi=Oo,Tt++):(vi=Ce,la===0&&Wa(Ro)),vi!==Ce)if(yi=Io(),yi!==Ce)if(Lo=Tt,ct.substr(Tt,7)===ai?(Fo=ai,Tt+=7):(Fo=Ce,la===0&&Wa(Uo)),Fo!==Ce?(Vi=Io(),Vi!==Ce?(vs=Us(),vs!==Ce?(Fo=[Fo,Vi,vs],Lo=Fo):(Tt=Lo,Lo=Ce)):(Tt=Lo,Lo=Ce)):(Tt=Lo,Lo=Ce),Lo===Ce&&(Lo=null),Lo!==Ce)if(Fo=Io(),Fo!==Ce){if(Vi=[],vs=Ti(),vs!==Ce)for(;vs!==Ce;)Vi.push(vs),vs=Ti();else Vi=Ce;Vi!==Ce?(vs=Io(),vs!==Ce?(ct.charCodeAt(Tt)===125?(hu=xr,Tt++):(hu=Ce,la===0&&Wa(Zr)),hu!==Ce?(To=it,Ut=Yo(dr,Go,Lo,Vi),it=Ut):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)}else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;return it}function xs(){var it,Ut,_n,dr,Ra,So,fi,Go,rs,vi,yi,Lo,Fo,Vi;if(it=Tt,ct.charCodeAt(Tt)===123?(Ut=Xr,Tt++):(Ut=Ce,la===0&&Wa(ta)),Ut!==Ce)if(_n=Io(),_n!==Ce)if(dr=wl(),dr!==Ce)if(Ra=Io(),Ra!==Ce)if(ct.charCodeAt(Tt)===44?(So=Oo,Tt++):(So=Ce,la===0&&Wa(Ro)),So!==Ce)if(fi=Io(),fi!==Ce)if(ct.substr(Tt,6)===xi?(Go=xi,Tt+=6):(Go=Ce,la===0&&Wa(Hi)),Go!==Ce)if(rs=Io(),rs!==Ce)if(ct.charCodeAt(Tt)===44?(vi=Oo,Tt++):(vi=Ce,la===0&&Wa(Ro)),vi!==Ce)if(yi=Io(),yi!==Ce){if(Lo=[],Fo=Ii(),Fo!==Ce)for(;Fo!==Ce;)Lo.push(Fo),Fo=Ii();else Lo=Ce;Lo!==Ce?(Fo=Io(),Fo!==Ce?(ct.charCodeAt(Tt)===125?(Vi=xr,Tt++):(Vi=Ce,la===0&&Wa(Zr)),Vi!==Ce?(To=it,Ut=_i(dr,Lo),it=Ut):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)}else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;else Tt=it,it=Ce;return it}function el(){var it,Ut,_n,dr;return it=Tt,Ut=Tt,ct.charCodeAt(Tt)===61?(_n=Es,Tt++):(_n=Ce,la===0&&Wa(hs)),_n!==Ce?(dr=Us(),dr!==Ce?(_n=[_n,dr],Ut=_n):(Tt=Ut,Ut=Ce)):(Tt=Ut,Ut=Ce),Ut!==Ce?it=ct.substring(it,Tt):it=Ut,it===Ce&&(it=Ms()),it}function Ii(){var it,Ut,_n,dr,Ra,So,fi,Go;return it=Tt,Ut=Io(),Ut!==Ce?(_n=Ms(),_n!==Ce?(dr=Io(),dr!==Ce?(ct.charCodeAt(Tt)===123?(Ra=Xr,Tt++):(Ra=Ce,la===0&&Wa(ta)),Ra!==Ce?(To=Tt,So=Ks(_n),So?So=void 0:So=Ce,So!==Ce?(fi=Dl(),fi!==Ce?(ct.charCodeAt(Tt)===125?(Go=xr,Tt++):(Go=Ce,la===0&&Wa(Zr)),Go!==Ce?(To=it,Ut=Wl(_n,fi),it=Ut):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce),it}function Ti(){var it,Ut,_n,dr,Ra,So,fi,Go;return it=Tt,Ut=Io(),Ut!==Ce?(_n=el(),_n!==Ce?(dr=Io(),dr!==Ce?(ct.charCodeAt(Tt)===123?(Ra=Xr,Tt++):(Ra=Ce,la===0&&Wa(ta)),Ra!==Ce?(To=Tt,So=Yn(_n),So?So=void 0:So=Ce,So!==Ce?(fi=Dl(),fi!==Ce?(ct.charCodeAt(Tt)===125?(Go=xr,Tt++):(Go=Ce,la===0&&Wa(Zr)),Go!==Ce?(To=it,Ut=Vr(_n,fi),it=Ut):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce)):(Tt=it,it=Ce),it}function qi(){var it,Ut;return la++,Ur.test(ct.charAt(Tt))?(it=ct.charAt(Tt),Tt++):(it=Ce,la===0&&Wa(na)),la--,it===Ce&&(Ut=Ce,la===0&&Wa(Or)),it}function us(){var it,Ut;return la++,Ya.test(ct.charAt(Tt))?(it=ct.charAt(Tt),Tt++):(it=Ce,la===0&&Wa(Ua)),la--,it===Ce&&(Ut=Ce,la===0&&Wa(Ba)),it}function Io(){var it,Ut,_n;for(la++,it=Tt,Ut=[],_n=qi();_n!==Ce;)Ut.push(_n),_n=qi();return Ut!==Ce?it=ct.substring(it,Tt):it=Ut,la--,it===Ce&&(Ut=Ce,la===0&&Wa(Wo)),it}function Us(){var it,Ut,_n;return la++,it=Tt,ct.charCodeAt(Tt)===45?(Ut=Jo,Tt++):(Ut=Ce,la===0&&Wa(ki)),Ut===Ce&&(Ut=null),Ut!==Ce?(_n=ml(),_n!==Ce?(To=it,Ut=ys(Ut,_n),it=Ut):(Tt=it,it=Ce)):(Tt=it,it=Ce),la--,it===Ce&&(Ut=Ce,la===0&&Wa(Xo)),it}function mu(){var it,Ut;return la++,ct.charCodeAt(Tt)===39?(it=Da,Tt++):(it=Ce,la===0&&Wa(Ja)),la--,it===Ce&&(Ut=Ce,la===0&&Wa(Qi)),it}function Wi(){var it,Ut;return la++,it=Tt,ct.substr(Tt,2)===ls?(Ut=ls,Tt+=2):(Ut=Ce,la===0&&Wa(ri)),Ut!==Ce&&(To=it,Ut=Ll()),it=Ut,la--,it===Ce&&(Ut=Ce,la===0&&Wa(Ts)),it}function pu(){var it,Ut,_n,dr,Ra,So;if(it=Tt,ct.charCodeAt(Tt)===39?(Ut=Da,Tt++):(Ut=Ce,la===0&&Wa(Ja)),Ut!==Ce)if(_n=ks(),_n!==Ce){for(dr=Tt,Ra=[],ct.substr(Tt,2)===ls?(So=ls,Tt+=2):(So=Ce,la===0&&Wa(ri)),So===Ce&&(Po.test(ct.charAt(Tt))?(So=ct.charAt(Tt),Tt++):(So=Ce,la===0&&Wa(oi)));So!==Ce;)Ra.push(So),ct.substr(Tt,2)===ls?(So=ls,Tt+=2):(So=Ce,la===0&&Wa(ri)),So===Ce&&(Po.test(ct.charAt(Tt))?(So=ct.charAt(Tt),Tt++):(So=Ce,la===0&&Wa(oi)));Ra!==Ce?dr=ct.substring(dr,Tt):dr=Ra,dr!==Ce?(ct.charCodeAt(Tt)===39?(Ra=Da,Tt++):(Ra=Ce,la===0&&Wa(Ja)),Ra===Ce&&(Ra=null),Ra!==Ce?(To=it,Ut=Il(_n,dr),it=Ut):(Tt=it,it=Ce)):(Tt=it,it=Ce)}else Tt=it,it=Ce;else Tt=it,it=Ce;return it}function Au(){var it,Ut,_n,dr;return it=Tt,Ut=Tt,ct.length>Tt?(_n=ct.charAt(Tt),Tt++):(_n=Ce,la===0&&Wa(kt)),_n!==Ce?(To=Tt,dr=Al(_n),dr?dr=void 0:dr=Ce,dr!==Ce?(_n=[_n,dr],Ut=_n):(Tt=Ut,Ut=Ce)):(Tt=Ut,Ut=Ce),Ut===Ce&&(ct.charCodeAt(Tt)===10?(Ut=du,Tt++):(Ut=Ce,la===0&&Wa(cl))),Ut!==Ce?it=ct.substring(it,Tt):it=Ut,it}function ks(){var it,Ut,_n,dr;return it=Tt,Ut=Tt,ct.length>Tt?(_n=ct.charAt(Tt),Tt++):(_n=Ce,la===0&&Wa(kt)),_n!==Ce?(To=Tt,dr=dl(_n),dr?dr=void 0:dr=Ce,dr!==Ce?(_n=[_n,dr],Ut=_n):(Tt=Ut,Ut=Ce)):(Tt=Ut,Ut=Ce),Ut!==Ce?it=ct.substring(it,Tt):it=Ut,it}function wl(){var it,Ut;return la++,it=Tt,Ut=ml(),Ut===Ce&&(Ut=Ms()),Ut!==Ce?it=ct.substring(it,Tt):it=Ut,la--,it===Ce&&(Ut=Ce,la===0&&Wa(zs)),it}function ml(){var it,Ut,_n,dr,Ra;if(la++,it=Tt,ct.charCodeAt(Tt)===48?(Ut=fl,Tt++):(Ut=Ce,la===0&&Wa(fu)),Ut!==Ce&&(To=it,Ut=fs()),it=Ut,it===Ce){if(it=Tt,Ut=Tt,bs.test(ct.charAt(Tt))?(_n=ct.charAt(Tt),Tt++):(_n=Ce,la===0&&Wa(Fs)),_n!==Ce){for(dr=[],Bs.test(ct.charAt(Tt))?(Ra=ct.charAt(Tt),Tt++):(Ra=Ce,la===0&&Wa(vu));Ra!==Ce;)dr.push(Ra),Bs.test(ct.charAt(Tt))?(Ra=ct.charAt(Tt),Tt++):(Ra=Ce,la===0&&Wa(vu));dr!==Ce?(_n=[_n,dr],Ut=_n):(Tt=Ut,Ut=Ce)}else Tt=Ut,Ut=Ce;Ut!==Ce&&(To=it,Ut=Hl(Ut)),it=Ut}return la--,it===Ce&&(Ut=Ce,la===0&&Wa(Qs)),it}function Ms(){var it,Ut,_n,dr,Ra;if(la++,it=Tt,Ut=[],_n=Tt,dr=Tt,la++,Ra=qi(),Ra===Ce&&(Ra=us()),la--,Ra===Ce?dr=void 0:(Tt=dr,dr=Ce),dr!==Ce?(ct.length>Tt?(Ra=ct.charAt(Tt),Tt++):(Ra=Ce,la===0&&Wa(kt)),Ra!==Ce?(dr=[dr,Ra],_n=dr):(Tt=_n,_n=Ce)):(Tt=_n,_n=Ce),_n!==Ce)for(;_n!==Ce;)Ut.push(_n),_n=Tt,dr=Tt,la++,Ra=qi(),Ra===Ce&&(Ra=us()),la--,Ra===Ce?dr=void 0:(Tt=dr,dr=Ce),dr!==Ce?(ct.length>Tt?(Ra=ct.charAt(Tt),Tt++):(Ra=Ce,la===0&&Wa(kt)),Ra!==Ce?(dr=[dr,Ra],_n=dr):(Tt=_n,_n=Ce)):(Tt=_n,_n=Ce);else Ut=Ce;return Ut!==Ce?it=ct.substring(it,Tt):it=Ut,la--,it===Ce&&(Ut=Ce,la===0&&Wa(Cs)),it}var Is=["root"];function Ou(){return Is.length>1}function Ls(){return Is[Is.length-1]==="plural"}function ma(){return xt&&xt.captureLocation?{location:Zs()}:{}}if(vl=xn(),vl!==Ce&&Tt===ct.length)return vl;throw vl!==Ce&&Tt1)throw new RangeError("Fraction-precision stems only accept a single optional option");xn.stem.replace(R,function(Kn,Sr,kr){return Kn==="."?xt.maximumFractionDigits=0:kr==="+"?xt.minimumFractionDigits=kr.length:Sr[0]==="#"?xt.maximumFractionDigits=Sr.length:(xt.minimumFractionDigits=Sr.length,xt.maximumFractionDigits=Sr.length+(typeof kr=="string"?kr.length:0)),""}),xn.options.length&&(xt=We(We({},xt),oe(xn.options[0])));continue}if(N.test(xn.stem)){xt=We(We({},xt),oe(xn.stem));continue}var Hn=ve(xn.stem);Hn&&(xt=We(We({},xt),Hn))}return xt}var we=function(){var ct=function(xt,Ce){return ct=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(un,xn){un.__proto__=xn}||function(un,xn){for(var Hn in xn)xn.hasOwnProperty(Hn)&&(un[Hn]=xn[Hn])},ct(xt,Ce)};return function(xt,Ce){ct(xt,Ce);function un(){this.constructor=xt}xt.prototype=Ce===null?Object.create(Ce):(un.prototype=Ce.prototype,new un)}}(),xe=function(){for(var ct=0,xt=0,Ce=arguments.length;xt(.*?)<\/([0-9a-zA-Z-_]*?)>)|(<[0-9a-zA-Z-_]*?\/>)/,Qe=Date.now()+"@@",gt=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"];function ut(ct,xt,Ce){var un=ct.tagName,xn=ct.outerHTML,Hn=ct.textContent,Kn=ct.childNodes;if(!un)return Pe(Hn||"",xt);un=un.toLowerCase();var Sr=~gt.indexOf(un),kr=Ce[un];if(kr&&Sr)throw new Se(un+" is a self-closing tag and can not be used, please use another tag name.");if(!Kn.length)return[xn];var La=Array.prototype.slice.call(Kn).reduce(function(oa,Xr){return oa.concat(ut(Xr,xt,Ce))},[]);return kr?typeof kr=="function"?[kr.apply(void 0,La)]:[kr]:xe(["<"+un+">"],La,[""])}function rt(ct,xt,Ce,un,xn,Hn){var Kn=ne(ct,xt,Ce,un,xn,void 0,Hn),Sr={},kr=Kn.reduce(function(ta,xr){if(xr.type===0)return ta+=xr.value;var Zr=_e();return Sr[Zr]=xr.value,ta+=""+Ee+Zr+Ee},"");if(!ze.test(kr))return Pe(kr,Sr);if(!xn)throw new Se("Message has placeholders but no values was given");if(typeof DOMParser=="undefined")throw new Se("Cannot format XML message without DOMParser");se||(se=new DOMParser);var La=se.parseFromString(''+kr+"","text/html").getElementById(Qe);if(!La)throw new Se("Malformed HTML message "+kr);var oa=Object.keys(xn).filter(function(ta){return!!La.getElementsByTagName(ta).length});if(!oa.length)return Pe(kr,Sr);var Xr=oa.filter(function(ta){return ta!==ta.toLowerCase()});if(Xr.length)throw new Se("HTML tag must be lowercased but the following tags are not: "+Xr.join(", "));return Array.prototype.slice.call(La.childNodes).reduce(function(ta,xr){return ta.concat(ut(xr,Sr,xn))},[])}var qe=function(){return qe=Object.assign||function(ct){for(var xt,Ce=1,un=arguments.length;Ce<"']/g;function wt(ct){return(""+ct).replace(ot,function(xt){return nt[xt.charCodeAt(0)]})}function Et(ct,xt){var Ce=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return xt.reduce(function(un,xn){return xn in ct?un[xn]=ct[xn]:xn in Ce&&(un[xn]=Ce[xn]),un},{})}function nn(ct){Be(ct,"[React Intl] Could not find required `intl` object. needs to exist in the component ancestry.")}function $t(ct,xt){var Ce=xt?` +`.concat(xt.stack):"";return"[React Intl] ".concat(ct).concat(Ce)}function fn(ct){}var ln={formats:{},messages:{},timeZone:void 0,textComponent:S.Fragment,defaultLocale:"en",defaultFormats:{},onError:fn};function Wt(){return{dateTime:{},number:{},message:{},relativeTime:{},pluralRules:{},list:{},displayNames:{}}}function $e(){var ct=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Wt(),xt=Intl.RelativeTimeFormat,Ce=Intl.ListFormat,un=Intl.DisplayNames;return{getDateTimeFormat:st(Intl.DateTimeFormat,ct.dateTime),getNumberFormat:st(Intl.NumberFormat,ct.number),getMessageFormat:st(Te,ct.message),getRelativeTimeFormat:st(xt,ct.relativeTime),getPluralRules:st(Intl.PluralRules,ct.pluralRules),getListFormat:st(Ce,ct.list),getDisplayNames:st(un,ct.displayNames)}}function De(ct,xt,Ce,un){var xn=ct&&ct[xt],Hn;if(xn&&(Hn=xn[Ce]),Hn)return Hn;un($t("No ".concat(xt," format named: ").concat(Ce)))}var jt=["localeMatcher","style","currency","currencyDisplay","unit","unitDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","currencyDisplay","currencySign","notation","signDisplay","unit","unitDisplay"];function Ft(ct,xt){var Ce=ct.locale,un=ct.formats,xn=ct.onError,Hn=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Kn=Hn.format,Sr=Kn&&De(un,"number",Kn,xn)||{},kr=Et(Hn,jt,Sr);return xt(Ce,kr)}function Xe(ct,xt,Ce){var un=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};try{return Ft(ct,xt,un).format(Ce)}catch(xn){ct.onError($t("Error formatting number.",xn))}return String(Ce)}function at(ct,xt,Ce){var un=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};try{return Ft(ct,xt,un).formatToParts(Ce)}catch(xn){ct.onError($t("Error formatting number.",xn))}return[]}var Bt=["numeric","style"];function Zt(ct,xt){var Ce=ct.locale,un=ct.formats,xn=ct.onError,Hn=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Kn=Hn.format,Sr=!!Kn&&De(un,"relative",Kn,xn)||{},kr=Et(Hn,Bt,Sr);return xt(Ce,kr)}function Qt(ct,xt,Ce,un){var xn=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{};un||(un="second");var Hn=Intl.RelativeTimeFormat;Hn||ct.onError($t(`Intl.RelativeTimeFormat is not available in this environment. +Try polyfilling it using "@formatjs/intl-relativetimeformat" +`));try{return Zt(ct,xt,xn).format(Ce,un)}catch(Kn){ct.onError($t("Error formatting relative time.",Kn))}return String(Ce)}var rn=["localeMatcher","formatMatcher","timeZone","hour12","weekday","era","year","month","day","hour","minute","second","timeZoneName"];function hn(ct,xt,Ce){var un=ct.locale,xn=ct.formats,Hn=ct.onError,Kn=ct.timeZone,Sr=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},kr=Sr.format,La=Object.assign(Object.assign({},Kn&&{timeZone:Kn}),kr&&De(xn,xt,kr,Hn)),oa=Et(Sr,rn,La);return xt==="time"&&!oa.hour&&!oa.minute&&!oa.second&&(oa=Object.assign(Object.assign({},oa),{hour:"numeric",minute:"numeric"})),Ce(un,oa)}function on(ct,xt,Ce){var un=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},xn=typeof Ce=="string"?new Date(Ce||0):Ce;try{return hn(ct,"date",xt,un).format(xn)}catch(Hn){ct.onError($t("Error formatting date.",Hn))}return String(xn)}function Rn(ct,xt,Ce){var un=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},xn=typeof Ce=="string"?new Date(Ce||0):Ce;try{return hn(ct,"time",xt,un).format(xn)}catch(Hn){ct.onError($t("Error formatting time.",Hn))}return String(xn)}function zn(ct,xt,Ce){var un=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},xn=typeof Ce=="string"?new Date(Ce||0):Ce;try{return hn(ct,"date",xt,un).formatToParts(xn)}catch(Hn){ct.onError($t("Error formatting date.",Hn))}return[]}function lr(ct,xt,Ce){var un=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},xn=typeof Ce=="string"?new Date(Ce||0):Ce;try{return hn(ct,"time",xt,un).formatToParts(xn)}catch(Hn){ct.onError($t("Error formatting time.",Hn))}return[]}var ur=["localeMatcher","type"];function zt(ct,xt,Ce){var un=ct.locale,xn=ct.onError,Hn=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};Intl.PluralRules||xn($t(`Intl.PluralRules is not available in this environment. +Try polyfilling it using "@formatjs/intl-pluralrules" +`));var Kn=Et(Hn,ur);try{return xt(un,Kn).select(Ce)}catch(Sr){xn($t("Error formatting plural.",Sr))}return"other"}var Kt=e(34485),Vt=e.n(Kt);function dn(ct,xt){return Object.keys(ct).reduce(function(Ce,un){return Ce[un]=Object.assign({timeZone:xt},ct[un]),Ce},{})}function pn(ct,xt){var Ce=Object.keys(Object.assign(Object.assign({},ct),xt));return Ce.reduce(function(un,xn){return un[xn]=Object.assign(Object.assign({},ct[xn]||{}),xt[xn]||{}),un},{})}function en(ct,xt){if(!xt)return ct;var Ce=Te.formats;return Object.assign(Object.assign(Object.assign({},Ce),ct),{date:pn(dn(Ce.date,xt),dn(ct.date||{},xt)),time:pn(dn(Ce.time,xt),dn(ct.time||{},xt))})}var mt=function(xt){return S.createElement.apply(j,[S.Fragment,null].concat(Vt()(xt)))};function pt(ct,xt){var Ce=ct.locale,un=ct.formats,xn=ct.messages,Hn=ct.defaultLocale,Kn=ct.defaultFormats,Sr=ct.onError,kr=ct.timeZone,La=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{id:""},oa=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},Xr=La.id,ta=La.defaultMessage;Be(!!Xr,"[React Intl] An `id` must be provided to format a message.");var xr=xn&&xn[String(Xr)];un=en(un,kr),Kn=en(Kn,kr);var Zr=[];if(xr)try{var ga=xt.getMessageFormat(xr,Ce,un,{formatters:xt});Zr=ga.formatHTMLMessage(oa)}catch(mo){Sr($t('Error formatting message: "'.concat(Xr,'" for locale: "').concat(Ce,'"')+(ta?", using default message as fallback.":""),mo))}else(!ta||Ce&&Ce.toLowerCase()!==Hn.toLowerCase())&&Sr($t('Missing message: "'.concat(Xr,'" for locale: "').concat(Ce,'"')+(ta?", using default message as fallback.":"")));if(!Zr.length&&ta)try{var ka=xt.getMessageFormat(ta,Hn,Kn);Zr=ka.formatHTMLMessage(oa)}catch(mo){Sr($t('Error formatting the default message for: "'.concat(Xr,'"'),mo))}return Zr.length?Zr.length===1&&typeof Zr[0]=="string"?Zr[0]||ta||String(Xr):mt(Zr):(Sr($t('Cannot format message: "'.concat(Xr,'", ')+"using message ".concat(xr||ta?"source":"id"," as fallback."))),typeof xr=="string"?xr||ta||String(Xr):ta||String(Xr))}function an(ct,xt){var Ce=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{id:""},un=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},xn=Object.keys(un).reduce(function(Hn,Kn){var Sr=un[Kn];return Hn[Kn]=typeof Sr=="string"?wt(Sr):Sr,Hn},{});return pt(ct,xt,Ce,xn)}var qt=e(57761),Yt=e.n(qt),mn=e(16962),gn=e.n(mn),kn=["localeMatcher","type","style"],tr=Date.now();function ft(ct){return"".concat(tr,"_").concat(ct,"_").concat(tr)}function vt(ct,xt,Ce){var un=ct.locale,xn=ct.onError,Hn=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},Kn=Intl.ListFormat;Kn||xn($t(`Intl.ListFormat is not available in this environment. +Try polyfilling it using "@formatjs/intl-listformat" +`));var Sr=Et(Hn,kn);try{var kr={},La=Ce.map(function(Xr,ta){if(gn()(Xr)==="object"){var xr=ft(ta);return kr[xr]=Xr,xr}return String(Xr)});if(!Object.keys(kr).length)return xt(un,Sr).format(La);var oa=xt(un,Sr).formatToParts(La);return oa.reduce(function(Xr,ta){var xr=ta.value;return kr[xr]?Xr.push(kr[xr]):typeof Xr[Xr.length-1]=="string"?Xr[Xr.length-1]+=xr:Xr.push(xr),Xr},[])}catch(Xr){xn($t("Error formatting list.",Xr))}return Ce}var St=["localeMatcher","style","type","fallback"];function Mt(ct,xt,Ce){var un=ct.locale,xn=ct.onError,Hn=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},Kn=Intl.DisplayNames;Kn||xn($t(`Intl.DisplayNames is not available in this environment. +Try polyfilling it using "@formatjs/intl-displaynames" +`));var Sr=Et(Hn,St);try{return xt(un,Sr).of(Ce)}catch(kr){xn($t("Error formatting display name.",kr))}}var Nt=Yt()||qt;function sn(ct){return{locale:ct.locale,timeZone:ct.timeZone,formats:ct.formats,textComponent:ct.textComponent,messages:ct.messages,defaultLocale:ct.defaultLocale,defaultFormats:ct.defaultFormats,onError:ct.onError}}function Xt(ct,xt){var Ce=$e(xt),un=Object.assign(Object.assign({},ln),ct),xn=un.locale,Hn=un.defaultLocale,Kn=un.onError;return xn?!Intl.NumberFormat.supportedLocalesOf(xn).length&&Kn?Kn($t('Missing locale data for locale: "'.concat(xn,'" 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(xn).length&&Kn&&Kn($t('Missing locale data for locale: "'.concat(xn,'" 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'))):(Kn&&Kn($t('"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'))),un.locale=un.defaultLocale||"en"),Object.assign(Object.assign({},un),{formatters:Ce,formatNumber:Xe.bind(null,un,Ce.getNumberFormat),formatNumberToParts:at.bind(null,un,Ce.getNumberFormat),formatRelativeTime:Qt.bind(null,un,Ce.getRelativeTimeFormat),formatDate:on.bind(null,un,Ce.getDateTimeFormat),formatDateToParts:zn.bind(null,un,Ce.getDateTimeFormat),formatTime:Rn.bind(null,un,Ce.getDateTimeFormat),formatTimeToParts:lr.bind(null,un,Ce.getDateTimeFormat),formatPlural:zt.bind(null,un,Ce.getPluralRules),formatMessage:pt.bind(null,un,Ce),formatHTMLMessage:an.bind(null,un,Ce),formatList:vt.bind(null,un,Ce.getListFormat),formatDisplayName:Mt.bind(null,un,Ce.getDisplayNames)})}var Cn=function(ct){p()(Ce,ct);var xt=g()(Ce);function Ce(){var un;return c()(this,Ce),un=xt.apply(this,arguments),un.cache=Wt(),un.state={cache:un.cache,intl:Xt(sn(un.props),un.cache),prevConfig:sn(un.props)},un}return d()(Ce,[{key:"render",value:function(){return nn(this.state.intl),S.createElement(O,{value:this.state.intl},this.props.children)}}],[{key:"getDerivedStateFromProps",value:function(xn,Hn){var Kn=Hn.prevConfig,Sr=Hn.cache,kr=sn(xn);return Nt(Kn,kr)?null:{intl:Xt(kr,Sr),prevConfig:kr}}}]),Ce}(S.PureComponent);Cn.displayName="IntlProvider",Cn.defaultProps=ln;var Ln=e(23042),hr=e(87308),qn=e.n(hr),Nn=e(62118),$r=e.n(Nn),gr=function(ct,xt){var Ce={};for(var un in ct)Object.prototype.hasOwnProperty.call(ct,un)&&xt.indexOf(un)<0&&(Ce[un]=ct[un]);if(ct!=null&&typeof Object.getOwnPropertySymbols=="function")for(var xn=0,un=Object.getOwnPropertySymbols(ct);xn1&&arguments[1]!==void 0?arguments[1]:!0,un=function(){if(Ka()!==xt){if(navigator.cookieEnabled&&typeof window.localStorage!="undefined"&&Bn&&window.localStorage.setItem("umi_locale",xt||""),Ao(xt),Ce)window.location.reload();else if(pr.emit(qr,xt),window.dispatchEvent){var Hn=new Event("languagechange");window.dispatchEvent(Hn)}}};un()},$o=!0,_o=function(xt,Ce){return $o&&($r()(!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 + `),$o=!1),Vn||Ao(Ka()),Vn.formatMessage(xt,Ce)},yo=function(){return Object.keys(Er)}},47338:function(M,b,e){"use strict";e.d(b,{t:function(){return w},z:function(){return B}});var a=e(88205),t=e.n(a),o=e(61697),s=e.n(o),n=e(77016),c=e.n(n),l=e(2657),d=e.n(l),h=e(44204),p=e.n(h),y=e(58757),g=e(35667),S=y.createContext(null),j=s()(function T(){var F=this;c()(this,T),d()(this,"callbacks",{}),d()(this,"data",{}),d()(this,"update",function(A){F.callbacks[A]&&F.callbacks[A].forEach(function(L){try{var O=F.data[A];L(O)}catch($){L(void 0)}})})});function x(T){var F=T.hook,A=T.onUpdate,L=T.namespace,O=(0,y.useRef)(A),$=(0,y.useRef)(!1),P;try{P=F()}catch(K){console.error("plugin-model: Invoking '".concat(L||"unknown","' model failed:"),K)}return(0,y.useMemo)(function(){O.current(P)},[]),(0,y.useEffect)(function(){$.current?O.current(P):$.current=!0}),null}var Z=new j;function B(T){return(0,g.jsxs)(S.Provider,{value:{dispatcher:Z},children:[Object.keys(T.models).map(function(F){return(0,g.jsx)(x,{hook:T.models[F],namespace:F,onUpdate:function(L){Z.data[F]=L,Z.update(F)}},F)}),T.children]})}function w(T,F){var A=(0,y.useContext)(S),L=A.dispatcher,O=(0,y.useRef)(F);O.current=F;var $=(0,y.useState)(function(){return O.current?O.current(L.data[T]):L.data[T]}),P=t()($,2),K=P[0],U=P[1],ee=(0,y.useRef)(K);ee.current=K;var le=(0,y.useRef)(!1);return(0,y.useEffect)(function(){return le.current=!0,function(){le.current=!1}},[]),(0,y.useEffect)(function(){var Q,G=function(I){if(!le.current)setTimeout(function(){L.data[T]=I,L.update(T)});else{var H=O.current?O.current(I):I,Y=ee.current;p()(H,Y)||(ee.current=H,U(H))}};return(Q=L.callbacks)[T]||(Q[T]=new Set),L.callbacks[T].add(G),L.update(T),function(){L.callbacks[T].delete(G)}},[T]),K}},76180:function(M,b,e){"use strict";e.d(b,{AD:function(){return W},JJ:function(){return ge},EX:function(){return N},BP:function(){return Re},pB:function(){return fe},G3:function(){return _e},YZ:function(){return se},J1:function(){return Ee},L8:function(){return Le},Ss:function(){return R},zY:function(){return X},oC:function(){return ze},gS:function(){return We},po:function(){return xe},a5:function(){return Se},j3:function(){return ne},YC:function(){return ke},iP:function(){return ve},oM:function(){return te},JQ:function(){return oe},Wp:function(){return we},$j:function(){return re},uP:function(){return me},Uf:function(){return Pe}});var a=e(2657),t=e.n(a),o=e(58757),s=Object.defineProperty,n=Object.getOwnPropertySymbols,c=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,d=(ut,rt,qe)=>rt in ut?s(ut,rt,{enumerable:!0,configurable:!0,writable:!0,value:qe}):ut[rt]=qe,h=(ut,rt)=>{for(var qe in rt||(rt={}))c.call(rt,qe)&&d(ut,qe,rt[qe]);if(n)for(var qe of n(rt))l.call(rt,qe)&&d(ut,qe,rt[qe]);return ut};const p=ut=>o.createElement("svg",h({className:"classification_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:200,height:200},ut),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 y="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTc5Ny43MjMgOTEyLjAwN2gtMTQ5LjFjLTU5LjYzNCAwLTEwOS4zMjUtNDkuNjkxLTEwOS4zMjUtMTA5LjMyNlY1MzkuMzI1aDI2My4zNTZjNTkuNjM1IDAgMTA5LjMyNiA0OS42OSAxMDkuMzI2IDEwOS4zMjV2MTQ5LjA3M2MwIDI5LjgwNC05Ljk0NCA1NC42NS0yOS44MDQgNzkuNDk1LTI5LjgzIDI0LjgxOC01NC43MDMgMzQuNzYyLTg0LjQ4IDM0Ljc2MnptLTQyMi4zNzMgMEgyMjYuMjc3Yy02NC41OTMgMC0xMTQuMjU3LTQ5LjY5MS0xMTQuMjU3LTEwOS4zMjZWNjUzLjYwOGMwLTI5LjgwMyA5LjkxNy01OS42MzQgMzQuNzYyLTc5LjQ5NCAxOS44Ni0xOS44ODcgNDkuNjkxLTM0Ljc5IDc5LjQ5NS0zNC43OWgyNTguMzk4djI2My4zNTdjMCAyOS44MDQtOS45NDMgNTQuNjUtMjkuODAzIDc5LjQ5NS0yNC44NDYgMTkuODg3LTQ5LjY5MSAyOS44My03OS41MjIgMjkuODN6bTQyMi4zNzMtNDIyLjM3M0g1MzQuMzM5VjIyNi4yNzdjMC0yOS44MDQgOS45Ny01OS42MzQgMzQuNzktNzkuNDk1IDE5Ljg4Ny0xOS44NiA0OS42OS0zNC43NjIgNzkuNTIxLTM0Ljc2MmgxNDkuMDczYzU5LjYwOCA0LjkzMiAxMDkuMjk4IDU0LjYyMyAxMDkuMjk4IDExNC4yNTdWMzc1LjM1YzAgMjkuODMtOS45MTYgNTQuNjc2LTI5LjgwMyA3OS40OTUtMjQuODQ2IDI0Ljg0NS00OS42OTEgMzQuNzYyLTc5LjQ5NSAzNC43NjJ6bS0zMTMuMDQ4IDBIMjIxLjMyYy01OS42MzUgMC0xMDkuMzI2LTQ5LjY5MS0xMDkuMzI2LTEwOS4zMjZWMjMxLjIzNWMwLTI5LjgwMyA5Ljk0NC01OS42MDcgMzQuNzktNzkuNDk0IDE5Ljg2LTI0LjgxOSA0OS42OS0zNC43NjIgNzQuNTM2LTM0Ljc2MmgxNDkuMDczYzU5LjYzNCAwIDEwOS4yOTggNDkuNjY0IDEwOS4yOTggMTA5LjI5OHYyNjMuMzg0aDQuOTU4di0uMDI3eiIvPjwvc3ZnPg==",g=Object.defineProperty,S=Object.getOwnPropertySymbols,j=Object.prototype.hasOwnProperty,x=Object.prototype.propertyIsEnumerable,Z=(ut,rt,qe)=>rt in ut?g(ut,rt,{enumerable:!0,configurable:!0,writable:!0,value:qe}):ut[rt]=qe,B=(ut,rt)=>{for(var qe in rt||(rt={}))j.call(rt,qe)&&Z(ut,qe,rt[qe]);if(S)for(var qe of S(rt))x.call(rt,qe)&&Z(ut,qe,rt[qe]);return ut};const w=ut=>o.createElement("svg",B({className:"datasetDetection_svg__icon",viewBox:"0 0 1092 1024",xmlns:"http://www.w3.org/2000/svg",width:213.281,height:200},ut),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 T="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwOTIgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjEzLjI4MSIgaGVpZ2h0PSIyMDAiPjxwYXRoIGQ9Im01MTQuODU5IDExNi45MjggMzE4LjMzNiAxMzAuNjI0LTEuMjggMy4yIDIuODgtMS4xNTJ2NDQ4bC0zMjAgMTI4LTMyMC0xMjh2LTQ0OGwyLjgxNiAxLjE1Mi0xLjI4LTMuMiAzMTguNTI4LTEzMC42MjR6bS0yNTYgMjI3LjJ2MzEwLjE0NGwyMjQgODkuNlY0MzQuMjRoMS4yOGwtMjI1LjI4LTkwLjExMnptNTEyIDBMNTQ1LjMyMyA0MzQuMjRoMS40MDh2MzA5LjYzMmwyMjQtODkuNlYzNDQuMTI4em0tMjU2LjA2NC0xNTguMDgtMjM2LjM1MiA5Ny4wMjRMNTE0Ljc5NSAzNzcuNmwyMzYuMjg4LTk0LjUyOC0yMzYuMjg4LTk3LjAyNHpNMTMyLjUyMyA3MjguMDY0djE2MGgxNjB2NjRoLTIyNHYtMjI0aDY0em04MzAuMjcyIDB2MjI0aC0yMjR2LTY0aDE2MHYtMTYwaDY0em0tNjcwLjI3Mi02NzJ2NjRoLTE2MHYxNjBoLTY0di0yMjRoMjI0em02NzAuMjcyIDB2MjI0aC02NHYtMTYwaC0xNjB2LTY0aDIyNHoiLz48cGF0aCBkPSJNNC4yNjcgMGgxMDI0djEwMjRoLTEwMjR6IiBmaWxsPSJub25lIi8+PC9zdmc+",F=Object.defineProperty,A=Object.getOwnPropertySymbols,L=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,$=(ut,rt,qe)=>rt in ut?F(ut,rt,{enumerable:!0,configurable:!0,writable:!0,value:qe}):ut[rt]=qe,P=(ut,rt)=>{for(var qe in rt||(rt={}))L.call(rt,qe)&&$(ut,qe,rt[qe]);if(A)for(var qe of A(rt))O.call(rt,qe)&&$(ut,qe,rt[qe]);return ut};const K=ut=>o.createElement("svg",P({className:"datasetSegment_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:200,height:200},ut),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 U="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE3OS4yIDUyNC4yODhoNjc4LjkxMmEyNS42IDI1LjYgMCAwIDAgMC01MS4ySDE3OS4yYTI1LjYgMjUuNiAwIDAgMCAwIDUxLjJ6bTcwMC42NzItMjQ1LjUwNHYtNTYuMzJsLTE2NC44NjQgMTU2LjE2SDc3NC40bDEwNS40NzItOTkuODR6bTAgNzMuMjE2LTI3LjkwNCAyNi42MjRoMjcuOTA0VjM1MnptLTI0Mi4xNzYgMjYuNjI0IDI0Mi4xNzYtMjI5LjM3NnYtMTUuNjE2aC00My4yNjRMNTc4LjMwNCAzNzguNjI0aDU5LjM5MnptLTEzNi45NiAwIDI1OC41Ni0yNDQuOTkyaC01OS4zOTJMNDQxLjYgMzc4LjYyNGg1OS4xMzZ6bS0xMzYuNzA0IDAgMjU4LjMwNC0yNDQuOTkyaC01OS4zOTJsLTI1OC41NiAyNDQuOTkyaDU5LjY0OHptLTEzNi45NiAwIDI1OC41Ni0yNDQuOTkySDQyNi4yNEwxNjcuNjggMzc4LjYyNGg1OS4zOTJ6bTYyLjcyLTI0NC45OTJMMTU2LjE2IDI2MC4zNTJ2NTUuODA4bDE5Mi41MTItMTgyLjUyOGgtNTguODh6bS0xMzMuNjMyIDB2NTMuNTA0bDU2LjMyLTUzLjUwNGgtNTYuMzJ6bTYxOC4yNCA3NDIuNCAxMDUuNDcyLTk5LjU4NHYtNTYuNTc2bC0xNjQuODY0IDE1Ni4xNkg3NzQuNHptMTA1LjQ3MiAwdi0yNi4zNjhsLTI3LjkwNCAyNi4zNjhoMjcuOTA0em0tMzAxLjU2OCAwaDU5LjM5MmwyNDIuMTc2LTIyOS4zNzZ2LTE1LjM2aC00My4yNjRMNTc4LjMwNCA4NzYuMDMyem0xMjEuNi0yNDQuNzM2TDQ0MS42IDg3Ni4wMzJoNTkuMTM2bDI1OC41Ni0yNDQuNzM2aC01OS4zOTJ6bS0xMzYuOTYgMC0yNTguNTYgMjQ0LjczNmg1OS42NDhsMjU4LjMwNC0yNDQuNzM2aC01OS4zOTJ6bS0xMzYuNzA0IDBMMTY3LjY4IDg3Ni4wMzJoNTkuMzkybDI1OC41Ni0yNDQuNzM2SDQyNi4yNHptLTEzNi40NDggMEwxNTYuMTYgNzU4LjAxNnY1NS44MDhsMTkyLjUxMi0xODIuNTI4aC01OC44OHpNMTU2LjE2IDY4NC41NDRsNTYuMzItNTMuMjQ4aC01Ni4zMnY1My4yNDh6Ii8+PC9zdmc+",ee=Object.defineProperty,le=Object.getOwnPropertySymbols,Q=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable,q=(ut,rt,qe)=>rt in ut?ee(ut,rt,{enumerable:!0,configurable:!0,writable:!0,value:qe}):ut[rt]=qe,I=(ut,rt)=>{for(var qe in rt||(rt={}))Q.call(rt,qe)&&q(ut,qe,rt[qe]);if(le)for(var qe of le(rt))G.call(rt,qe)&&q(ut,qe,rt[qe]);return ut};const H=ut=>o.createElement("svg",I({className:"datasetMatting_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:200,height:200},ut),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 Y="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTgzMiAyODhoLTk2di05NmMwLTUyLjktNDMuMS05Ni05Ni05NkgxOTJjLTUyLjkgMC05NiA0My4xLTk2IDk2djQ0OGMwIDUyLjkgNDMuMSA5NiA5NiA5Nmg5NnY5NmMwIDUyLjkgNDMuMSA5NiA5NiA5Nmg0NDhjNTIuOSAwIDk2LTQzLjEgOTYtOTZWMzg0YzAtNTIuOS00My4xLTk2LTk2LTk2ek0xNjAgNjQwVjE5MmMwLTE3LjYgMTQuNC0zMiAzMi0zMmg0NDhjMTcuNiAwIDMyIDE0LjQgMzIgMzJ2OTZoLTMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDMydjI4OGMwIDE3LjYtMTQuNCAzMi0zMiAzMkgzNTJ2LTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjMyaC05NmMtMTcuNiAwLTMyLTE0LjQtMzItMzJ6bTcwNCAxOTJjMCAxNy42LTE0LjQgMzItMzIgMzJIMzg0Yy0xNy42IDAtMzItMTQuNC0zMi0zMnYtOTZoMjg4YzUyLjkgMCA5Ni00My4xIDk2LTk2VjM1Mmg5NmMxNy42IDAgMzIgMTQuNCAzMiAzMnY0NDh6Ii8+PHBhdGggZD0iTTMyMCA1NzZjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyem0xNjAtMjI0aDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyaC02NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptLTE2MCA2NGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTE3LjYgMTQuNC0zMiAzMi0zMiAxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmMtNTIuOSAwLTk2IDQzLjEtOTYgOTYgMCAxNy43IDE0LjMgMzIgMzIgMzJ6Ii8+PC9zdmc+",D=Object.defineProperty,_=Object.getOwnPropertySymbols,ue=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable,ce=(ut,rt,qe)=>rt in ut?D(ut,rt,{enumerable:!0,configurable:!0,writable:!0,value:qe}):ut[rt]=qe,he=(ut,rt)=>{for(var qe in rt||(rt={}))ue.call(rt,qe)&&ce(ut,qe,rt[qe]);if(_)for(var qe of _(rt))be.call(rt,qe)&&ce(ut,qe,rt[qe]);return ut};const Fe=ut=>o.createElement("svg",he({className:"datasetKeypoint_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:200,height:200},ut),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 Je="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTkzOC42NjcgMjk4LjY2N2MwIDcwLjYxMy01Ny4zODcgMTI4LTEyOCAxMjhzLTEyOC01Ny4zODctMTI4LTEyOGMwLTEuOTIgMC0zLjYyNy4yMTMtNS4zMzRMNTAxLjEyIDIzOC43MmExMDcuMDMgMTA3LjAzIDAgMCAxLTYzLjc4NyA1NS4yNTNsNjkuMzM0IDEzOC4yNGMxNS4zNi0zLjYyNiAzMS41NzMtNS41NDYgNDgtNS41NDZDNjcyLjIxMyA0MjYuNjY3IDc2OCA1MjIuNDUzIDc2OCA2NDBzLTk1Ljc4NyAyMTMuMzMzLTIxMy4zMzMgMjEzLjMzM2MtODUuMzM0IDAtMTU5LjE0Ny01MC41Ni0xOTMuMDY3LTEyMy4wOTNsLTM0LjEzMyAyMi42MTNjOC45NiAxNy4yOCAxMy44NjYgMzYuOTA3IDEzLjg2NiA1Ny44MTQgMCA3MC42MTMtNTcuMzg2IDEyOC0xMjggMTI4cy0xMjgtNTcuMzg3LTEyOC0xMjggNTcuMzg3LTEyOCAxMjgtMTI4YzM0Ljc3NCAwIDY2LjEzNCAxMy42NTMgODguOTYgMzYuMDUzbDQ0LjgtMjkuODY3Yy0zLjg0LTE1LjU3My01Ljc2LTMyLTUuNzYtNDguODUzIDAtODUuOTczIDUxLjItMTYwLjIxMyAxMjQuNTg3LTE5My45MkwzOTEuNjggMjk3LjZBMTA2LjQ3NSAxMDYuNDc1IDAgMCAxIDI5OC42NjcgMTkyYzAtNTguODggNDcuNzg2LTEwNi42NjcgMTA2LjY2Ni0xMDYuNjY3UzUxMiAxMzMuMTIgNTEyIDE5MmMwIDEuNzA3IDAgMy42MjctLjIxMyA1LjMzM2wxODAuMDUzIDUzLjk3NGExMjcuOTU3IDEyNy45NTcgMCAwIDEgMTE4LjgyNy04MC42NGM3MC42MTMgMCAxMjggNTcuMzg2IDEyOCAxMjh6Ii8+PC9zdmc+",et,ae,yt,Pt,bt="Deep Data Space",Ct="https://img.alicdn.com/tfs/TB1YHEpwUT1gK0jSZFhXXaAtVXa-28-27.svg",Le=50,Ke=null,st=null,We=8,ge=function(ut){return ut.Classification="Classification",ut.Detection="Detection",ut.Segmentation="Segmentation",ut.Matting="Matting",ut.KeyPoints="KeyPoints",ut.Mask="Mask",ut}({}),X=function(ut){return ut.showAnnotations="showAnnotations",ut.showAllCategory="showAllCategory",ut.showImgDesc="showImgDesc",ut.showBoxText="showBoxText",ut.showSegFilling="showSegFilling",ut.showSegContour="showSegContour",ut.showMattingColorFill="showMattingColorFill",ut.showKeyPointsLine="showKeyPointsLine",ut.showKeyPointsBox="showKeyPointsBox",ut}({}),W=(et={},t()(et,ge.Classification,p),t()(et,ge.Detection,w),t()(et,ge.Segmentation,K),t()(et,ge.Matting,H),t()(et,ge.KeyPoints,Fe),t()(et,ge.Mask,H),et),R=(ae={},t()(ae,X.showAnnotations,"lab.displayOption.showAnnotations"),t()(ae,X.showAllCategory,"lab.displayOption.showAllCategory"),t()(ae,X.showImgDesc,"lab.displayOption.showImgDesc"),t()(ae,X.showBoxText,"lab.displayOption.showBoxText"),t()(ae,X.showSegFilling,"lab.displayOption.showSegFilling"),t()(ae,X.showSegContour,"lab.displayOption.showSegContour"),t()(ae,X.showMattingColorFill,"lab.displayOption.showMattingColorFill"),t()(ae,X.showKeyPointsLine,"lab.displayOption.showKeyPointsLine"),t()(ae,X.showKeyPointsBox,"lab.displayOption.showKeyPointsBox"),ae),N=[X.showAnnotations,X.showAllCategory,X.showImgDesc],oe=[[0],[2],[5],[10],[1,5,3],[5,2,10]],ve=[1,.4,.6,.8,.85,.9],te=[1,1.5,1.75,2,2.25,2.5],me=function(ut){return ut.Overlay="dataset.diffMode.overlay",ut.Tiled="dataset.diffMode.tiled",ut}({}),we=[me.Overlay,me.Tiled],xe=function(ut){return ut[ut.all=-1]="all",ut[ut.unflaged=0]="unflaged",ut[ut.picked=1]="picked",ut[ut.rejected=2]="rejected",ut}({}),Se=(yt={},t()(yt,xe.all,"transparent"),t()(yt,xe.unflaged,"#8C8C8C"),t()(yt,xe.picked,"#52C41A"),t()(yt,xe.rejected,"#F5222D"),yt),ke=[{value:xe.picked,tip:"save as 'positive'"},{value:xe.rejected,tip:"save as 'negative'"},{value:xe.unflaged,tip:"save as 'unset'"}],ne=[{value:xe.all,name:"all"},{value:xe.unflaged,name:"unset"},{value:xe.picked,name:"positive"},{value:xe.rejected,name:"negative"}],re=function(ut){return ut.gt="GT",ut.user="User",ut.pred="Pred",ut}({}),se=function(ut){return ut.fn="fn",ut.fp="fp",ut}({}),Ee=[{value:se.fn,name:"FN count"},{value:se.fp,name:"FP count"}],Re=function(ut){return ut.ok="OK",ut.fn="FN",ut.fp="FP",ut}({}),fe=(Pt={},t()(Pt,Re.ok,""),t()(Pt,Re.fn,"rgba(255,0,0,0.4)"),t()(Pt,Re.fp,"rgba(0,0,255,0.4)"),Pt),_e=[{value:re.gt,name:"GT - Matched"},{value:Re.fn,name:"GT - FN"},{value:re.pred,name:"Prediction - Matched"},{value:Re.fp,name:"Prediction - FP"}],Pe=function(ut){return ut.AUTH_TOKEN="auth_token",ut}({}),ze=function(ut){return ut.Active="active",ut.Inactive="inactive",ut.Activating="activating",ut}({}),Qe=function(ut){return ut.Upload="self_uploaded",ut.DirectUrl="direct_url",ut}({}),gt=function(ut){return ut.Waiting="waiting",ut.Running="running",ut.Success="success",ut.Failed="failed",ut.Fail="fail",ut}({})},35459:function(M,b,e){"use strict";e.d(b,{JE:function(){return h},ZA:function(){return d},gZ:function(){return l},j$:function(){return p},mu:function(){return c},tz:function(){return n}});var a=e(2657),t=e.n(a),o,s,n=function(y){return y.Waiting="waiting",y.Initializing="initializing",y.Working="working",y.Reviewing="reviewing",y.Rejected="rejected",y.Accepted="accepted",y.Exported="exported",y}({}),c=(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(y){return y.Waiting="waiting",y.Working="working",y.Reviewing="reviewing",y.Rejected="rejected",y.Accepted="accepted",y}({}),d=(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),h=function(y){return y.Accept="accept",y.Reject="reject",y.ForceAccept="force_accept",y}({}),p=function(y){return y.Labeling="labeling",y.Reviewing="reviewing",y.Rejected="rejected",y.Accepted="accepted",y}({})},1239:function(M,b,e){"use strict";e.d(b,{Oc:function(){return c},vb:function(){return n}});var a=e(2657),t=e.n(a),o=e(97375),s,n=function(d){return d.Owner="owner",d.Manager="manager",d.LabelLeader="label_leader",d.ReviewLeader="review_leader",d.Labeler="labeler",d.Reviewer="reviewer",d}({}),c=function(d){return d[d.ProjectEdit=0]="ProjectEdit",d[d.ProjectInfo=1]="ProjectInfo",d[d.ProjectInit=2]="ProjectInit",d[d.ProjectQa=3]="ProjectQa",d[d.ProjectExport=4]="ProjectExport",d[d.AssignLeader=100]="AssignLeader",d[d.TaskQa=101]="TaskQa",d[d.AssignLabeler=102]="AssignLabeler",d[d.AssignReviewer=103]="AssignReviewer",d[d.RestartTask=104]="RestartTask",d[d.StartLabel=105]="StartLabel",d[d.StartReview=106]="StartReview",d[d.CommitReviewTask=107]="CommitReviewTask",d[d.View=108]="View",d}({}),l=(s={},t()(s,n.Owner,[c.ProjectEdit,c.ProjectQa,c.View,c.ProjectExport]),t()(s,n.Manager,[c.ProjectInit,c.ProjectInfo,c.AssignLeader,c.TaskQa,c.View]),t()(s,n.LabelLeader,[c.AssignLabeler,c.RestartTask,c.View]),t()(s,n.ReviewLeader,[c.AssignReviewer,c.View]),t()(s,n.Labeler,[c.StartLabel]),t()(s,n.Reviewer,[c.StartReview,c.CommitReviewTask]),s);b.ZP=function(){var d=(0,o.useModel)("user"),h=d.user,p=function(S,j){if(!h.userId||!S)return[];var x=[];if(h.userId===S.owner.id&&x.push(n.Owner),S.managers.find(function(w){return w.id===h.userId})&&x.push(n.Manager),j){var Z,B;((Z=j.labelLeader)===null||Z===void 0?void 0:Z.userId)===h.userId&&x.push(n.LabelLeader),((B=j.reviewLeader)===null||B===void 0?void 0:B.userId)===h.userId&&x.push(n.ReviewLeader),j.labelers.find(function(w){return w.userId===h.userId})&&x.push(n.Labeler),j.reviewers.find(function(w){return w.userId===h.userId})&&x.push(n.Reviewer)}return x},y=function(){var S=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],j=arguments.length>1?arguments[1]:void 0,x=[];return S.forEach(function(Z){var B=l[Z];B.forEach(function(w){x.includes(w)||x.push(w)})}),x.includes(j)};return{getUserRoles:p,checkPermission:y}}},32694:function(M,b,e){"use strict";e.d(b,{u:function(){return B}});var a=e(24454),t=e.n(a),o=e(34485),s=e.n(o),n=e(56592),c=e.n(n),l=e(88205),d=e.n(l),h=e(97375),p=e(65246),y=e(7986),g=e(91290),S=e(53357),j=e(84045),x=e(23707),Z=20,B=function(T){return T[T.labelLeader=0]="labelLeader",T[T.reviewLeader=1]="reviewLeader",T[T.labeler=2]="labeler",T[T.reviewer=3]="reviewer",T[T.reassign=4]="reassign",T}({}),w={show:!1,types:[],tasks:[],initialValues:{}};b.Z=function(){var T=(0,h.useModel)("user"),F=T.user,A=(0,p.x)({list:[],total:0,selectedTaskIds:[]}),L=d()(A,2),O=L[0],$=L[1],P=(0,p.x)({page:1,pageSize:Z}),K=d()(P,2),U=K[0],ee=K[1],le=(0,p.x)(void 0),Q=d()(le,2),G=Q[0],q=Q[1],I=(0,p.x)(w),H=d()(I,2),Y=H[0],D=H[1],_=(0,y.Z)(function(ge,X){return $(function(W){W.list=[]}),(0,g.ZJ)({projectId:(0,x.Oe)(),pageNum:ge||U.page,pageSize:X||U.pageSize})},{manual:!0,debounceWait:100,refreshDeps:[U.page,U.pageSize],onSuccess:function(X){var W=X.taskList,R=X.total;$(function(N){N.list=W,N.total=R,N.selectedTaskIds=[]})},onError:function(){}}),ue=_.loading,be=_.run,ce=(0,y.Z)(function(){return(0,g.NT)((0,x.Oe)())},{manual:!0,debounceWait:100,refreshDeps:[U.page,U.pageSize],onSuccess:function(X){$(function(W){W.projectDetail=X,W.isPm=!!X.managers.find(function(R){return R.id===F.userId})})},onError:function(){}}),he=ce.run,Fe=function(X,W){ee(function(R){R.page=W===R.pageSize?X:1,R.pageSize=W}),be(X,W)},Je=function(X){$(function(W){W.selectedTaskIds=X})},et=function(X){if(O.projectDetail){var W=X||O.selectedTaskIds,R=[],N={},oe=O.list.find(function(me){return me.id===W[0]});if(O.projectDetail.labelTimes>0){var ve;R.push(B.labelLeader),N.labelLeaderId=oe==null||(ve=oe.labelLeader)===null||ve===void 0?void 0:ve.userId}if(O.projectDetail.reviewTimes>0){var te;R.push(B.reviewLeader),N.reviewLeaderId=oe==null||(te=oe.reviewLeader)===null||te===void 0?void 0:te.userId}D(function(me){me.show=!0,me.types=R,me.tasks=O.list.filter(function(we){return W.includes(we.id)}),me.initialValues=N})}},ae=function(X,W){if(O.projectDetail){var R={};if(W.includes(B.labeler)){var N;R.labelerIds=(N=X.labelers)===null||N===void 0?void 0:N.map(function(ve){return ve.userId})}if(W.includes(B.reviewer)){var oe;R.reviewerIds=(oe=X.reviewers)===null||oe===void 0?void 0:oe.map(function(ve){return ve.userId})}D(function(ve){ve.show=!0,ve.types=W,ve.tasks=[X],ve.initialValues=R})}},yt=function(X,W){D(function(R){R.show=!0,R.types=[B.reassign],R.tasks=[X],R.reassignTarget=W})},Pt=function(){D(w)},bt=function(){var ge=c()(t()().mark(function X(W){var R,N,oe,ve,te;return t()().wrap(function(we){for(;;)switch(we.prev=we.next){case 0:if(R=W.keyWords,N=R===void 0?"":R,oe=[],ve=Y.tasks,te=Y.types,ve.forEach(function(xe){var Se=[];te.includes(B.labelLeader)&&Se.push(xe.labelLeader),te.includes(B.reviewLeader)&&Se.push(xe.reviewLeader),te.includes(B.labeler)&&Se.push.apply(Se,s()(xe.labelers)),te.includes(B.reviewer)&&Se.push.apply(Se,s()(xe.reviewers)),Se.forEach(function(ke){ke&&!oe.find(function(ne){return ke.userId===ne.id})&&oe.push({id:ke.userId,name:ke.userName})})}),!N){we.next=8;break}return we.next=7,(0,g.Qm)({name:N});case 7:oe=we.sent.userList.map(function(xe){return{name:xe.name,id:xe.id}});case 8:return we.abrupt("return",oe.map(function(xe){return{label:xe.name,value:xe.id}}));case 9:case"end":return we.stop()}},X)}));return function(W){return ge.apply(this,arguments)}}(),Ct=function(){var ge=c()(t()().mark(function X(W){var R,N,oe,ve,te,me;return t()().wrap(function(xe){for(;;)switch(xe.prev=xe.next){case 0:if(R=Y.initialValues,!(Y.types.includes(B.labelLeader)||Y.types.includes(B.reviewLeader))){xe.next=16;break}if(!(W.labelLeaderId!==R.labelLeaderId||W.reviewLeaderId!==R.reviewLeaderId)){xe.next=14;break}return xe.prev=3,xe.next=6,(0,g.nu)({projectId:((N=O.projectDetail)===null||N===void 0?void 0:N.id)||"",taskIds:Y.tasks.map(function(Se){return Se.id}),labelLeaderId:W.labelLeaderId!==R.labelLeaderId?W.labelLeaderId:void 0,reviewLeaderId:W.reviewLeaderId!==R.reviewLeaderId?W.reviewLeaderId:void 0});case 6:be(),j.ZP.success((0,S._w)("proj.assignModalFinish.assignLeader")),xe.next=14;break;case 10:return xe.prev=10,xe.t0=xe.catch(3),console.error(xe.t0),xe.abrupt("return",Promise.resolve(!1));case 14:xe.next=43;break;case 16:if(ve=Y.tasks[0],!(Y.types.includes(B.labeler)||Y.types.includes(B.reviewer))){xe.next=31;break}return xe.prev=18,xe.next=21,(0,g.zb)(ve.id,W);case 21:be(),j.ZP.success((0,S._w)("proj.assignModalFinish.assignWorker")),xe.next=29;break;case 25:return xe.prev=25,xe.t1=xe.catch(18),console.error(xe.t1),xe.abrupt("return",Promise.resolve(!1));case 29:xe.next=43;break;case 31:if(!(Y.types.includes(B.reassign)&&W.reassigner!==((oe=Y.reassignTarget)===null||oe===void 0?void 0:oe.userId))){xe.next=43;break}return xe.prev=32,xe.next=35,(0,g.xv)(ve.id,{oldWorkerId:((te=Y.reassignTarget)===null||te===void 0?void 0:te.userId)||"",newWorkerId:W.reassigner||"",role:((me=Y.reassignTarget)===null||me===void 0?void 0:me.role)||""});case 35:be(),j.ZP.success((0,S._w)("proj.assignModalFinish.reassignWorker")),xe.next=43;break;case 39:return xe.prev=39,xe.t2=xe.catch(32),console.error(xe.t2),xe.abrupt("return",Promise.resolve(!1));case 43:return Pt(),xe.abrupt("return",Promise.resolve(!1));case 45:case"end":return xe.stop()}},X,null,[[3,10],[18,25],[32,39]])}));return function(W){return ge.apply(this,arguments)}}(),Le=function(){var ge=c()(t()().mark(function X(W){return t()().wrap(function(N){for(;;)switch(N.prev=N.next){case 0:return N.prev=0,N.next=3,(0,g.vo)(W.id);case 3:be(),j.ZP.success((0,S._w)("proj.assignModalFinish.restarTask")),N.next=11;break;case 7:return N.prev=7,N.t0=N.catch(0),console.error(N.t0),N.abrupt("return",Promise.resolve(!1));case 11:case"end":return N.stop()}},X,null,[[0,7]])}));return function(W){return ge.apply(this,arguments)}}(),Ke=function(){var ge=c()(t()().mark(function X(W){return t()().wrap(function(N){for(;;)switch(N.prev=N.next){case 0:return N.prev=0,N.next=3,(0,g.$x)(W.id);case 3:be(),j.ZP.success((0,S._w)("proj.assignModalFinish.commiTask")),N.next=11;break;case 7:return N.prev=7,N.t0=N.catch(0),console.error(N.t0),N.abrupt("return",Promise.resolve(!1));case 11:case"end":return N.stop()}},X,null,[[0,7]])}));return function(W){return ge.apply(this,arguments)}}(),st=function(){var ge=c()(t()().mark(function X(W,R){return t()().wrap(function(oe){for(;;)switch(oe.prev=oe.next){case 0:return oe.prev=0,oe.next=3,(0,g.d5)(W.id,{action:R});case 3:j.ZP.success((0,S._w)("proj.assignModalFinish.changeTaskStatus")),be(),oe.next=11;break;case 7:return oe.prev=7,oe.t0=oe.catch(0),console.error(oe.t0),oe.abrupt("return",Promise.reject(!1));case 11:case"end":return oe.stop()}},X,null,[[0,7]])}));return function(W,R){return ge.apply(this,arguments)}}(),We=function(X){ee(function(W){Object.assign(W,{page:1,pageSize:Z},X)}),he(),be()};return{pageData:O,pageState:U,loading:ue,onPageChange:Fe,onSelectChange:Je,onInitPageState:We,taskDetailModalIndex:G,setTaskDetailModalIndex:q,assignModal:Y,assignLeaders:et,assignWorker:ae,reassignWorker:yt,onCloseAssignModal:Pt,userLintRequest:bt,assignModalFinish:Ct,restartTask:Le,commitReviewTask:Ke,onChangeTaskResult:st}}},54518:function(M,b,e){"use strict";e.d(b,{I:function(){return T}});var a=e(24454),t=e.n(a),o=e(56592),s=e.n(o),n=e(63900),c=e.n(n),l=e(88205),d=e.n(l),h=e(97375),p=e(65246),y=e(7986),g=e(91290),S=e(84045),j=e(53357),x=e(35459),Z=e(39378),B=e.n(Z),w=20,T="proj.editModal.setWorkflowNow",F={show:!1,current:0,initialValues:{basics:{},settings:{},workflowInitNow:[],hadBatchSize:!1,hadReviewer:!1}};b.Z=function(){var A=(0,h.useModel)("user"),L=A.user,O=(0,h.useModel)("Project.auth"),$=O.getUserRoles,P=(0,p.x)({list:[],total:0}),K=d()(P,2),U=K[0],ee=K[1],le=(0,p.x)({page:1,pageSize:w}),Q=d()(le,2),G=Q[0],q=Q[1],I=(0,p.x)(F),H=d()(I,2),Y=H[0],D=H[1],_=(0,y.Z)(function(Le,Ke){return ee(function(st){st.list=[]}),(0,g.eK)({pageNum:Le||G.page,pageSize:Ke||G.pageSize})},{manual:!0,debounceWait:100,refreshDeps:[G.page,G.pageSize],onSuccess:function(Ke){var st=Ke.projectList,We=Ke.total;ee({list:st.map(function(ge){return c()(c()({},ge),{},{userRoles:$(ge)})}),total:We})},onError:function(){}}),ue=_.loading,be=_.run,ce=function(Ke,st){q(function(We){We.page=st===We.pageSize?Ke:1,We.pageSize=st}),be(Ke,st)},he=function(){D(function(Ke){Ke.show=!0})},Fe=function(Ke,st){D(function(We){var ge=Ke.name,X=Ke.description,W=Ke.categories,R=Ke.datasets,N=Ke.preLabel,oe=Ke.managers,ve=Ke.batchSize,te=Ke.reviewTimes,me=Ke.status;We.show=!0,We.targetProject=Ke,We.current=st?1:0,We.initialValues.basics={name:ge,description:X,categories:W,preLabel:N,datasetIds:R.map(function(we){return we.id}),managerIds:oe.map(function(we){return we.id})},We.initialValues.settings=me!==x.tz.Waiting?{batchSize:ve>0?ve:void 0}:{},We.initialValues.workflowInitNow=[(0,j._w)(T)],We.initialValues.hadBatchSize=ve>0,We.initialValues.hadReviewer=te>0})},Je=function(){D(F)},et=function(Ke){D(function(st){Ke===0&&(st.current=0)})},ae=function(Ke){return D(function(st){var We;st.disableInitProject=!((We=Ke.basics.managerIds)!==null&&We!==void 0&&We.includes(L.userId)),st.current=1}),Promise.resolve(!1)},yt=function(){var Le=s()(t()().mark(function Ke(st){var We,ge,X,W,R,N,oe,ve;return t()().wrap(function(me){for(;;)switch(me.prev=me.next){case 0:if(X=!1,W=(We=Y.targetProject)===null||We===void 0?void 0:We.id,W){me.next=18;break}return me.prev=3,me.next=6,(0,g.o9)(st.basics);case 6:R=me.sent,W=R.id,D(function(we){we.targetProject=R}),X=!0,S.ZP.success((0,j._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(N=Y.initialValues.basics,oe=N.description,ve=N.managerIds,!(st.basics.description!==oe||!(0,Z.isEqual)(st.basics.managerIds,ve))){me.next=30;break}return me.prev=20,me.next=23,(0,g.NV)(W,st.basics);case 23:X=!0,S.ZP.success((0,j._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(!((!Y.targetProject||((ge=Y.targetProject)===null||ge===void 0?void 0:ge.status)===x.tz.Waiting)&&st.workflowInitNow&&st.workflowInitNow.length)){me.next=41;break}return me.prev=31,me.next=34,(0,g.mN)(W,{batchSize:st.hadBatchSize?st.settings.batchSize:0,labelTimes:1,reviewTimes:st.hadReviewer?1:0});case 34:X=!0,S.ZP.success((0,j._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 X&&be(),Je(),me.abrupt("return",Promise.resolve(!1));case 44:case"end":return me.stop()}},Ke,null,[[3,13],[20,27],[31,38]])}));return function(st){return Le.apply(this,arguments)}}(),Pt=function(){var Le=s()(t()().mark(function Ke(st,We){return t()().wrap(function(X){for(;;)switch(X.prev=X.next){case 0:return X.prev=0,X.next=3,(0,g.lw)(st.id,{action:We});case 3:S.ZP.success((0,j._w)("proj.projectModalFinish.change")),be(),X.next=11;break;case 7:return X.prev=7,X.t0=X.catch(0),console.error(X.t0),X.abrupt("return",Promise.reject(!1));case 11:case"end":return X.stop()}},Ke,null,[[0,7]])}));return function(st,We){return Le.apply(this,arguments)}}(),bt=function(){var Le=s()(t()().mark(function Ke(st,We){return t()().wrap(function(X){for(;;)switch(X.prev=X.next){case 0:return X.prev=0,X.next=3,(0,g.Cd)(st,{labelName:We==null?void 0:We.labelName});case 3:S.ZP.success((0,j._w)("proj.exportModal.submitSuccess",{name:We==null?void 0:We.labelName})),be(),X.next=10;break;case 7:X.prev=7,X.t0=X.catch(0),console.error(X.t0);case 10:case"end":return X.stop()}},Ke,null,[[0,7]])}));return function(st,We){return Le.apply(this,arguments)}}(),Ct=function(Ke){q(function(st){Object.assign(st,{page:1,pageSize:w},Ke)}),be()};return{pageData:U,pageState:G,loading:ue,onPageChange:ce,onInitPageState:Ct,projectModal:Y,onNewProject:he,onEditProject:Fe,closeProjectModal:Je,onProjectModalCurrentChange:et,projectModalNext:ae,projectModalFinish:yt,onChangeProjectResult:Pt,onExportLabelProject:bt}}},93059:function(M,b,e){"use strict";e.d(b,{D:function(){return L}});var a=e(63900),t=e.n(a),o=e(24454),s=e.n(o),n=e(56592),c=e.n(n),l=e(34485),d=e.n(l),h=e(88205),p=e.n(h),y=e(65246),g=e(7986),S=e(91290),j=e(35459),x=e(58757),Z=e(84045),B=e(9644),w=e(97375),T=e(23707),F=e(53357),A=100,L={Init:0,More:1};b.Z=function(){var O=(0,w.useModel)("user"),$=O.user,P=(0,w.useModel)("global"),K=P.setLoading,U=(0,y.x)({taskRoles:[],categoryList:[],list:[],curIndex:-1,page:1,pageSize:A,total:0,editorMode:B.je.View}),ee=p()(U,2),le=ee[0],Q=ee[1],G=(0,y.x)({status:j.j$.Labeling,taskStatus:j.gZ.Working}),q=p()(G,2),I=q[0],H=q[1],Y=(0,x.useMemo)(function(){return(0,T.BQ)("projectId")||""},[window.location.search]),D=(0,x.useMemo)(function(){return(0,T.BQ)("taskId")||""},[window.location.search]),_=(0,x.useMemo)(function(){var we;return(we=le.taskRoles)===null||we===void 0?void 0:we.find(function(xe){return xe.id===I.roleId})},[le.taskRoles,I.roleId]),ue=(0,x.useMemo)(function(){return _&&$.userId===(_==null?void 0:_.userId)?[_.role]:[]},[$.userId,_]),be=(0,x.useMemo)(function(){var we;return((we=le.list)===null||we===void 0?void 0:we.map(function(xe){var Se=[],ke="";return I.status===j.j$.Labeling&&!xe.labeled?xe.defaultLabels&&xe.defaultLabels.annotations&&Se.push.apply(Se,d()(xe.defaultLabels.annotations)):xe.labels.forEach(function(ne){ke=ne.id,Se.push.apply(Se,d()(ne.annotations))}),{id:xe.id,url:xe.url,urlFullRes:xe.urlFullRes,labelId:ke,objects:Se}}))||[]},[le.list,I.status]),ce=function(){var we=c()(s()().mark(function xe(Se,ke){var ne,re,se,Ee;return s()().wrap(function(fe){for(;;)switch(fe.prev=fe.next){case 0:if(!le.loadingImagesType){fe.next=2;break}return fe.abrupt("return",Promise.reject(null));case 2:return Q(function(_e){_e.loadingImagesType=Se,Se===L.Init&&(_e.list=[])}),fe.prev=3,fe.next=6,(0,S.zO)((0,T.BQ)("taskId")||"",{status:ke.status||I.status,roleId:ke.roleId||I.roleId,pageNum:ke.page,pageSize:le.pageSize});case 6:ne=fe.sent,re=ne.imageList,se=ne.total,Ee=ne.pageNum,Q(function(_e){_e.list=_e.list.concat(re),_e.page=Ee,_e.total=se,_e.loadingImagesType=void 0}),fe.next=17;break;case 13:return fe.prev=13,fe.t0=fe.catch(3),Q(function(_e){_e.loadingImagesType=void 0}),fe.abrupt("return",Promise.reject(fe.t0));case 17:case"end":return fe.stop()}},xe,null,[[3,13]])}));return function(Se,ke){return we.apply(this,arguments)}}(),he=(0,g.Z)(function(){return Promise.all([(0,S.Cb)((0,T.BQ)("taskId")||""),(0,S.Iu)((0,T.BQ)("taskId")||"")])},{manual:!0,debounceWait:60,onSuccess:function(xe){var Se=p()(xe,2),ke=Se[0],ne=Se[1];Q(function(re){re.categoryList=ne.categoryList,re.taskRoles=ke.roleList}),H(function(re){ke.roleList.length&&(!re.roleId||!ke.roleList.find(function(se){return se.id===re.roleId}))&&(re.roleId=ke.roleList[0].id)})},onError:function(){}}),Fe=he.loading,Je=he.run,et=function(){var xe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Promise.all([Je(),ce(L.Init,t()(t()({},xe),{},{page:1}))])},ae=function(){var we=c()(s()().mark(function xe(){return s()().wrap(function(ke){for(;;)switch(ke.prev=ke.next){case 0:if(!(le.list.length0&&(ne.curIndex=ne.curIndex-1)}),ke.abrupt("return",Promise.resolve());case 2:case"end":return ke.stop()}},xe)}));return function(){return we.apply(this,arguments)}}(),Le=function(){var we=c()(s()().mark(function xe(){return s()().wrap(function(ke){for(;;)switch(ke.prev=ke.next){case 0:if(!(le.curIndex=0;return{pageData:le,pageState:I,loading:Fe||le.loadingImagesType===L.Init,loadPageData:et,loadMore:ae,onInitPageState:ve,projectId:Y,taskId:D,curRole:_,userRoles:ue,tabItems:te,labelImages:be,isEditorVisible:me,onStatusTabChange:yt,onRoleChange:Pt,clickItem:bt,onExitEditor:X,onPrevImage:Ct,onNextImage:Le,onLabelSave:W,onReviewResult:R,onReviewAccept:N,onReviewReject:oe,onEnterEdit:Ke,onStartLabel:st,onStartRework:We,onStartReview:ge}}},91290:function(M,b,e){"use strict";e.d(b,{$x:function(){return ue},Cb:function(){return ce},Cd:function(){return F},Iu:function(){return Fe},J9:function(){return L},Jg:function(){return bt},NT:function(){return p},NV:function(){return Z},Qm:function(){return $},ZJ:function(){return K},d5:function(){return D},eK:function(){return d},lw:function(){return w},mN:function(){return j},nQ:function(){return yt},nu:function(){return ee},o9:function(){return g},vo:function(){return H},xv:function(){return q},zO:function(){return et},zb:function(){return Q}});var a=e(24454),t=e.n(a),o=e(63900),s=e.n(o),n=e(56592),c=e.n(n),l=e(97375);function d(Le,Ke){return h.apply(this,arguments)}function h(){return h=c()(t()().mark(function Le(Ke,st){return t()().wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:return ge.abrupt("return",(0,l.request)("/api/v1/label_projects",s()({method:"GET",params:Ke},st||{})));case 1:case"end":return ge.stop()}},Le)})),h.apply(this,arguments)}function p(Le,Ke){return y.apply(this,arguments)}function y(){return y=c()(t()().mark(function Le(Ke,st){return t()().wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:return ge.abrupt("return",(0,l.request)("/api/v1/label_projects/".concat(Ke),s()({method:"GET"},st||{})));case 1:case"end":return ge.stop()}},Le)})),y.apply(this,arguments)}function g(Le,Ke){return S.apply(this,arguments)}function S(){return S=c()(t()().mark(function Le(Ke,st){return t()().wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:return ge.abrupt("return",(0,l.request)("/api/v1/label_projects",s()({method:"POST",data:s()({},Ke)},st||{})));case 1:case"end":return ge.stop()}},Le)})),S.apply(this,arguments)}function j(Le,Ke,st){return x.apply(this,arguments)}function x(){return x=c()(t()().mark(function Le(Ke,st,We){return t()().wrap(function(X){for(;;)switch(X.prev=X.next){case 0:return X.abrupt("return",(0,l.request)("/api/v1/label_project_configs/".concat(Ke),s()({method:"POST",data:s()({},st)},We||{})));case 1:case"end":return X.stop()}},Le)})),x.apply(this,arguments)}function Z(Le,Ke,st){return B.apply(this,arguments)}function B(){return B=c()(t()().mark(function Le(Ke,st,We){return t()().wrap(function(X){for(;;)switch(X.prev=X.next){case 0:return X.abrupt("return",(0,l.request)("/api/v1/label_projects/".concat(Ke),s()({method:"POST",data:s()({},st)},We||{})));case 1:case"end":return X.stop()}},Le)})),B.apply(this,arguments)}function w(Le,Ke,st){return T.apply(this,arguments)}function T(){return T=c()(t()().mark(function Le(Ke,st,We){return t()().wrap(function(X){for(;;)switch(X.prev=X.next){case 0:return X.abrupt("return",(0,l.request)("/api/v1/label_project_qa/".concat(Ke),s()({method:"POST",data:s()({},st)},We||{})));case 1:case"end":return X.stop()}},Le)})),T.apply(this,arguments)}function F(Le,Ke,st){return A.apply(this,arguments)}function A(){return A=c()(t()().mark(function Le(Ke,st,We){return t()().wrap(function(X){for(;;)switch(X.prev=X.next){case 0:return X.abrupt("return",(0,l.request)("/api/v1/label_project_export/".concat(Ke),s()({method:"POST",data:s()({},st)},We||{})));case 1:case"end":return X.stop()}},Le)})),A.apply(this,arguments)}function L(Le,Ke){return O.apply(this,arguments)}function O(){return O=c()(t()().mark(function Le(Ke,st){return t()().wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:return ge.abrupt("return",(0,l.request)("/api/v1/dataset_name_lints",s()({method:"GET",params:Ke},st||{})));case 1:case"end":return ge.stop()}},Le)})),O.apply(this,arguments)}function $(Le,Ke){return P.apply(this,arguments)}function P(){return P=c()(t()().mark(function Le(Ke,st){return t()().wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:return ge.abrupt("return",(0,l.request)("/api/v1/user_name_lints",s()({method:"GET",params:Ke},st||{})));case 1:case"end":return ge.stop()}},Le)})),P.apply(this,arguments)}function K(Le,Ke){return U.apply(this,arguments)}function U(){return U=c()(t()().mark(function Le(Ke,st){return t()().wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:return ge.abrupt("return",(0,l.request)("/api/v1/label_tasks",s()({method:"GET",params:Ke},st||{})));case 1:case"end":return ge.stop()}},Le)})),U.apply(this,arguments)}function ee(Le,Ke){return le.apply(this,arguments)}function le(){return le=c()(t()().mark(function Le(Ke,st){return t()().wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:return ge.abrupt("return",(0,l.request)("/api/v1/label_task_leaders",s()({method:"POST",data:s()({},Ke)},st||{})));case 1:case"end":return ge.stop()}},Le)})),le.apply(this,arguments)}function Q(Le,Ke,st){return G.apply(this,arguments)}function G(){return G=c()(t()().mark(function Le(Ke,st,We){return t()().wrap(function(X){for(;;)switch(X.prev=X.next){case 0:return X.abrupt("return",(0,l.request)("/api/v1/label_task_workers/".concat(Ke),s()({method:"POST",data:s()({},st)},We||{})));case 1:case"end":return X.stop()}},Le)})),G.apply(this,arguments)}function q(Le,Ke,st){return I.apply(this,arguments)}function I(){return I=c()(t()().mark(function Le(Ke,st,We){return t()().wrap(function(X){for(;;)switch(X.prev=X.next){case 0:return X.abrupt("return",(0,l.request)("/api/v1/label_task_reassign/".concat(Ke),s()({method:"POST",data:s()({},st)},We||{})));case 1:case"end":return X.stop()}},Le)})),I.apply(this,arguments)}function H(Le,Ke){return Y.apply(this,arguments)}function Y(){return Y=c()(t()().mark(function Le(Ke,st){return t()().wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:return ge.abrupt("return",(0,l.request)("/api/v1/label_task_restart/".concat(Ke),s()({method:"POST"},st||{})));case 1:case"end":return ge.stop()}},Le)})),Y.apply(this,arguments)}function D(Le,Ke,st){return _.apply(this,arguments)}function _(){return _=c()(t()().mark(function Le(Ke,st,We){return t()().wrap(function(X){for(;;)switch(X.prev=X.next){case 0:return X.abrupt("return",(0,l.request)("/api/v1/label_task_qa/".concat(Ke),s()({method:"POST",data:s()({},st)},We||{})));case 1:case"end":return X.stop()}},Le)})),_.apply(this,arguments)}function ue(Le,Ke){return be.apply(this,arguments)}function be(){return be=c()(t()().mark(function Le(Ke,st){return t()().wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:return ge.abrupt("return",(0,l.request)("/api/v1/label_task_review_commit/".concat(Ke),s()({method:"POST"},st||{})));case 1:case"end":return ge.stop()}},Le)})),be.apply(this,arguments)}function ce(Le,Ke){return he.apply(this,arguments)}function he(){return he=c()(t()().mark(function Le(Ke,st){return t()().wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:return ge.abrupt("return",(0,l.request)("/api/v1/label_task_roles/".concat(Ke),s()({method:"GET"},st||{})));case 1:case"end":return ge.stop()}},Le)})),he.apply(this,arguments)}function Fe(Le,Ke){return Je.apply(this,arguments)}function Je(){return Je=c()(t()().mark(function Le(Ke,st){return t()().wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:return ge.abrupt("return",(0,l.request)("/api/v1/label_task_configs/".concat(Ke),s()({method:"GET"},st||{})));case 1:case"end":return ge.stop()}},Le)})),Je.apply(this,arguments)}function et(Le,Ke,st){return ae.apply(this,arguments)}function ae(){return ae=c()(t()().mark(function Le(Ke,st,We){return t()().wrap(function(X){for(;;)switch(X.prev=X.next){case 0:return X.abrupt("return",(0,l.request)("/api/v1/label_task_images/".concat(Ke),s()({method:"GET",params:st},We||{})));case 1:case"end":return X.stop()}},Le)})),ae.apply(this,arguments)}function yt(Le,Ke,st){return Pt.apply(this,arguments)}function Pt(){return Pt=c()(t()().mark(function Le(Ke,st,We){return t()().wrap(function(X){for(;;)switch(X.prev=X.next){case 0:return X.abrupt("return",(0,l.request)("/api/v1/label_task_image_labels/".concat(Ke),s()({method:"POST",data:s()({},st)},We||{hideCodeErrorMsg:!0})));case 1:case"end":return X.stop()}},Le)})),Pt.apply(this,arguments)}function bt(Le,Ke,st){return Ct.apply(this,arguments)}function Ct(){return Ct=c()(t()().mark(function Le(Ke,st,We){return t()().wrap(function(X){for(;;)switch(X.prev=X.next){case 0:return X.abrupt("return",(0,l.request)("/api/v1/label_task_image_reviews/".concat(Ke),s()({method:"POST",data:s()({},st)},We||{hideCodeErrorMsg:!0})));case 1:case"end":return X.stop()}},Le)})),Ct.apply(this,arguments)}},74595:function(M,b,e){"use strict";e.d(b,{B8:function(){return p},JC:function(){return g},WR:function(){return y},i0:function(){return d},iE:function(){return h}});var a=e(63900),t=e.n(a),o=e(34485),s=e.n(o),n=e(76180),c=e(39378),l=e.n(c),d=function(j){var x=0;return(0,c.includes)(j,"Classification")&&(x=1),(0,c.includes)(j,"Detection")&&(x=2),(0,c.includes)(j,"Segmentation")&&(x=3),(0,c.includes)(j,"Matting")&&(x=4),(0,c.includes)(j,"KeyPoints")&&(x=5),e(14677)("./card_cover_".concat(x,".png"))},h=function(j,x,Z){if(!j||!x||Z)return{colorAplha:n.iP[0],strokeDash:n.JQ[0],lineWidth:n.oM[0]};var B=x.indexOf(j);return{colorAplha:n.iP[B]||n.iP[0],strokeDash:n.JQ[B]||n.JQ[0],lineWidth:n.oM[B]||n.oM[0]}},p=function(j,x){var Z=[],B=[],w=j.filter(function(T){return n.EX.includes(T)});return x===n.JJ.Detection?(Z=[n.zY.showBoxText],B=Z):x===n.JJ.Segmentation?(Z=[n.zY.showSegFilling,n.zY.showSegContour],B=Z):x===n.JJ.Matting?Z=[n.zY.showMattingColorFill]:x===n.JJ.KeyPoints&&(Z=[n.zY.showKeyPointsLine,n.zY.showKeyPointsBox],B=Z),[[].concat(s()(n.EX),s()(Z)),[].concat(s()(w),s()(B))]},y=function(j,x,Z){var B=[];return Z===n.JJ.Matting&&B.push({id:"origin",name:"Origin image",source:n.$j.gt,comparePrecisions:[],confidenceRange:[0,1]}),x.length&&x.forEach(function(w){var T=j.find(function(F){return F.id===w});T&&B.push(t()({},T))}),B},g=function(j,x,Z){var B=[];return x.length?(j.forEach(function(w){Z===n.JJ.Matting&&B.push(t()({},w)),B.push.apply(B,s()(new Array(x.length).fill({}).map(function(T,F){var A=t()({},w);return A.curLabelId=x[F],A})))}),B):j}},17410:function(M,b,e){"use strict";e.d(b,{v_:function(){return Er},yj:function(){return Pr},Uu:function(){return ea},ru:function(){return fr},Zo:function(){return ya},QD:function(){return pr},Yq:function(){return ar},Ze:function(){return En},gr:function(){return wn},jB:function(){return Kr},HE:function(){return vr},ft:function(){return $r},GI:function(){return qr},t:function(){return va},Fv:function(){return aa},vL:function(){return gr},TR:function(){return Oa},VC:function(){return Bn},ef:function(){return Vn},Xn:function(){return zr},oP:function(){return Fn}});var a=e(2657),t=e.n(a),o=e(58757),s=Object.defineProperty,n=Object.getOwnPropertySymbols,c=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,d=(At,tn,yn)=>tn in At?s(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,h=(At,tn)=>{for(var yn in tn||(tn={}))c.call(tn,yn)&&d(At,yn,tn[yn]);if(n)for(var yn of n(tn))l.call(tn,yn)&&d(At,yn,tn[yn]);return At};const p=At=>o.createElement("svg",h({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 34.02 34.02"},At),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 y="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNC4wMiAzNC4wMiI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMzAuMTcgOC45MWExIDEgMCAwIDAgMS0xVjMuODVhMSAxIDAgMCAwLTEtMWgtNC4wNWExIDEgMCAwIDAtMSAxdjFIOC45MXYtMWExIDEgMCAwIDAtMS0xSDMuODVhMSAxIDAgMCAwLTEgMVY3LjlhMSAxIDAgMCAwIDEgMWgxdjE2LjJoLTFhMSAxIDAgMCAwLTEgMXY0LjA1YTEgMSAwIDAgMCAxIDFINy45YTEgMSAwIDAgMCAxLTF2LTFoMTYuMnYxYTEgMSAwIDAgMCAxIDFoNC4wNWExIDEgMCAwIDAgMS0xdi00LjAzYTEgMSAwIDAgMC0xLTFoLTFWOC45MVptLTMgMTYuMmgtMWExIDEgMCAwIDAtMSAxdjFIOC45MXYtMWExIDEgMCAwIDAtMS0xaC0xVjguOTFoMWExIDEgMCAwIDAgMS0xdi0xaDE2LjJ2MWExIDEgMCAwIDAgMSAxaDFaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBmaWxsPSJub25lIiBkPSJNMi44MyAyLjgzaDI4LjM1djI4LjM1SDIuODN6Ii8+PC9zdmc+",g=Object.defineProperty,S=Object.getOwnPropertySymbols,j=Object.prototype.hasOwnProperty,x=Object.prototype.propertyIsEnumerable,Z=(At,tn,yn)=>tn in At?g(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,B=(At,tn)=>{for(var yn in tn||(tn={}))j.call(tn,yn)&&Z(At,yn,tn[yn]);if(S)for(var yn of S(tn))x.call(tn,yn)&&Z(At,yn,tn[yn]);return At};const w=At=>o.createElement("svg",B({viewBox:"0 0 29 29",xmlns:"http://www.w3.org/2000/svg"},At),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 T="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjkgMjkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI3LjMyIDYuMDdhMSAxIDAgMCAwIDEtMVYxLjAxYTEgMSAwIDAgMC0xLTEuMDAxaC00LjA1YTEgMSAwIDAgMC0xIDF2MUg2LjA2di0xYTEgMSAwIDAgMC0xLTFIMWExIDEgMCAwIDAtMSAxdjQuMDVhMSAxIDAgMCAwIDEgMWgxVjIyLjI2SDFhMSAxIDAgMCAwLTEgMXY0LjA1YTEgMSAwIDAgMCAxIDFoNC4wNWExIDEgMCAwIDAgMS0xdi0xaDE2LjJ2MWExIDEgMCAwIDAgMSAxaDQuMDVhMSAxIDAgMCAwIDEtMXYtNC4wM2ExIDEgMCAwIDAtMS0xaC0xVjYuMDdoMS4wMlptLTMgMTYuMmgtMWExIDEgMCAwIDAtMSAxdjFINi4wNnYtMWExIDEgMCAwIDAtMS0xaC0xVjYuMDdoMWExIDEgMCAwIDAgMS0xdi0xaDE2LjJ2MWExIDEgMCAwIDAgMSAxaDFsLjA2IDE2LjJaIi8+PHBhdGggZD0iTTEzLjkyOCAxNy4zMDVoLTMuNDkybC0uNiAxLjcwNEg4LjQwOGwyLjk4OC04LjM1MmgxLjU4NGwyLjk4OCA4LjM1MmgtMS40NGwtLjYtMS43MDRabS0uMzg0LTEuMTE2LTEuMzU2LTMuODc2LTEuMzY4IDMuODc2aDIuNzI0Wm01LjA5MS01LjUydjguMzRoLTEuMzY4di04LjM0aDEuMzY4WiIvPjwvc3ZnPg==",F=Object.defineProperty,A=Object.getOwnPropertySymbols,L=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,$=(At,tn,yn)=>tn in At?F(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,P=(At,tn)=>{for(var yn in tn||(tn={}))L.call(tn,yn)&&$(At,yn,tn[yn]);if(A)for(var yn of A(tn))O.call(tn,yn)&&$(At,yn,tn[yn]);return At};const K=At=>o.createElement("svg",P({viewBox:"0 0 31 31",xmlns:"http://www.w3.org/2000/svg"},At),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 U="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzEgMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMjcuMTI1IDIzLjI1Yy0uNTM0IDAtMS4wNDIuMTA4LTEuNTA1LjMwM2wtNS40NDQtNi4xN2EzLjg1NCAzLjg1NCAwIDAgMC0uMDA4LTMuNzgybDUuNDAzLTYuMTc4Yy40NzcuMjEgMS4wMDIuMzI3IDEuNTU0LjMyN0EzLjg4IDMuODggMCAwIDAgMzEgMy44NzUgMy44OCAzLjg4IDAgMCAwIDI3LjEyNSAwYTMuODggMy44OCAwIDAgMC0zLjY1MyAyLjU4M0g3LjUyOEEzLjg4IDMuODggMCAwIDAgMy44NzUgMCAzLjg4IDMuODggMCAwIDAgMCAzLjg3NWEzLjg4IDMuODggMCAwIDAgMi41ODMgMy42NTN2MTUuOTQ0QTMuODggMy44OCAwIDAgMCAwIDI3LjEyNSAzLjg4IDMuODggMCAwIDAgMy44NzUgMzFhMy44OCAzLjg4IDAgMCAwIDMuNjUzLTIuNTgzaDE1Ljk0NEEzLjg4IDMuODggMCAwIDAgMjcuMTI1IDMxIDMuODggMy44OCAwIDAgMCAzMSAyNy4xMjVhMy44OCAzLjg4IDAgMCAwLTMuODc1LTMuODc1Wk03LjUyOCA1LjE2N2gxNS45NDRjLjA2LjE2OC4xMzIuMzMyLjIxMy40ODhsLTUuNDYgNi4yNDVhMy44NTQgMy44NTQgMCAwIDAtMS40MzMtLjI3NSAzLjg4IDMuODggMCAwIDAtMy44NzUgMy44NzUgMy44OCAzLjg4IDAgMCAwIDMuODc1IDMuODc1Yy41MTEgMCAxLS4xIDEuNDQ4LS4yODJsNS40NzEgNi4yMDJhMy45MzcgMy45MzcgMCAwIDAtLjIzOS41MzhINy41MjhhMy44OTQgMy44OTQgMCAwIDAtMi4zNjEtMi4zNlY3LjUyN2EzLjg5NCAzLjg5NCAwIDAgMCAyLjM2LTIuMzYxWiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGQ9Ik0wIDBoMzF2MzFIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=",ee=Object.defineProperty,le=Object.getOwnPropertySymbols,Q=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable,q=(At,tn,yn)=>tn in At?ee(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,I=(At,tn)=>{for(var yn in tn||(tn={}))Q.call(tn,yn)&&q(At,yn,tn[yn]);if(le)for(var yn of le(tn))G.call(tn,yn)&&q(At,yn,tn[yn]);return At};const H=At=>o.createElement("svg",I({viewBox:"0 0 35 31",xmlns:"http://www.w3.org/2000/svg"},At),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 Y="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzUgMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMjcuMTI1IDIzLjI1Yy0uNTM0IDAtMS4wNDIuMTA4LTEuNTA1LjMwM2wtNS40NDQtNi4xN2EzLjg1NCAzLjg1NCAwIDAgMC0uMDA4LTMuNzgybDUuNDAzLTYuMTc4Yy40NzcuMjEgMS4wMDIuMzI3IDEuNTU0LjMyN0EzLjg4IDMuODggMCAwIDAgMzEgMy44NzUgMy44OCAzLjg4IDAgMCAwIDI3LjEyNSAwYTMuODggMy44OCAwIDAgMC0zLjY1MyAyLjU4M0g3LjUyOEEzLjg4IDMuODggMCAwIDAgMy44NzUgMCAzLjg4IDMuODggMCAwIDAgMCAzLjg3NWEzLjg4IDMuODggMCAwIDAgMi41ODMgMy42NTN2MTUuOTQ0QTMuODggMy44OCAwIDAgMCAwIDI3LjEyNSAzLjg4IDMuODggMCAwIDAgMy44NzUgMzFhMy44OCAzLjg4IDAgMCAwIDMuNjUzLTIuNTgzaDE1Ljk0NEEzLjg4IDMuODggMCAwIDAgMjcuMTI1IDMxIDMuODggMy44OCAwIDAgMCAzMSAyNy4xMjVhMy44OCAzLjg4IDAgMCAwLTMuODc1LTMuODc1Wk03LjUyOCA1LjE2N2gxNS45NDRjLjA2LjE2OC4xMzIuMzMyLjIxMy40ODhsLTUuNDYgNi4yNDVhMy44NTQgMy44NTQgMCAwIDAtMS40MzMtLjI3NSAzLjg4IDMuODggMCAwIDAtMy44NzUgMy44NzUgMy44OCAzLjg4IDAgMCAwIDMuODc1IDMuODc1Yy41MTEgMCAxLS4xIDEuNDQ4LS4yODJsNS40NzEgNi4yMDJhMy45MzcgMy45MzcgMCAwIDAtLjIzOS41MzhINy41MjhhMy44OTQgMy44OTQgMCAwIDAtMi4zNjEtMi4zNlY3LjUyN2EzLjg5NCAzLjg5NCAwIDAgMCAyLjM2LTIuMzYxWiIvPjwvZz48cGF0aCBkPSJNMjguOTI4IDE3LjI5NmgtMy40OTJsLS42IDEuNzA0aC0xLjQyOGwyLjk4OC04LjM1MmgxLjU4NEwzMC45NjggMTloLTEuNDRsLS42LTEuNzA0Wm0tLjM4NC0xLjExNi0xLjM1Ni0zLjg3Ni0xLjM2OCAzLjg3NmgyLjcyNFptNS4wOTEtNS41MlYxOWgtMS4zNjh2LTguMzRoMS4zNjhaIi8+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBkPSJNMCAwaDMxdjMxSDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",D=Object.defineProperty,_=Object.getOwnPropertySymbols,ue=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable,ce=(At,tn,yn)=>tn in At?D(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,he=(At,tn)=>{for(var yn in tn||(tn={}))ue.call(tn,yn)&&ce(At,yn,tn[yn]);if(_)for(var yn of _(tn))be.call(tn,yn)&&ce(At,yn,tn[yn]);return At};const Fe=At=>o.createElement("svg",he({viewBox:"0 0 31 31",xmlns:"http://www.w3.org/2000/svg"},At),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 Je="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzEgMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMjUuODMzIDE1LjVhNS4xNjEgNS4xNjEgMCAwIDAtNC4wOTcgMi4wMjNsLS4wOS0uMDM5YTYuNDU5IDYuNDU5IDAgMCAwLTcuNzYyLTguMjM3bC0uMTE4LS4yMjJhNS4xNiA1LjE2IDAgMSAwLTIuMjk3IDEuMThsLjA5NC4xNzZhNi40NDggNi40NDggMCAwIDAtMS40NjUgOC42NTRsLTIuNDM1IDIuMjc3YTUuMTY3IDUuMTY3IDAgMSAwIDEuODggMS43OGwyLjM3NC0yLjIyYTYuNDUgNi40NSAwIDAgMCA4LjQ0Ni0xLjEyNWwuMzYuMTU0YTUuMTY3IDUuMTY3IDAgMSAwIDUuMTEtNC40MDFaTTcuNzUgNS4xNjdhMi41ODMgMi41ODMgMCAxIDEgNS4xNjcgMCAyLjU4MyAyLjU4MyAwIDAgMS01LjE2NyAwWm0tMi41ODMgMjMuMjVhMi41ODMgMi41ODMgMCAxIDEgMC01LjE2NiAyLjU4MyAyLjU4MyAwIDAgMSAwIDUuMTY2Wk0xNS41IDE5LjM3NWEzLjg3NCAzLjg3NCAwIDAgMS0yLjA2Ny03LjE0OGwuNTI2LS4yOGEzLjg3NiAzLjg3NiAwIDEgMSAxLjU0IDcuNDI4Wm0xMC4zMzMgMy44NzVhMi41ODMgMi41ODMgMCAxIDEgMC01LjE2NSAyLjU4MyAyLjU4MyAwIDAgMSAwIDUuMTY1WiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGQ9Ik0wIDBoMzF2MzFIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=",et=Object.defineProperty,ae=Object.getOwnPropertySymbols,yt=Object.prototype.hasOwnProperty,Pt=Object.prototype.propertyIsEnumerable,bt=(At,tn,yn)=>tn in At?et(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,Ct=(At,tn)=>{for(var yn in tn||(tn={}))yt.call(tn,yn)&&bt(At,yn,tn[yn]);if(ae)for(var yn of ae(tn))Pt.call(tn,yn)&&bt(At,yn,tn[yn]);return At};const Le=At=>o.createElement("svg",Ct({viewBox:"0 0 31 35",xmlns:"http://www.w3.org/2000/svg"},At),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 Ke="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzEgMzUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMjUuODMzIDE5LjVhNS4xNjEgNS4xNjEgMCAwIDAtNC4wOTcgMi4wMjNsLS4wOS0uMDM5YTYuNDU5IDYuNDU5IDAgMCAwLTcuNzYyLTguMjM3bC0uMTE4LS4yMjJhNS4xNiA1LjE2IDAgMSAwLTIuMjk3IDEuMThsLjA5NC4xNzZhNi40NDggNi40NDggMCAwIDAtMS40NjUgOC42NTRsLTIuNDM1IDIuMjc3YTUuMTY3IDUuMTY3IDAgMSAwIDEuODggMS43OGwyLjM3NC0yLjIyYTYuNDUgNi40NSAwIDAgMCA4LjQ0Ni0xLjEyNWwuMzYuMTU0YTUuMTY3IDUuMTY3IDAgMSAwIDUuMTEtNC40MDFaTTcuNzUgOS4xNjdhMi41ODMgMi41ODMgMCAxIDEgNS4xNjcgMCAyLjU4MyAyLjU4MyAwIDAgMS01LjE2NyAwWm0tMi41ODMgMjMuMjVhMi41ODMgMi41ODMgMCAxIDEgMC01LjE2NiAyLjU4MyAyLjU4MyAwIDAgMSAwIDUuMTY2Wk0xNS41IDIzLjM3NWEzLjg3NCAzLjg3NCAwIDAgMS0yLjA2Ny03LjE0OGwuNTI2LS4yOGEzLjg3NiAzLjg3NiAwIDEgMSAxLjU0IDcuNDI4Wm0xMC4zMzMgMy44NzVhMi41ODMgMi41ODMgMCAxIDEgMC01LjE2NSAyLjU4MyAyLjU4MyAwIDAgMSAwIDUuMTY1WiIvPjwvZz48cGF0aCBkPSJNMjQuOTI4IDExLjI5NmgtMy40OTJsLS42IDEuNzA0aC0xLjQyOGwyLjk4OC04LjM1MmgxLjU4NEwyNi45NjggMTNoLTEuNDRsLS42LTEuNzA0Wm0tLjM4NC0xLjExNi0xLjM1Ni0zLjg3Ni0xLjM2OCAzLjg3NmgyLjcyNFptNS4wOTEtNS41MlYxM2gtMS4zNjhWNC42NmgxLjM2OFoiLz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgNCkiIGQ9Ik0wIDBoMzF2MzFIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=",st=Object.defineProperty,We=Object.getOwnPropertySymbols,ge=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable,W=(At,tn,yn)=>tn in At?st(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,R=(At,tn)=>{for(var yn in tn||(tn={}))ge.call(tn,yn)&&W(At,yn,tn[yn]);if(We)for(var yn of We(tn))X.call(tn,yn)&&W(At,yn,tn[yn]);return At};const N=At=>o.createElement("svg",R({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 34 34"},At),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 oe="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNCAzNCI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTcuMjkgMzEuNDlIOS40NGMtMS42OCAwLTIuMjQtLjY2LTEuOTItMi4yOC4zNi0xLjgzLjc3LTMuNjYgMS4xMy01LjQ5YS45LjkgMCAwIDEgMS0uODRoMTUuMzlhLjkxLjkxIDAgMCAxIDEgLjg1Yy4zNyAxLjgzLjc4IDMuNjUgMS4xMyA1LjQ4LjMyIDEuNjItLjI0IDIuMjgtMS45MiAyLjI4LTIuNjMuMDEtNS4yNSAwLTcuOTYgMFpNMTcuMzkgMjAuMDVIOS45MmMtMSAwLTEuMDktLjEyLTEuMDktMS4wNnYtMS43MmExLjM2IDEuMzYgMCAwIDEgMS40NC0xLjQ2aDMuNTFjLjU2IDAgLjc0LS4xOS43My0uNzQgMC0yLjg5LjA1LTUuNzggMC04LjY3QzE0LjQzIDMuOTMgMTYgMi45NCAxNy4zOCAzczIuOTMgMSAyLjg3IDMuNDhjLS4wNyAyLjg0IDAgNS42OCAwIDguNTIgMCAuNjQuMTYuODkuODQuODYgMS4wOS0uMDUgMi4xOSAwIDMuMjkgMGExLjQgMS40IDAgMCAxIDEuNTYgMS41N3YxLjhjMCAuNi0uMzYuODktMSAuODlaIi8+PHBhdGggc3R5bGU9ImZpbGw6bm9uZSIgZD0iTTIuODkgMi44M2gyOC4zNXYyOC4zNUgyLjg5eiIvPjwvc3ZnPg==",ve=Object.defineProperty,te=Object.getOwnPropertySymbols,me=Object.prototype.hasOwnProperty,we=Object.prototype.propertyIsEnumerable,xe=(At,tn,yn)=>tn in At?ve(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,Se=(At,tn)=>{for(var yn in tn||(tn={}))me.call(tn,yn)&&xe(At,yn,tn[yn]);if(te)for(var yn of te(tn))we.call(tn,yn)&&xe(At,yn,tn[yn]);return At};const ke=At=>o.createElement("svg",Se({viewBox:"0 0 33 33",xmlns:"http://www.w3.org/2000/svg"},At),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 ne="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzMgMzMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMTUuMjc4IDMzSDYuNzUzYy0xLjc3IDAtMi40MzUtLjY2NC0yLjEwMy0yLjQzNi40NDMtMS45OTMuODg2LTMuOTg1IDEuMjE4LTUuOTc4LjExLS42NjUuNDQzLS44ODYgMS4xMDctLjg4NmgxNi43MThjLjY2NCAwIC45OTYuMzMyIDEuMTA3Ljg4Ni40NDMgMS45OTMuODg2IDMuOTg1IDEuMjE4IDUuOTc4LjMzMiAxLjc3Mi0uMjIyIDIuNDM2LTIuMTA0IDIuNDM2aC04LjYzNlpNMTUuMzkgMjAuNkg3LjMwNmMtLjk5NiAwLTEuMTA3LS4xMS0xLjEwNy0xLjIxOHYtMS42NmMwLTEuMjE4LjU1NC0xLjc3MiAxLjg4Mi0xLjc3MmgzLjQzMmMuNjY1IDAgLjk5Ny0uMjIxLjg4Ni0uODg2VjUuNDMyYzAtMS42Ni44ODYtMi45OSAyLjMyNS0zLjMyMSAxLjk5My0uNTU0IDMuNzY0Ljk5NiAzLjc2NCAzLjIxdjkuM2MwIDEuNDQgMCAxLjMyOSAxLjMzIDEuMzI5aDMuMjFjMS4xMDcgMCAxLjY2LjU1NCAxLjY2IDEuNjZ2MS45OTRjMCAuNzc1LS4zMzIuOTk2LS45OTYuOTk2SDE1LjM5WiIvPjwvZz48cGF0aCBkPSJNMjYuOTI4IDExLjI5NmgtMy40OTJsLS42IDEuNzA0aC0xLjQyOGwyLjk4OC04LjM1MmgxLjU4NEwyOC45NjggMTNoLTEuNDRsLS42LTEuNzA0Wm0tLjM4NC0xLjExNi0xLjM1Ni0zLjg3Ni0xLjM2OCAzLjg3NmgyLjcyNFptNS4wOTEtNS41MlYxM2gtMS4zNjhWNC42NmgxLjM2OFoiLz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMikiIGQ9Ik0wIDBoMzF2MzFIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=",re=Object.defineProperty,se=Object.getOwnPropertySymbols,Ee=Object.prototype.hasOwnProperty,Re=Object.prototype.propertyIsEnumerable,fe=(At,tn,yn)=>tn in At?re(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,_e=(At,tn)=>{for(var yn in tn||(tn={}))Ee.call(tn,yn)&&fe(At,yn,tn[yn]);if(se)for(var yn of se(tn))Re.call(tn,yn)&&fe(At,yn,tn[yn]);return At};const Pe=At=>o.createElement("svg",_e({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 34.02 34.02"},At),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 ze="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNC4wMiAzNC4wMiI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmZ9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjYuMDggMTguNDdWMTYuNmMwLS41OC4yNy0xLjE5IDEtMS4yNXMxLjA1LjQ1IDEuMDYgMS4yOXYxLjgzaDEuOTJjLjc2IDAgMS4yNS40NiAxLjE5IDEuMDhhMSAxIDAgMCAxLTEuMTggMWgtMS45MXYxLjc0YzAgLjkxLS4zOSAxLjQxLTEuMDYgMS4zOXMtMS0uNDktMS0xLjQydi0xLjcxaC0xLjkxYy0uNzEgMC0xLjIxLS4yOS0xLjIxLTFzLjUtMSAxLjIxLTFaTTEyLjgxIDYuNDdoMS41OWExIDEgMCAwIDEgMSAxIDEgMSAwIDAgMS0xIDEuMDdoLTEuNTh2MS41YzAgLjY4LS4zOCAxLjExLTEuMDcgMS4xYTEgMSAwIDAgMS0xLTEuMDhWOC41NEg5LjI5Yy0uNjggMC0xLjEzLS4zNi0xLjEyLTFzLjQ2LTEgMS4xNC0xaDEuNDRWNS4wMWExIDEgMCAxIDEgMi4wNiAwYy4wMi4zOCAwIC44NyAwIDEuNDZaTTE5LjkzIDI0LjY3Yy4xMS0xLjU2LjMzLTIgMS4wNS0yczEgLjQ0IDEuMTIgMmMuOC4xNyAyLjA5LS4yIDIgMS4yMi0uMDcgMS4xNS0xLjE0Ljg5LTIgLjk1LS4xOC44LjIyIDIuMTEtMS4yIDItMS4xOC0uMDctLjg5LTEuMTktMS0yLS44NC0uMDktMS45MS4yMS0yLTEuMDYtLjA3LS43LjM5LS45NCAyLjAzLTEuMTFaTTMwLjIgNmwtMi41MS0yLjQ5YTIuMTUgMi4xNSAwIDAgMC0zLjA2IDBMMy4yNyAyNC45MmEyLjIgMi4yIDAgMCAwIDAgMy4wOGwyLjUxIDIuNTFhMi4xNyAyLjE3IDAgMCAwIDMuMDYgMEwzMC4yIDkuMDlhMi4xOSAyLjE5IDAgMCAwIDAtMy4wOVpNMjkgOC40N2wtNC4zOSA0LjM5YS45NC45NCAwIDAgMS0xLjM1IDBsLTIuMjgtMi4yOGExIDEgMCAwIDEgMC0xLjM2bDQuMzgtNC4zOWExIDEgMCAwIDEgMS4zNiAwTDI5IDcuMTFhMSAxIDAgMCAxIDAgMS4zNloiLz48L3N2Zz4=",Qe=Object.defineProperty,gt=Object.getOwnPropertySymbols,ut=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable,qe=(At,tn,yn)=>tn in At?Qe(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,Ve=(At,tn)=>{for(var yn in tn||(tn={}))ut.call(tn,yn)&&qe(At,yn,tn[yn]);if(gt)for(var yn of gt(tn))rt.call(tn,yn)&&qe(At,yn,tn[yn]);return At};const tt=At=>o.createElement("svg",Ve({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",height:"1em",width:"1em"},At),o.createElement("path",{d:"M3 11h8V3H3v8zm2-6h4v4H5V5zm8-2v8h8V3h-8zm6 6h-4V5h4v4zM3 21h8v-8H3v8zm2-6h4v4H5v-4zm13-2h-2v3h-3v2h3v3h2v-3h3v-2h-3z"}));var Oe="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgaGVpZ2h0PSIxZW0iIHdpZHRoPSIxZW0iPjxwYXRoIGQ9Ik0zIDExaDhWM0gzdjh6bTItNmg0djRINVY1em04LTJ2OGg4VjNoLTh6bTYgNmgtNFY1aDR2NHpNMyAyMWg4di04SDN2OHptMi02aDR2NEg1di00em0xMy0yaC0ydjNoLTN2MmgzdjNoMnYtM2gzdi0yaC0zeiIvPjwvc3ZnPg==",Me=Object.defineProperty,Ne=Object.getOwnPropertySymbols,Te=Object.prototype.hasOwnProperty,Be=Object.prototype.propertyIsEnumerable,nt=(At,tn,yn)=>tn in At?Me(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,ot=(At,tn)=>{for(var yn in tn||(tn={}))Te.call(tn,yn)&&nt(At,yn,tn[yn]);if(Ne)for(var yn of Ne(tn))Be.call(tn,yn)&&nt(At,yn,tn[yn]);return At};const wt=At=>o.createElement("svg",ot({className:"undo_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:16,height:16},At),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 Et="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Ik01MTIgMzI0LjI2N1YxMzYuNTMzYzAtNi44MjYtMy40MTMtMTMuNjUzLTEwLjI0LTEzLjY1My02LjgyNy0zLjQxMy0xMy42NTMtMy40MTMtMTcuMDY3IDBMNi44MjcgNDMwLjA4QzMuNDEzIDQzMy40OTMgMCA0MzYuOTA3IDAgNDQzLjczM3MzLjQxMyAxMC4yNCA2LjgyNyAxMy42NTRMNDg0LjY5MyA3OTguNzJjNi44MjcgMy40MTMgMTMuNjU0IDMuNDEzIDE3LjA2NyAwIDYuODI3LTMuNDEzIDEwLjI0LTEwLjI0IDEwLjI0LTEzLjY1M1Y1OTcuMzMzYzI0OS4xNzMgMTAuMjQgNDc0LjQ1MyAyMzUuNTIgNDc3Ljg2NyAyOTAuMTM0IDAgMTAuMjQgNi44MjYgMTcuMDY2IDE3LjA2NiAxNy4wNjZTMTAyNCA4OTcuNzA3IDEwMjQgODg3LjQ2N2MtMy40MTMtMjI1LjI4LTE3MC42NjctNTUyLjk2LTUxMi01NjMuMnoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=",nn=Object.defineProperty,$t=Object.getOwnPropertySymbols,fn=Object.prototype.hasOwnProperty,ln=Object.prototype.propertyIsEnumerable,Wt=(At,tn,yn)=>tn in At?nn(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,$e=(At,tn)=>{for(var yn in tn||(tn={}))fn.call(tn,yn)&&Wt(At,yn,tn[yn]);if($t)for(var yn of $t(tn))ln.call(tn,yn)&&Wt(At,yn,tn[yn]);return At};const De=At=>o.createElement("svg",$e({className:"redo_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:16,height:16},At),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 jt="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Im0xMDE3LjE3MyA0MzAuMDgtNDc3Ljg2Ni0zMDcuMmMtNi44MjctMy40MTMtMTMuNjU0LTMuNDEzLTE3LjA2NyAwLTYuODI3IDMuNDEzLTEwLjI0IDYuODI3LTEwLjI0IDEzLjY1M3YxODcuNzM0Yy0zNDEuMzMzIDEwLjI0LTUwOC41ODcgMzM3LjkyLTUxMiA1NjMuMnYzLjQxM2MwIDYuODI3IDYuODI3IDEzLjY1MyAxNy4wNjcgMTMuNjUzczE3LjA2Ni02LjgyNiAxNy4wNjYtMTcuMDY2YzMuNDE0LTUxLjIgMjI4LjY5NC0yNzkuODk0IDQ3Ny44NjctMjkwLjEzNHYxODcuNzM0YzAgNi44MjYgMy40MTMgMTMuNjUzIDEwLjI0IDEzLjY1MyA2LjgyNyAzLjQxMyAxMy42NTMgMy40MTMgMTcuMDY3IDBsNDc3Ljg2Ni0zNDEuMzMzYzMuNDE0LTMuNDE0IDYuODI3LTEwLjI0IDYuODI3LTEzLjY1NHMtMy40MTMtMTAuMjQtNi44MjctMTMuNjUzeiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==",Ft=Object.defineProperty,Xe=Object.getOwnPropertySymbols,at=Object.prototype.hasOwnProperty,Bt=Object.prototype.propertyIsEnumerable,Zt=(At,tn,yn)=>tn in At?Ft(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,Qt=(At,tn)=>{for(var yn in tn||(tn={}))at.call(tn,yn)&&Zt(At,yn,tn[yn]);if(Xe)for(var yn of Xe(tn))Bt.call(tn,yn)&&Zt(At,yn,tn[yn]);return At};const rn=At=>o.createElement("svg",Qt({className:"repeat_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:16,height:16},At),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 hn="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Ik0wIDQ0OGMwIDM1LjQgMjguNiA2NCA2NCA2NHM2NC0yOC42IDY0LTY0YzAtMTA2IDg2LTE5MiAxOTItMTkyaDMyMHY2NGMwIDI1LjggMTUuNiA0OS4yIDM5LjYgNTkuMnM1MS40IDQuNCA2OS44LTEzLjhsMTI4LTEyOGMyNS0yNSAyNS02NS42IDAtOTAuNmwtMTI4LTEyOEM3MzEgLjQgNzAzLjYtNSA2NzkuNiA1UzY0MCAzOC4yIDY0MCA2NHY2NEgzMjBDMTQzLjIgMTI4IDAgMjcxLjIgMCA0NDh6bTEwMjQgMTI4YzAtMzUuNC0yOC42LTY0LTY0LTY0cy02NCAyOC42LTY0IDY0YzAgMTA2LTg2IDE5Mi0xOTIgMTkySDM4NHYtNjRjMC0yNS44LTE1LjYtNDkuMi0zOS42LTU5LjJzLTUxLjQtNC40LTY5LjggMTMuOGwtMTI4IDEyOGMtMjUgMjUtMjUgNjUuNiAwIDkwLjZsMTI4IDEyOGMxOC40IDE4LjQgNDUuOCAyMy44IDY5LjggMTMuOHMzOS42LTMzLjIgMzkuNi01OS4yVjg5NmgzMjBjMTc2LjggMCAzMjAtMTQzLjIgMzIwLTMyMHoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=",on=Object.defineProperty,Rn=Object.getOwnPropertySymbols,zn=Object.prototype.hasOwnProperty,lr=Object.prototype.propertyIsEnumerable,ur=(At,tn,yn)=>tn in At?on(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,zt=(At,tn)=>{for(var yn in tn||(tn={}))zn.call(tn,yn)&&ur(At,yn,tn[yn]);if(Rn)for(var yn of Rn(tn))lr.call(tn,yn)&&ur(At,yn,tn[yn]);return At};const Kt=At=>o.createElement("svg",zt({className:"delete_all_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:16,height:16},At),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 Vt="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Ik04NjQgMTkydjU3Nmg2NFYxOTJjMC03MC40LTU3LjYtMTI4LTEyOC0xMjhIMzUydjY0aDQ0OGMzNS4yIDAgNjQgMjguOCA2NCA2NHoiLz48cGF0aCBkPSJNNjcyIDE5MkgyMjRjLTcwLjQgMC0xMjggNTcuNi0xMjggMTI4djUxMmMwIDcwLjQgNTcuNiAxMjggMTI4IDEyOGg0NDhjNzAuNCAwIDEyOC01Ny42IDEyOC0xMjhWMzIwYzAtNzAuNC01Ny42LTEyOC0xMjgtMTI4em0tNzMuMjM1IDQ4OS41MWMxMi40NDUgMTIuNDQ1IDEyLjQ0NSAzMi44MSAwIDQ1LjI1NXMtMzIuODEgMTIuNDQ1LTQ1LjI1NSAwTDQ0OCA2MjEuMjU1bC0xMDUuNTEgMTA1LjUxYy0xMi40NDUgMTIuNDQ1LTMyLjgxIDEyLjQ0NS00NS4yNTUgMHMtMTIuNDQ1LTMyLjgxIDAtNDUuMjU1TDQwMi43NDUgNTc2bC0xMDUuNTEtMTA1LjUxYy0xMi40NDUtMTIuNDQ1LTEyLjQ0NS0zMi44MSAwLTQ1LjI1NXMzMi44MS0xMi40NDUgNDUuMjU1IDBMNDQ4IDUzMC43NDVsMTA1LjUxLTEwNS41MWMxMi40NDUtMTIuNDQ1IDMyLjgxLTEyLjQ0NSA0NS4yNTUgMHMxMi40NDUgMzIuODEgMCA0NS4yNTVMNDkzLjI1NSA1NzZsMTA1LjUxIDEwNS41MXoiLz48L3N2Zz4=",dn=Object.defineProperty,pn=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,mt=Object.prototype.propertyIsEnumerable,pt=(At,tn,yn)=>tn in At?dn(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,an=(At,tn)=>{for(var yn in tn||(tn={}))en.call(tn,yn)&&pt(At,yn,tn[yn]);if(pn)for(var yn of pn(tn))mt.call(tn,yn)&&pt(At,yn,tn[yn]);return At};const qt=At=>o.createElement("svg",an({viewBox:"0 0 49 49",fill:"none",xmlns:"http://www.w3.org/2000/svg"},At),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 Yt="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDkgNDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMjQuNSA0OUMzOC4wMzEgNDkgNDkgMzguMDMxIDQ5IDI0LjVTMzguMDMxIDAgMjQuNSAwIDAgMTAuOTY5IDAgMjQuNSAxMC45NjkgNDkgMjQuNSA0OVoiIGZpbGw9IiNDQ0RDRkYiLz48cGF0aCBkPSJNNC42NCAxNi4yNzV2MTYuNDVIMjQuNWw5LjkzLTguMjI1LTkuOTMtOC4yMjVINC42NFoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMjQuNSAxNi4yNzVoMTkuODZ2MTYuNDVIMjQuNXYtMTYuNDVaIiBmaWxsPSIjRThFOEU4Ii8+PHBhdGggZD0iTTE1LjA2IDEzLjg3di0zLjI0M0g2LjY0NnYzLjI0MmgyLjU4NnYyMS4yNjJINi42NDZ2My4yNDJoOC40MTR2LTMuMjQyaC0yLjU4NVYxMy44NjloMi41ODVaIiBmaWxsPSIjNUM1QjY4Ii8+PHBhdGggZD0iTTE1LjY5IDI2Ljc1N2g2LjI0N3YyLjg3MUgxNS42OXYtMi44N1oiIGZpbGw9IiMzOTdERUEiLz48cGF0aCBkPSJNMjUuMjQgMjYuNzU3aDYuMjQ3djIuODcxSDI1LjI0di0yLjg3Wk0zNC43OSAyNi43NTdoNi4yNDd2Mi44NzFIMzQuNzl2LTIuODdaIiBmaWxsPSIjMkM1REJGIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGg0OXY0OUgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==",mn=Object.defineProperty,gn=Object.getOwnPropertySymbols,kn=Object.prototype.hasOwnProperty,tr=Object.prototype.propertyIsEnumerable,ft=(At,tn,yn)=>tn in At?mn(At,tn,{enumerable:!0,configurable:!0,writable:!0,value:yn}):At[tn]=yn,vt=(At,tn)=>{for(var yn in tn||(tn={}))kn.call(tn,yn)&&ft(At,yn,tn[yn]);if(gn)for(var yn of gn(tn))tr.call(tn,yn)&&ft(At,yn,tn[yn]);return At};const St=At=>o.createElement("svg",vt({viewBox:"0 0 49 49",fill:"none",xmlns:"http://www.w3.org/2000/svg"},At),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 Mt="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDkgNDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMjQuNSA0OUMzOC4wMzEgNDkgNDkgMzguMDMxIDQ5IDI0LjVTMzguMDMxIDAgMjQuNSAwIDAgMTAuOTY5IDAgMjQuNSAxMC45NjkgNDkgMjQuNSA0OVoiIGZpbGw9IiNDQ0RDRkYiLz48cGF0aCBkPSJNMjQuNSA0MC44NGgtMi4zOTN2LTcuMTc4SDI0LjVsLjgwOCAzLjY0OC0uODA4IDMuNTNaIiBmaWxsPSIjODdBREZGIi8+PHBhdGggZD0iTTI0LjUgMzMuNjYyaDIuMzkzdjcuMTc3SDI0LjV2LTcuMTc3WiIgZmlsbD0iIzE2NURGRiIvPjxwYXRoIGQ9Ik0yNC41IDQyLjUxNGgtNS43NDJWNDAuNkgyNC41bC42NDIuOTU3LS42NDIuOTU3WiIgZmlsbD0iIzE2NURGRiIvPjxwYXRoIGQ9Ik0yNC41IDQwLjZoNS43NDJ2MS45MTRIMjQuNVY0MC42WiIgZmlsbD0iIzBFNTdGRiIvPjxwYXRoIGQ9Ik0yNS43NjUgMjMuMTE4IDI0LjUgMTMuMzJINi4zMTZ2MTguMTgzbDE4LjE4NC41NjMgMS4yNjUtOC45NDhaIiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTI0LjUgMTMuMzJ2MTguNzQ2bDE4LjE4NC0uNTYzVjEzLjMySDI0LjVaIiBmaWxsPSIjRUFFREY0Ii8+PHBhdGggZD0ibTI0LjUgMzMuODk2LjgwOC0xLjE5Ni0uODA4LTEuMTk3SDYuMzE2djIuMzkzSDI0LjVaIiBmaWxsPSIjMTY1REZGIi8+PHBhdGggZD0iTTI0LjUgMzEuNTAzaDE4LjE4NHYyLjM5M0gyNC41di0yLjM5M1oiIGZpbGw9IiMwRTU3RkYiLz48cGF0aCBkPSJtMzYuMTk4IDI0LjQyMy0zLjE2My0xLjA1NCAxLjA1NSAzLjE2My41MjctLjUyNyAxLjkxMiAxLjkxMiAxLjA1NC0xLjA1NS0xLjkxMi0xLjkxMi41MjctLjUyN1oiIGZpbGw9IiM1QzVCNjgiLz48cGF0aCBkPSJtMTkuMDM0IDE5LjMgMy40NzQuNjA4IDEuOTkyIDIuNTQ4IDEuNDggMi43My0xLjQ4IDMuNTE3LTUuNDY2LTMuMTU2VjE5LjNaIiBmaWxsPSIjODdBREZGIi8+PHBhdGggZD0iTTI5Ljk2NiAyNS41NDd2LTYuMzExbC0zLjM5OS43ODYtMi4wNjcgMi40MzR2Ni4yNDdsNS40NjYtMy4xNTZaIiBmaWxsPSIjMTY1REZGIi8+PHBhdGggZD0ibTE5LjAzNCAxOS4zIDUuNDY2IDMuMTU2IDEuMjQxLTMuMzNMMjQuNSAxNi4wOGwtNS40NjYgMy4yMloiIGZpbGw9IiNDMUQ0RkQiLz48cGF0aCBkPSJNMjQuNSAxNi4wOHY2LjM3Nmw1LjQ2Ni0zLjIyTDI0LjUgMTYuMDhaIiBmaWxsPSIjQTlDM0ZDIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGg0OXY0OUgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==",Nt,sn,Xt,Cn,Ln,hr,qn,Nn=function(At){return At.showAnnotations="showAnnotations",At.showAllCategory="showAllCategory",At.showImgDesc="showImgDesc",At.showBoxText="showBoxText",At.showSegFilling="showSegFilling",At.showSegContour="showSegContour",At.showMattingColorFill="showMattingColorFill",At.showKeyPointsLine="showKeyPointsLine",At.showKeyPointsBox="showKeyPointsBox",At}({}),$r=function(At){return At.Waiting="waiting",At.Running="running",At.Success="success",At.Failed="failed",At}({}),gr=.1,aa=20,Pr=.5,Fn=.1,En=function(At){return At.Rectangle="rect",At.Polygon="polygon",At.Mask="mask",At.Skeleton="coco_keypoints_17",At.Classification="classification",At}({}),wn=function(At){return At.Custom="Custom",At.Classification="Classification",At.Rectangle="Rectangle",At.Polygon="Polygon",At.Skeleton="Skeleton",At.Mask="Mask",At.Matting="Matting",At.Point="Point",At}({}),ar=function(At){return At.Rect="rect",At.Circle="circle",At.Polygon="polygon",At.None="none",At}({}),fr=function(At){return At.Drag="Drag",At.Rectangle="Rect",At.Polygon="Polygon",At.Skeleton="Skeleton",At.Mask="Mask",At}({}),Kr=function(At){return At.PenAdd="PenAdd",At.PenErase="PenErase",At.BrushAdd="BrushAdd",At.BrushErase="BrushErase",At.AutoSegmentByBox="AutoSegmentByBox",At.AutoSegmentByClick="AutoSegmentByClick",At.AutoSegmentByStroke="AutoSegmentByStroke",At.AutoSegmentEverything="AutoSegmentEverything",At.AutoEdgeStitching="AutoEdgeStitching",At.PositiveVisualPrompt="PositiveVisualPrompt",At.NegativeVisualPrompt="NegativeVisualPrompt",At}({}),ea=function(At){return At.SmartAnnotation="SmartAnnotation",At.Undo="Undo",At.Redo="Redo",At.RepeatPrevious="RepeatPrevious",At.DeleteAll="DeleteAll",At}({}),ya=(Nt={},t()(Nt,fr.Drag,wn.Custom),t()(Nt,fr.Rectangle,wn.Rectangle),t()(Nt,fr.Polygon,wn.Polygon),t()(Nt,fr.Skeleton,wn.Skeleton),t()(Nt,fr.Mask,wn.Mask),Nt),vr=function(At){return At.Detection="ai_detection",At.IVP="ivp",At.SegmentByPolygon="ai_polygon",At.SegmentByMask="ai_segmentation_mask",At.Pose="ai_pose",At.MaskEdgeStitching="ai_mask_edge_stitching",At.SegmentEverything="ai_segment_everything",At}({}),zr=(sn={},t()(sn,fr.Drag,[]),t()(sn,fr.Rectangle,[vr.Detection,vr.IVP]),t()(sn,fr.Polygon,[vr.SegmentByPolygon]),t()(sn,fr.Mask,[vr.SegmentByMask]),t()(sn,fr.Skeleton,[vr.Pose]),sn),Oa=(Xt={},t()(Xt,vr.Detection,{name:"Grounding-DINO",icon:qt,description:"DDSAnnotator.smart.gdino.desc",hightlight:!1}),t()(Xt,vr.IVP,{name:"iVP",icon:St,description:"DDSAnnotator.smart.ivp.desc",hightlight:!0}),Xt),va=(Cn={},t()(Cn,En.Rectangle,fr.Rectangle),t()(Cn,En.Polygon,fr.Polygon),t()(Cn,En.Mask,fr.Mask),t()(Cn,En.Skeleton,fr.Skeleton),Cn),Vn=(Ln={},t()(Ln,wn.Rectangle,p),t()(Ln,wn.Skeleton,Fe),t()(Ln,wn.Polygon,K),t()(Ln,wn.Mask,N),t()(Ln,wn.Matting,N),t()(Ln,wn.Point,tt),t()(Ln,wn.Custom,tt),t()(Ln,wn.Classification,tt),Ln),Bn=(hr={},t()(hr,wn.Rectangle,w),t()(hr,wn.Skeleton,Le),t()(hr,wn.Polygon,H),t()(hr,wn.Mask,ke),hr),pr=(qn={},t()(qn,ea.SmartAnnotation,Pe),t()(qn,ea.Undo,wt),t()(qn,ea.Redo,De),t()(qn,ea.RepeatPrevious,rn),t()(qn,ea.DeleteAll,Kt),qn),qr=function(At){return At[At.noLabeled=0]="noLabeled",At[At.labeledNotVisible=1]="labeledNotVisible",At[At.labeledVisible=2]="labeledVisible",At}({}),Er={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(M,b,e){"use strict";e.d(b,{Bt:function(){return n},CJ:function(){return c},XQ:function(){return s},lz:function(){return l},mh:function(){return a},rl:function(){return t},s_:function(){return o}});var a={DEFAULT:0,CREATING:0,SHAPE:.4,FOCUS:.6,ACTIVE:.2,CTRL_TO_SELECT:.1,OTHER:0},t={DEFAULT:1,CREATING:1,CREATING_LINE:.8,FOCUS:1,ACTIVE:1,OTHER:.3},o={CREATING:.7,FOCUS:.7,DEFAULT:.5},s={CREATING:"#fff"},n={CREATING:"transparent",CREATING_POSITIVE:"#2876d4",CREATING_NEGATIVE:"#e91d00"},c={POSITIVE:"rgba(1, 128, 0, 1)",NEGATIVE:"rgba(255, 3, 0, 1)"},l={POSITIVE:"rgba(1, 128, 0, 0.6)",NEGATIVE:"rgba(255, 3, 0, 0.6)"}},9644:function(M,b,e){"use strict";e.d(b,{kl:function(){return nc},j5:function(){return hc},D5:function(){return Qu},je:function(){return U.je}});var a=e(63900),t=e.n(a),o=e(88205),s=e.n(o),n=e(58757),c=e(62109),l=e(73267),d=e(65246),h=e(34485),p=e.n(h),y=e(17410),g=e(39378);function S(Ue){var ye=Ue.isOldMode,je=Ue.categories,In=Ue.setCategories,It=Ue.drawData,Tn=Ue.setDrawData,jn=Ue.editState,Mn=Ue.updateObjectWithoutHistory,Wn=Ue.updateAllObjectWithoutHistory,er=(0,n.useState)(void 0),sr=s()(er,2),Jn=sr[0],Pn=sr[1],Sa=It.objectList,Fr=(0,n.useMemo)(function(){if(ye)return je;if(It.objectList[It.activeObjectIndex]||It.selectedTool!==y.ru.Drag){var Mr=It.objectList[It.activeObjectIndex]?Object.keys(y.Zo).find(function(mr){return It.objectList[It.activeObjectIndex].type===y.Zo[mr]}):It.selectedTool,or=Object.keys(y.t).find(function(mr){return Mr===y.t[mr]});return je.filter(function(mr){return mr.labelType===or})}return[]},[je,It.objectList,It.activeObjectIndex,It.selectedTool]),Xn=(0,n.useMemo)(function(){return(je==null?void 0:je.filter(function(Mr){return Mr.labelType===y.Ze.Classification}))||[]},[je]),Br=(0,n.useCallback)(function(Mr){je.find(function(or){return or.name===Mr})||!In||In(function(or){return[].concat(p()(or),[{id:Mr,name:Mr}])})},[je]),Tr=(0,n.useCallback)(function(Mr,or){var mr=t()({},It.objectList[Mr]);mr.hidden=or,Mn(mr,Mr)},[It.objectList]),ra=(0,n.useCallback)(function(Mr,or){var mr=It.objectList.map(function(Lr){var _r,Ha=t()({},Lr);return((_r=je.find(function(sa){return sa.id===Lr.labelId}))===null||_r===void 0?void 0:_r.name)===Mr&&(Ha.hidden=or),Ha});Wn(mr)},[It.objectList]),Yr=function(or,mr){var Lr=t()({},It.objectList[jn.focusObjectIndex]);switch(or){case y.Yq.Rect:{Lr.rect&&(Lr.rect.visible=mr,Mn(Lr,jn.focusObjectIndex));break}case y.Yq.Polygon:{Lr.polygon&&(Lr.polygon.visible=mr,Mn(Lr,jn.focusObjectIndex));break}}},ca=(0,n.useCallback)(function(Mr,or){var mr,Lr,_r=(0,g.cloneDeep)(It.objectList[It.activeObjectIndex]),Ha=(mr=_r.keypoints)===null||mr===void 0||(Lr=mr.points)===null||Lr===void 0?void 0:Lr[Mr];Ha&&(Ha.visible=or),Mn(_r,It.activeObjectIndex)},[It.activeObjectIndex,It.objectList]),Dr=(0,n.useCallback)(function(Mr){Tn(function(or){Mr!==or.activeClassName&&(or.activeClassName=Mr)})},[]);return(0,n.useEffect)(function(){var Mr;if(!(It.activeObjectIndex<0)){var or=((Mr=je.find(function(mr){return mr.id===It.objectList[It.activeObjectIndex].labelId}))===null||Mr===void 0?void 0:Mr.name)||"";or!==It.activeClassName&&Dr(or)}},[It.activeObjectIndex]),{labelOptions:Fr,classificationOptions:Xn,aiLabels:Jn,setAiLabels:Pn,curObjects:Sa,onChangeObjectHidden:Tr,onChangeCategoryHidden:ra,onChangeElementVisible:Yr,onChangePointVisible:ca,onChangeActiveClass:Dr,onCreateCategory:Br}}var j=e(24454),x=e.n(j),Z=e(56592),B=e.n(Z),w=e(46134),T=e(84045),F=function(){var Ue=B()(x()().mark(function ye(je){return x()().wrap(function(It){for(;;)switch(It.prev=It.next){case 0:return It.abrupt("return",new Promise(function(Tn,jn){window.URL=window.URL||window.webkitURL;var Mn=new XMLHttpRequest;Mn.open("get",je,!0),Mn.responseType="blob",Mn.setRequestHeader("If-Modified-Since","0"),Mn.send(),Mn.onload=function(){if(this.status===200){var Wn=this.response,er=new FileReader;er.onloadend=function(sr){var Jn,Pn=(Jn=sr.target)===null||Jn===void 0?void 0:Jn.result;Tn(Pn)},er.onerror=function(sr){jn(sr)},er.readAsDataURL(Wn)}},Mn.onerror=function(Wn){jn(Wn)}}));case 1:case"end":return It.stop()}},ye)}));return function(je){return Ue.apply(this,arguments)}}(),A=function(ye){var je=/^data:image\/(png|jpe?g|gif|svg|webp);base64,/i;return je.test(ye)},L=function(ye){var je=/^blob:/i;return je.test(ye)},O=function(ye){var je=/^https?:\/\//i;return je.test(ye)},$=function(ye){return new Promise(function(je,In){var It=new FileReader;It.onload=function(Tn){var jn;je((jn=Tn.target)===null||jn===void 0?void 0:jn.result)},It.readAsDataURL(ye),It.onerror=function(Tn){In(Tn)}})},P=e(53357),K=e(97375),U=e(50910),ee=e(67761),le;(function(Ue){})(le||(le={}));function Q(Ue,ye,je){return G.apply(this,arguments)}function G(){return G=B()(x()().mark(function Ue(ye,je,In){return x()().wrap(function(Tn){for(;;)switch(Tn.prev=Tn.next){case 0:return Tn.abrupt("return",(0,K.request)("".concat("https://api.deepdataspace.com","/tasks/").concat(ye),t()({method:"POST",data:t()({},je)},In||{hideCodeErrorMsg:!0})));case 1:case"end":return Tn.stop()}},Ue)})),G.apply(this,arguments)}function q(Ue,ye){return(0,K.request)("".concat("https://api.deepdataspace.com","/task_statuses/").concat(Ue),t()({method:"GET"},ye||{}))}function I(Ue,ye){return(0,K.request)("".concat("https://api.deepdataspace.com","/mask_task_statuses/").concat(Ue),t()({method:"GET"},ye||{}))}function H(Ue,ye){return Y.apply(this,arguments)}function Y(){return Y=B()(x()().mark(function Ue(ye,je){var In,It,Tn,jn,Mn,Wn=arguments;return x()().wrap(function(sr){for(;;)switch(sr.prev=sr.next){case 0:In=Wn.length>2&&Wn[2]!==void 0?Wn[2]:5e3,It=Wn.length>3&&Wn[3]!==void 0?Wn[3]:1e3,Tn=0;case 3:if(!(Tn=ia?U.TK.Checked:U.TK.Unchecked,conf:Za.normalizedScore,color:ra(er.latestLabelId,!0)}}).reverse(),Wn(function(Za){Za.isBatchEditing=!0,Za.limitConf=ia;var uo=Za.objectList.filter(function(Nr){return(Nr==null?void 0:Nr.status)===U.TK.Commited});Za.objectList=[].concat(p()(uo),p()(Ea)),Za.creatingObject&&Za.objectList[Za.activeObjectIndex]&&(Za.creatingObject=t()({},Za.objectList[Za.activeObjectIndex]))}),T.ZP.success(sa("DDSAnnotator.smart.msg.success"))),Va.next=11;break;case 8:Va.prev=8,Va.t0=Va.catch(0),T.ZP.error(sa("DDSAnnotator.smart.msg.error"));case 11:return Va.prev=11,k(!1),Va.finish(11);case 14:case"end":return Va.stop()}},Ir,null,[[0,8,11,14]])}));return function(nr,Ar){return $a.apply(this,arguments)}}(),dt=function(Ir){var nr=Ir.map(function(Ar){var xa=Ar.type,Ta=Ar.isPositive,ba=Ar.point,ia=Ar.rect,Ea=Ar.stroke,ha=Ar.radius,Va=Ar.polygons,Za={type:xa,isPositive:Ta};if(ia){var uo=(0,w.kh)(ia),Nr=uo.xmax,Co=uo.xmin,da=uo.ymax,co=uo.ymin,so=(0,w.AR)([Co,co],Jn,Pn),Mi=(0,w.AR)([Nr,da],Jn,Pn);Object.assign(Za,{rect:[so.x,so.y,Mi.x,Mi.y]})}if(ba){var ho=(0,w.AR)([ba.x,ba.y],Jn,Pn);Object.assign(Za,{point:[ho.x,ho.y]})}if(Ea){var zo=Ea.reduce(function(li,di){var os=di.x,Jl=di.y,is=(0,w.AR)([os,Jl],Jn,Pn);return li.concat([is.x,is.y])},[]);Object.assign(Za,{stroke:zo,radius:ha})}if(Va){var pi=Va.map(function(li){for(var di=[],os=0;os=Ea?U.TK.Checked:U.TK.Unchecked,conf:uo.score,color:ra(er.latestLabelId,!0)}}).reverse(),Wn(function(uo){uo.isBatchEditing=!0,uo.limitConf=Ea;var Nr=uo.objectList.filter(function(Co){return Co.status===U.TK.Commited});uo.objectList=[].concat(p()(Nr),p()(ha)),uo.creatingObject&&uo.objectList[uo.activeObjectIndex]&&(uo.creatingObject=t()({},uo.objectList[uo.activeObjectIndex])),uo.prompt.promptsQueue=Ar,uo.prompt.creatingPrompt=void 0}),T.ZP.success(sa("DDSAnnotator.smart.msg.success"))),Za.next=28;break;case 24:Za.prev=24,Za.t0=Za.catch(6),T.ZP.error(sa("DDSAnnotator.smart.msg.error")),Wn(function(uo){uo.prompt.creatingPrompt=void 0});case 28:return Za.prev=28,k(!1),Za.finish(28);case 31:case"end":return Za.stop()}},Ir,null,[[6,24,28,31]])}));return function(nr,Ar){return $a.apply(this,arguments)}}(),Jt=function(){var Ir=(0,w.X_)(Sa.current,Pn,Fr),nr=Ir.xmin,Ar=Ir.ymin,xa=Ir.xmax,Ta=Ir.ymax,ba=[0,0,Jn.width,Jn.height];if(xa>0&&Ta>0){var ia=(0,w.Ap)({x:nr,y:Ar},Pn,Jn),Ea=ia.x,ha=ia.y,Va=(0,w.Ap)({x:xa,y:Ta},Pn,Jn),Za=Va.x,uo=Va.y;ba=[Math.round(Ea),Math.round(ha),Math.round(Za),Math.round(uo)]}return ba},Gt=function(){var $a=B()(x()().mark(function Ir(nr,Ar,xa){var Ta,ba,ia,Ea,ha,Va,Za,uo;return x()().wrap(function(Co){for(;;)switch(Co.prev=Co.next){case 0:if(xa){Co.next=2;break}return Co.abrupt("return");case 2:return Ta={image:er.imageCacheIdForPolygon?"image_id://".concat(er.imageCacheIdForPolygon):Ar,density:nr.pointResolution,area:Jt(),prompts:dt(xa||[])},nr.prompt.sessionId&&Object.assign(Ta,{sessionId:nr.prompt.sessionId}),Co.prev=4,k(!0),Co.next=8,D(y.HE.SegmentByPolygon,Ta);case 8:ba=Co.sent,ba&&(ia=ba.image,Ea=ba.polygons,ha=ba.sessionId,Ea&&Ea.length>0&&(Za=Ea.filter(function(da){return da.length>=6}).map(function(da){for(var co=[],so=0;so-1&&ha[nr.activeObjectIndex]&&nr.creatingObject&&(ha[nr.activeObjectIndex]=t()(t()({},ha[nr.activeObjectIndex]),nr.creatingObject)),Va=ha.filter(function(so){return so.type===y.gr.Skeleton&&so.status===U.TK.Checked}),Va.length>0&&(Za=Va.map(function(so){return{categoryName:xa,points:so.keypoints?(0,w.yn)(so.keypoints.points,Jn,Pn).points:void 0,boundingBox:so.rect?(0,w.kq)(so.rect,Pn):void 0}}),Object.assign(Ea,{objects:Za}))),co.prev=3,k(!0),co.next=7,D(y.HE.Pose,Ea);case 7:uo=co.sent,uo&&(Nr=uo.objects,Nr&&Nr.length>0&&(Co=Nr.map(function(so){var Mi=so.boundingBox,ho=so.points,zo=so.conf,pi={labelId:er.latestLabelId,color:ra(er.latestLabelId),type:y.gr.Skeleton,hidden:!1,conf:zo,status:U.TK.Checked};if(Mi){var li=(0,w.cO)(Mi,Pn);Object.assign(pi,{rect:t()({visible:!0},li)})}if(ho&&Ta&&ia&&ba){var di=(0,w.el)(ho,ba,ia,Jn,Pn);Object.assign(pi,{keypoints:{points:di,lines:Ta}})}return pi}),Wn(function(so){so.isBatchEditing||(so.isBatchEditing=!0);var Mi=so.objectList.filter(function(ho){return ho.status===U.TK.Commited});so.objectList=[].concat(p()(Mi),p()(Co)),so.creatingObject&&so.objectList[so.activeObjectIndex]&&(so.creatingObject=t()({},so.objectList[so.activeObjectIndex]))}),T.ZP.success(sa("DDSAnnotator.smart.msg.success")))),co.next=14;break;case 11:co.prev=11,co.t0=co.catch(3),T.ZP.error(sa("DDSAnnotator.smart.msg.error"));case 14:return co.prev=14,k(!1),co.finish(14);case 17:case"end":return co.stop()}},Ir,null,[[3,11,14,17]])}));return function(nr,Ar,xa){return $a.apply(this,arguments)}}(),On=function(){var $a=B()(x()().mark(function Ir(nr,Ar){var xa,Ta,ba,ia,Ea,ha,Va,Za,uo,Nr,Co,da,co,so;return x()().wrap(function(ho){for(;;)switch(ho.prev=ho.next){case 0:if(!(!((xa=nr.prompt.creatingPrompt)!==null&&xa!==void 0&&xa.stroke)||!((Ta=nr.prompt.creatingPrompt)!==null&&Ta!==void 0&&Ta.radius))){ho.next=2;break}return ho.abrupt("return");case 2:if(ba=nr.prompt.creatingPrompt,ia=ba.stroke,Ea=ba.radius,ha=nr.objectList.filter(function(zo){return zo.type===y.gr.Mask}),!(ha.length<2)){ho.next=8;break}return T.ZP.error("To ensure valid results when using intelligent edge stitching, make sure to use at least 2 mask objects."),Mn(function(zo){zo.prompt.creatingPrompt=void 0}),ho.abrupt("return");case 8:return Va=ha.map(function(zo){var pi,li=(0,ee.G9)(Pn,Jn,[],zo.maskCanvasElement)||[],di=((pi=Tr.find(function(os){return os.id===zo.labelId}))===null||pi===void 0?void 0:pi.name)||"";return{maskRle:li,categoryName:di}}),Za=ia.reduce(function(zo,pi){var li=pi.x,di=pi.y,os=(0,w.AR)([li,di],Jn,Pn);return zo.concat([os.x,os.y])},[]),uo={rleList:Va,stroke:Za,radius:Ea},er.imageCacheId?Object.assign(uo,{imageId:er.imageCacheId}):Object.assign(uo,{image:Ar}),Object.assign(uo,{image:Ar}),ho.prev=13,k(!0),ho.next=17,D(y.HE.MaskEdgeStitching,uo);case 17:Co=ho.sent,Co&&((Nr=Co.rleList)===null||Nr===void 0?void 0:Nr.length)>0&&(da=Co.rleList.map(function(zo){var pi,li=((pi=Tr.find(function(os){return os.name===zo.categoryName}))===null||pi===void 0?void 0:pi.id)||"",di=ra(li);return{type:y.gr.Mask,hidden:!1,labelId:li,maskRle:zo.maskRle,maskCanvasElement:(0,ee.ei)(zo.maskRle,Jn,di),conf:1,status:U.TK.Commited,color:di}}),co=nr.objectList.filter(function(zo){return zo.type!==y.gr.Mask}),so=[].concat(p()(co),p()(da)),Xn(so),T.ZP.success(sa("DDSAnnotator.smart.msg.success"))),ho.next=24;break;case 21:ho.prev=21,ho.t0=ho.catch(13),T.ZP.error(sa("DDSAnnotator.smart.msg.error"));case 24:return ho.prev=24,k(!1),Mn(function(zo){zo.prompt.creatingPrompt=void 0}),ho.finish(24);case 28:case"end":return ho.stop()}},Ir,null,[[13,21,24,28]])}));return function(nr,Ar){return $a.apply(this,arguments)}}(),Zn=function(){var $a=B()(x()().mark(function Ir(nr,Ar){var xa,Ta,ba,ia;return x()().wrap(function(ha){for(;;)switch(ha.prev=ha.next){case 0:return xa=t()({},Ar),er.imageCacheId?Object.assign(xa,{imageId:er.imageCacheId}):Object.assign(xa,{image:nr}),ha.prev=2,k(!0),ha.next=6,D(y.HE.SegmentEverything,xa);case 6:ba=ha.sent,ba&&((Ta=ba.rleList)===null||Ta===void 0?void 0:Ta.length)>0&&(sr(function(Va){Va.annotsDisplayOptions.colorByCategory=!1}),ia=ba.rleList.map(function(Va){var Za=ra(er.latestLabelId);return{type:y.gr.Mask,hidden:!1,labelId:er.latestLabelId,maskRle:Va.maskRle,maskCanvasElement:(0,ee.ei)(Va.maskRle,Jn,Za),conf:1,status:U.TK.Checked,color:Za}}),Wn(function(Va){Va.objectList=ia,Va.isBatchEditing=!0}),T.ZP.success(sa("DDSAnnotator.smart.msg.success"))),ha.next=13;break;case 10:ha.prev=10,ha.t0=ha.catch(2),T.ZP.error(sa("DDSAnnotator.smart.msg.error"));case 13:return ha.prev=13,k(!1),ha.finish(13);case 16:case"end":return ha.stop()}},Ir,null,[[2,10,13,16]])}));return function(nr,Ar){return $a.apply(this,arguments)}}(),Gr=(0,n.useCallback)(function(){var $a=B()(x()().mark(function Ir(nr){var Ar,xa,Ta,ba,ia,Ea,ha,Va,Za;return x()().wrap(function(Nr){for(;;)switch(Nr.prev=Nr.next){case 0:if(Ar=nr.type,xa=nr.drawData,Ta=nr.aiLabels,ba=nr.promptsQueue,ia=nr.segmentEverythingParams,!pe){Nr.next=3;break}return Nr.abrupt("return");case 3:if(Ea=xa||jn,!(!Ta&&(Ea.selectedTool===y.ru.Skeleton||Ea.selectedTool===y.ru.Rectangle&&Ea.selectedModel===y.HE.Detection))){Nr.next=7;break}return T.ZP.warning(sa("DDSAnnotator.smart.msg.labelRequired")),Nr.abrupt("return");case 7:if(ha=T.ZP.loading(sa("DDSAnnotator.smart.msg.loading"),1e5),Va="".concat(In==null?void 0:In.url),Nr.prev=9,Ae(!0),A(Va)){Nr.next=15;break}return Nr.next=14,F(Va);case 14:Va=Nr.sent;case 15:Nr.next=20;break;case 17:Nr.prev=17,Nr.t0=Nr.catch(9),T.ZP.error("ImageToBase64 Error:",Nr.t0);case 20:Nr.prev=20,Ae(!0),Za=Ar||y.Zo[Ea.selectedTool],Nr.t1=Za,Nr.next=Nr.t1===y.gr.Rectangle?26:Nr.t1===y.gr.Skeleton?34:Nr.t1===y.gr.Polygon?37:Nr.t1===y.gr.Mask?40:53;break;case 26:if(Ea.selectedModel!==y.HE.Detection){Nr.next=31;break}return Nr.next=29,Ge(Va,Ta||"");case 29:Nr.next=33;break;case 31:return Nr.next=33,Ht(Va,ba);case 33:return Nr.abrupt("break",55);case 34:return Nr.next=36,rr(Ea,Va,Ta||"");case 36:return Nr.abrupt("break",55);case 37:return Nr.next=39,Gt(Ea,Va,ba);case 39:return Nr.abrupt("break",55);case 40:if(Ea.selectedSubTool!==y.jB.AutoEdgeStitching){Nr.next=45;break}return Nr.next=43,On(Ea,Va);case 43:Nr.next=52;break;case 45:if(Ea.selectedSubTool!==y.jB.AutoSegmentEverything){Nr.next=50;break}return Nr.next=48,Zn(Va,ia);case 48:Nr.next=52;break;case 50:return Nr.next=52,cn(Ea,Va,ba);case 52:return Nr.abrupt("break",55);case 53:return T.ZP.warning("Plan to Support!"),Nr.abrupt("break",55);case 55:Nr.next=60;break;case 57:Nr.prev=57,Nr.t2=Nr.catch(20),T.ZP.error(sa("DDSAnnotator.smart.msg.error"));case 60:return Nr.prev=60,Ae(!1),Mn(function(Co){Co.prompt.activeRectWhileLoading=void 0}),ha(),Nr.finish(60);case 65:case"end":return Nr.stop()}},Ir,null,[[9,17],[20,57,60,65]])}));return function(Ir){return $a.apply(this,arguments)}}(),[jn]),jr=(0,n.useCallback)(function($a){var Ir=[];return Tn?Ir=(0,w.cf)($a.objectList,Tn.objects,Tn.list.length,Tn.activeIndex).map(function(nr){var Ar={};return nr.forEach(function(xa,Ta){if(xa&&!xa.frameEmpty){var ba=Yr==null?void 0:Yr(xa),ia=ba.labelId,Ea=ba.attributes,ha=ba.labelValue;Ar.labelId=ia,Ar.attributes=Ea,Ar.labelValue||(Ar.labelValue={}),Ar.labelValue[String(Ta)]=ha}}),Ar}):Ir=$a.objectList.map(function(nr){return Yr==null?void 0:Yr(nr)}),[(Tn==null?void 0:Tn.id)||(In==null?void 0:In.id)||"",[].concat(p()($a.classifications.map(function(nr){var Ar,xa=Tr.find(function(Ta){return Ta.id===nr.labelId});return t()(t()({},nr),{},{attributes:nr.attributes||(xa==null||(Ar=xa.attributes)===null||Ar===void 0?void 0:Ar.map(function(){return null}))||[]})})),p()(Ir))]},[In,Yr,Tn]),Qr=function(Ir){var nr=[];return _r==null||_r.forEach(function(Ar,xa){var Ta=Ir.find(function(ba){return ba.labelId===Ar.id});(!Ta||[void 0,null,""].includes(Ta.labelValue))&&nr.push(sa("DDSAnnotator.save.check.classification",{idx:xa+1}))}),Ir.forEach(function(Ar,xa){var Ta,ba=Tr.find(function(ia){return ia.id===Ar.labelId});ba!=null&&(Ta=ba.attributes)!==null&&Ta!==void 0&&Ta.find(function(ia,Ea){var ha;return ia.required&&[void 0,null,""].includes((ha=Ar.attributes)===null||ha===void 0?void 0:ha[Ea])})&&nr.push(sa("DDSAnnotator.save.check.label",{idx:xa+1,labelName:ba.labelName}))}),nr.length>0?(c.Z.warning({width:480,title:sa("DDSAnnotator.save.check.error"),content:(0,ae.jsxs)("div",{children:[nr.map(function(Ar,xa){return(0,ae.jsxs)("span",{children:[Ar,(0,ae.jsx)("br",{})]},xa)}),(0,ae.jsx)("span",{children:sa("DDSAnnotator.save.check.tip")})]})}),!0):!1},pa=function(){var $a=B()(x()().mark(function Ir(){var nr,Ar,xa,Ta;return x()().wrap(function(ia){for(;;)switch(ia.prev=ia.next){case 0:if(!(pe||!Dr)){ia.next=2;break}return ia.abrupt("return");case 2:if(nr=jr(jn),Ar=s()(nr,2),xa=Ar[0],Ta=Ar[1],console.log(">>> save",xa,Ta),!Qr(Ta)){ia.next=6;break}return ia.abrupt("return");case 6:return Ae(!0),ia.prev=7,ia.next=10,Dr(xa,Ta);case 10:ia.next=15;break;case 12:ia.prev=12,ia.t0=ia.catch(7),console.error(ia.t0);case 15:Ae(!1);case 16:case"end":return ia.stop()}},Ir,null,[[7,12]])}));return function(){return $a.apply(this,arguments)}}(),Ma=function(){var $a=B()(x()().mark(function Ir(){var nr,Ar,xa,Ta;return x()().wrap(function(ia){for(;;)switch(ia.prev=ia.next){case 0:if(!(pe||!Mr)){ia.next=2;break}return ia.abrupt("return");case 2:if(nr=jr(jn),Ar=s()(nr,2),xa=Ar[0],Ta=Ar[1],!Qr(Ta)){ia.next=5;break}return ia.abrupt("return");case 5:return Ae(!0),ia.prev=6,ia.next=9,Mr(xa,Ta);case 9:ia.next=14;break;case 11:ia.prev=11,ia.t0=ia.catch(6),console.error(ia.t0);case 14:Ae(!1);case 15:case"end":return ia.stop()}},Ir,null,[[6,11]])}));return function(){return $a.apply(this,arguments)}}(),_a=function(){var $a=B()(x()().mark(function Ir(){return x()().wrap(function(Ar){for(;;)switch(Ar.prev=Ar.next){case 0:je===U.je.Review&&Lr&&Lr.apply(void 0,p()(jr(jn)));case 1:case"end":return Ar.stop()}},Ir)}));return function(){return $a.apply(this,arguments)}}(),Pa=function(){var $a=B()(x()().mark(function Ir(){return x()().wrap(function(Ar){for(;;)switch(Ar.prev=Ar.next){case 0:je===U.je.Review&&mr&&mr.apply(void 0,p()(jr(jn)));case 1:case"end":return Ar.stop()}},Ir)}));return function(){return $a.apply(this,arguments)}}(),Fa=function(){var $a=B()(x()().mark(function Ir(){return x()().wrap(function(Ar){for(;;)switch(Ar.prev=Ar.next){case 0:je===U.je.Review&&or&&or.apply(void 0,p()(jr(jn)));case 1:case"end":return Ar.stop()}},Ir)}));return function(){return $a.apply(this,arguments)}}(),Aa=function(){var $a=B()(x()().mark(function Ir(){return x()().wrap(function(Ar){for(;;)switch(Ar.prev=Ar.next){case 0:if(!(je===U.je.Edit&&Br)){Ar.next=3;break}return It.confirm({getContainer:function(){return document.body},content:sa("DDSAnnotator.confirmLeave.content"),cancelText:sa("DDSAnnotator.confirmLeave.cancel"),okText:sa("DDSAnnotator.confirmLeave.ok"),okButtonProps:{danger:!0},onOk:function(){ca&&ca()}}),Ar.abrupt("return");case 3:ca&&ca();case 4:case"end":return Ar.stop()}},Ir)}));return function(){return $a.apply(this,arguments)}}();return{onAiAnnotation:Gr,onSaveAnnotations:pa,onCommitAnnotations:Ma,onCancelAnnotations:Aa,onRejectAnnotations:_a,onAcceptAnnotations:Pa,onModifyAnnotations:Fa}},Pt=yt,bt=e(82968),Ct=e(74820),Le=e(12562),Ke=e(37617),st=e(16951),We=Object.defineProperty,ge=Object.getOwnPropertySymbols,X=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable,R=(Ue,ye,je)=>ye in Ue?We(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,N=(Ue,ye)=>{for(var je in ye||(ye={}))X.call(ye,je)&&R(Ue,je,ye[je]);if(ge)for(var je of ge(ye))W.call(ye,je)&&R(Ue,je,ye[je]);return Ue};const oe=Ue=>n.createElement("svg",N({width:10,height:10,fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),n.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 ve="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjQ2NCA1LjY1QTEgMSAwIDAgMCAyLjg4IDcuMDY0bDIuMTItMi4xMiAyLjEyMiAyLjEyQTEgMSAwIDAgMCA4LjUzNSA1LjY1TDUuNzEzIDIuODI4YTEgMSAwIDAgMC0xLjQyLS4wMDZMMS40NjQgNS42NVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=",te=Object.defineProperty,me=Object.getOwnPropertySymbols,we=Object.prototype.hasOwnProperty,xe=Object.prototype.propertyIsEnumerable,Se=(Ue,ye,je)=>ye in Ue?te(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,ke=(Ue,ye)=>{for(var je in ye||(ye={}))we.call(ye,je)&&Se(Ue,je,ye[je]);if(me)for(var je of me(ye))xe.call(ye,je)&&Se(Ue,je,ye[je]);return Ue};const ne=Ue=>n.createElement("svg",ke({className:"palette_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:16,height:16},Ue),n.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"}),n.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 re="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Ik01MTIgMTAyLjM5Yy0yMjYuMjAyIDAtNDA5LjYgMTgzLjM2Ny00MDkuNiA0MDkuNlMyODUuNzk4IDkyMS42MiA1MTIgOTIxLjYyYTQwOC41NTYgNDA4LjU1NiAwIDAgMCAxNTYuNjcyLTMxLjIgNjguMzMyIDY4LjMzMiAwIDAgMCAyMi4xNi0xMTEuNDAybC00OC4wNTctNDguMDU2YTY4LjI4IDY4LjI4IDAgMCAxIDQ4LjI2MS0xMTYuNTQybDE2Mi4zMDQtLjA0YTY4LjI2IDY4LjI2IDAgMCAwIDY4LjI3LTY4LjI2di0zNC4xM2MtLjAxLTIyNi4yNDMtMTgzLjM3OC00MDkuNi00MDkuNjEtNDA5LjZ6bTM0MS4zMyA0NDMuNzMtMTYyLjMwNC4wM2MtNzUuMzA1IDAtMTM2LjUzIDYxLjIyNS0xMzYuNTMgMTM2LjUzIDAgMzYuNDg1IDE0LjIwMyA3MC43MzggMzkuOTk3IDk2LjU0M2w0OC4wNjcgNDguMDU2YTMzOC4xNjYgMzM4LjE2NiAwIDAgMS0xMzAuNTcgMjYuMDgyYy0xODguMjAxIDAtMzQxLjMzLTE1My4xNC0zNDEuMzMtMzQxLjM3MVMzMjMuNzk5IDE3MC42NSA1MTIgMTcwLjY1czM0MS4zMyAxNTMuMDk4IDM0MS4zMyAzNDEuMzN2MzQuMTR6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTQ0My43MyAzMDcuMTlhNjguMjcgNjguMjcgMCAxIDAgMTM2LjU0IDAgNjguMjcgNjguMjcgMCAxIDAtMTM2LjU0IDBaTTMwMC41MDMgNTU1LjI1NGE2OC4xOTggNjguMTk4IDAgMCAxIDkzLjIyNSAyNC45OTYgNjguMyA2OC4zIDAgMCAxLTI0LjkzNCA5My4yNjYgNjguMzUyIDY4LjM1MiAwIDAgMS05My4yOTctMjQuOTk2IDY4LjMyMSA2OC4zMjEgMCAwIDEgMjUuMDA2LTkzLjI2NnpNNjIxLjA1NiA0MDkuNTlhNjguMjkgNjguMjkgMCAxIDAgMTM2LjU4MSAwIDY4LjI5IDY4LjI5IDAgMSAwLTEzNi41ODEgMFpNMzAwLjUwMyA0NjguNzE2YTY4LjI2IDY4LjI2IDAgMCAxLTI0Ljk2NS05My4yNjYgNjguMjUgNjguMjUgMCAxIDEgMTE4LjIgNjguMjM5IDY4LjI3IDY4LjI3IDAgMCAxLTkzLjIzNSAyNS4wMjd6IiBmaWxsPSIjZmZmIi8+PC9zdmc+",se=Object.defineProperty,Ee=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,fe=Object.prototype.propertyIsEnumerable,_e=(Ue,ye,je)=>ye in Ue?se(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,Pe=(Ue,ye)=>{for(var je in ye||(ye={}))Re.call(ye,je)&&_e(Ue,je,ye[je]);if(Ee)for(var je of Ee(ye))fe.call(ye,je)&&_e(Ue,je,ye[je]);return Ue};const ze=Ue=>n.createElement("svg",Pe({viewBox:"0 0 21 21",xmlns:"http://www.w3.org/2000/svg"},Ue),n.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"}),n.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 Qe="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjEgMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2LjYyNSA0LjM3NXYxMi4yNUg0LjM3NVY0LjM3NWgxMi4yNVpNMy41IDIuNjI1Yy0uNDM4IDAtLjg3NS40MzgtLjg3NS44NzV2MTRjMCAuNTI1LjM1Ljg3NS44NzUuODc1aDE0Yy41MjUgMCAuODc1LS4zNS44NzUtLjg3NXYtMTRjMC0uNTI1LS4zNS0uODc1LS44NzUtLjg3NWgtMTRaIi8+PHBhdGggZD0iTTE0Ljg3NSA3Ljc4OGMwLS41MjUtLjM1LS44NzUtLjg3NS0uODc1SDkuNjI1di0uNDM4QS44NzcuODc3IDAgMCAwIDguNzUgNS42Yy0uNTI1IDAtLjg3NS4zNS0uODc1Ljg3NXYuNDM4SDdjLS41MjUgMC0uODc1LjM1LS44NzUuODc1cy4zNS44NzUuODc1Ljg3NWguODc1VjkuMWMwIC41MjUuMzUuODc1Ljg3NS44NzVzLjg3NS0uMzUuODc1LS44NzV2LS40MzdIMTRjLjUyNSAwIC44NzUtLjM1Ljg3NS0uODc1Wk02LjEyNSAxMy4zYzAgLjUyNS4zNS44NzUuODc1Ljg3NWg0LjM3NXYuNDM4YzAgLjUyNS40MzguODc1Ljg3NS44NzUuNTI1IDAgLjg3NS0uMzUuODc1LS44NzV2LS40MzhIMTRjLjUyNSAwIC44NzUtLjM1Ljg3NS0uODc1cy0uMzUtLjg3NS0uODc1LS44NzVoLS44NzV2LS40MzdjMC0uNTI1LS4zNS0uODc1LS44NzUtLjg3NXMtLjg3NS4zNS0uODc1Ljg3NXYuNDM3SDdhLjg3Ny44NzcgMCAwIDAtLjg3NS44NzVaIi8+PC9zdmc+",gt=Object.defineProperty,ut=Object.getOwnPropertySymbols,rt=Object.prototype.hasOwnProperty,qe=Object.prototype.propertyIsEnumerable,Ve=(Ue,ye,je)=>ye in Ue?gt(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,tt=(Ue,ye)=>{for(var je in ye||(ye={}))rt.call(ye,je)&&Ve(Ue,je,ye[je]);if(ut)for(var je of ut(ye))qe.call(ye,je)&&Ve(Ue,je,ye[je]);return Ue};const Oe=Ue=>n.createElement("svg",tt({viewBox:"0 0 15 15",xmlns:"http://www.w3.org/2000/svg"},Ue),n.createElement("g",{clipPath:"url(#layer_svg__a)"},n.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"}),n.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"})),n.createElement("defs",null,n.createElement("clipPath",{id:"layer_svg__a"},n.createElement("path",{fill:"#fff",d:"M0 0h15v15H0z"}))));var Me="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTUgMTUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJtLjU3IDYuNjI1IDUuODA1IDMuNDhhMi4xODIgMi4xODIgMCAwIDAgMi4yNSAwbDUuODA1LTMuNDhhMS4xNjMgMS4xNjMgMCAwIDAgMC0xLjk5NUw4LjYyNSAxLjE0NGEyLjE4IDIuMTggMCAwIDAtMi4yNSAwTC41NyA0LjYyNWExLjE2MyAxLjE2MyAwIDAgMCAwIDEuOTk1di4wMDVaTTcuMzQgMi43NWEuMzEzLjMxMyAwIDAgMSAuMzIgMGw0Ljc4OSAyLjg3NUw3LjY2IDguNWEuMzEzLjMxMyAwIDAgMS0uMzIyIDBMMi41NTEgNS42MjUgNy4zNCAyLjc1WiIvPjxwYXRoIGQ9Ik04LjMwNCAxMS43N2ExLjU2MiAxLjU2MiAwIDAgMS0xLjYwOCAwTDEuNDIgOC42MDNhLjkzNy45MzcgMCAwIDAtLjk2NSAxLjYwN2w1LjI3NiAzLjE2NGEzLjQzIDMuNDMgMCAwIDAgMy41MzggMGw1LjI3Ni0zLjE2NmEuOTM3LjkzNyAwIDEgMC0uOTY1LTEuNjA1bC01LjI3NiAzLjE2NVoiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDE1djE1SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",Ne=e(87608),Te=e.n(Ne),Be=e(83720),nt=e(56019),ot=e(39875),wt=e(23605),Et=e(2556),nn=e(2657),$t=e.n(nn),fn,ln=function(Ue){return Ue.Tool="DDSAnnotator.shortcuts.tools",Ue.GeneralAction="DDSAnnotator.shortcuts.general",Ue.ViewAction="DDSAnnotator.shortcuts.viewControl",Ue.AnnotationAction="DDSAnnotator.shortcuts.annotsControl",Ue}({}),Wt=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}({}),$e=(fn={},$t()(fn,Wt.RectangleTool,{name:"RectangleTool",type:ln.Tool,shortcut:["r"],descTextKey:"DDSAnnotator.shortcuts.tools.rectangle"}),$t()(fn,Wt.PolygonTool,{name:"PolygonTool",type:ln.Tool,shortcut:["p"],descTextKey:"DDSAnnotator.shortcuts.tools.polygon"}),$t()(fn,Wt.SkeletonTool,{name:"SkeletonTool",type:ln.Tool,shortcut:["s"],descTextKey:"DDSAnnotator.shortcuts.tools.skeleton"}),$t()(fn,Wt.MaskTool,{name:"MaskTool",type:ln.Tool,shortcut:["m"],descTextKey:"DDSAnnotator.shortcuts.tools.mask"}),$t()(fn,Wt.DragTool,{name:"DragTool",type:ln.Tool,shortcut:["d"],descTextKey:"DDSAnnotator.shortcuts.tools.drag"}),$t()(fn,Wt.SmartAnnotation,{name:"SmartAnnotation",type:ln.GeneralAction,shortcut:["a"],descTextKey:"DDSAnnotator.shortcuts.general.smart"}),$t()(fn,Wt.Undo,{name:"Undo",type:ln.GeneralAction,shortcut:["ctrl.z","meta.z"],descTextKey:"DDSAnnotator.shortcuts.general.undo"}),$t()(fn,Wt.Redo,{name:"Redo",type:ln.GeneralAction,shortcut:["ctrl.shift.z","meta.shift.z"],descTextKey:"DDSAnnotator.shortcuts.general.redo"}),$t()(fn,Wt.RepeatPrevious,{name:"RepeatPrevious",type:ln.GeneralAction,shortcut:["ctrl.r","meta.r"],descTextKey:"DDSAnnotator.shortcuts.general.repeatPrevious"}),$t()(fn,Wt.DeleteAll,{name:"DeleteAll",type:ln.GeneralAction,shortcut:["ctrl.shift.d","meta.shift.d"],descTextKey:"DDSAnnotator.shortcuts.general.deleteAll"}),$t()(fn,Wt.Save,{name:"Save",type:ln.GeneralAction,shortcut:["ctrl.s","meta.s"],descTextKey:"DDSAnnotator.shortcuts.general.save"}),$t()(fn,Wt.HideCurrObject,{name:"HideCurrObject",type:ln.ViewAction,shortcut:["h"],descTextKey:"DDSAnnotator.shortcuts.viewControl.hideCurrObject"}),$t()(fn,Wt.HideCurrCategory,{name:"HideCurrCategory",type:ln.ViewAction,shortcut:["ctrl.h","meta.h"],descTextKey:"DDSAnnotator.shortcuts.viewControl.hideCurrCategory"}),$t()(fn,Wt.HideAll,{name:"HideAll",type:ln.ViewAction,shortcut:["ctrl.shift.h","meta.shift.h"],descTextKey:"DDSAnnotator.shortcuts.viewControl.hideAll"}),$t()(fn,Wt.ZoomIn,{name:"ZoomIn",type:ln.ViewAction,shortcut:["equalsign"],descTextKey:"DDSAnnotator.shortcuts.viewControl.zoomIn"}),$t()(fn,Wt.ZoomOut,{name:"ZoomOut",type:ln.ViewAction,shortcut:["dash"],descTextKey:"DDSAnnotator.shortcuts.viewControl.zoomOut"}),$t()(fn,Wt.Reset,{name:"Reset",type:ln.ViewAction,shortcut:["0"],descTextKey:"DDSAnnotator.shortcuts.viewControl.zoomReset"}),$t()(fn,Wt.Accept,{name:"Accept",type:ln.GeneralAction,shortcut:["ctrl.a","meta.a"],descTextKey:"DDSAnnotator.shortcuts.general.accept"}),$t()(fn,Wt.Reject,{name:"Reject",type:ln.GeneralAction,shortcut:["ctrl.r","meta.r"],descTextKey:"DDSAnnotator.shortcuts.general.reject"}),$t()(fn,Wt.NextImage,{name:"NextImage",type:ln.ViewAction,shortcut:["rightarrow"],descTextKey:"DDSAnnotator.shortcuts.general.next"}),$t()(fn,Wt.PreviousImage,{name:"PreviousImage",type:ln.ViewAction,shortcut:["leftarrow"],descTextKey:"DDSAnnotator.shortcuts.general.prev"}),$t()(fn,Wt.PanImage,{name:"PanImage",type:ln.ViewAction,shortcut:["Space"],descTextKey:"DDSAnnotator.shortcuts.viewControl.panImage"}),$t()(fn,Wt.SaveCurrObject,{name:"SaveCurrObject",type:ln.AnnotationAction,shortcut:["enter"],descTextKey:"DDSAnnotator.shortcuts.annotsControl.finish"}),$t()(fn,Wt.DeleteCurrObject,{name:"DeleteCurrObject",type:ln.AnnotationAction,shortcut:["Backspace","Delete"],descTextKey:"DDSAnnotator.shortcuts.annotsControl.delete"}),$t()(fn,Wt.CancelCurrObject,{name:"CancelCurrObject",type:ln.AnnotationAction,shortcut:["esc"],descTextKey:"DDSAnnotator.shortcuts.annotsControl.cancel"}),fn),De=function(ye){var je=ye;switch(ye){case"meta":je="\u2318";break;case"shift":je="\u21E7";break;case"equalsign":case"add":je="+";break;case"dash":case"subtract":je="-";break;case"leftarrow":je="\u2190";break;case"rightarrow":je="\u2192";break;default:je=ye.toUpperCase();break}return je},jt=e(18695),Ft=e(9457),Xe=function(Ue){return Ue.Object="object",Ue.Class="class",Ue}(Xe||{}),at=function(ye,je){return(0,g.isEqual)(ye.objects,je.objects)&&(0,g.isEqual)(ye.framesObjects,je.framesObjects)&&ye.activeObjectIndex===je.activeObjectIndex&&ye.supportEdit===je.supportEdit&&ye.activeClassName===je.activeClassName&&ye.className===je.className&&ye.onChangeActiveClassName===je.onChangeActiveClassName&&ye.onFocusObject===je.onFocusObject&&ye.onDeleteObject===je.onDeleteObject&&ye.onChangeObjectHidden===je.onChangeObjectHidden&&ye.onChangeCategoryHidden===je.onChangeCategoryHidden&&ye.setDrawDataWithHistory===je.setDrawDataWithHistory&&(0,g.isEqual)(ye.categories,je.categories)&&ye.colorByCategory===je.colorByCategory&&ye.onChangeAnnotsDisplayOpts===je.onChangeAnnotsDisplayOpts},Bt=(0,n.memo)(function(Ue){var ye=Ue.objects,je=Ue.framesObjects,In=Ue.activeObjectIndex,It=Ue.className,Tn=Ue.supportEdit,jn=Ue.activeClassName,Mn=Ue.onFocusObject,Wn=Ue.onActiveObject,er=Ue.onChangeObjectHidden,sr=Ue.onDeleteObject,Jn=Ue.onChangeCategoryHidden,Pn=Ue.onChangeActiveClassName,Sa=Ue.categories,Fr=Ue.setDrawDataWithHistory,Xn=Ue.colorByCategory,Br=Ue.onChangeAnnotsDisplayOpts,Tr=(0,P.bU)(),ra=Tr.localeText,Yr=ra("DDSAnnotator.annotsList.uncategorized"),ca=(0,n.useState)(Xe.Class),Dr=s()(ca,2),Mr=Dr[0],or=Dr[1],mr=function(cn){or(cn)},Lr=(0,Ft.w)(),_r=Lr.height,Ha=45,sa=35,V=_r-Ha-56,k=(0,n.useRef)(null),pe=(0,n.useMemo)(function(){return!ye.some(function(Gt){return!Gt.hidden})},[ye]),Ae=function(){ye.forEach(function(cn,rr){er(rr,!pe)})},Ge=function(){Br({colorByCategory:!Xn})},dt=(0,n.useCallback)(function(Gt,cn,rr){Wn(rr),Fr(function(On){On.editingAttribute={index:rr,labelId:Gt.labelId,attributes:cn.attributes||[],values:Gt.attributes||[]}})},[Wn]);(0,Et.Z)($e[Wt.HideAll].shortcut,function(Gt){Gt.preventDefault(),Ae()},{exactMatch:!0});var Ht=(0,n.useMemo)(function(){return ye.reduce(function(Gt,cn,rr){var On,Zn=((On=Sa.find(function(Gr){return Gr.id===cn.labelId}))===null||On===void 0?void 0:On.name)||Yr;return Gt[Zn]||(Gt[Zn]=[]),Gt[Zn].push(t()(t()({},cn),{},{originIndex:rr})),Gt},{})},[ye]);(0,n.useEffect)(function(){if(!(In<0)){var Gt=document.querySelector(".ant-tabs-tabpane-active");if(Mr===Xe.Object){var cn=Gt==null?void 0:Gt.querySelector(".tab-collapse .ant-collapse-item:nth-child(".concat(In+1,")"));cn==null||cn.scrollIntoView({behavior:"smooth",block:"nearest"})}else if(Mr===Xe.Class&&Ht[jn]){var rr=Ht[jn].findIndex(function(Zn){return Zn.originIndex===In});if(rr>-1){var On;(On=k.current)===null||On===void 0||On.scrollTo({index:rr,align:"auto"})}}}},[In]);var Jt=(0,ae.jsx)(bt.Z,{accordion:!0,ghost:!0,className:"tab-collapse",activeKey:jn,children:ye.length>0&&Object.keys(Ht).sort().map(function(Gt){var cn,rr=Ht[Gt],On=rr.every(function(Gr){return Gr.hidden}),Zn=(cn=rr[0])===null||cn===void 0?void 0:cn.color;return(0,ae.jsx)(bt.Z.Panel,{showArrow:!1,header:(0,ae.jsxs)("div",{className:Te()("collapse-header",{"collapse-header-selected":jn===Gt}),style:{height:Ha},onClick:function(){Pn(Gt===jn?"":Gt)},children:[jn===Gt&&(0,ae.jsx)("div",{className:"selected-line",style:{backgroundColor:Zn||"#fff"}}),(0,ae.jsx)("div",{className:"label-name",children:Gt}),(0,ae.jsxs)("div",{className:"label-actions",children:[(0,ae.jsx)("span",{className:"label-count",children:rr.length}),Tn&&(0,ae.jsx)(Ct.Z,{title:ra(On?"DDSAnnotator.annotsList.showCate":"DDSAnnotator.annotsList.hideCate"),children:(0,ae.jsx)(Le.ZP,{ghost:!0,className:"label-btn",icon:On?(0,ae.jsx)(Be.Z,{}):(0,ae.jsx)(nt.Z,{}),shape:"circle",onClick:function(jr){jr.stopPropagation(),Jn(Gt,!On)}})}),(0,ae.jsx)(Le.ZP,{ghost:!0,className:"label-btn",icon:(0,ae.jsx)(oe,{className:"down-arrow"}),shape:"circle"})]})]},Gt),children:jn===Gt&&(0,ae.jsx)(Ke.Z,{children:(0,ae.jsx)(jt.Z,{data:rr,height:V,fullHeight:!1,itemHeight:sa,itemKey:"originIndex",ref:k,children:function(jr,Qr){var pa,Ma,_a,Pa,Fa=Sa.find(function(nr){return nr.id===jr.labelId}),Aa=!!(Fa!=null&&(pa=Fa.attributes)!==null&&pa!==void 0&&pa.length),$a=Fa==null||(Ma=Fa.attributes)===null||Ma===void 0?void 0:Ma.find(function(nr,Ar){var xa;return nr.required&&[void 0,null,""].includes((xa=jr.attributes)===null||xa===void 0?void 0:xa[Ar])}),Ir=(je==null||(_a=je[jr.originIndex])===null||_a===void 0||(Pa=_a.filter(function(nr){return nr&&!nr.frameEmpty}))===null||Pa===void 0?void 0:Pa.length)||1;return(0,ae.jsxs)(Ke.Z.Item,{className:"collapse-item",style:{height:sa},onMouseOver:function(){Mn(jr.originIndex)},onClick:function(Ar){Ar.stopPropagation(),Wn(jr.originIndex)},children:[In===jr.originIndex&&(0,ae.jsx)("div",{className:"color-hint",style:{backgroundColor:jr.color}}),(0,ae.jsx)(ot.Z,{className:"label-icon",component:y.ef[jr.type]}),(0,ae.jsxs)("div",{className:"label",children:["# ",jr.originIndex+1]}),(0,ae.jsxs)("div",{className:"label-actions",children:[je&&(0,ae.jsxs)("span",{className:"frame-count",children:[(0,ae.jsx)(Oe,{})," ",Ir]}),Aa&&(0,ae.jsx)(Ct.Z,{title:ra("DDSAnnotator.attribute.edit"),children:(0,ae.jsx)(Le.ZP,{ghost:!0,className:Te()("attr-btn",{"attr-btn-warn":$a}),icon:(0,ae.jsx)(ze,{}),shape:"circle",onClick:function(Ar){Ar.stopPropagation(),dt(jr,Fa,jr.originIndex)}})}),(0,ae.jsx)(Ct.Z,{title:jr.hidden?ra("DDSAnnotator.annotsList.show"):ra("DDSAnnotator.annotsList.hide"),children:(0,ae.jsx)(Le.ZP,{ghost:!0,className:"label-btn",icon:jr.hidden?(0,ae.jsx)(Be.Z,{}):(0,ae.jsx)(nt.Z,{}),shape:"circle",onClick:function(Ar){Ar.stopPropagation(),er(jr.originIndex,!jr.hidden)}})}),Tn&&(0,ae.jsx)(ae.Fragment,{children:(0,ae.jsx)(Ct.Z,{title:ra("DDSAnnotator.annotsList.delete"),children:(0,ae.jsx)(Le.ZP,{ghost:!0,className:"label-btn",icon:(0,ae.jsx)(wt.Z,{}),shape:"circle",onClick:function(Ar){Ar.stopPropagation(),sr(jr.originIndex)}})})})]})]},jr.labelId+Qr)}})})},Gt||Yr)})});return(0,ae.jsx)("div",{className:Te()("dds-annotator-objectlist",It),id:"rightOperations",onMouseDown:function(cn){cn.stopPropagation()},children:(0,ae.jsx)(st.Z,{activeKey:Mr,onChange:mr,items:[{key:Xe.Class,label:ra("DDSAnnotator.annotsList.labels"),children:Jt}],tabBarExtraContent:(0,ae.jsxs)("div",{className:"tab-header-actions",children:[(0,ae.jsx)(Ct.Z,{title:ra("DDSAnnotator.colorMode"),children:(0,ae.jsx)(Le.ZP,{type:"primary",className:Te()("tab-header-actions-color-btn",{"tab-header-actions-color-btn-active":!Xn}),icon:(0,ae.jsx)(ot.Z,{component:ne}),onClick:Ge})}),ye.length>0&&(0,ae.jsx)(Ct.Z,{title:ra(pe?"DDSAnnotator.annotsList.showAll":"DDSAnnotator.annotsList.hideAll"),children:(0,ae.jsx)(Le.ZP,{ghost:!0,icon:pe?(0,ae.jsx)(Be.Z,{}):(0,ae.jsx)(nt.Z,{}),shape:"circle",onClick:Ae})})]})})})},at),Zt=e(52495),Qt=e(38875),rn=e(59504),hn=e(18624),on=e(94706),Rn=e(57414),zn=function(ye){var je=ye.children,In=ye.eventHandler,It=function(jn){In?In(jn):jn.stopPropagation()};return(0,ae.jsx)("div",{onMouseDown:It,onMouseUp:It,style:{userSelect:"none"},children:je})},lr=Object.defineProperty,ur=Object.getOwnPropertySymbols,zt=Object.prototype.hasOwnProperty,Kt=Object.prototype.propertyIsEnumerable,Vt=(Ue,ye,je)=>ye in Ue?lr(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,dn=(Ue,ye)=>{for(var je in ye||(ye={}))zt.call(ye,je)&&Vt(Ue,je,ye[je]);if(ur)for(var je of ur(ye))Kt.call(ye,je)&&Vt(Ue,je,ye[je]);return Ue};const pn=Ue=>n.createElement("svg",dn({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 29 29"},Ue),n.createElement("defs",null,n.createElement("style",null,".drag_svg__cls-1{fill:none}")),n.createElement("path",{className:"drag_svg__cls-1",d:"M2.83 2.83h28.35v28.35H2.83z"}),n.createElement("path",{className:"drag_svg__cls-1",d:"M2.83 2.83h28.35v28.35H2.83z"}),n.createElement("path",{className:"drag_svg__cls-1",d:"M2.83 2.83h28.35v28.35H2.83Z"}),n.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"}),n.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 en="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOSAyOSI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOm5vbmV9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMi44MyAyLjgzaDI4LjM1djI4LjM1SDIuODN6Ii8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMi44MyAyLjgzaDI4LjM1djI4LjM1SDIuODN6Ii8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMi44MyAyLjgzaDI4LjM1djI4LjM1SDIuODNaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJtMjEuNzMgMTguMTkgOC4yMyA0LjgtMy41MSAxIDIuNTEgNC4zNS0yLjA1IDEuMTgtMi41MS00LjM1LTIuNjMgMi41NC0uMDQtOS41MnoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xOS4zNyA5LjkyaDIuMzZ2Mi4zNmg1LjkxYTEuMTggMS4xOCAwIDAgMSAxLjE4IDEuMTh2NC43M2gtMi4zNnYtMy41NEgxNC42NXYxMS44MWg0LjcydjIuMzZoLTUuOTFhMS4xOCAxLjE4IDAgMCAxLTEuMTgtMS4xOHYtNS45MUg5Ljkydi0yLjM2aDIuMzZ2LTUuOTFhMS4xOCAxLjE4IDAgMCAxIDEuMTgtMS4xOGg1LjkxWk01LjIgMTkuMzdoMi4zNnYyLjM2SDUuMnpNNS4yIDE0LjY1aDIuMzZ2Mi4zNkg1LjJ6TTUuMiA5LjkyaDIuMzZ2Mi4zNkg1LjJ6TTUuMiA1LjJoMi4zNnYyLjM2SDUuMnpNOS45MiA1LjJoMi4zNnYyLjM2SDkuOTJ6TTE0LjY1IDUuMmgyLjM2djIuMzZoLTIuMzZ6TTE5LjM3IDUuMmgyLjM2djIuMzZoLTIuMzZ6Ii8+PC9zdmc+",mt=Object.defineProperty,pt=Object.getOwnPropertySymbols,an=Object.prototype.hasOwnProperty,qt=Object.prototype.propertyIsEnumerable,Yt=(Ue,ye,je)=>ye in Ue?mt(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,mn=(Ue,ye)=>{for(var je in ye||(ye={}))an.call(ye,je)&&Yt(Ue,je,ye[je]);if(pt)for(var je of pt(ye))qt.call(ye,je)&&Yt(Ue,je,ye[je]);return Ue};const gn=Ue=>n.createElement("svg",mn({width:32,height:32,viewBox:"0 0 34 34",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),n.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 kn="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzNCAzNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjMuNzM3IDEzLjExOHY3Ljc2NGE2LjcxMyA2LjcxMyAwIDAgMS02LjcwNiA2LjcwNyA2LjcxMyA2LjcxMyAwIDAgMS02LjcwNS02LjcwN3YtNy43NjRhNi43MTMgNi43MTMgMCAwIDEgNi43MDUtNi43MDcgNi43MTMgNi43MTMgMCAwIDEgNi43MDYgNi43MDdabS0uNjkzIDMuNjYySDExLjAxOHY0LjEwMmE2LjAyIDYuMDIgMCAwIDAgNi4wMTMgNi4wMTcgNi4wMiA2LjAyIDAgMCAwIDYuMDEzLTYuMDE3VjE2Ljc4Wm0wLTMuNjYyYTYuMDIgNi4wMiAwIDAgMC01LjY5OC02LjAwOHY4Ljk3N2g1LjY5OHYtMi45NjlaIiBmaWxsPSIjZmZmIi8+PC9zdmc+",tr=Object.defineProperty,ft=Object.getOwnPropertySymbols,vt=Object.prototype.hasOwnProperty,St=Object.prototype.propertyIsEnumerable,Mt=(Ue,ye,je)=>ye in Ue?tr(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,Nt=(Ue,ye)=>{for(var je in ye||(ye={}))vt.call(ye,je)&&Mt(Ue,je,ye[je]);if(ft)for(var je of ft(ye))St.call(ye,je)&&Mt(Ue,je,ye[je]);return Ue};const sn=Ue=>n.createElement("svg",Nt({width:32,height:32,viewBox:"0 0 34 34",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),n.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 Xt="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzNCAzNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTAuMjYzIDEzLjExOHY3Ljc2NGE2LjcxMyA2LjcxMyAwIDAgMCA2LjcwNiA2LjcwNyA2LjcxMyA2LjcxMyAwIDAgMCA2LjcwNS02LjcwN3YtNy43NjRhNi43MTMgNi43MTMgMCAwIDAtNi43MDUtNi43MDcgNi43MTMgNi43MTMgMCAwIDAtNi43MDYgNi43MDdabS42OTMgMy42NjJoMTIuMDI2djQuMTAyYTYuMDIgNi4wMiAwIDAgMS02LjAxMyA2LjAxNyA2LjAyIDYuMDIgMCAwIDEtNi4wMTMtNi4wMTdWMTYuNzhabTAtMy42NjJhNi4wMiA2LjAyIDAgMCAxIDUuNjk4LTYuMDA4djguOTc3aC01LjY5OHYtMi45NjlaIiBmaWxsPSIjZmZmIi8+PC9zdmc+",Cn=(0,n.memo)(function(Ue){var ye,je=Ue.selectedTool,In=Ue.selectedSubTool,It=Ue.selectedModel,Tn=Ue.AIAnnotation,jn=Ue.isBatchEditing,Mn=Ue.isCtrlPressed,Wn=Ue.aiLabels,er=Ue.categories,sr=Ue.naturalSize,Jn=Ue.limitConf,Pn=Ue.setAiLabels,Sa=Ue.onExitAIAnnotation,Fr=Ue.onAiAnnotation,Xn=Ue.onChangeConfidenceRange,Br=Ue.onChangeLimitConf,Tr=Ue.onAcceptValidObjects,ra=Ue.onCancelBatchEdit,Yr=Ue.forceChangeTool,ca=(0,P.bU)(),Dr=ca.localeText,Mr=(0,n.useState)(""),or=s()(Mr,2),mr=or[0],Lr=or[1],_r=(0,d.x)({predIouThresh:.89,pointsPerSide:32,minMaskRegionArea:300}),Ha=s()(_r,2),sa=Ha[0],V=Ha[1],k=(ye={},$t()(ye,y.ru.Drag,{name:Dr("DDSAnnotator.shortcuts.tools.drag"),icon:pn}),$t()(ye,y.ru.Rectangle,{name:It===y.HE.Detection?Dr("DDSAnnotator.smart.detection.name"):Dr("DDSAnnotator.smart.ivp.name"),icon:y.ef[y.gr.Rectangle]}),$t()(ye,y.ru.Polygon,{name:Dr("DDSAnnotator.smart.segmentation.name"),icon:y.ef[y.gr.Polygon]}),$t()(ye,y.ru.Skeleton,{name:Dr("DDSAnnotator.smart.pose.name"),icon:y.ef[y.gr.Skeleton]}),$t()(ye,y.ru.Mask,{name:Dr("DDSAnnotator.smart.mask.name"),icon:y.ef[y.gr.Mask]}),ye),pe=(0,n.useMemo)(function(){if(je===y.ru.Rectangle){var Gt=er==null?void 0:er.map(function(cn){return cn.name});return Gt=mr&&!Gt.includes(mr)?[mr].concat(p()(Gt)):Gt,Gt.map(function(cn){return(0,ae.jsx)(rn.Z.Option,{value:cn,children:cn},cn)})}else{if(je===y.ru.Polygon)return[];if(je===y.ru.Skeleton)return["person"].map(function(cn){return(0,ae.jsx)(rn.Z.Option,{value:cn,children:cn},cn)})}},[je,er,mr]),Ae=function(cn){if(cn.type==="mouseup"&&(je===y.ru.Skeleton||je===y.ru.Mask&&In===y.jB.AutoSegmentEverything||je===y.ru.Rectangle)){cn.preventDefault();return}else cn.stopPropagation()},Ge=(0,n.useMemo)(function(){return!Tn||je===y.ru.Drag||je===y.ru.Mask&&In!==y.jB.AutoSegmentEverything||je===y.ru.Polygon?!1:je===y.ru.Rectangle?It===y.HE.Detection?!(jn&&Mn):It===y.HE.IVP?jn:!1:!0},[je,In,It,Tn,jn,Mn]),dt=function(){Tr(),Yr(y.ru.Drag,y.jB.PenAdd)},Ht=(0,n.useMemo)(function(){return je===y.ru.Rectangle&&It===y.HE.Detection&&jn&&Mn?[{text:Dr("DDSAnnotator.smart.tip.recover"),logo:(0,ae.jsx)(gn,{})},{text:Dr("DDSAnnotator.smart.tip.overlayobject"),logo:(0,ae.jsx)(sn,{})}]:[]},[jn,Mn,It]),Jt=(0,n.useMemo)(function(){return sr.width*sr.height},[sr]);return(0,ae.jsxs)(zn,{eventHandler:Ae,children:[Ht.length>0&&(0,ae.jsx)("div",{className:"dds-annotator-operation-tip",children:Ht.map(function(Gt){return(0,ae.jsxs)("div",{className:"dds-annotator-operation-tip-item",children:[(0,ae.jsx)("span",{children:Gt.text}),Gt.logo]},Gt.text)})}),(0,ae.jsx)(hn.Z,{id:"smart-annotation-editor",className:Te()("dds-annotator-smart-container",{"dds-annotator-smart-container-visible":Ge}),title:(0,ae.jsxs)("div",{className:"dds-annotator-smart-container-title",children:[(0,ae.jsxs)("div",{className:"dds-annotator-smart-container-title-icon",children:[(0,ae.jsx)(Qt.Z,{component:y.QD[y.Uu.SmartAnnotation]}),(0,ae.jsx)("div",{children:k[je].name})]}),(0,ae.jsx)(Le.ZP,{ghost:!0,className:"dds-annotator-smart-container-btn",icon:(0,ae.jsx)(Zt.Z,{}),shape:"circle",size:"small",onClick:function(){Sa(),Yr(je,y.jB.PenAdd)}})]}),children:(0,ae.jsxs)("div",{className:"dds-annotator-smart-container-content",children:[je===y.ru.Rectangle&&It===y.HE.Detection&&(jn?(0,ae.jsxs)("div",{className:"dds-annotator-smart-container-content-column-item",children:[(0,ae.jsx)("div",{className:"dds-annotator-smart-container-content-param-controls",children:(0,ae.jsxs)("div",{className:"dds-annotator-smart-container-content-param-item",children:[(0,ae.jsxs)("div",{className:"dds-annotator-smart-container-content-param-item-title",children:[Dr("DDSAnnotator.smart.detection.confidence"),":"]}),(0,ae.jsx)(on.Z,{className:"dds-annotator-smart-container-content-param-item-slider",defaultValue:Jn,min:0,max:1,step:.01,onAfterChange:Br,railStyle:{background:"#99bdff"},trackStyle:{background:"#edf0f3"}})]})}),(0,ae.jsxs)("div",{className:"dds-annotator-smart-container-content-tip-text",children:[(0,ae.jsxs)("span",{children:[Dr("DDSAnnotator.smart.tip"),": "]}),Dr("DDSAnnotator.smart.tip.ctrl")]}),(0,ae.jsxs)("div",{style:{alignSelf:"flex-end"},children:[(0,ae.jsx)(Le.ZP,{style:{marginRight:"10px"},onClick:ra,children:Dr("DDSAnnotator.smart.back")}),(0,ae.jsx)(Le.ZP,{type:"primary",onClick:Tr,children:Dr("DDSAnnotator.save")})]})]}):(0,ae.jsxs)("div",{className:"dds-annotator-smart-container-content-item",children:[(0,ae.jsx)(rn.Z,{style:{width:250},placeholder:Dr("DDSAnnotator.smart.detection.input"),showSearch:!0,value:Wn,onChange:function(cn){return Pn(cn)},onSearch:function(cn){return Lr(cn)},onInputKeyDown:function(cn){cn.code!=="Enter"&&cn.stopPropagation()},getPopupContainer:function(){return document.getElementById("smart-annotation-editor")},children:pe}),(0,ae.jsx)(Le.ZP,{type:"primary",onClick:function(){return Fr({aiLabels:Wn})},children:Dr("DDSAnnotator.smart.annotate")})]})),je===y.ru.Rectangle&&It===y.HE.IVP&&(0,ae.jsxs)("div",{className:"dds-annotator-smart-container-content-column-item",children:[(0,ae.jsxs)("div",{className:"dds-annotator-smart-container-content-tip-text",children:[(0,ae.jsxs)("span",{children:[Dr("DDSAnnotator.smart.tip"),": "]}),Dr("DDSAnnotator.smart.tip.visualPrompt")]}),(0,ae.jsxs)("div",{style:{alignSelf:"flex-end"},children:[(0,ae.jsx)(Le.ZP,{style:{marginRight:"10px"},onClick:ra,children:Dr("DDSAnnotator.smart.back")}),(0,ae.jsx)(Le.ZP,{type:"primary",onClick:Tr,children:Dr("DDSAnnotator.save")})]})]}),je===y.ru.Skeleton&&(jn?(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("div",{className:"dds-annotator-smart-container-content-param-controls",children:(0,ae.jsxs)("div",{className:"dds-annotator-smart-container-content-param-item",children:[(0,ae.jsx)("div",{className:"dds-annotator-smart-container-content-param-item-title",children:Dr("DDSAnnotator.confidence")}),(0,ae.jsx)(on.Z,{className:"dds-annotator-smart-container-content-param-item-slider",range:!0,defaultValue:[0,100],onAfterChange:function(cn){return Xn([cn[0]/100,cn[1]/100])},tooltip:{formatter:function(cn){return(0,ae.jsx)(ae.Fragment,{children:"".concat(cn/100)})},getPopupContainer:function(){return document.getElementById("conf-slider")}}})]})}),(0,ae.jsx)(Le.ZP,{style:{alignSelf:"flex-end"},type:"primary",onClick:Tr,children:Dr("DDSAnnotator.save")})]}):(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("div",{className:"dds-annotator-smart-container-content-param-controls",children:(0,ae.jsxs)("div",{className:"dds-annotator-smart-container-content-param-item",children:[(0,ae.jsx)("div",{className:"dds-annotator-smart-container-content-param-item-title",children:Dr("DDSAnnotator.smart.modelTyle")}),(0,ae.jsx)(rn.Z,{className:"dds-annotator-smart-container-content-param-item-select",placeholder:Dr("DDSAnnotator.smart.pose.input"),showSearch:!0,value:Wn,onChange:function(cn){return Pn(cn)},onSearch:function(cn){return Lr(cn)},onInputKeyDown:function(cn){cn.code!=="Enter"&&cn.stopPropagation()},getPopupContainer:function(){return document.getElementById("smart-annotation-editor")},children:pe})]})}),(0,ae.jsx)(Le.ZP,{style:{alignSelf:"flex-end"},type:"primary",onClick:function(){return Fr({aiLabels:Wn})},children:Dr("DDSAnnotator.smart.annotate")})]})),je===y.ru.Mask&&In===y.jB.AutoSegmentEverything&&(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsxs)("div",{id:"param-controls",className:"dds-annotator-smart-container-content-param-controls",children:[(0,ae.jsxs)("div",{className:"dds-annotator-smart-container-content-param-item",children:[(0,ae.jsx)("div",{className:"dds-annotator-smart-container-content-param-item-title",children:Dr("DDSAnnotator.smart.iouThres")}),(0,ae.jsx)(on.Z,{className:"dds-annotator-smart-container-content-param-item-slider",value:1-sa.predIouThresh,onChange:function(cn){return V(function(rr){rr.predIouThresh=1-cn})},min:0,max:.99,step:.01,reverse:!0,tooltip:{formatter:function(cn){return"".concat(Math.floor((1-cn)*100),"%")},getPopupContainer:function(){return document.getElementById("param-controls")}}})]}),(0,ae.jsxs)("div",{className:"dds-annotator-smart-container-content-param-item",children:[(0,ae.jsx)("div",{className:"dds-annotator-smart-container-content-param-item-title",children:Dr("DDSAnnotator.smart.minArea")}),(0,ae.jsx)(on.Z,{className:"dds-annotator-smart-container-content-param-item-slider",value:sa.minMaskRegionArea/Jt,onChange:function(cn){return V(function(rr){rr.minMaskRegionArea=cn*Jt})},min:.01,max:.3,step:.01,tooltip:{formatter:function(cn){return"".concat(Math.ceil(cn*100),"%")},getPopupContainer:function(){return document.getElementById("param-controls")}}})]})]}),jn?(0,ae.jsxs)(Rn.Z,{className:"dds-annotator-smart-container-content-actions",style:{justifyContent:"flex-end"},children:[(0,ae.jsx)(Le.ZP,{onClick:function(){return Fr({segmentEverythingParams:sa})},children:Dr("DDSAnnotator.smart.retry")}),(0,ae.jsx)(Le.ZP,{type:"primary",onClick:dt,children:Dr("DDSAnnotator.annotsEditor.finish")})]}):(0,ae.jsx)(Le.ZP,{style:{alignSelf:"flex-end"},type:"primary",onClick:function(){return Fr({segmentEverythingParams:sa})},children:Dr("DDSAnnotator.smart.annotate")})]})]})})]})}),Ln=Cn,hr=e(99142),qn=e(91169),Nn=function(ye,je){return ye.current===je.current&&ye.total===je.total&&ye.customText===je.customText&&ye.customDisableNext===je.customDisableNext},$r=(0,n.memo)(function(Ue){var ye=Ue.current,je=Ue.total,In=Ue.customText,It=Ue.customDisableNext,Tn=Ue.onPrev,jn=Tn===void 0?function(){return Promise.resolve()}:Tn,Mn=Ue.onNext,Wn=Mn===void 0?function(){return Promise.resolve()}:Mn,er=(0,P.bU)(),sr=er.localeText,Jn=(0,n.useState)(!1),Pn=s()(Jn,2),Sa=Pn[0],Fr=Pn[1],Xn=(0,n.useState)(!1),Br=s()(Xn,2),Tr=Br[0],ra=Br[1],Yr=function(){var or=B()(x()().mark(function mr(){return x()().wrap(function(_r){for(;;)switch(_r.prev=_r.next){case 0:return Fr(!0),_r.next=3,jn();case 3:Fr(!1);case 4:case"end":return _r.stop()}},mr)}));return function(){return or.apply(this,arguments)}}(),ca=function(){var or=B()(x()().mark(function mr(){return x()().wrap(function(_r){for(;;)switch(_r.prev=_r.next){case 0:return ra(!0),_r.next=3,Wn();case 3:ra(!1);case 4:case"end":return _r.stop()}},mr)}));return function(){return or.apply(this,arguments)}}(),Dr=ye<=0,Mr=It!=null?It:ye>=je-1;return(0,Et.Z)($e[Wt.PreviousImage].shortcut,function(){Dr||Yr()},{exactMatch:!0}),(0,Et.Z)($e[Wt.NextImage].shortcut,function(){Mr||ca()},{exactMatch:!0}),(0,ae.jsxs)("div",{className:"dds-annotator-toppagination",children:[(0,ae.jsx)(Ct.Z,{title:sr("DDSAnnotator.prev"),children:(0,ae.jsx)(Le.ZP,{className:Te()("dds-annotator-toppagination-btn",{"dds-annotator-toppagination-btn-disabled":Dr}),type:"primary",icon:(0,ae.jsx)(hr.Z,{}),loading:Sa,onClick:Yr})}),In||(0,ae.jsxs)("div",{className:"dds-annotator-toppagination-scale-text",children:[ye+1," / ",je]}),(0,ae.jsx)(Ct.Z,{title:sr("DDSAnnotator.next"),children:(0,ae.jsx)(Le.ZP,{className:Te()("dds-annotator-toppagination-btn",{"dds-annotator-toppagination-btn-disabled":Mr}),type:"primary",icon:(0,ae.jsx)(qn.Z,{}),loading:Tr,onClick:ca})})]})},Nn),gr=function(ye){var je=ye.clientSize,In=ye.naturalSize,It=ye.onAutoSave,Tn=ye.setDrawData,jn=ye.translateObject,Mn=ye.framesData,Wn=ye.setFramesData,er=(0,d.x)([]),sr=s()(er,2),Jn=sr[0],Pn=sr[1],Sa=(0,n.useState)(0),Fr=s()(Sa,2),Xn=Fr[0],Br=Fr[1],Tr=20,ra=function(_r){if(It){var Ha=_r.drawData.objectList.map(function(sa){return(jn==null?void 0:jn(sa))||{}});It(Ha,In)}},Yr=(0,n.useCallback)(function(Lr){Lr.framesData&&(Wn==null||Wn(t()(t()({},Lr.framesData),{},{objects:(0,w.nF)(Lr.framesData.objects,Lr.clientSize,je)})));var _r=(0,w.hv)(Lr.drawData,Lr.clientSize,je);Tn(_r),ra(Lr)},[je.width,je.height]),ca=(0,n.useCallback)(function(){Xn>0&&(Br(function(Lr){return Lr-1}),Yr(Jn[Xn-1]))},[Xn,Jn,Yr]),Dr=(0,n.useCallback)(function(){XnTr&&V.shift(),Br(V.length-1)}),ra(sa)},or=(0,n.useCallback)(function(){Pn([])},[]),mr=function(_r){typeof _r=="function"?Tn(function(Ha){_r(Ha),Mr((0,g.cloneDeep)(Ha))}):(Tn(_r),Mr((0,g.cloneDeep)(_r)))};return{updateHistory:Mr,undo:ca,redo:Dr,clearHistory:or,setDrawDataWithHistory:mr,hadChangeRecord:Jn.length>1&&Xn!==0}},aa=gr,Pr=function(ye){var je=ye.mode,In=ye.drawData,It=ye.setDrawData,Tn=ye.setDrawDataWithHistory,jn=ye.framesData,Mn=ye.setFramesData,Wn=ye.setEditState,er=ye.translateToObject,sr=ye.judgeEditingAttribute,Jn=ye.limitActiveObjectAfterCreate,Pn=ye.updateHistory,Sa=function(mr){It(function(Lr){var _r=(0,g.cloneDeep)(Lr),Ha=(0,g.cloneDeep)(jn);if(_r.initialized=!0,Ha){var sa=mr.map(function(k){return(er==null?void 0:er(k,Ha.list.length))||{}});Ha.objects=sa.filter(function(k){return!!k.objects}).map(function(k){return k.objects}),_r.classifications=sa.filter(function(k){return!!k.classification}).map(function(k){return k.classification}),_r.objectList=Ha.objects.map(function(k){return k[Ha.activeIndex]}),Mn==null||Mn(Ha)}else{var V=mr.map(function(k){return(er==null?void 0:er(k))||{}});_r.classifications=V.filter(function(k){return k.type===y.gr.Classification}),_r.objectList=V.filter(function(k){return k.type!==y.gr.Custom&&k.type!==y.gr.Classification})}return Pn((0,g.cloneDeep)(_r),(0,g.cloneDeep)(Ha)),_r})},Fr=function(mr,Lr){je===U.je.Edit&&Tn(function(_r){_r.objectList.push(mr),Jn?(_r.creatingObject=void 0,_r.activeObjectIndex=-1):(_r.creatingObject=t()({},mr),_r.activeObjectIndex=Lr?-1:_r.objectList.length-1,sr&&(_r.editingAttribute=sr(mr,_r.objectList.length-1)))})},Xn=function(mr){if(!(je!==U.je.Edit||!In.objectList[mr])){Wn(function(Ha){Ha.focusObjectIndex=-1,Ha.focusEleIndex=-1,Ha.focusEleType=y.Yq.Rect});var Lr=(0,g.cloneDeep)(jn),_r=(0,g.cloneDeep)(In);Lr&&Lr.objects[mr]&&(Lr.objects.splice(mr,1),Mn==null||Mn(Lr)),_r.objectList[mr]&&(_r.objectList.splice(mr,1),_r.activeObjectIndex=-1,_r.creatingObject=void 0,_r.editingAttribute=void 0),It(_r),Pn((0,g.cloneDeep)(_r),(0,g.cloneDeep)(Lr))}},Br=(0,n.useCallback)(function(){if(je===U.je.Edit){Wn(function(Lr){Lr.focusObjectIndex=-1,Lr.focusEleIndex=-1,Lr.focusEleType=y.Yq.Rect});var or=(0,g.cloneDeep)(jn),mr=(0,g.cloneDeep)(In);or&&(or.objects=[],Mn==null||Mn(or)),mr.objectList=[],mr.activeObjectIndex=-1,mr.creatingObject=void 0,mr.editingAttribute=void 0,It(mr),Pn((0,g.cloneDeep)(mr),(0,g.cloneDeep)(or))}},[je]),Tr=function(mr,Lr){je!==U.je.Edit||!In.objectList[Lr]||Tn(function(_r){mr.labelId!==_r.objectList[Lr].labelId&&sr&&(_r.editingAttribute=sr(mr,Lr)),_r.objectList[Lr]=mr,_r.creatingObject&&_r.activeObjectIndex===Lr&&(_r.creatingObject=t()({},mr))})},ra=function(mr){Tn(function(Lr){Lr.objectList=mr,Lr.creatingObject&&Lr.objectList[Lr.activeObjectIndex]&&(Lr.creatingObject=t()({},Lr.objectList[Lr.activeObjectIndex]))})},Yr=function(mr,Lr){In.objectList[Lr]&&It(function(_r){_r.objectList[Lr]=mr,_r.creatingObject&&_r.activeObjectIndex===Lr&&(_r.creatingObject=t()({},mr))})},ca=function(mr){It(function(Lr){Lr.objectList=mr,Lr.creatingObject&&Lr.objectList[Lr.activeObjectIndex]&&(Lr.creatingObject=t()({},Lr.objectList[Lr.activeObjectIndex]))})},Dr=(0,n.useMemo)(function(){return In.objectList.filter(function(or){return or.status===U.TK.Commited})},[In.isBatchEditing,In.objectList]),Mr=(0,n.useMemo)(function(){return In.objectList[In.activeObjectIndex]||In.creatingObject},[In.objectList,In.activeObjectIndex,In.creatingObject]);return{initObjectList:Sa,addObject:Fr,removeObject:Xn,removeAllObjects:Br,updateObject:Tr,updateAllObject:ra,updateObjectWithoutHistory:Yr,updateAllObjectWithoutHistory:ca,commitedObjects:Dr,currObject:Mr}},Fn=Pr,En=e(95073),wn=e(43112),ar=e(5397),fr=e(21325),Kr=e(68716),ea={screenX:NaN,screenY:NaN,clientX:NaN,clientY:NaN,pageX:NaN,pageY:NaN,elementX:NaN,elementY:NaN,elementH:NaN,elementW:NaN,elementPosX:NaN,elementPosY:NaN},ya=function(Ue){var ye=(0,wn.CR)((0,ar.Z)(ea),2),je=ye[0],In=ye[1];return(0,fr.Z)("mousemove",function(It){var Tn=It.screenX,jn=It.screenY,Mn=It.clientX,Wn=It.clientY,er=It.pageX,sr=It.pageY,Jn={screenX:Tn,screenY:jn,clientX:Mn,clientY:Wn,pageX:er,pageY:sr,elementX:NaN,elementY:NaN,elementH:NaN,elementW:NaN,elementPosX:NaN,elementPosY:NaN},Pn=(0,Kr.n)(Ue);if(Pn){var Sa=Pn.getBoundingClientRect(),Fr=Sa.left,Xn=Sa.top,Br=Sa.width,Tr=Sa.height;Jn.elementPosX=Fr+window.pageXOffset,Jn.elementPosY=Xn+window.pageYOffset,Jn.elementX=er-Jn.elementPosX,Jn.elementY=sr-Jn.elementPosY,Jn.elementW=Br,Jn.elementH=Tr}In(Jn)},{target:function(){return document}}),je},vr=e(41260);function zr(Ue){var ye=Ue.isRequiring,je=Ue.visible,In=Ue.minPadding,It=In===void 0?{top:0,left:0}:In,Tn=Ue.allowMove,jn=Ue.drawData,Mn=Ue.cursorSize,Wn=Ue.onClickMaskBg,er=Ue.hideReferenceLine,sr=(0,n.useRef)(null),Jn=(0,En.Z)(function(){return sr.current}),Pn=ya(function(){return sr.current}),Sa=(0,n.useState)({width:0,height:0}),Fr=s()(Sa,2),Xn=Fr[0],Br=Fr[1],Tr=(0,d.x)({width:Xn.width,height:Xn.height,scale:1}),ra=s()(Tr,2),Yr=ra[0],ca=ra[1],Dr=(0,n.useRef)({x:0,y:0}),Mr=(0,n.useRef)(void 0),or=(0,n.useMemo)(function(){return t()(t()({},Pn),{},{elementW:Yr.width,elementH:Yr.height,elementX:Pn.elementX-Dr.current.x,elementY:Pn.elementY-Dr.current.y})},[Pn,Yr]),mr=(0,d.x)(null),Lr=s()(mr,2),_r=Lr[0],Ha=Lr[1],sa=function(pa,Ma){if(pa!=null&&pa.width&&Ma!==null&&Ma!==void 0&&Ma.height){var _a=Ma.width,Pa=Ma.height,Fa=(0,w.t9)(pa.width,pa.height,_a-It.left*2,Pa-It.top*2),Aa=s()(Fa,3),$a=Aa[0],Ir=Aa[1],nr=Aa[2];Dr.current={x:(_a-$a)*.5,y:(Pa-Ir)*.5},ca({scale:nr,width:pa.width*nr,height:pa.height*nr}),Mr.current=void 0}};(0,n.useEffect)(function(){Xn&&Jn&&sa(Xn,Jn)},[Jn]);var V=function(){if(Jn){var pa=Jn==null?void 0:Jn.width,Ma=Jn==null?void 0:Jn.height,_a=.5,Pa=.5,Fa=pa/2,Aa=Ma/2;Mr.current&&(_a=Mr.current.posRatioX,Pa=Mr.current.posRatioY,Fa=Mr.current.mouseX,Aa=Mr.current.mouseY);var $a=Fa-Yr.width*_a,Ir=Aa-Yr.height*Pa;Dr.current={x:$a,y:Ir}}};(0,n.useEffect)(function(){V()},[Yr]);var k=function(pa,Ma,_a){!je||ye||ca(function(Pa){var Fa=pa?Math.min(y.Fv,(0,vr.O)(Pa.scale+Ma,2)):Math.max(y.vL,(0,vr.O)(Pa.scale-Ma,2));if((!Mr.current||Pn.elementX!==Mr.current.mouseX||Pn.elementY!==Mr.current.mouseY)&&!_a&&!isNaN(or.elementX)&&!isNaN(Pn.elementX)&&Yr.width){var Aa={posRatioX:or.elementX/Yr.width,posRatioY:or.elementY/Yr.height,mouseX:Pn.elementX,mouseY:Pn.elementY};Mr.current=Aa}Pa.scale=Fa,Pa.width=Xn.width*Fa,Pa.height=Xn.height*Fa})},pe=(0,n.useCallback)(function(){k(!0,y.yj,!0)},[y.yj,k]),Ae=(0,n.useCallback)(function(){k(!1,y.yj,!0)},[y.yj,k]),Ge=function(pa){if(!(!je||ye)){var Ma=pa.deltaY;Ma>0?k(!1,y.oP):Ma<0&&k(!0,y.oP)}},dt=(0,n.useCallback)(function(){Mr.current=void 0,Jn&&Xn&&sa(Xn,Jn)},[Xn.width,Xn.height,Jn==null?void 0:Jn.width,Jn==null?void 0:Jn.height]);(0,n.useEffect)(function(){je||(Br({width:0,height:0}),ca({scale:1,width:0,height:0}),Dr.current={x:0,y:0},Mr.current=void 0)},[je]);var Ht=(0,n.useState)(!1),Jt=s()(Ht,2),Gt=Jt[0],cn=Jt[1];(0,fr.Z)("mousedown",function(){!je||!sr.current||!(0,w.jt)(Pn)||(cn(!0),Ha({x:or.elementX,y:or.elementY}))}),(0,fr.Z)("mousemove",function(){if(je&&_r&&Tn&&Gt){var Qr=or.elementX-_r.x,pa=or.elementY-_r.y,Ma=Dr.current,_a=Ma.x,Pa=Ma.y;Dr.current={x:_a+Qr,y:Pa+pa}}}),(0,fr.Z)("mouseup",function(){if(cn(!1),!(!je||!Tn)&&_r){Ha(null);return}}),(0,n.useEffect)(function(){Ha(Tn?{x:or.elementX,y:or.elementY}:null)},[Tn]);var rr=function(pa,Ma){var _a=pa.target,Pa={width:_a.naturalWidth,height:_a.naturalHeight};Br(Pa),Jn&&Pa&&!Ma&&sa(Pa,Jn)},On=function(pa){(0,w.jt)(or)||Wn==null||Wn(pa)},Zn=(0,n.useMemo)(function(){var Qr=[y.jB.AutoEdgeStitching,y.jB.AutoSegmentByStroke,y.jB.BrushAdd,y.jB.BrushErase].includes(jn.selectedSubTool);return jn.creatingObject&&jn.activeObjectIndex>-1&&[y.gr.Mask,y.gr.Polygon].includes(jn.creatingObject.type)?Qr:jn.selectedTool!==y.ru.Drag&&!jn.isBatchEditing?[y.ru.Mask,y.ru.Polygon].includes(jn.selectedTool)&&Qr:!1},[jn.selectedTool,jn.selectedSubTool]),Gr=(0,n.useMemo)(function(){return jn.selectedTool!==y.ru.Drag&&!Zn&&!er},[jn.selectedTool,Zn,er]),jr=function(pa){var Ma=pa.children,_a=pa.className;return je?(0,ae.jsxs)("div",{ref:sr,onWheel:Ge,onClick:On,className:_a,children:[Ma,Gr&&!Tn&&(0,w.jt)(or)&&(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("div",{style:{position:"absolute",backgroundColor:"#fff",width:Pn.elementX-18,height:1,left:0,top:0,transform:"translateY(".concat(Pn.elementY,"px)")}}),(0,ae.jsx)("div",{style:{position:"absolute",backgroundColor:"#fff",height:1,width:Pn.elementW-Pn.elementX-18,right:0,top:0,transform:"translateY(".concat(Pn.elementY,"px)")}}),(0,ae.jsx)("div",{style:{position:"absolute",backgroundColor:"#fff",width:1,height:Pn.elementY-18,left:0,top:0,transform:"translateX(".concat(Pn.elementX-1,"px")}}),(0,ae.jsx)("div",{style:{position:"absolute",backgroundColor:"#fff",width:1,height:Pn.elementH-Pn.elementY-18,left:0,bottom:0,transform:"translateX(".concat(Pn.elementX-1,"px")}})]}),Zn&&Mn>0&&(0,w.jt)(Pn)&&(0,w.jt)(or)&&!Tn&&(0,ae.jsx)("div",{style:{position:"fixed",backgroundColor:"rgba(255, 255, 255, 0.5)",border:"1px solid rgba(255, 255, 255, 0.7)",width:Mn*Yr.scale,height:Mn*Yr.scale,borderRadius:Mn*Yr.scale/2,left:0,top:0,transformOrigin:"top left",transform:"translate(".concat(Pn.clientX-Mn*Yr.scale/2,"px, ").concat(Pn.clientY-Mn*Yr.scale/2,"px)")}})]}):null};return{CanvasContainer:jr,scale:Yr.scale,containerRef:sr,naturalSize:Xn,clientSize:{width:Yr.width,height:Yr.height},containerSize:Jn,containerMouse:t()(t()({},Pn),{},{elementW:(Jn==null?void 0:Jn.width)||Pn.elementW,elementH:(Jn==null?void 0:Jn.height)||Pn.elementH}),contentMouse:or,imagePos:Dr,isMousePress:Gt,onLoadImg:rr,onZoomIn:pe,onZoomOut:Ae,onWheelMove:Ge,onReset:dt}}var Oa=function(ye){var je=ye.topCanvas,In=ye.editState,It=ye.drawData,Tn=(0,n.useCallback)(function(jn,Mn){if(je){var Wn=jn;if(Mn)switch(Mn){case w.Nm.TOP:case w.Nm.BOTTOM:Wn="ns-resize";break;case w.Nm.TOP_LEFT:case w.Nm.BOTTOM_RIGHT:Wn="nwse-resize";break;case w.Nm.BOTTOM_LEFT:case w.Nm.TOP_RIGHT:Wn="nesw-resize";break;default:Wn="ew-resize"}Wn!==je.style.cursor&&(je.style.cursor=Wn)}},[je]);return(0,n.useEffect)(function(){In.allowMove?Tn("grabbing"):It.selectedTool===y.ru.Drag?Tn("grab"):Tn("crosshair")},[In.allowMove]),{updateMouseCursor:Tn}},va=Oa,Vn=function(ye){var je=ye.visible,In=ye.mode,It=ye.drawData,Tn=ye.categories,jn=ye.isMousePress,Mn=ye.setDrawData,Wn=ye.setEditState,er=ye.onSaveAnnotations,sr=ye.onAcceptAnnotations,Jn=ye.onRejectAnnotations,Pn=ye.onChangeObjectHidden,Sa=ye.onChangeCategoryHidden,Fr=ye.removeObject,Xn=ye.addObject;return(0,Et.Z)($e[Wt.Save].shortcut,function(Br){Br.preventDefault(),In===U.je.Edit&&(er==null||er())},{exactMatch:!0}),(0,Et.Z)($e[Wt.Accept].shortcut,function(Br){Br.preventDefault(),sr==null||sr()},{exactMatch:!0}),(0,Et.Z)($e[Wt.Reject].shortcut,function(Br){Br.preventDefault(),Jn==null||Jn()},{exactMatch:!0}),(0,Et.Z)($e[Wt.PanImage].shortcut,function(Br){je&&(Br.preventDefault(),Br.type==="keydown"&&!jn?Wn(function(Tr){Tr.allowMove=!0}):Br.type==="keyup"&&Wn(function(Tr){Tr.allowMove=!1}))},{events:["keydown","keyup"]}),(0,Et.Z)($e[Wt.CancelCurrObject].shortcut,function(Br){je&&Br.type==="keyup"&&(It.creatingObject?Mn(function(Tr){var ra,Yr,ca,Dr,Mr,or;((ra=Tr.creatingObject)===null||ra===void 0?void 0:ra.type)===y.gr.Mask&&(Yr=Tr.creatingObject)!==null&&Yr!==void 0&&(ca=Yr.maskStep)!==null&&ca!==void 0&&(Dr=ca.points)!==null&&Dr!==void 0&&Dr.length&&(Mr=Tr.creatingObject)!==null&&Mr!==void 0&&(or=Mr.tempMaskSteps)!==null&&or!==void 0&&or.length?Tr.creatingObject.maskStep=void 0:(Tr.creatingObject=void 0,Tr.activeObjectIndex=-1),Tr.AIAnnotation&&(Tr.prompt={})}):Mn(function(Tr){Tr.activeObjectIndex=-1}))},{events:["keydown","keyup"]}),(0,Et.Z)($e[Wt.HideCurrObject].shortcut,function(Br){It.activeObjectIndex<0||(Br.preventDefault(),Pn(It.activeObjectIndex,!It.objectList[It.activeObjectIndex].hidden))},{exactMatch:!0}),(0,Et.Z)($e[Wt.HideCurrCategory].shortcut,function(Br){var Tr;if(!(It.activeObjectIndex<0)){Br.preventDefault();var ra=It.objectList[It.activeObjectIndex],Yr=ra.labelId,ca=ra.hidden,Dr=((Tr=Tn.find(function(Mr){return Mr.id===Yr}))===null||Tr===void 0?void 0:Tr.name)||"";Sa(Dr,!ca)}},{exactMatch:!0}),(0,Et.Z)($e[Wt.DeleteCurrObject].shortcut,function(Br){!je||In!==U.je.Edit||["Delete","Backspace"].includes(Br.key)&&It.activeObjectIndex>-1&&Fr(It.activeObjectIndex)},{events:["keyup"]}),(0,Et.Z)(["ctrl"],function(Br){It.activeObjectIndex>-1||Wn(function(Tr){var ra=Br.type==="keydown";if(Tr.isCtrlPressed===ra)return Tr;Tr.isCtrlPressed=Br.type==="keydown",Tr.focusObjectIndex=-1,Tr.foucsObjectAllIndexs=[]})},{events:["keydown","keyup"]}),(0,Et.Z)(["v"],function(Br){Wn(function(Tr){var ra=Br.type==="keydown";if(Tr.hideCreatingObject===ra)return Tr;Tr.hideCreatingObject=Br.type==="keydown"})},{events:["keydown","keyup"]}),(0,Et.Z)(["enter"],function(){if(!It.AIAnnotation&&It.creatingObject&&It.creatingObject.type===y.gr.Polygon){var Br=It.creatingObject,Tr=Br.polygon,ra=Br.type,Yr=Br.hidden,ca=Br.labelId,Dr=Br.status,Mr=Br.color;if(Tr&&Tr.group&&Tr.group[0].length>2){var or={polygon:Tr,type:ra,hidden:Yr,labelId:ca,status:Dr,color:Mr};Xn(or)}}},{exactMatch:!0,events:["keyup"]}),{}},Bn=Vn,pr=function(ye){var je=ye.mode,In=ye.manualMode,It=ye.drawData,Tn=ye.setDrawData,jn=ye.setDrawDataWithHistory,Mn=ye.setAiLabels,Wn=ye.editState,er=ye.setEditState,sr=ye.clientSize,Jn=ye.naturalSize,Pn=ye.addObject,Sa=ye.updateObject,Fr=ye.updateAllObject,Xn=ye.getAnnotColor,Br=ye.onAiAnnotation,Tr=(0,P.bU)(),ra=Tr.localeText,Yr=(0,n.useCallback)(function(On){var Zn;return Wn.annotsDisplayOptions.colorByCategory?Xn(On):It.activeObjectIndex>-1?It.objectList[It.activeObjectIndex].color:((Zn=It.creatingObject)===null||Zn===void 0?void 0:Zn.color)||Xn(On)},[Wn.annotsDisplayOptions.colorByCategory,Xn,It.activeObjectIndex,It.objectList,It.creatingObject]),ca=function(Zn){var Gr=It.objectList[It.activeObjectIndex];if(Gr){var jr=t()(t()({},It.objectList[It.activeObjectIndex]),{},{attributes:void 0});jr.labelId=Zn,Wn.annotsDisplayOptions.colorByCategory&&(jr.color=Xn(Zn)),jr.type===y.gr.Mask&&jr.maskRle&&(jr.maskCanvasElement=(0,ee.ei)(jr.maskRle,Jn,jr.color)),It.isBatchEditing&&(jr.conf=1),Sa(jr,It.activeObjectIndex)}er(function(Qr){Qr.latestLabelId=Zn})},Dr=(0,n.useCallback)(function(On){var Zn,Gr;if(((Zn=It.creatingObject)===null||Zn===void 0?void 0:Zn.type)===y.gr.Mask){var jr,Qr,pa=(0,ee.G9)(sr,Jn,((jr=It.creatingObject)===null||jr===void 0?void 0:jr.tempMaskSteps)||[],(Qr=It.creatingObject)===null||Qr===void 0?void 0:Qr.maskCanvasElement);if(pa&&pa.length>0){var Ma=Yr(On),_a=t()(t()({},It.objectList[It.activeObjectIndex]),{},{type:y.gr.Mask,labelId:On,hidden:!1,maskRle:pa,maskCanvasElement:(0,ee.ei)(pa,Jn,Ma),conf:1,status:U.TK.Commited,color:Ma});It.activeObjectIndex>-1?Sa(_a,It.activeObjectIndex):Pn(_a,!0)}else pa?T.ZP.warning(ra("DDSAnnotator.anno.mask.emptyWarning")):T.ZP.error(ra("DDSAnnotator.anno.mask.translateToRleError"))}else if(((Gr=It.creatingObject)===null||Gr===void 0?void 0:Gr.type)===y.gr.Polygon){var Pa,Fa=Xn(On),Aa=t()(t()({},It.objectList[It.activeObjectIndex]),{},{type:y.gr.Polygon,labelId:On,hidden:!1,polygon:(Pa=It.creatingObject)===null||Pa===void 0?void 0:Pa.polygon,conf:1,status:U.TK.Commited,color:Fa});It.activeObjectIndex>-1?Sa(Aa,It.activeObjectIndex):Pn(Aa,!0)}else{var $a=t()({},It.objectList[It.activeObjectIndex]);$a.labelId=On,Wn.annotsDisplayOptions.colorByCategory&&($a.color=Xn(On)),It.isBatchEditing&&($a.conf=1),Sa($a,It.activeObjectIndex)}Tn(function(Ir){Ir.creatingObject=void 0,Ir.prompt={},Ir.activeObjectIndex=-1,[y.jB.PenErase,y.jB.BrushErase].includes(Ir.selectedSubTool)&&(Ir.selectedSubTool=y.jB.PenAdd)}),er(function(Ir){Ir.latestLabelId=On})},[It.creatingObject,It.activeObjectIndex,It.objectList]),Mr=(0,n.useCallback)(function(){Tn(function(On){On.creatingObject=void 0,On.activeObjectIndex=-1})},[]),or=(0,n.useCallback)(function(){jn(function(On){var Zn=(0,g.cloneDeep)(It.objectList).filter(function(Gr){return Gr.status!==U.TK.Unchecked}).map(function(Gr){return Gr.status=U.TK.Commited,Gr.type!==y.gr.Mask&&(Gr.color=Xn(Gr.labelId)),Gr});On.objectList=Zn,On.isBatchEditing=!1,On.activeObjectIndex=-1,On.creatingObject=void 0,On.prompt={}}),Mn(void 0)},[It.objectList]),mr=(0,n.useCallback)(function(){jn(function(On){var Zn=(0,g.cloneDeep)(It.objectList).filter(function(Gr){return Gr.status===U.TK.Commited});On.objectList=Zn,On.isBatchEditing=!1,On.activeObjectIndex=-1,On.creatingObject=void 0,On.prompt={}})},[It.objectList]),Lr=(0,n.useCallback)(function(On){je!==U.je.Edit||On===It.selectedTool&&It.AIAnnotation||It.isBatchEditing||Tn(function(Zn){Zn.selectedTool=On,On===y.ru.Mask?Zn.selectedSubTool=Zn.AIAnnotation?y.jB.AutoSegmentByBox:y.jB.PenAdd:On===y.ru.Polygon?Zn.selectedSubTool=y.jB.AutoSegmentByBox:On===y.ru.Rectangle&&Zn.selectedModel===y.HE.IVP&&(Zn.selectedSubTool=y.jB.PositiveVisualPrompt),Zn.AIAnnotation=!1,Zn.activeObjectIndex=-1,Zn.creatingObject=void 0,Zn.editingAttribute=void 0,Zn.prompt={}})},[je,It.selectedTool,It.isBatchEditing,It.selectedModel]),_r=(0,n.useCallback)(function(On){je!==U.je.Edit||On===It.selectedSubTool||It.selectedTool===y.ru.Mask&&It.isBatchEditing||(Tn(function(Zn){Zn.selectedSubTool=On}),On===y.jB.AutoEdgeStitching&&It.creatingObject&&Dr(It.creatingObject.labelId||Wn.latestLabelId||""))},[je,It.selectedSubTool,It.isBatchEditing]),Ha=(0,n.useCallback)(function(On,Zn){Tn(function(Gr){Gr.selectedTool=On,Gr.selectedSubTool=Zn})},[]),sa=(0,n.useCallback)(function(){jn(function(On){On.objectList=On.objectList.filter(function(Zn){return Zn.status===U.TK.Commited}),On.AIAnnotation=!1,On.isBatchEditing=!1,On.creatingObject=void 0,On.prompt={}})},[]),V=(0,n.useCallback)(function(On){je===U.je.Edit&&Tn(function(Zn){Zn.brushSize=On})},[je]),k=(0,n.useCallback)(function(On){je===U.je.Edit&&Tn(function(Zn){Zn.pointResolution=On})},[je]),pe=(0,n.useCallback)(function(On,Zn){if(k(On),Zn&&It.creatingObject&&It.creatingObject.type===y.gr.Polygon&&It.prompt.promptsQueue&&It.prompt.promptsQueue.length>0){var Gr=t()(t()({},It),{},{pointResolution:On});Br({type:y.gr.Polygon,drawData:Gr,promptsQueue:It.prompt.promptsQueue})}},[It.creatingObject,It.prompt]),Ae=function(){c.Z.info({centered:!0,closable:!0,title:ra("DDSAnnotator.smart.infoModal.title"),content:ra("DDSAnnotator.smart.infoModal.content"),okText:ra("DDSAnnotator.smart.infoModal.action"),onOk:function(){window.open("https://deepdataspace.com","_blank")}})},Ge=(0,n.useCallback)(function(On){je!==U.je.Edit||It.isBatchEditing||In||Tn(function(Zn){Zn.AIAnnotation=On})},[je,It.isBatchEditing]),dt=(0,n.useCallback)(function(On){jn(function(Zn){var Gr=(0,g.cloneDeep)(It.objectList).map(function(jr){return jr.status===U.TK.Commited?jr:jr.conf===void 0?(jr.status=U.TK.Unchecked,jr):(jr.status=jr.confOn[1]?U.TK.Unchecked:U.TK.Checked,jr)});Zn.objectList=Gr})},[It.objectList]),Ht=(0,n.useCallback)(function(On){jn(function(Zn){var Gr=(0,g.cloneDeep)(It.objectList).map(function(Qr){return Qr.status===U.TK.Commited||(Qr.status=Qr.conf&&Qr.conf>=On?U.TK.Checked:U.TK.Unchecked),Qr});Zn.objectList=Gr;var jr=Gr.filter(function(Qr){return Qr.status===U.TK.Checked}).length;T.ZP.success(ra("DDSAnnotator.smart.tip.annotationApplied",{count:jr}))})},[It.objectList]),Jt=(0,n.useCallback)(function(On){er(function(Zn){Zn.imageDisplayOptions=On})},[]),Gt=(0,n.useCallback)(function(On){er(function(Zn){Zn.annotsDisplayOptions=On})},[]),cn=(0,n.useCallback)(function(){if(!(!It.objectList||!It.objectList.length)){var On=(0,g.cloneDeep)(It.objectList).map(function(Zn){var Gr=Xn(Zn.labelId);return Zn.type===y.gr.Mask&&Zn.maskRle&&Zn.maskRle.length>0?t()(t()({},Zn),{},{color:Gr,maskCanvasElement:(0,ee.ei)(Zn.maskRle,Jn,Gr)}):t()(t()({},Zn),{},{color:Gr})});Fr(On)}},[It.objectList,Xn]),rr=(0,n.useCallback)(function(On){Tn(function(Zn){Zn.selectedModel=On,On===y.HE.IVP?Zn.selectedSubTool=y.jB.PositiveVisualPrompt:Zn.selectedSubTool=y.jB.PenAdd})},[]);return{onChangeObjectLabel:ca,onFinishCurrCreate:Dr,onCloseAnnotationEditor:Mr,onAcceptValidObjects:or,onAbortBatchObjects:mr,selectTool:Lr,selectSubTool:_r,forceChangeTool:Ha,onExitAIAnnotation:sa,setBrushSize:V,activeAIAnnotation:Ge,displayAIModeUnavailableModal:Ae,onChangeSkeletonConf:dt,onChangeLimitConf:Ht,onChangeImageDisplayOpts:Jt,onChangeAnnotsDisplayOpts:Gt,onChangeColorMode:cn,onChangePointResolution:pe,onSelectModel:rr}},qr=pr,Er=e(23671),At=e(53807),tn=function(Ue,ye){if(ye===void 0&&(ye=0),typeof requestAnimationFrame=="undefined")return{id:setInterval(Ue,ye)};var je=new Date().getTime(),In={id:0},It=function(){var Tn=new Date().getTime();Tn-je>=ye&&(Ue(),je=new Date().getTime()),In.id=requestAnimationFrame(It)};return In.id=requestAnimationFrame(It),In};function yn(Ue){return typeof cancelAnimationFrame=="undefined"}var lo=function(Ue){if(yn(Ue.id))return clearInterval(Ue.id);cancelAnimationFrame(Ue.id)};function Ao(Ue,ye,je){var In=je==null?void 0:je.immediate,It=(0,Er.Z)(Ue),Tn=(0,n.useRef)();(0,n.useEffect)(function(){if(!(!(0,At.hj)(ye)||ye<0))return In&&It.current(),Tn.current=tn(function(){It.current()},ye),function(){Tn.current&&lo(Tn.current)}},[ye]);var jn=(0,n.useCallback)(function(){Tn.current&&lo(Tn.current)},[]);return jn}var Ka=Ao,Qa=40,qa=10,$o=function(ye){var je=ye.visible,In=ye.mode,It=ye.drawData,Tn=ye.setDrawData,jn=ye.editState,Mn=ye.setEditState,Wn=ye.clientSize,er=ye.contentMouse,sr=ye.categories,Jn=ye.updateRender,Pn=ye.updateMouseCursor,Sa=ye.objectHooksMap,Fr=ye.imagePos,Xn=ye.containerMouse,Br=ye.limitActiveObject,Tr=ye.getAnnotColor,ra=(0,n.useRef)({topMin:0,topMax:0,leftMin:0,leftMax:0}),Yr=(0,n.useState)(void 0),ca=s()(Yr,2),Dr=ca[0],Mr=ca[1];Ka(function(){var Ae,Ge,dt,Ht,Jt=!1;(Ae=ra.current.direction)!==null&&Ae!==void 0&&Ae.includes("TOP")&&Fr.current.yra.current.topMin&&(Fr.current.y-=8,Jt=!0),(dt=ra.current.direction)!==null&&dt!==void 0&&dt.includes("LEFT")&&Fr.current.xra.current.leftMin&&(Fr.current.x-=8,Jt=!0),Jt||Mr(void 0),Jn()},Dr);var or=function(){var Ge="",dt=Qa,Ht=Xn.elementH-er.elementH-Qa,Jt=Qa,Gt=Xn.elementW-er.elementW-Qa;Xn.elementY<=qa&&Fr.current.y=Xn.elementH-qa&&Fr.current.y>Ht&&(Ge="BOTTOM"),Xn.elementX<=qa&&Fr.current.x=Xn.elementW-qa&&Fr.current.x>Gt&&(Ge+=Ge?"_RIGHT":"RIGHT"),Ge?(ra.current={direction:Ge,topMax:dt,topMin:Ht,leftMax:Jt,leftMin:Gt},Mr(16)):Mr(void 0),Jn()},mr=function(){var Ge;return It.isBatchEditing&&(It.selectedTool===y.ru.Rectangle&&jn.isCtrlPressed?Ge=function(Ht){return Ht.status===U.TK.Unchecked}:Ge=function(Ht){return Ht.status!==U.TK.Unchecked}),Ge},Lr=function(){if((0,w.jt)(Xn)){var Ge=(0,w.Z0)(Wn,er,It.activeObjectIndex,It.objectList,mr());if(Ge>-1&&Ge===It.activeObjectIndex){Mn(function(rr){rr.focusObjectIndex=Ge});var dt=It.objectList[It.activeObjectIndex],Ht=(0,w.o7)(er,dt),Jt=Ht.focusEleIndex,Gt=Ht.focusEleType,cn=Ht.focusPolygonInfo;Mn(function(rr){rr.focusEleIndex=Jt,rr.focusEleType=Gt,rr.focusPolygonInfo=cn})}else It.selectedTool===y.ru.Drag||It.isBatchEditing?Mn(function(rr){rr.focusObjectIndex=Ge,rr.focusEleIndex=-1,rr.focusEleType=y.Yq.None,rr.focusPolygonInfo={index:-1,pointIndex:-1,lineIndex:-1}}):Mn(function(rr){rr.focusObjectIndex=-1,rr.focusEleIndex=-1,rr.focusEleType=y.Yq.None,rr.focusPolygonInfo={index:-1,pointIndex:-1,lineIndex:-1}})}},_r=(0,n.useCallback)(function(Ae,Ge){if(!(Ae<0)){var dt=(Ge==null?void 0:Ge.button)===2;if(dt){var Ht=(0,w.RF)(Wn,er,It.objectList,mr());Ht.length>0?Mn(function(Jt){Jt.foucsObjectAllIndexs=Ht}):Mn(function(Jt){Jt.foucsObjectAllIndexs=[]});return}Tn(function(Jt){var Gt;Jt.selectedTool===y.ru.Rectangle&&Jt.isBatchEditing&&jn.isCtrlPressed?(Jt.objectList[Ae].status=U.TK.Checked,Mn(function(cn){cn.focusObjectIndex=-1})):(Jt.activeObjectIndex=Ae,It.objectList[Ae].frameEmpty?Jt.creatingObject=void 0:Jt.creatingObject=t()(t()({},It.objectList[Ae]),{},{currIndex:void 0,startPoint:void 0,tempMaskSteps:[],maskStep:void 0}),Jt.selectedTool!==y.ru.Drag&&Jt.objectList[Ae]&&y.Zo[Jt.selectedTool]!==Jt.objectList[Ae].type&&(Jt.selectedTool=y.ru.Drag)),((Gt=Jt.editingAttribute)===null||Gt===void 0?void 0:Gt.index)!==Ae&&(Jt.editingAttribute=void 0)})}},[Wn.width,Wn.height,er,It.objectList]),Ha=function(){if(!jn.foucsObjectAllIndexs.length)return(0,ae.jsx)(ae.Fragment,{});var Ge=function(Gt){Gt.stopPropagation()},dt=function(Gt){Mn(function(cn){cn.focusObjectIndex=Gt})},Ht=function(Gt){_r(Gt),Mn(function(cn){cn.foucsObjectAllIndexs=[]})};return(0,ae.jsx)("div",{className:"dds-annotator-dropdown-options",onMouseDown:Ge,onMouseUp:Ge,onMouseMove:Ge,onContextMenu:function(Gt){return Gt.preventDefault()},children:jn.foucsObjectAllIndexs.map(function(Jt){var Gt,cn,rr;return(0,ae.jsxs)("div",{className:"dds-annotator-dropdown-options-object",onMouseEnter:function(){return dt(Jt)},onMouseDown:function(){return Ht(Jt)},children:[(0,ae.jsx)("div",{className:"dds-annotator-dropdown-options-object-dot",style:{backgroundColor:((Gt=It.objectList[Jt])===null||Gt===void 0?void 0:Gt.color)||"#fff"}}),((cn=sr.find(function(On){var Zn;return On.id===((Zn=It.objectList[Jt])===null||Zn===void 0?void 0:Zn.labelId)}))===null||cn===void 0?void 0:cn.name)||"",It.isBatchEditing&&" (".concat((0,vr.O)(((rr=It.objectList[Jt])===null||rr===void 0?void 0:rr.conf)||0),")")]},Jt)})})},sa=function(Ge){if(!(!je||jn.allowMove||jn.isRequiring||!(0,w.jt)(er)||!(0,w.jt)(Xn))&&(Mn(function(Ht){Ht.foucsObjectAllIndexs=[]}),!(It.creatingObject&&It.activeObjectIndex>-1&&In===U.je.Edit&&Sa[It.creatingObject.type].startEditingWhenMouseDown({event:Ge,object:It.creatingObject}))))if(It.selectedTool!==y.ru.Drag&&(!It.isBatchEditing||It.selectedModel===y.HE.IVP)){Tn(function(Ht){Ht.editingAttribute=void 0});var dt=y.Zo[It.selectedTool];if(In===U.je.Edit&&Sa[dt].startCreatingWhenMouseDown({event:Ge,object:It.creatingObject,point:{x:er.elementX,y:er.elementY},basic:{hidden:!1,labelId:jn.latestLabelId||sr[0].id,status:U.TK.Commited,color:Tr(jn.latestLabelId||sr[0].name)}}))return}else jn.focusObjectIndex>-1&&!Br?_r(jn.focusObjectIndex,Ge):Mn(function(Ht){Ht.allowMove=!0})},V=function(Ge){if(!(!je||jn.isRequiring||jn.allowMove)){if(jn.focusObjectIndex>-1?Pn("pointer"):It.selectedTool!==y.ru.Drag?Pn("crosshair"):Pn("grab"),It.creatingObject&&It.activeObjectIndex>-1){if(In===U.je.Edit&&Sa[It.creatingObject.type].updateEditingWhenMouseMove({event:Ge,object:It.creatingObject})){or();return}}else if(It.selectedTool!==y.ru.Drag&&It.activeObjectIndex<0){var dt=y.Zo[It.selectedTool];if(In===U.je.Edit&&Sa[dt].updateCreatingWhenMouseMove({event:Ge,object:It.creatingObject})){or();return}}Lr(),Jn()}},k=function(Ge){if(Mr(void 0),!(!je||jn.isRequiring)){if(jn.allowMove){Mn(function(Ht){Ht.allowMove=!1});return}if(It.creatingObject&&It.activeObjectIndex>-1){if(In===U.je.Edit&&Sa[It.creatingObject.type].finishEditingWhenMouseUp({event:Ge,object:It.creatingObject}))return}else if(It.selectedTool!==y.ru.Drag&&It.activeObjectIndex<0){var dt=y.Zo[It.selectedTool];if(In===U.je.Edit&&Sa[dt].finishCreatingWhenMouseUp({event:Ge,object:It.creatingObject}))return}}},pe=(0,n.useCallback)(function(Ae){Mn(function(Ge){Ge.focusObjectIndex=Ae})},[]);return(0,fr.Z)("mousedown",function(Ae){sa(Ae)}),(0,fr.Z)("mousemove",function(Ae){V(Ae)}),(0,fr.Z)("mouseup",function(Ae){k(Ae)}),{selectFocusObject:_r,forceChangeFocusObject:pe,mouseRightObjectsDropDownRender:Ha}},_o=$o,yo=e(81179),ct=e(34095),xt=e(14464),Ce=function(ye){var je=ye.index,In=ye.targetElement,It=ye.imagePos;return(0,ae.jsx)(zn,{children:(0,ae.jsx)("div",{className:"dds-annotator-popover-menu",style:{left:In.x+It.x+5,top:In.y+It.y+5},children:(0,ae.jsx)("div",{className:"dds-annotator-popover-menu-content",children:(0,ae.jsx)("span",{className:"dds-annotator-popover-menu-text",children:"".concat(je+1," ").concat(In.name)})})})})},un=Ce,xn=function(ye){var je=ye.visible,In=ye.drawData,It=ye.editState,Tn=ye.clientSize,jn=ye.imagePos,Mn=ye.containerMouse,Wn=ye.canvasRef,er=ye.activeCanvasRef,sr=ye.imgRef,Jn=ye.objectHooksMap,Pn=function(Mr,or,mr){var Lr=[(0,xt.a7)(or,ct.rl.DEFAULT),(0,xt.a7)(or,ct.mh.DEFAULT),ct.s_.DEFAULT],_r=Lr[0],Ha=Lr[1],sa=Lr[2];return mr==="focus"?(sa=ct.s_.FOCUS,_r=(0,xt.a7)(or,ct.rl.FOCUS),Ha=(0,xt.a7)(or,ct.mh.FOCUS)):mr==="editing"?(sa=ct.s_.CREATING,_r=(0,xt.a7)(or,ct.rl.CREATING),Ha=(0,xt.a7)(or,ct.mh.CREATING)):mr==="creating"&&(sa=ct.s_.CREATING,_r=ct.XQ.CREATING,Ha=ct.Bt.CREATING),t()({strokeColor:_r,fillColor:Ha,maskAlpha:sa,strokeDash:[0],thickness:2,pointAplha:1},Mr.customStyles||{})},Sa=function(Mr){var or=Pn(Mr,Mr.color,"creating");Jn[Mr.type].renderCreatingObject({object:Mr,color:Mr.color,styles:or})},Fr=function(Mr){if(!Mr.hidden){var or=(0,w.lT)(Mr,{x:-jn.current.x,y:-jn.current.y}),mr=It.focusObjectIndex===In.activeObjectIndex,Lr=Pn(Mr,Mr.color,mr?"focus":"editing");Jn[Mr.type].renderEditingObject({object:or,color:Mr.color,styles:Lr,isFocus:mr})}},Xn=function(Mr){var or=Mr.prompt;if(or.creatingPrompt||or.promptsQueue||or.activeRectWhileLoading){var mr,Lr;Mr.selectedTool===y.ru.Mask||((mr=Mr.creatingObject)===null||mr===void 0?void 0:mr.type)===y.gr.Mask?Jn[y.gr.Mask].renderPrompt({prompt:or}):Mr.selectedTool===y.ru.Polygon||((Lr=Mr.creatingObject)===null||Lr===void 0?void 0:Lr.type)===y.gr.Polygon?Jn[y.gr.Polygon].renderPrompt({prompt:or}):Mr.selectedTool===y.ru.Rectangle&&Mr.selectedModel===y.HE.IVP&&Jn[y.gr.Rectangle].renderPrompt({prompt:or})}},Br=function(Mr){if(!(!je||!er.current)){(0,yo.ix)(er.current,{width:Mn.elementW,height:Mn.elementH}),er.current.getContext("2d").imageSmoothingEnabled=!1,(0,yo.UN)(er.current);var or=Mr||In;or.creatingObject&&(or.activeObjectIndex>-1?Fr(or.creatingObject):Sa(or.creatingObject)),Xn(or)}},Tr=function(Mr,or){var mr=(0,w.lT)(Mr,{x:-jn.current.x,y:-jn.current.y}),Lr=mr.type,_r=Pn(Mr,Mr.color,or?"focus":void 0);(0,yo.M5)(Wn.current,In.creatingObject?.6:1),Jn[Lr].renderObject({object:mr,color:Mr.color,styles:_r,isFocus:or})},ra=function(Mr,or){Mr.forEach(function(mr,Lr){var _r;mr.hidden||Lr===or||Lr===It.focusObjectIndex||mr.frameEmpty||Tr(mr,((_r=In.editingAttribute)===null||_r===void 0?void 0:_r.index)===Lr)})},Yr=function(Mr){if(!(!je||!Wn.current||!sr.current||!sr.current.complete)){(0,yo.ix)(Wn.current,{width:Mn.elementW,height:Mn.elementH}),Wn.current.getContext("2d").imageSmoothingEnabled=!1,(0,yo.UN)(Wn.current),(0,yo.KJ)(Wn.current,It.imageDisplayOptions.brightness,It.imageDisplayOptions.contrast,It.imageDisplayOptions.saturate),(0,yo.AE)(Wn.current,sr.current,{x:jn.current.x,y:jn.current.y,width:Tn.width,height:Tn.height}),(0,yo.ku)(Wn.current);var or=Mr||In;ra(or.objectList,or.activeObjectIndex),Br(or),It.focusObjectIndex>-1&&It.focusObjectIndex!==In.activeObjectIndex&&or.objectList[It.focusObjectIndex]&&!or.objectList[It.focusObjectIndex].hidden&&!or.objectList[It.focusObjectIndex].frameEmpty&&Tr(or.objectList[It.focusObjectIndex],!0)}},ca=function(){if(It.focusObjectIndex>-1&&In.objectList[It.focusObjectIndex]&&!In.objectList[It.focusObjectIndex].hidden&&It.focusEleIndex>-1&&It.focusEleType===y.Yq.Circle){var Mr,or,mr=(Mr=In.objectList[It.focusObjectIndex].keypoints)===null||Mr===void 0||(or=Mr.points)===null||or===void 0?void 0:or[It.focusEleIndex];if(mr)return(0,ae.jsx)(un,{index:It.focusEleIndex,targetElement:mr,imagePos:jn.current})}return(0,ae.jsx)(ae.Fragment,{})};return{updateRender:Yr,renderPopoverMenu:ca}},Hn=xn;function Kn(Ue,ye){var je=(0,n.useRef)(),In=(0,n.useRef)(),It=typeof ye=="function"?ye(In.current,Ue):!0;It&&(je.current=In.current,In.current=Ue);var Tn=function(){je.current=void 0};return[je.current,Tn]}var Sr=function(ye){var je=ye.imagePos,In=ye.clientSize,It=ye.naturalSize,Tn=ye.annotations,jn=ye.setAnnotations,Mn=ye.drawData,Wn=ye.setDrawData,er=ye.setFramesData,sr=ye.editState,Jn=ye.setEditState,Pn=ye.initObjectList,Sa=ye.updateRender,Fr=ye.clearHistory,Xn=ye.objectsFilter,Br=ye.labelOptions,Tr=ye.customDefaultDrawData,ra=Kn(In),Yr=s()(ra,2),ca=Yr[0],Dr=Yr[1],Mr=function(sa,V){if(!(!In.width||!In.height||!It.width||!It.height)){if(!Mn.initialized||sa)Pn(V||Tn);else if(Mn.initialized&&ca){er&&(er==null||er(function(pe){pe.objects=(0,w.nF)(pe.objects,ca,In)}));var k=(0,w.hv)(Mn,ca,In);Wn(k),Sa(k),Dr()}}},or=(0,n.useCallback)(function(){Wn(t()(t()({},(0,g.cloneDeep)(U.f7)),{},{brushSize:Mn.brushSize,selectedTool:Mn.selectedTool,selectedSubTool:Mn.selectedSubTool,selectedModel:Mn.selectedModel,AIAnnotation:Mn.AIAnnotation},Tr))},[U.f7,Tr,Mn.brushSize,Mn.selectedSubTool,Mn.selectedTool,Mn.AIAnnotation]),mr=(0,n.useCallback)(function(){var Ha;Jn(t()(t()({},(0,g.cloneDeep)(U.rl)),{},{latestLabelId:(Br==null||(Ha=Br[0])===null||Ha===void 0?void 0:Ha.id)||"",imageDisplayOptions:sr.imageDisplayOptions,annotsDisplayOptions:sr.annotsDisplayOptions}))},[U.rl,Br,sr.imageDisplayOptions,sr.annotsDisplayOptions]),Lr=(0,n.useCallback)(function(Ha){var sa=Ha!=null&&Ha.objects?p()(Ha==null?void 0:Ha.objects):[],V=Ha&&Xn?Xn(Ha)||[]:sa;jn(V),Mr(!0,V)},[Xn,Mr]),_r=(0,n.useCallback)(function(Ha,sa){var V=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;jn([]),or(),mr(),V&&Fr(),sa&&Lr(Ha)},[or,mr,Fr,Lr]);return(0,n.useEffect)(function(){Sa()},[Mn,sr,je.current.x,je.current.y]),(0,n.useEffect)(function(){Mr()},[In.height,In.width]),(0,n.useEffect)(function(){Mr(!0)},[It.width,It.height]),(0,n.useEffect)(function(){Br!=null&&Br.length&&Jn(function(Ha){if(!Ha.latestLabelId||!Br.find(function(V){return V.id===Ha.latestLabelId})){var sa;Ha.latestLabelId=(sa=Br[0])===null||sa===void 0?void 0:sa.id}})},[Br]),{rebuildDrawData:Mr,resetDataWithImageData:_r}},kr=Sr,La=Object.defineProperty,oa=Object.getOwnPropertySymbols,Xr=Object.prototype.hasOwnProperty,ta=Object.prototype.propertyIsEnumerable,xr=(Ue,ye,je)=>ye in Ue?La(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,Zr=(Ue,ye)=>{for(var je in ye||(ye={}))Xr.call(ye,je)&&xr(Ue,je,ye[je]);if(oa)for(var je of oa(ye))ta.call(ye,je)&&xr(Ue,je,ye[je]);return Ue};const ga=Ue=>n.createElement("svg",Zr({width:16,height:16,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),n.createElement("g",{clipPath:"url(#pen-add_svg__a)",fill:"#fff"},n.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"}),n.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"})),n.createElement("defs",null,n.createElement("clipPath",{id:"pen-add_svg__a"},n.createElement("path",{fill:"#fff",d:"M0 0h20v20H0z"}))));var ka="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBjbGlwLXBhdGg9InVybCgjYSkiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Ik0xNi43IDEwYzAtLjEgMC0uMS4xLS4ydi0uMmMwLS4xIDAtLjEtLjEtLjFsLTMuMi0zLjItMy4xLTMuMXYtLjFIMTAuMWMtLjEuMi0uMy4zLS42LjMtMS43LjctMy40IDEuMy01LjIgMS45LS4xIDAtLjEuMS0uMi4xczAgLjEgMCAuMmMtLjIuNi0uNCAxLjItLjYgMS45QzMgOS4yIDIuNSAxMSAyIDEyLjdMLjMgMTguNGMtLjEuMy0uMi43LS4zIDFsLjItLjFMNyAxMi40bC4xLS4xVjEyYy0uMS0uMi0uMi0uNS0uMi0uOCAwLS4zIDAtLjYuMS0uOC4xLS4zLjMtLjUuNS0uNy4yLS4yLjQtLjMuNy0uNEg5Yy4zIDAgLjUuMS44LjMuMi4xLjQuMy42LjYuOS0uOCAyLTEuMiAzLjMtMS4yIDEuMSAwIDIuMi40IDMgMVoiLz48cGF0aCBkPSJNOC42IDEzLjJoLS4zYy0uMi0uMS0uMy0uMi0uNS0uM0wuNyAyMGw0LTEuMiA1LTEuNGMtLjctLjktMS4yLTItMS4yLTMuMyAwLS4zLjEtLjYuMS0uOVpNMTEuMyAyLjYgMTYuNyA4bC44LjhMMjAgNy4yIDEyLjggMGwtLjEuMWMtLjUuOC0xIDEuNS0xLjUgMi4ydi4ybC4xLjFjLS4xIDAtLjEgMCAwIDBaTTE2LjQgMTFjLS43LS42LTEuNy0xLjEtMi43LTEuMS0xLjIgMC0yLjMuNS0zIDEuMy0uNC41LS44IDEtLjkgMS43LS4xLjQtLjIuNy0uMiAxLjEgMCAxLjIuNSAyLjIgMS4zIDMgLjcuNyAxLjcgMS4yIDIuOSAxLjIgMi4zIDAgNC4xLTEuOSA0LjEtNC4xLS4xLTEuMi0uNy0yLjMtMS41LTMuMVptLTEuMSA0LjFoLS43di44YzAgLjYtLjQgMS0xIDFzLTEtLjQtMS0xdi0uOEgxMmMtLjYgMC0xLS40LTEtMXMuNC0xIDEtMWguNnYtLjVjMC0uNi40LTEgMS0xczEgLjQgMSAxdi41aC43Yy42IDAgMSAuNCAxIDFzLS40IDEtMSAxWiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoMjB2MjBIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=",mo=Object.defineProperty,no=Object.getOwnPropertySymbols,kt=Object.prototype.hasOwnProperty,Sn=Object.prototype.propertyIsEnumerable,Dn=(Ue,ye,je)=>ye in Ue?mo(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,Qn=(Ue,ye)=>{for(var je in ye||(ye={}))kt.call(ye,je)&&Dn(Ue,je,ye[je]);if(no)for(var je of no(ye))Sn.call(ye,je)&&Dn(Ue,je,ye[je]);return Ue};const br=Ue=>n.createElement("svg",Qn({width:16,height:16,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),n.createElement("g",{clipPath:"url(#pen-erase_svg__a)",fill:"#fff"},n.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"}),n.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"})),n.createElement("defs",null,n.createElement("clipPath",{id:"pen-erase_svg__a"},n.createElement("path",{fill:"#fff",d:"M0 0h20v20H0z"}))));var Hr="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBjbGlwLXBhdGg9InVybCgjYSkiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Im0xNi43NCAxMCAuMDctLjJhLjIyLjIyIDAgMCAwIDAtLjE2LjIyLjIyIDAgMCAwLS4wOS0uMTJsLTMuMTQtMy4xNi0zLjA3LTMuMDhhLjE4LjE4IDAgMCAwIDAtLjA3SDEwLjI5bC0uNzIuMjYtNS4yMyAxLjgyYS40Mi40MiAwIDAgMC0uMTguMTEuMzUuMzUgMCAwIDAtLjEuMTljLS4xNy42My0uMzYgMS4yNS0uNTUgMS44OEMzIDkuMjEgMi41MSAxMSAyIDEyLjY3TC4zIDE4LjM0Yy0uMDkuMzEtLjE4LjY2LS4zIDFsLjE2LS4xNEw3IDEyLjQybC4wNi0uMDZhLjE2LjE2IDAgMCAwIDAtLjA5LjE3LjE3IDAgMCAwIDAtLjF2LS4wOGExLjg3IDEuODcgMCAwIDEtLjA2LTEuNkExLjk1IDEuOTUgMCAwIDEgOC4xNiA5LjRjLjI3LS4wOS41NTgtLjExOC44NC0uMDhhMiAyIDAgMCAxIC43OC4yNmMuMjMyLjE1LjQzMi4zNDQuNTkuNTdhNSA1IDAgMCAxIDYuMzctLjE1WiIvPjxwYXRoIGQ9Ik04LjYzIDEzLjJjLS4xMDYuMDEtLjIxNC4wMS0uMzIgMGEzLjM4IDMuMzggMCAwIDEtLjUyLS4yMkwuNzQgMjBsNC0xLjIgNS0xLjQ0YTQuOSA0LjkgMCAwIDEtMS4xMS00LjE2Wk0xMS4yNSAyLjYyYzEuODMgMS44MiAzLjYyIDMuNjIgNS40MyA1LjQzbC44MS44M0wyMCA3LjIxIDEyLjgzIDBsLS4wOC4xYy0uNS43NS0xIDEuNTMtMS41IDIuMjV2LjA2YS4xOTIuMTkyIDAgMCAwIDAgLjA3LjE5LjE5IDAgMCAwIDAgLjA4LjIwOC4yMDggMCAwIDAgMCAuMDZaTTE2LjM4IDExYTQuMSA0LjEgMCAwIDAtNi42NiAyIDQuMjQgNC4yNCAwIDAgMC0uMTggMS4xMyA0LjExIDQuMTEgMCAwIDAgMS4yNyAzIDQuMDYgNC4wNiAwIDAgMCAyLjg1IDEuMTZBNC4xMiA0LjEyIDAgMCAwIDE2LjM4IDExWm0tMSA0LjA4aC0zLjMyYTEgMSAwIDAgMSAwLTJoMy4yN2ExIDEgMCAwIDEgMCAyaC4wNVoiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDIwdjIwSDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",Jr=Object.defineProperty,ir=Object.getOwnPropertySymbols,Wr=Object.prototype.hasOwnProperty,ua=Object.prototype.propertyIsEnumerable,Na=(Ue,ye,je)=>ye in Ue?Jr(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,wa=(Ue,ye)=>{for(var je in ye||(ye={}))Wr.call(ye,je)&&Na(Ue,je,ye[je]);if(ir)for(var je of ir(ye))ua.call(ye,je)&&Na(Ue,je,ye[je]);return Ue};const oo=Ue=>n.createElement("svg",wa({width:16,height:16,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),n.createElement("g",{clipPath:"url(#brush-add_svg__a)",fill:"#fff"},n.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"}),n.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"})),n.createElement("defs",null,n.createElement("clipPath",{id:"brush-add_svg__a"},n.createElement("path",{fill:"#fff",d:"M0 0h19.7v19.44H0z"}))));var Oo="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBjbGlwLXBhdGg9InVybCgjYSkiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Ik01LjA3IDEwLjM3IDQuMDIgOS4yMmwtLjQ2LS40NmExLjQyIDEuNDIgMCAwIDEgMC0xLjg5bC40MS0uNDEgMy44NC0zLjczTDEwLjM0LjIyYS43MS43MSAwIDAgMSAxLjA3IDBjLjM0LjMxLjY3LjYzIDEgLjkzYS42Ni42NiAwIDAgMSAuMjIuNjljLS4xLjQzLS4xOS44Ny0uMjggMS4zNGwuNjktLjEzYy4yNSAwIC41LS4xLjc1LS4xMmEuODIuODIgMCAwIDEgLjY5LjI2bDQuNDcgNC4zNy40NS40NGEuODcuODcgMCAwIDEgMCAxLjNsLTIgMi0uMDguMDgtMS4zNC0uNzkgMS44OS0xLjk1LS4zMy0uMzMtMy43OC0zLjcxYS4zLjMgMCAwIDAtLjMyLS4wOWwtMS44OS4zN0EuNzQuNzQgMCAwIDEgMTAuNyA0Yy4wNi0uMzMuMTItLjY1LjE5LTFzLjEtLjU4LjE4LS44NWEuMzEuMzEgMCAwIDAtLjE3LS40TDYuNyA1Ljk0bDUgNC44NWMtLjMuMjEtLjYxLjQtLjg4LjYyYTQuNzYgNC43NiAwIDAgMC0xLjc1IDMgLjg4Ljg4IDAgMCAxLS4yNS40NGwtMi45NCAzLjM3YTMuNDIgMy40MiAwIDAgMS01IC4yMiAzIDMgMCAwIDEtLjgzLTIgMy4zOSAzLjM5IDAgMCAxIDEuMzMtMi44OGwzLjMyLTIuODkuMzctLjNaIi8+PHBhdGggZD0iTTE3Ljg4IDEzLjk5YTQuMDYgNC4wNiAwIDAgMC00LjQ2LTIuNjggNCA0IDAgMCAwIC42MSA3LjljLjIyIDAgLjQ0IDAgLjY1LS4wNmE0IDQgMCAwIDAgMy4yLTUuMTZabS0yLjMxIDIuMTNoLS42MnYuNThhLjk0Ljk0IDAgMCAxLTEuODcgMHYtLjU4aC0uNThhLjk0Ljk0IDAgMCAxIDAtMS44N2guNTh2LS41NmEuOTQuOTQgMCAxIDEgMS44NyAwdi41M2guNjJhLjk0Ljk0IDAgMCAxIDAgMS44N3YuMDNaIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgxOS43djE5LjQ0SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",Ro=Object.defineProperty,eo=Object.getOwnPropertySymbols,jo=Object.prototype.hasOwnProperty,bo=Object.prototype.propertyIsEnumerable,Da=(Ue,ye,je)=>ye in Ue?Ro(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,Ja=(Ue,ye)=>{for(var je in ye||(ye={}))jo.call(ye,je)&&Da(Ue,je,ye[je]);if(eo)for(var je of eo(ye))bo.call(ye,je)&&Da(Ue,je,ye[je]);return Ue};const Po=Ue=>n.createElement("svg",Ja({width:16,height:16,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),n.createElement("g",{clipPath:"url(#brush-erase_svg__a)",fill:"#fff"},n.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"}),n.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"})),n.createElement("defs",null,n.createElement("clipPath",{id:"brush-erase_svg__a"},n.createElement("path",{fill:"#fff",d:"M0 0h19.03v18.77H0z"}))));var oi="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBjbGlwLXBhdGg9InVybCgjYSkiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Im02LjQ3IDUuNjkgNC44IDQuN2MtLjI5LjItLjU5LjM4LS44NS41OWE0LjczIDQuNzMgMCAwIDAtMS43NCAzLjA1LjQ1LjQ1IDAgMCAxLS4xLjIxbC0yLjg5IDMuMzRhMy4yNCAzLjI0IDAgMCAxLTIuNDcgMS4yIDMgMyAwIDAgMS0zLjIzLTMuMSAzLjM0IDMuMzQgMCAwIDEgMS4zOS0yLjdjMS4xNi0uOTUgMi4yOS0xLjkzIDMuNDQtMi44OWwuMTQtLjEtLjQtLjM4LTEtMWExLjM4IDEuMzggMCAwIDEgMC0yLjA3TDcuNyAyLjQ4Yy43Ni0uNyAxLjUyLTEuNSAyLjI5LTIuMjRhLjY5LjY5IDAgMCAxIDEuMDUgMGwxIC45MWEuNTkuNTkgMCAwIDEgLjE4LjYzYy0uMDkuNDMtLjE4Ljg3LS4yNyAxLjMzbDEuMjctLjI1YS44OC44OCAwIDAgMSAuODQuMjRsMi43MSAyLjY4IDIgMS45MmEuOS45IDAgMCAxIC4yOS44LjY2LjY2IDAgMCAxLS4xNi4zNWMtLjcuNy0xLjQxIDEuMzktMi4xMiAyLjA4bC0xLjI4LS43NyAxLjg0LTEuNzlWOC4zbC00LTMuODhhLjI5LjI5IDAgMCAwLS4yOC0uMDdsLTEuODQuNDNhLjg2Ljg2IDAgMCAxLS44LS4yNi41NzEuNTcxIDAgMCAxLS4xMy0uNTZjLjEyLS41OS4yNC0xLjE3LjM3LTEuNzYgMC0uMTkgMC0uMzMtLjE4LS40Mkw2LjQ3IDUuNjlaIi8+PHBhdGggZD0iTTkuNjkgMTQuNzFhMy44OCAzLjg4IDAgMSAxIDMuODggMy44IDMuODMgMy44MyAwIDAgMS0zLjg4LTMuOFptMy44NyAxaDEuNTdhMSAxIDAgMCAwIDEtMSAxIDEgMCAwIDAtMS0xLjA2aC0zLjE0YTEgMSAwIDAgMCAwIDJsMS41Ny4wNloiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDE5LjAzdjE4Ljc3SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",ii=Object.defineProperty,po=Object.getOwnPropertySymbols,Oi=Object.prototype.hasOwnProperty,Ni=Object.prototype.propertyIsEnumerable,ni=(Ue,ye,je)=>ye in Ue?ii(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,Di=(Ue,ye)=>{for(var je in ye||(ye={}))Oi.call(ye,je)&&ni(Ue,je,ye[je]);if(po)for(var je of po(ye))Ni.call(ye,je)&&ni(Ue,je,ye[je]);return Ue};const Ri=Ue=>n.createElement("svg",Di({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 34.02 34.02"},Ue),n.createElement("defs",null,n.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}")),n.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"}),n.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"}),n.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"}),n.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 ji="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNC4wMiAzNC4wMiI+PGRlZnM+PHN0eWxlPi5jbHMtMSwuY2xzLTN7ZmlsbDpub25lfS5jbHMtMntmaWxsOiNmY2ZlZmV9LmNscy0ze3N0cm9rZTojZmNmZWZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDoycHh9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNS4yOCAxNi4zNlY2LjA4YTEgMSAwIDAgMSAxLTFoMjIuMmExIDEgMCAwIDEgMSAxdjIxLjY3YTEgMSAwIDAgMS0xIC45NWgtMTB2Mi4zOUgzMS40VjIuNzRIMy4xN3YxMy42MlpNMy4wNiAyLjc0aC4xMXYxMy42MmgtLjExeiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTcuMjggNy4xMkgyNy40VjI2LjdoLTguOTF2MmgxMGExIDEgMCAwIDAgMS0uOTVWNi4wOGExIDEgMCAwIDAtMS0xSDYuMjRhMSAxIDAgMCAwLTEgMXYxMC4yOGgyWiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTQuODIgMjguNDNhLjg3Ljg3IDAgMCAwIC4xMSAxLjE5IDEgMSAwIDAgMCAxLjE5LjA5YzMuMjktMi41NiA0LjY2LTIuNTYgOCAwYS45Mi45MiAwIDAgMCAxLjI4LTEuMjhjLTIuNTYtMy4yOS0yLjU2LTQuNjYgMC04YS45Mi45MiAwIDAgMC0xLjI4LTEuMjhjLTMuMjkgMi41Ni00LjY2IDIuNTYtOCAwYTEuMzcgMS4zNyAwIDAgMC0uNTUtLjE1LjgzLjgzIDAgMCAwLS42NC4yNy44Ny44NyAwIDAgMC0uMDkgMS4xOWMyLjYzIDMuMzEgMi42MyA0LjU5LS4wMiA3Ljk3WiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0ibTE5LjI0IDEwLjE1IDUuNzUtLjA3TTI0Ljk5IDE1Ljkxdi01LjgzTTE3Ljk3IDE3LjE5bDcuMDItNy4xMSIvPjwvc3ZnPg==",wi=Object.defineProperty,Ui=Object.getOwnPropertySymbols,zi=Object.prototype.hasOwnProperty,vo=Object.prototype.propertyIsEnumerable,ro=(Ue,ye,je)=>ye in Ue?wi(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,ci=(Ue,ye)=>{for(var je in ye||(ye={}))zi.call(ye,je)&&ro(Ue,je,ye[je]);if(Ui)for(var je of Ui(ye))vo.call(ye,je)&&ro(Ue,je,ye[je]);return Ue};const ai=Ue=>n.createElement("svg",ci({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),n.createElement("defs",null,n.createElement("style",null,".magic-click_svg__cls-1{fill:#fff}")),n.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"}),n.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 Uo="data:image/svg+xml;base64,PHN2ZyBpZD0i5Zu+5bGCXzEiIGRhdGEtbmFtZT0i5Zu+5bGCIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM0LjAyIDM0LjAyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZn08L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0zMC44OCAyMS4yMWExLjYgMS42IDAgMCAxLTEgMS4zNWMtMS41NC43NS0zLjA4IDEuNTEtNC41OSAyLjMxYTIuMTggMi4xOCAwIDAgMC0uODcuODZjLS43OSAxLjQ5LTEuNTMgMy0yLjI3IDQuNTNhMS40OSAxLjQ5IDAgMCAxLTIuODktLjE4UTE3LjIgMjMuOCAxNS4xIDE3LjUyYTEuNDkgMS40OSAwIDAgMSAyLTJsMTIuNTUgNC4xOWExLjU2IDEuNTYgMCAwIDEgMS4yMyAxLjVabS01LjI1LjIzLTYuOTQtMi4zMiAyLjMyIDdjLjM3LS43NC43MS0xLjMuOTUtMS45YTMgMyAwIDAgMSAxLjgtMS43OWMuNi0uMjkgMS4xNS0uNjIgMS44Ny0uOTlaTTcuMzQgNi4wOWE0LjIzIDQuMjMgMCAwIDEgLjg5LjU0bDMgM2ExLjQ1IDEuNDUgMCAxIDEtMiAyYy0xLTEtMi4wNi0yLTMuMDctMy4wN0ExLjM3IDEuMzcgMCAwIDEgNS44MyA3YTEuNiAxLjYgMCAwIDEgMS41MS0uOTFaTTIyLjM1IDEyLjM1YTYuNjEgNi42MSAwIDAgMS0xLjEyLS45MiAxLjE0IDEuMTQgMCAwIDEgLjA5LTEuNTFjMS4xNC0xLjE5IDIuMy0yLjM3IDMuNS0zLjQ5YTEuMzEgMS4zMSAwIDAgMSAxLjg0LjEgMS4zNCAxLjM0IDAgMCAxIC4xNCAxLjljLTEuMTEgMS4xOS0yLjI4IDIuMzItMy40NSAzLjQ1YTMuOTIgMy45MiAwIDAgMS0xIC40N1pNNyAyNy42OGE2IDYgMCAwIDEtMS4xMy0uOSAxLjEyIDEuMTIgMCAwIDEgLjEzLTEuNWMxLjE1LTEuMjEgMi4zMi0yLjQgMy41NS0zLjU0YTEuMzIgMS4zMiAwIDAgMSAxLjg0LjE3IDEuMzMgMS4zMyAwIDAgMSAuMSAxLjg1QzEwLjM1IDI1IDkuMTYgMjYuMTEgOCAyNy4yNWEzLjc1IDMuNzUgMCAwIDEtMSAuNDNaTTE3Ljg3IDZ2MkExLjQ2IDEuNDYgMCAxIDEgMTUgOFYzLjg3YTEuNDkgMS40OSAwIDAgMSAxLjQ2LTEuNTYgMS41MSAxLjUxIDAgMCAxIDEuNDUgMS41N2MtLjAzLjc0LS4wNCAxLjQ0LS4wNCAyLjEyWk01LjQ4IDE4LjNoLTJhMS41IDEuNSAwIDAgMS0xLjU1LTEuNSAxLjQ4IDEuNDggMCAwIDEgMS41OS0xLjQyaDQuMDdhMS40OSAxLjQ5IDAgMCAxIDEuNTkgMS40OSAxLjUgMS41IDAgMCAxLTEuNiAxLjQyYy0uNjkuMDItMS40LjAxLTIuMS4wMVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yNS42MyAyMS40NGMtLjcyLjM3LTEuMjcuNy0xLjg3Ljk0QTMgMyAwIDAgMCAyMiAyNC4xN2MtLjI0LjYtLjU4IDEuMTYtLjk1IDEuOWwtMi4zMi02Ljk1WiIvPjwvc3ZnPg==",Yo=Object.defineProperty,xi=Object.getOwnPropertySymbols,Hi=Object.prototype.hasOwnProperty,_i=Object.prototype.propertyIsEnumerable,Es=(Ue,ye,je)=>ye in Ue?Yo(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,hs=(Ue,ye)=>{for(var je in ye||(ye={}))Hi.call(ye,je)&&Es(Ue,je,ye[je]);if(xi)for(var je of xi(ye))_i.call(ye,je)&&Es(Ue,je,ye[je]);return Ue};const Ks=Ue=>n.createElement("svg",hs({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 34.02 34.02"},Ue),n.createElement("defs",null,n.createElement("style",null,".edge-stitch_svg__cls-1{fill:#fcfefe}.edge-stitch_svg__cls-3{fill:#fff}")),n.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"}),n.createElement("path",{style:{fill:"none",stroke:"#fff",strokeLinecap:"round",strokeMiterlimit:10,strokeWidth:3},d:"m14.4 14.51 11.14 11.14"}),n.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 Wl="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNC4wMiAzNC4wMiI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmY2ZlZmV9LmNscy0ze2ZpbGw6I2ZmZn08L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yMi4yNSAxOC41MmEuODIuODIgMCAwIDAgLjU3LjE1aDQuM2ExLjQ0IDEuNDQgMCAxIDAgMC0yLjg3aC0uODZMMzEgMTEuMDZhMS40MiAxLjQyIDAgMCAwLTItMmwtNC43MyA0Ljc0di0uODZhMS40NCAxLjQ0IDAgMSAwLTIuODcgMHY0LjNhLjg3Ljg3IDAgMCAwIC4xNC41NyAxLjY3IDEuNjcgMCAwIDAgLjcxLjcxWk05LjkxIDMxLjU4YTEuMzEgMS4zMSAwIDAgMCAxLS40M2w0Ljc0LTQuNzR2Ljg2YTEuNDQgMS40NCAwIDEgMCAyLjg3IDBWMjNhLjgyLjgyIDAgMCAwLS4xNS0uNTcgMS43IDEuNyAwIDAgMC0uNzEtLjcyLjg1Ljg1IDAgMCAwLS41OC0uMTVoLTQuM2ExLjQ0IDEuNDQgMCAxIDAgMCAyLjg3aC44NmwtNC43MyA0LjcxYTEuMzggMS4zOCAwIDAgMCAwIDIgMS4zMSAxLjMxIDAgMCAwIDEgLjQ0WiIvPjxwYXRoIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmZmY7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjNweCIgZD0ibTE0LjQgMTQuNTEgMTEuMTQgMTEuMTQiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik03LjUxIDUuN2EzLjQxIDMuNDEgMCAwIDEgLjc0LjQ1Yy44NS44IDEuNjcgMS42NCAyLjQ5IDIuNDdhMS4xOSAxLjE5IDAgMSAxLTEuNjkgMS42N1E3Ljc3IDkgNi41MyA3Ljc3YTEuMTMgMS4xMyAwIDAgMS0uMjYtMS4zMyAxLjMzIDEuMzMgMCAwIDEgMS4yNC0uNzRaTTE5Ljg1IDEwLjg0YTUuMTEgNS4xMSAwIDAgMS0uOTItLjc1LjkzLjkzIDAgMCAxIC4wNy0xLjI0Yy45NC0xIDEuODktMS45NSAyLjg4LTIuODdhMS4wNyAxLjA3IDAgMCAxIDEuNTEuMDkgMS4wOSAxLjA5IDAgMCAxIC4xMSAxLjU2Yy0uOTEgMS0xLjg3IDEuOS0yLjgzIDIuODNhMi44OCAyLjg4IDAgMCAxLS44Mi4zOFpNNy4yNiAyMy40NGE1IDUgMCAwIDEtLjkyLS43My45Mi45MiAwIDAgMSAuMDYtMS4yNFE3LjgxIDIwIDkuMzEgMTguNTZhMS4wOCAxLjA4IDAgMCAxIDEuNTEuMTQgMS4xIDEuMSAwIDAgMSAuMDkgMS41MkMxMCAyMS4yMSA5IDIyLjE1IDggMjMuMDlhMy4wNyAzLjA3IDAgMCAxLS43NC4zNVpNMTYuMTYgNS42NHYxLjY3QTEuMjQgMS4yNCAwIDAgMSAxNSA4LjU5YTEuMjIgMS4yMiAwIDAgMS0xLjE5LTEuMjh2LTMuNEExLjIyIDEuMjIgMCAwIDEgMTUgMi42M2ExLjIzIDEuMjMgMCAwIDEgMS4xOSAxLjI5Yy0uMDEuNTctLjAzIDEuMTUtLjAzIDEuNzJaTTYgMTUuNzNINC4zOGExLjIgMS4yIDAgMSAxIDAtMi40aDMuMzRhMS4yIDEuMiAwIDEgMSAwIDIuNGMtLjU4LjAyLTEuMTUgMC0xLjcyIDBaIi8+PC9zdmc+",Yn=Object.defineProperty,Vr=Object.getOwnPropertySymbols,Or=Object.prototype.hasOwnProperty,Ur=Object.prototype.propertyIsEnumerable,na=(Ue,ye,je)=>ye in Ue?Yn(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,Ba=(Ue,ye)=>{for(var je in ye||(ye={}))Or.call(ye,je)&&na(Ue,je,ye[je]);if(Vr)for(var je of Vr(ye))Ur.call(ye,je)&&na(Ue,je,ye[je]);return Ue};const Ya=Ue=>n.createElement("svg",Ba({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 34.02 34.02"},Ue),n.createElement("defs",null,n.createElement("style",null,".segment-everything_svg__cls-1{fill:#fff}.segment-everything_svg__cls-3{fill:none}")),n.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"}),n.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"}}),n.createElement("path",{className:"segment-everything_svg__cls-3",d:"M4.07 4.13h26.29v26.29H4.07z"}),n.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"}),n.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"}),n.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"}),n.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 Ua="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNC4wMiAzNC4wMiI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmZ9LmNscy0ze2ZpbGw6bm9uZX08L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Im02LjI2IDE1LjU0IDUuODggMy44OGExIDEgMCAwIDEgMCAxLjU2TDYuMSAyNS4yOWEuOS45IDAgMCAxLTEuNDEtLjc5bC4xOS04LjJhLjkuOSAwIDAgMSAxLjM4LS43NlpNNy41OCAyOS4xNyAyMy40MyAxNy43YTEuNzEgMS43MSAwIDAgMSAyLjI1LjIybDMuMzIgMy41djcuNzVaIi8+PHBhdGggZD0iTTMxIDQuMzVhLjg4Ljg4IDAgMCAwLS4xMS0xLjE5IDEgMSAwIDAgMC0xLjE5LS4wOWMtMy4yOSAyLjU2LTQuNjYgMi41Ni04IDBhLjg3Ljg3IDAgMCAwLTEuMTkuMDkuODcuODcgMCAwIDAtLjA5IDEuMTljMi41NiAzLjI5IDIuNTYgNC42NiAwIDhhLjkyLjkyIDAgMCAwIDEuMjggMS4yOGMzLjI5LTIuNTYgNC42Ni0yLjU2IDggMGExLjI4IDEuMjggMCAwIDAgLjU1LjE4LjkxLjkxIDAgMCAwIC42NC0uMjcuODcuODcgMCAwIDAgLjExLTEuMTljLTIuNjUtMy4zNS0yLjY1LTQuNjIgMC04WiIgc3R5bGU9ImZpbGw6I2ZjZmVmZSIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTQuMDcgNC4xM2gyNi4yOXYyNi4yOUg0LjA3eiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTYuMzkgMjguNTZoMjIuNDlWMTdIMTYuNDl2LTMuMzhhMi41NiAyLjU2IDAgMCAxLTIgLjkzIDIuNjMgMi42MyAwIDAgMS0yLjU5LTIuNzIgMi42NiAyLjY2IDAgMCAxIDIuNi0yLjY3IDIuNTcgMi41NyAwIDAgMSAyIC45NXYtNEg2LjM5WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0LjUxIDkuMTZhMi42NiAyLjY2IDAgMCAwLTIuNiAyLjY3IDIuNjMgMi42MyAwIDAgMCAyLjU5IDIuNzIgMi41NiAyLjU2IDAgMCAwIDItLjkzdi0zLjUxYTIuNTcgMi41NyAwIDAgMC0xLjk5LS45NVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yOC44OCAyOC41Nkg2LjM5VjYuMWgxMC4xVjQuMjVINS40MmEuODguODggMCAwIDAtLjg5Ljg4djI1LjI4aDI2LjIxVjE3aC0xLjg2WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE3LjE0IDExLjg3YTIuNzQgMi43NCAwIDAgMC0uNjUtMS43NnYzLjUxYTIuNyAyLjcgMCAwIDAgLjY1LTEuNzVaIi8+PC9zdmc+",Wo=Object.defineProperty,Xo=Object.getOwnPropertySymbols,Jo=Object.prototype.hasOwnProperty,ki=Object.prototype.propertyIsEnumerable,ys=(Ue,ye,je)=>ye in Ue?Wo(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,Qi=(Ue,ye)=>{for(var je in ye||(ye={}))Jo.call(ye,je)&&ys(Ue,je,ye[je]);if(Xo)for(var je of Xo(ye))ki.call(ye,je)&&ys(Ue,je,ye[je]);return Ue};const Ts=Ue=>n.createElement("svg",Qi({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),n.createElement("defs",null,n.createElement("style",null,".magic-brush_svg__cls-1{fill:#fff}")),n.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"}),n.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 ls="data:image/svg+xml;base64,PHN2ZyBpZD0i5Zu+5bGCXzEiIGRhdGEtbmFtZT0i5Zu+5bGCIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM0LjAyIDM0LjAyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZn08L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNS4yMiAxNC43MyAyMSA5bDEwLjEgMTAuMS01LjggNS43NlpNMTQuMzMgMTUuNDNsMTAuMzQgMTAuMzZjLS44Ny44Ni0xLjc4IDEuNzgtMi43MSAyLjY4LS4wOS4wOC0uMzcgMC0uNTMtLjA3LTEuMzEtLjU4LTIuNjMtMS4xNi0zLjkyLTEuNzhhLjc0Ljc0IDAgMCAwLTEgLjE3cS0xLjc1IDEuODItMy41NyAzLjU2YTIuMTQgMi4xNCAwIDAgMS0yLjMzLjUxIDIuMDggMi4wOCAwIDAgMS0xLjQyLTEuNjkgMi4yIDIuMiAwIDAgMSAuNjctMi4wNUMxMSAyNiAxMi4xNCAyNC44IDEzLjMyIDIzLjY2YS43NC43NCAwIDAgMCAuMTktMWMtLjYxLTEuMjctMS4xNi0yLjU3LTEuNzctMy44NWEuNjcuNjcgMCAwIDEgLjE1LS45MWMuODQtLjgxIDEuNjMtMS42NCAyLjQ0LTIuNDdabS0xLjgyIDEzLjE4YTEgMSAwIDEgMC0yIC4wNSAxIDEgMCAwIDAgMi0uMDVaIi8+PHBhdGggZD0iTTMuMiAxMi42NmEuODkuODkgMCAwIDAgLjExIDEuMjMgMSAxIDAgMCAwIDEuMjMuMWMzLjQtMi42NSA0LjgyLTIuNjUgOC4yNyAwYS45NS45NSAwIDAgMCAxLjMyLTEuMzNjLTIuNjQtMy40LTIuNjQtNC44MSAwLTguMjZBLjkuOSAwIDAgMCAxNCAzLjE3YS44OS44OSAwIDAgMC0xLjIzLS4xQzkuNDEgNS43MiA4IDUuNzIgNC41NCAzLjA3QTEuMjcgMS4yNyAwIDAgMCA0IDIuODlhLjg0Ljg0IDAgMCAwLS42Ni4yOC45LjkgMCAwIDAtLjEyIDEuMjNjMi43MiAzLjQ1IDIuNzIgNC43Ny0uMDIgOC4yNloiIHN0eWxlPSJmaWxsOiNmY2ZlZmUiLz48L3N2Zz4=",ri=Object.defineProperty,Ll=Object.getOwnPropertySymbols,Il=Object.prototype.hasOwnProperty,Al=Object.prototype.propertyIsEnumerable,du=(Ue,ye,je)=>ye in Ue?ri(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,cl=(Ue,ye)=>{for(var je in ye||(ye={}))Il.call(ye,je)&&du(Ue,je,ye[je]);if(Ll)for(var je of Ll(ye))Al.call(ye,je)&&du(Ue,je,ye[je]);return Ue};const dl=Ue=>n.createElement("svg",cl({viewBox:"0 0 19 19",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),n.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"}),n.createElement("g",{clipPath:"url(#add-prompt_svg__a)"},n.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"})),n.createElement("defs",null,n.createElement("clipPath",{id:"add-prompt_svg__a"},n.createElement("path",{fill:"#fff",transform:"translate(4.025 4.129)",d:"M0 0h10.735v10.742H0z"}))));var zs="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTkgMTkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE4LjMzIDQuMDY5YS42Ny42NyAwIDAgMCAuNjctLjY3MlYuNjcxQS42NzIuNjcyIDAgMCAwIDE4LjMzIDBoLTIuNzE4YS42Ny42NyAwIDAgMC0uNjcxLjY3MXYuNjcySDQuMDY2Vi42N0EuNjcyLjY3MiAwIDAgMCAzLjM5NSAwSC42N0EuNjcuNjcgMCAwIDAgMCAuNjcxdjIuNzJhLjY3Mi42NzIgMCAwIDAgLjY3LjY3aC42NzJ2MTAuODc3SC42N0EuNjcuNjcgMCAwIDAgMCAxNS42MXYyLjcyQS42NzIuNjcyIDAgMCAwIC42NyAxOWgyLjcxOGEuNjcuNjcgMCAwIDAgLjY3MS0uNjcxdi0uNjcyaDEwLjg2OXYuNjcyYS42NzIuNjcyIDAgMCAwIC42Ny42NzFoMi43MThhLjY3LjY3IDAgMCAwIC42Ny0uNjcxdi0yLjcwNmEuNjcyLjY3MiAwIDAgMC0uNjctLjY3MWgtLjY3MVY0LjA2OWguNjg0Wm0tMi4wMTQgMTAuODc2aC0uNjdhLjY3LjY3IDAgMCAwLS42NzEuNjcxdi42NzJINC4wNjV2LS42NzJhLjY3Mi42NzIgMCAwIDAtLjY3LS42NzFoLS42NzFWNC4wNjloLjY3YS42Ny42NyAwIDAgMCAuNjcyLS42NzJ2LS42NzFoMTAuODY4di42NzFhLjY3Mi42NzIgMCAwIDAgLjY3MS42NzJoLjY3MWwuMDIgNS40MzguMDIgNS40MzhaIiBmaWxsPSIjZmZmIi8+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMTQuNTEgNS44ODRhLjg1MS44NTEgMCAwIDAtMS4yMDQgMGwtNS40MTggNS40MjMtMi40MDktMi40MWEuODUxLjg1MSAwIDEgMC0xLjIwNCAxLjIwNWwzLjAxIDMuMDEyYS44NDkuODQ5IDAgMCAwIDEuMjA1IDBsNi4wMi02LjAyNWEuODUyLjg1MiAwIDAgMCAwLTEuMjA1WiIgZmlsbD0iI2ZmZiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQuMDI1IDQuMTI5KSIgZD0iTTAgMGgxMC43MzV2MTAuNzQySDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",Qs=Object.defineProperty,fl=Object.getOwnPropertySymbols,fu=Object.prototype.hasOwnProperty,fs=Object.prototype.propertyIsEnumerable,bs=(Ue,ye,je)=>ye in Ue?Qs(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,Fs=(Ue,ye)=>{for(var je in ye||(ye={}))fu.call(ye,je)&&bs(Ue,je,ye[je]);if(fl)for(var je of fl(ye))fs.call(ye,je)&&bs(Ue,je,ye[je]);return Ue};const Bs=Ue=>n.createElement("svg",Fs({viewBox:"0 0 19 19",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),n.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"}),n.createElement("g",{stroke:"#fff",strokeWidth:1.5,strokeLinecap:"round"},n.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"})),n.createElement("g",{stroke:"#fff",strokeWidth:1.5,strokeLinecap:"round"},n.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 vu="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTkgMTkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE4LjMzIDQuMDY5YS42Ny42NyAwIDAgMCAuNjctLjY3MlYuNjcxQS42NzIuNjcyIDAgMCAwIDE4LjMzIDBoLTIuNzE4YS42Ny42NyAwIDAgMC0uNjcxLjY3MXYuNjcySDQuMDY2Vi42N0EuNjcyLjY3MiAwIDAgMCAzLjM5NSAwSC42N0EuNjcuNjcgMCAwIDAgMCAuNjcxdjIuNzJhLjY3Mi42NzIgMCAwIDAgLjY3LjY3aC42NzJ2MTAuODc3SC42N0EuNjcuNjcgMCAwIDAgMCAxNS42MXYyLjcyQS42NzIuNjcyIDAgMCAwIC42NyAxOWgyLjcxOGEuNjcuNjcgMCAwIDAgLjY3MS0uNjcxdi0uNjcyaDEwLjg2OXYuNjcyYS42NzIuNjcyIDAgMCAwIC42Ny42NzFoMi43MThhLjY3LjY3IDAgMCAwIC42Ny0uNjcxdi0yLjcwNmEuNjcyLjY3MiAwIDAgMC0uNjctLjY3MWgtLjY3MVY0LjA2OWguNjg0Wm0tMi4wMTQgMTAuODc2aC0uNjdhLjY3LjY3IDAgMCAwLS42NzEuNjcxdi42NzJINC4wNjV2LS42NzJhLjY3Mi42NzIgMCAwIDAtLjY3LS42NzFoLS42NzFWNC4wNjloLjY3YS42Ny42NyAwIDAgMCAuNjcyLS42NzJ2LS42NzFoMTAuODY4di42NzFhLjY3Mi42NzIgMCAwIDAgLjY3MS42NzJoLjY3MWwuMDIgNS40MzguMDIgNS40MzhaIiBmaWxsPSIjZmZmIi8+PGcgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48cGF0aCBkPSJtNi43MSA2LjcxMyA2LjAzNyA2LjA0M002LjcxIDYuNzEzbDYuMDM3IDYuMDQzTTYuNzEgNi43MTNsNi4wMzcgNi4wNDNNNi43MSA2LjcxM2w2LjAzNyA2LjA0MyIvPjwvZz48ZyBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiPjxwYXRoIGQ9Ik0xMi43NDcgNi43MTMgNi43MSAxMi43NTZNMTIuNzQ3IDYuNzEzIDYuNzEgMTIuNzU2TTEyLjc0NyA2LjcxMyA2LjcxIDEyLjc1Nk0xMi43NDcgNi43MTMgNi43MSAxMi43NTYiLz48L2c+PC9zdmc+",Hl=function(ye){var je=ye.drawData,In=ye.onChangePointResolution,It=(0,P.bU)(),Tn=It.localeText,jn=(0,n.useMemo)(function(){return je.objectList.length===0&&!je.creatingObject||je.isBatchEditing},[je.objectList,je.creatingObject,je.isBatchEditing]),Mn=(0,n.useMemo)(function(){return!je.prompt.sessionId&&!(je.prompt.promptsQueue&&je.prompt.promptsQueue.length>0)&&!je.isBatchEditing},[je.prompt,je.isBatchEditing]),Wn=(0,n.useMemo)(function(){return[{key:y.jB.PenAdd,name:Tn("DDSAnnotator.subtoolbar.mask.penAdd"),icon:(0,ae.jsx)(ot.Z,{component:ga}),available:Mn},{key:y.jB.PenErase,name:Tn("DDSAnnotator.subtoolbar.mask.penErase"),icon:(0,ae.jsx)(ot.Z,{component:br}),available:Mn&&!!je.creatingObject},{key:y.jB.BrushAdd,name:Tn("DDSAnnotator.subtoolbar.mask.brushAdd"),icon:(0,ae.jsx)(ot.Z,{component:oo}),available:Mn,withSize:!0},{key:y.jB.BrushErase,name:Tn("DDSAnnotator.subtoolbar.mask.brushErase"),icon:(0,ae.jsx)(ot.Z,{component:Po}),available:Mn&&!!je.creatingObject,withSize:!0}]},[Mn,je.creatingObject]),er=(0,n.useMemo)(function(){return[{key:y.jB.AutoSegmentByBox,name:Tn("DDSAnnotator.subtoolbar.mask.box"),icon:(0,ae.jsx)(ot.Z,{component:Ri}),available:!0},{key:y.jB.AutoSegmentByStroke,name:Tn("DDSAnnotator.subtoolbar.mask.stroke"),icon:(0,ae.jsx)(ot.Z,{component:Ts}),available:!0,withSize:!0},{key:y.jB.AutoSegmentByClick,name:Tn("DDSAnnotator.subtoolbar.mask.click"),icon:(0,ae.jsx)(ot.Z,{component:ai}),available:!0},{key:y.jB.AutoEdgeStitching,name:Tn("DDSAnnotator.subtoolbar.mask.edgeStitch"),icon:(0,ae.jsx)(ot.Z,{component:Ks}),available:!0,withSize:!0},{key:y.jB.AutoSegmentEverything,name:Tn("DDSAnnotator.subtoolbar.mask.sam"),icon:(0,ae.jsx)(ot.Z,{component:Ya}),available:jn,description:Tn(jn?"DDSAnnotator.subtoolbar.mask.sam.desc":"DDSAnnotator.subtoolbar.mask.sam.notAllow")}]},[jn]),sr=(0,n.useMemo)(function(){return[{key:y.jB.AutoSegmentByBox,name:Tn("DDSAnnotator.subtoolbar.mask.box"),icon:(0,ae.jsx)(ot.Z,{component:Ri}),available:!0,withCustomElement:!0},{key:y.jB.AutoSegmentByStroke,name:Tn("DDSAnnotator.subtoolbar.mask.stroke"),icon:(0,ae.jsx)(ot.Z,{component:Ts}),available:!0,withSize:!0,withCustomElement:!0},{key:y.jB.AutoSegmentByClick,name:Tn("DDSAnnotator.subtoolbar.mask.click"),icon:(0,ae.jsx)(ot.Z,{component:ai}),available:!0,withCustomElement:!0}]},[]),Jn=(0,n.useMemo)(function(){return[{key:y.jB.PositiveVisualPrompt,name:Tn("DDSAnnotator.subtoolbar.visualprompt.positive"),icon:(0,ae.jsx)(ot.Z,{component:dl}),available:!0},{key:y.jB.NegativeVisualPrompt,name:Tn("DDSAnnotator.subtoolbar.visualprompt.negative"),icon:(0,ae.jsx)(ot.Z,{component:Bs}),available:!0}]},[]),Pn=(0,n.useMemo)(function(){var Fr,Xn;return!!(je.selectedTool===y.ru.Mask||je.selectedTool===y.ru.Polygon&&je.AIAnnotation||je.selectedTool===y.ru.Rectangle&&je.AIAnnotation&&je.selectedModel===y.HE.IVP||((Fr=je.creatingObject)===null||Fr===void 0?void 0:Fr.type)===y.gr.Mask||((Xn=je.creatingObject)===null||Xn===void 0?void 0:Xn.type)===y.gr.Polygon&&je.AIAnnotation)},[je.selectedTool,je.creatingObject,je.AIAnnotation,je.selectedModel]),Sa=(0,n.useMemo)(function(){var Fr,Xn;return je.selectedTool===y.ru.Mask||((Fr=je.creatingObject)===null||Fr===void 0?void 0:Fr.type)===y.gr.Mask?{basicTools:Wn,smartTools:er}:je.selectedTool===y.ru.Polygon||((Xn=je.creatingObject)===null||Xn===void 0?void 0:Xn.type)===y.gr.Polygon?{basicTools:[],smartTools:sr,customElement:(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("div",{className:"dds-annotator-subtoolbar-title",children:Tn("DDSAnnotator.subtoolbar.polygon.pointResolution")}),(0,ae.jsx)("div",{className:"dds-annotator-subtoolbar-slider",children:(0,ae.jsx)(on.Z,{min:.1,max:.9,step:.1,value:je.pointResolution,onChange:In,onAfterChange:function(Tr){return In(Tr,!0)}})})]})}:je.selectedTool===y.ru.Rectangle&&je.AIAnnotation&&je.selectedModel===y.HE.IVP?{basicTools:[],smartTools:Jn}:{basicTools:[],smartTools:[]}},[je.selectedTool,je.creatingObject,je.AIAnnotation,je.selectedModel,Wn,er,sr,Jn,je.pointResolution]);return{showSubTools:Pn,currSubTools:Sa}},Cs=Hl,Tt=e(20135);function To(Ue){var ye=Ue.categories,je=Ue.editState,In=Ue.forceColorByObject,It=(0,n.useMemo)(function(){return(0,xt.Cj)(ye.map(function(Wn){return Wn.id}))},[ye]),Tn=(0,n.useRef)(0),jn=function(er){var sr=.618;Tn.current=er+sr;var Jn=(er+sr)%1,Pn=(0,xt.WE)(Jn,.8,.95);return(0,xt.ZT)(Pn)};(0,n.useEffect)(function(){Tn.current=0},[je.annotsDisplayOptions.colorByCategory]);var Mn=(0,n.useCallback)(function(Wn,er){if(!In&&(je.annotsDisplayOptions.colorByCategory||er)){var sr=ye.find(function(Jn){return Jn.id===Wn});return(sr==null?void 0:sr.renderColor)||It[Wn]||"#fff"}else return jn(Tn.current)},[je.annotsDisplayOptions.colorByCategory,It,jn,Tn.current,In]);return{labelColors:It,getAnnotColor:Mn}}var $s=e(79233),Vo=e(22283),Ol=Object.defineProperty,la=Object.getOwnPropertySymbols,vl=Object.prototype.hasOwnProperty,_l=Object.prototype.propertyIsEnumerable,Zs=(Ue,ye,je)=>ye in Ue?Ol(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,Yl=(Ue,ye)=>{for(var je in ye||(ye={}))vl.call(ye,je)&&Zs(Ue,je,ye[je]);if(la)for(var je of la(ye))_l.call(ye,je)&&Zs(Ue,je,ye[je]);return Ue};const eu=Ue=>React.createElement("svg",Yl({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 No="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=",Ei=function(ye){var je=ye.url,In=je===void 0?"":je,It=ye.imgRef,Tn=ye.canvasRef,jn=ye.activeCanvasRef,Mn=ye.clientSize,Wn=ye.imagePos,er=ye.onLoad,sr=(0,n.useState)(!1),Jn=s()(sr,2),Pn=Jn[0],Sa=Jn[1],Fr=(0,n.useState)(!0),Xn=s()(Fr,2),Br=Xn[0],Tr=Xn[1],ra=function(or){Tr(!1),er(or)},Yr=function(or){or.stopPropagation(),It!=null&&It.current&&(It.current.src=In,Tr(!0),Sa(!1))},ca=function(or){var mr=or.target;mr.src=No,Tr(!1),Sa(!0)},Dr=In.indexOf("aliyuncs.com")>-1?"anonymous":void 0;return(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("img",{ref:It,src:In,alt:"pic",crossOrigin:Dr,style:{width:Mn.width,height:Mn.height},onLoad:ra,onError:ca}),(0,ae.jsx)("canvas",{ref:Tn,draggable:!1,onContextMenu:function(or){return or.preventDefault()},className:"dds-annotator-imageview-canvas"}),(0,ae.jsx)("canvas",{ref:jn,draggable:!1,onContextMenu:function(or){return or.preventDefault()},className:"dds-annotator-imageview-canvas"}),Pn&&(0,ae.jsxs)("div",{className:"dds-annotator-imageview-reload-cover",onClick:Yr,onDoubleClick:Yr,style:{left:Wn.current.x,top:Wn.current.y,width:Mn.width,height:Mn.height},children:[(0,ae.jsx)("img",{src:No,alt:"error-pic"}),(0,ae.jsx)("div",{className:"content-box",children:(0,ae.jsx)(Le.ZP,{ghost:!0,type:"primary",className:"reload-trigger",shape:"circle",size:"small",icon:(0,ae.jsx)(Vo.Z,{})})})]}),Br&&(0,ae.jsx)("div",{className:"dds-annotator-imageview-reload-cover",style:{backgroundColor:"#f6f6f6",left:Wn.current.x,top:Wn.current.y,width:Mn.width,height:Mn.height},children:(0,ae.jsx)($s.Z,{className:"reload-trigger"})})]})},lc=function(ye){var je=ye.isOldMode,In=ye.clientSize,It=ye.naturalSize,Tn=ye.categories,jn=ye.getAnnotColor,Mn=function(Pn){var Sa=Pn.categoryId,Fr=Pn.boundingBox,Xn=Pn.points,Br=Pn.lines,Tr=Pn.pointNames,ra=Pn.pointColors,Yr=Pn.segmentation,ca=Pn.mask,Dr=Pn.alpha,Mr=Pn.point,or=jn(Sa||""),mr={labelId:Sa||"",type:y.gr.Rectangle,hidden:!1,conf:Pn.conf||1,customStyles:Pn.customStyles,status:U.TK.Commited,color:or};if(Fr){var Lr=(0,w.cO)(Fr,In);Object.assign(mr,{rect:t()({visible:!0},Lr)})}if(Xn&&Xn.length>0&&Br&&Br.length>0&&Tr&&ra){var _r=(0,w.el)(Xn,Tr,ra,It,In);Object.assign(mr,{keypoints:{points:_r,lines:Br}})}if(Yr){var Ha=(0,w.Vh)(Yr,It,In),sa={group:Ha,visible:!0};Object.assign(mr,{polygon:sa})}if(ca&&ca.length&&Object.assign(mr,{maskRle:ca,maskCanvasElement:(0,ee.ei)(ca,It,or)}),Dr){var V=new Image;V.src=Dr,Object.assign(mr,{alpha:Dr,alphaImageElement:V})}return Mr&&Object.assign(mr,{point:t()(t()({},(0,w.YO)(Mr,It,In)),{},{visible:y.GI.labeledVisible})}),mr.type=(0,w.tQ)(mr),mr},Wn=function(Pn){var Sa,Fr=Pn.labelId,Xn=Pn.rect,Br=Pn.keypoints,Tr=Pn.polygon,ra=Pn.maskRle,Yr=Pn.point,ca=((Sa=Tn.find(function(_r){return _r.id===Fr}))===null||Sa===void 0?void 0:Sa.name)||"",Dr={categoryId:Fr,categoryName:ca};if(Xn&&Object.assign(Dr,{boundingBox:(0,w.kq)(Xn,In)}),Br&&Object.assign(Dr,t()({lines:Br.lines},(0,w.yn)(Br.points,It,In))),Tr){var Mr=(0,w.Vi)(Tr,It,In);Object.assign(Dr,{segmentation:Mr})}if(ra&&Object.assign(Dr,{mask:ra}),Yr){var or=(0,w.AR)([Yr.x,Yr.y],It,In),mr=or.x,Lr=or.y;Object.assign(Dr,{point:[mr,Lr]})}return Dr},er=function(Pn,Sa){var Fr,Xn=Pn.labelId,Br=Pn.labelValue,Tr=jn(Xn),ra=Tn.find(function(mr){return mr.id===Xn}),Yr=(ra==null||(Fr=ra.attributes)===null||Fr===void 0?void 0:Fr.map(function(mr,Lr){var _r;return((_r=Pn.attributes)===null||_r===void 0?void 0:_r[Lr])||null}))||void 0,ca={labelId:Xn,type:y.gr.Custom,hidden:!1,status:U.TK.Commited,color:Tr,attributes:Yr},Dr=function(Lr,_r){switch(ra==null?void 0:ra.labelType){case y.Ze.Rectangle:{var Ha=(0,w.JP)(_r,It,In);Object.assign(Lr,{rect:t()({visible:!0},Ha),type:y.gr.Rectangle});break}case y.Ze.Polygon:{var sa=(0,w.Uy)(_r,It,In),V={group:sa,visible:!0};Object.assign(Lr,{polygon:V,type:y.gr.Polygon});break}case y.Ze.Skeleton:{var k=(0,w.OX)(_r,y.v_.pointNames,y.v_.pointColors,It,In);Object.assign(Lr,{keypoints:{points:k,lines:y.v_.lines},type:y.gr.Skeleton});break}case y.Ze.Mask:{Object.assign(Lr,{maskRle:_r,maskCanvasElement:(0,ee.ei)(_r,It,Tr),type:y.gr.Mask});break}case y.Ze.Classification:{Object.assign(Lr,{labelValue:_r,type:y.gr.Classification});break}}return Lr};if(Sa&&Sa>0){if((ra==null?void 0:ra.labelType)===y.Ze.Classification)return{classification:Dr(ca,Br)};var Mr=new Array(Sa).fill(void 0),or;return Object.keys(Br).forEach(function(mr){or=Dr((0,g.cloneDeep)(ca),Br[mr]),Mr[Number(mr)]=t()(t()({},or),{},{frameEmpty:!1})}),{objects:Mr.map(function(mr){return mr||t()(t()({},(0,g.cloneDeep)(or)),{},{frameEmpty:!0})})}}return Dr(ca,Br)},sr=function(Pn){var Sa,Fr=Pn.labelId,Xn=Pn.rect,Br=Pn.keypoints,Tr=Pn.polygon,ra=Pn.maskRle,Yr=Pn.attributes,ca=Tn.find(function(mr){return mr.id===Fr}),Dr={labelId:Fr,attributes:Yr||(ca==null||(Sa=ca.attributes)===null||Sa===void 0?void 0:Sa.map(function(){return null}))||[]};switch(ca==null?void 0:ca.labelType){case y.Ze.Rectangle:{Xn&&(Dr.labelValue=(0,w.cx)(Xn,In,It));break}case y.Ze.Polygon:{Tr&&(Dr.labelValue=(0,w.A_)(Tr,It,In));break}case y.Ze.Skeleton:{if(Br){var Mr=(0,w.$G)(Br.points,It,In),or=Mr.points;Dr.labelValue=or}break}case y.Ze.Mask:{ra&&(Dr.labelValue=ra);break}}return Dr};return{translateAnnotationToObject:Mn,translateObjectToAnnotation:Wn,translateLabelToObject:er,translateObjectToLabel:sr,translateObject:je?Wn:sr,translateToObject:je?Mn:er}},ku=lc,io=e(47513),ns=e(10852),Xs=e(38904),Wa=e(21149),tu=function(ye,je){return ye.isDarkTheme===je.isDarkTheme&&ye.disabled===je.disabled&&(0,g.isEqual)(ye.data,je.data)&&(0,g.isEqual)(ye.values,je.values)&&ye.onChangeValue===je.onChangeValue&&ye.onFocusInput===je.onFocusInput&&ye.onClickAttributes===je.onClickAttributes},Xi=(0,n.memo)(function(Ue){var ye=(0,P.bU)(),je=ye.localeText,In=Ue.isDarkTheme,It=Ue.disabled,Tn=Ue.data,jn=Ue.values,Mn=Ue.onChangeValue,Wn=Ue.onFocusInput,er=Ue.onClickAttributes;return(0,ae.jsx)(io.Z,{layout:"vertical",className:Te()("dds-annotator-attributes-form",{"dds-annotator-attributes-form-dark":In}),children:Tn.map(function(sr,Jn){var Pn,Sa;return(0,ae.jsxs)(io.Z.Item,{required:sr.required,label:sr.hasAttributes?(0,ae.jsxs)("div",{className:"dds-annotator-attributes-form-item-title",children:[sr.field,(0,ae.jsx)(Ct.Z,{title:je("DDSAnnotator.attribute.edit"),children:(0,ae.jsx)(Le.ZP,{ghost:!0,className:"dds-annotator-attributes-form-item-title-btn",icon:(0,ae.jsx)(ze,{className:sr.requireAttribute?"attribute-warn":""}),shape:"circle",onClick:function(Xn){Xn.stopPropagation(),er==null||er(Jn)}})})]}):sr.field,children:[sr.type===U.In.Radio&&(0,ae.jsx)(ns.ZP.Group,{value:jn[Jn],options:(Pn=sr.options)===null||Pn===void 0?void 0:Pn.map(function(Fr,Xn){var Br=Fr.label;return{label:Br,value:Xn}}),onChange:function(Xn){return Mn(Jn,Xn.target.value)},disabled:It}),sr.type===U.In.Checkbox&&(0,ae.jsx)(Xs.Z.Group,{value:jn[Jn],options:(Sa=sr.options)===null||Sa===void 0?void 0:Sa.map(function(Fr,Xn){var Br=Fr.label;return{label:Br,value:Xn}}),onChange:function(Xn){return Mn(Jn,Xn)},disabled:It}),sr.type===U.In.Text&&(0,ae.jsx)(Wa.Z,{placeholder:je("DDSAnnotator.attribute.input"),value:jn[Jn],onChange:function(Xn){return Mn(Jn,Xn.target.value)},onFocus:function(Xn){return Wn==null?void 0:Wn(Jn,Xn)},onKeyUp:function(Xn){return Xn.stopPropagation()},onKeyDown:function(Xn){return Xn.stopPropagation()},disabled:It})]},sr.field)})})},tu),gl=Xi,Dl=function(ye,je){return ye.className===je.className&&ye.supportEdit===je.supportEdit&&(0,g.isEqual)(ye.classificationOptions,je.classificationOptions)&&(0,g.isEqual)(ye.values,je.values)&&ye.setDrawDataWithHistory===je.setDrawDataWithHistory},nu=(0,n.memo)(function(Ue){var ye=(0,P.bU)(),je=ye.localeText,In=Ue.className,It=Ue.classificationOptions,Tn=Ue.values,jn=Ue.setDrawDataWithHistory,Mn=Ue.supportEdit,Wn=(0,n.useState)(!1),er=s()(Wn,2),sr=er[0],Jn=er[1],Pn=function(Yr,ca,Dr){var Mr,or=It[Yr],mr=Tn==null||(Mr=Tn.find(function(Lr){var _r=Lr.labelId;return _r===(or==null?void 0:or.id)}))===null||Mr===void 0?void 0:Mr.attributes;return or!=null&&or.attributes&&or.attributes.length>0&&(ca==null?void 0:ca.labelId)!==or.id&&(!Dr||!(mr!=null&&mr.length))?{index:-1,labelId:or.id,attributes:or==null?void 0:or.attributes,values:mr}:null},Sa=function(Yr){setTimeout(function(){jn(function(ca){var Dr=Pn(Yr,ca.editingAttribute);Dr&&(ca.editingAttribute=Dr)})})},Fr=function(Yr,ca){jn(function(Dr){var Mr,or=It[Yr],mr=Dr.classifications.findIndex(function(Lr){return Lr.labelId===or.id});mr>-1?Dr.classifications[mr].labelValue=ca:Dr.classifications.push({labelId:It[Yr].id,labelValue:ca}),((Mr=Dr.editingAttribute)===null||Mr===void 0?void 0:Mr.labelId)!==(or==null?void 0:or.id)&&(Dr.editingAttribute=Pn(Yr,Dr.editingAttribute,!0)||void 0)})},Xn=(0,n.useMemo)(function(){return It.map(function(ra){var Yr,ca;return{field:ra.labelName,type:ra.valueType,required:!0,options:ra.valueOptions,hasAttributes:!!((Yr=ra.attributes)!==null&&Yr!==void 0&&Yr.length),requireAttribute:!!((ca=ra.attributes)!==null&&ca!==void 0&&ca.find(function(Dr,Mr){var or,mr;return(Dr==null?void 0:Dr.required)&&[void 0,null,""].includes((or=Tn.find(function(Lr){var _r=Lr.labelId;return _r===ra.id}))===null||or===void 0||(mr=or.attributes)===null||mr===void 0?void 0:mr[Mr])}))}})},[It,Tn]),Br=(0,n.useMemo)(function(){var ra=[];return It.forEach(function(Yr){var ca,Dr=(ca=Tn.find(function(Mr){var or=Mr.labelId;return or===Yr.id}))===null||ca===void 0?void 0:ca.labelValue;ra.push(Dr===void 0?null:Dr)}),ra},[It,Tn]),Tr=(0,ae.jsx)(gl,{isDarkTheme:!0,disabled:!Mn,data:Xn,values:Br,onChangeValue:Fr,onFocusInput:Sa,onClickAttributes:Sa});return(0,ae.jsx)("div",{className:Te()("dds-annotator-classification",In),onMouseDown:function(Yr){Yr.stopPropagation()},children:(0,ae.jsx)(st.Z,{activeKey:"classification",items:[{key:"classification",label:je("DDSAnnotator.annotsList.classification"),children:sr?null:Tr}],tabBarExtraContent:(0,ae.jsx)(Ct.Z,{title:je(sr?"DDSAnnotator.annotsList.showAll":"DDSAnnotator.annotsList.hideAll"),children:(0,ae.jsx)(Le.ZP,{ghost:!0,className:"tab-header-actions",icon:sr?(0,ae.jsx)(Be.Z,{}):(0,ae.jsx)(nt.Z,{}),shape:"circle",onClick:function(){return Jn(!sr)}})})})})},Dl),Nl=nu,uc=(0,n.memo)(function(Ue){var ye=Ue.data,je=Ue.supportEdit,In=Ue.onConfirmAttibuteEdit,It=Ue.onCancelAttibuteEdit,Tn=(0,P.bU)(),jn=Tn.localeText,Mn=(0,d.x)([]),Wn=s()(Mn,2),er=Wn[0],sr=Wn[1];(0,n.useEffect)(function(){sr((ye==null?void 0:ye.values)||[])},[ye.values]);var Jn=function(Fr,Xn){sr(function(Br){Br[Fr]=Xn})},Pn=function(){if(ye.attributes.find(function(Xn,Br){return Xn.required&&(er[Br]===void 0||er[Br]===null)})){T.ZP.error(jn("DDSAnnotator.attribute.required"));return}var Fr=[];ye.attributes.forEach(function(Xn,Br){Fr.push(er[Br]===void 0?null:er[Br])}),In(Fr)};return(0,ae.jsx)(zn,{children:(0,ae.jsx)(hn.Z,{id:"annotation-editor",className:"dds-annotator-attribute-editor",title:(0,ae.jsxs)("div",{className:"dds-annotator-attribute-editor-title",children:[(0,ae.jsx)("div",{children:jn("DDSAnnotator.attribute.add")}),(0,ae.jsx)(Le.ZP,{ghost:!0,className:"dds-annotator-attribute-editor-title-btn",icon:(0,ae.jsx)(Zt.Z,{}),shape:"circle",size:"small",onClick:It})]}),children:(0,ae.jsxs)("div",{className:"dds-annotator-attribute-editor-content",children:[(0,ae.jsx)(gl,{disabled:!je,data:ye.attributes,values:er,onChangeValue:Jn}),je&&(0,ae.jsx)("div",{className:"dds-annotator-attribute-editor-actions",children:(0,ae.jsx)(Le.ZP,{type:"primary",onClick:function(Fr){Fr.preventDefault(),Pn()},children:jn("DDSAnnotator.confirm")})})]})})})}),Wu=uc,Ho=(0,n.memo)(function(Ue){var ye=Ue.mode,je=Ue.isAiAnnotation,In=Ue.latestLabelId,It=Ue.currObject,Tn=Ue.onFinishCurrCreate,jn=(0,P.bU)(),Mn=jn.localeText,Wn=(0,n.useMemo)(function(){return ye!==U.je.Edit?!1:!!((It==null?void 0:It.type)===y.gr.Mask||(It==null?void 0:It.type)===y.gr.Polygon&&je)},[ye,It,je]);return(0,Et.Z)($e[Wt.SaveCurrObject].shortcut,function(er){It&&(er.preventDefault(),Tn(In))},{exactMatch:!0}),(0,ae.jsx)(zn,{children:(0,ae.jsx)(hn.Z,{className:Te()("dds-annotator-seg-confirm",{"dds-annotator-seg-confirm-visible":Wn}),title:(0,ae.jsx)("div",{className:"title",children:Mn("DDSAnnotator.seg.tool")}),children:(0,ae.jsxs)("div",{className:"content",children:[(0,ae.jsx)("div",{children:Mn("DDSAnnotator.seg.tool.content")}),(0,ae.jsx)(Le.ZP,{type:"primary",onClick:function(sr){sr.preventDefault(),Tn(In)},children:Mn("DDSAnnotator.confirm")})]})})})}),Hu=Ho;function Vl(Ue){var ye=Ue.setDrawDataWithHistory,je=Ue.categories,In=(0,n.useCallback)(function(jn,Mn){var Wn=je.find(function(er){return er.id===jn.labelId});if(Wn!=null&&Wn.attributes&&Wn.attributes.length>0)return{index:Mn,labelId:jn.labelId,attributes:Wn.attributes,values:jn.attributes||[]}},[je]),It=(0,n.useCallback)(function(jn){ye(function(Mn){if(Mn.editingAttribute){if(Mn.objectList[Mn.editingAttribute.index])Mn.objectList[Mn.editingAttribute.index].attributes=jn;else{var Wn=Mn.classifications.findIndex(function(sr){var Jn;return sr.labelId===((Jn=Mn.editingAttribute)===null||Jn===void 0?void 0:Jn.labelId)});if(Wn>-1)Mn.classifications[Wn].attributes=jn;else{var er;Mn.classifications.push({labelId:(er=Mn.editingAttribute)===null||er===void 0?void 0:er.labelId,labelValue:null,attributes:jn})}}Mn.editingAttribute=void 0}})},[]),Tn=function(){ye(function(Mn){Mn.editingAttribute=void 0})};return{judgeEditingAttribute:In,onConfirmAttibuteEdit:It,onCancelAttibuteEdit:Tn}}var Ji=e(33181),Js=e(2528),qs=e(98030),Rt=e(85706),Pi=Object.defineProperty,Rl=Object.getOwnPropertySymbols,Yi=Object.prototype.hasOwnProperty,Ko=Object.prototype.propertyIsEnumerable,Mo=(Ue,ye,je)=>ye in Ue?Pi(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,Iu=(Ue,ye)=>{for(var je in ye||(ye={}))Yi.call(ye,je)&&Mo(Ue,je,ye[je]);if(Rl)for(var je of Rl(ye))Ko.call(ye,je)&&Mo(Ue,je,ye[je]);return Ue};const gu=Ue=>n.createElement("svg",Iu({viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Ue),n.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 xs="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIxLjUgM2gtMTlBMi41MDMgMi41MDMgMCAwIDAgMCA1LjVWMTdoMjRWNS41QzI0IDQuMTIyIDIyLjg3OCAzIDIxLjUgM1ptLjUgMTJIMlY1LjVhLjUuNSAwIDAgMSAuNS0uNWgxOWEuNS41IDAgMCAxIC41LjVWMTVaTTQgN2gzdjJINFY3Wm04IDJIOVY3aDN2MlptMi0yaDZ2MmgtNlY3Wm0tNiA0aDh2Mkg4di0yWm0xMCAwaDJ2MmgtMnYtMlpNNCAxMWgydjJINHYtMlptMTEuMjkzIDcuNzA3IDEuNDE0IDEuNDE0LTMuMjkzIDMuMjkzYy0uMzkuMzktLjkwMi41ODUtMS40MTQuNTg1YTEuOTkzIDEuOTkzIDAgMCAxLTEuNDE0LS41ODVsLTMuMjkzLTMuMjkzIDEuNDE0LTEuNDE0TDEyIDIybDMuMjkzLTMuMjkzWiIvPjwvc3ZnPg==",el=function(ye){for(var je=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,In=navigator.userAgent.toLowerCase(),It=In.indexOf("mac")>-1,Tn=[],jn=function(){var sr=ye[Mn];if(!It&&sr.includes("meta")||It&&sr.includes("ctrl"))return"continue";if(sr.includes(".")){var Jn=sr.split(".");Jn.forEach(function(Sa,Fr){var Xn=(0,ae.jsx)("span",{className:Te()({"dds-annotator-shortcutsinfo-key":je}),children:De(Sa)},Fr);Tn.push(Xn),Fr!==Jn.length-1&&Tn.push((0,ae.jsxs)("span",{className:Te()({"dds-annotator-shortcutsinfo-combine":je}),children:[" ","+"," "]},Fr+"and"))})}else{var Pn=(0,ae.jsx)("span",{className:Te()({"dds-annotator-shortcutsinfo-key":je}),children:De(sr)},Mn);Tn.push(Pn)}Mn!==ye.length-1&&Tn.push((0,ae.jsxs)("span",{className:Te()({"dds-annotator-shortcutsinfo-combine":je}),children:[" ","/"," "]},Mn+"or"))},Mn=0;Mnye in Ue?Ti(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,mu=(Ue,ye)=>{for(var je in ye||(ye={}))us.call(ye,je)&&Us(Ue,je,ye[je]);if(qi)for(var je of qi(ye))Io.call(ye,je)&&Us(Ue,je,ye[je]);return Ue};const Wi=Ue=>n.createElement("svg",mu({className:"zoomResize_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:200,height:200},Ue),n.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 pu="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTk4MS4zMzMgNDIuNjY3djkzOC42NjZINDIuNjY3VjQyLjY2N2g5MzguNjY2ek0xMjggODk2aDc2OFYxMjhIMTI4djc2OHptMTcwLjY2Ny0xNzAuNjY3SDQ0OHY4NS4zMzRIMjEzLjMzM1Y1NzZoODUuMzM0djE0OS4zMzN6bTQyNi42NjYtNDI2LjY2Nkg1NzZ2LTg1LjMzNGgyMzQuNjY3VjQ0OGgtODUuMzM0VjI5OC42Njd6Ii8+PC9zdmc+",Au=(0,n.memo)(function(Ue){var ye=Ue.selectedTool,je=Ue.manualMode,In=Ue.supportRepeat,It=Ue.limitToolTypes,Tn=Ue.isAIAnnotationActive,jn=Ue.onChangeSelectedTool,Mn=Ue.onActiveAIAnnotation,Wn=Ue.undo,er=Ue.redo,sr=Ue.repeatPrevious,Jn=Ue.deleteAll,Pn=Ue.scale,Sa=Ue.onZoomIn,Fr=Ue.onZoomOut,Xn=Ue.onZoomReset,Br=Ue.onlySupportZoom,Tr=Ue.hideUndoRedoActions,ra=(0,P.bU)(),Yr=ra.localeText,ca=(0,n.useMemo)(function(){return[{key:y.ru.Drag,name:Yr("DDSAnnotator.toolbar.drag"),shortcut:$e[Wt.DragTool],icon:(0,ae.jsx)(ot.Z,{component:pn}),description:Yr("DDSAnnotator.toolbar.drag.desc")}]},[]),Dr=(0,n.useMemo)(function(){var sa=[{key:y.ru.Rectangle,name:Yr("DDSAnnotator.toolbar.rectangle"),shortcut:$e[Wt.RectangleTool],icon:(0,ae.jsx)(ot.Z,{component:y.ef[y.gr.Rectangle]}),aiIcon:(0,ae.jsx)(ot.Z,{component:y.VC[y.gr.Rectangle]}),aiModels:y.Xn[y.ru.Rectangle],description:Yr("DDSAnnotator.toolbar.rectangle.desc")},{key:y.ru.Polygon,name:Yr("DDSAnnotator.toolbar.polygon"),shortcut:$e[Wt.PolygonTool],icon:(0,ae.jsx)(ot.Z,{component:y.ef[y.gr.Polygon]}),aiIcon:(0,ae.jsx)(ot.Z,{component:y.VC[y.gr.Polygon]}),description:Yr("DDSAnnotator.toolbar.polygon.desc")},{key:y.ru.Skeleton,name:Yr("DDSAnnotator.toolbar.skeleton"),shortcut:$e[Wt.SkeletonTool],icon:(0,ae.jsx)(ot.Z,{component:y.ef[y.gr.Skeleton]}),aiIcon:(0,ae.jsx)(ot.Z,{component:y.VC[y.gr.Skeleton]}),description:Yr("DDSAnnotator.toolbar.skeleton.desc")},{key:y.ru.Mask,name:Yr("DDSAnnotator.toolbar.mask"),shortcut:$e[Wt.MaskTool],icon:(0,ae.jsx)(ot.Z,{component:y.ef[y.gr.Mask]}),aiIcon:(0,ae.jsx)(ot.Z,{component:y.VC[y.gr.Mask]}),description:Yr("DDSAnnotator.toolbar.mask.desc")}];return It?sa.filter(function(V){return It.includes(V.key)}):sa},[It]),Mr={key:y.Uu.SmartAnnotation,name:Yr("DDSAnnotator.toolbar.aiAnno"),shortcut:$e[Wt.SmartAnnotation],icon:(0,ae.jsx)(ot.Z,{component:y.QD[y.Uu.SmartAnnotation]}),description:Yr("DDSAnnotator.toolbar.aiAnno.desc")},or=[].concat(p()(Tr?[]:[{key:y.Uu.Undo,name:Yr("DDSAnnotator.toolbar.undo"),icon:(0,ae.jsx)(ot.Z,{component:y.QD[y.Uu.Undo]}),shortcut:$e[Wt.Undo],handler:Wn,description:Yr("DDSAnnotator.toolbar.undo.desc")},{key:y.Uu.Redo,name:Yr("DDSAnnotator.toolbar.redo"),icon:(0,ae.jsx)(ot.Z,{component:y.QD[y.Uu.Redo]}),shortcut:$e[Wt.Redo],handler:er,description:Yr("DDSAnnotator.toolbar.redo.desc")}]),p()(In?[{key:y.Uu.RepeatPrevious,name:Yr("DDSAnnotator.toolbar.repeatPrevious"),icon:(0,ae.jsx)(ot.Z,{component:y.QD[y.Uu.RepeatPrevious]}),shortcut:$e[Wt.RepeatPrevious],handler:sr,description:Yr("DDSAnnotator.toolbar.repeatPrevious.desc")}]:[]),[{key:y.Uu.DeleteAll,name:Yr("DDSAnnotator.toolbar.deleteAll"),icon:(0,ae.jsx)(ot.Z,{component:y.QD[y.Uu.DeleteAll]}),shortcut:$e[Wt.DeleteAll],handler:Jn,description:Yr("DDSAnnotator.toolbar.deleteAll.desc")}]),mr=(0,n.useMemo)(function(){return[].concat(p()(ca),p()(Dr)).reduce(function(sa,V){return sa.concat(V.shortcut.shortcut)},[])},[ca,Dr]);(0,Et.Z)(mr,function(sa){var V=[].concat(p()(ca),p()(Dr)).find(function(k){return k.shortcut.shortcut.includes(sa.key)});V&&jn(V.key)},{exactMatch:!0}),(0,Et.Z)($e[Wt.SmartAnnotation].shortcut,function(){ye!==y.ru.Drag&&Mn(!Tn)},{exactMatch:!0}),(0,Et.Z)($e[Wt.Undo].shortcut,function(sa){sa.preventDefault(),Wn()},{exactMatch:!0}),(0,Et.Z)($e[Wt.Redo].shortcut,function(sa){sa.preventDefault(),er()},{exactMatch:!0}),(0,Et.Z)($e[Wt.RepeatPrevious].shortcut,function(sa){sa.preventDefault(),sr==null||sr()},{exactMatch:!0}),(0,Et.Z)($e[Wt.DeleteAll].shortcut,function(sa){sa.preventDefault(),Jn()},{exactMatch:!0});var Lr=Pn>=y.Fv,_r=Pn<=y.vL;(0,Et.Z)($e[Wt.ZoomIn].shortcut,function(){Lr||Sa()}),(0,Et.Z)($e[Wt.ZoomOut].shortcut,function(){_r||Fr()}),(0,Et.Z)($e[Wt.Reset].shortcut,function(){Xn()});var Ha=function(V){var k=el(V.shortcut.shortcut,!1);return(0,ae.jsxs)("div",{className:"dds-annotator-slidertoolbar-popover",children:[(0,ae.jsxs)("div",{children:[(0,ae.jsx)("span",{className:"popover-title",children:V.name}),(0,ae.jsx)("span",{className:"popover-key",children:k})]}),(0,ae.jsx)("div",{className:"popover-divider"}),(0,ae.jsx)("div",{className:"popover-description",children:V.description})]})};return(0,ae.jsxs)("div",{className:"dds-annotator-slidertoolbar",onMouseDown:function(V){V.stopPropagation()},children:[Br?(0,ae.jsx)("div",{}):(0,ae.jsxs)("div",{className:"dds-annotator-slidertoolbar-content",children:[ca.map(function(sa){return(0,ae.jsx)(Ji.Z,{placement:"right",content:Ha(sa),children:(0,ae.jsx)(Le.ZP,{className:Te()("slidertoolbar-btn",{"slidertoolbar-btn-active":ye===sa.key}),icon:sa.icon,onClick:function(){return jn(sa.key)}})},sa.key)}),Dr.map(function(sa){return(0,ae.jsxs)("div",{className:Te()({"slidertoolbar-annotool-active-wrap":ye===sa.key&&!je}),children:[(0,ae.jsx)(Ji.Z,{placement:"right",content:Ha(sa),children:(0,ae.jsx)(Le.ZP,{className:Te()("slidertoolbar-btn",{"slidertoolbar-btn-active":ye===sa.key&&!Tn}),icon:sa.icon,onClick:function(){return jn(sa.key)}})}),ye===sa.key&&!je&&(0,ae.jsx)(Ji.Z,{placement:"right",content:Ha(Mr),children:(0,ae.jsx)(Le.ZP,{className:Te()("slidertoolbar-btn",{"slidertoolbar-btn-active":Tn}),icon:sa.aiIcon,onClick:function(){return Mn(!Tn)}})},Mr.key)]},sa.key)}),(0,ae.jsx)("div",{className:"slidertoolbar-divider"}),or.map(function(sa){return(0,ae.jsx)(Ji.Z,{placement:"right",content:Ha(sa),children:(0,ae.jsx)(Le.ZP,{className:Te()("slidertoolbar-btn"),icon:sa.icon,onClick:sa.handler})},sa.key)})]}),(0,ae.jsxs)("div",{className:"dds-annotator-slidertoolbar-content",children:[(0,ae.jsx)(Le.ZP,{type:"primary",className:"slidertoolbar-btn",onClick:Xn,icon:(0,ae.jsx)(ot.Z,{component:Wi})}),(0,ae.jsx)(Le.ZP,{type:"primary",className:Te()("slidertoolbar-btn",{"slidertoolbar-btn-disabled":_r}),icon:(0,ae.jsx)(Js.Z,{}),onClick:Fr}),(0,ae.jsxs)("div",{className:"slidertoolbar-scale-text",children:[Math.floor(Pn*100),"%"]}),(0,ae.jsx)(Le.ZP,{type:"primary",className:Te()("slidertoolbar-btn",{"slidertoolbar-btn-disabled":Lr}),icon:(0,ae.jsx)(qs.Z,{}),onClick:Sa})]})]})}),ks=Au,wl=e(92183),ml=Object.defineProperty,Ms=Object.getOwnPropertySymbols,Is=Object.prototype.hasOwnProperty,Ou=Object.prototype.propertyIsEnumerable,Ls=(Ue,ye,je)=>ye in Ue?ml(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,ma=(Ue,ye)=>{for(var je in ye||(ye={}))Is.call(ye,je)&&Ls(Ue,je,ye[je]);if(Ms)for(var je of Ms(ye))Ou.call(ye,je)&&Ls(Ue,je,ye[je]);return Ue};const it=Ue=>n.createElement("svg",ma({viewBox:"0 0 33 33",fill:"none",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},Ue),n.createElement("path",{d:"m15.5 1 13.423 7.75v15.5L15.5 32 2.077 24.25V8.75L15.5 1Z",fill:"#fff"}),n.createElement("path",{fill:"url(#logo_svg__a)",d:"M0 0h33v33H0z"}),n.createElement("defs",null,n.createElement("pattern",{id:"logo_svg__a",patternContentUnits:"objectBoundingBox",width:1,height:1},n.createElement("use",{xlinkHref:"#logo_svg__b",transform:"scale(.00417)"})),n.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 Ut="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzMgMzMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxwYXRoIGQ9Im0xNS41IDEgMTMuNDIzIDcuNzV2MTUuNUwxNS41IDMyIDIuMDc3IDI0LjI1VjguNzVMMTUuNSAxWiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGZpbGw9InVybCgjYSkiIGQ9Ik0wIDBoMzN2MzNIMHoiLz48ZGVmcz48cGF0dGVybiBpZD0iYSIgcGF0dGVybkNvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjx1c2UgeGxpbms6aHJlZj0iI2IiIHRyYW5zZm9ybT0ic2NhbGUoLjAwNDE3KSIvPjwvcGF0dGVybj48aW1hZ2UgaWQ9ImIiIHdpZHRoPSIyNDAiIGhlaWdodD0iMjQwIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVBBQUFBRHdDQVlBQUFBK1ZlbVNBQUFBQ1hCSVdYTUFBQ0U0QUFBaE9BRkZsakZnQUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFCTEhTVVJCVkhnQjdkMWZWaHczRmdid0t4WDJqSUU0N1FXWUZDdElXTUhBQ29MQmVRNWVBYkFDbWhVQUs4QjVEdGlkRmNBT2NGYmdNbG1BZXh5TWs0R1NScXFtQ1NZQmQzZEpLbDNWOTN2S09mUG5uTkQ5ZGQwclhha0VRWEx5NVUrTE90TmJtblFoUzdsZDlCNFZCRWtTQk1uSWwzVkh5VTliSlBUR1ovK0JsdDBQNm8rOWZ1OUpueUFwQ0hBaTVsWnNjRXNUWE5HNTQ3OVNhSzIzZjNzMSs1SWdHUWd3YzdaY1ZsTHRtMDh5SC9GL1lzdnFKWlRWYVVDQW1UTEJ6VTJmdTIvNjNFV2F6RXYweC93aHdNd00rdHcvMWttb0x0WFhOLzN4N3VtclI5c0VMQ0hBak9TcjUrdUtiSER2N0hNbmhmNllLUVNZZ1J2YlFvdmtrU0RSRTZYWVJGbk5Cd0ljTVFkOTdxVFFIek9CQUVmb3J6NzMzbTBoMzFCV000QUFSK2JweXRtYUVMVFRZSEJ2S3pTVm03OGRQdTRSUkFjQmprU29QcmNHbE5VUlFvQWJWcFhMMmNkZDgxSDhTQnhvMlpXS2ZrS1E0NEFBTnlTU1BuZFM2SThqZ1FBM1lJTHh4MWdWc256d3JPZzlmRVBRQ0FRNG9QeUhzKyswa2pzUjk3bVRRbi9jRUFRNGdEdVArYVhHOU1jWXl3d0xBZmJNNC9oanJOQWZCNFFBZTVKUW56dXBONmFzZm9heTJpOEUyTEVHeHg5amhmN1lJd1RZRWNmSC9GSlRtUDc0SmZwajl4QmdCMXJZNTA0Sy9iRmpDSEFORE1ZZm80UmppKzRnd0JNWTlMbks3T2ZTTWtFZDZJOXJRb0RId0h6OE1WWW9xMnRBZ0VkVUhmTWpzZFhpYlNIZmNHeHhBZ2p3RjZEUERRNWw5UmdRNER1d08rYVhHcnhOWWlRSThDM29jNk9DL3ZnTEVPQWJNUDRZTGJ4TjRnNElNQ1Y5ekM4MTZJOXZhWFdBVzNQTUx6VTR0bml0dFFIRytDTjc2SStwaFFHMmZXNHB5MTBoeExjRUtXajFzY1hXQkJqSC9KTFh5djQ0K1FCalc2aFZDdEppNy9UVjlDNjFSTklCUnAvYldxM3BqNU1NTU1ZZjRVcnlaWFZTQWJaOXJzcktMc1lmNFROYTdFb2w5bElNY2hJQlJwOExJMGl5ckdZZjRLZXJINWVGcGgyTVA4S0k3RmptQy9NMFBxWUVzQTB3K2x5b0tZbittRjJBTWY0SVRqRS90c2dxd0hNck5yam9jOEU1dHYweGl3RGptQjhFd3U3WVl0UUJ4dmdqTklSTmZ4eGxnTkhuUWdUNnBqL2VqZjNZWW5RQlRtVDhzVzkrZkxhbCtRZXQ1TG9XT2lmZ0t1citPSm9BcDNQTVQrL0pjcVpiOUVTMXFvbnBzRFFJRXNlaUZDOWlLNnNiRDNBcWZXNzFBVXUxV2Z3OCsrYWYvdlBxMzFQcUl6eU4yWXVxUDI0c3dLbU1QNXJnRmtLVUw0cURyNDVIK2UvbksyZHJtdVFXZ3N4YU5NY1dHd2x3OVpZRFFUdjgrMXkxSnk5bmQ0Zmw4cWhRVmllajhmNDRhSUJUR1g4MGY3U2VLR1h0dCt0ZHZTVHR0U2I2am9DenhzcnFJQUZPNVlsVDlibWkzQjYxWEI0Vnl1cEVOSEJzMFd1QUV6cm1WMjBMblI3TWV1dDVxaCs1cWNzMXMvZTRSY0JaMExMYVc0QVRPdVpueXFQcHpYSDczRWtOcXBWTDgwTWh2eWZnckpEbGcyZEY3K0ViOHNoNWdCTTk1aGU4eDBGWm5ReXYzeDFuQVc3QitHTWpvM1Z6ejMvdm9xeE9nS2UzU1RnSmNNdU8rUVhmT3NDMlV6S2NmM2RxQmJqbHgveUN2eEVBWlhVeW5CMWJyQlhndWRXUG1pQjRmM3hWVnErYmY4VEZCbndWcDRjejgxU1RKS2hyVFdYcXFHb2pBams5K0twcmZqUVdUR1AxRTBHckljQnU1Q1JVMTFRa2IrMllLQVZnbi9pbmg3TnJVdWhOZ3RaQ2dOM0toUkQ3MzZ5ZXY3WUxUeFJBY1RDN2E1N0c4MEtMZ3FCMUVHQVB6Qjc0c2ltcjM1b244bjZJSU51bnNWQmlDU0Z1SHdUWXI2disrTno3M2poQzNFNUpCdGdzclhzZFh4dVQ2WS8xVG9qK0dDSCtuRDE4SXFsOGx2SmlYMUlCdG9mcnBWQkw3dzVuRm14ZkdOa0hWL1hIdnN2cUtzU1pNbDlhWW5sUnVRdlY5MERyRis4T3A1ZUt3OGU5YXJFdjBYV0NWQUpzRDlkdmkvTFJ3dkNvMy9VcXJma2dJL3ZnMXFyKzJPTzJrNzNXeDZ4T1IzMmJvaWQvZlE5dVRUdlo3OE83VjlQekVYNGZha2xoa0dPa1FZcEloeCs4VG5QWjFYQzdvRVl0TU02bGM1RWMzWFF5eU1FMndKTWNybzkwcHJpUVVqKzc2eks4T3ZMbDl4MlZQWHhMQ1U5c0NVMi9DcWsySnJsa29lSHZRMnNEWFB0d2ZmNzg5MFd0c3YySVpvcjdKc1JMUGtJOHQySXFENUhrYVNabmx5dzBOR1Bld2dDYi9tYVNTK1R1a2o4LzI0am80blZ2SWY1bTVmeHRXZ2NnUHI5NzJ4WGJaZ21WL1Jqb2I5V2VXZWhxTzhDc0l0b1pZSmNmbXAxaXN0c3VrYXhXZDVRU1Iva1BaODR2dUJPazlpZ0IxOStEdzlrTkh6ZWsyTzlYUk4rSGtVVDlCQjczenVVNklycDR2ZmhRL20vQjVmdHF1ZmZDSWI4SFE0UCtXSjJRdjc5WitrOWdyYWxIbDFNRkJSRFJOa1ArZGZhdjErUlFZWDhNRk10aGhyOXRENFp3ZGM3OWlCajg0TVZkUWd1OVlVY1JRNTN3c2V6K1lkTmxsTDFQelBYNHBjeDBqM2l4bHdrNmI1dnVZNE5ydHQ2TzdIZU95eVVWbkJheDdDMEdkcC92bUFKcCtPTDF2aW1sNTEyVzB1YnplaytSUDFWODNiMTluNGJ1YzJ2ZGdmNjhPaGdRNklTUFZaWFZkaXl6bWJLNjgxait5KzMyajZKZktGNzk2L0hIUU9HMXdiVVRjU3I3K0piclpZd2NSeW12UnhFN1puR0dBcmd1cTAwL1JpR1pMNVhMSHlzcGRFeUhQSWFxUHRlV3kwWEFpd0p0VzZiaytZbTlpSUh6Wll4OFo2SE5ILzV4OXZBazZBMFlnNnRzNW0yWlI0R282clpQUjJSY0FiN2FGbHBvb3MrMUIwdFN1SXd4bFV2dGd0eUNmNU1kQWxGYTJCTFg5NiszczE3NGFqdnBQVFdzenZqanBLN1dNM2JNRnphVzJYQmNhbmVENlk4dlRvTDJ4NE9yYkJZQzlNYTJGMTRqQjRyQmowQ1R4d3p0K09QbXUxY3ozNFh2Yzh1VGlNTHJUR29IK3IwZjFidHBjSUQrendYZkpiVVE1TzQ5U2JxcEFOdnhSN3N0NU84RmNiZmxxK2ZyZ3dVcTNuM3VmVksrRnpyb0d4VG1WczllK2p6Vllzcm9KeTdLNkxrVis0VU8xL3MxVkM0dmxyTGNOWDN1dHhRdmxOQmZNTHdCNDIySXN0cGVIdUJ6K0tNejllOG05cUpyMG50Q1RTK0dLNWMvNWNOQmpNakQ2MHdiTHJYTFE5MFFLY3VMRFYvM2NhbXk1TlcvbVY3WDE2R0Qyd1o5N3ZtTy9ad1RleXZtRjdYcFZrcmJINTk0dmNyR2xMaWlsSDd1bzVJaUp4NzY5bDZ5VUwwdTkwR011dHAycld4bitBWUZYMDlqdTdCbHZzRFB5RDBPSmVIZ1RIT1kwMk9MZzM0KzNRV3FVYlQxWHVocUxQUHA2a2N2WmVuZ0MrejhERzc4SjJPMDN2UnhJY0ZOSEE4YytOVG1pOTF6MDYrKzlsVlN5L0t5UzI1TDZiZ0RMR2piNXloazFlZWFsWDRiM0xiMXVmZkJteGxzU2UwaHhOWFFoSGI3RkE0MSt6MHU4MFBZT3oyWTZaSW50bEtxK2x5ODRQeHZFR0NyQ3JINzE1OUlkV2tYY3B3OWhUdjA3K2dDWE4yV1VVcHZiMGkwcTh1MlVtcHpuM3NmQkhoSTZKMzgrYWRGY3NqSFV6ZzJRaXN2THplM0pmUFRsYk0zYlYxZEhoVUNmSVBTeXZsclFhK2V3a215VDE4ZmZXOTFINVU4UDJuTE1FWWRDUERuT2pyVCsrUlF0VGNjOFBoaFNQYnBTNDROd29zVjVsRkZmaWNXYlllK204ckhmVlRteVo3YzIvRjhQWDFMV2ZZUTN0SEZmU3VsMG9NWGxBbTFGUFNWb1VJN3ZlMGpVeGM5U295UHAyKzFZSVd5ZVN3c1NtZzdHQkg0YnFyT1kvblEyVk80V3N3U1ViMnp1TGErNHgrbDZtWVZMRmlOalZVUGJFdTJZSGMzQzFwM3V1OWEwcStVamwvY1hqei9LVGNsZVlydmIvS081U0xXZFpDRjN2UVlaS2RQNFVndmxKdUkrUUYxK3ZTdDNoQ0l2bmNpckZlaHI5OXQ1T3UyU1BNVUprZEtvUXBLaGNxT3laSEJ0aDBtckNiRmZodnA1bTJSSGxhc082NkdPeklwQzBwQXRmcnNjSEREOWJaZDJ5U3pEMXdGMmE1WU93NnlzNFAwRjFtVGw4bTVWSkFqMVUyUk9KaFFTM0tESERlRDdHVHJTUXAzRjhvbFFDdmxiREd1Nm4yaGxtUW5zYW9iSTB2bFlzZytEM1ZWTFF2Q1lTdWd4WDhJYXNFbzVTaXlDNFlYeXZtaFNUbHBCWjZ1ZmxqR3luTjlDUEFJbEo3S0Nad1NKSk83WkwwSkNQQW9NTjduSHY2bVRpUWU0S21DbkZCUEtCV2krYXQ1N0R1YVRDMk90c1FCUElGSFlQWSt2NlowUkhDenhSVEM2d2dDRE1HVm1jYjFPSTRnd0JDYzBCbWV3STRnd0FDTUljQVFua1lKN1FvQ0RBM0FGYkd1SU1BQWpDSEFBSXdod0FDTUljQUFqQ0hBQUl3aHdLRThLTEh5Q3M0aHdLRmNZTzhUM0VPQUFSaERnQUVZUTRBQkdFT0FBUmhEZ0FFWVE0QUJHRU9BWVN5Q1JFNFFEUVFZZ0RFRUdJQXhCQmlBTVFRWWdERUV1RVh3a3JiMElNQUFqQ0hBQUl3aHdBQ01JY0Fqd1ZsZWlCTUNQQUlkeFF2QkFQNE9BUVpnREFFR1lBd0JCbUFNQVFaZ0RBRUdZQXdCQm1BTUFRWmdEQUVPcEpRaUp3REhFR0FBeGhCZ0dJL0dXR2xNb2c1d0pyT0NJQzR5KzVvZ0duZ0NBekNHQUFNd2hnQURNSVlBQXpDR0FBTXdoZ0FETUlZQUF6Q0dBTGZKZ3pLT0lReXBNQXppQ0FMY0poZHhURkVKd2pDSUt3Z3dBR054QjFoZm9OUUN1RWZVQVZhVXZaNWIrYlRWV1g2UElGY3kvQjNnTS9HWDBFSjFIMmNQVDU2dW5LMVIyMDFGc2dnRjBlRFNBK2RDaVAyNTFZOXY4WVk5Z0w5d1c4VEtWYWJlbWlEdkk4Z0FmRmVoMTB5UVQyeC9UQUF0eG5rYnFXUDdZMXRXMzlVZkY3MUhCUUVrTElWOTRLby8vbWIxL0FobE5iUk5Nb01jbXZRaSttTm9teFFuc1d4L2ZEUzNjcjVCNEp3Z25STkVJOVZSeXB5RTNySDlNUUVrTFBWWjZKd2lJVWprQk9BWURqUEFXRFNKZ2lBYUNEQ01SNVgvSllnR0FnempFYklnaUFZQ0RHT1JVcndoaUFZQ0RHUHBYLzVSTzhCYVl5dktGUVFZUm1aVzBvLzd2U2Q5cWt2RXN6dkFIUUlNSXhOYS9VUTE1VCtjZlVmZ1RLMEFTNjFmQ0kxdGhUWXdUOStpZURYN2ttb3FsY3FwNVd3bEk0VjZRUTdVQ3JEOVFOKzltcDZYUW04aXlHa1RwVmdpQjRTU2k5UlM5a2ZRUHZUZUhVNHZGUWRmSFpNRFRrcm80bUIyVnlqN0FldmFKVmFrT3EwK0lDRm8yOW5SekV6OGg5cW5iMzY1dGtYNWFNRkZGWE9Uc3g3WWZzQ25oN05yc3BUenRrU2d0SFNxazA3TUw5Z3JzMG51aGRaN3B3Y3pYWEtnK2hIVTFLb2VXQkQxVENZV1RnKys2aFk5VVg4QjhCYm5pMWcyeUxaRVNMSS81bjdCbnBaakJ0aUU5M0RXMmFtdVVwYUwxQkpYZmU3U3U4T1paejR2bHZDMkNqM3NqMjNwUUxhRVNFYzdMdGd6NnhvdXcxdjlYNUpvd3hWSWZmdTNjOW5uM3NmN05wSXRIV3dKa1dCL25PUUZlOVZDaTNseW5KcDFEWExvNmVxSDVlVDNmODNEU3BiVDg2Ny9kdmNKc2cvOFdYK2MzbXAxUWhmczZiMXFvY1hEazBQUzFEb2xxaXFYelhmYlY1OTduNkNESEZWL2JMZWQwdXVQdjNqQlhzeXVuN3FtWlBieEJiUi9FM3ZsRVNWbStIZXJ5dVdHTGxCc1pCTEw5c2RDL2JsdzFSK25oTnNGZTlYMmh2a0N6dnZzMXhMc2ZZZDk3bnlJUHZjK2pZMVNGcjBuL2F2K2VENjEvcGpKQlhzdmg5c2I1TkhjeXNldHRIcGZ2UmU2ejczUEZEWHNxdlJZeTFjLzlMU2UydEVpcVpNcXRqOWVuRnM1MzdPeGpvSHQxNFFvdDBNOE9lemNzMUxVcFFSVWZ6ZXBOb3VmWjZNNlRpa29Nbm5WTDhtdHhJTHNoQlRTYkUwOE9xWUo1Y3U2RTJxUnhWWWVTcW9qN2s5ZjIrZWFIN3dYVFpmS2Q0bnVOTktnUDA1NkxMTXg0Y0tyTzZVc2U4ekQrOWY0WTZUaHRhSThUbmh6MndsQjVrZG41L3RtTWU5YjR1dmxvTThOdnkwMHJzWjc0UHRjOThjclo4Y29xK05ubjd3NisvU2E2NVpSeVBVQlY2THJnZTh6OS96M3JsRFpqMjBOY3QwZTJDZmI4OXF5bWVtVHR5KzEzblI5VWlnRVZqZHkySklHL1hGOFRIZ1g3WUlWdy9EMmgrT1BITU5yc1hvQzMyUi84WFdtVExuV251TnBzVDJCYmNtczVDZXp6NnZadlllcUtwZEw4WUw3SzJqWjNvazFPTFk0czRCcmZacnhkUFhqc3BMbko5ekNLelQ5MnZUNG8wdHNuOEMzMmY2WXRFejZ1Rm9NVDJCYkx1dE1iekZjcUxMamo5dXhURkM1a3N5dGxLbU9aWDVHWHpSMkc0Z3RsK2RXem5mc3ExdjVoVGV1OFVlWGtua0MzMlJIK0hRcFh5ZTRXbDFvcmJkL0M3amdNdWh6LzFnblVacFNXYkM2VGlpVlB2YytTUVo0S09HeHpFSlR1Zm5iNGVNZWVYUzF1cnpQYmFJcTl2RkhsNUlPc0ZYTjVFNWRyaVhhSDlzVFJkdXVuekNERlg2OXo3UFBWWHUrVDFqRkpQa0FEMVZCenNxdStWZitrVktqWlZjcStxbHVrRGx2Q3czNjNKbm9SeDlkYTAyQWgvTFZEOHNKSGx1MGF2WEgrZXI1dWlMVlpkbm5NaHQvZEtsMUFSNUt1VCtXNVlOblJlL2hTT2RXYlo5YnluS1gyeFJWMWVlUzNpd09aN3l1QThTdXRRRzJraTZydjlBZmMrOXo1ZVhzYnR2SzVYL1M2Z0FQRFlKOGFmWUk1ZmVVR3RNZm43NTZkSDMzR09kdElmSzBhTWNaQW54RDB0dE9waisyL3lBRTdhRFBUUWNDL0EvYWZtd3hJbXlQK1lXQ0FOOGg4ZjQ0ZHVoelI0UUFmMEViankwMnFRM2pqeTRod0NQQ2JabCsyV04rUXFvTjlMbmpRWURIMUlaamk0RWxlY3d2RkFSNEF1aVBYV25uK0tOTENIQU5DUjliOUFwOXJqc0lzQVBvajBmVHBtTitvU0RBamx4TmMyMFF5V1RmZzFzRHRvVThRWUFkUTM5OEcvcGNueEJnVDlwZVZtUDhNUXdFMkxQOCtkbUdWbks5TFVIR01iK3dFT0FBV2xKV284OXRBQUljRU9NenVQY3lYNktlS09VbXRvWENRNEFia0VwL2pENjNlUWh3ZzY3R011MjJFN2VEOVJoL2pBUUMzREIyL2JGOW14LzYzR2dnd0pHbyttT3BqMkl0cXpIK0dDY0VPREt4OWNjWWY0d2JBaHloZlBsOVIwMU5iVFI4YkJGOUxnTUljTVNhNjQ4eC9zZ0ZBc3hBL3Z6M1JhMnlmZDlsZGRYblNyVlovRHc3MHFYdzBEd0VtQkZmL1RINlhMNFFZR1ljSDF2RStDTnpDREJURHZyamw3S2Mza1J3ZVVPQW1SdTNyTWI0WTFvUTRFUjg2ZGhpMWVkcXRZMjNIS1FGQVU3SUhXVTErdHlFSWNBSkdoNWJOUHU1ZlJ6elM5di9BV2lQL05ZUHp6MVFBQUFBQUVsRlRrU3VRbUNDIi8+PC9kZWZzPjwvc3ZnPg==",_n=Object.defineProperty,dr=Object.getOwnPropertySymbols,Ra=Object.prototype.hasOwnProperty,So=Object.prototype.propertyIsEnumerable,fi=(Ue,ye,je)=>ye in Ue?_n(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,Go=(Ue,ye)=>{for(var je in ye||(ye={}))Ra.call(ye,je)&&fi(Ue,je,ye[je]);if(dr)for(var je of dr(ye))So.call(ye,je)&&fi(Ue,je,ye[je]);return Ue};const rs=Ue=>n.createElement("svg",Go({viewBox:"0 0 22 22",xmlns:"http://www.w3.org/2000/svg"},Ue),n.createElement("g",{clipPath:"url(#docs_svg__a)"},n.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"})),n.createElement("defs",null,n.createElement("clipPath",{id:"docs_svg__a"},n.createElement("path",{d:"M0 0h22v22H0z"}))));var vi="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjIgMjIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMTQuNjY2IDUuNWEuOTE3LjkxNyAwIDEgMSAwIDEuODMzSDcuMzMzYS45MTcuOTE3IDAgMSAxIDAtMS44MzNoNy4zMzNabTcuMDY1IDE2LjIzMWEuOTE2LjkxNiAwIDAgMS0xLjI5NiAwbC0yLjIwNi0yLjIwNmE0LjA4NiA0LjA4NiAwIDAgMS00LjQ4LS4wNTMgNC4xMjUgNC4xMjUgMCAxIDEgNi40MTctMy40MyA0LjA4NSA0LjA4NSAwIDAgMS0uNjQxIDIuMTg3bDIuMjA2IDIuMjA2YS45MTcuOTE3IDAgMCAxIDAgMS4yOTZabS01LjY5LTMuMzk4YTIuMjkyIDIuMjkyIDAgMSAwIDAtNC41ODMgMi4yOTIgMi4yOTIgMCAwIDAgMCA0LjU4M1ptLTQuMTI1IDEuODM0aC01LjVhMi43NSAyLjc1IDAgMCAxLTIuNzUtMi43NVY0LjU4M2EyLjc1IDIuNzUgMCAwIDEgMi43NS0yLjc1aDExYS45MTcuOTE3IDAgMCAxIC45MTcuOTE3djcuMzMzYS45MTcuOTE3IDAgMCAwIDEuODMzIDBWMi43NUEyLjc1IDIuNzUgMCAwIDAgMTcuNDE2IDBoLTExYTQuNTg5IDQuNTg5IDAgMCAwLTQuNTgzIDQuNTgzdjEyLjgzNEE0LjU4OSA0LjU4OSAwIDAgMCA2LjQxNiAyMmg1LjVhLjkxNy45MTcgMCAxIDAgMC0xLjgzM1oiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBkPSJNMCAwaDIydjIySDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",yi=Object.defineProperty,Lo=Object.getOwnPropertySymbols,Fo=Object.prototype.hasOwnProperty,Vi=Object.prototype.propertyIsEnumerable,vs=(Ue,ye,je)=>ye in Ue?yi(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,hu=(Ue,ye)=>{for(var je in ye||(ye={}))Fo.call(ye,je)&&vs(Ue,je,ye[je]);if(Lo)for(var je of Lo(ye))Vi.call(ye,je)&&vs(Ue,je,ye[je]);return Ue};const Gl=Ue=>n.createElement("svg",hu({viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},Ue),n.createElement("g",{clipPath:"url(#settings-sliders_svg__a)"},n.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"})),n.createElement("defs",null,n.createElement("clipPath",{id:"settings-sliders_svg__a"},n.createElement("path",{d:"M0 0h20v20H0z"}))));var As="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNLjgzMyAzLjk1OGgyLjI4YTMuMTA3IDMuMTA3IDAgMCAwIDUuOTk2IDBoMTAuMDU4YS44MzMuODMzIDAgMCAwIDAtMS42NjdIOS4xMDlhMy4xMDcgMy4xMDcgMCAwIDAtNS45OTYgMEguODMzYS44MzMuODMzIDAgMCAwIDAgMS42NjdabTUuMjc4LTIuMjkyYTEuNDU4IDEuNDU4IDAgMSAxIDAgMi45MTcgMS40NTggMS40NTggMCAwIDEgMC0yLjkxN1pNMTkuMTY3IDkuMTY3aC0yLjI4YTMuMTA2IDMuMTA2IDAgMCAwLTUuOTk1IDBILjgzM2EuODMzLjgzMyAwIDAgMCAwIDEuNjY2aDEwLjA1OWEzLjEwNSAzLjEwNSAwIDAgMCA1Ljk5NSAwaDIuMjhhLjgzMy44MzMgMCAwIDAgMC0xLjY2NlptLTUuMjc4IDIuMjkxYTEuNDU4IDEuNDU4IDAgMSAxIDAtMi45MTUgMS40NTggMS40NTggMCAwIDEgMCAyLjkxNVpNMTkuMTY3IDE2LjA0Mkg5LjEwOWEzLjEwNyAzLjEwNyAwIDAgMC01Ljk5NiAwSC44MzNhLjgzMy44MzMgMCAxIDAgMCAxLjY2NmgyLjI4YTMuMTA3IDMuMTA3IDAgMCAwIDUuOTk2IDBoMTAuMDU4YS44MzMuODMzIDAgMCAwIDAtMS42NjZaTTYuMTEgMTguMzMzYTEuNDU4IDEuNDU4IDAgMSAxIDAtMi45MTUgMS40NTggMS40NTggMCAwIDEgMCAyLjkxNVoiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBkPSJNMCAwaDIwdjIwSDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",Du=Object.defineProperty,zl=Object.getOwnPropertySymbols,Ss=Object.prototype.hasOwnProperty,Ac=Object.prototype.propertyIsEnumerable,_u=(Ue,ye,je)=>ye in Ue?Du(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,tl=(Ue,ye)=>{for(var je in ye||(ye={}))Ss.call(ye,je)&&_u(Ue,je,ye[je]);if(zl)for(var je of zl(ye))Ac.call(ye,je)&&_u(Ue,je,ye[je]);return Ue};const jl=Ue=>n.createElement("svg",tl({className:"displayReset_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:200,height:200},Ue),n.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 ru="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0ibTE5My4wNyA3MC4zNTMgNS40MjMuOTMxYTM0LjkxIDM0LjkxIDAgMCAxIDI4LjM3IDQwLjQyNWwtLjAyNC4wNy0xMi44NyA3Mi41NDFBNDQ4LjY5OCA0NDguNjk4IDAgMCAxIDUwNy44NTcgNzUuMzhjMjQ2LjgzMSAwIDQ0Ny4wMjMgMTk3LjkxMiA0NDcuMDIzIDQ0Mi4xODJTNzU0LjY4OCA5NTkuNzQ0IDUwNy44NTcgOTU5Ljc0NGMtMTYwLjE4NiAwLTMwNS42ODctODQuMDg0LTM4NS40NjYtMjE4LjE1OWEzNy43OTUgMzcuNzk1IDAgMCAxIDEzLjM1OS01MS45MjEgMzguMTY3IDM4LjE2NyAwIDAgMSA1Mi4xNTQgMTMuMjg5YzY2LjIxIDExMS4yNDMgMTg2LjkwMyAxODAuOTkyIDMxOS45NTMgMTgwLjk5MiAyMDQuODcgMCAzNzAuODUxLTE2NC4wOTYgMzcwLjg1MS0zNjYuMzgzUzcxMi43MjggMTUxLjE4IDUwNy44NTggMTUxLjE4Yy0xMDcuMjg4IDAtMjA2LjgwMiA0NS4yNjUtMjc2LjMxOCAxMjEuOTk1SDM3My4wNGEzNC45MSAzNC45MSAwIDAgMSAwIDY5LjgxOEgxNjMuNTg0Yy0yLjYwNyAwLTUuMTktLjI3OS03LjY1Ny0uODM3YTM0LjYzIDM0LjYzIDAgMCAxLTUuMjYtLjUxMmwtNS40MjItLjkzMWEzNC45MSAzNC45MSAwIDAgMS0yOC4zNDYtNDAuNDk1bDM1Ljc3LTIwMS41ODhhMzQuOTEgMzQuOTEgMCAwIDEgNDAuNDAyLTI4LjI3N3oiIGZpbGw9IiNmZmYiLz48L3N2Zz4=",Yu=(0,n.memo)(function(Ue){var ye=Ue.displayOption,je=Ue.onChangeImageDisplayOpts,In=Ue.onChangeAnnotsDisplayOpts,It=(0,P.bU)(),Tn=It.localeText,jn=(0,n.useMemo)(function(){return(0,ae.jsxs)("div",{className:"dds-annotator-display-pop-container",children:[(0,ae.jsxs)("div",{className:"dds-annotator-display-pop-container-header",children:[(0,ae.jsx)("div",{children:Tn("DDSAnnotator.imgDisplayTool.title")}),(0,ae.jsx)(Le.ZP,{type:"primary",className:"dds-annotator-display-pop-container-btn",icon:(0,ae.jsx)(ot.Z,{component:jl}),onClick:function(){return je(U.O4)}})]}),(0,ae.jsxs)("div",{className:"dds-annotator-display-pop-container-option",children:[(0,ae.jsx)("label",{children:Tn("DDSAnnotator.imgDisplayTool.brightness")}),(0,ae.jsx)(on.Z,{value:ye.brightness,onChange:function(Wn){return je(t()(t()({},ye),{},{brightness:Wn}))},min:0,max:200})]}),(0,ae.jsxs)("div",{className:"dds-annotator-display-pop-container-option",children:[(0,ae.jsx)("label",{children:Tn("DDSAnnotator.imgDisplayTool.contrast")}),(0,ae.jsx)(on.Z,{value:ye.contrast,onChange:function(Wn){return je(t()(t()({},ye),{},{contrast:Wn}))},min:0,max:200})]}),(0,ae.jsxs)("div",{className:"dds-annotator-display-pop-container-option",children:[(0,ae.jsx)("label",{children:Tn("DDSAnnotator.imgDisplayTool.saturate")}),(0,ae.jsx)(on.Z,{value:ye.saturate,onChange:function(Wn){return je(t()(t()({},ye),{},{saturate:Wn}))},min:0,max:200})]})]})},[ye.brightness,ye.contrast,ye.saturate,je,In]);return(0,ae.jsx)(Ji.Z,{placement:"top",content:jn,trigger:"click",overlayClassName:"dds-annotator-display-popover",color:"#212121",children:(0,ae.jsx)(Ct.Z,{title:Tn("DDSAnnotator.imgDisplayTool.title"),children:(0,ae.jsx)(ot.Z,{component:Gl,className:"dds-annotator-display"})})})}),Oc=Yu,wu=Object.defineProperty,au=Object.getOwnPropertySymbols,yu=Object.prototype.hasOwnProperty,as=Object.prototype.propertyIsEnumerable,bu=(Ue,ye,je)=>ye in Ue?wu(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,Os=(Ue,ye)=>{for(var je in ye||(ye={}))yu.call(ye,je)&&bu(Ue,je,ye[je]);if(au)for(var je of au(ye))as.call(ye,je)&&bu(Ue,je,ye[je]);return Ue};const es=Ue=>n.createElement("svg",Os({viewBox:"0 0 27 27",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),n.createElement("g",{clipPath:"url(#label_svg__a)"},n.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"}),n.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"})),n.createElement("defs",null,n.createElement("clipPath",{id:"label_svg__a"},n.createElement("path",{fill:"#fff",d:"M0 0h27v27H0z"}))));var Ws="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjcgMjciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMTMuNSAyN0MyMC45NTYgMjcgMjcgMjAuOTU2IDI3IDEzLjVTMjAuOTU2IDAgMTMuNSAwIDAgNi4wNDQgMCAxMy41IDYuMDQ0IDI3IDEzLjUgMjdaIiBmaWxsPSIjMjZBMUY0Ii8+PHBhdGggZD0ibTE4LjIwMSAxMi41MjctLjAwNy0uMDA4LTMuNzIxLTMuNzIzcy00LjUzNSA0LjUzNS02LjcyIDYuNzY1Yy0uMjczLjI3OC0uNDc5LjY2NC0uNjAxIDEuMDM3LS4zNTkgMS4wOTctLjY1NiAyLjIxNS0uOTg2IDMuMzIyLS4wODguMjk3LS4wNy41NTkuMTYyLjc4LjIyLjIxMS40NjYuMjE5Ljc1MS4xMzMgMS4wNTUtLjMxNiAyLjExNi0uNjE3IDMuMTc2LS45MmEzLjI0MyAzLjI0MyAwIDAgMCAxLjQzMi0uODY1YzIuMDgyLTIuMDk1IDYuNTE0LTYuNTIxIDYuNTE0LTYuNTIxWk0yMC4zNzMgNy45bC0xLjI3Mi0xLjI3MmExLjc0IDEuNzQgMCAwIDAtMi40NiAwbC0xLjQ0MiAxLjQ0IDMuNzMzIDMuNzM0IDEuNDQyLTEuNDQyYTEuNzQgMS43NCAwIDAgMCAwLTIuNDZaIiBmaWxsPSIjZmZmIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgyN3YyN0gweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==",pl=Object.defineProperty,Qo=Object.getOwnPropertySymbols,ou=Object.prototype.hasOwnProperty,cs=Object.prototype.propertyIsEnumerable,Vu=(Ue,ye,je)=>ye in Ue?pl(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,nl=(Ue,ye)=>{for(var je in ye||(ye={}))ou.call(ye,je)&&Vu(Ue,je,ye[je]);if(Qo)for(var je of Qo(ye))cs.call(ye,je)&&Vu(Ue,je,ye[je]);return Ue};const hl=Ue=>n.createElement("svg",nl({viewBox:"0 0 27 27",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),n.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"}),n.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 rl="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjcgMjciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEzLjUgMjdDMjAuOTU2IDI3IDI3IDIwLjk1NiAyNyAxMy41UzIwLjk1NiAwIDEzLjUgMCAwIDYuMDQ0IDAgMTMuNSA2LjA0NCAyNyAxMy41IDI3WiIgZmlsbD0iI0ZGRDMwNSIvPjxwYXRoIGQ9Im0yMC43MTMgMTkuMjYtLjM2OS0uMzctLjA2My0uMDY0LTEuNDkzIDEuNDkzLjAzNi4wMzYuMzk2LjM5NmMuMjU0LjI1NC43OTEuMTI1IDEuMjA3LS4yODcuNDE1LS40MTIuNTQtLjk1Mi4yODYtMS4yMDRaTTE2LjcwOSAxNS4zMWE1Ljc5NyA1Ljc5NyAwIDEgMC0xLjUxNSAxLjQ3bDMuMjI5IDMuMTgxIDEuNDkzLTEuNDkyLTMuMjA3LTMuMTZabS00LjY1NS43MTdhNC4wOTIgNC4wOTIgMCAxIDEgMC04LjE4NCA0LjA5MiA0LjA5MiAwIDAgMSAwIDguMTg0WiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==",bi=(0,n.memo)(function(Ue){var ye=Ue.mode,je=(0,P.bU)(),In=je.localeText;return ye===U.je.View?null:(0,ae.jsx)("div",{className:Te()("dds-annotator-editor-status","dds-annotator-editor-status-".concat(ye)),children:ye===U.je.Edit?(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)(es,{}),In("DDSAnnotator.status.labeling")]}):(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)(hl,{}),In("DDSAnnotator.status.reviewing")]})})}),Ds=bi,ju=function(ye){var je=ye.className,In=je===void 0?"":je,It=ye.children,Tn=ye.leftTools,jn=Tn===void 0?[]:Tn,Mn=ye.rightTools,Wn=Mn===void 0?[]:Mn,er=function(Jn){return Jn.map(function(Pn,Sa){var Fr=Pn.title,Xn=Pn.icon,Br=Pn.onClick,Tr=Pn.disabled,ra=Pn.splitLine,Yr=Pn.customElement;return(0,ae.jsxs)(n.Fragment,{children:[Yr||(0,ae.jsx)(Ct.Z,{title:Fr,children:(0,ae.jsx)("div",{className:Te()("dds-annnotator-toptools-row-icon",{"dds-annnotator-toptools-row-icon-disabled":!!Tr}),onClick:Br,children:Xn})}),ra&&(0,ae.jsx)("div",{className:"dds-annnotator-toptools-row-split"})]},Sa)})};return(0,ae.jsxs)("div",{className:Te()("dds-annnotator-toptools",In),onMouseDown:function(Jn){Jn.stopPropagation()},children:[(0,ae.jsx)("div",{className:"dds-annnotator-toptools-row",children:er(jn)}),(0,ae.jsx)("div",{className:"dds-annnotator-toptools-progress",children:It}),(0,ae.jsx)("div",{className:"dds-annnotator-toptools-row",children:er(Wn)})]})},Mu=ju,yl=e(12673),Pu=e(51244),Tu=(0,n.memo)(function(Ue){var ye=Ue.onAdd,je=(0,P.bU)(),In=je.localeText,It=(0,n.useRef)(null),Tn=(0,n.useState)(""),jn=s()(Tn,2),Mn=jn[0],Wn=jn[1],er=function(Pn){Pn.stopPropagation(),Wn(Pn.target.value)},sr=function(){var Pn;Mn!==""&&(ye(Mn),Wn(""),(Pn=It.current)===null||Pn===void 0||Pn.focus())};return(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)(Pu.Z,{style:{margin:"8px 0"}}),(0,ae.jsxs)(Rn.Z,{style:{padding:"0 8px 4px"},children:[(0,ae.jsx)(Wa.Z,{placeholder:In("DDSAnnotator.annotsEditor.addCategory"),ref:It,value:Mn,onChange:er,onKeyDown:function(Pn){Pn.code==="Enter"&&sr(),Pn.stopPropagation()}}),(0,ae.jsx)(Le.ZP,{type:"text",icon:(0,ae.jsx)(yl.Z,{}),onClick:sr,children:In("DDSAnnotator.annotsEditor.add")})]})]})}),Kl=Tu,Pl=(0,n.memo)(function(Ue){var ye,je=Ue.drawData,In=Ue.latestLabelId,It=Ue.isSeperate,Tn=Ue.labelOptions,jn=Ue.labelColors,Mn=Ue.onChangeObjectLabel,Wn=Ue.onCreateCategory,er=(0,P.bU)(),sr=er.localeText,Jn=(0,n.useMemo)(function(){if(Tn.length>0){var Pn,Sa=(Pn=Tn[0])===null||Pn===void 0?void 0:Pn.labelType,Fr=Sa&&y.t[Sa],Xn=y.Zo[Fr];if(Xn)return y.ef[Xn]}},[Tn]);return(0,ae.jsx)("div",{className:"dds-annotator-label-selector",children:(0,ae.jsx)(rn.Z,{showSearch:!0,placeholder:sr("DDSAnnotator.label.select"),size:"middle",value:((ye=je.objectList[je.activeObjectIndex])===null||ye===void 0?void 0:ye.labelId)||In,onChange:Mn,popupClassName:"objects-select-popup",onClick:function(Sa){return Sa.stopPropagation()},onKeyUp:function(Sa){return Sa.stopPropagation()},onInputKeyDown:function(Sa){Sa.code!=="Enter"&&Sa.stopPropagation()},filterOption:function(Sa,Fr){var Xn,Br,Tr,ra=(Fr==null||(Xn=Fr.children)===null||Xn===void 0?void 0:Xn[((Fr==null||(Br=Fr.children)===null||Br===void 0?void 0:Br.length)||0)-1])||"";return(Tr=ra.toLowerCase())===null||Tr===void 0?void 0:Tr.includes(Sa.toLowerCase())},dropdownRender:function(Sa){return(0,ae.jsxs)(ae.Fragment,{children:[Sa,It&&(0,ae.jsx)(Kl,{onAdd:Wn})]})},children:Tn==null?void 0:Tn.map(function(Pn){return(0,ae.jsxs)(rn.Z.Option,{value:Pn.id,className:"dds-annotator-label-selector-option",children:[Jn?(0,ae.jsx)(Jn,{color:Pn.renderColor,fill:Pn.renderColor}):(0,ae.jsx)("div",{className:"dds-annotator-label-selector-option-color",style:{backgroundColor:jn==null?void 0:jn[Pn.id]}}),Pn.name]},Pn.id)})})})}),Fl=Pl,si=(0,n.memo)(function(Ue){var ye=Ue.drawData,je=Ue.modelOptions,In=Ue.onSelectModel,It=(0,P.bU)(),Tn=It.localeText;return(0,ae.jsx)("div",{className:"dds-annotator-model-selector",children:(0,ae.jsx)(rn.Z,{placeholder:Tn("DDSAnnotator.label.select"),size:"middle",value:ye.selectedModel,onChange:In,popupClassName:"objects-select-popup",onClick:function(Mn){return Mn.stopPropagation()},onKeyUp:function(Mn){return Mn.stopPropagation()},onInputKeyDown:function(Mn){Mn.code!=="Enter"&&Mn.stopPropagation()},children:je==null?void 0:je.map(function(jn,Mn){var Wn;return(0,ae.jsxs)(rn.Z.Option,{value:jn,className:"dds-annotator-model-selector-option",children:[(0,ae.jsx)(ot.Z,{component:y.VC[y.gr.Rectangle]}),(Wn=y.TR[jn])===null||Wn===void 0?void 0:Wn.name]},Mn)})})})}),z=si,de=(0,n.memo)(function(Ue){var ye,je=Ue.toolOptions,In=Ue.selectedSubTool,It=Ue.isAIAnnotationActive,Tn=Ue.brushSize,jn=Ue.onChangeSubTool,Mn=Ue.onChangeBrushSize,Wn=(0,n.useMemo)(function(){return[].concat(p()(je.basicTools),p()(je.smartTools))},[je.basicTools,je.smartTools]),er=(0,n.useMemo)(function(){for(var Fr=[],Xn=1;Xn<=Wn.length;Xn++)Fr.push(Xn.toString());return Fr},[Wn]);(0,Et.Z)(er,function(Fr){var Xn=Wn.find(function(Br,Tr){return(Tr+1).toString()===Fr.key});if(Xn&&Xn.available){if(je.smartTools.find(function(Br){return Xn.key===Br.key})&&!It)return;jn(Xn.key)}},{exactMatch:!0});var sr=function(Xn){var Br=Wn.find(function(Tr){return Tr.key===In});Xn.type==="mouseup"&&(Br!=null&&Br.withSize||Br!=null&&Br.withCustomElement)||Xn.stopPropagation()},Jn=function(Xn){var Br=Wn.findIndex(function(Tr){return Tr.key===Xn.key})+1;return(0,ae.jsxs)("div",{className:"dds-annotator-subtoolbar-popover",children:[(0,ae.jsxs)("div",{children:[(0,ae.jsx)("span",{className:"dds-annotator-subtoolbar-popover-title",children:Xn.name}),Br&&(0,ae.jsx)("span",{className:"dds-annotator-subtoolbar-popover-key",children:Br})]}),Xn.description&&(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("div",{className:"dds-annotator-subtoolbar-popover-divider"}),(0,ae.jsx)("div",{children:Xn.description})]})]})},Pn=function(Xn){var Br=Wn.find(function(Tr){return Tr.key===Xn});Br&&Br.available&&jn(Xn)},Sa=function(Xn){return(0,ae.jsx)(Ji.Z,{placement:"bottom",content:Jn(Xn),children:(0,ae.jsx)(Le.ZP,{className:Te()("dds-annotator-subtoolbar-btn",{"dds-annotator-subtoolbar-btn-active":In===Xn.key&&Xn.available,"dds-annotator-subtoolbar-btn-limited":Xn.available}),style:{cursor:Xn.available?"pointer":"not-allowed"},icon:Xn.icon,onClick:function(){return Pn(Xn.key)}})},Xn.key)};return(0,ae.jsx)(zn,{eventHandler:sr,children:(0,ae.jsxs)("div",{className:"dds-annotator-subtoolbar",children:[je.basicTools.map(function(Fr){return Sa(Fr)}),It&&(0,ae.jsxs)(ae.Fragment,{children:[je.basicTools.length>0&&(0,ae.jsx)("div",{className:"dds-annotator-subtoolbar-divider"}),je.smartTools.map(function(Fr){return Sa(Fr)})]}),je.customElement&&(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("div",{className:"dds-annotator-subtoolbar-divider"}),je.customElement]}),!!((ye=Wn.find(function(Fr){return Fr.key===In}))!==null&&ye!==void 0&&ye.withSize)&&(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("div",{className:"dds-annotator-subtoolbar-divider"}),(0,ae.jsx)("div",{className:"dds-annotator-subtoolbar-title",children:"Brush Size"}),(0,ae.jsx)("div",{className:"dds-annotator-subtoolbar-slider",children:(0,ae.jsx)(on.Z,{defaultValue:20,min:1,max:100,value:Tn,onChange:function(Xn){return Mn(Xn)}})})]})]})})}),He=de,lt=function(ye){var je=ye.isOldMode,In=ye.isSeperate,It=ye.mode,Tn=ye.fileName,jn=ye.drawData,Mn=ye.editState,Wn=ye.hideTopBarActions,er=ye.titleElements,sr=ye.actionElements,Jn=ye.enableReviewerModify,Pn=ye.labelOptions,Sa=ye.labelColors,Fr=ye.showSubTools,Xn=ye.currSubTools,Br=ye.topBarCenterElement,Tr=ye.selectSubTool,ra=ye.setBrushSize,Yr=ye.activeAIAnnotation,ca=ye.onChangeImageDisplayOpts,Dr=ye.onChangeAnnotsDisplayOpts,Mr=ye.onChangeObjectLabel,or=ye.onCreateCategory,mr=ye.onSaveAnnotations,Lr=ye.onCommitAnnotations,_r=ye.onRejectAnnotations,Ha=ye.onAcceptAnnotations,sa=ye.onModifyAnnotations,V=ye.onCancelAnnotations,k=ye.onSelectModel,pe=(0,P.bU)(),Ae=pe.localeText,Ge=function(){window.open("https://docs.deepdataspace.com")},dt=(0,n.useMemo)(function(){var Gt=sr?sr.map(function(cn){return{customElement:cn}}):[];return Wn||(It===U.je.Review&&Gt.push.apply(Gt,[{customElement:(0,ae.jsx)(Le.ZP,{type:"primary",danger:!0,onClick:_r,children:Ae("DDSAnnotator.reject")})}].concat(p()(je||!Jn?[]:[{customElement:(0,ae.jsx)(Le.ZP,{type:"default",onClick:sa,children:Ae("DDSAnnotator.modify")})}]),[{customElement:(0,ae.jsx)(Le.ZP,{type:"primary",onClick:Ha,children:Ae("DDSAnnotator.approve")})}])),It===U.je.Edit&&!In&&(Gt.push({customElement:(0,ae.jsx)(Le.ZP,{type:"default",onClick:mr,children:Ae("DDSAnnotator.save")})}),je||Gt.push({customElement:(0,ae.jsx)(Le.ZP,{type:"primary",onClick:Lr,children:Ae("DDSAnnotator.commit")})})),Gt.unshift({customElement:(0,ae.jsxs)(ae.Fragment,{children:[It===U.je.Edit&&(0,ae.jsxs)("div",{className:"dds-annotator-qk-actions",children:[(0,ae.jsx)(Ct.Z,{title:Ae("DDSAnnotator.docs"),children:(0,ae.jsx)(ot.Z,{component:rs,onClick:Ge})}),(0,ae.jsx)(Oc,{displayOption:Mn.imageDisplayOptions,colorByCategory:Mn.annotsDisplayOptions.colorByCategory,onChangeImageDisplayOpts:ca,onChangeAnnotsDisplayOpts:Dr})]}),(0,ae.jsx)(Ii,{mode:It}),(0,ae.jsx)(Ds,{mode:It})]})})),Gt},[It,je,Jn,Wn,mr,Lr,V,_r,Ha,sa]),Ht=function(){var cn=[];return er?cn.push.apply(cn,p()(er.map(function(rr){return{customElement:rr}}))):(In||It===U.je.Edit?cn.push({customElement:(0,ae.jsx)(Ct.Z,{title:Ae("DDSAnnotator.exit"),children:(0,ae.jsx)(it,{className:"dds-annotator-logo",onClick:V})})}):cn.push({title:Ae("DDSAnnotator.exit"),icon:(0,ae.jsx)(wl.Z,{}),onClick:function(){return V()}}),It!==U.je.Edit&&Tn&&cn.push({customElement:Tn})),It===U.je.Edit&&y.Xn[jn.selectedTool]&&y.Xn[jn.selectedTool].length>1&&jn.AIAnnotation&&jn.selectedModel&&cn.push({customElement:(0,ae.jsx)(z,{drawData:jn,modelOptions:y.Xn[jn.selectedTool],onSelectModel:k})}),It===U.je.Edit&&(jn.objectList[jn.activeObjectIndex]||jn.selectedTool!==y.ru.Drag)&&cn.push({customElement:(0,ae.jsx)(Fl,{drawData:jn,latestLabelId:Mn.latestLabelId,isSeperate:In,labelOptions:Pn,labelColors:Sa,onChangeObjectLabel:Mr,onCreateCategory:or})}),It===U.je.Edit&&Fr&&cn.push({customElement:(0,ae.jsx)(He,{toolOptions:Xn,selectedSubTool:jn.selectedSubTool,isAIAnnotationActive:jn.AIAnnotation,brushSize:jn.brushSize,onChangeSubTool:Tr,onChangeBrushSize:ra,onActiveAIAnnotation:Yr})}),cn},Jt=(0,ae.jsx)(Mu,{leftTools:Ht(),rightTools:dt,children:Br});return{topToolsBar:Jt}},Dt=lt,An=e(32814),Rr=e(45060),Eo=e(23707),Zo=(0,n.memo)(function(Ue){var ye,je=Ue.selectedTool,In=Ue.AIAnnotation,It=Ue.selectedModel,Tn=Ue.onSelectModel,jn=Ue.onCloseModal,Mn=(0,P.bU)(),Wn=Mn.localeText,er=(0,n.useMemo)(function(){return!!(In&&y.Xn[je]&&y.Xn[je].length>1&&!It)},[In,je,It]);return(0,ae.jsx)(c.Z,{open:er,title:"Enable Intelligent Annotate",onCancel:jn,footer:null,centered:!0,destroyOnClose:!0,children:(0,ae.jsx)("div",{className:"dds-annotator-model-selector-modal",children:(ye=y.Xn[je])===null||ye===void 0?void 0:ye.map(function(sr,Jn){var Pn=y.TR[sr];return Pn?(0,ae.jsxs)("div",{className:Te()("dds-annotator-model-selector-modal-option",{"dds-annotator-model-selector-modal-option-hightlight":Pn.hightlight}),onClick:function(){return Tn(sr)},children:[(0,ae.jsx)(ot.Z,{className:"dds-annotator-model-selector-modal-option-icon",component:Pn.icon}),(0,ae.jsx)("div",{className:"dds-annotator-model-selector-modal-option-name",children:Pn.name}),(0,ae.jsx)("div",{className:"dds-annotator-model-selector-modal-option-description",children:Wn(Pn.description)}),Pn.hightlight&&(0,ae.jsx)(An.Z,{color:"geekblue",className:"dds-annotator-model-selector-modal-option-tag",children:"New"})]},Jn):(0,ae.jsx)(ae.Fragment,{})})})})}),mi=Zo,$i={item:"item___v9XQ_",selected:"selected___H8gjQ",info:"info___YLqTh",action:"action___zGuUy",btn:"btn___ean1l"},al=function(ye){var je=ye.point,In=ye.index,It=ye.active,Tn=ye.onMouseEnter,jn=ye.onMouseOut,Mn=ye.onMouseOver,Wn=ye.onVisibleChange,er=(0,P.bU)(),sr=er.localeText;return(0,ae.jsxs)("div",{className:$i.item,onMouseOut:jn,onMouseOver:Mn,onMouseEnter:Tn,children:[It&&(0,ae.jsx)("div",{className:$i.selected,style:{backgroundColor:je.color}}),(0,ae.jsx)("div",{className:$i.info,children:je.name?"#".concat(In+1," ").concat(je.name):"".concat(In+1," ")}),(0,ae.jsx)("div",{className:$i.action,children:(0,ae.jsxs)(rn.Z,{bordered:!1,showArrow:!0,popupClassName:$i["selector-dropdown"],size:"small",value:je.visible,onChange:Wn,style:{width:"100%"},children:[(0,ae.jsx)(rn.Z.Option,{value:y.GI.noLabeled,children:sr("DDSAnnotator.annotsList.point.notInImage")}),(0,ae.jsx)(rn.Z.Option,{value:y.GI.labeledNotVisible,children:sr("DDSAnnotator.annotsList.point.notVisible")}),(0,ae.jsx)(rn.Z.Option,{value:y.GI.labeledVisible,children:sr("DDSAnnotator.annotsList.point.visible")})]})})]},In)},bl=al,Gu=e(60698),ts={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"},Lu=ts,cc=e(17202),Ku=function(ye,je){return n.createElement(cc.Z,(0,Gu.Z)({},ye,{ref:je,icon:Lu}))},dc=n.forwardRef(Ku),fc={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"},Nu=fc,Gi=function(ye,je){return n.createElement(cc.Z,(0,Gu.Z)({},ye,{ref:je,icon:Nu}))},Do=n.forwardRef(Gi),gs=(0,n.memo)(function(Ue){var ye=Ue.mode,je=Ue.isAiAnnotation,In=Ue.currObject,It=Ue.currObjectIndex,Tn=Ue.focusObjectIndex,jn=Ue.focusEleType,Mn=Ue.focusEleIndex,Wn=Ue.onChangePointVisible,er=Ue.setEditState,sr=(0,P.bU)(),Jn=sr.localeText,Pn=(0,n.useState)(!0),Sa=s()(Pn,2),Fr=Sa[0],Xn=Sa[1],Br=(0,n.useMemo)(function(){return It>-1&&(In==null?void 0:In.type)===y.gr.Skeleton&&!je},[ye,In,It,je]),Tr=function(Yr){er(function(ca){ca.focusObjectIndex=It,ca.focusEleIndex=Yr,ca.focusEleType=y.Yq.Circle})};return(0,ae.jsx)(zn,{children:(0,ae.jsx)(hn.Z,{className:Te()("dds-annotator-points-editor",{"dds-annotator-points-editor-visible":Br}),title:(0,ae.jsxs)("div",{className:"title",onClick:function(){return Xn(function(Yr){return!Yr})},children:[Jn("DDSAnnotator.points.editor"),(0,ae.jsx)("div",{className:"extra-btn",children:Fr?(0,ae.jsx)(dc,{}):(0,ae.jsx)(Do,{})})]}),children:!Fr&&(0,ae.jsx)("div",{className:"content",onMouseMove:function(Yr){Yr.stopPropagation()},children:In&&In.keypoints&&In.keypoints.points.map(function(ra,Yr){return(0,ae.jsx)(bl,{point:ra,index:Yr,active:Tn===It&&jn===y.Yq.Circle&&Mn===Yr,onMouseEnter:function(){return Tr(Yr)},onVisibleChange:function(Dr){Wn(Yr,Dr)}},Yr)})})})})}),vc=gs,Su=function(ye){var je,In=ye.theme,It=In===void 0?"dark":In,Tn=ye.isOldMode,jn=ye.isSeperate,Mn=ye.visible,Wn=ye.categories,er=ye.list,sr=ye.current,Jn=ye.pagination,Pn=ye.mode,Sa=ye.enableReviewerModify,Fr=ye.limitToolTypes,Xn=ye.titleElements,Br=ye.actionElements,Tr=ye.layoutOptions,ra=ye.manualMode,Yr=ye.forceColorByObject,ca=ye.limitActiveObject,Dr=ye.limitActiveObjectAfterCreate,Mr=ye.customDefaultDrawData,or=ye.onPrev,mr=ye.onNext,Lr=ye.onCancel,_r=ye.onSave,Ha=ye.onCommit,sa=ye.onReviewModify,V=ye.onReviewAccept,k=ye.onReviewReject,pe=ye.setCategories,Ae=ye.onAutoSave,Ge=ye.objectsFilter,dt=c.Z.useModal(),Ht=s()(dt,2),Jt=Ht[0],Gt=Ht[1],cn=(0,d.x)([]),rr=s()(cn,2),On=rr[0],Zn=rr[1],Gr=(0,d.x)((0,g.cloneDeep)(U.rl)),jr=s()(Gr,2),Qr=jr[0],pa=jr[1],Ma=(0,d.x)(t()(t()({},(0,g.cloneDeep)(U.f7)),Mr)),_a=s()(Ma,2),Pa=_a[0],Fa=_a[1],Aa=(0,n.useRef)(null),$a=(0,n.useRef)(null),Ir=(0,n.useRef)(null),nr=(0,n.useMemo)(function(){return er[sr]},[er,sr]),Ar=nr,xa=To({categories:Wn,editState:Qr,forceColorByObject:Yr}),Ta=xa.getAnnotColor,ba=xa.labelColors,ia=zr({visible:Mn,drawData:Pa,allowMove:Qr.allowMove,isRequiring:Qr.isRequiring,minPadding:(Tr==null?void 0:Tr.minPadding)||{top:30,left:80},cursorSize:Pa.brushSize,hideReferenceLine:!!(Tr!=null&&Tr.hideReferenceLine)}),Ea=ia.scale,ha=ia.naturalSize,Va=ia.clientSize,Za=ia.containerMouse,uo=ia.contentMouse,Nr=ia.imagePos,Co=ia.onLoadImg,da=ia.onZoomIn,co=ia.onZoomOut,so=ia.onReset,Mi=ia.CanvasContainer,ho=ia.isMousePress,zo=ku({isOldMode:Tn,clientSize:Va,naturalSize:ha,categories:Wn,getAnnotColor:Ta}),pi=zo.translateObject,li=zo.translateToObject,di=aa({clientSize:Va,naturalSize:ha,setDrawData:Fa,onAutoSave:Ae,translateObject:pi}),os=di.undo,Jl=di.redo,is=di.clearHistory,ms=di.hadChangeRecord,Ai=di.updateHistory,Fi=di.setDrawDataWithHistory,il=Vl({setDrawDataWithHistory:Fi,categories:Wn}),su=il.judgeEditingAttribute,lu=il.onConfirmAttibuteEdit,sl=il.onCancelAttibuteEdit,ws=Fn({annotations:On,setAnnotations:Zn,drawData:Pa,setDrawData:Fa,setDrawDataWithHistory:Fi,setEditState:pa,mode:Pn,translateToObject:li,judgeEditingAttribute:su,limitActiveObjectAfterCreate:Dr,updateHistory:Ai}),El=ws.addObject,cd=ws.removeObject,dd=ws.removeAllObjects,Fc=ws.initObjectList,Qc=ws.updateAllObject,uu=ws.updateObject,yc=ws.updateObjectWithoutHistory,Xc=ws.updateAllObjectWithoutHistory,Jc=ws.commitedObjects,ql=ws.currObject,gi=S({isOldMode:Tn,mode:Pn,categories:Wn,setCategories:pe,drawData:Pa,setDrawData:Fa,editState:Qr,updateObjectWithoutHistory:yc,updateAllObjectWithoutHistory:Xc}),js=gi.labelOptions,ps=gi.classificationOptions,Ys=gi.aiLabels,Bl=gi.setAiLabels,bc=gi.onChangeObjectHidden,Ps=gi.onChangeCategoryHidden,Bc=gi.onChangeActiveClass,Mc=gi.onCreateCategory,qc=gi.onChangePointVisible,zu=Pt({mode:Pn,currImageItem:Ar,modal:Jt,drawData:Pa,setDrawData:Fa,setDrawDataWithHistory:Fi,editState:Qr,setEditState:pa,naturalSize:ha,clientSize:Va,imagePos:Nr,containerMouse:Za,updateAllObject:Qc,hadChangeRecord:ms,getAnnotColor:Ta,categories:Wn,translateObject:pi,onCancel:Lr,onSave:_r,onCommit:Ha,onReviewModify:sa,onReviewAccept:V,onReviewReject:k,classificationOptions:ps}),ac=zu.onAiAnnotation,Cl=zu.onSaveAnnotations,fd=zu.onCommitAnnotations,Tc=zu.onCancelAnnotations,Fu=zu.onRejectAnnotations,Lc=zu.onAcceptAnnotations,vd=zu.onModifyAnnotations,oc=va({topCanvas:$a.current,editState:Qr,drawData:Pa}),$c=oc.updateMouseCursor,ss=qr({mode:Pn,manualMode:!!ra,drawData:Pa,setDrawData:Fa,setDrawDataWithHistory:Fi,setAiLabels:Bl,editState:Qr,setEditState:pa,getAnnotColor:Ta,clientSize:Va,naturalSize:ha,addObject:El,updateObject:uu,updateAllObject:Qc,onAiAnnotation:ac}),ed=ss.onChangeObjectLabel,Zc=ss.onFinishCurrCreate,$l=ss.onAcceptValidObjects,td=ss.onAbortBatchObjects,nd=ss.selectTool,Tl=ss.selectSubTool,Xu=ss.forceChangeTool,cu=ss.onExitAIAnnotation,rd=ss.setBrushSize,gd=ss.activeAIAnnotation,Zl=ss.onChangeSkeletonConf,ad=ss.onChangeLimitConf,od=ss.onChangeAnnotsDisplayOpts,md=ss.onChangeImageDisplayOpts,zd=ss.onChangeColorMode,ic=ss.onChangePointResolution,pd=ss.onSelectModel,id=Cs({drawData:Pa,onChangePointResolution:ic}),Sc=id.showSubTools,hd=id.currSubTools,Ec=(0,Tt.Vr)({imgRef:Ir,editState:Qr,clientSize:Va,naturalSize:ha,contentMouse:uo,imagePos:Nr,containerMouse:Za,canvasRef:Aa,activeCanvasRef:$a,setEditState:pa,drawData:Pa,setDrawData:Fa,setDrawDataWithHistory:Fi,updateHistory:Ai,updateObject:uu,addObject:El,updateMouseCursor:$c,aiLabels:Ys,onAiAnnotation:ac,getAnnotColor:Ta,categories:Wn}),yd=Ec.objectHooksMap,bd=Hn({visible:Mn,drawData:Pa,editState:Qr,clientSize:Va,imagePos:Nr,containerMouse:Za,canvasRef:Aa,activeCanvasRef:$a,imgRef:Ir,objectHooksMap:yd}),Uc=bd.updateRender,sd=bd.renderPopoverMenu,Md=_o({visible:Mn,mode:Pn,drawData:Pa,setDrawData:Fa,editState:Qr,setEditState:pa,clientSize:Va,contentMouse:uo,categories:Wn,updateRender:Uc,updateMouseCursor:$c,objectHooksMap:yd,imagePos:Nr,containerMouse:Za,getAnnotColor:Ta,limitActiveObject:ca}),Fd=Md.selectFocusObject,xd=Md.forceChangeFocusObject,Id=Md.mouseRightObjectsDropDownRender;Bn({visible:Mn,mode:Pn,drawData:Pa,categories:Wn,isMousePress:ho,setDrawData:Fa,setEditState:pa,onSaveAnnotations:Cl,onAcceptAnnotations:Lc,onRejectAnnotations:Fu,onChangeObjectHidden:bc,onChangeCategoryHidden:Ps,removeObject:cd,addObject:El});var Cc=kr({imagePos:Nr,clientSize:Va,naturalSize:ha,annotations:On,setAnnotations:Zn,drawData:Pa,setDrawData:Fa,editState:Qr,setEditState:pa,initObjectList:Fc,updateRender:Uc,clearHistory:is,objectsFilter:Ge,labelOptions:js,customDefaultDrawData:Mr}),Bd=Cc.resetDataWithImageData;(0,n.useEffect)(function(){return document.body.style.overflow=Mn?"hidden":"overlay",function(){document.body.style.overflow="overlay"}},[Mn]),(0,n.useEffect)(function(){Bd(Ar,Mn)},[Mn,Pn,sr,Ar==null?void 0:Ar.id,Ge]),(0,n.useEffect)(function(){zd()},[Qr.annotsDisplayOptions.colorByCategory]);var Nc=(0,n.useMemo)(function(){if(nr!=null&&nr.name)return nr==null?void 0:nr.name;if(nr!=null&&nr.url&&(nr==null?void 0:nr.url.indexOf("http"))===0){var kc=decodeURIComponent(nr==null?void 0:nr.url);return kc.replace(/\?.*$/,"").split("/").pop()||""}return""},[nr]),ld=Jn&&Jn.show?(0,ae.jsx)($r,{list:er,current:sr,total:Jn.total,customText:Jn.customText,customDisableNext:Jn.customDisableNext,onPrev:or,onNext:mr}):null,ds=Dt({isOldMode:Tn,isSeperate:jn,mode:Pn,hideTopBarActions:Tr==null?void 0:Tr.hideTopBarActions,fileName:Nc,drawData:Pa,editState:Qr,titleElements:Xn,actionElements:Br,enableReviewerModify:Sa,labelOptions:js,showSubTools:Sc,currSubTools:hd,topBarCenterElement:ld,labelColors:ba,selectSubTool:Tl,setBrushSize:rd,activeAIAnnotation:gd,onChangeImageDisplayOpts:md,onChangeAnnotsDisplayOpts:od,onChangeObjectLabel:ed,onCreateCategory:Mc,onSaveAnnotations:Cl,onCommitAnnotations:fd,onRejectAnnotations:Fu,onAcceptAnnotations:Lc,onModifyAnnotations:vd,onCancelAnnotations:Tc,onSelectModel:pd}),$d=ds.topToolsBar;return Mn?(0,ae.jsxs)("div",{className:Te()("dds-annotator","dds-annotator-editor","dds-annotator-editor-".concat(It)),style:{height:(Tr==null?void 0:Tr.wrapHeight)||"100vh"},children:[!(Tr!=null&&Tr.hideTopBar)&&$d,(0,ae.jsxs)("div",{className:"editor-container",style:{top:Tr!=null&&Tr.hideTopBar?"0":""},children:[(0,ae.jsx)(ks,{onlySupportZoom:Pn!==U.je.Edit,selectedTool:Pa.selectedTool,manualMode:!!ra,limitToolTypes:Fr,isAIAnnotationActive:Pa.AIAnnotation,onChangeSelectedTool:nd,onActiveAIAnnotation:gd,hideUndoRedoActions:Tr==null?void 0:Tr.hideUndoRedoActions,undo:os,redo:Jl,deleteAll:dd,scale:Ea,onZoomIn:da,onZoomOut:co,onZoomReset:so}),(0,ae.jsxs)("div",{className:"center-content",children:[Ar&&(0,ae.jsx)(l.Z,{dropdownRender:Id,trigger:["contextMenu"],open:Qr.foucsObjectAllIndexs.length>0,children:Mi({className:"edit-wrap",children:(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)(Ei,{url:Ar==null?void 0:Ar.url,imgRef:Ir,canvasRef:Aa,activeCanvasRef:$a,clientSize:Va,imagePos:Nr,onLoad:function(Wc){Uc(),Co(Wc)}}),sd()]})})}),(0,ae.jsx)(Hu,{mode:Pn,isAiAnnotation:Pa.AIAnnotation,latestLabelId:Qr.latestLabelId,currObject:ql,onFinishCurrCreate:Zc}),(0,ae.jsx)(vc,{mode:Pn,isAiAnnotation:Pa.AIAnnotation,currObject:ql,currObjectIndex:Pa.activeObjectIndex,focusObjectIndex:Qr.focusObjectIndex,focusEleType:Qr.focusEleType,focusEleIndex:Qr.focusEleIndex,onChangePointVisible:qc,setEditState:pa}),(0,ae.jsx)(Ln,{selectedTool:Pa.selectedTool,selectedSubTool:Pa.selectedSubTool,selectedModel:Pa.selectedModel,isBatchEditing:Pa.isBatchEditing,AIAnnotation:Pa.AIAnnotation,hasPolygonPreds:!!((je=Pa.creatingObject)!==null&&je!==void 0&&je.polygon),isCtrlPressed:Qr.isCtrlPressed,limitConf:Pa.limitConf,aiLabels:Ys,naturalSize:ha,categories:Wn,setAiLabels:Bl,forceChangeTool:Xu,onAiAnnotation:ac,onExitAIAnnotation:cu,onChangeConfidenceRange:Zl,onChangeLimitConf:ad,onAcceptValidObjects:$l,onCancelBatchEdit:td}),(0,ae.jsx)(mi,{selectedTool:Pa.selectedTool,AIAnnotation:Pa.AIAnnotation,selectedModel:Pa.selectedModel,onSelectModel:pd,onCloseModal:function(){return Fa(function(Wc){Wc.AIAnnotation=!1})}}),Pa.editingAttribute&&(0,ae.jsx)(Wu,{data:Pa.editingAttribute,supportEdit:Pn===U.je.Edit,onConfirmAttibuteEdit:lu,onCancelAttibuteEdit:sl})]}),!(Tr!=null&&Tr.hideRightList)&&(0,ae.jsxs)("div",{className:"right-slider",children:[ps.length>0&&(0,ae.jsx)(Nl,{className:"classifications",supportEdit:Pn===U.je.Edit,classificationOptions:ps,values:Pa.classifications,setDrawDataWithHistory:Fi}),(0,ae.jsx)(Bt,{supportEdit:Pn===U.je.Edit,className:"object-list",objects:Jc,categories:Wn,activeObjectIndex:Pa.activeObjectIndex,activeClassName:Pa.activeClassName,onFocusObject:xd,onActiveObject:Fd,onChangeObjectHidden:bc,onChangeCategoryHidden:Ps,onDeleteObject:cd,onChangeActiveClassName:Bc,setDrawDataWithHistory:Fi,colorByCategory:Qr.annotsDisplayOptions.colorByCategory,onChangeAnnotsDisplayOpts:od})]})]}),(0,ae.jsx)("div",{onMouseDown:function(Wc){Wc.stopPropagation()},children:Gt})]}):null},nc=Su,Kc=e(16962),Hs=e.n(Kc),ol=Object.defineProperty,Dc=Object.getOwnPropertySymbols,rc=Object.prototype.hasOwnProperty,Ml=Object.prototype.propertyIsEnumerable,Sl=(Ue,ye,je)=>ye in Ue?ol(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,Ru=(Ue,ye)=>{for(var je in ye||(ye={}))rc.call(ye,je)&&Sl(Ue,je,ye[je]);if(Dc)for(var je of Dc(ye))Ml.call(ye,je)&&Sl(Ue,je,ye[je]);return Ue};const _s=Ue=>n.createElement("svg",Ru({width:16,height:16,fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),n.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 Ql="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTguMzc5IDcuNjQ4LTQuNTYtNS44MjVhLjI4My4yODMgMCAwIDAtLjIyNC0uMTFoLTEuMzhhLjE0Mi4xNDIgMCAwIDAtLjExMy4yMzFMNi44NDIgOGwtNC43NCA2LjA1NWEuMTQzLjE0MyAwIDAgMCAuMTEyLjIzaDEuMzhhLjI4OS4yODkgMCAwIDAgLjIyNi0uMTA5bDQuNTU5LTUuODIzYS41NzEuNTcxIDAgMCAwIDAtLjcwNVptNS40MjggMEw5LjI0OCAxLjgyM2EuMjgzLjI4MyAwIDAgMC0uMjI1LS4xMWgtMS4zOGEuMTQyLjE0MiAwIDAgMC0uMTEyLjIzMUwxMi4yNyA4bC00Ljc0IDYuMDU1YS4xNDMuMTQzIDAgMCAwIC4xMTMuMjNoMS4zOGEuMjg5LjI4OSAwIDAgMCAuMjI1LS4xMDlsNC41Ni01LjgyM2EuNTcxLjU3MSAwIDAgMCAwLS43MDVaIiBmaWxsPSIjZmZmIiBvcGFjaXR5PSIuODUiLz48L3N2Zz4=",wc=Object.defineProperty,jc=Object.getOwnPropertySymbols,gc=Object.prototype.hasOwnProperty,zc=Object.prototype.propertyIsEnumerable,mc=(Ue,ye,je)=>ye in Ue?wc(Ue,ye,{enumerable:!0,configurable:!0,writable:!0,value:je}):Ue[ye]=je,pc=(Ue,ye)=>{for(var je in ye||(ye={}))gc.call(ye,je)&&mc(Ue,je,ye[je]);if(jc)for(var je of jc(ye))zc.call(ye,je)&&mc(Ue,je,ye[je]);return Ue};const Pc=Ue=>n.createElement("svg",pc({viewBox:"0 0 14 14",fill:"#595959",xmlns:"http://www.w3.org/2000/svg"},Ue),n.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 iu="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTQgMTQiIGZpbGw9IiM1OTU5NTkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYuODg3IDkuNjU3YS4xNDMuMTQzIDAgMCAwIC4yMjUgMGwyLTIuNTNBLjE0Mi4xNDIgMCAwIDAgOSA2Ljg5N0g3LjY3N1YuODU0QS4xNDMuMTQzIDAgMCAwIDcuNTM0LjcxSDYuNDYyYS4xNDMuMTQzIDAgMCAwLS4xNDMuMTQzdjYuMDQxSDVhLjE0Mi4xNDIgMCAwIDAtLjExMi4yM2wyIDIuNTMyWm02LjY0OS0uNjI1aC0xLjA3MmEuMTQzLjE0MyAwIDAgMC0uMTQzLjE0M3YyLjc1SDEuNjc4di0yLjc1YS4xNDMuMTQzIDAgMCAwLS4xNDItLjE0M0guNDY0YS4xNDMuMTQzIDAgMCAwLS4xNDMuMTQzdjMuNTM2YS41Ny41NyAwIDAgMCAuNTcyLjU3MmgxMi4yMTRhLjU3LjU3IDAgMCAwIC41NzEtLjU3MlY5LjE3NWEuMTQzLjE0MyAwIDAgMC0uMTQyLS4xNDNaIi8+PC9zdmc+",Eu=function(ye){var je,In,It=ye.isOldMode,Tn=ye.visible,jn=ye.categories,Mn=ye.list,Wn=ye.current,er=ye.onPrev,sr=ye.onNext,Jn=ye.onCancel,Pn=ye.objectsFilter,Sa=ye.displayOptionsResult,Fr=(0,d.x)([]),Xn=s()(Fr,2),Br=Xn[0],Tr=Xn[1],ra=(0,d.x)((0,g.cloneDeep)(U.rl)),Yr=s()(ra,2),ca=Yr[0],Dr=Yr[1],Mr=(0,d.x)((0,g.cloneDeep)(U.f7)),or=s()(Mr,2),mr=or[0],Lr=or[1],_r=(0,n.useRef)(null),Ha=(0,n.useRef)(null),sa=(0,n.useRef)(null),V=zr({visible:Tn,drawData:mr,allowMove:ca.allowMove,isRequiring:ca.isRequiring,minPadding:{top:120,left:300},cursorSize:mr.brushSize,onClickMaskBg:Jn}),k=V.scale,pe=V.naturalSize,Ae=V.clientSize,Ge=V.containerMouse,dt=V.contentMouse,Ht=V.imagePos,Jt=V.onLoadImg,Gt=V.onZoomIn,cn=V.onZoomOut,rr=V.CanvasContainer,On=To({categories:jn,editState:ca}),Zn=On.getAnnotColor,Gr=va({topCanvas:Ha.current,editState:ca,drawData:mr}),jr=Gr.updateMouseCursor,Qr=ku({isOldMode:It,clientSize:Ae,naturalSize:pe,categories:jn,getAnnotColor:Zn}),pa=Qr.translateToObject,Ma=aa({clientSize:Ae,naturalSize:pe,setDrawData:Lr}),_a=Ma.clearHistory,Pa=Ma.updateHistory,Fa=Ma.setDrawDataWithHistory,Aa=Fn({annotations:Br,setAnnotations:Tr,drawData:mr,setDrawData:Lr,setDrawDataWithHistory:Fa,setEditState:Dr,mode:U.je.View,translateToObject:pa,updateHistory:Pa}),$a=Aa.addObject,Ir=Aa.initObjectList,nr=Aa.updateObject,Ar=(0,Tt.Vr)({imgRef:sa,editState:ca,clientSize:Ae,naturalSize:pe,contentMouse:dt,imagePos:Ht,containerMouse:Ge,canvasRef:_r,activeCanvasRef:Ha,setEditState:Dr,drawData:mr,setDrawData:Lr,setDrawDataWithHistory:Fa,updateHistory:Pa,updateObject:nr,addObject:$a,updateMouseCursor:jr,displayOptionsResult:Sa,getAnnotColor:Zn,categories:jn}),xa=Ar.objectHooksMap,Ta=Hn({visible:Tn,drawData:mr,editState:ca,clientSize:Ae,imagePos:Ht,containerMouse:Ge,canvasRef:_r,activeCanvasRef:Ha,imgRef:sa,objectHooksMap:xa}),ba=Ta.updateRender;_o({visible:Tn,mode:U.je.View,drawData:mr,setDrawData:Lr,editState:ca,setEditState:Dr,clientSize:Ae,contentMouse:dt,categories:jn,updateRender:ba,updateMouseCursor:jr,objectHooksMap:xa,imagePos:Ht,containerMouse:Ge,getAnnotColor:Zn,limitActiveObject:!0}),(0,n.useEffect)(function(){document.body.style.overflow=Tn?"hidden":"overlay"},[Tn]);var ia=kr({imagePos:Ht,clientSize:Ae,naturalSize:pe,annotations:Br,setAnnotations:Tr,drawData:mr,setDrawData:Lr,editState:ca,setEditState:Dr,initObjectList:Ir,updateRender:ba,clearHistory:_a,objectsFilter:Pn,labelOptions:jn}),Ea=ia.resetDataWithImageData;(0,n.useEffect)(function(){Ea(Mn[Wn],Tn)},[Tn,Mn[Wn],Pn]),(0,n.useEffect)(function(){ba()},[Sa]);var ha=(0,n.useState)(!0),Va=s()(ha,2),Za=Va[0],uo=Va[1],Nr=(0,n.useCallback)(function(){uo(function(so){return!so})},[]),Co=function(){var so=B()(x()().mark(function Mi(ho){var zo,pi;return x()().wrap(function(di){for(;;)switch(di.prev=di.next){case 0:return ho.preventDefault(),ho.stopPropagation(),zo=T.ZP.loading("Creating image...",6e4),pi=function(){return new Promise(function(Jl,is){setTimeout(function(){try{if(!_r.current)return;var ms=_r.current.toDataURL(),Ai=document.createElement("a");Ai.setAttribute("download","".concat(Mn[Wn].id,".png")),Ai.setAttribute("href",ms),Ai.click(),zo(),Jl(null)}catch(Fi){is(Fi)}},500)})},di.prev=4,Dr(function(os){os.focusObjectIndex=-1}),ba(),di.next=9,pi();case 9:di.next=16;break;case 11:di.prev=11,di.t0=di.catch(4),console.error(di.t0),zo(),T.ZP.error("Create image fail, please try again");case 16:case"end":return di.stop()}},Mi,null,[[4,11]])}));return function(ho){return so.apply(this,arguments)}}();(0,Et.Z)($e[Wt.PreviousImage].shortcut,function(){Tn&&(er==null||er())},{exactMatch:!0}),(0,Et.Z)($e[Wt.NextImage].shortcut,function(){Tn&&(sr==null||sr())},{exactMatch:!0});var da=function(){var Mi;if(ca.focusObjectIndex>-1&&mr.objectList[ca.focusObjectIndex]&&!((Mi=mr.objectList[ca.focusObjectIndex])!==null&&Mi!==void 0&&Mi.hidden)&&ca.focusEleIndex>-1&&ca.focusEleType===y.Yq.Circle){var ho,zo,pi,li=(ho=mr.objectList[ca.focusObjectIndex])===null||ho===void 0||(zo=ho.keypoints)===null||zo===void 0||(pi=zo.points)===null||pi===void 0?void 0:pi[ca.focusEleIndex];if(li)return(0,ae.jsx)(un,{index:ca.focusEleIndex,targetElement:li,imagePos:Ht.current})}return(0,ae.jsx)(ae.Fragment,{})};if(!Tn)return(0,ae.jsx)(ae.Fragment,{});var co=(0,g.isEmpty)((je=Mn[Wn])===null||je===void 0?void 0:je.metadata)?void 0:Mn[Wn].metadata;return(0,ae.jsxs)("div",{className:"dds-annotator dds-annotator-preview",children:[(0,ae.jsx)(Mu,{className:"top-tools",leftTools:[{icon:(0,ae.jsx)(qs.Z,{}),onClick:Gt,disabled:k>=y.Fv},{icon:(0,ae.jsx)(Js.Z,{}),onClick:cn,disabled:k<=y.vL},{icon:(0,ae.jsx)(Pc,{}),onClick:Co}],rightTools:[{icon:(0,ae.jsx)(Zt.Z,{}),onClick:Jn}],children:"".concat(Wn+1," / ").concat(Mn.length)}),rr({className:"edit-wrap",children:(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)(Ei,{url:(In=Mn[Wn])===null||In===void 0?void 0:In.url,imgRef:sa,canvasRef:_r,activeCanvasRef:Ha,clientSize:Ae,imagePos:Ht,onLoad:Jt}),da()]})}),(0,ae.jsx)("div",{className:Te()("switch","switch-left",{"switch-disable":Wn===0}),onClick:er,children:(0,ae.jsx)(hr.Z,{})}),(0,ae.jsx)("div",{className:Te()("switch","switch-right",{"switch-disable":Wn===Mn.length-1}),onClick:sr,children:(0,ae.jsx)(qn.Z,{})}),Za&&co&&(0,ae.jsxs)("div",{className:"info-wrap",children:[(0,ae.jsx)("div",{className:"info-box",children:Object.keys(co).map(function(so){return(0,ae.jsxs)("div",{className:"item",children:[so,(0,ae.jsx)("br",{}),Hs()(co[so])==="object"?JSON.stringify(co[so]):co[so]]},so)})}),(0,ae.jsx)("div",{className:"bottom-mask"}),(0,ae.jsx)("div",{className:"hide-info-btn",onClick:Nr,children:(0,ae.jsx)(_s,{})})]}),!Za&&(0,ae.jsx)("div",{className:"show-info-btn",onClick:Nr,children:(0,ae.jsx)(_s,{})})]})},hc=Eu,Xl=function(ye){var je=ye.isOldMode,In=ye.categories,It=ye.data,Tn=ye.currentSize,jn=ye.wrapWidth,Mn=ye.wrapHeight,Wn=ye.minHeight,er=ye.objectsFilter,sr=ye.displayOptionsResult,Jn=(0,d.x)([]),Pn=s()(Jn,2),Sa=Pn[0],Fr=Pn[1],Xn=(0,d.x)((0,g.cloneDeep)(U.rl)),Br=s()(Xn,2),Tr=Br[0],ra=Br[1],Yr=(0,d.x)((0,g.cloneDeep)(U.f7)),ca=s()(Yr,2),Dr=ca[0],Mr=ca[1],or=(0,n.useRef)(null),mr=(0,n.useRef)(null),Lr=(0,n.useRef)(null),_r=(0,n.useRef)({x:0,y:0}),Ha=(0,n.useState)({width:0,height:Wn||0}),sa=s()(Ha,2),V=sa[0],k=sa[1],pe=(0,n.useMemo)(function(){if(Tn)return Tn;if(!V.width)return{width:jn||0,height:Mn||Wn||0};var ba=(0,w.t9)(V.width,V.height,jn,Mn),ia=s()(ba,2),Ea=ia[0],ha=ia[1];return{width:Ea,height:ha}},[jn,Mn,Wn,V,Tn]),Ae=(0,n.useMemo)(function(){var ba={screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,elementX:0,elementY:0,elementPosX:0,elementPosY:0,elementW:pe.width,elementH:pe.height};return[ba,ba]},[pe]),Ge=s()(Ae,2),dt=Ge[0],Ht=Ge[1],Jt=To({categories:In,editState:Tr}),Gt=Jt.getAnnotColor,cn=ku({isOldMode:je,clientSize:pe,naturalSize:V,categories:In,getAnnotColor:Gt}),rr=cn.translateToObject,On=aa({clientSize:pe,naturalSize:V,setDrawData:Mr}),Zn=On.clearHistory,Gr=On.updateHistory,jr=On.setDrawDataWithHistory,Qr=Fn({annotations:Sa,setAnnotations:Fr,drawData:Dr,setDrawData:Mr,setDrawDataWithHistory:jr,setEditState:ra,mode:U.je.View,translateToObject:rr,updateHistory:Gr}),pa=Qr.addObject,Ma=Qr.initObjectList,_a=Qr.updateObject,Pa=va({topCanvas:mr.current,editState:Tr,drawData:Dr}),Fa=Pa.updateMouseCursor,Aa=(0,Tt.Vr)({imgRef:Lr,editState:Tr,clientSize:pe,naturalSize:V,contentMouse:dt,containerMouse:Ht,imagePos:_r,canvasRef:or,activeCanvasRef:mr,setEditState:ra,drawData:Dr,setDrawData:Mr,setDrawDataWithHistory:jr,updateHistory:Gr,updateObject:_a,addObject:pa,updateMouseCursor:Fa,displayOptionsResult:sr,getAnnotColor:Gt,categories:In}),$a=Aa.objectHooksMap,Ir=Hn({visible:!0,drawData:Dr,editState:Tr,clientSize:pe,imagePos:_r,containerMouse:Ht,canvasRef:or,activeCanvasRef:mr,imgRef:Lr,objectHooksMap:$a}),nr=Ir.updateRender,Ar=kr({imagePos:_r,clientSize:pe,naturalSize:V,annotations:Sa,setAnnotations:Fr,drawData:Dr,setDrawData:Mr,editState:Tr,setEditState:ra,initObjectList:Ma,updateRender:nr,clearHistory:Zn,objectsFilter:er,labelOptions:In}),xa=Ar.resetDataWithImageData;(0,n.useEffect)(function(){xa(It,!0)},[It,er]),(0,n.useEffect)(function(){nr()},[sr]);var Ta=function(ia){var Ea=ia.target,ha={width:Ea.naturalWidth,height:Ea.naturalHeight};k(ha)};return(0,ae.jsx)("div",{className:"dds-annotator-view",children:(0,ae.jsx)(Ei,{url:It==null?void 0:It.url,imgRef:Lr,canvasRef:or,activeCanvasRef:mr,clientSize:pe,imagePos:_r,onLoad:Ta})})},Qu=Xl},20135:function(M,b,e){"use strict";e.d(b,{$N:function(){return Q},hF:function(){return ee},G9:function(){return le},_G:function(){return G},Vr:function(){return U}});var a=e(63900),t=e.n(a),o=e(2657),s=e.n(o),n=e(81179),c=e(17410),l=e(46134),d=e(34485),h=e.n(d),p=e(50910),y=e(14464),g=e(34095),S=function(I){var H=I.contentMouse,Y=I.imagePos,D=I.canvasRef,_=I.activeCanvasRef,ue=I.editState,be=I.setEditState,ce=I.drawData,he=I.setDrawData,Fe=I.updateMouseCursor,Je=I.updateObject,et=I.addObject,ae=I.getAnnotColor,yt=I.displayOptionsResult,Pt=I.categories,bt=I.onAiAnnotation,Ct=function(ve){var te=ve.object,me=ve.color,we=ve.styles,xe=ve.isFocus,Se=te.rect;if(Se&&Se.visible){var ke=we.strokeDash,ne=we.strokeColor,re=we.fillColor,se=we.thickness;if(ce.isBatchEditing){if(te.status===p.TK.Unchecked&&(!ue.isCtrlPressed||ce.selectedModel===c.HE.IVP))return;ue.isCtrlPressed&&ce.selectedModel===c.HE.Detection&&(te.status!==p.TK.Unchecked?(ne=(0,y.a7)(me,.8),ke=[2],se=1.5):re=xe?(0,y.a7)(me,g.mh.DEFAULT):(0,y.a7)(me,g.mh.CTRL_TO_SELECT))}if((0,n.Mu)(D.current,Se,ne,se,ke,re),yt!=null&&yt.showBoxText){var Ee,Re=((Ee=Pt.find(function(_e){return _e.id===te.labelId}))===null||Ee===void 0?void 0:Ee.name)||"",fe=te!=null&&te.conf&&te.conf>0&&te.conf<1?"".concat(Re,"(").concat(te.conf.toFixed(3),")"):Re;(0,n.yU)(D.current,fe||"",13,{x:Se.x+2,y:Se.y+2},me,!1,"left")}ce.isBatchEditing&&ue.isCtrlPressed&&xe&&(0,n.HU)(_.current,Se,"#000",.6)}},Le=function(ve){var te=ve.object,me=ve.styles,we=te.startPoint;if(we){var xe=(0,l.A7)(we,{x:H.elementX,y:H.elementY},{width:H.elementW,height:H.elementH}),Se=(0,l.ZU)(xe,{x:-Y.current.x,y:-Y.current.y});(0,n.Mu)(_.current,Se,me.strokeColor,me.thickness,me.strokeDash,me.fillColor)}},Ke=function(ve){var te=ve.object,me=ve.styles,we=te.rect;we&&we.visible&&((0,n.Mu)(_.current,we,me.strokeColor,me.thickness,me.strokeDash,me.fillColor),le(_.current,we))},st=function(ve){var te=ve.prompt;if(te.creatingPrompt){var me=te.creatingPrompt.isPositive?g.CJ.POSITIVE:g.CJ.NEGATIVE,we=te.creatingPrompt.isPositive?g.lz.POSITIVE:g.lz.NEGATIVE;switch(te.creatingPrompt.type){case p.Ae.Rect:{var xe=te.creatingPrompt.startPoint,Se=(0,l.A7)(xe,{x:H.elementX,y:H.elementY},{width:H.elementW,height:H.elementH}),ke=(0,l.ZU)(Se,{x:-Y.current.x,y:-Y.current.y});(0,n.Mu)(_.current,ke,me,2,[0],we);break}case p.Ae.Point:{if(!te.creatingPrompt.point)break;var ne=(0,l.aF)(te.creatingPrompt.point,{x:-Y.current.x,y:-Y.current.y});(0,n.G5)(_.current,ne,4,te.creatingPrompt.isPositive?g.lz.POSITIVE:g.lz.NEGATIVE,2,"#fff")}default:break}}te.promptsQueue&&te.promptsQueue.forEach(function(re){switch(re.type){case p.Ae.Rect:{var se=(0,l.ZU)(re.rect,{x:-Y.current.x,y:-Y.current.y});(0,n.Mu)(_.current,se,re.isPositive?g.CJ.POSITIVE:g.CJ.NEGATIVE,2,[0],re.isPositive?g.lz.POSITIVE:g.lz.NEGATIVE);break}case p.Ae.Point:{var Ee=(0,l.aF)(re.point,{x:-Y.current.x,y:-Y.current.y});(0,n.G5)(_.current,Ee,4,re.isPositive?g.lz.POSITIVE:g.lz.NEGATIVE,2,"#fff");break}}})},We=function(ve){var te=ve.object,me=ve.event;return(me==null?void 0:me.button)===2?!1:!!Q({object:te,contentMouse:H,setEditState:be,setDrawData:he})},ge=function(ve){var te=ve.point,me=ve.basic;return he(function(we){we.AIAnnotation&&we.selectedModel===c.HE.IVP?we.prompt.creatingPrompt={type:p.Ae.Rect,startPoint:te,point:te,isPositive:we.selectedSubTool!==c.jB.NegativeVisualPrompt}:(we.activeObjectIndex=-1,we.creatingObject=t()({type:c.gr.Rectangle,startPoint:te},me))}),!0},X=function(ve){var te=ve.object;return G({object:te,editState:ue,contentMouse:H,drawData:ce,setDrawData:he,updateMouseCursor:Fe})},W=function(ve){var te=ve.object;return!!te},R=function(ve){var te=ve.object,me=ue.startRectResizeAnchor||ue.startElementMovePoint;return me&&Je(te,ce.activeObjectIndex),be(function(we){we.startRectResizeAnchor=void 0,we.startElementMovePoint=void 0}),!0},N=function(ve){var te,me=ve.object,we={x:H.elementX,y:H.elementY};if(ce.AIAnnotation&&ce.selectedModel===c.HE.IVP&&(te=ce.prompt.creatingPrompt)!==null&&te!==void 0&&te.startPoint){var xe=ce.prompt.creatingPrompt.startPoint;if(we.x===xe.x||we.y===xe.y)return he(function(Ee){Ee.prompt.creatingPrompt=void 0}),!0;var Se=(0,l.A7)(ce.prompt.creatingPrompt.startPoint,we,{width:H.elementW,height:H.elementH}),ke={type:p.Ae.Rect,isPositive:ce.prompt.creatingPrompt.isPositive,rect:Se},ne=[].concat(h()(ce.prompt.promptsQueue||[]),[ke]);return bt==null||bt({type:c.gr.Rectangle,drawData:ce,promptsQueue:ne}),!0}if(!me||!me.startPoint)return!1;if(H.elementX===me.startPoint.x||H.elementY===me.startPoint.y)return he(function(Ee){Ee.creatingObject=void 0}),!0;var re=(0,l.A7)(me.startPoint,{x:H.elementX,y:H.elementY},{width:H.elementW,height:H.elementH}),se={type:c.gr.Rectangle,labelId:me.labelId,hidden:!1,rect:t()({visible:!0},re),conf:1,status:p.TK.Commited,color:ae(me.labelId)};return et(se),!0};return{renderObject:Ct,renderCreatingObject:Le,renderEditingObject:Ke,renderPrompt:st,startEditingWhenMouseDown:We,startCreatingWhenMouseDown:ge,updateEditingWhenMouseMove:X,updateCreatingWhenMouseMove:W,finishEditingWhenMouseUp:R,finishCreatingWhenMouseUp:N}},j=S,x=e(39378),Z=function(I){var H=I.editState,Y=I.clientSize,D=I.naturalSize,_=I.imagePos,ue=I.containerMouse,be=I.canvasRef,ce=I.activeCanvasRef,he=I.contentMouse,Fe=I.setEditState,Je=I.drawData,et=I.setDrawData,ae=I.setDrawDataWithHistory,yt=I.updateHistory,Pt=I.updateMouseCursor,bt=I.updateObject,Ct=I.addObject,Le=I.onAiAnnotation,Ke=I.displayOptionsResult,st=function(ne){var re=ne.object,se=ne.color,Ee=ne.styles,Re=ne.isFocus,fe=re.polygon;if(fe&&fe.visible){var _e=Re?Ee.fillColor:(0,y.a7)(se,g.mh.SHAPE),Pe=Ee.thickness;Ke&&(!Ke.showSegFilling&&!Re&&(_e="transparent"),Ke.showSegContour||(Pe=0)),fe==null||fe.group.forEach(function(ze){(0,n.fb)(be.current,ze,_e,Ee.strokeColor,Pe,Ee.strokeDash)})}},We=function(ne){var re=ne.object,se=ne.styles,Ee=re.currIndex,Re=(0,l.lT)(re,{x:-_.current.x,y:-_.current.y}),fe=Re.polygon;fe&&fe.visible&&fe.group.forEach(function(_e,Pe){Ee===Pe?_e.forEach(function(ze,Qe){(0,n.G5)(ce.current,ze,Qe===0?6:4,se.strokeColor,3,"#1f4dd8"),_e.length>1&&Qe<_e.length-1?(0,n.pS)(ce.current,_e[Qe],_e[Qe+1],(0,y.a7)(se.strokeColor,g.rl.CREATING),2.5,[0]):Qe===_e.length-1&&(0,n.pS)(ce.current,_e[Qe],{x:ue.elementX,y:ue.elementY},(0,y.a7)(se.strokeColor,g.rl.CREATING_LINE),2.5,[5])}):((0,n.fb)(ce.current,_e,(0,y.a7)("#1f4dd8",.5),"#1f4dd8",2,[0]),_e.forEach(function(ze){(0,n.G5)(ce.current,ze,4,se.strokeColor,3,"#1f4dd8")}))})},ge=function(ne){var re=ne.object,se=ne.color,Ee=ne.styles,Re=ne.isFocus,fe=re.polygon;if(fe&&fe.visible){var _e=Re&&H.focusEleType===c.Yq.Polygon&&H.focusEleIndex===0;fe.group.forEach(function(Me){var Ne=_e?(0,y.a7)(se,.2):"transparent";(0,n.fb)(ce.current,Me,Ne,Ee.strokeColor,Ee.thickness,Ee.strokeDash)}),fe.group.forEach(function(Me){Me.forEach(function(Ne){(0,n.G5)(ce.current,Ne,4,se,2,"#fff")})});var Pe=H.focusPolygonInfo,ze=Pe.index,Qe=Pe.pointIndex,gt=Pe.lineIndex;if(ze>-1&&Qe>-1){var ut=fe.group[ze][Qe];ut&&(0,n.G5)(ce.current,ut,4,"#fff",5,se)}else if(ze>-1&>>-1){var rt=(0,l.Iw)(fe.group[ze]);if(rt[gt]){var qe=rt[gt],Ve=qe.start,tt=qe.end,Oe=(0,l.Z4)({x:he.elementX+_.current.x,y:he.elementY+_.current.y},Ve,tt);Oe&&(0,n.G5)(ce.current,Oe,4,"#fff",5,se)}}}},X=function(ne){var re=ne.prompt;if(re.creatingPrompt){var se=g.XQ.CREATING,Ee=g.Bt.CREATING;switch(re.creatingPrompt.type){case p.Ae.Rect:{var Re=re.creatingPrompt.startPoint,fe=(0,l.A7)(Re,{x:he.elementX,y:he.elementY},{width:he.elementW,height:he.elementH}),_e=(0,l.ZU)(fe,{x:-_.current.x,y:-_.current.y});(0,n.Mu)(ce.current,_e,se,2,[0],Ee);break}case p.Ae.Point:{if(!re.creatingPrompt.point)break;var Pe=(0,l.aF)(re.creatingPrompt.point,{x:-_.current.x,y:-_.current.y});(0,n.G5)(ce.current,Pe,4,re.creatingPrompt.isPositive?g.lz.POSITIVE:g.lz.NEGATIVE,2,"#fff")}case p.Ae.Stroke:{if(!re.creatingPrompt.stroke||!re.creatingPrompt.radius)break;var ze=(0,l.U8)(re.creatingPrompt.stroke,{x:-_.current.x,y:-_.current.y}),Qe=re.creatingPrompt.radius*Y.width/D.width,gt=re.creatingPrompt.isPositive?g.lz.POSITIVE:g.lz.NEGATIVE;(0,n.AT)(ce.current,ze,gt,Qe);break}default:break}if(H.isRequiring&&re.activeRectWhileLoading){var ut=(0,l.ZU)(re.activeRectWhileLoading,{x:-_.current.x,y:-_.current.y});(0,n.HU)(ce.current,ut)}}re.promptsQueue&&re.promptsQueue.forEach(function(rt){if(rt.type===p.Ae.Point){var qe=(0,l.aF)(rt.point,{x:-_.current.x,y:-_.current.y});(0,n.G5)(ce.current,qe,4,rt.isPositive?g.lz.POSITIVE:g.lz.NEGATIVE,2,"#fff")}})},W=function(ne){var re={x:he.elementX,y:he.elementY};et(function(se){switch(se.selectedSubTool){case c.jB.AutoSegmentByBox:se.prompt.creatingPrompt={type:p.Ae.Rect,startPoint:re,isPositive:!0};break;case c.jB.AutoSegmentByClick:se.prompt.creatingPrompt={type:p.Ae.Point,startPoint:re,point:re,isPositive:ee(ne)};break;case c.jB.AutoSegmentByStroke:{se.prompt.creatingPrompt={type:p.Ae.Stroke,startPoint:re,stroke:[re],radius:se.brushSize,isPositive:ee(ne)};break}default:}})},R=function(ne){var re=ne.object,se=ne.event;return Je.AIAnnotation?(W(se),!0):(se==null?void 0:se.button)===2?!1:!!Q({object:re,contentMouse:he,setEditState:Fe,setDrawData:et})},N=function(ne){var re=ne.event,se=ne.point,Ee=ne.basic;return et(function(Re){if(!Re.creatingObject||Re.activeObjectIndex>-1)if(Re.activeObjectIndex=-1,Re.AIAnnotation)switch(Re.selectedSubTool){case c.jB.AutoSegmentByBox:Re.prompt.creatingPrompt={type:p.Ae.Rect,startPoint:se,isPositive:!0};break;case c.jB.AutoSegmentByClick:Re.prompt.creatingPrompt={type:p.Ae.Point,startPoint:se,point:se,isPositive:ee(re)};break;case c.jB.AutoSegmentByStroke:{Re.prompt.creatingPrompt={type:p.Ae.Stroke,startPoint:se,stroke:[se],radius:Re.brushSize,isPositive:ee(re)};break}}else Re.creatingObject=t()({type:c.gr.Polygon,polygon:{visible:!0,group:[[se]]},currIndex:0},Ee),yt((0,x.cloneDeep)(Je));else if(Re.AIAnnotation)W(re);else{var fe=Re.creatingObject.currIndex,_e=Re.creatingObject.polygon;if(fe>-1){var Pe=_e.group[fe][0];(0,l.uN)(Pe,he)?Re.creatingObject.currIndex=-1:Re.creatingObject.polygon&&(_e.group[fe].push(se),yt((0,x.cloneDeep)(Re)))}else _e.group.push([se]),Re.creatingObject.currIndex=_e.group.length-1,yt((0,x.cloneDeep)(Re))}}),!0},oe=function(ne){var re=ne.event,se=Je.selectedSubTool===c.jB.AutoSegmentByStroke,Ee=re.buttons===1||re.buttons===2;if(Je.prompt.creatingPrompt&&se&&Ee){var Re={x:he.elementX,y:he.elementY};return et(function(fe){var _e,Pe;(_e=fe.prompt.creatingPrompt)===null||_e===void 0||(Pe=_e.stroke)===null||Pe===void 0||Pe.push(Re)}),!0}return!1},ve=function(ne){var re=ne.event;if(Je.AIAnnotation)return Pt("crosshair"),oe({event:re});var se=H.focusEleType,Ee=H.focusEleIndex,Re=H.focusObjectIndex,fe=H.focusPolygonInfo;if(Re===Je.activeObjectIndex&&se===c.Yq.Polygon&&(fe.pointIndex>-1?Pt("pointer"):fe.lineIndex>-1?Pt("crosshair"):Pt("move")),se===c.Yq.Polygon&&Ee===0){var _e=H.focusPolygonInfo,Pe=_e.index,ze=_e.pointIndex;if(H.startElementMovePoint&&Pe>-1)return ze>-1?(et(function(Qe){var gt,ut;if(Qe.activeObjectIndex>-1&&H.focusEleIndex>-1&&H.startElementMovePoint&&(gt=Qe.creatingObject)!==null&>!==void 0&&(ut=gt.polygon)!==null&&ut!==void 0&&ut.group[Pe]){var rt,qe,Ve=(rt=Qe.creatingObject)===null||rt===void 0||(qe=rt.polygon)===null||qe===void 0?void 0:qe.group[Pe];Ve[ze]=(0,l.E5)(he)}}),!0):(et(function(Qe){var gt,ut;if(Qe.activeObjectIndex>-1&&H.focusEleIndex>-1&&H.startElementMovePoint&&(gt=Qe.creatingObject)!==null&>!==void 0&&(ut=gt.polygon)!==null&&ut!==void 0&&ut.group[Pe]){var rt,qe,Ve=(rt=Qe.creatingObject)===null||rt===void 0||(qe=rt.polygon)===null||qe===void 0?void 0:qe.group[Pe],tt=(0,l.s5)(Ve,H.startElementMovePoint,he);Qe.creatingObject.polygon.group[Pe]=tt,Fe(function(Oe){Oe.startElementMovePoint&&(Oe.startElementMovePoint.mousePoint={x:he.elementX,y:he.elementY})})}}),!0)}return!1},te=function(ne){var re=ne.event;return oe({event:re})},me=function(){if(Je.prompt.promptsQueue&&Je.prompt.promptsQueue.length>0)return Je.prompt.promptsQueue;var ne=!Je.prompt.sessionId&&Je.creatingObject;if(ne){var re,se,Ee=((re=Je.creatingObject)===null||re===void 0||(se=re.polygon)===null||se===void 0?void 0:se.group.map(function(fe){return fe.reduce(function(_e,Pe){return _e.concat([Pe.x,Pe.y])},[])}))||[],Re={type:p.Ae.Modify,isPositive:!0,polygons:Ee};return[Re]}else return[]},we=function(){var ne={x:he.elementX,y:he.elementY},re=me();switch(Je.selectedSubTool){case c.jB.AutoSegmentByBox:{var se,Ee,Re;if(!((se=Je.prompt.creatingPrompt)!==null&&se!==void 0&&se.startPoint))break;if(ne.x===((Ee=Je.prompt.creatingPrompt.startPoint)===null||Ee===void 0?void 0:Ee.x)||ne.y===((Re=Je.prompt.creatingPrompt.startPoint)===null||Re===void 0?void 0:Re.y)){et(function(Ve){return Ve.prompt.creatingPrompt=void 0});break}var fe=(0,l.A7)(Je.prompt.creatingPrompt.startPoint,ne,{width:he.elementW,height:he.elementH}),_e={type:p.Ae.Rect,isPositive:!0,rect:fe};ae(function(Ve){Ve.prompt.activeRectWhileLoading=fe});var Pe=[].concat(h()(re),[_e]);Le==null||Le({type:c.gr.Polygon,drawData:Je,promptsQueue:Pe});break}case c.jB.AutoSegmentByClick:{var ze;if(!(0,l.jt)(he)||!(0,l.jt)(ue)||!((ze=Je.prompt.creatingPrompt)!==null&&ze!==void 0&&ze.point))break;var Qe={type:p.Ae.Point,isPositive:Je.prompt.creatingPrompt.isPositive,point:Je.prompt.creatingPrompt.point},gt=[].concat(h()(re),[Qe]);Le==null||Le({type:c.gr.Polygon,drawData:Je,promptsQueue:gt});break}case c.jB.AutoSegmentByStroke:{var ut;if(!((ut=Je.prompt.creatingPrompt)!==null&&ut!==void 0&&ut.stroke))break;var rt={type:p.Ae.Stroke,isPositive:Je.prompt.creatingPrompt.isPositive,stroke:Je.prompt.creatingPrompt.stroke,radius:Je.brushSize},qe=[].concat(h()(re),[rt]);Le==null||Le({type:c.gr.Polygon,drawData:Je,promptsQueue:qe});break}}},xe=function(ne){var re=ne.object;if(Je.AIAnnotation)we();else{var se,Ee,Re=H.startRectResizeAnchor||H.startElementMovePoint,fe=H.startElementMovePoint&&((se=H.startElementMovePoint.initPoint)===null||se===void 0?void 0:se.x)===he.elementX&&((Ee=H.startElementMovePoint.initPoint)===null||Ee===void 0?void 0:Ee.y)===he.elementY,_e=fe&&H.focusPolygonInfo.index>-1&&H.focusPolygonInfo.pointIndex>-1;if(_e){var Pe,ze=(0,x.cloneDeep)(re),Qe=H.focusPolygonInfo,gt=Qe.index,ut=Qe.pointIndex,rt=(Pe=ze.polygon)===null||Pe===void 0?void 0:Pe.group[gt];rt&>>-1&&ut>-1&&rt.length>=3&&rt.splice(ut,1),bt(ze,Je.activeObjectIndex)}else Re&&bt(re,Je.activeObjectIndex);Fe(function(qe){qe.startRectResizeAnchor=void 0,qe.startElementMovePoint=void 0})}return!0},Se=function(ne){var re=ne.object;if(Je.AIAnnotation)we();else if(re&&re.currIndex===-1){var se=re.polygon,Ee=re.type,Re=re.hidden,fe=re.labelId,_e=re.status,Pe=re.color,ze={polygon:se,type:Ee,hidden:Re,labelId:fe,status:_e,color:Pe};Ct(ze)}return!0};return{renderObject:st,renderCreatingObject:We,renderEditingObject:ge,renderPrompt:X,startEditingWhenMouseDown:R,startCreatingWhenMouseDown:N,updateEditingWhenMouseMove:ve,updateCreatingWhenMouseMove:te,finishEditingWhenMouseUp:xe,finishCreatingWhenMouseUp:Se}},B=Z,w=function(I,H,Y,D,_){var ue=arguments.length>5&&arguments[5]!==void 0?arguments[5]:4,be=H.lines,ce=H.points;if(!_)for(var he=0;he*2400?4:2)}},Ke=function(te){var me=te.object,we=te.styles,xe=me.startPoint;if(xe){var Se=(0,l.A7)(xe,{x:_.elementX,y:_.elementY},{width:_.elementW,height:_.elementH}),ke=(0,l.ZU)(Se,{x:-ue.current.x,y:-ue.current.y}),ne=c.v_.points,re=c.v_.lines,se=c.v_.pointColors,Ee=c.v_.pointNames,Re=(0,l.el)(ne,Ee,se,D,Y),fe=(0,l.cU)(Re,ke);(0,n.Mu)(ce.current,ke,we.strokeColor,we.thickness),fe.forEach(function(gt){(0,n.G5)(ce.current,{x:gt.x,y:gt.y},4,we.strokeColor,3,"#1f4dd8")});for(var _e=0;_e*2-1&&H.focusEleIndex>-1&&H.startElementMovePoint&&(xe=we.creatingObject)!==null&&xe!==void 0&&(Se=xe.keypoints)!==null&&Se!==void 0&&(ke=Se.points)!==null&&ke!==void 0&&ke[H.focusEleIndex]){var ne,re,se,Ee=(ne=we.creatingObject)===null||ne===void 0||(re=ne.keypoints)===null||re===void 0||(se=re.points)===null||se===void 0?void 0:se[H.focusEleIndex],Re=(0,l.E5)(_),fe=Re.x,_e=Re.y;Ee.x=fe,Ee.y=_e}}),!0):!1)},R=function(te){var me=te.object;return!!me},N=function(te){var me=te.object,we=H.startRectResizeAnchor||H.startElementMovePoint;if(we&&yt(me,Fe.activeObjectIndex),Fe.AIAnnotation){var xe,Se;H.startElementMovePoint&&(((xe=H.startElementMovePoint.mousePoint)===null||xe===void 0?void 0:xe.x)!==_.elementX||((Se=H.startElementMovePoint.mousePoint)===null||Se===void 0?void 0:Se.y)!==_.elementY)&&(bt==null||bt({type:c.gr.Skeleton,drawData:Fe,aiLabels:Pt}))}return he(function(ke){ke.startRectResizeAnchor=void 0,ke.startElementMovePoint=void 0}),!0},oe=function(te){var me,we,xe=te.object;if(!xe||!xe.startPoint)return!1;if(_.elementX===((me=xe.startPoint)===null||me===void 0?void 0:me.x)||_.elementY===((we=xe.startPoint)===null||we===void 0?void 0:we.y))return Je(function(_e){return _e.creatingObject=void 0}),!0;var Se=(0,l.A7)(xe.startPoint,{x:_.elementX,y:_.elementY},{width:_.elementW,height:_.elementH}),ke=c.v_.points,ne=c.v_.lines,re=c.v_.pointColors,se=c.v_.pointNames,Ee=(0,l.el)(ke,se,re,D,Y),Re=(0,l.cU)(Ee,Se),fe={type:c.gr.Skeleton,labelId:xe.labelId,hidden:!1,color:xe.color,rect:t()({visible:!0},Se),keypoints:{points:Re,lines:ne},conf:1,status:p.TK.Commited};return ae(fe),!0};return{renderObject:Le,renderCreatingObject:Ke,renderEditingObject:st,renderPrompt:We,startEditingWhenMouseDown:ge,startCreatingWhenMouseDown:X,updateEditingWhenMouseMove:W,updateCreatingWhenMouseMove:R,finishEditingWhenMouseUp:N,finishCreatingWhenMouseUp:oe}},F=T,A=e(67761),L=function(I){var H=I.imgRef,Y=I.imagePos,D=I.canvasRef,_=I.clientSize,ue=I.displayOptionsResult,be=function(Ke){if(!(!Ke||!D.current||!H.current)){var st=ue||{},We=st.showMattingColorFill,ge=D.current.getContext("2d"),X=t()({x:Y.current.x,y:Y.current.y},_);(0,n.UN)(D.current),(0,n.AE)(D.current,Ke,X),We?(ge.globalCompositeOperation="source-out",(0,n.CR)(D.current,X,"#000"),ge.globalCompositeOperation="destination-atop",(0,n.CR)(D.current,X,"#fff")):(ge.globalCompositeOperation="source-in",(0,n.AE)(D.current,H.current,X),ge.globalCompositeOperation="destination-over",(0,n.CR)(D.current,X,"#fff"))}},ce=function(Ke){var st=Ke.object,We=st.alphaImageElement;We&&(be(We),We.onload=function(){be(We)})},he=function(){},Fe=function(){},Je=function(){},et=function(){return!1},ae=function(){return!1},yt=function(){return!1},Pt=function(){return!1},bt=function(){return!1},Ct=function(){return!1};return{renderObject:ce,renderCreatingObject:he,renderEditingObject:Fe,renderPrompt:Je,startEditingWhenMouseDown:et,startCreatingWhenMouseDown:ae,updateEditingWhenMouseMove:yt,updateCreatingWhenMouseMove:Pt,finishEditingWhenMouseUp:bt,finishCreatingWhenMouseUp:Ct}},O=L,$=function(I){var H=I.canvasRef,Y=function(yt){var Pt=yt.object,bt=yt.styles,Ct=Pt.point;if(Ct&&Ct.visible){var Le=Ct.x,Ke=Ct.y,st=bt.strokeColor,We=bt.fillColor;(0,n.G5)(H.current,{x:Le,y:Ke},4,We,2,st)}},D=function(){},_=function(){},ue=function(){},be=function(){return!1},ce=function(){return!1},he=function(){return!1},Fe=function(){return!1},Je=function(){return!1},et=function(){return!1};return{renderObject:Y,renderCreatingObject:D,renderEditingObject:_,renderPrompt:ue,startEditingWhenMouseDown:be,startCreatingWhenMouseDown:ce,updateEditingWhenMouseMove:he,updateCreatingWhenMouseMove:Fe,finishEditingWhenMouseUp:Je,finishCreatingWhenMouseUp:et}},P=$,K;(function(q){})(K||(K={}));var U=function(I){var H,Y=j(I),D=B(I),_=F(I),ue=(0,A.ZP)(I),be=O(I),ce=P(I),he=(H={},s()(H,c.gr.Rectangle,Y),s()(H,c.gr.Polygon,D),s()(H,c.gr.Skeleton,_),s()(H,c.gr.Mask,ue),s()(H,c.gr.Matting,be),s()(H,c.gr.Point,ce),s()(H,c.gr.Custom,Y),H);return{objectHooksMap:he}},ee=function(I){return!(I.button===2||I.button===0&&I.altKey)},le=function(I,H){var Y=(0,l.Qo)(H).map(function(D){return D.position});Y.forEach(function(D){var _=(0,l.Ak)(D,{width:10,height:10}),ue=(0,l.my)(_);(0,n.Mu)(I,ue,"rgba(0, 0, 0, 0.8)",3,[0],"#fff")})},Q=function(I){var H=I.object,Y=I.contentMouse,D=I.setEditState,_=I.setDrawData,ue=(0,l.o7)(Y,H),be=ue.focusEleIndex,ce=ue.focusEleType,he=ue.focusPolygonInfo;if(ce===c.Yq.None)return!1;var Fe=H.rect,Je=H.keypoints,et=H.polygon,ae={x:Y.elementX,y:Y.elementY};return D(function(yt){switch(ce){case c.Yq.Rect:{if(Fe){var Pt=(0,l.Oh)(Fe,ae);Pt?yt.startRectResizeAnchor={type:Pt.type,position:(0,l.l1)(Fe,Pt.type)}:yt.startElementMovePoint={topLeftPoint:{x:Fe.x,y:Fe.y},mousePoint:ae}}break}case c.Yq.Circle:{if(Je){var bt=Je.points[be];yt.startElementMovePoint={topLeftPoint:{x:bt.x,y:bt.y},mousePoint:ae}}break}case c.Yq.Polygon:{var Ct=he.lineIndex,Le=he.index;if(et)if(Ct>-1){var Ke=(0,l.Iw)(et.group[Le])[Ct];if(Ke){var st=(0,l.Z4)(ae,Ke.start,Ke.end);_(function(We){var ge=We.objectList[We.activeObjectIndex];ge.polygon&&ge.polygon.group[Le].splice(Ct+1,0,st),We.creatingObject=t()({},ge)}),yt.focusPolygonInfo.pointIndex=Ct+1,yt.startElementMovePoint={topLeftPoint:{x:0,y:0},mousePoint:st,initPoint:st}}}else yt.startElementMovePoint={topLeftPoint:{x:0,y:0},mousePoint:ae,initPoint:ae};break}}}),!0},G=function(I){var H=I.object,Y=I.editState,D=I.contentMouse,_=I.drawData,ue=I.setDrawData,be=I.updateMouseCursor,ce=Y.focusObjectIndex,he=Y.focusEleIndex,Fe=Y.focusEleType,Je=Y.startRectResizeAnchor;if(ce===_.activeObjectIndex&&Fe===c.Yq.Rect&&H.rect){var et=(0,l.Oh)(H.rect,{x:D.elementX,y:D.elementY});et?be("resize",et.type):be("move")}if(Fe===c.Yq.Rect&&he===0){if(Je)return ue(function(ae){if(ae.activeObjectIndex>-1&&Y.startRectResizeAnchor&&ae.creatingObject&&ae.creatingObject.rect){var yt=(0,l.XR)(ae.creatingObject.rect,Y.startRectResizeAnchor,D);ae.creatingObject.rect=t()(t()({},ae.creatingObject.rect),yt)}}),!0;if(Y.startElementMovePoint)return ue(function(ae){if(ae.activeObjectIndex>-1&&Y.startElementMovePoint&&ae.creatingObject&&ae.creatingObject.rect){var yt=(0,l.i$)(ae.creatingObject.rect,Y.startElementMovePoint,D);ae.creatingObject.rect=t()(t()({},ae.creatingObject.rect),yt)}}),!0}return!1}},67761:function(M,b,e){"use strict";e.d(b,{G9:function(){return T},ei:function(){return F}});var a=e(34485),t=e.n(a),o=e(63900),s=e.n(o),n=e(81179),c=e(17410),l=e(46134),d=e(20135),h=e(34095),p=e(50910),y=e(14464),g=e(39378),S=e.n(g),j=function(O,$){for(var P=new Array($).fill(0),K=0;K0&&ee.forEach(function(Q){var G=(0,l.U8)(Q.points,{x:-$.x,y:-$.y});(Q.tool===c.jB.PenAdd||Q.tool===c.jB.PenErase)&&(0,n.HT)(O,G,Q.positive,(0,y.a7)(U,h.s_.CREATING),"transparent"),(Q.tool===c.jB.BrushAdd||Q.tool===c.jB.BrushErase)&&(0,n.T8)(O,G,Q.positive,U,h.s_.CREATING,Q.radius*P.width/K.width)}),le.restore()},B=function(O,$,P,K,U,ee,le){if(O){var Q=$.maskStep,G=$.tempMaskSteps,q=$.maskCanvasElement,I=O.getContext("2d");if(!I)return null;if(q&&(I.globalAlpha=h.s_.CREATING,(0,n.AE)(O,q,{x:P.x,y:P.y,width:ee.width,height:ee.height}),I.globalAlpha=1),Z(O,P,ee,le,K,G),Q&&Q.points.length>0){var H=Q.tool===c.jB.PenAdd||Q.tool===c.jB.BrushAdd?h.Bt.CREATING_POSITIVE:h.Bt.CREATING_NEGATIVE,Y=(0,l.U8)(Q.points,{x:-P.x,y:-P.y});(Q.tool===c.jB.PenAdd||Q.tool===c.jB.PenErase)&&((0,n.G5)(O,Y[0],6,(0,y.a7)(H,h.rl.CREATING),3,h.XQ.CREATING),Y.length>0&&((0,n.MC)(O,Y,(0,y.a7)(H,h.rl.CREATING),2.5,[0]),(0,n.pS)(O,Y[Y.length-1],U,(0,y.a7)(H,h.rl.CREATING_LINE),2.5,[5]))),(Q.tool===c.jB.BrushAdd||Q.tool===c.jB.BrushErase||Q.tool===c.jB.AutoSegmentByStroke)&&Y.length>1&&(0,n.AT)(O,Y,(0,y.a7)(H,h.s_.CREATING),Q.radius*ee.width/le.width)}}},w=function(O,$){var P=O.getContext("2d",{willReadFrequently:!0});if(!P)return null;for(var K=P.getImageData(0,0,O.width,O.height),U=hexToRgbArray($),ee=K.data.length/4;ee--;)K.data[ee*4+3]>0&&(K.data[ee*4]=U[0],K.data[ee*4+1]=U[1],K.data[ee*4+2]=U[2],K.data[ee*4+3]=255);return clearCanvas(O),P.putImageData(K,0,0),O},T=function(O,$,P,K){var U=document.createElement("canvas"),ee=U.getContext("2d",{willReadFrequently:!0});if(!ee||!P)return null;U.width=$.width,U.height=$.height;var le=P.map(function(Y){return s()(s()({},Y),{},{points:Y.points.map(function(D){return(0,l.Ap)(D,O,$)})})});K&&(0,n.AE)(U,K,{x:0,y:0,width:$.width,height:$.height}),Z(U,{x:0,y:0},$,$,"#fff",le);for(var Q=ee.getImageData(0,0,$.width,$.height),G=0,q=new Array(Q.data.length/4).fill(0),I=Q.data.length/4;I--;){var H=0;Q.data[I*4+3]>0&&(G++,H=1,q[I]=1),Q.data[I*4]=Q.data[I*4+1]=Q.data[I*4+2]=Q.data[I*4+3]=H}return G>0?x(q):[]},F=function(O,$,P){var K=$.width,U=$.height,ee=document.createElement("canvas"),le=ee.getContext("2d");if(ee.width=K,ee.height=U,!le)return null;for(var Q=le.createImageData(K,U),G=(0,y.dX)(P),q=j(O,Math.ceil(K)*Math.ceil(U)),I=Q.data.length/4;I--;)q[I]>0&&(Q.data[I*4]=G[0],Q.data[I*4+1]=G[1],Q.data[I*4+2]=G[2],Q.data[I*4+3]=255);return le.putImageData(Q,0,0),ee},A=function(O){var $=O.editState,P=O.clientSize,K=O.naturalSize,U=O.contentMouse,ee=O.imagePos,le=O.containerMouse,Q=O.canvasRef,G=O.activeCanvasRef,q=O.drawData,I=O.setDrawData,H=O.setDrawDataWithHistory,Y=O.updateHistory,D=O.onAiAnnotation,_=O.updateMouseCursor,ue=function(st){var We=st.object,ge=st.styles,X=We.maskCanvasElement,W=Q.current.getContext("2d"),R=W.globalAlpha;W.globalAlpha=W.globalAlpha*ge.maskAlpha,(0,n.AE)(Q.current,X,{x:ee.current.x,y:ee.current.y,width:P.width,height:P.height}),W.globalAlpha=R},be=function(st){var We=st.object,ge=st.color;$.hideCreatingObject||B(G.current,We,ee.current,ge,{x:le.elementX,y:le.elementY},P,K)},ce=function(st){var We=st.object,ge=st.color;$.hideCreatingObject||B(G.current,We,ee.current,ge,{x:le.elementX,y:le.elementY},P,K)},he=function(st){var We=st.prompt;if(We.creatingPrompt){var ge=h.XQ.CREATING,X=h.Bt.CREATING;switch(We.creatingPrompt.type){case p.Ae.Rect:{var W=We.creatingPrompt.startPoint,R=(0,l.A7)(W,{x:U.elementX,y:U.elementY},{width:U.elementW,height:U.elementH}),N=(0,l.ZU)(R,{x:-ee.current.x,y:-ee.current.y});(0,n.Mu)(G.current,N,ge,2,[0],X);break}case p.Ae.Point:{if(!We.creatingPrompt.point)break;var oe=(0,l.aF)(We.creatingPrompt.point,{x:-ee.current.x,y:-ee.current.y});(0,n.G5)(G.current,oe,4,We.creatingPrompt.isPositive?h.lz.POSITIVE:h.lz.NEGATIVE,2,"#fff")}case p.Ae.EdgeStitch:case p.Ae.Stroke:{if(!We.creatingPrompt.stroke||!We.creatingPrompt.radius)break;var ve=(0,l.U8)(We.creatingPrompt.stroke,{x:-ee.current.x,y:-ee.current.y}),te=We.creatingPrompt.radius*P.width/K.width,me=We.creatingPrompt.type===p.Ae.EdgeStitch?(0,y.a7)(ge,h.s_.CREATING):We.creatingPrompt.isPositive?h.lz.POSITIVE:h.lz.NEGATIVE;(0,n.AT)(G.current,ve,me,te);break}default:break}if($.isRequiring&&We.activeRectWhileLoading){var we=(0,l.ZU)(We.activeRectWhileLoading,{x:-ee.current.x,y:-ee.current.y});(0,n.HU)(G.current,we)}}We.promptsQueue&&We.promptsQueue.forEach(function(xe){if(xe.type===p.Ae.Point){var Se=(0,l.aF)(xe.point,{x:-ee.current.x,y:-ee.current.y});(0,n.G5)(G.current,Se,4,xe.isPositive?h.lz.POSITIVE:h.lz.NEGATIVE,2,"#fff")}})},Fe=function(st){var We={x:U.elementX,y:U.elementY};I(function(ge){switch(ge.selectedSubTool){case c.jB.PenAdd:case c.jB.PenErase:case c.jB.BrushAdd:case c.jB.BrushErase:if(ge.creatingObject){if(ge.creatingObject.maskStep){if(ge.creatingObject.maskStep.points.push(We),[c.jB.PenAdd,c.jB.PenErase].includes(ge.selectedSubTool)&&(0,l.uN)(ge.creatingObject.maskStep.points[0],U)){var X;(X=ge.creatingObject.tempMaskSteps)===null||X===void 0||X.push(ge.creatingObject.maskStep),ge.creatingObject.maskStep=void 0}}else ge.creatingObject.maskStep={tool:ge.selectedSubTool,positive:ge.selectedSubTool===c.jB.PenAdd||ge.selectedSubTool===c.jB.BrushAdd,points:[We],radius:ge.brushSize};[c.jB.BrushAdd,c.jB.BrushErase].includes(ge.selectedSubTool)||Y((0,g.cloneDeep)(ge))}ge.prompt.sessionId=void 0;break;case c.jB.AutoSegmentByBox:ge.prompt.creatingPrompt={type:p.Ae.Rect,startPoint:We,isPositive:!0};break;case c.jB.AutoSegmentByClick:ge.prompt.creatingPrompt={type:p.Ae.Point,startPoint:We,point:We,isPositive:(0,d.hF)(st)};break;case c.jB.AutoSegmentByStroke:ge.prompt.creatingPrompt={type:p.Ae.Stroke,startPoint:We,stroke:[We],radius:ge.brushSize,isPositive:(0,d.hF)(st)};break;case c.jB.AutoEdgeStitching:ge.prompt.creatingPrompt={type:p.Ae.EdgeStitch,startPoint:We,stroke:[We],radius:ge.brushSize,isPositive:!0};default:break}})},Je=function(st){var We=st.event;return Fe(We),!0},et=function(st){var We=st.event,ge=st.object,X=st.point,W=st.basic;return ge?Fe(We):I(function(R){switch(R.activeObjectIndex=-1,R.selectedSubTool){case c.jB.PenAdd:case c.jB.PenErase:case c.jB.BrushAdd:case c.jB.BrushErase:R.creatingObject=s()(s()({},W),{},{type:c.gr.Mask,startPoint:X,maskStep:{tool:R.selectedSubTool,positive:R.selectedSubTool===c.jB.PenAdd||R.selectedSubTool===c.jB.BrushAdd,points:[X],radius:R.brushSize},tempMaskSteps:[]}),R.prompt.sessionId=void 0;break;case c.jB.AutoSegmentByBox:R.prompt.creatingPrompt={type:p.Ae.Rect,startPoint:X,isPositive:!0};break;case c.jB.AutoSegmentByClick:R.prompt.creatingPrompt={type:p.Ae.Point,startPoint:X,point:X,isPositive:(0,d.hF)(We)};break;case c.jB.AutoSegmentByStroke:R.prompt.creatingPrompt={type:p.Ae.Stroke,startPoint:X,stroke:[X],radius:R.brushSize,isPositive:(0,d.hF)(We)};break;case c.jB.AutoEdgeStitching:R.prompt.creatingPrompt={type:p.Ae.EdgeStitch,startPoint:X,stroke:[X],radius:R.brushSize,isPositive:!0};break;default:break}}),!0},ae=function(st){var We=st.event,ge=st.object;if(ge||q.prompt.creatingPrompt){_("crosshair");var X=[c.jB.BrushAdd,c.jB.BrushErase,c.jB.PenAdd,c.jB.PenErase,c.jB.AutoSegmentByStroke,c.jB.AutoEdgeStitching].includes(q.selectedSubTool),W=We.buttons===1||We.buttons===2;if(X&&W){var R={x:U.elementX,y:U.elementY},N=[c.jB.AutoSegmentByStroke,c.jB.AutoEdgeStitching].includes(q.selectedSubTool);I(function(oe){if(N){var ve,te;(ve=oe.prompt.creatingPrompt)===null||ve===void 0||(te=ve.stroke)===null||te===void 0||te.push(R)}else{var me,we;(me=oe.creatingObject)===null||me===void 0||(we=me.maskStep)===null||we===void 0||we.points.push(R)}})}return!0}return!1},yt=function(st){var We=st.object,ge=st.event;return ae({object:We,event:ge})},Pt=function(st){var We=st.object,ge=st.event;return ae({object:We,event:ge})},bt=function(){if(!(!q.creatingObject&&!q.prompt.creatingPrompt)){var st={x:U.elementX,y:U.elementY};switch(q.selectedSubTool){case c.jB.BrushAdd:case c.jB.BrushErase:case c.jB.PenAdd:case c.jB.PenErase:{H(function(ke){if(ke.creatingObject&&ke.creatingObject.tempMaskSteps&&ke.creatingObject.maskStep&&ke.creatingObject.maskStep.points.length>1&&([c.jB.BrushAdd,c.jB.BrushErase].includes(ke.selectedSubTool)||[c.jB.PenAdd,c.jB.PenErase].includes(ke.selectedSubTool)&&(0,l.uN)(ke.creatingObject.maskStep.points[0],U))){var ne;(ne=ke.creatingObject.tempMaskSteps)===null||ne===void 0||ne.push(ke.creatingObject.maskStep),ke.creatingObject.maskStep=void 0}ke.prompt.sessionId=void 0});break}case c.jB.AutoSegmentByBox:{var We,ge,X;if(!((We=q.prompt.creatingPrompt)!==null&&We!==void 0&&We.startPoint))break;if(st.x===((ge=q.prompt.creatingPrompt.startPoint)===null||ge===void 0?void 0:ge.x)||st.y===((X=q.prompt.creatingPrompt.startPoint)===null||X===void 0?void 0:X.y)){I(function(ke){return ke.prompt.creatingPrompt=void 0});break}var W=(0,l.A7)(q.prompt.creatingPrompt.startPoint,st,{width:U.elementW,height:U.elementH}),R={type:p.Ae.Rect,isPositive:!0,rect:W};H(function(ke){ke.prompt.activeRectWhileLoading=W});var N=q.prompt.promptsQueue?[].concat(t()(q.prompt.promptsQueue),[R]):[R];D==null||D({type:c.gr.Mask,drawData:q,promptsQueue:N});break}case c.jB.AutoSegmentByClick:{var oe;if(!(0,l.jt)(U)||!(0,l.jt)(le)||!((oe=q.prompt.creatingPrompt)!==null&&oe!==void 0&&oe.point))break;var ve={type:p.Ae.Point,isPositive:q.prompt.creatingPrompt.isPositive,point:q.prompt.creatingPrompt.point},te=q.prompt.promptsQueue?[].concat(t()(q.prompt.promptsQueue),[ve]):[ve];D==null||D({type:c.gr.Mask,drawData:q,promptsQueue:te});break}case c.jB.AutoSegmentByStroke:{var me;if(!((me=q.prompt.creatingPrompt)!==null&&me!==void 0&&me.stroke))break;var we={type:p.Ae.Stroke,isPositive:q.prompt.creatingPrompt.isPositive,stroke:q.prompt.creatingPrompt.stroke,radius:q.brushSize},xe=q.prompt.promptsQueue?[].concat(t()(q.prompt.promptsQueue),[we]):[we];D==null||D({type:c.gr.Mask,drawData:q,promptsQueue:xe});break}case c.jB.AutoEdgeStitching:{var Se;if(!((Se=q.prompt.creatingPrompt)!==null&&Se!==void 0&&Se.stroke))break;D==null||D({type:c.gr.Mask,drawData:q});break}}}},Ct=function(){return bt(),!0},Le=function(){return bt(),!0};return{renderObject:ue,renderCreatingObject:be,renderEditingObject:ce,renderPrompt:he,startEditingWhenMouseDown:Je,startCreatingWhenMouseDown:et,updateEditingWhenMouseMove:yt,updateCreatingWhenMouseMove:Pt,finishEditingWhenMouseUp:Ct,finishCreatingWhenMouseUp:Le}};b.ZP=A},50910:function(M,b,e){"use strict";e.d(b,{Ae:function(){return s},In:function(){return t},O4:function(){return l},TK:function(){return o},f7:function(){return c},je:function(){return n},rl:function(){return h}});var a=e(17410),t=function(p){return p.Radio="radio",p.Checkbox="checkbox",p.Text="text",p}({}),o=function(p){return p[p.Unchecked=0]="Unchecked",p[p.Checked=1]="Checked",p[p.Commited=2]="Commited",p}({}),s=function(p){return p.Rect="rect",p.Point="point",p.Stroke="stroke",p.EdgeStitch="edgeStitch",p.Modify="modify",p}({}),n={View:0,Edit:1,Review:2},c={initialized:!1,selectedTool:a.ru.Drag,selectedSubTool:a.jB.PenAdd,selectedModel:void 0,AIAnnotation:!1,objectList:[],classifications:[],activeObjectIndex:-1,activeClassName:"",creatingObject:void 0,editingAttribute:void 0,brushSize:20,pointResolution:.5,prompt:{},isBatchEditing:!1,limitConf:0},l={brightness:100,contrast:100,saturate:100},d={colorByCategory:!0},h={isLoading:!1,isLoadingError:!1,isRequiring:!1,allowMove:!1,latestLabelId:"",startRectResizeAnchor:void 0,startElementMovePoint:void 0,focusObjectIndex:-1,foucsObjectAllIndexs:[],focusEleType:a.Yq.Rect,focusEleIndex:-1,focusPolygonInfo:{index:-1,pointIndex:-1,lineIndex:-1},isCtrlPressed:!1,hideCreatingObject:!1,imageDisplayOptions:l,annotsDisplayOptions:d}},14464:function(M,b,e){"use strict";e.d(b,{Cj:function(){return d},WE:function(){return g},ZT:function(){return o},a7:function(){return c},dX:function(){return n},g9:function(){return p},wj:function(){return h}});var a=e(34485),t=e.n(a),o=function(x){return x.length!==3?"transparent":"#".concat(x[0].toString(16).padStart(2,"0")).concat(x[1].toString(16).padStart(2,"0")).concat(x[2].toString(16).padStart(2,"0")).toUpperCase()},s=function(x){var Z=/^rgba?\((\d+),\s*(\d+),\s*(\d+)\)$/i.exec(x);return Z?o(Z):"transparent"},n=function(x){var Z=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,B=x.replace(Z,function(T,F,A,L){return F+F+A+A+L+L}),w=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(B);return w?[parseInt(w[1],16),parseInt(w[2],16),parseInt(w[3],16)]:[0,0,0]},c=function(x){var Z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,B=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,w=x.replace(B,function(A,L,O,$){return L+L+O+O+$+$}),T=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(w),F=Z<0||Z>1?1:Z;return T?"rgba(".concat(parseInt(T[1],16),",").concat(parseInt(T[2],16),",").concat(parseInt(T[3],16),",").concat(F,")"):"transparent"},l=function(x){for(var Z=["#FFFF00","#FF0000","#0000FF","#00FF00","#FF00FF","#00FFFF"],B=[255,128,64,32,16,8,4,2,1],w=Z.length+1;Z.length0)if(T[L%3]+B[Math.floor(L/3)]<=255)T[L%3]+=B[Math.floor(L/3)];else{A=!1;break}F<<=1}if(A){var O="#".concat(T[0].toString(16).padStart(2,"0")).concat(T[1].toString(16).padStart(2,"0")).concat(T[2].toString(16).padStart(2,"0")).toUpperCase();(x>1e3||!Z.includes(O))&&Z.push(O)}}return Z},d=function(x){if(!x.length)return{};var Z=t()(x),B=l(Z.length),w={};return Z.forEach(function(T,F){w[T]=B[F]||"#fff"}),w},h=function(x,Z){return x.length!==3?"transparent":"rgba(".concat(x[0],", ").concat(x[1],", ").concat(x[2],", ").concat(Z,")")},p=function(x){var Z=x.slice(5,-1).split(",").map(function(B){return B.trim()});return Z.length!==4||isNaN(parseFloat(Z[3]))?[]:Z.slice(0,3)},y=function(x,Z){if(!x)return"rgba(0,0,0,0)";var B=x.substring(5,x.length-1).split(",").map(function(F){return parseInt(F.trim())}),w=[].concat(_toConsumableArray(B.slice(0,3)),[Z]),T="rgba(".concat(w.join(","),")");return T},g=function(x,Z,B){var w=B*Z,T=w*(1-Math.abs(x*6%2-1)),F=B-w,A=0,L=0,O=0;return x<1/6?(A=w,L=T):x<2/6?(A=T,L=w):x<3/6?(L=w,O=T):x<4/6?(L=T,O=w):x<5/6?(A=T,O=w):(A=w,O=T),[Math.round((A+F)*255),Math.round((L+F)*255),Math.round((O+F)*255)]},S=function(){var j=.618033988749895,x=0;return function(){x=(x+j)%1;var Z=g(x,.8,.95);return o(Z)}}()},46134:function(M,b,e){"use strict";e.d(b,{$G:function(){return H},$S:function(){return P},A7:function(){return w},AR:function(){return x},A_:function(){return we},Ak:function(){return ge},Ap:function(){return U},Aw:function(){return Q},E5:function(){return ve},I4:function(){return Ee},Iw:function(){return et},JP:function(){return ee},Nm:function(){return Ct},OX:function(){return I},Oh:function(){return X},Qo:function(){return We},RF:function(){return bt},U8:function(){return _e},Uy:function(){return B},Vh:function(){return Z},Vi:function(){return xe},X6:function(){return Re},XR:function(){return R},X_:function(){return Ve},YO:function(){return j},Z0:function(){return Pt},Z4:function(){return Se},ZU:function(){return fe},aF:function(){return Pe},cO:function(){return le},cU:function(){return L},cf:function(){return qe},cx:function(){return K},e4:function(){return tt},el:function(){return G},hv:function(){return rt},i$:function(){return N},jt:function(){return D},kh:function(){return $},kq:function(){return O},l1:function(){return W},lT:function(){return ze},my:function(){return st},nF:function(){return ut},o7:function(){return yt},s5:function(){return oe},t9:function(){return S},tQ:function(){return me},uN:function(){return he},yn:function(){return q}});var a=e(34485),t=e.n(a),o=e(63900),s=e.n(o),n=e(88479),c=e.n(n),l=e(88205),d=e.n(l),h=e(17410),p=e(14464),y=e(39378),g=e.n(y),S=function(Me,Ne,Te,Be){if(!Me||!Ne)return[0,0,1];if(!Te)return[Me/Ne*(Be||0),Be||0,1];if(!Be)return[Te||0,Ne/Me*(Te||0),1];var nt=Me,ot=Ne,wt=1;return Me/Ne>=Te/Be?(nt=Te,ot=Ne*Te/Me,wt=Te/Me):(ot=Be,nt=Me*Be/Ne,wt=Be/Ne),[nt||0,ot||0,wt]},j=function(Me,Ne,Te){var Be=d()(Me,2),nt=Be[0],ot=nt===void 0?0:nt,wt=Be[1],Et=wt===void 0?0:wt;return{x:ot/Ne.width*Te.width,y:Et/Ne.height*Te.height}},x=function(Me,Ne,Te){var Be=d()(Me,2),nt=Be[0],ot=nt===void 0?0:nt,wt=Be[1],Et=wt===void 0?0:wt;return{x:ot/Te.width*Ne.width,y:Et/Te.height*Ne.height}},Z=function(Me,Ne,Te){var Be=[];if(!Me)return Be;var nt=Me.split("/");return nt==null||nt.forEach(function(ot){for(var wt=[],Et=ot.split(",").map(Number),nn=0;nnTe.width?Te.width:Ne.x,y:Ne.y<0?0:Ne.y>Te.height?Te.height:Ne.y};return{x:Math.min(Me.x,Be.x),y:Math.min(Me.y,Be.y),width:Math.abs(Me.x-Be.x),height:Math.abs(Me.y-Be.y)}},T=function(Me){var Ne=1/0,Te=1/0,Be=-1/0,nt=-1/0,ot=c()(Me),wt;try{for(ot.s();!(wt=ot.n()).done;){var Et=wt.value;Ne=Math.min(Ne,Et.x),Te=Math.min(Te,Et.y),Be=Math.max(Be,Et.x),nt=Math.max(nt,Et.y)}}catch(nn){ot.e(nn)}finally{ot.f()}return{minX:Ne,minY:Te,maxX:Be,maxY:nt}},F=function(Me,Ne,Te){return{x:Ne*Me.x,y:Te*Me.y}},A=function(Me,Ne,Te){return{x:Me.x+Ne,y:Me.y+Te}},L=function(Me,Ne){var Te=T(Me),Be=Te.minX,nt=Te.minY,ot=Te.maxX,wt=Te.maxY,Et=Ne.width/(ot-Be),nn=Ne.height/(wt-nt),$t=Me.map(function(fn){var ln=A(fn,-Be,-nt),Wt=F(ln,Et,nn),$e=A(Wt,Ne.x,Ne.y);return s()(s()({},fn),$e)});return $t},O=function(Me,Ne){return{xmin:Me.x/Ne.width,ymin:Me.y/Ne.height,xmax:(Me.x+Me.width)/Ne.width,ymax:(Me.y+Me.height)/Ne.height}},$=function(Me){return{xmin:Me.x,ymin:Me.y,xmax:Me.x+Me.width,ymax:Me.y+Me.height}},P=function(Me,Ne,Te){return{x:Me.x*Te.width/Ne.width,y:Me.y*Te.height/Ne.height,width:Me.width*Te.width/Ne.width,height:Me.height*Te.height/Ne.height}},K=function(Me,Ne,Te){var Be=P(Me,Ne,Te);return[Be.x,Be.y,Be.x+Be.width,Be.y+Be.height]},U=function(Me,Ne,Te){return{x:Me.x*Te.width/Ne.width,y:Me.y*Te.height/Ne.height}},ee=function(Me,Ne,Te){return{x:(Me[0]||0)/Ne.width*Te.width,y:(Me[1]||0)/Ne.height*Te.height,width:((Me[2]||0)-(Me[0]||0))/Ne.width*Te.width,height:((Me[3]||0)-(Me[1]||0))/Ne.height*Te.height}},le=function(Me,Ne){return{x:(Me.xmin||0)*Ne.width,y:(Me.ymin||0)*Ne.height,width:((Me.xmax||0)-(Me.xmin||0))*Ne.width,height:((Me.ymax||0)-(Me.ymin||0))*Ne.height}},Q=function(Me){return{x:Me.xmin,y:Me.ymin,width:Me.xmax-Me.xmin,height:Me.ymax-Me.ymin}},G=function(Me,Ne,Te,Be,nt){for(var ot=[],wt=0;wt*6=0&&Me.elementX<=Me.elementW&&Me.elementY>=0&&Me.elementY<=Me.elementH},_=function(Me,Ne){return{x:Me.x-Ne.x,y:Me.y-Ne.y,width:Me.width+2*Ne.x,height:Me.height+2*Ne.y}},ue=function(Me,Ne){return s()(s()({},Me),{},{radius:Ne})};function be(Oe,Me,Ne){var Te={x:Me.x-Oe.x,y:Me.y-Oe.y},Be={x:Ne.x-Oe.x,y:Ne.y-Oe.y};return Te.x*Be.y-Te.y*Be.x}var ce=function(Me,Ne,Te){if(!Me||!Ne)return!1;switch(Te){case h.Yq.Rect:{var Be=Me;return Be.x<=Ne.x&&Be.x+Be.width>=Ne.x&&Be.y<=Ne.y&&Be.y+Be.height>=Ne.y}case h.Yq.Circle:{var nt=Me;return Math.sqrt(Math.pow(Ne.x-nt.x,2)+Math.pow(Ne.y-nt.y,2))<=nt.radius}case h.Yq.Polygon:{for(var ot=Me,wt=1;wt0&&Et*$t>0)return!0}return!1}default:return!1}},he=function(Me,Ne){var Te=arguments.length>2&&arguments[2]!==void 0?arguments[2]:5,Be=ue(Me,Te),nt={x:Ne.elementX,y:Ne.elementY};return ce(Be,nt,h.Yq.Circle)},Fe=function(Me,Ne){var Te=Ne.elementX,Be=Ne.elementY,nt=Math.sqrt(Math.pow(Te-Me.start.x,2)+Math.pow(Be-Me.start.y,2)),ot=Math.sqrt(Math.pow(Te-Me.end.x,2)+Math.pow(Be-Me.end.y,2)),wt=Math.sqrt(Math.pow(Me.end.x-Me.start.x,2)+Math.pow(Me.end.y-Me.start.y,2)),Et=.75;return nt+ot>=wt-Et&&nt+ot<=wt+Et},Je=function(Me){var Ne=T(Me),Te=Ne.maxX,Be=Ne.minX,nt=Ne.maxY,ot=Ne.minY;return{x:Be,y:ot,width:Te-Be,height:nt-ot}},et=function(Me){for(var Ne=[],Te=0;Te0)return!0}break}}return!1},yt=function(Me,Ne){var Te,Be=h.Yq.None,nt=-1,ot={index:-1,pointIndex:-1,lineIndex:-1};if(!D(Me)||Ne.hidden)return{focusEleType:Be,focusEleIndex:nt,focusPolygonInfo:ot};if((Te=Ne.keypoints)!==null&&Te!==void 0&&Te.points)for(var wt=Ne.keypoints.points,Et=0;Et-1)return ot.index=$e,ot.pointIndex=De,{focusEleType:h.Yq.Polygon,focusEleIndex:0,focusPolygonInfo:ot}}for(var jt=0;jt-1)return ot.index=jt,ot.lineIndex=Xe,{focusEleType:h.Yq.Polygon,focusEleIndex:0,focusPolygonInfo:ot}}var at=Wt.findIndex(function(Bt){return ce(Bt,{x:Me.elementX,y:Me.elementY},h.Yq.Polygon)});if(at>-1)return ot.index=at,{focusEleType:h.Yq.Polygon,focusEleIndex:0,focusPolygonInfo:ot}}return Ne.rect&&ce(_(Ne.rect,{x:8,y:8}),{x:Me.elementX,y:Me.elementY},h.Yq.Rect)?(Be=h.Yq.Rect,nt=0,{focusEleType:Be,focusEleIndex:nt,focusPolygonInfo:ot}):{focusEleType:Be,focusEleIndex:nt,focusPolygonInfo:ot}},Pt=function(Me,Ne,Te,Be){var nt=arguments.length>4&&arguments[4]!==void 0?arguments[4]:function(){return!0};if(!D(Ne))return-1;if(Be[Te]&&nt(Be[Te])&&ae(Ne,Be[Te],Me))return Te;for(var ot=Be.length-1;ot>=0;ot--)if(nt(Be[ot])&&ae(Ne,Be[ot],Me))return ot;return-1},bt=function(Me,Ne,Te){var Be=arguments.length>3&&arguments[3]!==void 0?arguments[3]:function(){return!0};if(!D(Ne))return[];for(var nt=[],ot=Te.length-1;ot>=0;ot--)Be(Te[ot])&&ae(Ne,Te[ot],Me)&&nt.push(ot);return nt},Ct=function(Oe){return Oe.TOP="TOP",Oe.BOTTOM="BOTTOM",Oe.LEFT="LEFT",Oe.RIGHT="RIGHT",Oe.TOP_RIGHT="TOP_RIGHT",Oe.TOP_LEFT="TOP_LEFT",Oe.BOTTOM_RIGHT="BOTTOM_RIGHT",Oe.BOTTOM_LEFT="BOTTOM_LEFT",Oe.CENTER="CENTER",Oe}({}),Le=function(Me){return Math.floor(Me)+.5},Ke=function(Me){return{x:Le(Me.x),y:Le(Me.y)}},st=function(Me){var Ne={x:Me.x,y:Me.y},Te={x:Me.x+Me.width,y:Me.y+Me.height},Be=Ke(Ne),nt=Ke(Te);return{x:Be.x,y:Be.y,width:nt.x-Be.x,height:nt.y-Be.y}},We=function(Me){return[{type:Ct.TOP_LEFT,position:{x:Me.x,y:Me.y}},{type:Ct.TOP,position:{x:Me.x+.5*Me.width,y:Me.y}},{type:Ct.TOP_RIGHT,position:{x:Me.x+Me.width,y:Me.y}},{type:Ct.LEFT,position:{x:Me.x,y:Me.y+.5*Me.height}},{type:Ct.RIGHT,position:{x:Me.x+Me.width,y:Me.y+.5*Me.height}},{type:Ct.BOTTOM_LEFT,position:{x:Me.x,y:Me.y+Me.height}},{type:Ct.BOTTOM,position:{x:Me.x+.5*Me.width,y:Me.y+Me.height}},{type:Ct.BOTTOM_RIGHT,position:{x:Me.x+Me.width,y:Me.y+Me.height}}]},ge=function(Me,Ne){return s()({x:Me.x-.5*Ne.width,y:Me.y-.5*Ne.height},Ne)},X=function(Me,Ne){for(var Te=We(Me),Be=0;BeTe.elementW?Te.elementW:Te.elementX,wt=Te.elementY<0?0:Te.elementY>Te.elementH?Te.elementH:Te.elementY,Et={x:ot,y:wt};switch(Be){case Ct.RIGHT:Et.y=Me.y+Me.height;break;case Ct.BOTTOM:Et.x=Me.x+Me.width;break;case Ct.LEFT:Et.y=Me.y;break;case Ct.TOP:Et.x=Me.x;break}return w(nt,Et,{width:Te.elementW,height:Te.elementH})},N=function(Me,Ne,Te){var Be=Me.width,nt=Me.height,ot=Ne.topLeftPoint,wt=Ne.mousePoint,Et=Te.elementX-wt.x,nn=Te.elementY-wt.y,$t=ot.x+Et,fn=ot.y+nn;return{x:$t<0?0:$t+Be>Te.elementW?Te.elementW-Be:$t,y:fn<0?0:fn+nt>Te.elementH?Te.elementH-nt:fn,width:Be,height:nt}},oe=function(Me,Ne,Te){var Be=Ne.mousePoint,nt=Te.elementX,ot=Te.elementY,wt=Te.elementW,Et=Te.elementH,nn=T(Me),$t=nn.minX,fn=nn.minY,ln=nn.maxX,Wt=nn.maxY,$e=nt-Be.x,De=ot-Be.y;$e=$e+ln>wt?wt-ln:$e+$t<0?0:$e,De=De+Wt>Et?Et-Wt:De+fn<0?0:De;var jt=Me.map(function(Ft){return{x:Ft.x+$e,y:Ft.y+De}});return jt},ve=function(Me){var Ne=Me.elementX,Te=Me.elementY;return{x:Ne<0?0:Ne>Me.elementW?Me.elementW:Ne,y:Te<0?0:Te>Me.elementH?Me.elementH:Te}},te=function(Me){return!(!(0,y.isNumber)(Me.x)||!(0,y.isNumber)(Me.y)||!(0,y.isNumber)(Me.width)||!(0,y.isNumber)(Me.height)||Me.x===0&&Me.y===0&&Me.width===0&&Me.height===0)},me=function(Me){return Me.maskRle?h.gr.Mask:Me.alpha?h.gr.Matting:Me.keypoints?h.gr.Skeleton:Me.polygon?h.gr.Polygon:Me.point?h.gr.Point:Me.rect&&te(Me.rect)?h.gr.Rectangle:h.gr.Custom},we=function(Me,Ne,Te){var Be=Me.group.map(function(nt){return nt.reduce(function(ot,wt){var Et=wt.x,nn=wt.y,$t=x([Et,nn],Ne,Te);return ot.concat([$t.x,$t.y])},[])});return Be},xe=function(Me,Ne,Te){var Be=we(Me,Ne,Te),nt=Be.map(function(ot){return ot.join(",")}).join("/")||"";return nt},Se=function(Me,Ne,Te){var Be={x:Me.x-Ne.x,y:Me.y-Ne.y},nt={x:Te.x-Ne.x,y:Te.y-Ne.y},ot=nt.x*nt.x+nt.y*nt.y,wt=Be.x*nt.x+Be.y*nt.y,Et=wt/ot;return Et<0||isNaN(Et)?Et=0:Et>1&&(Et=1),{x:Ne.x+nt.x*Et,y:Ne.y+nt.y*Et}},ke=function(Me,Ne){return{x:(Me.x+Ne.x)/2,y:(Me.y+Ne.y)/2}},ne=function(Me){var Ne=Me.x,Te=Me.y,Be=Me.width,nt=Me.height,ot={x:Ne,y:Te},wt={x:Ne+Be,y:Te},Et={x:Ne,y:Te+nt},nn={x:Ne+Be,y:Te+nt},$t={x:Ne+Be/2,y:Te},fn={x:Ne+Be/2,y:Te+nt},ln={x:Ne,y:Te+nt/2},Wt={x:Ne+Be,y:Te+nt/2},$e={x:Ne+Be/2,y:Te+nt/2};return[ot,wt,Et,nn,$t,fn,ln,Wt,$e]},re=function(Me,Ne){var Te=T(Me),Be=T(Ne);if(Be.minX>=Te.maxX||Be.maxX<=Te.minX||Be.minY>=Te.maxY||Be.maxY<=Te.minY)return!1;var nt=_createForOfIteratorHelper(Me),ot;try{for(nt.s();!(ot=nt.n()).done;){var wt=ot.value;if(!ce(Ne,wt,EElementType.Polygon))return!1}}catch(Et){nt.e(Et)}finally{nt.f()}return!0},se=function(Me){for(var Ne=[],Te=0;TeBe&&(fn=(0,y.isEqual)(nn,Et[Be])?ot:nn),s()(s()({},fn),{},{type:ot.type,labelId:ot.labelId,hidden:ot.hidden,color:ot.color,customStyles:ot.customStyles,attributes:ot.attributes,status:ot.status,frameEmpty:(nn==null?void 0:nn.frameEmpty)||!nn})})}),nt},Ve=function(Me,Ne,Te){var Be=Me.x,nt=Me.y,ot=Ne.width,wt=Ne.height,Et=Te.elementW,nn=Te.elementH;if(Be>Et||nt>nn||Be+ot<=0||nt+wt<=0)return{xmin:0,ymin:0,xmax:0,ymax:0};var $t={x:Math.max(0,Be),y:Math.max(0,nt)},fn={x:Math.min(Be+ot,Et),y:Math.min(nt+wt,nn)},ln={x:Me.x,y:Me.y},Wt=Pe($t,ln),$e=Wt.x,De=Wt.y,jt=Pe(fn,ln),Ft=jt.x,Xe=jt.y;return{xmin:$e,ymin:De,xmax:Ft,ymax:Xe}},tt=function(Me){for(var Ne=Me.getContext("2d",{willReadFrequently:!0}),Te=Ne.getImageData(0,0,Me.width,Me.height),Be=Te.data,nt=Te.width,ot=Te.height,wt=nt,Et=ot,nn=0,$t=0,fn=0,ln=0;ln0){var $e=ln/4%nt,De=Math.floor(ln/4/nt);fn++,wt=Math.min(wt,$e),Et=Math.min(Et,De),nn=Math.max(nn,$e),$t=Math.max($t,De)}}var jt={xmin:wt,ymin:Et,xmax:nn,ymax:$t};return{area:fn,bbox:jt}}},81179:function(M,b,e){"use strict";e.d(b,{AE:function(){return c},AT:function(){return S},CR:function(){return x},G5:function(){return F},HT:function(){return L},HU:function(){return Z},KJ:function(){return l},M5:function(){return n},MC:function(){return y},Mu:function(){return j},T8:function(){return O},UN:function(){return o},fb:function(){return w},ix:function(){return s},ku:function(){return d},pS:function(){return p},yU:function(){return T}});var a=e(14464);function t($){return $*Math.PI/180}function o($){var P=$.getContext("2d");P.clearRect(0,0,$.width,$.height)}function s($,P){var K=$.getContext("2d");window.devicePixelRatio&&($.style.width=P.width+"px",$.style.height=P.height+"px",$.height=P.height*window.devicePixelRatio,$.width=P.width*window.devicePixelRatio,K.scale(window.devicePixelRatio,window.devicePixelRatio))}function n($,P){var K=$.getContext("2d");K.globalAlpha=P}function c($,P,K){if(P&&$){var U=$.getContext("2d");try{U.drawImage(P,K.x,K.y,K.width,K.height)}catch(ee){console.error("Load image error:",ee)}}}function l($,P,K,U){if($){var ee=$.getContext("2d");ee.filter="brightness("+P+"%) contrast("+K+"%) saturate("+U+"%)"}}function d($){if($){var P=$.getContext("2d");P.filter="none"}}function h($,P,K){if(P&&$){var U=$.getContext("2d");U.putImageData(P,0,0,K.x,K.y,K.width,K.height)}}function p($,P,K){var U=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"#111111",ee=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1,le=arguments.length>5?arguments[5]:void 0,Q=$.getContext("2d");Q.save(),Q.strokeStyle=U,Q.lineWidth=ee,Q.lineCap="round",Q.beginPath(),le&&Q.setLineDash(le),Q.moveTo(P.x,P.y),Q.lineTo(K.x+1,K.y+1),Q.stroke(),Q.restore()}function y($,P){var K=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"#111111",U=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,ee=arguments.length>4?arguments[4]:void 0,le=$.getContext("2d");le.save(),le.strokeStyle=K,le.lineWidth=U,le.lineCap="round",le.lineJoin="round",ee&&le.setLineDash(ee),le.beginPath(),le.moveTo(P[0].x,P[0].y);for(var Q=1,G=P.length;Q2&&arguments[2]!==void 0?arguments[2]:"#111111",U=arguments.length>3&&arguments[3]!==void 0?arguments[3]:20,ee=arguments.length>4?arguments[4]:void 0,le=$.getContext("2d");le.save(),le.strokeStyle=K,le.lineWidth=U,le.lineCap="round",le.lineJoin="round",ee&&le.setLineDash(ee),le.beginPath();var Q=P[0],G=P[1];le.moveTo(Q.x,Q.y);for(var q=1,I=P.length;q2&&arguments[2]!==void 0?arguments[2]:"#fff",U=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,ee=arguments.length>4?arguments[4]:void 0,le=arguments.length>5?arguments[5]:void 0;if($){var Q=$.getContext("2d");Q.save(),Q.strokeStyle=K,Q.lineWidth=U,Q.beginPath(),ee&&Q.setLineDash(ee),Q.rect(P.x,P.y,P.width,P.height),Q.stroke(),le&&(Q.fillStyle=le,Q.fill()),Q.restore()}}function x($,P){var K=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"#fff";if($){var U=$.getContext("2d");U.save(),U.fillStyle=K,U.beginPath(),U.rect(P.x,P.y,P.width,P.height),U.fill(),U.restore()}}function Z($,P){var K=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"#000",U=arguments.length>3&&arguments[3]!==void 0?arguments[3]:.5,ee=$.getContext("2d");ee.save(),ee.fillStyle=K,ee.globalAlpha=U,ee.fillRect(0,0,$.width,$.height),ee.globalCompositeOperation="destination-out",ee.globalAlpha=1,ee.fillRect(P.x,P.y,P.width,P.height),ee.restore()}function B($){var P=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{x:0,y:0},K=arguments.length>2?arguments[2]:void 0,U=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"#fff",ee=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1;if($){var le=$.getContext("2d");le.save(),le.strokeStyle=U,le.lineWidth=ee,le.beginPath();var Q=P.x,G=P.y;le.moveTo(K[0].x+Q,K[0].y+G);for(var q=1;q2&&arguments[2]!==void 0?arguments[2]:"#fff",U=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"#fff",ee=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1,le=arguments.length>5?arguments[5]:void 0;if($){var Q=$.getContext("2d");Q.save(),Q.fillStyle=K,Q.strokeStyle=U,Q.lineWidth=ee,le&&Q.setLineDash(le),Q.beginPath(),Q.moveTo(P[0].x,P[0].y);for(var G=1;G0&&Q.stroke(),Q.fill(),Q.restore()}}function T($,P,K,U){var ee=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"#ffffff",le=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!1,Q=arguments.length>6&&arguments[6]!==void 0?arguments[6]:"center",G=$.getContext("2d");G.save(),G.fillStyle=ee,G.textAlign=Q,G.textBaseline="top",G.font=(le?"bold ":"")+K+"px Arial",G.fillText(P,U.x,U.y),G.restore()}function F($,P,K){var U=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"#ffffff",ee=arguments.length>4?arguments[4]:void 0,le=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"#000",Q=$.getContext("2d");Q.save();var G=t(0),q=t(360);Q.lineWidth=ee||0,Q.strokeStyle=le,Q.fillStyle=U,Q.beginPath(),Q.arc(P.x,P.y,K,G,q,!1),Q.stroke(),Q.fill(),Q.restore()}function A($,P,K,U,ee){var le=arguments.length>5&&arguments[5]!==void 0?arguments[5]:20,Q=arguments.length>6&&arguments[6]!==void 0?arguments[6]:"#ffffff",G=$.getContext("2d"),q=t(U),I=t(ee);G.save(),G.strokeStyle=Q,G.lineWidth=le,G.beginPath(),G.arc(P.x,P.y,K,q,I,!1),G.stroke(),G.restore()}function L($,P){var K=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,U=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"#fff",ee=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"#fff",le=arguments.length>5&&arguments[5]!==void 0?arguments[5]:1,Q=arguments.length>6?arguments[6]:void 0,G=$.getContext("2d");G.save(),G.fillStyle=U,G.strokeStyle=ee,G.lineWidth=le,G.lineCap="round",G.lineJoin="round",Q&&G.setLineDash(Q),G.beginPath(),G.moveTo(P[0].x,P[0].y);for(var q=1;q0&&G.stroke(),G.fill()),G.restore()}function O($,P){var K=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,U=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"#111111",ee=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1,le=arguments.length>5&&arguments[5]!==void 0?arguments[5]:20,Q=arguments.length>6?arguments[6]:void 0,G=$.getContext("2d");G.save(),G.strokeStyle=U,G.lineWidth=le,G.lineCap="round",G.lineJoin="round",G.beginPath(),Q&&G.setLineDash(Q);var q=P[0],I=P[1];G.moveTo(q.x,q.y);for(var H=1,Y=P.length;H0&&(G.globalCompositeOperation="destination-out",G.strokeStyle=U,G.stroke(),G.strokeStyle=(0,a.a7)(U,ee),G.globalCompositeOperation="source-over",G.stroke()):(G.globalCompositeOperation="destination-out",G.stroke()),G.restore()}},20138:function(M,b,e){"use strict";e.d(b,{Z:function(){return qe}});var a=e(58757),t=e(97375),o=e(9644),s=e(12562),n=e(39800),c=e(2556),l=e(88205),d=e.n(l),h=e(18695),p=e(35667),y=function(tt){var Oe=tt.images,Me=tt.selected,Ne=tt.onImageSelected,Te=(0,a.useState)(0),Be=d()(Te,2),nt=Be[0],ot=Be[1],wt=120,Et=(0,a.useCallback)(function(){var $t=document.getElementById("image-options-container");if($t){var fn=$t.offsetHeight||0;ot(fn-56)}},[]);(0,a.useEffect)(function(){return Et(),window.addEventListener("resize",Et),function(){window.removeEventListener("resize",Et)}},[Et]);var nn=function(fn){fn<0||fn>=Oe.length||Ne(fn)};return(0,p.jsx)("div",{id:"image-options-container",className:"dds-quicklabel-options-list",children:(0,p.jsx)(h.Z,{className:"dds-quicklabel-options-list-virtual",data:Oe,height:nt,fullHeight:!0,itemHeight:wt,itemKey:"id",children:function(fn,ln){var Wt=ln===Me?"dds-quicklabel-options-list-image-selected":"";return(0,p.jsx)("div",{children:(0,p.jsx)("img",{className:"dds-quicklabel-options-list-image ".concat(Wt),src:fn.url,onClick:function(){return nn(ln)}},fn.id)})}})})},g=e(62109),S=e(15618),j=e(24454),x=e.n(j),Z=e(34485),B=e.n(Z),w=e(88479),T=e.n(w),F=e(56592),A=e.n(F),L=e(84045),O=e(79233),$=e(23671),P=e(68716),K=e(8851),U=function(Ve,tt){tt===void 0&&(tt={});var Oe=(0,$.Z)(tt),Me=(0,a.useRef)();(0,K.Z)(function(){var Ne=(0,P.n)(Ve);if(Ne!=null&&Ne.addEventListener){var Te=function(nn,$t){var fn=nn.getData("text/uri-list"),ln=nn.getData("custom");if(ln&&Oe.current.onDom){var Wt=ln;try{Wt=JSON.parse(ln)}catch($e){Wt=ln}Oe.current.onDom(Wt,$t);return}if(fn&&Oe.current.onUri){Oe.current.onUri(fn,$t);return}if(nn.files&&nn.files.length&&Oe.current.onFiles){Oe.current.onFiles(Array.from(nn.files),$t);return}nn.items&&nn.items.length&&Oe.current.onText&&nn.items[0].getAsString(function($e){Oe.current.onText($e,$t)})},Be=function(nn){var $t,fn;nn.preventDefault(),nn.stopPropagation(),Me.current=nn.target,(fn=($t=Oe.current).onDragEnter)===null||fn===void 0||fn.call($t,nn)},nt=function(nn){var $t,fn;nn.preventDefault(),(fn=($t=Oe.current).onDragOver)===null||fn===void 0||fn.call($t,nn)},ot=function(nn){var $t,fn;nn.target===Me.current&&((fn=($t=Oe.current).onDragLeave)===null||fn===void 0||fn.call($t,nn))},wt=function(nn){var $t,fn;nn.preventDefault(),Te(nn.dataTransfer,nn),(fn=($t=Oe.current).onDrop)===null||fn===void 0||fn.call($t,nn)},Et=function(nn){var $t,fn;Te(nn.clipboardData,nn),(fn=($t=Oe.current).onPaste)===null||fn===void 0||fn.call($t,nn)};return Ne.addEventListener("dragenter",Be),Ne.addEventListener("dragover",nt),Ne.addEventListener("dragleave",ot),Ne.addEventListener("drop",wt),Ne.addEventListener("paste",Et),function(){Ne.removeEventListener("dragenter",Be),Ne.removeEventListener("dragover",nt),Ne.removeEventListener("dragleave",ot),Ne.removeEventListener("drop",wt),Ne.removeEventListener("paste",Et)}}},[],Ve)},ee=U,le=e(39378),Q=Object.defineProperty,G=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,I=Object.prototype.propertyIsEnumerable,H=(Ve,tt,Oe)=>tt in Ve?Q(Ve,tt,{enumerable:!0,configurable:!0,writable:!0,value:Oe}):Ve[tt]=Oe,Y=(Ve,tt)=>{for(var Oe in tt||(tt={}))q.call(tt,Oe)&&H(Ve,Oe,tt[Oe]);if(G)for(var Oe of G(tt))I.call(tt,Oe)&&H(Ve,Oe,tt[Oe]);return Ve};const D=Ve=>a.createElement("svg",Y({viewBox:"0 0 91 75",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ve),a.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"}),a.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 _="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgOTEgNzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYwLjYzMy4wMDdDNDkuNDUzLS4yMiAzNy45MjMgNi4yNTUgMzQuNzYgMjAuODY0Yy0xMi44NzQtNC40NDQtMjQuNDk3IDQuMzItMjMuMjkgMTguMzE1QzQuNzM1IDQxLjkzMiAwIDQ4LjU4NyAwIDU2LjQwOSAwIDY2LjcwOSA4LjE5OSA3NSAxOC4zODMgNzVoMjIuMzNjLS4wMDUtNi4yNi0uMDE4LTE4LjgxOC0uMDE4LTIxLjE5N2wtNS4yMzcgMS45MTljLTMuOCAxLjY1Ni02LjYwNS0zLjE4My0zLjM1Mi02LjE5NWw5LjkwOS05LjczOWMyLjI2My0yLjI4OCA0Ljk2Ni0yLjAyNiA2Ljk3IDBsOS45MDkgOS43MzljMy4yNTMgMy4wMTIuNDQ3IDcuODUtMy4zNTIgNi4xOTVsLTUuMjM3LTEuOTJWNzVoMjIuMzEyQzgyLjgwMSA3NSA5MSA2Ni43MDggOTEgNTYuNDFjMC03LjU4LTQuNDUtMTQuMDYtMTAuODU1LTE2Ljk2QzkyLjU1OCAxNC45NzcgNzYuOTcyLjMzNiA2MC42MzMuMDA2WiIgZmlsbD0iI0I5Q0VGRiIvPjxwYXRoIGQ9Ik02MC42MzMuMDA0Yy0uNjIzLS4wMTMtMS4zMDYuMDA5LTEuOTMuMDM3LTE0LjI3OCAyMi43NTcgNy43ODggMzkuNDAzIDIxLjQ0MiAzOS40MDNDOTIuNTU4IDE0Ljk3NCA3Ni45NzIuMzM0IDYwLjYzMy4wMDRaIiBmaWxsPSIjNzM5RUZGIi8+PC9zdmc+",ue=e(53357),be=e(45060),ce=e(23605),he=e(95073),Fe=e(87608),Je=e.n(Fe),et=function(tt){var Oe=tt.files,Me=tt.fileType,Ne=tt.onRemoveFile,Te=(0,a.useRef)(null),Be=(0,he.Z)(Te),nt=Be!=null&&Be.width&&Be.width>800?8:5,ot=(0,a.useMemo)(function(){return(0,le.chunk)(Oe,nt).map(function(jt,Ft){return{index:Ft,rowImages:jt}})},[Oe,nt]),wt=8,Et=18,nn=.75,$t=.95,fn=30,ln=(0,a.useMemo)(function(){return Be!=null&&Be.width?((Be==null?void 0:Be.width)-Et*2-(nt-1)*wt)/nt:0},[Be==null?void 0:Be.width,nt,wt]),Wt=(0,a.useMemo)(function(){return ln*$t},[ln,$t]),$e=(0,a.useMemo)(function(){return Wt*nn},[Wt,nn]),De=(0,a.useMemo)(function(){return $e+fn+16},[$e,fn]);return(0,p.jsx)("div",{ref:Te,className:"dds-upload-list",children:(0,p.jsx)(h.Z,{className:"virtual-list",data:ot,height:(Be==null?void 0:Be.height)||0,fullHeight:!0,itemHeight:De,itemKey:"index",children:function(Ft,Xe){return(0,p.jsx)("div",{className:"row-container",style:{gap:wt,padding:"".concat(wt,"px ").concat(Et,"px")},children:Ft.rowImages.map(function(at,Bt){return(0,p.jsxs)("div",{className:Je()("preview-container",{"preview-container-success":at.status==="success","preview-container-error":at.status==="error"}),style:{width:ln},children:[Me==="video"?(0,p.jsx)("video",{className:"file-preview",src:at.url,style:{width:Wt,height:$e}}):(0,p.jsx)("img",{className:"file-preview",src:at.url,style:{width:Wt,height:$e}}),(0,p.jsx)("div",{className:"remove-button",children:(0,p.jsx)(s.ZP,{icon:(0,p.jsx)(ce.Z,{}),shape:"circle",danger:!0,onClick:function(Qt){Qt.stopPropagation(),Ne(Xe*nt+Bt)}})}),(0,p.jsx)("div",{className:"file-name",children:at.name})]},at.name)})},Xe)}})})},ae=et,yt=function(tt){var Oe=tt.fileList,Me=tt.setFileList,Ne=tt.acceptTypes,Te=tt.maxCount,Be=tt.maxSize,nt=tt.maxDuratuion,ot=tt.limitRemoveFile,wt=tt.fileType,Et=(0,ue.bU)(),nn=Et.localeText,$t=(0,a.useState)(!1),fn=d()($t,2),ln=fn[0],Wt=fn[1],$e=(0,a.useState)(!1),De=d()($e,2),jt=De[0],Ft=De[1],Xe=(0,a.useRef)(!1),at=(0,a.useRef)(null),Bt=Ne?Ne.join(", "):void 0,Zt=function(){var on=A()(x()().mark(function Rn(zn){var lr,ur,zt,Kt,Vt;return x()().wrap(function(pn){for(;;)switch(pn.prev=pn.next){case 0:Wt(!0),lr=[],ur=T()(zn),pn.prev=3,Kt=x()().mark(function en(){var mt,pt,an,qt;return x()().wrap(function(mn){for(;;)switch(mn.prev=mn.next){case 0:if(mt=zt.value,pt=0,an=0,qt=0,!(Be&&mt.size&&mt.size/1024/1024>Be)){mn.next=4;break}return mn.abrupt("return","continue");case 4:if(!(Te&&lr.length+Oe.length>Te-1)){mn.next=6;break}return mn.abrupt("return","continue");case 6:if(!Oe.find(function(gn){return gn.name===mt.name})){mn.next=8;break}return mn.abrupt("return","continue");case 8:lr.push({id:mt.name,name:mt.name,url:URL.createObjectURL(mt),originFileObj:mt,frameCount:pt,frameRate:an,duration:qt});case 9:case"end":return mn.stop()}},en)}),ur.s();case 6:if((zt=ur.n()).done){pn.next=13;break}return pn.delegateYield(Kt(),"t0",8);case 8:if(Vt=pn.t0,Vt!=="continue"){pn.next=11;break}return pn.abrupt("continue",11);case 11:pn.next=6;break;case 13:pn.next=18;break;case 15:pn.prev=15,pn.t1=pn.catch(3),ur.e(pn.t1);case 18:return pn.prev=18,ur.f(),pn.finish(18);case 21:Wt(!1),lr.length>0&&(Me([].concat(lr,B()(Oe))),L.ZP.success(nn("dds-upload.tip.successLoad",{count:lr.length})));case 23:case"end":return pn.stop()}},Rn,null,[[3,15,18,21]])}));return function(zn){return on.apply(this,arguments)}}(),Qt=(0,a.useCallback)(function(on){if(!(ot&&ot(on))){var Rn=(0,le.cloneDeep)(Oe);Rn.splice(on,1),Me(Rn)}},[Oe]),rn=function(Rn){Xe.current=!1;var zn=Rn.target.files?B()(Rn.target.files):[];zn.length>0&&Zt(zn),Ft(!1),Rn.target.value=""},hn=(0,a.useCallback)(function(){var on;if(Te&&Oe.length>=Te){L.ZP.warning(nn("dds-upload.tip.fileCountLimitMsg",{count:Te}));return}Ft(!0),(on=at.current)===null||on===void 0||on.click(),Xe.current=!0,window.addEventListener("focus",function(){setTimeout(function(){Xe.current&&Ft(!1)},100)},{once:!0})},[Oe,Te]);return ee(window.document.body,{onFiles:function(){var on=A()(x()().mark(function zn(lr,ur){var zt;return x()().wrap(function(Vt){for(;;)switch(Vt.prev=Vt.next){case 0:if(!(Te&&Oe.length>=Te)){Vt.next=3;break}return L.ZP.warning(nn("dds-upload.tip.fileCountLimitMsg",{count:Te})),Vt.abrupt("return");case 3:return Vt.next=5,(0,be._q)(ur==null?void 0:ur.dataTransfer,Ne);case 5:zt=Vt.sent,Zt(zt);case 7:case"end":return Vt.stop()}},zn)}));function Rn(zn,lr){return on.apply(this,arguments)}return Rn}(),onDragEnter:function(){Ft(!0)},onDrop:function(){Ft(!1)},onDragLeave:function(){Ft(!1)}}),(0,p.jsxs)("div",{className:"dds-upload",children:[(0,p.jsx)("input",{ref:at,type:"file",accept:Bt,multiple:!0,onChange:rn}),Oe.length<=0?(0,p.jsxs)("div",{className:Je()("dds-upload-empty",{"dds-upload-draging":jt}),onClick:hn,children:[(0,p.jsx)(D,{}),(0,p.jsx)("p",{className:"dds-upload-title",children:nn("dds-upload.title")}),(0,p.jsx)("p",{className:"dds-upload-text",children:nn(wt==="video"?"dds-upload.limit.type.video":"dds-upload.limit.type.image")})]}):(0,p.jsxs)("div",{className:Je()("dds-upload-content",{"dds-upload-draging":jt}),children:[(0,p.jsxs)("div",{className:"dds-upload-topbar",children:[(0,p.jsxs)("div",{children:[(0,p.jsx)("div",{className:"dds-upload-title",children:nn("dds-upload.title")}),(0,p.jsx)("div",{className:"dds-upload-text",children:nn(wt==="video"?"dds-upload.limit.type.video":"dds-upload.limit.type.image")})]}),(0,p.jsx)(s.ZP,{type:"primary",onClick:hn,children:nn("dds-upload.upload")})]}),(0,p.jsxs)("div",{className:"dds-upload-content-list",children:[Te&&(0,p.jsxs)("div",{className:"dds-upload-content-list-count",children:[Oe.length," / ",Te]}),(0,p.jsx)(ae,{files:Oe,onRemoveFile:Qt,fileType:wt})]})]}),ln&&(0,p.jsx)(O.Z,{size:"large",className:"dds-upload-loading",spinning:ln,delay:500})]})},Pt=yt,bt=e(60698),Ct={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"},Le=Ct,Ke=e(17202),st=function(tt,Oe){return a.createElement(Ke.Z,(0,bt.Z)({},tt,{ref:Oe,icon:Le}))},We=a.forwardRef(st),ge=e(39875),X=e(23241),W=e(18624),R=Object.defineProperty,N=Object.getOwnPropertySymbols,oe=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable,te=(Ve,tt,Oe)=>tt in Ve?R(Ve,tt,{enumerable:!0,configurable:!0,writable:!0,value:Oe}):Ve[tt]=Oe,me=(Ve,tt)=>{for(var Oe in tt||(tt={}))oe.call(tt,Oe)&&te(Ve,Oe,tt[Oe]);if(N)for(var Oe of N(tt))ve.call(tt,Oe)&&te(Ve,Oe,tt[Oe]);return Ve};const we=Ve=>a.createElement("svg",me({viewBox:"0 0 56 56",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ve),a.createElement("g",{clipPath:"url(#upload_file_svg__a)"},a.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"})),a.createElement("defs",null,a.createElement("clipPath",{id:"upload_file_svg__a"},a.createElement("path",{fill:"#fff",d:"M0 0h56v56H0z"}))));var xe="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNTYgNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJtNDYuNTUgMTIuOTE3LTguMTMyLTguMTMxQTE2LjIyNyAxNi4yMjcgMCAwIDAgMjYuODY4LjAwMkgxNi4zMzNDOS45IDAgNC42NjcgNS4yMzQgNC42NjcgMTEuNjY3djMyLjY2NkM0LjY2NyA1MC43NjYgOS45IDU2IDE2LjMzMyA1NmgyMy4zMzRjNi40MzMgMCAxMS42NjYtNS4yMzQgMTEuNjY2LTExLjY2N1YyNC40NjVjMC00LjM2My0xLjY5OC04LjQ2LTQuNzgzLTExLjU0OFptLTMuMyAzLjNjLjc0My43NDIgMS4zNyAxLjU2NSAxLjg3OSAyLjQ1SDM1YTIuMzM3IDIuMzM3IDAgMCAxLTIuMzMzLTIuMzM0VjYuMjA0Yy44ODQuNTA5IDEuNzEgMS4xMzcgMi40NSAxLjg3OWw4LjEzMSA4LjEzMS4wMDMuMDAzWm0zLjQxNyAyOC4xMTZjMCAzLjg2LTMuMTQxIDctNyA3SDE2LjMzM2MtMy44NTkgMC03LTMuMTQtNy03VjExLjY2N2MwLTMuODYgMy4xNDEtNyA3LTdoMTAuNTM1Yy4zOCAwIC43NTkuMDE4IDEuMTMyLjA1M3YxMS42MTNjMCAzLjg2IDMuMTQgNyA3IDdoMTEuNjEzYy4wMzUuMzc0LjA1NC43NTIuMDU0IDEuMTMydjE5Ljg2OFpNMzYuNjUgMzMuNzlhMi4zMyAyLjMzIDAgMCAxIDAgMy4zIDIuMzI3IDIuMzI3IDAgMCAxLTEuNjUuNjgzIDIuMzI3IDIuMzI3IDAgMCAxLTEuNjUtLjY4NGwtMy4wMTctMy4wMTd2MTAuMjYyYTIuMzM0IDIuMzM0IDAgMCAxLTQuNjY2IDBWMzQuMDcxbC0zLjAxNyAzLjAxN2EyLjMzIDIuMzMgMCAwIDEtMy4zIDAgMi4zMyAyLjMzIDAgMCAxIDAtMy4yOTlsMy43NjYtMy43NjZjMi42OTMtMi42OTMgNy4wNzUtMi42OTMgOS43NyAwbDMuNzY2IDMuNzY2aC0uMDAyWiIgZmlsbD0iIzczOUVGRiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoNTZ2NTZIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=",Se=20,ke=function(tt){var Oe=tt.uploadFiles,Me=tt.onChangeFile,Ne=tt.onRemoveFile,Te=tt.children,Be=(0,ue.bU)(),nt=Be.localeText;return(0,p.jsx)(X.Z,{className:"dds-upload-pre-anno",maxCount:1,beforeUpload:function(){return!1},fileList:Oe,onChange:Me,onRemove:Ne,accept:".json",showUploadList:!0,children:Te||(0,p.jsx)(W.Z,{children:(0,p.jsx)(W.Z.Meta,{avatar:(0,p.jsx)(ge.Z,{component:we}),title:nt("dds-upload-pre-anno"),description:nt("dds-upload-pre-anno.tip",{maxSize:Se})})})})},ne=ke,re=1e3,se=10,Ee=function(tt){var Oe=tt.open,Me=tt.isInit,Ne=tt.fileList,Te=tt.setFileList,Be=tt.onClickOk,nt=tt.onClickCancel,ot=tt.limitRemoveFile,wt=tt.okText,Et=tt.limitClose,nn=tt.uploadPreAnnot,$t=tt.onChangePreAnnotFile,fn=tt.onRemovePreAnnotFile;return(0,p.jsx)("div",{onMouseDown:function(Wt){return Wt.stopPropagation()},onMouseUp:function(Wt){return Wt.stopPropagation()},children:(0,p.jsxs)(g.Z,{title:(0,ue._w)("quicklabel.title"),width:675,open:Oe,onOk:Be,onCancel:nt,okText:wt,okButtonProps:{disabled:Ne.length===0},cancelButtonProps:{hidden:Et},closable:!Et,destroyOnClose:!0,children:[(0,p.jsx)(S.Z,{message:(0,ue._w)("quicklabel.formModal.attn"),description:(0,ue._w)("quicklabel.formModal.tip"),type:"info",showIcon:!0}),(0,p.jsx)("div",{className:"dds-quicklabel-subtitle",children:(0,ue._w)("quicklabel.formModal.importImages")}),(0,p.jsx)("div",{className:"dds-quicklabel-upload",children:(0,p.jsx)(Pt,{fileList:Ne,setFileList:Te,fileType:"image",acceptTypes:["image/png","image/jpeg","image/jpg"],limitRemoveFile:ot,maxCount:re,maxSize:se})}),(0,p.jsx)(S.Z,{className:"dds-quicklabel-upload-tip",message:(0,ue._w)("quicklabel.formModal.imageTips",{count:re,size:se}),type:"info",showIcon:!0}),Me&&(0,p.jsx)(ne,{uploadFiles:nn,onChangeFile:$t,onRemoveFile:fn,children:(0,p.jsx)(s.ZP,{icon:(0,p.jsx)(We,{}),className:"dds-quicklabel-upload-preannot-btn",children:(0,ue._w)("quicklabel.formModal.importPreAnnots")})})]})})},Re=Ee,fe={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"},_e=fe,Pe=function(tt,Oe){return a.createElement(Ke.Z,(0,bt.Z)({},tt,{ref:Oe,icon:_e}))},ze=a.forwardRef(Pe),Qe=e(59504),gt=function(tt){var Oe=tt.categories,Me=tt.filterCategoryName,Ne=tt.onSelectFilter,Te=tt.onClearFilter;return(0,p.jsxs)("div",{className:"dds-quicklabel-image-filter",children:[(0,p.jsx)("div",{children:(0,ue._w)("quicklabel.imageFilter")}),(0,p.jsx)(Qe.Z,{style:{width:150},showSearch:!0,placeholder:(0,ue._w)("quicklabel.allCategories"),size:"middle",value:Me,onChange:Ne,popupClassName:"filter-options-popup",onClick:function(nt){return nt.stopPropagation()},onKeyUp:function(nt){return nt.stopPropagation()},onInputKeyDown:function(nt){nt.code!=="Enter"&&nt.stopPropagation()},dropdownRender:function(nt){return(0,p.jsxs)(p.Fragment,{children:[nt,(0,p.jsx)(s.ZP,{type:"text",icon:(0,p.jsx)(ze,{}),onClick:Te,children:(0,ue._w)("quicklabel.clearFilter")})]})},children:Oe==null?void 0:Oe.map(function(Be){return(0,p.jsx)(Qe.Z.Option,{value:Be.name,children:Be.name},Be.name)})})]})},ut=gt,rt=function(tt){var Oe=tt.images,Me=tt.filterImages,Ne=tt.current,Te=tt.categories,Be=tt.qsModalVisible,nt=tt.uploadFiles,ot=tt.uploadPreAnnot,wt=tt.filterCategoryName,Et=tt.setImages,nn=tt.setCurrent,$t=tt.setCategories,fn=tt.setQsModalVisible,ln=tt.setUploadFiles,Wt=tt.limitRemoveFile,$e=tt.onCancelUploadFiles,De=tt.onConfirmUploadFiles,jt=tt.exportAnnotations,Ft=tt.onChangePreAnnotFile,Xe=tt.onRemovePreAnnotFile,at=tt.onSelectFilterCategory,Bt=tt.onClearFilterCategory;(0,a.useEffect)(function(){Oe.length<=0&&fn(!0)},[]),(0,c.Z)("uparrow",function(){nn(Math.max(0,Ne-1))},{exactMatch:!0}),(0,c.Z)("downarrow",function(){nn(Math.min(Ne+1,Oe.length-1))},{exactMatch:!0});var Zt=function(rn,hn){if(Me[Ne]){var on=Me[Ne].originalIndex;Et(function(Rn){Rn[on]&&(Rn[on].objects=rn,Rn[on].width=hn.width,Rn[on].height=hn.height)})}};return(0,p.jsxs)("div",{className:"dds-quicklabel",children:[(0,p.jsxs)("div",{className:"dds-quicklabel-list",onMouseDown:function(rn){rn.stopPropagation()},onMouseUp:function(rn){rn.stopPropagation()},children:[(0,p.jsx)(s.ZP,{type:"primary",icon:(0,p.jsx)(n.Z,{}),onClick:function(){fn(!0)},children:(0,ue._w)("quicklabel.setting")}),(0,p.jsx)(y,{images:Me,selected:Ne,onImageSelected:function(rn){nn(rn)}})]}),(0,p.jsx)("div",{className:"dds-quicklabel-workspace",children:(0,p.jsx)(o.kl,{isOldMode:!0,isSeperate:!0,visible:!0,mode:o.je.Edit,categories:Te,setCategories:$t,list:Me,current:Ne,titleElements:[(0,p.jsx)(ut,{categories:Te,filterCategoryName:wt,onSelectFilter:at,onClearFilter:Bt},"image-filters")],actionElements:[(0,p.jsx)(s.ZP,{type:"primary",onClick:jt,children:(0,ue._w)("quicklabel.export")},"export")],onAutoSave:Zt,onCancel:function(){return t.history.push("/")}})}),(0,p.jsx)(Re,{open:Be,isInit:Oe.length===0,fileList:nt,setFileList:ln,limitRemoveFile:Wt,okText:(0,ue._w)("quicklabel.formModal.confirm"),onClickCancel:$e,onClickOk:De,limitClose:Oe.length<=0,uploadPreAnnot:ot,onChangePreAnnotFile:Ft,onRemovePreAnnotFile:Xe})]})},qe=rt},2258:function(M,b,e){"use strict";e.d(b,{ii:function(){return ae},ZJ:function(){return st},mn:function(){return n},fL:function(){return g},Qs:function(){return Pt},xA:function(){return Z}});var a=e(79233),t=e(58757),o=e(35667),s=function(W){var R=W.children,N=W.active,oe=W.tip;return(0,o.jsx)(a.Z,{size:"large",spinning:N,delay:500,style:{maxHeight:"none",opacity:.3},tip:oe,children:R})},n=s,c=e(88205),l=e.n(c),d=e(74820),h=e(12562),p=function(X){return X.en="en-US",X.zh="zh-CN",X}({}),y=function(W){var R=W.getLocale,N=W.setLocale,oe=W.tooltipPlacement,ve=oe===void 0?"right":oe,te=W.theme,me=te===void 0?"light":te,we=W.className,xe=R(),Se=function(){var Re=xe===p.zh?p.en:p.zh;N(Re)},ke=(0,t.useMemo)(function(){return xe===p.zh?["change-lang change-lang-".concat(me),"cur-lang cur-lang-".concat(me)]:["cur-lang cur-lang-".concat(me),"change-lang change-lang-".concat(me)]},[me,xe]),ne=l()(ke,2),re=ne[0],se=ne[1];return(0,o.jsx)(d.Z,{placement:ve,title:xe===p.zh?"\u4E2D\u6587 / English":"English / \u4E2D\u6587",children:(0,o.jsx)(h.ZP,{type:"text",className:"dds-lang-selector ".concat(we),onClick:Se,children:(0,o.jsxs)("div",{children:[(0,o.jsx)("span",{className:se,children:"\u4E2D"}),(0,o.jsx)("span",{className:re,children:"En"})]})})})},g=y,S=e(62109),j=e(12632),x=function(W){var R=W.error,N=W.componentStack,oe=W.resetError,ve=function(){S.Z.error({title:R.toString(),content:(0,o.jsx)("div",{style:{height:"60vh",overflowY:"scroll"},children:(0,o.jsx)("p",{children:N})}),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)(j.ZP,{status:"500",title:"Running Error",subTitle:"Sorry, something went wrong.",extra:[(0,o.jsx)(h.ZP,{type:"primary",onClick:oe,children:"Click here to reset"},"bt1"),(0,o.jsx)(h.ZP,{onClick:ve,children:"Error Detail"},"bt2")]})})},Z=x,B=e(73267),w=e(94706),T=Object.defineProperty,F=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable,O=(X,W,R)=>W in X?T(X,W,{enumerable:!0,configurable:!0,writable:!0,value:R}):X[W]=R,$=(X,W)=>{for(var R in W||(W={}))A.call(W,R)&&O(X,R,W[R]);if(F)for(var R of F(W))L.call(W,R)&&O(X,R,W[R]);return X};const P=X=>t.createElement("svg",$({width:24,height:24,fill:"none",xmlns:"http://www.w3.org/2000/svg"},X),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 K="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNiA0LjRjMC0uMjIuMTgtLjQuNC0uNGgxLjJjLjIyIDAgLjQuMTguNC40VjZoMy42Yy4yMiAwIC40LjE4LjQuNHYxLjJhLjQuNCAwIDAgMS0uNC40SDE4djEuNmEuNC40IDAgMCAxLS40LjRoLTEuMmEuNC40IDAgMCAxLS40LS40VjQuNFpNMi40IDZhLjQuNCAwIDAgMC0uNC40djEuMmMwIC4yMi4xOC40LjQuNGgxMS4yYS40LjQgMCAwIDAgLjQtLjRWNi40YS40LjQgMCAwIDAtLjQtLjRIMi40Wm04IDEwYS40LjQgMCAwIDAtLjQuNHYxLjJjMCAuMjIuMTguNC40LjRoMTEuMmEuNC40IDAgMCAwIC40LS40di0xLjJhLjQuNCAwIDAgMC0uNC0uNEgxMC40Wm0tOCAwYS40LjQgMCAwIDAtLjQuNHYxLjJjMCAuMjIuMTguNC40LjRINnYxLjZjMCAuMjIuMTguNC40LjRoMS4yYS40LjQgMCAwIDAgLjQtLjR2LTUuMmEuNC40IDAgMCAwLS40LS40SDYuNGEuNC40IDAgMCAwLS40LjRWMTZIMi40WiIgZmlsbD0iIzQzNDM0MyIvPjwvc3ZnPg==",U=Object.defineProperty,ee=Object.getOwnPropertySymbols,le=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable,G=(X,W,R)=>W in X?U(X,W,{enumerable:!0,configurable:!0,writable:!0,value:R}):X[W]=R,q=(X,W)=>{for(var R in W||(W={}))le.call(W,R)&&G(X,R,W[R]);if(ee)for(var R of ee(W))Q.call(W,R)&&G(X,R,W[R]);return X};const I=X=>t.createElement("svg",q({width:16,height:16,fill:"none",xmlns:"http://www.w3.org/2000/svg"},X),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 H="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTguNTM2IDEuNTcySDcuNDY0Yy0uMDk1IDAtLjE0My4wNDgtLjE0My4xNDN2NS42MDdoLTUuMzJjLS4wOTYgMC0uMTQ0LjA0OC0uMTQ0LjE0M3YxLjA3MmMwIC4wOTUuMDQ4LjE0Mi4xNDMuMTQyaDUuMzIxdjUuNjA4YzAgLjA5NS4wNDguMTQyLjE0My4xNDJoMS4wNzJjLjA5NSAwIC4xNDItLjA0Ny4xNDItLjE0MlY4LjY3OUgxNGMuMDk1IDAgLjE0My0uMDQ3LjE0My0uMTQyVjcuNDY1YzAtLjA5NS0uMDQ4LS4xNDMtLjE0My0uMTQzSDguNjc4VjEuNzE1YzAtLjA5NS0uMDQ3LS4xNDMtLjE0Mi0uMTQzWiIgZmlsbD0iIzU5NTk1OSIvPjwvc3ZnPg==",Y=Object.defineProperty,D=Object.getOwnPropertySymbols,_=Object.prototype.hasOwnProperty,ue=Object.prototype.propertyIsEnumerable,be=(X,W,R)=>W in X?Y(X,W,{enumerable:!0,configurable:!0,writable:!0,value:R}):X[W]=R,ce=(X,W)=>{for(var R in W||(W={}))_.call(W,R)&&be(X,R,W[R]);if(D)for(var R of D(W))ue.call(W,R)&&be(X,R,W[R]);return X};const he=X=>t.createElement("svg",ce({width:16,height:16,fill:"none",xmlns:"http://www.w3.org/2000/svg"},X),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 Fe="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0LjQyOSA3LjMyMkgxLjU3MmEuMTQzLjE0MyAwIDAgMC0uMTQzLjE0M3YxLjA3MmMwIC4wNzguMDY0LjE0Mi4xNDMuMTQyaDEyLjg1N2EuMTQzLjE0MyAwIDAgMCAuMTQzLS4xNDJWNy40NjVhLjE0My4xNDMgMCAwIDAtLjE0My0uMTQzWiIgZmlsbD0iIzU5NTk1OSIvPjwvc3ZnPg==",Je=e(53357),et=function(W){var R=(0,Je.bU)(),N=R.localeText,oe=W.cloumnCount,ve=W.maxCloumnCount,te=ve===void 0?8:ve,me=W.onColumnCountChange,we=W.getPopupContainer;return(0,o.jsx)(B.Z,{getPopupContainer:we,dropdownRender:function(){return(0,o.jsxs)("div",{className:"dds-column-settings-panel",children:[(0,o.jsx)("div",{className:"item-title",children:N("ColumnSettings.title")}),(0,o.jsxs)("div",{className:"item-content",children:[(0,o.jsx)(w.Z,{min:1,max:te,onChange:function(ke){return me(ke)},value:oe,className:"slider"}),(0,o.jsxs)("div",{className:"num-box",children:[(0,o.jsx)(he,{onClick:function(){return me(!1)}}),(0,o.jsx)("div",{className:"num",children:oe}),(0,o.jsx)(I,{onClick:function(){return me(!0)}})]})]})]})},children:(0,o.jsx)("div",{className:"dds-column-settings-btn",children:(0,o.jsx)(P,{})})})},ae=et,yt=function(){return(0,o.jsx)("div",{style:{height:"100vh",width:"100%",backgroundColor:"#fff",display:"flex",justifyContent:"center",alignItems:"center"},children:(0,o.jsx)(j.ZP,{status:"404",title:(0,Je._w)("MobileAlert.title"),subTitle:(0,Je._w)("MobileAlert.subTitle")})})},Pt=yt,bt=e(35910),Ct=e(32423),Le=e(39378),Ke=function(W){var R=W.current,N=W.size,oe=W.total,ve=W.onPageChange,te=W.onPageSizeChange,me=(0,t.useState)(N),we=l()(me,2),xe=we[0],Se=we[1],ke=(0,Je.bU)(),ne=ke.localeText;return(0,o.jsxs)("div",{className:"dds-dynamic-pagination",children:[(0,o.jsx)(bt.Z,{current:R,pageSize:N,total:oe,showSizeChanger:!1,showQuickJumper:!0,onChange:function(se){return ve(se)}}),(0,o.jsxs)("div",{className:"pagesize-wrap",children:[(0,o.jsx)("div",{className:"pagesize-label",children:ne("DynamicPagination.label")}),(0,o.jsx)(Ct.Z,{min:1,value:xe,onChange:function(se){Se(Number(se))},onBlur:function(se){(0,Le.isNaN)(Number(se.target.value))||Number(se.target.value)<=0?te(R,1):te(R,Number(se.target.value))},onPressEnter:function(se){se.target.blur(se)}})]})]})},st=Ke,We=e(20138),ge=e(9644)},9457:function(M,b,e){"use strict";e.d(b,{_:function(){return x},w:function(){return Z}});var a=e(63900),t=e.n(a),o=e(88205),s=e.n(o),n=e(58757),c=e(86429),l=e(51129),d=e(74324),h=e(66682);const p=h,y={parseNumbers:!1,parseBooleans:!1},g={skipNull:!1,skipEmptyString:!1};var j=(B,w)=>{var T,F;const{navigateMode:A="push",parseOptions:L,stringifyOptions:O}=w||{},$=Object.assign(Object.assign({},y),L),P=Object.assign(Object.assign({},g),O),K=p.useLocation(),U=(T=p.useHistory)===null||T===void 0?void 0:T.call(p),ee=(F=p.useNavigate)===null||F===void 0?void 0:F.call(p),le=(0,c.Z)(),Q=(0,n.useRef)(typeof B=="function"?B():B||{}),G=(0,n.useMemo)(()=>(0,d.parse)(K.search,$),[K.search]),q=(0,n.useMemo)(()=>Object.assign(Object.assign({},Q.current),G),[G]),I=H=>{const Y=typeof H=="function"?H(q):H;le(),U&&U[A]({hash:K.hash,search:(0,d.stringify)(Object.assign(Object.assign({},G),Y),P)||"?"},K.state),ee&&ee({hash:K.hash,search:(0,d.stringify)(Object.assign(Object.assign({},G),Y),P)||"?"},{replace:A==="replace",state:K.state})};return[q,(0,l.Z)(I)]};function x(B){var w=B.pageState,T=B.onInitPageState,F=B.onPageDidMount,A=B.onPageWillUnmount,L=j({},{navigateMode:"replace"}),O=s()(L,2),$=O[0],P=O[1];(0,n.useEffect)(function(){if(T){var K={};try{K=$.pageState?JSON.parse($.pageState):{}}catch(U){console.error("get urlPageState error: ",U)}T(K,$)}return F&&F($),function(){A&&A()}},[]),(0,n.useEffect)(function(){P(t()(t()({},$),{},{pageState:JSON.stringify(w)}))},[w])}function Z(){var B=(0,n.useState)(window.innerWidth),w=s()(B,2),T=w[0],F=w[1],A=(0,n.useState)(window.innerHeight),L=s()(A,2),O=L[0],$=L[1],P=function(){F(window.innerWidth),$(window.innerHeight)};return(0,n.useEffect)(function(){return window.addEventListener("resize",P),function(){window.removeEventListener("resize",P)}},[]),{width:T,height:O}}},41260:function(M,b,e){"use strict";e.d(b,{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(M,b,e){"use strict";e.d(b,{Gf:function(){return h},XV:function(){return d},_q:function(){return S},pz:function(){return x}});var a=e(88479),t=e.n(a),o=e(24454),s=e.n(o),n=e(56592),c=e.n(n),l=e(41260);function d(B,w,T){var F=new Date(B),A=F.getFullYear(),L=(0,l.p)(F.getMonth()+1),O=(0,l.p)(F.getDate()),$=(0,l.p)(F.getHours()),P=(0,l.p)(F.getMinutes()),K=(0,l.p)(F.getSeconds()),U=(0,l.p)(F.getMilliseconds(),3),ee="".concat(A,"_").concat(L,"_").concat(O,"_").concat($,"_").concat(P,"_").concat(K,"_").concat(U);return w&&(ee="".concat(w,"_").concat(ee)),T&&(ee="".concat(ee,".").concat(T)),ee}function h(B,w){var T=JSON.stringify(B),F=new Blob([T],{type:"application/json"}),A=URL.createObjectURL(F),L=document.createElement("a");L.href=A,L.download=w,document.body.appendChild(L),L.click(),document.body.removeChild(L),URL.revokeObjectURL(A)}var p=function(w){return new Promise(function(T,F){var A=new Image;A.src=w,A.onload=function(){T(A)},A.onerror=function(){F(A)}})};function y(B,w,T){return g.apply(this,arguments)}function g(){return g=c()(s()().mark(function B(w,T,F){return s()().wrap(function(L){for(;;)switch(L.prev=L.next){case 0:return L.abrupt("return",new Promise(function(O,$){if(w.isDirectory){var P=w.createReader();P.readEntries(function(){var K=c()(s()().mark(function U(ee){var le;return s()().wrap(function(G){for(;;)switch(G.prev=G.next){case 0:le=0;case 1:if(!(le0)){le.next=25;break}$=t()(w.items),le.prev=7,$.s();case 9:if((P=$.n()).done){le.next=17;break}if(K=P.value,U=K.webkitGetAsEntry(),!(U!=null&&U.isDirectory)){le.next=15;break}return le.next=15,y(U,F,T);case 15:le.next=9;break;case 17:le.next=22;break;case 19:le.prev=19,le.t0=le.catch(7),$.e(le.t0);case 22:return le.prev=22,$.f(),le.finish(22);case 25:return le.abrupt("return",F);case 26:case"end":return le.stop()}},B,null,[[7,19,22,25]])})),j.apply(this,arguments)}function x(B){return Z.apply(this,arguments)}function Z(){return Z=c()(s()().mark(function B(w){return s()().wrap(function(F){for(;;)switch(F.prev=F.next){case 0:return F.abrupt("return",new Promise(function(A,L){var O=new Image;O.src=w,O.onload=function(){var $=O.width,P=O.height;A({width:$,height:P})},O.onerror=function(){L(new Error("Load Image Error"))}}));case 1:case"end":return F.stop()}},B)})),Z.apply(this,arguments)}},53357:function(M,b,e){"use strict";e.d(b,{Og:function(){return o},_w:function(){return t},bU:function(){return s}});var a=e(97375),t=function(c){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return(0,a.formatMessage)({id:c},l)},o=a.FormattedMessage,s=function(){var c=(0,a.useIntl)(),l=function(h){var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return c.formatMessage({id:h},p)};return{localeText:l}}},23707:function(M,b,e){"use strict";e.d(b,{BQ:function(){return t},Oe:function(){return o},yS:function(){return s}});var a=e(97375),t=function(c){var l=new RegExp("(^|&)"+c+"=([^&]*)(&|$)","i"),d=window.location.search.substr(1).match(l);return d!==null?decodeURIComponent(d[2]):null},o=function(){var c=window.location.pathname.split("/");return c[c.length-1]},s=function(c){document.referrer.includes(c)?window.history.back():a.history.push(c)}},74324:function(M,b,e){"use strict";var a=e(88205).default,t=e(88479).default,o=e(16962).default,s=e(34485).default,n=e(75978),c=e(65140),l=e(96896),d=e(22475),h=function(L){return L==null};function p(A){switch(A.arrayFormat){case"index":return function(L){return function(O,$){var P=O.length;return $===void 0||A.skipNull&&$===null||A.skipEmptyString&&$===""?O:$===null?[].concat(s(O),[[S(L,A),"[",P,"]"].join("")]):[].concat(s(O),[[S(L,A),"[",S(P,A),"]=",S($,A)].join("")])}};case"bracket":return function(L){return function(O,$){return $===void 0||A.skipNull&&$===null||A.skipEmptyString&&$===""?O:$===null?[].concat(s(O),[[S(L,A),"[]"].join("")]):[].concat(s(O),[[S(L,A),"[]=",S($,A)].join("")])}};case"comma":case"separator":return function(L){return function(O,$){return $==null||$.length===0?O:O.length===0?[[S(L,A),"=",S($,A)].join("")]:[[O,S($,A)].join(A.arrayFormatSeparator)]}};default:return function(L){return function(O,$){return $===void 0||A.skipNull&&$===null||A.skipEmptyString&&$===""?O:$===null?[].concat(s(O),[S(L,A)]):[].concat(s(O),[[S(L,A),"=",S($,A)].join("")])}}}}function y(A){var L;switch(A.arrayFormat){case"index":return function(O,$,P){if(L=/\[(\d*)\]$/.exec(O),O=O.replace(/\[\d*\]$/,""),!L){P[O]=$;return}P[O]===void 0&&(P[O]={}),P[O][L[1]]=$};case"bracket":return function(O,$,P){if(L=/(\[\])$/.exec(O),O=O.replace(/\[\]$/,""),!L){P[O]=$;return}if(P[O]===void 0){P[O]=[$];return}P[O]=[].concat(P[O],$)};case"comma":case"separator":return function(O,$,P){var K=typeof $=="string"&&$.includes(A.arrayFormatSeparator),U=typeof $=="string"&&!K&&j($,A).includes(A.arrayFormatSeparator);$=U?j($,A):$;var ee=K||U?$.split(A.arrayFormatSeparator).map(function(le){return j(le,A)}):$===null?$:j($,A);P[O]=ee};default:return function(O,$,P){if(P[O]===void 0){P[O]=$;return}P[O]=[].concat(P[O],$)}}}function g(A){if(typeof A!="string"||A.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function S(A,L){return L.encode?L.strict?n(A):encodeURIComponent(A):A}function j(A,L){return L.decode?c(A):A}function x(A){return Array.isArray(A)?A.sort():o(A)==="object"?x(Object.keys(A)).sort(function(L,O){return Number(L)-Number(O)}).map(function(L){return A[L]}):A}function Z(A){var L=A.indexOf("#");return L!==-1&&(A=A.slice(0,L)),A}function B(A){var L="",O=A.indexOf("#");return O!==-1&&(L=A.slice(O)),L}function w(A){A=Z(A);var L=A.indexOf("?");return L===-1?"":A.slice(L+1)}function T(A,L){return L.parseNumbers&&!Number.isNaN(Number(A))&&typeof A=="string"&&A.trim()!==""?A=Number(A):L.parseBooleans&&A!==null&&(A.toLowerCase()==="true"||A.toLowerCase()==="false")&&(A=A.toLowerCase()==="true"),A}function F(A,L){L=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},L),g(L.arrayFormatSeparator);var O=y(L),$=Object.create(null);if(typeof A!="string"||(A=A.trim().replace(/^[?#&]/,""),!A))return $;var P=t(A.split("&")),K;try{for(P.s();!(K=P.n()).done;){var U=K.value;if(U!==""){var ee=l(L.decode?U.replace(/\+/g," "):U,"="),le=a(ee,2),Q=le[0],G=le[1];G=G===void 0?null:["comma","separator"].includes(L.arrayFormat)?G:j(G,L),O(j(Q,L),G,$)}}}catch(be){P.e(be)}finally{P.f()}for(var q=0,I=Object.keys($);q0}).join("&")},b.parseUrl=function(A,L){L=Object.assign({decode:!0},L);var O=l(A,"#"),$=a(O,2),P=$[0],K=$[1];return Object.assign({url:P.split("?")[0]||"",query:F(w(A),L)},L&&L.parseFragmentIdentifier&&K?{fragmentIdentifier:j(K,L)}:{})},b.stringifyUrl=function(A,L){L=Object.assign({encode:!0,strict:!0},L);var O=Z(A.url).split("?")[0]||"",$=b.extract(A.url),P=b.parse($,{sort:!1}),K=Object.assign(P,A.query),U=b.stringify(K,L);U&&(U="?".concat(U));var ee=B(A.url);return A.fragmentIdentifier&&(ee="#".concat(S(A.fragmentIdentifier,L))),"".concat(O).concat(U).concat(ee)},b.pick=function(A,L,O){O=Object.assign({parseFragmentIdentifier:!0},O);var $=b.parseUrl(A,O),P=$.url,K=$.query,U=$.fragmentIdentifier;return b.stringifyUrl({url:P,query:d(K,L),fragmentIdentifier:U},O)},b.exclude=function(A,L,O){var $=Array.isArray(L)?function(P){return!L.includes(P)}:function(P,K){return!L(P,K)};return b.pick(A,$,O)}},96896:function(M){"use strict";M.exports=function(b,e){if(!(typeof b=="string"&&typeof e=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(e==="")return[b];var a=b.indexOf(e);return a===-1?[b]:[b.slice(0,a),b.slice(a+e.length)]}},75978:function(M){"use strict";M.exports=function(b){return encodeURIComponent(b).replace(/[!'()*]/g,function(e){return"%".concat(e.charCodeAt(0).toString(16).toUpperCase())})}},60581:function(M,b,e){"use strict";e.d(b,{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 h=useLocation(),p=s(),y=p.clientRoutes,g=matchRoutes(y,h.pathname);return g||[]}function c(){var h,p=n().slice(-1),y=((h=p[0])===null||h===void 0?void 0:h.route)||{},g=y.element,S=_objectWithoutProperties(y,t);return S}function l(){var h=useRouteData(),p=s();return{data:p.serverLoaderData[h.route.id]}}function d(){var h=useRouteData(),p=s();return{data:p.clientLoaderData[h.route.id]}}},21325:function(M,b,e){"use strict";var a=e(23671),t=e(68716),o=e(8851);function s(n,c,l){l===void 0&&(l={});var d=(0,a.Z)(c);(0,o.Z)(function(){var h=(0,t.n)(l.target,window);if(h!=null&&h.addEventListener){var p=function(y){return d.current(y)};return h.addEventListener(n,p,{capture:l.capture,once:l.once,passive:l.passive}),function(){h.removeEventListener(n,p,{capture:l.capture})}}},[n,l.capture,l.once,l.passive],l.target)}b.Z=s},2556:function(M,b,e){"use strict";e.d(b,{Z:function(){return A}});var a=e(43112),t=e(23671),o=e(53807),s=e(68716),n=e(58757),c=e(8851),l=e(85466),d=e.n(l),h=function(L,O){return L===void 0&&(L=[]),O===void 0&&(O=[]),d()(L,O)},p=function(L,O,$){var P=(0,n.useRef)(),K=(0,n.useRef)(0);h(O,P.current)||(P.current=O,K.current+=1),(0,c.Z)(L,[K.current],$)},y=p,g=/(mac|iphone|ipod|ipad)/i.test(typeof navigator!="undefined"?navigator==null?void 0:navigator.platform:""),S=g,j={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},x={ctrl:function(L){return L.ctrlKey},shift:function(L){return L.shiftKey},alt:function(L){return L.altKey},meta:function(L){return L.type==="keyup"?j.meta.includes(L.keyCode):L.metaKey}};function Z(L){var O=Object.keys(x).reduce(function($,P){return x[P](L)?$+1:$},0);return[16,17,18,91,92].includes(L.keyCode)?O:O+1}function B(L,O,$){var P,K;if(!L.key)return!1;if((0,o.hj)(O))return L.keyCode===O;var U=O.split("."),ee=0;try{for(var le=(0,a.XA)(U),Q=le.next();!Q.done;Q=le.next()){var G=Q.value,q=x[G],I=j[G.toLowerCase()];(q&&q(L)||I&&I===L.keyCode)&&ee++}}catch(H){P={error:H}}finally{try{Q&&!Q.done&&(K=le.return)&&K.call(le)}finally{if(P)throw P.error}}return $?ee===U.length&&Z(L)===U.length:ee===U.length}function w(L,O){return(0,o.mf)(L)?L:(0,o.HD)(L)||(0,o.hj)(L)?function($){return B($,L,O)}:Array.isArray(L)?function($){return L.some(function(P){return B($,P,O)})}:function(){return!!L}}var T=["keydown"];function F(L,O,$){var P=$||{},K=P.events,U=K===void 0?T:K,ee=P.target,le=P.exactMatch,Q=le===void 0?!1:le,G=P.useCapture,q=G===void 0?!1:G,I=(0,t.Z)(O),H=(0,t.Z)(L);y(function(){var Y,D,_,ue=(0,s.n)(ee,window);if(ue){var be=function(Je){var et,ae=w(H.current,Q);if(ae(Je))return(et=I.current)===null||et===void 0?void 0:et.call(I,Je)};try{for(var ce=(0,a.XA)(U),he=ce.next();!he.done;he=ce.next()){var Fe=he.value;(_=ue==null?void 0:ue.addEventListener)===null||_===void 0||_.call(ue,Fe,be,q)}}catch(Je){Y={error:Je}}finally{try{he&&!he.done&&(D=ce.return)&&D.call(ce)}finally{if(Y)throw Y.error}}return function(){var Je,et,ae;try{for(var yt=(0,a.XA)(U),Pt=yt.next();!Pt.done;Pt=yt.next()){var bt=Pt.value;(ae=ue==null?void 0:ue.removeEventListener)===null||ae===void 0||ae.call(ue,bt,be,q)}}catch(Ct){Je={error:Ct}}finally{try{Pt&&!Pt.done&&(et=yt.return)&&et.call(yt)}finally{if(Je)throw Je.error}}}}},[U],ee)}var A=F},23671:function(M,b,e){"use strict";var a=e(58757);function t(o){var s=(0,a.useRef)(o);return s.current=o,s}b.Z=t},51129:function(M,b,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 c=(0,a.useRef)(n);c.current=(0,a.useMemo)(function(){return n},[n]);var l=(0,a.useRef)();return l.current||(l.current=function(){for(var d=[],h=0;h-1&&(se=setTimeout(function(){y.delete(Se)},ke)),y.set(Se,(0,a.pi)((0,a.pi)({},ne),{timer:se}))},S=function(Se){return y.get(Se)},j=function(Se){if(Se){var ke=Array.isArray(Se)?Se:[Se];ke.forEach(function(ne){return y.delete(ne)})}else y.clear()},x=new Map,Z=function(Se){return x.get(Se)},B=function(Se,ke){x.set(Se,ke),ke.then(function(ne){return x.delete(Se),ne}).catch(function(){x.delete(Se)})},w={},T=function(Se,ke){w[Se]&&w[Se].forEach(function(ne){return ne(ke)})},F=function(Se,ke){return w[Se]||(w[Se]=[]),w[Se].push(ke),function(){var re=w[Se].indexOf(ke);w[Se].splice(re,1)}},A=function(Se,ke){var ne=ke.cacheKey,re=ke.cacheTime,se=re===void 0?5*60*1e3:re,Ee=ke.staleTime,Re=Ee===void 0?0:Ee,fe=ke.setCache,_e=ke.getCache,Pe=(0,t.useRef)(),ze=(0,t.useRef)(),Qe=function(ut,rt){fe?fe(rt):g(ut,se,rt),T(ut,rt.data)},gt=function(ut,rt){return rt===void 0&&(rt=[]),_e?_e(rt):S(ut)};return h(function(){if(ne){var ut=gt(ne);ut&&Object.hasOwnProperty.call(ut,"data")&&(Se.state.data=ut.data,Se.state.params=ut.params,(Re===-1||new Date().getTime()-ut.time<=Re)&&(Se.state.loading=!1)),Pe.current=F(ne,function(rt){Se.setState({data:rt})})}},[]),(0,p.Z)(function(){var ut;(ut=Pe.current)===null||ut===void 0||ut.call(Pe)}),ne?{onBefore:function(ut){var rt=gt(ne,ut);return!rt||!Object.hasOwnProperty.call(rt,"data")?{}:Re===-1||new Date().getTime()-rt.time<=Re?{loading:!1,data:rt==null?void 0:rt.data,error:void 0,returnNow:!0}:{data:rt==null?void 0:rt.data,error:void 0}},onRequest:function(ut,rt){var qe=Z(ne);return qe&&qe!==ze.current?{servicePromise:qe}:(qe=ut.apply(void 0,(0,a.ev)([],(0,a.CR)(rt),!1)),ze.current=qe,B(ne,qe),{servicePromise:qe})},onSuccess:function(ut,rt){var qe;ne&&((qe=Pe.current)===null||qe===void 0||qe.call(Pe),Qe(ne,{data:ut,params:rt,time:new Date().getTime()}),Pe.current=F(ne,function(Ve){Se.setState({data:Ve})}))},onMutate:function(ut){var rt;ne&&((rt=Pe.current)===null||rt===void 0||rt.call(Pe),Qe(ne,{data:ut,params:Se.state.params,time:new Date().getTime()}),Pe.current=F(ne,function(qe){Se.setState({data:qe})}))}}:{}},L=A,O=e(77837),$=e.n(O),P=function(Se,ke){var ne=ke.debounceWait,re=ke.debounceLeading,se=ke.debounceTrailing,Ee=ke.debounceMaxWait,Re=(0,t.useRef)(),fe=(0,t.useMemo)(function(){var _e={};return re!==void 0&&(_e.leading=re),se!==void 0&&(_e.trailing=se),Ee!==void 0&&(_e.maxWait=Ee),_e},[re,se,Ee]);return(0,t.useEffect)(function(){if(ne){var _e=Se.runAsync.bind(Se);return Re.current=$()(function(Pe){Pe()},ne,fe),Se.runAsync=function(){for(var Pe=[],ze=0;ze-1&&be.splice(ne,1)}}if(le.Z){var he=function(){if(!(!Q()||!ue()))for(var Se=0;Se{const{type:d,children:h,prefixCls:p,buttonProps:y,close:g,autoFocus:S,emitEvent:j,isSilent:x,quitOnNullishReturnValue:Z,actionFn:B}=l,w=t.useRef(!1),T=t.useRef(null),[F,A]=(0,a.Z)(!1),L=function(){g==null||g.apply(void 0,arguments)};t.useEffect(()=>{let P=null;return S&&(P=setTimeout(()=>{var K;(K=T.current)===null||K===void 0||K.focus()})),()=>{P&&clearTimeout(P)}},[]);const O=P=>{n(P)&&(A(!0),P.then(function(){A(!1,!0),L.apply(void 0,arguments),w.current=!1},K=>{if(A(!1,!0),w.current=!1,!(x!=null&&x()))return Promise.reject(K)}))},$=P=>{if(w.current)return;if(w.current=!0,!B){L();return}let K;if(j){if(K=B(P),Z&&!n(K)){w.current=!1,L(P);return}}else if(B.length)K=B(g),w.current=!1;else if(K=B(),!K){L();return}O(K)};return t.createElement(o.ZP,Object.assign({},(0,s.n)(d),{onClick:$,loading:F,prefixCls:p},y,{ref:T}),h)};b.Z=c},15018:function(M,b,e){"use strict";e.d(b,{Z:function(){return c},i:function(){return n}});var a=e(60409),t=e(58757),o=e(42505),s=e(61836);function n(l){return function(h){return t.createElement(o.ZP,{theme:{token:{motion:!1,zIndexPopupBase:0}}},t.createElement(l,Object.assign({},h)))}}function c(l,d,h,p){function y(g){const{prefixCls:S,style:j}=g,x=t.useRef(null),[Z,B]=t.useState(0),[w,T]=t.useState(0),[F,A]=(0,a.Z)(!1,{value:g.open}),{getPrefixCls:L}=t.useContext(s.E_),O=L(d||"select",S);t.useEffect(()=>{if(A(!0),typeof ResizeObserver!="undefined"){const P=new ResizeObserver(U=>{const ee=U[0].target;B(ee.offsetHeight+8),T(ee.offsetWidth)}),K=setInterval(()=>{var U;const ee=h?`.${h(O)}`:`.${O}-dropdown`,le=(U=x.current)===null||U===void 0?void 0:U.querySelector(ee);le&&(clearInterval(K),P.observe(le))},10);return()=>{clearInterval(K),P.disconnect()}}},[]);let $=Object.assign(Object.assign({},g),{style:Object.assign(Object.assign({},j),{margin:0}),open:F,visible:F,getPopupContainer:()=>x.current});return p&&($=p($)),t.createElement("div",{ref:x,style:{paddingBottom:Z,position:"relative",minWidth:w}},t.createElement(l,Object.assign({},$)))}return n(y)}},1878:function(M,b,e){"use strict";e.d(b,{o2:function(){return n},yT:function(){return c}});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 c(l){return s.includes(l)}},44818:function(M,b){"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}b.Z=e},99836:function(M,b,e){"use strict";e.d(b,{Z:function(){return a}});const a=t=>t?typeof t=="function"?t():t:null},88858:function(M,b,e){"use strict";e.d(b,{Z:function(){return s}});var a=e(52495),t=e(58757);function o(n,c,l){return typeof n=="boolean"?n:c===void 0?!!l:c!==!1&&c!==null}function s(n,c,l){let d=arguments.length>3&&arguments[3]!==void 0?arguments[3]:t.createElement(a.Z,null),h=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;if(!o(n,c,h))return[!1,null];const y=typeof c=="boolean"||c===void 0||c===null?d:c;return[!0,l?l(y):y]}},69387:function(M,b,e){"use strict";var a=e(58757),t=e(32792);b.Z=()=>{const[o,s]=a.useState(!1);return a.useEffect(()=>{s((0,t.fk)())},[]),o}},4459:function(M,b,e){"use strict";e.d(b,{Z:function(){return t}});var a=e(58757);function t(){const[,o]=a.useReducer(s=>s+1,0);return o}},90881:function(M,b,e){"use strict";e.d(b,{m:function(){return l}});const a=()=>({height:0,opacity:0}),t=d=>{const{scrollHeight:h}=d;return{height:h,opacity:1}},o=d=>({height:d?d.offsetHeight:0}),s=(d,h)=>(h==null?void 0:h.deadline)===!0||h.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}},c=null,l=(d,h,p)=>p!==void 0?p:`${d}-${h}`;b.Z=n},95446:function(M,b,e){"use strict";e.d(b,{Z:function(){return c}});var a=e(24542);function t(l,d,h,p){if(p===!1)return{adjustX:!1,adjustY:!1};const y=p&&typeof p=="object"?p:{},g={};switch(l){case"top":case"bottom":g.shiftX=d.dropdownArrowOffset*2+h;break;case"left":case"right":g.shiftY=d.dropdownArrowOffsetVertical*2+h;break}const S=Object.assign(Object.assign({},g),y);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 c(l){const{arrowWidth:d,autoAdjustOverflow:h,arrowPointAtCenter:p,offset:y,borderRadius:g,visibleFirst:S}=l,j=d/2,x={};return Object.keys(o).forEach(Z=>{const B=p&&s[Z]||o[Z],w=Object.assign(Object.assign({},B),{offset:[0,0]});switch(x[Z]=w,n.has(Z)&&(w.autoArrow=!1),Z){case"top":case"topLeft":case"topRight":w.offset[1]=-j-y;break;case"bottom":case"bottomLeft":case"bottomRight":w.offset[1]=j+y;break;case"left":case"leftTop":case"leftBottom":w.offset[0]=-j-y;break;case"right":case"rightTop":case"rightBottom":w.offset[0]=j+y;break}const T=(0,a.fS)({contentRadius:g,limitVerticalRadius:!0});if(p)switch(Z){case"topLeft":case"bottomLeft":w.offset[0]=-T.dropdownArrowOffset-j;break;case"topRight":case"bottomRight":w.offset[0]=T.dropdownArrowOffset+j;break;case"leftTop":case"rightTop":w.offset[1]=-T.dropdownArrowOffset-j;break;case"leftBottom":case"rightBottom":w.offset[1]=T.dropdownArrowOffset+j;break}w.overflow=t(Z,T,d,h),S&&(w.htmlRegion="visibleFirst")}),x}},37047:function(M,b,e){"use strict";var a;e.d(b,{M2:function(){return s},Tm:function(){return c},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,d,h){return o(l)?t.cloneElement(l,typeof h=="function"?h(l.props||{}):h):d}function c(l,d){return n(l,l,d)}},87078:function(M,b,e){"use strict";e.d(b,{Z:function(){return c},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 d=l,h=[].concat(o).reverse();return h.forEach((p,y)=>{const g=p.toUpperCase(),S=`screen${g}Min`,j=`screen${g}`;if(!(d[S]<=d[j]))throw new Error(`${S}<=${j} fails : !(${d[S]}<=${d[j]})`);if(y{const h=new Map;let p=-1,y={};return{matchHandlers:{},dispatch(g){return y=g,h.forEach(S=>S(y)),h.size>=1},subscribe(g){return h.size||this.register(),p+=1,h.set(p,g),g(y),p},unsubscribe(g){h.delete(g),h.size||this.unregister()},unregister(){Object.keys(d).forEach(g=>{const S=d[g],j=this.matchHandlers[S];j==null||j.mql.removeListener(j==null?void 0:j.listener)}),h.clear()},register(){Object.keys(d).forEach(g=>{const S=d[g],j=Z=>{let{matches:B}=Z;this.dispatch(Object.assign(Object.assign({},y),{[g]:B}))},x=window.matchMedia(S);x.addListener(j),this.matchHandlers[S]={mql:x,listener:j},j(x)})},responsiveMap:d}},[l])}},41496:function(M,b,e){"use strict";e.d(b,{F:function(){return n},Z:function(){return s}});var a=e(87608),t=e.n(a);const o=null;function s(c,l,d){return t()({[`${c}-status-success`]:l==="success",[`${c}-status-warning`]:l==="warning",[`${c}-status-error`]:l==="error",[`${c}-status-validating`]:l==="validating",[`${c}-has-feedback`]:d})}const n=(c,l)=>l||c},32792:function(M,b,e){"use strict";e.d(b,{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 c=document.createElement("div");return c.style.position="absolute",c.style.zIndex="-9999",c.appendChild(n),document.body.appendChild(c),o=n.scrollHeight===1,document.body.removeChild(c),o}},37486:function(M,b,e){"use strict";e.d(b,{Z:function(){return K}});var a=e(87608),t=e.n(a),o=e(21319),s=e(46499),n=e(58757),c=e(61836),l=e(37047),d=e(52628);const h=U=>{const{componentCls:ee,colorPrimary:le}=U;return{[ee]:{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 ${U.motionEaseOutCirc}`,`opacity 2s ${U.motionEaseOutCirc}`].join(","),"&-active":{boxShadow:"0 0 0 6px currentcolor",opacity:0},"&.wave-quick":{transition:[`box-shadow 0.3s ${U.motionEaseInOut}`,`opacity 0.35s ${U.motionEaseInOut}`].join(",")}}}}};var p=(0,d.Z)("Wave",U=>[h(U)]),y=e(51729),g=e(61834),S=e(17598),j=e(52323);function x(U){const ee=(U||"").match(/rgba?\((\d*), (\d*), (\d*)(, [\d.]*)?\)/);return ee&&ee[1]&&ee[2]&&ee[3]?!(ee[1]===ee[2]&&ee[2]===ee[3]):!0}function Z(U){return U&&U!=="#fff"&&U!=="#ffffff"&&U!=="rgb(255, 255, 255)"&&U!=="rgba(255, 255, 255, 1)"&&x(U)&&!/rgba\((?:\d*, ){3}0\)/.test(U)&&U!=="transparent"}function B(U){const{borderTopColor:ee,borderColor:le,backgroundColor:Q}=getComputedStyle(U);return Z(ee)?ee:Z(le)?le:Z(Q)?Q:null}var w=e(78856);function T(U){return Number.isNaN(U)?0:U}const F=U=>{const{className:ee,target:le,component:Q}=U,G=n.useRef(null),[q,I]=n.useState(null),[H,Y]=n.useState([]),[D,_]=n.useState(0),[ue,be]=n.useState(0),[ce,he]=n.useState(0),[Fe,Je]=n.useState(0),[et,ae]=n.useState(!1),yt={left:D,top:ue,width:ce,height:Fe,borderRadius:H.map(Ct=>`${Ct}px`).join(" ")};q&&(yt["--wave-color"]=q);function Pt(){const Ct=getComputedStyle(le);I(B(le));const Le=Ct.position==="static",{borderLeftWidth:Ke,borderTopWidth:st}=Ct;_(Le?le.offsetLeft:T(-parseFloat(Ke))),be(Le?le.offsetTop:T(-parseFloat(st))),he(le.offsetWidth),Je(le.offsetHeight);const{borderTopLeftRadius:We,borderTopRightRadius:ge,borderBottomLeftRadius:X,borderBottomRightRadius:W}=Ct;Y([We,ge,W,X].map(R=>T(parseFloat(R))))}if(n.useEffect(()=>{if(le){const Ct=(0,g.Z)(()=>{Pt(),ae(!0)});let Le;return typeof ResizeObserver!="undefined"&&(Le=new ResizeObserver(Pt),Le.observe(le)),()=>{g.Z.cancel(Ct),Le==null||Le.disconnect()}}},[]),!et)return null;const bt=(Q==="Checkbox"||Q==="Radio")&&(le==null?void 0:le.classList.contains(w.A));return n.createElement(S.ZP,{visible:!0,motionAppear:!0,motionName:"wave-motion",motionDeadline:5e3,onAppearEnd:(Ct,Le)=>{var Ke;if(Le.deadline||Le.propertyName==="opacity"){const st=(Ke=G.current)===null||Ke===void 0?void 0:Ke.parentElement;(0,j.v)(st).then(()=>{st==null||st.remove()})}return!1}},Ct=>{let{className:Le}=Ct;return n.createElement("div",{ref:G,className:t()(ee,{"wave-quick":bt},Le),style:yt})})};var L=(U,ee)=>{var le;const{component:Q}=ee;if(Q==="Checkbox"&&!(!((le=U.querySelector("input"))===null||le===void 0)&&le.checked))return;const G=document.createElement("div");G.style.position="absolute",G.style.left="0px",G.style.top="0px",U==null||U.insertBefore(G,U==null?void 0:U.firstChild),(0,j.s)(n.createElement(F,Object.assign({},ee,{target:U})),G)},O=e(51806);function $(U,ee,le){const{wave:Q}=n.useContext(c.E_),[,G,q]=(0,O.Z)(),I=(0,y.Z)(D=>{const _=U.current;if(Q!=null&&Q.disabled||!_)return;const ue=_.querySelector(`.${w.A}`)||_,{showEffect:be}=Q||{};(be||L)(ue,{className:ee,token:G,component:le,event:D,hashId:q})}),H=n.useRef();return D=>{g.Z.cancel(H.current),H.current=(0,g.Z)(()=>{I(D)})}}var K=U=>{const{children:ee,disabled:le,component:Q}=U,{getPrefixCls:G}=(0,n.useContext)(c.E_),q=(0,n.useRef)(null),I=G("wave"),[,H]=p(I),Y=$(q,t()(I,H),Q);if(n.useEffect(()=>{const _=q.current;if(!_||_.nodeType!==1||le)return;const ue=be=>{!(0,s.Z)(be.target)||!_.getAttribute||_.getAttribute("disabled")||_.disabled||_.className.includes("disabled")||_.className.includes("-leave")||Y(be)};return _.addEventListener("click",ue,!0),()=>{_.removeEventListener("click",ue,!0)}},[le]),!n.isValidElement(ee))return ee!=null?ee:null;const D=(0,o.Yr)(ee)?(0,o.sQ)(ee.ref,q):q;return(0,l.Tm)(ee,{ref:D})}},78856:function(M,b,e){"use strict";e.d(b,{A:function(){return a}});const a="ant-wave-target"},15618:function(M,b,e){"use strict";e.d(b,{Z:function(){return Y}});var a=e(85678),t=e(79999),o=e(52495),s=e(69831),n=e(33064),c=e(87608),l=e.n(c),d=e(17598),h=e(33926),p=e(58757),y=e(37047),g=e(61836),S=e(78330),j=e(52628),x=e(22151);const Z=(D,_,ue,be,ce)=>({backgroundColor:D,border:`${be.lineWidth}px ${be.lineType} ${_}`,[`${ce}-icon`]:{color:ue}}),B=D=>{const{componentCls:_,motionDurationSlow:ue,marginXS:be,marginSM:ce,fontSize:he,fontSizeLG:Fe,lineHeight:Je,borderRadiusLG:et,motionEaseInOutCirc:ae,alertIconSizeLG:yt,colorText:Pt,paddingContentVerticalSM:bt,alertPaddingHorizontal:Ct,paddingMD:Le,paddingContentHorizontalLG:Ke,colorTextHeading:st}=D;return{[_]:Object.assign(Object.assign({},(0,S.Wf)(D)),{position:"relative",display:"flex",alignItems:"center",padding:`${bt}px ${Ct}px`,wordWrap:"break-word",borderRadius:et,[`&${_}-rtl`]:{direction:"rtl"},[`${_}-content`]:{flex:1,minWidth:0},[`${_}-icon`]:{marginInlineEnd:be,lineHeight:0},["&-description"]:{display:"none",fontSize:he,lineHeight:Je},"&-message":{color:Pt},[`&${_}-motion-leave`]:{overflow:"hidden",opacity:1,transition:`max-height ${ue} ${ae}, opacity ${ue} ${ae}, + padding-top ${ue} ${ae}, padding-bottom ${ue} ${ae}, + margin-bottom ${ue} ${ae}`},[`&${_}-motion-leave-active`]:{maxHeight:0,marginBottom:"0 !important",paddingTop:0,paddingBottom:0,opacity:0}}),[`${_}-with-description`]:{alignItems:"flex-start",paddingInline:Ke,paddingBlock:Le,[`${_}-icon`]:{marginInlineEnd:ce,fontSize:yt,lineHeight:0},[`${_}-message`]:{display:"block",marginBottom:be,color:st,fontSize:Fe},[`${_}-description`]:{display:"block"}},[`${_}-banner`]:{marginBottom:0,border:"0 !important",borderRadius:0}}},w=D=>{const{componentCls:_,colorSuccess:ue,colorSuccessBorder:be,colorSuccessBg:ce,colorWarning:he,colorWarningBorder:Fe,colorWarningBg:Je,colorError:et,colorErrorBorder:ae,colorErrorBg:yt,colorInfo:Pt,colorInfoBorder:bt,colorInfoBg:Ct}=D;return{[_]:{"&-success":Z(ce,be,ue,D,_),"&-info":Z(Ct,bt,Pt,D,_),"&-warning":Z(Je,Fe,he,D,_),"&-error":Object.assign(Object.assign({},Z(yt,ae,et,D,_)),{[`${_}-description > pre`]:{margin:0,padding:0}})}}},T=D=>{const{componentCls:_,iconCls:ue,motionDurationMid:be,marginXS:ce,fontSizeIcon:he,colorIcon:Fe,colorIconHover:Je}=D;return{[_]:{["&-action"]:{marginInlineStart:ce},[`${_}-close-icon`]:{marginInlineStart:ce,padding:0,overflow:"hidden",fontSize:he,lineHeight:`${he}px`,backgroundColor:"transparent",border:"none",outline:"none",cursor:"pointer",[`${ue}-close`]:{color:Fe,transition:`color ${be}`,"&:hover":{color:Je}}},"&-close-text":{color:Fe,transition:`color ${be}`,"&:hover":{color:Je}}}}},F=D=>[B(D),w(D),T(D)];var A=(0,j.Z)("Alert",D=>{const{fontSizeHeading3:_}=D,ue=(0,x.TS)(D,{alertIconSizeLG:_,alertPaddingHorizontal:12});return[F(ue)]}),L=function(D,_){var ue={};for(var be in D)Object.prototype.hasOwnProperty.call(D,be)&&_.indexOf(be)<0&&(ue[be]=D[be]);if(D!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ce=0,be=Object.getOwnPropertySymbols(D);ce{const{icon:_,prefixCls:ue,type:be}=D,ce=O[be]||null;return _?(0,y.wm)(_,p.createElement("span",{className:`${ue}-icon`},_),()=>({className:l()(`${ue}-icon`,{[_.props.className]:_.props.className})})):p.createElement(ce,{className:`${ue}-icon`})},P=D=>{const{isClosable:_,prefixCls:ue,closeIcon:be,handleClose:ce}=D,he=be===!0||be===void 0?p.createElement(o.Z,null):be;return _?p.createElement("button",{type:"button",onClick:ce,className:`${ue}-close-icon`,tabIndex:0},he):null};var U=D=>{const{description:_,prefixCls:ue,message:be,banner:ce,className:he,rootClassName:Fe,style:Je,onMouseEnter:et,onMouseLeave:ae,onClick:yt,afterClose:Pt,showIcon:bt,closable:Ct,closeText:Le,closeIcon:Ke,action:st}=D,We=L(D,["description","prefixCls","message","banner","className","rootClassName","style","onMouseEnter","onMouseLeave","onClick","afterClose","showIcon","closable","closeText","closeIcon","action"]),[ge,X]=p.useState(!1),W=p.useRef(null),{getPrefixCls:R,direction:N,alert:oe}=p.useContext(g.E_),ve=R("alert",ue),[te,me]=A(ve),we=se=>{var Ee;X(!0),(Ee=D.onClose)===null||Ee===void 0||Ee.call(D,se)},xe=p.useMemo(()=>D.type!==void 0?D.type:ce?"warning":"info",[D.type,ce]),Se=p.useMemo(()=>Le?!0:typeof Ct=="boolean"?Ct:Ke!==!1&&Ke!==null&&Ke!==void 0,[Le,Ke,Ct]),ke=ce&&bt===void 0?!0:bt,ne=l()(ve,`${ve}-${xe}`,{[`${ve}-with-description`]:!!_,[`${ve}-no-icon`]:!ke,[`${ve}-banner`]:!!ce,[`${ve}-rtl`]:N==="rtl"},oe==null?void 0:oe.className,he,Fe,me),re=(0,h.Z)(We,{aria:!0,data:!0});return te(p.createElement(d.ZP,{visible:!ge,motionName:`${ve}-motion`,motionAppear:!1,motionEnter:!1,onLeaveStart:se=>({maxHeight:se.offsetHeight}),onLeaveEnd:Pt},se=>{let{className:Ee,style:Re}=se;return p.createElement("div",Object.assign({ref:W,"data-show":!ge,className:l()(ne,Ee),style:Object.assign(Object.assign(Object.assign({},oe==null?void 0:oe.style),Je),Re),onMouseEnter:et,onMouseLeave:ae,onClick:yt,role:"alert"},re),ke?p.createElement($,{description:_,icon:D.icon,prefixCls:ve,type:xe}):null,p.createElement("div",{className:`${ve}-content`},be?p.createElement("div",{className:`${ve}-message`},be):null,_?p.createElement("div",{className:`${ve}-description`},_):null),st?p.createElement("div",{className:`${ve}-action`},st):null,p.createElement(P,{isClosable:Se,prefixCls:ve,closeIcon:Le||Ke,handleClose:we}))}))},ee=e(60412),le=e(14346),Q=e(87498),G=e(73726),I=function(D){(0,Q.Z)(ue,D);var _=(0,G.Z)(ue);function ue(){var be;return(0,ee.Z)(this,ue),be=_.apply(this,arguments),be.state={error:void 0,info:{componentStack:""}},be}return(0,le.Z)(ue,[{key:"componentDidCatch",value:function(ce,he){this.setState({error:ce,info:he})}},{key:"render",value:function(){const{message:ce,description:he,children:Fe}=this.props,{error:Je,info:et}=this.state,ae=et&&et.componentStack?et.componentStack:null,yt=typeof ce=="undefined"?(Je||"").toString():ce,Pt=typeof he=="undefined"?ae:he;return Je?p.createElement(U,{type:"error",message:yt,description:p.createElement("pre",{style:{fontSize:"0.9em",overflowX:"auto"}},Pt)}):Fe}}]),ue}(p.Component);const H=U;H.ErrorBoundary=I;var Y=H},70921:function(M,b,e){"use strict";e.d(b,{n:function(){return ne},Z:function(){return Re}});var a=e(87608),t=e.n(a),o=e(98186),s=e(21319),n=e(58757),c=e(37486),l=e(61836),d=e(92428),h=e(58785),p=e(43528),g=(0,n.forwardRef)((fe,_e)=>{const{className:Pe,style:ze,children:Qe,prefixCls:gt}=fe,ut=t()(`${gt}-icon`,Pe);return n.createElement("span",{ref:_e,className:ut,style:ze},Qe)}),S=e(25755),j=e(17598);const x=(0,n.forwardRef)((fe,_e)=>{let{prefixCls:Pe,className:ze,style:Qe,iconClassName:gt}=fe;const ut=t()(`${Pe}-loading-icon`,ze);return n.createElement(g,{prefixCls:Pe,className:ut,style:Qe,ref:_e},n.createElement(S.Z,{className:gt}))}),Z=()=>({width:0,opacity:0,transform:"scale(0)"}),B=fe=>({width:fe.scrollWidth,opacity:1,transform:"scale(1)"});var T=fe=>{const{prefixCls:_e,loading:Pe,existIcon:ze,className:Qe,style:gt}=fe,ut=!!Pe;return ze?n.createElement(x,{prefixCls:_e,className:Qe,style:gt}):n.createElement(j.ZP,{visible:ut,motionName:`${_e}-loading-icon-motion`,removeOnLeave:!0,onAppearStart:Z,onAppearActive:B,onEnterStart:Z,onEnterActive:B,onLeaveStart:B,onLeaveActive:Z},(rt,qe)=>{let{className:Ve,style:tt}=rt;return n.createElement(x,{prefixCls:_e,className:Qe,style:Object.assign(Object.assign({},gt),tt),ref:qe,iconClassName:Ve})})},F=e(51806),A=function(fe,_e){var Pe={};for(var ze in fe)Object.prototype.hasOwnProperty.call(fe,ze)&&_e.indexOf(ze)<0&&(Pe[ze]=fe[ze]);if(fe!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Qe=0,ze=Object.getOwnPropertySymbols(fe);Qe{const{getPrefixCls:_e,direction:Pe}=n.useContext(l.E_),{prefixCls:ze,size:Qe,className:gt}=fe,ut=A(fe,["prefixCls","size","className"]),rt=_e("btn-group",ze),[,,qe]=(0,F.Z)();let Ve="";switch(Qe){case"large":Ve="lg";break;case"small":Ve="sm";break;case"middle":case void 0:break;default:}const tt=t()(rt,{[`${rt}-${Ve}`]:Ve,[`${rt}-rtl`]:Pe==="rtl"},gt,qe);return n.createElement(L.Provider,{value:Qe},n.createElement("div",Object.assign({},ut,{className:tt})))},P=e(37047);const K=/^[\u4e00-\u9fa5]{2}$/,U=K.test.bind(K);function ee(fe){return typeof fe=="string"}function le(fe){return fe==="text"||fe==="link"}function Q(fe,_e){if(fe==null)return;const Pe=_e?" ":"";return typeof fe!="string"&&typeof fe!="number"&&ee(fe.type)&&U(fe.props.children)?(0,P.Tm)(fe,{children:fe.props.children.split("").join(Pe)}):ee(fe)?U(fe)?n.createElement("span",null,fe.split("").join(Pe)):n.createElement("span",null,fe):(0,P.M2)(fe)?n.createElement("span",null,fe):fe}function G(fe,_e){let Pe=!1;const ze=[];return n.Children.forEach(fe,Qe=>{const gt=typeof Qe,ut=gt==="string"||gt==="number";if(Pe&&ut){const rt=ze.length-1,qe=ze[rt];ze[rt]=`${qe}${Qe}`}else ze.push(Qe);Pe=ut}),n.Children.map(ze,Qe=>Q(Qe,_e))}const q=null,I=null,H=null;var Y=e(78330),D=e(64493);function _(fe,_e){return{[`&-item:not(${_e}-last-item)`]:{marginBottom:-fe.lineWidth},"&-item":{"&:hover,&:focus,&:active":{zIndex:2},"&[disabled]":{zIndex:0}}}}function ue(fe,_e){return{[`&-item:not(${_e}-first-item):not(${_e}-last-item)`]:{borderRadius:0},[`&-item${_e}-first-item:not(${_e}-last-item)`]:{[`&, &${fe}-sm, &${fe}-lg`]:{borderEndEndRadius:0,borderEndStartRadius:0}},[`&-item${_e}-last-item:not(${_e}-first-item)`]:{[`&, &${fe}-sm, &${fe}-lg`]:{borderStartStartRadius:0,borderStartEndRadius:0}}}}function be(fe){const _e=`${fe.componentCls}-compact-vertical`;return{[_e]:Object.assign(Object.assign({},_(fe,_e)),ue(fe.componentCls,_e))}}var ce=e(22151),he=e(52628);const Fe=(fe,_e)=>({[`> span, > ${fe}`]:{"&:not(:last-child)":{[`&, & > ${fe}`]:{"&:not(:disabled)":{borderInlineEndColor:_e}}},"&:not(:first-child)":{[`&, & > ${fe}`]:{"&:not(:disabled)":{borderInlineStartColor:_e}}}}});var et=fe=>{const{componentCls:_e,fontSize:Pe,lineWidth:ze,colorPrimaryHover:Qe,colorErrorHover:gt}=fe;return{[`${_e}-group`]:[{position:"relative",display:"inline-flex",[`> span, > ${_e}`]:{"&:not(:last-child)":{[`&, & > ${_e}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},"&:not(:first-child)":{marginInlineStart:-ze,[`&, & > ${_e}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}},[_e]:{position:"relative",zIndex:1,[`&:hover, + &:focus, + &:active`]:{zIndex:2},"&[disabled]":{zIndex:0}},[`${_e}-icon-only`]:{fontSize:Pe}},Fe(`${_e}-primary`,Qe),Fe(`${_e}-danger`,gt)]}};const ae=fe=>{const{componentCls:_e,iconCls:Pe,buttonFontWeight:ze}=fe;return{[_e]:{outline:"none",position:"relative",display:"inline-block",fontWeight:ze,whiteSpace:"nowrap",textAlign:"center",backgroundImage:"none",backgroundColor:"transparent",border:`${fe.lineWidth}px ${fe.lineType} transparent`,cursor:"pointer",transition:`all ${fe.motionDurationMid} ${fe.motionEaseInOut}`,userSelect:"none",touchAction:"manipulation",lineHeight:fe.lineHeight,color:fe.colorText,"&:disabled > *":{pointerEvents:"none"},"> span":{display:"inline-block"},[`${_e}-icon`]:{lineHeight:0},[`> ${Pe} + span, > span + ${Pe}`]:{marginInlineStart:fe.marginXS},[`&:not(${_e}-icon-only) > ${_e}-icon`]:{[`&${_e}-loading-icon, &:not(:last-child)`]:{marginInlineEnd:fe.marginXS}},"> a":{color:"currentColor"},"&:not(:disabled)":Object.assign({},(0,Y.Qy)(fe)),[`&-icon-only${_e}-compact-item`]:{flex:"none"},[`&-compact-item${_e}-primary`]:{[`&:not([disabled]) + ${_e}-compact-item${_e}-primary:not([disabled])`]:{position:"relative","&:before":{position:"absolute",top:-fe.lineWidth,insetInlineStart:-fe.lineWidth,display:"inline-block",width:fe.lineWidth,height:`calc(100% + ${fe.lineWidth*2}px)`,backgroundColor:fe.colorPrimaryHover,content:'""'}}},"&-compact-vertical-item":{[`&${_e}-primary`]:{[`&:not([disabled]) + ${_e}-compact-vertical-item${_e}-primary:not([disabled])`]:{position:"relative","&:before":{position:"absolute",top:-fe.lineWidth,insetInlineStart:-fe.lineWidth,display:"inline-block",width:`calc(100% + ${fe.lineWidth*2}px)`,height:fe.lineWidth,backgroundColor:fe.colorPrimaryHover,content:'""'}}}}}}},yt=(fe,_e,Pe)=>({[`&:not(:disabled):not(${fe}-disabled)`]:{"&:hover":_e,"&:active":Pe}}),Pt=fe=>({minWidth:fe.controlHeight,paddingInlineStart:0,paddingInlineEnd:0,borderRadius:"50%"}),bt=fe=>({borderRadius:fe.controlHeight,paddingInlineStart:fe.controlHeight/2,paddingInlineEnd:fe.controlHeight/2}),Ct=fe=>({cursor:"not-allowed",borderColor:fe.colorBorder,color:fe.colorTextDisabled,backgroundColor:fe.colorBgContainerDisabled,boxShadow:"none"}),Le=(fe,_e,Pe,ze,Qe,gt,ut)=>({[`&${fe}-background-ghost`]:Object.assign(Object.assign({color:_e||void 0,backgroundColor:"transparent",borderColor:Pe||void 0,boxShadow:"none"},yt(fe,Object.assign({backgroundColor:"transparent"},gt),Object.assign({backgroundColor:"transparent"},ut))),{"&:disabled":{cursor:"not-allowed",color:ze||void 0,borderColor:Qe||void 0}})}),Ke=fe=>({[`&:disabled, &${fe.componentCls}-disabled`]:Object.assign({},Ct(fe))}),st=fe=>Object.assign({},Ke(fe)),We=fe=>({[`&:disabled, &${fe.componentCls}-disabled`]:{cursor:"not-allowed",color:fe.colorTextDisabled}}),ge=fe=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},st(fe)),{backgroundColor:fe.colorBgContainer,borderColor:fe.colorBorder,boxShadow:`0 ${fe.controlOutlineWidth}px 0 ${fe.controlTmpOutline}`}),yt(fe.componentCls,{color:fe.colorPrimaryHover,borderColor:fe.colorPrimaryHover},{color:fe.colorPrimaryActive,borderColor:fe.colorPrimaryActive})),Le(fe.componentCls,fe.colorBgContainer,fe.colorBgContainer,fe.colorTextDisabled,fe.colorBorder)),{[`&${fe.componentCls}-dangerous`]:Object.assign(Object.assign(Object.assign({color:fe.colorError,borderColor:fe.colorError},yt(fe.componentCls,{color:fe.colorErrorHover,borderColor:fe.colorErrorBorderHover},{color:fe.colorErrorActive,borderColor:fe.colorErrorActive})),Le(fe.componentCls,fe.colorError,fe.colorError,fe.colorTextDisabled,fe.colorBorder)),Ke(fe))}),X=fe=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},st(fe)),{color:fe.colorTextLightSolid,backgroundColor:fe.colorPrimary,boxShadow:`0 ${fe.controlOutlineWidth}px 0 ${fe.controlOutline}`}),yt(fe.componentCls,{color:fe.colorTextLightSolid,backgroundColor:fe.colorPrimaryHover},{color:fe.colorTextLightSolid,backgroundColor:fe.colorPrimaryActive})),Le(fe.componentCls,fe.colorPrimary,fe.colorPrimary,fe.colorTextDisabled,fe.colorBorder,{color:fe.colorPrimaryHover,borderColor:fe.colorPrimaryHover},{color:fe.colorPrimaryActive,borderColor:fe.colorPrimaryActive})),{[`&${fe.componentCls}-dangerous`]:Object.assign(Object.assign(Object.assign({backgroundColor:fe.colorError,boxShadow:`0 ${fe.controlOutlineWidth}px 0 ${fe.colorErrorOutline}`},yt(fe.componentCls,{backgroundColor:fe.colorErrorHover},{backgroundColor:fe.colorErrorActive})),Le(fe.componentCls,fe.colorError,fe.colorError,fe.colorTextDisabled,fe.colorBorder,{color:fe.colorErrorHover,borderColor:fe.colorErrorHover},{color:fe.colorErrorActive,borderColor:fe.colorErrorActive})),Ke(fe))}),W=fe=>Object.assign(Object.assign({},ge(fe)),{borderStyle:"dashed"}),R=fe=>Object.assign(Object.assign(Object.assign({color:fe.colorLink},yt(fe.componentCls,{color:fe.colorLinkHover},{color:fe.colorLinkActive})),We(fe)),{[`&${fe.componentCls}-dangerous`]:Object.assign(Object.assign({color:fe.colorError},yt(fe.componentCls,{color:fe.colorErrorHover},{color:fe.colorErrorActive})),We(fe))}),N=fe=>Object.assign(Object.assign(Object.assign({},yt(fe.componentCls,{color:fe.colorText,backgroundColor:fe.colorBgTextHover},{color:fe.colorText,backgroundColor:fe.colorBgTextActive})),We(fe)),{[`&${fe.componentCls}-dangerous`]:Object.assign(Object.assign({color:fe.colorError},We(fe)),yt(fe.componentCls,{color:fe.colorErrorHover,backgroundColor:fe.colorErrorBg},{color:fe.colorErrorHover,backgroundColor:fe.colorErrorBg}))}),oe=fe=>{const{componentCls:_e}=fe;return{[`${_e}-default`]:ge(fe),[`${_e}-primary`]:X(fe),[`${_e}-dashed`]:W(fe),[`${_e}-link`]:R(fe),[`${_e}-text`]:N(fe),[`${_e}-ghost`]:Le(fe.componentCls,fe.colorBgContainer,fe.colorBgContainer,fe.colorTextDisabled,fe.colorBorder)}},ve=function(fe){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const{componentCls:Pe,controlHeight:ze,fontSize:Qe,lineHeight:gt,lineWidth:ut,borderRadius:rt,buttonPaddingHorizontal:qe,iconCls:Ve}=fe,tt=Math.max(0,(ze-Qe*gt)/2-ut),Oe=qe-ut,Me=`${Pe}-icon-only`;return[{[`${Pe}${_e}`]:{fontSize:Qe,height:ze,padding:`${tt}px ${Oe}px`,borderRadius:rt,[`&${Me}`]:{width:ze,paddingInlineStart:0,paddingInlineEnd:0,[`&${Pe}-round`]:{width:"auto"},[Ve]:{fontSize:fe.buttonIconOnlyFontSize}},[`&${Pe}-loading`]:{opacity:fe.opacityLoading,cursor:"default"},[`${Pe}-loading-icon`]:{transition:`width ${fe.motionDurationSlow} ${fe.motionEaseInOut}, opacity ${fe.motionDurationSlow} ${fe.motionEaseInOut}`}}},{[`${Pe}${Pe}-circle${_e}`]:Pt(fe)},{[`${Pe}${Pe}-round${_e}`]:bt(fe)}]},te=fe=>ve(fe),me=fe=>{const _e=(0,ce.TS)(fe,{controlHeight:fe.controlHeightSM,padding:fe.paddingXS,buttonPaddingHorizontal:8,borderRadius:fe.borderRadiusSM,buttonIconOnlyFontSize:fe.fontSizeLG-2});return ve(_e,`${fe.componentCls}-sm`)},we=fe=>{const _e=(0,ce.TS)(fe,{controlHeight:fe.controlHeightLG,fontSize:fe.fontSizeLG,borderRadius:fe.borderRadiusLG,buttonIconOnlyFontSize:fe.fontSizeLG+2});return ve(_e,`${fe.componentCls}-lg`)},xe=fe=>{const{componentCls:_e}=fe;return{[_e]:{[`&${_e}-block`]:{width:"100%"}}}};var Se=(0,he.Z)("Button",fe=>{const{controlTmpOutline:_e,paddingContentHorizontal:Pe}=fe,ze=(0,ce.TS)(fe,{colorOutlineDefault:_e,buttonPaddingHorizontal:Pe,buttonIconOnlyFontSize:fe.fontSizeLG,buttonFontWeight:400});return[ae(ze),me(ze),te(ze),we(ze),xe(ze),oe(ze),et(ze),(0,D.c)(fe),be(fe)]}),ke=function(fe,_e){var Pe={};for(var ze in fe)Object.prototype.hasOwnProperty.call(fe,ze)&&_e.indexOf(ze)<0&&(Pe[ze]=fe[ze]);if(fe!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Qe=0,ze=Object.getOwnPropertySymbols(fe);Qe{var Pe,ze;const{loading:Qe=!1,prefixCls:gt,type:ut="default",danger:rt,shape:qe="default",size:Ve,styles:tt,disabled:Oe,className:Me,rootClassName:Ne,children:Te,icon:Be,ghost:nt=!1,block:ot=!1,htmlType:wt="button",classNames:Et,style:nn={}}=fe,$t=ke(fe,["loading","prefixCls","type","danger","shape","size","styles","disabled","className","rootClassName","children","icon","ghost","block","htmlType","classNames","style"]),{getPrefixCls:fn,autoInsertSpaceInButton:ln,direction:Wt,button:$e}=(0,n.useContext)(l.E_),De=fn("btn",gt),[jt,Ft]=Se(De),Xe=(0,n.useContext)(d.Z),at=Oe!=null?Oe:Xe,Bt=(0,n.useContext)(L),Zt=(0,n.useMemo)(()=>re(Qe),[Qe]),[Qt,rn]=(0,n.useState)(Zt.loading),[hn,on]=(0,n.useState)(!1),Rn=(0,n.createRef)(),zn=(0,s.sQ)(_e,Rn),lr=n.Children.count(Te)===1&&!Be&&!le(ut);(0,n.useEffect)(()=>{let ft=null;Zt.delay>0?ft=setTimeout(()=>{ft=null,rn(!0)},Zt.delay):rn(Zt.loading);function vt(){ft&&(clearTimeout(ft),ft=null)}return vt},[Zt]),(0,n.useEffect)(()=>{if(!zn||!zn.current||ln===!1)return;const ft=zn.current.textContent;lr&&U(ft)?hn||on(!0):hn&&on(!1)},[zn]);const ur=ft=>{const{onClick:vt}=fe;if(Qt||at){ft.preventDefault();return}vt==null||vt(ft)},zt=ln!==!1,{compactSize:Kt,compactItemClassnames:Vt}=(0,p.ri)(De,Wt),dn={large:"lg",small:"sm",middle:void 0},pn=(0,h.Z)(ft=>{var vt,St;return(St=(vt=Ve!=null?Ve:Kt)!==null&&vt!==void 0?vt:Bt)!==null&&St!==void 0?St:ft}),en=pn&&dn[pn]||"",mt=Qt?"loading":Be,pt=(0,o.Z)($t,["navigate"]),an=t()(De,Ft,{[`${De}-${qe}`]:qe!=="default"&&qe,[`${De}-${ut}`]:ut,[`${De}-${en}`]:en,[`${De}-icon-only`]:!Te&&Te!==0&&!!mt,[`${De}-background-ghost`]:nt&&!le(ut),[`${De}-loading`]:Qt,[`${De}-two-chinese-chars`]:hn&&zt&&!Qt,[`${De}-block`]:ot,[`${De}-dangerous`]:!!rt,[`${De}-rtl`]:Wt==="rtl"},Vt,Me,Ne,$e==null?void 0:$e.className),qt=Object.assign(Object.assign({},$e==null?void 0:$e.style),nn),Yt=t()(Et==null?void 0:Et.icon,(Pe=$e==null?void 0:$e.classNames)===null||Pe===void 0?void 0:Pe.icon),mn=Object.assign(Object.assign({},(tt==null?void 0:tt.icon)||{}),((ze=$e==null?void 0:$e.styles)===null||ze===void 0?void 0:ze.icon)||{}),gn=Be&&!Qt?n.createElement(g,{prefixCls:De,className:Yt,style:mn},Be):n.createElement(T,{existIcon:!!Be,prefixCls:De,loading:!!Qt}),kn=Te||Te===0?G(Te,lr&&zt):null;if(pt.href!==void 0)return jt(n.createElement("a",Object.assign({},pt,{className:t()(an,{[`${De}-disabled`]:at}),style:qt,onClick:ur,ref:zn}),gn,kn));let tr=n.createElement("button",Object.assign({},$t,{type:wt,className:an,style:qt,onClick:ur,disabled:at,ref:zn}),gn,kn);return le(ut)||(tr=n.createElement(c.Z,{component:"Button",disabled:!!Qt},tr)),jt(tr)},Ee=(0,n.forwardRef)(se);Ee.Group=$,Ee.__ANT_BUTTON=!0;var Re=Ee},12562:function(M,b,e){"use strict";var a=e(70921);b.ZP=a.Z},81872:function(M,b,e){"use strict";var a=e(7056);b.Z=a.Z},18624:function(M,b,e){"use strict";e.d(b,{Z:function(){return q}});var a=e(87608),t=e.n(a),o=e(98186),s=e(58757),n=e(61836),c=e(58785),l=e(57214),d=e(16951),h=function(I,H){var Y={};for(var D in I)Object.prototype.hasOwnProperty.call(I,D)&&H.indexOf(D)<0&&(Y[D]=I[D]);if(I!=null&&typeof Object.getOwnPropertySymbols=="function")for(var _=0,D=Object.getOwnPropertySymbols(I);_{var{prefixCls:H,className:Y,hoverable:D=!0}=I,_=h(I,["prefixCls","className","hoverable"]);const{getPrefixCls:ue}=s.useContext(n.E_),be=ue("card",H),ce=t()(`${be}-grid`,Y,{[`${be}-grid-hoverable`]:D});return s.createElement("div",Object.assign({},_,{className:ce}))},g=e(78330),S=e(52628),j=e(22151);const x=I=>{const{antCls:H,componentCls:Y,headerHeight:D,cardPaddingBase:_,tabsMarginBottom:ue}=I;return Object.assign(Object.assign({display:"flex",justifyContent:"center",flexDirection:"column",minHeight:D,marginBottom:-1,padding:`0 ${_}px`,color:I.colorTextHeading,fontWeight:I.fontWeightStrong,fontSize:I.headerFontSize,background:I.headerBg,borderBottom:`${I.lineWidth}px ${I.lineType} ${I.colorBorderSecondary}`,borderRadius:`${I.borderRadiusLG}px ${I.borderRadiusLG}px 0 0`},(0,g.dF)()),{"&-wrapper":{width:"100%",display:"flex",alignItems:"center"},"&-title":Object.assign(Object.assign({display:"inline-block",flex:1},g.vS),{[` + > ${Y}-typography, + > ${Y}-typography-edit-content + `]:{insetInlineStart:0,marginTop:0,marginBottom:0}}),[`${H}-tabs-top`]:{clear:"both",marginBottom:ue,color:I.colorText,fontWeight:"normal",fontSize:I.fontSize,"&-bar":{borderBottom:`${I.lineWidth}px ${I.lineType} ${I.colorBorderSecondary}`}}})},Z=I=>{const{cardPaddingBase:H,colorBorderSecondary:Y,cardShadow:D,lineWidth:_}=I;return{width:"33.33%",padding:H,border:0,borderRadius:0,boxShadow:` + ${_}px 0 0 0 ${Y}, + 0 ${_}px 0 0 ${Y}, + ${_}px ${_}px 0 0 ${Y}, + ${_}px 0 0 0 ${Y} inset, + 0 ${_}px 0 0 ${Y} inset; + `,transition:`all ${I.motionDurationMid}`,"&-hoverable:hover":{position:"relative",zIndex:1,boxShadow:D}}},B=I=>{const{componentCls:H,iconCls:Y,actionsLiMargin:D,cardActionsIconSize:_,colorBorderSecondary:ue,actionsBg:be}=I;return Object.assign(Object.assign({margin:0,padding:0,listStyle:"none",background:be,borderTop:`${I.lineWidth}px ${I.lineType} ${ue}`,display:"flex",borderRadius:`0 0 ${I.borderRadiusLG}px ${I.borderRadiusLG}px `},(0,g.dF)()),{"& > li":{margin:D,color:I.colorTextDescription,textAlign:"center","> span":{position:"relative",display:"block",minWidth:I.cardActionsIconSize*2,fontSize:I.fontSize,lineHeight:I.lineHeight,cursor:"pointer","&:hover":{color:I.colorPrimary,transition:`color ${I.motionDurationMid}`},[`a:not(${H}-btn), > ${Y}`]:{display:"inline-block",width:"100%",color:I.colorTextDescription,lineHeight:`${I.fontSize*I.lineHeight}px`,transition:`color ${I.motionDurationMid}`,"&:hover":{color:I.colorPrimary}},[`> ${Y}`]:{fontSize:_,lineHeight:`${_*I.lineHeight}px`}},"&:not(:last-child)":{borderInlineEnd:`${I.lineWidth}px ${I.lineType} ${ue}`}}})},w=I=>Object.assign(Object.assign({margin:`-${I.marginXXS}px 0`,display:"flex"},(0,g.dF)()),{"&-avatar":{paddingInlineEnd:I.padding},"&-detail":{overflow:"hidden",flex:1,"> div:not(:last-child)":{marginBottom:I.marginXS}},"&-title":Object.assign({color:I.colorTextHeading,fontWeight:I.fontWeightStrong,fontSize:I.fontSizeLG},g.vS),"&-description":{color:I.colorTextDescription}}),T=I=>{const{componentCls:H,cardPaddingBase:Y,colorFillAlter:D}=I;return{[`${H}-head`]:{padding:`0 ${Y}px`,background:D,"&-title":{fontSize:I.fontSize}},[`${H}-body`]:{padding:`${I.padding}px ${Y}px`}}},F=I=>{const{componentCls:H}=I;return{overflow:"hidden",[`${H}-body`]:{userSelect:"none"}}},A=I=>{const{antCls:H,componentCls:Y,cardShadow:D,cardHeadPadding:_,colorBorderSecondary:ue,boxShadowTertiary:be,cardPaddingBase:ce,extraColor:he}=I;return{[Y]:Object.assign(Object.assign({},(0,g.Wf)(I)),{position:"relative",background:I.colorBgContainer,borderRadius:I.borderRadiusLG,[`&:not(${Y}-bordered)`]:{boxShadow:be},[`${Y}-head`]:x(I),[`${Y}-extra`]:{marginInlineStart:"auto",color:he,fontWeight:"normal",fontSize:I.fontSize},[`${Y}-body`]:Object.assign({padding:ce,borderRadius:` 0 0 ${I.borderRadiusLG}px ${I.borderRadiusLG}px`},(0,g.dF)()),[`${Y}-grid`]:Z(I),[`${Y}-cover`]:{"> *":{display:"block",width:"100%"},[`img, img + ${H}-image-mask`]:{borderRadius:`${I.borderRadiusLG}px ${I.borderRadiusLG}px 0 0`}},[`${Y}-actions`]:B(I),[`${Y}-meta`]:w(I)}),[`${Y}-bordered`]:{border:`${I.lineWidth}px ${I.lineType} ${ue}`,[`${Y}-cover`]:{marginTop:-1,marginInlineStart:-1,marginInlineEnd:-1}},[`${Y}-hoverable`]:{cursor:"pointer",transition:`box-shadow ${I.motionDurationMid}, border-color ${I.motionDurationMid}`,"&:hover":{borderColor:"transparent",boxShadow:D}},[`${Y}-contain-grid`]:{[`${Y}-body`]:{display:"flex",flexWrap:"wrap"},[`&:not(${Y}-loading) ${Y}-body`]:{marginBlockStart:-I.lineWidth,marginInlineStart:-I.lineWidth,padding:0}},[`${Y}-contain-tabs`]:{[`> ${Y}-head`]:{[`${Y}-head-title, ${Y}-extra`]:{paddingTop:_}}},[`${Y}-type-inner`]:T(I),[`${Y}-loading`]:F(I),[`${Y}-rtl`]:{direction:"rtl"}}},L=I=>{const{componentCls:H,cardPaddingSM:Y,headerHeightSM:D,headerFontSizeSM:_}=I;return{[`${H}-small`]:{[`> ${H}-head`]:{minHeight:D,padding:`0 ${Y}px`,fontSize:_,[`> ${H}-head-wrapper`]:{[`> ${H}-extra`]:{fontSize:I.fontSize}}},[`> ${H}-body`]:{padding:Y}},[`${H}-small${H}-contain-tabs`]:{[`> ${H}-head`]:{[`${H}-head-title, ${H}-extra`]:{minHeight:D,paddingTop:0,display:"flex",alignItems:"center"}}}}};var O=(0,S.Z)("Card",I=>{const H=(0,j.TS)(I,{cardShadow:I.boxShadowCard,cardHeadPadding:I.padding,cardPaddingBase:I.paddingLG,cardActionsIconSize:I.fontSize,cardPaddingSM:12});return[A(H),L(H)]},I=>({headerBg:"transparent",headerFontSize:I.fontSizeLG,headerFontSizeSM:I.fontSize,headerHeight:I.fontSizeLG*I.lineHeightLG+I.padding*2,headerHeightSM:I.fontSize*I.lineHeight+I.paddingXS*2,actionsBg:I.colorBgContainer,actionsLiMargin:`${I.paddingSM}px 0`,tabsMarginBottom:-I.padding-I.lineWidth,extraColor:I.colorText})),$=function(I,H){var Y={};for(var D in I)Object.prototype.hasOwnProperty.call(I,D)&&H.indexOf(D)<0&&(Y[D]=I[D]);if(I!=null&&typeof Object.getOwnPropertySymbols=="function")for(var _=0,D=Object.getOwnPropertySymbols(I);_s.createElement("li",{style:{width:`${100/I.length}%`},key:`action-${Y}`},s.createElement("span",null,H)))}var U=s.forwardRef((I,H)=>{const{prefixCls:Y,className:D,rootClassName:_,style:ue,extra:be,headStyle:ce={},bodyStyle:he={},title:Fe,loading:Je,bordered:et=!0,size:ae,type:yt,cover:Pt,actions:bt,tabList:Ct,children:Le,activeTabKey:Ke,defaultActiveTabKey:st,tabBarExtraContent:We,hoverable:ge,tabProps:X={}}=I,W=$(I,["prefixCls","className","rootClassName","style","extra","headStyle","bodyStyle","title","loading","bordered","size","type","cover","actions","tabList","children","activeTabKey","defaultActiveTabKey","tabBarExtraContent","hoverable","tabProps"]),{getPrefixCls:R,direction:N,card:oe}=s.useContext(n.E_),ve=ut=>{var rt;(rt=I.onTabChange)===null||rt===void 0||rt.call(I,ut)},te=s.useMemo(()=>{let ut=!1;return s.Children.forEach(Le,rt=>{rt&&rt.type&&rt.type===y&&(ut=!0)}),ut},[Le]),me=R("card",Y),[we,xe]=O(me),Se=s.createElement(l.Z,{loading:!0,active:!0,paragraph:{rows:4},title:!1},Le),ke=Ke!==void 0,ne=Object.assign(Object.assign({},X),{[ke?"activeKey":"defaultActiveKey"]:ke?Ke:st,tabBarExtraContent:We});let re;const se=(0,c.Z)(ae),Ee=!se||se==="default"?"large":se,Re=Ct?s.createElement(d.Z,Object.assign({size:Ee},ne,{className:`${me}-head-tabs`,onChange:ve,items:Ct.map(ut=>{var{tab:rt}=ut,qe=$(ut,["tab"]);return Object.assign({label:rt},qe)})})):null;(Fe||be||Re)&&(re=s.createElement("div",{className:`${me}-head`,style:ce},s.createElement("div",{className:`${me}-head-wrapper`},Fe&&s.createElement("div",{className:`${me}-head-title`},Fe),be&&s.createElement("div",{className:`${me}-extra`},be)),Re));const fe=Pt?s.createElement("div",{className:`${me}-cover`},Pt):null,_e=s.createElement("div",{className:`${me}-body`,style:he},Je?Se:Le),Pe=bt&&bt.length?s.createElement("ul",{className:`${me}-actions`},P(bt)):null,ze=(0,o.Z)(W,["onTabChange"]),Qe=t()(me,oe==null?void 0:oe.className,{[`${me}-loading`]:Je,[`${me}-bordered`]:et,[`${me}-hoverable`]:ge,[`${me}-contain-grid`]:te,[`${me}-contain-tabs`]:Ct&&Ct.length,[`${me}-${se}`]:se,[`${me}-type-${yt}`]:!!yt,[`${me}-rtl`]:N==="rtl"},D,_,xe),gt=Object.assign(Object.assign({},oe==null?void 0:oe.style),ue);return we(s.createElement("div",Object.assign({ref:H},ze,{className:Qe,style:gt}),re,fe,_e,Pe))}),ee=function(I,H){var Y={};for(var D in I)Object.prototype.hasOwnProperty.call(I,D)&&H.indexOf(D)<0&&(Y[D]=I[D]);if(I!=null&&typeof Object.getOwnPropertySymbols=="function")for(var _=0,D=Object.getOwnPropertySymbols(I);_{const{prefixCls:H,className:Y,avatar:D,title:_,description:ue}=I,be=ee(I,["prefixCls","className","avatar","title","description"]),{getPrefixCls:ce}=s.useContext(n.E_),he=ce("card",H),Fe=t()(`${he}-meta`,Y),Je=D?s.createElement("div",{className:`${he}-meta-avatar`},D):null,et=_?s.createElement("div",{className:`${he}-meta-title`},_):null,ae=ue?s.createElement("div",{className:`${he}-meta-description`},ue):null,yt=et||ae?s.createElement("div",{className:`${he}-meta-detail`},et,ae):null;return s.createElement("div",Object.assign({},be,{className:Fe}),Je,yt)};const G=U;G.Grid=y,G.Meta=Q;var q=G},38904:function(M,b,e){"use strict";e.d(b,{Z:function(){return $}});var a=e(87608),t=e.n(a),o=e(60357),s=e(58757),n=e(61836),c=e(92428),l=e(81496),h=s.createContext(null),p=e(7316),y=e(37486),g=e(78856),S=function(P,K){var U={};for(var ee in P)Object.prototype.hasOwnProperty.call(P,ee)&&K.indexOf(ee)<0&&(U[ee]=P[ee]);if(P!=null&&typeof Object.getOwnPropertySymbols=="function")for(var le=0,ee=Object.getOwnPropertySymbols(P);le{var U;const{prefixCls:ee,className:le,rootClassName:Q,children:G,indeterminate:q=!1,style:I,onMouseEnter:H,onMouseLeave:Y,skipGroup:D=!1,disabled:_}=P,ue=S(P,["prefixCls","className","rootClassName","children","indeterminate","style","onMouseEnter","onMouseLeave","skipGroup","disabled"]),{getPrefixCls:be,direction:ce,checkbox:he}=s.useContext(n.E_),Fe=s.useContext(h),{isFormItemInput:Je}=s.useContext(l.aM),et=s.useContext(c.Z),ae=(U=(Fe==null?void 0:Fe.disabled)||_)!==null&&U!==void 0?U:et,yt=s.useRef(ue.value);s.useEffect(()=>{Fe==null||Fe.registerValue(ue.value)},[]),s.useEffect(()=>{if(!D)return ue.value!==yt.current&&(Fe==null||Fe.cancelValue(yt.current),Fe==null||Fe.registerValue(ue.value),yt.current=ue.value),()=>Fe==null?void 0:Fe.cancelValue(ue.value)},[ue.value]);const Pt=be("checkbox",ee),[bt,Ct]=(0,p.ZP)(Pt),Le=Object.assign({},ue);Fe&&!D&&(Le.onChange=function(){ue.onChange&&ue.onChange.apply(ue,arguments),Fe.toggleOption&&Fe.toggleOption({label:G,value:ue.value})},Le.name=Fe.name,Le.checked=Fe.value.includes(ue.value));const Ke=t()(`${Pt}-wrapper`,{[`${Pt}-rtl`]:ce==="rtl",[`${Pt}-wrapper-checked`]:Le.checked,[`${Pt}-wrapper-disabled`]:ae,[`${Pt}-wrapper-in-form-item`]:Je},he==null?void 0:he.className,le,Q,Ct),st=t()({[`${Pt}-indeterminate`]:q},g.A,Ct),We=q?"mixed":void 0;return bt(s.createElement(y.Z,{component:"Checkbox",disabled:ae},s.createElement("label",{className:Ke,style:Object.assign(Object.assign({},he==null?void 0:he.style),I),onMouseEnter:H,onMouseLeave:Y},s.createElement(o.Z,Object.assign({"aria-checked":We},Le,{prefixCls:Pt,className:st,disabled:ae,ref:K})),G!==void 0&&s.createElement("span",null,G))))};var Z=s.forwardRef(j),B=e(29140),w=e(98186),T=function(P,K){var U={};for(var ee in P)Object.prototype.hasOwnProperty.call(P,ee)&&K.indexOf(ee)<0&&(U[ee]=P[ee]);if(P!=null&&typeof Object.getOwnPropertySymbols=="function")for(var le=0,ee=Object.getOwnPropertySymbols(P);le{const{defaultValue:U,children:ee,options:le=[],prefixCls:Q,className:G,rootClassName:q,style:I,onChange:H}=P,Y=T(P,["defaultValue","children","options","prefixCls","className","rootClassName","style","onChange"]),{getPrefixCls:D,direction:_}=s.useContext(n.E_),[ue,be]=s.useState(Y.value||U||[]),[ce,he]=s.useState([]);s.useEffect(()=>{"value"in Y&&be(Y.value||[])},[Y.value]);const Fe=s.useMemo(()=>le.map(ge=>typeof ge=="string"||typeof ge=="number"?{label:ge,value:ge}:ge),[le]),Je=ge=>{he(X=>X.filter(W=>W!==ge))},et=ge=>{he(X=>[].concat((0,B.Z)(X),[ge]))},ae=ge=>{const X=ue.indexOf(ge.value),W=(0,B.Z)(ue);X===-1?W.push(ge.value):W.splice(X,1),"value"in Y||be(W),H==null||H(W.filter(R=>ce.includes(R)).sort((R,N)=>{const oe=Fe.findIndex(te=>te.value===R),ve=Fe.findIndex(te=>te.value===N);return oe-ve}))},yt=D("checkbox",Q),Pt=`${yt}-group`,[bt,Ct]=(0,p.ZP)(yt),Le=(0,w.Z)(Y,["value","disabled"]),Ke=le.length?Fe.map(ge=>s.createElement(Z,{prefixCls:yt,key:ge.value.toString(),disabled:"disabled"in ge?ge.disabled:Y.disabled,value:ge.value,checked:ue.includes(ge.value),onChange:ge.onChange,className:`${Pt}-item`,style:ge.style,title:ge.title},ge.label)):ee,st={toggleOption:ae,value:ue,disabled:Y.disabled,name:Y.name,registerValue:et,cancelValue:Je},We=t()(Pt,{[`${Pt}-rtl`]:_==="rtl"},G,q,Ct);return bt(s.createElement("div",Object.assign({className:We,style:I},Le,{ref:K}),s.createElement(h.Provider,{value:st},Ke)))},A=s.forwardRef(F);var L=s.memo(A);const O=Z;O.Group=L,O.__ANT_CHECKBOX=!0;var $=O},7316:function(M,b,e){"use strict";e.d(b,{C2:function(){return n}});var a=e(78330),t=e(22151),o=e(52628);const s=c=>{const{checkboxCls:l}=c,d=`${l}-wrapper`;return[{[`${l}-group`]:Object.assign(Object.assign({},(0,a.Wf)(c)),{display:"inline-flex",flexWrap:"wrap",columnGap:c.marginXS,[`> ${c.antCls}-row`]:{flex:1}}),[d]:Object.assign(Object.assign({},(0,a.Wf)(c)),{display:"inline-flex",alignItems:"baseline",cursor:"pointer","&:after":{display:"inline-block",width:0,overflow:"hidden",content:"'\\a0'"},[`& + ${d}`]:{marginInlineStart:0},[`&${d}-in-form-item`]:{'input[type="checkbox"]':{width:14,height:14}}}),[l]:Object.assign(Object.assign({},(0,a.Wf)(c)),{position:"relative",whiteSpace:"nowrap",lineHeight:1,cursor:"pointer",borderRadius:c.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)(c))},[`${l}-inner`]:{boxSizing:"border-box",position:"relative",top:0,insetInlineStart:0,display:"block",width:c.checkboxSize,height:c.checkboxSize,direction:"ltr",backgroundColor:c.colorBgContainer,border:`${c.lineWidth}px ${c.lineType} ${c.colorBorder}`,borderRadius:c.borderRadiusSM,borderCollapse:"separate",transition:`all ${c.motionDurationSlow}`,"&:after":{boxSizing:"border-box",position:"absolute",top:"50%",insetInlineStart:"21.5%",display:"table",width:c.checkboxSize/14*5,height:c.checkboxSize/14*8,border:`${c.lineWidthBold}px solid ${c.colorWhite}`,borderTop:0,borderInlineStart:0,transform:"rotate(45deg) scale(0) translate(-50%,-50%)",opacity:0,content:'""',transition:`all ${c.motionDurationFast} ${c.motionEaseInBack}, opacity ${c.motionDurationFast}`}},"& + span":{paddingInlineStart:c.paddingXS,paddingInlineEnd:c.paddingXS}})},{[` + ${d}:not(${d}-disabled), + ${l}:not(${l}-disabled) + `]:{[`&:hover ${l}-inner`]:{borderColor:c.colorPrimary}},[`${d}:not(${d}-disabled)`]:{[`&:hover ${l}-checked:not(${l}-disabled) ${l}-inner`]:{backgroundColor:c.colorPrimaryHover,borderColor:"transparent"},[`&:hover ${l}-checked:not(${l}-disabled):after`]:{borderColor:c.colorPrimaryHover}}},{[`${l}-checked`]:{[`${l}-inner`]:{backgroundColor:c.colorPrimary,borderColor:c.colorPrimary,"&:after":{opacity:1,transform:"rotate(45deg) scale(1) translate(-50%,-50%)",transition:`all ${c.motionDurationMid} ${c.motionEaseOutBack} ${c.motionDurationFast}`}}},[` + ${d}-checked:not(${d}-disabled), + ${l}-checked:not(${l}-disabled) + `]:{[`&:hover ${l}-inner`]:{backgroundColor:c.colorPrimaryHover,borderColor:"transparent"}}},{[l]:{"&-indeterminate":{[`${l}-inner`]:{backgroundColor:c.colorBgContainer,borderColor:c.colorBorder,"&:after":{top:"50%",insetInlineStart:"50%",width:c.fontSizeLG/2,height:c.fontSizeLG/2,backgroundColor:c.colorPrimary,border:0,transform:"translate(-50%, -50%) scale(1)",opacity:1,content:'""'}}}}},{[`${d}-disabled`]:{cursor:"not-allowed"},[`${l}-disabled`]:{[`&, ${l}-input`]:{cursor:"not-allowed",pointerEvents:"none"},[`${l}-inner`]:{background:c.colorBgContainerDisabled,borderColor:c.colorBorder,"&:after":{borderColor:c.colorTextDisabled}},"&:after":{display:"none"},"& + span":{color:c.colorTextDisabled},[`&${l}-indeterminate ${l}-inner::after`]:{background:c.colorTextDisabled}}}]};function n(c,l){const d=(0,t.TS)(l,{checkboxCls:`.${c}`,checkboxSize:l.controlInteractiveSize});return[s(d)]}b.ZP=(0,o.Z)("Checkbox",(c,l)=>{let{prefixCls:d}=l;return[n(d,c)]})},82968:function(M,b,e){"use strict";e.d(b,{Z:function(){return Ct}});var a=e(91169),t=e(87608),o=e.n(t),s=e(28314),n=e(29140),c=e(38790),l=e(60409),d=e(75556),h=e(58757),p=e(60698),y=e(47075),g=e(42156),S=e(37734),j=e(17598),x=e(29639),Z=h.forwardRef(function(Le,Ke){var st,We=Le.prefixCls,ge=Le.forceRender,X=Le.className,W=Le.style,R=Le.children,N=Le.isActive,oe=Le.role,ve=h.useState(N||ge),te=(0,s.Z)(ve,2),me=te[0],we=te[1];return h.useEffect(function(){(ge||N)&&we(!0)},[ge,N]),me?h.createElement("div",{ref:Ke,className:o()("".concat(We,"-content"),(st={},(0,S.Z)(st,"".concat(We,"-content-active"),N),(0,S.Z)(st,"".concat(We,"-content-inactive"),!N),st),X),style:W,role:oe},h.createElement("div",{className:"".concat(We,"-content-box")},R)):null});Z.displayName="PanelContent";var B=Z,w=["showArrow","headerClass","isActive","onItemClick","forceRender","className","prefixCls","collapsible","accordion","panelKey","extra","header","expandIcon","openMotion","destroyInactivePanel","children"],T=h.forwardRef(function(Le,Ke){var st,We,ge=Le.showArrow,X=ge===void 0?!0:ge,W=Le.headerClass,R=Le.isActive,N=Le.onItemClick,oe=Le.forceRender,ve=Le.className,te=Le.prefixCls,me=Le.collapsible,we=Le.accordion,xe=Le.panelKey,Se=Le.extra,ke=Le.header,ne=Le.expandIcon,re=Le.openMotion,se=Le.destroyInactivePanel,Ee=Le.children,Re=(0,y.Z)(Le,w),fe=me==="disabled",_e=me==="header",Pe=me==="icon",ze=Se!=null&&typeof Se!="boolean",Qe=function(){N==null||N(xe)},gt=function(Oe){(Oe.key==="Enter"||Oe.keyCode===x.Z.ENTER||Oe.which===x.Z.ENTER)&&Qe()},ut=typeof ne=="function"?ne(Le):h.createElement("i",{className:"arrow"});ut&&(ut=h.createElement("div",{className:"".concat(te,"-expand-icon"),onClick:["header","icon"].includes(me)?Qe:void 0},ut));var rt=o()((st={},(0,S.Z)(st,"".concat(te,"-item"),!0),(0,S.Z)(st,"".concat(te,"-item-active"),R),(0,S.Z)(st,"".concat(te,"-item-disabled"),fe),st),ve),qe=o()(W,(We={},(0,S.Z)(We,"".concat(te,"-header"),!0),(0,S.Z)(We,"".concat(te,"-header-collapsible-only"),_e),(0,S.Z)(We,"".concat(te,"-icon-collapsible-only"),Pe),We)),Ve={className:qe,"aria-expanded":R,"aria-disabled":fe,onKeyDown:gt};return!_e&&!Pe&&(Ve.onClick=Qe,Ve.role=we?"tab":"button",Ve.tabIndex=fe?-1:0),h.createElement("div",(0,p.Z)({},Re,{ref:Ke,className:rt}),h.createElement("div",Ve,X&&ut,h.createElement("span",{className:"".concat(te,"-header-text"),onClick:me==="header"?Qe:void 0},ke),ze&&h.createElement("div",{className:"".concat(te,"-extra")},Se)),h.createElement(j.ZP,(0,p.Z)({visible:R,leavedClassName:"".concat(te,"-content-hidden")},re,{forceRender:oe,removeOnLeave:se}),function(tt,Oe){var Me=tt.className,Ne=tt.style;return h.createElement(B,{ref:Oe,prefixCls:te,className:Me,style:Ne,isActive:R,forceRender:oe,role:we?"tabpanel":void 0},Ee)}))}),F=T,A=["children","label","key","collapsible","onItemClick","destroyInactivePanel"],L=function(Ke,st){var We=st.prefixCls,ge=st.accordion,X=st.collapsible,W=st.destroyInactivePanel,R=st.onItemClick,N=st.activeKey,oe=st.openMotion,ve=st.expandIcon;return Ke.map(function(te,me){var we=te.children,xe=te.label,Se=te.key,ke=te.collapsible,ne=te.onItemClick,re=te.destroyInactivePanel,se=(0,y.Z)(te,A),Ee=String(Se!=null?Se:me),Re=ke!=null?ke:X,fe=re!=null?re:W,_e=function(Qe){Re!=="disabled"&&(R(Qe),ne==null||ne(Qe))},Pe=!1;return ge?Pe=N[0]===Ee:Pe=N.indexOf(Ee)>-1,h.createElement(F,(0,p.Z)({},se,{prefixCls:We,key:Ee,panelKey:Ee,isActive:Pe,accordion:ge,openMotion:oe,expandIcon:ve,header:xe,collapsible:Re,onItemClick:_e,destroyInactivePanel:fe}),we)})},O=function(Ke,st,We){if(!Ke)return null;var ge=We.prefixCls,X=We.accordion,W=We.collapsible,R=We.destroyInactivePanel,N=We.onItemClick,oe=We.activeKey,ve=We.openMotion,te=We.expandIcon,me=Ke.key||String(st),we=Ke.props,xe=we.header,Se=we.headerClass,ke=we.destroyInactivePanel,ne=we.collapsible,re=we.onItemClick,se=!1;X?se=oe[0]===me:se=oe.indexOf(me)>-1;var Ee=ne!=null?ne:W,Re=function(Pe){Ee!=="disabled"&&(N(Pe),re==null||re(Pe))},fe={key:me,panelKey:me,header:xe,headerClass:Se,isActive:se,prefixCls:ge,destroyInactivePanel:ke!=null?ke:R,openMotion:ve,accordion:X,children:Ke.props.children,onItemClick:Re,expandIcon:te,collapsible:Ee};return typeof Ke.type=="string"?Ke:(Object.keys(fe).forEach(function(_e){typeof fe[_e]=="undefined"&&delete fe[_e]}),h.cloneElement(Ke,fe))};function $(Le,Ke,st){return Array.isArray(Le)?L(Le,st):(0,g.Z)(Ke).map(function(We,ge){return O(We,ge,st)})}var P=$;function K(Le){var Ke=Le;if(!Array.isArray(Ke)){var st=(0,c.Z)(Ke);Ke=st==="number"||st==="string"?[Ke]:[]}return Ke.map(function(We){return String(We)})}var U=h.forwardRef(function(Le,Ke){var st=Le.prefixCls,We=st===void 0?"rc-collapse":st,ge=Le.destroyInactivePanel,X=ge===void 0?!1:ge,W=Le.style,R=Le.accordion,N=Le.className,oe=Le.children,ve=Le.collapsible,te=Le.openMotion,me=Le.expandIcon,we=Le.activeKey,xe=Le.defaultActiveKey,Se=Le.onChange,ke=Le.items,ne=o()(We,N),re=(0,l.Z)([],{value:we,onChange:function(ze){return Se==null?void 0:Se(ze)},defaultValue:xe,postState:K}),se=(0,s.Z)(re,2),Ee=se[0],Re=se[1],fe=function(ze){return Re(function(){if(R)return Ee[0]===ze?[]:[ze];var Qe=Ee.indexOf(ze),gt=Qe>-1;return gt?Ee.filter(function(ut){return ut!==ze}):[].concat((0,n.Z)(Ee),[ze])})};(0,d.ZP)(!oe,"`children` will be removed in next major version. Please use `items` instead.");var _e=P(ke,oe,{prefixCls:We,accordion:R,openMotion:te,expandIcon:me,collapsible:ve,destroyInactivePanel:X,onItemClick:fe,activeKey:Ee});return h.createElement("div",{ref:Ke,className:ne,style:W,role:R?"tablist":void 0},_e)}),ee=Object.assign(U,{Panel:F}),le=ee,Q=ee.Panel,G=e(98186),q=e(90881),I=e(37047),H=e(61836),Y=e(58785),_=h.forwardRef((Le,Ke)=>{const{getPrefixCls:st}=h.useContext(H.E_),{prefixCls:We,className:ge,showArrow:X=!0}=Le,W=st("collapse",We),R=o()({[`${W}-no-arrow`]:!X},ge);return h.createElement(le.Panel,Object.assign({ref:Ke},Le,{prefixCls:W,className:R}))}),ue=e(78330),be=e(41086),ce=e(52628),he=e(22151);const Fe=Le=>{const{componentCls:Ke,collapseContentBg:st,padding:We,collapseContentPaddingHorizontal:ge,collapseHeaderBg:X,collapseHeaderPadding:W,collapseHeaderPaddingSM:R,collapseHeaderPaddingLG:N,collapsePanelBorderRadius:oe,lineWidth:ve,lineType:te,colorBorder:me,colorText:we,colorTextHeading:xe,colorTextDisabled:Se,fontSize:ke,fontSizeLG:ne,lineHeight:re,marginSM:se,paddingSM:Ee,paddingLG:Re,paddingXS:fe,motionDurationSlow:_e,fontSizeIcon:Pe}=Le,ze=`${ve}px ${te} ${me}`;return{[Ke]:Object.assign(Object.assign({},(0,ue.Wf)(Le)),{backgroundColor:X,border:ze,borderBottom:0,borderRadius:`${oe}px`,["&-rtl"]:{direction:"rtl"},[`& > ${Ke}-item`]:{borderBottom:ze,["&:last-child"]:{[` + &, + & > ${Ke}-header`]:{borderRadius:`0 0 ${oe}px ${oe}px`}},[`> ${Ke}-header`]:{position:"relative",display:"flex",flexWrap:"nowrap",alignItems:"flex-start",padding:W,paddingInlineStart:Ee,color:xe,lineHeight:re,cursor:"pointer",transition:`all ${_e}, visibility 0s`,[`> ${Ke}-header-text`]:{flex:"auto"},"&:focus":{outline:"none"},[`${Ke}-expand-icon`]:{height:ke*re,display:"flex",alignItems:"center",paddingInlineEnd:se,marginInlineStart:We-Ee},[`${Ke}-arrow`]:Object.assign(Object.assign({},(0,ue.Ro)()),{fontSize:Pe,svg:{transition:`transform ${_e}`}}),[`${Ke}-header-text`]:{marginInlineEnd:"auto"}},[`${Ke}-header-collapsible-only`]:{cursor:"default",[`${Ke}-header-text`]:{flex:"none",cursor:"pointer"}},[`${Ke}-icon-collapsible-only`]:{cursor:"default",[`${Ke}-expand-icon`]:{cursor:"pointer"}}},[`${Ke}-content`]:{color:we,backgroundColor:st,borderTop:ze,[`& > ${Ke}-content-box`]:{padding:`${We}px ${ge}px`},["&-hidden"]:{display:"none"}},["&-small"]:{[`> ${Ke}-item`]:{[`> ${Ke}-header`]:{padding:R,paddingInlineStart:fe,[`> ${Ke}-expand-icon`]:{marginInlineStart:Ee-fe}},[`> ${Ke}-content > ${Ke}-content-box`]:{padding:Ee}}},["&-large"]:{[`> ${Ke}-item`]:{fontSize:ne,[`> ${Ke}-header`]:{padding:N,paddingInlineStart:We,[`> ${Ke}-expand-icon`]:{height:ne*re,marginInlineStart:Re-We}},[`> ${Ke}-content > ${Ke}-content-box`]:{padding:Re}}},[`${Ke}-item:last-child`]:{[`> ${Ke}-content`]:{borderRadius:`0 0 ${oe}px ${oe}px`}},[`& ${Ke}-item-disabled > ${Ke}-header`]:{[` + &, + & > .arrow + `]:{color:Se,cursor:"not-allowed"}},[`&${Ke}-icon-position-end`]:{[`& > ${Ke}-item`]:{[`> ${Ke}-header`]:{[`${Ke}-expand-icon`]:{order:1,paddingInlineEnd:0,paddingInlineStart:se}}}}})}},Je=Le=>{const{componentCls:Ke}=Le,st=`> ${Ke}-item > ${Ke}-header ${Ke}-arrow svg`;return{[`${Ke}-rtl`]:{[st]:{transform:"rotate(180deg)"}}}},et=Le=>{const{componentCls:Ke,collapseHeaderBg:st,paddingXXS:We,colorBorder:ge}=Le;return{[`${Ke}-borderless`]:{backgroundColor:st,border:0,[`> ${Ke}-item`]:{borderBottom:`1px solid ${ge}`},[` + > ${Ke}-item:last-child, + > ${Ke}-item:last-child ${Ke}-header + `]:{borderRadius:0},[`> ${Ke}-item:last-child`]:{borderBottom:0},[`> ${Ke}-item > ${Ke}-content`]:{backgroundColor:"transparent",borderTop:0},[`> ${Ke}-item > ${Ke}-content > ${Ke}-content-box`]:{paddingTop:We}}}},ae=Le=>{const{componentCls:Ke,paddingSM:st}=Le;return{[`${Ke}-ghost`]:{backgroundColor:"transparent",border:0,[`> ${Ke}-item`]:{borderBottom:0,[`> ${Ke}-content`]:{backgroundColor:"transparent",border:0,[`> ${Ke}-content-box`]:{paddingBlock:st}}}}}};var yt=(0,ce.Z)("Collapse",Le=>{const Ke=(0,he.TS)(Le,{collapseContentBg:Le.colorBgContainer,collapseHeaderBg:Le.colorFillAlter,collapseHeaderPadding:`${Le.paddingSM}px ${Le.padding}px`,collapseHeaderPaddingSM:`${Le.paddingXS}px ${Le.paddingSM}px`,collapseHeaderPaddingLG:`${Le.padding}px ${Le.paddingLG}px`,collapsePanelBorderRadius:Le.borderRadiusLG,collapseContentPaddingHorizontal:16});return[Fe(Ke),et(Ke),ae(Ke),Je(Ke),(0,be.Z)(Ke)]}),bt=Object.assign(h.forwardRef((Le,Ke)=>{const{getPrefixCls:st,direction:We,collapse:ge}=h.useContext(H.E_),{prefixCls:X,className:W,rootClassName:R,style:N,bordered:oe=!0,ghost:ve,size:te,expandIconPosition:me="start",children:we,expandIcon:xe}=Le,Se=(0,Y.Z)(ze=>{var Qe;return(Qe=te!=null?te:ze)!==null&&Qe!==void 0?Qe:"middle"}),ke=st("collapse",X),ne=st(),[re,se]=yt(ke),Ee=h.useMemo(()=>me==="left"?"start":me==="right"?"end":me,[me]),Re=function(){let ze=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const Qe=xe?xe(ze):h.createElement(a.Z,{rotate:ze.isActive?90:void 0});return(0,I.Tm)(Qe,()=>({className:o()(Qe.props.className,`${ke}-arrow`)}))},fe=o()(`${ke}-icon-position-${Ee}`,{[`${ke}-borderless`]:!oe,[`${ke}-rtl`]:We==="rtl",[`${ke}-ghost`]:!!ve,[`${ke}-${Se}`]:Se!=="middle"},ge==null?void 0:ge.className,W,R,se),_e=Object.assign(Object.assign({},(0,q.Z)(ne)),{motionAppear:!1,leavedClassName:`${ke}-content-hidden`}),Pe=h.useMemo(()=>we?(0,g.Z)(we).map((ze,Qe)=>{var gt,ut;if(!((gt=ze.props)===null||gt===void 0)&>.disabled){const rt=(ut=ze.key)!==null&&ut!==void 0?ut:String(Qe),{disabled:qe,collapsible:Ve}=ze.props,tt=Object.assign(Object.assign({},(0,G.Z)(ze.props,["disabled"])),{key:rt,collapsible:Ve!=null?Ve:qe?"disabled":void 0});return(0,I.Tm)(ze,tt)}return ze}):null,[we]);return re(h.createElement(le,Object.assign({ref:Ke,openMotion:_e},(0,G.Z)(Le,["rootClassName"]),{expandIcon:Re,prefixCls:ke,className:fe,style:Object.assign(Object.assign({},ge==null?void 0:ge.style),N)}),Pe))}),{Panel:_}),Ct=bt},92428:function(M,b,e){"use strict";e.d(b,{n:function(){return o}});var a=e(58757);const t=a.createContext(!1),o=s=>{let{children:n,disabled:c}=s;const l=a.useContext(t);return a.createElement(t.Provider,{value:c!=null?c:l},n)};b.Z=t},33446:function(M,b,e){"use strict";e.d(b,{q:function(){return o}});var a=e(58757);const t=a.createContext(void 0),o=s=>{let{children:n,size:c}=s;const l=a.useContext(t);return a.createElement(t.Provider,{value:c||l},n)};b.Z=t},61836:function(M,b,e){"use strict";e.d(b,{E_:function(){return s},oR:function(){return t}});var a=e(58757);const t="anticon",o=(c,l)=>l||(c?`ant-${c}`:"ant"),s=a.createContext({getPrefixCls:o,iconPrefixCls:t}),{Consumer:n}=s},10401:function(M,b,e){"use strict";var a=e(58757),t=e(61836),o=e(17444);const s=n=>{const{componentName:c}=n,{getPrefixCls:l}=(0,a.useContext)(t.E_),d=l("empty");switch(c){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:`${d}-small`});default:return a.createElement(o.Z,null)}};b.Z=s},58785:function(M,b,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])};b.Z=o},42505:function(M,b,e){"use strict";e.d(b,{ZP:function(){return Ct},w6:function(){return yt}});var a=e(57793),t=e(71048),o=e(27903),s=e(16766),n=e(58757),c=e(48736),l=e(67228),d=e(10520);const h="internalMark";var y=Le=>{const{locale:Ke={},children:st,_ANT_MARK__:We}=Le;n.useEffect(()=>(0,l.f)(Ke&&Ke.Modal),[Ke]);const ge=n.useMemo(()=>Object.assign(Object.assign({},Ke),{exist:!0}),[Ke]);return n.createElement(d.Z.Provider,{value:ge},st)},g=e(80076),S=e(83631),j=e(28378),x=e(61836),Z=e(26134),B=e(66671),w=e(19075),T=e(39678);const F=`-ant-${Date.now()}-${Math.random()}`;function A(Le,Ke){const st={},We=(W,R)=>{let N=W.clone();return N=(R==null?void 0:R(N))||N,N.toRgbString()},ge=(W,R)=>{const N=new B.C(W),oe=(0,Z.generate)(N.toRgbString());st[`${R}-color`]=We(N),st[`${R}-color-disabled`]=oe[1],st[`${R}-color-hover`]=oe[4],st[`${R}-color-active`]=oe[6],st[`${R}-color-outline`]=N.clone().setAlpha(.2).toRgbString(),st[`${R}-color-deprecated-bg`]=oe[0],st[`${R}-color-deprecated-border`]=oe[2]};if(Ke.primaryColor){ge(Ke.primaryColor,"primary");const W=new B.C(Ke.primaryColor),R=(0,Z.generate)(W.toRgbString());R.forEach((oe,ve)=>{st[`primary-${ve+1}`]=oe}),st["primary-color-deprecated-l-35"]=We(W,oe=>oe.lighten(35)),st["primary-color-deprecated-l-20"]=We(W,oe=>oe.lighten(20)),st["primary-color-deprecated-t-20"]=We(W,oe=>oe.tint(20)),st["primary-color-deprecated-t-50"]=We(W,oe=>oe.tint(50)),st["primary-color-deprecated-f-12"]=We(W,oe=>oe.setAlpha(oe.getAlpha()*.12));const N=new B.C(R[0]);st["primary-color-active-deprecated-f-30"]=We(N,oe=>oe.setAlpha(oe.getAlpha()*.3)),st["primary-color-active-deprecated-d-02"]=We(N,oe=>oe.darken(2))}return Ke.successColor&&ge(Ke.successColor,"success"),Ke.warningColor&&ge(Ke.warningColor,"warning"),Ke.errorColor&&ge(Ke.errorColor,"error"),Ke.infoColor&&ge(Ke.infoColor,"info"),` + :root { + ${Object.keys(st).map(W=>`--${Le}-${W}: ${st[W]};`).join(` +`)} + } + `.trim()}function L(Le,Ke){const st=A(Le,Ke);(0,w.Z)()&&(0,T.hq)(st,`${F}-dynamic-theme`)}var O=e(92428),$=e(33446);function P(){const Le=(0,n.useContext)(O.Z),Ke=(0,n.useContext)($.Z);return{componentDisabled:Le,componentSize:Ke}}var K=P,U=e(7637);function ee(Le,Ke){const st=Le||{},We=st.inherit===!1||!Ke?S.u_:Ke;return(0,o.Z)(()=>{if(!Le)return Ke;const ge=Object.assign({},We.components);return Object.keys(Le.components||{}).forEach(X=>{ge[X]=Object.assign(Object.assign({},ge[X]),Le.components[X])}),Object.assign(Object.assign(Object.assign({},We),st),{token:Object.assign(Object.assign({},We.token),st.token),components:ge})},[st,We],(ge,X)=>ge.some((W,R)=>{const N=X[R];return!(0,U.Z)(W,N,!0)}))}var le=e(17598),Q=e(51806);function G(Le){const{children:Ke}=Le,[,st]=(0,Q.Z)(),{motion:We}=st,ge=n.useRef(!1);return ge.current=ge.current||We===!1,ge.current?n.createElement(le.zt,{motion:We},Ke):Ke}var q=e(60619),I=function(Le,Ke){var st={};for(var We in Le)Object.prototype.hasOwnProperty.call(Le,We)&&Ke.indexOf(We)<0&&(st[We]=Le[We]);if(Le!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ge=0,We=Object.getOwnPropertySymbols(Le);geKe.endsWith("Color"))}const ae=Le=>{let{prefixCls:Ke,iconPrefixCls:st,theme:We}=Le;Ke!==void 0&&(be=Ke),st!==void 0&&(ce=st),We&&(et(We)?L(Fe(),We):he=We)},yt=()=>({getPrefixCls:(Le,Ke)=>Ke||(Le?`${Fe()}-${Le}`:Fe()),getIconPrefixCls:Je,getRootPrefixCls:()=>be||Fe(),getTheme:()=>he}),Pt=Le=>{const{children:Ke,csp:st,autoInsertSpaceInButton:We,alert:ge,anchor:X,form:W,locale:R,componentSize:N,direction:oe,space:ve,virtual:te,dropdownMatchSelectWidth:me,popupMatchSelectWidth:we,popupOverflow:xe,legacyLocale:Se,parentContext:ke,iconPrefixCls:ne,theme:re,componentDisabled:se,segmented:Ee,statistic:Re,spin:fe,calendar:_e,carousel:Pe,cascader:ze,collapse:Qe,typography:gt,checkbox:ut,descriptions:rt,divider:qe,drawer:Ve,skeleton:tt,steps:Oe,image:Me,layout:Ne,list:Te,mentions:Be,modal:nt,progress:ot,result:wt,slider:Et,breadcrumb:nn,menu:$t,pagination:fn,input:ln,empty:Wt,badge:$e,radio:De,rate:jt,switch:Ft,transfer:Xe,avatar:at,message:Bt,tag:Zt,table:Qt,card:rn,tabs:hn,timeline:on,timePicker:Rn,upload:zn,notification:lr,tree:ur,colorPicker:zt,datePicker:Kt,wave:Vt}=Le,dn=n.useCallback((vt,St)=>{const{prefixCls:Mt}=Le;if(St)return St;const Nt=Mt||ke.getPrefixCls("");return vt?`${Nt}-${vt}`:Nt},[ke.getPrefixCls,Le.prefixCls]),pn=ne||ke.iconPrefixCls||x.oR,en=pn!==ke.iconPrefixCls,mt=st||ke.csp,pt=(0,q.Z)(pn,mt),an=ee(re,ke.theme),qt={csp:mt,autoInsertSpaceInButton:We,alert:ge,anchor:X,locale:R||Se,direction:oe,space:ve,virtual:te,popupMatchSelectWidth:we!=null?we:me,popupOverflow:xe,getPrefixCls:dn,iconPrefixCls:pn,theme:an,segmented:Ee,statistic:Re,spin:fe,calendar:_e,carousel:Pe,cascader:ze,collapse:Qe,typography:gt,checkbox:ut,descriptions:rt,divider:qe,drawer:Ve,skeleton:tt,steps:Oe,image:Me,input:ln,layout:Ne,list:Te,mentions:Be,modal:nt,progress:ot,result:wt,slider:Et,breadcrumb:nn,menu:$t,pagination:fn,empty:Wt,badge:$e,radio:De,rate:jt,switch:Ft,transfer:Xe,avatar:at,message:Bt,tag:Zt,table:Qt,card:rn,tabs:hn,timeline:on,timePicker:Rn,upload:zn,notification:lr,tree:ur,colorPicker:zt,datePicker:Kt,wave:Vt},Yt=Object.assign({},ke);Object.keys(qt).forEach(vt=>{qt[vt]!==void 0&&(Yt[vt]=qt[vt])}),_.forEach(vt=>{const St=Le[vt];St&&(Yt[vt]=St)});const mn=(0,o.Z)(()=>Yt,Yt,(vt,St)=>{const Mt=Object.keys(vt),Nt=Object.keys(St);return Mt.length!==Nt.length||Mt.some(sn=>vt[sn]!==St[sn])}),gn=n.useMemo(()=>({prefixCls:pn,csp:mt}),[pn,mt]);let kn=en?pt(Ke):Ke;const tr=n.useMemo(()=>{var vt,St,Mt,Nt;return(0,s.T)(((vt=g.Z.Form)===null||vt===void 0?void 0:vt.defaultValidateMessages)||{},((Mt=(St=mn.locale)===null||St===void 0?void 0:St.Form)===null||Mt===void 0?void 0:Mt.defaultValidateMessages)||{},((Nt=mn.form)===null||Nt===void 0?void 0:Nt.validateMessages)||{},(W==null?void 0:W.validateMessages)||{})},[mn,W==null?void 0:W.validateMessages]);Object.keys(tr).length>0&&(kn=n.createElement(c.Z.Provider,{value:tr},Ke)),R&&(kn=n.createElement(y,{locale:R,_ANT_MARK__:h},kn)),(pn||mt)&&(kn=n.createElement(t.Z.Provider,{value:gn},kn)),N&&(kn=n.createElement($.q,{size:N},kn)),kn=n.createElement(G,null,kn);const ft=n.useMemo(()=>{const vt=an||{},{algorithm:St,token:Mt,components:Nt}=vt,sn=I(vt,["algorithm","token","components"]),Xt=St&&(!Array.isArray(St)||St.length>0)?(0,a.jG)(St):S.uH,Cn={};return Object.entries(Nt||{}).forEach(Ln=>{let[hr,qn]=Ln;const Nn=Object.assign({},qn);"algorithm"in Nn&&(Nn.algorithm===!0?Nn.theme=Xt:(Array.isArray(Nn.algorithm)||typeof Nn.algorithm=="function")&&(Nn.theme=(0,a.jG)(Nn.algorithm)),delete Nn.algorithm),Cn[hr]=Nn}),Object.assign(Object.assign({},sn),{theme:Xt,token:Object.assign(Object.assign({},j.Z),Mt),components:Cn})},[an]);return re&&(kn=n.createElement(S.Mj.Provider,{value:ft},kn)),se!==void 0&&(kn=n.createElement(O.n,{disabled:se},kn)),n.createElement(x.E_.Provider,{value:mn},kn)},bt=Le=>{const Ke=n.useContext(x.E_),st=n.useContext(d.Z);return n.createElement(Pt,Object.assign({parentContext:Ke,legacyLocale:st},Le))};bt.ConfigContext=x.E_,bt.SizeContext=$.Z,bt.config=ae,bt.useConfig=K,Object.defineProperty(bt,"SizeContext",{get:()=>$.Z});var Ct=bt},7056:function(M,b,e){"use strict";e.d(b,{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(M,b,e){"use strict";e.d(b,{Z:function(){return g}});var a=e(87608),t=e.n(a),o=e(58757),s=e(61836),n=e(78330),c=e(52628),l=e(22151);const d=S=>{const{componentCls:j,sizePaddingEdgeHorizontal:x,colorSplit:Z,lineWidth:B}=S;return{[j]:Object.assign(Object.assign({},(0,n.Wf)(S)),{borderBlockStart:`${B}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:`${B}px solid ${Z}`},"&-horizontal":{display:"flex",clear:"both",width:"100%",minWidth:"100%",margin:`${S.dividerHorizontalGutterMargin}px 0`},[`&-horizontal${j}-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:`${B}px solid transparent`,borderBlockStartColor:"inherit",borderBlockEnd:0,transform:"translateY(50%)",content:"''"}},[`&-horizontal${j}-with-text-left`]:{"&::before":{width:"5%"},"&::after":{width:"95%"}},[`&-horizontal${j}-with-text-right`]:{"&::before":{width:"95%"},"&::after":{width:"5%"}},[`${j}-inner-text`]:{display:"inline-block",padding:"0 1em"},"&-dashed":{background:"none",borderColor:Z,borderStyle:"dashed",borderWidth:`${B}px 0 0`},[`&-horizontal${j}-with-text${j}-dashed`]:{"&::before, &::after":{borderStyle:"dashed none none"}},[`&-vertical${j}-dashed`]:{borderInlineStartWidth:B,borderInlineEnd:0,borderBlockStart:0,borderBlockEnd:0},[`&-plain${j}-with-text`]:{color:S.colorText,fontWeight:"normal",fontSize:S.fontSize},[`&-horizontal${j}-with-text-left${j}-no-default-orientation-margin-left`]:{"&::before":{width:0},"&::after":{width:"100%"},[`${j}-inner-text`]:{paddingInlineStart:x}},[`&-horizontal${j}-with-text-right${j}-no-default-orientation-margin-right`]:{"&::before":{width:"100%"},"&::after":{width:0},[`${j}-inner-text`]:{paddingInlineEnd:x}}})}};var h=(0,c.Z)("Divider",S=>{const j=(0,l.TS)(S,{dividerVerticalGutterMargin:S.marginXS,dividerHorizontalWithTextGutterMargin:S.margin,dividerHorizontalGutterMargin:S.marginLG});return[d(j)]},{sizePaddingEdgeHorizontal:0}),p=function(S,j){var x={};for(var Z in S)Object.prototype.hasOwnProperty.call(S,Z)&&j.indexOf(Z)<0&&(x[Z]=S[Z]);if(S!=null&&typeof Object.getOwnPropertySymbols=="function")for(var B=0,Z=Object.getOwnPropertySymbols(S);B{const{getPrefixCls:j,direction:x,divider:Z}=o.useContext(s.E_),{prefixCls:B,type:w="horizontal",orientation:T="center",orientationMargin:F,className:A,rootClassName:L,children:O,dashed:$,plain:P,style:K}=S,U=p(S,["prefixCls","type","orientation","orientationMargin","className","rootClassName","children","dashed","plain","style"]),ee=j("divider",B),[le,Q]=h(ee),G=T.length>0?`-${T}`:T,q=!!O,I=T==="left"&&F!=null,H=T==="right"&&F!=null,Y=t()(ee,Z==null?void 0:Z.className,Q,`${ee}-${w}`,{[`${ee}-with-text`]:q,[`${ee}-with-text${G}`]:q,[`${ee}-dashed`]:!!$,[`${ee}-plain`]:!!P,[`${ee}-rtl`]:x==="rtl",[`${ee}-no-default-orientation-margin-left`]:I,[`${ee}-no-default-orientation-margin-right`]:H},A,L),D=o.useMemo(()=>typeof F=="number"?F:/^\d+$/.test(F)?Number(F):F,[F]),_=Object.assign(Object.assign({},I&&{marginLeft:D}),H&&{marginRight:D});return le(o.createElement("div",Object.assign({className:Y,style:Object.assign(Object.assign({},Z==null?void 0:Z.style),K)},U,{role:"separator"}),O&&w!=="vertical"&&o.createElement("span",{className:`${ee}-inner-text`,style:_},O)))}},40627:function(M,b,e){"use strict";var a=e(91169),t=e(87608),o=e.n(t),s=e(4933),n=e(51729),c=e(60409),l=e(98186),d=e(58757),h=e(15018),p=e(95446),y=e(37047),g=e(61836),S=e(85706),j=e(81285),x=e(22802),Z=e(78607);const B=null,w=L=>{const{menu:O,arrow:$,prefixCls:P,children:K,trigger:U,disabled:ee,dropdownRender:le,getPopupContainer:Q,overlayClassName:G,rootClassName:q,open:I,onOpenChange:H,visible:Y,onVisibleChange:D,mouseEnterDelay:_=.15,mouseLeaveDelay:ue=.1,autoAdjustOverflow:be=!0,placement:ce="",overlay:he,transitionName:Fe}=L,{getPopupContainer:Je,getPrefixCls:et,direction:ae}=d.useContext(g.E_),yt=d.useMemo(()=>{const we=et();return Fe!==void 0?Fe:ce.includes("top")?`${we}-slide-down`:`${we}-slide-up`},[et,ce,Fe]),Pt=d.useMemo(()=>ce?ce.includes("Center")?ce.slice(0,ce.indexOf("Center")):ce:ae==="rtl"?"bottomRight":"bottomLeft",[ce,ae]),bt=et("dropdown",P),[Ct,Le]=(0,Z.Z)(bt),{token:Ke}=x.Z.useToken(),st=d.Children.only(K),We=(0,y.Tm)(st,{className:o()(`${bt}-trigger`,{[`${bt}-rtl`]:ae==="rtl"},st.props.className),disabled:ee}),ge=ee?[]:U;let X;ge&&ge.includes("contextMenu")&&(X=!0);const[W,R]=(0,c.Z)(!1,{value:I!=null?I:Y}),N=(0,n.Z)(we=>{H==null||H(we),D==null||D(we),R(we)}),oe=o()(G,q,Le,{[`${bt}-rtl`]:ae==="rtl"}),ve=(0,p.Z)({arrowPointAtCenter:typeof $=="object"&&$.pointAtCenter,autoAdjustOverflow:be,offset:Ke.marginXXS,arrowWidth:$?Ke.sizePopupArrow:0,borderRadius:Ke.borderRadius}),te=d.useCallback(()=>{R(!1)},[]),me=()=>{let we;return O!=null&&O.items?we=d.createElement(S.Z,Object.assign({},O)):typeof he=="function"?we=he():we=he,le&&(we=le(we)),we=d.Children.only(typeof we=="string"?d.createElement("span",null,we):we),d.createElement(j.J,{prefixCls:`${bt}-menu`,expandIcon:d.createElement("span",{className:`${bt}-menu-submenu-arrow`},d.createElement(a.Z,{className:`${bt}-menu-submenu-arrow-icon`})),mode:"vertical",selectable:!1,onClick:te,validator:xe=>{let{mode:Se}=xe}},we)};return Ct(d.createElement(s.Z,Object.assign({alignPoint:X},(0,l.Z)(L,["rootClassName"]),{mouseEnterDelay:_,mouseLeaveDelay:ue,visible:W,builtinPlacements:ve,arrow:!!$,overlayClassName:oe,prefixCls:bt,getPopupContainer:Q||Je,transitionName:yt,trigger:ge,overlay:me,placement:Pt,onVisibleChange:N}),We))};function T(L){return Object.assign(Object.assign({},L),{align:{overflow:{adjustX:!1,adjustY:!1}}})}const F=(0,h.Z)(w,"dropdown",L=>L,T),A=L=>d.createElement(F,Object.assign({},L),d.createElement("span",null));w._InternalPanelDoNotUseOrYouWillBeFired=A,b.Z=w},73267:function(M,b,e){"use strict";e.d(b,{Z:function(){return x}});var a=e(40627),t=e(87608),o=e.n(t),s=e(58757),n=e(18974),c=e(12562),l=e(61836),d=e(57414),h=e(43528),p=e(78607),y=function(Z,B){var w={};for(var T in Z)Object.prototype.hasOwnProperty.call(Z,T)&&B.indexOf(T)<0&&(w[T]=Z[T]);if(Z!=null&&typeof Object.getOwnPropertySymbols=="function")for(var F=0,T=Object.getOwnPropertySymbols(Z);F{const{getPopupContainer:B,getPrefixCls:w,direction:T}=s.useContext(l.E_),{prefixCls:F,type:A="default",danger:L,disabled:O,loading:$,onClick:P,htmlType:K,children:U,className:ee,menu:le,arrow:Q,autoFocus:G,overlay:q,trigger:I,align:H,open:Y,onOpenChange:D,placement:_,getPopupContainer:ue,href:be,icon:ce=s.createElement(n.Z,null),title:he,buttonsRender:Fe=me=>me,mouseEnterDelay:Je,mouseLeaveDelay:et,overlayClassName:ae,overlayStyle:yt,destroyPopupOnHide:Pt,dropdownRender:bt}=Z,Ct=y(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"]),Le=w("dropdown",F),Ke=`${Le}-button`,[st,We]=(0,p.Z)(Le),ge={menu:le,arrow:Q,autoFocus:G,align:H,disabled:O,trigger:O?[]:I,onOpenChange:D,getPopupContainer:ue||B,mouseEnterDelay:Je,mouseLeaveDelay:et,overlayClassName:ae,overlayStyle:yt,destroyPopupOnHide:Pt,dropdownRender:bt},{compactSize:X,compactItemClassnames:W}=(0,h.ri)(Le,T),R=o()(Ke,W,ee,We);"overlay"in Z&&(ge.overlay=q),"open"in Z&&(ge.open=Y),"placement"in Z?ge.placement=_:ge.placement=T==="rtl"?"bottomLeft":"bottomRight";const N=s.createElement(c.ZP,{type:A,danger:L,disabled:O,loading:$,onClick:P,htmlType:K,href:be,title:he},U),oe=s.createElement(c.ZP,{type:A,danger:L,icon:ce}),[ve,te]=Fe([N,oe]);return st(s.createElement(d.Z.Compact,Object.assign({className:R,size:X,block:!0},Ct),ve,s.createElement(a.Z,Object.assign({},ge),te)))};g.__ANT_BUTTON=!0;var S=g;const j=a.Z;j.Button=S;var x=j},78607:function(M,b,e){"use strict";e.d(b,{Z:function(){return y}});var a=e(78330),t=e(1016),o=e(1546),s=e(28107),n=e(24542),c=e(52628),l=e(22151),h=g=>{const{componentCls:S,menuCls:j,colorError:x,colorTextLightSolid:Z}=g,B=`${j}-item`;return{[`${S}, ${S}-menu-submenu`]:{[`${j} ${B}`]:{[`&${B}-danger:not(${B}-disabled)`]:{color:x,"&:hover":{color:Z,backgroundColor:x}}}}}};const p=g=>{const{componentCls:S,menuCls:j,zIndexPopup:x,dropdownArrowDistance:Z,sizePopupArrow:B,antCls:w,iconCls:T,motionDurationMid:F,dropdownPaddingVertical:A,fontSize:L,dropdownEdgeChildPadding:O,colorTextDisabled:$,fontSizeIcon:P,controlPaddingHorizontal:K,colorBgElevated:U}=g;return[{[S]:Object.assign(Object.assign({},(0,a.Wf)(g)),{position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:x,display:"block","&::before":{position:"absolute",insetBlock:-Z+B/2,zIndex:-9999,opacity:1e-4,content:'""'},[`&-trigger${w}-btn`]:{[`& > ${T}-down, & > ${w}-btn-icon > ${T}-down`]:{fontSize:P}},[`${S}-wrap`]:{position:"relative",[`${w}-btn > ${T}-down`]:{fontSize:P},[`${T}-down::before`]:{transition:`transform ${F}`}},[`${S}-wrap-open`]:{[`${T}-down::before`]:{transform:"rotate(180deg)"}},[` + &-hidden, + &-menu-hidden, + &-menu-submenu-hidden + `]:{display:"none"},[`&${w}-slide-down-enter${w}-slide-down-enter-active${S}-placement-bottomLeft, + &${w}-slide-down-appear${w}-slide-down-appear-active${S}-placement-bottomLeft, + &${w}-slide-down-enter${w}-slide-down-enter-active${S}-placement-bottom, + &${w}-slide-down-appear${w}-slide-down-appear-active${S}-placement-bottom, + &${w}-slide-down-enter${w}-slide-down-enter-active${S}-placement-bottomRight, + &${w}-slide-down-appear${w}-slide-down-appear-active${S}-placement-bottomRight`]:{animationName:t.fJ},[`&${w}-slide-up-enter${w}-slide-up-enter-active${S}-placement-topLeft, + &${w}-slide-up-appear${w}-slide-up-appear-active${S}-placement-topLeft, + &${w}-slide-up-enter${w}-slide-up-enter-active${S}-placement-top, + &${w}-slide-up-appear${w}-slide-up-appear-active${S}-placement-top, + &${w}-slide-up-enter${w}-slide-up-enter-active${S}-placement-topRight, + &${w}-slide-up-appear${w}-slide-up-appear-active${S}-placement-topRight`]:{animationName:t.Qt},[`&${w}-slide-down-leave${w}-slide-down-leave-active${S}-placement-bottomLeft, + &${w}-slide-down-leave${w}-slide-down-leave-active${S}-placement-bottom, + &${w}-slide-down-leave${w}-slide-down-leave-active${S}-placement-bottomRight`]:{animationName:t.Uw},[`&${w}-slide-up-leave${w}-slide-up-leave-active${S}-placement-topLeft, + &${w}-slide-up-leave${w}-slide-up-leave-active${S}-placement-top, + &${w}-slide-up-leave${w}-slide-up-leave-active${S}-placement-topRight`]:{animationName:t.ly}})},(0,n.ZP)(g,{colorBg:U,limitVerticalRadius:!0,arrowPlacement:{top:!0,bottom:!0}}),{[`${S} ${j}`]:{position:"relative",margin:0},[`${j}-submenu-popup`]:{position:"absolute",zIndex:x,background:"transparent",boxShadow:"none",transformOrigin:"0 0","ul, li":{listStyle:"none",margin:0}},[`${S}, ${S}-menu-submenu`]:{[j]:Object.assign(Object.assign({padding:O,listStyleType:"none",backgroundColor:U,backgroundClip:"padding-box",borderRadius:g.borderRadiusLG,outline:"none",boxShadow:g.boxShadowSecondary},(0,a.Qy)(g)),{[`${j}-item-group-title`]:{padding:`${A}px ${K}px`,color:g.colorTextDescription,transition:`all ${F}`},[`${j}-item`]:{position:"relative",display:"flex",alignItems:"center"},[`${j}-item-icon`]:{minWidth:L,marginInlineEnd:g.marginXS,fontSize:g.fontSizeSM},[`${j}-title-content`]:{flex:"auto","> a":{color:"inherit",transition:`all ${F}`,"&:hover":{color:"inherit"},"&::after":{position:"absolute",inset:0,content:'""'}}},[`${j}-item, ${j}-submenu-title`]:Object.assign(Object.assign({clear:"both",margin:0,padding:`${A}px ${K}px`,color:g.colorText,fontWeight:"normal",fontSize:L,lineHeight:g.lineHeight,cursor:"pointer",transition:`all ${F}`,borderRadius:g.borderRadiusSM,["&:hover, &-active"]:{backgroundColor:g.controlItemBgHover}},(0,a.Qy)(g)),{"&-selected":{color:g.colorPrimary,backgroundColor:g.controlItemBgActive,"&:hover, &-active":{backgroundColor:g.controlItemBgActiveHover}},"&-disabled":{color:$,cursor:"not-allowed","&:hover":{color:$,backgroundColor:U,cursor:"not-allowed"},a:{pointerEvents:"none"}},"&-divider":{height:1,margin:`${g.marginXXS}px 0`,overflow:"hidden",lineHeight:0,backgroundColor:g.colorSplit},[`${S}-menu-submenu-expand-icon`]:{position:"absolute",insetInlineEnd:g.paddingXS,[`${S}-menu-submenu-arrow-icon`]:{marginInlineEnd:"0 !important",color:g.colorTextDescription,fontSize:P,fontStyle:"normal"}}}),[`${j}-item-group-list`]:{margin:`0 ${g.marginXS}px`,padding:0,listStyle:"none"},[`${j}-submenu-title`]:{paddingInlineEnd:K+g.fontSizeSM},[`${j}-submenu-vertical`]:{position:"relative"},[`${j}-submenu${j}-submenu-disabled ${S}-menu-submenu-title`]:{[`&, ${S}-menu-submenu-arrow-icon`]:{color:$,backgroundColor:U,cursor:"not-allowed"}},[`${j}-submenu-selected ${S}-menu-submenu-title`]:{color:g.colorPrimary}})}},[(0,t.oN)(g,"slide-up"),(0,t.oN)(g,"slide-down"),(0,o.Fm)(g,"move-up"),(0,o.Fm)(g,"move-down"),(0,s._y)(g,"zoom-big")]]};var y=(0,c.Z)("Dropdown",(g,S)=>{let{rootPrefixCls:j}=S;const{marginXXS:x,sizePopupArrow:Z,controlHeight:B,fontSize:w,lineHeight:T,paddingXXS:F,componentCls:A,borderRadiusLG:L}=g,O=(B-w*T)/2,{dropdownArrowOffset:$}=(0,n.fS)({contentRadius:L}),P=(0,l.TS)(g,{menuCls:`${A}-menu`,rootPrefixCls:j,dropdownArrowDistance:Z/2+x,dropdownArrowOffset:$,dropdownPaddingVertical:O,dropdownEdgeChildPadding:F});return[p(P),h(P)]},g=>({zIndexPopup:g.zIndexPopupBase+50}))},17444:function(M,b,e){"use strict";e.d(b,{Z:function(){return F}});var a=e(87608),t=e.n(a),o=e(58757),s=e(61836),n=e(29487),c=e(66671),l=e(51806),h=()=>{const[,A]=(0,l.Z)(),O=new c.C(A.colorBgBase).toHsl().l<.5?{opacity:.65}:{};return o.createElement("svg",{style:O,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"}))))},y=()=>{const[,A]=(0,l.Z)(),{colorFill:L,colorFillTertiary:O,colorFillQuaternary:$,colorBgContainer:P}=A,{borderColor:K,shadowColor:U,contentColor:ee}=(0,o.useMemo)(()=>({borderColor:new c.C(L).onBackground(P).toHexShortString(),shadowColor:new c.C(O).onBackground(P).toHexShortString(),contentColor:new c.C($).onBackground(P).toHexShortString()}),[L,O,$,P]);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:U,cx:"32",cy:"33",rx:"32",ry:"7"}),o.createElement("g",{fillRule:"nonzero",stroke:K},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:ee}))))},g=e(52628),S=e(22151);const j=A=>{const{componentCls:L,margin:O,marginXS:$,marginXL:P,fontSize:K,lineHeight:U}=A;return{[L]:{marginInline:$,fontSize:K,lineHeight:U,textAlign:"center",[`${L}-image`]:{height:A.emptyImgHeight,marginBottom:$,opacity:A.opacityImage,img:{height:"100%"},svg:{maxWidth:"100%",height:"100%",margin:"auto"}},[`${L}-description`]:{color:A.colorText},[`${L}-footer`]:{marginTop:O},"&-normal":{marginBlock:P,color:A.colorTextDisabled,[`${L}-description`]:{color:A.colorTextDisabled},[`${L}-image`]:{height:A.emptyImgHeightMD}},"&-small":{marginBlock:$,color:A.colorTextDisabled,[`${L}-image`]:{height:A.emptyImgHeightSM}}}}};var x=(0,g.Z)("Empty",A=>{const{componentCls:L,controlHeightLG:O}=A,$=(0,S.TS)(A,{emptyImgCls:`${L}-img`,emptyImgHeight:O*2.5,emptyImgHeightMD:O,emptyImgHeightSM:O*.875});return[j($)]}),Z=function(A,L){var O={};for(var $ in A)Object.prototype.hasOwnProperty.call(A,$)&&L.indexOf($)<0&&(O[$]=A[$]);if(A!=null&&typeof Object.getOwnPropertySymbols=="function")for(var P=0,$=Object.getOwnPropertySymbols(A);P<$.length;P++)L.indexOf($[P])<0&&Object.prototype.propertyIsEnumerable.call(A,$[P])&&(O[$[P]]=A[$[P]]);return O};const B=o.createElement(h,null),w=o.createElement(y,null),T=A=>{var{className:L,rootClassName:O,prefixCls:$,image:P=B,description:K,children:U,imageStyle:ee,style:le}=A,Q=Z(A,["className","rootClassName","prefixCls","image","description","children","imageStyle","style"]);const{getPrefixCls:G,direction:q,empty:I}=o.useContext(s.E_),H=G("empty",$),[Y,D]=x(H),[_]=(0,n.Z)("Empty"),ue=typeof K!="undefined"?K:_==null?void 0:_.description,be=typeof ue=="string"?ue:"empty";let ce=null;return typeof P=="string"?ce=o.createElement("img",{alt:be,src:P}):ce=P,Y(o.createElement("div",Object.assign({className:t()(D,H,I==null?void 0:I.className,{[`${H}-normal`]:P===w,[`${H}-rtl`]:q==="rtl"},L,O),style:Object.assign(Object.assign({},I==null?void 0:I.style),le)},Q),o.createElement("div",{className:`${H}-image`,style:ee},ce),ue&&o.createElement("div",{className:`${H}-description`},ue),U&&o.createElement("div",{className:`${H}-footer`},U)))};T.PRESENTED_IMAGE_DEFAULT=B,T.PRESENTED_IMAGE_SIMPLE=w;var F=T},81496:function(M,b,e){"use strict";e.d(b,{RV:function(){return c},Rk:function(){return l},Ux:function(){return h},aM:function(){return d},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),c=p=>{const y=(0,t.Z)(p,["prefixCls"]);return o.createElement(a.RV,Object.assign({},y))},l=o.createContext({prefixCls:""}),d=o.createContext({}),h=p=>{let{children:y,status:g,override:S}=p;const j=(0,o.useContext)(d),x=(0,o.useMemo)(()=>{const Z=Object.assign({},j);return S&&delete Z.isFormItemInput,g&&(delete Z.status,delete Z.hasFeedback,delete Z.feedbackIcon),Z},[g,S,j]);return o.createElement(d.Provider,{value:x},y)}},47513:function(M,b,e){"use strict";e.d(b,{Z:function(){return $e}});var a=e(29140),t=e(87608),o=e.n(t),s=e(17598),n=e(58757),c=e(90881),l=e(81496);function d(De){const[jt,Ft]=n.useState(De);return n.useEffect(()=>{const Xe=setTimeout(()=>{Ft(De)},De.length?0:10);return()=>{clearTimeout(Xe)}},[De]),jt}var h=e(78330),p=e(28107),y=e(41086),g=e(52628),S=e(22151),x=De=>{const{componentCls:jt}=De,Ft=`${jt}-show-help`,Xe=`${jt}-show-help-item`;return{[Ft]:{transition:`opacity ${De.motionDurationSlow} ${De.motionEaseInOut}`,"&-appear, &-enter":{opacity:0,"&-active":{opacity:1}},"&-leave":{opacity:1,"&-active":{opacity:0}},[Xe]:{overflow:"hidden",transition:`height ${De.motionDurationSlow} ${De.motionEaseInOut}, + opacity ${De.motionDurationSlow} ${De.motionEaseInOut}, + transform ${De.motionDurationSlow} ${De.motionEaseInOut} !important`,[`&${Xe}-appear, &${Xe}-enter`]:{transform:"translateY(-5px)",opacity:0,["&-active"]:{transform:"translateY(0)",opacity:1}},[`&${Xe}-leave-active`]:{transform:"translateY(-5px)"}}}}};const Z=De=>({legend:{display:"block",width:"100%",marginBottom:De.marginLG,padding:0,color:De.colorTextDescription,fontSize:De.fontSizeLG,lineHeight:"inherit",border:0,borderBottom:`${De.lineWidth}px ${De.lineType} ${De.colorBorder}`},label:{fontSize:De.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 ${De.controlOutlineWidth}px ${De.controlOutline}`},output:{display:"block",paddingTop:15,color:De.colorText,fontSize:De.fontSize,lineHeight:De.lineHeight}}),B=(De,jt)=>{const{formItemCls:Ft}=De;return{[Ft]:{[`${Ft}-label > label`]:{height:jt},[`${Ft}-control-input`]:{minHeight:jt}}}},w=De=>{const{componentCls:jt}=De;return{[De.componentCls]:Object.assign(Object.assign(Object.assign({},(0,h.Wf)(De)),Z(De)),{[`${jt}-text`]:{display:"inline-block",paddingInlineEnd:De.paddingSM},"&-small":Object.assign({},B(De,De.controlHeightSM)),"&-large":Object.assign({},B(De,De.controlHeightLG))})}},T=De=>{const{formItemCls:jt,iconCls:Ft,componentCls:Xe,rootPrefixCls:at}=De;return{[jt]:Object.assign(Object.assign({},(0,h.Wf)(De)),{marginBottom:De.marginLG,verticalAlign:"top","&-with-help":{transition:"none"},[`&-hidden, + &-hidden.${at}-row`]:{display:"none"},"&-has-warning":{[`${jt}-split`]:{color:De.colorError}},"&-has-error":{[`${jt}-split`]:{color:De.colorWarning}},[`${jt}-label`]:{display:"inline-block",flexGrow:0,overflow:"hidden",whiteSpace:"nowrap",textAlign:"end",verticalAlign:"middle","&-left":{textAlign:"start"},"&-wrap":{overflow:"unset",lineHeight:`${De.lineHeight} - 0.25em`,whiteSpace:"unset"},"> label":{position:"relative",display:"inline-flex",alignItems:"center",maxWidth:"100%",height:De.controlHeight,color:De.colorTextHeading,fontSize:De.fontSize,[`> ${Ft}`]:{fontSize:De.fontSize,verticalAlign:"top"},[`&${jt}-required:not(${jt}-required-mark-optional)::before`]:{display:"inline-block",marginInlineEnd:De.marginXXS,color:De.colorError,fontSize:De.fontSize,fontFamily:"SimSun, sans-serif",lineHeight:1,content:'"*"',[`${Xe}-hide-required-mark &`]:{display:"none"}},[`${jt}-optional`]:{display:"inline-block",marginInlineStart:De.marginXXS,color:De.colorTextDescription,[`${Xe}-hide-required-mark &`]:{display:"none"}},[`${jt}-tooltip`]:{color:De.colorTextDescription,cursor:"help",writingMode:"horizontal-tb",marginInlineStart:De.marginXXS},"&::after":{content:'":"',position:"relative",marginBlock:0,marginInlineStart:De.marginXXS/2,marginInlineEnd:De.marginXS},[`&${jt}-no-colon::after`]:{content:'"\\a0"'}}},[`${jt}-control`]:{display:"flex",flexDirection:"column",flexGrow:1,[`&:first-child:not([class^="'${at}-col-'"]):not([class*="' ${at}-col-'"])`]:{width:"100%"},"&-input":{position:"relative",display:"flex",alignItems:"center",minHeight:De.controlHeight,"&-content":{flex:"auto",maxWidth:"100%"}}},[jt]:{"&-explain, &-extra":{clear:"both",color:De.colorTextDescription,fontSize:De.fontSize,lineHeight:De.lineHeight},"&-explain-connected":{width:"100%"},"&-extra":{minHeight:De.controlHeightSM,transition:`color ${De.motionDurationMid} ${De.motionEaseOut}`},"&-explain":{"&-error":{color:De.colorError},"&-warning":{color:De.colorWarning}}},[`&-with-help ${jt}-explain`]:{height:"auto",opacity:1},[`${jt}-feedback-icon`]:{fontSize:De.fontSize,textAlign:"center",visibility:"visible",animationName:p.kr,animationDuration:De.motionDurationMid,animationTimingFunction:De.motionEaseOutBack,pointerEvents:"none","&-success":{color:De.colorSuccess},"&-error":{color:De.colorError},"&-warning":{color:De.colorWarning},"&-validating":{color:De.colorPrimary}}})}},F=De=>{const{componentCls:jt,formItemCls:Ft,rootPrefixCls:Xe}=De;return{[`${jt}-horizontal`]:{[`${Ft}-label`]:{flexGrow:0},[`${Ft}-control`]:{flex:"1 1 0",minWidth:0},[`${Ft}-label.${Xe}-col-24 + ${Ft}-control`]:{minWidth:"unset"}}}},A=De=>{const{componentCls:jt,formItemCls:Ft}=De;return{[`${jt}-inline`]:{display:"flex",flexWrap:"wrap",[Ft]:{flex:"none",marginInlineEnd:De.margin,marginBottom:0,"&-row":{flexWrap:"nowrap"},[`> ${Ft}-label, + > ${Ft}-control`]:{display:"inline-block",verticalAlign:"top"},[`> ${Ft}-label`]:{flex:"none"},[`${jt}-text`]:{display:"inline-block"},[`${Ft}-has-feedback`]:{display:"inline-block"}}}}},L=De=>({padding:`0 0 ${De.paddingXS}px`,whiteSpace:"initial",textAlign:"start","> label":{margin:0,"&::after":{visibility:"hidden"}}}),O=De=>{const{componentCls:jt,formItemCls:Ft,rootPrefixCls:Xe}=De;return{[`${Ft} ${Ft}-label`]:L(De),[jt]:{[Ft]:{flexWrap:"wrap",[`${Ft}-label, ${Ft}-control`]:{[`&:not([class*=" ${Xe}-col-xs"])`]:{flex:"0 0 100%",maxWidth:"100%"}}}}}},$=De=>{const{componentCls:jt,formItemCls:Ft,rootPrefixCls:Xe}=De;return{[`${jt}-vertical`]:{[Ft]:{"&-row":{flexDirection:"column"},"&-label > label":{height:"auto"},[`${jt}-item-control`]:{width:"100%"}}},[`${jt}-vertical ${Ft}-label, + .${Xe}-col-24${Ft}-label, + .${Xe}-col-xl-24${Ft}-label`]:L(De),[`@media (max-width: ${De.screenXSMax}px)`]:[O(De),{[jt]:{[`.${Xe}-col-xs-24${Ft}-label`]:L(De)}}],[`@media (max-width: ${De.screenSMMax}px)`]:{[jt]:{[`.${Xe}-col-sm-24${Ft}-label`]:L(De)}},[`@media (max-width: ${De.screenMDMax}px)`]:{[jt]:{[`.${Xe}-col-md-24${Ft}-label`]:L(De)}},[`@media (max-width: ${De.screenLGMax}px)`]:{[jt]:{[`.${Xe}-col-lg-24${Ft}-label`]:L(De)}}}};var P=(0,g.Z)("Form",(De,jt)=>{let{rootPrefixCls:Ft}=jt;const Xe=(0,S.TS)(De,{formItemCls:`${De.componentCls}-item`,rootPrefixCls:Ft});return[w(Xe),T(Xe),x(Xe),F(Xe),A(Xe),$(Xe),(0,y.Z)(Xe),p.kr]});const K=[];function U(De,jt,Ft){let Xe=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;return{key:typeof De=="string"?De:`${jt}-${Xe}`,error:De,errorStatus:Ft}}var le=De=>{let{help:jt,helpStatus:Ft,errors:Xe=K,warnings:at=K,className:Bt,fieldId:Zt,onVisibleChanged:Qt}=De;const{prefixCls:rn}=n.useContext(l.Rk),hn=`${rn}-item-explain`,[,on]=P(rn),Rn=(0,n.useMemo)(()=>(0,c.Z)(rn),[rn]),zn=d(Xe),lr=d(at),ur=n.useMemo(()=>jt!=null?[U(jt,"help",Ft)]:[].concat((0,a.Z)(zn.map((Kt,Vt)=>U(Kt,"error","error",Vt))),(0,a.Z)(lr.map((Kt,Vt)=>U(Kt,"warning","warning",Vt)))),[jt,Ft,zn,lr]),zt={};return Zt&&(zt.id=`${Zt}_help`),n.createElement(s.ZP,{motionDeadline:Rn.motionDeadline,motionName:`${rn}-show-help`,visible:!!ur.length,onVisibleChanged:Qt},Kt=>{const{className:Vt,style:dn}=Kt;return n.createElement("div",Object.assign({},zt,{className:o()(hn,Vt,Bt,on),style:dn,role:"alert"}),n.createElement(s.V4,Object.assign({keys:ur},(0,c.Z)(rn),{motionName:`${rn}-show-help-item`,component:!1}),pn=>{const{key:en,error:mt,errorStatus:pt,className:an,style:qt}=pn;return n.createElement("div",{key:en,className:o()(an,{[`${hn}-${pt}`]:pt}),style:qt},mt)}))})},Q=e(94866),G=e(61836),q=e(92428),I=e(33446),H=e(58785),Y=e(18591);const D=["parentNode"],_="form_item";function ue(De){return De===void 0||De===!1?[]:Array.isArray(De)?De:[De]}function be(De,jt){if(!De.length)return;const Ft=De.join("_");return jt?`${jt}_${Ft}`:D.includes(Ft)?`${_}_${Ft}`:Ft}function ce(De){return ue(De).join("_")}function he(De){const[jt]=(0,Q.cI)(),Ft=n.useRef({}),Xe=n.useMemo(()=>De!=null?De:Object.assign(Object.assign({},jt),{__INTERNAL__:{itemRef:at=>Bt=>{const Zt=ce(at);Bt?Ft.current[Zt]=Bt:delete Ft.current[Zt]}},scrollToField:function(at){let Bt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const Zt=ue(at),Qt=be(Zt,Xe.__INTERNAL__.name),rn=Qt?document.getElementById(Qt):null;rn&&(0,Y.Z)(rn,Object.assign({scrollMode:"if-needed",block:"nearest"},Bt))},getFieldInstance:at=>{const Bt=ce(at);return Ft.current[Bt]}}),[De,jt]);return[Xe]}var Fe=e(48736),Je=function(De,jt){var Ft={};for(var Xe in De)Object.prototype.hasOwnProperty.call(De,Xe)&&jt.indexOf(Xe)<0&&(Ft[Xe]=De[Xe]);if(De!=null&&typeof Object.getOwnPropertySymbols=="function")for(var at=0,Xe=Object.getOwnPropertySymbols(De);at{const Ft=n.useContext(q.Z),{getPrefixCls:Xe,direction:at,form:Bt}=n.useContext(G.E_),{prefixCls:Zt,className:Qt,rootClassName:rn,size:hn,disabled:on=Ft,form:Rn,colon:zn,labelAlign:lr,labelWrap:ur,labelCol:zt,wrapperCol:Kt,hideRequiredMark:Vt,layout:dn="horizontal",scrollToFirstError:pn,requiredMark:en,onFinishFailed:mt,name:pt,style:an}=De,qt=Je(De,["prefixCls","className","rootClassName","size","disabled","form","colon","labelAlign","labelWrap","labelCol","wrapperCol","hideRequiredMark","layout","scrollToFirstError","requiredMark","onFinishFailed","name","style"]),Yt=(0,H.Z)(hn),mn=n.useContext(Fe.Z),gn=(0,n.useMemo)(()=>en!==void 0?en:Bt&&Bt.requiredMark!==void 0?Bt.requiredMark:!Vt,[Vt,en,Bt]),kn=zn!=null?zn:Bt==null?void 0:Bt.colon,tr=Xe("form",Zt),[ft,vt]=P(tr),St=o()(tr,`${tr}-${dn}`,{[`${tr}-hide-required-mark`]:gn===!1,[`${tr}-rtl`]:at==="rtl",[`${tr}-${Yt}`]:Yt},vt,Bt==null?void 0:Bt.className,Qt,rn),[Mt]=he(Rn),{__INTERNAL__:Nt}=Mt;Nt.name=pt;const sn=(0,n.useMemo)(()=>({name:pt,labelAlign:lr,labelCol:zt,labelWrap:ur,wrapperCol:Kt,vertical:dn==="vertical",colon:kn,requiredMark:gn,itemRef:Nt.itemRef,form:Mt}),[pt,lr,zt,Kt,dn,kn,gn,Mt]);n.useImperativeHandle(jt,()=>Mt);const Xt=(Ln,hr)=>{if(Ln){let qn={block:"nearest"};typeof Ln=="object"&&(qn=Ln),Mt.scrollToField(hr,qn)}},Cn=Ln=>{if(mt==null||mt(Ln),Ln.errorFields.length){const hr=Ln.errorFields[0].name;if(pn!==void 0){Xt(pn,hr);return}Bt&&Bt.scrollToFirstError!==void 0&&Xt(Bt.scrollToFirstError,hr)}};return ft(n.createElement(q.n,{disabled:on},n.createElement(I.q,{size:Yt},n.createElement(l.RV,{validateMessages:mn},n.createElement(l.q3.Provider,{value:sn},n.createElement(Q.ZP,Object.assign({id:pt},qt,{name:pt,onFinishFailed:Cn,form:Mt,style:Object.assign(Object.assign({},Bt==null?void 0:Bt.style),an),className:St})))))))};var yt=n.forwardRef(et),Pt=e(13989),bt=e(21319),Ct=e(37047);const Le=()=>{const{status:De,errors:jt=[],warnings:Ft=[]}=(0,n.useContext)(l.aM);return{status:De,errors:jt,warnings:Ft}};Le.Context=l.aM;var Ke=Le,st=e(61834);function We(De){const[jt,Ft]=n.useState(De),Xe=(0,n.useRef)(null),at=(0,n.useRef)([]),Bt=(0,n.useRef)(!1);n.useEffect(()=>(Bt.current=!1,()=>{Bt.current=!0,st.Z.cancel(Xe.current),Xe.current=null}),[]);function Zt(Qt){Bt.current||(Xe.current===null&&(at.current=[],Xe.current=(0,st.Z)(()=>{Xe.current=null,Ft(rn=>{let hn=rn;return at.current.forEach(on=>{hn=on(hn)}),hn})})),at.current.push(Qt))}return[jt,Zt]}function ge(){const{itemRef:De}=n.useContext(l.q3),jt=n.useRef({});function Ft(Xe,at){const Bt=at&&typeof at=="object"&&at.ref,Zt=Xe.join("_");return(jt.current.name!==Zt||jt.current.originRef!==Bt)&&(jt.current.name=Zt,jt.current.originRef=Bt,jt.current.ref=(0,bt.sQ)(De(Xe),Bt)),jt.current.ref}return Ft}var X=e(85678),W=e(79999),R=e(69831),N=e(25755),oe=e(81334),ve=e(46499),te=e(98186),me=e(67665),we=e(91334),Se=De=>{const{prefixCls:jt,status:Ft,wrapperCol:Xe,children:at,errors:Bt,warnings:Zt,_internalItemRender:Qt,extra:rn,help:hn,fieldId:on,marginBottom:Rn,onErrorVisibleChanged:zn}=De,lr=`${jt}-item`,ur=n.useContext(l.q3),zt=Xe||ur.wrapperCol||{},Kt=o()(`${lr}-control`,zt.className),Vt=n.useMemo(()=>Object.assign({},ur),[ur]);delete Vt.labelCol,delete Vt.wrapperCol;const dn=n.createElement("div",{className:`${lr}-control-input`},n.createElement("div",{className:`${lr}-control-input-content`},at)),pn=n.useMemo(()=>({prefixCls:jt,status:Ft}),[jt,Ft]),en=Rn!==null||Bt.length||Zt.length?n.createElement("div",{style:{display:"flex",flexWrap:"nowrap"}},n.createElement(l.Rk.Provider,{value:pn},n.createElement(le,{fieldId:on,errors:Bt,warnings:Zt,help:hn,helpStatus:Ft,className:`${lr}-explain-connected`,onVisibleChanged:zn})),!!Rn&&n.createElement("div",{style:{width:0,height:Rn}})):null,mt={};on&&(mt.id=`${on}_extra`);const pt=rn?n.createElement("div",Object.assign({},mt,{className:`${lr}-extra`}),rn):null,an=Qt&&Qt.mark==="pro_table_render"&&Qt.render?Qt.render(De,{input:dn,errorList:en,extra:pt}):n.createElement(n.Fragment,null,dn,en,pt);return n.createElement(l.q3.Provider,{value:Vt},n.createElement(we.Z,Object.assign({},zt,{className:Kt}),an))},ke=e(60698),ne={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"},re=ne,se=e(17202),Ee=function(jt,Ft){return n.createElement(se.Z,(0,ke.Z)({},jt,{ref:Ft,icon:re}))},Re=n.forwardRef(Ee),fe=e(80076),_e=e(29487),Pe=e(74820),ze=function(De,jt){var Ft={};for(var Xe in De)Object.prototype.hasOwnProperty.call(De,Xe)&&jt.indexOf(Xe)<0&&(Ft[Xe]=De[Xe]);if(De!=null&&typeof Object.getOwnPropertySymbols=="function")for(var at=0,Xe=Object.getOwnPropertySymbols(De);at{let{prefixCls:jt,label:Ft,htmlFor:Xe,labelCol:at,labelAlign:Bt,colon:Zt,required:Qt,requiredMark:rn,tooltip:hn}=De;var on;const[Rn]=(0,_e.Z)("Form"),{vertical:zn,labelAlign:lr,labelCol:ur,labelWrap:zt,colon:Kt}=n.useContext(l.q3);if(!Ft)return null;const Vt=at||ur||{},dn=Bt||lr,pn=`${jt}-item-label`,en=o()(pn,dn==="left"&&`${pn}-left`,Vt.className,{[`${pn}-wrap`]:!!zt});let mt=Ft;const pt=Zt===!0||Kt!==!1&&Zt!==!1;pt&&!zn&&typeof Ft=="string"&&Ft.trim()!==""&&(mt=Ft.replace(/[:|:]\s*$/,""));const qt=Qe(hn);if(qt){const{icon:mn=n.createElement(Re,null)}=qt,gn=ze(qt,["icon"]),kn=n.createElement(Pe.Z,Object.assign({},gn),n.cloneElement(mn,{className:`${jt}-item-tooltip`,title:""}));mt=n.createElement(n.Fragment,null,mt,kn)}rn==="optional"&&!Qt&&(mt=n.createElement(n.Fragment,null,mt,n.createElement("span",{className:`${jt}-item-optional`,title:""},(Rn==null?void 0:Rn.optional)||((on=fe.Z.Form)===null||on===void 0?void 0:on.optional))));const Yt=o()({[`${jt}-item-required`]:Qt,[`${jt}-item-required-mark-optional`]:rn==="optional",[`${jt}-item-no-colon`]:!pt});return n.createElement(we.Z,Object.assign({},Vt,{className:en}),n.createElement("label",{htmlFor:Xe,className:Yt,title:typeof Ft=="string"?Ft:""},mt))},rt=function(De,jt){var Ft={};for(var Xe in De)Object.prototype.hasOwnProperty.call(De,Xe)&&jt.indexOf(Xe)<0&&(Ft[Xe]=De[Xe]);if(De!=null&&typeof Object.getOwnPropertySymbols=="function")for(var at=0,Xe=Object.getOwnPropertySymbols(De);at{if(qt&&en.current){const Mt=getComputedStyle(en.current);gn(parseInt(Mt.marginBottom,10))}},[qt,Yt]);const kn=Mt=>{Mt||gn(null)},ft=function(){let Mt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,Nt="";const sn=Mt?mt:hn.errors,Xt=Mt?pt:hn.warnings;return rn!==void 0?Nt=rn:hn.validating?Nt="validating":sn.length?Nt="error":Xt.length?Nt="warning":(hn.touched||on&&hn.validated)&&(Nt="success"),Nt}(),vt=n.useMemo(()=>{let Mt;if(on){const Nt=ft&&qe[ft];Mt=Nt?n.createElement("span",{className:o()(`${dn}-feedback-icon`,`${dn}-feedback-icon-${ft}`)},n.createElement(Nt,null)):null}return{status:ft,errors:Zt,warnings:Qt,hasFeedback:on,feedbackIcon:Mt,isFormItemInput:!0}},[ft,on]),St=o()(dn,Ft,Xe,{[`${dn}-with-help`]:an||mt.length||pt.length,[`${dn}-has-feedback`]:ft&&on,[`${dn}-has-success`]:ft==="success",[`${dn}-has-warning`]:ft==="warning",[`${dn}-has-error`]:ft==="error",[`${dn}-is-validating`]:ft==="validating",[`${dn}-hidden`]:Rn});return n.createElement("div",{className:St,style:at,ref:en},n.createElement(me.Z,Object.assign({className:`${dn}-row`},(0,te.Z)(Vt,["_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(ut,Object.assign({htmlFor:lr},De,{requiredMark:pn,required:ur!=null?ur:zt,prefixCls:jt})),n.createElement(Se,Object.assign({},De,hn,{errors:mt,warnings:pt,prefixCls:jt,status:ft,help:Bt,marginBottom:mn,onErrorVisibleChanged:kn}),n.createElement(l.qI.Provider,{value:Kt},n.createElement(l.aM.Provider,{value:vt},zn)))),!!mn&&n.createElement("div",{className:`${dn}-margin-offset`,style:{marginBottom:-mn}}))}var tt=e(42156);function Oe(De){if(typeof De=="function")return De;const jt=(0,tt.Z)(De);return jt.length<=1?jt[0]:jt}const Me="__SPLIT__",Ne=null,Te=n.memo(De=>{let{children:jt}=De;return jt},(De,jt)=>De.value===jt.value&&De.update===jt.update&&De.childProps.length===jt.childProps.length&&De.childProps.every((Ft,Xe)=>Ft===jt.childProps[Xe]));function Be(De){return De!=null}function nt(){return{errors:[],warnings:[],touched:!1,validating:!1,name:[],validated:!1}}function ot(De){const{name:jt,noStyle:Ft,className:Xe,dependencies:at,prefixCls:Bt,shouldUpdate:Zt,rules:Qt,children:rn,required:hn,label:on,messageVariables:Rn,trigger:zn="onChange",validateTrigger:lr,hidden:ur,help:zt}=De,{getPrefixCls:Kt}=n.useContext(G.E_),{name:Vt}=n.useContext(l.q3),dn=Oe(rn),pn=typeof dn=="function",en=n.useContext(l.qI),{validateTrigger:mt}=n.useContext(Q.zb),pt=lr!==void 0?lr:mt,an=Be(jt),qt=Kt("form",Bt),[Yt,mn]=P(qt),gn=n.useContext(Q.ZM),kn=n.useRef(),[tr,ft]=We({}),[vt,St]=(0,Pt.Z)(()=>nt()),Mt=qn=>{const Nn=gn==null?void 0:gn.getKey(qn.name);if(St(qn.destroy?nt():qn,!0),Ft&&zt!==!1&&en){let $r=qn.name;if(qn.destroy)$r=kn.current||$r;else if(Nn!==void 0){const[gr,aa]=Nn;$r=[gr].concat((0,a.Z)(aa)),kn.current=$r}en(qn,$r)}},Nt=(qn,Nn)=>{ft($r=>{const gr=Object.assign({},$r),Pr=[].concat((0,a.Z)(qn.name.slice(0,-1)),(0,a.Z)(Nn)).join(Me);return qn.destroy?delete gr[Pr]:gr[Pr]=qn,gr})},[sn,Xt]=n.useMemo(()=>{const qn=(0,a.Z)(vt.errors),Nn=(0,a.Z)(vt.warnings);return Object.values(tr).forEach($r=>{qn.push.apply(qn,(0,a.Z)($r.errors||[])),Nn.push.apply(Nn,(0,a.Z)($r.warnings||[]))}),[qn,Nn]},[tr,vt.errors,vt.warnings]),Cn=ge();function Ln(qn,Nn,$r){return Ft&&!ur?qn:n.createElement(Ve,Object.assign({key:"row"},De,{className:o()(Xe,mn),prefixCls:qt,fieldId:Nn,isRequired:$r,errors:sn,warnings:Xt,meta:vt,onSubItemMetaChange:Nt}),qn)}if(!an&&!pn&&!at)return Yt(Ln(dn));let hr={};return typeof on=="string"?hr.label=on:jt&&(hr.label=String(jt)),Rn&&(hr=Object.assign(Object.assign({},hr),Rn)),Yt(n.createElement(Q.gN,Object.assign({},De,{messageVariables:hr,trigger:zn,validateTrigger:pt,onMetaChange:Mt}),(qn,Nn,$r)=>{const gr=ue(jt).length&&Nn?Nn.name:[],aa=be(gr,Vt),Pr=hn!==void 0?hn:!!(Qt&&Qt.some(wn=>{if(wn&&typeof wn=="object"&&wn.required&&!wn.warningOnly)return!0;if(typeof wn=="function"){const ar=wn($r);return ar&&ar.required&&!ar.warningOnly}return!1})),Fn=Object.assign({},qn);let En=null;if(Array.isArray(dn)&&an)En=dn;else if(!(pn&&(!(Zt||at)||an))){if(!(at&&!pn&&!an))if((0,Ct.l$)(dn)){const wn=Object.assign(Object.assign({},dn.props),Fn);if(wn.id||(wn.id=aa),zt||sn.length>0||Xt.length>0||De.extra){const Kr=[];(zt||sn.length>0)&&Kr.push(`${aa}_help`),De.extra&&Kr.push(`${aa}_extra`),wn["aria-describedby"]=Kr.join(" ")}sn.length>0&&(wn["aria-invalid"]="true"),Pr&&(wn["aria-required"]="true"),(0,bt.Yr)(dn)&&(wn.ref=Cn(gr,dn)),new Set([].concat((0,a.Z)(ue(zn)),(0,a.Z)(ue(pt)))).forEach(Kr=>{wn[Kr]=function(){for(var ea,ya,vr,zr,Oa,va=arguments.length,Vn=new Array(va),Bn=0;Bn{var{prefixCls:jt,children:Ft}=De,Xe=nn(De,["prefixCls","children"]);const{getPrefixCls:at}=n.useContext(G.E_),Bt=at("form",jt),Zt=n.useMemo(()=>({prefixCls:Bt,status:"error"}),[Bt]);return n.createElement(Q.aV,Object.assign({},Xe),(Qt,rn,hn)=>n.createElement(l.Rk.Provider,{value:Zt},Ft(Qt.map(on=>Object.assign(Object.assign({},on),{fieldKey:on.key})),rn,{errors:hn.errors,warnings:hn.warnings})))};function ln(){const{form:De}=(0,n.useContext)(l.q3);return De}const Wt=yt;Wt.Item=Et,Wt.List=fn,Wt.ErrorList=le,Wt.useForm=he,Wt.useFormInstance=ln,Wt.useWatch=Q.qo,Wt.Provider=l.RV,Wt.create=()=>{};var $e=Wt},48736:function(M,b,e){"use strict";var a=e(58757);b.Z=(0,a.createContext)(void 0)},35429:function(M,b,e){"use strict";var a=e(58757);const t=(0,a.createContext)({});b.Z=t},91334:function(M,b,e){"use strict";var a=e(87608),t=e.n(a),o=e(58757),s=e(61836),n=e(35429),c=e(58378),l=function(y,g){var S={};for(var j in y)Object.prototype.hasOwnProperty.call(y,j)&&g.indexOf(j)<0&&(S[j]=y[j]);if(y!=null&&typeof Object.getOwnPropertySymbols=="function")for(var x=0,j=Object.getOwnPropertySymbols(y);x{const{getPrefixCls:S,direction:j}=o.useContext(s.E_),{gutter:x,wrap:Z,supportFlexGap:B}=o.useContext(n.Z),{prefixCls:w,span:T,order:F,offset:A,push:L,pull:O,className:$,children:P,flex:K,style:U}=y,ee=l(y,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),le=S("col",w),[Q,G]=(0,c.c)(le);let q={};h.forEach(Y=>{let D={};const _=y[Y];typeof _=="number"?D.span=_:typeof _=="object"&&(D=_||{}),delete ee[Y],q=Object.assign(Object.assign({},q),{[`${le}-${Y}-${D.span}`]:D.span!==void 0,[`${le}-${Y}-order-${D.order}`]:D.order||D.order===0,[`${le}-${Y}-offset-${D.offset}`]:D.offset||D.offset===0,[`${le}-${Y}-push-${D.push}`]:D.push||D.push===0,[`${le}-${Y}-pull-${D.pull}`]:D.pull||D.pull===0,[`${le}-${Y}-flex-${D.flex}`]:D.flex||D.flex==="auto",[`${le}-rtl`]:j==="rtl"})});const I=t()(le,{[`${le}-${T}`]:T!==void 0,[`${le}-order-${F}`]:F,[`${le}-offset-${A}`]:A,[`${le}-push-${L}`]:L,[`${le}-pull-${O}`]:O},$,q,G),H={};if(x&&x[0]>0){const Y=x[0]/2;H.paddingLeft=Y,H.paddingRight=Y}if(x&&x[1]>0&&!B){const Y=x[1]/2;H.paddingTop=Y,H.paddingBottom=Y}return K&&(H.flex=d(K),Z===!1&&!H.minWidth&&(H.minWidth=0)),Q(o.createElement("div",Object.assign({},ee,{style:Object.assign(Object.assign({},H),U),className:I,ref:g}),P))});b.Z=p},60059:function(M,b,e){"use strict";var a=e(58757),t=e(81334),o=e(4459),s=e(87078);function n(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;const l=(0,a.useRef)({}),d=(0,o.Z)(),h=(0,s.Z)();return(0,t.Z)(()=>{const p=h.subscribe(y=>{l.current=y,c&&d()});return()=>h.unsubscribe(p)},[]),l.current}b.Z=n},67665:function(M,b,e){"use strict";var a=e(87608),t=e.n(a),o=e(58757),s=e(61836),n=e(69387),c=e(87078),l=e(35429),d=e(58378),h=function(j,x){var Z={};for(var B in j)Object.prototype.hasOwnProperty.call(j,B)&&x.indexOf(B)<0&&(Z[B]=j[B]);if(j!=null&&typeof Object.getOwnPropertySymbols=="function")for(var w=0,B=Object.getOwnPropertySymbols(j);w{if(typeof j=="string"&&B(j),typeof j=="object")for(let T=0;T{w()},[JSON.stringify(j),x]),Z}const S=o.forwardRef((j,x)=>{const{prefixCls:Z,justify:B,align:w,className:T,style:F,children:A,gutter:L=0,wrap:O}=j,$=h(j,["prefixCls","justify","align","className","style","children","gutter","wrap"]),{getPrefixCls:P,direction:K}=o.useContext(s.E_),[U,ee]=o.useState({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),[le,Q]=o.useState({xs:!1,sm:!1,md:!1,lg:!1,xl:!1,xxl:!1}),G=g(w,le),q=g(B,le),I=(0,n.Z)(),H=o.useRef(L),Y=(0,c.Z)();o.useEffect(()=>{const bt=Y.subscribe(Ct=>{Q(Ct);const Le=H.current||0;(!Array.isArray(Le)&&typeof Le=="object"||Array.isArray(Le)&&(typeof Le[0]=="object"||typeof Le[1]=="object"))&&ee(Ct)});return()=>Y.unsubscribe(bt)},[]);const D=()=>{const bt=[void 0,void 0];return(Array.isArray(L)?L:[L,void 0]).forEach((Le,Ke)=>{if(typeof Le=="object")for(let st=0;st0?ce[0]/-2:void 0,et=ce[1]!=null&&ce[1]>0?ce[1]/-2:void 0;Je&&(Fe.marginLeft=Je,Fe.marginRight=Je),I?[,Fe.rowGap]=ce:et&&(Fe.marginTop=et,Fe.marginBottom=et);const[ae,yt]=ce,Pt=o.useMemo(()=>({gutter:[ae,yt],wrap:O,supportFlexGap:I}),[ae,yt,O,I]);return ue(o.createElement(l.Z.Provider,{value:Pt},o.createElement("div",Object.assign({},$,{className:he,style:Object.assign(Object.assign({},Fe),F),ref:x}),A)))});b.Z=S},58378:function(M,b,e){"use strict";e.d(b,{V:function(){return d},c:function(){return h}});var a=e(52628),t=e(22151);const o=p=>{const{componentCls:y}=p;return{[y]:{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=p=>{const{componentCls:y}=p;return{[y]:{position:"relative",maxWidth:"100%",minHeight:1}}},n=(p,y)=>{const{componentCls:g,gridColumns:S}=p,j={};for(let x=S;x>=0;x--)x===0?(j[`${g}${y}-${x}`]={display:"none"},j[`${g}-push-${x}`]={insetInlineStart:"auto"},j[`${g}-pull-${x}`]={insetInlineEnd:"auto"},j[`${g}${y}-push-${x}`]={insetInlineStart:"auto"},j[`${g}${y}-pull-${x}`]={insetInlineEnd:"auto"},j[`${g}${y}-offset-${x}`]={marginInlineStart:0},j[`${g}${y}-order-${x}`]={order:0}):(j[`${g}${y}-${x}`]={display:"block",flex:`0 0 ${x/S*100}%`,maxWidth:`${x/S*100}%`},j[`${g}${y}-push-${x}`]={insetInlineStart:`${x/S*100}%`},j[`${g}${y}-pull-${x}`]={insetInlineEnd:`${x/S*100}%`},j[`${g}${y}-offset-${x}`]={marginInlineStart:`${x/S*100}%`},j[`${g}${y}-order-${x}`]={order:x});return j},c=(p,y)=>n(p,y),l=(p,y,g)=>({[`@media (min-width: ${y}px)`]:Object.assign({},c(p,g))}),d=(0,a.Z)("Grid",p=>[o(p)]),h=(0,a.Z)("Grid",p=>{const y=(0,t.TS)(p,{gridColumns:24}),g={"-sm":y.screenSMMin,"-md":y.screenMDMin,"-lg":y.screenLGMin,"-xl":y.screenXLMin,"-xxl":y.screenXXLMin};return[s(y),c(y,""),c(y,"-xs"),Object.keys(g).map(S=>l(y,g[S],S)).reduce((S,j)=>Object.assign(Object.assign({},S),j),{})]})},32423:function(M,b,e){"use strict";e.d(b,{Z:function(){return ne}});var a=e(10130),t=e(23926),o=e(87608),s=e.n(o),n=e(60698),c=e(37734),l=e(38790),d=e(28314),h=e(47075),p=e(60412),y=e(14346);function g(){return typeof BigInt=="function"}function S(re){return!re&&re!==0&&!Number.isNaN(re)||!String(re).trim()}function j(re){var se=re.trim(),Ee=se.startsWith("-");Ee&&(se=se.slice(1)),se=se.replace(/(\.\d*[^0])0*$/,"$1").replace(/\.0*$/,"").replace(/^0+/,""),se.startsWith(".")&&(se="0".concat(se));var Re=se||"0",fe=Re.split("."),_e=fe[0]||"0",Pe=fe[1]||"0";_e==="0"&&Pe==="0"&&(Ee=!1);var ze=Ee?"-":"";return{negative:Ee,negativeStr:ze,trimStr:Re,integerStr:_e,decimalStr:Pe,fullStr:"".concat(ze).concat(Re)}}function x(re){var se=String(re);return!Number.isNaN(Number(se))&&se.includes("e")}function Z(re){var se=String(re);if(x(re)){var Ee=Number(se.slice(se.indexOf("e-")+2)),Re=se.match(/\.(\d+)/);return Re!=null&&Re[1]&&(Ee+=Re[1].length),Ee}return se.includes(".")&&w(se)?se.length-se.indexOf(".")-1:0}function B(re){var se=String(re);if(x(re)){if(re>Number.MAX_SAFE_INTEGER)return String(g()?BigInt(re).toString():Number.MAX_SAFE_INTEGER);if(re0&&arguments[0]!==void 0?arguments[0]:!0;return Ee?this.isInvalidate()?"":j("".concat(this.getMark()).concat(this.getIntegerStr(),".").concat(this.getDecimalStr())).fullStr:this.origin}}]),re}(),F=function(){function re(se){if((0,p.Z)(this,re),(0,c.Z)(this,"origin",""),(0,c.Z)(this,"number",void 0),(0,c.Z)(this,"empty",void 0),S(se)){this.empty=!0;return}this.origin=String(se),this.number=Number(se)}return(0,y.Z)(re,[{key:"negate",value:function(){return new re(-this.toNumber())}},{key:"add",value:function(Ee){if(this.isInvalidate())return new re(Ee);var Re=Number(Ee);if(Number.isNaN(Re))return this;var fe=this.number+Re;if(fe>Number.MAX_SAFE_INTEGER)return new re(Number.MAX_SAFE_INTEGER);if(feNumber.MAX_SAFE_INTEGER)return new re(Number.MAX_SAFE_INTEGER);if(fe0&&arguments[0]!==void 0?arguments[0]:!0;return Ee?this.isInvalidate()?"":B(this.number):this.origin}}]),re}();function A(re){return g()?new T(re):new F(re)}function L(re,se,Ee){var Re=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(re==="")return"";var fe=j(re),_e=fe.negativeStr,Pe=fe.integerStr,ze=fe.decimalStr,Qe="".concat(se).concat(ze),gt="".concat(_e).concat(Pe);if(Ee>=0){var ut=Number(ze[Ee]);if(ut>=5&&!Re){var rt=A(re).add("".concat(_e,"0.").concat("0".repeat(Ee)).concat(10-ut));return L(rt.toString(),se,Ee,Re)}return Ee===0?gt:"".concat(gt).concat(se).concat(ze.padEnd(Ee,"0").slice(0,Ee))}return Qe===".0"?gt:"".concat(gt).concat(Qe)}var O=A,$=e(19570),P=e(81334),K=e(21319),U=e(58757),ee=e(75556);function le(re,se){var Ee=(0,U.useRef)(null);function Re(){try{var _e=re.selectionStart,Pe=re.selectionEnd,ze=re.value,Qe=ze.substring(0,_e),gt=ze.substring(Pe);Ee.current={start:_e,end:Pe,value:ze,beforeTxt:Qe,afterTxt:gt}}catch(ut){}}function fe(){if(re&&Ee.current&&se)try{var _e=re.value,Pe=Ee.current,ze=Pe.beforeTxt,Qe=Pe.afterTxt,gt=Pe.start,ut=_e.length;if(_e.endsWith(Qe))ut=_e.length-Ee.current.afterTxt.length;else if(_e.startsWith(ze))ut=ze.length;else{var rt=ze[gt-1],qe=_e.indexOf(rt,gt-1);qe!==-1&&(ut=qe+1)}re.setSelectionRange(ut,ut)}catch(Ve){(0,ee.ZP)(!1,"Something warning of cursor restore. Please fire issue about this: ".concat(Ve.message))}}return[Re,fe]}var Q=e(21618),G=function(){var se=(0,U.useState)(!1),Ee=(0,d.Z)(se,2),Re=Ee[0],fe=Ee[1];return(0,P.Z)(function(){fe((0,Q.Z)())},[]),Re},q=G,I=e(61834),H=200,Y=600;function D(re){var se=re.prefixCls,Ee=re.upNode,Re=re.downNode,fe=re.upDisabled,_e=re.downDisabled,Pe=re.onStep,ze=U.useRef(),Qe=U.useRef([]),gt=U.useRef();gt.current=Pe;var ut=function(){clearTimeout(ze.current)},rt=function(Be,nt){Be.preventDefault(),ut(),gt.current(nt);function ot(){gt.current(nt),ze.current=setTimeout(ot,H)}ze.current=setTimeout(ot,Y)};U.useEffect(function(){return function(){ut(),Qe.current.forEach(function(Te){return I.Z.cancel(Te)})}},[]);var qe=q();if(qe)return null;var Ve="".concat(se,"-handler"),tt=s()(Ve,"".concat(Ve,"-up"),(0,c.Z)({},"".concat(Ve,"-up-disabled"),fe)),Oe=s()(Ve,"".concat(Ve,"-down"),(0,c.Z)({},"".concat(Ve,"-down-disabled"),_e)),Me=function(){return Qe.current.push((0,I.Z)(ut))},Ne={unselectable:"on",role:"button",onMouseUp:Me,onMouseLeave:Me};return U.createElement("div",{className:"".concat(Ve,"-wrap")},U.createElement("span",(0,n.Z)({},Ne,{onMouseDown:function(Be){rt(Be,!0)},"aria-label":"Increase Value","aria-disabled":fe,className:tt}),Ee||U.createElement("span",{unselectable:"on",className:"".concat(se,"-handler-up-inner")})),U.createElement("span",(0,n.Z)({},Ne,{onMouseDown:function(Be){rt(Be,!1)},"aria-label":"Decrease Value","aria-disabled":_e,className:Oe}),Re||U.createElement("span",{unselectable:"on",className:"".concat(se,"-handler-down-inner")})))}function _(re){var se=typeof re=="number"?B(re):j(re).fullStr,Ee=se.includes(".");return Ee?j(se.replace(/(\d)\.(\d)/g,"$1$2.")).fullStr:re+"0"}var ue=e(33615),be=function(){var re=(0,U.useRef)(0),se=function(){I.Z.cancel(re.current)};return(0,U.useEffect)(function(){return se},[]),function(Ee){se(),re.current=(0,I.Z)(function(){Ee()})}},ce=["prefixCls","className","style","min","max","step","defaultValue","value","disabled","readOnly","upHandler","downHandler","keyboard","controls","classNames","stringMode","parser","formatter","precision","decimalSeparator","onChange","onInput","onPressEnter","onStep"],he=["disabled","style","prefixCls","value","prefix","suffix","addonBefore","addonAfter","classes","className","classNames"],Fe=function(se,Ee){return se||Ee.isEmpty()?Ee.toString():Ee.toNumber()},Je=function(se){var Ee=O(se);return Ee.isInvalidate()?null:Ee},et=U.forwardRef(function(re,se){var Ee,Re=re.prefixCls,fe=Re===void 0?"rc-input-number":Re,_e=re.className,Pe=re.style,ze=re.min,Qe=re.max,gt=re.step,ut=gt===void 0?1:gt,rt=re.defaultValue,qe=re.value,Ve=re.disabled,tt=re.readOnly,Oe=re.upHandler,Me=re.downHandler,Ne=re.keyboard,Te=re.controls,Be=Te===void 0?!0:Te,nt=re.classNames,ot=re.stringMode,wt=re.parser,Et=re.formatter,nn=re.precision,$t=re.decimalSeparator,fn=re.onChange,ln=re.onInput,Wt=re.onPressEnter,$e=re.onStep,De=(0,h.Z)(re,ce),jt="".concat(fe,"-input"),Ft=U.useRef(null),Xe=U.useState(!1),at=(0,d.Z)(Xe,2),Bt=at[0],Zt=at[1],Qt=U.useRef(!1),rn=U.useRef(!1),hn=U.useRef(!1),on=U.useState(function(){return O(qe!=null?qe:rt)}),Rn=(0,d.Z)(on,2),zn=Rn[0],lr=Rn[1];function ur(Fn){qe===void 0&&lr(Fn)}var zt=U.useCallback(function(Fn,En){if(!En)return nn>=0?nn:Math.max(Z(Fn),Z(ut))},[nn,ut]),Kt=U.useCallback(function(Fn){var En=String(Fn);if(wt)return wt(En);var wn=En;return $t&&(wn=wn.replace($t,".")),wn.replace(/[^\w.-]+/g,"")},[wt,$t]),Vt=U.useRef(""),dn=U.useCallback(function(Fn,En){if(Et)return Et(Fn,{userTyping:En,input:String(Vt.current)});var wn=typeof Fn=="number"?B(Fn):Fn;if(!En){var ar=zt(wn,En);if(w(wn)&&($t||ar>=0)){var fr=$t||".";wn=L(wn,fr,ar)}}return wn},[Et,zt,$t]),pn=U.useState(function(){var Fn=rt!=null?rt:qe;return zn.isInvalidate()&&["string","number"].includes((0,l.Z)(Fn))?Number.isNaN(Fn)?"":Fn:dn(zn.toString(),!1)}),en=(0,d.Z)(pn,2),mt=en[0],pt=en[1];Vt.current=mt;function an(Fn,En){pt(dn(Fn.isInvalidate()?Fn.toString(!1):Fn.toString(!En),En))}var qt=U.useMemo(function(){return Je(Qe)},[Qe,nn]),Yt=U.useMemo(function(){return Je(ze)},[ze,nn]),mn=U.useMemo(function(){return!qt||!zn||zn.isInvalidate()?!1:qt.lessEquals(zn)},[qt,zn]),gn=U.useMemo(function(){return!Yt||!zn||zn.isInvalidate()?!1:zn.lessEquals(Yt)},[Yt,zn]),kn=le(Ft.current,Bt),tr=(0,d.Z)(kn,2),ft=tr[0],vt=tr[1],St=function(En){return qt&&!En.lessEquals(qt)?qt:Yt&&!Yt.lessEquals(En)?Yt:null},Mt=function(En){return!St(En)},Nt=function(En,wn){var ar=En,fr=Mt(ar)||ar.isEmpty();if(!ar.isEmpty()&&!wn&&(ar=St(ar)||ar,fr=!0),!tt&&!Ve&&fr){var Kr=ar.toString(),ea=zt(Kr,wn);return ea>=0&&(ar=O(L(Kr,".",ea)),Mt(ar)||(ar=O(L(Kr,".",ea,!0)))),ar.equals(zn)||(ur(ar),fn==null||fn(ar.isEmpty()?null:Fe(ot,ar)),qe===void 0&&an(ar,wn)),ar}return zn},sn=be(),Xt=function Fn(En){if(ft(),Vt.current=En,pt(En),!rn.current){var wn=Kt(En),ar=O(wn);ar.isNaN()||Nt(ar,!0)}ln==null||ln(En),sn(function(){var fr=En;wt||(fr=En.replace(/。/g,".")),fr!==En&&Fn(fr)})},Cn=function(){rn.current=!0},Ln=function(){rn.current=!1,Xt(Ft.current.value)},hr=function(En){Xt(En.target.value)},qn=function(En){var wn;if(!(En&&mn||!En&&gn)){Qt.current=!1;var ar=O(hn.current?_(ut):ut);En||(ar=ar.negate());var fr=(zn||O(0)).add(ar.toString()),Kr=Nt(fr,!1);$e==null||$e(Fe(ot,Kr),{offset:hn.current?_(ut):ut,type:En?"up":"down"}),(wn=Ft.current)===null||wn===void 0||wn.focus()}},Nn=function(En){var wn=O(Kt(mt)),ar=wn;wn.isNaN()?ar=Nt(zn,En):ar=Nt(wn,En),qe!==void 0?an(zn,!1):ar.isNaN()||an(ar,!1)},$r=function(){Qt.current=!0},gr=function(En){var wn=En.key,ar=En.shiftKey;Qt.current=!0,hn.current=ar,wn==="Enter"&&(rn.current||(Qt.current=!1),Nn(!1),Wt==null||Wt(En)),Ne!==!1&&!rn.current&&["Up","ArrowUp","Down","ArrowDown"].includes(wn)&&(qn(wn==="Up"||wn==="ArrowUp"),En.preventDefault())},aa=function(){Qt.current=!1,hn.current=!1},Pr=function(){Nn(!1),Zt(!1),Qt.current=!1};return(0,P.o)(function(){zn.isInvalidate()||an(zn,!1)},[nn]),(0,P.o)(function(){var Fn=O(qe);lr(Fn);var En=O(Kt(mt));(!Fn.equals(En)||!Qt.current||Et)&&an(Fn,Qt.current)},[qe]),(0,P.o)(function(){Et&&vt()},[mt]),U.createElement("div",{className:s()(fe,nt==null?void 0:nt.input,_e,(Ee={},(0,c.Z)(Ee,"".concat(fe,"-focused"),Bt),(0,c.Z)(Ee,"".concat(fe,"-disabled"),Ve),(0,c.Z)(Ee,"".concat(fe,"-readonly"),tt),(0,c.Z)(Ee,"".concat(fe,"-not-a-number"),zn.isNaN()),(0,c.Z)(Ee,"".concat(fe,"-out-of-range"),!zn.isInvalidate()&&!Mt(zn)),Ee)),style:Pe,onFocus:function(){Zt(!0)},onBlur:Pr,onKeyDown:gr,onKeyUp:aa,onCompositionStart:Cn,onCompositionEnd:Ln,onBeforeInput:$r},Be&&U.createElement(D,{prefixCls:fe,upNode:Oe,downNode:Me,upDisabled:mn,downDisabled:gn,onStep:qn}),U.createElement("div",{className:"".concat(jt,"-wrap")},U.createElement("input",(0,n.Z)({autoComplete:"off",role:"spinbutton","aria-valuemin":ze,"aria-valuemax":Qe,"aria-valuenow":zn.isInvalidate()?null:zn.toString(),step:ut},De,{ref:(0,K.sQ)(Ft,se),className:jt,value:mt,onChange:hr,disabled:Ve,readOnly:tt}))))}),ae=U.forwardRef(function(re,se){var Ee=re.disabled,Re=re.style,fe=re.prefixCls,_e=re.value,Pe=re.prefix,ze=re.suffix,Qe=re.addonBefore,gt=re.addonAfter,ut=re.classes,rt=re.className,qe=re.classNames,Ve=(0,h.Z)(re,he),tt=U.useRef(null),Oe=function(Ne){tt.current&&(0,ue.nH)(tt.current,Ne)};return U.createElement($.Q,{inputElement:U.createElement(et,(0,n.Z)({prefixCls:fe,disabled:Ee,classNames:qe,ref:(0,K.sQ)(tt,se)},Ve)),className:rt,triggerFocus:Oe,prefixCls:fe,value:_e,disabled:Ee,style:Re,prefix:Pe,suffix:ze,addonAfter:gt,addonBefore:Qe,classes:ut,classNames:qe,components:{affixWrapper:"div",groupWrapper:"div",wrapper:"div",groupAddon:"div"}})});ae.displayName="InputNumber";var yt=ae,Pt=yt,bt=e(41496),Ct=e(61836),Le=e(42505),Ke=e(92428),st=e(58785),We=e(81496),ge=e(43528),X=e(46902),W=e(78330),R=e(64493),N=e(52628);const oe=(re,se)=>{let{componentCls:Ee,borderRadiusSM:Re,borderRadiusLG:fe}=re;const _e=se==="lg"?fe:Re;return{[`&-${se}`]:{[`${Ee}-handler-wrap`]:{borderStartEndRadius:_e,borderEndEndRadius:_e},[`${Ee}-handler-up`]:{borderStartEndRadius:_e},[`${Ee}-handler-down`]:{borderEndEndRadius:_e}}}},ve=re=>{const{componentCls:se,lineWidth:Ee,lineType:Re,colorBorder:fe,borderRadius:_e,fontSizeLG:Pe,controlHeightLG:ze,controlHeightSM:Qe,colorError:gt,inputPaddingHorizontalSM:ut,colorTextDescription:rt,motionDurationMid:qe,colorPrimary:Ve,inputPaddingHorizontal:tt,inputPaddingVertical:Oe,colorBgContainer:Me,colorTextDisabled:Ne,borderRadiusSM:Te,borderRadiusLG:Be,controlWidth:nt,handleVisible:ot}=re;return[{[se]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,W.Wf)(re)),(0,X.ik)(re)),(0,X.bi)(re,se)),{display:"inline-block",width:nt,margin:0,padding:0,border:`${Ee}px ${Re} ${fe}`,borderRadius:_e,"&-rtl":{direction:"rtl",[`${se}-input`]:{direction:"rtl"}},"&-lg":{padding:0,fontSize:Pe,borderRadius:Be,[`input${se}-input`]:{height:ze-2*Ee}},"&-sm":{padding:0,borderRadius:Te,[`input${se}-input`]:{height:Qe-2*Ee,padding:`0 ${ut}px`}},"&:hover":Object.assign({},(0,X.pU)(re)),"&-focused":Object.assign({},(0,X.M1)(re)),"&-out-of-range":{[`${se}-input-wrap`]:{input:{color:gt}}},"&-group":Object.assign(Object.assign(Object.assign({},(0,W.Wf)(re)),(0,X.s7)(re)),{"&-wrapper":{display:"inline-block",textAlign:"start",verticalAlign:"top",[`${se}-affix-wrapper`]:{width:"100%"},"&-lg":{[`${se}-group-addon`]:{borderRadius:Be,fontSize:re.fontSizeLG}},"&-sm":{[`${se}-group-addon`]:{borderRadius:Te}},[`${se}-wrapper-disabled > ${se}-group-addon`]:Object.assign({},(0,X.Xy)(re))}}),[`&-disabled ${se}-input`]:{cursor:"not-allowed"},[se]:{"&-input":Object.assign(Object.assign(Object.assign(Object.assign({},(0,W.Wf)(re)),{width:"100%",padding:`${Oe}px ${tt}px`,textAlign:"start",backgroundColor:"transparent",border:0,borderRadius:_e,outline:0,transition:`all ${qe} linear`,appearance:"textfield",fontSize:"inherit"}),(0,X.nz)(re.colorTextPlaceholder)),{'&[type="number"]::-webkit-inner-spin-button, &[type="number"]::-webkit-outer-spin-button':{margin:0,webkitAppearance:"none",appearance:"none"}})}})},{[se]:Object.assign(Object.assign(Object.assign({[`&:hover ${se}-handler-wrap, &-focused ${se}-handler-wrap`]:{opacity:1},[`${se}-handler-wrap`]:{position:"absolute",insetBlockStart:0,insetInlineEnd:0,width:re.handleWidth,height:"100%",background:Me,borderStartStartRadius:0,borderStartEndRadius:_e,borderEndEndRadius:_e,borderEndStartRadius:0,opacity:ot===!0?1:0,display:"flex",flexDirection:"column",alignItems:"stretch",transition:`opacity ${qe} linear ${qe}`,[`${se}-handler`]:{display:"flex",alignItems:"center",justifyContent:"center",flex:"auto",height:"40%",[` + ${se}-handler-up-inner, + ${se}-handler-down-inner + `]:{marginInlineEnd:0,fontSize:re.handleFontSize}}},[`${se}-handler`]:{height:"50%",overflow:"hidden",color:rt,fontWeight:"bold",lineHeight:0,textAlign:"center",cursor:"pointer",borderInlineStart:`${Ee}px ${Re} ${fe}`,transition:`all ${qe} linear`,"&:active":{background:re.colorFillAlter},"&:hover":{height:"60%",[` + ${se}-handler-up-inner, + ${se}-handler-down-inner + `]:{color:Ve}},"&-up-inner, &-down-inner":Object.assign(Object.assign({},(0,W.Ro)()),{color:rt,transition:`all ${qe} linear`,userSelect:"none"})},[`${se}-handler-up`]:{borderStartEndRadius:_e},[`${se}-handler-down`]:{borderBlockStart:`${Ee}px ${Re} ${fe}`,borderEndEndRadius:_e}},oe(re,"lg")),oe(re,"sm")),{"&-disabled, &-readonly":{[`${se}-handler-wrap`]:{display:"none"},[`${se}-input`]:{color:"inherit"}},[` + ${se}-handler-up-disabled, + ${se}-handler-down-disabled + `]:{cursor:"not-allowed"},[` + ${se}-handler-up-disabled:hover &-handler-up-inner, + ${se}-handler-down-disabled:hover &-handler-down-inner + `]:{color:Ne}})},{[`${se}-borderless`]:{borderColor:"transparent",boxShadow:"none",[`${se}-handler-down`]:{borderBlockStartWidth:0}}}]},te=re=>{const{componentCls:se,inputPaddingVertical:Ee,inputPaddingHorizontal:Re,inputAffixPadding:fe,controlWidth:_e,borderRadiusLG:Pe,borderRadiusSM:ze}=re;return{[`${se}-affix-wrapper`]:Object.assign(Object.assign(Object.assign({},(0,X.ik)(re)),(0,X.bi)(re,`${se}-affix-wrapper`)),{position:"relative",display:"inline-flex",width:_e,padding:0,paddingInlineStart:Re,"&-lg":{borderRadius:Pe},"&-sm":{borderRadius:ze},[`&:not(${se}-affix-wrapper-disabled):hover`]:Object.assign(Object.assign({},(0,X.pU)(re)),{zIndex:1}),"&-focused, &:focus":{zIndex:1},[`&-disabled > ${se}-disabled`]:{background:"transparent"},[`> div${se}`]:{width:"100%",border:"none",outline:"none",[`&${se}-focused`]:{boxShadow:"none !important"}},[`input${se}-input`]:{padding:`${Ee}px 0`},"&::before":{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'},[`${se}-handler-wrap`]:{zIndex:2},[se]:{"&-prefix, &-suffix":{display:"flex",flex:"none",alignItems:"center",pointerEvents:"none"},"&-prefix":{marginInlineEnd:fe},"&-suffix":{position:"absolute",insetBlockStart:0,insetInlineEnd:0,zIndex:1,height:"100%",marginInlineEnd:Re,marginInlineStart:fe}}})}};var me=(0,N.Z)("InputNumber",re=>{const se=(0,X.e5)(re);return[ve(se),te(se),(0,R.c)(se)]},re=>({controlWidth:90,handleWidth:re.controlHeightSM-re.lineWidth*2,handleFontSize:re.fontSize/2,handleVisible:"auto"})),we=function(re,se){var Ee={};for(var Re in re)Object.prototype.hasOwnProperty.call(re,Re)&&se.indexOf(Re)<0&&(Ee[Re]=re[Re]);if(re!=null&&typeof Object.getOwnPropertySymbols=="function")for(var fe=0,Re=Object.getOwnPropertySymbols(re);fe{const{getPrefixCls:Ee,direction:Re}=U.useContext(Ct.E_),fe=U.useRef(null);U.useImperativeHandle(se,()=>fe.current);const{className:_e,rootClassName:Pe,size:ze,disabled:Qe,prefixCls:gt,addonBefore:ut,addonAfter:rt,prefix:qe,bordered:Ve=!0,readOnly:tt,status:Oe,controls:Me}=re,Ne=we(re,["className","rootClassName","size","disabled","prefixCls","addonBefore","addonAfter","prefix","bordered","readOnly","status","controls"]),Te=Ee("input-number",gt),[Be,nt]=me(Te),{compactSize:ot,compactItemClassnames:wt}=(0,ge.ri)(Te,Re);let Et=U.createElement(t.Z,{className:`${Te}-handler-up-inner`}),nn=U.createElement(a.Z,{className:`${Te}-handler-down-inner`});const $t=typeof Me=="boolean"?Me:void 0;typeof Me=="object"&&(Et=typeof Me.upIcon=="undefined"?Et:U.createElement("span",{className:`${Te}-handler-up-inner`},Me.upIcon),nn=typeof Me.downIcon=="undefined"?nn:U.createElement("span",{className:`${Te}-handler-down-inner`},Me.downIcon));const{hasFeedback:fn,status:ln,isFormItemInput:Wt,feedbackIcon:$e}=U.useContext(We.aM),De=(0,bt.F)(ln,Oe),jt=(0,st.Z)(Qt=>{var rn;return(rn=ze!=null?ze:ot)!==null&&rn!==void 0?rn:Qt}),Ft=U.useContext(Ke.Z),Xe=Qe!=null?Qe:Ft,at=s()({[`${Te}-lg`]:jt==="large",[`${Te}-sm`]:jt==="small",[`${Te}-rtl`]:Re==="rtl",[`${Te}-borderless`]:!Ve,[`${Te}-in-form-item`]:Wt},(0,bt.Z)(Te,De),wt,nt),Bt=`${Te}-group`,Zt=U.createElement(Pt,Object.assign({ref:fe,disabled:Xe,className:s()(_e,Pe),upHandler:Et,downHandler:nn,prefixCls:Te,readOnly:tt,controls:$t,prefix:qe,suffix:fn&&$e,addonAfter:rt&&U.createElement(ge.BR,null,U.createElement(We.Ux,{override:!0,status:!0},rt)),addonBefore:ut&&U.createElement(ge.BR,null,U.createElement(We.Ux,{override:!0,status:!0},ut)),classNames:{input:at},classes:{affixWrapper:s()((0,bt.Z)(`${Te}-affix-wrapper`,De,fn),{[`${Te}-affix-wrapper-sm`]:jt==="small",[`${Te}-affix-wrapper-lg`]:jt==="large",[`${Te}-affix-wrapper-rtl`]:Re==="rtl",[`${Te}-affix-wrapper-borderless`]:!Ve},nt),wrapper:s()({[`${Bt}-rtl`]:Re==="rtl",[`${Te}-wrapper-disabled`]:Xe},nt),group:s()({[`${Te}-group-wrapper-sm`]:jt==="small",[`${Te}-group-wrapper-lg`]:jt==="large",[`${Te}-group-wrapper-rtl`]:Re==="rtl"},(0,bt.Z)(`${Te}-group-wrapper`,De,fn),nt)}},Ne));return Be(Zt)}),Se=xe,ke=re=>U.createElement(Le.ZP,{theme:{components:{InputNumber:{handleVisible:!0}}}},U.createElement(xe,Object.assign({},re)));Se._InternalPanelDoNotUseOrYouWillBeFired=ke;var ne=Se},95670:function(M,b,e){"use strict";e.d(b,{Z:function(){return T},n:function(){return B}});var a=e(79999),t=e(87608),o=e.n(t),s=e(19570),n=e(21319),c=e(58757),l=e(41496),d=e(61836),h=e(92428),p=e(58785),y=e(81496),g=e(43528),S=e(52191),j=e(46902);function x(F){return!!(F.prefix||F.suffix||F.allowClear)}var Z=function(F,A){var L={};for(var O in F)Object.prototype.hasOwnProperty.call(F,O)&&A.indexOf(O)<0&&(L[O]=F[O]);if(F!=null&&typeof Object.getOwnPropertySymbols=="function")for(var $=0,O=Object.getOwnPropertySymbols(F);${var L;const{prefixCls:O,bordered:$=!0,status:P,size:K,disabled:U,onBlur:ee,onFocus:le,suffix:Q,allowClear:G,addonAfter:q,addonBefore:I,className:H,style:Y,styles:D,rootClassName:_,onChange:ue,classNames:be}=F,ce=Z(F,["prefixCls","bordered","status","size","disabled","onBlur","onFocus","suffix","allowClear","addonAfter","addonBefore","className","style","styles","rootClassName","onChange","classNames"]),{getPrefixCls:he,direction:Fe,input:Je}=c.useContext(d.E_),et=he("input",O),ae=(0,c.useRef)(null),[yt,Pt]=(0,j.ZP)(et),{compactSize:bt,compactItemClassnames:Ct}=(0,g.ri)(et,Fe),Le=(0,p.Z)(Se=>{var ke;return(ke=K!=null?K:bt)!==null&&ke!==void 0?ke:Se}),Ke=c.useContext(h.Z),st=U!=null?U:Ke,{status:We,hasFeedback:ge,feedbackIcon:X}=(0,c.useContext)(y.aM),W=(0,l.F)(We,P),R=x(F)||!!ge,N=(0,c.useRef)(R);(0,c.useEffect)(()=>{var Se;R&&N.current,N.current=R},[R]);const oe=(0,S.Z)(ae,!0),ve=Se=>{oe(),ee==null||ee(Se)},te=Se=>{oe(),le==null||le(Se)},me=Se=>{oe(),ue==null||ue(Se)},we=(ge||Q)&&c.createElement(c.Fragment,null,Q,ge&&X);let xe;return typeof G=="object"&&(G!=null&&G.clearIcon)?xe=G:G&&(xe={clearIcon:c.createElement(a.Z,null)}),yt(c.createElement(s.Z,Object.assign({ref:(0,n.sQ)(A,ae),prefixCls:et,autoComplete:Je==null?void 0:Je.autoComplete},ce,{disabled:st,onBlur:ve,onFocus:te,style:Object.assign(Object.assign({},Je==null?void 0:Je.style),Y),styles:Object.assign(Object.assign({},Je==null?void 0:Je.styles),D),suffix:we,allowClear:xe,className:o()(H,_,Ct,Je==null?void 0:Je.className),onChange:me,addonAfter:q&&c.createElement(g.BR,null,c.createElement(y.Ux,{override:!0,status:!0},q)),addonBefore:I&&c.createElement(g.BR,null,c.createElement(y.Ux,{override:!0,status:!0},I)),classNames:Object.assign(Object.assign(Object.assign({},be),Je==null?void 0:Je.classNames),{input:o()({[`${et}-sm`]:Le==="small",[`${et}-lg`]:Le==="large",[`${et}-rtl`]:Fe==="rtl",[`${et}-borderless`]:!$},!R&&(0,l.Z)(et,W),be==null?void 0:be.input,(L=Je==null?void 0:Je.classNames)===null||L===void 0?void 0:L.input,Pt)}),classes:{affixWrapper:o()({[`${et}-affix-wrapper-sm`]:Le==="small",[`${et}-affix-wrapper-lg`]:Le==="large",[`${et}-affix-wrapper-rtl`]:Fe==="rtl",[`${et}-affix-wrapper-borderless`]:!$},(0,l.Z)(`${et}-affix-wrapper`,W,ge),Pt),wrapper:o()({[`${et}-group-rtl`]:Fe==="rtl"},Pt),group:o()({[`${et}-group-wrapper-sm`]:Le==="small",[`${et}-group-wrapper-lg`]:Le==="large",[`${et}-group-wrapper-rtl`]:Fe==="rtl",[`${et}-group-wrapper-disabled`]:st},(0,l.Z)(`${et}-group-wrapper`,W,ge),Pt)}})))})},79617:function(M,b,e){"use strict";var a=e(79999),t=e(87608),o=e.n(t),s=e(2071),n=e(58757),c=e(41496),l=e(61836),d=e(92428),h=e(58785),p=e(81496),y=e(95670),g=e(46902),S=function(x,Z){var B={};for(var w in x)Object.prototype.hasOwnProperty.call(x,w)&&Z.indexOf(w)<0&&(B[w]=x[w]);if(x!=null&&typeof Object.getOwnPropertySymbols=="function")for(var T=0,w=Object.getOwnPropertySymbols(x);T{const{prefixCls:B,bordered:w=!0,size:T,disabled:F,status:A,allowClear:L,showCount:O,classNames:$}=x,P=S(x,["prefixCls","bordered","size","disabled","status","allowClear","showCount","classNames"]),{getPrefixCls:K,direction:U}=n.useContext(l.E_),ee=(0,h.Z)(T),le=n.useContext(d.Z),Q=F!=null?F:le,{status:G,hasFeedback:q,feedbackIcon:I}=n.useContext(p.aM),H=(0,c.F)(G,A),Y=n.useRef(null);n.useImperativeHandle(Z,()=>{var ce;return{resizableTextArea:(ce=Y.current)===null||ce===void 0?void 0:ce.resizableTextArea,focus:he=>{var Fe,Je;(0,y.n)((Je=(Fe=Y.current)===null||Fe===void 0?void 0:Fe.resizableTextArea)===null||Je===void 0?void 0:Je.textArea,he)},blur:()=>{var he;return(he=Y.current)===null||he===void 0?void 0:he.blur()}}});const D=K("input",B);let _;typeof L=="object"&&(L!=null&&L.clearIcon)?_=L:L&&(_={clearIcon:n.createElement(a.Z,null)});const[ue,be]=(0,g.ZP)(D);return ue(n.createElement(s.Z,Object.assign({},P,{disabled:Q,allowClear:_,classes:{affixWrapper:o()(`${D}-textarea-affix-wrapper`,{[`${D}-affix-wrapper-rtl`]:U==="rtl",[`${D}-affix-wrapper-borderless`]:!w,[`${D}-affix-wrapper-sm`]:ee==="small",[`${D}-affix-wrapper-lg`]:ee==="large",[`${D}-textarea-show-count`]:O},(0,c.Z)(`${D}-affix-wrapper`,H),be)},classNames:Object.assign(Object.assign({},$),{textarea:o()({[`${D}-borderless`]:!w,[`${D}-sm`]:ee==="small",[`${D}-lg`]:ee==="large"},(0,c.Z)(D,H),be,$==null?void 0:$.textarea)}),prefixCls:D,suffix:q&&n.createElement("span",{className:`${D}-textarea-suffix`},I),showCount:O,ref:Y})))});b.Z=j},52191:function(M,b,e){"use strict";e.d(b,{Z:function(){return t}});var a=e(58757);function t(o,s){const n=(0,a.useRef)([]),c=()=>{n.current.push(setTimeout(()=>{var l,d,h,p;!((l=o.current)===null||l===void 0)&&l.input&&((d=o.current)===null||d===void 0?void 0:d.input.getAttribute("type"))==="password"&&(!((h=o.current)===null||h===void 0)&&h.input.hasAttribute("value"))&&((p=o.current)===null||p===void 0||p.input.removeAttribute("value"))}))};return(0,a.useEffect)(()=>(s&&c(),()=>n.current.forEach(l=>{l&&clearTimeout(l)})),[]),c}},21149:function(M,b,e){"use strict";e.d(b,{Z:function(){return Q}});var a=e(87608),t=e.n(a),o=e(58757),s=e(61836),n=e(81496),c=e(46902),d=G=>{const{getPrefixCls:q,direction:I}=(0,o.useContext)(s.E_),{prefixCls:H,className:Y}=G,D=q("input-group",H),_=q("input"),[ue,be]=(0,c.ZP)(_),ce=t()(D,{[`${D}-lg`]:G.size==="large",[`${D}-sm`]:G.size==="small",[`${D}-compact`]:G.compact,[`${D}-rtl`]:I==="rtl"},be,Y),he=(0,o.useContext)(n.aM),Fe=(0,o.useMemo)(()=>Object.assign(Object.assign({},he),{isFormItemInput:!1}),[he]);return ue(o.createElement("span",{className:ce,style:G.style,onMouseEnter:G.onMouseEnter,onMouseLeave:G.onMouseLeave,onFocus:G.onFocus,onBlur:G.onBlur},o.createElement(n.aM.Provider,{value:Fe},G.children)))},h=e(95670),p=e(83720),y=e(56019),g=e(98186),S=e(21319),j=e(52191),x=function(G,q){var I={};for(var H in G)Object.prototype.hasOwnProperty.call(G,H)&&q.indexOf(H)<0&&(I[H]=G[H]);if(G!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,H=Object.getOwnPropertySymbols(G);YG?o.createElement(y.Z,null):o.createElement(p.Z,null),B={click:"onClick",hover:"onMouseOver"};var T=o.forwardRef((G,q)=>{const{visibilityToggle:I=!0}=G,H=typeof I=="object"&&I.visible!==void 0,[Y,D]=(0,o.useState)(()=>H?I.visible:!1),_=(0,o.useRef)(null);o.useEffect(()=>{H&&D(I.visible)},[H,I]);const ue=(0,j.Z)(_),be=()=>{const{disabled:st}=G;st||(Y&&ue(),D(We=>{var ge;const X=!We;return typeof I=="object"&&((ge=I.onVisibleChange)===null||ge===void 0||ge.call(I,X)),X}))},ce=st=>{const{action:We="click",iconRender:ge=Z}=G,X=B[We]||"",W=ge(Y),R={[X]:be,className:`${st}-icon`,key:"passwordIcon",onMouseDown:N=>{N.preventDefault()},onMouseUp:N=>{N.preventDefault()}};return o.cloneElement(o.isValidElement(W)?W:o.createElement("span",null,W),R)},{className:he,prefixCls:Fe,inputPrefixCls:Je,size:et}=G,ae=x(G,["className","prefixCls","inputPrefixCls","size"]),{getPrefixCls:yt}=o.useContext(s.E_),Pt=yt("input",Je),bt=yt("input-password",Fe),Ct=I&&ce(bt),Le=t()(bt,he,{[`${bt}-${et}`]:!!et}),Ke=Object.assign(Object.assign({},(0,g.Z)(ae,["suffix","iconRender","visibilityToggle"])),{type:Y?"text":"password",className:Le,prefixCls:Pt,suffix:Ct});return et&&(Ke.size=et),o.createElement(h.Z,Object.assign({ref:(0,S.sQ)(q,_)},Ke))}),F=e(99534),A=e(37047),L=e(12562),O=e(58785),$=e(43528),P=function(G,q){var I={};for(var H in G)Object.prototype.hasOwnProperty.call(G,H)&&q.indexOf(H)<0&&(I[H]=G[H]);if(G!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,H=Object.getOwnPropertySymbols(G);Y{const{prefixCls:I,inputPrefixCls:H,className:Y,size:D,suffix:_,enterButton:ue=!1,addonAfter:be,loading:ce,disabled:he,onSearch:Fe,onChange:Je,onCompositionStart:et,onCompositionEnd:ae}=G,yt=P(G,["prefixCls","inputPrefixCls","className","size","suffix","enterButton","addonAfter","loading","disabled","onSearch","onChange","onCompositionStart","onCompositionEnd"]),{getPrefixCls:Pt,direction:bt}=o.useContext(s.E_),Ct=o.useRef(!1),Le=Pt("input-search",I),Ke=Pt("input",H),{compactSize:st}=(0,$.ri)(Le,bt),We=(0,O.Z)(ne=>{var re;return(re=D!=null?D:st)!==null&&re!==void 0?re:ne}),ge=o.useRef(null),X=ne=>{ne&&ne.target&&ne.type==="click"&&Fe&&Fe(ne.target.value,ne),Je&&Je(ne)},W=ne=>{var re;document.activeElement===((re=ge.current)===null||re===void 0?void 0:re.input)&&ne.preventDefault()},R=ne=>{var re,se;Fe&&Fe((se=(re=ge.current)===null||re===void 0?void 0:re.input)===null||se===void 0?void 0:se.value,ne)},N=ne=>{Ct.current||ce||R(ne)},oe=typeof ue=="boolean"?o.createElement(F.Z,null):null,ve=`${Le}-button`;let te;const me=ue||{},we=me.type&&me.type.__ANT_BUTTON===!0;we||me.type==="button"?te=(0,A.Tm)(me,Object.assign({onMouseDown:W,onClick:ne=>{var re,se;(se=(re=me==null?void 0:me.props)===null||re===void 0?void 0:re.onClick)===null||se===void 0||se.call(re,ne),R(ne)},key:"enterButton"},we?{className:ve,size:We}:{})):te=o.createElement(L.ZP,{className:ve,type:ue?"primary":void 0,size:We,disabled:he,key:"enterButton",onMouseDown:W,onClick:R,loading:ce,icon:oe},ue),be&&(te=[te,(0,A.Tm)(be,{key:"addonAfter"})]);const xe=t()(Le,{[`${Le}-rtl`]:bt==="rtl",[`${Le}-${We}`]:!!We,[`${Le}-with-button`]:!!ue},Y),Se=ne=>{Ct.current=!0,et==null||et(ne)},ke=ne=>{Ct.current=!1,ae==null||ae(ne)};return o.createElement(h.Z,Object.assign({ref:(0,S.sQ)(ge,q),onPressEnter:N},yt,{size:We,onCompositionStart:Se,onCompositionEnd:ke,prefixCls:Ke,addonAfter:te,suffix:_,onChange:X,className:xe,disabled:he}))}),ee=e(79617);const le=h.Z;le.Group=d,le.Search=U,le.TextArea=ee.Z,le.Password=T;var Q=le},46902:function(M,b,e){"use strict";e.d(b,{M1:function(){return l},Xy:function(){return d},bi:function(){return y},e5:function(){return T},ik:function(){return g},nz:function(){return n},pU:function(){return c},s7:function(){return S},x0:function(){return p}});var a=e(78330),t=e(64493),o=e(22151),s=e(52628);const n=A=>({"&::-moz-placeholder":{opacity:1},"&::placeholder":{color:A,userSelect:"none"},"&:placeholder-shown":{textOverflow:"ellipsis"}}),c=A=>({borderColor:A.inputBorderHoverColor,borderInlineEndWidth:A.lineWidth}),l=A=>({borderColor:A.inputBorderHoverColor,boxShadow:`0 0 0 ${A.controlOutlineWidth}px ${A.controlOutline}`,borderInlineEndWidth:A.lineWidth,outline:0}),d=A=>({color:A.colorTextDisabled,backgroundColor:A.colorBgContainerDisabled,borderColor:A.colorBorder,boxShadow:"none",cursor:"not-allowed",opacity:1,"&:hover":Object.assign({},c((0,o.TS)(A,{inputBorderHoverColor:A.colorBorder})))}),h=A=>{const{inputPaddingVerticalLG:L,fontSizeLG:O,lineHeightLG:$,borderRadiusLG:P,inputPaddingHorizontalLG:K}=A;return{padding:`${L}px ${K}px`,fontSize:O,lineHeight:$,borderRadius:P}},p=A=>({padding:`${A.inputPaddingVerticalSM}px ${A.controlPaddingHorizontalSM-1}px`,borderRadius:A.borderRadiusSM}),y=(A,L)=>{const{componentCls:O,colorError:$,colorWarning:P,colorErrorOutline:K,colorWarningOutline:U,colorErrorBorderHover:ee,colorWarningBorderHover:le}=A;return{[`&-status-error:not(${L}-disabled):not(${L}-borderless)${L}`]:{borderColor:$,"&:hover":{borderColor:ee},"&:focus, &-focused":Object.assign({},l((0,o.TS)(A,{inputBorderActiveColor:$,inputBorderHoverColor:$,controlOutline:K}))),[`${O}-prefix, ${O}-suffix`]:{color:$}},[`&-status-warning:not(${L}-disabled):not(${L}-borderless)${L}`]:{borderColor:P,"&:hover":{borderColor:le},"&:focus, &-focused":Object.assign({},l((0,o.TS)(A,{inputBorderActiveColor:P,inputBorderHoverColor:P,controlOutline:U}))),[`${O}-prefix, ${O}-suffix`]:{color:P}}}},g=A=>Object.assign(Object.assign({position:"relative",display:"inline-block",width:"100%",minWidth:0,padding:`${A.inputPaddingVertical}px ${A.inputPaddingHorizontal}px`,color:A.colorText,fontSize:A.fontSize,lineHeight:A.lineHeight,backgroundColor:A.colorBgContainer,backgroundImage:"none",borderWidth:A.lineWidth,borderStyle:A.lineType,borderColor:A.colorBorder,borderRadius:A.borderRadius,transition:`all ${A.motionDurationMid}`},n(A.colorTextPlaceholder)),{"&:hover":Object.assign({},c(A)),"&:focus, &-focused":Object.assign({},l(A)),"&-disabled, &[disabled]":Object.assign({},d(A)),"&-borderless":{"&, &:hover, &:focus, &-focused, &-disabled, &[disabled]":{backgroundColor:"transparent",border:"none",boxShadow:"none"}},"textarea&":{maxWidth:"100%",height:"auto",minHeight:A.controlHeight,lineHeight:A.lineHeight,verticalAlign:"bottom",transition:`all ${A.motionDurationSlow}, height 0s`,resize:"vertical"},"&-lg":Object.assign({},h(A)),"&-sm":Object.assign({},p(A)),"&-rtl":{direction:"rtl"},"&-textarea-rtl":{direction:"rtl"}}),S=A=>{const{componentCls:L,antCls:O}=A;return{position:"relative",display:"table",width:"100%",borderCollapse:"separate",borderSpacing:0,["&[class*='col-']"]:{paddingInlineEnd:A.paddingXS,"&:last-child":{paddingInlineEnd:0}},[`&-lg ${L}, &-lg > ${L}-group-addon`]:Object.assign({},h(A)),[`&-sm ${L}, &-sm > ${L}-group-addon`]:Object.assign({},p(A)),[`&-lg ${O}-select-single ${O}-select-selector`]:{height:A.controlHeightLG},[`&-sm ${O}-select-single ${O}-select-selector`]:{height:A.controlHeightSM},[`> ${L}`]:{display:"table-cell","&:not(:first-child):not(:last-child)":{borderRadius:0}},[`${L}-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 ${A.inputPaddingHorizontal}px`,color:A.colorText,fontWeight:"normal",fontSize:A.fontSize,textAlign:"center",backgroundColor:A.colorFillAlter,border:`${A.lineWidth}px ${A.lineType} ${A.colorBorder}`,borderRadius:A.borderRadius,transition:`all ${A.motionDurationSlow}`,lineHeight:1,[`${O}-select`]:{margin:`-${A.inputPaddingVertical+1}px -${A.inputPaddingHorizontal}px`,[`&${O}-select-single:not(${O}-select-customize-input)`]:{[`${O}-select-selector`]:{backgroundColor:"inherit",border:`${A.lineWidth}px ${A.lineType} transparent`,boxShadow:"none"}},"&-open, &-focused":{[`${O}-select-selector`]:{color:A.colorPrimary}}},[`${O}-cascader-picker`]:{margin:`-9px -${A.inputPaddingHorizontal}px`,backgroundColor:"transparent",[`${O}-cascader-input`]:{textAlign:"start",border:0,boxShadow:"none"}}},"&-addon:first-child":{borderInlineEnd:0},"&-addon:last-child":{borderInlineStart:0}},[`${L}`]:{width:"100%",marginBottom:0,textAlign:"inherit","&:focus":{zIndex:1,borderInlineEndWidth:1},"&:hover":{zIndex:1,borderInlineEndWidth:1,[`${L}-search-with-button &`]:{zIndex:0}}},[`> ${L}:first-child, ${L}-group-addon:first-child`]:{borderStartEndRadius:0,borderEndEndRadius:0,[`${O}-select ${O}-select-selector`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${L}-affix-wrapper`]:{[`&:not(:first-child) ${L}`]:{borderStartStartRadius:0,borderEndStartRadius:0},[`&:not(:last-child) ${L}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${L}:last-child, ${L}-group-addon:last-child`]:{borderStartStartRadius:0,borderEndStartRadius:0,[`${O}-select ${O}-select-selector`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`${L}-affix-wrapper`]:{"&:not(:last-child)":{borderStartEndRadius:0,borderEndEndRadius:0,[`${L}-search &`]:{borderStartStartRadius:A.borderRadius,borderEndStartRadius:A.borderRadius}},[`&:not(:first-child), ${L}-search &:not(:first-child)`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&${L}-group-compact`]:Object.assign(Object.assign({display:"block"},(0,a.dF)()),{[`${L}-group-addon, ${L}-group-wrap, > ${L}`]:{"&:not(:first-child):not(:last-child)":{borderInlineEndWidth:A.lineWidth,"&:hover":{zIndex:1},"&:focus":{zIndex:1}}},"& > *":{display:"inline-block",float:"none",verticalAlign:"top",borderRadius:0},[` + & > ${L}-affix-wrapper, + & > ${L}-number-affix-wrapper, + & > ${O}-picker-range + `]:{display:"inline-flex"},"& > *:not(:last-child)":{marginInlineEnd:-A.lineWidth,borderInlineEndWidth:A.lineWidth},[`${L}`]:{float:"none"},[`& > ${O}-select > ${O}-select-selector, + & > ${O}-select-auto-complete ${L}, + & > ${O}-cascader-picker ${L}, + & > ${L}-group-wrapper ${L}`]:{borderInlineEndWidth:A.lineWidth,borderRadius:0,"&:hover":{zIndex:1},"&:focus":{zIndex:1}},[`& > ${O}-select-focused`]:{zIndex:1},[`& > ${O}-select > ${O}-select-arrow`]:{zIndex:1},[`& > *:first-child, + & > ${O}-select:first-child > ${O}-select-selector, + & > ${O}-select-auto-complete:first-child ${L}, + & > ${O}-cascader-picker:first-child ${L}`]:{borderStartStartRadius:A.borderRadius,borderEndStartRadius:A.borderRadius},[`& > *:last-child, + & > ${O}-select:last-child > ${O}-select-selector, + & > ${O}-cascader-picker:last-child ${L}, + & > ${O}-cascader-picker-focused:last-child ${L}`]:{borderInlineEndWidth:A.lineWidth,borderStartEndRadius:A.borderRadius,borderEndEndRadius:A.borderRadius},[`& > ${O}-select-auto-complete ${L}`]:{verticalAlign:"top"},[`${L}-group-wrapper + ${L}-group-wrapper`]:{marginInlineStart:-A.lineWidth,[`${L}-affix-wrapper`]:{borderRadius:0}},[`${L}-group-wrapper:not(:last-child)`]:{[`&${L}-search > ${L}-group`]:{[`& > ${L}-group-addon > ${L}-search-button`]:{borderRadius:0},[`& > ${L}`]:{borderStartStartRadius:A.borderRadius,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:A.borderRadius}}}})}},j=A=>{const{componentCls:L,controlHeightSM:O,lineWidth:$}=A,P=16,K=(O-$*2-P)/2;return{[L]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,a.Wf)(A)),g(A)),y(A,L)),{'&[type="color"]':{height:A.controlHeight,[`&${L}-lg`]:{height:A.controlHeightLG},[`&${L}-sm`]:{height:O,paddingTop:K,paddingBottom:K}},'&[type="search"]::-webkit-search-cancel-button, &[type="search"]::-webkit-search-decoration':{"-webkit-appearance":"none"}})}},x=A=>{const{componentCls:L}=A;return{[`${L}-clear-icon`]:{margin:0,color:A.colorTextQuaternary,fontSize:A.fontSizeIcon,verticalAlign:-1,cursor:"pointer",transition:`color ${A.motionDurationSlow}`,"&:hover":{color:A.colorTextTertiary},"&:active":{color:A.colorText},"&-hidden":{visibility:"hidden"},"&-has-suffix":{margin:`0 ${A.inputAffixPadding}px`}}}},Z=A=>{const{componentCls:L,inputAffixPadding:O,colorTextDescription:$,motionDurationSlow:P,colorIcon:K,colorIconHover:U,iconCls:ee}=A;return{[`${L}-affix-wrapper`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},g(A)),{display:"inline-flex",[`&:not(${L}-affix-wrapper-disabled):hover`]:Object.assign(Object.assign({},c(A)),{zIndex:1,[`${L}-search-with-button &`]:{zIndex:0}}),"&-focused, &:focus":{zIndex:1},"&-disabled":{[`${L}[disabled]`]:{background:"transparent"}},[`> input${L}`]:{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"'},[`${L}`]:{"&-prefix, &-suffix":{display:"flex",flex:"none",alignItems:"center","> *:not(:last-child)":{marginInlineEnd:A.paddingXS}},"&-show-count-suffix":{color:$},"&-show-count-has-suffix":{marginInlineEnd:A.paddingXXS},"&-prefix":{marginInlineEnd:O},"&-suffix":{marginInlineStart:O}}}),x(A)),{[`${ee}${L}-password-icon`]:{color:K,cursor:"pointer",transition:`all ${P}`,"&:hover":{color:U}}}),y(A,`${L}-affix-wrapper`))}},B=A=>{const{componentCls:L,colorError:O,colorWarning:$,borderRadiusLG:P,borderRadiusSM:K}=A;return{[`${L}-group`]:Object.assign(Object.assign(Object.assign({},(0,a.Wf)(A)),S(A)),{"&-rtl":{direction:"rtl"},"&-wrapper":{display:"inline-block",width:"100%",textAlign:"start",verticalAlign:"top","&-rtl":{direction:"rtl"},"&-lg":{[`${L}-group-addon`]:{borderRadius:P,fontSize:A.fontSizeLG}},"&-sm":{[`${L}-group-addon`]:{borderRadius:K}},"&-status-error":{[`${L}-group-addon`]:{color:O,borderColor:O}},"&-status-warning":{[`${L}-group-addon`]:{color:$,borderColor:$}},"&-disabled":{[`${L}-group-addon`]:Object.assign({},d(A))},[`&:not(${L}-compact-first-item):not(${L}-compact-last-item)${L}-compact-item`]:{[`${L}, ${L}-group-addon`]:{borderRadius:0}},[`&:not(${L}-compact-last-item)${L}-compact-first-item`]:{[`${L}, ${L}-group-addon`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${L}-compact-first-item)${L}-compact-last-item`]:{[`${L}, ${L}-group-addon`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}})}},w=A=>{const{componentCls:L,antCls:O}=A,$=`${L}-search`;return{[$]:{[`${L}`]:{"&:hover, &:focus":{borderColor:A.colorPrimaryHover,[`+ ${L}-group-addon ${$}-button:not(${O}-btn-primary)`]:{borderInlineStartColor:A.colorPrimaryHover}}},[`${L}-affix-wrapper`]:{borderRadius:0},[`${L}-lg`]:{lineHeight:A.lineHeightLG-2e-4},[`> ${L}-group`]:{[`> ${L}-group-addon:last-child`]:{insetInlineStart:-1,padding:0,border:0,[`${$}-button`]:{paddingTop:0,paddingBottom:0,borderStartStartRadius:0,borderStartEndRadius:A.borderRadius,borderEndEndRadius:A.borderRadius,borderEndStartRadius:0},[`${$}-button:not(${O}-btn-primary)`]:{color:A.colorTextDescription,"&:hover":{color:A.colorPrimaryHover},"&:active":{color:A.colorPrimaryActive},[`&${O}-btn-loading::before`]:{insetInlineStart:0,insetInlineEnd:0,insetBlockStart:0,insetBlockEnd:0}}}},[`${$}-button`]:{height:A.controlHeight,"&:hover, &:focus":{zIndex:1}},[`&-large ${$}-button`]:{height:A.controlHeightLG},[`&-small ${$}-button`]:{height:A.controlHeightSM},"&-rtl":{direction:"rtl"},[`&${L}-compact-item`]:{[`&:not(${L}-compact-last-item)`]:{[`${L}-group-addon`]:{[`${L}-search-button`]:{marginInlineEnd:-A.lineWidth,borderRadius:0}}},[`&:not(${L}-compact-first-item)`]:{[`${L},${L}-affix-wrapper`]:{borderRadius:0}},[`> ${L}-group-addon ${L}-search-button, + > ${L}, + ${L}-affix-wrapper`]:{"&:hover,&:focus,&:active":{zIndex:2}},[`> ${L}-affix-wrapper-focused`]:{zIndex:2}}}}};function T(A){return(0,o.TS)(A,{inputAffixPadding:A.paddingXXS,inputPaddingVertical:Math.max(Math.round((A.controlHeight-A.fontSize*A.lineHeight)/2*10)/10-A.lineWidth,3),inputPaddingVerticalLG:Math.ceil((A.controlHeightLG-A.fontSizeLG*A.lineHeightLG)/2*10)/10-A.lineWidth,inputPaddingVerticalSM:Math.max(Math.round((A.controlHeightSM-A.fontSize*A.lineHeight)/2*10)/10-A.lineWidth,0),inputPaddingHorizontal:A.paddingSM-A.lineWidth,inputPaddingHorizontalSM:A.paddingXS-A.lineWidth,inputPaddingHorizontalLG:A.controlPaddingHorizontal-A.lineWidth,inputBorderHoverColor:A.colorPrimaryHover,inputBorderActiveColor:A.colorPrimaryHover})}const F=A=>{const{componentCls:L,paddingLG:O}=A,$=`${L}-textarea`;return{[$]:{position:"relative","&-show-count":{[`> ${L}`]:{height:"100%"},[`${L}-data-count`]:{position:"absolute",bottom:-A.fontSize*A.lineHeight,insetInlineEnd:0,color:A.colorTextDescription,whiteSpace:"nowrap",pointerEvents:"none"}},"&-allow-clear":{[`> ${L}`]:{paddingInlineEnd:O}},[`&-affix-wrapper${$}-has-feedback`]:{[`${L}`]:{paddingInlineEnd:O}},[`&-affix-wrapper${L}-affix-wrapper`]:{padding:0,[`> textarea${L}`]:{fontSize:"inherit",border:"none",outline:"none","&:focus":{boxShadow:"none !important"}},[`${L}-suffix`]:{margin:0,"> *:not(:last-child)":{marginInline:0},[`${L}-clear-icon`]:{position:"absolute",insetInlineEnd:A.paddingXS,insetBlockStart:A.paddingXS},[`${$}-suffix`]:{position:"absolute",top:0,insetInlineEnd:A.inputPaddingHorizontal,bottom:0,zIndex:1,display:"inline-flex",alignItems:"center",margin:"auto",pointerEvents:"none"}}}}}};b.ZP=(0,s.Z)("Input",A=>{const L=T(A);return[j(L),F(L),Z(L),B(L),w(L),(0,t.c)(L)]})},67423:function(M,b,e){"use strict";e.d(b,{D:function(){return T},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:"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),c=function($,P){return t.createElement(n.Z,(0,a.Z)({},$,{ref:P,icon:s}))},l=t.forwardRef(c),d=e(99142),h=e(91169),p=e(87608),y=e.n(p),g=e(98186),j=O=>!isNaN(parseFloat(O))&&isFinite(O),x=e(61836),Z=e(79802),B=function(O,$){var P={};for(var K in O)Object.prototype.hasOwnProperty.call(O,K)&&$.indexOf(K)<0&&(P[K]=O[K]);if(O!=null&&typeof Object.getOwnPropertySymbols=="function")for(var U=0,K=Object.getOwnPropertySymbols(O);U{let O=0;return function(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return O+=1,`${$}${O}`}})();var L=t.forwardRef((O,$)=>{const{prefixCls:P,className:K,trigger:U,children:ee,defaultCollapsed:le=!1,theme:Q="dark",style:G={},collapsible:q=!1,reverseArrow:I=!1,width:H=200,collapsedWidth:Y=80,zeroWidthTriggerStyle:D,breakpoint:_,onCollapse:ue,onBreakpoint:be}=O,ce=B(O,["prefixCls","className","trigger","children","defaultCollapsed","theme","style","collapsible","reverseArrow","width","collapsedWidth","zeroWidthTriggerStyle","breakpoint","onCollapse","onBreakpoint"]),{siderHook:he}=(0,t.useContext)(Z.Gs),[Fe,Je]=(0,t.useState)("collapsed"in O?O.collapsed:le),[et,ae]=(0,t.useState)(!1);(0,t.useEffect)(()=>{"collapsed"in O&&Je(O.collapsed)},[O.collapsed]);const yt=(st,We)=>{"collapsed"in O||Je(st),ue==null||ue(st,We)},Pt=(0,t.useRef)();Pt.current=st=>{ae(st.matches),be==null||be(st.matches),Fe!==st.matches&&yt(st.matches,"responsive")},(0,t.useEffect)(()=>{function st(ge){return Pt.current(ge)}let We;if(typeof window!="undefined"){const{matchMedia:ge}=window;if(ge&&_&&_ in w){We=ge(`(max-width: ${w[_]})`);try{We.addEventListener("change",st)}catch(X){We.addListener(st)}st(We)}}return()=>{try{We==null||We.removeEventListener("change",st)}catch(ge){We==null||We.removeListener(st)}}},[_]),(0,t.useEffect)(()=>{const st=F("ant-sider-");return he.addSider(st),()=>he.removeSider(st)},[]);const bt=()=>{yt(!Fe,"clickTrigger")},{getPrefixCls:Ct}=(0,t.useContext)(x.E_),Le=()=>{const st=Ct("layout-sider",P),We=(0,g.Z)(ce,["collapsed"]),ge=Fe?Y:H,X=j(ge)?`${ge}px`:String(ge),W=parseFloat(String(Y||0))===0?t.createElement("span",{onClick:bt,className:y()(`${st}-zero-width-trigger`,`${st}-zero-width-trigger-${I?"right":"left"}`),style:D},U||t.createElement(l,null)):null,oe={expanded:I?t.createElement(h.Z,null):t.createElement(d.Z,null),collapsed:I?t.createElement(d.Z,null):t.createElement(h.Z,null)}[Fe?"collapsed":"expanded"],ve=U!==null?W||t.createElement("div",{className:`${st}-trigger`,onClick:bt,style:{width:X}},U||oe):null,te=Object.assign(Object.assign({},G),{flex:`0 0 ${X}`,maxWidth:X,minWidth:X,width:X}),me=y()(st,`${st}-${Q}`,{[`${st}-collapsed`]:!!Fe,[`${st}-has-trigger`]:q&&U!==null&&!W,[`${st}-below`]:!!et,[`${st}-zero-width`]:parseFloat(X)===0},K);return t.createElement("aside",Object.assign({className:me},We,{style:te,ref:$}),t.createElement("div",{className:`${st}-children`},ee),q||et&&W?ve:null)},Ke=t.useMemo(()=>({siderCollapsed:Fe}),[Fe]);return t.createElement(T.Provider,{value:Ke},Le())})},79802:function(M,b,e){"use strict";e.d(b,{VY:function(){return A},$_:function(){return F},h4:function(){return T},Gs:function(){return j},ZP:function(){return L}});var a=e(29140),t=e(87608),o=e.n(t),s=e(98186),n=e(58757),c=e(61836),l=e(52628),d=e(22151),p=O=>{const{componentCls:$,colorBgContainer:P,colorBgBody:K,colorText:U}=O;return{[`${$}-sider-light`]:{background:P,[`${$}-sider-trigger`]:{color:U,background:P},[`${$}-sider-zero-width-trigger`]:{color:U,background:P,border:`1px solid ${K}`,borderInlineStart:0}}}};const y=O=>{const{antCls:$,componentCls:P,colorText:K,colorTextLightSolid:U,colorBgHeader:ee,colorBgBody:le,colorBgTrigger:Q,layoutHeaderHeight:G,layoutHeaderPaddingInline:q,layoutHeaderColor:I,layoutFooterPadding:H,layoutTriggerHeight:Y,layoutZeroTriggerSize:D,motionDurationMid:_,motionDurationSlow:ue,fontSize:be,borderRadius:ce}=O;return{[P]:Object.assign(Object.assign({display:"flex",flex:"auto",flexDirection:"column",minHeight:0,background:le,"&, *":{boxSizing:"border-box"},[`&${P}-has-sider`]:{flexDirection:"row",[`> ${P}, > ${P}-content`]:{width:0}},[`${P}-header, &${P}-footer`]:{flex:"0 0 auto"},[`${P}-sider`]:{position:"relative",minWidth:0,background:ee,transition:`all ${_}, background 0s`,"&-children":{height:"100%",marginTop:-.1,paddingTop:.1,[`${$}-menu${$}-menu-inline-collapsed`]:{width:"auto"}},"&-has-trigger":{paddingBottom:Y},"&-right":{order:1},"&-trigger":{position:"fixed",bottom:0,zIndex:1,height:Y,color:U,lineHeight:`${Y}px`,textAlign:"center",background:Q,cursor:"pointer",transition:`all ${_}`},"&-zero-width":{"> *":{overflow:"hidden"},"&-trigger":{position:"absolute",top:G,insetInlineEnd:-D,zIndex:1,width:D,height:D,color:U,fontSize:O.fontSizeXL,display:"flex",alignItems:"center",justifyContent:"center",background:ee,borderStartStartRadius:0,borderStartEndRadius:ce,borderEndEndRadius:ce,borderEndStartRadius:0,cursor:"pointer",transition:`background ${ue} ease`,"&::after":{position:"absolute",inset:0,background:"transparent",transition:`all ${ue}`,content:'""'},"&:hover::after":{background:"rgba(255, 255, 255, 0.2)"},"&-right":{insetInlineStart:-D,borderStartStartRadius:ce,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:ce}}}}},p(O)),{"&-rtl":{direction:"rtl"}}),[`${P}-header`]:{height:G,paddingInline:q,color:I,lineHeight:`${G}px`,background:ee,[`${$}-menu`]:{lineHeight:"inherit"}},[`${P}-footer`]:{padding:H,color:K,fontSize:be,background:le},[`${P}-content`]:{flex:"auto",minHeight:0}}};var g=(0,l.Z)("Layout",O=>{const{colorText:$,controlHeightSM:P,controlHeight:K,controlHeightLG:U,marginXXS:ee}=O,le=U*1.25,Q=(0,d.TS)(O,{layoutHeaderHeight:K*2,layoutHeaderPaddingInline:le,layoutHeaderColor:$,layoutFooterPadding:`${P}px ${le}px`,layoutTriggerHeight:U+ee*2,layoutZeroTriggerSize:U});return[y(Q)]},O=>{const{colorBgLayout:$}=O;return{colorBgHeader:"#001529",colorBgBody:$,colorBgTrigger:"#002140"}}),S=function(O,$){var P={};for(var K in O)Object.prototype.hasOwnProperty.call(O,K)&&$.indexOf(K)<0&&(P[K]=O[K]);if(O!=null&&typeof Object.getOwnPropertySymbols=="function")for(var U=0,K=Object.getOwnPropertySymbols(O);Unull,removeSider:()=>null}});function x(O){let{suffixCls:$,tagName:P,displayName:K}=O;return U=>n.forwardRef((le,Q)=>n.createElement(U,Object.assign({ref:Q,suffixCls:$,tagName:P},le)))}const Z=n.forwardRef((O,$)=>{const{prefixCls:P,suffixCls:K,className:U,tagName:ee}=O,le=S(O,["prefixCls","suffixCls","className","tagName"]),{getPrefixCls:Q}=n.useContext(c.E_),G=Q("layout",P),[q,I]=g(G),H=K?`${G}-${K}`:G;return q(n.createElement(ee,Object.assign({className:o()(P||H,U,I),ref:$},le)))}),B=n.forwardRef((O,$)=>{const{direction:P}=n.useContext(c.E_),[K,U]=n.useState([]),{prefixCls:ee,className:le,rootClassName:Q,children:G,hasSider:q,tagName:I,style:H}=O,Y=S(O,["prefixCls","className","rootClassName","children","hasSider","tagName","style"]),D=(0,s.Z)(Y,["suffixCls"]),{getPrefixCls:_,layout:ue}=n.useContext(c.E_),be=_("layout",ee),[ce,he]=g(be),Fe=o()(be,{[`${be}-has-sider`]:typeof q=="boolean"?q:K.length>0,[`${be}-rtl`]:P==="rtl"},ue==null?void 0:ue.className,le,Q,he),Je=n.useMemo(()=>({siderHook:{addSider:et=>{U(ae=>[].concat((0,a.Z)(ae),[et]))},removeSider:et=>{U(ae=>ae.filter(yt=>yt!==et))}}}),[]);return ce(n.createElement(j.Provider,{value:Je},n.createElement(I,Object.assign({ref:$,className:Fe,style:Object.assign(Object.assign({},ue==null?void 0:ue.style),H)},D),G)))}),w=x({tagName:"div",displayName:"Layout"})(B),T=x({suffixCls:"header",tagName:"header",displayName:"Header"})(Z),F=x({suffixCls:"footer",tagName:"footer",displayName:"Footer"})(Z),A=x({suffixCls:"content",tagName:"main",displayName:"Content"})(Z);var L=w},37617:function(M,b,e){"use strict";e.d(b,{Z:function(){return G}});var a=e(29140),t=e(87608),o=e.n(t),s=e(58757),n=e(44818),c=e(87078),l=e(61836),d=e(10401),h=e(67665),p=e(60059),y=e(35910),g=e(79233),S=e(37047),j=e(91334);const x=s.createContext({}),Z=x.Consumer;var B=function(q,I){var H={};for(var Y in q)Object.prototype.hasOwnProperty.call(q,Y)&&I.indexOf(Y)<0&&(H[Y]=q[Y]);if(q!=null&&typeof Object.getOwnPropertySymbols=="function")for(var D=0,Y=Object.getOwnPropertySymbols(q);D{var{prefixCls:I,className:H,avatar:Y,title:D,description:_}=q,ue=B(q,["prefixCls","className","avatar","title","description"]);const{getPrefixCls:be}=(0,s.useContext)(l.E_),ce=be("list",I),he=o()(`${ce}-item-meta`,H),Fe=s.createElement("div",{className:`${ce}-item-meta-content`},D&&s.createElement("h4",{className:`${ce}-item-meta-title`},D),_&&s.createElement("div",{className:`${ce}-item-meta-description`},_));return s.createElement("div",Object.assign({},ue,{className:he}),Y&&s.createElement("div",{className:`${ce}-item-meta-avatar`},Y),(D||_)&&Fe)},T=(q,I)=>{var{prefixCls:H,children:Y,actions:D,extra:_,className:ue,colStyle:be}=q,ce=B(q,["prefixCls","children","actions","extra","className","colStyle"]);const{grid:he,itemLayout:Fe}=(0,s.useContext)(x),{getPrefixCls:Je}=(0,s.useContext)(l.E_),et=()=>{let Le;return s.Children.forEach(Y,Ke=>{typeof Ke=="string"&&(Le=!0)}),Le&&s.Children.count(Y)>1},ae=()=>Fe==="vertical"?!!_:!et(),yt=Je("list",H),Pt=D&&D.length>0&&s.createElement("ul",{className:`${yt}-item-action`,key:"actions"},D.map((Le,Ke)=>s.createElement("li",{key:`${yt}-item-action-${Ke}`},Le,Ke!==D.length-1&&s.createElement("em",{className:`${yt}-item-action-split`})))),bt=he?"div":"li",Ct=s.createElement(bt,Object.assign({},ce,he?{}:{ref:I},{className:o()(`${yt}-item`,{[`${yt}-item-no-flex`]:!ae()},ue)}),Fe==="vertical"&&_?[s.createElement("div",{className:`${yt}-item-main`,key:"content"},Y,Pt),s.createElement("div",{className:`${yt}-item-extra`,key:"extra"},_)]:[Y,Pt,(0,S.Tm)(_,{key:"extra"})]);return he?s.createElement(j.Z,{ref:I,flex:1,style:be},Ct):Ct},F=(0,s.forwardRef)(T);F.Meta=w;var A=F,L=e(78330),O=e(52628),$=e(22151);const P=q=>{const{listBorderedCls:I,componentCls:H,paddingLG:Y,margin:D,itemPaddingSM:_,itemPaddingLG:ue,marginLG:be,borderRadiusLG:ce}=q;return{[`${I}`]:{border:`${q.lineWidth}px ${q.lineType} ${q.colorBorder}`,borderRadius:ce,[`${H}-header,${H}-footer,${H}-item`]:{paddingInline:Y},[`${H}-pagination`]:{margin:`${D}px ${be}px`}},[`${I}${H}-sm`]:{[`${H}-item,${H}-header,${H}-footer`]:{padding:_}},[`${I}${H}-lg`]:{[`${H}-item,${H}-header,${H}-footer`]:{padding:ue}}}},K=q=>{const{componentCls:I,screenSM:H,screenMD:Y,marginLG:D,marginSM:_,margin:ue}=q;return{[`@media screen and (max-width:${Y})`]:{[`${I}`]:{[`${I}-item`]:{[`${I}-item-action`]:{marginInlineStart:D}}},[`${I}-vertical`]:{[`${I}-item`]:{[`${I}-item-extra`]:{marginInlineStart:D}}}},[`@media screen and (max-width: ${H})`]:{[`${I}`]:{[`${I}-item`]:{flexWrap:"wrap",[`${I}-action`]:{marginInlineStart:_}}},[`${I}-vertical`]:{[`${I}-item`]:{flexWrap:"wrap-reverse",[`${I}-item-main`]:{minWidth:q.contentWidth},[`${I}-item-extra`]:{margin:`auto auto ${ue}px`}}}}}},U=q=>{const{componentCls:I,antCls:H,controlHeight:Y,minHeight:D,paddingSM:_,marginLG:ue,padding:be,itemPadding:ce,colorPrimary:he,itemPaddingSM:Fe,itemPaddingLG:Je,paddingXS:et,margin:ae,colorText:yt,colorTextDescription:Pt,motionDurationSlow:bt,lineWidth:Ct,headerBg:Le,footerBg:Ke,emptyTextPadding:st,metaMarginBottom:We,avatarMarginRight:ge,titleMarginBottom:X,descriptionFontSize:W}=q,R={};return["start","center","end"].forEach(N=>{R[`&-align-${N}`]={textAlign:N}}),{[`${I}`]:Object.assign(Object.assign({},(0,L.Wf)(q)),{position:"relative","*":{outline:"none"},[`${I}-header`]:{background:Le},[`${I}-footer`]:{background:Ke},[`${I}-header, ${I}-footer`]:{paddingBlock:_},[`${I}-pagination`]:Object.assign(Object.assign({marginBlockStart:ue},R),{[`${H}-pagination-options`]:{textAlign:"start"}}),[`${I}-spin`]:{minHeight:D,textAlign:"center"},[`${I}-items`]:{margin:0,padding:0,listStyle:"none"},[`${I}-item`]:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:ce,color:yt,[`${I}-item-meta`]:{display:"flex",flex:1,alignItems:"flex-start",maxWidth:"100%",[`${I}-item-meta-avatar`]:{marginInlineEnd:ge},[`${I}-item-meta-content`]:{flex:"1 0",width:0,color:yt},[`${I}-item-meta-title`]:{margin:`0 0 ${q.marginXXS}px 0`,color:yt,fontSize:q.fontSize,lineHeight:q.lineHeight,"> a":{color:yt,transition:`all ${bt}`,["&:hover"]:{color:he}}},[`${I}-item-meta-description`]:{color:Pt,fontSize:W,lineHeight:q.lineHeight}},[`${I}-item-action`]:{flex:"0 0 auto",marginInlineStart:q.marginXXL,padding:0,fontSize:0,listStyle:"none",["& > li"]:{position:"relative",display:"inline-block",padding:`0 ${et}px`,color:Pt,fontSize:q.fontSize,lineHeight:q.lineHeight,textAlign:"center",["&:first-child"]:{paddingInlineStart:0}},[`${I}-item-action-split`]:{position:"absolute",insetBlockStart:"50%",insetInlineEnd:0,width:Ct,height:Math.ceil(q.fontSize*q.lineHeight)-q.marginXXS*2,transform:"translateY(-50%)",backgroundColor:q.colorSplit}}},[`${I}-empty`]:{padding:`${be}px 0`,color:Pt,fontSize:q.fontSizeSM,textAlign:"center"},[`${I}-empty-text`]:{padding:st,color:q.colorTextDisabled,fontSize:q.fontSize,textAlign:"center"},[`${I}-item-no-flex`]:{display:"block"}}),[`${I}-grid ${H}-col > ${I}-item`]:{display:"block",maxWidth:"100%",marginBlockEnd:ae,paddingBlock:0,borderBlockEnd:"none"},[`${I}-vertical ${I}-item`]:{alignItems:"initial",[`${I}-item-main`]:{display:"block",flex:1},[`${I}-item-extra`]:{marginInlineStart:ue},[`${I}-item-meta`]:{marginBlockEnd:We,[`${I}-item-meta-title`]:{marginBlockStart:0,marginBlockEnd:X,color:yt,fontSize:q.fontSizeLG,lineHeight:q.lineHeightLG}},[`${I}-item-action`]:{marginBlockStart:be,marginInlineStart:"auto","> li":{padding:`0 ${be}px`,["&:first-child"]:{paddingInlineStart:0}}}},[`${I}-split ${I}-item`]:{borderBlockEnd:`${q.lineWidth}px ${q.lineType} ${q.colorSplit}`,["&:last-child"]:{borderBlockEnd:"none"}},[`${I}-split ${I}-header`]:{borderBlockEnd:`${q.lineWidth}px ${q.lineType} ${q.colorSplit}`},[`${I}-split${I}-empty ${I}-footer`]:{borderTop:`${q.lineWidth}px ${q.lineType} ${q.colorSplit}`},[`${I}-loading ${I}-spin-nested-loading`]:{minHeight:Y},[`${I}-split${I}-something-after-last-item ${H}-spin-container > ${I}-items > ${I}-item:last-child`]:{borderBlockEnd:`${q.lineWidth}px ${q.lineType} ${q.colorSplit}`},[`${I}-lg ${I}-item`]:{padding:Je},[`${I}-sm ${I}-item`]:{padding:Fe},[`${I}:not(${I}-vertical)`]:{[`${I}-item-no-flex`]:{[`${I}-item-action`]:{float:"right"}}}}};var ee=(0,O.Z)("List",q=>{const I=(0,$.TS)(q,{listBorderedCls:`${q.componentCls}-bordered`,minHeight:q.controlHeightLG});return[U(I),P(I),K(I)]},q=>({contentWidth:220,itemPadding:`${q.paddingContentVertical}px 0`,itemPaddingSM:`${q.paddingContentVerticalSM}px ${q.paddingContentHorizontal}px`,itemPaddingLG:`${q.paddingContentVerticalLG}px ${q.paddingContentHorizontalLG}px`,headerBg:"transparent",footerBg:"transparent",emptyTextPadding:q.padding,metaMarginBottom:q.padding,avatarMarginRight:q.padding,titleMarginBottom:q.paddingSM,descriptionFontSize:q.fontSize})),le=function(q,I){var H={};for(var Y in q)Object.prototype.hasOwnProperty.call(q,Y)&&I.indexOf(Y)<0&&(H[Y]=q[Y]);if(q!=null&&typeof Object.getOwnPropertySymbols=="function")for(var D=0,Y=Object.getOwnPropertySymbols(q);D(nt,ot)=>{var wt;W(nt),N(ot),H&&H[Be]&&((wt=H==null?void 0:H[Be])===null||wt===void 0||wt.call(H,nt,ot))},Se=xe("onChange"),ke=xe("onShowSizeChange"),ne=(Be,nt)=>{if(!Ke)return null;let ot;return typeof Le=="function"?ot=Le(Be):Le?ot=Be[Le]:ot=Be.key,ot||(ot=`list-item-${nt}`),s.createElement(s.Fragment,{key:ot},Ke(Be,nt))},re=()=>!!(Je||H||bt),se=oe("list",Y),[Ee,Re]=ee(se);let fe=Ct;typeof fe=="boolean"&&(fe={spinning:fe});const _e=fe&&fe.spinning;let Pe="";switch(yt){case"large":Pe="lg";break;case"small":Pe="sm";break;default:break}const ze=o()(se,{[`${se}-vertical`]:Fe==="vertical",[`${se}-${Pe}`]:Pe,[`${se}-split`]:_,[`${se}-bordered`]:D,[`${se}-loading`]:_e,[`${se}-grid`]:!!et,[`${se}-something-after-last-item`]:re(),[`${se}-rtl`]:te==="rtl"},me==null?void 0:me.className,ue,be,Re),Qe=(0,n.Z)(we,{total:ae.length,current:X,pageSize:R},H||{}),gt=Math.ceil(Qe.total/Qe.pageSize);Qe.current>gt&&(Qe.current=gt);const ut=H?s.createElement("div",{className:o()(`${se}-pagination`,`${se}-pagination-align-${(I=Qe==null?void 0:Qe.align)!==null&&I!==void 0?I:"end"}`)},s.createElement(y.Z,Object.assign({},Qe,{onChange:Se,onShowSizeChange:ke}))):null;let rt=(0,a.Z)(ae);H&&ae.length>(Qe.current-1)*Qe.pageSize&&(rt=(0,a.Z)(ae).splice((Qe.current-1)*Qe.pageSize,Qe.pageSize));const qe=Object.keys(et||{}).some(Be=>["xs","sm","md","lg","xl","xxl"].includes(Be)),Ve=(0,p.Z)(qe),tt=s.useMemo(()=>{for(let Be=0;Be{if(!et)return;const Be=tt&&et[tt]?et[tt]:et.column;if(Be)return{width:`${100/Be}%`,maxWidth:`${100/Be}%`}},[et==null?void 0:et.column,tt]);let Me=_e&&s.createElement("div",{style:{minHeight:53}});if(rt.length>0){const Be=rt.map((nt,ot)=>ne(nt,ot));Me=et?s.createElement(h.Z,{gutter:et.gutter},s.Children.map(Be,nt=>s.createElement("div",{key:nt==null?void 0:nt.key,style:Oe},nt))):s.createElement("ul",{className:`${se}-items`},Be)}else!he&&!_e&&(Me=s.createElement("div",{className:`${se}-empty-text`},st&&st.emptyText||(ve==null?void 0:ve("List"))||s.createElement(d.Z,{componentName:"List"})));const Ne=Qe.position||"bottom",Te=s.useMemo(()=>({grid:et,itemLayout:Fe}),[JSON.stringify(et),Fe]);return Ee(s.createElement(x.Provider,{value:Te},s.createElement("div",Object.assign({style:Object.assign(Object.assign({},me==null?void 0:me.style),ce),className:ze},We),(Ne==="top"||Ne==="both")&&ut,Pt&&s.createElement("div",{className:`${se}-header`},Pt),s.createElement(g.Z,Object.assign({},fe),Me,he),bt&&s.createElement("div",{className:`${se}-footer`},bt),Je||(Ne==="bottom"||Ne==="both")&&ut)))}Q.Item=A;var G=Q},10520:function(M,b,e){"use strict";var a=e(58757);const t=(0,a.createContext)(void 0);b.Z=t},80076:function(M,b,e){"use strict";var a=e(57522),t=e(81872),o=e(7056),s=e(38107);const n="${label} is not a valid ${type}",c={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"}};b.Z=c},29487:function(M,b,e){"use strict";var a=e(58757),t=e(10520),o=e(80076);const s=(n,c)=>{const l=a.useContext(t.Z),d=a.useMemo(()=>{var p;const y=c||o.Z[n],g=(p=l==null?void 0:l[n])!==null&&p!==void 0?p:{};return Object.assign(Object.assign({},typeof y=="function"?y():y),g||{})},[n,c,l]),h=a.useMemo(()=>{const p=l==null?void 0:l.locale;return l!=null&&l.exist&&!p?o.Z.locale:p},[l]);return[d,h]};b.Z=s},1597:function(M,b,e){"use strict";e.d(b,{Z:function(){return y}});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 c={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)};c.lang.ok="\u786E\u5B9A";var l=c,d=l;const h="${label}\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684${type}";var y={locale:"zh-cn",Pagination:a.Z,DatePicker:l,TimePicker:n,Calendar:d,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:h,method:h,array:h,object:h,number:h,date:h,boolean:h,integer:h,float:h,regexp:h,email:h,url:h,hex:h},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(M,b,e){"use strict";e.d(b,{J:function(){return c}});var a=e(58757),t=e(43528),o=e(71219),s=function(l,d){var h={};for(var p in l)Object.prototype.hasOwnProperty.call(l,p)&&d.indexOf(p)<0&&(h[p]=l[p]);if(l!=null&&typeof Object.getOwnPropertySymbols=="function")for(var y=0,p=Object.getOwnPropertySymbols(l);y{const{children:h}=l,p=s(l,["children"]),y=a.useContext(n),g=a.useMemo(()=>Object.assign(Object.assign({},y),p),[y,p.prefixCls,p.mode,p.selectable]);return a.createElement(n.Provider,{value:g},a.createElement(t.BR,null,(0,o.t4)(h)?a.cloneElement(h,{ref:d}):h))});b.Z=n},85706:function(M,b,e){"use strict";e.d(b,{Z:function(){return st}});var a=e(87854),t=e(58757),o=e(67423),s=e(87608),n=e.n(s),c=e(61836),l=function(We,ge){var X={};for(var W in We)Object.prototype.hasOwnProperty.call(We,W)&&ge.indexOf(W)<0&&(X[W]=We[W]);if(We!=null&&typeof Object.getOwnPropertySymbols=="function")for(var R=0,W=Object.getOwnPropertySymbols(We);R{const{prefixCls:ge,className:X,dashed:W}=We,R=l(We,["prefixCls","className","dashed"]),{getPrefixCls:N}=t.useContext(c.E_),oe=N("menu",ge),ve=n()({[`${oe}-item-divider-dashed`]:!!W},X);return t.createElement(a.iz,Object.assign({className:ve},R))},p=e(42156),y=e(98186),g=e(74820),S=e(37047),x=(0,t.createContext)({prefixCls:"",firstLevel:!0,inlineCollapsed:!1}),B=We=>{var ge;const{className:X,children:W,icon:R,title:N,danger:oe}=We,{prefixCls:ve,firstLevel:te,direction:me,disableMenuItemTitleTooltip:we,inlineCollapsed:xe}=t.useContext(x),Se=Re=>{const fe=t.createElement("span",{className:`${ve}-title-content`},W);return(!R||(0,S.l$)(W)&&W.type==="span")&&W&&Re&&te&&typeof W=="string"?t.createElement("div",{className:`${ve}-inline-collapsed-noicon`},W.charAt(0)):fe},{siderCollapsed:ke}=t.useContext(o.D);let ne=N;typeof N=="undefined"?ne=te?W:"":N===!1&&(ne="");const re={title:ne};!ke&&!xe&&(re.title=null,re.open=!1);const se=(0,p.Z)(W).length;let Ee=t.createElement(a.ck,Object.assign({},(0,y.Z)(We,["title","icon","danger"]),{className:n()({[`${ve}-item-danger`]:oe,[`${ve}-item-only-child`]:(R?se+1:se)===1},X),title:typeof N=="string"?N:void 0}),(0,S.Tm)(R,{className:n()((0,S.l$)(R)?(ge=R.props)===null||ge===void 0?void 0:ge.className:"",`${ve}-item-icon`)}),Se(xe));return we||(Ee=t.createElement(g.Z,Object.assign({},re,{placement:me==="rtl"?"left":"right",overlayClassName:`${ve}-inline-collapsed-tooltip`}),Ee)),Ee},T=We=>{var ge;const{popupClassName:X,icon:W,title:R,theme:N}=We,oe=t.useContext(x),{prefixCls:ve,inlineCollapsed:te,theme:me}=oe,we=(0,a.Xl)();let xe;if(!W)xe=te&&!we.length&&R&&typeof R=="string"?t.createElement("div",{className:`${ve}-inline-collapsed-noicon`},R.charAt(0)):t.createElement("span",{className:`${ve}-title-content`},R);else{const ke=(0,S.l$)(R)&&R.type==="span";xe=t.createElement(t.Fragment,null,(0,S.Tm)(W,{className:n()((0,S.l$)(W)?(ge=W.props)===null||ge===void 0?void 0:ge.className:"",`${ve}-item-icon`)}),ke?R:t.createElement("span",{className:`${ve}-title-content`},R))}const Se=t.useMemo(()=>Object.assign(Object.assign({},oe),{firstLevel:!1}),[oe]);return t.createElement(x.Provider,{value:Se},t.createElement(a.Wd,Object.assign({},(0,y.Z)(We,["icon"]),{title:xe,popupClassName:n()(ve,X,`${ve}-${N||me}`)})))},F=e(18974),A=e(51729),L=e(90881),O=e(81285),$=function(We,ge){var X={};for(var W in We)Object.prototype.hasOwnProperty.call(We,W)&&ge.indexOf(W)<0&&(X[W]=We[W]);if(We!=null&&typeof Object.getOwnPropertySymbols=="function")for(var R=0,W=Object.getOwnPropertySymbols(We);R{if(ge&&typeof ge=="object"){const W=ge,{label:R,children:N,key:oe,type:ve}=W,te=$(W,["label","children","key","type"]),me=oe!=null?oe:`tmp-${X}`;return N||ve==="group"?ve==="group"?t.createElement(a.BW,Object.assign({key:me},te,{title:R}),P(N)):t.createElement(T,Object.assign({key:me},te,{title:R}),P(N)):ve==="divider"?t.createElement(h,Object.assign({key:me},te)):t.createElement(B,Object.assign({key:me},te),R)}return null}).filter(ge=>ge)}function K(We){return t.useMemo(()=>We&&P(We),[We])}var U=e(66671),ee=e(78330),le=e(41086),Q=e(1016),G=e(28107),q=e(52628),I=e(22151),Y=We=>{const{componentCls:ge,motionDurationSlow:X,horizontalLineHeight:W,colorSplit:R,lineWidth:N,lineType:oe,itemPaddingInline:ve}=We;return{[`${ge}-horizontal`]:{lineHeight:W,border:0,borderBottom:`${N}px ${oe} ${R}`,boxShadow:"none","&::after":{display:"block",clear:"both",height:0,content:'"\\20"'},[`${ge}-item, ${ge}-submenu`]:{position:"relative",display:"inline-block",verticalAlign:"bottom",paddingInline:ve},[`> ${ge}-item:hover, + > ${ge}-item-active, + > ${ge}-submenu ${ge}-submenu-title:hover`]:{backgroundColor:"transparent"},[`${ge}-item, ${ge}-submenu-title`]:{transition:[`border-color ${X}`,`background ${X}`].join(",")},[`${ge}-submenu-arrow`]:{display:"none"}}}},_=We=>{let{componentCls:ge,menuArrowOffset:X}=We;return{[`${ge}-rtl`]:{direction:"rtl"},[`${ge}-submenu-rtl`]:{transformOrigin:"100% 0"},[`${ge}-rtl${ge}-vertical, + ${ge}-submenu-rtl ${ge}-vertical`]:{[`${ge}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateY(-${X})`},"&::after":{transform:`rotate(45deg) translateY(${X})`}}}}};const ue=We=>Object.assign({},(0,ee.oN)(We));var ce=(We,ge)=>{const{componentCls:X,itemColor:W,itemSelectedColor:R,groupTitleColor:N,itemBg:oe,subMenuItemBg:ve,itemSelectedBg:te,activeBarHeight:me,activeBarWidth:we,activeBarBorderWidth:xe,motionDurationSlow:Se,motionEaseInOut:ke,motionEaseOut:ne,itemPaddingInline:re,motionDurationMid:se,itemHoverColor:Ee,lineType:Re,colorSplit:fe,itemDisabledColor:_e,dangerItemColor:Pe,dangerItemHoverColor:ze,dangerItemSelectedColor:Qe,dangerItemActiveBg:gt,dangerItemSelectedBg:ut,itemHoverBg:rt,itemActiveBg:qe,menuSubMenuBg:Ve,horizontalItemSelectedColor:tt,horizontalItemSelectedBg:Oe,horizontalItemBorderRadius:Me,horizontalItemHoverBg:Ne,popupBg:Te}=We;return{[`${X}-${ge}, ${X}-${ge} > ${X}`]:{color:W,background:oe,[`&${X}-root:focus-visible`]:Object.assign({},ue(We)),[`${X}-item-group-title`]:{color:N},[`${X}-submenu-selected`]:{[`> ${X}-submenu-title`]:{color:R}},[`${X}-item-disabled, ${X}-submenu-disabled`]:{color:`${_e} !important`},[`${X}-item:not(${X}-item-selected):not(${X}-submenu-selected)`]:{[`&:hover, > ${X}-submenu-title:hover`]:{color:Ee}},[`&:not(${X}-horizontal)`]:{[`${X}-item:not(${X}-item-selected)`]:{"&:hover":{backgroundColor:rt},"&:active":{backgroundColor:qe}},[`${X}-submenu-title`]:{"&:hover":{backgroundColor:rt},"&:active":{backgroundColor:qe}}},[`${X}-item-danger`]:{color:Pe,[`&${X}-item:hover`]:{[`&:not(${X}-item-selected):not(${X}-submenu-selected)`]:{color:ze}},[`&${X}-item:active`]:{background:gt}},[`${X}-item a`]:{"&, &:hover":{color:"inherit"}},[`${X}-item-selected`]:{color:R,[`&${X}-item-danger`]:{color:Qe},["a, a:hover"]:{color:"inherit"}},[`& ${X}-item-selected`]:{backgroundColor:te,[`&${X}-item-danger`]:{backgroundColor:ut}},[`${X}-item, ${X}-submenu-title`]:{[`&:not(${X}-item-disabled):focus-visible`]:Object.assign({},ue(We))},[`&${X}-submenu > ${X}`]:{backgroundColor:Ve},[`&${X}-popup > ${X}`]:{backgroundColor:Te},[`&${X}-horizontal`]:Object.assign(Object.assign({},ge==="dark"?{borderBottom:0}:{}),{[`> ${X}-item, > ${X}-submenu`]:{top:xe,marginTop:-xe,marginBottom:0,borderRadius:Me,"&::after":{position:"absolute",insetInline:re,bottom:0,borderBottom:`${me}px solid transparent`,transition:`border-color ${Se} ${ke}`,content:'""'},["&:hover, &-active, &-open"]:{background:Ne,"&::after":{borderBottomWidth:me,borderBottomColor:tt}},["&-selected"]:{color:tt,backgroundColor:Oe,"&:hover":{backgroundColor:Oe},"&::after":{borderBottomWidth:me,borderBottomColor:tt}}}}),[`&${X}-root`]:{[`&${X}-inline, &${X}-vertical`]:{borderInlineEnd:`${xe}px ${Re} ${fe}`}},[`&${X}-inline`]:{[`${X}-sub${X}-inline`]:{background:ve},[`${X}-item, ${X}-submenu-title`]:xe&&we?{width:`calc(100% + ${xe}px)`}:{},[`${X}-item`]:{position:"relative","&::after":{position:"absolute",insetBlock:0,insetInlineEnd:0,borderInlineEnd:`${we}px solid ${R}`,transform:"scaleY(0.0001)",opacity:0,transition:[`transform ${se} ${ne}`,`opacity ${se} ${ne}`].join(","),content:'""'},[`&${X}-item-danger`]:{"&::after":{borderInlineEndColor:Qe}}},[`${X}-selected, ${X}-item-selected`]:{"&::after":{transform:"scaleY(1)",opacity:1,transition:[`transform ${se} ${ke}`,`opacity ${se} ${ke}`].join(",")}}}}}};const he=We=>{const{componentCls:ge,itemHeight:X,itemMarginInline:W,padding:R,menuArrowSize:N,marginXS:oe,itemMarginBlock:ve}=We,te=R+N+oe;return{[`${ge}-item`]:{position:"relative",overflow:"hidden"},[`${ge}-item, ${ge}-submenu-title`]:{height:X,lineHeight:`${X}px`,paddingInline:R,overflow:"hidden",textOverflow:"ellipsis",marginInline:W,marginBlock:ve,width:`calc(100% - ${W*2}px)`},[`> ${ge}-item, + > ${ge}-submenu > ${ge}-submenu-title`]:{height:X,lineHeight:`${X}px`},[`${ge}-item-group-list ${ge}-submenu-title, + ${ge}-submenu-title`]:{paddingInlineEnd:te}}};var Je=We=>{const{componentCls:ge,iconCls:X,itemHeight:W,colorTextLightSolid:R,dropdownWidth:N,controlHeightLG:oe,motionDurationMid:ve,motionEaseOut:te,paddingXL:me,itemMarginInline:we,fontSizeLG:xe,motionDurationSlow:Se,paddingXS:ke,boxShadowSecondary:ne,collapsedWidth:re,collapsedIconSize:se}=We,Ee={height:W,lineHeight:`${W}px`,listStylePosition:"inside",listStyleType:"disc"};return[{[ge]:{["&-inline, &-vertical"]:Object.assign({[`&${ge}-root`]:{boxShadow:"none"}},he(We))},[`${ge}-submenu-popup`]:{[`${ge}-vertical`]:Object.assign(Object.assign({},he(We)),{boxShadow:ne})}},{[`${ge}-submenu-popup ${ge}-vertical${ge}-sub`]:{minWidth:N,maxHeight:`calc(100vh - ${oe*2.5}px)`,padding:"0",overflow:"hidden",borderInlineEnd:0,"&:not([class*='-active'])":{overflowX:"hidden",overflowY:"auto"}}},{[`${ge}-inline`]:{width:"100%",[`&${ge}-root`]:{[`${ge}-item, ${ge}-submenu-title`]:{display:"flex",alignItems:"center",transition:[`border-color ${Se}`,`background ${Se}`,`padding ${ve} ${te}`].join(","),[`> ${ge}-title-content`]:{flex:"auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},"> *":{flex:"none"}}},[`${ge}-sub${ge}-inline`]:{padding:0,border:0,borderRadius:0,boxShadow:"none",[`& > ${ge}-submenu > ${ge}-submenu-title`]:Ee,[`& ${ge}-item-group-title`]:{paddingInlineStart:me}},[`${ge}-item`]:Ee}},{[`${ge}-inline-collapsed`]:{width:re,[`&${ge}-root`]:{[`${ge}-item, ${ge}-submenu ${ge}-submenu-title`]:{[`> ${ge}-inline-collapsed-noicon`]:{fontSize:xe,textAlign:"center"}}},[`> ${ge}-item, + > ${ge}-item-group > ${ge}-item-group-list > ${ge}-item, + > ${ge}-item-group > ${ge}-item-group-list > ${ge}-submenu > ${ge}-submenu-title, + > ${ge}-submenu > ${ge}-submenu-title`]:{insetInlineStart:0,paddingInline:`calc(50% - ${xe/2}px - ${we}px)`,textOverflow:"clip",[` + ${ge}-submenu-arrow, + ${ge}-submenu-expand-icon + `]:{opacity:0},[`${ge}-item-icon, ${X}`]:{margin:0,fontSize:se,lineHeight:`${W}px`,"+ span":{display:"inline-block",opacity:0}}},[`${ge}-item-icon, ${X}`]:{display:"inline-block"},"&-tooltip":{pointerEvents:"none",[`${ge}-item-icon, ${X}`]:{display:"none"},"a, a:hover":{color:R}},[`${ge}-item-group-title`]:Object.assign(Object.assign({},ee.vS),{paddingInline:ke})}}]};const et=We=>{const{componentCls:ge,motionDurationSlow:X,motionDurationMid:W,motionEaseInOut:R,motionEaseOut:N,iconCls:oe,iconSize:ve,iconMarginInlineEnd:te}=We;return{[`${ge}-item, ${ge}-submenu-title`]:{position:"relative",display:"block",margin:0,whiteSpace:"nowrap",cursor:"pointer",transition:[`border-color ${X}`,`background ${X}`,`padding ${X} ${R}`].join(","),[`${ge}-item-icon, ${oe}`]:{minWidth:ve,fontSize:ve,transition:[`font-size ${W} ${N}`,`margin ${X} ${R}`,`color ${X}`].join(","),"+ span":{marginInlineStart:te,opacity:1,transition:[`opacity ${X} ${R}`,`margin ${X}`,`color ${X}`].join(",")}},[`${ge}-item-icon`]:Object.assign({},(0,ee.Ro)()),[`&${ge}-item-only-child`]:{[`> ${oe}, > ${ge}-item-icon`]:{marginInlineEnd:0}}},[`${ge}-item-disabled, ${ge}-submenu-disabled`]:{background:"none !important",cursor:"not-allowed","&::after":{borderColor:"transparent !important"},a:{color:"inherit !important"},[`> ${ge}-submenu-title`]:{color:"inherit !important",cursor:"not-allowed"}}}},ae=We=>{const{componentCls:ge,motionDurationSlow:X,motionEaseInOut:W,borderRadius:R,menuArrowSize:N,menuArrowOffset:oe}=We;return{[`${ge}-submenu`]:{["&-expand-icon, &-arrow"]:{position:"absolute",top:"50%",insetInlineEnd:We.margin,width:N,color:"currentcolor",transform:"translateY(-50%)",transition:`transform ${X} ${W}, opacity ${X}`},"&-arrow":{"&::before, &::after":{position:"absolute",width:N*.6,height:N*.15,backgroundColor:"currentcolor",borderRadius:R,transition:[`background ${X} ${W}`,`transform ${X} ${W}`,`top ${X} ${W}`,`color ${X} ${W}`].join(","),content:'""'},"&::before":{transform:`rotate(45deg) translateY(-${oe})`},"&::after":{transform:`rotate(-45deg) translateY(${oe})`}}}}},yt=We=>{const{antCls:ge,componentCls:X,fontSize:W,motionDurationSlow:R,motionDurationMid:N,motionEaseInOut:oe,paddingXS:ve,padding:te,colorSplit:me,lineWidth:we,zIndexPopup:xe,borderRadiusLG:Se,subMenuItemBorderRadius:ke,menuArrowSize:ne,menuArrowOffset:re,lineType:se,menuPanelMaskInset:Ee,groupTitleLineHeight:Re,groupTitleFontSize:fe}=We;return[{"":{[`${X}`]:Object.assign(Object.assign({},(0,ee.dF)()),{["&-hidden"]:{display:"none"}})},[`${X}-submenu-hidden`]:{display:"none"}},{[X]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,ee.Wf)(We)),(0,ee.dF)()),{marginBottom:0,paddingInlineStart:0,fontSize:W,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",[`${X}-item`]:{flex:"none"}},[`${X}-item, ${X}-submenu, ${X}-submenu-title`]:{borderRadius:We.itemBorderRadius},[`${X}-item-group-title`]:{padding:`${ve}px ${te}px`,fontSize:fe,lineHeight:Re,transition:`all ${R}`},[`&-horizontal ${X}-submenu`]:{transition:[`border-color ${R} ${oe}`,`background ${R} ${oe}`].join(",")},[`${X}-submenu, ${X}-submenu-inline`]:{transition:[`border-color ${R} ${oe}`,`background ${R} ${oe}`,`padding ${N} ${oe}`].join(",")},[`${X}-submenu ${X}-sub`]:{cursor:"initial",transition:[`background ${R} ${oe}`,`padding ${R} ${oe}`].join(",")},[`${X}-title-content`]:{transition:`color ${R}`},[`${X}-item a`]:{"&::before":{position:"absolute",inset:0,backgroundColor:"transparent",content:'""'}},[`${X}-item-divider`]:{overflow:"hidden",lineHeight:0,borderColor:me,borderStyle:se,borderWidth:0,borderTopWidth:we,marginBlock:we,padding:0,"&-dashed":{borderStyle:"dashed"}}}),et(We)),{[`${X}-item-group`]:{[`${X}-item-group-list`]:{margin:0,padding:0,[`${X}-item, ${X}-submenu-title`]:{paddingInline:`${W*2}px ${te}px`}}},"&-submenu":{"&-popup":{position:"absolute",zIndex:xe,borderRadius:Se,boxShadow:"none",transformOrigin:"0 0",[`&${X}-submenu`]:{background:"transparent"},"&::before":{position:"absolute",inset:`${Ee}px 0 0`,zIndex:-1,width:"100%",height:"100%",opacity:0,content:'""'}},"&-placement-rightTop::before":{top:0,insetInlineStart:Ee},[` + &-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:We.paddingXS},[` + &-placement-rightTop, + &-placement-rightBottom + `]:{paddingInlineStart:We.paddingXS},[` + &-placement-topRight, + &-placement-topLeft + `]:{paddingBottom:We.paddingXS},[` + &-placement-bottomRight, + &-placement-bottomLeft + `]:{paddingTop:We.paddingXS},[`> ${X}`]:Object.assign(Object.assign(Object.assign({borderRadius:Se},et(We)),ae(We)),{[`${X}-item, ${X}-submenu > ${X}-submenu-title`]:{borderRadius:ke},[`${X}-submenu-title::after`]:{transition:`transform ${R} ${oe}`}})}}),ae(We)),{[`&-inline-collapsed ${X}-submenu-arrow, + &-inline ${X}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateX(${re})`},"&::after":{transform:`rotate(45deg) translateX(-${re})`}},[`${X}-submenu-open${X}-submenu-inline > ${X}-submenu-title > ${X}-submenu-arrow`]:{transform:`translateY(-${ne*.2}px)`,"&::after":{transform:`rotate(-45deg) translateX(-${re})`},"&::before":{transform:`rotate(45deg) translateX(${re})`}}})},{[`${ge}-layout-header`]:{[X]:{lineHeight:"inherit"}}}]};var Pt=(We,ge)=>(0,q.Z)("Menu",W=>{if(ge===!1)return[];const{colorBgElevated:R,colorPrimary:N,colorTextLightSolid:oe,controlHeightLG:ve,fontSize:te,darkItemColor:me,darkDangerItemColor:we,darkItemBg:xe,darkSubMenuItemBg:Se,darkItemSelectedColor:ke,darkItemSelectedBg:ne,darkDangerItemSelectedBg:re,darkItemHoverBg:se,darkGroupTitleColor:Ee,darkItemHoverColor:Re,darkItemDisabledColor:fe,darkDangerItemHoverColor:_e,darkDangerItemSelectedColor:Pe,darkDangerItemActiveBg:ze}=W,Qe=te/7*5,gt=(0,I.TS)(W,{menuArrowSize:Qe,menuHorizontalHeight:ve*1.15,menuArrowOffset:`${Qe*.25}px`,menuPanelMaskInset:-7,menuSubMenuBg:R}),ut=(0,I.TS)(gt,{itemColor:me,itemHoverColor:Re,groupTitleColor:Ee,itemSelectedColor:ke,itemBg:xe,popupBg:xe,subMenuItemBg:Se,itemActiveBg:"transparent",itemSelectedBg:ne,activeBarHeight:0,activeBarBorderWidth:0,itemHoverBg:se,itemDisabledColor:fe,dangerItemColor:we,dangerItemHoverColor:_e,dangerItemSelectedColor:Pe,dangerItemActiveBg:ze,dangerItemSelectedBg:re,menuSubMenuBg:Se,horizontalItemSelectedColor:oe,horizontalItemSelectedBg:N});return[yt(gt),Y(gt),Je(gt),ce(gt,"light"),ce(ut,"dark"),_(gt),(0,le.Z)(gt),(0,Q.oN)(gt,"slide-up"),(0,Q.oN)(gt,"slide-down"),(0,G._y)(gt,"zoom-big")]},W=>{const{colorPrimary:R,colorError:N,colorTextDisabled:oe,colorErrorBg:ve,colorText:te,colorTextDescription:me,colorBgContainer:we,colorFillAlter:xe,colorFillContent:Se,lineWidth:ke,lineWidthBold:ne,controlItemBgActive:re,colorBgTextHover:se,controlHeightLG:Ee,lineHeight:Re,colorBgElevated:fe,marginXXS:_e,padding:Pe,fontSize:ze,controlHeightSM:Qe,fontSizeLG:gt,colorTextLightSolid:ut,colorErrorHover:rt}=W,qe=new U.C(ut).setAlpha(.65).toRgbString();return{dropdownWidth:160,zIndexPopup:W.zIndexPopupBase+50,radiusItem:W.borderRadiusLG,itemBorderRadius:W.borderRadiusLG,radiusSubMenuItem:W.borderRadiusSM,subMenuItemBorderRadius:W.borderRadiusSM,colorItemText:te,itemColor:te,colorItemTextHover:te,itemHoverColor:te,colorItemTextHoverHorizontal:R,horizontalItemHoverColor:R,colorGroupTitle:me,groupTitleColor:me,colorItemTextSelected:R,itemSelectedColor:R,colorItemTextSelectedHorizontal:R,horizontalItemSelectedColor:R,colorItemBg:we,itemBg:we,colorItemBgHover:se,itemHoverBg:se,colorItemBgActive:Se,itemActiveBg:re,colorSubItemBg:xe,subMenuItemBg:xe,colorItemBgSelected:re,itemSelectedBg:re,colorItemBgSelectedHorizontal:"transparent",horizontalItemSelectedBg:"transparent",colorActiveBarWidth:0,activeBarWidth:0,colorActiveBarHeight:ne,activeBarHeight:ne,colorActiveBarBorderSize:ke,activeBarBorderWidth:ke,colorItemTextDisabled:oe,itemDisabledColor:oe,colorDangerItemText:N,dangerItemColor:N,colorDangerItemTextHover:N,dangerItemHoverColor:N,colorDangerItemTextSelected:N,dangerItemSelectedColor:N,colorDangerItemBgActive:ve,dangerItemActiveBg:ve,colorDangerItemBgSelected:ve,dangerItemSelectedBg:ve,itemMarginInline:W.marginXXS,horizontalItemBorderRadius:0,horizontalItemHoverBg:"transparent",itemHeight:Ee,groupTitleLineHeight:Re,collapsedWidth:Ee*2,popupBg:fe,itemMarginBlock:_e,itemPaddingInline:Pe,horizontalLineHeight:`${Ee*1.15}px`,iconSize:ze,iconMarginInlineEnd:Qe-ze,collapsedIconSize:gt,groupTitleFontSize:ze,darkItemDisabledColor:new U.C(ut).setAlpha(.25).toRgbString(),darkItemColor:qe,darkDangerItemColor:N,darkItemBg:"#001529",darkSubMenuItemBg:"#000c17",darkItemSelectedColor:ut,darkItemSelectedBg:R,darkDangerItemSelectedBg:N,darkItemHoverBg:"transparent",darkGroupTitleColor:qe,darkItemHoverColor:ut,darkDangerItemHoverColor:rt,darkDangerItemSelectedColor:ut,darkDangerItemActiveBg: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"]]})(We),bt=function(We,ge){var X={};for(var W in We)Object.prototype.hasOwnProperty.call(We,W)&&ge.indexOf(W)<0&&(X[W]=We[W]);if(We!=null&&typeof Object.getOwnPropertySymbols=="function")for(var R=0,W=Object.getOwnPropertySymbols(We);R{var X,W;const R=t.useContext(O.Z),N=R||{},{getPrefixCls:oe,getPopupContainer:ve,direction:te,menu:me}=t.useContext(c.E_),we=oe(),{prefixCls:xe,className:Se,style:ke,theme:ne="light",expandIcon:re,_internalDisableMenuItemTitleTooltip:se,inlineCollapsed:Ee,siderCollapsed:Re,items:fe,children:_e,rootClassName:Pe,mode:ze,selectable:Qe,onClick:gt,overflowedIndicatorPopupClassName:ut}=We,rt=bt(We,["prefixCls","className","style","theme","expandIcon","_internalDisableMenuItemTitleTooltip","inlineCollapsed","siderCollapsed","items","children","rootClassName","mode","selectable","onClick","overflowedIndicatorPopupClassName"]),qe=(0,y.Z)(rt,["collapsedWidth"]),Ve=K(fe)||_e;(X=N.validator)===null||X===void 0||X.call(N,{mode:ze});const tt=(0,A.Z)(function(){var $t;gt==null||gt.apply(void 0,arguments),($t=N.onClick)===null||$t===void 0||$t.call(N)}),Oe=N.mode||ze,Me=Qe!=null?Qe:N.selectable,Ne=t.useMemo(()=>Re!==void 0?Re:Ee,[Ee,Re]),Te={horizontal:{motionName:`${we}-slide-up`},inline:(0,L.Z)(we),other:{motionName:`${we}-zoom-big`}},Be=oe("menu",xe||N.prefixCls),[nt,ot]=Pt(Be,!R),wt=n()(`${Be}-${ne}`,me==null?void 0:me.className,Se);let Et;if(typeof re=="function")Et=re;else{const $t=re||N.expandIcon;Et=(0,S.Tm)($t,{className:n()(`${Be}-submenu-expand-icon`,(0,S.l$)($t)?(W=$t.props)===null||W===void 0?void 0:W.className:"")})}const nn=t.useMemo(()=>({prefixCls:Be,inlineCollapsed:Ne||!1,direction:te,firstLevel:!0,theme:ne,mode:Oe,disableMenuItemTitleTooltip:se}),[Be,Ne,te,se,ne]);return nt(t.createElement(O.Z.Provider,{value:null},t.createElement(x.Provider,{value:nn},t.createElement(a.ZP,Object.assign({getPopupContainer:ve,overflowedIndicator:t.createElement(F.Z,null),overflowedIndicatorPopupClassName:n()(Be,`${Be}-${ne}`,ut),mode:Oe,selectable:Me,onClick:tt},qe,{inlineCollapsed:Ne,style:Object.assign(Object.assign({},me==null?void 0:me.style),ke),className:wt,prefixCls:Be,direction:te,defaultMotions:Te,expandIcon:Et,ref:ge,rootClassName:n()(Pe,ot)}),Ve))))});const Ke=(0,t.forwardRef)((We,ge)=>{const X=(0,t.useRef)(null),W=t.useContext(o.D);return(0,t.useImperativeHandle)(ge,()=>({menu:X.current,focus:R=>{var N;(N=X.current)===null||N===void 0||N.focus(R)}})),t.createElement(Le,Object.assign({ref:X},We,W))});Ke.Item=B,Ke.SubMenu=T,Ke.Divider=h,Ke.ItemGroup=a.BW;var st=Ke},80209:function(M,b,e){"use strict";e.d(b,{CW:function(){return j}});var a=e(85678),t=e(79999),o=e(69831),s=e(33064),n=e(25755),c=e(87608),l=e.n(c),d=e(75248),h=e(58757),p=e(61836),y=e(13952),g=function(Z,B){var w={};for(var T in Z)Object.prototype.hasOwnProperty.call(Z,T)&&B.indexOf(T)<0&&(w[T]=Z[T]);if(Z!=null&&typeof Object.getOwnPropertySymbols=="function")for(var F=0,T=Object.getOwnPropertySymbols(Z);F{let{prefixCls:B,type:w,icon:T,children:F}=Z;return h.createElement("div",{className:l()(`${B}-custom-content`,`${B}-${w}`)},T||S[w],h.createElement("span",null,F))},x=Z=>{const{prefixCls:B,className:w,type:T,icon:F,content:A}=Z,L=g(Z,["prefixCls","className","type","icon","content"]),{getPrefixCls:O}=h.useContext(p.E_),$=B||O("message"),[,P]=(0,y.Z)($);return h.createElement(d.q,Object.assign({},L,{prefixCls:$,className:l()(w,P,`${$}-notice-pure-panel`),eventKey:"pure",duration:null,content:h.createElement(j,{prefixCls:$,type:T,icon:F},A)}))};b.ZP=x},84045:function(M,b,e){"use strict";var a=e(29140),t=e(58757),o=e(52323),s=e(42505),n=e(80209),c=e(45054),l=e(86538);let d=null,h=P=>P(),p=[],y={};function g(){const{prefixCls:P,getContainer:K,duration:U,rtl:ee,maxCount:le,top:Q}=y,G=P!=null?P:(0,s.w6)().getPrefixCls("message"),q=(K==null?void 0:K())||document.body;return{prefixCls:G,getContainer:()=>q,duration:U,rtl:ee,maxCount:le,top:Q}}const S=t.forwardRef((P,K)=>{const[U,ee]=t.useState(g),[le,Q]=(0,c.K)(U),G=(0,s.w6)(),q=G.getRootPrefixCls(),I=G.getIconPrefixCls(),H=G.getTheme(),Y=()=>{ee(g)};return t.useEffect(Y,[]),t.useImperativeHandle(K,()=>{const D=Object.assign({},le);return Object.keys(D).forEach(_=>{D[_]=function(){return Y(),le[_].apply(le,arguments)}}),{instance:D,sync:Y}}),t.createElement(s.ZP,{prefixCls:q,iconPrefixCls:I,theme:H},Q)});function j(){if(!d){const P=document.createDocumentFragment(),K={fragment:P};d=K,h(()=>{(0,o.s)(t.createElement(S,{ref:U=>{const{instance:ee,sync:le}=U||{};Promise.resolve().then(()=>{!K.instance&&ee&&(K.instance=ee,K.sync=le,j())})}}),P)});return}d.instance&&(p.forEach(P=>{const{type:K,skipped:U}=P;if(!U)switch(K){case"open":{h(()=>{const ee=d.instance.open(Object.assign(Object.assign({},y),P.config));ee==null||ee.then(P.resolve),P.setCloseFn(ee)});break}case"destroy":h(()=>{d==null||d.instance.destroy(P.key)});break;default:h(()=>{var ee;const le=(ee=d.instance)[K].apply(ee,(0,a.Z)(P.args));le==null||le.then(P.resolve),P.setCloseFn(le)})}}),p=[])}function x(P){y=Object.assign(Object.assign({},y),P),h(()=>{var K;(K=d==null?void 0:d.sync)===null||K===void 0||K.call(d)})}function Z(P){const K=(0,l.J)(U=>{let ee;const le={type:"open",config:P,resolve:U,setCloseFn:Q=>{ee=Q}};return p.push(le),()=>{ee?h(()=>{ee()}):le.skipped=!0}});return j(),K}function B(P,K){const U=(0,l.J)(ee=>{let le;const Q={type:P,args:K,resolve:ee,setCloseFn:G=>{le=G}};return p.push(Q),()=>{le?h(()=>{le()}):Q.skipped=!0}});return j(),U}function w(P){p.push({type:"destroy",key:P}),j()}const T=["success","info","warning","error","loading"],A={open:Z,destroy:w,config:x,useMessage:c.Z,_InternalPanelDoNotUseOrYouWillBeFired:n.ZP};T.forEach(P=>{A[P]=function(){for(var K=arguments.length,U=new Array(K),ee=0;ee{};let O=null,$=null;b.ZP=A},13952:function(M,b,e){"use strict";var a=e(57793),t=e(78330),o=e(52628),s=e(22151);const n=c=>{const{componentCls:l,iconCls:d,boxShadow:h,colorText:p,colorSuccess:y,colorError:g,colorWarning:S,colorInfo:j,fontSizeLG:x,motionEaseInOutCirc:Z,motionDurationSlow:B,marginXS:w,paddingXS:T,borderRadiusLG:F,zIndexPopup:A,contentPadding:L,contentBg:O}=c,$=`${l}-notice`,P=new a.E4("MessageMoveIn",{"0%":{padding:0,transform:"translateY(-100%)",opacity:0},"100%":{padding:T,transform:"translateY(0)",opacity:1}}),K=new a.E4("MessageMoveOut",{"0%":{maxHeight:c.height,padding:T,opacity:1},"100%":{maxHeight:0,padding:0,opacity:0}}),U={padding:T,textAlign:"center",[`${l}-custom-content > ${d}`]:{verticalAlign:"text-bottom",marginInlineEnd:w,fontSize:x},[`${$}-content`]:{display:"inline-block",padding:L,background:O,borderRadius:F,boxShadow:h,pointerEvents:"all"},[`${l}-success > ${d}`]:{color:y},[`${l}-error > ${d}`]:{color:g},[`${l}-warning > ${d}`]:{color:S},[`${l}-info > ${d}, + ${l}-loading > ${d}`]:{color:j}};return[{[l]:Object.assign(Object.assign({},(0,t.Wf)(c)),{color:p,position:"fixed",top:w,width:"100%",pointerEvents:"none",zIndex:A,[`${l}-move-up`]:{animationFillMode:"forwards"},[` + ${l}-move-up-appear, + ${l}-move-up-enter + `]:{animationName:P,animationDuration:B,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:K,animationDuration:B,animationPlayState:"paused",animationTimingFunction:Z},[`${l}-move-up-leave${l}-move-up-leave-active`]:{animationPlayState:"running"},"&-rtl":{direction:"rtl",span:{direction:"rtl"}}})},{[l]:{[$]:Object.assign({},U)}},{[`${l}-notice-pure-panel`]:Object.assign(Object.assign({},U),{padding:0,textAlign:"start"})}]};b.Z=(0,o.Z)("Message",c=>{const l=(0,s.TS)(c,{height:150});return[n(l)]},c=>({zIndexPopup:c.zIndexPopupBase+10,contentBg:c.colorBgElevated,contentPadding:`${(c.controlHeightLG-c.fontSize*c.lineHeight)/2}px ${c.paddingSM}px`}),{clientOnly:!0})},45054:function(M,b,e){"use strict";e.d(b,{K:function(){return x},Z:function(){return Z}});var a=e(52495),t=e(87608),o=e.n(t),s=e(75248),n=e(58757),c=e(61836),l=e(80209),d=e(13952),h=e(86538),p=function(B,w){var T={};for(var F in B)Object.prototype.hasOwnProperty.call(B,F)&&w.indexOf(F)<0&&(T[F]=B[F]);if(B!=null&&typeof Object.getOwnPropertySymbols=="function")for(var A=0,F=Object.getOwnPropertySymbols(B);A{const{top:T,prefixCls:F,getContainer:A,maxCount:L,duration:O=g,rtl:$,transitionName:P,onAllRemoved:K}=B,{getPrefixCls:U,getPopupContainer:ee,message:le}=n.useContext(c.E_),Q=F||U("message"),[,G]=(0,d.Z)(Q),q=()=>({left:"50%",transform:"translateX(-50%)",top:T!=null?T:y}),I=()=>o()(G,{[`${Q}-rtl`]:$}),H=()=>(0,h.g)(Q,P),Y=n.createElement("span",{className:`${Q}-close-x`},n.createElement(a.Z,{className:`${Q}-close-icon`})),[D,_]=(0,s.l)({prefixCls:Q,style:q,className:I,motion:H,closable:!1,closeIcon:Y,duration:O,getContainer:()=>(A==null?void 0:A())||(ee==null?void 0:ee())||document.body,maxCount:L,onAllRemoved:K});return n.useImperativeHandle(w,()=>Object.assign(Object.assign({},D),{prefixCls:Q,hashId:G,message:le})),_});let j=0;function x(B){const w=n.useRef(null);return[n.useMemo(()=>{const F=P=>{var K;(K=w.current)===null||K===void 0||K.close(P)},A=P=>{if(!w.current){const ce=()=>{};return ce.then=()=>{},ce}const{open:K,prefixCls:U,hashId:ee,message:le}=w.current,Q=`${U}-notice`,{content:G,icon:q,type:I,key:H,className:Y,style:D,onClose:_}=P,ue=p(P,["content","icon","type","key","className","style","onClose"]);let be=H;return be==null&&(j+=1,be=`antd-message-${j}`),(0,h.J)(ce=>(K(Object.assign(Object.assign({},ue),{key:be,content:n.createElement(l.CW,{prefixCls:U,type:I,icon:q},G),placement:"top",className:o()(I&&`${Q}-${I}`,ee,Y,le==null?void 0:le.className),style:Object.assign(Object.assign({},le==null?void 0:le.style),D),onClose:()=>{_==null||_(),ce()}})),()=>{F(be)}))},O={open:A,destroy:P=>{var K;P!==void 0?F(P):(K=w.current)===null||K===void 0||K.destroy()}};return["info","success","warning","error","loading"].forEach(P=>{const K=(U,ee,le)=>{let Q;U&&typeof U=="object"&&"content"in U?Q=U:Q={content:U};let G,q;typeof ee=="function"?q=ee:(G=ee,q=le);const I=Object.assign(Object.assign({onClose:q,duration:G},Q),{type:P});return A(I)};O[P]=K}),O},[]),n.createElement(S,Object.assign({key:"message-holder"},B,{ref:w}))]}function Z(B){return x(B)}},86538:function(M,b,e){"use strict";e.d(b,{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)})}),c=()=>{s==null||s()};return c.then=(l,d)=>n.then(l,d),c.promise=n,c}},76370:function(M,b,e){"use strict";e.d(b,{O:function(){return S}});var a=e(85678),t=e(79999),o=e(69831),s=e(33064),n=e(87608),c=e.n(n),l=e(58757),d=e(99086),h=e(90881),p=e(42505),y=e(29487),g=e(65401);function S(x){const{icon:Z,onCancel:B,onOk:w,close:T,onConfirm:F,isSilent:A,okText:L,okButtonProps:O,cancelText:$,cancelButtonProps:P,confirmPrefixCls:K,rootPrefixCls:U,type:ee,okCancel:le,footer:Q,locale:G}=x;let q=Z;if(!Z&&Z!==null)switch(ee){case"info":q=l.createElement(s.Z,null);break;case"success":q=l.createElement(a.Z,null);break;case"error":q=l.createElement(t.Z,null);break;default:q=l.createElement(o.Z,null)}const I=x.okType||"primary",H=le!=null?le:ee==="confirm",Y=x.autoFocusButton===null?!1:x.autoFocusButton||"ok",[D]=(0,y.Z)("Modal"),_=G||D,ue=H&&l.createElement(d.Z,{isSilent:A,actionFn:B,close:function(){T==null||T.apply(void 0,arguments),F==null||F(!1)},autoFocus:Y==="cancel",buttonProps:P,prefixCls:`${U}-btn`},$||(_==null?void 0:_.cancelText));return l.createElement("div",{className:`${K}-body-wrapper`},l.createElement("div",{className:`${K}-body`},q,x.title===void 0?null:l.createElement("span",{className:`${K}-title`},x.title),l.createElement("div",{className:`${K}-content`},x.content)),Q===void 0?l.createElement("div",{className:`${K}-btns`},ue,l.createElement(d.Z,{isSilent:A,type:I,actionFn:w,close:function(){T==null||T.apply(void 0,arguments),F==null||F(!0)},autoFocus:Y==="ok",buttonProps:O,prefixCls:`${U}-btn`},L||(H?_==null?void 0:_.okText:_==null?void 0:_.justOkText))):Q)}const j=x=>{const{close:Z,zIndex:B,afterClose:w,visible:T,open:F,keyboard:A,centered:L,getContainer:O,maskStyle:$,direction:P,prefixCls:K,wrapClassName:U,rootPrefixCls:ee,iconPrefixCls:le,theme:Q,bodyStyle:G,closable:q=!1,closeIcon:I,modalRender:H,focusTriggerAfterClose:Y}=x,D=`${K}-confirm`,_=x.width||416,ue=x.style||{},be=x.mask===void 0?!0:x.mask,ce=x.maskClosable===void 0?!1:x.maskClosable,he=c()(D,`${D}-${x.type}`,{[`${D}-rtl`]:P==="rtl"},x.className);return l.createElement(p.ZP,{prefixCls:ee,iconPrefixCls:le,direction:P,theme:Q},l.createElement(g.Z,{prefixCls:K,className:he,wrapClassName:c()({[`${D}-centered`]:!!x.centered},U),onCancel:()=>Z==null?void 0:Z({triggerCancel:!0}),open:F,title:"",footer:null,transitionName:(0,h.m)(ee,"zoom",x.transitionName),maskTransitionName:(0,h.m)(ee,"fade",x.maskTransitionName),mask:be,maskClosable:ce,maskStyle:$,style:ue,bodyStyle:G,width:_,zIndex:B,afterClose:w,keyboard:A,centered:L,getContainer:O,closable:q,closeIcon:I,modalRender:H,focusTriggerAfterClose:Y},l.createElement(S,Object.assign({},x,{confirmPrefixCls:D}))))};b.Z=j},65401:function(M,b,e){"use strict";var a=e(52495),t=e(87608),o=e.n(t),s=e(67117),n=e(58757),c=e(88858),l=e(90881),d=e(32792),h=e(61836),p=e(81496),y=e(43528),g=e(78669),S=e(76073),j=function(w,T){var F={};for(var A in w)Object.prototype.hasOwnProperty.call(w,A)&&T.indexOf(A)<0&&(F[A]=w[A]);if(w!=null&&typeof Object.getOwnPropertySymbols=="function")for(var L=0,A=Object.getOwnPropertySymbols(w);L{x={x:w.pageX,y:w.pageY},setTimeout(()=>{x=null},100)};(0,d.jD)()&&document.documentElement.addEventListener("click",Z,!0);const B=w=>{var T;const{getPopupContainer:F,getPrefixCls:A,direction:L,modal:O}=n.useContext(h.E_),$=Ct=>{const{onCancel:Le}=w;Le==null||Le(Ct)},P=Ct=>{const{onOk:Le}=w;Le==null||Le(Ct)},{prefixCls:K,className:U,rootClassName:ee,open:le,wrapClassName:Q,centered:G,getContainer:q,closeIcon:I,closable:H,focusTriggerAfterClose:Y=!0,style:D,visible:_,width:ue=520,footer:be}=w,ce=j(w,["prefixCls","className","rootClassName","open","wrapClassName","centered","getContainer","closeIcon","closable","focusTriggerAfterClose","style","visible","width","footer"]),he=A("modal",K),Fe=A(),[Je,et]=(0,S.Z)(he),ae=o()(Q,{[`${he}-centered`]:!!G,[`${he}-wrap-rtl`]:L==="rtl"}),yt=be===void 0?n.createElement(g.$,Object.assign({},w,{onOk:P,onCancel:$})):be,[Pt,bt]=(0,c.Z)(H,I,Ct=>(0,g.b)(he,Ct),n.createElement(a.Z,{className:`${he}-close-icon`}),!0);return Je(n.createElement(y.BR,null,n.createElement(p.Ux,{status:!0,override:!0},n.createElement(s.Z,Object.assign({width:ue},ce,{getContainer:q===void 0?F:q,prefixCls:he,rootClassName:o()(et,ee),wrapClassName:ae,footer:yt,visible:le!=null?le:_,mousePosition:(T=ce.mousePosition)!==null&&T!==void 0?T:x,onClose:$,closable:Pt,closeIcon:bt,focusTriggerAfterClose:Y,transitionName:(0,l.m)(Fe,"zoom",w.transitionName),maskTransitionName:(0,l.m)(Fe,"fade",w.maskTransitionName),className:o()(et,U,O==null?void 0:O.className),style:Object.assign(Object.assign({},O==null?void 0:O.style),D)})))))};b.Z=B},49316:function(M,b,e){"use strict";e.d(b,{AQ:function(){return x},Au:function(){return Z},ZP:function(){return y},ai:function(){return B},cw:function(){return S},uW:function(){return g},vq:function(){return j}});var a=e(29140),t=e(52323),o=e(58757),s=e(42505),n=e(76370),c=e(98702),l=e(67228),d=function(w,T){var F={};for(var A in w)Object.prototype.hasOwnProperty.call(w,A)&&T.indexOf(A)<0&&(F[A]=w[A]);if(w!=null&&typeof Object.getOwnPropertySymbols=="function")for(var L=0,A=Object.getOwnPropertySymbols(w);LQ&&Q.triggerCancel);w.onCancel&&le&&w.onCancel.apply(w,[()=>{}].concat((0,a.Z)(U.slice(1))));for(let Q=0;Q{const q=(0,l.A)(),{getPrefixCls:I,getIconPrefixCls:H,getTheme:Y}=(0,s.w6)(),D=I(void 0,p()),_=le||`${D}-modal`,ue=H(),be=Y();let ce=Q;ce===!1&&(ce=void 0),(0,t.s)(o.createElement(n.Z,Object.assign({},G,{getContainer:ce,prefixCls:_,rootPrefixCls:D,iconPrefixCls:ue,okText:U,locale:q,theme:be,cancelText:ee||q.cancelText})),T)})}function $(){for(var K=arguments.length,U=new Array(K),ee=0;ee{typeof w.afterClose=="function"&&w.afterClose(),L.apply(this,U)}}),F.visible&&delete F.visible,O(F)}function P(K){typeof K=="function"?F=K(F):F=Object.assign(Object.assign({},F),K),O(F)}return O(F),c.Z.push($),{destroy:$,update:P}}function g(w){return Object.assign(Object.assign({},w),{type:"warning"})}function S(w){return Object.assign(Object.assign({},w),{type:"info"})}function j(w){return Object.assign(Object.assign({},w),{type:"success"})}function x(w){return Object.assign(Object.assign({},w),{type:"error"})}function Z(w){return Object.assign(Object.assign({},w),{type:"confirm"})}function B(w){let{rootPrefixCls:T}=w;h=T}},98702:function(M,b){"use strict";const e=[];b.Z=e},62109:function(M,b,e){"use strict";e.d(b,{Z:function(){return T}});var a=e(49316),t=e(98702),o=e(65401),s=e(87608),n=e.n(s),c=e(67117),l=e(58757),d=e(61836),h=e(76370),p=e(78669),y=e(76073),g=e(15018),S=function(F,A){var L={};for(var O in F)Object.prototype.hasOwnProperty.call(F,O)&&A.indexOf(O)<0&&(L[O]=F[O]);if(F!=null&&typeof Object.getOwnPropertySymbols=="function")for(var $=0,O=Object.getOwnPropertySymbols(F);${const{prefixCls:A,className:L,closeIcon:O,closable:$,type:P,title:K,children:U}=F,ee=S(F,["prefixCls","className","closeIcon","closable","type","title","children"]),{getPrefixCls:le}=l.useContext(d.E_),Q=le(),G=A||le("modal"),[,q]=(0,y.Z)(G),I=`${G}-confirm`;let H={};return P?H={closable:$!=null?$:!1,title:"",footer:"",children:l.createElement(h.O,Object.assign({},F,{confirmPrefixCls:I,rootPrefixCls:Q,content:U}))}:H={closable:$!=null?$:!0,title:K,footer:F.footer===void 0?l.createElement(p.$,Object.assign({},F)):F.footer,children:U},l.createElement(c.s,Object.assign({prefixCls:G,className:n()(q,`${G}-pure-panel`,P&&I,P&&`${I}-${P}`,L)},ee,{closeIcon:(0,p.b)(G,O),closable:$},H))};var x=(0,g.i)(j),Z=e(65172);function B(F){return(0,a.ZP)((0,a.uW)(F))}const w=o.Z;w.useModal=Z.Z,w.info=function(A){return(0,a.ZP)((0,a.cw)(A))},w.success=function(A){return(0,a.ZP)((0,a.vq)(A))},w.error=function(A){return(0,a.ZP)((0,a.AQ)(A))},w.warning=B,w.warn=B,w.confirm=function(A){return(0,a.ZP)((0,a.Au)(A))},w.destroyAll=function(){for(;t.Z.length;){const A=t.Z.pop();A&&A()}},w.config=a.ai,w._InternalPanelDoNotUseOrYouWillBeFired=x;var T=w},67228:function(M,b,e){"use strict";e.d(b,{A:function(){return c},f:function(){return n}});var a=e(80076);let t=Object.assign({},a.Z.Modal),o=[];const s=()=>o.reduce((l,d)=>Object.assign(Object.assign({},l),d),a.Z.Modal);function n(l){if(l){const d=Object.assign({},l);return o.push(d),t=s(),()=>{o=o.filter(h=>h!==d),t=s()}}t=Object.assign({},a.Z.Modal)}function c(){return t}},78669:function(M,b,e){"use strict";e.d(b,{$:function(){return h},b:function(){return d}});var a=e(52495),t=e(58757),o=e(12562),s=e(70921),n=e(92428),c=e(29487),l=e(67228);function d(p,y){return t.createElement("span",{className:`${p}-close-x`},y||t.createElement(a.Z,{className:`${p}-close-icon`}))}const h=p=>{const{okText:y,okType:g="primary",cancelText:S,confirmLoading:j,onOk:x,onCancel:Z,okButtonProps:B,cancelButtonProps:w}=p,[T]=(0,c.Z)("Modal",(0,l.A)());return t.createElement(n.n,{disabled:!1},t.createElement(o.ZP,Object.assign({onClick:Z},w),S||(T==null?void 0:T.cancelText)),t.createElement(o.ZP,Object.assign({},(0,s.n)(g),{loading:j,onClick:x},B),y||(T==null?void 0:T.okText)))}},76073:function(M,b,e){"use strict";e.d(b,{Q:function(){return l}});var a=e(78330),t=e(7239),o=e(28107),s=e(52628),n=e(22151);function c(g){return{position:g,inset:0}}const l=g=>{const{componentCls:S,antCls:j}=g;return[{[`${S}-root`]:{[`${S}${j}-zoom-enter, ${S}${j}-zoom-appear`]:{transform:"none",opacity:0,animationDuration:g.motionDurationSlow,userSelect:"none"},[`${S}${j}-zoom-leave ${S}-content`]:{pointerEvents:"none"},[`${S}-mask`]:Object.assign(Object.assign({},c("fixed")),{zIndex:g.zIndexPopupBase,height:"100%",backgroundColor:g.colorBgMask,pointerEvents:"none",[`${S}-hidden`]:{display:"none"}}),[`${S}-wrap`]:Object.assign(Object.assign({},c("fixed")),{zIndex:g.zIndexPopupBase,overflow:"auto",outline:0,WebkitOverflowScrolling:"touch",[`&:has(${S}${j}-zoom-enter), &:has(${S}${j}-zoom-appear)`]:{pointerEvents:"none"}})}},{[`${S}-root`]:(0,t.J$)(g)}]},d=g=>{const{componentCls:S}=g;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: ${g.screenSMMax})`]:{[S]:{maxWidth:"calc(100vw - 16px)",margin:`${g.marginXS} auto`},[`${S}-centered`]:{[S]:{flex:1}}}}},{[S]:Object.assign(Object.assign({},(0,a.Wf)(g)),{pointerEvents:"none",position:"relative",top:100,width:"auto",maxWidth:`calc(100vw - ${g.margin*2}px)`,margin:"0 auto",paddingBottom:g.paddingLG,[`${S}-title`]:{margin:0,color:g.titleColor,fontWeight:g.fontWeightStrong,fontSize:g.titleFontSize,lineHeight:g.titleLineHeight,wordWrap:"break-word"},[`${S}-content`]:{position:"relative",backgroundColor:g.contentBg,backgroundClip:"padding-box",border:0,borderRadius:g.borderRadiusLG,boxShadow:g.boxShadow,pointerEvents:"auto",padding:`${g.paddingMD}px ${g.paddingContentHorizontalLG}px`},[`${S}-close`]:Object.assign({position:"absolute",top:(g.modalHeaderHeight-g.modalCloseBtnSize)/2,insetInlineEnd:(g.modalHeaderHeight-g.modalCloseBtnSize)/2,zIndex:g.zIndexPopupBase+10,padding:0,color:g.modalCloseIconColor,fontWeight:g.fontWeightStrong,lineHeight:1,textDecoration:"none",background:"transparent",borderRadius:g.borderRadiusSM,width:g.modalCloseBtnSize,height:g.modalCloseBtnSize,border:0,outline:0,cursor:"pointer",transition:`color ${g.motionDurationMid}, background-color ${g.motionDurationMid}`,"&-x":{display:"flex",fontSize:g.fontSizeLG,fontStyle:"normal",lineHeight:`${g.modalCloseBtnSize}px`,justifyContent:"center",textTransform:"none",textRendering:"auto"},"&:hover":{color:g.modalIconHoverColor,backgroundColor:g.wireframe?"transparent":g.colorFillContent,textDecoration:"none"},"&:active":{backgroundColor:g.wireframe?"transparent":g.colorFillContentHover}},(0,a.Qy)(g)),[`${S}-header`]:{color:g.colorText,background:g.headerBg,borderRadius:`${g.borderRadiusLG}px ${g.borderRadiusLG}px 0 0`,marginBottom:g.marginXS},[`${S}-body`]:{fontSize:g.fontSize,lineHeight:g.lineHeight,wordWrap:"break-word"},[`${S}-footer`]:{textAlign:"end",background:g.footerBg,marginTop:g.marginSM,[`${g.antCls}-btn + ${g.antCls}-btn:not(${g.antCls}-dropdown-trigger)`]:{marginBottom:0,marginInlineStart:g.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"}}}]},h=g=>{const{componentCls:S}=g,j=`${S}-confirm`;return{[j]:{"&-rtl":{direction:"rtl"},[`${g.antCls}-modal-header`]:{display:"none"},[`${j}-body-wrapper`]:Object.assign({},(0,a.dF)()),[`${j}-body`]:{display:"flex",flexWrap:"wrap",alignItems:"center",[`${j}-title`]:{flex:"0 0 100%",display:"block",overflow:"hidden",color:g.colorTextHeading,fontWeight:g.fontWeightStrong,fontSize:g.titleFontSize,lineHeight:g.titleLineHeight,[`+ ${j}-content`]:{marginBlockStart:g.marginXS,flexBasis:"100%",maxWidth:`calc(100% - ${g.modalConfirmIconSize+g.marginSM}px)`}},[`${j}-content`]:{color:g.colorText,fontSize:g.fontSize},[`> ${g.iconCls}`]:{flex:"none",marginInlineEnd:g.marginSM,fontSize:g.modalConfirmIconSize,[`+ ${j}-title`]:{flex:1},[`+ ${j}-title + ${j}-content`]:{marginInlineStart:g.modalConfirmIconSize+g.marginSM}}},[`${j}-btns`]:{textAlign:"end",marginTop:g.marginSM,[`${g.antCls}-btn + ${g.antCls}-btn`]:{marginBottom:0,marginInlineStart:g.marginXS}}},[`${j}-error ${j}-body > ${g.iconCls}`]:{color:g.colorError},[`${j}-warning ${j}-body > ${g.iconCls}, + ${j}-confirm ${j}-body > ${g.iconCls}`]:{color:g.colorWarning},[`${j}-info ${j}-body > ${g.iconCls}`]:{color:g.colorInfo},[`${j}-success ${j}-body > ${g.iconCls}`]:{color:g.colorSuccess}}},p=g=>{const{componentCls:S}=g;return{[`${S}-root`]:{[`${S}-wrap-rtl`]:{direction:"rtl",[`${S}-confirm-body`]:{direction:"rtl"}}}}},y=g=>{const{componentCls:S,antCls:j}=g,x=`${S}-confirm`;return{[S]:{[`${S}-content`]:{padding:0},[`${S}-header`]:{padding:g.modalHeaderPadding,borderBottom:`${g.modalHeaderBorderWidth}px ${g.modalHeaderBorderStyle} ${g.modalHeaderBorderColorSplit}`,marginBottom:0},[`${S}-body`]:{padding:g.modalBodyPadding},[`${S}-footer`]:{padding:`${g.modalFooterPaddingVertical}px ${g.modalFooterPaddingHorizontal}px`,borderTop:`${g.modalFooterBorderWidth}px ${g.modalFooterBorderStyle} ${g.modalFooterBorderColorSplit}`,borderRadius:`0 0 ${g.borderRadiusLG}px ${g.borderRadiusLG}px`,marginTop:0}},[x]:{[`${j}-modal-body`]:{padding:`${g.padding*2}px ${g.padding*2}px ${g.paddingLG}px`},[`${x}-body`]:{[`> ${g.iconCls}`]:{marginInlineEnd:g.margin,[`+ ${x}-title + ${x}-content`]:{marginInlineStart:g.modalConfirmIconSize+g.margin}}},[`${x}-btns`]:{marginTop:g.marginLG}}}};b.Z=(0,s.Z)("Modal",g=>{const S=g.padding,j=g.fontSizeHeading5,x=g.lineHeightHeading5,Z=(0,n.TS)(g,{modalBodyPadding:g.paddingLG,modalHeaderPadding:`${S}px ${g.paddingLG}px`,modalHeaderBorderWidth:g.lineWidth,modalHeaderBorderStyle:g.lineType,modalHeaderBorderColorSplit:g.colorSplit,modalHeaderHeight:x*j+S*2,modalFooterBorderColorSplit:g.colorSplit,modalFooterBorderStyle:g.lineType,modalFooterPaddingVertical:g.paddingXS,modalFooterPaddingHorizontal:g.padding,modalFooterBorderWidth:g.lineWidth,modalIconHoverColor:g.colorIconHover,modalCloseIconColor:g.colorIcon,modalCloseBtnSize:g.fontSize*g.lineHeight,modalConfirmIconSize:g.fontSize*g.lineHeight});return[d(Z),h(Z),p(Z),l(Z),g.wireframe&&y(Z),(0,o._y)(Z,"zoom")]},g=>({footerBg:"transparent",headerBg:g.colorBgElevated,titleLineHeight:g.lineHeightHeading5,titleFontSize:g.fontSizeHeading5,contentBg:g.colorBgElevated,titleColor:g.colorTextHeading}))},65172:function(M,b,e){"use strict";e.d(b,{Z:function(){return Z}});var a=e(29140),t=e(58757);function o(){const[B,w]=t.useState([]),T=t.useCallback(F=>(w(A=>[].concat((0,a.Z)(A),[F])),()=>{w(A=>A.filter(L=>L!==F))}),[]);return[B,T]}var s=e(49316),n=e(98702),c=e(61836),l=e(80076),d=e(29487),h=e(76370),p=function(B,w){var T={};for(var F in B)Object.prototype.hasOwnProperty.call(B,F)&&w.indexOf(F)<0&&(T[F]=B[F]);if(B!=null&&typeof Object.getOwnPropertySymbols=="function")for(var A=0,F=Object.getOwnPropertySymbols(B);A{var T,{afterClose:F,config:A}=B,L=p(B,["afterClose","config"]);const[O,$]=t.useState(!0),[P,K]=t.useState(A),{direction:U,getPrefixCls:ee}=t.useContext(c.E_),le=ee("modal"),Q=ee(),G=()=>{var Y;F(),(Y=P.afterClose)===null||Y===void 0||Y.call(P)},q=function(){$(!1);for(var Y=arguments.length,D=new Array(Y),_=0;_be&&be.triggerCancel);P.onCancel&&ue&&P.onCancel.apply(P,[()=>{}].concat((0,a.Z)(D.slice(1))))};t.useImperativeHandle(w,()=>({destroy:q,update:Y=>{K(D=>Object.assign(Object.assign({},D),Y))}}));const I=(T=P.okCancel)!==null&&T!==void 0?T:P.type==="confirm",[H]=(0,d.Z)("Modal",l.Z.Modal);return t.createElement(h.Z,Object.assign({prefixCls:le,rootPrefixCls:Q},P,{close:q,open:O,afterClose:G,okText:P.okText||(I?H==null?void 0:H.okText:H==null?void 0:H.justOkText),direction:P.direction||U,cancelText:P.cancelText||(H==null?void 0:H.cancelText)},L))};var g=t.forwardRef(y);let S=0;const j=t.memo(t.forwardRef((B,w)=>{const[T,F]=o();return t.useImperativeHandle(w,()=>({patchElement:F}),[]),t.createElement(t.Fragment,null,T)}));function x(){const B=t.useRef(null),[w,T]=t.useState([]);t.useEffect(()=>{w.length&&((0,a.Z)(w).forEach(O=>{O()}),T([]))},[w]);const F=t.useCallback(L=>function($){var P;S+=1;const K=t.createRef();let U;const ee=new Promise(I=>{U=I});let le=!1,Q;const G=t.createElement(g,{key:`modal-${S}`,config:L($),ref:K,afterClose:()=>{Q==null||Q()},isSilent:()=>le,onConfirm:I=>{U(I)}});return Q=(P=B.current)===null||P===void 0?void 0:P.patchElement(G),Q&&n.Z.push(Q),{destroy:()=>{function I(){var H;(H=K.current)===null||H===void 0||H.destroy()}K.current?I():T(H=>[].concat((0,a.Z)(H),[I]))},update:I=>{function H(){var Y;(Y=K.current)===null||Y===void 0||Y.update(I)}K.current?H():T(Y=>[].concat((0,a.Z)(Y),[H]))},then:I=>(le=!0,ee.then(I))}},[]);return[t.useMemo(()=>({info:F(s.cw),success:F(s.vq),error:F(s.AQ),warning:F(s.uW),confirm:F(s.Au)}),[]),t.createElement(j,{key:"modal-holder",ref:B})]}var Z=x},37864:function(M,b,e){"use strict";e.d(b,{CW:function(){return B},z5:function(){return x}});var a=e(85678),t=e(79999),o=e(52495),s=e(69831),n=e(33064),c=e(25755),l=e(87608),d=e.n(l),h=e(75248),p=e(58757),y=e(61836),g=e(26284),S=function(T,F){var A={};for(var L in T)Object.prototype.hasOwnProperty.call(T,L)&&F.indexOf(L)<0&&(A[L]=T[L]);if(T!=null&&typeof Object.getOwnPropertySymbols=="function")for(var O=0,L=Object.getOwnPropertySymbols(T);O{const{prefixCls:F,icon:A,type:L,message:O,description:$,btn:P,role:K="alert"}=T;let U=null;return A?U=p.createElement("span",{className:`${F}-icon`},A):L&&(U=p.createElement(Z[L]||null,{className:d()(`${F}-icon`,`${F}-icon-${L}`)})),p.createElement("div",{className:d()({[`${F}-with-icon`]:U}),role:K},U,p.createElement("div",{className:`${F}-message`},O),p.createElement("div",{className:`${F}-description`},$),P&&p.createElement("div",{className:`${F}-btn`},P))},w=T=>{const{prefixCls:F,className:A,icon:L,type:O,message:$,description:P,btn:K,closable:U=!0,closeIcon:ee}=T,le=S(T,["prefixCls","className","icon","type","message","description","btn","closable","closeIcon"]),{getPrefixCls:Q}=p.useContext(y.E_),G=F||Q("notification"),q=`${G}-notice`,[,I]=(0,g.Z)(G);return p.createElement(h.q,Object.assign({},le,{prefixCls:G,className:d()(A,I,`${q}-pure-panel`),eventKey:"pure",duration:null,closable:U,closeIcon:x(G,ee),content:p.createElement(B,{prefixCls:q,icon:L,type:O,message:$,description:P,btn:K})}))};b.ZP=w},65388:function(M,b,e){"use strict";var a=e(58757),t=e(52323),o=e(42505),s=e(37864),n=e(75105);let c=null,l=A=>A(),d=[],h={};function p(){const{prefixCls:A,getContainer:L,rtl:O,maxCount:$,top:P,bottom:K}=h,U=A!=null?A:(0,o.w6)().getPrefixCls("notification"),ee=(L==null?void 0:L())||document.body;return{prefixCls:U,getContainer:()=>ee,rtl:O,maxCount:$,top:P,bottom:K}}const y=a.forwardRef((A,L)=>{const[O,$]=a.useState(p),[P,K]=(0,n.k)(O),U=(0,o.w6)(),ee=U.getRootPrefixCls(),le=U.getIconPrefixCls(),Q=U.getTheme(),G=()=>{$(p)};return a.useEffect(G,[]),a.useImperativeHandle(L,()=>{const q=Object.assign({},P);return Object.keys(q).forEach(I=>{q[I]=function(){return G(),P[I].apply(P,arguments)}}),{instance:q,sync:G}}),a.createElement(o.ZP,{prefixCls:ee,iconPrefixCls:le,theme:Q},K)});function g(){if(!c){const A=document.createDocumentFragment(),L={fragment:A};c=L,l(()=>{(0,t.s)(a.createElement(y,{ref:O=>{const{instance:$,sync:P}=O||{};Promise.resolve().then(()=>{!L.instance&&$&&(L.instance=$,L.sync=P,g())})}}),A)});return}c.instance&&(d.forEach(A=>{switch(A.type){case"open":{l(()=>{c.instance.open(Object.assign(Object.assign({},h),A.config))});break}case"destroy":l(()=>{c==null||c.instance.destroy(A.key)});break}}),d=[])}function S(A){h=Object.assign(Object.assign({},h),A),l(()=>{var L;(L=c==null?void 0:c.sync)===null||L===void 0||L.call(c)})}function j(A){d.push({type:"open",config:A}),g()}function x(A){d.push({type:"destroy",key:A}),g()}const Z=["success","info","warning","error"],w={open:j,destroy:x,config:S,useNotification:n.Z,_InternalPanelDoNotUseOrYouWillBeFired:s.ZP};Z.forEach(A=>{w[A]=L=>j(Object.assign(Object.assign({},L),{type:A}))});const T=()=>{};let F=null;b.Z=w},26284:function(M,b,e){"use strict";e.d(b,{Z:function(){return d}});var a=e(57793),t=e(78330),o=e(52628),s=e(22151),c=h=>{const{componentCls:p,width:y,notificationMarginEdge:g}=h,S=new a.E4("antNotificationTopFadeIn",{"0%":{marginTop:"-100%",opacity:0},"100%":{marginTop:0,opacity:1}}),j=new a.E4("antNotificationBottomFadeIn",{"0%":{marginBottom:"-100%",opacity:0},"100%":{marginBottom:0,opacity:1}}),x=new a.E4("antNotificationLeftFadeIn",{"0%":{right:{_skip_check_:!0,value:y},opacity:0},"100%":{right:{_skip_check_:!0,value:0},opacity:1}});return{[`&${p}-top, &${p}-bottom`]:{marginInline:0},[`&${p}-top`]:{[`${p}-fade-enter${p}-fade-enter-active, ${p}-fade-appear${p}-fade-appear-active`]:{animationName:S}},[`&${p}-bottom`]:{[`${p}-fade-enter${p}-fade-enter-active, ${p}-fade-appear${p}-fade-appear-active`]:{animationName:j}},[`&${p}-topLeft, &${p}-bottomLeft`]:{marginInlineEnd:0,marginInlineStart:g,[`${p}-fade-enter${p}-fade-enter-active, ${p}-fade-appear${p}-fade-appear-active`]:{animationName:x}}}};const l=h=>{const{iconCls:p,componentCls:y,boxShadow:g,fontSizeLG:S,notificationMarginBottom:j,borderRadiusLG:x,colorSuccess:Z,colorInfo:B,colorWarning:w,colorError:T,colorTextHeading:F,notificationBg:A,notificationPadding:L,notificationMarginEdge:O,motionDurationMid:$,motionEaseInOut:P,fontSize:K,lineHeight:U,width:ee,notificationIconSize:le,colorText:Q}=h,G=`${y}-notice`,q=new a.E4("antNotificationFadeIn",{"0%":{left:{_skip_check_:!0,value:ee},opacity:0},"100%":{left:{_skip_check_:!0,value:0},opacity:1}}),I=new a.E4("antNotificationFadeOut",{"0%":{maxHeight:h.animationMaxHeight,marginBottom:j,opacity:1},"100%":{maxHeight:0,marginBottom:0,paddingTop:0,paddingBottom:0,opacity:0}}),H={position:"relative",width:ee,maxWidth:`calc(100vw - ${O*2}px)`,marginBottom:j,marginInlineStart:"auto",padding:L,overflow:"hidden",lineHeight:U,wordWrap:"break-word",background:A,borderRadius:x,boxShadow:g,[`${y}-close-icon`]:{fontSize:K,cursor:"pointer"},[`${G}-message`]:{marginBottom:h.marginXS,color:F,fontSize:S,lineHeight:h.lineHeightLG},[`${G}-description`]:{fontSize:K,color:Q},[`&${G}-closable ${G}-message`]:{paddingInlineEnd:h.paddingLG},[`${G}-with-icon ${G}-message`]:{marginBottom:h.marginXS,marginInlineStart:h.marginSM+le,fontSize:S},[`${G}-with-icon ${G}-description`]:{marginInlineStart:h.marginSM+le,fontSize:K},[`${G}-icon`]:{position:"absolute",fontSize:le,lineHeight:0,[`&-success${p}`]:{color:Z},[`&-info${p}`]:{color:B},[`&-warning${p}`]:{color:w},[`&-error${p}`]:{color:T}},[`${G}-close`]:{position:"absolute",top:h.notificationPaddingVertical,insetInlineEnd:h.notificationPaddingHorizontal,color:h.colorIcon,outline:"none",width:h.notificationCloseButtonSize,height:h.notificationCloseButtonSize,borderRadius:h.borderRadiusSM,transition:`background-color ${h.motionDurationMid}, color ${h.motionDurationMid}`,display:"flex",alignItems:"center",justifyContent:"center","&:hover":{color:h.colorIconHover,backgroundColor:h.wireframe?"transparent":h.colorFillContent}},[`${G}-btn`]:{float:"right",marginTop:h.marginSM}};return[{[y]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,t.Wf)(h)),{position:"fixed",zIndex:h.zIndexPopup,marginInlineEnd:O,[`${y}-hook-holder`]:{position:"relative"},[`&${y}-top, &${y}-bottom`]:{[G]:{marginInline:"auto auto"}},[`&${y}-topLeft, &${y}-bottomLeft`]:{[G]:{marginInlineEnd:"auto",marginInlineStart:0}},[`${y}-fade-enter, ${y}-fade-appear`]:{animationDuration:h.motionDurationMid,animationTimingFunction:P,animationFillMode:"both",opacity:0,animationPlayState:"paused"},[`${y}-fade-leave`]:{animationTimingFunction:P,animationFillMode:"both",animationDuration:$,animationPlayState:"paused"},[`${y}-fade-enter${y}-fade-enter-active, ${y}-fade-appear${y}-fade-appear-active`]:{animationName:q,animationPlayState:"running"},[`${y}-fade-leave${y}-fade-leave-active`]:{animationName:I,animationPlayState:"running"}}),c(h)),{"&-rtl":{direction:"rtl",[`${G}-btn`]:{float:"left"}}})},{[y]:{[G]:Object.assign({},H)}},{[`${G}-pure-panel`]:Object.assign(Object.assign({},H),{margin:0})}]};var d=(0,o.Z)("Notification",h=>{const p=h.paddingMD,y=h.paddingLG,g=(0,s.TS)(h,{notificationBg:h.colorBgElevated,notificationPaddingVertical:p,notificationPaddingHorizontal:y,notificationIconSize:h.fontSizeLG*h.lineHeightLG,notificationCloseButtonSize:h.controlHeightLG*.55,notificationMarginBottom:h.margin,notificationPadding:`${h.paddingMD}px ${h.paddingContentHorizontalLG}px`,notificationMarginEdge:h.marginLG,animationMaxHeight:150});return[l(g)]},h=>({zIndexPopup:h.zIndexPopupBase+50,width:384}),{clientOnly:!0})},75105:function(M,b,e){"use strict";e.d(b,{Z:function(){return Z},k:function(){return x}});var a=e(58757),t=e(87608),o=e.n(t),s=e(75248),n=e(61836),c=e(37864),l=e(26284);function d(B,w,T){let F;switch(B){case"top":F={left:"50%",transform:"translateX(-50%)",right:"auto",top:w,bottom:"auto"};break;case"topLeft":F={left:0,top:w,bottom:"auto"};break;case"topRight":F={right:0,top:w,bottom:"auto"};break;case"bottom":F={left:"50%",transform:"translateX(-50%)",right:"auto",top:"auto",bottom:T};break;case"bottomLeft":F={left:0,top:"auto",bottom:T};break;default:F={right:0,top:"auto",bottom:T};break}return F}function h(B){return{motionName:`${B}-fade`}}var p=function(B,w){var T={};for(var F in B)Object.prototype.hasOwnProperty.call(B,F)&&w.indexOf(F)<0&&(T[F]=B[F]);if(B!=null&&typeof Object.getOwnPropertySymbols=="function")for(var A=0,F=Object.getOwnPropertySymbols(B);A{const{top:T,bottom:F,prefixCls:A,getContainer:L,maxCount:O,rtl:$,onAllRemoved:P}=B,{getPrefixCls:K,getPopupContainer:U,notification:ee}=a.useContext(n.E_),le=A||K("notification"),Q=D=>d(D,T!=null?T:y,F!=null?F:y),[,G]=(0,l.Z)(le),q=()=>o()(G,{[`${le}-rtl`]:$}),I=()=>h(le),[H,Y]=(0,s.l)({prefixCls:le,style:Q,className:q,motion:I,closable:!0,closeIcon:(0,c.z5)(le),duration:g,getContainer:()=>(L==null?void 0:L())||(U==null?void 0:U())||document.body,maxCount:O,onAllRemoved:P});return a.useImperativeHandle(w,()=>Object.assign(Object.assign({},H),{prefixCls:le,hashId:G,notification:ee})),Y});function x(B){const w=a.useRef(null);return[a.useMemo(()=>{const F=$=>{var P;if(!w.current)return;const{open:K,prefixCls:U,hashId:ee,notification:le}=w.current,Q=`${U}-notice`,{message:G,description:q,icon:I,type:H,btn:Y,className:D,style:_,role:ue="alert",closeIcon:be}=$,ce=p($,["message","description","icon","type","btn","className","style","role","closeIcon"]),he=(0,c.z5)(Q,be);return K(Object.assign(Object.assign({placement:(P=B==null?void 0:B.placement)!==null&&P!==void 0?P:S},ce),{content:a.createElement(c.CW,{prefixCls:Q,icon:I,type:H,message:G,description:q,btn:Y,role:ue}),className:o()(H&&`${Q}-${H}`,ee,D,le==null?void 0:le.className),style:Object.assign(Object.assign({},le==null?void 0:le.style),_),closeIcon:he,closable:!!he}))},L={open:F,destroy:$=>{var P,K;$!==void 0?(P=w.current)===null||P===void 0||P.close($):(K=w.current)===null||K===void 0||K.destroy()}};return["success","info","warning","error"].forEach($=>{L[$]=P=>F(Object.assign(Object.assign({},P),{type:$}))}),L},[]),a.createElement(j,Object.assign({key:"notification-holder"},B,{ref:w}))]}function Z(B){return x(B)}},35910:function(M,b,e){"use strict";e.d(b,{Z:function(){return ve}});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),c=function(me,we){return t.createElement(n.Z,(0,a.Z)({},me,{ref:we,icon:s}))},l=t.forwardRef(c),d={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"},h=d,p=function(me,we){return t.createElement(n.Z,(0,a.Z)({},me,{ref:we,icon:h}))},y=t.forwardRef(p),g=e(99142),S=e(91169),j=e(87608),x=e.n(j),Z=e(37734),B=e(57370),w=e(60412),T=e(14346),F=e(87498),A=e(73726),L=e(33926),O={ZERO:48,NINE:57,NUMPAD_ZERO:96,NUMPAD_NINE:105,BACKSPACE:8,DELETE:46,ENTER:13,ARROW_UP:38,ARROW_DOWN:40},$=O,P=e(23737),K=function(te){(0,F.Z)(we,te);var me=(0,A.Z)(we);function we(){var xe;(0,w.Z)(this,we);for(var Se=arguments.length,ke=new Array(Se),ne=0;ne=0||re.relatedTarget.className.indexOf("".concat(fe,"-item"))>=0))&&Re(xe.getValidValue()))},xe.go=function(re){var se=xe.state.goInputText;se!==""&&(re.keyCode===$.ENTER||re.type==="click")&&(xe.setState({goInputText:""}),xe.props.quickGo(xe.getValidValue()))},xe}return(0,T.Z)(we,[{key:"getPageSizeOptions",value:function(){var Se=this.props,ke=Se.pageSize,ne=Se.pageSizeOptions;return ne.some(function(re){return re.toString()===ke.toString()})?ne:ne.concat([ke.toString()]).sort(function(re,se){var Ee=Number.isNaN(Number(re))?0:Number(re),Re=Number.isNaN(Number(se))?0:Number(se);return Ee-Re})}},{key:"render",value:function(){var Se=this,ke=this.props,ne=ke.pageSize,re=ke.locale,se=ke.rootPrefixCls,Ee=ke.changeSize,Re=ke.quickGo,fe=ke.goButton,_e=ke.selectComponentClass,Pe=ke.buildOptionText,ze=ke.selectPrefixCls,Qe=ke.disabled,gt=this.state.goInputText,ut="".concat(se,"-options"),rt=_e,qe=null,Ve=null,tt=null;if(!Ee&&!Re)return null;var Oe=this.getPageSizeOptions();if(Ee&&rt){var Me=Oe.map(function(Ne,Te){return t.createElement(rt.Option,{key:Te,value:Ne.toString()},(Pe||Se.buildOptionText)(Ne))});qe=t.createElement(rt,{disabled:Qe,prefixCls:ze,showSearch:!1,className:"".concat(ut,"-size-changer"),optionLabelProp:"children",popupMatchSelectWidth:!1,value:(ne||Oe[0]).toString(),onChange:this.changeSize,getPopupContainer:function(Te){return Te.parentNode},"aria-label":re.page_size,defaultOpen:!1},Me)}return Re&&(fe&&(tt=typeof fe=="boolean"?t.createElement("button",{type:"button",onClick:this.go,onKeyUp:this.go,disabled:Qe,className:"".concat(ut,"-quick-jumper-button")},re.jump_to_confirm):t.createElement("span",{onClick:this.go,onKeyUp:this.go},fe)),Ve=t.createElement("div",{className:"".concat(ut,"-quick-jumper")},re.jump_to,t.createElement("input",{disabled:Qe,type:"text",value:gt,onChange:this.handleChange,onKeyUp:this.go,onBlur:this.handleBlur,"aria-label":re.page}),re.page,tt)),t.createElement("li",{className:"".concat(ut)},qe,Ve)}}]),we}(t.Component);K.defaultProps={pageSizeOptions:["10","20","50","100"]};var U=K,ee=function(me){var we,xe=me.rootPrefixCls,Se=me.page,ke=me.active,ne=me.className,re=me.showTitle,se=me.onClick,Ee=me.onKeyPress,Re=me.itemRender,fe="".concat(xe,"-item"),_e=x()(fe,"".concat(fe,"-").concat(Se),(we={},(0,Z.Z)(we,"".concat(fe,"-active"),ke),(0,Z.Z)(we,"".concat(fe,"-disabled"),!Se),(0,Z.Z)(we,me.className,ne),we)),Pe=function(){se(Se)},ze=function(ut){Ee(ut,se,Se)},Qe=Re(Se,"page",t.createElement("a",{rel:"nofollow"},Se));return Qe?t.createElement("li",{title:re?Se.toString():null,className:_e,onClick:Pe,onKeyPress:ze,tabIndex:0},Qe):null},le=ee;function Q(){}function G(te){var me=Number(te);return typeof me=="number"&&!Number.isNaN(me)&&isFinite(me)&&Math.floor(me)===me}var q=function(me,we,xe){return xe};function I(te,me,we){var xe=typeof te=="undefined"?me.pageSize:te;return Math.floor((we.total-1)/xe)+1}var H=function(te){(0,F.Z)(we,te);var me=(0,A.Z)(we);function we(xe){var Se;(0,w.Z)(this,we),Se=me.call(this,xe),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(I(void 0,Se.state,Se.props),Se.state.current+(Se.props.showLessItems?3:5))},Se.getItemIcon=function(Ee,Re){var fe=Se.props.prefixCls,_e=Ee||t.createElement("button",{type:"button","aria-label":Re,className:"".concat(fe,"-item-link")});return typeof Ee=="function"&&(_e=t.createElement(Ee,(0,B.Z)({},Se.props))),_e},Se.isValid=function(Ee){var Re=Se.props.total;return G(Ee)&&Ee!==Se.state.current&&G(Re)&&Re>0},Se.shouldDisplayQuickJumper=function(){var Ee=Se.props,Re=Ee.showQuickJumper,fe=Ee.total,_e=Se.state.pageSize;return fe<=_e?!1:Re},Se.handleKeyDown=function(Ee){(Ee.keyCode===$.ARROW_UP||Ee.keyCode===$.ARROW_DOWN)&&Ee.preventDefault()},Se.handleKeyUp=function(Ee){var Re=Se.getValidValue(Ee),fe=Se.state.currentInputValue;Re!==fe&&Se.setState({currentInputValue:Re}),Ee.keyCode===$.ENTER?Se.handleChange(Re):Ee.keyCode===$.ARROW_UP?Se.handleChange(Re-1):Ee.keyCode===$.ARROW_DOWN&&Se.handleChange(Re+1)},Se.handleBlur=function(Ee){var Re=Se.getValidValue(Ee);Se.handleChange(Re)},Se.changePageSize=function(Ee){var Re=Se.state.current,fe=I(Ee,Se.state,Se.props);Re=Re>fe?fe:Re,fe===0&&(Re=Se.state.current),typeof Ee=="number"&&("pageSize"in Se.props||Se.setState({pageSize:Ee}),"current"in Se.props||Se.setState({current:Re,currentInputValue:Re})),Se.props.onShowSizeChange(Re,Ee),"onChange"in Se.props&&Se.props.onChange&&Se.props.onChange(Re,Ee)},Se.handleChange=function(Ee){var Re=Se.props,fe=Re.disabled,_e=Re.onChange,Pe=Se.state,ze=Pe.pageSize,Qe=Pe.current,gt=Pe.currentInputValue;if(Se.isValid(Ee)&&!fe){var ut=I(void 0,Se.state,Se.props),rt=Ee;return Ee>ut?rt=ut:Ee<1&&(rt=1),"current"in Se.props||Se.setState({current:rt}),rt!==gt&&Se.setState({currentInputValue:rt}),_e(rt,ze),rt}return Qe},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?fe-2:0),Pe=2;Pe=ne?se=ne:se=Number(ke),se}},{key:"getShowSizeChanger",value:function(){var Se=this.props,ke=Se.showSizeChanger,ne=Se.total,re=Se.totalBoundaryShowSizeChanger;return typeof ke!="undefined"?ke:ne>re}},{key:"render",value:function(){var Se=this.props,ke=Se.prefixCls,ne=Se.className,re=Se.style,se=Se.disabled,Ee=Se.hideOnSinglePage,Re=Se.total,fe=Se.locale,_e=Se.showQuickJumper,Pe=Se.showLessItems,ze=Se.showTitle,Qe=Se.showTotal,gt=Se.simple,ut=Se.itemRender,rt=Se.showPrevNextJumpers,qe=Se.jumpPrevIcon,Ve=Se.jumpNextIcon,tt=Se.selectComponentClass,Oe=Se.selectPrefixCls,Me=Se.pageSizeOptions,Ne=this.state,Te=Ne.current,Be=Ne.pageSize,nt=Ne.currentInputValue;if(Ee===!0&&Re<=Be)return null;var ot=I(void 0,this.state,this.props),wt=[],Et=null,nn=null,$t=null,fn=null,ln=null,Wt=_e&&_e.goButton,$e=Pe?1:2,De=Te-1>0?Te-1:0,jt=Te+1Re?Re:Te*Be]));if(gt){Wt&&(typeof Wt=="boolean"?ln=t.createElement("button",{type:"button",onClick:this.handleGoTO,onKeyUp:this.handleGoTO},fe.jump_to_confirm):ln=t.createElement("span",{onClick:this.handleGoTO,onKeyUp:this.handleGoTO},Wt),ln=t.createElement("li",{title:ze?"".concat(fe.jump_to).concat(Te,"/").concat(ot):null,className:"".concat(ke,"-simple-pager")},ln));var at=this.renderPrev(De);return t.createElement("ul",(0,a.Z)({className:x()(ke,"".concat(ke,"-simple"),(0,Z.Z)({},"".concat(ke,"-disabled"),se),ne),style:re,ref:this.paginationNode},Ft),Xe,at?t.createElement("li",{title:ze?fe.prev_page:null,onClick:this.prev,tabIndex:this.hasPrev()?0:null,onKeyPress:this.runIfEnterPrev,className:x()("".concat(ke,"-prev"),(0,Z.Z)({},"".concat(ke,"-disabled"),!this.hasPrev())),"aria-disabled":!this.hasPrev()},at):null,t.createElement("li",{title:ze?"".concat(Te,"/").concat(ot):null,className:"".concat(ke,"-simple-pager")},t.createElement("input",{type:"text",value:nt,disabled:se,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,onChange:this.handleKeyUp,onBlur:this.handleBlur,size:3}),t.createElement("span",{className:"".concat(ke,"-slash")},"/"),ot),t.createElement("li",{title:ze?fe.next_page:null,onClick:this.next,tabIndex:this.hasPrev()?0:null,onKeyPress:this.runIfEnterNext,className:x()("".concat(ke,"-next"),(0,Z.Z)({},"".concat(ke,"-disabled"),!this.hasNext())),"aria-disabled":!this.hasNext()},this.renderNext(jt)),ln)}if(ot<=3+$e*2){var Bt={locale:fe,rootPrefixCls:ke,onClick:this.handleChange,onKeyPress:this.runIfEnter,showTitle:ze,itemRender:ut};ot||wt.push(t.createElement(le,(0,a.Z)({},Bt,{key:"noPager",page:1,className:"".concat(ke,"-item-disabled")})));for(var Zt=1;Zt<=ot;Zt+=1){var Qt=Te===Zt;wt.push(t.createElement(le,(0,a.Z)({},Bt,{key:Zt,page:Zt,active:Qt})))}}else{var rn=Pe?fe.prev_3:fe.prev_5,hn=Pe?fe.next_3:fe.next_5,on=ut(this.getJumpPrevPage(),"jump-prev",this.getItemIcon(qe,"prev page")),Rn=ut(this.getJumpNextPage(),"jump-next",this.getItemIcon(Ve,"next page"));rt&&(Et=on?t.createElement("li",{title:ze?rn:null,key:"prev",onClick:this.jumpPrev,tabIndex:0,onKeyPress:this.runIfEnterJumpPrev,className:x()("".concat(ke,"-jump-prev"),(0,Z.Z)({},"".concat(ke,"-jump-prev-custom-icon"),!!qe))},on):null,nn=Rn?t.createElement("li",{title:ze?hn:null,key:"next",tabIndex:0,onClick:this.jumpNext,onKeyPress:this.runIfEnterJumpNext,className:x()("".concat(ke,"-jump-next"),(0,Z.Z)({},"".concat(ke,"-jump-next-custom-icon"),!!Ve))},Rn):null),fn=t.createElement(le,{locale:fe,last:!0,rootPrefixCls:ke,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:ot,page:ot,active:!1,showTitle:ze,itemRender:ut}),$t=t.createElement(le,{locale:fe,rootPrefixCls:ke,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:1,page:1,active:!1,showTitle:ze,itemRender:ut});var zn=Math.max(1,Te-$e),lr=Math.min(Te+$e,ot);Te-1<=$e&&(lr=1+$e*2),ot-Te<=$e&&(zn=ot-$e*2);for(var ur=zn;ur<=lr;ur+=1){var zt=Te===ur;wt.push(t.createElement(le,{locale:fe,rootPrefixCls:ke,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:ur,page:ur,active:zt,showTitle:ze,itemRender:ut}))}Te-1>=$e*2&&Te!==1+2&&(wt[0]=(0,t.cloneElement)(wt[0],{className:"".concat(ke,"-item-after-jump-prev")}),wt.unshift(Et)),ot-Te>=$e*2&&Te!==ot-2&&(wt[wt.length-1]=(0,t.cloneElement)(wt[wt.length-1],{className:"".concat(ke,"-item-before-jump-next")}),wt.push(nn)),zn!==1&&wt.unshift($t),lr!==ot&&wt.push(fn)}var Kt=!this.hasPrev()||!ot,Vt=!this.hasNext()||!ot,dn=this.renderPrev(De),pn=this.renderNext(jt);return t.createElement("ul",(0,a.Z)({className:x()(ke,ne,(0,Z.Z)({},"".concat(ke,"-disabled"),se)),style:re,ref:this.paginationNode},Ft),Xe,dn?t.createElement("li",{title:ze?fe.prev_page:null,onClick:this.prev,tabIndex:Kt?null:0,onKeyPress:this.runIfEnterPrev,className:x()("".concat(ke,"-prev"),(0,Z.Z)({},"".concat(ke,"-disabled"),Kt)),"aria-disabled":Kt},dn):null,wt,pn?t.createElement("li",{title:ze?fe.next_page:null,onClick:this.next,tabIndex:Vt?null:0,onKeyPress:this.runIfEnterNext,className:x()("".concat(ke,"-next"),(0,Z.Z)({},"".concat(ke,"-disabled"),Vt)),"aria-disabled":Vt},pn):null,t.createElement(U,{disabled:se,locale:fe,rootPrefixCls:ke,selectComponentClass:tt,selectPrefixCls:Oe,changeSize:this.getShowSizeChanger()?this.changePageSize:null,current:Te,pageSize:Be,pageSizeOptions:Me,quickGo:this.shouldDisplayQuickJumper()?this.handleChange:null,goButton:Wt}))}}],[{key:"getDerivedStateFromProps",value:function(Se,ke){var ne={};if("current"in Se&&(ne.current=Se.current,Se.current!==ke.current&&(ne.currentInputValue=ne.current)),"pageSize"in Se&&Se.pageSize!==ke.pageSize){var re=ke.current,se=I(Se.pageSize,ke,Se);re=re>se?se:re,"current"in Se||(ne.current=re,ne.currentInputValue=re),ne.pageSize=Se.pageSize}return ne}}]),we}(t.Component);H.defaultProps={defaultCurrent:1,total:0,defaultPageSize:10,onChange:Q,className:"",selectPrefixCls:"rc-select",prefixCls:"rc-pagination",selectComponentClass:null,hideOnSinglePage:!1,showPrevNextJumpers:!0,showQuickJumper:!1,showLessItems:!1,showTitle:!0,onShowSizeChange:Q,locale:P.Z,style:{},itemRender:q,totalBoundaryShowSizeChanger:50};var Y=H,D=e(57522),_=e(61836),ue=e(58785),be=e(60059),ce=e(29487),he=e(59504);const Fe=te=>t.createElement(he.Z,Object.assign({},te,{showSearch:!0,size:"small"})),Je=te=>t.createElement(he.Z,Object.assign({},te,{showSearch:!0,size:"middle"}));Fe.Option=he.Z.Option,Je.Option=he.Z.Option;var et=e(46902),ae=e(78330),yt=e(52628),Pt=e(22151);const bt=te=>{const{componentCls:me}=te;return{[`${me}-disabled`]:{"&, &:hover":{cursor:"not-allowed",[`${me}-item-link`]:{color:te.colorTextDisabled,cursor:"not-allowed"}},"&:focus-visible":{cursor:"not-allowed",[`${me}-item-link`]:{color:te.colorTextDisabled,cursor:"not-allowed"}}},[`&${me}-disabled`]:{cursor:"not-allowed",[`${me}-item`]:{cursor:"not-allowed","&:hover, &:active":{backgroundColor:"transparent"},a:{color:te.colorTextDisabled,backgroundColor:"transparent",border:"none",cursor:"not-allowed"},"&-active":{borderColor:te.colorBorder,backgroundColor:te.itemActiveBgDisabled,"&:hover, &:active":{backgroundColor:te.itemActiveBgDisabled},a:{color:te.itemActiveColorDisabled}}},[`${me}-item-link`]:{color:te.colorTextDisabled,cursor:"not-allowed","&:hover, &:active":{backgroundColor:"transparent"},[`${me}-simple&`]:{backgroundColor:"transparent","&:hover, &:active":{backgroundColor:"transparent"}}},[`${me}-simple-pager`]:{color:te.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"}}}}}},Ct=te=>{const{componentCls:me}=te;return{[`&${me}-mini ${me}-total-text, &${me}-mini ${me}-simple-pager`]:{height:te.itemSizeSM,lineHeight:`${te.itemSizeSM}px`},[`&${me}-mini ${me}-item`]:{minWidth:te.itemSizeSM,height:te.itemSizeSM,margin:0,lineHeight:`${te.itemSizeSM-2}px`},[`&${me}-mini:not(${me}-disabled) ${me}-item:not(${me}-item-active)`]:{backgroundColor:"transparent",borderColor:"transparent","&:hover":{backgroundColor:te.colorBgTextHover},"&:active":{backgroundColor:te.colorBgTextActive}},[`&${me}-mini ${me}-prev, &${me}-mini ${me}-next`]:{minWidth:te.itemSizeSM,height:te.itemSizeSM,margin:0,lineHeight:`${te.itemSizeSM}px`},[`&${me}-mini:not(${me}-disabled)`]:{[`${me}-prev, ${me}-next`]:{[`&:hover ${me}-item-link`]:{backgroundColor:te.colorBgTextHover},[`&:active ${me}-item-link`]:{backgroundColor:te.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:te.itemSizeSM,lineHeight:`${te.itemSizeSM}px`}},[`&${me}-mini ${me}-jump-prev, &${me}-mini ${me}-jump-next`]:{height:te.itemSizeSM,marginInlineEnd:0,lineHeight:`${te.itemSizeSM}px`},[`&${me}-mini ${me}-options`]:{marginInlineStart:te.paginationMiniOptionsMarginInlineStart,["&-size-changer"]:{top:te.miniOptionsSizeChangerTop},["&-quick-jumper"]:{height:te.itemSizeSM,lineHeight:`${te.itemSizeSM}px`,input:Object.assign(Object.assign({},(0,et.x0)(te)),{width:te.paginationMiniQuickJumperInputWidth,height:te.controlHeightSM})}}}},Le=te=>{const{componentCls:me}=te;return{[` + &${me}-simple ${me}-prev, + &${me}-simple ${me}-next + `]:{height:te.itemSizeSM,lineHeight:`${te.itemSizeSM}px`,verticalAlign:"top",[`${me}-item-link`]:{height:te.itemSizeSM,backgroundColor:"transparent",border:0,"&:hover":{backgroundColor:te.colorBgTextHover},"&:active":{backgroundColor:te.colorBgTextActive},"&::after":{height:te.itemSizeSM,lineHeight:`${te.itemSizeSM}px`}}},[`&${me}-simple ${me}-simple-pager`]:{display:"inline-block",height:te.itemSizeSM,marginInlineEnd:te.marginXS,input:{boxSizing:"border-box",height:"100%",marginInlineEnd:te.marginXS,padding:`0 ${te.paginationItemPaddingInline}px`,textAlign:"center",backgroundColor:te.itemInputBg,border:`${te.lineWidth}px ${te.lineType} ${te.colorBorder}`,borderRadius:te.borderRadius,outline:"none",transition:`border-color ${te.motionDurationMid}`,color:"inherit","&:hover":{borderColor:te.colorPrimary},"&:focus":{borderColor:te.colorPrimaryHover,boxShadow:`${te.inputOutlineOffset}px 0 ${te.controlOutlineWidth}px ${te.controlOutline}`},"&[disabled]":{color:te.colorTextDisabled,backgroundColor:te.colorBgContainerDisabled,borderColor:te.colorBorder,cursor:"not-allowed"}}}}},Ke=te=>{const{componentCls:me}=te;return{[`${me}-jump-prev, ${me}-jump-next`]:{outline:0,[`${me}-item-container`]:{position:"relative",[`${me}-item-link-icon`]:{color:te.colorPrimary,fontSize:te.fontSizeSM,opacity:0,transition:`all ${te.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:te.colorTextDisabled,fontFamily:"Arial, Helvetica, sans-serif",letterSpacing:te.paginationEllipsisLetterSpacing,textAlign:"center",textIndent:te.paginationEllipsisTextIndent,opacity:1,transition:`all ${te.motionDurationMid}`}},"&:hover":{[`${me}-item-link-icon`]:{opacity:1},[`${me}-item-ellipsis`]:{opacity:0}}},[` + ${me}-prev, + ${me}-jump-prev, + ${me}-jump-next + `]:{marginInlineEnd:te.marginXS},[` + ${me}-prev, + ${me}-next, + ${me}-jump-prev, + ${me}-jump-next + `]:{display:"inline-block",minWidth:te.itemSize,height:te.itemSize,color:te.colorText,fontFamily:te.fontFamily,lineHeight:`${te.itemSize}px`,textAlign:"center",verticalAlign:"middle",listStyle:"none",borderRadius:te.borderRadius,cursor:"pointer",transition:`all ${te.motionDurationMid}`},[`${me}-prev, ${me}-next`]:{fontFamily:"Arial, Helvetica, sans-serif",outline:0,button:{color:te.colorText,cursor:"pointer",userSelect:"none"},[`${me}-item-link`]:{display:"block",width:"100%",height:"100%",padding:0,fontSize:te.fontSizeSM,textAlign:"center",backgroundColor:"transparent",border:`${te.lineWidth}px ${te.lineType} transparent`,borderRadius:te.borderRadius,outline:"none",transition:`all ${te.motionDurationMid}`},[`&:hover ${me}-item-link`]:{backgroundColor:te.colorBgTextHover},[`&:active ${me}-item-link`]:{backgroundColor:te.colorBgTextActive},[`&${me}-disabled:hover`]:{[`${me}-item-link`]:{backgroundColor:"transparent"}}},[`${me}-slash`]:{marginInlineEnd:te.paginationSlashMarginInlineEnd,marginInlineStart:te.paginationSlashMarginInlineStart},[`${me}-options`]:{display:"inline-block",marginInlineStart:te.margin,verticalAlign:"middle","&-size-changer.-select":{display:"inline-block",width:"auto"},"&-quick-jumper":{display:"inline-block",height:te.controlHeight,marginInlineStart:te.marginXS,lineHeight:`${te.controlHeight}px`,verticalAlign:"top",input:Object.assign(Object.assign({},(0,et.ik)(te)),{width:te.controlHeightLG*1.25,height:te.controlHeight,boxSizing:"border-box",margin:0,marginInlineStart:te.marginXS,marginInlineEnd:te.marginXS})}}}},st=te=>{const{componentCls:me}=te;return{[`${me}-item`]:{display:"inline-block",minWidth:te.itemSize,height:te.itemSize,marginInlineEnd:te.marginXS,fontFamily:te.fontFamily,lineHeight:`${te.itemSize-2}px`,textAlign:"center",verticalAlign:"middle",listStyle:"none",backgroundColor:"transparent",border:`${te.lineWidth}px ${te.lineType} transparent`,borderRadius:te.borderRadius,outline:0,cursor:"pointer",userSelect:"none",a:{display:"block",padding:`0 ${te.paginationItemPaddingInline}px`,color:te.colorText,"&:hover":{textDecoration:"none"}},[`&:not(${me}-item-active)`]:{"&:hover":{transition:`all ${te.motionDurationMid}`,backgroundColor:te.colorBgTextHover},"&:active":{backgroundColor:te.colorBgTextActive}},"&-active":{fontWeight:te.fontWeightStrong,backgroundColor:te.itemActiveBg,borderColor:te.colorPrimary,a:{color:te.colorPrimary},"&:hover":{borderColor:te.colorPrimaryHover},"&:hover a":{color:te.colorPrimaryHover}}}}},We=te=>{const{componentCls:me}=te;return{[me]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,ae.Wf)(te)),{"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:te.itemSize,marginInlineEnd:te.marginXS,lineHeight:`${te.itemSize-2}px`,verticalAlign:"middle"}}),st(te)),Ke(te)),Le(te)),Ct(te)),bt(te)),{[`@media only screen and (max-width: ${te.screenLG}px)`]:{[`${me}-item`]:{"&-after-jump-prev, &-before-jump-next":{display:"none"}}},[`@media only screen and (max-width: ${te.screenSM}px)`]:{[`${me}-options`]:{display:"none"}}}),[`&${te.componentCls}-rtl`]:{direction:"rtl"}}},ge=te=>{const{componentCls:me}=te;return{[`${me}${me}-disabled:not(${me}-mini)`]:{"&, &:hover":{[`${me}-item-link`]:{borderColor:te.colorBorder}},"&:focus-visible":{[`${me}-item-link`]:{borderColor:te.colorBorder}},[`${me}-item, ${me}-item-link`]:{backgroundColor:te.colorBgContainerDisabled,borderColor:te.colorBorder,[`&:hover:not(${me}-item-active)`]:{backgroundColor:te.colorBgContainerDisabled,borderColor:te.colorBorder,a:{color:te.colorTextDisabled}},[`&${me}-item-active`]:{backgroundColor:te.itemActiveBgDisabled}},[`${me}-prev, ${me}-next`]:{"&:hover button":{backgroundColor:te.colorBgContainerDisabled,borderColor:te.colorBorder,color:te.colorTextDisabled},[`${me}-item-link`]:{backgroundColor:te.colorBgContainerDisabled,borderColor:te.colorBorder}}},[`${me}:not(${me}-mini)`]:{[`${me}-prev, ${me}-next`]:{"&:hover button":{borderColor:te.colorPrimaryHover,backgroundColor:te.itemBg},[`${me}-item-link`]:{backgroundColor:te.itemLinkBg,borderColor:te.colorBorder},[`&:hover ${me}-item-link`]:{borderColor:te.colorPrimary,backgroundColor:te.itemBg,color:te.colorPrimary},[`&${me}-disabled`]:{[`${me}-item-link`]:{borderColor:te.colorBorder,color:te.colorTextDisabled}}},[`${me}-item`]:{backgroundColor:te.itemBg,border:`${te.lineWidth}px ${te.lineType} ${te.colorBorder}`,[`&:hover:not(${me}-item-active)`]:{borderColor:te.colorPrimary,backgroundColor:te.itemBg,a:{color:te.colorPrimary}},"&-active":{borderColor:te.colorPrimary}}}}},X=te=>{const{componentCls:me}=te;return{[`${me}:not(${me}-disabled)`]:{[`${me}-item`]:Object.assign({},(0,ae.Qy)(te)),[`${me}-jump-prev, ${me}-jump-next`]:{"&:focus-visible":Object.assign({[`${me}-item-link-icon`]:{opacity:1},[`${me}-item-ellipsis`]:{opacity:0}},(0,ae.oN)(te))},[`${me}-prev, ${me}-next`]:{[`&:focus-visible ${me}-item-link`]:Object.assign({},(0,ae.oN)(te))}}}};var W=(0,yt.Z)("Pagination",te=>{const me=(0,Pt.TS)(te,{inputOutlineOffset:0,paginationMiniOptionsMarginInlineStart:te.marginXXS/2,paginationMiniQuickJumperInputWidth:te.controlHeightLG*1.1,paginationItemPaddingInline:te.marginXXS*1.5,paginationEllipsisLetterSpacing:te.marginXXS/2,paginationSlashMarginInlineStart:te.marginXXS,paginationSlashMarginInlineEnd:te.marginSM,paginationEllipsisTextIndent:"0.13em"},(0,et.e5)(te));return[We(me),X(me),te.wireframe&&ge(me)]},te=>({itemBg:te.colorBgContainer,itemSize:te.controlHeight,itemSizeSM:te.controlHeightSM,itemActiveBg:te.colorBgContainer,itemLinkBg:te.colorBgContainer,itemActiveColorDisabled:te.colorTextDisabled,itemActiveBgDisabled:te.controlItemBgActiveDisabled,itemInputBg:te.colorBgContainer,miniOptionsSizeChangerTop:0})),R=function(te,me){var we={};for(var xe in te)Object.prototype.hasOwnProperty.call(te,xe)&&me.indexOf(xe)<0&&(we[xe]=te[xe]);if(te!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Se=0,xe=Object.getOwnPropertySymbols(te);Se{const{prefixCls:me,selectPrefixCls:we,className:xe,rootClassName:Se,style:ke,size:ne,locale:re,selectComponentClass:se,responsive:Ee,showSizeChanger:Re}=te,fe=R(te,["prefixCls","selectPrefixCls","className","rootClassName","style","size","locale","selectComponentClass","responsive","showSizeChanger"]),{xs:_e}=(0,be.Z)(Ee),{getPrefixCls:Pe,direction:ze,pagination:Qe={}}=t.useContext(_.E_),gt=Pe("pagination",me),[ut,rt]=W(gt),qe=Re!=null?Re:Qe.showSizeChanger,Ve=t.useMemo(()=>{const ot=t.createElement("span",{className:`${gt}-item-ellipsis`},"\u2022\u2022\u2022"),wt=t.createElement("button",{className:`${gt}-item-link`,type:"button",tabIndex:-1},ze==="rtl"?t.createElement(S.Z,null):t.createElement(g.Z,null)),Et=t.createElement("button",{className:`${gt}-item-link`,type:"button",tabIndex:-1},ze==="rtl"?t.createElement(g.Z,null):t.createElement(S.Z,null)),nn=t.createElement("a",{className:`${gt}-item-link`},t.createElement("div",{className:`${gt}-item-container`},ze==="rtl"?t.createElement(y,{className:`${gt}-item-link-icon`}):t.createElement(l,{className:`${gt}-item-link-icon`}),ot)),$t=t.createElement("a",{className:`${gt}-item-link`},t.createElement("div",{className:`${gt}-item-container`},ze==="rtl"?t.createElement(l,{className:`${gt}-item-link-icon`}):t.createElement(y,{className:`${gt}-item-link-icon`}),ot));return{prevIcon:wt,nextIcon:Et,jumpPrevIcon:nn,jumpNextIcon:$t}},[ze,gt]),[tt]=(0,ce.Z)("Pagination",D.Z),Oe=Object.assign(Object.assign({},tt),re),Me=(0,ue.Z)(ne),Ne=Me==="small"||!!(_e&&!Me&&Ee),Te=Pe("select",we),Be=x()({[`${gt}-mini`]:Ne,[`${gt}-rtl`]:ze==="rtl"},Qe==null?void 0:Qe.className,xe,Se,rt),nt=Object.assign(Object.assign({},Qe==null?void 0:Qe.style),ke);return ut(t.createElement(Y,Object.assign({},Ve,fe,{style:nt,prefixCls:gt,selectPrefixCls:Te,className:Be,selectComponentClass:se||(Ne?Fe:Je),locale:Oe,showSizeChanger:qe})))},ve=oe},21465:function(M,b,e){"use strict";e.d(b,{t5:function(){return p}});var a=e(87608),t=e.n(a),o=e(33664),s=e(58757),n=e(61836),c=e(99836),l=e(86194),d=function(g,S){var j={};for(var x in g)Object.prototype.hasOwnProperty.call(g,x)&&S.indexOf(x)<0&&(j[x]=g[x]);if(g!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Z=0,x=Object.getOwnPropertySymbols(g);Z{if(!(!S&&!j))return s.createElement(s.Fragment,null,S&&s.createElement("div",{className:`${g}-title`},(0,c.Z)(S)),s.createElement("div",{className:`${g}-inner-content`},(0,c.Z)(j)))},p=g=>{const{hashId:S,prefixCls:j,className:x,style:Z,placement:B="top",title:w,content:T,children:F}=g;return s.createElement("div",{className:t()(S,j,`${j}-pure`,`${j}-placement-${B}`,x),style:Z},s.createElement("div",{className:`${j}-arrow`}),s.createElement(o.G,Object.assign({},g,{className:S,prefixCls:j}),F||h(j,w,T)))},y=g=>{const{prefixCls:S}=g,j=d(g,["prefixCls"]),{getPrefixCls:x}=s.useContext(n.E_),Z=x("popover",S),[B,w]=(0,l.Z)(Z);return B(s.createElement(p,Object.assign({},j,{prefixCls:Z,hashId:w})))};b.ZP=y},33181:function(M,b,e){"use strict";var a=e(87608),t=e.n(a),o=e(58757),s=e(99836),n=e(90881),c=e(61836),l=e(74820),d=e(21465),h=e(86194),p=function(S,j){var x={};for(var Z in S)Object.prototype.hasOwnProperty.call(S,Z)&&j.indexOf(Z)<0&&(x[Z]=S[Z]);if(S!=null&&typeof Object.getOwnPropertySymbols=="function")for(var B=0,Z=Object.getOwnPropertySymbols(S);B{let{title:j,content:x,prefixCls:Z}=S;return o.createElement(o.Fragment,null,j&&o.createElement("div",{className:`${Z}-title`},(0,s.Z)(j)),o.createElement("div",{className:`${Z}-inner-content`},(0,s.Z)(x)))},g=o.forwardRef((S,j)=>{const{prefixCls:x,title:Z,content:B,overlayClassName:w,placement:T="top",trigger:F="hover",mouseEnterDelay:A=.1,mouseLeaveDelay:L=.1,overlayStyle:O={}}=S,$=p(S,["prefixCls","title","content","overlayClassName","placement","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle"]),{getPrefixCls:P}=o.useContext(c.E_),K=P("popover",x),[U,ee]=(0,h.Z)(K),le=P(),Q=t()(w,ee);return U(o.createElement(l.Z,Object.assign({placement:T,trigger:F,mouseEnterDelay:A,mouseLeaveDelay:L,overlayStyle:O},$,{prefixCls:K,overlayClassName:Q,ref:j,overlay:Z||B?o.createElement(y,{prefixCls:K,title:Z,content:B}):null,transitionName:(0,n.m)(le,"zoom-big",$.transitionName),"data-popover-inject":!0})))});g._InternalPanelDoNotUseOrYouWillBeFired=d.ZP,b.Z=g},86194:function(M,b,e){"use strict";var a=e(78330),t=e(28107),o=e(24542),s=e(34966),n=e(52628),c=e(22151);const l=p=>{const{componentCls:y,popoverColor:g,minWidth:S,fontWeightStrong:j,popoverPadding:x,boxShadowSecondary:Z,colorTextHeading:B,borderRadiusLG:w,zIndexPopup:T,marginXS:F,colorBgElevated:A,popoverBg:L}=p;return[{[y]:Object.assign(Object.assign({},(0,a.Wf)(p)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:T,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text",transformOrigin:"var(--arrow-x, 50%) var(--arrow-y, 50%)","--antd-arrow-background-color":A,"&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${y}-content`]:{position:"relative"},[`${y}-inner`]:{backgroundColor:L,backgroundClip:"padding-box",borderRadius:w,boxShadow:Z,padding:x},[`${y}-title`]:{minWidth:S,marginBottom:F,color:B,fontWeight:j},[`${y}-inner-content`]:{color:g}})},(0,o.ZP)(p,{colorBg:"var(--antd-arrow-background-color)"}),{[`${y}-pure`]:{position:"relative",maxWidth:"none",margin:p.sizePopupArrow,display:"inline-block",[`${y}-content`]:{display:"inline-block"}}}]},d=p=>{const{componentCls:y}=p;return{[y]:s.i.map(g=>{const S=p[`${g}6`];return{[`&${y}-${g}`]:{"--antd-arrow-background-color":S,[`${y}-inner`]:{backgroundColor:S},[`${y}-arrow`]:{background:"transparent"}}}})}},h=p=>{const{componentCls:y,lineWidth:g,lineType:S,colorSplit:j,paddingSM:x,controlHeight:Z,fontSize:B,lineHeight:w,padding:T}=p,F=Z-Math.round(B*w),A=F/2,L=F/2-g,O=T;return{[y]:{[`${y}-inner`]:{padding:0},[`${y}-title`]:{margin:0,padding:`${A}px ${O}px ${L}px`,borderBottom:`${g}px ${S} ${j}`},[`${y}-inner-content`]:{padding:`${x}px ${O}px`}}}};b.Z=(0,n.Z)("Popover",p=>{const{colorBgElevated:y,colorText:g,wireframe:S}=p,j=(0,c.TS)(p,{popoverPadding:12,popoverBg:y,popoverColor:g});return[l(j),d(j),S&&h(j),(0,t._y)(j,"zoom-big")]},p=>({width:177,minWidth:177,zIndexPopup:p.zIndexPopupBase+30}),{deprecatedTokens:[["width","minWidth"]]})},95664:function(M,b,e){"use strict";e.d(b,{Z:function(){return ke}});var a=e(85678),t=e(35725),o=e(79999),s=e(52495),n=e(87608),c=e.n(n),l=e(98186),d=e(58757),h=e(61836),p=e(60698),y=e(57370),g=e(47075),S={percent:0,prefixCls:"rc-progress",strokeColor:"#2db7f5",strokeLinecap:"round",strokeWidth:1,trailColor:"#D9D9D9",trailWidth:1,gapPosition:"bottom"},j=function(){var re=(0,d.useRef)([]),se=(0,d.useRef)(null);return(0,d.useEffect)(function(){var Ee=Date.now(),Re=!1;re.current.forEach(function(fe){if(fe){Re=!0;var _e=fe.style;_e.transitionDuration=".3s, .3s, .3s, .06s",se.current&&Ee-se.current<100&&(_e.transitionDuration="0s, 0s")}}),Re&&(se.current=Date.now())}),re.current},x=["className","percent","prefixCls","strokeColor","strokeLinecap","strokeWidth","style","trailColor","trailWidth","transition"],Z=function(re){var se=(0,y.Z)((0,y.Z)({},S),re),Ee=se.className,Re=se.percent,fe=se.prefixCls,_e=se.strokeColor,Pe=se.strokeLinecap,ze=se.strokeWidth,Qe=se.style,gt=se.trailColor,ut=se.trailWidth,rt=se.transition,qe=(0,g.Z)(se,x);delete qe.gapPosition;var Ve=Array.isArray(Re)?Re:[Re],tt=Array.isArray(_e)?_e:[_e],Oe=j(),Me=ze/2,Ne=100-ze/2,Te="M ".concat(Pe==="round"?Me:0,",").concat(Me,` + L `).concat(Pe==="round"?Ne:100,",").concat(Me),Be="0 0 100 ".concat(ze),nt=0;return d.createElement("svg",(0,p.Z)({className:c()("".concat(fe,"-line"),Ee),viewBox:Be,preserveAspectRatio:"none",style:Qe},qe),d.createElement("path",{className:"".concat(fe,"-line-trail"),d:Te,strokeLinecap:Pe,stroke:gt,strokeWidth:ut||ze,fillOpacity:"0"}),Ve.map(function(ot,wt){var Et=1;switch(Pe){case"round":Et=1-ze/100;break;case"square":Et=1-ze/2/100;break;default:Et=1;break}var nn={strokeDasharray:"".concat(ot*Et,"px, 100px"),strokeDashoffset:"-".concat(nt,"px"),transition:rt||"stroke-dashoffset 0.3s ease 0s, stroke-dasharray .3s ease 0s, stroke 0.3s linear"},$t=tt[wt]||tt[tt.length-1];return nt+=ot,d.createElement("path",{key:wt,className:"".concat(fe,"-line-path"),d:Te,strokeLinecap:Pe,stroke:$t,strokeWidth:ze,fillOpacity:"0",ref:function(ln){Oe[wt]=ln},style:nn})}))},B=Z,w=e(38790),T=e(28314),F=e(19075),A=0,L=(0,F.Z)();function O(){var ne;return L?(ne=A,A+=1):ne="TEST_OR_SSR",ne}var $=function(ne){var re=d.useState(),se=(0,T.Z)(re,2),Ee=se[0],Re=se[1];return d.useEffect(function(){Re("rc_progress_".concat(O()))},[]),ne||Ee},P=["id","prefixCls","steps","strokeWidth","trailWidth","gapDegree","gapPosition","trailColor","strokeLinecap","style","className","strokeColor","percent"];function K(ne){return+ne.replace("%","")}function U(ne){var re=ne!=null?ne:[];return Array.isArray(re)?re:[re]}var ee=100,le=function(re,se,Ee,Re,fe,_e,Pe,ze,Qe,gt){var ut=arguments.length>10&&arguments[10]!==void 0?arguments[10]:0,rt=Ee/100*360*((360-_e)/360),qe=_e===0?0:{bottom:0,top:180,left:90,right:-90}[Pe],Ve=(100-Re)/100*se;return Qe==="round"&&Re!==100&&(Ve+=gt/2,Ve>=se&&(Ve=se-.01)),{stroke:typeof ze=="string"?ze:void 0,strokeDasharray:"".concat(se,"px ").concat(re),strokeDashoffset:Ve+ut,transform:"rotate(".concat(fe+rt+qe,"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}},Q=function(re){var se=(0,y.Z)((0,y.Z)({},S),re),Ee=se.id,Re=se.prefixCls,fe=se.steps,_e=se.strokeWidth,Pe=se.trailWidth,ze=se.gapDegree,Qe=ze===void 0?0:ze,gt=se.gapPosition,ut=se.trailColor,rt=se.strokeLinecap,qe=se.style,Ve=se.className,tt=se.strokeColor,Oe=se.percent,Me=(0,g.Z)(se,P),Ne=$(Ee),Te="".concat(Ne,"-gradient"),Be=ee/2-_e/2,nt=Math.PI*2*Be,ot=Qe>0?90+Qe/2:-90,wt=nt*((360-Qe)/360),Et=(0,w.Z)(fe)==="object"?fe:{count:fe,space:2},nn=Et.count,$t=Et.space,fn=le(nt,wt,0,100,ot,Qe,gt,ut,rt,_e),ln=U(Oe),Wt=U(tt),$e=Wt.find(function(Xe){return Xe&&(0,w.Z)(Xe)==="object"}),De=j(),jt=function(){var at=0;return ln.map(function(Bt,Zt){var Qt=Wt[Zt]||Wt[Wt.length-1],rn=Qt&&(0,w.Z)(Qt)==="object"?"url(#".concat(Te,")"):void 0,hn=le(nt,wt,at,Bt,ot,Qe,gt,Qt,rt,_e);return at+=Bt,d.createElement("circle",{key:Zt,className:"".concat(Re,"-circle-path"),r:Be,cx:0,cy:0,stroke:rn,strokeLinecap:rt,strokeWidth:_e,opacity:Bt===0?0:1,style:hn,ref:function(Rn){De[Zt]=Rn}})}).reverse()},Ft=function(){var at=Math.round(nn*(ln[0]/100)),Bt=100/nn,Zt=0;return new Array(nn).fill(null).map(function(Qt,rn){var hn=rn<=at-1?Wt[0]:ut,on=hn&&(0,w.Z)(hn)==="object"?"url(#".concat(Te,")"):void 0,Rn=le(nt,wt,Zt,Bt,ot,Qe,gt,hn,"butt",_e,$t);return Zt+=(wt-Rn.strokeDashoffset+$t)*100/wt,d.createElement("circle",{key:rn,className:"".concat(Re,"-circle-path"),r:Be,cx:0,cy:0,stroke:on,strokeWidth:_e,opacity:1,style:Rn,ref:function(lr){De[rn]=lr}})})};return d.createElement("svg",(0,p.Z)({className:c()("".concat(Re,"-circle"),Ve),viewBox:"".concat(-ee/2," ").concat(-ee/2," ").concat(ee," ").concat(ee),style:qe,id:Ee,role:"presentation"},Me),$e&&d.createElement("defs",null,d.createElement("linearGradient",{id:Te,x1:"100%",y1:"0%",x2:"0%",y2:"0%"},Object.keys($e).sort(function(Xe,at){return K(Xe)-K(at)}).map(function(Xe,at){return d.createElement("stop",{key:at,offset:Xe,stopColor:$e[Xe]})}))),!nn&&d.createElement("circle",{className:"".concat(Re,"-circle-trail"),r:Be,cx:0,cy:0,stroke:ut,strokeLinecap:rt,strokeWidth:Pe||_e,style:fn}),nn?Ft():jt())},G=Q,q={Line:B,Circle:G},I=e(74820),H=e(26134);function Y(ne){return!ne||ne<0?0:ne>100?100:ne}function D(ne){let{success:re,successPercent:se}=ne,Ee=se;return re&&"progress"in re&&(Ee=re.progress),re&&"percent"in re&&(Ee=re.percent),Ee}const _=ne=>{let{percent:re,success:se,successPercent:Ee}=ne;const Re=Y(D({success:se,successPercent:Ee}));return[Re,Y(Y(re)-Re)]},ue=ne=>{let{success:re={},strokeColor:se}=ne;const{strokeColor:Ee}=re;return[Ee||H.presetPrimaryColors.green,se||null]},be=(ne,re,se)=>{var Ee,Re,fe,_e;let Pe=-1,ze=-1;if(re==="step"){const Qe=se.steps,gt=se.strokeWidth;typeof ne=="string"||typeof ne=="undefined"?(Pe=ne==="small"?2:14,ze=gt!=null?gt:8):typeof ne=="number"?[Pe,ze]=[ne,ne]:[Pe=14,ze=8]=ne,Pe*=Qe}else if(re==="line"){const Qe=se==null?void 0:se.strokeWidth;typeof ne=="string"||typeof ne=="undefined"?ze=Qe||(ne==="small"?6:8):typeof ne=="number"?[Pe,ze]=[ne,ne]:[Pe=-1,ze=8]=ne}else(re==="circle"||re==="dashboard")&&(typeof ne=="string"||typeof ne=="undefined"?[Pe,ze]=ne==="small"?[60,60]:[120,120]:typeof ne=="number"?[Pe,ze]=[ne,ne]:(Pe=(Re=(Ee=ne[0])!==null&&Ee!==void 0?Ee:ne[1])!==null&&Re!==void 0?Re:120,ze=(_e=(fe=ne[0])!==null&&fe!==void 0?fe:ne[1])!==null&&_e!==void 0?_e:120));return[Pe,ze]},ce=3,he=ne=>ce/ne*100;var Je=ne=>{const{prefixCls:re,trailColor:se=null,strokeLinecap:Ee="round",gapPosition:Re,gapDegree:fe,width:_e=120,type:Pe,children:ze,success:Qe,size:gt=_e}=ne,[ut,rt]=be(gt,"circle");let{strokeWidth:qe}=ne;qe===void 0&&(qe=Math.max(he(ut),6));const Ve={width:ut,height:rt,fontSize:ut*.15+6},tt=d.useMemo(()=>{if(fe||fe===0)return fe;if(Pe==="dashboard")return 75},[fe,Pe]),Oe=Re||Pe==="dashboard"&&"bottom"||void 0,Me=Object.prototype.toString.call(ne.strokeColor)==="[object Object]",Ne=ue({success:Qe,strokeColor:ne.strokeColor}),Te=c()(`${re}-inner`,{[`${re}-circle-gradient`]:Me}),Be=d.createElement(G,{percent:_(ne),strokeWidth:qe,trailWidth:qe,strokeColor:Ne,strokeLinecap:Ee,trailColor:se,prefixCls:re,gapDegree:tt,gapPosition:Oe});return d.createElement("div",{className:Te,style:Ve},ut<=20?d.createElement(I.Z,{title:ze},d.createElement("span",null,Be)):d.createElement(d.Fragment,null,Be,ze))},et=function(ne,re){var se={};for(var Ee in ne)Object.prototype.hasOwnProperty.call(ne,Ee)&&re.indexOf(Ee)<0&&(se[Ee]=ne[Ee]);if(ne!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Re=0,Ee=Object.getOwnPropertySymbols(ne);Re{let re=[];return Object.keys(ne).forEach(se=>{const Ee=parseFloat(se.replace(/%/g,""));isNaN(Ee)||re.push({key:Ee,value:ne[se]})}),re=re.sort((se,Ee)=>se.key-Ee.key),re.map(se=>{let{key:Ee,value:Re}=se;return`${Re} ${Ee}%`}).join(", ")},yt=(ne,re)=>{const{from:se=H.presetPrimaryColors.blue,to:Ee=H.presetPrimaryColors.blue,direction:Re=re==="rtl"?"to left":"to right"}=ne,fe=et(ne,["from","to","direction"]);if(Object.keys(fe).length!==0){const _e=ae(fe);return{backgroundImage:`linear-gradient(${Re}, ${_e})`}}return{backgroundImage:`linear-gradient(${Re}, ${se}, ${Ee})`}};var bt=ne=>{const{prefixCls:re,direction:se,percent:Ee,size:Re,strokeWidth:fe,strokeColor:_e,strokeLinecap:Pe="round",children:ze,trailColor:Qe=null,success:gt}=ne,ut=_e&&typeof _e!="string"?yt(_e,se):{backgroundColor:_e},rt=Pe==="square"||Pe==="butt"?0:void 0,qe={backgroundColor:Qe||void 0,borderRadius:rt},Ve=Re!=null?Re:[-1,fe||(Re==="small"?6:8)],[tt,Oe]=be(Ve,"line",{strokeWidth:fe}),Me=Object.assign({width:`${Y(Ee)}%`,height:Oe,borderRadius:rt},ut),Ne=D(ne),Te={width:`${Y(Ne)}%`,height:Oe,borderRadius:rt,backgroundColor:gt==null?void 0:gt.strokeColor},Be={width:tt<0?"100%":tt,height:Oe};return d.createElement(d.Fragment,null,d.createElement("div",{className:`${re}-outer`,style:Be},d.createElement("div",{className:`${re}-inner`,style:qe},d.createElement("div",{className:`${re}-bg`,style:Me}),Ne!==void 0?d.createElement("div",{className:`${re}-success-bg`,style:Te}):null)),ze)},Le=ne=>{const{size:re,steps:se,percent:Ee=0,strokeWidth:Re=8,strokeColor:fe,trailColor:_e=null,prefixCls:Pe,children:ze}=ne,Qe=Math.round(se*(Ee/100)),gt=re==="small"?2:14,ut=re!=null?re:[gt,Re],[rt,qe]=be(ut,"step",{steps:se,strokeWidth:Re}),Ve=rt/se,tt=new Array(se);for(let Oe=0;Oe{const re=ne?"100%":"-100%";return new Ke.E4(`antProgress${ne?"RTL":"LTR"}Active`,{"0%":{transform:`translateX(${re}) scaleX(0)`,opacity:.1},"20%":{transform:`translateX(${re}) scaleX(0)`,opacity:.5},to:{transform:"translateX(0) scaleX(1)",opacity:0}})},W=ne=>{const{componentCls:re,iconCls:se}=ne;return{[re]:Object.assign(Object.assign({},(0,st.Wf)(ne)),{display:"inline-block","&-rtl":{direction:"rtl"},"&-line":{position:"relative",width:"100%",fontSize:ne.fontSize,marginInlineEnd:ne.marginXS,marginBottom:ne.marginXS},[`${re}-outer`]:{display:"inline-block",width:"100%"},[`&${re}-show-info`]:{[`${re}-outer`]:{marginInlineEnd:`calc(-2em - ${ne.marginXS}px)`,paddingInlineEnd:`calc(2em + ${ne.paddingXS}px)`}},[`${re}-inner`]:{position:"relative",display:"inline-block",width:"100%",overflow:"hidden",verticalAlign:"middle",backgroundColor:ne.progressRemainingColor,borderRadius:ne.progressLineRadius},[`${re}-inner:not(${re}-circle-gradient)`]:{[`${re}-circle-path`]:{stroke:ne.colorInfo}},[`${re}-success-bg, ${re}-bg`]:{position:"relative",backgroundColor:ne.colorInfo,borderRadius:ne.progressLineRadius,transition:`all ${ne.motionDurationSlow} ${ne.motionEaseInOutCirc}`},[`${re}-success-bg`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,backgroundColor:ne.colorSuccess},[`${re}-text`]:{display:"inline-block",width:"2em",marginInlineStart:ne.marginXS,color:ne.progressInfoTextColor,lineHeight:1,whiteSpace:"nowrap",textAlign:"start",verticalAlign:"middle",wordBreak:"normal",[se]:{fontSize:ne.fontSize}},[`&${re}-status-active`]:{[`${re}-bg::before`]:{position:"absolute",inset:0,backgroundColor:ne.colorBgContainer,borderRadius:ne.progressLineRadius,opacity:0,animationName:X(),animationDuration:ne.progressActiveMotionDuration,animationTimingFunction:ne.motionEaseOutQuint,animationIterationCount:"infinite",content:'""'}},[`&${re}-rtl${re}-status-active`]:{[`${re}-bg::before`]:{animationName:X(!0)}},[`&${re}-status-exception`]:{[`${re}-bg`]:{backgroundColor:ne.colorError},[`${re}-text`]:{color:ne.colorError}},[`&${re}-status-exception ${re}-inner:not(${re}-circle-gradient)`]:{[`${re}-circle-path`]:{stroke:ne.colorError}},[`&${re}-status-success`]:{[`${re}-bg`]:{backgroundColor:ne.colorSuccess},[`${re}-text`]:{color:ne.colorSuccess}},[`&${re}-status-success ${re}-inner:not(${re}-circle-gradient)`]:{[`${re}-circle-path`]:{stroke:ne.colorSuccess}}})}},R=ne=>{const{componentCls:re,iconCls:se}=ne;return{[re]:{[`${re}-circle-trail`]:{stroke:ne.progressRemainingColor},[`&${re}-circle ${re}-inner`]:{position:"relative",lineHeight:1,backgroundColor:"transparent"},[`&${re}-circle ${re}-text`]:{position:"absolute",insetBlockStart:"50%",insetInlineStart:0,width:"100%",margin:0,padding:0,color:ne.colorText,lineHeight:1,whiteSpace:"normal",textAlign:"center",transform:"translateY(-50%)",[se]:{fontSize:`${ne.fontSize/ne.fontSizeSM}em`}},[`${re}-circle&-status-exception`]:{[`${re}-text`]:{color:ne.colorError}},[`${re}-circle&-status-success`]:{[`${re}-text`]:{color:ne.colorSuccess}}},[`${re}-inline-circle`]:{lineHeight:1,[`${re}-inner`]:{verticalAlign:"bottom"}}}},N=ne=>{const{componentCls:re}=ne;return{[re]:{[`${re}-steps`]:{display:"inline-block","&-outer":{display:"flex",flexDirection:"row",alignItems:"center"},"&-item":{flexShrink:0,minWidth:ne.progressStepMinWidth,marginInlineEnd:ne.progressStepMarginInlineEnd,backgroundColor:ne.progressRemainingColor,transition:`all ${ne.motionDurationSlow}`,"&-active":{backgroundColor:ne.colorInfo}}}}}},oe=ne=>{const{componentCls:re,iconCls:se}=ne;return{[re]:{[`${re}-small&-line, ${re}-small&-line ${re}-text ${se}`]:{fontSize:ne.fontSizeSM}}}};var ve=(0,We.Z)("Progress",ne=>{const re=ne.marginXXS/2,se=(0,ge.TS)(ne,{progressLineRadius:100,progressInfoTextColor:ne.colorText,progressDefaultColor:ne.colorInfo,progressRemainingColor:ne.colorFillSecondary,progressStepMarginInlineEnd:re,progressStepMinWidth:re,progressActiveMotionDuration:"2.4s"});return[W(se),R(se),N(se),oe(se)]}),te=function(ne,re){var se={};for(var Ee in ne)Object.prototype.hasOwnProperty.call(ne,Ee)&&re.indexOf(Ee)<0&&(se[Ee]=ne[Ee]);if(ne!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Re=0,Ee=Object.getOwnPropertySymbols(ne);Re{const{prefixCls:se,className:Ee,rootClassName:Re,steps:fe,strokeColor:_e,percent:Pe=0,size:ze="default",showInfo:Qe=!0,type:gt="line",status:ut,format:rt,style:qe}=ne,Ve=te(ne,["prefixCls","className","rootClassName","steps","strokeColor","percent","size","showInfo","type","status","format","style"]),tt=d.useMemo(()=>{var ln,Wt;const $e=D(ne);return parseInt($e!==void 0?(ln=$e!=null?$e:0)===null||ln===void 0?void 0:ln.toString():(Wt=Pe!=null?Pe:0)===null||Wt===void 0?void 0:Wt.toString(),10)},[Pe,ne.success,ne.successPercent]),Oe=d.useMemo(()=>!we.includes(ut)&&tt>=100?"success":ut||"normal",[ut,tt]),{getPrefixCls:Me,direction:Ne,progress:Te}=d.useContext(h.E_),Be=Me("progress",se),[nt,ot]=ve(Be),wt=d.useMemo(()=>{if(!Qe)return null;const ln=D(ne);let Wt;const $e=rt||(jt=>`${jt}%`),De=gt==="line";return rt||Oe!=="exception"&&Oe!=="success"?Wt=$e(Y(Pe),Y(ln)):Oe==="exception"?Wt=De?d.createElement(o.Z,null):d.createElement(s.Z,null):Oe==="success"&&(Wt=De?d.createElement(a.Z,null):d.createElement(t.Z,null)),d.createElement("span",{className:`${Be}-text`,title:typeof Wt=="string"?Wt:void 0},Wt)},[Qe,Pe,tt,Oe,gt,Be,rt]),Et=Array.isArray(_e)?_e[0]:_e,nn=typeof _e=="string"||Array.isArray(_e)?_e:void 0;let $t;gt==="line"?$t=fe?d.createElement(Le,Object.assign({},ne,{strokeColor:nn,prefixCls:Be,steps:fe}),wt):d.createElement(bt,Object.assign({},ne,{strokeColor:Et,prefixCls:Be,direction:Ne}),wt):(gt==="circle"||gt==="dashboard")&&($t=d.createElement(Je,Object.assign({},ne,{strokeColor:Et,prefixCls:Be,progressStatus:Oe}),wt));const fn=c()(Be,`${Be}-status-${Oe}`,`${Be}-${gt==="dashboard"&&"circle"||fe&&"steps"||gt}`,{[`${Be}-inline-circle`]:gt==="circle"&&be(ze,"circle")[0]<=20,[`${Be}-show-info`]:Qe,[`${Be}-${ze}`]:typeof ze=="string",[`${Be}-rtl`]:Ne==="rtl"},Te==null?void 0:Te.className,Ee,Re,ot);return nt(d.createElement("div",Object.assign({ref:re,style:Object.assign(Object.assign({},Te==null?void 0:Te.style),qe),className:fn,role:"progressbar","aria-valuenow":tt},(0,l.Z)(Ve,["trailColor","strokeWidth","width","gapDegree","gapPosition","strokeLinecap","success","successPercent"])),$t))}),ke=Se},86035:function(M,b,e){"use strict";e.d(b,{Ag:function(){return s},IH:function(){return n},w:function(){return o}});var a=e(58757);const t=a.createContext(null),o=t.Provider;b.ZP=t;const s=a.createContext(null),n=s.Provider},40256:function(M,b,e){"use strict";var a=e(87608),t=e.n(a),o=e(60409),s=e(33926),n=e(58757),c=e(61836),l=e(58785),d=e(86035),h=e(27538),p=e(44397);const y=n.forwardRef((g,S)=>{const{getPrefixCls:j,direction:x}=n.useContext(c.E_),[Z,B]=(0,o.Z)(g.defaultValue,{value:g.value}),w=ce=>{const he=Z,Fe=ce.target.value;"value"in g||B(Fe);const{onChange:Je}=g;Je&&Fe!==he&&Je(ce)},{prefixCls:T,className:F,rootClassName:A,options:L,buttonStyle:O="outline",disabled:$,children:P,size:K,style:U,id:ee,onMouseEnter:le,onMouseLeave:Q,onFocus:G,onBlur:q}=g,I=j("radio",T),H=`${I}-group`,[Y,D]=(0,p.Z)(I);let _=P;L&&L.length>0&&(_=L.map(ce=>typeof ce=="string"||typeof ce=="number"?n.createElement(h.Z,{key:ce.toString(),prefixCls:I,disabled:$,value:ce,checked:Z===ce},ce):n.createElement(h.Z,{key:`radio-group-value-options-${ce.value}`,prefixCls:I,disabled:ce.disabled||$,value:ce.value,checked:Z===ce.value,title:ce.title,style:ce.style},ce.label)));const ue=(0,l.Z)(K),be=t()(H,`${H}-${O}`,{[`${H}-${ue}`]:ue,[`${H}-rtl`]:x==="rtl"},F,A,D);return Y(n.createElement("div",Object.assign({},(0,s.Z)(g,{aria:!0,data:!0}),{className:be,style:U,onMouseEnter:le,onMouseLeave:Q,onFocus:G,onBlur:q,id:ee,ref:S}),n.createElement(d.w,{value:{onChange:w,value:Z,disabled:g.disabled,name:g.name,optionType:g.optionType}},_)))});b.Z=n.memo(y)},10852:function(M,b,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,b.ZP=s},27538:function(M,b,e){"use strict";var a=e(87608),t=e.n(a),o=e(60357),s=e(21319),n=e(58757),c=e(61836),l=e(92428),d=e(81496),h=e(86035),p=e(44397),y=e(37486),g=e(78856),S=function(Z,B){var w={};for(var T in Z)Object.prototype.hasOwnProperty.call(Z,T)&&B.indexOf(T)<0&&(w[T]=Z[T]);if(Z!=null&&typeof Object.getOwnPropertySymbols=="function")for(var F=0,T=Object.getOwnPropertySymbols(Z);F{var w,T;const F=n.useContext(h.ZP),A=n.useContext(h.Ag),{getPrefixCls:L,direction:O,radio:$}=n.useContext(c.E_),P=n.useRef(null),K=(0,s.sQ)(B,P),{isFormItemInput:U}=n.useContext(d.aM),ee=Je=>{var et,ae;(et=Z.onChange)===null||et===void 0||et.call(Z,Je),(ae=F==null?void 0:F.onChange)===null||ae===void 0||ae.call(F,Je)},{prefixCls:le,className:Q,rootClassName:G,children:q,style:I}=Z,H=S(Z,["prefixCls","className","rootClassName","children","style"]),Y=L("radio",le),D=((F==null?void 0:F.optionType)||A)==="button",_=D?`${Y}-button`:Y,[ue,be]=(0,p.Z)(Y),ce=Object.assign({},H),he=n.useContext(l.Z);F&&(ce.name=F.name,ce.onChange=ee,ce.checked=Z.value===F.value,ce.disabled=(w=ce.disabled)!==null&&w!==void 0?w:F.disabled),ce.disabled=(T=ce.disabled)!==null&&T!==void 0?T:he;const Fe=t()(`${_}-wrapper`,{[`${_}-wrapper-checked`]:ce.checked,[`${_}-wrapper-disabled`]:ce.disabled,[`${_}-wrapper-rtl`]:O==="rtl",[`${_}-wrapper-in-form-item`]:U},$==null?void 0:$.className,Q,G,be);return ue(n.createElement(y.Z,{component:"Radio",disabled:ce.disabled},n.createElement("label",{className:Fe,style:Object.assign(Object.assign({},$==null?void 0:$.style),I),onMouseEnter:Z.onMouseEnter,onMouseLeave:Z.onMouseLeave},n.createElement(o.Z,Object.assign({},ce,{className:t()(ce.className,!D&&g.A),type:"radio",prefixCls:_,ref:K})),q!==void 0?n.createElement("span",null,q):null)))},x=n.forwardRef(j);b.Z=x},42253:function(M,b,e){"use strict";var a=e(58757),t=e(61836),o=e(86035),s=e(27538),n=function(l,d){var h={};for(var p in l)Object.prototype.hasOwnProperty.call(l,p)&&d.indexOf(p)<0&&(h[p]=l[p]);if(l!=null&&typeof Object.getOwnPropertySymbols=="function")for(var y=0,p=Object.getOwnPropertySymbols(l);y{const{getPrefixCls:h}=a.useContext(t.E_),{prefixCls:p}=l,y=n(l,["prefixCls"]),g=h("radio",p);return a.createElement(o.IH,{value:"button"},a.createElement(s.Z,Object.assign({prefixCls:g},y,{type:"radio",ref:d})))};b.Z=a.forwardRef(c)},44397:function(M,b,e){"use strict";var a=e(78330),t=e(52628),o=e(22151);const s=d=>{const{componentCls:h,antCls:p}=d,y=`${h}-group`;return{[y]:Object.assign(Object.assign({},(0,a.Wf)(d)),{display:"inline-block",fontSize:0,[`&${y}-rtl`]:{direction:"rtl"},[`${p}-badge ${p}-badge-count`]:{zIndex:1},[`> ${p}-badge:not(:first-child) > ${p}-button-wrapper`]:{borderInlineStart:"none"}})}},n=d=>{const{componentCls:h,wrapperMarginInlineEnd:p,colorPrimary:y,radioSize:g,motionDurationSlow:S,motionDurationMid:j,motionEaseInOutCirc:x,colorBgContainer:Z,colorBorder:B,lineWidth:w,dotSize:T,colorBgContainerDisabled:F,colorTextDisabled:A,paddingXS:L,dotColorDisabled:O,lineType:$,radioDotDisabledSize:P,wireframe:K,colorWhite:U}=d,ee=`${h}-inner`;return{[`${h}-wrapper`]:Object.assign(Object.assign({},(0,a.Wf)(d)),{display:"inline-flex",alignItems:"baseline",marginInlineStart:0,marginInlineEnd:p,cursor:"pointer",[`&${h}-wrapper-rtl`]:{direction:"rtl"},"&-disabled":{cursor:"not-allowed",color:d.colorTextDisabled},"&::after":{display:"inline-block",width:0,overflow:"hidden",content:'"\\a0"'},[`${h}-checked::after`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,width:"100%",height:"100%",border:`${w}px ${$} ${y}`,borderRadius:"50%",visibility:"hidden",content:'""'},[h]:Object.assign(Object.assign({},(0,a.Wf)(d)),{position:"relative",display:"inline-block",outline:"none",cursor:"pointer",alignSelf:"center",borderRadius:"50%"}),[`${h}-wrapper:hover &, + &:hover ${ee}`]:{borderColor:y},[`${h}-input:focus-visible + ${ee}`]:Object.assign({},(0,a.oN)(d)),[`${h}:hover::after, ${h}-wrapper:hover &::after`]:{visibility:"visible"},[`${h}-inner`]:{"&::after":{boxSizing:"border-box",position:"absolute",insetBlockStart:"50%",insetInlineStart:"50%",display:"block",width:g,height:g,marginBlockStart:g/-2,marginInlineStart:g/-2,backgroundColor:K?y:U,borderBlockStart:0,borderInlineStart:0,borderRadius:g,transform:"scale(0)",opacity:0,transition:`all ${S} ${x}`,content:'""'},boxSizing:"border-box",position:"relative",insetBlockStart:0,insetInlineStart:0,display:"block",width:g,height:g,backgroundColor:Z,borderColor:B,borderStyle:"solid",borderWidth:w,borderRadius:"50%",transition:`all ${j}`},[`${h}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0},[`${h}-checked`]:{[ee]:{borderColor:y,backgroundColor:K?Z:y,"&::after":{transform:`scale(${T/g})`,opacity:1,transition:`all ${S} ${x}`}}},[`${h}-disabled`]:{cursor:"not-allowed",[ee]:{backgroundColor:F,borderColor:B,cursor:"not-allowed","&::after":{backgroundColor:O}},[`${h}-input`]:{cursor:"not-allowed"},[`${h}-disabled + span`]:{color:A,cursor:"not-allowed"},[`&${h}-checked`]:{[ee]:{"&::after":{transform:`scale(${P/g})`}}}},[`span${h} + *`]:{paddingInlineStart:L,paddingInlineEnd:L}})}},c=d=>{const{buttonColor:h,controlHeight:p,componentCls:y,lineWidth:g,lineType:S,colorBorder:j,motionDurationSlow:x,motionDurationMid:Z,buttonPaddingInline:B,fontSize:w,buttonBg:T,fontSizeLG:F,controlHeightLG:A,controlHeightSM:L,paddingXS:O,borderRadius:$,borderRadiusSM:P,borderRadiusLG:K,buttonCheckedBg:U,buttonSolidCheckedColor:ee,colorTextDisabled:le,colorBgContainerDisabled:Q,buttonCheckedBgDisabled:G,buttonCheckedColorDisabled:q,colorPrimary:I,colorPrimaryHover:H,colorPrimaryActive:Y}=d;return{[`${y}-button-wrapper`]:{position:"relative",display:"inline-block",height:p,margin:0,paddingInline:B,paddingBlock:0,color:h,fontSize:w,lineHeight:`${p-g*2}px`,background:T,border:`${g}px ${S} ${j}`,borderBlockStartWidth:g+.02,borderInlineStartWidth:0,borderInlineEndWidth:g,cursor:"pointer",transition:[`color ${Z}`,`background ${Z}`,`box-shadow ${Z}`].join(","),a:{color:h},[`> ${y}-button`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,zIndex:-1,width:"100%",height:"100%"},"&:not(:first-child)":{"&::before":{position:"absolute",insetBlockStart:-g,insetInlineStart:-g,display:"block",boxSizing:"content-box",width:1,height:"100%",paddingBlock:g,paddingInline:0,backgroundColor:j,transition:`background-color ${x}`,content:'""'}},"&:first-child":{borderInlineStart:`${g}px ${S} ${j}`,borderStartStartRadius:$,borderEndStartRadius:$},"&:last-child":{borderStartEndRadius:$,borderEndEndRadius:$},"&:first-child:last-child":{borderRadius:$},[`${y}-group-large &`]:{height:A,fontSize:F,lineHeight:`${A-g*2}px`,"&:first-child":{borderStartStartRadius:K,borderEndStartRadius:K},"&:last-child":{borderStartEndRadius:K,borderEndEndRadius:K}},[`${y}-group-small &`]:{height:L,paddingInline:O-g,paddingBlock:0,lineHeight:`${L-g*2}px`,"&:first-child":{borderStartStartRadius:P,borderEndStartRadius:P},"&:last-child":{borderStartEndRadius:P,borderEndEndRadius:P}},"&:hover":{position:"relative",color:I},"&:has(:focus-visible)":Object.assign({},(0,a.oN)(d)),[`${y}-inner, input[type='checkbox'], input[type='radio']`]:{width:0,height:0,opacity:0,pointerEvents:"none"},[`&-checked:not(${y}-button-wrapper-disabled)`]:{zIndex:1,color:I,background:U,borderColor:I,"&::before":{backgroundColor:I},"&:first-child":{borderColor:I},"&:hover":{color:H,borderColor:H,"&::before":{backgroundColor:H}},"&:active":{color:Y,borderColor:Y,"&::before":{backgroundColor:Y}}},[`${y}-group-solid &-checked:not(${y}-button-wrapper-disabled)`]:{color:ee,background:I,borderColor:I,"&:hover":{color:ee,background:H,borderColor:H},"&:active":{color:ee,background:Y,borderColor:Y}},"&-disabled":{color:le,backgroundColor:Q,borderColor:j,cursor:"not-allowed","&:first-child, &:hover":{color:le,backgroundColor:Q,borderColor:j}},[`&-disabled${y}-button-wrapper-checked`]:{color:q,backgroundColor:G,borderColor:j,boxShadow:"none"}}}},l=d=>d-4*2;b.Z=(0,t.Z)("Radio",d=>{const{controlOutline:h,controlOutlineWidth:p,radioSize:y}=d,g=`0 0 0 ${p}px ${h}`,S=g,j=l(y),x=(0,o.TS)(d,{radioDotDisabledSize:j,radioFocusShadow:g,radioButtonFocusShadow:S});return[s(x),n(x),c(x)]},d=>{const{wireframe:h,padding:p,marginXS:y,lineWidth:g,fontSizeLG:S,colorText:j,colorBgContainer:x,colorTextDisabled:Z,controlItemBgActiveDisabled:B,colorTextLightSolid:w}=d,T=4,F=S,A=h?l(F):F-(T+g)*2;return{radioSize:F,dotSize:A,dotColorDisabled:Z,buttonSolidCheckedColor:w,buttonBg:x,buttonCheckedBg:x,buttonColor:j,buttonCheckedBgDisabled:B,buttonCheckedColorDisabled:Z,buttonPaddingInline:p-g,wrapperMarginInlineEnd:y}})},12632:function(M,b,e){"use strict";e.d(b,{ZP:function(){return I}});var a=e(85678),t=e(79999),o=e(69831),s=e(60698),n=e(58757),c={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=c,d=e(17202),h=function(Y,D){return n.createElement(d.Z,(0,s.Z)({},Y,{ref:D,icon:l}))},p=n.forwardRef(h),y=e(87608),g=e.n(y),S=e(61836),x=()=>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"}))),B=()=>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)"}))),T=()=>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"}))),F=e(52628),A=e(22151);const L=H=>{const{componentCls:Y,lineHeightHeading3:D,iconCls:_,padding:ue,paddingXL:be,paddingXS:ce,paddingLG:he,marginXS:Fe,lineHeight:Je}=H;return{[Y]:{padding:`${he*2}px ${be}px`,"&-rtl":{direction:"rtl"}},[`${Y} ${Y}-image`]:{width:H.imageWidth,height:H.imageHeight,margin:"auto"},[`${Y} ${Y}-icon`]:{marginBottom:he,textAlign:"center",[`& > ${_}`]:{fontSize:H.iconFontSize}},[`${Y} ${Y}-title`]:{color:H.colorTextHeading,fontSize:H.titleFontSize,lineHeight:D,marginBlock:Fe,textAlign:"center"},[`${Y} ${Y}-subtitle`]:{color:H.colorTextDescription,fontSize:H.subtitleFontSize,lineHeight:Je,textAlign:"center"},[`${Y} ${Y}-content`]:{marginTop:he,padding:`${he}px ${ue*2.5}px`,backgroundColor:H.colorFillAlter},[`${Y} ${Y}-extra`]:{margin:H.extraMargin,textAlign:"center","& > *":{marginInlineEnd:ce,"&:last-child":{marginInlineEnd:0}}}}},O=H=>{const{componentCls:Y,iconCls:D}=H;return{[`${Y}-success ${Y}-icon > ${D}`]:{color:H.resultSuccessIconColor},[`${Y}-error ${Y}-icon > ${D}`]:{color:H.resultErrorIconColor},[`${Y}-info ${Y}-icon > ${D}`]:{color:H.resultInfoIconColor},[`${Y}-warning ${Y}-icon > ${D}`]:{color:H.resultWarningIconColor}}},$=H=>[L(H),O(H)],P=H=>$(H);var K=(0,F.Z)("Result",H=>{const Y=H.colorInfo,D=H.colorError,_=H.colorSuccess,ue=H.colorWarning,be=(0,A.TS)(H,{resultInfoIconColor:Y,resultErrorIconColor:D,resultSuccessIconColor:_,resultWarningIconColor:ue,imageWidth:250,imageHeight:295});return[P(be)]},H=>({titleFontSize:H.fontSizeHeading3,subtitleFontSize:H.fontSize,iconFontSize:H.fontSizeHeading3*3,extraMargin:`${H.paddingLG}px 0 0 0`}));const U={success:a.Z,error:t.Z,info:o.Z,warning:p},ee={404:x,500:B,403:T},le=Object.keys(ee),Q=H=>{let{prefixCls:Y,icon:D,status:_}=H;const ue=g()(`${Y}-icon`);if(le.includes(`${_}`)){const ce=ee[_];return n.createElement("div",{className:`${ue} ${Y}-image`},n.createElement(ce,null))}const be=n.createElement(U[_]);return D===null||D===!1?null:n.createElement("div",{className:ue},D||be)},G=H=>{let{prefixCls:Y,extra:D}=H;return D?n.createElement("div",{className:`${Y}-extra`},D):null},q=H=>{let{prefixCls:Y,className:D,rootClassName:_,subTitle:ue,title:be,style:ce,children:he,status:Fe="info",icon:Je,extra:et}=H;const{getPrefixCls:ae,direction:yt,result:Pt}=n.useContext(S.E_),bt=ae("result",Y),[Ct,Le]=K(bt),Ke=g()(bt,`${bt}-${Fe}`,D,Pt==null?void 0:Pt.className,_,{[`${bt}-rtl`]:yt==="rtl"},Le),st=Object.assign(Object.assign({},Pt==null?void 0:Pt.style),ce);return Ct(n.createElement("div",{className:Ke,style:st},n.createElement(Q,{prefixCls:bt,status:Fe,icon:Je}),n.createElement("div",{className:`${bt}-title`},be),ue&&n.createElement("div",{className:`${bt}-subtitle`},ue),n.createElement(G,{prefixCls:bt,extra:et}),he&&n.createElement("div",{className:`${bt}-content`},he)))};q.PRESENTED_IMAGE_403=ee[403],q.PRESENTED_IMAGE_404=ee[404],q.PRESENTED_IMAGE_500=ee[500];var I=q},59504:function(M,b,e){"use strict";var a=e(87608),t=e.n(a),o=e(18510),s=e(98186),n=e(58757),c=e(15018),l=e(90881),d=e(41496),h=e(61836),p=e(92428),y=e(10401),g=e(58785),S=e(81496),j=e(43528),x=e(92493),Z=e(25639),B=e(61698),w=e(29701),T=function($,P){var K={};for(var U in $)Object.prototype.hasOwnProperty.call($,U)&&P.indexOf(U)<0&&(K[U]=$[U]);if($!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ee=0,U=Object.getOwnPropertySymbols($);ee{var K,{prefixCls:U,bordered:ee=!0,className:le,rootClassName:Q,getPopupContainer:G,popupClassName:q,dropdownClassName:I,listHeight:H=256,placement:Y,listItemHeight:D=24,size:_,disabled:ue,notFoundContent:be,status:ce,builtinPlacements:he,dropdownMatchSelectWidth:Fe,popupMatchSelectWidth:Je,direction:et,style:ae,allowClear:yt}=$,Pt=T($,["prefixCls","bordered","className","rootClassName","getPopupContainer","popupClassName","dropdownClassName","listHeight","placement","listItemHeight","size","disabled","notFoundContent","status","builtinPlacements","dropdownMatchSelectWidth","popupMatchSelectWidth","direction","style","allowClear"]);const{getPopupContainer:bt,getPrefixCls:Ct,renderEmpty:Le,direction:Ke,virtual:st,popupMatchSelectWidth:We,popupOverflow:ge,select:X}=n.useContext(h.E_),W=Ct("select",U),R=Ct(),N=et!=null?et:Ke,{compactSize:oe,compactItemClassnames:ve}=(0,j.ri)(W,N),[te,me]=(0,x.Z)(W),we=n.useMemo(()=>{const{mode:Te}=Pt;if(Te!=="combobox")return Te===F?"combobox":Te},[Pt.mode]),xe=we==="multiple"||we==="tags",Se=(0,B.Z)(Pt.suffixIcon,Pt.showArrow),ke=(K=Je!=null?Je:Fe)!==null&&K!==void 0?K:We,{status:ne,hasFeedback:re,isFormItemInput:se,feedbackIcon:Ee}=n.useContext(S.aM),Re=(0,d.F)(ne,ce);let fe;be!==void 0?fe=be:we==="combobox"?fe=null:fe=(Le==null?void 0:Le("Select"))||n.createElement(y.Z,{componentName:"Select"});const{suffixIcon:_e,itemIcon:Pe,removeIcon:ze,clearIcon:Qe}=(0,w.Z)(Object.assign(Object.assign({},Pt),{multiple:xe,hasFeedback:re,feedbackIcon:Ee,showSuffixIcon:Se,prefixCls:W,showArrow:Pt.showArrow,componentName:"Select"})),gt=yt===!0?{clearIcon:Qe}:yt,ut=(0,s.Z)(Pt,["suffixIcon","itemIcon"]),rt=t()(q||I,{[`${W}-dropdown-${N}`]:N==="rtl"},Q,me),qe=(0,g.Z)(Te=>{var Be;return(Be=_!=null?_:oe)!==null&&Be!==void 0?Be:Te}),Ve=n.useContext(p.Z),tt=ue!=null?ue:Ve,Oe=t()({[`${W}-lg`]:qe==="large",[`${W}-sm`]:qe==="small",[`${W}-rtl`]:N==="rtl",[`${W}-borderless`]:!ee,[`${W}-in-form-item`]:se},(0,d.Z)(W,Re,re),ve,X==null?void 0:X.className,le,Q,me),Me=n.useMemo(()=>Y!==void 0?Y:N==="rtl"?"bottomRight":"bottomLeft",[Y,N]),Ne=(0,Z.Z)(he,ge);return te(n.createElement(o.ZP,Object.assign({ref:P,virtual:st,showSearch:X==null?void 0:X.showSearch},ut,{style:Object.assign(Object.assign({},X==null?void 0:X.style),ae),dropdownMatchSelectWidth:ke,builtinPlacements:Ne,transitionName:(0,l.m)(R,"slide-up",Pt.transitionName),listHeight:H,listItemHeight:D,mode:we,prefixCls:W,placement:Me,direction:N,suffixIcon:_e,menuItemSelectedIcon:Pe,removeIcon:ze,allowClear:gt,notFoundContent:fe,className:Oe,getPopupContainer:G||bt,dropdownClassName:rt,disabled:tt})))},L=n.forwardRef(A),O=(0,c.Z)(L);L.SECRET_COMBOBOX_MODE_DO_NOT_USE=F,L.Option=o.Wx,L.OptGroup=o.Xo,L._InternalPanelDoNotUseOrYouWillBeFired=O,b.Z=L},92493:function(M,b,e){"use strict";e.d(b,{Z:function(){return L}});var a=e(78330),t=e(64493),o=e(22151),s=e(52628),n=e(1016),c=e(1546);const l=O=>{const{controlPaddingHorizontal:$,controlHeight:P,fontSize:K,lineHeight:U}=O;return{position:"relative",display:"block",minHeight:P,padding:`${(P-K*U)/2}px ${$}px`,color:O.colorText,fontWeight:"normal",fontSize:K,lineHeight:U,boxSizing:"border-box"}};var h=O=>{const{antCls:$,componentCls:P}=O,K=`${P}-item`,U=`&${$}-slide-up-enter${$}-slide-up-enter-active`,ee=`&${$}-slide-up-appear${$}-slide-up-appear-active`,le=`&${$}-slide-up-leave${$}-slide-up-leave-active`,Q=`${P}-dropdown-placement-`;return[{[`${P}-dropdown`]:Object.assign(Object.assign({},(0,a.Wf)(O)),{position:"absolute",top:-9999,zIndex:O.zIndexPopup,boxSizing:"border-box",padding:O.paddingXXS,overflow:"hidden",fontSize:O.fontSize,fontVariant:"initial",backgroundColor:O.colorBgElevated,borderRadius:O.borderRadiusLG,outline:"none",boxShadow:O.boxShadowSecondary,[` + ${U}${Q}bottomLeft, + ${ee}${Q}bottomLeft + `]:{animationName:n.fJ},[` + ${U}${Q}topLeft, + ${ee}${Q}topLeft, + ${U}${Q}topRight, + ${ee}${Q}topRight + `]:{animationName:n.Qt},[`${le}${Q}bottomLeft`]:{animationName:n.Uw},[` + ${le}${Q}topLeft, + ${le}${Q}topRight + `]:{animationName:n.ly},"&-hidden":{display:"none"},[`${K}`]:Object.assign(Object.assign({},l(O)),{cursor:"pointer",transition:`background ${O.motionDurationSlow} ease`,borderRadius:O.borderRadiusSM,"&-group":{color:O.colorTextDescription,fontSize:O.fontSizeSM,cursor:"default"},"&-option":{display:"flex","&-content":Object.assign({flex:"auto"},a.vS),"&-state":{flex:"none",display:"flex",alignItems:"center"},[`&-active:not(${K}-option-disabled)`]:{backgroundColor:O.controlItemBgHover},[`&-selected:not(${K}-option-disabled)`]:{color:O.colorText,fontWeight:O.fontWeightStrong,backgroundColor:O.controlItemBgActive,[`${K}-option-state`]:{color:O.colorPrimary}},"&-disabled":{[`&${K}-option-selected`]:{backgroundColor:O.colorBgContainerDisabled},color:O.colorTextDisabled,cursor:"not-allowed"},"&-grouped":{paddingInlineStart:O.controlPaddingHorizontal*2}}}),"&-rtl":{direction:"rtl"}})},(0,n.oN)(O,"slide-up"),(0,n.oN)(O,"slide-down"),(0,c.Fm)(O,"move-up"),(0,c.Fm)(O,"move-down")]};const p=2,y=O=>{let{controlHeightSM:$,controlHeight:P,lineWidth:K}=O;const U=(P-$)/2-K,ee=Math.ceil(U/2);return[U,ee]};function g(O,$){const{componentCls:P,iconCls:K}=O,U=`${P}-selection-overflow`,ee=O.controlHeightSM,[le]=y(O),Q=$?`${P}-${$}`:"";return{[`${P}-multiple${Q}`]:{fontSize:O.fontSize,[U]:{position:"relative",display:"flex",flex:"auto",flexWrap:"wrap",maxWidth:"100%","&-item":{flex:"none",alignSelf:"center",maxWidth:"100%",display:"inline-flex"}},[`${P}-selector`]:{display:"flex",flexWrap:"wrap",alignItems:"center",padding:`${le-p}px ${p*2}px`,borderRadius:O.borderRadius,[`${P}-show-search&`]:{cursor:"text"},[`${P}-disabled&`]:{background:O.colorBgContainerDisabled,cursor:"not-allowed"},"&:after":{display:"inline-block",width:0,margin:`${p}px 0`,lineHeight:`${ee}px`,visibility:"hidden",content:'"\\a0"'}},[` + &${P}-show-arrow ${P}-selector, + &${P}-allow-clear ${P}-selector + `]:{paddingInlineEnd:O.fontSizeIcon+O.controlPaddingHorizontal},[`${P}-selection-item`]:{position:"relative",display:"flex",flex:"none",boxSizing:"border-box",maxWidth:"100%",height:ee,marginTop:p,marginBottom:p,lineHeight:`${ee-O.lineWidth*2}px`,background:O.colorFillSecondary,borderRadius:O.borderRadiusSM,cursor:"default",transition:`font-size ${O.motionDurationSlow}, line-height ${O.motionDurationSlow}, height ${O.motionDurationSlow}`,userSelect:"none",marginInlineEnd:p*2,paddingInlineStart:O.paddingXS,paddingInlineEnd:O.paddingXS/2,[`${P}-disabled&`]:{color:O.colorTextDisabled,cursor:"not-allowed"},"&-content":{display:"inline-block",marginInlineEnd:O.paddingXS/2,overflow:"hidden",whiteSpace:"pre",textOverflow:"ellipsis"},"&-remove":Object.assign(Object.assign({},(0,a.Ro)()),{display:"inline-flex",alignItems:"center",color:O.colorIcon,fontWeight:"bold",fontSize:10,lineHeight:"inherit",cursor:"pointer",[`> ${K}`]:{verticalAlign:"-0.2em"},"&:hover":{color:O.colorIconHover}})},[`${U}-item + ${U}-item`]:{[`${P}-selection-search`]:{marginInlineStart:0}},[`${P}-selection-search`]:{display:"inline-flex",position:"relative",maxWidth:"100%",marginInlineStart:O.inputPaddingHorizontalBase-le,[` + &-input, + &-mirror + `]:{height:ee,fontFamily:O.fontFamily,lineHeight:`${ee}px`,transition:`all ${O.motionDurationSlow}`},"&-input":{width:"100%",minWidth:4.1},"&-mirror":{position:"absolute",top:0,insetInlineStart:0,insetInlineEnd:"auto",zIndex:999,whiteSpace:"pre",visibility:"hidden"}},[`${P}-selection-placeholder `]:{position:"absolute",top:"50%",insetInlineStart:O.inputPaddingHorizontalBase,insetInlineEnd:O.inputPaddingHorizontalBase,transform:"translateY(-50%)",transition:`all ${O.motionDurationSlow}`}}}}var j=O=>{const{componentCls:$}=O,P=(0,o.TS)(O,{controlHeight:O.controlHeightSM,controlHeightSM:O.controlHeightXS,borderRadius:O.borderRadiusSM,borderRadiusSM:O.borderRadiusXS}),K=(0,o.TS)(O,{fontSize:O.fontSizeLG,controlHeight:O.controlHeightLG,controlHeightSM:O.controlHeight,borderRadius:O.borderRadiusLG,borderRadiusSM:O.borderRadius}),[,U]=y(O);return[g(O),g(P,"sm"),{[`${$}-multiple${$}-sm`]:{[`${$}-selection-placeholder`]:{insetInline:O.controlPaddingHorizontalSM-O.lineWidth},[`${$}-selection-search`]:{marginInlineStart:U}}},g(K,"lg")]};function x(O,$){const{componentCls:P,inputPaddingHorizontalBase:K,borderRadius:U}=O,ee=O.controlHeight-O.lineWidth*2,le=Math.ceil(O.fontSize*1.25),Q=$?`${P}-${$}`:"";return{[`${P}-single${Q}`]:{fontSize:O.fontSize,[`${P}-selector`]:Object.assign(Object.assign({},(0,a.Wf)(O)),{display:"flex",borderRadius:U,[`${P}-selection-search`]:{position:"absolute",top:0,insetInlineStart:K,insetInlineEnd:K,bottom:0,"&-input":{width:"100%"}},[` + ${P}-selection-item, + ${P}-selection-placeholder + `]:{padding:0,lineHeight:`${ee}px`,transition:`all ${O.motionDurationSlow}, visibility 0s`,"@supports (-moz-appearance: meterbar)":{lineHeight:`${ee}px`}},[`${P}-selection-item`]:{position:"relative",userSelect:"none"},[`${P}-selection-placeholder`]:{transition:"none",pointerEvents:"none"},[["&:after",`${P}-selection-item:after`,`${P}-selection-placeholder:after`].join(",")]:{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'}}),[` + &${P}-show-arrow ${P}-selection-item, + &${P}-show-arrow ${P}-selection-placeholder + `]:{paddingInlineEnd:le},[`&${P}-open ${P}-selection-item`]:{color:O.colorTextPlaceholder},[`&:not(${P}-customize-input)`]:{[`${P}-selector`]:{width:"100%",height:O.controlHeight,padding:`0 ${K}px`,[`${P}-selection-search-input`]:{height:ee},"&:after":{lineHeight:`${ee}px`}}},[`&${P}-customize-input`]:{[`${P}-selector`]:{"&:after":{display:"none"},[`${P}-selection-search`]:{position:"static",width:"100%"},[`${P}-selection-placeholder`]:{position:"absolute",insetInlineStart:0,insetInlineEnd:0,padding:`0 ${K}px`,"&:after":{display:"none"}}}}}}}function Z(O){const{componentCls:$}=O,P=O.controlPaddingHorizontalSM-O.lineWidth;return[x(O),x((0,o.TS)(O,{controlHeight:O.controlHeightSM,borderRadius:O.borderRadiusSM}),"sm"),{[`${$}-single${$}-sm`]:{[`&:not(${$}-customize-input)`]:{[`${$}-selection-search`]:{insetInlineStart:P,insetInlineEnd:P},[`${$}-selector`]:{padding:`0 ${P}px`},[`&${$}-show-arrow ${$}-selection-search`]:{insetInlineEnd:P+O.fontSize*1.5},[` + &${$}-show-arrow ${$}-selection-item, + &${$}-show-arrow ${$}-selection-placeholder + `]:{paddingInlineEnd:O.fontSize*1.5}}}},x((0,o.TS)(O,{controlHeight:O.controlHeightLG,fontSize:O.fontSizeLG,borderRadius:O.borderRadiusLG}),"lg")]}const B=O=>{const{componentCls:$}=O;return{position:"relative",backgroundColor:O.colorBgContainer,border:`${O.lineWidth}px ${O.lineType} ${O.colorBorder}`,transition:`all ${O.motionDurationMid} ${O.motionEaseInOut}`,input:{cursor:"pointer"},[`${$}-show-search&`]:{cursor:"text",input:{cursor:"auto",color:"inherit"}},[`${$}-disabled&`]:{color:O.colorTextDisabled,background:O.colorBgContainerDisabled,cursor:"not-allowed",[`${$}-multiple&`]:{background:O.colorBgContainerDisabled},input:{cursor:"not-allowed"}}}},w=function(O,$){let P=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const{componentCls:K,borderHoverColor:U,outlineColor:ee,antCls:le}=$,Q=P?{[`${K}-selector`]:{borderColor:U}}:{};return{[O]:{[`&:not(${K}-disabled):not(${K}-customize-input):not(${le}-pagination-size-changer)`]:Object.assign(Object.assign({},Q),{[`${K}-focused& ${K}-selector`]:{borderColor:U,boxShadow:`0 0 0 ${$.controlOutlineWidth}px ${ee}`,outline:0},[`&:hover ${K}-selector`]:{borderColor:U}})}}},T=O=>{const{componentCls:$}=O;return{[`${$}-selection-search-input`]:{margin:0,padding:0,background:"transparent",border:"none",outline:"none",appearance:"none","&::-webkit-search-cancel-button":{display:"none","-webkit-appearance":"none"}}}},F=O=>{const{componentCls:$,inputPaddingHorizontalBase:P,iconCls:K}=O;return{[$]:Object.assign(Object.assign({},(0,a.Wf)(O)),{position:"relative",display:"inline-block",cursor:"pointer",[`&:not(${$}-customize-input) ${$}-selector`]:Object.assign(Object.assign({},B(O)),T(O)),[`${$}-selection-item`]:Object.assign({flex:1,fontWeight:"normal"},a.vS),[`${$}-selection-placeholder`]:Object.assign(Object.assign({},a.vS),{flex:1,color:O.colorTextPlaceholder,pointerEvents:"none"}),[`${$}-arrow`]:Object.assign(Object.assign({},(0,a.Ro)()),{position:"absolute",top:"50%",insetInlineStart:"auto",insetInlineEnd:P,height:O.fontSizeIcon,marginTop:-O.fontSizeIcon/2,color:O.colorTextQuaternary,fontSize:O.fontSizeIcon,lineHeight:1,textAlign:"center",pointerEvents:"none",display:"flex",alignItems:"center",[K]:{verticalAlign:"top",transition:`transform ${O.motionDurationSlow}`,"> svg":{verticalAlign:"top"},[`&:not(${$}-suffix)`]:{pointerEvents:"auto"}},[`${$}-disabled &`]:{cursor:"not-allowed"},"> *:not(:last-child)":{marginInlineEnd:8}}),[`${$}-clear`]:{position:"absolute",top:"50%",insetInlineStart:"auto",insetInlineEnd:P,zIndex:1,display:"inline-block",width:O.fontSizeIcon,height:O.fontSizeIcon,marginTop:-O.fontSizeIcon/2,color:O.colorTextQuaternary,fontSize:O.fontSizeIcon,fontStyle:"normal",lineHeight:1,textAlign:"center",textTransform:"none",background:O.colorBgContainer,cursor:"pointer",opacity:0,transition:`color ${O.motionDurationMid} ease, opacity ${O.motionDurationSlow} ease`,textRendering:"auto","&:before":{display:"block"},"&:hover":{color:O.colorTextTertiary}},"&:hover":{[`${$}-clear`]:{opacity:1}}}),[`${$}-has-feedback`]:{[`${$}-clear`]:{insetInlineEnd:P+O.fontSize+O.paddingXS}}}},A=O=>{const{componentCls:$}=O;return[{[$]:{[`&-borderless ${$}-selector`]:{backgroundColor:"transparent !important",borderColor:"transparent !important",boxShadow:"none !important"},[`&${$}-in-form-item`]:{width:"100%"}}},F(O),Z(O),j(O),h(O),{[`${$}-rtl`]:{direction:"rtl"}},w($,(0,o.TS)(O,{borderHoverColor:O.colorPrimaryHover,outlineColor:O.controlOutline})),w(`${$}-status-error`,(0,o.TS)(O,{borderHoverColor:O.colorErrorHover,outlineColor:O.colorErrorOutline}),!0),w(`${$}-status-warning`,(0,o.TS)(O,{borderHoverColor:O.colorWarningHover,outlineColor:O.colorWarningOutline}),!0),(0,t.c)(O,{borderElCls:`${$}-selector`,focusElCls:`${$}-focused`})]};var L=(0,s.Z)("Select",(O,$)=>{let{rootPrefixCls:P}=$;const K=(0,o.TS)(O,{rootPrefixCls:P,inputPaddingHorizontalBase:O.paddingSM-1});return[A(K)]},O=>({zIndexPopup:O.zIndexPopupBase+50}))},25639:function(M,b,e){"use strict";e.d(b,{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(M,b,e){"use strict";e.d(b,{Z:function(){return a}});function a(t,o){return o!==void 0?o:t!==null}},29701:function(M,b,e){"use strict";e.d(b,{Z:function(){return d}});var a=e(35725),t=e(79999),o=e(52495),s=e(10130),n=e(25755),c=e(99534),l=e(58757);function d(h){let{suffixIcon:p,clearIcon:y,menuItemSelectedIcon:g,removeIcon:S,loading:j,multiple:x,hasFeedback:Z,prefixCls:B,showSuffixIcon:w,feedbackIcon:T,showArrow:F,componentName:A}=h;const L=y!=null?y:l.createElement(t.Z,null),O=U=>p===null&&!Z&&!F?null:l.createElement(l.Fragment,null,w!==!1&&U,Z&&T);let $=null;if(p!==void 0)$=O(p);else if(j)$=O(l.createElement(n.Z,{spin:!0}));else{const U=`${B}-suffix`;$=ee=>{let{open:le,showSearch:Q}=ee;return O(le&&Q?l.createElement(c.Z,{className:U}):l.createElement(s.Z,{className:U}))}}let P=null;g!==void 0?P=g:x?P=l.createElement(a.Z,null):P=null;let K=null;return S!==void 0?K=S:K=l.createElement(o.Z,null),{clearIcon:L,suffixIcon:$,itemIcon:P,removeIcon:K}}},57214:function(M,b,e){"use strict";e.d(b,{Z:function(){return We}});var a=e(87608),t=e.n(a),o=e(58757),s=e(61836),n=e(98186),l=ge=>{const{prefixCls:X,className:W,style:R,size:N,shape:oe}=ge,ve=t()({[`${X}-lg`]:N==="large",[`${X}-sm`]:N==="small"}),te=t()({[`${X}-circle`]:oe==="circle",[`${X}-square`]:oe==="square",[`${X}-round`]:oe==="round"}),me=o.useMemo(()=>typeof N=="number"?{width:N,height:N,lineHeight:`${N}px`}:{},[N]);return o.createElement("span",{className:t()(X,ve,te,W),style:Object.assign(Object.assign({},me),R)})},d=e(57793),h=e(52628),p=e(22151);const y=new d.E4("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),g=ge=>({height:ge,lineHeight:`${ge}px`}),S=ge=>Object.assign({width:ge},g(ge)),j=ge=>({background:ge.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:y,animationDuration:ge.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"}),x=ge=>Object.assign({width:ge*5,minWidth:ge*5},g(ge)),Z=ge=>{const{skeletonAvatarCls:X,gradientFromColor:W,controlHeight:R,controlHeightLG:N,controlHeightSM:oe}=ge;return{[`${X}`]:Object.assign({display:"inline-block",verticalAlign:"top",background:W},S(R)),[`${X}${X}-circle`]:{borderRadius:"50%"},[`${X}${X}-lg`]:Object.assign({},S(N)),[`${X}${X}-sm`]:Object.assign({},S(oe))}},B=ge=>{const{controlHeight:X,borderRadiusSM:W,skeletonInputCls:R,controlHeightLG:N,controlHeightSM:oe,gradientFromColor:ve}=ge;return{[`${R}`]:Object.assign({display:"inline-block",verticalAlign:"top",background:ve,borderRadius:W},x(X)),[`${R}-lg`]:Object.assign({},x(N)),[`${R}-sm`]:Object.assign({},x(oe))}},w=ge=>Object.assign({width:ge},g(ge)),T=ge=>{const{skeletonImageCls:X,imageSizeBase:W,gradientFromColor:R,borderRadiusSM:N}=ge;return{[`${X}`]:Object.assign(Object.assign({display:"flex",alignItems:"center",justifyContent:"center",verticalAlign:"top",background:R,borderRadius:N},w(W*2)),{[`${X}-path`]:{fill:"#bfbfbf"},[`${X}-svg`]:Object.assign(Object.assign({},w(W)),{maxWidth:W*4,maxHeight:W*4}),[`${X}-svg${X}-svg-circle`]:{borderRadius:"50%"}}),[`${X}${X}-circle`]:{borderRadius:"50%"}}},F=(ge,X,W)=>{const{skeletonButtonCls:R}=ge;return{[`${W}${R}-circle`]:{width:X,minWidth:X,borderRadius:"50%"},[`${W}${R}-round`]:{borderRadius:X}}},A=ge=>Object.assign({width:ge*2,minWidth:ge*2},g(ge)),L=ge=>{const{borderRadiusSM:X,skeletonButtonCls:W,controlHeight:R,controlHeightLG:N,controlHeightSM:oe,gradientFromColor:ve}=ge;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[`${W}`]:Object.assign({display:"inline-block",verticalAlign:"top",background:ve,borderRadius:X,width:R*2,minWidth:R*2},A(R))},F(ge,R,W)),{[`${W}-lg`]:Object.assign({},A(N))}),F(ge,N,`${W}-lg`)),{[`${W}-sm`]:Object.assign({},A(oe))}),F(ge,oe,`${W}-sm`))},O=ge=>{const{componentCls:X,skeletonAvatarCls:W,skeletonTitleCls:R,skeletonParagraphCls:N,skeletonButtonCls:oe,skeletonInputCls:ve,skeletonImageCls:te,controlHeight:me,controlHeightLG:we,controlHeightSM:xe,gradientFromColor:Se,padding:ke,marginSM:ne,borderRadius:re,titleHeight:se,blockRadius:Ee,paragraphLiHeight:Re,controlHeightXS:fe,paragraphMarginTop:_e}=ge;return{[`${X}`]:{display:"table",width:"100%",[`${X}-header`]:{display:"table-cell",paddingInlineEnd:ke,verticalAlign:"top",[`${W}`]:Object.assign({display:"inline-block",verticalAlign:"top",background:Se},S(me)),[`${W}-circle`]:{borderRadius:"50%"},[`${W}-lg`]:Object.assign({},S(we)),[`${W}-sm`]:Object.assign({},S(xe))},[`${X}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[`${R}`]:{width:"100%",height:se,background:Se,borderRadius:Ee,[`+ ${N}`]:{marginBlockStart:xe}},[`${N}`]:{padding:0,"> li":{width:"100%",height:Re,listStyle:"none",background:Se,borderRadius:Ee,"+ li":{marginBlockStart:fe}}},[`${N}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${X}-content`]:{[`${R}, ${N} > li`]:{borderRadius:re}}},[`${X}-with-avatar ${X}-content`]:{[`${R}`]:{marginBlockStart:ne,[`+ ${N}`]:{marginBlockStart:_e}}},[`${X}${X}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},L(ge)),Z(ge)),B(ge)),T(ge)),[`${X}${X}-block`]:{width:"100%",[`${oe}`]:{width:"100%"},[`${ve}`]:{width:"100%"}},[`${X}${X}-active`]:{[` + ${R}, + ${N} > li, + ${W}, + ${oe}, + ${ve}, + ${te} + `]:Object.assign({},j(ge))}}};var $=(0,h.Z)("Skeleton",ge=>{const{componentCls:X}=ge,W=(0,p.TS)(ge,{skeletonAvatarCls:`${X}-avatar`,skeletonTitleCls:`${X}-title`,skeletonParagraphCls:`${X}-paragraph`,skeletonButtonCls:`${X}-button`,skeletonInputCls:`${X}-input`,skeletonImageCls:`${X}-image`,imageSizeBase:ge.controlHeight*1.5,borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${ge.gradientFromColor} 25%, ${ge.gradientToColor} 37%, ${ge.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"});return[O(W)]},ge=>{const{colorFillContent:X,colorFill:W}=ge,R=X,N=W;return{color:R,colorGradientEnd:N,gradientFromColor:R,gradientToColor:N,titleHeight:ge.controlHeight/2,blockRadius:ge.borderRadiusSM,paragraphMarginTop:ge.marginLG+ge.marginXXS,paragraphLiHeight:ge.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),K=ge=>{const{prefixCls:X,className:W,rootClassName:R,active:N,shape:oe="circle",size:ve="default"}=ge,{getPrefixCls:te}=o.useContext(s.E_),me=te("skeleton",X),[we,xe]=$(me),Se=(0,n.Z)(ge,["prefixCls","className"]),ke=t()(me,`${me}-element`,{[`${me}-active`]:N},W,R,xe);return we(o.createElement("div",{className:ke},o.createElement(l,Object.assign({prefixCls:`${me}-avatar`,shape:oe,size:ve},Se))))},ee=ge=>{const{prefixCls:X,className:W,rootClassName:R,active:N,block:oe=!1,size:ve="default"}=ge,{getPrefixCls:te}=o.useContext(s.E_),me=te("skeleton",X),[we,xe]=$(me),Se=(0,n.Z)(ge,["prefixCls"]),ke=t()(me,`${me}-element`,{[`${me}-active`]:N,[`${me}-block`]:oe},W,R,xe);return we(o.createElement("div",{className:ke},o.createElement(l,Object.assign({prefixCls:`${me}-button`,size:ve},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 G=ge=>{const{prefixCls:X,className:W,rootClassName:R,style:N,active:oe}=ge,{getPrefixCls:ve}=o.useContext(s.E_),te=ve("skeleton",X),[me,we]=$(te),xe=t()(te,`${te}-element`,{[`${te}-active`]:oe},W,R,we);return me(o.createElement("div",{className:xe},o.createElement("div",{className:t()(`${te}-image`,W),style:N},o.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${te}-image-svg`},o.createElement("path",{d:le,className:`${te}-image-path`})))))},I=ge=>{const{prefixCls:X,className:W,rootClassName:R,active:N,block:oe,size:ve="default"}=ge,{getPrefixCls:te}=o.useContext(s.E_),me=te("skeleton",X),[we,xe]=$(me),Se=(0,n.Z)(ge,["prefixCls"]),ke=t()(me,`${me}-element`,{[`${me}-active`]:N,[`${me}-block`]:oe},W,R,xe);return we(o.createElement("div",{className:ke},o.createElement(l,Object.assign({prefixCls:`${me}-input`,size:ve},Se))))},H=e(60698),Y={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"},D=Y,_=e(17202),ue=function(X,W){return o.createElement(_.Z,(0,H.Z)({},X,{ref:W,icon:D}))},be=o.forwardRef(ue),he=ge=>{const{prefixCls:X,className:W,rootClassName:R,style:N,active:oe,children:ve}=ge,{getPrefixCls:te}=o.useContext(s.E_),me=te("skeleton",X),[we,xe]=$(me),Se=t()(me,`${me}-element`,{[`${me}-active`]:oe},xe,W,R),ke=ve!=null?ve:o.createElement(be,null);return we(o.createElement("div",{className:Se},o.createElement("div",{className:t()(`${me}-image`,W),style:N},ke)))},Fe=e(29140),et=ge=>{const X=te=>{const{width:me,rows:we=2}=ge;if(Array.isArray(me))return me[te];if(we-1===te)return me},{prefixCls:W,className:R,style:N,rows:oe}=ge,ve=(0,Fe.Z)(Array(oe)).map((te,me)=>o.createElement("li",{key:me,style:{width:X(me)}}));return o.createElement("ul",{className:t()(W,R),style:N},ve)},yt=ge=>{let{prefixCls:X,className:W,width:R,style:N}=ge;return o.createElement("h3",{className:t()(X,W),style:Object.assign({width:R},N)})};function Pt(ge){return ge&&typeof ge=="object"?ge:{}}function bt(ge,X){return ge&&!X?{size:"large",shape:"square"}:{size:"large",shape:"circle"}}function Ct(ge,X){return!ge&&X?{width:"38%"}:ge&&X?{width:"50%"}:{}}function Le(ge,X){const W={};return(!ge||!X)&&(W.width="61%"),!ge&&X?W.rows=3:W.rows=2,W}const Ke=ge=>{const{prefixCls:X,loading:W,className:R,rootClassName:N,style:oe,children:ve,avatar:te=!1,title:me=!0,paragraph:we=!0,active:xe,round:Se}=ge,{getPrefixCls:ke,direction:ne,skeleton:re}=o.useContext(s.E_),se=ke("skeleton",X),[Ee,Re]=$(se);if(W||!("loading"in ge)){const fe=!!te,_e=!!me,Pe=!!we;let ze;if(fe){const ut=Object.assign(Object.assign({prefixCls:`${se}-avatar`},bt(_e,Pe)),Pt(te));ze=o.createElement("div",{className:`${se}-header`},o.createElement(l,Object.assign({},ut)))}let Qe;if(_e||Pe){let ut;if(_e){const qe=Object.assign(Object.assign({prefixCls:`${se}-title`},Ct(fe,Pe)),Pt(me));ut=o.createElement(yt,Object.assign({},qe))}let rt;if(Pe){const qe=Object.assign(Object.assign({prefixCls:`${se}-paragraph`},Le(fe,_e)),Pt(we));rt=o.createElement(et,Object.assign({},qe))}Qe=o.createElement("div",{className:`${se}-content`},ut,rt)}const gt=t()(se,{[`${se}-with-avatar`]:fe,[`${se}-active`]:xe,[`${se}-rtl`]:ne==="rtl",[`${se}-round`]:Se},re==null?void 0:re.className,R,N,Re);return Ee(o.createElement("div",{className:gt,style:Object.assign(Object.assign({},re==null?void 0:re.style),oe)},ze,Qe))}return typeof ve!="undefined"?ve:null};Ke.Button=ee,Ke.Avatar=K,Ke.Input=I,Ke.Image=G,Ke.Node=he;var st=Ke,We=st},94706:function(M,b,e){"use strict";e.d(b,{Z:function(){return R}});var a=e(87608),t=e.n(a),o=e(37734),s=e(29140),n=e(28314),c=e(38790),l=e(58757),d=e(7637),h=e(60409),p=e(60698),y=e(47075),g=e(57370),S=e(29639),j=l.createContext({min:0,max:0,direction:"ltr",step:1,includedStart:0,includedEnd:0,tabIndex:0,keyboard:!0}),x=j;function Z(N,oe,ve){return(N-oe)/(ve-oe)}function B(N,oe,ve,te){var me=Z(oe,ve,te),we={};switch(N){case"rtl":we.right="".concat(me*100,"%"),we.transform="translateX(50%)";break;case"btt":we.bottom="".concat(me*100,"%"),we.transform="translateY(50%)";break;case"ttb":we.top="".concat(me*100,"%"),we.transform="translateY(-50%)";break;default:we.left="".concat(me*100,"%"),we.transform="translateX(-50%)";break}return we}function w(N,oe){return Array.isArray(N)?N[oe]:N}var T=["prefixCls","value","valueIndex","onStartMove","style","render","dragging","onOffsetChange"],F=l.forwardRef(function(N,oe){var ve,te,me=N.prefixCls,we=N.value,xe=N.valueIndex,Se=N.onStartMove,ke=N.style,ne=N.render,re=N.dragging,se=N.onOffsetChange,Ee=(0,y.Z)(N,T),Re=l.useContext(x),fe=Re.min,_e=Re.max,Pe=Re.direction,ze=Re.disabled,Qe=Re.keyboard,gt=Re.range,ut=Re.tabIndex,rt=Re.ariaLabelForHandle,qe=Re.ariaLabelledByForHandle,Ve=Re.ariaValueTextFormatterForHandle,tt="".concat(me,"-handle"),Oe=function(nt){ze||Se(nt,xe)},Me=function(nt){if(!ze&&Qe){var ot=null;switch(nt.which||nt.keyCode){case S.Z.LEFT:ot=Pe==="ltr"||Pe==="btt"?-1:1;break;case S.Z.RIGHT:ot=Pe==="ltr"||Pe==="btt"?1:-1;break;case S.Z.UP:ot=Pe!=="ttb"?1:-1;break;case S.Z.DOWN:ot=Pe!=="ttb"?-1:1;break;case S.Z.HOME:ot="min";break;case S.Z.END:ot="max";break;case S.Z.PAGE_UP:ot=2;break;case S.Z.PAGE_DOWN:ot=-2;break}ot!==null&&(nt.preventDefault(),se(ot,xe))}},Ne=B(Pe,we,fe,_e),Te=l.createElement("div",(0,p.Z)({ref:oe,className:t()(tt,(ve={},(0,o.Z)(ve,"".concat(tt,"-").concat(xe+1),gt),(0,o.Z)(ve,"".concat(tt,"-dragging"),re),ve)),style:(0,g.Z)((0,g.Z)({},Ne),ke),onMouseDown:Oe,onTouchStart:Oe,onKeyDown:Me,tabIndex:ze?null:w(ut,xe),role:"slider","aria-valuemin":fe,"aria-valuemax":_e,"aria-valuenow":we,"aria-disabled":ze,"aria-label":w(rt,xe),"aria-labelledby":w(qe,xe),"aria-valuetext":(te=w(Ve,xe))===null||te===void 0?void 0:te(we)},Ee));return ne&&(Te=ne(Te,{index:xe,prefixCls:me,value:we,dragging:re})),Te}),A=F,L=["prefixCls","style","onStartMove","onOffsetChange","values","handleRender","draggingIndex"],O=l.forwardRef(function(N,oe){var ve=N.prefixCls,te=N.style,me=N.onStartMove,we=N.onOffsetChange,xe=N.values,Se=N.handleRender,ke=N.draggingIndex,ne=(0,y.Z)(N,L),re=l.useRef({});return l.useImperativeHandle(oe,function(){return{focus:function(Ee){var Re;(Re=re.current[Ee])===null||Re===void 0||Re.focus()}}}),l.createElement(l.Fragment,null,xe.map(function(se,Ee){return l.createElement(A,(0,p.Z)({ref:function(fe){fe?re.current[Ee]=fe:delete re.current[Ee]},dragging:ke===Ee,prefixCls:ve,style:w(te,Ee),key:Ee,value:se,valueIndex:Ee,onStartMove:me,onOffsetChange:we,render:Se},ne))}))}),$=O;function P(N){var oe="touches"in N?N.touches[0]:N;return{pageX:oe.pageX,pageY:oe.pageY}}function K(N,oe,ve,te,me,we,xe,Se,ke){var ne=l.useState(null),re=(0,n.Z)(ne,2),se=re[0],Ee=re[1],Re=l.useState(-1),fe=(0,n.Z)(Re,2),_e=fe[0],Pe=fe[1],ze=l.useState(ve),Qe=(0,n.Z)(ze,2),gt=Qe[0],ut=Qe[1],rt=l.useState(ve),qe=(0,n.Z)(rt,2),Ve=qe[0],tt=qe[1],Oe=l.useRef(null),Me=l.useRef(null);l.useEffect(function(){_e===-1&&ut(ve)},[ve,_e]),l.useEffect(function(){return function(){document.removeEventListener("mousemove",Oe.current),document.removeEventListener("mouseup",Me.current),document.removeEventListener("touchmove",Oe.current),document.removeEventListener("touchend",Me.current)}},[]);var Ne=function(Et,nn){gt.some(function($t,fn){return $t!==Et[fn]})&&(nn!==void 0&&Ee(nn),ut(Et),xe(Et))},Te=function(Et,nn){if(Et===-1){var $t=Ve[0],fn=Ve[Ve.length-1],ln=te-$t,Wt=me-fn,$e=nn*(me-te);$e=Math.max($e,ln),$e=Math.min($e,Wt);var De=we($t+$e);$e=De-$t;var jt=Ve.map(function(Bt){return Bt+$e});Ne(jt)}else{var Ft=(me-te)*nn,Xe=(0,s.Z)(gt);Xe[Et]=Ve[Et];var at=ke(Xe,Ft,Et,"dist");Ne(at.values,at.value)}},Be=l.useRef(Te);Be.current=Te;var nt=function(Et,nn){Et.stopPropagation();var $t=ve[nn];Pe(nn),Ee($t),tt(ve);var fn=P(Et),ln=fn.pageX,Wt=fn.pageY,$e=function(Ft){Ft.preventDefault();var Xe=P(Ft),at=Xe.pageX,Bt=Xe.pageY,Zt=at-ln,Qt=Bt-Wt,rn=N.current.getBoundingClientRect(),hn=rn.width,on=rn.height,Rn;switch(oe){case"btt":Rn=-Qt/on;break;case"ttb":Rn=Qt/on;break;case"rtl":Rn=-Zt/hn;break;default:Rn=Zt/hn}Be.current(nn,Rn)},De=function jt(Ft){Ft.preventDefault(),document.removeEventListener("mouseup",jt),document.removeEventListener("mousemove",$e),document.removeEventListener("touchend",jt),document.removeEventListener("touchmove",$e),Oe.current=null,Me.current=null,Pe(-1),Se()};document.addEventListener("mouseup",De),document.addEventListener("mousemove",$e),document.addEventListener("touchend",De),document.addEventListener("touchmove",$e),Oe.current=$e,Me.current=De},ot=l.useMemo(function(){var wt=(0,s.Z)(ve).sort(function(nn,$t){return nn-$t}),Et=(0,s.Z)(gt).sort(function(nn,$t){return nn-$t});return wt.every(function(nn,$t){return nn===Et[$t]})?gt:ve},[ve,gt]);return[_e,se,ot,nt]}function U(N){var oe=N.prefixCls,ve=N.style,te=N.start,me=N.end,we=N.index,xe=N.onStartMove,Se=l.useContext(x),ke=Se.direction,ne=Se.min,re=Se.max,se=Se.disabled,Ee=Se.range,Re="".concat(oe,"-track"),fe=Z(te,ne,re),_e=Z(me,ne,re),Pe=function(gt){!se&&xe&&xe(gt,-1)},ze={};switch(ke){case"rtl":ze.right="".concat(fe*100,"%"),ze.width="".concat(_e*100-fe*100,"%");break;case"btt":ze.bottom="".concat(fe*100,"%"),ze.height="".concat(_e*100-fe*100,"%");break;case"ttb":ze.top="".concat(fe*100,"%"),ze.height="".concat(_e*100-fe*100,"%");break;default:ze.left="".concat(fe*100,"%"),ze.width="".concat(_e*100-fe*100,"%")}return l.createElement("div",{className:t()(Re,Ee&&"".concat(Re,"-").concat(we+1)),style:(0,g.Z)((0,g.Z)({},ze),ve),onMouseDown:Pe,onTouchStart:Pe})}function ee(N){var oe=N.prefixCls,ve=N.style,te=N.values,me=N.startPoint,we=N.onStartMove,xe=l.useContext(x),Se=xe.included,ke=xe.range,ne=xe.min,re=l.useMemo(function(){if(!ke){if(te.length===0)return[];var se=me!=null?me:ne,Ee=te[0];return[{start:Math.min(se,Ee),end:Math.max(se,Ee)}]}for(var Re=[],fe=0;fe3&&arguments[3]!==void 0?arguments[3]:"unit";if(typeof _e=="number"){var Qe,gt=fe[Pe],ut=gt+_e,rt=[];te.forEach(function(Me){rt.push(Me.value)}),rt.push(N,oe),rt.push(Se(gt));var qe=_e>0?1:-1;ze==="unit"?rt.push(Se(gt+qe*ve)):rt.push(Se(ut)),rt=rt.filter(function(Me){return Me!==null}).filter(function(Me){return _e<0?Me<=gt:Me>=gt}),ze==="unit"&&(rt=rt.filter(function(Me){return Me!==gt}));var Ve=ze==="unit"?gt:ut;Qe=rt[0];var tt=Math.abs(Qe-Ve);if(rt.forEach(function(Me){var Ne=Math.abs(Me-Ve);Ne1){var Oe=(0,s.Z)(fe);return Oe[Pe]=Qe,Re(Oe,_e-qe,Pe,ze)}return Qe}else{if(_e==="min")return N;if(_e==="max")return oe}},re=function(fe,_e,Pe){var ze=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"unit",Qe=fe[Pe],gt=ne(fe,_e,Pe,ze);return{value:gt,changed:gt!==Qe}},se=function(fe){return we===null&&fe===0||typeof we=="number"&&fe3&&arguments[3]!==void 0?arguments[3]:"unit",Qe=fe.map(ke),gt=Qe[Pe],ut=ne(Qe,_e,Pe,ze);if(Qe[Pe]=ut,me===!1){var rt=we||0;Pe>0&&Qe[Pe-1]!==gt&&(Qe[Pe]=Math.max(Qe[Pe],Qe[Pe-1]+rt)),Pe0;Oe-=1)for(var Me=!0;se(Qe[Oe]-Qe[Oe-1])&&Me;){var Ne=re(Qe,-1,Oe-1);Qe[Oe-1]=Ne.value,Me=Ne.changed}for(var Te=Qe.length-1;Te>0;Te-=1)for(var Be=!0;se(Qe[Te]-Qe[Te-1])&&Be;){var nt=re(Qe,-1,Te-1);Qe[Te-1]=nt.value,Be=nt.changed}for(var ot=0;ot=0?nt:!1},[nt,zt]),Vt=l.useMemo(function(){var ya=Object.keys(Ft||{});return ya.map(function(vr){var zr=Ft[vr],Oa={value:Number(vr)};return zr&&(0,c.Z)(zr)==="object"&&!l.isValidElement(zr)&&("label"in zr||"style"in zr)?(Oa.style=zr.style,Oa.label=zr.label):Oa.label=zr,Oa}).filter(function(vr){var zr=vr.label;return zr||typeof zr=="number"}).sort(function(vr,zr){return vr.value-zr.value})},[Ft]),dn=I(lr,ur,zt,Vt,Te,Kt),pn=(0,n.Z)(dn,2),en=pn[0],mt=pn[1],pt=(0,h.Z)(rt,{value:ut}),an=(0,n.Z)(pt,2),qt=an[0],Yt=an[1],mn=l.useMemo(function(){var ya=qt==null?[]:Array.isArray(qt)?qt:[qt],vr=(0,n.Z)(ya,1),zr=vr[0],Oa=zr===void 0?lr:zr,va=qt===null?[]:[Oa];if(qe){if(va=(0,s.Z)(ya),Ve||qt===void 0){var Vn=Ve>=0?Ve+1:2;for(va=va.slice(0,Vn);va.length=0&&on.current.focus(ya)}sn(null)},[Nt]);var Cn=l.useMemo(function(){return ot&&zt===null?!1:ot},[ot,zt]),Ln=function(){Me==null||Me(kn(gn.current))},hr=K(Rn,zn,mn,lr,ur,en,tr,Ln,mt),qn=(0,n.Z)(hr,4),Nn=qn[0],$r=qn[1],gr=qn[2],aa=qn[3],Pr=function(vr,zr){aa(vr,zr),Oe==null||Oe(kn(gn.current))},Fn=Nn!==-1;l.useEffect(function(){if(!Fn){var ya=mn.lastIndexOf($r);on.current.focus(ya)}},[Fn]);var En=l.useMemo(function(){return(0,s.Z)(gr).sort(function(ya,vr){return ya-vr})},[gr]),wn=l.useMemo(function(){return qe?[En[0],En[En.length-1]]:[lr,En[0]]},[En,qe,lr]),ar=(0,n.Z)(wn,2),fr=ar[0],Kr=ar[1];l.useImperativeHandle(oe,function(){return{focus:function(){on.current.focus(0)},blur:function(){var vr=document,zr=vr.activeElement;Rn.current.contains(zr)&&(zr==null||zr.blur())}}}),l.useEffect(function(){se&&on.current.focus(0)},[]);var ea=l.useMemo(function(){return{min:lr,max:ur,direction:zn,disabled:ke,keyboard:re,step:zt,included:$t,includedStart:fr,includedEnd:Kr,range:qe,tabIndex:Zt,ariaLabelForHandle:Qt,ariaLabelledByForHandle:rn,ariaValueTextFormatterForHandle:hn}},[lr,ur,zn,ke,re,zt,$t,fr,Kr,qe,Zt,Qt,rn,hn]);return l.createElement(x.Provider,{value:ea},l.createElement("div",{ref:Rn,className:t()(me,we,(ve={},(0,o.Z)(ve,"".concat(me,"-disabled"),ke),(0,o.Z)(ve,"".concat(me,"-vertical"),Et),(0,o.Z)(ve,"".concat(me,"-horizontal"),!Et),(0,o.Z)(ve,"".concat(me,"-with-marks"),Vt.length),ve)),style:xe,onMouseDown:vt},l.createElement("div",{className:"".concat(me,"-rail"),style:$e}),l.createElement(ee,{prefixCls:me,style:ln,values:En,startPoint:fn,onStartMove:Cn?Pr:null}),l.createElement(q,{prefixCls:me,marks:Vt,dots:Xe,style:De,activeStyle:jt}),l.createElement($,{ref:on,prefixCls:me,style:Wt,values:gr,draggingIndex:Nn,onStartMove:Pr,onOffsetChange:Xt,onFocus:Ee,onBlur:Re,handleRender:at}),l.createElement(Q,{prefixCls:me,marks:Vt,onClick:ft})))}),D=Y,_=D,ue=e(61836),be=e(92428),ce=e(61834),he=e(21319),Fe=e(74820),et=l.forwardRef((N,oe)=>{const{open:ve}=N,te=(0,l.useRef)(null),me=(0,l.useRef)(null);function we(){ce.Z.cancel(me.current),me.current=null}function xe(){me.current=(0,ce.Z)(()=>{var Se;(Se=te.current)===null||Se===void 0||Se.forceAlign(),me.current=null})}return l.useEffect(()=>(ve?xe():we(),we),[ve,N.title]),l.createElement(Fe.Z,Object.assign({ref:(0,he.sQ)(te,oe)},N))}),ae=e(66671),yt=e(78330),Pt=e(52628),bt=e(22151);const Ct=N=>{const{componentCls:oe,antCls:ve,controlSize:te,dotSize:me,marginFull:we,marginPart:xe,colorFillContentHover:Se}=N;return{[oe]:Object.assign(Object.assign({},(0,yt.Wf)(N)),{position:"relative",height:te,margin:`${xe}px ${we}px`,padding:0,cursor:"pointer",touchAction:"none",["&-vertical"]:{margin:`${we}px ${xe}px`},[`${oe}-rail`]:{position:"absolute",backgroundColor:N.railBg,borderRadius:N.borderRadiusXS,transition:`background-color ${N.motionDurationMid}`},[`${oe}-track`]:{position:"absolute",backgroundColor:N.trackBg,borderRadius:N.borderRadiusXS,transition:`background-color ${N.motionDurationMid}`},"&:hover":{[`${oe}-rail`]:{backgroundColor:N.railHoverBg},[`${oe}-track`]:{backgroundColor:N.trackHoverBg},[`${oe}-dot`]:{borderColor:Se},[`${oe}-handle::after`]:{boxShadow:`0 0 0 ${N.handleLineWidth}px ${N.colorPrimaryBorderHover}`},[`${oe}-dot-active`]:{borderColor:N.dotActiveBorderColor}},[`${oe}-handle`]:{position:"absolute",width:N.handleSize,height:N.handleSize,outline:"none",[`${oe}-dragging`]:{zIndex:1},"&::before":{content:'""',position:"absolute",insetInlineStart:-N.handleLineWidth,insetBlockStart:-N.handleLineWidth,width:N.handleSize+N.handleLineWidth*2,height:N.handleSize+N.handleLineWidth*2,backgroundColor:"transparent"},"&::after":{content:'""',position:"absolute",insetBlockStart:0,insetInlineStart:0,width:N.handleSize,height:N.handleSize,backgroundColor:N.colorBgElevated,boxShadow:`0 0 0 ${N.handleLineWidth}px ${N.handleColor}`,borderRadius:"50%",cursor:"pointer",transition:` + inset-inline-start ${N.motionDurationMid}, + inset-block-start ${N.motionDurationMid}, + width ${N.motionDurationMid}, + height ${N.motionDurationMid}, + box-shadow ${N.motionDurationMid} + `},"&:hover, &:active, &:focus":{"&::before":{insetInlineStart:-((N.handleSizeHover-N.handleSize)/2+N.handleLineWidthHover),insetBlockStart:-((N.handleSizeHover-N.handleSize)/2+N.handleLineWidthHover),width:N.handleSizeHover+N.handleLineWidthHover*2,height:N.handleSizeHover+N.handleLineWidthHover*2},"&::after":{boxShadow:`0 0 0 ${N.handleLineWidthHover}px ${N.handleActiveColor}`,width:N.handleSizeHover,height:N.handleSizeHover,insetInlineStart:(N.handleSize-N.handleSizeHover)/2,insetBlockStart:(N.handleSize-N.handleSizeHover)/2}}},[`${oe}-mark`]:{position:"absolute",fontSize:N.fontSize},[`${oe}-mark-text`]:{position:"absolute",display:"inline-block",color:N.colorTextDescription,textAlign:"center",wordBreak:"keep-all",cursor:"pointer",userSelect:"none","&-active":{color:N.colorText}},[`${oe}-step`]:{position:"absolute",background:"transparent",pointerEvents:"none"},[`${oe}-dot`]:{position:"absolute",width:me,height:me,backgroundColor:N.colorBgElevated,border:`${N.handleLineWidth}px solid ${N.dotBorderColor}`,borderRadius:"50%",cursor:"pointer",transition:`border-color ${N.motionDurationSlow}`,pointerEvents:"auto","&-active":{borderColor:N.dotActiveBorderColor}},[`&${oe}-disabled`]:{cursor:"not-allowed",[`${oe}-rail`]:{backgroundColor:`${N.railBg} !important`},[`${oe}-track`]:{backgroundColor:`${N.trackBgDisabled} !important`},[` + ${oe}-dot + `]:{backgroundColor:N.colorBgElevated,borderColor:N.trackBgDisabled,boxShadow:"none",cursor:"not-allowed"},[`${oe}-handle::after`]:{backgroundColor:N.colorBgElevated,cursor:"not-allowed",width:N.handleSize,height:N.handleSize,boxShadow:`0 0 0 ${N.handleLineWidth}px ${new ae.C(N.colorTextDisabled).onBackground(N.colorBgContainer).toHexShortString()}`,insetInlineStart:0,insetBlockStart:0},[` + ${oe}-mark-text, + ${oe}-dot + `]:{cursor:"not-allowed !important"}},[`&-tooltip ${ve}-tooltip-inner`]:{minWidth:"unset"}})}},Le=(N,oe)=>{const{componentCls:ve,railSize:te,handleSize:me,dotSize:we}=N,xe=oe?"paddingBlock":"paddingInline",Se=oe?"width":"height",ke=oe?"height":"width",ne=oe?"insetBlockStart":"insetInlineStart",re=oe?"top":"insetInlineStart";return{[xe]:te,[ke]:te*3,[`${ve}-rail`]:{[Se]:"100%",[ke]:te},[`${ve}-track`]:{[ke]:te},[`${ve}-handle`]:{[ne]:(te*3-me)/2},[`${ve}-mark`]:{insetInlineStart:0,top:0,[re]:te*3+(oe?0:N.marginFull),[Se]:"100%"},[`${ve}-step`]:{insetInlineStart:0,top:0,[re]:te,[Se]:"100%",[ke]:te},[`${ve}-dot`]:{position:"absolute",[ne]:(te-we)/2}}},Ke=N=>{const{componentCls:oe,marginPartWithMark:ve}=N;return{[`${oe}-horizontal`]:Object.assign(Object.assign({},Le(N,!0)),{[`&${oe}-with-marks`]:{marginBottom:ve}})}},st=N=>{const{componentCls:oe}=N;return{[`${oe}-vertical`]:Object.assign(Object.assign({},Le(N,!1)),{height:"100%"})}};var We=(0,Pt.Z)("Slider",N=>{const oe=(0,bt.TS)(N,{marginPart:(N.controlHeight-N.controlSize)/2,marginFull:N.controlSize/2,marginPartWithMark:N.controlHeightLG-N.controlSize});return[Ct(oe),Ke(oe),st(oe)]},N=>{const ve=N.controlHeightLG/4,te=N.controlHeightSM/2,me=N.lineWidth+1,we=N.lineWidth+1*3;return{controlSize:ve,railSize:4,handleSize:ve,handleSizeHover:te,dotSize:8,handleLineWidth:me,handleLineWidthHover:we,railBg:N.colorFillTertiary,railHoverBg:N.colorFillSecondary,trackBg:N.colorPrimaryBorder,trackHoverBg:N.colorPrimaryBorderHover,handleColor:N.colorPrimaryBorder,handleActiveColor:N.colorPrimary,dotBorderColor:N.colorBorderSecondary,dotActiveBorderColor:N.colorPrimaryBorder,trackBgDisabled:N.colorBgContainerDisabled}}),ge=function(N,oe){var ve={};for(var te in N)Object.prototype.hasOwnProperty.call(N,te)&&oe.indexOf(te)<0&&(ve[te]=N[te]);if(N!=null&&typeof Object.getOwnPropertySymbols=="function")for(var me=0,te=Object.getOwnPropertySymbols(N);metypeof N=="number"?N.toString():"";var R=l.forwardRef((N,oe)=>{const{prefixCls:ve,range:te,className:me,rootClassName:we,style:xe,disabled:Se,tooltipPrefixCls:ke,tipFormatter:ne,tooltipVisible:re,getTooltipPopupContainer:se,tooltipPlacement:Ee}=N,Re=ge(N,["prefixCls","range","className","rootClassName","style","disabled","tooltipPrefixCls","tipFormatter","tooltipVisible","getTooltipPopupContainer","tooltipPlacement"]),{direction:fe,slider:_e,getPrefixCls:Pe,getPopupContainer:ze}=l.useContext(ue.E_),Qe=l.useContext(be.Z),gt=Se!=null?Se:Qe,[ut,rt]=l.useState({}),qe=(wt,Et)=>{rt(nn=>Object.assign(Object.assign({},nn),{[wt]:Et}))},Ve=(wt,Et)=>wt||(Et?fe==="rtl"?"left":"right":"top"),tt=Pe("slider",ve),[Oe,Me]=We(tt),Ne=t()(me,_e==null?void 0:_e.className,we,{[`${tt}-rtl`]:fe==="rtl"},Me);fe==="rtl"&&!Re.vertical&&(Re.reverse=!Re.reverse);const[Te,Be]=l.useMemo(()=>te?typeof te=="object"?[!0,te.draggableTrack]:[!0,!1]:[!1],[te]),nt=(wt,Et)=>{var nn;const{index:$t,dragging:fn}=Et,{tooltip:ln={},vertical:Wt}=N,$e=Object.assign({},ln),{open:De,placement:jt,getPopupContainer:Ft,prefixCls:Xe,formatter:at}=$e;let Bt;at||at===null?Bt=at:ne||ne===null?Bt=ne:Bt=X;const Zt=Bt?ut[$t]||fn:!1,Qt=(nn=De!=null?De:re)!==null&&nn!==void 0?nn:De===void 0&&Zt,rn=Object.assign(Object.assign({},wt.props),{onMouseEnter:()=>qe($t,!0),onMouseLeave:()=>qe($t,!1)}),hn=Pe("tooltip",Xe!=null?Xe:ke);return l.createElement(et,Object.assign({},$e,{prefixCls:hn,title:Bt?Bt(Et.value):"",open:Qt,placement:Ve(jt!=null?jt:Ee,Wt),key:$t,overlayClassName:`${tt}-tooltip`,getPopupContainer:Ft||se||ze}),l.cloneElement(wt,rn))},ot=Object.assign(Object.assign({},_e==null?void 0:_e.style),xe);return Oe(l.createElement(_,Object.assign({},Re,{step:Re.step,range:Te,draggableTrack:Be,className:Ne,style:ot,disabled:gt,ref:oe,prefixCls:tt,handleRender:nt})))})},43528:function(M,b,e){"use strict";e.d(b,{BR:function(){return y},ri:function(){return p}});var a=e(87608),t=e.n(a),o=e(42156),s=e(58757),n=e(61836),c=e(58785),l=e(21724),d=function(j,x){var Z={};for(var B in j)Object.prototype.hasOwnProperty.call(j,B)&&x.indexOf(B)<0&&(Z[B]=j[B]);if(j!=null&&typeof Object.getOwnPropertySymbols=="function")for(var w=0,B=Object.getOwnPropertySymbols(j);w{const Z=s.useContext(h),B=s.useMemo(()=>{if(!Z)return"";const{compactDirection:w,isFirstItem:T,isLastItem:F}=Z,A=w==="vertical"?"-vertical-":"-";return t()(`${j}-compact${A}item`,{[`${j}-compact${A}first-item`]:T,[`${j}-compact${A}last-item`]:F,[`${j}-compact${A}item-rtl`]:x==="rtl"})},[j,x,Z]);return{compactSize:Z==null?void 0:Z.compactSize,compactDirection:Z==null?void 0:Z.compactDirection,compactItemClassnames:B}},y=j=>{let{children:x}=j;return s.createElement(h.Provider,{value:null},x)},g=j=>{var{children:x}=j,Z=d(j,["children"]);return s.createElement(h.Provider,{value:Z},x)},S=j=>{const{getPrefixCls:x,direction:Z}=s.useContext(n.E_),{size:B,direction:w,block:T,prefixCls:F,className:A,rootClassName:L,children:O}=j,$=d(j,["size","direction","block","prefixCls","className","rootClassName","children"]),P=(0,c.Z)(I=>B!=null?B:I),K=x("space-compact",F),[U,ee]=(0,l.Z)(K),le=t()(K,ee,{[`${K}-rtl`]:Z==="rtl",[`${K}-block`]:T,[`${K}-vertical`]:w==="vertical"},A,L),Q=s.useContext(h),G=(0,o.Z)(O),q=s.useMemo(()=>G.map((I,H)=>{const Y=I&&I.key||`${K}-item-${H}`;return s.createElement(g,{key:Y,compactSize:P,compactDirection:w,isFirstItem:H===0&&(!Q||(Q==null?void 0:Q.isFirstItem)),isLastItem:H===G.length-1&&(!Q||(Q==null?void 0:Q.isLastItem))},I)}),[B,G,Q]);return G.length===0?null:U(s.createElement("div",Object.assign({className:le},$),q))};b.ZP=S},57414:function(M,b,e){"use strict";e.d(b,{Z:function(){return w}});var a=e(87608),t=e.n(a),o=e(42156),s=e(58757),n=e(69387),c=e(61836),l=e(43528);const d=s.createContext({latestIndex:0,horizontalSize:0,verticalSize:0,supportFlexGap:!1}),h=d.Provider;var y=T=>{let{className:F,direction:A,index:L,marginDirection:O,children:$,split:P,wrap:K,style:U}=T;const{horizontalSize:ee,verticalSize:le,latestIndex:Q,supportFlexGap:G}=s.useContext(d);let q={};return G||(A==="vertical"?L{var A,L;const{getPrefixCls:O,space:$,direction:P}=s.useContext(c.E_),{size:K=($==null?void 0:$.size)||"small",align:U,className:ee,rootClassName:le,children:Q,direction:G="horizontal",prefixCls:q,split:I,style:H,wrap:Y=!1,classNames:D,styles:_}=T,ue=S(T,["size","align","className","rootClassName","children","direction","prefixCls","split","style","wrap","classNames","styles"]),be=(0,n.Z)(),[ce,he]=s.useMemo(()=>(Array.isArray(K)?K:[K,K]).map(ge=>x(ge)),[K]),Fe=(0,o.Z)(Q,{keepEmpty:!0}),Je=U===void 0&&G==="horizontal"?"center":U,et=O("space",q),[ae,yt]=(0,g.Z)(et),Pt=t()(et,$==null?void 0:$.className,yt,`${et}-${G}`,{[`${et}-rtl`]:P==="rtl",[`${et}-align-${Je}`]:Je},ee,le),bt=t()(`${et}-item`,(A=D==null?void 0:D.item)!==null&&A!==void 0?A:(L=$==null?void 0:$.classNames)===null||L===void 0?void 0:L.item),Ct=P==="rtl"?"marginLeft":"marginRight";let Le=0;const Ke=Fe.map((ge,X)=>{var W,R;ge!=null&&(Le=X);const N=ge&&ge.key||`${bt}-${X}`;return s.createElement(y,{className:bt,key:N,direction:G,index:X,marginDirection:Ct,split:I,wrap:Y,style:(W=_==null?void 0:_.item)!==null&&W!==void 0?W:(R=$==null?void 0:$.styles)===null||R===void 0?void 0:R.item},ge)}),st=s.useMemo(()=>({horizontalSize:ce,verticalSize:he,latestIndex:Le,supportFlexGap:be}),[ce,he,Le,be]);if(Fe.length===0)return null;const We={};return Y&&(We.flexWrap="wrap",be||(We.marginBottom=-he)),be&&(We.columnGap=ce,We.rowGap=he),ae(s.createElement("div",Object.assign({ref:F,className:Pt,style:Object.assign(Object.assign(Object.assign({},We),$==null?void 0:$.style),H)},ue),s.createElement(h,{value:st},Ke)))});B.Compact=l.ZP;var w=B},21724:function(M,b,e){"use strict";e.d(b,{Z:function(){return n}});var a=e(52628),o=c=>{const{componentCls:l}=c;return{[l]:{"&-block":{display:"flex",width:"100%"},"&-vertical":{flexDirection:"column"}}}};const s=c=>{const{componentCls:l}=c;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",c=>[s(c),o(c)],()=>({}),{resetStyle:!1})},79233:function(M,b,e){"use strict";e.d(b,{Z:function(){return O}});var a=e(87608),t=e.n(a),o=e(98186),s=e(58757),n=e(70989),c=e(37047),l=e(61836),d=e(57793),h=e(78330),p=e(52628),y=e(22151);const g=new d.E4("antSpinMove",{to:{opacity:1}}),S=new d.E4("antRotate",{to:{transform:"rotate(405deg)"}}),j=$=>({[`${$.componentCls}`]:Object.assign(Object.assign({},(0,h.Wf)($)),{position:"absolute",display:"none",color:$.colorPrimary,fontSize:0,textAlign:"center",verticalAlign:"middle",opacity:0,transition:`transform ${$.motionDurationSlow} ${$.motionEaseInOutCirc}`,"&-spinning":{position:"static",display:"inline-block",opacity:1},"&-nested-loading":{position:"relative",[`> div > ${$.componentCls}`]:{position:"absolute",top:0,insetInlineStart:0,zIndex:4,display:"block",width:"100%",height:"100%",maxHeight:$.contentHeight,[`${$.componentCls}-dot`]:{position:"absolute",top:"50%",insetInlineStart:"50%",margin:-$.spinDotSize/2},[`${$.componentCls}-text`]:{position:"absolute",top:"50%",width:"100%",paddingTop:($.spinDotSize-$.fontSize)/2+2,textShadow:`0 1px 2px ${$.colorBgContainer}`,fontSize:$.fontSize},[`&${$.componentCls}-show-text ${$.componentCls}-dot`]:{marginTop:-($.spinDotSize/2)-10},"&-sm":{[`${$.componentCls}-dot`]:{margin:-$.spinDotSizeSM/2},[`${$.componentCls}-text`]:{paddingTop:($.spinDotSizeSM-$.fontSize)/2+2},[`&${$.componentCls}-show-text ${$.componentCls}-dot`]:{marginTop:-($.spinDotSizeSM/2)-10}},"&-lg":{[`${$.componentCls}-dot`]:{margin:-($.spinDotSizeLG/2)},[`${$.componentCls}-text`]:{paddingTop:($.spinDotSizeLG-$.fontSize)/2+2},[`&${$.componentCls}-show-text ${$.componentCls}-dot`]:{marginTop:-($.spinDotSizeLG/2)-10}}},[`${$.componentCls}-container`]:{position:"relative",transition:`opacity ${$.motionDurationSlow}`,"&::after":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:"100%",height:"100%",background:$.colorBgContainer,opacity:0,transition:`all ${$.motionDurationSlow}`,content:'""',pointerEvents:"none"}},[`${$.componentCls}-blur`]:{clear:"both",opacity:.5,userSelect:"none",pointerEvents:"none",["&::after"]:{opacity:.4,pointerEvents:"auto"}}},["&-tip"]:{color:$.spinDotDefault},[`${$.componentCls}-dot`]:{position:"relative",display:"inline-block",fontSize:$.spinDotSize,width:"1em",height:"1em","&-item":{position:"absolute",display:"block",width:($.spinDotSize-$.marginXXS/2)/2,height:($.spinDotSize-$.marginXXS/2)/2,backgroundColor:$.colorPrimary,borderRadius:"100%",transform:"scale(0.75)",transformOrigin:"50% 50%",opacity:.3,animationName:g,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 ${$.componentCls}-dot`]:{fontSize:$.spinDotSizeSM,i:{width:($.spinDotSizeSM-$.marginXXS/2)/2,height:($.spinDotSizeSM-$.marginXXS/2)/2}},[`&-lg ${$.componentCls}-dot`]:{fontSize:$.spinDotSizeLG,i:{width:($.spinDotSizeLG-$.marginXXS)/2,height:($.spinDotSizeLG-$.marginXXS)/2}},[`&${$.componentCls}-show-text ${$.componentCls}-text`]:{display:"block"}})});var x=(0,p.Z)("Spin",$=>{const P=(0,y.TS)($,{spinDotDefault:$.colorTextDescription,spinDotSize:$.controlHeightLG/2,spinDotSizeSM:$.controlHeightLG*.35,spinDotSizeLG:$.controlHeight});return[j(P)]},{contentHeight:400}),Z=function($,P){var K={};for(var U in $)Object.prototype.hasOwnProperty.call($,U)&&P.indexOf(U)<0&&(K[U]=$[U]);if($!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ee=0,U=Object.getOwnPropertySymbols($);ee{const{spinPrefixCls:P,spinning:K=!0,delay:U=0,className:ee,rootClassName:le,size:Q="default",tip:G,wrapperClassName:q,style:I,children:H,hashId:Y}=$,D=Z($,["spinPrefixCls","spinning","delay","className","rootClassName","size","tip","wrapperClassName","style","children","hashId"]),[_,ue]=s.useState(()=>K&&!F(K,U));s.useEffect(()=>{if(K){const Pt=(0,n.D)(U,()=>{ue(!0)});return Pt(),()=>{var bt;(bt=Pt==null?void 0:Pt.cancel)===null||bt===void 0||bt.call(Pt)}}ue(!1)},[U,K]);const be=s.useMemo(()=>typeof H!="undefined",[H]),{direction:ce,spin:he}=s.useContext(l.E_),Fe=t()(P,he==null?void 0:he.className,{[`${P}-sm`]:Q==="small",[`${P}-lg`]:Q==="large",[`${P}-spinning`]:_,[`${P}-show-text`]:!!G,[`${P}-rtl`]:ce==="rtl"},ee,le,Y),Je=t()(`${P}-container`,{[`${P}-blur`]:_}),et=(0,o.Z)(D,["indicator","prefixCls"]),ae=Object.assign(Object.assign({},he==null?void 0:he.style),I),yt=s.createElement("div",Object.assign({},et,{style:ae,className:Fe,"aria-live":"polite","aria-busy":_}),T(P,$),G&&be?s.createElement("div",{className:`${P}-text`},G):null);return be?s.createElement("div",Object.assign({},et,{className:t()(`${P}-nested-loading`,q,Y)}),_&&s.createElement("div",{key:"loading"},yt),s.createElement("div",{className:Je,key:"container"},H)):yt},L=$=>{const{prefixCls:P}=$,{getPrefixCls:K}=s.useContext(l.E_),U=K("spin",P),[ee,le]=x(U),Q=Object.assign(Object.assign({},$),{spinPrefixCls:U,hashId:le});return ee(s.createElement(A,Object.assign({},Q)))};L.setDefaultIndicator=$=>{w=$};var O=L},64493:function(M,b,e){"use strict";e.d(b,{c:function(){return o}});function a(s,n,c){const{focusElCls:l,focus:d,borderElCls:h}=c,p=h?"> *":"",y=["hover",d?"focus":null,"active"].filter(Boolean).map(g=>`&:${g} ${p}`).join(",");return{[`&-item:not(${n}-last-item)`]:{marginInlineEnd:-s.lineWidth},"&-item":Object.assign(Object.assign({[y]:{zIndex:2}},l?{[`&${l}`]:{zIndex:2}}:{}),{[`&[disabled] ${p}`]:{zIndex:0}})}}function t(s,n,c){const{borderElCls:l}=c,d=l?`> ${l}`:"";return{[`&-item:not(${n}-first-item):not(${n}-last-item) ${d}`]:{borderRadius:0},[`&-item:not(${n}-last-item)${n}-first-item`]:{[`& ${d}, &${s}-sm ${d}, &${s}-lg ${d}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${n}-first-item)${n}-last-item`]:{[`& ${d}, &${s}-sm ${d}, &${s}-lg ${d}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}function o(s){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{focus:!0};const{componentCls:c}=s,l=`${c}-compact`;return{[l]:Object.assign(Object.assign({},a(s,l,n)),t(c,l,n))}}},78330:function(M,b,e){"use strict";e.d(b,{Lx:function(){return n},Qy:function(){return d},Ro:function(){return o},Wf:function(){return t},dF:function(){return s},du:function(){return c},oN:function(){return l},vS:function(){return a}});const a={overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},t=h=>({boxSizing:"border-box",margin:0,padding:0,color:h.colorText,fontSize:h.fontSize,lineHeight:h.lineHeight,listStyle:"none",fontFamily:h.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=h=>({a:{color:h.colorLink,textDecoration:h.linkDecoration,backgroundColor:"transparent",outline:"none",cursor:"pointer",transition:`color ${h.motionDurationSlow}`,"-webkit-text-decoration-skip":"objects","&:hover":{color:h.colorLinkHover},"&:active":{color:h.colorLinkActive},[`&:active, + &:hover`]:{textDecoration:h.linkHoverDecoration,outline:0},"&:focus":{textDecoration:h.linkFocusDecoration,outline:0},"&[disabled]":{color:h.colorTextDisabled,cursor:"not-allowed"}}}),c=(h,p)=>{const{fontFamily:y,fontSize:g}=h,S=`[class^="${p}"], [class*=" ${p}"]`;return{[S]:{fontFamily:y,fontSize:g,boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"},[S]:{boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"}}}}},l=h=>({outline:`${h.lineWidthFocus}px solid ${h.colorPrimaryBorder}`,outlineOffset:1,transition:"outline-offset 0s, outline 0s"}),d=h=>({"&:focus-visible":Object.assign({},l(h))})},41086:function(M,b){"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`}}});b.Z=e},7239:function(M,b,e){"use strict";e.d(b,{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(c){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const{antCls:d}=c,h=`${d}-fade`,p=l?"&":"";return[(0,t.R)(h,o,s,c.motionDurationMid,l),{[` + ${p}${h}-enter, + ${p}${h}-appear + `]:{opacity:0,animationTimingFunction:"linear"},[`${p}${h}-leave`]:{animationTimingFunction:"linear"}}]}},85745:function(M,b,e){"use strict";e.d(b,{R:function(){return o}});const a=s=>({animationDuration:s,animationFillMode:"both"}),t=s=>({animationDuration:s,animationFillMode:"both"}),o=function(s,n,c,l){const h=(arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1)?"&":"";return{[` + ${h}${s}-enter, + ${h}${s}-appear + `]:Object.assign(Object.assign({},a(l)),{animationPlayState:"paused"}),[`${h}${s}-leave`]:Object.assign(Object.assign({},t(l)),{animationPlayState:"paused"}),[` + ${h}${s}-enter${s}-enter-active, + ${h}${s}-appear${s}-appear-active + `]:{animationName:n,animationPlayState:"running"},[`${h}${s}-leave${s}-leave-active`]:{animationName:c,animationPlayState:"running",pointerEvents:"none"}}}},1546:function(M,b,e){"use strict";e.d(b,{Fm:function(){return g}});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}}),c=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}}),d=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}}),h=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}}),p=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}}),y={"move-up":{inKeyframes:h,outKeyframes:p},"move-down":{inKeyframes:o,outKeyframes:s},"move-left":{inKeyframes:n,outKeyframes:c},"move-right":{inKeyframes:l,outKeyframes:d}},g=(S,j)=>{const{antCls:x}=S,Z=`${x}-${j}`,{inKeyframes:B,outKeyframes:w}=y[j];return[(0,t.R)(Z,B,w,S.motionDurationMid),{[` + ${Z}-enter, + ${Z}-appear + `]:{opacity:0,animationTimingFunction:S.motionEaseOutCirc},[`${Z}-leave`]:{animationTimingFunction:S.motionEaseInOutCirc}}]}},1016:function(M,b,e){"use strict";e.d(b,{Qt:function(){return n},Uw:function(){return s},fJ:function(){return o},ly:function(){return c},oN:function(){return g}});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}}),c=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}}),d=new a.E4("antSlideLeftOut",{"0%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0}}),h=new a.E4("antSlideRightIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1}}),p=new a.E4("antSlideRightOut",{"0%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0}}),y={"slide-up":{inKeyframes:o,outKeyframes:s},"slide-down":{inKeyframes:n,outKeyframes:c},"slide-left":{inKeyframes:l,outKeyframes:d},"slide-right":{inKeyframes:h,outKeyframes:p}},g=(S,j)=>{const{antCls:x}=S,Z=`${x}-${j}`,{inKeyframes:B,outKeyframes:w}=y[j];return[(0,t.R)(Z,B,w,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(M,b,e){"use strict";e.d(b,{_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}}),c=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%"}}),d=new a.E4("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),h=new a.E4("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),p=new a.E4("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}}),y=new a.E4("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),g=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%"}}),j=new a.E4("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}}),x={zoom:{inKeyframes:o,outKeyframes:s},"zoom-big":{inKeyframes:n,outKeyframes:c},"zoom-big-fast":{inKeyframes:n,outKeyframes:c},"zoom-left":{inKeyframes:h,outKeyframes:p},"zoom-right":{inKeyframes:y,outKeyframes:g},"zoom-up":{inKeyframes:l,outKeyframes:d},"zoom-down":{inKeyframes:S,outKeyframes:j}},Z=(B,w)=>{const{antCls:T}=B,F=`${T}-${w}`,{inKeyframes:A,outKeyframes:L}=x[w];return[(0,t.R)(F,A,L,w==="zoom-big-fast"?B.motionDurationFast:B.motionDurationMid),{[` + ${F}-enter, + ${F}-appear + `]:{transform:"scale(0)",opacity:0,animationTimingFunction:B.motionEaseOutCirc,"&-prepare":{transform:"none"}},[`${F}-leave`]:{animationTimingFunction:B.motionEaseInOutCirc}}]}},24542:function(M,b,e){"use strict";e.d(b,{ZP:function(){return n},fS:function(){return o},qN:function(){return t}});var a=e(72944);const t=8;function o(c){const l=t,{contentRadius:d,limitVerticalRadius:h}=c,p=d>12?d+2:12;return{dropdownArrowOffset:p,dropdownArrowOffsetVertical:h?l:p}}function s(c,l){return c?l:{}}function n(c,l){const{componentCls:d,sizePopupArrow:h,borderRadiusXS:p,borderRadiusOuter:y,boxShadowPopoverArrow:g}=c,{colorBg:S,contentRadius:j=c.borderRadiusLG,limitVerticalRadius:x,arrowDistance:Z=0,arrowPlacement:B={left:!0,right:!0,top:!0,bottom:!0}}=l,{dropdownArrowOffsetVertical:w,dropdownArrowOffset:T}=o({contentRadius:j,limitVerticalRadius:x});return{[d]:Object.assign(Object.assign(Object.assign(Object.assign({[`${d}-arrow`]:[Object.assign(Object.assign({position:"absolute",zIndex:1,display:"block"},(0,a.r)(h,p,y,S,g)),{"&:before":{background:S}})]},s(!!B.top,{[[`&-placement-top ${d}-arrow`,`&-placement-topLeft ${d}-arrow`,`&-placement-topRight ${d}-arrow`].join(",")]:{bottom:Z,transform:"translateY(100%) rotate(180deg)"},[`&-placement-top ${d}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(100%) rotate(180deg)"},[`&-placement-topLeft ${d}-arrow`]:{left:{_skip_check_:!0,value:T}},[`&-placement-topRight ${d}-arrow`]:{right:{_skip_check_:!0,value:T}}})),s(!!B.bottom,{[[`&-placement-bottom ${d}-arrow`,`&-placement-bottomLeft ${d}-arrow`,`&-placement-bottomRight ${d}-arrow`].join(",")]:{top:Z,transform:"translateY(-100%)"},[`&-placement-bottom ${d}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(-100%)"},[`&-placement-bottomLeft ${d}-arrow`]:{left:{_skip_check_:!0,value:T}},[`&-placement-bottomRight ${d}-arrow`]:{right:{_skip_check_:!0,value:T}}})),s(!!B.left,{[[`&-placement-left ${d}-arrow`,`&-placement-leftTop ${d}-arrow`,`&-placement-leftBottom ${d}-arrow`].join(",")]:{right:{_skip_check_:!0,value:Z},transform:"translateX(100%) rotate(90deg)"},[`&-placement-left ${d}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(100%) rotate(90deg)"},[`&-placement-leftTop ${d}-arrow`]:{top:w},[`&-placement-leftBottom ${d}-arrow`]:{bottom:w}})),s(!!B.right,{[[`&-placement-right ${d}-arrow`,`&-placement-rightTop ${d}-arrow`,`&-placement-rightBottom ${d}-arrow`].join(",")]:{left:{_skip_check_:!0,value:Z},transform:"translateX(-100%) rotate(-90deg)"},[`&-placement-right ${d}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(-100%) rotate(-90deg)"},[`&-placement-rightTop ${d}-arrow`]:{top:w},[`&-placement-rightBottom ${d}-arrow`]:{bottom:w}}))}}},72944:function(M,b,e){"use strict";e.d(b,{r:function(){return a}});const a=(t,o,s,n,c)=>{const l=t/2,d=0,h=l,p=s*1/Math.sqrt(2),y=l-s*(1-1/Math.sqrt(2)),g=l-o*(1/Math.sqrt(2)),S=s*(Math.sqrt(2)-1)+o*(1/Math.sqrt(2)),j=2*l-g,x=S,Z=2*l-p,B=y,w=2*l-d,T=h,F=l*Math.sqrt(2)+s*(Math.sqrt(2)-2),A=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(${A}px 100%, 50% ${A}px, ${2*l-A}px 100%, ${A}px 100%)`,`path('M ${d} ${h} A ${s} ${s} 0 0 0 ${p} ${y} L ${g} ${S} A ${o} ${o} 0 0 1 ${j} ${x} L ${Z} ${B} A ${s} ${s} 0 0 0 ${w} ${T} Z')`]},content:'""'},"&::after":{content:'""',position:"absolute",width:F,height:F,bottom:0,insetInline:0,margin:"auto",borderRadius:{_skip_check_:!0,value:`0 0 ${o}px 0`},transform:"translateY(50%) rotate(-135deg)",boxShadow:c,zIndex:0,background:"transparent"}}}},16951:function(M,b,e){"use strict";e.d(b,{Z:function(){return Wt}});var a=e(52495),t=e(18974),o=e(12673),s=e(87608),n=e.n(s),c=e(60698),l=e(37734),d=e(57370),h=e(28314),p=e(38790),y=e(47075),g=e(58757),S=e(21618),j=e(60409),x=e(17598),Z=(0,g.createContext)(null),B=g.forwardRef(function($e,De){var jt=$e.prefixCls,Ft=$e.className,Xe=$e.style,at=$e.id,Bt=$e.active,Zt=$e.tabKey,Qt=$e.children;return g.createElement("div",{id:at&&"".concat(at,"-panel-").concat(Zt),role:"tabpanel",tabIndex:Bt?0:-1,"aria-labelledby":at&&"".concat(at,"-tab-").concat(Zt),"aria-hidden":!Bt,style:Xe,className:n()(jt,Bt&&"".concat(jt,"-active"),Ft),ref:De},Qt)}),w=B,T=["key","forceRender","style","className"];function F($e){var De=$e.id,jt=$e.activeKey,Ft=$e.animated,Xe=$e.tabPosition,at=$e.destroyInactiveTabPane,Bt=g.useContext(Z),Zt=Bt.prefixCls,Qt=Bt.tabs,rn=Ft.tabPane,hn="".concat(Zt,"-tabpane");return g.createElement("div",{className:n()("".concat(Zt,"-content-holder"))},g.createElement("div",{className:n()("".concat(Zt,"-content"),"".concat(Zt,"-content-").concat(Xe),(0,l.Z)({},"".concat(Zt,"-content-animated"),rn))},Qt.map(function(on){var Rn=on.key,zn=on.forceRender,lr=on.style,ur=on.className,zt=(0,y.Z)(on,T),Kt=Rn===jt;return g.createElement(x.ZP,(0,c.Z)({key:Rn,visible:Kt,forceRender:zn,removeOnLeave:!!at,leavedClassName:"".concat(hn,"-hidden")},Ft.tabPaneMotion),function(Vt,dn){var pn=Vt.style,en=Vt.className;return g.createElement(w,(0,c.Z)({},zt,{prefixCls:hn,id:De,tabKey:Rn,animated:rn,active:Kt,style:(0,d.Z)((0,d.Z)({},lr),pn),className:n()(ur,en),ref:dn}))})})))}var A=e(29140),L=e(19425),O=e(51729),$=e(61834),P=e(21319),K={width:0,height:0,left:0,top:0};function U($e,De,jt){return(0,g.useMemo)(function(){for(var Ft,Xe=new Map,at=De.get((Ft=$e[0])===null||Ft===void 0?void 0:Ft.key)||K,Bt=at.left+at.width,Zt=0;Zt<$e.length;Zt+=1){var Qt=$e[Zt].key,rn=De.get(Qt);if(!rn){var hn;rn=De.get((hn=$e[Zt-1])===null||hn===void 0?void 0:hn.key)||K}var on=Xe.get(Qt)||(0,d.Z)({},rn);on.right=Bt-on.left-on.width,Xe.set(Qt,on)}return Xe},[$e.map(function(Ft){return Ft.key}).join("_"),De,jt])}function ee($e,De){var jt=g.useRef($e),Ft=g.useState({}),Xe=(0,h.Z)(Ft,2),at=Xe[1];function Bt(Zt){var Qt=typeof Zt=="function"?Zt(jt.current):Zt;Qt!==jt.current&&De(Qt,jt.current),jt.current=Qt,at({})}return[jt.current,Bt]}var le=.1,Q=.01,G=20,q=Math.pow(.995,G);function I($e,De){var jt=(0,g.useState)(),Ft=(0,h.Z)(jt,2),Xe=Ft[0],at=Ft[1],Bt=(0,g.useState)(0),Zt=(0,h.Z)(Bt,2),Qt=Zt[0],rn=Zt[1],hn=(0,g.useState)(0),on=(0,h.Z)(hn,2),Rn=on[0],zn=on[1],lr=(0,g.useState)(),ur=(0,h.Z)(lr,2),zt=ur[0],Kt=ur[1],Vt=(0,g.useRef)();function dn(qt){var Yt=qt.touches[0],mn=Yt.screenX,gn=Yt.screenY;at({x:mn,y:gn}),window.clearInterval(Vt.current)}function pn(qt){if(Xe){qt.preventDefault();var Yt=qt.touches[0],mn=Yt.screenX,gn=Yt.screenY;at({x:mn,y:gn});var kn=mn-Xe.x,tr=gn-Xe.y;De(kn,tr);var ft=Date.now();rn(ft),zn(ft-Qt),Kt({x:kn,y:tr})}}function en(){if(Xe&&(at(null),Kt(null),zt)){var qt=zt.x/Rn,Yt=zt.y/Rn,mn=Math.abs(qt),gn=Math.abs(Yt);if(Math.max(mn,gn)tr?(gn=Yt,mt.current="x"):(gn=mn,mt.current="y"),De(-gn,-gn)&&qt.preventDefault()}var an=(0,g.useRef)(null);an.current={onTouchStart:dn,onTouchMove:pn,onTouchEnd:en,onWheel:pt},g.useEffect(function(){function qt(kn){an.current.onTouchStart(kn)}function Yt(kn){an.current.onTouchMove(kn)}function mn(kn){an.current.onTouchEnd(kn)}function gn(kn){an.current.onWheel(kn)}return document.addEventListener("touchmove",Yt,{passive:!1}),document.addEventListener("touchend",mn,{passive:!1}),$e.current.addEventListener("touchstart",qt,{passive:!1}),$e.current.addEventListener("wheel",gn),function(){document.removeEventListener("touchmove",Yt),document.removeEventListener("touchend",mn)}},[])}var H=e(81334);function Y($e){var De=(0,g.useState)(0),jt=(0,h.Z)(De,2),Ft=jt[0],Xe=jt[1],at=(0,g.useRef)(0),Bt=(0,g.useRef)();return Bt.current=$e,(0,H.o)(function(){var Zt;(Zt=Bt.current)===null||Zt===void 0||Zt.call(Bt)},[Ft]),function(){at.current===Ft&&(at.current+=1,Xe(at.current))}}function D($e){var De=(0,g.useRef)([]),jt=(0,g.useState)({}),Ft=(0,h.Z)(jt,2),Xe=Ft[1],at=(0,g.useRef)(typeof $e=="function"?$e():$e),Bt=Y(function(){var Qt=at.current;De.current.forEach(function(rn){Qt=rn(Qt)}),De.current=[],at.current=Qt,Xe({})});function Zt(Qt){De.current.push(Qt),Bt()}return[at.current,Zt]}var _={width:0,height:0,left:0,top:0,right:0};function ue($e,De,jt,Ft,Xe,at,Bt){var Zt=Bt.tabs,Qt=Bt.tabPosition,rn=Bt.rtl,hn,on,Rn;return["top","bottom"].includes(Qt)?(hn="width",on=rn?"right":"left",Rn=Math.abs(jt)):(hn="height",on="top",Rn=-jt),(0,g.useMemo)(function(){if(!Zt.length)return[0,0];for(var zn=Zt.length,lr=zn,ur=0;urRn+De){lr=ur-1;break}}for(var Kt=0,Vt=zn-1;Vt>=0;Vt-=1){var dn=$e.get(Zt[Vt].key)||_;if(dn[on]=lr?[0,0]:[Kt,lr]},[$e,De,Ft,Xe,at,Rn,Qt,Zt.map(function(zn){return zn.key}).join("_"),rn])}function be($e){var De;return $e instanceof Map?(De={},$e.forEach(function(jt,Ft){De[Ft]=jt})):De=$e,JSON.stringify(De)}var ce="TABS_DQ";function he($e){return String($e).replace(/"/g,ce)}function Fe($e,De,jt,Ft){return!(!jt||Ft||$e===!1||$e===void 0&&(De===!1||De===null))}function Je($e,De){var jt=$e.prefixCls,Ft=$e.editable,Xe=$e.locale,at=$e.style;return!Ft||Ft.showAdd===!1?null:g.createElement("button",{ref:De,type:"button",className:"".concat(jt,"-nav-add"),style:at,"aria-label":(Xe==null?void 0:Xe.addAriaLabel)||"Add tab",onClick:function(Zt){Ft.onEdit("add",{event:Zt})}},Ft.addIcon||"+")}var et=g.forwardRef(Je),ae=g.forwardRef(function($e,De){var jt=$e.position,Ft=$e.prefixCls,Xe=$e.extra;if(!Xe)return null;var at,Bt={};return(0,p.Z)(Xe)==="object"&&!g.isValidElement(Xe)?Bt=Xe:Bt.right=Xe,jt==="right"&&(at=Bt.right),jt==="left"&&(at=Bt.left),at?g.createElement("div",{className:"".concat(Ft,"-extra-content"),ref:De},at):null}),yt=ae,Pt=e(4933),bt=e(87854),Ct=e(29639);function Le($e,De){var jt=$e.prefixCls,Ft=$e.id,Xe=$e.tabs,at=$e.locale,Bt=$e.mobile,Zt=$e.moreIcon,Qt=Zt===void 0?"More":Zt,rn=$e.moreTransitionName,hn=$e.style,on=$e.className,Rn=$e.editable,zn=$e.tabBarGutter,lr=$e.rtl,ur=$e.removeAriaLabel,zt=$e.onTabClick,Kt=$e.getPopupContainer,Vt=$e.popupClassName,dn=(0,g.useState)(!1),pn=(0,h.Z)(dn,2),en=pn[0],mt=pn[1],pt=(0,g.useState)(null),an=(0,h.Z)(pt,2),qt=an[0],Yt=an[1],mn="".concat(Ft,"-more-popup"),gn="".concat(jt,"-dropdown"),kn=qt!==null?"".concat(mn,"-").concat(qt):null,tr=at==null?void 0:at.dropdownAriaLabel;function ft(Cn,Ln){Cn.preventDefault(),Cn.stopPropagation(),Rn.onEdit("remove",{key:Ln,event:Cn})}var vt=g.createElement(bt.ZP,{onClick:function(Ln){var hr=Ln.key,qn=Ln.domEvent;zt(hr,qn),mt(!1)},prefixCls:"".concat(gn,"-menu"),id:mn,tabIndex:-1,role:"listbox","aria-activedescendant":kn,selectedKeys:[qt],"aria-label":tr!==void 0?tr:"expanded dropdown"},Xe.map(function(Cn){var Ln=Cn.closable,hr=Cn.disabled,qn=Cn.closeIcon,Nn=Cn.key,$r=Cn.label,gr=Fe(Ln,qn,Rn,hr);return g.createElement(bt.sN,{key:Nn,id:"".concat(mn,"-").concat(Nn),role:"option","aria-controls":Ft&&"".concat(Ft,"-panel-").concat(Nn),disabled:hr},g.createElement("span",null,$r),gr&&g.createElement("button",{type:"button","aria-label":ur||"remove",tabIndex:0,className:"".concat(gn,"-menu-item-remove"),onClick:function(Pr){Pr.stopPropagation(),ft(Pr,Nn)}},qn||Rn.removeIcon||"\xD7"))}));function St(Cn){for(var Ln=Xe.filter(function(gr){return!gr.disabled}),hr=Ln.findIndex(function(gr){return gr.key===qt})||0,qn=Ln.length,Nn=0;NnJr?"left":"right"})}),kn=(0,h.Z)(gn,2),tr=kn[0],ft=kn[1],vt=ee(0,function(Hr,Jr){!mn&&dn&&dn({direction:Hr>Jr?"top":"bottom"})}),St=(0,h.Z)(vt,2),Mt=St[0],Nt=St[1],sn=(0,g.useState)([0,0]),Xt=(0,h.Z)(sn,2),Cn=Xt[0],Ln=Xt[1],hr=(0,g.useState)([0,0]),qn=(0,h.Z)(hr,2),Nn=qn[0],$r=qn[1],gr=(0,g.useState)([0,0]),aa=(0,h.Z)(gr,2),Pr=aa[0],Fn=aa[1],En=(0,g.useState)([0,0]),wn=(0,h.Z)(En,2),ar=wn[0],fr=wn[1],Kr=D(new Map),ea=(0,h.Z)(Kr,2),ya=ea[0],vr=ea[1],zr=U(at,ya,Nn[0]),Oa=X(Cn,mn),va=X(Nn,mn),Vn=X(Pr,mn),Bn=X(ar,mn),pr=Oatn?tn:Hr}var lo=(0,g.useRef)(),Ao=(0,g.useState)(),Ka=(0,h.Z)(Ao,2),Qa=Ka[0],qa=Ka[1];function $o(){qa(Date.now())}function _o(){window.clearTimeout(lo.current)}I(pt,function(Hr,Jr){function ir(Wr,ua){Wr(function(Na){var wa=yn(Na+ua);return wa})}return pr?(mn?ir(ft,Hr):ir(Nt,Jr),_o(),$o(),!0):!1}),(0,g.useEffect)(function(){return _o(),Qa&&(lo.current=window.setTimeout(function(){qa(0)},100)),_o},[Qa]);var yo=ue(zr,qr,mn?tr:Mt,va,Vn,Bn,(0,d.Z)((0,d.Z)({},$e),{},{tabs:at})),ct=(0,h.Z)(yo,2),xt=ct[0],Ce=ct[1],un=(0,O.Z)(function(){var Hr=arguments.length>0&&arguments[0]!==void 0?arguments[0]:hn,Jr=zr.get(Hr)||{width:0,height:0,left:0,right:0,top:0};if(mn){var ir=tr;on?Jr.righttr+qr&&(ir=Jr.right+Jr.width-qr):Jr.left<-tr?ir=-Jr.left:Jr.left+Jr.width>-tr+qr&&(ir=-(Jr.left+Jr.width-qr)),Nt(0),ft(yn(ir))}else{var Wr=Mt;Jr.top<-Mt?Wr=-Jr.top:Jr.top+Jr.height>-Mt+qr&&(Wr=-(Jr.top+Jr.height-qr)),ft(0),Nt(yn(Wr))}}),xn={};ur==="top"||ur==="bottom"?xn[on?"marginRight":"marginLeft"]=zt:xn.marginTop=zt;var Hn=at.map(function(Hr,Jr){var ir=Hr.key;return g.createElement(We,{id:Qt,prefixCls:Xe,key:ir,tab:Hr,style:Jr===0?void 0:xn,closable:Hr.closable,editable:zn,active:ir===hn,renderWrapper:Kt,removeAriaLabel:lr==null?void 0:lr.removeAriaLabel,onClick:function(ua){Vt(ir,ua)},onFocus:function(){un(ir),$o(),pt.current&&(on||(pt.current.scrollLeft=0),pt.current.scrollTop=0)}})}),Kn=function(){return vr(function(){var Jr=new Map;return at.forEach(function(ir){var Wr,ua=ir.key,Na=(Wr=an.current)===null||Wr===void 0?void 0:Wr.querySelector('[data-node-key="'.concat(he(ua),'"]'));Na&&Jr.set(ua,{width:Na.offsetWidth,height:Na.offsetHeight,left:Na.offsetLeft,top:Na.offsetTop})}),Jr})};(0,g.useEffect)(function(){Kn()},[at.map(function(Hr){return Hr.key}).join("_")]);var Sr=Y(function(){var Hr=ge(pn),Jr=ge(en),ir=ge(mt);Ln([Hr[0]-Jr[0]-ir[0],Hr[1]-Jr[1]-ir[1]]);var Wr=ge(Yt);Fn(Wr);var ua=ge(qt);fr(ua);var Na=ge(an);$r([Na[0]-Wr[0],Na[1]-Wr[1]]),Kn()}),kr=at.slice(0,xt),La=at.slice(Ce+1),oa=[].concat((0,A.Z)(kr),(0,A.Z)(La)),Xr=(0,g.useState)(),ta=(0,h.Z)(Xr,2),xr=ta[0],Zr=ta[1],ga=zr.get(hn),ka=(0,g.useRef)();function mo(){$.Z.cancel(ka.current)}(0,g.useEffect)(function(){var Hr={};return ga&&(mn?(on?Hr.right=ga.right:Hr.left=ga.left,Hr.width=ga.width):(Hr.top=ga.top,Hr.height=ga.height)),mo(),ka.current=(0,$.Z)(function(){Zr(Hr)}),mo},[ga,mn,on]),(0,g.useEffect)(function(){un()},[hn,At,tn,be(ga),be(zr),mn]),(0,g.useEffect)(function(){Sr()},[on]);var no=!!oa.length,kt="".concat(Xe,"-nav-wrap"),Sn,Dn,Qn,br;return mn?on?(Dn=tr>0,Sn=tr!==tn):(Sn=tr<0,Dn=tr!==At):(Qn=Mt<0,br=Mt!==At),g.createElement(L.Z,{onResize:Sr},g.createElement("div",{ref:(0,P.x1)(De,pn),role:"tablist",className:n()("".concat(Xe,"-nav"),Bt),style:Zt,onKeyDown:function(){$o()}},g.createElement(yt,{ref:en,position:"left",extra:Rn,prefixCls:Xe}),g.createElement("div",{className:n()(kt,(jt={},(0,l.Z)(jt,"".concat(kt,"-ping-left"),Sn),(0,l.Z)(jt,"".concat(kt,"-ping-right"),Dn),(0,l.Z)(jt,"".concat(kt,"-ping-top"),Qn),(0,l.Z)(jt,"".concat(kt,"-ping-bottom"),br),jt)),ref:pt},g.createElement(L.Z,{onResize:Sr},g.createElement("div",{ref:an,className:"".concat(Xe,"-nav-list"),style:{transform:"translate(".concat(tr,"px, ").concat(Mt,"px)"),transition:Qa?"none":void 0}},Hn,g.createElement(et,{ref:Yt,prefixCls:Xe,locale:lr,editable:zn,style:(0,d.Z)((0,d.Z)({},Hn.length===0?void 0:xn),{},{visibility:no?"hidden":null})}),g.createElement("div",{className:n()("".concat(Xe,"-ink-bar"),(0,l.Z)({},"".concat(Xe,"-ink-bar-animated"),rn.inkBar)),style:xr})))),g.createElement(Ke,(0,c.Z)({},$e,{removeAriaLabel:lr==null?void 0:lr.removeAriaLabel,ref:qt,prefixCls:Xe,tabs:oa,className:!no&&Er,tabMoving:!!Qa})),g.createElement(yt,{ref:mt,position:"right",extra:Rn,prefixCls:Xe})))}var R=g.forwardRef(W),N=["renderTabBar"],oe=["label","key"];function ve($e){var De=$e.renderTabBar,jt=(0,y.Z)($e,N),Ft=g.useContext(Z),Xe=Ft.tabs;if(De){var at=(0,d.Z)((0,d.Z)({},jt),{},{panes:Xe.map(function(Bt){var Zt=Bt.label,Qt=Bt.key,rn=(0,y.Z)(Bt,oe);return g.createElement(w,(0,c.Z)({tab:Zt,key:Qt,tabKey:Qt},rn))})});return De(at,R)}return g.createElement(R,jt)}var te=e(75556);function me(){var $e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{inkBar:!0,tabPane:!1},De;return $e===!1?De={inkBar:!1,tabPane:!1}:$e===!0?De={inkBar:!0,tabPane:!1}:De=(0,d.Z)({inkBar:!0},(0,p.Z)($e)==="object"?$e:{}),De.tabPaneMotion&&De.tabPane===void 0&&(De.tabPane=!0),!De.tabPaneMotion&&De.tabPane&&(De.tabPane=!1),De}var we=["id","prefixCls","className","items","direction","activeKey","defaultActiveKey","editable","animated","tabPosition","tabBarGutter","tabBarStyle","tabBarExtraContent","locale","moreIcon","moreTransitionName","destroyInactiveTabPane","renderTabBar","onChange","onTabClick","onTabScroll","getPopupContainer","popupClassName"],xe=0;function Se($e,De){var jt,Ft=$e.id,Xe=$e.prefixCls,at=Xe===void 0?"rc-tabs":Xe,Bt=$e.className,Zt=$e.items,Qt=$e.direction,rn=$e.activeKey,hn=$e.defaultActiveKey,on=$e.editable,Rn=$e.animated,zn=$e.tabPosition,lr=zn===void 0?"top":zn,ur=$e.tabBarGutter,zt=$e.tabBarStyle,Kt=$e.tabBarExtraContent,Vt=$e.locale,dn=$e.moreIcon,pn=$e.moreTransitionName,en=$e.destroyInactiveTabPane,mt=$e.renderTabBar,pt=$e.onChange,an=$e.onTabClick,qt=$e.onTabScroll,Yt=$e.getPopupContainer,mn=$e.popupClassName,gn=(0,y.Z)($e,we),kn=g.useMemo(function(){return(Zt||[]).filter(function(Kr){return Kr&&(0,p.Z)(Kr)==="object"&&"key"in Kr})},[Zt]),tr=Qt==="rtl",ft=me(Rn),vt=(0,g.useState)(!1),St=(0,h.Z)(vt,2),Mt=St[0],Nt=St[1];(0,g.useEffect)(function(){Nt((0,S.Z)())},[]);var sn=(0,j.Z)(function(){var Kr;return(Kr=kn[0])===null||Kr===void 0?void 0:Kr.key},{value:rn,defaultValue:hn}),Xt=(0,h.Z)(sn,2),Cn=Xt[0],Ln=Xt[1],hr=(0,g.useState)(function(){return kn.findIndex(function(Kr){return Kr.key===Cn})}),qn=(0,h.Z)(hr,2),Nn=qn[0],$r=qn[1];(0,g.useEffect)(function(){var Kr=kn.findIndex(function(ya){return ya.key===Cn});if(Kr===-1){var ea;Kr=Math.max(0,Math.min(Nn,kn.length-1)),Ln((ea=kn[Kr])===null||ea===void 0?void 0:ea.key)}$r(Kr)},[kn.map(function(Kr){return Kr.key}).join("_"),Cn,Nn]);var gr=(0,j.Z)(null,{value:Ft}),aa=(0,h.Z)(gr,2),Pr=aa[0],Fn=aa[1];(0,g.useEffect)(function(){Ft||(Fn("rc-tabs-".concat(xe)),xe+=1)},[]);function En(Kr,ea){an==null||an(Kr,ea);var ya=Kr!==Cn;Ln(Kr),ya&&(pt==null||pt(Kr))}var wn={id:Pr,activeKey:Cn,animated:ft,tabPosition:lr,rtl:tr,mobile:Mt},ar,fr=(0,d.Z)((0,d.Z)({},wn),{},{editable:on,locale:Vt,moreIcon:dn,moreTransitionName:pn,tabBarGutter:ur,onTabClick:En,onTabScroll:qt,extra:Kt,style:zt,panes:null,getPopupContainer:Yt,popupClassName:mn});return g.createElement(Z.Provider,{value:{tabs:kn,prefixCls:at}},g.createElement("div",(0,c.Z)({ref:De,id:Ft,className:n()(at,"".concat(at,"-").concat(lr),(jt={},(0,l.Z)(jt,"".concat(at,"-mobile"),Mt),(0,l.Z)(jt,"".concat(at,"-editable"),on),(0,l.Z)(jt,"".concat(at,"-rtl"),tr),jt),Bt)},gn),ar,g.createElement(ve,(0,c.Z)({},fr,{renderTabBar:mt})),g.createElement(F,(0,c.Z)({destroyInactiveTabPane:en},wn,{animated:ft}))))}var ke=g.forwardRef(Se),ne=ke,re=ne,se=e(61836),Ee=e(58785),fe=()=>null,_e=e(90881);const Pe={motionAppear:!1,motionEnter:!0,motionLeave:!0};function ze($e){let De=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{inkBar:!0,tabPane:!1},jt;return De===!1?jt={inkBar:!1,tabPane:!1}:De===!0?jt={inkBar:!0,tabPane:!0}:jt=Object.assign({inkBar:!0},typeof De=="object"?De:{}),jt.tabPane&&(jt.tabPaneMotion=Object.assign(Object.assign({},Pe),{motionName:(0,_e.m)($e,"switch")})),jt}var Qe=e(42156),gt=function($e,De){var jt={};for(var Ft in $e)Object.prototype.hasOwnProperty.call($e,Ft)&&De.indexOf(Ft)<0&&(jt[Ft]=$e[Ft]);if($e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Xe=0,Ft=Object.getOwnPropertySymbols($e);XeDe)}function rt($e,De){if($e)return $e;const jt=(0,Qe.Z)(De).map(Ft=>{if(g.isValidElement(Ft)){const{key:Xe,props:at}=Ft,Bt=at||{},{tab:Zt}=Bt,Qt=gt(Bt,["tab"]);return Object.assign(Object.assign({key:String(Xe)},Qt),{label:Zt})}return null});return ut(jt)}var qe=e(78330),Ve=e(52628),tt=e(22151),Oe=e(1016),Ne=$e=>{const{componentCls:De,motionDurationSlow:jt}=$e;return[{[De]:{[`${De}-switch`]:{"&-appear, &-enter":{transition:"none","&-start":{opacity:0},"&-active":{opacity:1,transition:`opacity ${jt}`}},"&-leave":{position:"absolute",transition:"none",inset:0,"&-start":{opacity:1},"&-active":{opacity:0,transition:`opacity ${jt}`}}}}},[(0,Oe.oN)($e,"slide-up"),(0,Oe.oN)($e,"slide-down")]]};const Te=$e=>{const{componentCls:De,tabsCardPadding:jt,cardBg:Ft,cardGutter:Xe,colorBorderSecondary:at,itemSelectedColor:Bt}=$e;return{[`${De}-card`]:{[`> ${De}-nav, > div > ${De}-nav`]:{[`${De}-tab`]:{margin:0,padding:jt,background:Ft,border:`${$e.lineWidth}px ${$e.lineType} ${at}`,transition:`all ${$e.motionDurationSlow} ${$e.motionEaseInOut}`},[`${De}-tab-active`]:{color:Bt,background:$e.colorBgContainer},[`${De}-ink-bar`]:{visibility:"hidden"}},[`&${De}-top, &${De}-bottom`]:{[`> ${De}-nav, > div > ${De}-nav`]:{[`${De}-tab + ${De}-tab`]:{marginLeft:{_skip_check_:!0,value:`${Xe}px`}}}},[`&${De}-top`]:{[`> ${De}-nav, > div > ${De}-nav`]:{[`${De}-tab`]:{borderRadius:`${$e.borderRadiusLG}px ${$e.borderRadiusLG}px 0 0`},[`${De}-tab-active`]:{borderBottomColor:$e.colorBgContainer}}},[`&${De}-bottom`]:{[`> ${De}-nav, > div > ${De}-nav`]:{[`${De}-tab`]:{borderRadius:`0 0 ${$e.borderRadiusLG}px ${$e.borderRadiusLG}px`},[`${De}-tab-active`]:{borderTopColor:$e.colorBgContainer}}},[`&${De}-left, &${De}-right`]:{[`> ${De}-nav, > div > ${De}-nav`]:{[`${De}-tab + ${De}-tab`]:{marginTop:`${Xe}px`}}},[`&${De}-left`]:{[`> ${De}-nav, > div > ${De}-nav`]:{[`${De}-tab`]:{borderRadius:{_skip_check_:!0,value:`${$e.borderRadiusLG}px 0 0 ${$e.borderRadiusLG}px`}},[`${De}-tab-active`]:{borderRightColor:{_skip_check_:!0,value:$e.colorBgContainer}}}},[`&${De}-right`]:{[`> ${De}-nav, > div > ${De}-nav`]:{[`${De}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${$e.borderRadiusLG}px ${$e.borderRadiusLG}px 0`}},[`${De}-tab-active`]:{borderLeftColor:{_skip_check_:!0,value:$e.colorBgContainer}}}}}}},Be=$e=>{const{componentCls:De,itemHoverColor:jt,dropdownEdgeChildVerticalPadding:Ft}=$e;return{[`${De}-dropdown`]:Object.assign(Object.assign({},(0,qe.Wf)($e)),{position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:$e.zIndexPopup,display:"block","&-hidden":{display:"none"},[`${De}-dropdown-menu`]:{maxHeight:$e.tabsDropdownHeight,margin:0,padding:`${Ft}px 0`,overflowX:"hidden",overflowY:"auto",textAlign:{_skip_check_:!0,value:"left"},listStyleType:"none",backgroundColor:$e.colorBgContainer,backgroundClip:"padding-box",borderRadius:$e.borderRadiusLG,outline:"none",boxShadow:$e.boxShadowSecondary,"&-item":Object.assign(Object.assign({},qe.vS),{display:"flex",alignItems:"center",minWidth:$e.tabsDropdownWidth,margin:0,padding:`${$e.paddingXXS}px ${$e.paddingSM}px`,color:$e.colorText,fontWeight:"normal",fontSize:$e.fontSize,lineHeight:$e.lineHeight,cursor:"pointer",transition:`all ${$e.motionDurationSlow}`,"> span":{flex:1,whiteSpace:"nowrap"},"&-remove":{flex:"none",marginLeft:{_skip_check_:!0,value:$e.marginSM},color:$e.colorTextDescription,fontSize:$e.fontSizeSM,background:"transparent",border:0,cursor:"pointer","&:hover":{color:jt}},"&:hover":{background:$e.controlItemBgHover},"&-disabled":{"&, &:hover":{color:$e.colorTextDisabled,background:"transparent",cursor:"not-allowed"}}})}})}},nt=$e=>{const{componentCls:De,margin:jt,colorBorderSecondary:Ft,horizontalMargin:Xe,verticalItemPadding:at,verticalItemMargin:Bt}=$e;return{[`${De}-top, ${De}-bottom`]:{flexDirection:"column",[`> ${De}-nav, > div > ${De}-nav`]:{margin:Xe,"&::before":{position:"absolute",right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},borderBottom:`${$e.lineWidth}px ${$e.lineType} ${Ft}`,content:"''"},[`${De}-ink-bar`]:{height:$e.lineWidthBold,"&-animated":{transition:`width ${$e.motionDurationSlow}, left ${$e.motionDurationSlow}, + right ${$e.motionDurationSlow}`}},[`${De}-nav-wrap`]:{"&::before, &::after":{top:0,bottom:0,width:$e.controlHeight},"&::before":{left:{_skip_check_:!0,value:0},boxShadow:$e.boxShadowTabsOverflowLeft},"&::after":{right:{_skip_check_:!0,value:0},boxShadow:$e.boxShadowTabsOverflowRight},[`&${De}-nav-wrap-ping-left::before`]:{opacity:1},[`&${De}-nav-wrap-ping-right::after`]:{opacity:1}}}},[`${De}-top`]:{[`> ${De}-nav, + > div > ${De}-nav`]:{"&::before":{bottom:0},[`${De}-ink-bar`]:{bottom:0}}},[`${De}-bottom`]:{[`> ${De}-nav, > div > ${De}-nav`]:{order:1,marginTop:`${jt}px`,marginBottom:0,"&::before":{top:0},[`${De}-ink-bar`]:{top:0}},[`> ${De}-content-holder, > div > ${De}-content-holder`]:{order:0}},[`${De}-left, ${De}-right`]:{[`> ${De}-nav, > div > ${De}-nav`]:{flexDirection:"column",minWidth:$e.controlHeight*1.25,[`${De}-tab`]:{padding:at,textAlign:"center"},[`${De}-tab + ${De}-tab`]:{margin:Bt},[`${De}-nav-wrap`]:{flexDirection:"column","&::before, &::after":{right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},height:$e.controlHeight},"&::before":{top:0,boxShadow:$e.boxShadowTabsOverflowTop},"&::after":{bottom:0,boxShadow:$e.boxShadowTabsOverflowBottom},[`&${De}-nav-wrap-ping-top::before`]:{opacity:1},[`&${De}-nav-wrap-ping-bottom::after`]:{opacity:1}},[`${De}-ink-bar`]:{width:$e.lineWidthBold,"&-animated":{transition:`height ${$e.motionDurationSlow}, top ${$e.motionDurationSlow}`}},[`${De}-nav-list, ${De}-nav-operations`]:{flex:"1 0 auto",flexDirection:"column"}}},[`${De}-left`]:{[`> ${De}-nav, > div > ${De}-nav`]:{[`${De}-ink-bar`]:{right:{_skip_check_:!0,value:0}}},[`> ${De}-content-holder, > div > ${De}-content-holder`]:{marginLeft:{_skip_check_:!0,value:`-${$e.lineWidth}px`},borderLeft:{_skip_check_:!0,value:`${$e.lineWidth}px ${$e.lineType} ${$e.colorBorder}`},[`> ${De}-content > ${De}-tabpane`]:{paddingLeft:{_skip_check_:!0,value:$e.paddingLG}}}},[`${De}-right`]:{[`> ${De}-nav, > div > ${De}-nav`]:{order:1,[`${De}-ink-bar`]:{left:{_skip_check_:!0,value:0}}},[`> ${De}-content-holder, > div > ${De}-content-holder`]:{order:0,marginRight:{_skip_check_:!0,value:-$e.lineWidth},borderRight:{_skip_check_:!0,value:`${$e.lineWidth}px ${$e.lineType} ${$e.colorBorder}`},[`> ${De}-content > ${De}-tabpane`]:{paddingRight:{_skip_check_:!0,value:$e.paddingLG}}}}}},ot=$e=>{const{componentCls:De,cardPaddingSM:jt,cardPaddingLG:Ft,horizontalItemPaddingSM:Xe,horizontalItemPaddingLG:at}=$e;return{[De]:{"&-small":{[`> ${De}-nav`]:{[`${De}-tab`]:{padding:Xe,fontSize:$e.titleFontSizeSM}}},"&-large":{[`> ${De}-nav`]:{[`${De}-tab`]:{padding:at,fontSize:$e.titleFontSizeLG}}}},[`${De}-card`]:{[`&${De}-small`]:{[`> ${De}-nav`]:{[`${De}-tab`]:{padding:jt}},[`&${De}-bottom`]:{[`> ${De}-nav ${De}-tab`]:{borderRadius:`0 0 ${$e.borderRadius}px ${$e.borderRadius}px`}},[`&${De}-top`]:{[`> ${De}-nav ${De}-tab`]:{borderRadius:`${$e.borderRadius}px ${$e.borderRadius}px 0 0`}},[`&${De}-right`]:{[`> ${De}-nav ${De}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${$e.borderRadius}px ${$e.borderRadius}px 0`}}},[`&${De}-left`]:{[`> ${De}-nav ${De}-tab`]:{borderRadius:{_skip_check_:!0,value:`${$e.borderRadius}px 0 0 ${$e.borderRadius}px`}}}},[`&${De}-large`]:{[`> ${De}-nav`]:{[`${De}-tab`]:{padding:Ft}}}}}},wt=$e=>{const{componentCls:De,itemActiveColor:jt,itemHoverColor:Ft,iconCls:Xe,tabsHorizontalItemMargin:at,horizontalItemPadding:Bt,itemSelectedColor:Zt}=$e,Qt=`${De}-tab`;return{[Qt]:{position:"relative",WebkitTouchCallout:"none",WebkitTapHighlightColor:"transparent",display:"inline-flex",alignItems:"center",padding:Bt,fontSize:$e.titleFontSize,background:"transparent",border:0,outline:"none",cursor:"pointer","&-btn, &-remove":Object.assign({"&:focus:not(:focus-visible), &:active":{color:jt}},(0,qe.Qy)($e)),"&-btn":{outline:"none",transition:"all 0.3s"},"&-remove":{flex:"none",marginRight:{_skip_check_:!0,value:-$e.marginXXS},marginLeft:{_skip_check_:!0,value:$e.marginXS},color:$e.colorTextDescription,fontSize:$e.fontSizeSM,background:"transparent",border:"none",outline:"none",cursor:"pointer",transition:`all ${$e.motionDurationSlow}`,"&:hover":{color:$e.colorTextHeading}},"&:hover":{color:Ft},[`&${Qt}-active ${Qt}-btn`]:{color:Zt,textShadow:$e.tabsActiveTextShadow},[`&${Qt}-disabled`]:{color:$e.colorTextDisabled,cursor:"not-allowed"},[`&${Qt}-disabled ${Qt}-btn, &${Qt}-disabled ${De}-remove`]:{"&:focus, &:active":{color:$e.colorTextDisabled}},[`& ${Qt}-remove ${Xe}`]:{margin:0},[Xe]:{marginRight:{_skip_check_:!0,value:$e.marginSM}}},[`${Qt} + ${Qt}`]:{margin:{_skip_check_:!0,value:at}}}},Et=$e=>{const{componentCls:De,tabsHorizontalItemMarginRTL:jt,iconCls:Ft,cardGutter:Xe}=$e;return{[`${De}-rtl`]:{direction:"rtl",[`${De}-nav`]:{[`${De}-tab`]:{margin:{_skip_check_:!0,value:jt},[`${De}-tab:last-of-type`]:{marginLeft:{_skip_check_:!0,value:0}},[Ft]:{marginRight:{_skip_check_:!0,value:0},marginLeft:{_skip_check_:!0,value:`${$e.marginSM}px`}},[`${De}-tab-remove`]:{marginRight:{_skip_check_:!0,value:`${$e.marginXS}px`},marginLeft:{_skip_check_:!0,value:`-${$e.marginXXS}px`},[Ft]:{margin:0}}}},[`&${De}-left`]:{[`> ${De}-nav`]:{order:1},[`> ${De}-content-holder`]:{order:0}},[`&${De}-right`]:{[`> ${De}-nav`]:{order:0},[`> ${De}-content-holder`]:{order:1}},[`&${De}-card${De}-top, &${De}-card${De}-bottom`]:{[`> ${De}-nav, > div > ${De}-nav`]:{[`${De}-tab + ${De}-tab`]:{marginRight:{_skip_check_:!0,value:Xe},marginLeft:{_skip_check_:!0,value:0}}}}},[`${De}-dropdown-rtl`]:{direction:"rtl"},[`${De}-menu-item`]:{[`${De}-dropdown-rtl`]:{textAlign:{_skip_check_:!0,value:"right"}}}}},nn=$e=>{const{componentCls:De,tabsCardPadding:jt,cardHeight:Ft,cardGutter:Xe,itemHoverColor:at,itemActiveColor:Bt,colorBorderSecondary:Zt}=$e;return{[De]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,qe.Wf)($e)),{display:"flex",[`> ${De}-nav, > div > ${De}-nav`]:{position:"relative",display:"flex",flex:"none",alignItems:"center",[`${De}-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 ${$e.motionDurationSlow}`,content:"''",pointerEvents:"none"}},[`${De}-nav-list`]:{position:"relative",display:"flex",transition:`opacity ${$e.motionDurationSlow}`},[`${De}-nav-operations`]:{display:"flex",alignSelf:"stretch"},[`${De}-nav-operations-hidden`]:{position:"absolute",visibility:"hidden",pointerEvents:"none"},[`${De}-nav-more`]:{position:"relative",padding:jt,background:"transparent",border:0,color:$e.colorText,"&::after":{position:"absolute",right:{_skip_check_:!0,value:0},bottom:0,left:{_skip_check_:!0,value:0},height:$e.controlHeightLG/8,transform:"translateY(100%)",content:"''"}},[`${De}-nav-add`]:Object.assign({minWidth:Ft,marginLeft:{_skip_check_:!0,value:Xe},padding:`0 ${$e.paddingXS}px`,background:"transparent",border:`${$e.lineWidth}px ${$e.lineType} ${Zt}`,borderRadius:`${$e.borderRadiusLG}px ${$e.borderRadiusLG}px 0 0`,outline:"none",cursor:"pointer",color:$e.colorText,transition:`all ${$e.motionDurationSlow} ${$e.motionEaseInOut}`,"&:hover":{color:at},"&:active, &:focus:not(:focus-visible)":{color:Bt}},(0,qe.Qy)($e))},[`${De}-extra-content`]:{flex:"none"},[`${De}-ink-bar`]:{position:"absolute",background:$e.inkBarColor,pointerEvents:"none"}}),wt($e)),{[`${De}-content`]:{position:"relative",width:"100%"},[`${De}-content-holder`]:{flex:"auto",minWidth:0,minHeight:0},[`${De}-tabpane`]:{outline:"none","&-hidden":{display:"none"}}}),[`${De}-centered`]:{[`> ${De}-nav, > div > ${De}-nav`]:{[`${De}-nav-wrap`]:{[`&:not([class*='${De}-nav-wrap-ping'])`]:{justifyContent:"center"}}}}}};var $t=(0,Ve.Z)("Tabs",$e=>{const De=(0,tt.TS)($e,{tabsCardPadding:$e.cardPadding||`${($e.cardHeight-Math.round($e.fontSize*$e.lineHeight))/2-$e.lineWidth}px ${$e.padding}px`,dropdownEdgeChildVerticalPadding:$e.paddingXXS,tabsActiveTextShadow:"0 0 0.25px currentcolor",tabsDropdownHeight:200,tabsDropdownWidth:120,tabsHorizontalItemMargin:`0 0 0 ${$e.horizontalItemGutter}px`,tabsHorizontalItemMarginRTL:`0 0 0 ${$e.horizontalItemGutter}px`});return[ot(De),Et(De),nt(De),Be(De),Te(De),nn(De),Ne(De)]},$e=>{const De=$e.controlHeightLG;return{zIndexPopup:$e.zIndexPopupBase+50,cardBg:$e.colorFillAlter,cardHeight:De,cardPadding:"",cardPaddingSM:`${$e.paddingXXS*1.5}px ${$e.padding}px`,cardPaddingLG:`${$e.paddingXS}px ${$e.padding}px ${$e.paddingXXS*1.5}px`,titleFontSize:$e.fontSize,titleFontSizeLG:$e.fontSizeLG,titleFontSizeSM:$e.fontSize,inkBarColor:$e.colorPrimary,horizontalMargin:`0 0 ${$e.margin}px 0`,horizontalItemGutter:32,horizontalItemMargin:"",horizontalItemMarginRTL:"",horizontalItemPadding:`${$e.paddingSM}px 0`,horizontalItemPaddingSM:`${$e.paddingXS}px 0`,horizontalItemPaddingLG:`${$e.padding}px 0`,verticalItemPadding:`${$e.paddingXS}px ${$e.paddingLG}px`,verticalItemMargin:`${$e.margin}px 0 0 0`,itemSelectedColor:$e.colorPrimary,itemHoverColor:$e.colorPrimaryHover,itemActiveColor:$e.colorPrimaryActive,cardGutter:$e.marginXXS/2}}),fn=function($e,De){var jt={};for(var Ft in $e)Object.prototype.hasOwnProperty.call($e,Ft)&&De.indexOf(Ft)<0&&(jt[Ft]=$e[Ft]);if($e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Xe=0,Ft=Object.getOwnPropertySymbols($e);Xe{const{type:De,className:jt,rootClassName:Ft,size:Xe,onEdit:at,hideAdd:Bt,centered:Zt,addIcon:Qt,popupClassName:rn,children:hn,items:on,animated:Rn,style:zn}=$e,lr=fn($e,["type","className","rootClassName","size","onEdit","hideAdd","centered","addIcon","popupClassName","children","items","animated","style"]),{prefixCls:ur,moreIcon:zt=g.createElement(t.Z,null)}=lr,{direction:Kt,tabs:Vt,getPrefixCls:dn,getPopupContainer:pn}=g.useContext(se.E_),en=dn("tabs",ur),[mt,pt]=$t(en);let an;De==="editable-card"&&(an={onEdit:(tr,ft)=>{let{key:vt,event:St}=ft;at==null||at(tr==="add"?St:vt,tr)},removeIcon:g.createElement(a.Z,null),addIcon:Qt||g.createElement(o.Z,null),showAdd:Bt!==!0});const qt=dn(),Yt=rt(on,hn),mn=ze(en,Rn),gn=(0,Ee.Z)(Xe),kn=Object.assign(Object.assign({},Vt==null?void 0:Vt.style),zn);return mt(g.createElement(re,Object.assign({direction:Kt,getPopupContainer:pn,moreTransitionName:`${qt}-slide-up`},lr,{items:Yt,className:n()({[`${en}-${gn}`]:gn,[`${en}-card`]:["card","editable-card"].includes(De),[`${en}-editable-card`]:De==="editable-card",[`${en}-centered`]:Zt},Vt==null?void 0:Vt.className,jt,Ft,pt),popupClassName:n()(rn,pt),style:kn,editable:an,moreIcon:zt,prefixCls:en,animated:mn})))};ln.TabPane=fe;var Wt=ln},32814:function(M,b,e){"use strict";e.d(b,{Z:function(){return $}});var a=e(52495),t=e(87608),o=e.n(t),s=e(58757),n=e(1878),c=e(88858),l=e(37486),d=e(61836);function h(P){return typeof P!="string"?P:P.charAt(0).toUpperCase()+P.slice(1)}var p=e(78330),y=e(98251),g=e(52628),S=e(22151);const j=(P,K,U)=>{const ee=h(U);return{[`${P.componentCls}-${K}`]:{color:P[`color${U}`],background:P[`color${ee}Bg`],borderColor:P[`color${ee}Border`],[`&${P.componentCls}-borderless`]:{borderColor:"transparent"}}}},x=P=>(0,y.Z)(P,(K,U)=>{let{textColor:ee,lightBorderColor:le,lightColor:Q,darkColor:G}=U;return{[`${P.componentCls}-${K}`]:{color:ee,background:Q,borderColor:le,"&-inverse":{color:P.colorTextLightSolid,background:G,borderColor:G},[`&${P.componentCls}-borderless`]:{borderColor:"transparent"}}}}),Z=P=>{const{paddingXXS:K,lineWidth:U,tagPaddingHorizontal:ee,componentCls:le}=P,Q=ee-U,G=K-U;return{[le]:Object.assign(Object.assign({},(0,p.Wf)(P)),{display:"inline-block",height:"auto",marginInlineEnd:P.marginXS,paddingInline:Q,fontSize:P.tagFontSize,lineHeight:P.tagLineHeight,whiteSpace:"nowrap",background:P.defaultBg,border:`${P.lineWidth}px ${P.lineType} ${P.colorBorder}`,borderRadius:P.borderRadiusSM,opacity:1,transition:`all ${P.motionDurationMid}`,textAlign:"start",position:"relative",[`&${le}-rtl`]:{direction:"rtl"},"&, a, a:hover":{color:P.defaultColor},[`${le}-close-icon`]:{marginInlineStart:G,color:P.colorTextDescription,fontSize:P.tagIconSize,cursor:"pointer",transition:`all ${P.motionDurationMid}`,"&:hover":{color:P.colorTextHeading}},[`&${le}-has-color`]:{borderColor:"transparent",[`&, a, a:hover, ${P.iconCls}-close, ${P.iconCls}-close:hover`]:{color:P.colorTextLightSolid}},["&-checkable"]:{backgroundColor:"transparent",borderColor:"transparent",cursor:"pointer",[`&:not(${le}-checkable-checked):hover`]:{color:P.colorPrimary,backgroundColor:P.colorFillSecondary},"&:active, &-checked":{color:P.colorTextLightSolid},"&-checked":{backgroundColor:P.colorPrimary,"&:hover":{backgroundColor:P.colorPrimaryHover}},"&:active":{backgroundColor:P.colorPrimaryActive}},["&-hidden"]:{display:"none"},[`> ${P.iconCls} + span, > span + ${P.iconCls}`]:{marginInlineStart:Q}}),[`${le}-borderless`]:{borderColor:"transparent",background:P.tagBorderlessBg}}};var B=(0,g.Z)("Tag",P=>{const{lineWidth:K,fontSizeIcon:U}=P,ee=P.fontSizeSM,le=`${P.lineHeightSM*ee}px`,Q=(0,S.TS)(P,{tagFontSize:ee,tagLineHeight:le,tagIconSize:U-2*K,tagPaddingHorizontal:8,tagBorderlessBg:P.colorFillTertiary});return[Z(Q),x(Q),j(Q,"success","Success"),j(Q,"processing","Info"),j(Q,"error","Error"),j(Q,"warning","Warning")]},P=>({defaultBg:P.colorFillQuaternary,defaultColor:P.colorText})),w=function(P,K){var U={};for(var ee in P)Object.prototype.hasOwnProperty.call(P,ee)&&K.indexOf(ee)<0&&(U[ee]=P[ee]);if(P!=null&&typeof Object.getOwnPropertySymbols=="function")for(var le=0,ee=Object.getOwnPropertySymbols(P);le{const{prefixCls:K,className:U,checked:ee,onChange:le,onClick:Q}=P,G=w(P,["prefixCls","className","checked","onChange","onClick"]),{getPrefixCls:q}=s.useContext(d.E_),I=ue=>{le==null||le(!ee),Q==null||Q(ue)},H=q("tag",K),[Y,D]=B(H),_=o()(H,`${H}-checkable`,{[`${H}-checkable-checked`]:ee},U,D);return Y(s.createElement("span",Object.assign({},G,{className:_,onClick:I})))},A=function(P,K){var U={};for(var ee in P)Object.prototype.hasOwnProperty.call(P,ee)&&K.indexOf(ee)<0&&(U[ee]=P[ee]);if(P!=null&&typeof Object.getOwnPropertySymbols=="function")for(var le=0,ee=Object.getOwnPropertySymbols(P);le{const{prefixCls:U,className:ee,rootClassName:le,style:Q,children:G,icon:q,color:I,onClose:H,closeIcon:Y,closable:D,bordered:_=!0}=P,ue=A(P,["prefixCls","className","rootClassName","style","children","icon","color","onClose","closeIcon","closable","bordered"]),{getPrefixCls:be,direction:ce,tag:he}=s.useContext(d.E_),[Fe,Je]=s.useState(!0);s.useEffect(()=>{"visible"in ue&&Je(ue.visible)},[ue.visible]);const et=(0,n.o2)(I)||(0,n.yT)(I),ae=Object.assign(Object.assign({backgroundColor:I&&!et?I:void 0},he==null?void 0:he.style),Q),yt=be("tag",U),[Pt,bt]=B(yt),Ct=o()(yt,he==null?void 0:he.className,{[`${yt}-${I}`]:et,[`${yt}-has-color`]:I&&!et,[`${yt}-hidden`]:!Fe,[`${yt}-rtl`]:ce==="rtl",[`${yt}-borderless`]:!_},ee,le,bt),Le=W=>{W.stopPropagation(),H==null||H(W),!W.defaultPrevented&&Je(!1)},[,Ke]=(0,c.Z)(D,Y,W=>W===null?s.createElement(a.Z,{className:`${yt}-close-icon`,onClick:Le}):s.createElement("span",{className:`${yt}-close-icon`,onClick:Le},W),null,!1),st=typeof ue.onClick=="function"||G&&G.type==="a",We=q||null,ge=We?s.createElement(s.Fragment,null,We,G&&s.createElement("span",null,G)):G,X=s.createElement("span",Object.assign({},ue,{ref:K,className:Ct,style:ae}),ge,Ke);return Pt(st?s.createElement(l.Z,{component:"Tag"},X):X)},O=s.forwardRef(L);O.CheckableTag=F;var $=O},83631:function(M,b,e){"use strict";e.d(b,{Mj:function(){return l},uH:function(){return n},u_:function(){return c}});var a=e(57793),t=e(58757),o=e(57738),s=e(28378);const n=(0,a.jG)(o.Z),c={token:s.Z,hashed:!0},l=t.createContext(c)},22802:function(M,b,e){"use strict";e.d(b,{Z:function(){return $}});var a=e(57793),t=e(57738),o=e(28378),s=e(57634),c=P=>{const K=P!=null&&P.algorithm?(0,a.jG)(P.algorithm):(0,a.jG)(t.Z),U=Object.assign(Object.assign({},o.Z),P==null?void 0:P.token);return(0,a.t2)(U,{override:P==null?void 0:P.token},K,s.Z)},l=e(51806),d=e(83631),h=e(38458);function p(P){const{sizeUnit:K,sizeStep:U}=P,ee=U-2;return{sizeXXL:K*(ee+10),sizeXL:K*(ee+6),sizeLG:K*(ee+2),sizeMD:K*(ee+2),sizeMS:K*(ee+1),size:K*ee,sizeSM:K*ee,sizeXS:K*(ee-1),sizeXXS:K*(ee-1)}}var y=e(4490),S=(P,K)=>{const U=K!=null?K:(0,t.Z)(P),ee=U.fontSizeSM,le=U.controlHeight-4;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},U),p(K!=null?K:P)),(0,y.Z)(ee)),{controlHeight:le}),(0,h.Z)(Object.assign(Object.assign({},U),{controlHeight:le})))},j=e(26134),x=e(67782),Z=e(66671);const B=(P,K)=>new Z.C(P).setAlpha(K).toRgbString(),w=(P,K)=>new Z.C(P).lighten(K).toHexString(),T=P=>{const K=(0,j.generate)(P,{theme:"dark"});return{1:K[0],2:K[1],3:K[2],4:K[3],5:K[6],6:K[5],7:K[4],8:K[6],9:K[5],10:K[4]}},F=(P,K)=>{const U=P||"#000",ee=K||"#fff";return{colorBgBase:U,colorTextBase:ee,colorText:B(ee,.85),colorTextSecondary:B(ee,.65),colorTextTertiary:B(ee,.45),colorTextQuaternary:B(ee,.25),colorFill:B(ee,.18),colorFillSecondary:B(ee,.12),colorFillTertiary:B(ee,.08),colorFillQuaternary:B(ee,.04),colorBgElevated:w(U,12),colorBgContainer:w(U,8),colorBgLayout:w(U,0),colorBgSpotlight:w(U,26),colorBorder:w(U,26),colorBorderSecondary:w(U,19)}};var L=(P,K)=>{const U=Object.keys(o.M).map(le=>{const Q=(0,j.generate)(P[le],{theme:"dark"});return new Array(10).fill(1).reduce((G,q,I)=>(G[`${le}-${I+1}`]=Q[I],G[`${le}${I+1}`]=Q[I],G),{})}).reduce((le,Q)=>(le=Object.assign(Object.assign({},le),Q),le),{}),ee=K!=null?K:(0,t.Z)(P);return Object.assign(Object.assign(Object.assign({},ee),U),(0,x.Z)(P,{generateColorPalettes:T,generateNeutralColorPalettes:F}))};function O(){const[P,K,U]=(0,l.Z)();return{theme:P,token:K,hashId:U}}var $={defaultConfig:d.u_,defaultSeed:d.u_.token,useToken:O,defaultAlgorithm:t.Z,darkAlgorithm:L,compactAlgorithm:S,getDesignToken:c}},34966:function(M,b,e){"use strict";e.d(b,{i:function(){return a}});const a=["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"]},57738:function(M,b,e){"use strict";e.d(b,{Z:function(){return x}});var a=e(26134),t=e(38458);function o(Z){const{sizeUnit:B,sizeStep:w}=Z;return{sizeXXL:B*(w+8),sizeXL:B*(w+4),sizeLG:B*(w+2),sizeMD:B*(w+1),sizeMS:B*w,size:B*w,sizeSM:B*(w-1),sizeXS:B*(w-2),sizeXXS:B*(w-3)}}var s=e(28378),n=e(67782),l=Z=>{let B=Z,w=Z,T=Z,F=Z;return Z<6&&Z>=5?B=Z+1:Z<16&&Z>=6?B=Z+2:Z>=16&&(B=16),Z<7&&Z>=5?w=4:Z<8&&Z>=7?w=5:Z<14&&Z>=8?w=6:Z<16&&Z>=14?w=7:Z>=16&&(w=8),Z<6&&Z>=2?T=1:Z>=6&&(T=2),Z>4&&Z<8?F=4:Z>=8&&(F=6),{borderRadius:Z>16?16:Z,borderRadiusXS:T,borderRadiusSM:w,borderRadiusLG:B,borderRadiusOuter:F}};function d(Z){const{motionUnit:B,motionBase:w,borderRadius:T,lineWidth:F}=Z;return Object.assign({motionDurationFast:`${(w+B).toFixed(1)}s`,motionDurationMid:`${(w+B*2).toFixed(1)}s`,motionDurationSlow:`${(w+B*3).toFixed(1)}s`,lineWidthBold:F+1},l(T))}var h=e(66671);const p=(Z,B)=>new h.C(Z).setAlpha(B).toRgbString(),y=(Z,B)=>new h.C(Z).darken(B).toHexString(),g=Z=>{const B=(0,a.generate)(Z);return{1:B[0],2:B[1],3:B[2],4:B[3],5:B[4],6:B[5],7:B[6],8:B[4],9:B[5],10:B[6]}},S=(Z,B)=>{const w=Z||"#fff",T=B||"#000";return{colorBgBase:w,colorTextBase:T,colorText:p(T,.88),colorTextSecondary:p(T,.65),colorTextTertiary:p(T,.45),colorTextQuaternary:p(T,.25),colorFill:p(T,.15),colorFillSecondary:p(T,.06),colorFillTertiary:p(T,.04),colorFillQuaternary:p(T,.02),colorBgLayout:y(w,4),colorBgContainer:y(w,0),colorBgElevated:y(w,0),colorBgSpotlight:p(T,.85),colorBorder:y(w,15),colorBorderSecondary:y(w,6)}};var j=e(4490);function x(Z){const B=Object.keys(s.M).map(w=>{const T=(0,a.generate)(Z[w]);return new Array(10).fill(1).reduce((F,A,L)=>(F[`${w}-${L+1}`]=T[L],F[`${w}${L+1}`]=T[L],F),{})}).reduce((w,T)=>(w=Object.assign(Object.assign({},w),T),w),{});return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Z),B),(0,n.Z)(Z,{generateColorPalettes:g,generateNeutralColorPalettes:S})),(0,j.Z)(Z.fontSize)),o(Z)),(0,t.Z)(Z)),d(Z))}},28378:function(M,b,e){"use strict";e.d(b,{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});b.Z=t},67782:function(M,b,e){"use strict";e.d(b,{Z:function(){return t}});var a=e(66671);function t(o,s){let{generateColorPalettes:n,generateNeutralColorPalettes:c}=s;const{colorSuccess:l,colorWarning:d,colorError:h,colorInfo:p,colorPrimary:y,colorBgBase:g,colorTextBase:S}=o,j=n(y),x=n(l),Z=n(d),B=n(h),w=n(p),T=c(g,S),F=o.colorLink||o.colorInfo,A=n(F);return Object.assign(Object.assign({},T),{colorPrimaryBg:j[1],colorPrimaryBgHover:j[2],colorPrimaryBorder:j[3],colorPrimaryBorderHover:j[4],colorPrimaryHover:j[5],colorPrimary:j[6],colorPrimaryActive:j[7],colorPrimaryTextHover:j[8],colorPrimaryText:j[9],colorPrimaryTextActive:j[10],colorSuccessBg:x[1],colorSuccessBgHover:x[2],colorSuccessBorder:x[3],colorSuccessBorderHover:x[4],colorSuccessHover:x[4],colorSuccess:x[6],colorSuccessActive:x[7],colorSuccessTextHover:x[8],colorSuccessText:x[9],colorSuccessTextActive:x[10],colorErrorBg:B[1],colorErrorBgHover:B[2],colorErrorBorder:B[3],colorErrorBorderHover:B[4],colorErrorHover:B[5],colorError:B[6],colorErrorActive:B[7],colorErrorTextHover:B[8],colorErrorText:B[9],colorErrorTextActive:B[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:w[1],colorInfoBgHover:w[2],colorInfoBorder:w[3],colorInfoBorderHover:w[4],colorInfoHover:w[4],colorInfo:w[6],colorInfoActive:w[7],colorInfoTextHover:w[8],colorInfoText:w[9],colorInfoTextActive:w[10],colorLinkHover:A[4],colorLink:A[6],colorLinkActive:A[7],colorBgMask:new a.C("#000").setAlpha(.45).toRgbString(),colorWhite:"#fff"})}},38458:function(M,b){"use strict";const e=a=>{const{controlHeight:t}=a;return{controlHeightSM:t*.75,controlHeightXS:t*.5,controlHeightLG:t*1.25}};b.Z=e},4490:function(M,b,e){"use strict";e.d(b,{Z:function(){return o}});function a(s){const n=new Array(10).fill(null).map((c,l)=>{const d=l-1,h=s*Math.pow(2.71828,d/5),p=l>1?Math.floor(h):Math.ceil(h);return Math.floor(p/2)*2});return n[1]=s,n.map(c=>{const l=c+8;return{size:c,lineHeight:l/c}})}var o=s=>{const n=a(s),c=n.map(d=>d.size),l=n.map(d=>d.lineHeight);return{fontSizeSM:c[0],fontSize:c[1],fontSizeLG:c[2],fontSizeXL:c[3],fontSizeHeading1:c[6],fontSizeHeading2:c[5],fontSizeHeading3:c[4],fontSizeHeading4:c[3],fontSizeHeading5:c[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(M,b,e){"use strict";e.d(b,{Z:function(){return h}});var a=e(57793),t=e(58757),o=e(93430),s=e(83631),n=e(28378),c=e(57634),l=function(p,y){var g={};for(var S in p)Object.prototype.hasOwnProperty.call(p,S)&&y.indexOf(S)<0&&(g[S]=p[S]);if(p!=null&&typeof Object.getOwnPropertySymbols=="function")for(var j=0,S=Object.getOwnPropertySymbols(p);j{const S=g.getDerivativeToken(p),{override:j}=y,x=l(y,["override"]);let Z=Object.assign(Object.assign({},S),{override:j});return Z=(0,c.Z)(Z),x&&Object.entries(x).forEach(B=>{let[w,T]=B;const{theme:F}=T,A=l(T,["theme"]);let L=A;F&&(L=d(Object.assign(Object.assign({},Z),A),{override:A},F)),Z[w]=L}),Z};function h(){const{token:p,hashed:y,theme:g,components:S}=t.useContext(s.Mj),j=`${o.Z}-${y||""}`,x=g||s.uH,[Z,B]=(0,a.fp)(x,[n.Z,p],{salt:j,override:Object.assign({override:p},S),getComputedToken:d,formatToken:c.Z});return[x,Z,y?B:""]}},57634:function(M,b,e){"use strict";e.d(b,{Z:function(){return l}});var a=e(66671),t=e(28378);function o(d){return d>=0&&d<=255}function s(d,h){const{r:p,g:y,b:g,a:S}=new a.C(d).toRgb();if(S<1)return d;const{r:j,g:x,b:Z}=new a.C(h).toRgb();for(let B=.01;B<=1;B+=.01){const w=Math.round((p-j*(1-B))/B),T=Math.round((y-x*(1-B))/B),F=Math.round((g-Z*(1-B))/B);if(o(w)&&o(T)&&o(F))return new a.C({r:w,g:T,b:F,a:Math.round(B*100)/100}).toRgbString()}return new a.C({r:p,g:y,b:g,a:1}).toRgbString()}var n=s,c=function(d,h){var p={};for(var y in d)Object.prototype.hasOwnProperty.call(d,y)&&h.indexOf(y)<0&&(p[y]=d[y]);if(d!=null&&typeof Object.getOwnPropertySymbols=="function")for(var g=0,y=Object.getOwnPropertySymbols(d);g{delete y[F]});const g=Object.assign(Object.assign({},p),y),S=480,j=576,x=768,Z=992,B=1200,w=1600;if(g.motion===!1){const F="0s";g.motionDurationFast=F,g.motionDurationMid=F,g.motionDurationSlow=F}return Object.assign(Object.assign(Object.assign({},g),{colorFillContent:g.colorFillSecondary,colorFillContentHover:g.colorFill,colorFillAlter:g.colorFillQuaternary,colorBgContainerDisabled:g.colorFillTertiary,colorBorderBg:g.colorBgContainer,colorSplit:n(g.colorBorderSecondary,g.colorBgContainer),colorTextPlaceholder:g.colorTextQuaternary,colorTextDisabled:g.colorTextQuaternary,colorTextHeading:g.colorText,colorTextLabel:g.colorTextSecondary,colorTextDescription:g.colorTextTertiary,colorTextLightSolid:g.colorWhite,colorHighlight:g.colorError,colorBgTextHover:g.colorFillSecondary,colorBgTextActive:g.colorFill,colorIcon:g.colorTextTertiary,colorIconHover:g.colorText,colorErrorOutline:n(g.colorErrorBg,g.colorBgContainer),colorWarningOutline:n(g.colorWarningBg,g.colorBgContainer),fontSizeIcon:g.fontSizeSM,lineWidthFocus:g.lineWidth*4,lineWidth:g.lineWidth,controlOutlineWidth:g.lineWidth*2,controlInteractiveSize:g.controlHeight/2,controlItemBgHover:g.colorFillTertiary,controlItemBgActive:g.colorPrimaryBg,controlItemBgActiveHover:g.colorPrimaryBgHover,controlItemBgActiveDisabled:g.colorFill,controlTmpOutline:g.colorFillQuaternary,controlOutline:n(g.colorPrimaryBg,g.colorBgContainer),lineType:g.lineType,borderRadius:g.borderRadius,borderRadiusXS:g.borderRadiusXS,borderRadiusSM:g.borderRadiusSM,borderRadiusLG:g.borderRadiusLG,fontWeightStrong:600,opacityLoading:.65,linkDecoration:"none",linkHoverDecoration:"none",linkFocusDecoration:"none",controlPaddingHorizontal:12,controlPaddingHorizontalSM:8,paddingXXS:g.sizeXXS,paddingXS:g.sizeXS,paddingSM:g.sizeSM,padding:g.size,paddingMD:g.sizeMD,paddingLG:g.sizeLG,paddingXL:g.sizeXL,paddingContentHorizontalLG:g.sizeLG,paddingContentVerticalLG:g.sizeMS,paddingContentHorizontal:g.sizeMS,paddingContentVertical:g.sizeSM,paddingContentHorizontalSM:g.size,paddingContentVerticalSM:g.sizeXS,marginXXS:g.sizeXXS,marginXS:g.sizeXS,marginSM:g.sizeSM,margin:g.size,marginMD:g.sizeMD,marginLG:g.sizeLG,marginXL:g.sizeXL,marginXXL:g.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:j-1,screenSM:j,screenSMMin:j,screenSMMax:x-1,screenMD:x,screenMDMin:x,screenMDMax:Z-1,screenLG:Z,screenLGMin:Z,screenLGMax:B-1,screenXL:B,screenXLMin:B,screenXLMax:w-1,screenXXL:w,screenXXLMin:w,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)"}),y)}},52628:function(M,b,e){"use strict";e.d(b,{Z:function(){return h}});var a=e(58757),t=e(57793),o=e(71219),s=e(61836),n=e(78330),c=e(51806),l=e(22151),d=e(60619);function h(p,y,g,S){const j=Array.isArray(p)?p:[p,p],[x]=j,Z=j.join("-");return B=>{const[w,T,F]=(0,c.Z)(),{getPrefixCls:A,iconPrefixCls:L,csp:O}=(0,a.useContext)(s.E_),$=A(),P={theme:w,token:T,hashId:F,nonce:()=>O==null?void 0:O.nonce,clientOnly:S==null?void 0:S.clientOnly,order:-999};return(0,t.xy)(Object.assign(Object.assign({},P),{clientOnly:!1,path:["Shared",$]}),()=>[{"&":(0,n.Lx)(T)}]),(0,d.Z)(L),[(0,t.xy)(Object.assign(Object.assign({},P),{path:[Z,B,L]}),()=>{const{token:K,flush:U}=(0,l.ZP)(T),ee=Object.assign({},T[x]);if(S!=null&&S.deprecatedTokens){const{deprecatedTokens:H}=S;H.forEach(Y=>{let[D,_]=Y;var ue;(ee!=null&&ee[D]||ee!=null&&ee[_])&&((ue=ee[_])!==null&&ue!==void 0||(ee[_]=ee==null?void 0:ee[D]))})}const le=typeof g=="function"?g((0,l.TS)(K,ee!=null?ee:{})):g,Q=Object.assign(Object.assign({},le),ee),G=`.${B}`,q=(0,l.TS)(K,{componentCls:G,prefixCls:B,iconCls:`.${L}`,antCls:`.${$}`},Q),I=y(q,{hashId:F,prefixCls:B,rootPrefixCls:$,iconPrefixCls:L,overrideComponentToken:ee});return U(x,Q),[(S==null?void 0:S.resetStyle)===!1?null:(0,n.du)(T,B),I]}),F]}}},98251:function(M,b,e){"use strict";e.d(b,{Z:function(){return t}});var a=e(34966);function t(o,s){return a.i.reduce((n,c)=>{const l=o[`${c}1`],d=o[`${c}3`],h=o[`${c}6`],p=o[`${c}7`];return Object.assign(Object.assign({},n),s(c,{lightColor:l,lightBorderColor:d,darkColor:h,textColor:p}))},{})}},22151:function(M,b,e){"use strict";e.d(b,{TS:function(){return o},ZP:function(){return l}});const a=typeof CSSINJS_STATISTIC!="undefined";let t=!0;function o(){for(var d=arguments.length,h=new Array(d),p=0;p{Object.keys(g).forEach(j=>{Object.defineProperty(y,j,{configurable:!0,enumerable:!0,get:()=>g[j]})})}),t=!0,y}const s={},n={};function c(){}function l(d){let h,p=d,y=c;return a&&(h=new Set,p=new Proxy(d,{get(g,S){return t&&h.add(S),g[S]}}),y=(g,S)=>{var j;s[g]={global:Array.from(h),component:Object.assign(Object.assign({},(j=s[g])===null||j===void 0?void 0:j.component),S)}}),{token:p,keys:h,flush:y}}},60619:function(M,b,e){"use strict";var a=e(57793),t=e(78330),o=e(51806);const s=(n,c)=>{const[l,d]=(0,o.Z)();return(0,a.xy)({theme:l,token:d,hashId:"",path:["ant-design-icons",n],nonce:()=>c==null?void 0:c.nonce},()=>[{[`.${n}`]:Object.assign(Object.assign({},(0,t.Ro)()),{[`.${n} .${n}-icon`]:{display:"block"}})}])};b.Z=s},38107:function(M,b){"use strict";const e={placeholder:"Select time",rangePlaceholder:["Start time","End time"]};b.Z=e},74820:function(M,b,e){"use strict";e.d(b,{Z:function(){return le}});var a=e(87608),t=e.n(a),o=e(33664),s=e(60409),n=e(58757),c=e(90881),l=e(95446),d=e(37047),h=e(61836),p=e(43528),y=e(22802),g=e(78330),S=e(28107),j=e(24542),x=e(98251),Z=e(22151),B=e(52628);const w=Q=>{const{componentCls:G,tooltipMaxWidth:q,tooltipColor:I,tooltipBg:H,tooltipBorderRadius:Y,zIndexPopup:D,controlHeight:_,boxShadowSecondary:ue,paddingSM:be,paddingXS:ce,tooltipRadiusOuter:he}=Q;return[{[G]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,g.Wf)(Q)),{position:"absolute",zIndex:D,display:"block",width:"max-content",maxWidth:q,visibility:"visible",transformOrigin:"var(--arrow-x, 50%) var(--arrow-y, 50%)","&-hidden":{display:"none"},"--antd-arrow-background-color":H,[`${G}-inner`]:{minWidth:_,minHeight:_,padding:`${be/2}px ${ce}px`,color:I,textAlign:"start",textDecoration:"none",wordWrap:"break-word",backgroundColor:H,borderRadius:Y,boxShadow:ue,boxSizing:"border-box"},[["&-placement-left","&-placement-leftTop","&-placement-leftBottom","&-placement-right","&-placement-rightTop","&-placement-rightBottom"].join(",")]:{[`${G}-inner`]:{borderRadius:Math.min(Y,j.qN)}},[`${G}-content`]:{position:"relative"}}),(0,x.Z)(Q,(Fe,Je)=>{let{darkColor:et}=Je;return{[`&${G}-${Fe}`]:{[`${G}-inner`]:{backgroundColor:et},[`${G}-arrow`]:{"--antd-arrow-background-color":et}}}})),{"&-rtl":{direction:"rtl"}})},(0,j.ZP)((0,Z.TS)(Q,{borderRadiusOuter:he}),{colorBg:"var(--antd-arrow-background-color)",contentRadius:Y,limitVerticalRadius:!0}),{[`${G}-pure`]:{position:"relative",maxWidth:"none",margin:Q.sizePopupArrow}}]};var T=(Q,G)=>(0,B.Z)("Tooltip",I=>{if(G===!1)return[];const{borderRadius:H,colorTextLightSolid:Y,colorBgDefault:D,borderRadiusOuter:_}=I,ue=(0,Z.TS)(I,{tooltipMaxWidth:250,tooltipColor:Y,tooltipBorderRadius:H,tooltipBg:D,tooltipRadiusOuter:_>4?4:_});return[w(ue),(0,S._y)(I,"zoom-big-fast")]},I=>{let{zIndexPopupBase:H,colorBgSpotlight:Y}=I;return{zIndexPopup:H+70,colorBgDefault:Y}},{resetStyle:!1})(Q),F=e(1878);function A(Q,G){const q=(0,F.o2)(G),I=t()({[`${Q}-${G}`]:G&&q}),H={},Y={};return G&&!q&&(H.background=G,Y["--antd-arrow-background-color"]=G),{className:I,overlayStyle:H,arrowStyle:Y}}var O=Q=>{const{prefixCls:G,className:q,placement:I="top",title:H,color:Y,overlayInnerStyle:D}=Q,{getPrefixCls:_}=n.useContext(h.E_),ue=_("tooltip",G),[be,ce]=T(ue,!0),he=A(ue,Y),Fe=he.arrowStyle,Je=Object.assign(Object.assign({},D),he.overlayStyle),et=t()(ce,ue,`${ue}-pure`,`${ue}-placement-${I}`,q,he.className);return be(n.createElement("div",{className:et,style:Fe},n.createElement("div",{className:`${ue}-arrow`}),n.createElement(o.G,Object.assign({},Q,{className:ce,prefixCls:ue,overlayInnerStyle:Je}),H)))},$=function(Q,G){var q={};for(var I in Q)Object.prototype.hasOwnProperty.call(Q,I)&&G.indexOf(I)<0&&(q[I]=Q[I]);if(Q!=null&&typeof Object.getOwnPropertySymbols=="function")for(var H=0,I=Object.getOwnPropertySymbols(Q);H{const q={},I=Object.assign({},Q);return G.forEach(H=>{Q&&H in Q&&(q[H]=Q[H],delete I[H])}),{picked:q,omitted:I}};function U(Q,G){const q=Q.type;if((q.__ANT_BUTTON===!0||Q.type==="button")&&Q.props.disabled||q.__ANT_SWITCH===!0&&(Q.props.disabled||Q.props.loading)||q.__ANT_RADIO===!0&&Q.props.disabled){const{picked:I,omitted:H}=K(Q.props.style,["position","left","right","top","bottom","float","display","zIndex"]),Y=Object.assign(Object.assign({display:"inline-block"},I),{cursor:"not-allowed",width:Q.props.block?"100%":void 0}),D=Object.assign(Object.assign({},H),{pointerEvents:"none"}),_=(0,d.Tm)(Q,{style:D,className:null});return n.createElement("span",{style:Y,className:t()(Q.props.className,`${G}-disabled-compatible-wrapper`)},_)}return Q}const ee=n.forwardRef((Q,G)=>{var q,I;const{prefixCls:H,openClassName:Y,getTooltipContainer:D,overlayClassName:_,color:ue,overlayInnerStyle:be,children:ce,afterOpenChange:he,afterVisibleChange:Fe,destroyTooltipOnHide:Je,arrow:et=!0,title:ae,overlay:yt,builtinPlacements:Pt,arrowPointAtCenter:bt=!1,autoAdjustOverflow:Ct=!0}=Q,Le=!!et,{token:Ke}=P(),{getPopupContainer:st,getPrefixCls:We,direction:ge}=n.useContext(h.E_),X=n.useRef(null),W=()=>{var Me;(Me=X.current)===null||Me===void 0||Me.forceAlign()};n.useImperativeHandle(G,()=>({forceAlign:W,forcePopupAlign:()=>{W()}}));const[R,N]=(0,s.Z)(!1,{value:(q=Q.open)!==null&&q!==void 0?q:Q.visible,defaultValue:(I=Q.defaultOpen)!==null&&I!==void 0?I:Q.defaultVisible}),oe=!ae&&!yt&&ae!==0,ve=Me=>{var Ne,Te;N(oe?!1:Me),oe||((Ne=Q.onOpenChange)===null||Ne===void 0||Ne.call(Q,Me),(Te=Q.onVisibleChange)===null||Te===void 0||Te.call(Q,Me))},te=n.useMemo(()=>{var Me,Ne;let Te=bt;return typeof et=="object"&&(Te=(Ne=(Me=et.pointAtCenter)!==null&&Me!==void 0?Me:et.arrowPointAtCenter)!==null&&Ne!==void 0?Ne:bt),Pt||(0,l.Z)({arrowPointAtCenter:Te,autoAdjustOverflow:Ct,arrowWidth:Le?Ke.sizePopupArrow:0,borderRadius:Ke.borderRadius,offset:Ke.marginXXS,visibleFirst:!0})},[bt,et,Pt,Ke]),me=n.useMemo(()=>ae===0?ae:yt||ae||"",[yt,ae]),we=n.createElement(p.BR,null,typeof me=="function"?me():me),{getPopupContainer:xe,placement:Se="top",mouseEnterDelay:ke=.1,mouseLeaveDelay:ne=.1,overlayStyle:re,rootClassName:se}=Q,Ee=$(Q,["getPopupContainer","placement","mouseEnterDelay","mouseLeaveDelay","overlayStyle","rootClassName"]),Re=We("tooltip",H),fe=We(),_e=Q["data-popover-inject"];let Pe=R;!("open"in Q)&&!("visible"in Q)&&oe&&(Pe=!1);const ze=U((0,d.l$)(ce)&&!(0,d.M2)(ce)?ce:n.createElement("span",null,ce),Re),Qe=ze.props,gt=!Qe.className||typeof Qe.className=="string"?t()(Qe.className,Y||`${Re}-open`):Qe.className,[ut,rt]=T(Re,!_e),qe=A(Re,ue),Ve=qe.arrowStyle,tt=Object.assign(Object.assign({},be),qe.overlayStyle),Oe=t()(_,{[`${Re}-rtl`]:ge==="rtl"},qe.className,se,rt);return ut(n.createElement(o.Z,Object.assign({},Ee,{showArrow:Le,placement:Se,mouseEnterDelay:ke,mouseLeaveDelay:ne,prefixCls:Re,overlayClassName:Oe,overlayStyle:Object.assign(Object.assign({},Ve),re),getTooltipContainer:xe||D||st,ref:X,builtinPlacements:te,overlay:we,visible:Pe,onVisibleChange:ve,afterVisibleChange:he!=null?he:Fe,overlayInnerStyle:tt,arrowContent:n.createElement("span",{className:`${Re}-arrow-content`}),motion:{motionName:(0,c.m)(fe,"zoom-big-fast",Q.transitionName),motionDeadline:1e3},destroyTooltipOnHide:!!Je}),Pe?(0,d.Tm)(ze,{className:gt}):ze))});ee._InternalPanelDoNotUseOrYouWillBeFired=O;var le=ee},23241:function(M,b,e){"use strict";e.d(b,{Z:function(){return ur}});var a=e(58757),t=e(29140),o=e(87608),s=e.n(o),n=e(60698),c=e(60412),l=e(14346),d=e(87498),h=e(73726),p=e(37734),y=e(47075),g=e(74632),S=e(38790),j=e(79290),x=e(33926);function Z(zt,Kt){var Vt="cannot ".concat(zt.method," ").concat(zt.action," ").concat(Kt.status,"'"),dn=new Error(Vt);return dn.status=Kt.status,dn.method=zt.method,dn.url=zt.action,dn}function B(zt){var Kt=zt.responseText||zt.response;if(!Kt)return Kt;try{return JSON.parse(Kt)}catch(Vt){return Kt}}function w(zt){var Kt=new XMLHttpRequest;zt.onProgress&&Kt.upload&&(Kt.upload.onprogress=function(en){en.total>0&&(en.percent=en.loaded/en.total*100),zt.onProgress(en)});var Vt=new FormData;zt.data&&Object.keys(zt.data).forEach(function(pn){var en=zt.data[pn];if(Array.isArray(en)){en.forEach(function(mt){Vt.append("".concat(pn,"[]"),mt)});return}Vt.append(pn,en)}),zt.file instanceof Blob?Vt.append(zt.filename,zt.file,zt.file.name):Vt.append(zt.filename,zt.file),Kt.onerror=function(en){zt.onError(en)},Kt.onload=function(){return Kt.status<200||Kt.status>=300?zt.onError(Z(zt,Kt),B(Kt)):zt.onSuccess(B(Kt),Kt)},Kt.open(zt.method,zt.action,!0),zt.withCredentials&&"withCredentials"in Kt&&(Kt.withCredentials=!0);var dn=zt.headers||{};return dn["X-Requested-With"]!==null&&Kt.setRequestHeader("X-Requested-With","XMLHttpRequest"),Object.keys(dn).forEach(function(pn){dn[pn]!==null&&Kt.setRequestHeader(pn,dn[pn])}),Kt.send(Vt),{abort:function(){Kt.abort()}}}var T=+new Date,F=0;function A(){return"rc-upload-".concat(T,"-").concat(++F)}var L=e(75556),O=function(zt,Kt){if(zt&&Kt){var Vt=Array.isArray(Kt)?Kt:Kt.split(","),dn=zt.name||"",pn=zt.type||"",en=pn.replace(/\/.*$/,"");return Vt.some(function(mt){var pt=mt.trim();if(/^\*(\/\*)?$/.test(mt))return!0;if(pt.charAt(0)==="."){var an=dn.toLowerCase(),qt=pt.toLowerCase(),Yt=[qt];return(qt===".jpg"||qt===".jpeg")&&(Yt=[".jpg",".jpeg"]),Yt.some(function(mn){return an.endsWith(mn)})}return/\/\*$/.test(pt)?en===pt.replace(/\/.*$/,""):pn===pt?!0:/^\w+$/.test(pt)?((0,L.ZP)(!1,"Upload takes an invalidate 'accept' type '".concat(pt,"'.Skip for check.")),!0):!1})}return!0};function $(zt,Kt){var Vt=zt.createReader(),dn=[];function pn(){Vt.readEntries(function(en){var mt=Array.prototype.slice.apply(en);dn=dn.concat(mt);var pt=!mt.length;pt?Kt(dn):pn()})}pn()}var P=function(Kt,Vt,dn){var pn=function en(mt,pt){mt.path=pt||"",mt.isFile?mt.file(function(an){dn(an)&&(mt.fullPath&&!an.webkitRelativePath&&(Object.defineProperties(an,{webkitRelativePath:{writable:!0}}),an.webkitRelativePath=mt.fullPath.replace(/^\//,""),Object.defineProperties(an,{webkitRelativePath:{writable:!1}})),Vt([an]))}):mt.isDirectory&&$(mt,function(an){an.forEach(function(qt){en(qt,"".concat(pt).concat(mt.name,"/"))})})};Kt.forEach(function(en){pn(en.webkitGetAsEntry())})},K=P,U=["component","prefixCls","className","disabled","id","style","multiple","accept","capture","children","directory","openFileDialogOnClick","onMouseEnter","onMouseLeave"],ee=function(zt){(0,d.Z)(Vt,zt);var Kt=(0,h.Z)(Vt);function Vt(){var dn;(0,c.Z)(this,Vt);for(var pn=arguments.length,en=new Array(pn),mt=0;mt{let{uid:en}=pn;return en===zt.uid});return dn===-1?Vt.push(zt):Vt[dn]=zt,Vt}function te(zt,Kt){const Vt=zt.uid!==void 0?"uid":"name";return Kt.filter(dn=>dn[Vt]===zt[Vt])[0]}function me(zt,Kt){const Vt=zt.uid!==void 0?"uid":"name",dn=Kt.filter(pn=>pn[Vt]!==zt[Vt]);return dn.length===Kt.length?null:dn}const we=function(){const Kt=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:"").split("/"),dn=Kt[Kt.length-1].split(/#|\?/)[0];return(/\.[^./\\]*$/.exec(dn)||[""])[0]},xe=zt=>zt.indexOf("image/")===0,Se=zt=>{if(zt.type&&!zt.thumbUrl)return xe(zt.type);const Kt=zt.thumbUrl||zt.url||"",Vt=we(Kt);return/^data:image\//.test(Kt)||/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico|heic|heif)$/i.test(Vt)?!0:!(/^data:/.test(Kt)||Vt)},ke=200;function ne(zt){return new Promise(Kt=>{if(!zt.type||!xe(zt.type)){Kt("");return}const Vt=document.createElement("canvas");Vt.width=ke,Vt.height=ke,Vt.style.cssText=`position: fixed; left: 0; top: 0; width: ${ke}px; height: ${ke}px; z-index: 9999; display: none;`,document.body.appendChild(Vt);const dn=Vt.getContext("2d"),pn=new Image;if(pn.onload=()=>{const{width:en,height:mt}=pn;let pt=ke,an=ke,qt=0,Yt=0;en>mt?(an=mt*(ke/en),Yt=-(an-pt)/2):(pt=en*(ke/mt),qt=-(pt-an)/2),dn.drawImage(pn,qt,Yt,pt,an);const mn=Vt.toDataURL();document.body.removeChild(Vt),window.URL.revokeObjectURL(pn.src),Kt(mn)},pn.crossOrigin="anonymous",zt.type.startsWith("image/svg+xml")){const en=new FileReader;en.onload=()=>{en.result&&(pn.src=en.result)},en.readAsDataURL(zt)}else if(zt.type.startsWith("image/gif")){const en=new FileReader;en.onload=()=>{en.result&&Kt(en.result)},en.readAsDataURL(zt)}else pn.src=window.URL.createObjectURL(zt)})}var re=e(23605),se={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"},Ee=se,Re=function(Kt,Vt){return a.createElement(Fe.Z,(0,n.Z)({},Kt,{ref:Vt,icon:Ee}))},fe=a.forwardRef(Re),_e=e(56019),Pe=e(95664),ze=e(74820),gt=a.forwardRef((zt,Kt)=>{let{prefixCls:Vt,className:dn,style:pn,locale:en,listType:mt,file:pt,items:an,progress:qt,iconRender:Yt,actionIconRender:mn,itemRender:gn,isImgUrl:kn,showPreviewIcon:tr,showRemoveIcon:ft,showDownloadIcon:vt,previewIcon:St,removeIcon:Mt,downloadIcon:Nt,onPreview:sn,onDownload:Xt,onClose:Cn}=zt;var Ln,hr;const{status:qn}=pt,[Nn,$r]=a.useState(qn);a.useEffect(()=>{qn!=="removed"&&$r(qn)},[qn]);const[gr,aa]=a.useState(!1);a.useEffect(()=>{const Er=setTimeout(()=>{aa(!0)},300);return()=>{clearTimeout(Er)}},[]);const Pr=Yt(pt);let Fn=a.createElement("div",{className:`${Vt}-icon`},Pr);if(mt==="picture"||mt==="picture-card"||mt==="picture-circle")if(Nn==="uploading"||!pt.thumbUrl&&!pt.url){const Er=s()(`${Vt}-list-item-thumbnail`,{[`${Vt}-list-item-file`]:Nn!=="uploading"});Fn=a.createElement("div",{className:Er},Pr)}else{const Er=kn!=null&&kn(pt)?a.createElement("img",{src:pt.thumbUrl||pt.url,alt:pt.name,className:`${Vt}-list-item-image`,crossOrigin:pt.crossOrigin}):Pr,At=s()(`${Vt}-list-item-thumbnail`,{[`${Vt}-list-item-file`]:kn&&!kn(pt)});Fn=a.createElement("a",{className:At,onClick:tn=>sn(pt,tn),href:pt.url||pt.thumbUrl,target:"_blank",rel:"noopener noreferrer"},Er)}const En=s()(`${Vt}-list-item`,`${Vt}-list-item-${Nn}`),wn=typeof pt.linkProps=="string"?JSON.parse(pt.linkProps):pt.linkProps,ar=ft?mn((typeof Mt=="function"?Mt(pt):Mt)||a.createElement(re.Z,null),()=>Cn(pt),Vt,en.removeFile):null,fr=vt&&Nn==="done"?mn((typeof Nt=="function"?Nt(pt):Nt)||a.createElement(fe,null),()=>Xt(pt),Vt,en.downloadFile):null,Kr=mt!=="picture-card"&&mt!=="picture-circle"&&a.createElement("span",{key:"download-delete",className:s()(`${Vt}-list-item-actions`,{picture:mt==="picture"})},fr,ar),ea=s()(`${Vt}-list-item-name`),ya=pt.url?[a.createElement("a",Object.assign({key:"view",target:"_blank",rel:"noopener noreferrer",className:ea,title:pt.name},wn,{href:pt.url,onClick:Er=>sn(pt,Er)}),pt.name),Kr]:[a.createElement("span",{key:"view",className:ea,onClick:Er=>sn(pt,Er),title:pt.name},pt.name),Kr],vr={pointerEvents:"none",opacity:.5},zr=tr?a.createElement("a",{href:pt.url||pt.thumbUrl,target:"_blank",rel:"noopener noreferrer",style:pt.url||pt.thumbUrl?void 0:vr,onClick:Er=>sn(pt,Er),title:en.previewFile},typeof St=="function"?St(pt):St||a.createElement(_e.Z,null)):null,Oa=(mt==="picture-card"||mt==="picture-circle")&&Nn!=="uploading"&&a.createElement("span",{className:`${Vt}-list-item-actions`},zr,Nn==="done"&&fr,ar),{getPrefixCls:va}=a.useContext(D.E_),Vn=va(),Bn=a.createElement("div",{className:En},Fn,ya,Oa,gr&&a.createElement(ge.ZP,{motionName:`${Vn}-fade`,visible:Nn==="uploading",motionDeadline:2e3},Er=>{let{className:At}=Er;const tn="percent"in pt?a.createElement(Pe.Z,Object.assign({},qt,{type:"line",percent:pt.percent,"aria-label":pt["aria-label"],"aria-labelledby":pt["aria-labelledby"]})):null;return a.createElement("div",{className:s()(`${Vt}-list-item-progress`,At)},tn)})),pr=pt.response&&typeof pt.response=="string"?pt.response:((Ln=pt.error)===null||Ln===void 0?void 0:Ln.statusText)||((hr=pt.error)===null||hr===void 0?void 0:hr.message)||en.uploadError,qr=Nn==="error"?a.createElement(ze.Z,{title:pr,getPopupContainer:Er=>Er.parentNode},Bn):Bn;return a.createElement("div",{className:s()(`${Vt}-list-item-container`,dn),style:pn,ref:Kt},gn?gn(qr,pt,an,{download:Xt.bind(null,pt),preview:sn.bind(null,pt),remove:Cn.bind(null,pt)}):qr)});const ut=(zt,Kt)=>{const{listType:Vt="text",previewFile:dn=ne,onPreview:pn,onDownload:en,onRemove:mt,locale:pt,iconRender:an,isImageUrl:qt=Se,prefixCls:Yt,items:mn=[],showPreviewIcon:gn=!0,showRemoveIcon:kn=!0,showDownloadIcon:tr=!1,removeIcon:ft,previewIcon:vt,downloadIcon:St,progress:Mt={size:[-1,2],showInfo:!1},appendAction:Nt,appendActionVisible:sn=!0,itemRender:Xt,disabled:Cn}=zt,Ln=(0,X.Z)(),[hr,qn]=a.useState(!1);a.useEffect(()=>{Vt!=="picture"&&Vt!=="picture-card"&&Vt!=="picture-circle"||(mn||[]).forEach(vr=>{typeof document=="undefined"||typeof window=="undefined"||!window.FileReader||!window.File||!(vr.originFileObj instanceof File||vr.originFileObj instanceof Blob)||vr.thumbUrl!==void 0||(vr.thumbUrl="",dn&&dn(vr.originFileObj).then(zr=>{vr.thumbUrl=zr||"",Ln()}))})},[Vt,mn,dn]),a.useEffect(()=>{qn(!0)},[]);const Nn=(vr,zr)=>{if(pn)return zr==null||zr.preventDefault(),pn(vr)},$r=vr=>{typeof en=="function"?en(vr):vr.url&&window.open(vr.url)},gr=vr=>{mt==null||mt(vr)},aa=vr=>{if(an)return an(vr,Vt);const zr=vr.status==="uploading",Oa=qt&&qt(vr)?a.createElement(We,null):a.createElement(et,null);let va=zr?a.createElement(ae.Z,null):a.createElement(Ct,null);return Vt==="picture"?va=zr?a.createElement(ae.Z,null):Oa:(Vt==="picture-card"||Vt==="picture-circle")&&(va=zr?pt.uploading:Oa),va},Pr=(vr,zr,Oa,va)=>{const Vn={type:"text",size:"small",title:va,onClick:Bn=>{zr(),(0,R.l$)(vr)&&vr.props.onClick&&vr.props.onClick(Bn)},className:`${Oa}-list-item-action`,disabled:Cn};if((0,R.l$)(vr)){const Bn=(0,R.Tm)(vr,Object.assign(Object.assign({},vr.props),{onClick:()=>{}}));return a.createElement(N.ZP,Object.assign({},Vn,{icon:Bn}))}return a.createElement(N.ZP,Object.assign({},Vn),a.createElement("span",null,vr))};a.useImperativeHandle(Kt,()=>({handlePreview:Nn,handleDownload:$r}));const{getPrefixCls:Fn}=a.useContext(D.E_),En=Fn("upload",Yt),wn=Fn(),ar=s()(`${En}-list`,`${En}-list-${Vt}`),fr=(0,t.Z)(mn.map(vr=>({key:vr.uid,file:vr})));let ea={motionDeadline:2e3,motionName:`${En}-${Vt==="picture-card"||Vt==="picture-circle"?"animate-inline":"animate"}`,keys:fr,motionAppear:hr};const ya=a.useMemo(()=>{const vr=Object.assign({},(0,W.Z)(wn));return delete vr.onAppearEnd,delete vr.onEnterEnd,delete vr.onLeaveEnd,vr},[wn]);return Vt!=="picture-card"&&Vt!=="picture-circle"&&(ea=Object.assign(Object.assign({},ya),ea)),a.createElement("div",{className:ar},a.createElement(ge.V4,Object.assign({},ea,{component:!1}),vr=>{let{key:zr,file:Oa,className:va,style:Vn}=vr;return a.createElement(gt,{key:zr,locale:pt,prefixCls:En,className:va,style:Vn,file:Oa,items:mn,progress:Mt,listType:Vt,isImgUrl:qt,showPreviewIcon:gn,showRemoveIcon:kn,showDownloadIcon:tr,removeIcon:ft,previewIcon:vt,downloadIcon:St,iconRender:aa,actionIconRender:Pr,itemRender:Xt,onPreview:Nn,onDownload:$r,onClose:gr})}),Nt&&a.createElement(ge.ZP,Object.assign({},ea,{visible:sn,forceRender:!0}),vr=>{let{className:zr,style:Oa}=vr;return(0,R.Tm)(Nt,va=>({className:s()(va.className,zr),style:Object.assign(Object.assign(Object.assign({},Oa),{pointerEvents:zr?"none":void 0}),va.style)}))}))};var qe=a.forwardRef(ut),Ve=e(78330),tt=e(41086),Oe=e(52628),Me=e(22151),Te=zt=>{const{componentCls:Kt,iconCls:Vt}=zt;return{[`${Kt}-wrapper`]:{[`${Kt}-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}`,[Kt]:{padding:`${zt.padding}px 0`},[`${Kt}-btn`]:{display:"table",width:"100%",height:"100%",outline:"none"},[`${Kt}-drag-container`]:{display:"table-cell",verticalAlign:"middle"},[`&:not(${Kt}-disabled):hover`]:{borderColor:zt.colorPrimaryHover},[`p${Kt}-drag-icon`]:{marginBottom:zt.margin,[Vt]:{color:zt.colorPrimary,fontSize:zt.uploadThumbnailSize}},[`p${Kt}-text`]:{margin:`0 0 ${zt.marginXXS}px`,color:zt.colorTextHeading,fontSize:zt.fontSizeLG},[`p${Kt}-hint`]:{color:zt.colorTextDescription,fontSize:zt.fontSize},[`&${Kt}-disabled`]:{cursor:"not-allowed",[`p${Kt}-drag-icon ${Vt}, + p${Kt}-text, + p${Kt}-hint + `]:{color:zt.colorTextDisabled}}}}}},nt=zt=>{const{componentCls:Kt,antCls:Vt,iconCls:dn,fontSize:pn,lineHeight:en}=zt,mt=`${Kt}-list-item`,pt=`${mt}-actions`,an=`${mt}-action`,qt=Math.round(pn*en);return{[`${Kt}-wrapper`]:{[`${Kt}-list`]:Object.assign(Object.assign({},(0,Ve.dF)()),{lineHeight:zt.lineHeight,[mt]:{position:"relative",height:zt.lineHeight*pn,marginTop:zt.marginXS,fontSize:pn,display:"flex",alignItems:"center",transition:`background-color ${zt.motionDurationSlow}`,"&:hover":{backgroundColor:zt.controlItemBgHover},[`${mt}-name`]:Object.assign(Object.assign({},Ve.vS),{padding:`0 ${zt.paddingXS}px`,lineHeight:en,flex:"auto",transition:`all ${zt.motionDurationSlow}`}),[pt]:{[an]:{opacity:0},[`${an}${Vt}-btn-sm`]:{height:qt,border:0,lineHeight:1,"> span":{transform:"scale(1)"}},[` + ${an}:focus, + &.picture ${an} + `]:{opacity:1},[dn]:{color:zt.actionsColor,transition:`all ${zt.motionDurationSlow}`},[`&:hover ${dn}`]:{color:zt.colorText}},[`${Kt}-icon ${dn}`]:{color:zt.colorTextDescription,fontSize:pn},[`${mt}-progress`]:{position:"absolute",bottom:-zt.uploadProgressOffset,width:"100%",paddingInlineStart:pn+zt.paddingXS,fontSize:pn,lineHeight:0,pointerEvents:"none","> div":{margin:0}}},[`${mt}:hover ${an}`]:{opacity:1,color:zt.colorText},[`${mt}-error`]:{color:zt.colorError,[`${mt}-name, ${Kt}-icon ${dn}`]:{color:zt.colorError},[pt]:{[`${dn}, ${dn}:hover`]:{color:zt.colorError},[an]:{opacity:1}}},[`${Kt}-list-item-container`]:{transition:`opacity ${zt.motionDurationSlow}, height ${zt.motionDurationSlow}`,"&::before":{display:"table",width:0,height:0,content:'""'}}})}}},ot=e(57793),wt=e(7239);const Et=new ot.E4("uploadAnimateInlineIn",{from:{width:0,height:0,margin:0,padding:0,opacity:0}}),nn=new ot.E4("uploadAnimateInlineOut",{to:{width:0,height:0,margin:0,padding:0,opacity:0}});var fn=zt=>{const{componentCls:Kt}=zt,Vt=`${Kt}-animate-inline`;return[{[`${Kt}-wrapper`]:{[`${Vt}-appear, ${Vt}-enter, ${Vt}-leave`]:{animationDuration:zt.motionDurationSlow,animationTimingFunction:zt.motionEaseInOutCirc,animationFillMode:"forwards"},[`${Vt}-appear, ${Vt}-enter`]:{animationName:Et},[`${Vt}-leave`]:{animationName:nn}}},{[`${Kt}-wrapper`]:(0,wt.J$)(zt)},Et,nn]},ln=e(26134),Wt=e(66671);const $e=zt=>{const{componentCls:Kt,iconCls:Vt,uploadThumbnailSize:dn,uploadProgressOffset:pn}=zt,en=`${Kt}-list`,mt=`${en}-item`;return{[`${Kt}-wrapper`]:{[` + ${en}${en}-picture, + ${en}${en}-picture-card, + ${en}${en}-picture-circle + `]:{[mt]:{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"},[`${mt}-thumbnail`]:Object.assign(Object.assign({},Ve.vS),{width:dn,height:dn,lineHeight:`${dn+zt.paddingSM}px`,textAlign:"center",flex:"none",[Vt]:{fontSize:zt.fontSizeHeading2,color:zt.colorPrimary},img:{display:"block",width:"100%",height:"100%",overflow:"hidden"}}),[`${mt}-progress`]:{bottom:pn,width:`calc(100% - ${zt.paddingSM*2}px)`,marginTop:0,paddingInlineStart:dn+zt.paddingXS}},[`${mt}-error`]:{borderColor:zt.colorError,[`${mt}-thumbnail ${Vt}`]:{[`svg path[fill='${ln.blue[0]}']`]:{fill:zt.colorErrorBg},[`svg path[fill='${ln.blue.primary}']`]:{fill:zt.colorError}}},[`${mt}-uploading`]:{borderStyle:"dashed",[`${mt}-name`]:{marginBottom:pn}}},[`${en}${en}-picture-circle ${mt}`]:{[`&, &::before, ${mt}-thumbnail`]:{borderRadius:"50%"}}}}},De=zt=>{const{componentCls:Kt,iconCls:Vt,fontSizeLG:dn,colorTextLightSolid:pn}=zt,en=`${Kt}-list`,mt=`${en}-item`,pt=zt.uploadPicCardSize;return{[` + ${Kt}-wrapper${Kt}-picture-card-wrapper, + ${Kt}-wrapper${Kt}-picture-circle-wrapper + `]:Object.assign(Object.assign({},(0,Ve.dF)()),{display:"inline-block",width:"100%",[`${Kt}${Kt}-select`]:{width:pt,height:pt,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}`,[`> ${Kt}`]:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center"},[`&:not(${Kt}-disabled):hover`]:{borderColor:zt.colorPrimary}},[`${en}${en}-picture-card, ${en}${en}-picture-circle`]:{[`${en}-item-container`]:{display:"inline-block",width:pt,height:pt,marginBlock:`0 ${zt.marginXS}px`,marginInline:`0 ${zt.marginXS}px`,verticalAlign:"top"},"&::after":{display:"none"},[mt]:{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:'" "'}},[`${mt}:hover`]:{[`&::before, ${mt}-actions`]:{opacity:1}},[`${mt}-actions`]:{position:"absolute",insetInlineStart:0,zIndex:10,width:"100%",whiteSpace:"nowrap",textAlign:"center",opacity:0,transition:`all ${zt.motionDurationSlow}`,[`${Vt}-eye, ${Vt}-download, ${Vt}-delete`]:{zIndex:10,width:dn,margin:`0 ${zt.marginXXS}px`,fontSize:dn,cursor:"pointer",transition:`all ${zt.motionDurationSlow}`,svg:{verticalAlign:"baseline"}}},[`${mt}-actions, ${mt}-actions:hover`]:{[`${Vt}-eye, ${Vt}-download, ${Vt}-delete`]:{color:new Wt.C(pn).setAlpha(.65).toRgbString(),"&:hover":{color:pn}}},[`${mt}-thumbnail, ${mt}-thumbnail img`]:{position:"static",display:"block",width:"100%",height:"100%",objectFit:"contain"},[`${mt}-name`]:{display:"none",textAlign:"center"},[`${mt}-file + ${mt}-name`]:{position:"absolute",bottom:zt.margin,display:"block",width:`calc(100% - ${zt.paddingXS*2}px)`},[`${mt}-uploading`]:{[`&${mt}`]:{backgroundColor:zt.colorFillAlter},[`&::before, ${Vt}-eye, ${Vt}-download, ${Vt}-delete`]:{display:"none"}},[`${mt}-progress`]:{bottom:zt.marginXL,width:`calc(100% - ${zt.paddingXS*2}px)`,paddingInlineStart:0}}}),[`${Kt}-wrapper${Kt}-picture-circle-wrapper`]:{[`${Kt}${Kt}-select`]:{borderRadius:"50%"}}}};var Ft=zt=>{const{componentCls:Kt}=zt;return{[`${Kt}-rtl`]:{direction:"rtl"}}};const Xe=zt=>{const{componentCls:Kt,colorTextDisabled:Vt}=zt;return{[`${Kt}-wrapper`]:Object.assign(Object.assign({},(0,Ve.Wf)(zt)),{[Kt]:{outline:0,"input[type='file']":{cursor:"pointer"}},[`${Kt}-select`]:{display:"inline-block"},[`${Kt}-disabled`]:{color:Vt,cursor:"not-allowed"}})}};var at=(0,Oe.Z)("Upload",zt=>{const{fontSizeHeading3:Kt,fontSize:Vt,lineHeight:dn,lineWidth:pn,controlHeightLG:en}=zt,mt=Math.round(Vt*dn),pt=(0,Me.TS)(zt,{uploadThumbnailSize:Kt*2,uploadProgressOffset:mt/2+pn,uploadPicCardSize:en*2.55});return[Xe(pt),Te(pt),$e(pt),De(pt),nt(pt),fn(pt),Ft(pt),(0,tt.Z)(pt)]},zt=>({actionsColor:zt.colorTextDescription})),Bt=function(zt,Kt,Vt,dn){function pn(en){return en instanceof Vt?en:new Vt(function(mt){mt(en)})}return new(Vt||(Vt=Promise))(function(en,mt){function pt(Yt){try{qt(dn.next(Yt))}catch(mn){mt(mn)}}function an(Yt){try{qt(dn.throw(Yt))}catch(mn){mt(mn)}}function qt(Yt){Yt.done?en(Yt.value):pn(Yt.value).then(pt,an)}qt((dn=dn.apply(zt,Kt||[])).next())})};const Zt=`__LIST_IGNORE_${Date.now()}__`,Qt=(zt,Kt)=>{const{fileList:Vt,defaultFileList:dn,onRemove:pn,showUploadList:en=!0,listType:mt="text",onPreview:pt,onDownload:an,onChange:qt,onDrop:Yt,previewFile:mn,disabled:gn,locale:kn,iconRender:tr,isImageUrl:ft,progress:vt,prefixCls:St,className:Mt,type:Nt="select",children:sn,style:Xt,itemRender:Cn,maxCount:Ln,data:hr={},multiple:qn=!1,action:Nn="",accept:$r="",supportServerRender:gr=!0}=zt,aa=a.useContext(_.Z),Pr=gn!=null?gn:aa,[Fn,En]=(0,H.Z)(dn||[],{value:Vt,postState:Hn=>Hn!=null?Hn:[]}),[wn,ar]=a.useState("drop"),fr=a.useRef(null);a.useMemo(()=>{const Hn=Date.now();(Vt||[]).forEach((Kn,Sr)=>{!Kn.uid&&!Object.isFrozen(Kn)&&(Kn.uid=`__AUTO__${Hn}_${Sr}__`)})},[Vt]);const Kr=(Hn,Kn,Sr)=>{let kr=(0,t.Z)(Kn),La=!1;Ln===1?kr=kr.slice(-1):Ln&&(La=kr.length>Ln,kr=kr.slice(0,Ln)),(0,Y.flushSync)(()=>{En(kr)});const oa={file:Hn,fileList:kr};Sr&&(oa.event=Sr),(!La||kr.some(Xr=>Xr.uid===Hn.uid))&&(0,Y.flushSync)(()=>{qt==null||qt(oa)})},ea=(Hn,Kn)=>Bt(void 0,void 0,void 0,function*(){const{beforeUpload:Sr,transformFile:kr}=zt;let La=Hn;if(Sr){const oa=yield Sr(Hn,Kn);if(oa===!1)return!1;if(delete Hn[Zt],oa===Zt)return Object.defineProperty(Hn,Zt,{value:!0,configurable:!0}),!1;typeof oa=="object"&&oa&&(La=oa)}return kr&&(La=yield kr(La)),La}),ya=Hn=>{const Kn=Hn.filter(La=>!La.file[Zt]);if(!Kn.length)return;const Sr=Kn.map(La=>oe(La.file));let kr=(0,t.Z)(Fn);Sr.forEach(La=>{kr=ve(La,kr)}),Sr.forEach((La,oa)=>{let Xr=La;if(Kn[oa].parsedFile)La.status="uploading";else{const{originFileObj:ta}=La;let xr;try{xr=new File([ta],ta.name,{type:ta.type})}catch(Zr){xr=new Blob([ta],{type:ta.type}),xr.name=ta.name,xr.lastModifiedDate=new Date,xr.lastModified=new Date().getTime()}xr.uid=La.uid,Xr=xr}Kr(Xr,kr)})},vr=(Hn,Kn,Sr)=>{try{typeof Hn=="string"&&(Hn=JSON.parse(Hn))}catch(oa){}if(!te(Kn,Fn))return;const kr=oe(Kn);kr.status="done",kr.percent=100,kr.response=Hn,kr.xhr=Sr;const La=ve(kr,Fn);Kr(kr,La)},zr=(Hn,Kn)=>{if(!te(Kn,Fn))return;const Sr=oe(Kn);Sr.status="uploading",Sr.percent=Hn.percent;const kr=ve(Sr,Fn);Kr(Sr,kr,Hn)},Oa=(Hn,Kn,Sr)=>{if(!te(Sr,Fn))return;const kr=oe(Sr);kr.error=Hn,kr.response=Kn,kr.status="error";const La=ve(kr,Fn);Kr(kr,La)},va=Hn=>{let Kn;Promise.resolve(typeof pn=="function"?pn(Hn):pn).then(Sr=>{var kr;if(Sr===!1)return;const La=me(Hn,Fn);La&&(Kn=Object.assign(Object.assign({},Hn),{status:"removed"}),Fn==null||Fn.forEach(oa=>{const Xr=Kn.uid!==void 0?"uid":"name";oa[Xr]===Kn[Xr]&&!Object.isFrozen(oa)&&(oa.status="removed")}),(kr=fr.current)===null||kr===void 0||kr.abort(Kn),Kr(Kn,La))})},Vn=Hn=>{ar(Hn.type),Hn.type==="drop"&&(Yt==null||Yt(Hn))};a.useImperativeHandle(Kt,()=>({onBatchStart:ya,onSuccess:vr,onProgress:zr,onError:Oa,fileList:Fn,upload:fr.current}));const{getPrefixCls:Bn,direction:pr,upload:qr}=a.useContext(D.E_),Er=Bn("upload",St),At=Object.assign(Object.assign({onBatchStart:ya,onError:Oa,onProgress:zr,onSuccess:vr},zt),{data:hr,multiple:qn,action:Nn,accept:$r,supportServerRender:gr,prefixCls:Er,disabled:Pr,beforeUpload:ea,onChange:void 0});delete At.className,delete At.style,(!sn||Pr)&&delete At.id;const[tn,yn]=at(Er),[lo]=(0,ue.Z)("Upload",be.Z.Upload),{showRemoveIcon:Ao,showPreviewIcon:Ka,showDownloadIcon:Qa,removeIcon:qa,previewIcon:$o,downloadIcon:_o}=typeof en=="boolean"?{}:en,yo=(Hn,Kn)=>en?a.createElement(qe,{prefixCls:Er,listType:mt,items:Fn,previewFile:mn,onPreview:pt,onDownload:an,onRemove:va,showRemoveIcon:!Pr&&Ao,showPreviewIcon:Ka,showDownloadIcon:Qa,removeIcon:qa,previewIcon:$o,downloadIcon:_o,iconRender:tr,locale:Object.assign(Object.assign({},lo),kn),isImageUrl:ft,progress:vt,appendAction:Hn,appendActionVisible:Kn,itemRender:Cn,disabled:Pr}):Hn,ct=s()(`${Er}-wrapper`,Mt,yn,qr==null?void 0:qr.className,{[`${Er}-rtl`]:pr==="rtl",[`${Er}-picture-card-wrapper`]:mt==="picture-card",[`${Er}-picture-circle-wrapper`]:mt==="picture-circle"}),xt=Object.assign(Object.assign({},qr==null?void 0:qr.style),Xt);if(Nt==="drag"){const Hn=s()(yn,Er,`${Er}-drag`,{[`${Er}-drag-uploading`]:Fn.some(Kn=>Kn.status==="uploading"),[`${Er}-drag-hover`]:wn==="dragover",[`${Er}-disabled`]:Pr,[`${Er}-rtl`]:pr==="rtl"});return tn(a.createElement("span",{className:ct},a.createElement("div",{className:Hn,style:xt,onDrop:Vn,onDragOver:Vn,onDragLeave:Vn},a.createElement(I,Object.assign({},At,{ref:fr,className:`${Er}-btn`}),a.createElement("div",{className:`${Er}-drag-container`},sn))),yo()))}const Ce=s()(Er,`${Er}-select`,{[`${Er}-disabled`]:Pr}),xn=(Hn=>a.createElement("div",{className:Ce,style:Hn},a.createElement(I,Object.assign({},At,{ref:fr}))))(sn?void 0:{display:"none"});return tn(mt==="picture-card"||mt==="picture-circle"?a.createElement("span",{className:ct},yo(xn,!!sn)):a.createElement("span",{className:ct},xn,yo()))};var hn=a.forwardRef(Qt),on=function(zt,Kt){var Vt={};for(var dn in zt)Object.prototype.hasOwnProperty.call(zt,dn)&&Kt.indexOf(dn)<0&&(Vt[dn]=zt[dn]);if(zt!=null&&typeof Object.getOwnPropertySymbols=="function")for(var pn=0,dn=Object.getOwnPropertySymbols(zt);pn{var{style:Vt,height:dn}=zt,pn=on(zt,["style","height"]);return a.createElement(hn,Object.assign({ref:Kt},pn,{type:"drag",style:Object.assign(Object.assign({},Vt),{height:dn})}))});const lr=hn;lr.Dragger=zn,lr.LIST_IGNORE=Zt;var ur=lr},93430:function(M,b,e){"use strict";e.d(b,{Z:function(){return t}});var a="5.8.5",t=a},78635:function(M,b,e){"use strict";e.d(b,{Z:function(){return W}});var a=e(73656);function t(){return t=Object.assign?Object.assign.bind():function(R){for(var N=1;N1?N-1:0),ve=1;ve=me)return xe;switch(xe){case"%s":return String(oe[te++]);case"%d":return Number(oe[te++]);case"%j":try{return JSON.stringify(oe[te++])}catch(Se){return"[Circular]"}break;default:return xe}});return we}return R}function j(R){return R==="string"||R==="url"||R==="hex"||R==="email"||R==="date"||R==="pattern"}function x(R,N){return!!(R==null||N==="array"&&Array.isArray(R)&&!R.length||j(N)&&typeof R=="string"&&!R)}function Z(R,N,oe){var ve=[],te=0,me=R.length;function we(xe){ve.push.apply(ve,xe||[]),te++,te===me&&oe(ve)}R.forEach(function(xe){N(xe,we)})}function B(R,N,oe){var ve=0,te=R.length;function me(we){if(we&&we.length){oe(we);return}var xe=ve;ve=ve+1,xe()\[\]\\.,;:\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},Q={integer:function(N){return Q.number(N)&&parseInt(N,10)===N},float:function(N){return Q.number(N)&&!Q.integer(N)},array:function(N){return Array.isArray(N)},regexp:function(N){if(N instanceof RegExp)return!0;try{return!!new RegExp(N)}catch(oe){return!1}},date:function(N){return typeof N.getTime=="function"&&typeof N.getMonth=="function"&&typeof N.getYear=="function"&&!isNaN(N.getTime())},number:function(N){return isNaN(N)?!1:typeof N=="number"},object:function(N){return typeof N=="object"&&!Q.array(N)},method:function(N){return typeof N=="function"},email:function(N){return typeof N=="string"&&N.length<=320&&!!N.match(le.email)},url:function(N){return typeof N=="string"&&N.length<=2048&&!!N.match(ee())},hex:function(N){return typeof N=="string"&&!!N.match(le.hex)}},G=function(N,oe,ve,te,me){if(N.required&&oe===void 0){P(N,oe,ve,te,me);return}var we=["integer","float","array","regexp","object","method","email","number","date","url","hex"],xe=N.type;we.indexOf(xe)>-1?Q[xe](oe)||te.push(S(me.messages.types[xe],N.fullField,N.type)):xe&&typeof oe!==N.type&&te.push(S(me.messages.types[xe],N.fullField,N.type))},q=function(N,oe,ve,te,me){var we=typeof N.len=="number",xe=typeof N.min=="number",Se=typeof N.max=="number",ke=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,ne=oe,re=null,se=typeof oe=="number",Ee=typeof oe=="string",Re=Array.isArray(oe);if(se?re="number":Ee?re="string":Re&&(re="array"),!re)return!1;Re&&(ne=oe.length),Ee&&(ne=oe.replace(ke,"_").length),we?ne!==N.len&&te.push(S(me.messages[re].len,N.fullField,N.len)):xe&&!Se&&neN.max?te.push(S(me.messages[re].max,N.fullField,N.max)):xe&&Se&&(neN.max)&&te.push(S(me.messages[re].range,N.fullField,N.min,N.max))},I="enum",H=function(N,oe,ve,te,me){N[I]=Array.isArray(N[I])?N[I]:[],N[I].indexOf(oe)===-1&&te.push(S(me.messages[I],N.fullField,N[I].join(", ")))},Y=function(N,oe,ve,te,me){if(N.pattern){if(N.pattern instanceof RegExp)N.pattern.lastIndex=0,N.pattern.test(oe)||te.push(S(me.messages.pattern.mismatch,N.fullField,oe,N.pattern));else if(typeof N.pattern=="string"){var we=new RegExp(N.pattern);we.test(oe)||te.push(S(me.messages.pattern.mismatch,N.fullField,oe,N.pattern))}}},D={required:P,whitespace:K,type:G,range:q,enum:H,pattern:Y},_=function(N,oe,ve,te,me){var we=[],xe=N.required||!N.required&&te.hasOwnProperty(N.field);if(xe){if(x(oe,"string")&&!N.required)return ve();D.required(N,oe,te,we,me,"string"),x(oe,"string")||(D.type(N,oe,te,we,me),D.range(N,oe,te,we,me),D.pattern(N,oe,te,we,me),N.whitespace===!0&&D.whitespace(N,oe,te,we,me))}ve(we)},ue=function(N,oe,ve,te,me){var we=[],xe=N.required||!N.required&&te.hasOwnProperty(N.field);if(xe){if(x(oe)&&!N.required)return ve();D.required(N,oe,te,we,me),oe!==void 0&&D.type(N,oe,te,we,me)}ve(we)},be=function(N,oe,ve,te,me){var we=[],xe=N.required||!N.required&&te.hasOwnProperty(N.field);if(xe){if(oe===""&&(oe=void 0),x(oe)&&!N.required)return ve();D.required(N,oe,te,we,me),oe!==void 0&&(D.type(N,oe,te,we,me),D.range(N,oe,te,we,me))}ve(we)},ce=function(N,oe,ve,te,me){var we=[],xe=N.required||!N.required&&te.hasOwnProperty(N.field);if(xe){if(x(oe)&&!N.required)return ve();D.required(N,oe,te,we,me),oe!==void 0&&D.type(N,oe,te,we,me)}ve(we)},he=function(N,oe,ve,te,me){var we=[],xe=N.required||!N.required&&te.hasOwnProperty(N.field);if(xe){if(x(oe)&&!N.required)return ve();D.required(N,oe,te,we,me),x(oe)||D.type(N,oe,te,we,me)}ve(we)},Fe=function(N,oe,ve,te,me){var we=[],xe=N.required||!N.required&&te.hasOwnProperty(N.field);if(xe){if(x(oe)&&!N.required)return ve();D.required(N,oe,te,we,me),oe!==void 0&&(D.type(N,oe,te,we,me),D.range(N,oe,te,we,me))}ve(we)},Je=function(N,oe,ve,te,me){var we=[],xe=N.required||!N.required&&te.hasOwnProperty(N.field);if(xe){if(x(oe)&&!N.required)return ve();D.required(N,oe,te,we,me),oe!==void 0&&(D.type(N,oe,te,we,me),D.range(N,oe,te,we,me))}ve(we)},et=function(N,oe,ve,te,me){var we=[],xe=N.required||!N.required&&te.hasOwnProperty(N.field);if(xe){if(oe==null&&!N.required)return ve();D.required(N,oe,te,we,me,"array"),oe!=null&&(D.type(N,oe,te,we,me),D.range(N,oe,te,we,me))}ve(we)},ae=function(N,oe,ve,te,me){var we=[],xe=N.required||!N.required&&te.hasOwnProperty(N.field);if(xe){if(x(oe)&&!N.required)return ve();D.required(N,oe,te,we,me),oe!==void 0&&D.type(N,oe,te,we,me)}ve(we)},yt="enum",Pt=function(N,oe,ve,te,me){var we=[],xe=N.required||!N.required&&te.hasOwnProperty(N.field);if(xe){if(x(oe)&&!N.required)return ve();D.required(N,oe,te,we,me),oe!==void 0&&D[yt](N,oe,te,we,me)}ve(we)},bt=function(N,oe,ve,te,me){var we=[],xe=N.required||!N.required&&te.hasOwnProperty(N.field);if(xe){if(x(oe,"string")&&!N.required)return ve();D.required(N,oe,te,we,me),x(oe,"string")||D.pattern(N,oe,te,we,me)}ve(we)},Ct=function(N,oe,ve,te,me){var we=[],xe=N.required||!N.required&&te.hasOwnProperty(N.field);if(xe){if(x(oe,"date")&&!N.required)return ve();if(D.required(N,oe,te,we,me),!x(oe,"date")){var Se;oe instanceof Date?Se=oe:Se=new Date(oe),D.type(N,Se,te,we,me),Se&&D.range(N,Se.getTime(),te,we,me)}}ve(we)},Le=function(N,oe,ve,te,me){var we=[],xe=Array.isArray(oe)?"array":typeof oe;D.required(N,oe,te,we,me,xe),ve(we)},Ke=function(N,oe,ve,te,me){var we=N.type,xe=[],Se=N.required||!N.required&&te.hasOwnProperty(N.field);if(Se){if(x(oe,we)&&!N.required)return ve();D.required(N,oe,te,xe,me,we),x(oe,we)||D.type(N,oe,te,xe,me)}ve(xe)},st=function(N,oe,ve,te,me){var we=[],xe=N.required||!N.required&&te.hasOwnProperty(N.field);if(xe){if(x(oe)&&!N.required)return ve();D.required(N,oe,te,we,me)}ve(we)},We={string:_,method:ue,number:be,boolean:ce,regexp:he,integer:Fe,float:Je,array:et,object:ae,enum:Pt,pattern:bt,date:Ct,url:Ke,hex:Ke,email:Ke,required:Le,any:st};function ge(){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 N=JSON.parse(JSON.stringify(this));return N.clone=this.clone,N}}}var X=ge(),W=function(){function R(oe){this.rules=null,this._messages=X,this.define(oe)}var N=R.prototype;return N.define=function(ve){var te=this;if(!ve)throw new Error("Cannot configure a schema with no rules");if(typeof ve!="object"||Array.isArray(ve))throw new Error("Rules must be an object");this.rules={},Object.keys(ve).forEach(function(me){var we=ve[me];te.rules[me]=Array.isArray(we)?we:[we]})},N.messages=function(ve){return ve&&(this._messages=$(ge(),ve)),this._messages},N.validate=function(ve,te,me){var we=this;te===void 0&&(te={}),me===void 0&&(me=function(){});var xe=ve,Se=te,ke=me;if(typeof Se=="function"&&(ke=Se,Se={}),!this.rules||Object.keys(this.rules).length===0)return ke&&ke(null,xe),Promise.resolve(xe);function ne(fe){var _e=[],Pe={};function ze(gt){if(Array.isArray(gt)){var ut;_e=(ut=_e).concat.apply(ut,gt)}else _e.push(gt)}for(var Qe=0;Qe=200&&S<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};t.forEach(["delete","get","head"],function(S){y.headers[S]={}}),t.forEach(["post","put","patch"],function(S){y.headers[S]=t.merge(l)}),M.exports=y},30872:function(M){"use strict";M.exports={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1}},93424:function(M){M.exports={version:"0.27.2"}},22154:function(M){"use strict";M.exports=function(e,a){return function(){for(var o=new Array(arguments.length),s=0;s=0)return;c==="set-cookie"?n[c]=(n[c]?n[c]:[]).concat([l]):n[c]=n[c]?n[c]+", "+l:l}}),n}},17437:function(M){"use strict";M.exports=function(e){var a=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return a&&a[1]||""}},64476:function(M){"use strict";M.exports=function(e){return function(t){return e.apply(null,t)}}},90792:function(M,b,e){"use strict";var a=e(21468).lW,t=e(82774);function o(s,n){n=n||new FormData;var c=[];function l(h){return h===null?"":t.isDate(h)?h.toISOString():t.isArrayBuffer(h)||t.isTypedArray(h)?typeof Blob=="function"?new Blob([h]):a.from(h):h}function d(h,p){if(t.isPlainObject(h)||t.isArray(h)){if(c.indexOf(h)!==-1)throw Error("Circular reference detected in "+p);c.push(h),t.forEach(h,function(g,S){if(!t.isUndefined(g)){var j=p?p+"."+S:S,x;if(g&&!p&&typeof g=="object"){if(t.endsWith(S,"{}"))g=JSON.stringify(g);else if(t.endsWith(S,"[]")&&(x=t.toArray(g))){x.forEach(function(Z){!t.isUndefined(Z)&&n.append(j,l(Z))});return}}d(g,j)}}),c.pop()}else n.append(p,l(h))}return d(s),n}M.exports=o},73215:function(M,b,e){"use strict";var a=e(93424).version,t=e(44936),o={};["object","boolean","number","function","string","symbol"].forEach(function(c,l){o[c]=function(h){return typeof h===c||"a"+(l<1?"n ":" ")+c}});var s={};o.transitional=function(l,d,h){function p(y,g){return"[Axios v"+a+"] Transitional option '"+y+"'"+g+(h?". "+h:"")}return function(y,g,S){if(l===!1)throw new t(p(g," has been removed"+(d?" in "+d:"")),t.ERR_DEPRECATED);return d&&!s[g]&&(s[g]=!0,console.warn(p(g," has been deprecated since v"+d+" and will be removed in the near future"))),l?l(y,g,S):!0}};function n(c,l,d){if(typeof c!="object")throw new t("options must be an object",t.ERR_BAD_OPTION_VALUE);for(var h=Object.keys(c),p=h.length;p-- >0;){var y=h[p],g=l[y];if(g){var S=c[y],j=S===void 0||g(S,y,c);if(j!==!0)throw new t("option "+y+" must be "+j,t.ERR_BAD_OPTION_VALUE);continue}if(d!==!0)throw new t("Unknown option "+y,t.ERR_BAD_OPTION)}}M.exports={assertOptions:n,validators:o}},82774:function(M,b,e){"use strict";var a=e(22154),t=Object.prototype.toString,o=function(I){return function(H){var Y=t.call(H);return I[Y]||(I[Y]=Y.slice(8,-1).toLowerCase())}}(Object.create(null));function s(I){return I=I.toLowerCase(),function(Y){return o(Y)===I}}function n(I){return Array.isArray(I)}function c(I){return typeof I=="undefined"}function l(I){return I!==null&&!c(I)&&I.constructor!==null&&!c(I.constructor)&&typeof I.constructor.isBuffer=="function"&&I.constructor.isBuffer(I)}var d=s("ArrayBuffer");function h(I){var H;return typeof ArrayBuffer!="undefined"&&ArrayBuffer.isView?H=ArrayBuffer.isView(I):H=I&&I.buffer&&d(I.buffer),H}function p(I){return typeof I=="string"}function y(I){return typeof I=="number"}function g(I){return I!==null&&typeof I=="object"}function S(I){if(o(I)!=="object")return!1;var H=Object.getPrototypeOf(I);return H===null||H===Object.prototype}var j=s("Date"),x=s("File"),Z=s("Blob"),B=s("FileList");function w(I){return t.call(I)==="[object Function]"}function T(I){return g(I)&&w(I.pipe)}function F(I){var H="[object FormData]";return I&&(typeof FormData=="function"&&I instanceof FormData||t.call(I)===H||w(I.toString)&&I.toString()===H)}var A=s("URLSearchParams");function L(I){return I.trim?I.trim():I.replace(/^\s+|\s+$/g,"")}function O(){return typeof navigator!="undefined"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window!="undefined"&&typeof document!="undefined"}function $(I,H){if(!(I===null||typeof I=="undefined"))if(typeof I!="object"&&(I=[I]),n(I))for(var Y=0,D=I.length;Y0;)ue=D[_],be[ue]||(H[ue]=I[ue],be[ue]=!0);I=Object.getPrototypeOf(I)}while(I&&(!Y||Y(I,H))&&I!==Object.prototype);return H}function Q(I,H,Y){I=String(I),(Y===void 0||Y>I.length)&&(Y=I.length),Y-=H.length;var D=I.indexOf(H,Y);return D!==-1&&D===Y}function G(I){if(!I)return null;var H=I.length;if(c(H))return null;for(var Y=new Array(H);H-- >0;)Y[H]=I[H];return Y}var q=function(I){return function(H){return I&&H instanceof I}}(typeof Uint8Array!="undefined"&&Object.getPrototypeOf(Uint8Array));M.exports={isArray:n,isArrayBuffer:d,isBuffer:l,isFormData:F,isArrayBufferView:h,isString:p,isNumber:y,isObject:g,isPlainObject:S,isUndefined:c,isDate:j,isFile:x,isBlob:Z,isFunction:w,isStream:T,isURLSearchParams:A,isStandardBrowserEnv:O,forEach:$,merge:P,extend:K,trim:L,stripBOM:U,inherits:ee,toFlatObject:le,kindOf:o,kindOfTest:s,endsWith:Q,toArray:G,isTypedArray:q,isFileList:B}},26446:function(M,b){"use strict";b.byteLength=l,b.toByteArray=h,b.fromByteArray=g;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 x=S.indexOf("=");x===-1&&(x=j);var Z=x===j?0:4-x%4;return[x,Z]}function l(S){var j=c(S),x=j[0],Z=j[1];return(x+Z)*3/4-Z}function d(S,j,x){return(j+x)*3/4-x}function h(S){var j,x=c(S),Z=x[0],B=x[1],w=new t(d(S,Z,B)),T=0,F=B>0?Z-4:Z,A;for(A=0;A>16&255,w[T++]=j>>8&255,w[T++]=j&255;return B===2&&(j=a[S.charCodeAt(A)]<<2|a[S.charCodeAt(A+1)]>>4,w[T++]=j&255),B===1&&(j=a[S.charCodeAt(A)]<<10|a[S.charCodeAt(A+1)]<<4|a[S.charCodeAt(A+2)]>>2,w[T++]=j>>8&255,w[T++]=j&255),w}function p(S){return e[S>>18&63]+e[S>>12&63]+e[S>>6&63]+e[S&63]}function y(S,j,x){for(var Z,B=[],w=j;wF?F:T+w));return Z===1?(j=S[x-1],B.push(e[j>>2]+e[j<<4&63]+"==")):Z===2&&(j=(S[x-2]<<8)+S[x-1],B.push(e[j>>10]+e[j>>4&63]+e[j<<2&63]+"=")),B.join("")}},21468:function(M,b,e){"use strict";var a;var t=e(26446),o=e(47164),s=e(23161);b.lW=d,a=w,b.h2=50,d.TYPED_ARRAY_SUPPORT=e.g.TYPED_ARRAY_SUPPORT!==void 0?e.g.TYPED_ARRAY_SUPPORT:n(),a=c();function n(){try{var X=new Uint8Array(1);return X.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},X.foo()===42&&typeof X.subarray=="function"&&X.subarray(1,1).byteLength===0}catch(W){return!1}}function c(){return d.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function l(X,W){if(c()=c())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+c().toString(16)+" bytes");return X|0}function w(X){return+X!=X&&(X=0),d.alloc(+X)}d.isBuffer=function(W){return!!(W!=null&&W._isBuffer)},d.compare=function(W,R){if(!d.isBuffer(W)||!d.isBuffer(R))throw new TypeError("Arguments must be Buffers");if(W===R)return 0;for(var N=W.length,oe=R.length,ve=0,te=Math.min(N,oe);ve>>1;case"base64":return st(X).length;default:if(N)return Ct(X).length;W=(""+W).toLowerCase(),N=!0}}d.byteLength=T;function F(X,W,R){var N=!1;if((W===void 0||W<0)&&(W=0),W>this.length||((R===void 0||R>this.length)&&(R=this.length),R<=0)||(R>>>=0,W>>>=0,R<=W))return"";for(X||(X="utf8");;)switch(X){case"hex":return D(this,W,R);case"utf8":case"utf-8":return G(this,W,R);case"ascii":return H(this,W,R);case"latin1":case"binary":return Y(this,W,R);case"base64":return Q(this,W,R);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,W,R);default:if(N)throw new TypeError("Unknown encoding: "+X);X=(X+"").toLowerCase(),N=!0}}d.prototype._isBuffer=!0;function A(X,W,R){var N=X[W];X[W]=X[R],X[R]=N}d.prototype.swap16=function(){var W=this.length;if(W%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var R=0;R0&&(W=this.toString("hex",0,R).match(/.{2}/g).join(" "),this.length>R&&(W+=" ... ")),""},d.prototype.compare=function(W,R,N,oe,ve){if(!d.isBuffer(W))throw new TypeError("Argument must be a Buffer");if(R===void 0&&(R=0),N===void 0&&(N=W?W.length:0),oe===void 0&&(oe=0),ve===void 0&&(ve=this.length),R<0||N>W.length||oe<0||ve>this.length)throw new RangeError("out of range index");if(oe>=ve&&R>=N)return 0;if(oe>=ve)return-1;if(R>=N)return 1;if(R>>>=0,N>>>=0,oe>>>=0,ve>>>=0,this===W)return 0;for(var te=ve-oe,me=N-R,we=Math.min(te,me),xe=this.slice(oe,ve),Se=W.slice(R,N),ke=0;ke2147483647?R=2147483647:R<-2147483648&&(R=-2147483648),R=+R,isNaN(R)&&(R=oe?0:X.length-1),R<0&&(R=X.length+R),R>=X.length){if(oe)return-1;R=X.length-1}else if(R<0)if(oe)R=0;else return-1;if(typeof W=="string"&&(W=d.from(W,N)),d.isBuffer(W))return W.length===0?-1:O(X,W,R,N,oe);if(typeof W=="number")return W=W&255,d.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?oe?Uint8Array.prototype.indexOf.call(X,W,R):Uint8Array.prototype.lastIndexOf.call(X,W,R):O(X,[W],R,N,oe);throw new TypeError("val must be string, number or Buffer")}function O(X,W,R,N,oe){var ve=1,te=X.length,me=W.length;if(N!==void 0&&(N=String(N).toLowerCase(),N==="ucs2"||N==="ucs-2"||N==="utf16le"||N==="utf-16le")){if(X.length<2||W.length<2)return-1;ve=2,te/=2,me/=2,R/=2}function we(re,se){return ve===1?re[se]:re.readUInt16BE(se*ve)}var xe;if(oe){var Se=-1;for(xe=R;xete&&(R=te-me),xe=R;xe>=0;xe--){for(var ke=!0,ne=0;neoe&&(N=oe)):N=oe;var ve=W.length;if(ve%2!==0)throw new TypeError("Invalid hex string");N>ve/2&&(N=ve/2);for(var te=0;teve)&&(N=ve),W.length>0&&(N<0||R<0)||R>this.length)throw new RangeError("Attempt to write outside buffer bounds");oe||(oe="utf8");for(var te=!1;;)switch(oe){case"hex":return $(this,W,R,N);case"utf8":case"utf-8":return P(this,W,R,N);case"ascii":return K(this,W,R,N);case"latin1":case"binary":return U(this,W,R,N);case"base64":return ee(this,W,R,N);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return le(this,W,R,N);default:if(te)throw new TypeError("Unknown encoding: "+oe);oe=(""+oe).toLowerCase(),te=!0}},d.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Q(X,W,R){return W===0&&R===X.length?t.fromByteArray(X):t.fromByteArray(X.slice(W,R))}function G(X,W,R){R=Math.min(X.length,R);for(var N=[],oe=W;oe239?4:ve>223?3:ve>191?2:1;if(oe+me<=R){var we,xe,Se,ke;switch(me){case 1:ve<128&&(te=ve);break;case 2:we=X[oe+1],(we&192)===128&&(ke=(ve&31)<<6|we&63,ke>127&&(te=ke));break;case 3:we=X[oe+1],xe=X[oe+2],(we&192)===128&&(xe&192)===128&&(ke=(ve&15)<<12|(we&63)<<6|xe&63,ke>2047&&(ke<55296||ke>57343)&&(te=ke));break;case 4:we=X[oe+1],xe=X[oe+2],Se=X[oe+3],(we&192)===128&&(xe&192)===128&&(Se&192)===128&&(ke=(ve&15)<<18|(we&63)<<12|(xe&63)<<6|Se&63,ke>65535&&ke<1114112&&(te=ke))}}te===null?(te=65533,me=1):te>65535&&(te-=65536,N.push(te>>>10&1023|55296),te=56320|te&1023),N.push(te),oe+=me}return I(N)}var q=4096;function I(X){var W=X.length;if(W<=q)return String.fromCharCode.apply(String,X);for(var R="",N=0;NN)&&(R=N);for(var oe="",ve=W;veN&&(W=N),R<0?(R+=N,R<0&&(R=0)):R>N&&(R=N),RR)throw new RangeError("Trying to access beyond buffer length")}d.prototype.readUIntLE=function(W,R,N){W=W|0,R=R|0,N||ue(W,R,this.length);for(var oe=this[W],ve=1,te=0;++te0&&(ve*=256);)oe+=this[W+--R]*ve;return oe},d.prototype.readUInt8=function(W,R){return R||ue(W,1,this.length),this[W]},d.prototype.readUInt16LE=function(W,R){return R||ue(W,2,this.length),this[W]|this[W+1]<<8},d.prototype.readUInt16BE=function(W,R){return R||ue(W,2,this.length),this[W]<<8|this[W+1]},d.prototype.readUInt32LE=function(W,R){return R||ue(W,4,this.length),(this[W]|this[W+1]<<8|this[W+2]<<16)+this[W+3]*16777216},d.prototype.readUInt32BE=function(W,R){return R||ue(W,4,this.length),this[W]*16777216+(this[W+1]<<16|this[W+2]<<8|this[W+3])},d.prototype.readIntLE=function(W,R,N){W=W|0,R=R|0,N||ue(W,R,this.length);for(var oe=this[W],ve=1,te=0;++te=ve&&(oe-=Math.pow(2,8*R)),oe},d.prototype.readIntBE=function(W,R,N){W=W|0,R=R|0,N||ue(W,R,this.length);for(var oe=R,ve=1,te=this[W+--oe];oe>0&&(ve*=256);)te+=this[W+--oe]*ve;return ve*=128,te>=ve&&(te-=Math.pow(2,8*R)),te},d.prototype.readInt8=function(W,R){return R||ue(W,1,this.length),this[W]&128?(255-this[W]+1)*-1:this[W]},d.prototype.readInt16LE=function(W,R){R||ue(W,2,this.length);var N=this[W]|this[W+1]<<8;return N&32768?N|4294901760:N},d.prototype.readInt16BE=function(W,R){R||ue(W,2,this.length);var N=this[W+1]|this[W]<<8;return N&32768?N|4294901760:N},d.prototype.readInt32LE=function(W,R){return R||ue(W,4,this.length),this[W]|this[W+1]<<8|this[W+2]<<16|this[W+3]<<24},d.prototype.readInt32BE=function(W,R){return R||ue(W,4,this.length),this[W]<<24|this[W+1]<<16|this[W+2]<<8|this[W+3]},d.prototype.readFloatLE=function(W,R){return R||ue(W,4,this.length),o.read(this,W,!0,23,4)},d.prototype.readFloatBE=function(W,R){return R||ue(W,4,this.length),o.read(this,W,!1,23,4)},d.prototype.readDoubleLE=function(W,R){return R||ue(W,8,this.length),o.read(this,W,!0,52,8)},d.prototype.readDoubleBE=function(W,R){return R||ue(W,8,this.length),o.read(this,W,!1,52,8)};function be(X,W,R,N,oe,ve){if(!d.isBuffer(X))throw new TypeError('"buffer" argument must be a Buffer instance');if(W>oe||WX.length)throw new RangeError("Index out of range")}d.prototype.writeUIntLE=function(W,R,N,oe){if(W=+W,R=R|0,N=N|0,!oe){var ve=Math.pow(2,8*N)-1;be(this,W,R,N,ve,0)}var te=1,me=0;for(this[R]=W&255;++me=0&&(me*=256);)this[R+te]=W/me&255;return R+N},d.prototype.writeUInt8=function(W,R,N){return W=+W,R=R|0,N||be(this,W,R,1,255,0),d.TYPED_ARRAY_SUPPORT||(W=Math.floor(W)),this[R]=W&255,R+1};function ce(X,W,R,N){W<0&&(W=65535+W+1);for(var oe=0,ve=Math.min(X.length-R,2);oe>>(N?oe:1-oe)*8}d.prototype.writeUInt16LE=function(W,R,N){return W=+W,R=R|0,N||be(this,W,R,2,65535,0),d.TYPED_ARRAY_SUPPORT?(this[R]=W&255,this[R+1]=W>>>8):ce(this,W,R,!0),R+2},d.prototype.writeUInt16BE=function(W,R,N){return W=+W,R=R|0,N||be(this,W,R,2,65535,0),d.TYPED_ARRAY_SUPPORT?(this[R]=W>>>8,this[R+1]=W&255):ce(this,W,R,!1),R+2};function he(X,W,R,N){W<0&&(W=4294967295+W+1);for(var oe=0,ve=Math.min(X.length-R,4);oe>>(N?oe:3-oe)*8&255}d.prototype.writeUInt32LE=function(W,R,N){return W=+W,R=R|0,N||be(this,W,R,4,4294967295,0),d.TYPED_ARRAY_SUPPORT?(this[R+3]=W>>>24,this[R+2]=W>>>16,this[R+1]=W>>>8,this[R]=W&255):he(this,W,R,!0),R+4},d.prototype.writeUInt32BE=function(W,R,N){return W=+W,R=R|0,N||be(this,W,R,4,4294967295,0),d.TYPED_ARRAY_SUPPORT?(this[R]=W>>>24,this[R+1]=W>>>16,this[R+2]=W>>>8,this[R+3]=W&255):he(this,W,R,!1),R+4},d.prototype.writeIntLE=function(W,R,N,oe){if(W=+W,R=R|0,!oe){var ve=Math.pow(2,8*N-1);be(this,W,R,N,ve-1,-ve)}var te=0,me=1,we=0;for(this[R]=W&255;++te>0)-we&255;return R+N},d.prototype.writeIntBE=function(W,R,N,oe){if(W=+W,R=R|0,!oe){var ve=Math.pow(2,8*N-1);be(this,W,R,N,ve-1,-ve)}var te=N-1,me=1,we=0;for(this[R+te]=W&255;--te>=0&&(me*=256);)W<0&&we===0&&this[R+te+1]!==0&&(we=1),this[R+te]=(W/me>>0)-we&255;return R+N},d.prototype.writeInt8=function(W,R,N){return W=+W,R=R|0,N||be(this,W,R,1,127,-128),d.TYPED_ARRAY_SUPPORT||(W=Math.floor(W)),W<0&&(W=255+W+1),this[R]=W&255,R+1},d.prototype.writeInt16LE=function(W,R,N){return W=+W,R=R|0,N||be(this,W,R,2,32767,-32768),d.TYPED_ARRAY_SUPPORT?(this[R]=W&255,this[R+1]=W>>>8):ce(this,W,R,!0),R+2},d.prototype.writeInt16BE=function(W,R,N){return W=+W,R=R|0,N||be(this,W,R,2,32767,-32768),d.TYPED_ARRAY_SUPPORT?(this[R]=W>>>8,this[R+1]=W&255):ce(this,W,R,!1),R+2},d.prototype.writeInt32LE=function(W,R,N){return W=+W,R=R|0,N||be(this,W,R,4,2147483647,-2147483648),d.TYPED_ARRAY_SUPPORT?(this[R]=W&255,this[R+1]=W>>>8,this[R+2]=W>>>16,this[R+3]=W>>>24):he(this,W,R,!0),R+4},d.prototype.writeInt32BE=function(W,R,N){return W=+W,R=R|0,N||be(this,W,R,4,2147483647,-2147483648),W<0&&(W=4294967295+W+1),d.TYPED_ARRAY_SUPPORT?(this[R]=W>>>24,this[R+1]=W>>>16,this[R+2]=W>>>8,this[R+3]=W&255):he(this,W,R,!1),R+4};function Fe(X,W,R,N,oe,ve){if(R+N>X.length)throw new RangeError("Index out of range");if(R<0)throw new RangeError("Index out of range")}function Je(X,W,R,N,oe){return oe||Fe(X,W,R,4,34028234663852886e22,-34028234663852886e22),o.write(X,W,R,N,23,4),R+4}d.prototype.writeFloatLE=function(W,R,N){return Je(this,W,R,!0,N)},d.prototype.writeFloatBE=function(W,R,N){return Je(this,W,R,!1,N)};function et(X,W,R,N,oe){return oe||Fe(X,W,R,8,17976931348623157e292,-17976931348623157e292),o.write(X,W,R,N,52,8),R+8}d.prototype.writeDoubleLE=function(W,R,N){return et(this,W,R,!0,N)},d.prototype.writeDoubleBE=function(W,R,N){return et(this,W,R,!1,N)},d.prototype.copy=function(W,R,N,oe){if(N||(N=0),!oe&&oe!==0&&(oe=this.length),R>=W.length&&(R=W.length),R||(R=0),oe>0&&oe=this.length)throw new RangeError("sourceStart out of bounds");if(oe<0)throw new RangeError("sourceEnd out of bounds");oe>this.length&&(oe=this.length),W.length-R=0;--te)W[te+R]=this[te+N];else if(ve<1e3||!d.TYPED_ARRAY_SUPPORT)for(te=0;te>>0,N=N===void 0?this.length:N>>>0,W||(W=0);var te;if(typeof W=="number")for(te=R;te55295&&R<57344){if(!oe){if(R>56319){(W-=3)>-1&&ve.push(239,191,189);continue}else if(te+1===N){(W-=3)>-1&&ve.push(239,191,189);continue}oe=R;continue}if(R<56320){(W-=3)>-1&&ve.push(239,191,189),oe=R;continue}R=(oe-55296<<10|R-56320)+65536}else oe&&(W-=3)>-1&&ve.push(239,191,189);if(oe=null,R<128){if((W-=1)<0)break;ve.push(R)}else if(R<2048){if((W-=2)<0)break;ve.push(R>>6|192,R&63|128)}else if(R<65536){if((W-=3)<0)break;ve.push(R>>12|224,R>>6&63|128,R&63|128)}else if(R<1114112){if((W-=4)<0)break;ve.push(R>>18|240,R>>12&63|128,R>>6&63|128,R&63|128)}else throw new Error("Invalid code point")}return ve}function Le(X){for(var W=[],R=0;R>8,oe=R%256,ve.push(oe),ve.push(N);return ve}function st(X){return t.toByteArray(yt(X))}function We(X,W,R,N){for(var oe=0;oe=W.length||oe>=X.length);++oe)W[oe+R]=X[oe];return oe}function ge(X){return X!==X}},87608:function(M,b){var e,a;(function(){"use strict";var t={}.hasOwnProperty,o="[native code]";function s(){for(var n=[],c=0;c1?arguments[1]:void 0,P=O>2?arguments[2]:void 0;return new(y("Promise"))(function(K){var U=o(A);$!==void 0&&($=a($,P));var ee=h(U,x),le=ee?void 0:d(U)||w,Q=s(L)?new L:[],G=ee?n(U,ee):new S(l(c(U,le)));K(j(G,$,Q))})}},50112:function(M,b,e){var a=e(89122);M.exports=function(t,o){for(var s=0,n=a(o),c=new t(n);n>s;)c[s]=o[s++];return c}},59765:function(M,b,e){"use strict";var a=e(34066),t=e(11700),o=e(42414),s=e(64441),n=e(89122),c=e(85623),l=c.Map,d=c.get,h=c.has,p=c.set,y=t([].push);M.exports=function(S){for(var j=s(this),x=o(j),Z=a(S,arguments.length>1?arguments[1]:void 0),B=new l,w=n(x),T=0,F,A;w>T;T++)A=x[T],F=Z(A,T,j),h(B,F)?y(d(B,F),A):p(B,F,[A]);return B}},69093:function(M,b,e){var a=e(34066),t=e(11700),o=e(42414),s=e(64441),n=e(76846),c=e(89122),l=e(34552),d=e(50112),h=Array,p=t([].push);M.exports=function(y,g,S,j){for(var x=s(y),Z=o(x),B=a(g,S),w=l(null),T=c(Z),F=0,A,L,O;T>F;F++)O=Z[F],L=n(B(O,F,x)),L in w?p(w[L],O):w[L]=[O];if(j&&(A=j(x),A!==h))for(L in w)w[L]=d(A,w[L]);return w}},63795:function(M,b,e){var a=e(514),t=e(71410),o=e(89122),s=function(n){return function(c,l,d){var h=a(c),p=o(h),y=t(d,p),g;if(n&&l!=l){for(;p>y;)if(g=h[y++],g!=g)return!0}else for(;p>y;y++)if((n||y in h)&&h[y]===l)return n||y||0;return!n&&-1}};M.exports={includes:s(!0),indexOf:s(!1)}},17464:function(M,b,e){var a=e(34066),t=e(42414),o=e(64441),s=e(89122),n=function(c){var l=c==1;return function(d,h,p){for(var y=o(d),g=t(y),S=a(h,p),j=s(g),x,Z;j-- >0;)if(x=g[j],Z=S(x,j,y),Z)switch(c){case 0:return x;case 1:return j}return l?-1:void 0}};M.exports={findLast:n(0),findLastIndex:n(1)}},44708:function(M,b,e){var a=e(34066),t=e(11700),o=e(42414),s=e(64441),n=e(89122),c=e(70850),l=t([].push),d=function(h){var p=h==1,y=h==2,g=h==3,S=h==4,j=h==6,x=h==7,Z=h==5||j;return function(B,w,T,F){for(var A=s(B),L=o(A),O=a(w,T),$=n(L),P=0,K=F||c,U=p?K(B,$):y||x?K(B,0):void 0,ee,le;$>P;P++)if((Z||P in L)&&(ee=L[P],le=O(ee,P,A),h))if(p)U[P]=le;else if(le)switch(h){case 3:return!0;case 5:return ee;case 6:return P;case 2:l(U,ee)}else switch(h){case 4:return!1;case 7:l(U,ee)}return j?-1:g||S?S:U}};M.exports={forEach:d(0),map:d(1),filter:d(2),some:d(3),every:d(4),find:d(5),findIndex:d(6),filterReject:d(7)}},83242:function(M,b,e){"use strict";var a=e(77149);M.exports=function(t,o){var s=[][t];return!!s&&a(function(){s.call(null,o||function(){return 1},1)})}},82565:function(M,b,e){var a=e(31927),t=e(64441),o=e(42414),s=e(89122),n=TypeError,c=function(l){return function(d,h,p,y){a(h);var g=t(d),S=o(g),j=s(g),x=l?j-1:0,Z=l?-1:1;if(p<2)for(;;){if(x in S){y=S[x],x+=Z;break}if(x+=Z,l?x<0:j<=x)throw n("Reduce of empty array with no initial value")}for(;l?x>=0:j>x;x+=Z)x in S&&(y=h(y,S[x],x,g));return y}};M.exports={left:c(!1),right:c(!0)}},77060:function(M,b,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(c){return c instanceof TypeError}}();M.exports=n?function(c,l){if(t(c)&&!s(c,"length").writable)throw o("Cannot set read only .length");return c.length=l}:function(c,l){return c.length=l}},81469:function(M,b,e){var a=e(71410),t=e(89122),o=e(46509),s=Array,n=Math.max;M.exports=function(c,l,d){for(var h=t(c),p=a(l,h),y=a(d===void 0?h:d,h),g=s(n(y-p,0)),S=0;p=d||p<0)throw o("Incorrect index");for(var y=new n(d),g=0;g1?arguments[1]:void 0,g,S,j,x;return s(this),g=y!==void 0,g&&o(y),n(h)?new this:(S=[],g?(j=0,x=a(y,p>2?arguments[2]:void 0),c(h,function(Z){t(l,S,x(Z,j++))})):c(h,l,{that:S}),new this(S))}},55042:function(M,b,e){"use strict";var a=e(66322);M.exports=function(){return new this(a(arguments))}},42710:function(M,b,e){"use strict";var a=e(34552),t=e(2265),o=e(3313),s=e(34066),n=e(92453),c=e(74883),l=e(95815),d=e(94636),h=e(76835),p=e(51309),y=e(57759),g=e(80787).fastKey,S=e(71584),j=S.set,x=S.getterFor;M.exports={getConstructor:function(Z,B,w,T){var F=Z(function(P,K){n(P,A),j(P,{type:B,index:a(null),first:void 0,last:void 0,size:0}),y||(P.size=0),c(K)||l(K,P[T],{that:P,AS_ENTRIES:w})}),A=F.prototype,L=x(B),O=function(P,K,U){var ee=L(P),le=$(P,K),Q,G;return le?le.value=U:(ee.last=le={index:G=g(K,!0),key:K,value:U,previous:Q=ee.last,next:void 0,removed:!1},ee.first||(ee.first=le),Q&&(Q.next=le),y?ee.size++:P.size++,G!=="F"&&(ee.index[G]=le)),P},$=function(P,K){var U=L(P),ee=g(K),le;if(ee!=="F")return U.index[ee];for(le=U.first;le;le=le.next)if(le.key==K)return le};return o(A,{clear:function(){for(var K=this,U=L(K),ee=U.index,le=U.first;le;)le.removed=!0,le.previous&&(le.previous=le.previous.next=void 0),delete ee[le.index],le=le.next;U.first=U.last=void 0,y?U.size=0:K.size=0},delete:function(P){var K=this,U=L(K),ee=$(K,P);if(ee){var le=ee.next,Q=ee.previous;delete U.index[ee.index],ee.removed=!0,Q&&(Q.next=le),le&&(le.previous=Q),U.first==ee&&(U.first=le),U.last==ee&&(U.last=Q),y?U.size--:K.size--}return!!ee},forEach:function(K){for(var U=L(this),ee=s(K,arguments.length>1?arguments[1]:void 0),le;le=le?le.next:U.first;)for(ee(le.value,le.key,this);le&&le.removed;)le=le.previous},has:function(K){return!!$(this,K)}}),o(A,w?{get:function(K){var U=$(this,K);return U&&U.value},set:function(K,U){return O(this,K===0?0:K,U)}}:{add:function(K){return O(this,K=K===0?0:K,K)}}),y&&t(A,"size",{configurable:!0,get:function(){return L(this).size}}),F},setStrong:function(Z,B,w){var T=B+" Iterator",F=x(B),A=x(T);d(Z,B,function(L,O){j(this,{type:T,target:L,state:F(L),kind:O,last:void 0})},function(){for(var L=A(this),O=L.kind,$=L.last;$&&$.removed;)$=$.previous;return!L.target||!(L.last=$=$?$.next:L.state.first)?(L.target=void 0,h(void 0,!0)):O=="keys"?h($.key,!1):O=="values"?h($.value,!1):h([$.key,$.value],!1)},w?"entries":"values",!w,!0),p(B)}}},90253:function(M,b,e){"use strict";var a=e(11700),t=e(3313),o=e(80787).getWeakData,s=e(92453),n=e(78958),c=e(74883),l=e(33225),d=e(95815),h=e(44708),p=e(26583),y=e(71584),g=y.set,S=y.getterFor,j=h.find,x=h.findIndex,Z=a([].splice),B=0,w=function(A){return A.frozen||(A.frozen=new T)},T=function(){this.entries=[]},F=function(A,L){return j(A.entries,function(O){return O[0]===L})};T.prototype={get:function(A){var L=F(this,A);if(L)return L[1]},has:function(A){return!!F(this,A)},set:function(A,L){var O=F(this,A);O?O[1]=L:this.entries.push([A,L])},delete:function(A){var L=x(this.entries,function(O){return O[0]===A});return~L&&Z(this.entries,L,1),!!~L}},M.exports={getConstructor:function(A,L,O,$){var P=A(function(le,Q){s(le,K),g(le,{type:L,id:B++,frozen:void 0}),c(Q)||d(Q,le[$],{that:le,AS_ENTRIES:O})}),K=P.prototype,U=S(L),ee=function(le,Q,G){var q=U(le),I=o(n(Q),!0);return I===!0?w(q).set(Q,G):I[q.id]=G,le};return t(K,{delete:function(le){var Q=U(this);if(!l(le))return!1;var G=o(le);return G===!0?w(Q).delete(le):G&&p(G,Q.id)&&delete G[Q.id]},has:function(Q){var G=U(this);if(!l(Q))return!1;var q=o(Q);return q===!0?w(G).has(Q):q&&p(q,G.id)}}),t(K,O?{get:function(Q){var G=U(this);if(l(Q)){var q=o(Q);return q===!0?w(G).get(Q):q?q[G.id]:void 0}},set:function(Q,G){return ee(this,Q,G)}}:{add:function(Q){return ee(this,Q,!0)}}),P}}},91821:function(M,b,e){"use strict";var a=e(13354),t=e(53065),o=e(11700),s=e(29206),n=e(28621),c=e(80787),l=e(95815),d=e(92453),h=e(6508),p=e(74883),y=e(33225),g=e(77149),S=e(44277),j=e(68156),x=e(95173);M.exports=function(Z,B,w){var T=Z.indexOf("Map")!==-1,F=Z.indexOf("Weak")!==-1,A=T?"set":"add",L=t[Z],O=L&&L.prototype,$=L,P={},K=function(I){var H=o(O[I]);n(O,I,I=="add"?function(D){return H(this,D===0?0:D),this}:I=="delete"?function(Y){return F&&!y(Y)?!1:H(this,Y===0?0:Y)}:I=="get"?function(D){return F&&!y(D)?void 0:H(this,D===0?0:D)}:I=="has"?function(D){return F&&!y(D)?!1:H(this,D===0?0:D)}:function(D,_){return H(this,D===0?0:D,_),this})},U=s(Z,!h(L)||!(F||O.forEach&&!g(function(){new L().entries().next()})));if(U)$=w.getConstructor(B,Z,T,A),c.enable();else if(s(Z,!0)){var ee=new $,le=ee[A](F?{}:-0,1)!=ee,Q=g(function(){ee.has(1)}),G=S(function(I){new L(I)}),q=!F&&g(function(){for(var I=new L,H=5;H--;)I[A](H,H);return!I.has(-0)});G||($=B(function(I,H){d(I,O);var Y=x(new L,I,$);return p(H)||l(H,Y[A],{that:Y,AS_ENTRIES:T}),Y}),$.prototype=O,O.constructor=$),(Q||q)&&(K("delete"),K("has"),T&&K("get")),(q||le)&&K(A),F&&O.clear&&delete O.clear}return P[Z]=$,a({global:!0,constructor:!0,forced:$!=L},P),j($,Z),F||w.setStrong($,Z,T),$}},95249:function(M,b,e){e(72660),e(11995);var a=e(42725),t=e(34552),o=e(33225),s=Object,n=TypeError,c=a("Map"),l=a("WeakMap"),d=function(){this.object=null,this.symbol=null,this.primitives=null,this.objectsByIndex=t(null)};d.prototype.get=function(p,y){return this[p]||(this[p]=y())},d.prototype.next=function(p,y,g){var S=g?this.objectsByIndex[p]||(this.objectsByIndex[p]=new l):this.primitives||(this.primitives=new c),j=S.get(y);return j||S.set(y,j=new d),j};var h=new d;M.exports=function(){var p=h,y=arguments.length,g,S;for(g=0;ge)throw b("Maximum allowed index exceeded");return a}},73443:function(M){M.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(M,b,e){var a=e(79132),t=e(79727);M.exports=!a&&!t&&typeof window=="object"&&typeof document=="object"},8266:function(M){M.exports=typeof Bun=="function"&&Bun&&typeof Bun.version=="string"},79132:function(M){M.exports=typeof Deno=="object"&&Deno&&typeof Deno.version=="object"},72833:function(M,b,e){var a=e(47048);M.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(a)},79727:function(M,b,e){var a=e(73656),t=e(88596);M.exports=typeof a!="undefined"&&t(a)=="process"},47048:function(M){M.exports=typeof navigator!="undefined"&&String(navigator.userAgent)||""},8783:function(M,b,e){var a=e(53065),t=e(47048),o=a.process,s=a.Deno,n=o&&o.versions||s&&s.version,c=n&&n.v8,l,d;c&&(l=c.split("."),d=l[0]>0&&l[0]<4?1:+(l[0]+l[1])),!d&&t&&(l=t.match(/Edge\/(\d+)/),(!l||l[1]>=74)&&(l=t.match(/Chrome\/(\d+)/),l&&(d=+l[1]))),M.exports=d},70721:function(M,b,e){var a=e(53065);M.exports=function(t){return a[t].prototype}},68150:function(M){M.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},68488:function(M,b,e){var a=e(11700),t=Error,o=a("".replace),s=function(l){return String(t(l).stack)}("zxcasd"),n=/\n\s*at [^:]*:[^\n]*/,c=n.test(s);M.exports=function(l,d){if(c&&typeof l=="string"&&!t.prepareStackTrace)for(;d--;)l=o(l,n,"");return l}},96410:function(M,b,e){var a=e(5927),t=e(68488),o=e(39728),s=Error.captureStackTrace;M.exports=function(n,c,l,d){o&&(s?s(n,c):a(n,"stack",t(l,d)))}},39728:function(M,b,e){var a=e(77149),t=e(87971);M.exports=!a(function(){var o=Error("a");return"stack"in o?(Object.defineProperty(o,"stack",t(1,7)),o.stack!==7):!0})},13354:function(M,b,e){var a=e(53065),t=e(91042).f,o=e(5927),s=e(28621),n=e(40194),c=e(81732),l=e(29206);M.exports=function(d,h){var p=d.target,y=d.global,g=d.stat,S,j,x,Z,B,w;if(y?j=a:g?j=a[p]||n(p,{}):j=(a[p]||{}).prototype,j)for(x in h){if(B=h[x],d.dontCallGetSet?(w=t(j,x),Z=w&&w.value):Z=j[x],S=l(y?x:p+(g?".":"#")+x,d.forced),!S&&Z!==void 0){if(typeof B==typeof Z)continue;c(B,Z)}(d.sham||Z&&Z.sham)&&o(B,"sham",!0),s(j,x,B,d)}}},77149:function(M){M.exports=function(b){try{return!!b()}catch(e){return!0}}},81506:function(M,b,e){var a=e(77149);M.exports=!a(function(){return Object.isExtensible(Object.preventExtensions({}))})},59178:function(M,b,e){var a=e(34300),t=Function.prototype,o=t.apply,s=t.call;M.exports=typeof Reflect=="object"&&Reflect.apply||(a?s.bind(o):function(){return s.apply(o,arguments)})},34066:function(M,b,e){var a=e(39338),t=e(31927),o=e(34300),s=a(a.bind);M.exports=function(n,c){return t(n),c===void 0?n:o?s(n,c):function(){return n.apply(c,arguments)}}},34300:function(M,b,e){var a=e(77149);M.exports=!a(function(){var t=function(){}.bind();return typeof t!="function"||t.hasOwnProperty("prototype")})},68029:function(M,b,e){var a=e(34300),t=Function.prototype.call;M.exports=a?t.bind(t):function(){return t.apply(t,arguments)}},44761:function(M,b,e){"use strict";var a=e(11700),t=e(31927);M.exports=function(){return a(t(this))}},27593:function(M,b,e){var a=e(57759),t=e(26583),o=Function.prototype,s=a&&Object.getOwnPropertyDescriptor,n=t(o,"name"),c=n&&function(){}.name==="something",l=n&&(!a||a&&s(o,"name").configurable);M.exports={EXISTS:n,PROPER:c,CONFIGURABLE:l}},12719:function(M,b,e){var a=e(11700),t=e(31927);M.exports=function(o,s,n){try{return a(t(Object.getOwnPropertyDescriptor(o,s)[n]))}catch(c){}}},39338:function(M,b,e){var a=e(88596),t=e(11700);M.exports=function(o){if(a(o)==="Function")return t(o)}},11700:function(M,b,e){var a=e(34300),t=Function.prototype,o=t.call,s=a&&t.bind.bind(o,o);M.exports=a?s:function(n){return function(){return o.apply(n,arguments)}}},83658:function(M,b,e){var a=e(68029),t=e(6508),o=e(78958),s=e(55086),n=e(56071),c=e(15931),l=e(77740),d=e(66219),h=l("asyncIterator");M.exports=function(y){var g=o(y),S=!0,j=c(g,h),x;return t(j)||(j=n(g),S=!1),t(j)?x=a(j,g):(x=g,S=!0),o(x),s(S?x:new d(s(x)))}},85231:function(M,b,e){var a=e(68029),t=e(66219),o=e(78958),s=e(64712),n=e(55086),c=e(15931),l=e(77740),d=l("asyncIterator");M.exports=function(h,p){var y=arguments.length<2?c(h,d):p;return y?o(a(y,h)):new t(n(s(h)))}},42725:function(M,b,e){var a=e(53065),t=e(6508),o=function(s){return t(s)?s:void 0};M.exports=function(s,n){return arguments.length<2?o(a[s]):a[s]&&a[s][n]}},55086:function(M,b,e){var a=e(31927),t=e(78958);M.exports=function(o){return{iterator:o,next:a(t(o).next)}}},69896:function(M,b,e){var a=e(68029),t=e(6508),o=e(78958),s=e(55086),n=e(56071);M.exports=function(c){var l=o(c),d=n(l);return s(o(t(d)?a(d,l):l))}},56071:function(M,b,e){var a=e(56834),t=e(15931),o=e(74883),s=e(43125),n=e(77740),c=n("iterator");M.exports=function(l){if(!o(l))return t(l,c)||t(l,"@@iterator")||s[a(l)]}},64712:function(M,b,e){var a=e(68029),t=e(31927),o=e(78958),s=e(30238),n=e(56071),c=TypeError;M.exports=function(l,d){var h=arguments.length<2?n(l):d;if(t(h))return o(a(h,l));throw c(s(l)+" is not iterable")}},75126:function(M,b,e){var a=e(11700),t=e(190),o=e(6508),s=e(88596),n=e(68424),c=a([].push);M.exports=function(l){if(o(l))return l;if(t(l)){for(var d=l.length,h=[],p=0;p]*>)/g,d=/\$([$&'`]|\d{1,2})/g;M.exports=function(h,p,y,g,S,j){var x=y+h.length,Z=g.length,B=d;return S!==void 0&&(S=t(S),B=l),n(j,B,function(w,T){var F;switch(s(T,0)){case"$":return"$";case"&":return h;case"`":return c(p,0,y);case"'":return c(p,x);case"<":F=S[c(T,1,-1)];break;default:var A=+T;if(A===0)return w;if(A>Z){var L=o(A/10);return L===0?w:L<=Z?g[L-1]===void 0?s(T,1):g[L-1]+s(T,1):w}F=g[A-1]}return F===void 0?"":F})}},53065:function(M,b,e){var a=function(t){return t&&t.Math==Math&&t};M.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(M,b,e){var a=e(11700),t=e(64441),o=a({}.hasOwnProperty);M.exports=Object.hasOwn||function(n,c){return o(t(n),c)}},17859:function(M){M.exports={}},3234:function(M){M.exports=function(b,e){try{arguments.length==1?console.error(b):console.error(b,e)}catch(a){}}},8199:function(M,b,e){var a=e(42725);M.exports=a("document","documentElement")},96335:function(M,b,e){var a=e(57759),t=e(77149),o=e(75074);M.exports=!a&&!t(function(){return Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a!=7})},42414:function(M,b,e){var a=e(11700),t=e(77149),o=e(88596),s=Object,n=a("".split);M.exports=t(function(){return!s("z").propertyIsEnumerable(0)})?function(c){return o(c)=="String"?n(c,""):s(c)}:s},95173:function(M,b,e){var a=e(6508),t=e(33225),o=e(63332);M.exports=function(s,n,c){var l,d;return o&&a(l=n.constructor)&&l!==c&&t(d=l.prototype)&&d!==c.prototype&&o(s,d),s}},45274:function(M,b,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)}),M.exports=o.inspectSource},13719:function(M,b,e){var a=e(33225),t=e(5927);M.exports=function(o,s){a(s)&&"cause"in s&&t(o,"cause",s.cause)}},80787:function(M,b,e){var a=e(13354),t=e(11700),o=e(17859),s=e(33225),n=e(26583),c=e(38248).f,l=e(94561),d=e(56647),h=e(50175),p=e(89669),y=e(81506),g=!1,S=p("meta"),j=0,x=function(A){c(A,S,{value:{objectID:"O"+j++,weakData:{}}})},Z=function(A,L){if(!s(A))return typeof A=="symbol"?A:(typeof A=="string"?"S":"P")+A;if(!n(A,S)){if(!h(A))return"F";if(!L)return"E";x(A)}return A[S].objectID},B=function(A,L){if(!n(A,S)){if(!h(A))return!0;if(!L)return!1;x(A)}return A[S].weakData},w=function(A){return y&&g&&h(A)&&!n(A,S)&&x(A),A},T=function(){F.enable=function(){},g=!0;var A=l.f,L=t([].splice),O={};O[S]=1,A(O).length&&(l.f=function($){for(var P=A($),K=0,U=P.length;KP;P++)if(U=G(j[P]),U&&l(S,U))return U;return new g(!1)}O=d(j,$)}for(ee=T?j.next:O.next;!(le=t(ee,O)).done;){try{U=G(le.value)}catch(q){p(O,"throw",q)}if(typeof U=="object"&&U&&l(S,U))return U}return new g(!1)}},40164:function(M,b,e){var a=e(68029),t=e(78958),o=e(15931);M.exports=function(s,n,c){var l,d;t(s);try{if(l=o(s,"return"),!l){if(n==="throw")throw c;return c}l=a(l,s)}catch(h){d=!0,l=h}if(n==="throw")throw c;if(d)throw l;return t(l),c}},87821:function(M,b,e){"use strict";var a=e(41019).IteratorPrototype,t=e(34552),o=e(87971),s=e(68156),n=e(43125),c=function(){return this};M.exports=function(l,d,h,p){var y=d+" Iterator";return l.prototype=t(a,{next:o(+!p,h)}),s(l,y,!1,!0),n[y]=c,l}},36911:function(M,b,e){"use strict";var a=e(68029),t=e(34552),o=e(5927),s=e(3313),n=e(77740),c=e(71584),l=e(15931),d=e(41019).IteratorPrototype,h=e(76835),p=e(40164),y=n("toStringTag"),g="IteratorHelper",S="WrapForValidIterator",j=c.set,x=function(w){var T=c.getterFor(w?S:g);return s(t(d),{next:function(){var A=T(this);if(w)return A.nextHandler();try{var L=A.done?void 0:A.nextHandler();return h(L,A.done)}catch(O){throw A.done=!0,O}},return:function(){var F=T(this),A=F.iterator;if(F.done=!0,w){var L=l(A,"return");return L?a(L,A):h(void 0,!0)}if(F.inner)try{p(F.inner.iterator,"normal")}catch(O){return p(A,"throw",O)}return p(A,"normal"),h(void 0,!0)}})},Z=x(!0),B=x(!1);o(B,y,"Iterator Helper"),M.exports=function(w,T){var F=function(L,O){O?(O.iterator=L.iterator,O.next=L.next):O=L,O.type=T?S:g,O.nextHandler=w,O.counter=0,O.done=!1,j(this,O)};return F.prototype=T?Z:B,F}},94636:function(M,b,e){"use strict";var a=e(13354),t=e(68029),o=e(77449),s=e(27593),n=e(6508),c=e(87821),l=e(77767),d=e(63332),h=e(68156),p=e(5927),y=e(28621),g=e(77740),S=e(43125),j=e(41019),x=s.PROPER,Z=s.CONFIGURABLE,B=j.IteratorPrototype,w=j.BUGGY_SAFARI_ITERATORS,T=g("iterator"),F="keys",A="values",L="entries",O=function(){return this};M.exports=function($,P,K,U,ee,le,Q){c(K,P,U);var G=function(he){if(he===ee&&D)return D;if(!w&&he in H)return H[he];switch(he){case F:return function(){return new K(this,he)};case A:return function(){return new K(this,he)};case L:return function(){return new K(this,he)}}return function(){return new K(this)}},q=P+" Iterator",I=!1,H=$.prototype,Y=H[T]||H["@@iterator"]||ee&&H[ee],D=!w&&Y||G(ee),_=P=="Array"&&H.entries||Y,ue,be,ce;if(_&&(ue=l(_.call(new $)),ue!==Object.prototype&&ue.next&&(!o&&l(ue)!==B&&(d?d(ue,B):n(ue[T])||y(ue,T,O)),h(ue,q,!0,!0),o&&(S[q]=O))),x&&ee==A&&Y&&Y.name!==A&&(!o&&Z?p(H,"name",A):(I=!0,D=function(){return t(Y,this)})),ee)if(be={values:G(A),keys:le?D:G(F),entries:G(L)},Q)for(ce in be)(w||I||!(ce in H))&&y(H,ce,be[ce]);else a({target:P,proto:!0,forced:w||I},be);return(!o||Q)&&H[T]!==D&&y(H,T,D,{name:ee}),S[P]=D,be}},45656:function(M,b,e){"use strict";var a=e(68029),t=e(87931),o=function(s,n){return[n,s]};M.exports=function(){return a(t,this,o)}},87931:function(M,b,e){"use strict";var a=e(68029),t=e(31927),o=e(78958),s=e(55086),n=e(36911),c=e(74031),l=n(function(){var d=this.iterator,h=o(a(this.next,d)),p=this.done=!!h.done;if(!p)return c(d,this.mapper,[h.value,this.counter++],!0)});M.exports=function(h){return new l(s(this),{mapper:t(h)})}},41019:function(M,b,e){"use strict";var a=e(77149),t=e(6508),o=e(33225),s=e(34552),n=e(77767),c=e(28621),l=e(77740),d=e(77449),h=l("iterator"),p=!1,y,g,S;[].keys&&(S=[].keys(),"next"in S?(g=n(n(S)),g!==Object.prototype&&(y=g)):p=!0);var j=!o(y)||a(function(){var x={};return y[h].call(x)!==x});j?y={}:d&&(y=s(y)),t(y[h])||c(y,h,function(){return this}),M.exports={IteratorPrototype:y,BUGGY_SAFARI_ITERATORS:p}},43125:function(M){M.exports={}},89122:function(M,b,e){var a=e(25010);M.exports=function(t){return a(t.length)}},70377:function(M,b,e){var a=e(11700),t=e(77149),o=e(6508),s=e(26583),n=e(57759),c=e(27593).CONFIGURABLE,l=e(45274),d=e(71584),h=d.enforce,p=d.get,y=String,g=Object.defineProperty,S=a("".slice),j=a("".replace),x=a([].join),Z=n&&!t(function(){return g(function(){},"length",{value:8}).length!==8}),B=String(String).split("String"),w=M.exports=function(T,F,A){S(y(F),0,7)==="Symbol("&&(F="["+j(y(F),/^Symbol\(([^)]*)\)/,"$1")+"]"),A&&A.getter&&(F="get "+F),A&&A.setter&&(F="set "+F),(!s(T,"name")||c&&T.name!==F)&&(n?g(T,"name",{value:F,configurable:!0}):T.name=F),Z&&A&&s(A,"arity")&&T.length!==A.arity&&g(T,"length",{value:A.arity});try{A&&s(A,"constructor")&&A.constructor?n&&g(T,"prototype",{writable:!1}):T.prototype&&(T.prototype=void 0)}catch(O){}var L=h(T);return s(L,"source")||(L.source=x(B,typeof F=="string"?F:"")),T};Function.prototype.toString=w(function(){return o(this)&&p(this).source||l(this)},"toString")},85623:function(M,b,e){var a=e(11700),t=Map.prototype;M.exports={Map,set:a(t.set),get:a(t.get),has:a(t.has),remove:a(t.delete),proto:t}},46782:function(M,b,e){var a=e(11700),t=e(95060),o=e(85623),s=o.Map,n=o.proto,c=a(n.forEach),l=a(n.entries),d=l(new s).next;M.exports=function(h,p,y){return y?t(l(h),function(g){return p(g[1],g[0])},d):c(h,p)}},32171:function(M,b,e){"use strict";var a=e(68029),t=e(31927),o=e(6508),s=e(78958),n=TypeError;M.exports=function(l,d){var h=s(this),p=t(h.get),y=t(h.has),g=t(h.set),S=arguments.length>2?arguments[2]:void 0,j;if(!o(d)&&!o(S))throw n("At least one callback required");return a(y,h,l)?(j=a(p,h,l),o(d)&&(j=d(j),a(g,h,l,j))):o(S)&&(j=S(),a(g,h,l,j)),j}},18749:function(M,b,e){var a=e(75169),t=Math.abs,o=Math.pow,s=o(2,-52),n=o(2,-23),c=o(2,127)*(2-n),l=o(2,-126),d=function(h){return h+1/s-1/s};M.exports=Math.fround||function(p){var y=+p,g=t(y),S=a(y),j,x;return gc||x!=x?S*(1/0):S*x)}},15129:function(M){M.exports=Math.scale||function(e,a,t,o,s){var n=+e,c=+a,l=+t,d=+o,h=+s;return n!=n||c!=c||l!=l||d!=d||h!=h?NaN:n===1/0||n===-1/0?n:(n-c)*(h-d)/(l-c)+d}},75169:function(M){M.exports=Math.sign||function(e){var a=+e;return a==0||a!=a?a:a<0?-1:1}},18243:function(M){var b=Math.ceil,e=Math.floor;M.exports=Math.trunc||function(t){var o=+t;return(o>0?e:b)(o)}},66286:function(M,b,e){var a=e(77149);M.exports=!a(function(){var t="9007199254740993",o=JSON.rawJSON(t);return!JSON.isRawJSON(o)||JSON.stringify(o)!==t})},71440:function(M,b,e){"use strict";var a=e(31927),t=TypeError,o=function(s){var n,c;this.promise=new s(function(l,d){if(n!==void 0||c!==void 0)throw t("Bad Promise constructor");n=l,c=d}),this.resolve=a(n),this.reject=a(c)};M.exports.f=function(s){return new o(s)}},9280:function(M,b,e){var a=e(68424);M.exports=function(t,o){return t===void 0?arguments.length<2?"":o:a(t)}},29597:function(M){var b=RangeError;M.exports=function(e){if(e===e)return e;throw b("NaN is not allowed")}},54633:function(M,b,e){var a=e(53065),t=a.isFinite;M.exports=Number.isFinite||function(s){return typeof s=="number"&&t(s)}},35323:function(M,b,e){var a=e(53065),t=e(77149),o=e(11700),s=e(68424),n=e(53761).trim,c=e(91289),l=a.parseInt,d=a.Symbol,h=d&&d.iterator,p=/^[+-]?0x/i,y=o(p.exec),g=l(c+"08")!==8||l(c+"0x16")!==22||h&&!t(function(){l(Object(h))});M.exports=g?function(j,x){var Z=n(s(j));return l(Z,x>>>0||(y(p,Z)?16:10))}:l},73126:function(M,b,e){"use strict";var a=e(71584),t=e(87821),o=e(76835),s=e(74883),n=e(33225),c=e(97867).f,l=e(57759),d="Incorrect Iterator.range arguments",h="NumericRangeIterator",p=a.set,y=a.getterFor(h),g=RangeError,S=TypeError,j=t(function(B,w,T,F,A,L){if(typeof B!=F||w!==1/0&&w!==-1/0&&typeof w!=F)throw S(d);if(B===1/0||B===-1/0)throw g(d);var O=w>B,$=!1,P;if(T===void 0)P=void 0;else if(n(T))P=T.step,$=!!T.inclusive;else if(typeof T==F)P=T;else throw S(d);if(s(P)&&(P=O?L:-L),typeof P!=F)throw S(d);if(P===1/0||P===-1/0||P===A&&B!==w)throw g(d);var K=B!=B||w!=w||P!=P||w>B!=P>A;p(this,{type:h,start:B,end:w,step:P,inclusiveEnd:$,hitsEnd:K,currentCount:A,zero:A}),l||(this.start=B,this.end=w,this.step=P,this.inclusive=$)},h,function(){var B=y(this);if(B.hitsEnd)return o(void 0,!0);var w=B.start,T=B.end,F=B.step,A=w+F*B.currentCount++;A===T&&(B.hitsEnd=!0);var L=B.inclusiveEnd,O;return T>w?O=L?A>T:A>=T:O=L?T>A:T>=A,O?(B.hitsEnd=!0,o(void 0,!0)):o(A,!1)}),x=function(Z){return{get:Z,set:function(){},configurable:!0,enumerable:!1}};l&&c(j.prototype,{start:x(function(){return y(this).start}),end:x(function(){return y(this).end}),inclusive:x(function(){return y(this).inclusiveEnd}),step:x(function(){return y(this).step})}),M.exports=j},34552:function(M,b,e){var a=e(78958),t=e(97867),o=e(68150),s=e(17859),n=e(8199),c=e(75074),l=e(39376),d=">",h="<",p="prototype",y="script",g=l("IE_PROTO"),S=function(){},j=function(T){return h+y+d+T+h+"/"+y+d},x=function(T){T.write(j("")),T.close();var F=T.parentWindow.Object;return T=null,F},Z=function(){var T=c("iframe"),F="java"+y+":",A;return T.style.display="none",n.appendChild(T),T.src=String(F),A=T.contentWindow.document,A.open(),A.write(j("document.F=Object")),A.close(),A.F},B,w=function(){try{B=new ActiveXObject("htmlfile")}catch(F){}w=typeof document!="undefined"?document.domain&&B?x(B):Z():x(B);for(var T=o.length;T--;)delete w[p][o[T]];return w()};s[g]=!0,M.exports=Object.create||function(F,A){var L;return F!==null?(S[p]=a(F),L=new S,S[p]=null,L[g]=F):L=w(),A===void 0?L:t.f(L,A)}},97867:function(M,b,e){var a=e(57759),t=e(63980),o=e(38248),s=e(78958),n=e(514),c=e(71691);b.f=a&&!t?Object.defineProperties:function(d,h){s(d);for(var p=n(h),y=c(h),g=y.length,S=0,j;g>S;)o.f(d,j=y[S++],p[j]);return d}},38248:function(M,b,e){var a=e(57759),t=e(96335),o=e(63980),s=e(78958),n=e(76846),c=TypeError,l=Object.defineProperty,d=Object.getOwnPropertyDescriptor,h="enumerable",p="configurable",y="writable";b.f=a?o?function(S,j,x){if(s(S),j=n(j),s(x),typeof S=="function"&&j==="prototype"&&"value"in x&&y in x&&!x[y]){var Z=d(S,j);Z&&Z[y]&&(S[j]=x.value,x={configurable:p in x?x[p]:Z[p],enumerable:h in x?x[h]:Z[h],writable:!1})}return l(S,j,x)}:l:function(S,j,x){if(s(S),j=n(j),s(x),t)try{return l(S,j,x)}catch(Z){}if("get"in x||"set"in x)throw c("Accessors not supported");return"value"in x&&(S[j]=x.value),S}},91042:function(M,b,e){var a=e(57759),t=e(68029),o=e(83688),s=e(87971),n=e(514),c=e(76846),l=e(26583),d=e(96335),h=Object.getOwnPropertyDescriptor;b.f=a?h:function(y,g){if(y=n(y),g=c(g),d)try{return h(y,g)}catch(S){}if(l(y,g))return s(!t(o.f,y,g),y[g])}},56647:function(M,b,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):[],c=function(l){try{return o(l)}catch(d){return s(n)}};M.exports.f=function(d){return n&&a(d)=="Window"?c(d):o(t(d))}},94561:function(M,b,e){var a=e(4482),t=e(68150),o=t.concat("length","prototype");b.f=Object.getOwnPropertyNames||function(n){return a(n,o)}},10290:function(M,b){b.f=Object.getOwnPropertySymbols},77767:function(M,b,e){var a=e(26583),t=e(6508),o=e(64441),s=e(39376),n=e(80978),c=s("IE_PROTO"),l=Object,d=l.prototype;M.exports=n?l.getPrototypeOf:function(h){var p=o(h);if(a(p,c))return p[c];var y=p.constructor;return t(y)&&p instanceof y?y.prototype:p instanceof l?d:null}},50175:function(M,b,e){var a=e(77149),t=e(33225),o=e(88596),s=e(23932),n=Object.isExtensible,c=a(function(){n(1)});M.exports=c||s?function(d){return!t(d)||s&&o(d)=="ArrayBuffer"?!1:n?n(d):!0}:n},72901:function(M,b,e){var a=e(11700);M.exports=a({}.isPrototypeOf)},65556:function(M,b,e){"use strict";var a=e(71584),t=e(87821),o=e(76835),s=e(26583),n=e(71691),c=e(64441),l="Object Iterator",d=a.set,h=a.getterFor(l);M.exports=t(function(y,g){var S=c(y);d(this,{type:l,mode:g,object:S,keys:n(S),index:0})},"Object",function(){for(var y=h(this),g=y.keys;;){if(g===null||y.index>=g.length)return y.object=y.keys=null,o(void 0,!0);var S=g[y.index++],j=y.object;if(s(j,S)){switch(y.mode){case"keys":return o(S,!1);case"values":return o(j[S],!1)}return o([S,j[S]],!1)}}})},4482:function(M,b,e){var a=e(11700),t=e(26583),o=e(514),s=e(63795).indexOf,n=e(17859),c=a([].push);M.exports=function(l,d){var h=o(l),p=0,y=[],g;for(g in h)!t(n,g)&&t(h,g)&&c(y,g);for(;d.length>p;)t(h,g=d[p++])&&(~s(y,g)||c(y,g));return y}},71691:function(M,b,e){var a=e(4482),t=e(68150);M.exports=Object.keys||function(s){return a(s,t)}},83688:function(M,b){"use strict";var e={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,t=a&&!e.call({1:2},1);b.f=t?function(s){var n=a(this,s);return!!n&&n.enumerable}:e},63332:function(M,b,e){var a=e(12719),t=e(78958),o=e(66961);M.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var s=!1,n={},c;try{c=a(Object.prototype,"__proto__","set"),c(n,[]),s=n instanceof Array}catch(l){}return function(d,h){return t(d),o(h),s?c(d,h):d.__proto__=h,d}}():void 0)},88818:function(M,b,e){var a=e(53065),t=e(6508),o=e(77740),s=o("observable"),n=a.Observable,c=n&&n.prototype;M.exports=!t(n)||!t(n.from)||!t(n.of)||!t(c.subscribe)||!t(c[s])},54026:function(M,b,e){var a=e(68029),t=e(6508),o=e(33225),s=TypeError;M.exports=function(n,c){var l,d;if(c==="string"&&t(l=n.toString)&&!o(d=a(l,n))||t(l=n.valueOf)&&!o(d=a(l,n))||c!=="string"&&t(l=n.toString)&&!o(d=a(l,n)))return d;throw s("Can't convert object to primitive value")}},60999:function(M,b,e){var a=e(42725),t=e(11700),o=e(94561),s=e(10290),n=e(78958),c=t([].concat);M.exports=a("Reflect","ownKeys")||function(d){var h=o.f(n(d)),p=s.f;return p?c(h,p(d)):h}},12539:function(M,b,e){var a=e(11700),t=e(26583),o=SyntaxError,s=parseInt,n=String.fromCharCode,c=a("".charAt),l=a("".slice),d=a(/./.exec),h={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":` +`,"\\r":"\r","\\t":" "},p=/^[\da-f]{4}$/i,y=/^[\u0000-\u001F]$/;M.exports=function(g,S){for(var j=!0,x="";Sg,Z=o(S)?S:d(S),B=x?c(arguments,g):[],w=x?function(){t(Z,this,B)}:Z;return y?p(w,j):p(w)}:p}},38684:function(M,b,e){var a=e(23313),t=e(22731),o=a.Set,s=a.add;M.exports=function(n){var c=new o;return t(n,function(l){s(c,l)}),c}},53505:function(M,b,e){"use strict";var a=e(77318),t=e(23313),o=e(38684),s=e(17085),n=e(35710),c=e(22731),l=e(95060),d=t.has,h=t.remove;M.exports=function(y){var g=a(this),S=n(y),j=o(g);return s(g)<=S.size?c(g,function(x){S.includes(x)&&h(j,x)}):l(S.getIterator(),function(x){d(g,x)&&h(j,x)}),j}},23313:function(M,b,e){var a=e(11700),t=Set.prototype;M.exports={Set,add:a(t.add),has:a(t.has),remove:a(t.delete),proto:t,$has:t.has,$keys:t.keys}},51737:function(M,b,e){"use strict";var a=e(77318),t=e(23313),o=e(17085),s=e(35710),n=e(22731),c=e(95060),l=t.Set,d=t.add,h=t.has,p=t.$has,y=t.$keys,g=function(S){return S.has===p&&S.keys===y};M.exports=function(j){var x=a(this),Z=s(j),B=new l;if(!g(Z)&&o(x)>Z.size){if(c(Z.getIterator(),function(T){h(x,T)&&d(B,T)}),o(B)<2)return B;var w=B;B=new l,n(x,function(T){h(w,T)&&d(B,T)})}else n(x,function(T){Z.includes(T)&&d(B,T)});return B}},46149:function(M,b,e){"use strict";var a=e(77318),t=e(23313).has,o=e(17085),s=e(35710),n=e(22731),c=e(95060),l=e(40164);M.exports=function(h){var p=a(this),y=s(h);if(o(p)<=y.size)return n(p,function(S){if(y.includes(S))return!1},!0)!==!1;var g=y.getIterator();return c(g,function(S){if(t(p,S))return l(g,"normal",!1)})!==!1}},99527:function(M,b,e){"use strict";var a=e(77318),t=e(17085),o=e(22731),s=e(35710);M.exports=function(c){var l=a(this),d=s(c);return t(l)>d.size?!1:o(l,function(h){if(!d.includes(h))return!1},!0)!==!1}},20698:function(M,b,e){"use strict";var a=e(77318),t=e(23313).has,o=e(17085),s=e(35710),n=e(95060),c=e(40164);M.exports=function(d){var h=a(this),p=s(d);if(o(h)=j?h?"":void 0:(x=c(g,S),x<55296||x>56319||S+1===j||(Z=c(g,S+1))<56320||Z>57343?h?n(g,S):x:h?l(g,S,S+2):(x-55296<<10)+(Z-56320)+65536)}};M.exports={codeAt:d(!1),charAt:d(!0)}},81089:function(M,b,e){var a=e(42725),t=e(11700),o=String.fromCharCode,s=a("String","fromCodePoint"),n=t("".charAt),c=t("".charCodeAt),l=t("".indexOf),d=t("".slice),h=48,p=57,y=97,g=102,S=65,j=70,x=function(w,T){var F=c(w,T);return F>=h&&F<=p},Z=function(w,T,F){if(F>=w.length)return-1;for(var A=0;T=h&&w<=p?w-h:w>=y&&w<=g?w-y+10:w>=S&&w<=j?w-S+10:-1};M.exports=function(w){for(var T="",F=0,A=0,L;(A=l(w,"\\",A))>-1;){if(T+=d(w,F,A),++A===w.length)return;var O=n(w,A++);switch(O){case"b":T+="\b";break;case"t":T+=" ";break;case"n":T+=` +`;break;case"v":T+="\v";break;case"f":T+="\f";break;case"r":T+="\r";break;case"\r":A1114111)return;T+=s(L);break;default:if(x(O,0))return;T+=O}F=A}return T+d(w,F)}},53761:function(M,b,e){var a=e(11700),t=e(12105),o=e(68424),s=e(91289),n=a("".replace),c=RegExp("^["+s+"]+"),l=RegExp("(^|[^"+s+"])["+s+"]+$"),d=function(h){return function(p){var y=o(t(p));return h&1&&(y=n(y,c,"")),h&2&&(y=n(y,l,"$1")),y}};M.exports={start:d(1),end:d(2),trim:d(3)}},27698:function(M,b,e){var a=e(53065),t=e(77149),o=e(8783),s=e(83051),n=e(79132),c=e(79727),l=a.structuredClone;M.exports=!!l&&!t(function(){if(n&&o>92||c&&o>94||s&&o>97)return!1;var d=new ArrayBuffer(8),h=l(d,{transfer:[d]});return d.byteLength!=0||h.byteLength!=8})},18680:function(M,b,e){var a=e(8783),t=e(77149);M.exports=!!Object.getOwnPropertySymbols&&!t(function(){var o=Symbol();return!String(o)||!(Object(o)instanceof Symbol)||!Symbol.sham&&a&&a<41})},56912:function(M,b,e){var a=e(53065),t=e(59178),o=e(34066),s=e(6508),n=e(26583),c=e(77149),l=e(8199),d=e(66322),h=e(75074),p=e(87486),y=e(72833),g=e(79727),S=a.setImmediate,j=a.clearImmediate,x=a.process,Z=a.Dispatch,B=a.Function,w=a.MessageChannel,T=a.String,F=0,A={},L="onreadystatechange",O,$,P,K;c(function(){O=a.location});var U=function(G){if(n(A,G)){var q=A[G];delete A[G],q()}},ee=function(G){return function(){U(G)}},le=function(G){U(G.data)},Q=function(G){a.postMessage(T(G),O.protocol+"//"+O.host)};(!S||!j)&&(S=function(q){p(arguments.length,1);var I=s(q)?q:B(q),H=d(arguments,1);return A[++F]=function(){t(I,void 0,H)},$(F),F},j=function(q){delete A[q]},g?$=function(G){x.nextTick(ee(G))}:Z&&Z.now?$=function(G){Z.now(ee(G))}:w&&!y?(P=new w,K=P.port2,P.port1.onmessage=le,$=o(K.postMessage,K)):a.addEventListener&&s(a.postMessage)&&!a.importScripts&&O&&O.protocol!=="file:"&&!c(Q)?($=Q,a.addEventListener("message",le,!1)):L in h("script")?$=function(G){l.appendChild(h("script"))[L]=function(){l.removeChild(this),U(G)}}:$=function(G){setTimeout(ee(G),0)}),M.exports={set:S,clear:j}},71410:function(M,b,e){var a=e(68345),t=Math.max,o=Math.min;M.exports=function(s,n){var c=a(s);return c<0?t(c+n,0):o(c,n)}},28046:function(M,b,e){var a=e(54845),t=TypeError;M.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(M,b,e){var a=e(68345),t=e(25010),o=RangeError;M.exports=function(s){if(s===void 0)return 0;var n=a(s),c=t(n);if(n!==c)throw o("Wrong length or index");return c}},514:function(M,b,e){var a=e(42414),t=e(12105);M.exports=function(o){return a(t(o))}},68345:function(M,b,e){var a=e(18243);M.exports=function(t){var o=+t;return o!==o||o===0?0:a(o)}},25010:function(M,b,e){var a=e(68345),t=Math.min;M.exports=function(o){return o>0?t(a(o),9007199254740991):0}},64441:function(M,b,e){var a=e(12105),t=Object;M.exports=function(o){return t(a(o))}},5561:function(M,b,e){var a=e(82053),t=RangeError;M.exports=function(o,s){var n=a(o);if(n%s)throw t("Wrong offset");return n}},82053:function(M,b,e){var a=e(68345),t=RangeError;M.exports=function(o){var s=a(o);if(s<0)throw t("The argument can't be less than 0");return s}},54845:function(M,b,e){var a=e(68029),t=e(33225),o=e(59549),s=e(15931),n=e(54026),c=e(77740),l=TypeError,d=c("toPrimitive");M.exports=function(h,p){if(!t(h)||o(h))return h;var y=s(h,d),g;if(y){if(p===void 0&&(p="default"),g=a(y,h,p),!t(g)||o(g))return g;throw l("Can't convert object to primitive value")}return p===void 0&&(p="number"),n(h,p)}},76846:function(M,b,e){var a=e(54845),t=e(59549);M.exports=function(o){var s=a(o,"string");return t(s)?s:s+""}},74089:function(M,b,e){var a=e(42725),t=e(6508),o=e(94653),s=e(33225),n=a("Set"),c=function(l){return s(l)&&typeof l.size=="number"&&t(l.has)&&t(l.keys)};M.exports=function(l){if(c(l))return l;if(o(l))return new n(l)}},64726:function(M,b,e){var a=e(77740),t=a("toStringTag"),o={};o[t]="z",M.exports=String(o)==="[object z]"},68424:function(M,b,e){var a=e(56834),t=String;M.exports=function(o){if(a(o)==="Symbol")throw TypeError("Cannot convert a Symbol value to a string");return t(o)}},30238:function(M){var b=String;M.exports=function(e){try{return b(e)}catch(a){return"Object"}}},64395:function(M,b,e){var a=e(50112),t=e(93947);M.exports=function(o,s){return a(t(o),s)}},93947:function(M,b,e){var a=e(94641),t=e(23473),o=a.aTypedArrayConstructor,s=a.getTypedArrayConstructor;M.exports=function(n){return o(t(n,s(n)))}},89669:function(M,b,e){var a=e(11700),t=0,o=Math.random(),s=a(1 .toString);M.exports=function(n){return"Symbol("+(n===void 0?"":n)+")_"+s(++t+o,36)}},61037:function(M,b,e){var a=e(18680);M.exports=a&&!Symbol.sham&&typeof Symbol.iterator=="symbol"},63980:function(M,b,e){var a=e(57759),t=e(77149);M.exports=a&&t(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})},87486:function(M){var b=TypeError;M.exports=function(e,a){if(eT&&p(le,arguments[T]),le});if(P.prototype=O,A!=="Error"?n?n(P,$):c(P,$,{name:!0}):g&&w in L&&(l(P,L,w),l(P,L,"prepareStackTrace")),c(P,L),!S)try{O.name!==A&&o(O,"name",A),O.constructor=P}catch(K){}return P}}},74503:function(M,b,e){var a=e(13354),t=e(42725),o=e(59178),s=e(77149),n=e(69485),c="AggregateError",l=t(c),d=!s(function(){return l([1]).errors[0]!==1})&&s(function(){return l([1],c,{cause:7}).cause!==7});a({global:!0,constructor:!0,arity:2,forced:d},{AggregateError:n(c,function(h){return function(y,g){return o(h,this,arguments)}},d,!0)})},90570:function(M,b,e){"use strict";var a=e(13354),t=e(72901),o=e(77767),s=e(63332),n=e(81732),c=e(34552),l=e(5927),d=e(87971),h=e(13719),p=e(96410),y=e(95815),g=e(9280),S=e(77740),j=S("toStringTag"),x=Error,Z=[].push,B=function(F,A){var L=t(w,this),O;s?O=s(x(),L?o(this):w):(O=L?this:c(w),l(O,j,"Error")),A!==void 0&&l(O,"message",g(A)),p(O,B,O.stack,1),arguments.length>2&&h(O,arguments[2]);var $=[];return y(F,Z,{that:$}),l(O,"errors",$),O};s?s(B,x):n(B,x,{name:!0});var w=B.prototype=c(x.prototype,{constructor:d(1,B),message:d(1,""),name:d(1,"AggregateError")});a({global:!0,constructor:!0,arity:2},{AggregateError:B})},511:function(M,b,e){e(90570)},65591:function(M,b,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 d=t(this),h=o(d),p=s(l),y=p>=0?p:h+p;return y<0||y>=h?void 0:d[y]}}),n("at")},33356:function(M,b,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(M,b,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(M,b,e){"use strict";var a=e(13354),t=e(64441),o=e(89122),s=e(77060),n=e(12262),c=e(77149),l=c(function(){return[].push.call({length:4294967296},1)!==4294967297}),d=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(p){return p instanceof TypeError}},h=l||!d();a({target:"Array",proto:!0,arity:1,forced:h},{push:function(y){var g=t(this),S=o(g),j=arguments.length;n(S+j);for(var x=0;x79&&s<83,l=c||!o("reduceRight");a({target:"Array",proto:!0,forced:l},{reduceRight:function(h){return t(this,h,arguments.length,arguments.length>1?arguments[1]:void 0)}})},62083:function(M,b,e){"use strict";var a=e(13354),t=e(82565).left,o=e(83242),s=e(8783),n=e(79727),c=!n&&s>79&&s<83,l=c||!o("reduce");a({target:"Array",proto:!0,forced:l},{reduce:function(h){var p=arguments.length;return t(this,h,p,p>1?arguments[1]:void 0)}})},36021:function(M,b,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(M,b,e){"use strict";var a=e(13354),t=e(11700),o=e(31927),s=e(514),n=e(50112),c=e(70721),l=e(22054),d=Array,h=t(c("Array").sort);a({target:"Array",proto:!0},{toSorted:function(y){y!==void 0&&o(y);var g=s(this),S=n(d,g);return h(S,y)}}),l("toSorted")},37116:function(M,b,e){"use strict";var a=e(13354),t=e(22054),o=e(12262),s=e(89122),n=e(71410),c=e(514),l=e(68345),d=Array,h=Math.max,p=Math.min;a({target:"Array",proto:!0},{toSpliced:function(g,S){var j=c(this),x=s(j),Z=n(g,x),B=arguments.length,w=0,T,F,A,L;for(B===0?T=F=0:B===1?(T=0,F=x-Z):(T=B-2,F=p(h(l(S),0),x-Z)),A=o(x+T-F),L=d(A);w=0?S:g+S;return j<0||j>=g?void 0:l(y,j)}})},97390:function(M,b,e){"use strict";var a=e(13354),t=e(68029),o=e(11700),s=e(12105),n=e(6508),c=e(74883),l=e(42854),d=e(68424),h=e(15931),p=e(50533),y=e(47947),g=e(77740),S=e(77449),j=g("replace"),x=TypeError,Z=o("".indexOf),B=o("".replace),w=o("".slice),T=Math.max,F=function(A,L,O){return O>A.length?-1:L===""?O:Z(A,L,O)};a({target:"String",proto:!0},{replaceAll:function(L,O){var $=s(this),P,K,U,ee,le,Q,G,q,I,H=0,Y=0,D="";if(!c(L)){if(P=l(L),P&&(K=d(s(p(L))),!~Z(K,"g")))throw x("`.replaceAll` does not allow non-global regexes");if(U=h(L,j),U)return t(U,L,$,O);if(S&&P)return B(d($),L,O)}for(ee=d($),le=d(L),Q=n(O),Q||(O=d(O)),G=le.length,q=T(1,G),H=F(ee,le,0);H!==-1;)I=Q?d(O(le,H,ee)):y(le,ee,H,[],void 0,O),D+=w(ee,Y,H)+I,Y=H+G,H=F(ee,le,H+q);return Y=0?p:h+p;return y<0||y>=h?void 0:d[y]})},55759:function(M,b,e){"use strict";var a=e(94641),t=e(17464).findLastIndex,o=a.aTypedArray,s=a.exportTypedArrayMethod;s("findLastIndex",function(c){return t(o(this),c,arguments.length>1?arguments[1]:void 0)})},23239:function(M,b,e){"use strict";var a=e(94641),t=e(17464).findLast,o=a.aTypedArray,s=a.exportTypedArrayMethod;s("findLast",function(c){return t(o(this),c,arguments.length>1?arguments[1]:void 0)})},53289:function(M,b,e){"use strict";var a=e(53065),t=e(68029),o=e(94641),s=e(89122),n=e(5561),c=e(64441),l=e(77149),d=a.RangeError,h=a.Int8Array,p=h&&h.prototype,y=p&&p.set,g=o.aTypedArray,S=o.exportTypedArrayMethod,j=!l(function(){var Z=new Uint8ClampedArray(2);return t(y,Z,{length:1,0:3},1),Z[1]!==3}),x=j&&o.NATIVE_ARRAY_BUFFER_VIEWS&&l(function(){var Z=new h(2);return Z.set(1),Z.set("2",1),Z[0]!==0||Z[1]!==2});S("set",function(B){g(this);var w=n(arguments.length>1?arguments[1]:void 0,1),T=c(B);if(j)return t(y,this,T,w);var F=this.length,A=s(T),L=0;if(A+w>F)throw d("Wrong length");for(;L1?arguments[1]:void 0)}}),o("filterOut")},6719:function(M,b,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(M,b,e){var a=e(13354),t=e(44594);a({target:"Array",stat:!0},{fromAsync:t})},84602:function(M,b,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(M,b,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(c){var l=arguments.length>1?arguments[1]:void 0;return t(this,c,l)}}),s("groupBy")},68765:function(M,b,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(M,b,e){"use strict";var a=e(13354),t=e(69093),o=e(22054);a({target:"Array",proto:!0},{group:function(n){var c=arguments.length>1?arguments[1]:void 0;return t(this,n,c)}}),o("group")},46377:function(M,b,e){var a=e(13354),t=e(190),o=Object.isFrozen,s=function(n,c){if(!o||!t(n)||!o(n))return!1;for(var l=0,d=n.length,h;l1?arguments[1]:void 0);return s(l,function(h,p){if(!d(h,p,l))return!1},!0)!==!1}})},82412:function(M,b,e){"use strict";var a=e(13354),t=e(34066),o=e(7328),s=e(85623),n=e(46782),c=s.Map,l=s.set;a({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(h){var p=o(this),y=t(h,arguments.length>1?arguments[1]:void 0),g=new c;return n(p,function(S,j){y(S,j,p)&&l(g,j,S)}),g}})},69205:function(M,b,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(c){var l=o(this),d=t(c,arguments.length>1?arguments[1]:void 0),h=s(l,function(p,y){if(d(p,y,l))return{key:y}},!0);return h&&h.key}})},53677:function(M,b,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(c){var l=o(this),d=t(c,arguments.length>1?arguments[1]:void 0),h=s(l,function(p,y){if(d(p,y,l))return{value:p}},!0);return h&&h.value}})},55994:function(M,b,e){var a=e(13354),t=e(67640);a({target:"Map",stat:!0,forced:!0},{from:t})},96103:function(M,b,e){"use strict";var a=e(13354),t=e(68029),o=e(11700),s=e(6508),n=e(31927),c=e(95815),l=e(85623).Map,d=o([].push);a({target:"Map",stat:!0,forced:!0},{groupBy:function(p,y){var g=s(this)?this:l,S=new g;n(y);var j=n(S.has),x=n(S.get),Z=n(S.set);return c(p,function(B){var w=y(B);t(j,S,w)?d(t(x,S,w),B):t(Z,S,w,[B])}),S}})},13153:function(M,b,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(c){return s(o(this),function(l){if(t(l,c))return!0},!0)===!0}})},51331:function(M,b,e){"use strict";var a=e(13354),t=e(68029),o=e(95815),s=e(6508),n=e(31927),c=e(85623).Map;a({target:"Map",stat:!0,forced:!0},{keyBy:function(d,h){var p=s(this)?this:c,y=new p;n(h);var g=n(y.set);return o(d,function(S){t(g,y,h(S),S)}),y}})},31471:function(M,b,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 c=o(t(this),function(l,d){if(l===n)return{key:d}},!0);return c&&c.key}})},48008:function(M,b,e){"use strict";var a=e(13354),t=e(34066),o=e(7328),s=e(85623),n=e(46782),c=s.Map,l=s.set;a({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(h){var p=o(this),y=t(h,arguments.length>1?arguments[1]:void 0),g=new c;return n(p,function(S,j){l(g,y(S,j,p),S)}),g}})},72877:function(M,b,e){"use strict";var a=e(13354),t=e(34066),o=e(7328),s=e(85623),n=e(46782),c=s.Map,l=s.set;a({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(h){var p=o(this),y=t(h,arguments.length>1?arguments[1]:void 0),g=new c;return n(p,function(S,j){l(g,j,y(S,j,p))}),g}})},55778:function(M,b,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(c){for(var l=t(this),d=arguments.length,h=0;h1?arguments[1]:void 0);return s(l,function(h,p){if(d(h,p,l))return!0},!0)===!0}})},74613:function(M,b,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(M,b,e){"use strict";var a=e(13354),t=e(31927),o=e(7328),s=e(85623),n=TypeError,c=s.get,l=s.has,d=s.set;a({target:"Map",proto:!0,real:!0,forced:!0},{update:function(p,y){var g=o(this),S=arguments.length;t(y);var j=l(g,p);if(!j&&S<3)throw n("Updating absent value");var x=j?c(g,p):t(S>2?arguments[2]:void 0)(p,g);return d(g,p,y(x,p,g)),g}})},85890:function(M,b,e){"use strict";var a=e(13354),t=e(32171);a({target:"Map",proto:!0,real:!0,forced:!0},{upsert:t})},49489:function(M,b,e){var a=e(13354),t=Math.min,o=Math.max;a({target:"Math",stat:!0,forced:!0},{clamp:function(n,c,l){return t(l,o(c,n))}})},63478:function(M,b,e){var a=e(13354);a({target:"Math",stat:!0,nonConfigurable:!0,nonWritable:!0},{DEG_PER_RAD:Math.PI/180})},88126:function(M,b,e){var a=e(13354),t=180/Math.PI;a({target:"Math",stat:!0,forced:!0},{degrees:function(s){return s*t}})},24760:function(M,b,e){var a=e(13354),t=e(15129),o=e(18749);a({target:"Math",stat:!0,forced:!0},{fscale:function(n,c,l,d,h){return o(t(n,c,l,d,h))}})},37877:function(M,b,e){var a=e(13354);a({target:"Math",stat:!0,forced:!0},{iaddh:function(o,s,n,c){var l=o>>>0,d=s>>>0,h=n>>>0;return d+(c>>>0)+((l&h|(l|h)&~(l+h>>>0))>>>31)|0}})},99461:function(M,b,e){var a=e(13354);a({target:"Math",stat:!0,forced:!0},{imulh:function(o,s){var n=65535,c=+o,l=+s,d=c&n,h=l&n,p=c>>16,y=l>>16,g=(p*h>>>0)+(d*h>>>16);return p*y+(g>>16)+((d*y>>>0)+(g&n)>>16)}})},63746:function(M,b,e){var a=e(13354);a({target:"Math",stat:!0,forced:!0},{isubh:function(o,s,n,c){var l=o>>>0,d=s>>>0,h=n>>>0;return d-(c>>>0)-((~l&h|~(l^h)&l-h>>>0)>>>31)|0}})},8443:function(M,b,e){var a=e(13354);a({target:"Math",stat:!0,nonConfigurable:!0,nonWritable:!0},{RAD_PER_DEG:180/Math.PI})},75738:function(M,b,e){var a=e(13354),t=Math.PI/180;a({target:"Math",stat:!0,forced:!0},{radians:function(s){return s*t}})},13322:function(M,b,e){var a=e(13354),t=e(15129);a({target:"Math",stat:!0,forced:!0},{scale:t})},64748:function(M,b,e){var a=e(13354),t=e(78958),o=e(54633),s=e(87821),n=e(76835),c=e(71584),l="Seeded Random",d=l+" Generator",h='Math.seededPRNG() argument should have a "seed" field with a finite value.',p=c.set,y=c.getterFor(d),g=TypeError,S=s(function(x){p(this,{type:d,seed:x%2147483647})},l,function(){var x=y(this),Z=x.seed=(x.seed*1103515245+12345)%2147483647;return n((Z&1073741823)/1073741823,!1)});a({target:"Math",stat:!0,forced:!0},{seededPRNG:function(x){var Z=t(x).seed;if(!o(Z))throw g(h);return new S(Z)}})},59048:function(M,b,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(M,b,e){var a=e(13354);a({target:"Math",stat:!0,forced:!0},{umulh:function(o,s){var n=65535,c=+o,l=+s,d=c&n,h=l&n,p=c>>>16,y=l>>>16,g=(p*h>>>0)+(d*h>>>16);return p*y+(g>>>16)+((d*y>>>0)+(g&n)>>>16)}})},89495:function(M,b,e){"use strict";var a=e(13354),t=e(11700),o=e(68345),s=e(35323),n="Invalid number representation",c="Invalid radix",l=RangeError,d=SyntaxError,h=TypeError,p=/^[\da-z]+$/,y=t("".charAt),g=t(p.exec),S=t(1 .toString),j=t("".slice);a({target:"Number",stat:!0,forced:!0},{fromString:function(Z,B){var w=1,T,F;if(typeof Z!="string")throw h(n);if(!Z.length||y(Z,0)=="-"&&(w=-1,Z=j(Z,1),!Z.length))throw d(n);if(T=B===void 0?10:o(B),T<2||T>36)throw l(c);if(!g(p,Z)||S(F=s(Z,T),T)!==Z)throw d(n);return w*F}})},78490:function(M,b,e){"use strict";var a=e(13354),t=e(73126);a({target:"Number",stat:!0,forced:!0},{range:function(s,n,c){return new t(s,n,c,"number",0,1)}})},11790:function(M,b,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(M,b,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(M,b,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(M,b,e){"use strict";var a=e(13354),t=e(68029),o=e(57759),s=e(51309),n=e(31927),c=e(78958),l=e(92453),d=e(6508),h=e(74883),p=e(33225),y=e(15931),g=e(28621),S=e(3313),j=e(2265),x=e(3234),Z=e(77740),B=e(71584),w=e(88818),T=Z("observable"),F="Observable",A="Subscription",L="SubscriptionObserver",O=B.getterFor,$=B.set,P=O(F),K=O(A),U=O(L),ee=function(I){this.observer=c(I),this.cleanup=void 0,this.subscriptionObserver=void 0};ee.prototype={type:A,clean:function(){var I=this.cleanup;if(I){this.cleanup=void 0;try{I()}catch(H){x(H)}}},close:function(){if(!o){var I=this.facade,H=this.subscriptionObserver;I.closed=!0,H&&(H.closed=!0)}this.observer=void 0},isClosed:function(){return this.observer===void 0}};var le=function(I,H){var Y=$(this,new ee(I)),D;o||(this.closed=!1);try{(D=y(I,"start"))&&t(D,I,this)}catch(ce){x(ce)}if(!Y.isClosed()){var _=Y.subscriptionObserver=new Q(Y);try{var ue=H(_),be=ue;h(ue)||(Y.cleanup=d(ue.unsubscribe)?function(){be.unsubscribe()}:n(ue))}catch(ce){_.error(ce);return}Y.isClosed()&&Y.clean()}};le.prototype=S({},{unsubscribe:function(){var H=K(this);H.isClosed()||(H.close(),H.clean())}}),o&&j(le.prototype,"closed",{configurable:!0,get:function(){return K(this).isClosed()}});var Q=function(I){$(this,{type:L,subscriptionState:I}),o||(this.closed=!1)};Q.prototype=S({},{next:function(H){var Y=U(this).subscriptionState;if(!Y.isClosed()){var D=Y.observer;try{var _=y(D,"next");_&&t(_,D,H)}catch(ue){x(ue)}}},error:function(H){var Y=U(this).subscriptionState;if(!Y.isClosed()){var D=Y.observer;Y.close();try{var _=y(D,"error");_?t(_,D,H):x(H)}catch(ue){x(ue)}Y.clean()}},complete:function(){var H=U(this).subscriptionState;if(!H.isClosed()){var Y=H.observer;H.close();try{var D=y(Y,"complete");D&&t(D,Y)}catch(_){x(_)}H.clean()}}}),o&&j(Q.prototype,"closed",{configurable:!0,get:function(){return U(this).subscriptionState.isClosed()}});var G=function(H){l(this,q),$(this,{type:F,subscriber:n(H)})},q=G.prototype;S(q,{subscribe:function(H){var Y=arguments.length;return new le(d(H)?{next:H,error:Y>1?arguments[1]:void 0,complete:Y>2?arguments[2]:void 0}:p(H)?H:{},P(this).subscriber)}}),g(q,T,function(){return this}),a({global:!0,constructor:!0,forced:w},{Observable:G}),s(F)},11341:function(M,b,e){"use strict";var a=e(13354),t=e(42725),o=e(68029),s=e(78958),n=e(13893),c=e(64712),l=e(15931),d=e(95815),h=e(77740),p=e(88818),y=h("observable");a({target:"Observable",stat:!0,forced:p},{from:function(S){var j=n(this)?this:t("Observable"),x=l(s(S),y);if(x){var Z=s(o(x,S));return Z.constructor===j?Z:new j(function(w){return Z.subscribe(w)})}var B=c(S);return new j(function(w){d(B,function(T,F){if(w.next(T),w.closed)return F()},{IS_ITERATOR:!0,INTERRUPTED:!0}),w.complete()})}})},57099:function(M,b,e){e(8120),e(11341),e(21720)},21720:function(M,b,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"),d=arguments.length,h=n(d),p=0;p1?arguments[1]:void 0);return s(l,function(h){if(!d(h,h,l))return!1},!0)!==!1}})},17960:function(M,b,e){"use strict";var a=e(13354),t=e(34066),o=e(77318),s=e(23313),n=e(22731),c=s.Set,l=s.add;a({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(h){var p=o(this),y=t(h,arguments.length>1?arguments[1]:void 0),g=new c;return n(p,function(S){y(S,S,p)&&l(g,S)}),g}})},25823:function(M,b,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(c){var l=o(this),d=t(c,arguments.length>1?arguments[1]:void 0),h=s(l,function(p){if(d(p,p,l))return{value:p}},!0);return h&&h.value}})},56133:function(M,b,e){var a=e(13354),t=e(67640);a({target:"Set",stat:!0,forced:!0},{from:t})},6762:function(M,b,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(c){return t(s,this,o(c))}})},60682:function(M,b,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(M,b,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(c){return t(s,this,o(c))}})},65107:function(M,b,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(M,b,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(c){return t(s,this,o(c))}})},31772:function(M,b,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(M,b,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(c){return t(s,this,o(c))}})},19453:function(M,b,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(M,b,e){"use strict";var a=e(13354),t=e(11700),o=e(77318),s=e(22731),n=e(68424),c=t([].join),l=t([].push);a({target:"Set",proto:!0,real:!0,forced:!0},{join:function(h){var p=o(this),y=h===void 0?",":n(h),g=[];return s(p,function(S){l(g,S)}),c(g,y)}})},71395:function(M,b,e){"use strict";var a=e(13354),t=e(34066),o=e(77318),s=e(23313),n=e(22731),c=s.Set,l=s.add;a({target:"Set",proto:!0,real:!0,forced:!0},{map:function(h){var p=o(this),y=t(h,arguments.length>1?arguments[1]:void 0),g=new c;return n(p,function(S){l(g,y(S,S,p))}),g}})},38054:function(M,b,e){var a=e(13354),t=e(55042);a({target:"Set",stat:!0,forced:!0},{of:t})},92141:function(M,b,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 d=o(this),h=arguments.length<2,p=h?void 0:arguments[1];if(t(l),s(d,function(y){h?(h=!1,p=y):p=l(p,y,y,d)}),h)throw n("Reduce of empty set with no initial value");return p}})},95396:function(M,b,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(c){var l=o(this),d=t(c,arguments.length>1?arguments[1]:void 0);return s(l,function(h){if(d(h,h,l))return!0},!0)===!0}})},11859:function(M,b,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(c){return t(s,this,o(c))}})},13409:function(M,b,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(M,b,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(c){return t(s,this,o(c))}})},51113:function(M,b,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(M,b,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 d=n(o(this)),h=d.length,p=s(l),y=p>=0?p:h+p;return y<0||y>=h?void 0:t(d,y)}})},36879:function(M,b,e){"use strict";var a=e(13354),t=e(87821),o=e(76835),s=e(12105),n=e(68424),c=e(71584),l=e(81673),d=l.codeAt,h=l.charAt,p="String Iterator",y=c.set,g=c.getterFor(p),S=t(function(x){y(this,{type:p,string:x,index:0})},"String",function(){var x=g(this),Z=x.string,B=x.index,w;return B>=Z.length?o(void 0,!0):(w=h(Z,B),x.index+=w.length,o({codePoint:d(w,0),position:B},!1))});a({target:"String",proto:!0,forced:!0},{codePoints:function(){return new S(n(s(this)))}})},27008:function(M,b,e){var a=e(13354),t=e(85650);a({target:"String",stat:!0,forced:!0},{cooked:t})},91345:function(M,b,e){"use strict";var a=e(81506),t=e(13354),o=e(71980),s=e(42725),n=e(70377),c=e(11700),l=e(59178),d=e(78958),h=e(64441),p=e(6508),y=e(89122),g=e(38248).f,S=e(81469),j=e(85650),x=e(81089),Z=e(91289),B=s("WeakMap"),w=o("GlobalDedentRegistry",new B);w.has=w.has,w.get=w.get,w.set=w.set;var T=Array,F=TypeError,A=Object.freeze||Object,L=Object.isFrozen,O=Math.min,$=c("".charAt),P=c("".slice),K=c("".split),U=c(/./.exec),ee=/([\n\u2028\u2029]|\r\n?)/g,le=RegExp("^["+Z+"]*"),Q=RegExp("[^"+Z+"]"),G="Invalid tag",q="Invalid opening line",I="Invalid closing line",H=function(ce){var he=ce.raw;if(a&&!L(he))throw F("Raw template should be frozen");if(w.has(he))return w.get(he);var Fe=Y(he),Je=_(Fe);return g(Je,"raw",{value:A(Fe)}),A(Je),w.set(he,Je),Je},Y=function(ce){var he=h(ce),Fe=y(he),Je=T(Fe),et=T(Fe),ae=0,yt,Pt;if(!Fe)throw F(G);for(;ae0)throw F(q);yt[1]=""}if(Ct){if(yt.length===1||U(Q,yt[yt.length-1]))throw F(I);yt[yt.length-2]="",yt[yt.length-1]=""}for(var Le=2;Le=56320||++h>=d||(n(l,h)&64512)!=56320))return!1}return!0}})},5744:function(M,b,e){"use strict";var a=e(13354),t=e(68029),o=e(11700),s=e(12105),n=e(68424),c=e(77149),l=Array,d=o("".charAt),h=o("".charCodeAt),p=o([].join),y="".toWellFormed,g="\uFFFD",S=y&&c(function(){return t(y,1)!=="1"});a({target:"String",proto:!0,forced:S},{toWellFormed:function(){var x=n(s(this));if(S)return t(y,x);for(var Z=x.length,B=l(Z),w=0;w=56320||w+1>=Z||(h(x,w+1)&64512)!=56320?B[w]=g:(B[w]=d(x,w),B[++w]=d(x,w))}return p(B,"")}})},2017:function(M,b,e){"use strict";var a=e(13354),t=e(72901),o=e(77767),s=e(63332),n=e(81732),c=e(34552),l=e(5927),d=e(87971),h=e(96410),p=e(9280),y=e(77740),g=y("toStringTag"),S=Error,j=function(B,w,T){var F=t(x,this),A;return s?A=s(S(),F?o(this):x):(A=F?this:c(x),l(A,g,"Error")),T!==void 0&&l(A,"message",p(T)),h(A,j,A.stack,1),l(A,"error",B),l(A,"suppressed",w),A};s?s(j,S):n(j,S,{name:!0});var x=j.prototype=c(S.prototype,{constructor:d(1,j),message:d(1,""),name:d(1,"SuppressedError")});a({global:!0,constructor:!0,arity:3},{SuppressedError:j})},12447:function(M,b,e){var a=e(78186);a("asyncDispose")},50706:function(M,b,e){var a=e(78186);a("dispose")},80593:function(M,b,e){var a=e(13354),t=e(42725),o=e(11700),s=t("Symbol"),n=s.keyFor,c=o(s.prototype.valueOf);a({target:"Symbol",stat:!0},{isRegistered:function(d){try{return n(c(d))!==void 0}catch(h){return!1}}})},41693:function(M,b,e){for(var a=e(13354),t=e(71980),o=e(42725),s=e(11700),n=e(59549),c=e(77740),l=o("Symbol"),d=l.isWellKnown,h=o("Object","getOwnPropertyNames"),p=s(l.prototype.valueOf),y=t("wks"),g=0,S=h(l),j=S.length;g1?arguments[1]:void 0);return o(this,d)},!0)},73165:function(M,b,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 d=t(s(this),l,arguments.length>1?arguments[1]:void 0);return o(this,d)},!0)},56390:function(M,b,e){"use strict";var a=e(42725),t=e(89764),o=e(44594),s=e(94641),n=e(50112),c=s.aTypedArrayConstructor,l=s.exportTypedArrayStaticMethod;l("fromAsync",function(h){var p=this,y=arguments.length,g=y>1?arguments[1]:void 0,S=y>2?arguments[2]:void 0;return new(a("Promise"))(function(j){t(p),j(o(h,g,S))}).then(function(j){return n(c(p),j)})},!0)},20233:function(M,b,e){"use strict";var a=e(94641),t=e(69093),o=e(93947),s=a.aTypedArray,n=a.exportTypedArrayMethod;n("groupBy",function(l){var d=arguments.length>1?arguments[1]:void 0;return t(s(this),l,d,o)},!0)},18444:function(M,b,e){"use strict";var a=e(94641),t=e(89122),o=e(30879),s=e(71410),n=e(28046),c=e(68345),l=e(77149),d=a.aTypedArray,h=a.getTypedArrayConstructor,p=a.exportTypedArrayMethod,y=Math.max,g=Math.min,S=!l(function(){var j=new Int8Array([1]),x=j.toSpliced(1,0,{valueOf:function(){return j[0]=2,3}});return x[0]!==2||x[1]!==3});p("toSpliced",function(x,Z){var B=d(this),w=h(B),T=t(B),F=s(x,T),A=arguments.length,L=0,O,$,P,K,U,ee,le;if(A===0)O=$=0;else if(A===1)O=0,$=T-F;else if($=g(y(c(Z),0),T-F),O=A-2,O){K=new w(O),P=o(K);for(var Q=2;Q1&&!p(arguments[1])?j(arguments[1]):void 0,fe=Re?Re.transfer:void 0,_e;return fe!==void 0&&(_e=new Fe,re(fe,_e)),ne(Ee,_e)}})},81474:function(M,b,e){"use strict";var a=e(90894),t=e(8197),o=e(56265),s=e(20610),n=e(13),c=M.exports=function(l,d){var h,p,y,g,S;return arguments.length<2||typeof l!="string"?(g=d,d=l,l=null):g=arguments[2],a(l)?(h=n.call(l,"c"),p=n.call(l,"e"),y=n.call(l,"w")):(h=y=!0,p=!1),S={value:d,configurable:h,enumerable:p,writable:y},g?o(s(g),S):S};c.gs=function(l,d,h){var p,y,g,S;return typeof l!="string"?(g=h,h=d,d=l,l=null):g=arguments[3],a(d)?t(d)?a(h)?t(h)||(g=h,h=void 0):h=void 0:(g=d,d=h=void 0):d=void 0,a(l)?(p=n.call(l,"c"),y=n.call(l,"e")):(p=!0,y=!1),S={get:d,set:h,configurable:p,enumerable:y},g?o(s(g),S):S}},65140:function(M){"use strict";var b="%[a-f0-9]{2}",e=new RegExp("("+b+")|([^%]+?)","gi"),a=new RegExp("("+b+")+","gi");function t(n,c){try{return[decodeURIComponent(n.join(""))]}catch(h){}if(n.length===1)return n;c=c||1;var l=n.slice(0,c),d=n.slice(c);return Array.prototype.concat.call([],t(l),t(d))}function o(n){try{return decodeURIComponent(n)}catch(d){for(var c=n.match(e)||[],l=1;l1&&arguments[1]!==void 0?arguments[1]:s;if(t){var h={match:function(){l&&l(!0)},unmatch:function(){l&&l()}};return t.register(d,h),h}}function c(l){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:s;t&&t.unregister(d,l)}a=t},20699:function(M,b,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 c=this;this.listener=function(l){c.mql=l.currentTarget||l,c.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(c,l){if(c.equals(s))return c.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]()})}},M.exports=o},68323:function(M,b,e){var a=e(20699),t=e(54802),o=t.each,s=t.isFunction,n=t.isArray;function c(){if(!window.matchMedia)throw new Error("matchMedia not present, legacy browsers require a polyfill");this.queries={},this.browserIsIncapable=!window.matchMedia("only all").matches}c.prototype={constructor:c,register:function(l,d,h){var p=this.queries,y=h&&this.browserIsIncapable;return p[l]||(p[l]=new a(l,y)),s(d)&&(d={match:d}),n(d)||(d=[d]),o(d,function(g){s(g)&&(g={match:g}),p[l].addHandler(g)}),this},unregister:function(l,d){var h=this.queries[l];return h&&(d?h.removeHandler(d):(h.clear(),delete this.queries[l])),this}},M.exports=c},66835:function(M){function b(e){this.options=e,!e.deferSetup&&this.setup()}b.prototype={constructor:b,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}},M.exports=b},54802:function(M){function b(t,o){var s=0,n=t.length,c;for(s;s-1}},87308:function(M,b,e){"use strict";var a=e(81474),t=e(54550),o=Function.prototype.apply,s=Function.prototype.call,n=Object.create,c=Object.defineProperty,l=Object.defineProperties,d=Object.prototype.hasOwnProperty,h={configurable:!0,enumerable:!1,writable:!0},p,y,g,S,j,x,Z;p=function(B,w){var T;return t(w),d.call(this,"__ee__")?T=this.__ee__:(T=h.value=n(null),c(this,"__ee__",h),h.value=null),T[B]?typeof T[B]=="object"?T[B].push(w):T[B]=[T[B],w]:T[B]=w,this},y=function(B,w){var T,F;return t(w),F=this,p.call(this,B,T=function(){g.call(F,B,T),o.call(w,this,arguments)}),T.__eeOnceListener__=w,this},g=function(B,w){var T,F,A,L;if(t(w),!d.call(this,"__ee__"))return this;if(T=this.__ee__,!T[B])return this;if(F=T[B],typeof F=="object")for(L=0;A=F[L];++L)(A===w||A.__eeOnceListener__===w)&&(F.length===2?T[B]=F[L?0:1]:F.splice(L,1));else(F===w||F.__eeOnceListener__===w)&&delete T[B];return this},S=function(B){var w,T,F,A,L;if(d.call(this,"__ee__")&&(A=this.__ee__[B],!!A))if(typeof A=="object"){for(T=arguments.length,L=new Array(T-1),w=1;w=0&&(w.hash=B.substr(T),B=B.substr(0,T));var F=B.indexOf("?");F>=0&&(w.search=B.substr(F),B=B.substr(0,F)),B&&(w.pathname=B)}return w}},10063:function(M,b,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},c={};c[a.ForwardRef]=s,c[a.Memo]=n;function l(x){return a.isMemo(x)?n:c[x.$$typeof]||t}var d=Object.defineProperty,h=Object.getOwnPropertyNames,p=Object.getOwnPropertySymbols,y=Object.getOwnPropertyDescriptor,g=Object.getPrototypeOf,S=Object.prototype;function j(x,Z,B){if(typeof Z!="string"){if(S){var w=g(Z);w&&w!==S&&j(x,w,B)}var T=h(Z);p&&(T=T.concat(p(Z)));for(var F=l(x),A=l(Z),L=0;L>1,p=-7,y=t?s-1:0,g=t?-1:1,S=e[a+y];for(y+=g,n=S&(1<<-p)-1,S>>=-p,p+=l;p>0;n=n*256+e[a+y],y+=g,p-=8);for(c=n&(1<<-p)-1,n>>=-p,p+=o;p>0;c=c*256+e[a+y],y+=g,p-=8);if(n===0)n=1-h;else{if(n===d)return c?NaN:(S?-1:1)*(1/0);c=c+Math.pow(2,o),n=n-h}return(S?-1:1)*c*Math.pow(2,n-o)},b.write=function(e,a,t,o,s,n){var c,l,d,h=n*8-s-1,p=(1<>1,g=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,S=o?0:n-1,j=o?1:-1,x=a<0||a===0&&1/a<0?1:0;for(a=Math.abs(a),isNaN(a)||a===1/0?(l=isNaN(a)?1:0,c=p):(c=Math.floor(Math.log(a)/Math.LN2),a*(d=Math.pow(2,-c))<1&&(c--,d*=2),c+y>=1?a+=g/d:a+=g*Math.pow(2,1-y),a*d>=2&&(c++,d/=2),c+y>=p?(l=0,c=p):c+y>=1?(l=(a*d-1)*Math.pow(2,s),c=c+y):(l=a*Math.pow(2,y-1)*Math.pow(2,s),c=0));s>=8;e[t+S]=l&255,S+=j,l/=256,s-=8);for(c=c<0;e[t+S]=c&255,S+=j,c/=256,h-=8);e[t+S-j]|=x*128}},21700:function(M){"use strict";var b=function(e,a,t,o,s,n,c,l){if(!e){var d;if(a===void 0)d=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var h=[t,o,s,n,c,l],p=0;d=new Error(a.replace(/%s/g,function(){return h[p++]})),d.name="Invariant Violation"}throw d.framesToPop=1,d}};M.exports=b},23161:function(M){var b={}.toString;M.exports=Array.isArray||function(e){return b.call(e)=="[object Array]"}},61012:function(M,b,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",c="\\u0300-\\u036f\\ufe20-\\ufe23",l="\\u20d0-\\u20f0",d="\\u2700-\\u27bf",h="a-z\\xdf-\\xf6\\xf8-\\xff",p="\\xac\\xb1\\xd7\\xf7",y="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",g="\\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",j="A-Z\\xc0-\\xd6\\xd8-\\xde",x="\\ufe0e\\ufe0f",Z=p+y+g+S,B="['\u2019]",w="["+n+"]",T="["+Z+"]",F="["+c+l+"]",A="\\d+",L="["+d+"]",O="["+h+"]",$="[^"+n+Z+A+d+h+j+"]",P="\\ud83c[\\udffb-\\udfff]",K="(?:"+F+"|"+P+")",U="[^"+n+"]",ee="(?:\\ud83c[\\udde6-\\uddff]){2}",le="[\\ud800-\\udbff][\\udc00-\\udfff]",Q="["+j+"]",G="\\u200d",q="(?:"+O+"|"+$+")",I="(?:"+Q+"|"+$+")",H="(?:"+B+"(?:d|ll|m|re|s|t|ve))?",Y="(?:"+B+"(?:D|LL|M|RE|S|T|VE))?",D=K+"?",_="["+x+"]?",ue="(?:"+G+"(?:"+[U,ee,le].join("|")+")"+_+D+")*",be=_+D+ue,ce="(?:"+[L,ee,le].join("|")+")"+be,he="(?:"+[U+F+"?",F,ee,le,w].join("|")+")",Fe=RegExp(B,"g"),Je=RegExp(F,"g"),et=RegExp(P+"(?="+P+")|"+he+be,"g"),ae=RegExp([Q+"?"+O+"+"+H+"(?="+[T,Q,"$"].join("|")+")",I+"+"+Y+"(?="+[T,Q+q,"$"].join("|")+")",Q+"?"+q+"+"+H,Q+"+"+Y,A,ce].join("|"),"g"),yt=RegExp("["+G+n+c+l+x+"]"),Pt=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,bt={\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"},Ct=typeof e.g=="object"&&e.g&&e.g.Object===Object&&e.g,Le=typeof self=="object"&&self&&self.Object===Object&&self,Ke=Ct||Le||Function("return this")();function st(qe,Ve,tt,Oe){var Me=-1,Ne=qe?qe.length:0;for(Oe&&Ne&&(tt=qe[++Me]);++MeMe?0:Me+Ve),tt=tt>Me?Me:tt,tt<0&&(tt+=Me),Me=Ve>tt?0:tt-Ve>>>0,Ve>>>=0;for(var Ne=Array(Me);++Oe=Oe?qe:ne(qe,Ve,tt)}function Ee(qe){return function(Ve){Ve=Pe(Ve);var tt=R(Ve)?oe(Ve):void 0,Oe=tt?tt[0]:Ve.charAt(0),Me=tt?se(tt,1).join(""):Ve.slice(1);return Oe[qe]()+Me}}function Re(qe){return function(Ve){return st(rt(gt(Ve).replace(Fe,"")),qe,"")}}function fe(qe){return!!qe&&typeof qe=="object"}function _e(qe){return typeof qe=="symbol"||fe(qe)&&we.call(qe)==t}function Pe(qe){return qe==null?"":re(qe)}var ze=Re(function(qe,Ve,tt){return Ve=Ve.toLowerCase(),qe+(tt?Qe(Ve):Ve)});function Qe(qe){return ut(Pe(qe).toLowerCase())}function gt(qe){return qe=Pe(qe),qe&&qe.replace(s,W).replace(Je,"")}var ut=Ee("toUpperCase");function rt(qe,Ve,tt){return qe=Pe(qe),Ve=tt?void 0:Ve,Ve===void 0?N(qe)?te(qe):ge(qe):qe.match(Ve)||[]}M.exports=ze},51899:function(M,b,e){var a="Expected a function",t=NaN,o="[object Symbol]",s=/^\s+|\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,l=/^0o[0-7]+$/i,d=parseInt,h=typeof e.g=="object"&&e.g&&e.g.Object===Object&&e.g,p=typeof self=="object"&&self&&self.Object===Object&&self,y=h||p||Function("return this")(),g=Object.prototype,S=g.toString,j=Math.max,x=Math.min,Z=function(){return y.Date.now()};function B(L,O,$){var P,K,U,ee,le,Q,G=0,q=!1,I=!1,H=!0;if(typeof L!="function")throw new TypeError(a);O=A(O)||0,w($)&&(q=!!$.leading,I="maxWait"in $,U=I?j(A($.maxWait)||0,O):U,H="trailing"in $?!!$.trailing:H);function Y(et){var ae=P,yt=K;return P=K=void 0,G=et,ee=L.apply(yt,ae),ee}function D(et){return G=et,le=setTimeout(be,O),q?Y(et):ee}function _(et){var ae=et-Q,yt=et-G,Pt=O-ae;return I?x(Pt,U-yt):Pt}function ue(et){var ae=et-Q,yt=et-G;return Q===void 0||ae>=O||ae<0||I&&yt>=U}function be(){var et=Z();if(ue(et))return ce(et);le=setTimeout(be,_(et))}function ce(et){return le=void 0,H&&P?Y(et):(P=K=void 0,ee)}function he(){le!==void 0&&clearTimeout(le),G=0,P=Q=K=le=void 0}function Fe(){return le===void 0?ee:ce(Z())}function Je(){var et=Z(),ae=ue(et);if(P=arguments,K=this,Q=et,ae){if(le===void 0)return D(Q);if(I)return le=setTimeout(be,O),Y(Q)}return le===void 0&&(le=setTimeout(be,O)),ee}return Je.cancel=he,Je.flush=Fe,Je}function w(L){var O=typeof L;return!!L&&(O=="object"||O=="function")}function T(L){return!!L&&typeof L=="object"}function F(L){return typeof L=="symbol"||T(L)&&S.call(L)==o}function A(L){if(typeof L=="number")return L;if(F(L))return t;if(w(L)){var O=typeof L.valueOf=="function"?L.valueOf():L;L=w(O)?O+"":O}if(typeof L!="string")return L===0?L:+L;L=L.replace(s,"");var $=c.test(L);return $||l.test(L)?d(L.slice(2),$?2:8):n.test(L)?t:+L}M.exports=B},14978:function(M,b,e){var a="Expected a function",t=NaN,o="[object Symbol]",s=/^\s+|\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,l=/^0o[0-7]+$/i,d=parseInt,h=typeof e.g=="object"&&e.g&&e.g.Object===Object&&e.g,p=typeof self=="object"&&self&&self.Object===Object&&self,y=h||p||Function("return this")(),g=Object.prototype,S=g.toString,j=Math.max,x=Math.min,Z=function(){return y.Date.now()};function B(O,$,P){var K,U,ee,le,Q,G,q=0,I=!1,H=!1,Y=!0;if(typeof O!="function")throw new TypeError(a);$=L($)||0,T(P)&&(I=!!P.leading,H="maxWait"in P,ee=H?j(L(P.maxWait)||0,$):ee,Y="trailing"in P?!!P.trailing:Y);function D(ae){var yt=K,Pt=U;return K=U=void 0,q=ae,le=O.apply(Pt,yt),le}function _(ae){return q=ae,Q=setTimeout(ce,$),I?D(ae):le}function ue(ae){var yt=ae-G,Pt=ae-q,bt=$-yt;return H?x(bt,ee-Pt):bt}function be(ae){var yt=ae-G,Pt=ae-q;return G===void 0||yt>=$||yt<0||H&&Pt>=ee}function ce(){var ae=Z();if(be(ae))return he(ae);Q=setTimeout(ce,ue(ae))}function he(ae){return Q=void 0,Y&&K?D(ae):(K=U=void 0,le)}function Fe(){Q!==void 0&&clearTimeout(Q),q=0,K=G=U=Q=void 0}function Je(){return Q===void 0?le:he(Z())}function et(){var ae=Z(),yt=be(ae);if(K=arguments,U=this,G=ae,yt){if(Q===void 0)return _(G);if(H)return Q=setTimeout(ce,$),D(G)}return Q===void 0&&(Q=setTimeout(ce,$)),le}return et.cancel=Fe,et.flush=Je,et}function w(O,$,P){var K=!0,U=!0;if(typeof O!="function")throw new TypeError(a);return T(P)&&(K="leading"in P?!!P.leading:K,U="trailing"in P?!!P.trailing:U),B(O,$,{leading:K,maxWait:$,trailing:U})}function T(O){var $=typeof O;return!!O&&($=="object"||$=="function")}function F(O){return!!O&&typeof O=="object"}function A(O){return typeof O=="symbol"||F(O)&&S.call(O)==o}function L(O){if(typeof O=="number")return O;if(A(O))return t;if(T(O)){var $=typeof O.valueOf=="function"?O.valueOf():O;O=T($)?$+"":$}if(typeof O!="string")return O===0?O:+O;O=O.replace(s,"");var P=c.test(O);return P||l.test(O)?d(O.slice(2),P?2:8):n.test(O)?t:+O}M.exports=w},94466:function(M,b,e){var a=e(65234),t=e(83250),o=a(t,"DataView");M.exports=o},85208:function(M,b,e){var a=e(34440),t=e(84108),o=e(61085),s=e(77706),n=e(8636);function c(l){var d=-1,h=l==null?0:l.length;for(this.clear();++dj))return!1;var Z=g.get(l),B=g.get(d);if(Z&&B)return Z==d&&B==l;var w=-1,T=!0,F=h&n?new a:void 0;for(g.set(l,d),g.set(d,l);++w-1&&t%1==0&&t-1}M.exports=t},67690:function(M,b,e){var a=e(18498);function t(o,s){var n=this.__data__,c=a(n,o);return c<0?(++this.size,n.push([o,s])):n[c][1]=s,this}M.exports=t},39016:function(M,b,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}}M.exports=s},62363:function(M,b,e){var a=e(77570);function t(o){var s=a(this,o).delete(o);return this.size-=s?1:0,s}M.exports=t},64348:function(M,b,e){var a=e(77570);function t(o){return a(this,o).get(o)}M.exports=t},53062:function(M,b,e){var a=e(77570);function t(o){return a(this,o).has(o)}M.exports=t},30262:function(M,b,e){var a=e(77570);function t(o,s){var n=a(this,o),c=n.size;return n.set(o,s),this.size+=n.size==c?0:1,this}M.exports=t},81140:function(M){function b(e){var a=-1,t=Array(e.size);return e.forEach(function(o,s){t[++a]=[s,o]}),t}M.exports=b},24545:function(M,b,e){var a=e(65234),t=a(Object,"create");M.exports=t},82825:function(M,b,e){var a=e(33540),t=a(Object.keys,Object);M.exports=t},8690:function(M,b,e){M=e.nmd(M);var a=e(20302),t=b&&!b.nodeType&&b,o=t&&!0&&M&&!M.nodeType&&M,s=o&&o.exports===t,n=s&&a.process,c=function(){try{var l=o&&o.require&&o.require("util").types;return l||n&&n.binding&&n.binding("util")}catch(d){}}();M.exports=c},25151:function(M){var b=Object.prototype,e=b.toString;function a(t){return e.call(t)}M.exports=a},33540:function(M){function b(e,a){return function(t){return e(a(t))}}M.exports=b},83250:function(M,b,e){var a=e(20302),t=typeof self=="object"&&self&&self.Object===Object&&self,o=a||t||Function("return this")();M.exports=o},83937:function(M){var b="__lodash_hash_undefined__";function e(a){return this.__data__.set(a,b),this}M.exports=e},15009:function(M){function b(e){return this.__data__.has(e)}M.exports=b},77969:function(M){function b(e){var a=-1,t=Array(e.size);return e.forEach(function(o){t[++a]=o}),t}M.exports=b},93210:function(M,b,e){var a=e(81998);function t(){this.__data__=new a,this.size=0}M.exports=t},48603:function(M){function b(e){var a=this.__data__,t=a.delete(e);return this.size=a.size,t}M.exports=b},38947:function(M){function b(e){return this.__data__.get(e)}M.exports=b},70885:function(M){function b(e){return this.__data__.has(e)}M.exports=b},98938:function(M,b,e){var a=e(81998),t=e(72887),o=e(95678),s=200;function n(c,l){var d=this.__data__;if(d instanceof a){var h=d.__data__;if(!t||h.length=h||G<0||T&&q>=S}function P(){var Q=t();if($(Q))return K(Q);x=setTimeout(P,O(Q))}function K(Q){return x=void 0,F&&y?A(Q):(y=g=void 0,j)}function U(){x!==void 0&&clearTimeout(x),B=0,y=Z=g=x=void 0}function ee(){return x===void 0?j:K(t())}function le(){var Q=t(),G=$(Q);if(y=arguments,g=this,Z=Q,G){if(x===void 0)return L(Z);if(T)return clearTimeout(x),x=setTimeout(P,h),A(Z)}return x===void 0&&(x=setTimeout(P,h)),j}return le.cancel=U,le.flush=ee,le}M.exports=l},58260:function(M){function b(e,a){return e===a||e!==e&&a!==a}M.exports=b},79312:function(M,b,e){var a=e(33016),t=e(50440),o=Object.prototype,s=o.hasOwnProperty,n=o.propertyIsEnumerable,c=a(function(){return arguments}())?a:function(l){return t(l)&&s.call(l,"callee")&&!n.call(l,"callee")};M.exports=c},55589:function(M){var b=Array.isArray;M.exports=b},30568:function(M,b,e){var a=e(45563),t=e(66052);function o(s){return s!=null&&t(s.length)&&!a(s)}M.exports=o},85778:function(M,b,e){M=e.nmd(M);var a=e(83250),t=e(37999),o=b&&!b.nodeType&&b,s=o&&!0&&M&&!M.nodeType&&M,n=s&&s.exports===o,c=n?a.Buffer:void 0,l=c?c.isBuffer:void 0,d=l||t;M.exports=d},85466:function(M,b,e){var a=e(34662);function t(o,s){return a(o,s)}M.exports=t},45563:function(M,b,e){var a=e(69823),t=e(93702),o="[object AsyncFunction]",s="[object Function]",n="[object GeneratorFunction]",c="[object Proxy]";function l(d){if(!t(d))return!1;var h=a(d);return h==s||h==n||h==o||h==c}M.exports=l},66052:function(M){var b=9007199254740991;function e(a){return typeof a=="number"&&a>-1&&a%1==0&&a<=b}M.exports=e},93702:function(M){function b(e){var a=typeof e;return e!=null&&(a=="object"||a=="function")}M.exports=b},50440:function(M){function b(e){return e!=null&&typeof e=="object"}M.exports=b},52624:function(M,b,e){var a=e(69823),t=e(50440),o="[object Symbol]";function s(n){return typeof n=="symbol"||t(n)&&a(n)==o}M.exports=s},50922:function(M,b,e){var a=e(42448),t=e(31525),o=e(8690),s=o&&o.isTypedArray,n=s?t(s):a;M.exports=n},62096:function(M,b,e){var a=e(75825),t=e(41351),o=e(30568);function s(n){return o(n)?a(n):t(n)}M.exports=s},39378:function(M,b,e){M=e.nmd(M);var a;(function(){var t,o="4.17.21",s=200,n="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",c="Expected a function",l="Invalid `variable` option passed into `_.template`",d="__lodash_hash_undefined__",h=500,p="__lodash_placeholder__",y=1,g=2,S=4,j=1,x=2,Z=1,B=2,w=4,T=8,F=16,A=32,L=64,O=128,$=256,P=512,K=30,U="...",ee=800,le=16,Q=1,G=2,q=3,I=1/0,H=9007199254740991,Y=17976931348623157e292,D=0/0,_=4294967295,ue=_-1,be=_>>>1,ce=[["ary",O],["bind",Z],["bindKey",B],["curry",T],["curryRight",F],["flip",P],["partial",A],["partialRight",L],["rearg",$]],he="[object Arguments]",Fe="[object Array]",Je="[object AsyncFunction]",et="[object Boolean]",ae="[object Date]",yt="[object DOMException]",Pt="[object Error]",bt="[object Function]",Ct="[object GeneratorFunction]",Le="[object Map]",Ke="[object Number]",st="[object Null]",We="[object Object]",ge="[object Promise]",X="[object Proxy]",W="[object RegExp]",R="[object Set]",N="[object String]",oe="[object Symbol]",ve="[object Undefined]",te="[object WeakMap]",me="[object WeakSet]",we="[object ArrayBuffer]",xe="[object DataView]",Se="[object Float32Array]",ke="[object Float64Array]",ne="[object Int8Array]",re="[object Int16Array]",se="[object Int32Array]",Ee="[object Uint8Array]",Re="[object Uint8ClampedArray]",fe="[object Uint16Array]",_e="[object Uint32Array]",Pe=/\b__p \+= '';/g,ze=/\b(__p \+=) '' \+/g,Qe=/(__e\(.*?\)|\b__t\)) \+\n'';/g,gt=/&(?:amp|lt|gt|quot|#39);/g,ut=/[&<>"']/g,rt=RegExp(gt.source),qe=RegExp(ut.source),Ve=/<%-([\s\S]+?)%>/g,tt=/<%([\s\S]+?)%>/g,Oe=/<%=([\s\S]+?)%>/g,Me=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ne=/^\w*$/,Te=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Be=/[\\^$.*+?()[\]{}|]/g,nt=RegExp(Be.source),ot=/^\s+/,wt=/\s/,Et=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,nn=/\{\n\/\* \[wrapped with (.+)\] \*/,$t=/,? & /,fn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ln=/[()=,{}\[\]\/\s]/,Wt=/\\(\\)?/g,$e=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,De=/\w*$/,jt=/^[-+]0x[0-9a-f]+$/i,Ft=/^0b[01]+$/i,Xe=/^\[object .+?Constructor\]$/,at=/^0o[0-7]+$/i,Bt=/^(?:0|[1-9]\d*)$/,Zt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Qt=/($^)/,rn=/['\n\r\u2028\u2029\\]/g,hn="\\ud800-\\udfff",on="\\u0300-\\u036f",Rn="\\ufe20-\\ufe2f",zn="\\u20d0-\\u20ff",lr=on+Rn+zn,ur="\\u2700-\\u27bf",zt="a-z\\xdf-\\xf6\\xf8-\\xff",Kt="\\xac\\xb1\\xd7\\xf7",Vt="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",dn="\\u2000-\\u206f",pn=" \\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",en="A-Z\\xc0-\\xd6\\xd8-\\xde",mt="\\ufe0e\\ufe0f",pt=Kt+Vt+dn+pn,an="['\u2019]",qt="["+hn+"]",Yt="["+pt+"]",mn="["+lr+"]",gn="\\d+",kn="["+ur+"]",tr="["+zt+"]",ft="[^"+hn+pt+gn+ur+zt+en+"]",vt="\\ud83c[\\udffb-\\udfff]",St="(?:"+mn+"|"+vt+")",Mt="[^"+hn+"]",Nt="(?:\\ud83c[\\udde6-\\uddff]){2}",sn="[\\ud800-\\udbff][\\udc00-\\udfff]",Xt="["+en+"]",Cn="\\u200d",Ln="(?:"+tr+"|"+ft+")",hr="(?:"+Xt+"|"+ft+")",qn="(?:"+an+"(?:d|ll|m|re|s|t|ve))?",Nn="(?:"+an+"(?:D|LL|M|RE|S|T|VE))?",$r=St+"?",gr="["+mt+"]?",aa="(?:"+Cn+"(?:"+[Mt,Nt,sn].join("|")+")"+gr+$r+")*",Pr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Fn="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",En=gr+$r+aa,wn="(?:"+[kn,Nt,sn].join("|")+")"+En,ar="(?:"+[Mt+mn+"?",mn,Nt,sn,qt].join("|")+")",fr=RegExp(an,"g"),Kr=RegExp(mn,"g"),ea=RegExp(vt+"(?="+vt+")|"+ar+En,"g"),ya=RegExp([Xt+"?"+tr+"+"+qn+"(?="+[Yt,Xt,"$"].join("|")+")",hr+"+"+Nn+"(?="+[Yt,Xt+Ln,"$"].join("|")+")",Xt+"?"+Ln+"+"+qn,Xt+"+"+Nn,Fn,Pr,gn,wn].join("|"),"g"),vr=RegExp("["+Cn+hn+lr+mt+"]"),zr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Oa=["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"],va=-1,Vn={};Vn[Se]=Vn[ke]=Vn[ne]=Vn[re]=Vn[se]=Vn[Ee]=Vn[Re]=Vn[fe]=Vn[_e]=!0,Vn[he]=Vn[Fe]=Vn[we]=Vn[et]=Vn[xe]=Vn[ae]=Vn[Pt]=Vn[bt]=Vn[Le]=Vn[Ke]=Vn[We]=Vn[W]=Vn[R]=Vn[N]=Vn[te]=!1;var Bn={};Bn[he]=Bn[Fe]=Bn[we]=Bn[xe]=Bn[et]=Bn[ae]=Bn[Se]=Bn[ke]=Bn[ne]=Bn[re]=Bn[se]=Bn[Le]=Bn[Ke]=Bn[We]=Bn[W]=Bn[R]=Bn[N]=Bn[oe]=Bn[Ee]=Bn[Re]=Bn[fe]=Bn[_e]=!0,Bn[Pt]=Bn[bt]=Bn[te]=!1;var pr={\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"},qr={"&":"&","<":"<",">":">",'"':""","'":"'"},Er={"&":"&","<":"<",">":">",""":'"',"'":"'"},At={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},tn=parseFloat,yn=parseInt,lo=typeof e.g=="object"&&e.g&&e.g.Object===Object&&e.g,Ao=typeof self=="object"&&self&&self.Object===Object&&self,Ka=lo||Ao||Function("return this")(),Qa=b&&!b.nodeType&&b,qa=Qa&&!0&&M&&!M.nodeType&&M,$o=qa&&qa.exports===Qa,_o=$o&&lo.process,yo=function(){try{var Yn=qa&&qa.require&&qa.require("util").types;return Yn||_o&&_o.binding&&_o.binding("util")}catch(Vr){}}(),ct=yo&&yo.isArrayBuffer,xt=yo&&yo.isDate,Ce=yo&&yo.isMap,un=yo&&yo.isRegExp,xn=yo&&yo.isSet,Hn=yo&&yo.isTypedArray;function Kn(Yn,Vr,Or){switch(Or.length){case 0:return Yn.call(Vr);case 1:return Yn.call(Vr,Or[0]);case 2:return Yn.call(Vr,Or[0],Or[1]);case 3:return Yn.call(Vr,Or[0],Or[1],Or[2])}return Yn.apply(Vr,Or)}function Sr(Yn,Vr,Or,Ur){for(var na=-1,Ba=Yn==null?0:Yn.length;++na-1}function xr(Yn,Vr,Or){for(var Ur=-1,na=Yn==null?0:Yn.length;++Ur-1;);return Or}function oi(Yn,Vr){for(var Or=Yn.length;Or--&&Hr(Vr,Yn[Or],0)>-1;);return Or}function ii(Yn,Vr){for(var Or=Yn.length,Ur=0;Or--;)Yn[Or]===Vr&&++Ur;return Ur}var po=Na(pr),Oi=Na(qr);function Ni(Yn){return"\\"+At[Yn]}function ni(Yn,Vr){return Yn==null?t:Yn[Vr]}function Di(Yn){return vr.test(Yn)}function Ri(Yn){return zr.test(Yn)}function ji(Yn){for(var Vr,Or=[];!(Vr=Yn.next()).done;)Or.push(Vr.value);return Or}function wi(Yn){var Vr=-1,Or=Array(Yn.size);return Yn.forEach(function(Ur,na){Or[++Vr]=[na,Ur]}),Or}function Ui(Yn,Vr){return function(Or){return Yn(Vr(Or))}}function zi(Yn,Vr){for(var Or=-1,Ur=Yn.length,na=0,Ba=[];++Or-1}function Au(m,E){var ie=this.__data__,Ze=Vi(ie,m);return Ze<0?(++this.size,ie.push([m,E])):ie[Ze][1]=E,this}Io.prototype.clear=Us,Io.prototype.delete=mu,Io.prototype.get=Wi,Io.prototype.has=pu,Io.prototype.set=Au;function ks(m){var E=-1,ie=m==null?0:m.length;for(this.clear();++E=E?m:E)),m}function Ss(m,E,ie,Ze,ht,_t){var bn,$n=E&y,cr=E&g,Ca=E&S;if(ie&&(bn=ht?ie(m,Ze,ht,_t):ie(m)),bn!==t)return bn;if(!Rs(m))return m;var Ia=hi(m);if(Ia){if(bn=Va(m),!$n)return sr(m,bn)}else{var za=ba(m),fo=za==bt||za==Ct;if(ud(m))return Ue(m,$n);if(za==We||za==he||fo&&!ht){if(bn=cr||fo?{}:Za(m),!$n)return cr?Sa(m,Gl(bn,m)):Pn(m,hu(bn,m))}else{if(!Bn[za])return ht?m:{};bn=uo(m,za,$n)}}_t||(_t=new Ut);var wo=_t.get(m);if(wo)return wo;_t.set(m,bn),wf(m)?m.forEach(function(ti){bn.add(Ss(ti,E,ie,ti,m,_t))}):Of(m)&&m.forEach(function(ti,Li){bn.set(Li,Ss(ti,E,ie,Li,m,_t))});var ei=Ca?cr?Ma:pa:cr?Zu:Ul,Ci=Ia?t:ei(m);return kr(Ci||m,function(ti,Li){Ci&&(Li=ti,ti=m[Li]),Fo(bn,Li,Ss(ti,E,ie,Li,m,_t))}),bn}function Ac(m){var E=Ul(m);return function(ie){return _u(ie,m,E)}}function _u(m,E,ie){var Ze=ie.length;if(m==null)return!Ze;for(m=Ua(m);Ze--;){var ht=ie[Ze],_t=E[ht],bn=m[ht];if(bn===t&&!(ht in m)||!_t(bn))return!1}return!0}function tl(m,E,ie){if(typeof m!="function")throw new Jo(c);return ws(function(){m.apply(t,ie)},E)}function jl(m,E,ie,Ze){var ht=-1,_t=ta,bn=!0,$n=m.length,cr=[],Ca=E.length;if(!$n)return cr;ie&&(E=Zr(E,bo(ie))),Ze?(_t=xr,bn=!1):E.length>=s&&(_t=Ja,bn=!1,E=new Ls(E));e:for(;++ht<$n;){var Ia=m[ht],za=ie==null?Ia:ie(Ia);if(Ia=Ze||Ia!==0?Ia:0,bn&&za===za){for(var fo=Ca;fo--;)if(E[fo]===za)continue e;cr.push(Ia)}else _t(E,za,Ze)||cr.push(Ia)}return cr}var ru=Br(es),Yu=Br(Ws,!0);function Oc(m,E){var ie=!0;return ru(m,function(Ze,ht,_t){return ie=!!E(Ze,ht,_t),ie}),ie}function wu(m,E,ie){for(var Ze=-1,ht=m.length;++Zeht?0:ht+ie),Ze=Ze===t||Ze>ht?ht:Si(Ze),Ze<0&&(Ze+=ht),Ze=ie>Ze?0:Pf(Ze);ie0&&ie($n)?E>1?as($n,E-1,ie,Ze,ht):ga(ht,$n):Ze||(ht[ht.length]=$n)}return ht}var bu=Tr(),Os=Tr(!0);function es(m,E){return m&&bu(m,E,Ul)}function Ws(m,E){return m&&Os(m,E,Ul)}function pl(m,E){return Xr(E,function(ie){return Yc(m[ie])})}function Qo(m,E){E=Eu(E,m);for(var ie=0,Ze=E.length;m!=null&&ieE}function nl(m,E){return m!=null&&ri.call(m,E)}function hl(m,E){return m!=null&&E in Ua(m)}function rl(m,E,ie){return m>=Ei(E,ie)&&m=120&&Ia.length>=120)?new Ls(bn&&Ia):t}Ia=m[0];var za=-1,fo=$n[0];e:for(;++za-1;)$n!==m&&Bs.call($n,cr,1),Bs.call(m,cr,1);return m}function dc(m,E){for(var ie=m?E.length:0,Ze=ie-1;ie--;){var ht=E[ie];if(ie==Ze||ht!==_t){var _t=ht;da(ht)?Bs.call(m,ht,1):wc(m,ht)}}return m}function fc(m,E){return m+la(io()*(E-m+1))}function Nu(m,E,ie,Ze){for(var ht=-1,_t=No(Ol((E-m)/(ie||1)),0),bn=Or(_t);_t--;)bn[Ze?_t:++ht]=m,m+=ie;return bn}function Gi(m,E){var ie="";if(!m||E<1||E>H)return ie;do E%2&&(ie+=m),E=la(E/2),E&&(m+=m);while(E);return ie}function Do(m,E){return El(Fi(m,E,Uu),m+"")}function gs(m){return rs(Rd(m))}function vc(m,E){var ie=Rd(m);return Fc(ie,zl(E,0,ie.length))}function Su(m,E,ie,Ze){if(!Rs(m))return m;E=Eu(E,m);for(var ht=-1,_t=E.length,bn=_t-1,$n=m;$n!=null&&++ht<_t;){var cr=uu(E[ht]),Ca=ie;if(cr==="__proto__"||cr==="constructor"||cr==="prototype")return m;if(ht!=bn){var Ia=$n[cr];Ca=Ze?Ze(Ia,cr,$n):t,Ca===t&&(Ca=Rs(Ia)?Ia:da(E[ht+1])?[]:{})}Fo($n,cr,Ca),$n=$n[cr]}return m}var nc=nu?function(m,E){return nu.set(m,E),m}:Uu,Kc=Tt?function(m,E){return Tt(m,"toString",{configurable:!0,enumerable:!1,value:yf(E),writable:!0})}:Uu;function Hs(m){return Fc(Rd(m))}function ol(m,E,ie){var Ze=-1,ht=m.length;E<0&&(E=-E>ht?0:ht+E),ie=ie>ht?ht:ie,ie<0&&(ie+=ht),ht=E>ie?0:ie-E>>>0,E>>>=0;for(var _t=Or(ht);++Ze>>1,bn=m[_t];bn!==null&&!qu(bn)&&(ie?bn<=E:bn=s){var Ca=E?null:Ht(m);if(Ca)return vo(Ca);bn=!1,ht=Ja,cr=new Ls}else cr=E?[]:$n;e:for(;++Ze<_t;){var Ia=m[Ze],za=E?E(Ia):Ia;if(Ia=ie||Ia!==0?Ia:0,bn&&za===za){for(var fo=cr.length;fo--;)if(cr[fo]===za)continue e;E&&cr.push(za),$n.push(Ia)}else ht(cr,za,ie)||(cr!==$n&&cr.push(za),$n.push(Ia))}return $n}function wc(m,E){return E=Eu(E,m),m=il(m,E),m==null||delete m[uu($l(E))]}function jc(m,E,ie,Ze){return Su(m,E,ie(Qo(m,E)),Ze)}function gc(m,E,ie,Ze){for(var ht=m.length,_t=Ze?ht:-1;(Ze?_t--:++_t=Ze?m:ol(m,E,ie)}var Qu=To||function(m){return Ka.clearTimeout(m)};function Ue(m,E){if(E)return m.slice();var ie=m.length,Ze=fu?fu(ie):new m.constructor(ie);return m.copy(Ze),Ze}function ye(m){var E=new m.constructor(m.byteLength);return new fl(E).set(new fl(m)),E}function je(m,E){var ie=E?ye(m.buffer):m.buffer;return new m.constructor(ie,m.byteOffset,m.byteLength)}function In(m){var E=new m.constructor(m.source,De.exec(m));return E.lastIndex=m.lastIndex,E}function It(m){return Js?Ua(Js.call(m)):{}}function Tn(m,E){var ie=E?ye(m.buffer):m.buffer;return new m.constructor(ie,m.byteOffset,m.length)}function jn(m,E){if(m!==E){var ie=m!==t,Ze=m===null,ht=m===m,_t=qu(m),bn=E!==t,$n=E===null,cr=E===E,Ca=qu(E);if(!$n&&!Ca&&!_t&&m>E||_t&&bn&&cr&&!$n&&!Ca||Ze&&bn&&cr||!ie&&cr||!ht)return 1;if(!Ze&&!_t&&!Ca&&m=$n)return cr;var Ca=ie[Ze];return cr*(Ca=="desc"?-1:1)}}return m.index-E.index}function Wn(m,E,ie,Ze){for(var ht=-1,_t=m.length,bn=ie.length,$n=-1,cr=E.length,Ca=No(_t-bn,0),Ia=Or(cr+Ca),za=!Ze;++$n1?ie[ht-1]:t,bn=ht>2?ie[2]:t;for(_t=m.length>3&&typeof _t=="function"?(ht--,_t):t,bn&&co(ie[0],ie[1],bn)&&(_t=ht<3?t:_t,ht=1),E=Ua(E);++Ze-1?ht[_t?E[bn]:bn]:t}}function mr(m){return Qr(function(E){var ie=E.length,Ze=ie,ht=Yi.prototype.thru;for(m&&E.reverse();Ze--;){var _t=E[Ze];if(typeof _t!="function")throw new Jo(c);if(ht&&!bn&&Pa(_t)=="wrapper")var bn=new Yi([],!0)}for(Ze=bn?Ze:ie;++Ze1&&Bi.reverse(),Ia&&cr$n))return!1;var Ca=_t.get(m),Ia=_t.get(E);if(Ca&&Ia)return Ca==E&&Ia==m;var za=-1,fo=!0,wo=ie&x?new Ls:t;for(_t.set(m,E),_t.set(E,m);++za<$n;){var ei=m[za],Ci=E[za];if(Ze)var ti=bn?Ze(Ci,ei,za,E,m,_t):Ze(ei,Ci,za,m,E,_t);if(ti!==t){if(ti)continue;fo=!1;break}if(wo){if(!no(E,function(Li,Bi){if(!Ja(wo,Bi)&&(ei===Li||ht(ei,Li,ie,Ze,_t)))return wo.push(Bi)})){fo=!1;break}}else if(!(ei===Ci||ht(ei,Ci,ie,Ze,_t))){fo=!1;break}}return _t.delete(m),_t.delete(E),fo}function Gr(m,E,ie,Ze,ht,_t,bn){switch(ie){case xe:if(m.byteLength!=E.byteLength||m.byteOffset!=E.byteOffset)return!1;m=m.buffer,E=E.buffer;case we:return!(m.byteLength!=E.byteLength||!_t(new fl(m),new fl(E)));case et:case ae:case Ke:return xc(+m,+E);case Pt:return m.name==E.name&&m.message==E.message;case W:case N:return m==E+"";case Le:var $n=wi;case R:var cr=Ze&j;if($n||($n=vo),m.size!=E.size&&!cr)return!1;var Ca=bn.get(m);if(Ca)return Ca==E;Ze|=x,bn.set(m,E);var Ia=Zn($n(m),$n(E),Ze,ht,_t,bn);return bn.delete(m),Ia;case oe:if(Js)return Js.call(m)==Js.call(E)}return!1}function jr(m,E,ie,Ze,ht,_t){var bn=ie&j,$n=pa(m),cr=$n.length,Ca=pa(E),Ia=Ca.length;if(cr!=Ia&&!bn)return!1;for(var za=cr;za--;){var fo=$n[za];if(!(bn?fo in E:ri.call(E,fo)))return!1}var wo=_t.get(m),ei=_t.get(E);if(wo&&ei)return wo==E&&ei==m;var Ci=!0;_t.set(m,E),_t.set(E,m);for(var ti=bn;++za1?"& ":"")+E[Ze],E=E.join(ie>2?", ":" "),m.replace(Et,`{ +/* [wrapped with `+E+`] */ +`)}function Co(m){return hi(m)||Cd(m)||!!(vu&&m&&m[vu])}function da(m,E){var ie=typeof m;return E=E==null?H:E,!!E&&(ie=="number"||ie!="symbol"&&Bt.test(m))&&m>-1&&m%1==0&&m0){if(++E>=ee)return arguments[0]}else E=0;return m.apply(t,arguments)}}function Fc(m,E){var ie=-1,Ze=m.length,ht=Ze-1;for(E=E===t?Ze:E;++ie1?m[E-1]:t;return ie=typeof ie=="function"?(m.pop(),ie):t,ds(m,ie)});function Ad(m){var E=Rt(m);return E.__chain__=!0,E}function af(m,E){return E(m),m}function Ju(m,E){return E(m)}var Od=Qr(function(m){var E=m.length,ie=E?m[0]:0,Ze=this.__wrapped__,ht=function(_t){return Du(_t,m)};return E>1||this.__actions__.length||!(Ze instanceof Ko)||!da(ie)?this.thru(ht):(Ze=Ze.slice(ie,+ie+(E?1:0)),Ze.__actions__.push({func:Ju,args:[ht],thisArg:t}),new Yi(Ze,this.__chain__).thru(function(_t){return E&&!_t.length&&_t.push(t),_t}))});function Hc(){return Ad(this)}function Dd(){return new Yi(this.value(),this.__chain__)}function Zd(){this.__values__===t&&(this.__values__=jf(this.value()));var m=this.__index__>=this.__values__.length,E=m?t:this.__values__[this.__index__++];return{done:m,value:E}}function Ud(){return this}function of(m){for(var E,ie=this;ie instanceof Rl;){var Ze=Jc(ie);Ze.__index__=0,Ze.__values__=t,E?ht.__wrapped__=Ze:E=Ze;var ht=Ze;ie=ie.__wrapped__}return ht.__wrapped__=m,E}function kd(){var m=this.__wrapped__;if(m instanceof Ko){var E=m;return this.__actions__.length&&(E=new Ko(this)),E=E.reverse(),E.__actions__.push({func:Ju,args:[ad],thisArg:t}),new Yi(E,this.__chain__)}return this.thru(ad)}function sf(){return zc(this.__wrapped__,this.__actions__)}var Gd=Fr(function(m,E,ie){ri.call(m,ie)?++m[ie]:As(m,ie,1)});function Kd(m,E,ie){var Ze=hi(m)?oa:Oc;return ie&&co(m,E,ie)&&(E=t),Ze(m,Aa(E,3))}function wd(m,E){var ie=hi(m)?Xr:yu;return ie(m,Aa(E,3))}var jd=or(zu),Qd=or(ac);function Wd(m,E){return as(_c(m,E),1)}function lf(m,E){return as(_c(m,E),I)}function Xd(m,E,ie){return ie=ie===t?1:Si(ie),as(_c(m,E),ie)}function Pd(m,E){var ie=hi(m)?kr:ru;return ie(m,Aa(E,3))}function Sd(m,E){var ie=hi(m)?La:Yu;return ie(m,Aa(E,3))}var Hd=Fr(function(m,E,ie){ri.call(m,ie)?m[ie].push(E):As(m,ie,[E])});function Td(m,E,ie,Ze){m=$u(m)?m:Rd(m),ie=ie&&!Ze?Si(ie):0;var ht=m.length;return ie<0&&(ie=No(ht+ie,0)),ef(m)?ie<=ht&&m.indexOf(E,ie)>-1:!!ht&&Hr(m,E,ie)>-1}var Jd=Do(function(m,E,ie){var Ze=-1,ht=typeof E=="function",_t=$u(m)?Or(m.length):[];return ru(m,function(bn){_t[++Ze]=ht?Kn(E,bn,ie):ju(bn,E,ie)}),_t}),uf=Fr(function(m,E,ie){As(m,ie,E)});function _c(m,E){var ie=hi(m)?Zr:Eo;return ie(m,Aa(E,3))}function cf(m,E,ie,Ze){return m==null?[]:(hi(E)||(E=E==null?[]:[E]),ie=Ze?t:ie,hi(ie)||(ie=ie==null?[]:[ie]),Gu(m,E,ie))}var Ed=Fr(function(m,E,ie){m[ie?0:1].push(E)},function(){return[[],[]]});function df(m,E,ie){var Ze=hi(m)?ka:wa,ht=arguments.length<3;return Ze(m,Aa(E,4),ie,ht,ru)}function Ld(m,E,ie){var Ze=hi(m)?mo:wa,ht=arguments.length<3;return Ze(m,Aa(E,4),ie,ht,Yu)}function i(m,E){var ie=hi(m)?Xr:yu;return ie(m,Ga(Aa(E,3)))}function v(m){var E=hi(m)?rs:gs;return E(m)}function C(m,E,ie){(ie?co(m,E,ie):E===t)?E=1:E=Si(E);var Ze=hi(m)?vi:vc;return Ze(m,E)}function J(m){var E=hi(m)?yi:Hs;return E(m)}function Ie(m){if(m==null)return 0;if($u(m))return ef(m)?Uo(m):m.length;var E=ba(m);return E==Le||E==R?m.size:Dt(m).length}function Ye(m,E,ie){var Ze=hi(m)?no:Dc;return ie&&co(m,E,ie)&&(E=t),Ze(m,Aa(E,3))}var Lt=Do(function(m,E){if(m==null)return[];var ie=E.length;return ie>1&&co(m,E[0],E[1])?E=[]:ie>2&&co(E[0],E[1],E[2])&&(E=[E[0]]),Gu(m,as(E,1),[])}),vn=$s||function(){return Ka.Date.now()};function Un(m,E){if(typeof E!="function")throw new Jo(c);return m=Si(m),function(){if(--m<1)return E.apply(this,arguments)}}function wr(m,E,ie){return E=ie?t:E,E=m&&E==null?m.length:E,Gt(m,O,t,t,t,t,E)}function ja(m,E){var ie;if(typeof E!="function")throw new Jo(c);return m=Si(m),function(){return--m>0&&(ie=E.apply(this,arguments)),m<=1&&(E=t),ie}}var ao=Do(function(m,E,ie){var Ze=Z;if(ie.length){var ht=zi(ie,Fa(ao));Ze|=A}return Gt(m,Ze,E,ie,ht)}),fa=Do(function(m,E,ie){var Ze=Z|B;if(ie.length){var ht=zi(ie,Fa(fa));Ze|=A}return Gt(E,Ze,m,ie,ht)});function go(m,E,ie){E=ie?t:E;var Ze=Gt(m,T,t,t,t,t,t,E);return Ze.placeholder=go.placeholder,Ze}function to(m,E,ie){E=ie?t:E;var Ze=Gt(m,F,t,t,t,t,t,E);return Ze.placeholder=to.placeholder,Ze}function ui(m,E,ie){var Ze,ht,_t,bn,$n,cr,Ca=0,Ia=!1,za=!1,fo=!0;if(typeof m!="function")throw new Jo(c);E=sc(E)||0,Rs(ie)&&(Ia=!!ie.leading,za="maxWait"in ie,_t=za?No(sc(ie.maxWait)||0,E):_t,fo="trailing"in ie?!!ie.trailing:fo);function wo(ul){var Ic=Ze,Gc=ht;return Ze=ht=t,Ca=ul,bn=m.apply(Gc,Ic),bn}function ei(ul){return Ca=ul,$n=ws(Li,E),Ia?wo(ul):bn}function Ci(ul){var Ic=ul-cr,Gc=ul-Ca,Wf=E-Ic;return za?Ei(Wf,_t-Gc):Wf}function ti(ul){var Ic=ul-cr,Gc=ul-Ca;return cr===t||Ic>=E||Ic<0||za&&Gc>=_t}function Li(){var ul=vn();if(ti(ul))return Bi(ul);$n=ws(Li,Ci(ul))}function Bi(ul){return $n=t,fo&&Ze?wo(ul):(Ze=ht=t,bn)}function ec(){$n!==t&&Qu($n),Ca=0,Ze=cr=ht=$n=t}function Cu(){return $n===t?bn:Bi(vn())}function tc(){var ul=vn(),Ic=ti(ul);if(Ze=arguments,ht=this,cr=ul,Ic){if($n===t)return ei(cr);if(za)return Qu($n),$n=ws(Li,E),wo(cr)}return $n===t&&($n=ws(Li,E)),bn}return tc.cancel=ec,tc.flush=Cu,tc}var Ns=Do(function(m,E){return tl(m,1,E)}),yr=Do(function(m,E,ie){return tl(m,sc(E)||0,ie)});function Gn(m){return Gt(m,P)}function Cr(m,E){if(typeof m!="function"||E!=null&&typeof E!="function")throw new Jo(c);var ie=function(){var Ze=arguments,ht=E?E.apply(this,Ze):Ze[0],_t=ie.cache;if(_t.has(ht))return _t.get(ht);var bn=m.apply(this,Ze);return ie.cache=_t.set(ht,bn)||_t,bn};return ie.cache=new(Cr.Cache||ks),ie}Cr.Cache=ks;function Ga(m){if(typeof m!="function")throw new Jo(c);return function(){var E=arguments;switch(E.length){case 0:return!m.call(this);case 1:return!m.call(this,E[0]);case 2:return!m.call(this,E[0],E[1]);case 3:return!m.call(this,E[0],E[1],E[2])}return!m.apply(this,E)}}function xo(m){return ja(2,m)}var ko=hc(function(m,E){E=E.length==1&&hi(E[0])?Zr(E[0],bo(Aa())):Zr(as(E,1),bo(Aa()));var ie=E.length;return Do(function(Ze){for(var ht=-1,_t=Ei(Ze.length,ie);++ht<_t;)Ze[ht]=E[ht].call(this,Ze[ht]);return Kn(m,this,Ze)})}),Bo=Do(function(m,E){var ie=zi(E,Fa(Bo));return Gt(m,A,t,E,ie)}),qo=Do(function(m,E){var ie=zi(E,Fa(qo));return Gt(m,L,t,E,ie)}),xl=Qr(function(m,E){return Gt(m,$,t,t,t,E)});function Zi(m,E){if(typeof m!="function")throw new Jo(c);return E=E===t?E:Si(E),Do(m,E)}function Rc(m,E){if(typeof m!="function")throw new Jo(c);return E=E==null?0:No(Si(E),0),Do(function(ie){var Ze=ie[E],ht=Xl(ie,0,E);return Ze&&ga(ht,Ze),Kn(m,this,ht)})}function ff(m,E,ie){var Ze=!0,ht=!0;if(typeof m!="function")throw new Jo(c);return Rs(ie)&&(Ze="leading"in ie?!!ie.leading:Ze,ht="trailing"in ie?!!ie.trailing:ht),ui(m,E,{leading:Ze,maxWait:E,trailing:ht})}function Yf(m){return wr(m,1)}function Vf(m,E){return Bo(iu(E),m)}function Gf(){if(!arguments.length)return[];var m=arguments[0];return hi(m)?m:[m]}function Kf(m){return Ss(m,S)}function Qf(m,E){return E=typeof E=="function"?E:t,Ss(m,S,E)}function Xf(m){return Ss(m,y|S)}function Jf(m,E){return E=typeof E=="function"?E:t,Ss(m,y|S,E)}function qf(m,E){return E==null||_u(m,E,Ul(E))}function xc(m,E){return m===E||m!==m&&E!==E}var ev=Ae(Vu),tv=Ae(function(m,E){return m>=E}),Cd=Mu(function(){return arguments}())?Mu:function(m){return Vs(m)&&ri.call(m,"callee")&&!Fs.call(m,"callee")},hi=Or.isArray,nv=ct?bo(ct):yl;function $u(m){return m!=null&&qd(m.length)&&!Yc(m)}function ll(m){return Vs(m)&&$u(m)}function rv(m){return m===!0||m===!1||Vs(m)&&cs(m)==et}var ud=_l||Cf,av=xt?bo(xt):Pu;function ov(m){return Vs(m)&&m.nodeType===1&&!_d(m)}function iv(m){if(m==null)return!0;if($u(m)&&(hi(m)||typeof m=="string"||typeof m.splice=="function"||ud(m)||Nd(m)||Cd(m)))return!m.length;var E=ba(m);if(E==Le||E==R)return!m.size;if(li(m))return!Dt(m).length;for(var ie in m)if(ri.call(m,ie))return!1;return!0}function sv(m,E){return Tu(m,E)}function lv(m,E,ie){ie=typeof ie=="function"?ie:t;var Ze=ie?ie(m,E):t;return Ze===t?Tu(m,E,t,ie):!!Ze}function vf(m){if(!Vs(m))return!1;var E=cs(m);return E==Pt||E==yt||typeof m.message=="string"&&typeof m.name=="string"&&!_d(m)}function uv(m){return typeof m=="number"&&Zs(m)}function Yc(m){if(!Rs(m))return!1;var E=cs(m);return E==bt||E==Ct||E==Je||E==X}function Af(m){return typeof m=="number"&&m==Si(m)}function qd(m){return typeof m=="number"&&m>-1&&m%1==0&&m<=H}function Rs(m){var E=typeof m;return m!=null&&(E=="object"||E=="function")}function Vs(m){return m!=null&&typeof m=="object"}var Of=Ce?bo(Ce):Pl;function cv(m,E){return m===E||Fl(m,E,Ir(E))}function dv(m,E,ie){return ie=typeof ie=="function"?ie:t,Fl(m,E,Ir(E),ie)}function fv(m){return Df(m)&&m!=+m}function vv(m){if(pi(m))throw new na(n);return si(m)}function gv(m){return m===null}function mv(m){return m==null}function Df(m){return typeof m=="number"||Vs(m)&&cs(m)==Ke}function _d(m){if(!Vs(m)||cs(m)!=We)return!1;var E=fs(m);if(E===null)return!0;var ie=ri.call(E,"constructor")&&E.constructor;return typeof ie=="function"&&ie instanceof ie&&ls.call(ie)==du}var gf=un?bo(un):z;function pv(m){return Af(m)&&m>=-H&&m<=H}var wf=xn?bo(xn):de;function ef(m){return typeof m=="string"||!hi(m)&&Vs(m)&&cs(m)==N}function qu(m){return typeof m=="symbol"||Vs(m)&&cs(m)==oe}var Nd=Hn?bo(Hn):He;function hv(m){return m===t}function yv(m){return Vs(m)&&ba(m)==te}function bv(m){return Vs(m)&&cs(m)==me}var Mv=Ae(Rr),Sv=Ae(function(m,E){return m<=E});function jf(m){if(!m)return[];if($u(m))return ef(m)?Yo(m):sr(m);if(Hl&&m[Hl])return ji(m[Hl]());var E=ba(m),ie=E==Le?wi:E==R?vo:Rd;return ie(m)}function Vc(m){if(!m)return m===0?m:0;if(m=sc(m),m===I||m===-I){var E=m<0?-1:1;return E*Y}return m===m?m:0}function Si(m){var E=Vc(m),ie=E%1;return E===E?ie?E-ie:E:0}function Pf(m){return m?zl(Si(m),0,_):0}function sc(m){if(typeof m=="number")return m;if(qu(m))return D;if(Rs(m)){var E=typeof m.valueOf=="function"?m.valueOf():m;m=Rs(E)?E+"":E}if(typeof m!="string")return m===0?m:+m;m=jo(m);var ie=Ft.test(m);return ie||at.test(m)?yn(m.slice(2),ie?2:8):jt.test(m)?D:+m}function Tf(m){return Jn(m,Zu(m))}function Ev(m){return m?zl(Si(m),-H,H):m===0?m:0}function Ki(m){return m==null?"":_s(m)}var Cv=Xn(function(m,E){if(li(E)||$u(E)){Jn(E,Ul(E),m);return}for(var ie in E)ri.call(E,ie)&&Fo(m,ie,E[ie])}),Lf=Xn(function(m,E){Jn(E,Zu(E),m)}),tf=Xn(function(m,E,ie,Ze){Jn(E,Zu(E),m,Ze)}),xv=Xn(function(m,E,ie,Ze){Jn(E,Ul(E),m,Ze)}),Iv=Qr(Du);function Av(m,E){var ie=Pi(m);return E==null?ie:hu(ie,E)}var Ov=Do(function(m,E){m=Ua(m);var ie=-1,Ze=E.length,ht=Ze>2?E[2]:t;for(ht&&co(E[0],E[1],ht)&&(Ze=1);++ie1),_t}),Jn(m,Ma(m),ie),Ze&&(ie=Ss(ie,y|g|S,On));for(var ht=E.length;ht--;)wc(ie,E[ht]);return ie});function _v(m,E){return Rf(m,Ga(Aa(E)))}var Yv=Qr(function(m,E){return m==null?{}:ts(m,E)});function Rf(m,E){if(m==null)return{};var ie=Zr(Ma(m),function(Ze){return[Ze]});return E=Aa(E),Lu(m,ie,function(Ze,ht){return E(Ze,ht[0])})}function Vv(m,E,ie){E=Eu(E,m);var Ze=-1,ht=E.length;for(ht||(ht=1,m=t);++ZeE){var Ze=m;m=E,E=Ze}if(ie||m%1||E%1){var ht=io();return Ei(m+ht*(E-m+tn("1e-"+((ht+"").length-1))),E)}return fc(m,E)}var a0=ca(function(m,E,ie){return E=E.toLowerCase(),m+(ie?Bf(E):E)});function Bf(m){return hf(Ki(m).toLowerCase())}function $f(m){return m=Ki(m),m&&m.replace(Zt,po).replace(Kr,"")}function o0(m,E,ie){m=Ki(m),E=_s(E);var Ze=m.length;ie=ie===t?Ze:zl(Si(ie),0,Ze);var ht=ie;return ie-=E.length,ie>=0&&m.slice(ie,ht)==E}function i0(m){return m=Ki(m),m&&qe.test(m)?m.replace(ut,Oi):m}function s0(m){return m=Ki(m),m&&nt.test(m)?m.replace(Be,"\\$&"):m}var l0=ca(function(m,E,ie){return m+(ie?"-":"")+E.toLowerCase()}),u0=ca(function(m,E,ie){return m+(ie?" ":"")+E.toLowerCase()}),c0=Yr("toLowerCase");function d0(m,E,ie){m=Ki(m),E=Si(E);var Ze=E?Uo(m):0;if(!E||Ze>=E)return m;var ht=(E-Ze)/2;return V(la(ht),ie)+m+V(Ol(ht),ie)}function f0(m,E,ie){m=Ki(m),E=Si(E);var Ze=E?Uo(m):0;return E&&Ze>>0,ie?(m=Ki(m),m&&(typeof E=="string"||E!=null&&!gf(E))&&(E=_s(E),!E&&Di(m))?Xl(Yo(m),0,ie):m.split(E,ie)):[]}var b0=ca(function(m,E,ie){return m+(ie?" ":"")+hf(E)});function M0(m,E,ie){return m=Ki(m),ie=ie==null?0:zl(Si(ie),0,m.length),E=_s(E),m.slice(ie,ie+E.length)==E}function S0(m,E,ie){var Ze=Rt.templateSettings;ie&&co(m,E,ie)&&(E=t),m=Ki(m),E=tf({},E,Ze,cn);var ht=tf({},E.imports,Ze.imports,cn),_t=Ul(ht),bn=Da(ht,_t),$n,cr,Ca=0,Ia=E.interpolate||Qt,za="__p += '",fo=Wo((E.escape||Qt).source+"|"+Ia.source+"|"+(Ia===Oe?$e:Qt).source+"|"+(E.evaluate||Qt).source+"|$","g"),wo="//# sourceURL="+(ri.call(E,"sourceURL")?(E.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++va+"]")+` +`;m.replace(fo,function(ti,Li,Bi,ec,Cu,tc){return Bi||(Bi=ec),za+=m.slice(Ca,tc).replace(rn,Ni),Li&&($n=!0,za+=`' + +__e(`+Li+`) + +'`),Cu&&(cr=!0,za+=`'; +`+Cu+`; +__p += '`),Bi&&(za+=`' + +((__t = (`+Bi+`)) == null ? '' : __t) + +'`),Ca=tc+ti.length,ti}),za+=`'; +`;var ei=ri.call(E,"variable")&&E.variable;if(!ei)za=`with (obj) { +`+za+` +} +`;else if(ln.test(ei))throw new na(l);za=(cr?za.replace(Pe,""):za).replace(ze,"$1").replace(Qe,"$1;"),za="function("+(ei||"obj")+`) { +`+(ei?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+($n?", __e = _.escape":"")+(cr?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+za+`return __p +}`;var Ci=Uf(function(){return Ba(_t,wo+"return "+za).apply(t,bn)});if(Ci.source=za,vf(Ci))throw Ci;return Ci}function E0(m){return Ki(m).toLowerCase()}function C0(m){return Ki(m).toUpperCase()}function x0(m,E,ie){if(m=Ki(m),m&&(ie||E===t))return jo(m);if(!m||!(E=_s(E)))return m;var Ze=Yo(m),ht=Yo(E),_t=Po(Ze,ht),bn=oi(Ze,ht)+1;return Xl(Ze,_t,bn).join("")}function I0(m,E,ie){if(m=Ki(m),m&&(ie||E===t))return m.slice(0,xi(m)+1);if(!m||!(E=_s(E)))return m;var Ze=Yo(m),ht=oi(Ze,Yo(E))+1;return Xl(Ze,0,ht).join("")}function A0(m,E,ie){if(m=Ki(m),m&&(ie||E===t))return m.replace(ot,"");if(!m||!(E=_s(E)))return m;var Ze=Yo(m),ht=Po(Ze,Yo(E));return Xl(Ze,ht).join("")}function O0(m,E){var ie=K,Ze=U;if(Rs(E)){var ht="separator"in E?E.separator:ht;ie="length"in E?Si(E.length):ie,Ze="omission"in E?_s(E.omission):Ze}m=Ki(m);var _t=m.length;if(Di(m)){var bn=Yo(m);_t=bn.length}if(ie>=_t)return m;var $n=ie-Uo(Ze);if($n<1)return Ze;var cr=bn?Xl(bn,0,$n).join(""):m.slice(0,$n);if(ht===t)return cr+Ze;if(bn&&($n+=cr.length-$n),gf(ht)){if(m.slice($n).search(ht)){var Ca,Ia=cr;for(ht.global||(ht=Wo(ht.source,Ki(De.exec(ht))+"g")),ht.lastIndex=0;Ca=ht.exec(Ia);)var za=Ca.index;cr=cr.slice(0,za===t?$n:za)}}else if(m.indexOf(_s(ht),$n)!=$n){var fo=cr.lastIndexOf(ht);fo>-1&&(cr=cr.slice(0,fo))}return cr+Ze}function D0(m){return m=Ki(m),m&&rt.test(m)?m.replace(gt,Hi):m}var w0=ca(function(m,E,ie){return m+(ie?" ":"")+E.toUpperCase()}),hf=Yr("toUpperCase");function Zf(m,E,ie){return m=Ki(m),E=ie?t:E,E===t?Ri(m)?hs(m):Dn(m):m.match(E)||[]}var Uf=Do(function(m,E){try{return Kn(m,t,E)}catch(ie){return vf(ie)?ie:new na(ie)}}),j0=Qr(function(m,E){return kr(E,function(ie){ie=uu(ie),As(m,ie,ao(m[ie],m))}),m});function P0(m){var E=m==null?0:m.length,ie=Aa();return m=E?Zr(m,function(Ze){if(typeof Ze[1]!="function")throw new Jo(c);return[ie(Ze[0]),Ze[1]]}):[],Do(function(Ze){for(var ht=-1;++htH)return[];var ie=_,Ze=Ei(m,_);E=Aa(E),m-=_;for(var ht=Ro(Ze,E);++ie0||E<0)?new Ko(ie):(m<0?ie=ie.takeRight(-m):m&&(ie=ie.drop(m)),E!==t&&(E=Si(E),ie=E<0?ie.dropRight(-E):ie.take(E-m)),ie)},Ko.prototype.takeRightWhile=function(m){return this.reverse().takeWhile(m).reverse()},Ko.prototype.toArray=function(){return this.take(_)},es(Ko.prototype,function(m,E){var ie=/^(?:filter|find|map|reject)|While$/.test(E),Ze=/^(?:head|last)$/.test(E),ht=Rt[Ze?"take"+(E=="last"?"Right":""):E],_t=Ze||/^find/.test(E);ht&&(Rt.prototype[E]=function(){var bn=this.__wrapped__,$n=Ze?[1]:arguments,cr=bn instanceof Ko,Ca=$n[0],Ia=cr||hi(bn),za=function(Li){var Bi=ht.apply(Rt,ga([Li],$n));return Ze&&fo?Bi[0]:Bi};Ia&&ie&&typeof Ca=="function"&&Ca.length!=1&&(cr=Ia=!1);var fo=this.__chain__,wo=!!this.__actions__.length,ei=_t&&!fo,Ci=cr&&!wo;if(!_t&&Ia){bn=Ci?bn:new Ko(this);var ti=m.apply(bn,$n);return ti.__actions__.push({func:Ju,args:[za],thisArg:t}),new Yi(ti,fo)}return ei&&Ci?m.apply(this,$n):(ti=this.thru(za),ei?Ze?ti.value()[0]:ti.value():ti)})}),kr(["pop","push","shift","sort","splice","unshift"],function(m){var E=ki[m],ie=/^(?:push|sort|unshift)$/.test(m)?"tap":"thru",Ze=/^(?:pop|shift)$/.test(m);Rt.prototype[m]=function(){var ht=arguments;if(Ze&&!this.__chain__){var _t=this.value();return E.apply(hi(_t)?_t:[],ht)}return this[ie](function(bn){return E.apply(hi(bn)?bn:[],ht)})}}),es(Ko.prototype,function(m,E){var ie=Rt[E];if(ie){var Ze=ie.name+"";ri.call(Nl,Ze)||(Nl[Ze]=[]),Nl[Ze].push({name:E,func:ie})}}),Nl[Lr(t,B).name]=[{name:"wrapper",func:t}],Ko.prototype.clone=Mo,Ko.prototype.reverse=Iu,Ko.prototype.value=gu,Rt.prototype.at=Od,Rt.prototype.chain=Hc,Rt.prototype.commit=Dd,Rt.prototype.next=Zd,Rt.prototype.plant=of,Rt.prototype.reverse=kd,Rt.prototype.toJSON=Rt.prototype.valueOf=Rt.prototype.value=sf,Rt.prototype.first=Rt.prototype.head,Hl&&(Rt.prototype[Hl]=Ud),Rt},Wl=Ks();Ka._=Wl,a=function(){return Wl}.call(b,e,b,M),a!==t&&(M.exports=a)}).call(this)},80231:function(M,b,e){var a=e(83250),t=function(){return a.Date.now()};M.exports=t},84506:function(M){function b(){return[]}M.exports=b},37999:function(M){function b(){return!1}M.exports=b},14633:function(M,b,e){var a=e(77837),t=e(93702),o="Expected a function";function s(n,c,l){var d=!0,h=!0;if(typeof n!="function")throw new TypeError(o);return t(l)&&(d="leading"in l?!!l.leading:d,h="trailing"in l?!!l.trailing:h),a(n,c,{leading:d,maxWait:c,trailing:h})}M.exports=s},29153:function(M,b,e){var a=e(21656),t=e(93702),o=e(52624),s=0/0,n=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,l=/^0o[0-7]+$/i,d=parseInt;function h(p){if(typeof p=="number")return p;if(o(p))return s;if(t(p)){var y=typeof p.valueOf=="function"?p.valueOf():p;p=t(y)?y+"":y}if(typeof p!="string")return p===0?p:+p;p=a(p);var g=c.test(p);return g||l.test(p)?d(p.slice(2),g?2:8):n.test(p)?s:+p}M.exports=h},85417:function(M,b,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 c=o*100+s;return c<600?"\u51CC\u6668":c<900?"\u65E9\u4E0A":c<1130?"\u4E0A\u5348":c<1230?"\u4E2D\u5348":c<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(M,b,e){M=e.nmd(M);(function(a,t){M.exports=t()})(this,function(){"use strict";var a;function t(){return a.apply(null,arguments)}function o(z){a=z}function s(z){return z instanceof Array||Object.prototype.toString.call(z)==="[object Array]"}function n(z){return z!=null&&Object.prototype.toString.call(z)==="[object Object]"}function c(z,de){return Object.prototype.hasOwnProperty.call(z,de)}function l(z){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(z).length===0;var de;for(de in z)if(c(z,de))return!1;return!0}function d(z){return z===void 0}function h(z){return typeof z=="number"||Object.prototype.toString.call(z)==="[object Number]"}function p(z){return z instanceof Date||Object.prototype.toString.call(z)==="[object Date]"}function y(z,de){var He=[],lt,Dt=z.length;for(lt=0;lt>>0,lt;for(lt=0;lt0)for(He=0;He=0;return(An?He?"+":"":"-")+Math.pow(10,Math.max(0,Dt)).toString().substr(1)+lt}var D=/(\[[^\[]*\])|(\\)?([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,_=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ue={},be={};function ce(z,de,He,lt){var Dt=lt;typeof lt=="string"&&(Dt=function(){return this[lt]()}),z&&(be[z]=Dt),de&&(be[de[0]]=function(){return Y(Dt.apply(this,arguments),de[1],de[2])}),He&&(be[He]=function(){return this.localeData().ordinal(Dt.apply(this,arguments),z)})}function he(z){return z.match(/\[[\s\S]/)?z.replace(/^\[|\]$/g,""):z.replace(/\\/g,"")}function Fe(z){var de=z.match(D),He,lt;for(He=0,lt=de.length;He=0&&_.test(z);)z=z.replace(_,lt),_.lastIndex=0,He-=1;return z}var ae={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 yt(z){var de=this._longDateFormat[z],He=this._longDateFormat[z.toUpperCase()];return de||!He?de:(this._longDateFormat[z]=He.match(D).map(function(lt){return lt==="MMMM"||lt==="MM"||lt==="DD"||lt==="dddd"?lt.slice(1):lt}).join(""),this._longDateFormat[z])}var Pt="Invalid date";function bt(){return this._invalidDate}var Ct="%d",Le=/\d{1,2}/;function Ke(z){return this._ordinal.replace("%d",z)}var st={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 We(z,de,He,lt){var Dt=this._relativeTime[He];return ee(Dt)?Dt(z,de,He,lt):Dt.replace(/%d/i,z)}function ge(z,de){var He=this._relativeTime[z>0?"future":"past"];return ee(He)?He(de):He.replace(/%s/i,de)}var X={};function W(z,de){var He=z.toLowerCase();X[He]=X[He+"s"]=X[de]=z}function R(z){return typeof z=="string"?X[z]||X[z.toLowerCase()]:void 0}function N(z){var de={},He,lt;for(lt in z)c(z,lt)&&(He=R(lt),He&&(de[He]=z[lt]));return de}var oe={};function ve(z,de){oe[z]=de}function te(z){var de=[],He;for(He in z)c(z,He)&&de.push({unit:He,priority:oe[He]});return de.sort(function(lt,Dt){return lt.priority-Dt.priority}),de}function me(z){return z%4===0&&z%100!==0||z%400===0}function we(z){return z<0?Math.ceil(z)||0:Math.floor(z)}function xe(z){var de=+z,He=0;return de!==0&&isFinite(de)&&(He=we(de)),He}function Se(z,de){return function(He){return He!=null?(ne(this,z,He),t.updateOffset(this,de),this):ke(this,z)}}function ke(z,de){return z.isValid()?z._d["get"+(z._isUTC?"UTC":"")+de]():NaN}function ne(z,de,He){z.isValid()&&!isNaN(He)&&(de==="FullYear"&&me(z.year())&&z.month()===1&&z.date()===29?(He=xe(He),z._d["set"+(z._isUTC?"UTC":"")+de](He,z.month(),hn(He,z.month()))):z._d["set"+(z._isUTC?"UTC":"")+de](He))}function re(z){return z=R(z),ee(this[z])?this[z]():this}function se(z,de){if(typeof z=="object"){z=N(z);var He=te(z),lt,Dt=He.length;for(lt=0;lt68?1900:2e3)};var mn=Se("FullYear",!0);function gn(){return me(this.year())}function kn(z,de,He,lt,Dt,An,Rr){var Eo;return z<100&&z>=0?(Eo=new Date(z+400,de,He,lt,Dt,An,Rr),isFinite(Eo.getFullYear())&&Eo.setFullYear(z)):Eo=new Date(z,de,He,lt,Dt,An,Rr),Eo}function tr(z){var de,He;return z<100&&z>=0?(He=Array.prototype.slice.call(arguments),He[0]=z+400,de=new Date(Date.UTC.apply(null,He)),isFinite(de.getUTCFullYear())&&de.setUTCFullYear(z)):de=new Date(Date.UTC.apply(null,arguments)),de}function ft(z,de,He){var lt=7+de-He,Dt=(7+tr(z,0,lt).getUTCDay()-de)%7;return-Dt+lt-1}function vt(z,de,He,lt,Dt){var An=(7+He-lt)%7,Rr=ft(z,lt,Dt),Eo=1+7*(de-1)+An+Rr,Zo,mi;return Eo<=0?(Zo=z-1,mi=Yt(Zo)+Eo):Eo>Yt(z)?(Zo=z+1,mi=Eo-Yt(z)):(Zo=z,mi=Eo),{year:Zo,dayOfYear:mi}}function St(z,de,He){var lt=ft(z.year(),de,He),Dt=Math.floor((z.dayOfYear()-lt-1)/7)+1,An,Rr;return Dt<1?(Rr=z.year()-1,An=Dt+Mt(Rr,de,He)):Dt>Mt(z.year(),de,He)?(An=Dt-Mt(z.year(),de,He),Rr=z.year()+1):(Rr=z.year(),An=Dt),{week:An,year:Rr}}function Mt(z,de,He){var lt=ft(z,de,He),Dt=ft(z+1,de,He);return(Yt(z)-lt+Dt)/7}ce("w",["ww",2],"wo","week"),ce("W",["WW",2],"Wo","isoWeek"),W("week","w"),W("isoWeek","W"),ve("week",5),ve("isoWeek",5),nt("w",ze),nt("ww",ze,Re),nt("W",ze),nt("WW",ze,Re),fn(["w","ww","W","WW"],function(z,de,He,lt){de[lt.substr(0,1)]=xe(z)});function Nt(z){return St(z,this._week.dow,this._week.doy).week}var sn={dow:0,doy:6};function Xt(){return this._week.dow}function Cn(){return this._week.doy}function Ln(z){var de=this.localeData().week(this);return z==null?de:this.add((z-de)*7,"d")}function hr(z){var de=St(this,1,4).week;return z==null?de:this.add((z-de)*7,"d")}ce("d",0,"do","day"),ce("dd",0,0,function(z){return this.localeData().weekdaysMin(this,z)}),ce("ddd",0,0,function(z){return this.localeData().weekdaysShort(this,z)}),ce("dddd",0,0,function(z){return this.localeData().weekdays(this,z)}),ce("e",0,0,"weekday"),ce("E",0,0,"isoWeekday"),W("day","d"),W("weekday","e"),W("isoWeekday","E"),ve("day",11),ve("weekday",11),ve("isoWeekday",11),nt("d",ze),nt("e",ze),nt("E",ze),nt("dd",function(z,de){return de.weekdaysMinRegex(z)}),nt("ddd",function(z,de){return de.weekdaysShortRegex(z)}),nt("dddd",function(z,de){return de.weekdaysRegex(z)}),fn(["dd","ddd","dddd"],function(z,de,He,lt){var Dt=He._locale.weekdaysParse(z,lt,He._strict);Dt!=null?de.d=Dt:x(He).invalidWeekday=z}),fn(["d","e","E"],function(z,de,He,lt){de[lt]=xe(z)});function qn(z,de){return typeof z!="string"?z:isNaN(z)?(z=de.weekdaysParse(z),typeof z=="number"?z:null):parseInt(z,10)}function Nn(z,de){return typeof z=="string"?de.weekdaysParse(z)%7||7:isNaN(z)?null:z}function $r(z,de){return z.slice(de,7).concat(z.slice(0,de))}var gr="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),aa="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Pr="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Fn=Te,En=Te,wn=Te;function ar(z,de){var He=s(this._weekdays)?this._weekdays:this._weekdays[z&&z!==!0&&this._weekdays.isFormat.test(de)?"format":"standalone"];return z===!0?$r(He,this._week.dow):z?He[z.day()]:He}function fr(z){return z===!0?$r(this._weekdaysShort,this._week.dow):z?this._weekdaysShort[z.day()]:this._weekdaysShort}function Kr(z){return z===!0?$r(this._weekdaysMin,this._week.dow):z?this._weekdaysMin[z.day()]:this._weekdaysMin}function ea(z,de,He){var lt,Dt,An,Rr=z.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],lt=0;lt<7;++lt)An=S([2e3,1]).day(lt),this._minWeekdaysParse[lt]=this.weekdaysMin(An,"").toLocaleLowerCase(),this._shortWeekdaysParse[lt]=this.weekdaysShort(An,"").toLocaleLowerCase(),this._weekdaysParse[lt]=this.weekdays(An,"").toLocaleLowerCase();return He?de==="dddd"?(Dt=rn.call(this._weekdaysParse,Rr),Dt!==-1?Dt:null):de==="ddd"?(Dt=rn.call(this._shortWeekdaysParse,Rr),Dt!==-1?Dt:null):(Dt=rn.call(this._minWeekdaysParse,Rr),Dt!==-1?Dt:null):de==="dddd"?(Dt=rn.call(this._weekdaysParse,Rr),Dt!==-1||(Dt=rn.call(this._shortWeekdaysParse,Rr),Dt!==-1)?Dt:(Dt=rn.call(this._minWeekdaysParse,Rr),Dt!==-1?Dt:null)):de==="ddd"?(Dt=rn.call(this._shortWeekdaysParse,Rr),Dt!==-1||(Dt=rn.call(this._weekdaysParse,Rr),Dt!==-1)?Dt:(Dt=rn.call(this._minWeekdaysParse,Rr),Dt!==-1?Dt:null)):(Dt=rn.call(this._minWeekdaysParse,Rr),Dt!==-1||(Dt=rn.call(this._weekdaysParse,Rr),Dt!==-1)?Dt:(Dt=rn.call(this._shortWeekdaysParse,Rr),Dt!==-1?Dt:null))}function ya(z,de,He){var lt,Dt,An;if(this._weekdaysParseExact)return ea.call(this,z,de,He);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),lt=0;lt<7;lt++){if(Dt=S([2e3,1]).day(lt),He&&!this._fullWeekdaysParse[lt]&&(this._fullWeekdaysParse[lt]=new RegExp("^"+this.weekdays(Dt,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[lt]=new RegExp("^"+this.weekdaysShort(Dt,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[lt]=new RegExp("^"+this.weekdaysMin(Dt,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[lt]||(An="^"+this.weekdays(Dt,"")+"|^"+this.weekdaysShort(Dt,"")+"|^"+this.weekdaysMin(Dt,""),this._weekdaysParse[lt]=new RegExp(An.replace(".",""),"i")),He&&de==="dddd"&&this._fullWeekdaysParse[lt].test(z))return lt;if(He&&de==="ddd"&&this._shortWeekdaysParse[lt].test(z))return lt;if(He&&de==="dd"&&this._minWeekdaysParse[lt].test(z))return lt;if(!He&&this._weekdaysParse[lt].test(z))return lt}}function vr(z){if(!this.isValid())return z!=null?this:NaN;var de=this._isUTC?this._d.getUTCDay():this._d.getDay();return z!=null?(z=qn(z,this.localeData()),this.add(z-de,"d")):de}function zr(z){if(!this.isValid())return z!=null?this:NaN;var de=(this.day()+7-this.localeData()._week.dow)%7;return z==null?de:this.add(z-de,"d")}function Oa(z){if(!this.isValid())return z!=null?this:NaN;if(z!=null){var de=Nn(z,this.localeData());return this.day(this.day()%7?de:de-7)}else return this.day()||7}function va(z){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||pr.call(this),z?this._weekdaysStrictRegex:this._weekdaysRegex):(c(this,"_weekdaysRegex")||(this._weekdaysRegex=Fn),this._weekdaysStrictRegex&&z?this._weekdaysStrictRegex:this._weekdaysRegex)}function Vn(z){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||pr.call(this),z?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(c(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=En),this._weekdaysShortStrictRegex&&z?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Bn(z){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||pr.call(this),z?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(c(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=wn),this._weekdaysMinStrictRegex&&z?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function pr(){function z($i,al){return al.length-$i.length}var de=[],He=[],lt=[],Dt=[],An,Rr,Eo,Zo,mi;for(An=0;An<7;An++)Rr=S([2e3,1]).day(An),Eo=Et(this.weekdaysMin(Rr,"")),Zo=Et(this.weekdaysShort(Rr,"")),mi=Et(this.weekdays(Rr,"")),de.push(Eo),He.push(Zo),lt.push(mi),Dt.push(Eo),Dt.push(Zo),Dt.push(mi);de.sort(z),He.sort(z),lt.sort(z),Dt.sort(z),this._weekdaysRegex=new RegExp("^("+Dt.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+lt.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+He.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+de.join("|")+")","i")}function qr(){return this.hours()%12||12}function Er(){return this.hours()||24}ce("H",["HH",2],0,"hour"),ce("h",["hh",2],0,qr),ce("k",["kk",2],0,Er),ce("hmm",0,0,function(){return""+qr.apply(this)+Y(this.minutes(),2)}),ce("hmmss",0,0,function(){return""+qr.apply(this)+Y(this.minutes(),2)+Y(this.seconds(),2)}),ce("Hmm",0,0,function(){return""+this.hours()+Y(this.minutes(),2)}),ce("Hmmss",0,0,function(){return""+this.hours()+Y(this.minutes(),2)+Y(this.seconds(),2)});function At(z,de){ce(z,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),de)})}At("a",!0),At("A",!1),W("hour","h"),ve("hour",13);function tn(z,de){return de._meridiemParse}nt("a",tn),nt("A",tn),nt("H",ze),nt("h",ze),nt("k",ze),nt("HH",ze,Re),nt("hh",ze,Re),nt("kk",ze,Re),nt("hmm",Qe),nt("hmmss",gt),nt("Hmm",Qe),nt("Hmmss",gt),$t(["H","HH"],jt),$t(["k","kk"],function(z,de,He){var lt=xe(z);de[jt]=lt===24?0:lt}),$t(["a","A"],function(z,de,He){He._isPm=He._locale.isPM(z),He._meridiem=z}),$t(["h","hh"],function(z,de,He){de[jt]=xe(z),x(He).bigHour=!0}),$t("hmm",function(z,de,He){var lt=z.length-2;de[jt]=xe(z.substr(0,lt)),de[Ft]=xe(z.substr(lt)),x(He).bigHour=!0}),$t("hmmss",function(z,de,He){var lt=z.length-4,Dt=z.length-2;de[jt]=xe(z.substr(0,lt)),de[Ft]=xe(z.substr(lt,2)),de[Xe]=xe(z.substr(Dt)),x(He).bigHour=!0}),$t("Hmm",function(z,de,He){var lt=z.length-2;de[jt]=xe(z.substr(0,lt)),de[Ft]=xe(z.substr(lt))}),$t("Hmmss",function(z,de,He){var lt=z.length-4,Dt=z.length-2;de[jt]=xe(z.substr(0,lt)),de[Ft]=xe(z.substr(lt,2)),de[Xe]=xe(z.substr(Dt))});function yn(z){return(z+"").toLowerCase().charAt(0)==="p"}var lo=/[ap]\.?m?\.?/i,Ao=Se("Hours",!0);function Ka(z,de,He){return z>11?He?"pm":"PM":He?"am":"AM"}var Qa={calendar:I,longDateFormat:ae,invalidDate:Pt,ordinal:Ct,dayOfMonthOrdinalParse:Le,relativeTime:st,months:on,monthsShort:Rn,week:sn,weekdays:gr,weekdaysMin:Pr,weekdaysShort:aa,meridiemParse:lo},qa={},$o={},_o;function yo(z,de){var He,lt=Math.min(z.length,de.length);for(He=0;He0;){if(Dt=un(An.slice(0,He).join("-")),Dt)return Dt;if(lt&<.length>=He&&yo(An,lt)>=He-1)break;He--}de++}return _o}function Ce(z){return z.match("^[^/\\\\]*$")!=null}function un(z){var de=null,He;if(qa[z]===void 0&&M&&M.exports&&Ce(z))try{de=_o._abbr,He=void 0,Object(function(){var Dt=new Error("Cannot find module 'undefined'");throw Dt.code="MODULE_NOT_FOUND",Dt}()),xn(de)}catch(lt){qa[z]=null}return qa[z]}function xn(z,de){var He;return z&&(d(de)?He=Sr(z):He=Hn(z,de),He?_o=He:typeof console!="undefined"&&console.warn&&console.warn("Locale "+z+" not found. Did you forget to load it?")),_o._abbr}function Hn(z,de){if(de!==null){var He,lt=Qa;if(de.abbr=z,qa[z]!=null)U("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."),lt=qa[z]._config;else if(de.parentLocale!=null)if(qa[de.parentLocale]!=null)lt=qa[de.parentLocale]._config;else if(He=un(de.parentLocale),He!=null)lt=He._config;else return $o[de.parentLocale]||($o[de.parentLocale]=[]),$o[de.parentLocale].push({name:z,config:de}),null;return qa[z]=new G(Q(lt,de)),$o[z]&&$o[z].forEach(function(Dt){Hn(Dt.name,Dt.config)}),xn(z),qa[z]}else return delete qa[z],null}function Kn(z,de){if(de!=null){var He,lt,Dt=Qa;qa[z]!=null&&qa[z].parentLocale!=null?qa[z].set(Q(qa[z]._config,de)):(lt=un(z),lt!=null&&(Dt=lt._config),de=Q(Dt,de),lt==null&&(de.abbr=z),He=new G(de),He.parentLocale=qa[z],qa[z]=He),xn(z)}else qa[z]!=null&&(qa[z].parentLocale!=null?(qa[z]=qa[z].parentLocale,z===xn()&&xn(z)):qa[z]!=null&&delete qa[z]);return qa[z]}function Sr(z){var de;if(z&&z._locale&&z._locale._abbr&&(z=z._locale._abbr),!z)return _o;if(!s(z)){if(de=un(z),de)return de;z=[z]}return xt(z)}function kr(){return q(qa)}function La(z){var de,He=z._a;return He&&x(z).overflow===-2&&(de=He[$e]<0||He[$e]>11?$e:He[De]<1||He[De]>hn(He[Wt],He[$e])?De:He[jt]<0||He[jt]>24||He[jt]===24&&(He[Ft]!==0||He[Xe]!==0||He[at]!==0)?jt:He[Ft]<0||He[Ft]>59?Ft:He[Xe]<0||He[Xe]>59?Xe:He[at]<0||He[at]>999?at:-1,x(z)._overflowDayOfYear&&(deDe)&&(de=De),x(z)._overflowWeeks&&de===-1&&(de=Bt),x(z)._overflowWeekday&&de===-1&&(de=Zt),x(z).overflow=de),z}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)?)?$/,Xr=/^\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)?)?$/,ta=/Z|[+-]\d\d(?::?\d\d)?/,xr=[["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]],Zr=[["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/]],ga=/^\/?Date\((-?\d+)/i,ka=/^(?:(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}))$/,mo={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 no(z){var de,He,lt=z._i,Dt=oa.exec(lt)||Xr.exec(lt),An,Rr,Eo,Zo,mi=xr.length,$i=Zr.length;if(Dt){for(x(z).iso=!0,de=0,He=mi;deYt(Rr)||z._dayOfYear===0)&&(x(z)._overflowDayOfYear=!0),He=tr(Rr,0,z._dayOfYear),z._a[$e]=He.getUTCMonth(),z._a[De]=He.getUTCDate()),de=0;de<3&&z._a[de]==null;++de)z._a[de]=lt[de]=Dt[de];for(;de<7;de++)z._a[de]=lt[de]=z._a[de]==null?de===2?1:0:z._a[de];z._a[jt]===24&&z._a[Ft]===0&&z._a[Xe]===0&&z._a[at]===0&&(z._nextDay=!0,z._a[jt]=0),z._d=(z._useUTC?tr:kn).apply(null,lt),An=z._useUTC?z._d.getUTCDay():z._d.getDay(),z._tzm!=null&&z._d.setUTCMinutes(z._d.getUTCMinutes()-z._tzm),z._nextDay&&(z._a[jt]=24),z._w&&typeof z._w.d!="undefined"&&z._w.d!==An&&(x(z).weekdayMismatch=!0)}}function Na(z){var de,He,lt,Dt,An,Rr,Eo,Zo,mi;de=z._w,de.GG!=null||de.W!=null||de.E!=null?(An=1,Rr=4,He=ir(de.GG,z._a[Wt],St(Ja(),1,4).year),lt=ir(de.W,1),Dt=ir(de.E,1),(Dt<1||Dt>7)&&(Zo=!0)):(An=z._locale._week.dow,Rr=z._locale._week.doy,mi=St(Ja(),An,Rr),He=ir(de.gg,z._a[Wt],mi.year),lt=ir(de.w,mi.week),de.d!=null?(Dt=de.d,(Dt<0||Dt>6)&&(Zo=!0)):de.e!=null?(Dt=de.e+An,(de.e<0||de.e>6)&&(Zo=!0)):Dt=An),lt<1||lt>Mt(He,An,Rr)?x(z)._overflowWeeks=!0:Zo!=null?x(z)._overflowWeekday=!0:(Eo=vt(He,lt,Dt,An,Rr),z._a[Wt]=Eo.year,z._dayOfYear=Eo.dayOfYear)}t.ISO_8601=function(){},t.RFC_2822=function(){};function wa(z){if(z._f===t.ISO_8601){no(z);return}if(z._f===t.RFC_2822){Hr(z);return}z._a=[],x(z).empty=!0;var de=""+z._i,He,lt,Dt,An,Rr,Eo=de.length,Zo=0,mi,$i;for(Dt=et(z._f,z._locale).match(D)||[],$i=Dt.length,He=0;He<$i;He++)An=Dt[He],lt=(de.match(ot(An,z))||[])[0],lt&&(Rr=de.substr(0,de.indexOf(lt)),Rr.length>0&&x(z).unusedInput.push(Rr),de=de.slice(de.indexOf(lt)+lt.length),Zo+=lt.length),be[An]?(lt?x(z).empty=!1:x(z).unusedTokens.push(An),ln(An,lt,z)):z._strict&&!lt&&x(z).unusedTokens.push(An);x(z).charsLeftOver=Eo-Zo,de.length>0&&x(z).unusedInput.push(de),z._a[jt]<=12&&x(z).bigHour===!0&&z._a[jt]>0&&(x(z).bigHour=void 0),x(z).parsedDateParts=z._a.slice(0),x(z).meridiem=z._meridiem,z._a[jt]=oo(z._locale,z._a[jt],z._meridiem),mi=x(z).era,mi!==null&&(z._a[Wt]=z._locale.erasConvertYear(mi,z._a[Wt])),ua(z),La(z)}function oo(z,de,He){var lt;return He==null?de:z.meridiemHour!=null?z.meridiemHour(de,He):(z.isPM!=null&&(lt=z.isPM(He),lt&&de<12&&(de+=12),!lt&&de===12&&(de=0)),de)}function Oo(z){var de,He,lt,Dt,An,Rr,Eo=!1,Zo=z._f.length;if(Zo===0){x(z).invalidFormat=!0,z._d=new Date(NaN);return}for(Dt=0;Dtthis?this:z:w()});function ii(z,de){var He,lt;if(de.length===1&&s(de[0])&&(de=de[0]),!de.length)return Ja();for(He=de[0],lt=1;ltthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Yn(){if(!d(this._isDSTShifted))return this._isDSTShifted;var z={},de;return A(z,this),z=jo(z),z._a?(de=z._isUTC?S(z._a):Ja(z._a),this._isDSTShifted=this.isValid()&&vo(z._a,de.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function Vr(){return this.isValid()?!this._isUTC:!1}function Or(){return this.isValid()?this._isUTC:!1}function Ur(){return this.isValid()?this._isUTC&&this._offset===0:!1}var na=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,Ba=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Ya(z,de){var He=z,lt=null,Dt,An,Rr;return Ui(z)?He={ms:z._milliseconds,d:z._days,M:z._months}:h(z)||!isNaN(+z)?(He={},de?He[de]=+z:He.milliseconds=+z):(lt=na.exec(z))?(Dt=lt[1]==="-"?-1:1,He={y:0,d:xe(lt[De])*Dt,h:xe(lt[jt])*Dt,m:xe(lt[Ft])*Dt,s:xe(lt[Xe])*Dt,ms:xe(zi(lt[at]*1e3))*Dt}):(lt=Ba.exec(z))?(Dt=lt[1]==="-"?-1:1,He={y:Ua(lt[2],Dt),M:Ua(lt[3],Dt),w:Ua(lt[4],Dt),d:Ua(lt[5],Dt),h:Ua(lt[6],Dt),m:Ua(lt[7],Dt),s:Ua(lt[8],Dt)}):He==null?He={}:typeof He=="object"&&("from"in He||"to"in He)&&(Rr=Xo(Ja(He.from),Ja(He.to)),He={},He.ms=Rr.milliseconds,He.M=Rr.months),An=new wi(He),Ui(z)&&c(z,"_locale")&&(An._locale=z._locale),Ui(z)&&c(z,"_isValid")&&(An._isValid=z._isValid),An}Ya.fn=wi.prototype,Ya.invalid=ji;function Ua(z,de){var He=z&&parseFloat(z.replace(",","."));return(isNaN(He)?0:He)*de}function Wo(z,de){var He={};return He.months=de.month()-z.month()+(de.year()-z.year())*12,z.clone().add(He.months,"M").isAfter(de)&&--He.months,He.milliseconds=+de-+z.clone().add(He.months,"M"),He}function Xo(z,de){var He;return z.isValid()&&de.isValid()?(de=Uo(de,z),z.isBefore(de)?He=Wo(z,de):(He=Wo(de,z),He.milliseconds=-He.milliseconds,He.months=-He.months),He):{milliseconds:0,months:0}}function Jo(z,de){return function(He,lt){var Dt,An;return lt!==null&&!isNaN(+lt)&&(U(de,"moment()."+de+"(period, number) is deprecated. Please use moment()."+de+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),An=He,He=lt,lt=An),Dt=Ya(He,lt),ki(this,Dt,z),this}}function ki(z,de,He,lt){var Dt=de._milliseconds,An=zi(de._days),Rr=zi(de._months);z.isValid()&&(lt=lt==null?!0:lt,Rr&&pn(z,ke(z,"Month")+Rr*He),An&&ne(z,"Date",ke(z,"Date")+An*He),Dt&&z._d.setTime(z._d.valueOf()+Dt*He),lt&&t.updateOffset(z,An||Rr))}var ys=Jo(1,"add"),Qi=Jo(-1,"subtract");function Ts(z){return typeof z=="string"||z instanceof String}function ls(z){return O(z)||p(z)||Ts(z)||h(z)||Ll(z)||ri(z)||z===null||z===void 0}function ri(z){var de=n(z)&&!l(z),He=!1,lt=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],Dt,An,Rr=lt.length;for(Dt=0;DtHe.valueOf():He.valueOf()9999?Je(He,de?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):ee(Date.prototype.toISOString)?de?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",Je(He,"Z")):Je(He,de?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function Hl(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var z="moment",de="",He,lt,Dt,An;return this.isLocal()||(z=this.utcOffset()===0?"moment.utc":"moment.parseZone",de="Z"),He="["+z+'("]',lt=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",Dt="-MM-DD[T]HH:mm:ss.SSS",An=de+'[")]',this.format(He+lt+Dt+An)}function Cs(z){z||(z=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var de=Je(this,z);return this.localeData().postformat(de)}function Tt(z,de){return this.isValid()&&(O(z)&&z.isValid()||Ja(z).isValid())?Ya({to:this,from:z}).locale(this.locale()).humanize(!de):this.localeData().invalidDate()}function To(z){return this.from(Ja(),z)}function $s(z,de){return this.isValid()&&(O(z)&&z.isValid()||Ja(z).isValid())?Ya({from:this,to:z}).locale(this.locale()).humanize(!de):this.localeData().invalidDate()}function Vo(z){return this.to(Ja(),z)}function Ol(z){var de;return z===void 0?this._locale._abbr:(de=Sr(z),de!=null&&(this._locale=de),this)}var la=P("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(z){return z===void 0?this.localeData():this.locale(z)});function vl(){return this._locale}var _l=1e3,Zs=60*_l,Yl=60*Zs,eu=(365*400+97)*24*Yl;function No(z,de){return(z%de+de)%de}function Ei(z,de,He){return z<100&&z>=0?new Date(z+400,de,He)-eu:new Date(z,de,He).valueOf()}function lc(z,de,He){return z<100&&z>=0?Date.UTC(z+400,de,He)-eu:Date.UTC(z,de,He)}function ku(z){var de,He;if(z=R(z),z===void 0||z==="millisecond"||!this.isValid())return this;switch(He=this._isUTC?lc:Ei,z){case"year":de=He(this.year(),0,1);break;case"quarter":de=He(this.year(),this.month()-this.month()%3,1);break;case"month":de=He(this.year(),this.month(),1);break;case"week":de=He(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":de=He(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":de=He(this.year(),this.month(),this.date());break;case"hour":de=this._d.valueOf(),de-=No(de+(this._isUTC?0:this.utcOffset()*Zs),Yl);break;case"minute":de=this._d.valueOf(),de-=No(de,Zs);break;case"second":de=this._d.valueOf(),de-=No(de,_l);break}return this._d.setTime(de),t.updateOffset(this,!0),this}function io(z){var de,He;if(z=R(z),z===void 0||z==="millisecond"||!this.isValid())return this;switch(He=this._isUTC?lc:Ei,z){case"year":de=He(this.year()+1,0,1)-1;break;case"quarter":de=He(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":de=He(this.year(),this.month()+1,1)-1;break;case"week":de=He(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":de=He(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":de=He(this.year(),this.month(),this.date()+1)-1;break;case"hour":de=this._d.valueOf(),de+=Yl-No(de+(this._isUTC?0:this.utcOffset()*Zs),Yl)-1;break;case"minute":de=this._d.valueOf(),de+=Zs-No(de,Zs)-1;break;case"second":de=this._d.valueOf(),de+=_l-No(de,_l)-1;break}return this._d.setTime(de),t.updateOffset(this,!0),this}function ns(){return this._d.valueOf()-(this._offset||0)*6e4}function Xs(){return Math.floor(this.valueOf()/1e3)}function Wa(){return new Date(this.valueOf())}function tu(){var z=this;return[z.year(),z.month(),z.date(),z.hour(),z.minute(),z.second(),z.millisecond()]}function Xi(){var z=this;return{years:z.year(),months:z.month(),date:z.date(),hours:z.hours(),minutes:z.minutes(),seconds:z.seconds(),milliseconds:z.milliseconds()}}function gl(){return this.isValid()?this.toISOString():null}function Dl(){return B(this)}function nu(){return g({},x(this))}function Nl(){return x(this).overflow}function uc(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}ce("N",0,0,"eraAbbr"),ce("NN",0,0,"eraAbbr"),ce("NNN",0,0,"eraAbbr"),ce("NNNN",0,0,"eraName"),ce("NNNNN",0,0,"eraNarrow"),ce("y",["y",1],"yo","eraYear"),ce("y",["yy",2],0,"eraYear"),ce("y",["yyy",3],0,"eraYear"),ce("y",["yyyy",4],0,"eraYear"),nt("N",Yi),nt("NN",Yi),nt("NNN",Yi),nt("NNNN",Ko),nt("NNNNN",Mo),$t(["N","NN","NNN","NNNN","NNNNN"],function(z,de,He,lt){var Dt=He._locale.erasParse(z,lt,He._strict);Dt?x(He).era=Dt:x(He).invalidEra=z}),nt("y",Ve),nt("yy",Ve),nt("yyy",Ve),nt("yyyy",Ve),nt("yo",Iu),$t(["y","yy","yyy","yyyy"],Wt),$t(["yo"],function(z,de,He,lt){var Dt;He._locale._eraYearOrdinalRegex&&(Dt=z.match(He._locale._eraYearOrdinalRegex)),He._locale.eraYearOrdinalParse?de[Wt]=He._locale.eraYearOrdinalParse(z,Dt):de[Wt]=parseInt(z,10)});function Wu(z,de){var He,lt,Dt,An=this._eras||Sr("en")._eras;for(He=0,lt=An.length;He=0)return An[lt]}function Hu(z,de){var He=z.since<=z.until?1:-1;return de===void 0?t(z.since).year():t(z.since).year()+(de-z.offset)*He}function Vl(){var z,de,He,lt=this.localeData().eras();for(z=0,de=lt.length;zAn&&(de=An),mu.call(this,z,de,He,lt,Dt))}function mu(z,de,He,lt,Dt){var An=vt(z,de,He,lt,Dt),Rr=tr(An.year,0,An.dayOfYear);return this.year(Rr.getUTCFullYear()),this.month(Rr.getUTCMonth()),this.date(Rr.getUTCDate()),this}ce("Q",0,"Qo","quarter"),W("quarter","Q"),ve("quarter",7),nt("Q",Ee),$t("Q",function(z,de){de[$e]=(xe(z)-1)*3});function Wi(z){return z==null?Math.ceil((this.month()+1)/3):this.month((z-1)*3+this.month()%3)}ce("D",["DD",2],"Do","date"),W("date","D"),ve("date",9),nt("D",ze),nt("DD",ze,Re),nt("Do",function(z,de){return z?de._dayOfMonthOrdinalParse||de._ordinalParse:de._dayOfMonthOrdinalParseLenient}),$t(["D","DD"],De),$t("Do",function(z,de){de[De]=xe(z.match(ze)[0])});var pu=Se("Date",!0);ce("DDD",["DDDD",3],"DDDo","dayOfYear"),W("dayOfYear","DDD"),ve("dayOfYear",4),nt("DDD",ut),nt("DDDD",fe),$t(["DDD","DDDD"],function(z,de,He){He._dayOfYear=xe(z)});function Au(z){var de=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return z==null?de:this.add(z-de,"d")}ce("m",["mm",2],0,"minute"),W("minute","m"),ve("minute",14),nt("m",ze),nt("mm",ze,Re),$t(["m","mm"],Ft);var ks=Se("Minutes",!1);ce("s",["ss",2],0,"second"),W("second","s"),ve("second",15),nt("s",ze),nt("ss",ze,Re),$t(["s","ss"],Xe);var wl=Se("Seconds",!1);ce("S",0,0,function(){return~~(this.millisecond()/100)}),ce(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),ce(0,["SSS",3],0,"millisecond"),ce(0,["SSSS",4],0,function(){return this.millisecond()*10}),ce(0,["SSSSS",5],0,function(){return this.millisecond()*100}),ce(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3}),ce(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4}),ce(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5}),ce(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6}),W("millisecond","ms"),ve("millisecond",16),nt("S",ut,Ee),nt("SS",ut,Re),nt("SSS",ut,fe);var ml,Ms;for(ml="SSSS";ml.length<=9;ml+="S")nt(ml,Ve);function Is(z,de){de[at]=xe(("0."+z)*1e3)}for(ml="S";ml.length<=9;ml+="S")$t(ml,Is);Ms=Se("Milliseconds",!1),ce("z",0,0,"zoneAbbr"),ce("zz",0,0,"zoneName");function Ou(){return this._isUTC?"UTC":""}function Ls(){return this._isUTC?"Coordinated Universal Time":""}var ma=L.prototype;ma.add=ys,ma.calendar=du,ma.clone=cl,ma.diff=bs,ma.endOf=io,ma.format=Cs,ma.from=Tt,ma.fromNow=To,ma.to=$s,ma.toNow=Vo,ma.get=re,ma.invalidAt=Nl,ma.isAfter=dl,ma.isBefore=zs,ma.isBetween=Qs,ma.isSame=fl,ma.isSameOrAfter=fu,ma.isSameOrBefore=fs,ma.isValid=Dl,ma.lang=la,ma.locale=Ol,ma.localeData=vl,ma.max=oi,ma.min=Po,ma.parsingFlags=nu,ma.set=se,ma.startOf=ku,ma.subtract=Qi,ma.toArray=tu,ma.toObject=Xi,ma.toDate=Wa,ma.toISOString=vu,ma.inspect=Hl,typeof Symbol!="undefined"&&Symbol.for!=null&&(ma[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),ma.toJSON=gl,ma.toString=Bs,ma.unix=Xs,ma.valueOf=ns,ma.creationData=uc,ma.eraName=Vl,ma.eraNarrow=Ji,ma.eraAbbr=Js,ma.eraYear=qs,ma.year=mn,ma.isLeapYear=gn,ma.weekYear=el,ma.isoWeekYear=Ii,ma.quarter=ma.quarters=Wi,ma.month=en,ma.daysInMonth=mt,ma.week=ma.weeks=Ln,ma.isoWeek=ma.isoWeeks=hr,ma.weeksInYear=us,ma.weeksInWeekYear=Io,ma.isoWeeksInYear=Ti,ma.isoWeeksInISOWeekYear=qi,ma.date=pu,ma.day=ma.days=vr,ma.weekday=zr,ma.isoWeekday=Oa,ma.dayOfYear=Au,ma.hour=ma.hours=Ao,ma.minute=ma.minutes=ks,ma.second=ma.seconds=wl,ma.millisecond=ma.milliseconds=Ms,ma.utcOffset=xi,ma.utc=_i,ma.local=Es,ma.parseZone=hs,ma.hasAlignedHourOffset=Ks,ma.isDST=Wl,ma.isLocal=Vr,ma.isUtcOffset=Or,ma.isUtc=Ur,ma.isUTC=Ur,ma.zoneAbbr=Ou,ma.zoneName=Ls,ma.dates=P("dates accessor is deprecated. Use date instead.",pu),ma.months=P("months accessor is deprecated. Use month instead",en),ma.years=P("years accessor is deprecated. Use year instead",mn),ma.zone=P("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Hi),ma.isDSTShifted=P("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Yn);function it(z){return Ja(z*1e3)}function Ut(){return Ja.apply(null,arguments).parseZone()}function _n(z){return z}var dr=G.prototype;dr.calendar=H,dr.longDateFormat=yt,dr.invalidDate=bt,dr.ordinal=Ke,dr.preparse=_n,dr.postformat=_n,dr.relativeTime=We,dr.pastFuture=ge,dr.set=le,dr.eras=Wu,dr.erasParse=Ho,dr.erasConvertYear=Hu,dr.erasAbbrRegex=Pi,dr.erasNameRegex=Rt,dr.erasNarrowRegex=Rl,dr.months=zt,dr.monthsShort=Kt,dr.monthsParse=dn,dr.monthsRegex=an,dr.monthsShortRegex=pt,dr.week=Nt,dr.firstDayOfYear=Cn,dr.firstDayOfWeek=Xt,dr.weekdays=ar,dr.weekdaysMin=Kr,dr.weekdaysShort=fr,dr.weekdaysParse=ya,dr.weekdaysRegex=va,dr.weekdaysShortRegex=Vn,dr.weekdaysMinRegex=Bn,dr.isPM=yn,dr.meridiem=Ka;function Ra(z,de,He,lt){var Dt=Sr(),An=S().set(lt,de);return Dt[He](An,z)}function So(z,de,He){if(h(z)&&(de=z,z=void 0),z=z||"",de!=null)return Ra(z,de,He,"month");var lt,Dt=[];for(lt=0;lt<12;lt++)Dt[lt]=Ra(z,lt,He,"month");return Dt}function fi(z,de,He,lt){typeof z=="boolean"?(h(de)&&(He=de,de=void 0),de=de||""):(de=z,He=de,z=!1,h(de)&&(He=de,de=void 0),de=de||"");var Dt=Sr(),An=z?Dt._week.dow:0,Rr,Eo=[];if(He!=null)return Ra(de,(He+An)%7,lt,"day");for(Rr=0;Rr<7;Rr++)Eo[Rr]=Ra(de,(Rr+An)%7,lt,"day");return Eo}function Go(z,de){return So(z,de,"months")}function rs(z,de){return So(z,de,"monthsShort")}function vi(z,de,He){return fi(z,de,He,"weekdays")}function yi(z,de,He){return fi(z,de,He,"weekdaysShort")}function Lo(z,de,He){return fi(z,de,He,"weekdaysMin")}xn("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(z){var de=z%10,He=xe(z%100/10)===1?"th":de===1?"st":de===2?"nd":de===3?"rd":"th";return z+He}}),t.lang=P("moment.lang is deprecated. Use moment.locale instead.",xn),t.langData=P("moment.langData is deprecated. Use moment.localeData instead.",Sr);var Fo=Math.abs;function Vi(){var z=this._data;return this._milliseconds=Fo(this._milliseconds),this._days=Fo(this._days),this._months=Fo(this._months),z.milliseconds=Fo(z.milliseconds),z.seconds=Fo(z.seconds),z.minutes=Fo(z.minutes),z.hours=Fo(z.hours),z.months=Fo(z.months),z.years=Fo(z.years),this}function vs(z,de,He,lt){var Dt=Ya(de,He);return z._milliseconds+=lt*Dt._milliseconds,z._days+=lt*Dt._days,z._months+=lt*Dt._months,z._bubble()}function hu(z,de){return vs(this,z,de,1)}function Gl(z,de){return vs(this,z,de,-1)}function As(z){return z<0?Math.floor(z):Math.ceil(z)}function Du(){var z=this._milliseconds,de=this._days,He=this._months,lt=this._data,Dt,An,Rr,Eo,Zo;return z>=0&&de>=0&&He>=0||z<=0&&de<=0&&He<=0||(z+=As(Ss(He)+de)*864e5,de=0,He=0),lt.milliseconds=z%1e3,Dt=we(z/1e3),lt.seconds=Dt%60,An=we(Dt/60),lt.minutes=An%60,Rr=we(An/60),lt.hours=Rr%24,de+=we(Rr/24),Zo=we(zl(de)),He+=Zo,de-=As(Ss(Zo)),Eo=we(He/12),He%=12,lt.days=de,lt.months=He,lt.years=Eo,this}function zl(z){return z*4800/146097}function Ss(z){return z*146097/4800}function Ac(z){if(!this.isValid())return NaN;var de,He,lt=this._milliseconds;if(z=R(z),z==="month"||z==="quarter"||z==="year")switch(de=this._days+lt/864e5,He=this._months+zl(de),z){case"month":return He;case"quarter":return He/3;case"year":return He/12}else switch(de=this._days+Math.round(Ss(this._months)),z){case"week":return de/7+lt/6048e5;case"day":return de+lt/864e5;case"hour":return de*24+lt/36e5;case"minute":return de*1440+lt/6e4;case"second":return de*86400+lt/1e3;case"millisecond":return Math.floor(de*864e5)+lt;default:throw new Error("Unknown unit "+z)}}function _u(){return this.isValid()?this._milliseconds+this._days*864e5+this._months%12*2592e6+xe(this._months/12)*31536e6:NaN}function tl(z){return function(){return this.as(z)}}var jl=tl("ms"),ru=tl("s"),Yu=tl("m"),Oc=tl("h"),wu=tl("d"),au=tl("w"),yu=tl("M"),as=tl("Q"),bu=tl("y");function Os(){return Ya(this)}function es(z){return z=R(z),this.isValid()?this[z+"s"]():NaN}function Ws(z){return function(){return this.isValid()?this._data[z]:NaN}}var pl=Ws("milliseconds"),Qo=Ws("seconds"),ou=Ws("minutes"),cs=Ws("hours"),Vu=Ws("days"),nl=Ws("months"),hl=Ws("years");function rl(){return we(this.days()/7)}var bi=Math.round,Ds={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function ju(z,de,He,lt,Dt){return Dt.relativeTime(de||1,!!He,z,lt)}function Mu(z,de,He,lt){var Dt=Ya(z).abs(),An=bi(Dt.as("s")),Rr=bi(Dt.as("m")),Eo=bi(Dt.as("h")),Zo=bi(Dt.as("d")),mi=bi(Dt.as("M")),$i=bi(Dt.as("w")),al=bi(Dt.as("y")),bl=An<=He.ss&&["s",An]||An0,bl[4]=lt,ju.apply(null,bl)}function yl(z){return z===void 0?bi:typeof z=="function"?(bi=z,!0):!1}function Pu(z,de){return Ds[z]===void 0?!1:de===void 0?Ds[z]:(Ds[z]=de,z==="s"&&(Ds.ss=de-1),!0)}function Tu(z,de){if(!this.isValid())return this.localeData().invalidDate();var He=!1,lt=Ds,Dt,An;return typeof z=="object"&&(de=z,z=!1),typeof z=="boolean"&&(He=z),typeof de=="object"&&(lt=Object.assign({},Ds,de),de.s!=null&&de.ss==null&&(lt.ss=de.s-1)),Dt=this.localeData(),An=Mu(this,!He,lt,Dt),He&&(An=Dt.pastFuture(+this,An)),Dt.postformat(An)}var Kl=Math.abs;function Pl(z){return(z>0)-(z<0)||+z}function Fl(){if(!this.isValid())return this.localeData().invalidDate();var z=Kl(this._milliseconds)/1e3,de=Kl(this._days),He=Kl(this._months),lt,Dt,An,Rr,Eo=this.asSeconds(),Zo,mi,$i,al;return Eo?(lt=we(z/60),Dt=we(lt/60),z%=60,lt%=60,An=we(He/12),He%=12,Rr=z?z.toFixed(3).replace(/\.?0+$/,""):"",Zo=Eo<0?"-":"",mi=Pl(this._months)!==Pl(Eo)?"-":"",$i=Pl(this._days)!==Pl(Eo)?"-":"",al=Pl(this._milliseconds)!==Pl(Eo)?"-":"",Zo+"P"+(An?mi+An+"Y":"")+(He?mi+He+"M":"")+(de?$i+de+"D":"")+(Dt||lt||z?"T":"")+(Dt?al+Dt+"H":"")+(lt?al+lt+"M":"")+(z?al+Rr+"S":"")):"P0D"}var si=wi.prototype;si.isValid=Ri,si.abs=Vi,si.add=hu,si.subtract=Gl,si.as=Ac,si.asMilliseconds=jl,si.asSeconds=ru,si.asMinutes=Yu,si.asHours=Oc,si.asDays=wu,si.asWeeks=au,si.asMonths=yu,si.asQuarters=as,si.asYears=bu,si.valueOf=_u,si._bubble=Du,si.clone=Os,si.get=es,si.milliseconds=pl,si.seconds=Qo,si.minutes=ou,si.hours=cs,si.days=Vu,si.weeks=rl,si.months=nl,si.years=hl,si.humanize=Tu,si.toISOString=Fl,si.toString=Fl,si.toJSON=Fl,si.locale=Ol,si.localeData=vl,si.toIsoString=P("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Fl),si.lang=la,ce("X",0,0,"unix"),ce("x",0,0,"valueOf"),nt("x",tt),nt("X",Ne),$t("X",function(z,de,He){He._d=new Date(parseFloat(z)*1e3)}),$t("x",function(z,de,He){He._d=new Date(xe(z))});return t.version="2.29.4",o(Ja),t.fn=ma,t.min=po,t.max=Oi,t.now=Ni,t.utc=S,t.unix=it,t.months=Go,t.isDate=p,t.locale=xn,t.invalid=w,t.duration=Ya,t.isMoment=O,t.weekdays=vi,t.parseZone=Ut,t.localeData=Sr,t.isDuration=Ui,t.monthsShort=rs,t.weekdaysMin=Lo,t.defineLocale=Hn,t.updateLocale=Kn,t.locales=kr,t.weekdaysShort=yi,t.normalizeUnits=R,t.relativeTimeRounding=yl,t.relativeTimeThreshold=Pu,t.calendarFormat=Al,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(M){var b=M.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(j){e=t}try{typeof clearTimeout=="function"?a=clearTimeout:a=o}catch(j){a=o}})();function s(j){if(e===setTimeout)return setTimeout(j,0);if((e===t||!e)&&setTimeout)return e=setTimeout,setTimeout(j,0);try{return e(j,0)}catch(x){try{return e.call(null,j,0)}catch(Z){return e.call(this,j,0)}}}function n(j){if(a===clearTimeout)return clearTimeout(j);if((a===o||!a)&&clearTimeout)return a=clearTimeout,clearTimeout(j);try{return a(j)}catch(x){try{return a.call(null,j)}catch(Z){return a.call(this,j)}}}var c=[],l=!1,d,h=-1;function p(){!l||!d||(l=!1,d.length?c=d.concat(c):h=-1,c.length&&y())}function y(){if(!l){var j=s(p);l=!0;for(var x=c.length;x;){for(d=c,c=[];++h1)for(var Z=1;Z=tt||Ve<0||Ve>=tt)return rt;var Oe=rt[qe],Me=qe-Ve;return Me>0?[].concat((0,c.Z)(rt.slice(0,Ve)),[Oe],(0,c.Z)(rt.slice(Ve,qe)),(0,c.Z)(rt.slice(qe+1,tt))):Me<0?[].concat((0,c.Z)(rt.slice(0,qe)),(0,c.Z)(rt.slice(qe+1,Ve+1)),[Oe],(0,c.Z)(rt.slice(Ve+1,tt))):rt}var bt=["name"],Ct=[];function Le(rt,qe,Ve,tt,Oe,Me){return typeof rt=="function"?rt(qe,Ve,"source"in Me?{source:Me.source}:{}):tt!==Oe}var Ke=function(rt){(0,p.Z)(Ve,rt);var qe=(0,y.Z)(Ve);function Ve(tt){var Oe;if((0,l.Z)(this,Ve),Oe=qe.call(this,tt),Oe.state={resetCount:0},Oe.cancelRegisterFunc=null,Oe.mounted=!1,Oe.touched=!1,Oe.dirty=!1,Oe.validatePromise=void 0,Oe.prevValidating=void 0,Oe.errors=Ct,Oe.warnings=Ct,Oe.cancelRegister=function(){var Be=Oe.props,nt=Be.preserve,ot=Be.isListField,wt=Be.name;Oe.cancelRegisterFunc&&Oe.cancelRegisterFunc(ot,nt,he(wt)),Oe.cancelRegisterFunc=null},Oe.getNamePath=function(){var Be=Oe.props,nt=Be.name,ot=Be.fieldContext,wt=ot.prefixName,Et=wt===void 0?[]:wt;return nt!==void 0?[].concat((0,c.Z)(Et),(0,c.Z)(nt)):[]},Oe.getRules=function(){var Be=Oe.props,nt=Be.rules,ot=nt===void 0?[]:nt,wt=Be.fieldContext;return ot.map(function(Et){return typeof Et=="function"?Et(wt):Et})},Oe.refresh=function(){Oe.mounted&&Oe.setState(function(Be){var nt=Be.resetCount;return{resetCount:nt+1}})},Oe.metaCache=null,Oe.triggerMetaEvent=function(Be){var nt=Oe.props.onMetaChange;if(nt){var ot=(0,n.Z)((0,n.Z)({},Oe.getMeta()),{},{destroy:Be});(0,j.Z)(Oe.metaCache,ot)||nt(ot),Oe.metaCache=ot}else Oe.metaCache=null},Oe.onStoreChange=function(Be,nt,ot){var wt=Oe.props,Et=wt.shouldUpdate,nn=wt.dependencies,$t=nn===void 0?[]:nn,fn=wt.onReset,ln=ot.store,Wt=Oe.getNamePath(),$e=Oe.getValue(Be),De=Oe.getValue(ln),jt=nt&&Je(nt,Wt);switch(ot.type==="valueUpdate"&&ot.source==="external"&&$e!==De&&(Oe.touched=!0,Oe.dirty=!0,Oe.validatePromise=null,Oe.errors=Ct,Oe.warnings=Ct,Oe.triggerMetaEvent()),ot.type){case"reset":if(!nt||jt){Oe.touched=!1,Oe.dirty=!1,Oe.validatePromise=void 0,Oe.errors=Ct,Oe.warnings=Ct,Oe.triggerMetaEvent(),fn==null||fn(),Oe.refresh();return}break;case"remove":{if(Et){Oe.reRender();return}break}case"setField":{if(jt){var Ft=ot.data;"touched"in Ft&&(Oe.touched=Ft.touched),"validating"in Ft&&!("originRCField"in Ft)&&(Oe.validatePromise=Ft.validating?Promise.resolve([]):null),"errors"in Ft&&(Oe.errors=Ft.errors||Ct),"warnings"in Ft&&(Oe.warnings=Ft.warnings||Ct),Oe.dirty=!0,Oe.triggerMetaEvent(),Oe.reRender();return}if(Et&&!Wt.length&&Le(Et,Be,ln,$e,De,ot)){Oe.reRender();return}break}case"dependenciesUpdate":{var Xe=$t.map(he);if(Xe.some(function(at){return Je(ot.relatedFields,at)})){Oe.reRender();return}break}default:if(jt||(!$t.length||Wt.length||Et)&&Le(Et,Be,ln,$e,De,ot)){Oe.reRender();return}break}Et===!0&&Oe.reRender()},Oe.validateRules=function(Be){var nt=Oe.getNamePath(),ot=Oe.getValue(),wt=Be||{},Et=wt.triggerName,nn=wt.validateOnly,$t=nn===void 0?!1:nn,fn=Promise.resolve().then(function(){if(!Oe.mounted)return[];var ln=Oe.props,Wt=ln.validateFirst,$e=Wt===void 0?!1:Wt,De=ln.messageVariables,jt=Oe.getRules();Et&&(jt=jt.filter(function(Xe){return Xe}).filter(function(Xe){var at=Xe.validateTrigger;if(!at)return!0;var Bt=A(at);return Bt.includes(Et)}));var Ft=H(nt,ot,jt,Be,$e,De);return Ft.catch(function(Xe){return Xe}).then(function(){var Xe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Ct;if(Oe.validatePromise===fn){var at;Oe.validatePromise=null;var Bt=[],Zt=[];(at=Xe.forEach)===null||at===void 0||at.call(Xe,function(Qt){var rn=Qt.rule.warningOnly,hn=Qt.errors,on=hn===void 0?Ct:hn;rn?Zt.push.apply(Zt,(0,c.Z)(on)):Bt.push.apply(Bt,(0,c.Z)(on))}),Oe.errors=Bt,Oe.warnings=Zt,Oe.triggerMetaEvent(),Oe.reRender()}}),Ft});return $t||(Oe.validatePromise=fn,Oe.dirty=!0,Oe.errors=Ct,Oe.warnings=Ct,Oe.triggerMetaEvent(),Oe.reRender()),fn},Oe.isFieldValidating=function(){return!!Oe.validatePromise},Oe.isFieldTouched=function(){return Oe.touched},Oe.isFieldDirty=function(){if(Oe.dirty||Oe.props.initialValue!==void 0)return!0;var Be=Oe.props.fieldContext,nt=Be.getInternalHooks(x),ot=nt.getInitialValue;return ot(Oe.getNamePath())!==void 0},Oe.getErrors=function(){return Oe.errors},Oe.getWarnings=function(){return Oe.warnings},Oe.isListField=function(){return Oe.props.isListField},Oe.isList=function(){return Oe.props.isList},Oe.isPreserve=function(){return Oe.props.preserve},Oe.getMeta=function(){Oe.prevValidating=Oe.isFieldValidating();var Be={touched:Oe.isFieldTouched(),validating:Oe.prevValidating,errors:Oe.errors,warnings:Oe.warnings,name:Oe.getNamePath(),validated:Oe.validatePromise===null};return Be},Oe.getOnlyChild=function(Be){if(typeof Be=="function"){var nt=Oe.getMeta();return(0,n.Z)((0,n.Z)({},Oe.getOnlyChild(Be(Oe.getControlled(),nt,Oe.props.fieldContext))),{},{isFunction:!0})}var ot=(0,g.Z)(Be);return ot.length!==1||!a.isValidElement(ot[0])?{child:ot,isFunction:!1}:{child:ot[0],isFunction:!1}},Oe.getValue=function(Be){var nt=Oe.props.fieldContext.getFieldsValue,ot=Oe.getNamePath();return(0,ce.Z)(Be||nt(!0),ot)},Oe.getControlled=function(){var Be=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},nt=Oe.props,ot=nt.trigger,wt=nt.validateTrigger,Et=nt.getValueFromEvent,nn=nt.normalize,$t=nt.valuePropName,fn=nt.getValueProps,ln=nt.fieldContext,Wt=wt!==void 0?wt:ln.validateTrigger,$e=Oe.getNamePath(),De=ln.getInternalHooks,jt=ln.getFieldsValue,Ft=De(x),Xe=Ft.dispatch,at=Oe.getValue(),Bt=fn||function(hn){return(0,s.Z)({},$t,hn)},Zt=Be[ot],Qt=(0,n.Z)((0,n.Z)({},Be),Bt(at));Qt[ot]=function(){Oe.touched=!0,Oe.dirty=!0,Oe.triggerMetaEvent();for(var hn,on=arguments.length,Rn=new Array(on),zn=0;zn=0&&Qt<=rn.length?(ot.keys=[].concat((0,c.Z)(ot.keys.slice(0,Qt)),[ot.id],(0,c.Z)(ot.keys.slice(Qt))),De([].concat((0,c.Z)(rn.slice(0,Qt)),[Zt],(0,c.Z)(rn.slice(Qt))))):(ot.keys=[].concat((0,c.Z)(ot.keys),[ot.id]),De([].concat((0,c.Z)(rn),[Zt]))),ot.id+=1},remove:function(Zt){var Qt=Ft(),rn=new Set(Array.isArray(Zt)?Zt:[Zt]);rn.size<=0||(ot.keys=ot.keys.filter(function(hn,on){return!rn.has(on)}),De(Qt.filter(function(hn,on){return!rn.has(on)})))},move:function(Zt,Qt){if(Zt!==Qt){var rn=Ft();Zt<0||Zt>=rn.length||Qt<0||Qt>=rn.length||(ot.keys=Pt(ot.keys,Zt,Qt),De(Pt(rn,Zt,Qt)))}}},at=$e||[];return Array.isArray(at)||(at=[]),tt(at.map(function(Bt,Zt){var Qt=ot.keys[Zt];return Qt===void 0&&(ot.keys[Zt]=ot.id,Qt=ot.keys[Zt],ot.id+=1),{name:Zt,key:Qt,isListField:!0}}),Xe,ln)})))}var X=ge,W=e(28314);function R(rt){var qe=!1,Ve=rt.length,tt=[];return rt.length?new Promise(function(Oe,Me){rt.forEach(function(Ne,Te){Ne.catch(function(Be){return qe=!0,Be}).then(function(Be){Ve-=1,tt[Te]=Be,!(Ve>0)&&(qe&&Me(tt),Oe(tt))})})}):Promise.resolve([])}var N="__@field_split__";function oe(rt){return rt.map(function(qe){return"".concat((0,be.Z)(qe),":").concat(qe)}).join(N)}var ve=function(){function rt(){(0,l.Z)(this,rt),this.kvs=new Map}return(0,d.Z)(rt,[{key:"set",value:function(Ve,tt){this.kvs.set(oe(Ve),tt)}},{key:"get",value:function(Ve){return this.kvs.get(oe(Ve))}},{key:"update",value:function(Ve,tt){var Oe=this.get(Ve),Me=tt(Oe);Me?this.set(Ve,Me):this.delete(Ve)}},{key:"delete",value:function(Ve){this.kvs.delete(oe(Ve))}},{key:"map",value:function(Ve){return(0,c.Z)(this.kvs.entries()).map(function(tt){var Oe=(0,W.Z)(tt,2),Me=Oe[0],Ne=Oe[1],Te=Me.split(N);return Ve({key:Te.map(function(Be){var nt=Be.match(/^([^:]*):(.*)$/),ot=(0,W.Z)(nt,3),wt=ot[1],Et=ot[2];return wt==="number"?Number(Et):Et}),value:Ne})})}},{key:"toJSON",value:function(){var Ve={};return this.map(function(tt){var Oe=tt.key,Me=tt.value;return Ve[Oe.join(".")]=Me,null}),Ve}}]),rt}(),te=ve,me=["name"],we=(0,d.Z)(function rt(qe){var Ve=this;(0,l.Z)(this,rt),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:Ve.getFieldValue,getFieldsValue:Ve.getFieldsValue,getFieldError:Ve.getFieldError,getFieldWarning:Ve.getFieldWarning,getFieldsError:Ve.getFieldsError,isFieldsTouched:Ve.isFieldsTouched,isFieldTouched:Ve.isFieldTouched,isFieldValidating:Ve.isFieldValidating,isFieldsValidating:Ve.isFieldsValidating,resetFields:Ve.resetFields,setFields:Ve.setFields,setFieldValue:Ve.setFieldValue,setFieldsValue:Ve.setFieldsValue,validateFields:Ve.validateFields,submit:Ve.submit,_init:!0,getInternalHooks:Ve.getInternalHooks}},this.getInternalHooks=function(tt){return tt===x?(Ve.formHooked=!0,{dispatch:Ve.dispatch,initEntityValue:Ve.initEntityValue,registerField:Ve.registerField,useSubscribe:Ve.useSubscribe,setInitialValues:Ve.setInitialValues,destroyForm:Ve.destroyForm,setCallbacks:Ve.setCallbacks,setValidateMessages:Ve.setValidateMessages,getFields:Ve.getFields,setPreserve:Ve.setPreserve,getInitialValue:Ve.getInitialValue,registerWatch:Ve.registerWatch}):((0,S.ZP)(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)},this.useSubscribe=function(tt){Ve.subscribable=tt},this.prevWithoutPreserves=null,this.setInitialValues=function(tt,Oe){if(Ve.initialValues=tt||{},Oe){var Me,Ne=(0,ee.T)(tt,Ve.store);(Me=Ve.prevWithoutPreserves)===null||Me===void 0||Me.map(function(Te){var Be=Te.key;Ne=(0,ee.Z)(Ne,Be,(0,ce.Z)(tt,Be))}),Ve.prevWithoutPreserves=null,Ve.updateStore(Ne)}},this.destroyForm=function(){var tt=new te;Ve.getFieldEntities(!0).forEach(function(Oe){Ve.isMergedPreserve(Oe.isPreserve())||tt.set(Oe.getNamePath(),!0)}),Ve.prevWithoutPreserves=tt},this.getInitialValue=function(tt){var Oe=(0,ce.Z)(Ve.initialValues,tt);return tt.length?(0,ee.T)(Oe):Oe},this.setCallbacks=function(tt){Ve.callbacks=tt},this.setValidateMessages=function(tt){Ve.validateMessages=tt},this.setPreserve=function(tt){Ve.preserve=tt},this.watchList=[],this.registerWatch=function(tt){return Ve.watchList.push(tt),function(){Ve.watchList=Ve.watchList.filter(function(Oe){return Oe!==tt})}},this.notifyWatch=function(){var tt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];if(Ve.watchList.length){var Oe=Ve.getFieldsValue(),Me=Ve.getFieldsValue(!0);Ve.watchList.forEach(function(Ne){Ne(Oe,Me,tt)})}},this.timeoutId=null,this.warningUnhooked=function(){},this.updateStore=function(tt){Ve.store=tt},this.getFieldEntities=function(){var tt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;return tt?Ve.fieldEntities.filter(function(Oe){return Oe.getNamePath().length}):Ve.fieldEntities},this.getFieldsMap=function(){var tt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,Oe=new te;return Ve.getFieldEntities(tt).forEach(function(Me){var Ne=Me.getNamePath();Oe.set(Ne,Me)}),Oe},this.getFieldEntitiesForNamePathList=function(tt){if(!tt)return Ve.getFieldEntities(!0);var Oe=Ve.getFieldsMap(!0);return tt.map(function(Me){var Ne=he(Me);return Oe.get(Ne)||{INVALIDATE_NAME_PATH:he(Me)}})},this.getFieldsValue=function(tt,Oe){Ve.warningUnhooked();var Me,Ne,Te;if(tt===!0||Array.isArray(tt)?(Me=tt,Ne=Oe):tt&&(0,be.Z)(tt)==="object"&&(Te=tt.strict,Ne=tt.filter),Me===!0&&!Ne)return Ve.store;var Be=Ve.getFieldEntitiesForNamePathList(Array.isArray(Me)?Me:null),nt=[];return Be.forEach(function(ot){var wt,Et="INVALIDATE_NAME_PATH"in ot?ot.INVALIDATE_NAME_PATH:ot.getNamePath();if(Te){var nn;if(!((nn=ot.isList)===null||nn===void 0)&&nn.call(ot))return}else if(!Me&&(!((wt=ot.isListField)===null||wt===void 0)&&wt.call(ot)))return;if(!Ne)nt.push(Et);else{var $t="getMeta"in ot?ot.getMeta():null;Ne($t)&&nt.push(Et)}}),Fe(Ve.store,nt.map(he))},this.getFieldValue=function(tt){Ve.warningUnhooked();var Oe=he(tt);return(0,ce.Z)(Ve.store,Oe)},this.getFieldsError=function(tt){Ve.warningUnhooked();var Oe=Ve.getFieldEntitiesForNamePathList(tt);return Oe.map(function(Me,Ne){return Me&&!("INVALIDATE_NAME_PATH"in Me)?{name:Me.getNamePath(),errors:Me.getErrors(),warnings:Me.getWarnings()}:{name:he(tt[Ne]),errors:[],warnings:[]}})},this.getFieldError=function(tt){Ve.warningUnhooked();var Oe=he(tt),Me=Ve.getFieldsError([Oe])[0];return Me.errors},this.getFieldWarning=function(tt){Ve.warningUnhooked();var Oe=he(tt),Me=Ve.getFieldsError([Oe])[0];return Me.warnings},this.isFieldsTouched=function(){Ve.warningUnhooked();for(var tt=arguments.length,Oe=new Array(tt),Me=0;Me0&&arguments[0]!==void 0?arguments[0]:{},Oe=new te,Me=Ve.getFieldEntities(!0);Me.forEach(function(Be){var nt=Be.props.initialValue,ot=Be.getNamePath();if(nt!==void 0){var wt=Oe.get(ot)||new Set;wt.add({entity:Be,value:nt}),Oe.set(ot,wt)}});var Ne=function(nt){nt.forEach(function(ot){var wt=ot.props.initialValue;if(wt!==void 0){var Et=ot.getNamePath(),nn=Ve.getInitialValue(Et);if(nn!==void 0)(0,S.ZP)(!1,"Form already set 'initialValues' with path '".concat(Et.join("."),"'. Field can not overwrite it."));else{var $t=Oe.get(Et);if($t&&$t.size>1)(0,S.ZP)(!1,"Multiple Field with path '".concat(Et.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if($t){var fn=Ve.getFieldValue(Et);(!tt.skipExist||fn===void 0)&&Ve.updateStore((0,ee.Z)(Ve.store,Et,(0,c.Z)($t)[0].value))}}}})},Te;tt.entities?Te=tt.entities:tt.namePathList?(Te=[],tt.namePathList.forEach(function(Be){var nt=Oe.get(Be);if(nt){var ot;(ot=Te).push.apply(ot,(0,c.Z)((0,c.Z)(nt).map(function(wt){return wt.entity})))}})):Te=Me,Ne(Te)},this.resetFields=function(tt){Ve.warningUnhooked();var Oe=Ve.store;if(!tt){Ve.updateStore((0,ee.T)(Ve.initialValues)),Ve.resetWithFieldInitialValue(),Ve.notifyObservers(Oe,null,{type:"reset"}),Ve.notifyWatch();return}var Me=tt.map(he);Me.forEach(function(Ne){var Te=Ve.getInitialValue(Ne);Ve.updateStore((0,ee.Z)(Ve.store,Ne,Te))}),Ve.resetWithFieldInitialValue({namePathList:Me}),Ve.notifyObservers(Oe,Me,{type:"reset"}),Ve.notifyWatch(Me)},this.setFields=function(tt){Ve.warningUnhooked();var Oe=Ve.store,Me=[];tt.forEach(function(Ne){var Te=Ne.name,Be=(0,o.Z)(Ne,me),nt=he(Te);Me.push(nt),"value"in Be&&Ve.updateStore((0,ee.Z)(Ve.store,nt,Be.value)),Ve.notifyObservers(Oe,[nt],{type:"setField",data:Ne})}),Ve.notifyWatch(Me)},this.getFields=function(){var tt=Ve.getFieldEntities(!0),Oe=tt.map(function(Me){var Ne=Me.getNamePath(),Te=Me.getMeta(),Be=(0,n.Z)((0,n.Z)({},Te),{},{name:Ne,value:Ve.getFieldValue(Ne)});return Object.defineProperty(Be,"originRCField",{value:!0}),Be});return Oe},this.initEntityValue=function(tt){var Oe=tt.props.initialValue;if(Oe!==void 0){var Me=tt.getNamePath(),Ne=(0,ce.Z)(Ve.store,Me);Ne===void 0&&Ve.updateStore((0,ee.Z)(Ve.store,Me,Oe))}},this.isMergedPreserve=function(tt){var Oe=tt!==void 0?tt:Ve.preserve;return Oe!=null?Oe:!0},this.registerField=function(tt){Ve.fieldEntities.push(tt);var Oe=tt.getNamePath();if(Ve.notifyWatch([Oe]),tt.props.initialValue!==void 0){var Me=Ve.store;Ve.resetWithFieldInitialValue({entities:[tt],skipExist:!0}),Ve.notifyObservers(Me,[tt.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(Ne,Te){var Be=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];if(Ve.fieldEntities=Ve.fieldEntities.filter(function(wt){return wt!==tt}),!Ve.isMergedPreserve(Te)&&(!Ne||Be.length>1)){var nt=Ne?void 0:Ve.getInitialValue(Oe);if(Oe.length&&Ve.getFieldValue(Oe)!==nt&&Ve.fieldEntities.every(function(wt){return!et(wt.getNamePath(),Oe)})){var ot=Ve.store;Ve.updateStore((0,ee.Z)(ot,Oe,nt,!0)),Ve.notifyObservers(ot,[Oe],{type:"remove"}),Ve.triggerDependenciesUpdate(ot,Oe)}}Ve.notifyWatch([Oe])}},this.dispatch=function(tt){switch(tt.type){case"updateValue":{var Oe=tt.namePath,Me=tt.value;Ve.updateValue(Oe,Me);break}case"validateField":{var Ne=tt.namePath,Te=tt.triggerName;Ve.validateFields([Ne],{triggerName:Te});break}default:}},this.notifyObservers=function(tt,Oe,Me){if(Ve.subscribable){var Ne=(0,n.Z)((0,n.Z)({},Me),{},{store:Ve.getFieldsValue(!0)});Ve.getFieldEntities().forEach(function(Te){var Be=Te.onStoreChange;Be(tt,Oe,Ne)})}else Ve.forceRootUpdate()},this.triggerDependenciesUpdate=function(tt,Oe){var Me=Ve.getDependencyChildrenFields(Oe);return Me.length&&Ve.validateFields(Me),Ve.notifyObservers(tt,Me,{type:"dependenciesUpdate",relatedFields:[Oe].concat((0,c.Z)(Me))}),Me},this.updateValue=function(tt,Oe){var Me=he(tt),Ne=Ve.store;Ve.updateStore((0,ee.Z)(Ve.store,Me,Oe)),Ve.notifyObservers(Ne,[Me],{type:"valueUpdate",source:"internal"}),Ve.notifyWatch([Me]);var Te=Ve.triggerDependenciesUpdate(Ne,Me),Be=Ve.callbacks.onValuesChange;if(Be){var nt=Fe(Ve.store,[Me]);Be(nt,Ve.getFieldsValue())}Ve.triggerOnFieldsChange([Me].concat((0,c.Z)(Te)))},this.setFieldsValue=function(tt){Ve.warningUnhooked();var Oe=Ve.store;if(tt){var Me=(0,ee.T)(Ve.store,tt);Ve.updateStore(Me)}Ve.notifyObservers(Oe,null,{type:"valueUpdate",source:"external"}),Ve.notifyWatch()},this.setFieldValue=function(tt,Oe){Ve.setFields([{name:tt,value:Oe}])},this.getDependencyChildrenFields=function(tt){var Oe=new Set,Me=[],Ne=new te;Ve.getFieldEntities().forEach(function(Be){var nt=Be.props.dependencies;(nt||[]).forEach(function(ot){var wt=he(ot);Ne.update(wt,function(){var Et=arguments.length>0&&arguments[0]!==void 0?arguments[0]:new Set;return Et.add(Be),Et})})});var Te=function Be(nt){var ot=Ne.get(nt)||new Set;ot.forEach(function(wt){if(!Oe.has(wt)){Oe.add(wt);var Et=wt.getNamePath();wt.isFieldDirty()&&Et.length&&(Me.push(Et),Be(Et))}})};return Te(tt),Me},this.triggerOnFieldsChange=function(tt,Oe){var Me=Ve.callbacks.onFieldsChange;if(Me){var Ne=Ve.getFields();if(Oe){var Te=new te;Oe.forEach(function(nt){var ot=nt.name,wt=nt.errors;Te.set(ot,wt)}),Ne.forEach(function(nt){nt.errors=Te.get(nt.name)||nt.errors})}var Be=Ne.filter(function(nt){var ot=nt.name;return Je(tt,ot)});Be.length&&Me(Be,Ne)}},this.validateFields=function(tt,Oe){Ve.warningUnhooked();var Me,Ne;Array.isArray(tt)||typeof tt=="string"||typeof Oe=="string"?(Me=tt,Ne=Oe):Ne=tt;var Te=!!Me,Be=Te?Me.map(he):[],nt=[],ot=String(Date.now()),wt=new Set;Ve.getFieldEntities(!0).forEach(function(fn){var ln;if(Te||Be.push(fn.getNamePath()),!((ln=Ne)===null||ln===void 0)&&ln.recursive&&Te){var Wt=fn.getNamePath();Wt.every(function(jt,Ft){return Me[Ft]===jt||Me[Ft]===void 0})&&Be.push(Wt)}if(!(!fn.props.rules||!fn.props.rules.length)){var $e=fn.getNamePath();if(wt.add($e.join(ot)),!Te||Je(Be,$e)){var De=fn.validateRules((0,n.Z)({validateMessages:(0,n.Z)((0,n.Z)({},U),Ve.validateMessages)},Ne));nt.push(De.then(function(){return{name:$e,errors:[],warnings:[]}}).catch(function(jt){var Ft,Xe=[],at=[];return(Ft=jt.forEach)===null||Ft===void 0||Ft.call(jt,function(Bt){var Zt=Bt.rule.warningOnly,Qt=Bt.errors;Zt?at.push.apply(at,(0,c.Z)(Qt)):Xe.push.apply(Xe,(0,c.Z)(Qt))}),Xe.length?Promise.reject({name:$e,errors:Xe,warnings:at}):{name:$e,errors:Xe,warnings:at}}))}}});var Et=R(nt);Ve.lastValidatePromise=Et,Et.catch(function(fn){return fn}).then(function(fn){var ln=fn.map(function(Wt){var $e=Wt.name;return $e});Ve.notifyObservers(Ve.store,ln,{type:"validateFinish"}),Ve.triggerOnFieldsChange(ln,fn)});var nn=Et.then(function(){return Ve.lastValidatePromise===Et?Promise.resolve(Ve.getFieldsValue(Be)):Promise.reject([])}).catch(function(fn){var ln=fn.filter(function(Wt){return Wt&&Wt.errors.length});return Promise.reject({values:Ve.getFieldsValue(Be),errorFields:ln,outOfDate:Ve.lastValidatePromise!==Et})});nn.catch(function(fn){return fn});var $t=Be.filter(function(fn){return wt.has(fn.join(ot))});return Ve.triggerOnFieldsChange($t),nn},this.submit=function(){Ve.warningUnhooked(),Ve.validateFields().then(function(tt){var Oe=Ve.callbacks.onFinish;if(Oe)try{Oe(tt)}catch(Me){console.error(Me)}}).catch(function(tt){var Oe=Ve.callbacks.onFinishFailed;Oe&&Oe(tt)})},this.forceRootUpdate=qe});function xe(rt){var qe=a.useRef(),Ve=a.useState({}),tt=(0,W.Z)(Ve,2),Oe=tt[1];if(!qe.current)if(rt)qe.current=rt;else{var Me=function(){Oe({})},Ne=new we(Me);qe.current=Ne.getForm()}return[qe.current]}var Se=xe,ke=a.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),ne=function(qe){var Ve=qe.validateMessages,tt=qe.onFormChange,Oe=qe.onFormFinish,Me=qe.children,Ne=a.useContext(ke),Te=a.useRef({});return a.createElement(ke.Provider,{value:(0,n.Z)((0,n.Z)({},Ne),{},{validateMessages:(0,n.Z)((0,n.Z)({},Ne.validateMessages),Ve),triggerFormChange:function(nt,ot){tt&&tt(nt,{changedFields:ot,forms:Te.current}),Ne.triggerFormChange(nt,ot)},triggerFormFinish:function(nt,ot){Oe&&Oe(nt,{values:ot,forms:Te.current}),Ne.triggerFormFinish(nt,ot)},registerForm:function(nt,ot){nt&&(Te.current=(0,n.Z)((0,n.Z)({},Te.current),{},(0,s.Z)({},nt,ot))),Ne.registerForm(nt,ot)},unregisterForm:function(nt){var ot=(0,n.Z)({},Te.current);delete ot[nt],Te.current=ot,Ne.unregisterForm(nt)}})},Me)},re=ke,se=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed"],Ee=function(qe,Ve){var tt=qe.name,Oe=qe.initialValues,Me=qe.fields,Ne=qe.form,Te=qe.preserve,Be=qe.children,nt=qe.component,ot=nt===void 0?"form":nt,wt=qe.validateMessages,Et=qe.validateTrigger,nn=Et===void 0?"onChange":Et,$t=qe.onValuesChange,fn=qe.onFieldsChange,ln=qe.onFinish,Wt=qe.onFinishFailed,$e=(0,o.Z)(qe,se),De=a.useContext(re),jt=Se(Ne),Ft=(0,W.Z)(jt,1),Xe=Ft[0],at=Xe.getInternalHooks(x),Bt=at.useSubscribe,Zt=at.setInitialValues,Qt=at.setCallbacks,rn=at.setValidateMessages,hn=at.setPreserve,on=at.destroyForm;a.useImperativeHandle(Ve,function(){return Xe}),a.useEffect(function(){return De.registerForm(tt,Xe),function(){De.unregisterForm(tt)}},[De,Xe,tt]),rn((0,n.Z)((0,n.Z)({},De.validateMessages),wt)),Qt({onValuesChange:$t,onFieldsChange:function(pn){if(De.triggerFormChange(tt,pn),fn){for(var en=arguments.length,mt=new Array(en>1?en-1:0),pt=1;pt0;if(H||Y){var te=(0,d.D7)(et),me=(0,y.Z)(te).length,we=(0,s.Z)(Y)==="object"?Y.formatter({value:te,count:me,maxLength:I}):"".concat(me).concat(ve?" / ".concat(I):"");return l.createElement(l.Fragment,null,!!Y&&l.createElement("span",{className:c()("".concat(le,"-show-count-suffix"),(0,o.Z)({},"".concat(le,"-show-count-has-suffix"),!!H),be==null?void 0:be.count),style:(0,t.Z)({},ce==null?void 0:ce.count)},we),H)}return null};return l.createElement(p,(0,a.Z)({},he,{prefixCls:le,className:q,inputElement:R(),handleReset:W,value:(0,d.D7)(et),focused:bt,triggerFocus:Ke,suffix:N(),disabled:Q,classes:ue,classNames:be,styles:ce}))}),w=B,T=w},33615:function(M,b,e){"use strict";e.d(b,{D7:function(){return n},He:function(){return a},X3:function(){return t},nH:function(){return s},rJ:function(){return o}});function a(c){return!!(c.addonBefore||c.addonAfter)}function t(c){return!!(c.prefix||c.suffix||c.allowClear)}function o(c,l,d,h){if(d){var p=l;if(l.type==="click"){var y=c.cloneNode(!0);p=Object.create(l,{target:{value:y},currentTarget:{value:y}}),y.value="",d(p);return}if(h!==void 0){p=Object.create(l,{target:{value:c},currentTarget:{value:c}}),c.value=h,d(p);return}d(p)}}function s(c,l){if(c){c.focus(l);var d=l||{},h=d.cursor;if(h){var p=c.value.length;switch(h){case"start":c.setSelectionRange(0,0);break;case"end":c.setSelectionRange(p,p);break;default:c.setSelectionRange(0,p)}}}}function n(c){return typeof c=="undefined"||c===null?"":String(c)}},87854:function(M,b,e){"use strict";e.d(b,{iz:function(){return Rn},ck:function(){return Oe},BW:function(){return on},sN:function(){return Oe},Wd:function(){return Bt},ZP:function(){return en},Xl:function(){return U}});var a=e(60698),t=e(37734),o=e(57370),s=e(29140),n=e(28314),c=e(47075),l=e(87608),d=e.n(l),h=e(9257),p=e(60409),y=e(75556),g=e(58757),S=e(26736),j=e(7637),x=g.createContext(null);function Z(mt,pt){return mt===void 0?null:"".concat(mt,"-").concat(pt)}function B(mt){var pt=g.useContext(x);return Z(pt,mt)}var w=e(27903),T=["children","locked"],F=g.createContext(null);function A(mt,pt){var an=(0,o.Z)({},mt);return Object.keys(pt).forEach(function(qt){var Yt=pt[qt];Yt!==void 0&&(an[qt]=Yt)}),an}function L(mt){var pt=mt.children,an=mt.locked,qt=(0,c.Z)(mt,T),Yt=g.useContext(F),mn=(0,w.Z)(function(){return A(Yt,qt)},[Yt,qt],function(gn,kn){return!an&&(gn[0]!==kn[0]||!(0,j.Z)(gn[1],kn[1],!0))});return g.createElement(F.Provider,{value:mn},pt)}var O=[],$=g.createContext(null);function P(){return g.useContext($)}var K=g.createContext(O);function U(mt){var pt=g.useContext(K);return g.useMemo(function(){return mt!==void 0?[].concat((0,s.Z)(pt),[mt]):pt},[pt,mt])}var ee=g.createContext(null),le=g.createContext({}),Q=le,G=e(29639),q=e(61834),I=e(46499);function H(mt){var pt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if((0,I.Z)(mt)){var an=mt.nodeName.toLowerCase(),qt=["input","select","textarea","button"].includes(an)||mt.isContentEditable||an==="a"&&!!mt.getAttribute("href"),Yt=mt.getAttribute("tabindex"),mn=Number(Yt),gn=null;return Yt&&!Number.isNaN(mn)?gn=mn:qt&&gn===null&&(gn=0),qt&&mt.disabled&&(gn=null),gn!==null&&(gn>=0||pt&&gn<0)}return!1}function Y(mt){var pt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,an=(0,s.Z)(mt.querySelectorAll("*")).filter(function(qt){return H(qt,pt)});return H(mt,pt)&&an.unshift(mt),an}var D=null;function _(){D=document.activeElement}function ue(){D=null}function be(){if(D)try{D.focus()}catch(mt){}}function ce(mt,pt){if(pt.keyCode===9){var an=Y(mt),qt=an[pt.shiftKey?0:an.length-1],Yt=qt===document.activeElement||mt===document.activeElement;if(Yt){var mn=an[pt.shiftKey?an.length-1:0];mn.focus(),pt.preventDefault()}}}var he=G.Z.LEFT,Fe=G.Z.RIGHT,Je=G.Z.UP,et=G.Z.DOWN,ae=G.Z.ENTER,yt=G.Z.ESC,Pt=G.Z.HOME,bt=G.Z.END,Ct=[Je,et,he,Fe];function Le(mt,pt,an,qt){var Yt,mn,gn,kn,tr="prev",ft="next",vt="children",St="parent";if(mt==="inline"&&qt===ae)return{inlineTrigger:!0};var Mt=(Yt={},(0,t.Z)(Yt,Je,tr),(0,t.Z)(Yt,et,ft),Yt),Nt=(mn={},(0,t.Z)(mn,he,an?ft:tr),(0,t.Z)(mn,Fe,an?tr:ft),(0,t.Z)(mn,et,vt),(0,t.Z)(mn,ae,vt),mn),sn=(gn={},(0,t.Z)(gn,Je,tr),(0,t.Z)(gn,et,ft),(0,t.Z)(gn,ae,vt),(0,t.Z)(gn,yt,St),(0,t.Z)(gn,he,an?vt:St),(0,t.Z)(gn,Fe,an?St:vt),gn),Xt={inline:Mt,horizontal:Nt,vertical:sn,inlineSub:Mt,horizontalSub:sn,verticalSub:sn},Cn=(kn=Xt["".concat(mt).concat(pt?"":"Sub")])===null||kn===void 0?void 0:kn[qt];switch(Cn){case tr:return{offset:-1,sibling:!0};case ft:return{offset:1,sibling:!0};case St:return{offset:-1,sibling:!1};case vt:return{offset:1,sibling:!1};default:return null}}function Ke(mt){for(var pt=mt;pt;){if(pt.getAttribute("data-menu-list"))return pt;pt=pt.parentElement}return null}function st(mt,pt){for(var an=mt||document.activeElement;an;){if(pt.has(an))return an;an=an.parentElement}return null}function We(mt,pt){var an=Y(mt,!0);return an.filter(function(qt){return pt.has(qt)})}function ge(mt,pt,an){var qt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1;if(!mt)return null;var Yt=We(mt,pt),mn=Yt.length,gn=Yt.findIndex(function(kn){return an===kn});return qt<0?gn===-1?gn=mn-1:gn-=1:qt>0&&(gn+=1),gn=(gn+mn)%mn,Yt[gn]}function X(mt,pt,an,qt,Yt,mn,gn,kn,tr,ft){var vt=g.useRef(),St=g.useRef();St.current=pt;var Mt=function(){q.Z.cancel(vt.current)};return g.useEffect(function(){return function(){Mt()}},[]),function(Nt){var sn=Nt.which;if([].concat(Ct,[ae,yt,Pt,bt]).includes(sn)){var Xt,Cn,Ln,hr=function(){Xt=new Set,Cn=new Map,Ln=new Map;var ea=mn();return ea.forEach(function(ya){var vr=document.querySelector("[data-menu-id='".concat(Z(qt,ya),"']"));vr&&(Xt.add(vr),Ln.set(vr,ya),Cn.set(ya,vr))}),Xt};hr();var qn=Cn.get(pt),Nn=st(qn,Xt),$r=Ln.get(Nn),gr=Le(mt,gn($r,!0).length===1,an,sn);if(!gr&&sn!==Pt&&sn!==bt)return;(Ct.includes(sn)||[Pt,bt].includes(sn))&&Nt.preventDefault();var aa=function(ea){if(ea){var ya=ea,vr=ea.querySelector("a");vr!=null&&vr.getAttribute("href")&&(ya=vr);var zr=Ln.get(ea);kn(zr),Mt(),vt.current=(0,q.Z)(function(){St.current===zr&&ya.focus()})}};if([Pt,bt].includes(sn)||gr.sibling||!Nn){var Pr;!Nn||mt==="inline"?Pr=Yt.current:Pr=Ke(Nn);var Fn,En=We(Pr,Xt);sn===Pt?Fn=En[0]:sn===bt?Fn=En[En.length-1]:Fn=ge(Pr,Xt,Nn,gr.offset),aa(Fn)}else if(gr.inlineTrigger)tr($r);else if(gr.offset>0)tr($r,!0),Mt(),vt.current=(0,q.Z)(function(){hr();var Kr=Nn.getAttribute("aria-controls"),ea=document.getElementById(Kr),ya=ge(ea,Xt);aa(ya)},5);else if(gr.offset<0){var wn=gn($r,!0),ar=wn[wn.length-2],fr=Cn.get(ar);tr(ar,!1),aa(fr)}}ft==null||ft(Nt)}}function W(mt){Promise.resolve().then(mt)}var R="__RC_UTIL_PATH_SPLIT__",N=function(pt){return pt.join(R)},oe=function(pt){return pt.split(R)},ve="rc-menu-more";function te(){var mt=g.useState({}),pt=(0,n.Z)(mt,2),an=pt[1],qt=(0,g.useRef)(new Map),Yt=(0,g.useRef)(new Map),mn=g.useState([]),gn=(0,n.Z)(mn,2),kn=gn[0],tr=gn[1],ft=(0,g.useRef)(0),vt=(0,g.useRef)(!1),St=function(){vt.current||an({})},Mt=(0,g.useCallback)(function(qn,Nn){var $r=N(Nn);Yt.current.set($r,qn),qt.current.set(qn,$r),ft.current+=1;var gr=ft.current;W(function(){gr===ft.current&&St()})},[]),Nt=(0,g.useCallback)(function(qn,Nn){var $r=N(Nn);Yt.current.delete($r),qt.current.delete(qn)},[]),sn=(0,g.useCallback)(function(qn){tr(qn)},[]),Xt=(0,g.useCallback)(function(qn,Nn){var $r=qt.current.get(qn)||"",gr=oe($r);return Nn&&kn.includes(gr[0])&&gr.unshift(ve),gr},[kn]),Cn=(0,g.useCallback)(function(qn,Nn){return qn.some(function($r){var gr=Xt($r,!0);return gr.includes(Nn)})},[Xt]),Ln=function(){var Nn=(0,s.Z)(qt.current.keys());return kn.length&&Nn.push(ve),Nn},hr=(0,g.useCallback)(function(qn){var Nn="".concat(qt.current.get(qn)).concat(R),$r=new Set;return(0,s.Z)(Yt.current.keys()).forEach(function(gr){gr.startsWith(Nn)&&$r.add(Yt.current.get(gr))}),$r},[]);return g.useEffect(function(){return function(){vt.current=!0}},[]),{registerPath:Mt,unregisterPath:Nt,refreshOverflowKeys:sn,isSubPathKey:Cn,getKeyPath:Xt,getKeys:Ln,getSubPathKeys:hr}}function me(mt){var pt=g.useRef(mt);pt.current=mt;var an=g.useCallback(function(){for(var qt,Yt=arguments.length,mn=new Array(Yt),gn=0;gn1&&(hr.motionAppear=!1);var qn=hr.onVisibleChanged;return hr.onVisibleChanged=function(Nn){return!Mt.current&&!Nn&&Cn(!0),qn==null?void 0:qn(Nn)},Xt?null:g.createElement(L,{mode:mn,locked:!Mt.current},g.createElement(De.ZP,(0,a.Z)({visible:Ln},hr,{forceRender:tr,removeOnLeave:!1,leavedClassName:"".concat(kn,"-hidden")}),function(Nn){var $r=Nn.className,gr=Nn.style;return g.createElement(Be,{id:pt,className:$r,style:gr},Yt)}))}var Ft=["style","className","title","eventKey","warnKey","disabled","internalPopupClose","children","itemIcon","expandIcon","popupClassName","popupOffset","onClick","onMouseEnter","onMouseLeave","onTitleClick","onTitleMouseEnter","onTitleMouseLeave"],Xe=["active"],at=function(pt){var an,qt=pt.style,Yt=pt.className,mn=pt.title,gn=pt.eventKey,kn=pt.warnKey,tr=pt.disabled,ft=pt.internalPopupClose,vt=pt.children,St=pt.itemIcon,Mt=pt.expandIcon,Nt=pt.popupClassName,sn=pt.popupOffset,Xt=pt.onClick,Cn=pt.onMouseEnter,Ln=pt.onMouseLeave,hr=pt.onTitleClick,qn=pt.onTitleMouseEnter,Nn=pt.onTitleMouseLeave,$r=(0,c.Z)(pt,Ft),gr=B(gn),aa=g.useContext(F),Pr=aa.prefixCls,Fn=aa.mode,En=aa.openKeys,wn=aa.disabled,ar=aa.overflowDisabled,fr=aa.activeKey,Kr=aa.selectedKeys,ea=aa.itemIcon,ya=aa.expandIcon,vr=aa.onItemClick,zr=aa.onOpenChange,Oa=aa.onActive,va=g.useContext(Q),Vn=va._internalRenderSubMenuItem,Bn=g.useContext(ee),pr=Bn.isSubPathKey,qr=U(),Er="".concat(Pr,"-submenu"),At=wn||tr,tn=g.useRef(),yn=g.useRef(),lo=St||ea,Ao=Mt||ya,Ka=En.includes(gn),Qa=!ar&&Ka,qa=pr(Kr,gn),$o=fe(gn,At,qn,Nn),_o=$o.active,yo=(0,c.Z)($o,Xe),ct=g.useState(!1),xt=(0,n.Z)(ct,2),Ce=xt[0],un=xt[1],xn=function(kt){At||un(kt)},Hn=function(kt){xn(!0),Cn==null||Cn({key:gn,domEvent:kt})},Kn=function(kt){xn(!1),Ln==null||Ln({key:gn,domEvent:kt})},Sr=g.useMemo(function(){return _o||(Fn!=="inline"?Ce||pr([fr],gn):!1)},[Fn,_o,fr,Ce,gn,pr]),kr=_e(qr.length),La=function(kt){At||(hr==null||hr({key:gn,domEvent:kt}),Fn==="inline"&&zr(gn,!Ka))},oa=me(function(no){Xt==null||Xt(Qe(no)),vr(no)}),Xr=function(kt){Fn!=="inline"&&zr(gn,kt)},ta=function(){Oa(gn)},xr=gr&&"".concat(gr,"-popup"),Zr=g.createElement("div",(0,a.Z)({role:"menuitem",style:kr,className:"".concat(Er,"-title"),tabIndex:At?null:-1,ref:tn,title:typeof mn=="string"?mn:null,"data-menu-id":ar&&gr?null:gr,"aria-expanded":Qa,"aria-haspopup":!0,"aria-controls":xr,"aria-disabled":At,onClick:La,onFocus:ta},yo),mn,g.createElement(Pe,{icon:Fn!=="horizontal"?Ao:null,props:(0,o.Z)((0,o.Z)({},pt),{},{isOpen:Qa,isSubMenu:!0})},g.createElement("i",{className:"".concat(Er,"-arrow")}))),ga=g.useRef(Fn);if(Fn!=="inline"&&qr.length>1?ga.current="vertical":ga.current=Fn,!ar){var ka=ga.current;Zr=g.createElement($e,{mode:ka,prefixCls:Er,visible:!ft&&Qa&&Fn!=="inline",popupClassName:Nt,popupOffset:sn,popup:g.createElement(L,{mode:ka==="horizontal"?"vertical":ka},g.createElement(Be,{id:xr,ref:yn},vt)),disabled:At,onVisibleChange:Xr},Zr)}var mo=g.createElement(h.Z.Item,(0,a.Z)({role:"none"},$r,{component:"li",style:qt,className:d()(Er,"".concat(Er,"-").concat(Fn),Yt,(an={},(0,t.Z)(an,"".concat(Er,"-open"),Qa),(0,t.Z)(an,"".concat(Er,"-active"),Sr),(0,t.Z)(an,"".concat(Er,"-selected"),qa),(0,t.Z)(an,"".concat(Er,"-disabled"),At),an)),onMouseEnter:Hn,onMouseLeave:Kn}),Zr,!ar&&g.createElement(jt,{id:xr,open:Qa,keyPath:qr},vt));return Vn&&(mo=Vn(mo,pt,{selected:qa,active:Sr,open:Qa,disabled:At})),g.createElement(L,{onItemClick:oa,mode:Fn==="horizontal"?"vertical":Fn,itemIcon:lo,expandIcon:Ao},mo)};function Bt(mt){var pt=mt.eventKey,an=mt.children,qt=U(pt),Yt=ot(an,qt),mn=P();g.useEffect(function(){if(mn)return mn.registerPath(pt,qt),function(){mn.unregisterPath(pt,qt)}},[qt]);var gn;return mn?gn=Yt:gn=g.createElement(at,mt,Yt),g.createElement(K.Provider,{value:qt},gn)}var Zt=e(38790),Qt=["className","title","eventKey","children"],rn=["children"],hn=function(pt){var an=pt.className,qt=pt.title,Yt=pt.eventKey,mn=pt.children,gn=(0,c.Z)(pt,Qt),kn=g.useContext(F),tr=kn.prefixCls,ft="".concat(tr,"-item-group");return g.createElement("li",(0,a.Z)({role:"presentation"},gn,{onClick:function(St){return St.stopPropagation()},className:d()(ft,an)}),g.createElement("div",{role:"presentation",className:"".concat(ft,"-title"),title:typeof qt=="string"?qt:void 0},qt),g.createElement("ul",{role:"group",className:"".concat(ft,"-list")},mn))};function on(mt){var pt=mt.children,an=(0,c.Z)(mt,rn),qt=U(an.eventKey),Yt=ot(pt,qt),mn=P();return mn?Yt:g.createElement(hn,(0,Ee.Z)(an,["warnKey"]),Yt)}function Rn(mt){var pt=mt.className,an=mt.style,qt=g.useContext(F),Yt=qt.prefixCls,mn=P();return mn?null:g.createElement("li",{className:d()("".concat(Yt,"-item-divider"),pt),style:an})}var zn=["label","children","key","type"];function lr(mt){return(mt||[]).map(function(pt,an){if(pt&&(0,Zt.Z)(pt)==="object"){var qt=pt,Yt=qt.label,mn=qt.children,gn=qt.key,kn=qt.type,tr=(0,c.Z)(qt,zn),ft=gn!=null?gn:"tmp-".concat(an);return mn||kn==="group"?kn==="group"?g.createElement(on,(0,a.Z)({key:ft},tr,{title:Yt}),lr(mn)):g.createElement(Bt,(0,a.Z)({key:ft},tr,{title:Yt}),lr(mn)):kn==="divider"?g.createElement(Rn,(0,a.Z)({key:ft},tr)):g.createElement(Oe,(0,a.Z)({key:ft},tr),Yt)}return null}).filter(function(pt){return pt})}function ur(mt,pt,an){var qt=mt;return pt&&(qt=lr(pt)),ot(qt,an)}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"],Kt=[],Vt=g.forwardRef(function(mt,pt){var an,qt,Yt=mt,mn=Yt.prefixCls,gn=mn===void 0?"rc-menu":mn,kn=Yt.rootClassName,tr=Yt.style,ft=Yt.className,vt=Yt.tabIndex,St=vt===void 0?0:vt,Mt=Yt.items,Nt=Yt.children,sn=Yt.direction,Xt=Yt.id,Cn=Yt.mode,Ln=Cn===void 0?"vertical":Cn,hr=Yt.inlineCollapsed,qn=Yt.disabled,Nn=Yt.disabledOverflow,$r=Yt.subMenuOpenDelay,gr=$r===void 0?.1:$r,aa=Yt.subMenuCloseDelay,Pr=aa===void 0?.1:aa,Fn=Yt.forceSubMenuRender,En=Yt.defaultOpenKeys,wn=Yt.openKeys,ar=Yt.activeKey,fr=Yt.defaultActiveFirst,Kr=Yt.selectable,ea=Kr===void 0?!0:Kr,ya=Yt.multiple,vr=ya===void 0?!1:ya,zr=Yt.defaultSelectedKeys,Oa=Yt.selectedKeys,va=Yt.onSelect,Vn=Yt.onDeselect,Bn=Yt.inlineIndent,pr=Bn===void 0?24:Bn,qr=Yt.motion,Er=Yt.defaultMotions,At=Yt.triggerSubMenuAction,tn=At===void 0?"hover":At,yn=Yt.builtinPlacements,lo=Yt.itemIcon,Ao=Yt.expandIcon,Ka=Yt.overflowedIndicator,Qa=Ka===void 0?"...":Ka,qa=Yt.overflowedIndicatorPopupClassName,$o=Yt.getPopupContainer,_o=Yt.onClick,yo=Yt.onOpenChange,ct=Yt.onKeyDown,xt=Yt.openAnimation,Ce=Yt.openTransitionName,un=Yt._internalRenderMenuItem,xn=Yt._internalRenderSubMenuItem,Hn=(0,c.Z)(Yt,zt),Kn=g.useMemo(function(){return ur(Nt,Mt,Kt)},[Nt,Mt]),Sr=g.useState(!1),kr=(0,n.Z)(Sr,2),La=kr[0],oa=kr[1],Xr=g.useRef(),ta=Se(Xt),xr=sn==="rtl",Zr=(0,p.Z)(En,{value:wn,postState:function(Ya){return Ya||Kt}}),ga=(0,n.Z)(Zr,2),ka=ga[0],mo=ga[1],no=function(Ya){var Ua=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;function Wo(){mo(Ya),yo==null||yo(Ya)}Ua?(0,S.flushSync)(Wo):Wo()},kt=g.useState(ka),Sn=(0,n.Z)(kt,2),Dn=Sn[0],Qn=Sn[1],br=g.useRef(!1),Hr=g.useMemo(function(){return(Ln==="inline"||Ln==="vertical")&&hr?["vertical",hr]:[Ln,!1]},[Ln,hr]),Jr=(0,n.Z)(Hr,2),ir=Jr[0],Wr=Jr[1],ua=ir==="inline",Na=g.useState(ir),wa=(0,n.Z)(Na,2),oo=wa[0],Oo=wa[1],Ro=g.useState(Wr),eo=(0,n.Z)(Ro,2),jo=eo[0],bo=eo[1];g.useEffect(function(){Oo(ir),bo(Wr),br.current&&(ua?mo(Dn):no(Kt))},[ir,Wr]);var Da=g.useState(0),Ja=(0,n.Z)(Da,2),Po=Ja[0],oi=Ja[1],ii=Po>=Kn.length-1||oo!=="horizontal"||Nn;g.useEffect(function(){ua&&Qn(ka)},[ka]),g.useEffect(function(){return br.current=!0,function(){br.current=!1}},[]);var po=te(),Oi=po.registerPath,Ni=po.unregisterPath,ni=po.refreshOverflowKeys,Di=po.isSubPathKey,Ri=po.getKeyPath,ji=po.getKeys,wi=po.getSubPathKeys,Ui=g.useMemo(function(){return{registerPath:Oi,unregisterPath:Ni}},[Oi,Ni]),zi=g.useMemo(function(){return{isSubPathKey:Di}},[Di]);g.useEffect(function(){ni(ii?Kt:Kn.slice(Po+1).map(function(Ba){return Ba.key}))},[Po,ii]);var vo=(0,p.Z)(ar||fr&&((an=Kn[0])===null||an===void 0?void 0:an.key),{value:ar}),ro=(0,n.Z)(vo,2),ci=ro[0],ai=ro[1],Uo=me(function(Ba){ai(Ba)}),Yo=me(function(){ai(void 0)});(0,g.useImperativeHandle)(pt,function(){return{list:Xr.current,focus:function(Ya){var Ua,Wo=ci!=null?ci:(Ua=Kn.find(function(ys){return!ys.props.disabled}))===null||Ua===void 0?void 0:Ua.key;if(Wo){var Xo,Jo,ki;(Xo=Xr.current)===null||Xo===void 0||(Jo=Xo.querySelector("li[data-menu-id='".concat(Z(ta,Wo),"']")))===null||Jo===void 0||(ki=Jo.focus)===null||ki===void 0||ki.call(Jo,Ya)}}}});var xi=(0,p.Z)(zr||[],{value:Oa,postState:function(Ya){return Array.isArray(Ya)?Ya:Ya==null?Kt:[Ya]}}),Hi=(0,n.Z)(xi,2),_i=Hi[0],Es=Hi[1],hs=function(Ya){if(ea){var Ua=Ya.key,Wo=_i.includes(Ua),Xo;vr?Wo?Xo=_i.filter(function(ki){return ki!==Ua}):Xo=[].concat((0,s.Z)(_i),[Ua]):Xo=[Ua],Es(Xo);var Jo=(0,o.Z)((0,o.Z)({},Ya),{},{selectedKeys:Xo});Wo?Vn==null||Vn(Jo):va==null||va(Jo)}!vr&&ka.length&&oo!=="inline"&&no(Kt)},Ks=me(function(Ba){_o==null||_o(Qe(Ba)),hs(Ba)}),Wl=me(function(Ba,Ya){var Ua=ka.filter(function(Xo){return Xo!==Ba});if(Ya)Ua.push(Ba);else if(oo!=="inline"){var Wo=wi(Ba);Ua=Ua.filter(function(Xo){return!Wo.has(Xo)})}(0,j.Z)(ka,Ua,!0)||no(Ua,!0)}),Yn=function(Ya,Ua){var Wo=Ua!=null?Ua:!ka.includes(Ya);Wl(Ya,Wo)},Vr=X(oo,ci,xr,ta,Xr,ji,Ri,ai,Yn,ct);g.useEffect(function(){oa(!0)},[]);var Or=g.useMemo(function(){return{_internalRenderMenuItem:un,_internalRenderSubMenuItem:xn}},[un,xn]),Ur=oo!=="horizontal"||Nn?Kn:Kn.map(function(Ba,Ya){return g.createElement(L,{key:Ba.key,overflowDisabled:Ya>Po},Ba)}),na=g.createElement(h.Z,(0,a.Z)({id:Xt,ref:Xr,prefixCls:"".concat(gn,"-overflow"),component:"ul",itemComponent:Oe,className:d()(gn,"".concat(gn,"-root"),"".concat(gn,"-").concat(oo),ft,(qt={},(0,t.Z)(qt,"".concat(gn,"-inline-collapsed"),jo),(0,t.Z)(qt,"".concat(gn,"-rtl"),xr),qt),kn),dir:sn,style:tr,role:"menu",tabIndex:St,data:Ur,renderRawItem:function(Ya){return Ya},renderRawRest:function(Ya){var Ua=Ya.length,Wo=Ua?Kn.slice(-Ua):null;return g.createElement(Bt,{eventKey:ve,title:Qa,disabled:ii,internalPopupClose:Ua===0,popupClassName:qa},Wo)},maxCount:oo!=="horizontal"||Nn?h.Z.INVALIDATE:h.Z.RESPONSIVE,ssr:"full","data-menu-list":!0,onVisibleChange:function(Ya){oi(Ya)},onKeyDown:Vr},Hn));return g.createElement(Q.Provider,{value:Or},g.createElement(x.Provider,{value:ta},g.createElement(L,{prefixCls:gn,rootClassName:kn,mode:oo,openKeys:ka,rtl:xr,disabled:qn,motion:La?qr:null,defaultMotions:La?Er:null,activeKey:ci,onActive:Uo,onInactive:Yo,selectedKeys:_i,inlineIndent:pr,subMenuOpenDelay:gr,subMenuCloseDelay:Pr,forceSubMenuRender:Fn,builtinPlacements:yn,triggerSubMenuAction:tn,getPopupContainer:$o,itemIcon:lo,expandIcon:Ao,onItemClick:Ks,onOpenChange:Wl},g.createElement(ee.Provider,{value:zi},na),g.createElement("div",{style:{display:"none"},"aria-hidden":!0},g.createElement($.Provider,{value:Ui},Kn)))))}),dn=Vt,pn=dn;pn.Item=Oe,pn.SubMenu=Bt,pn.ItemGroup=on,pn.Divider=Rn;var en=pn},17598:function(M,b,e){"use strict";e.d(b,{V4:function(){return fe},zt:function(){return S},ZP:function(){return _e}});var a=e(37734),t=e(57370),o=e(28314),s=e(38790),n=e(87608),c=e.n(n),l=e(69188),d=e(21319),h=e(58757),p=e(47075),y=["children"],g=h.createContext({});function S(Pe){var ze=Pe.children,Qe=(0,p.Z)(Pe,y);return h.createElement(g.Provider,{value:Qe},ze)}var j=e(60412),x=e(14346),Z=e(87498),B=e(73726),w=function(Pe){(0,Z.Z)(Qe,Pe);var ze=(0,B.Z)(Qe);function Qe(){return(0,j.Z)(this,Qe),ze.apply(this,arguments)}return(0,x.Z)(Qe,[{key:"render",value:function(){return this.props.children}}]),Qe}(h.Component),T=w,F=e(13989),A="none",L="appear",O="enter",$="leave",P="none",K="prepare",U="start",ee="active",le="end",Q="prepared",G=e(19075);function q(Pe,ze){var Qe={};return Qe[Pe.toLowerCase()]=ze.toLowerCase(),Qe["Webkit".concat(Pe)]="webkit".concat(ze),Qe["Moz".concat(Pe)]="moz".concat(ze),Qe["ms".concat(Pe)]="MS".concat(ze),Qe["O".concat(Pe)]="o".concat(ze.toLowerCase()),Qe}function I(Pe,ze){var Qe={animationend:q("Animation","AnimationEnd"),transitionend:q("Transition","TransitionEnd")};return Pe&&("AnimationEvent"in ze||delete Qe.animationend.animation,"TransitionEvent"in ze||delete Qe.transitionend.transition),Qe}var H=I((0,G.Z)(),typeof window!="undefined"?window:{}),Y={};if((0,G.Z)()){var D=document.createElement("div");Y=D.style}var _={};function ue(Pe){if(_[Pe])return _[Pe];var ze=H[Pe];if(ze)for(var Qe=Object.keys(ze),gt=Qe.length,ut=0;ut1&&arguments[1]!==void 0?arguments[1]:2;ze();var rt=(0,bt.Z)(function(){ut<=1?gt({isCanceled:function(){return rt!==Pe.current}}):Qe(gt,ut-1)});Pe.current=rt}return h.useEffect(function(){return function(){ze()}},[]),[Qe,ze]},Le=[K,U,ee,le],Ke=[K,Q],st=!1,We=!0;function ge(Pe){return Pe===ee||Pe===le}var X=function(Pe,ze,Qe){var gt=(0,F.Z)(P),ut=(0,o.Z)(gt,2),rt=ut[0],qe=ut[1],Ve=Ct(),tt=(0,o.Z)(Ve,2),Oe=tt[0],Me=tt[1];function Ne(){qe(K,!0)}var Te=ze?Ke:Le;return Pt(function(){if(rt!==P&&rt!==le){var Be=Te.indexOf(rt),nt=Te[Be+1],ot=Qe(rt);ot===st?qe(nt,!0):nt&&Oe(function(wt){function Et(){wt.isCanceled()||qe(nt,!0)}ot===!0?Et():Promise.resolve(ot).then(Et)})}},[Pe,rt]),h.useEffect(function(){return function(){Me()}},[]),[Ne,rt]};function W(Pe,ze,Qe,gt){var ut=gt.motionEnter,rt=ut===void 0?!0:ut,qe=gt.motionAppear,Ve=qe===void 0?!0:qe,tt=gt.motionLeave,Oe=tt===void 0?!0:tt,Me=gt.motionDeadline,Ne=gt.motionLeaveImmediately,Te=gt.onAppearPrepare,Be=gt.onEnterPrepare,nt=gt.onLeavePrepare,ot=gt.onAppearStart,wt=gt.onEnterStart,Et=gt.onLeaveStart,nn=gt.onAppearActive,$t=gt.onEnterActive,fn=gt.onLeaveActive,ln=gt.onAppearEnd,Wt=gt.onEnterEnd,$e=gt.onLeaveEnd,De=gt.onVisibleChanged,jt=(0,F.Z)(),Ft=(0,o.Z)(jt,2),Xe=Ft[0],at=Ft[1],Bt=(0,F.Z)(A),Zt=(0,o.Z)(Bt,2),Qt=Zt[0],rn=Zt[1],hn=(0,F.Z)(null),on=(0,o.Z)(hn,2),Rn=on[0],zn=on[1],lr=(0,h.useRef)(!1),ur=(0,h.useRef)(null);function zt(){return Qe()}var Kt=(0,h.useRef)(!1);function Vt(){rn(A,!0),zn(null,!0)}function dn(vt){var St=zt();if(!(vt&&!vt.deadline&&vt.target!==St)){var Mt=Kt.current,Nt;Qt===L&&Mt?Nt=ln==null?void 0:ln(St,vt):Qt===O&&Mt?Nt=Wt==null?void 0:Wt(St,vt):Qt===$&&Mt&&(Nt=$e==null?void 0:$e(St,vt)),Qt!==A&&Mt&&Nt!==!1&&Vt()}}var pn=ae(dn),en=(0,o.Z)(pn,1),mt=en[0],pt=function(St){var Mt,Nt,sn;switch(St){case L:return Mt={},(0,a.Z)(Mt,K,Te),(0,a.Z)(Mt,U,ot),(0,a.Z)(Mt,ee,nn),Mt;case O:return Nt={},(0,a.Z)(Nt,K,Be),(0,a.Z)(Nt,U,wt),(0,a.Z)(Nt,ee,$t),Nt;case $:return sn={},(0,a.Z)(sn,K,nt),(0,a.Z)(sn,U,Et),(0,a.Z)(sn,ee,fn),sn;default:return{}}},an=h.useMemo(function(){return pt(Qt)},[Qt]),qt=X(Qt,!Pe,function(vt){if(vt===K){var St=an[K];return St?St(zt()):st}if(gn in an){var Mt;zn(((Mt=an[gn])===null||Mt===void 0?void 0:Mt.call(an,zt(),null))||null)}return gn===ee&&(mt(zt()),Me>0&&(clearTimeout(ur.current),ur.current=setTimeout(function(){dn({deadline:!0})},Me))),gn===Q&&Vt(),We}),Yt=(0,o.Z)(qt,2),mn=Yt[0],gn=Yt[1],kn=ge(gn);Kt.current=kn,Pt(function(){at(ze);var vt=lr.current;lr.current=!0;var St;!vt&&ze&&Ve&&(St=L),vt&&ze&&rt&&(St=O),(vt&&!ze&&Oe||!vt&&Ne&&!ze&&Oe)&&(St=$);var Mt=pt(St);St&&(Pe||Mt[K])?(rn(St),mn()):rn(A)},[ze]),(0,h.useEffect)(function(){(Qt===L&&!Ve||Qt===O&&!rt||Qt===$&&!Oe)&&rn(A)},[Ve,rt,Oe]),(0,h.useEffect)(function(){return function(){lr.current=!1,clearTimeout(ur.current)}},[]);var tr=h.useRef(!1);(0,h.useEffect)(function(){Xe&&(tr.current=!0),Xe!==void 0&&Qt===A&&((tr.current||Xe)&&(De==null||De(Xe)),tr.current=!0)},[Xe,Qt]);var ft=Rn;return an[K]&&gn===U&&(ft=(0,t.Z)({transition:"none"},ft)),[Qt,gn,ft,Xe!=null?Xe:ze]}function R(Pe){var ze=Pe;(0,s.Z)(Pe)==="object"&&(ze=Pe.transitionSupport);function Qe(ut,rt){return!!(ut.motionName&&ze&&rt!==!1)}var gt=h.forwardRef(function(ut,rt){var qe=ut.visible,Ve=qe===void 0?!0:qe,tt=ut.removeOnLeave,Oe=tt===void 0?!0:tt,Me=ut.forceRender,Ne=ut.children,Te=ut.motionName,Be=ut.leavedClassName,nt=ut.eventProps,ot=h.useContext(g),wt=ot.motion,Et=Qe(ut,wt),nn=(0,h.useRef)(),$t=(0,h.useRef)();function fn(){try{return nn.current instanceof HTMLElement?nn.current:(0,l.Z)($t.current)}catch(zn){return null}}var ln=W(Et,Ve,fn,ut),Wt=(0,o.Z)(ln,4),$e=Wt[0],De=Wt[1],jt=Wt[2],Ft=Wt[3],Xe=h.useRef(Ft);Ft&&(Xe.current=!0);var at=h.useCallback(function(zn){nn.current=zn,(0,d.mH)(rt,zn)},[rt]),Bt,Zt=(0,t.Z)((0,t.Z)({},nt),{},{visible:Ve});if(!Ne)Bt=null;else if($e===A)Ft?Bt=Ne((0,t.Z)({},Zt),at):!Oe&&Xe.current&&Be?Bt=Ne((0,t.Z)((0,t.Z)({},Zt),{},{className:Be}),at):Me||!Oe&&!Be?Bt=Ne((0,t.Z)((0,t.Z)({},Zt),{},{style:{display:"none"}}),at):Bt=null;else{var Qt,rn;De===K?rn="prepare":ge(De)?rn="active":De===U&&(rn="start");var hn=et(Te,"".concat($e,"-").concat(rn));Bt=Ne((0,t.Z)((0,t.Z)({},Zt),{},{className:c()(et(Te,$e),(Qt={},(0,a.Z)(Qt,hn,hn&&rn),(0,a.Z)(Qt,Te,typeof Te=="string"),Qt)),style:jt}),at)}if(h.isValidElement(Bt)&&(0,d.Yr)(Bt)){var on=Bt,Rn=on.ref;Rn||(Bt=h.cloneElement(Bt,{ref:at}))}return h.createElement(T,{ref:$t},Bt)});return gt.displayName="CSSMotion",gt}var N=R(he),oe=e(60698),ve=e(86717),te="add",me="keep",we="remove",xe="removed";function Se(Pe){var ze;return Pe&&(0,s.Z)(Pe)==="object"&&"key"in Pe?ze=Pe:ze={key:Pe},(0,t.Z)((0,t.Z)({},ze),{},{key:String(ze.key)})}function ke(){var Pe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return Pe.map(Se)}function ne(){var Pe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],ze=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],Qe=[],gt=0,ut=ze.length,rt=ke(Pe),qe=ke(ze);rt.forEach(function(Oe){for(var Me=!1,Ne=gt;Ne1});return tt.forEach(function(Oe){Qe=Qe.filter(function(Me){var Ne=Me.key,Te=Me.status;return Ne!==Oe||Te!==we}),Qe.forEach(function(Me){Me.key===Oe&&(Me.status=me)})}),Qe}var re=["component","children","onVisibleChanged","onAllRemoved"],se=["status"],Ee=["eventProps","visible","children","motionName","motionAppear","motionEnter","motionLeave","motionLeaveImmediately","motionDeadline","removeOnLeave","leavedClassName","onAppearStart","onAppearActive","onAppearEnd","onEnterStart","onEnterActive","onEnterEnd","onLeaveStart","onLeaveActive","onLeaveEnd"];function Re(Pe){var ze=arguments.length>1&&arguments[1]!==void 0?arguments[1]:N,Qe=function(gt){(0,Z.Z)(rt,gt);var ut=(0,B.Z)(rt);function rt(){var qe;(0,j.Z)(this,rt);for(var Ve=arguments.length,tt=new Array(Ve),Oe=0;Oe0){var ae=setTimeout(function(){Fe()},ee*1e3);return function(){clearTimeout(ae)}}},[ee,ce,_]);var et="".concat($,"-notice");return s.createElement("div",(0,n.Z)({},H,{ref:O,className:p()(et,K,(0,y.Z)({},"".concat(et,"-closable"),G)),style:P,onMouseEnter:function(){he(!0)},onMouseLeave:function(){he(!1)},onClick:Y}),s.createElement("div",{className:"".concat(et,"-content")},Q),G&&s.createElement("a",{tabIndex:0,className:"".concat(et,"-close"),onKeyDown:Je,onClick:function(yt){yt.preventDefault(),yt.stopPropagation(),Fe()}},I))}),j=S,x=s.forwardRef(function(L,O){var $=L.prefixCls,P=$===void 0?"rc-notification":$,K=L.container,U=L.motion,ee=L.maxCount,le=L.className,Q=L.style,G=L.onAllRemoved,q=s.useState([]),I=(0,t.Z)(q,2),H=I[0],Y=I[1],D=function(ae){var yt,Pt=H.find(function(bt){return bt.key===ae});Pt==null||(yt=Pt.onClose)===null||yt===void 0||yt.call(Pt),Y(function(bt){return bt.filter(function(Ct){return Ct.key!==ae})})};s.useImperativeHandle(O,function(){return{open:function(ae){Y(function(yt){var Pt=(0,a.Z)(yt),bt=Pt.findIndex(function(Ke){return Ke.key===ae.key}),Ct=(0,c.Z)({},ae);if(bt>=0){var Le;Ct.times=(((Le=yt[bt])===null||Le===void 0?void 0:Le.times)||0)+1,Pt[bt]=Ct}else Ct.times=0,Pt.push(Ct);return ee>0&&Pt.length>ee&&(Pt=Pt.slice(-ee)),Pt})},close:function(ae){D(ae)},destroy:function(){Y([])}}});var _=s.useState({}),ue=(0,t.Z)(_,2),be=ue[0],ce=ue[1];s.useEffect(function(){var et={};H.forEach(function(ae){var yt=ae.placement,Pt=yt===void 0?"topRight":yt;Pt&&(et[Pt]=et[Pt]||[],et[Pt].push(ae))}),Object.keys(be).forEach(function(ae){et[ae]=et[ae]||[]}),ce(et)},[H]);var he=function(ae){ce(function(yt){var Pt=(0,c.Z)({},yt),bt=Pt[ae]||[];return bt.length||delete Pt[ae],Pt})},Fe=s.useRef(!1);if(s.useEffect(function(){Object.keys(be).length>0?Fe.current=!0:Fe.current&&(G==null||G(),Fe.current=!1)},[be]),!K)return null;var Je=Object.keys(be);return(0,l.createPortal)(s.createElement(s.Fragment,null,Je.map(function(et){var ae=be[et],yt=ae.map(function(bt){return{config:bt,key:bt.key}}),Pt=typeof U=="function"?U(et):U;return s.createElement(d.V4,(0,n.Z)({key:et,className:p()(P,"".concat(P,"-").concat(et),le==null?void 0:le(et)),style:Q==null?void 0:Q(et),keys:yt,motionAppear:!0},Pt,{onAllRemoved:function(){he(et)}}),function(bt,Ct){var Le=bt.config,Ke=bt.className,st=bt.style,We=Le.key,ge=Le.times,X=Le.className,W=Le.style;return s.createElement(j,(0,n.Z)({},Le,{ref:Ct,prefixCls:P,className:p()(Ke,X),style:(0,c.Z)((0,c.Z)({},st),W),times:ge,key:We,eventKey:We,onNoticeClose:D}))})})),K)}),Z=x,B=["getContainer","motion","prefixCls","maxCount","className","style","onAllRemoved"],w=function(){return document.body},T=0;function F(){for(var L={},O=arguments.length,$=new Array(O),P=0;P0&&arguments[0]!==void 0?arguments[0]:{},O=L.getContainer,$=O===void 0?w:O,P=L.motion,K=L.prefixCls,U=L.maxCount,ee=L.className,le=L.style,Q=L.onAllRemoved,G=(0,o.Z)(L,B),q=s.useState(),I=(0,t.Z)(q,2),H=I[0],Y=I[1],D=s.useRef(),_=s.createElement(Z,{container:H,ref:D,prefixCls:K,motion:P,maxCount:U,className:ee,style:le,onAllRemoved:Q}),ue=s.useState([]),be=(0,t.Z)(ue,2),ce=be[0],he=be[1],Fe=s.useMemo(function(){return{open:function(et){var ae=F(G,et);(ae.key===null||ae.key===void 0)&&(ae.key="rc-notification-".concat(T),T+=1),he(function(yt){return[].concat((0,a.Z)(yt),[{type:"open",config:ae}])})},close:function(et){he(function(ae){return[].concat((0,a.Z)(ae),[{type:"close",key:et}])})},destroy:function(){he(function(et){return[].concat((0,a.Z)(et),[{type:"destroy"}])})}}},[]);return s.useEffect(function(){Y($())}),s.useEffect(function(){D.current&&ce.length&&(ce.forEach(function(Je){switch(Je.type){case"open":D.current.open(Je.config);break;case"close":D.current.close(Je.key);break;case"destroy":D.current.destroy();break}}),he(function(Je){return Je.filter(function(et){return!ce.includes(et)})}))},[ce]),[Fe,_]}},9257:function(M,b,e){"use strict";e.d(b,{Z:function(){return Y}});var a=e(60698),t=e(57370),o=e(28314),s=e(47075),n=e(58757),c=e(87608),l=e.n(c),d=e(19425),h=e(81334),p=["prefixCls","invalidate","item","renderItem","responsive","responsiveDisabled","registerSize","itemKey","className","style","children","display","order","component"],y=void 0;function g(D,_){var ue=D.prefixCls,be=D.invalidate,ce=D.item,he=D.renderItem,Fe=D.responsive,Je=D.responsiveDisabled,et=D.registerSize,ae=D.itemKey,yt=D.className,Pt=D.style,bt=D.children,Ct=D.display,Le=D.order,Ke=D.component,st=Ke===void 0?"div":Ke,We=(0,s.Z)(D,p),ge=Fe&&!Ct;function X(ve){et(ae,ve)}n.useEffect(function(){return function(){X(null)}},[]);var W=he&&ce!==y?he(ce):bt,R;be||(R={opacity:ge?0:1,height:ge?0:y,overflowY:ge?"hidden":y,order:Fe?Le:y,pointerEvents:ge?"none":y,position:ge?"absolute":y});var N={};ge&&(N["aria-hidden"]=!0);var oe=n.createElement(st,(0,a.Z)({className:l()(!be&&ue,yt),style:(0,t.Z)((0,t.Z)({},R),Pt)},N,We,{ref:_}),W);return Fe&&(oe=n.createElement(d.Z,{onResize:function(te){var me=te.offsetWidth;X(me)},disabled:Je},oe)),oe}var S=n.forwardRef(g);S.displayName="Item";var j=S,x=e(51729),Z=e(26736),B=e(61834);function w(D){if(typeof MessageChannel=="undefined")(0,B.Z)(D);else{var _=new MessageChannel;_.port1.onmessage=function(){return D()},_.port2.postMessage(void 0)}}function T(){var D=n.useRef(null),_=function(be){D.current||(D.current=[],w(function(){(0,Z.unstable_batchedUpdates)(function(){D.current.forEach(function(ce){ce()}),D.current=null})})),D.current.push(be)};return _}function F(D,_){var ue=n.useState(_),be=(0,o.Z)(ue,2),ce=be[0],he=be[1],Fe=(0,x.Z)(function(Je){D(function(){he(Je)})});return[ce,Fe]}var A=n.createContext(null),L=["component"],O=["className"],$=["className"],P=function(_,ue){var be=n.useContext(A);if(!be){var ce=_.component,he=ce===void 0?"div":ce,Fe=(0,s.Z)(_,L);return n.createElement(he,(0,a.Z)({},Fe,{ref:ue}))}var Je=be.className,et=(0,s.Z)(be,O),ae=_.className,yt=(0,s.Z)(_,$);return n.createElement(A.Provider,{value:null},n.createElement(j,(0,a.Z)({ref:ue,className:l()(Je,ae)},et,yt)))},K=n.forwardRef(P);K.displayName="RawItem";var U=K,ee=["prefixCls","data","renderItem","renderRawItem","itemKey","itemWidth","ssr","style","className","maxCount","renderRest","renderRawRest","suffix","component","itemComponent","onVisibleChange"],le="responsive",Q="invalidate";function G(D){return"+ ".concat(D.length," ...")}function q(D,_){var ue=D.prefixCls,be=ue===void 0?"rc-overflow":ue,ce=D.data,he=ce===void 0?[]:ce,Fe=D.renderItem,Je=D.renderRawItem,et=D.itemKey,ae=D.itemWidth,yt=ae===void 0?10:ae,Pt=D.ssr,bt=D.style,Ct=D.className,Le=D.maxCount,Ke=D.renderRest,st=D.renderRawRest,We=D.suffix,ge=D.component,X=ge===void 0?"div":ge,W=D.itemComponent,R=D.onVisibleChange,N=(0,s.Z)(D,ee),oe=Pt==="full",ve=T(),te=F(ve,null),me=(0,o.Z)(te,2),we=me[0],xe=me[1],Se=we||0,ke=F(ve,new Map),ne=(0,o.Z)(ke,2),re=ne[0],se=ne[1],Ee=F(ve,0),Re=(0,o.Z)(Ee,2),fe=Re[0],_e=Re[1],Pe=F(ve,0),ze=(0,o.Z)(Pe,2),Qe=ze[0],gt=ze[1],ut=F(ve,0),rt=(0,o.Z)(ut,2),qe=rt[0],Ve=rt[1],tt=(0,n.useState)(null),Oe=(0,o.Z)(tt,2),Me=Oe[0],Ne=Oe[1],Te=(0,n.useState)(null),Be=(0,o.Z)(Te,2),nt=Be[0],ot=Be[1],wt=n.useMemo(function(){return nt===null&&oe?Number.MAX_SAFE_INTEGER:nt||0},[nt,we]),Et=(0,n.useState)(!1),nn=(0,o.Z)(Et,2),$t=nn[0],fn=nn[1],ln="".concat(be,"-item"),Wt=Math.max(fe,Qe),$e=Le===le,De=he.length&&$e,jt=Le===Q,Ft=De||typeof Le=="number"&&he.length>Le,Xe=(0,n.useMemo)(function(){var mt=he;return De?we===null&&oe?mt=he:mt=he.slice(0,Math.min(he.length,Se/yt)):typeof Le=="number"&&(mt=he.slice(0,Le)),mt},[he,yt,we,Le,De]),at=(0,n.useMemo)(function(){return De?he.slice(wt+1):he.slice(Xe.length)},[he,Xe,De,wt]),Bt=(0,n.useCallback)(function(mt,pt){var an;return typeof et=="function"?et(mt):(an=et&&(mt==null?void 0:mt[et]))!==null&&an!==void 0?an:pt},[et]),Zt=(0,n.useCallback)(Fe||function(mt){return mt},[Fe]);function Qt(mt,pt,an){nt===mt&&(pt===void 0||pt===Me)||(ot(mt),an||(fn(mtSe){Qt(qt-1,mt-Yt-qe+Qe);break}}We&&zn(0)+qe>Se&&Ne(null)}},[Se,re,Qe,qe,Bt,Xe]);var lr=$t&&!!at.length,ur={};Me!==null&&De&&(ur={position:"absolute",left:Me,top:0});var zt={prefixCls:ln,responsive:De,component:W,invalidate:jt},Kt=Je?function(mt,pt){var an=Bt(mt,pt);return n.createElement(A.Provider,{key:an,value:(0,t.Z)((0,t.Z)({},zt),{},{order:pt,item:mt,itemKey:an,registerSize:hn,display:pt<=wt})},Je(mt,pt))}:function(mt,pt){var an=Bt(mt,pt);return n.createElement(j,(0,a.Z)({},zt,{order:pt,key:an,item:mt,renderItem:Zt,itemKey:an,registerSize:hn,display:pt<=wt}))},Vt,dn={order:lr?wt:Number.MAX_SAFE_INTEGER,className:"".concat(ln,"-rest"),registerSize:on,display:lr};if(st)st&&(Vt=n.createElement(A.Provider,{value:(0,t.Z)((0,t.Z)({},zt),dn)},st(at)));else{var pn=Ke||G;Vt=n.createElement(j,(0,a.Z)({},zt,dn),typeof pn=="function"?pn(at):pn)}var en=n.createElement(X,(0,a.Z)({className:l()(!jt&&be,Ct),style:bt,ref:_},N),Xe.map(Kt),Ft?Vt:null,We&&n.createElement(j,(0,a.Z)({},zt,{responsive:$e,responsiveDisabled:!De,order:wt,className:"".concat(ln,"-suffix"),registerSize:Rn,display:!0,style:ur}),We));return $e&&(en=n.createElement(d.Z,{onResize:rn,disabled:!De},en)),en}var I=n.forwardRef(q);I.displayName="Overflow",I.Item=U,I.RESPONSIVE=le,I.INVALIDATE=Q;var H=I,Y=H},57522:function(M,b){"use strict";b.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(M,b){"use strict";b.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(M,b,e){"use strict";e.d(b,{Z:function(){return le}});var a=e(60698),t=e(58757),o=e(42156),s=e(75556),n=e(57370),c=e(21319),l=e(69188),d=e(20759),h=new Map;function p(Q){Q.forEach(function(G){var q,I=G.target;(q=h.get(I))===null||q===void 0||q.forEach(function(H){return H(I)})})}var y=new d.Z(p),g=null,S=null;function j(Q,G){h.has(Q)||(h.set(Q,new Set),y.observe(Q)),h.get(Q).add(G)}function x(Q,G){h.has(Q)&&(h.get(Q).delete(G),h.get(Q).size||(y.unobserve(Q),h.delete(Q)))}var Z=e(60412),B=e(14346),w=e(87498),T=e(73726),F=function(Q){(0,w.Z)(q,Q);var G=(0,T.Z)(q);function q(){return(0,Z.Z)(this,q),G.apply(this,arguments)}return(0,B.Z)(q,[{key:"render",value:function(){return this.props.children}}]),q}(t.Component),A=t.createContext(null);function L(Q){var G=Q.children,q=Q.onBatchResize,I=t.useRef(0),H=t.useRef([]),Y=t.useContext(A),D=t.useCallback(function(_,ue,be){I.current+=1;var ce=I.current;H.current.push({size:_,element:ue,data:be}),Promise.resolve().then(function(){ce===I.current&&(q==null||q(H.current),H.current=[])}),Y==null||Y(_,ue,be)},[q,Y]);return t.createElement(A.Provider,{value:D},G)}function O(Q,G){var q=Q.children,I=Q.disabled,H=t.useRef(null),Y=t.useRef(null),D=t.useContext(A),_=typeof q=="function",ue=_?q(H):q,be=t.useRef({width:-1,height:-1,offsetWidth:-1,offsetHeight:-1}),ce=!_&&t.isValidElement(ue)&&(0,c.Yr)(ue),he=ce?ue.ref:null,Fe=t.useMemo(function(){return(0,c.sQ)(he,H)},[he,H]),Je=function(){return(0,l.Z)(H.current)||(0,l.Z)(Y.current)};t.useImperativeHandle(G,function(){return Je()});var et=t.useRef(Q);et.current=Q;var ae=t.useCallback(function(yt){var Pt=et.current,bt=Pt.onResize,Ct=Pt.data,Le=yt.getBoundingClientRect(),Ke=Le.width,st=Le.height,We=yt.offsetWidth,ge=yt.offsetHeight,X=Math.floor(Ke),W=Math.floor(st);if(be.current.width!==X||be.current.height!==W||be.current.offsetWidth!==We||be.current.offsetHeight!==ge){var R={width:X,height:W,offsetWidth:We,offsetHeight:ge};be.current=R;var N=We===Math.round(Ke)?Ke:We,oe=ge===Math.round(st)?st:ge,ve=(0,n.Z)((0,n.Z)({},R),{},{offsetWidth:N,offsetHeight:oe});D==null||D(ve,yt,Ct),bt&&Promise.resolve().then(function(){bt(ve,yt)})}},[]);return t.useEffect(function(){var yt=Je();return yt&&!I&&j(yt,ae),function(){return x(yt,ae)}},[H.current,I]),t.createElement(F,{ref:Y},ce?t.cloneElement(ue,{ref:Fe}):ue)}var $=t.forwardRef(O),P=$,K="rc-observer-key";function U(Q,G){var q=Q.children,I=typeof q=="function"?[q]:(0,o.Z)(q);return I.map(function(H,Y){var D=(H==null?void 0:H.key)||"".concat(K,"-").concat(Y);return t.createElement(P,(0,a.Z)({},Q,{key:D,ref:Y===0?G:void 0}),H)})}var ee=t.forwardRef(U);ee.Collection=L;var le=ee},25092:function(M,b,e){"use strict";e.d(b,{ZP:function(){return l}});var a=e(28314),t=e(58757),o=e(19075),s=0,n=(0,o.Z)();function c(){var d;return n?(d=s,s+=1):d="TEST_OR_SSR",d}function l(d){var h=t.useState(),p=(0,a.Z)(h,2),y=p[0],g=p[1];return t.useEffect(function(){g("rc_select_".concat(c()))},[]),d||y}},18510:function(M,b,e){"use strict";e.d(b,{Ac:function(){return xe},Xo:function(){return gt},Wx:function(){return rt},ZP:function(){return Ft},lk:function(){return w}});var a=e(60698),t=e(29140),o=e(37734),s=e(57370),n=e(28314),c=e(47075),l=e(38790),d=e(60409),h=e(75556),p=e(58757),y=e(87608),g=e.n(y),S=e(81334),j=e(21618),x=e(29639),Z=e(21319),B=p.createContext(null);function w(){return p.useContext(B)}function T(){var Xe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:10,at=p.useState(!1),Bt=(0,n.Z)(at,2),Zt=Bt[0],Qt=Bt[1],rn=p.useRef(null),hn=function(){window.clearTimeout(rn.current)};p.useEffect(function(){return hn},[]);var on=function(zn,lr){hn(),rn.current=window.setTimeout(function(){Qt(zn),lr&&lr()},Xe)};return[Zt,on,hn]}function F(){var Xe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:250,at=p.useRef(null),Bt=p.useRef(null);p.useEffect(function(){return function(){window.clearTimeout(Bt.current)}},[]);function Zt(Qt){(Qt||at.current===null)&&(at.current=Qt),window.clearTimeout(Bt.current),Bt.current=window.setTimeout(function(){at.current=null},Xe)}return[function(){return at.current},Zt]}function A(Xe,at,Bt,Zt){var Qt=p.useRef(null);Qt.current={open:at,triggerOpen:Bt,customizedTrigger:Zt},p.useEffect(function(){function rn(hn){var on;if(!((on=Qt.current)!==null&&on!==void 0&&on.customizedTrigger)){var Rn=hn.target;Rn.shadowRoot&&hn.composed&&(Rn=hn.composedPath()[0]||Rn),Qt.current.open&&Xe().filter(function(zn){return zn}).every(function(zn){return!zn.contains(Rn)&&zn!==Rn})&&Qt.current.triggerOpen(!1)}}return window.addEventListener("mousedown",rn),function(){return window.removeEventListener("mousedown",rn)}},[])}var L=e(33926),O=e(9257),$=function(at){var Bt=at.className,Zt=at.customizeIcon,Qt=at.customizeIconProps,rn=at.onMouseDown,hn=at.onClick,on=at.children,Rn;return typeof Zt=="function"?Rn=Zt(Qt):Rn=Zt,p.createElement("span",{className:Bt,onMouseDown:function(lr){lr.preventDefault(),rn&&rn(lr)},style:{userSelect:"none",WebkitUserSelect:"none"},unselectable:"on",onClick:hn,"aria-hidden":!0},Rn!==void 0?Rn:p.createElement("span",{className:g()(Bt.split(/\s+/).map(function(zn){return"".concat(zn,"-icon")}))},on))},P=$,K=function(at,Bt){var Zt,Qt,rn=at.prefixCls,hn=at.id,on=at.inputElement,Rn=at.disabled,zn=at.tabIndex,lr=at.autoFocus,ur=at.autoComplete,zt=at.editable,Kt=at.activeDescendantId,Vt=at.value,dn=at.maxLength,pn=at.onKeyDown,en=at.onMouseDown,mt=at.onChange,pt=at.onPaste,an=at.onCompositionStart,qt=at.onCompositionEnd,Yt=at.open,mn=at.attrs,gn=on||p.createElement("input",null),kn=gn,tr=kn.ref,ft=kn.props,vt=ft.onKeyDown,St=ft.onChange,Mt=ft.onMouseDown,Nt=ft.onCompositionStart,sn=ft.onCompositionEnd,Xt=ft.style;return(0,h.Kp)(!("maxLength"in gn.props),"Passing 'maxLength' to input element directly may not work because input in BaseSelect is controlled."),gn=p.cloneElement(gn,(0,s.Z)((0,s.Z)((0,s.Z)({type:"search"},ft),{},{id:hn,ref:(0,Z.sQ)(Bt,tr),disabled:Rn,tabIndex:zn,autoComplete:ur||"off",autoFocus:lr,className:g()("".concat(rn,"-selection-search-input"),(Zt=gn)===null||Zt===void 0||(Qt=Zt.props)===null||Qt===void 0?void 0:Qt.className),role:"combobox","aria-label":"Search","aria-expanded":Yt,"aria-haspopup":"listbox","aria-owns":"".concat(hn,"_list"),"aria-autocomplete":"list","aria-controls":"".concat(hn,"_list"),"aria-activedescendant":Yt?Kt:void 0},mn),{},{value:zt?Vt:"",maxLength:dn,readOnly:!zt,unselectable:zt?null:"on",style:(0,s.Z)((0,s.Z)({},Xt),{},{opacity:zt?null:0}),onKeyDown:function(Ln){pn(Ln),vt&&vt(Ln)},onMouseDown:function(Ln){en(Ln),Mt&&Mt(Ln)},onChange:function(Ln){mt(Ln),St&&St(Ln)},onCompositionStart:function(Ln){an(Ln),Nt&&Nt(Ln)},onCompositionEnd:function(Ln){qt(Ln),sn&&sn(Ln)},onPaste:pt})),gn},U=p.forwardRef(K);U.displayName="Input";var ee=U;function le(Xe){return Array.isArray(Xe)?Xe:Xe!==void 0?[Xe]:[]}var Q=typeof window!="undefined"&&window.document&&window.document.documentElement,G=Q;function q(Xe){return Xe!=null}function I(Xe){return!Xe&&Xe!==0}function H(Xe){return["string","number"].includes((0,l.Z)(Xe))}function Y(Xe){var at=void 0;return Xe&&(H(Xe.title)?at=Xe.title.toString():H(Xe.label)&&(at=Xe.label.toString())),at}function D(Xe,at){G?p.useLayoutEffect(Xe,at):p.useEffect(Xe,at)}function _(Xe){var at;return(at=Xe.key)!==null&&at!==void 0?at:Xe.value}var ue=function(at){at.preventDefault(),at.stopPropagation()},be=function(at){var Bt=at.id,Zt=at.prefixCls,Qt=at.values,rn=at.open,hn=at.searchValue,on=at.autoClearSearchValue,Rn=at.inputRef,zn=at.placeholder,lr=at.disabled,ur=at.mode,zt=at.showSearch,Kt=at.autoFocus,Vt=at.autoComplete,dn=at.activeDescendantId,pn=at.tabIndex,en=at.removeIcon,mt=at.maxTagCount,pt=at.maxTagTextLength,an=at.maxTagPlaceholder,qt=an===void 0?function(ea){return"+ ".concat(ea.length," ...")}:an,Yt=at.tagRender,mn=at.onToggleOpen,gn=at.onRemove,kn=at.onInputChange,tr=at.onInputPaste,ft=at.onInputKeyDown,vt=at.onInputMouseDown,St=at.onInputCompositionStart,Mt=at.onInputCompositionEnd,Nt=p.useRef(null),sn=(0,p.useState)(0),Xt=(0,n.Z)(sn,2),Cn=Xt[0],Ln=Xt[1],hr=(0,p.useState)(!1),qn=(0,n.Z)(hr,2),Nn=qn[0],$r=qn[1],gr="".concat(Zt,"-selection"),aa=rn||ur==="multiple"&&on===!1||ur==="tags"?hn:"",Pr=ur==="tags"||ur==="multiple"&&on===!1||zt&&(rn||Nn);D(function(){Ln(Nt.current.scrollWidth)},[aa]);function Fn(ea,ya,vr,zr,Oa){return p.createElement("span",{className:g()("".concat(gr,"-item"),(0,o.Z)({},"".concat(gr,"-item-disabled"),vr)),title:Y(ea)},p.createElement("span",{className:"".concat(gr,"-item-content")},ya),zr&&p.createElement(P,{className:"".concat(gr,"-item-remove"),onMouseDown:ue,onClick:Oa,customizeIcon:en},"\xD7"))}function En(ea,ya,vr,zr,Oa){var va=function(Bn){ue(Bn),mn(!rn)};return p.createElement("span",{onMouseDown:va},Yt({label:ya,value:ea,disabled:vr,closable:zr,onClose:Oa}))}function wn(ea){var ya=ea.disabled,vr=ea.label,zr=ea.value,Oa=!lr&&!ya,va=vr;if(typeof pt=="number"&&(typeof vr=="string"||typeof vr=="number")){var Vn=String(va);Vn.length>pt&&(va="".concat(Vn.slice(0,pt),"..."))}var Bn=function(qr){qr&&qr.stopPropagation(),gn(ea)};return typeof Yt=="function"?En(zr,va,ya,Oa,Bn):Fn(ea,va,ya,Oa,Bn)}function ar(ea){var ya=typeof qt=="function"?qt(ea):qt;return Fn({title:ya},ya,!1)}var fr=p.createElement("div",{className:"".concat(gr,"-search"),style:{width:Cn},onFocus:function(){$r(!0)},onBlur:function(){$r(!1)}},p.createElement(ee,{ref:Rn,open:rn,prefixCls:Zt,id:Bt,inputElement:null,disabled:lr,autoFocus:Kt,autoComplete:Vt,editable:Pr,activeDescendantId:dn,value:aa,onKeyDown:ft,onMouseDown:vt,onChange:kn,onPaste:tr,onCompositionStart:St,onCompositionEnd:Mt,tabIndex:pn,attrs:(0,L.Z)(at,!0)}),p.createElement("span",{ref:Nt,className:"".concat(gr,"-search-mirror"),"aria-hidden":!0},aa,"\xA0")),Kr=p.createElement(O.Z,{prefixCls:"".concat(gr,"-overflow"),data:Qt,renderItem:wn,renderRest:ar,suffix:fr,itemKey:_,maxCount:mt});return p.createElement(p.Fragment,null,Kr,!Qt.length&&!aa&&p.createElement("span",{className:"".concat(gr,"-placeholder")},zn))},ce=be,he=function(at){var Bt=at.inputElement,Zt=at.prefixCls,Qt=at.id,rn=at.inputRef,hn=at.disabled,on=at.autoFocus,Rn=at.autoComplete,zn=at.activeDescendantId,lr=at.mode,ur=at.open,zt=at.values,Kt=at.placeholder,Vt=at.tabIndex,dn=at.showSearch,pn=at.searchValue,en=at.activeValue,mt=at.maxLength,pt=at.onInputKeyDown,an=at.onInputMouseDown,qt=at.onInputChange,Yt=at.onInputPaste,mn=at.onInputCompositionStart,gn=at.onInputCompositionEnd,kn=at.title,tr=p.useState(!1),ft=(0,n.Z)(tr,2),vt=ft[0],St=ft[1],Mt=lr==="combobox",Nt=Mt||dn,sn=zt[0],Xt=pn||"";Mt&&en&&!vt&&(Xt=en),p.useEffect(function(){Mt&&St(!1)},[Mt,en]);var Cn=lr!=="combobox"&&!ur&&!dn?!1:!!Xt,Ln=kn===void 0?Y(sn):kn,hr=function(){if(sn)return null;var Nn=Cn?{visibility:"hidden"}:void 0;return p.createElement("span",{className:"".concat(Zt,"-selection-placeholder"),style:Nn},Kt)};return p.createElement(p.Fragment,null,p.createElement("span",{className:"".concat(Zt,"-selection-search")},p.createElement(ee,{ref:rn,prefixCls:Zt,id:Qt,open:ur,inputElement:Bt,disabled:hn,autoFocus:on,autoComplete:Rn,editable:Nt,activeDescendantId:zn,value:Xt,onKeyDown:pt,onMouseDown:an,onChange:function(Nn){St(!0),qt(Nn)},onPaste:Yt,onCompositionStart:mn,onCompositionEnd:gn,tabIndex:Vt,attrs:(0,L.Z)(at,!0),maxLength:Mt?mt:void 0})),!Mt&&sn?p.createElement("span",{className:"".concat(Zt,"-selection-item"),title:Ln,style:Cn?{visibility:"hidden"}:void 0},sn.label):null,hr())},Fe=he;function Je(Xe){return![x.Z.ESC,x.Z.SHIFT,x.Z.BACKSPACE,x.Z.TAB,x.Z.WIN_KEY,x.Z.ALT,x.Z.META,x.Z.WIN_KEY_RIGHT,x.Z.CTRL,x.Z.SEMICOLON,x.Z.EQUALS,x.Z.CAPS_LOCK,x.Z.CONTEXT_MENU,x.Z.F1,x.Z.F2,x.Z.F3,x.Z.F4,x.Z.F5,x.Z.F6,x.Z.F7,x.Z.F8,x.Z.F9,x.Z.F10,x.Z.F11,x.Z.F12].includes(Xe)}var et=function(at,Bt){var Zt=(0,p.useRef)(null),Qt=(0,p.useRef)(!1),rn=at.prefixCls,hn=at.open,on=at.mode,Rn=at.showSearch,zn=at.tokenWithEnter,lr=at.autoClearSearchValue,ur=at.onSearch,zt=at.onSearchSubmit,Kt=at.onToggleOpen,Vt=at.onInputKeyDown,dn=at.domRef;p.useImperativeHandle(Bt,function(){return{focus:function(){Zt.current.focus()},blur:function(){Zt.current.blur()}}});var pn=F(0),en=(0,n.Z)(pn,2),mt=en[0],pt=en[1],an=function(Xt){var Cn=Xt.which;(Cn===x.Z.UP||Cn===x.Z.DOWN)&&Xt.preventDefault(),Vt&&Vt(Xt),Cn===x.Z.ENTER&&on==="tags"&&!Qt.current&&!hn&&(zt==null||zt(Xt.target.value)),Je(Cn)&&Kt(!0)},qt=function(){pt(!0)},Yt=(0,p.useRef)(null),mn=function(Xt){ur(Xt,!0,Qt.current)!==!1&&Kt(!0)},gn=function(){Qt.current=!0},kn=function(Xt){Qt.current=!1,on!=="combobox"&&mn(Xt.target.value)},tr=function(Xt){var Cn=Xt.target.value;if(zn&&Yt.current&&/[\r\n]/.test(Yt.current)){var Ln=Yt.current.replace(/[\r\n]+$/,"").replace(/\r\n/g," ").replace(/[\r\n]/g," ");Cn=Cn.replace(Ln,Yt.current)}Yt.current=null,mn(Cn)},ft=function(Xt){var Cn=Xt.clipboardData,Ln=Cn.getData("text");Yt.current=Ln},vt=function(Xt){var Cn=Xt.target;if(Cn!==Zt.current){var Ln=document.body.style.msTouchAction!==void 0;Ln?setTimeout(function(){Zt.current.focus()}):Zt.current.focus()}},St=function(Xt){var Cn=mt();Xt.target!==Zt.current&&!Cn&&on!=="combobox"&&Xt.preventDefault(),(on!=="combobox"&&(!Rn||!Cn)||!hn)&&(hn&&lr!==!1&&ur("",!0,!1),Kt())},Mt={inputRef:Zt,onInputKeyDown:an,onInputMouseDown:qt,onInputChange:tr,onInputPaste:ft,onInputCompositionStart:gn,onInputCompositionEnd:kn},Nt=on==="multiple"||on==="tags"?p.createElement(ce,(0,a.Z)({},at,Mt)):p.createElement(Fe,(0,a.Z)({},at,Mt));return p.createElement("div",{ref:dn,className:"".concat(rn,"-selector"),onClick:vt,onMouseDown:St},Nt)},ae=p.forwardRef(et);ae.displayName="Selector";var yt=ae,Pt=e(99863),bt=["prefixCls","disabled","visible","children","popupElement","containerWidth","animation","transitionName","dropdownStyle","dropdownClassName","direction","placement","builtinPlacements","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","getPopupContainer","empty","getTriggerDOMNode","onPopupVisibleChange","onPopupMouseEnter"],Ct=function(at){var Bt=at===!0?0:1;return{bottomLeft:{points:["tl","bl"],offset:[0,4],overflow:{adjustX:Bt,adjustY:1},htmlRegion:"scroll"},bottomRight:{points:["tr","br"],offset:[0,4],overflow:{adjustX:Bt,adjustY:1},htmlRegion:"scroll"},topLeft:{points:["bl","tl"],offset:[0,-4],overflow:{adjustX:Bt,adjustY:1},htmlRegion:"scroll"},topRight:{points:["br","tr"],offset:[0,-4],overflow:{adjustX:Bt,adjustY:1},htmlRegion:"scroll"}}},Le=function(at,Bt){var Zt=at.prefixCls,Qt=at.disabled,rn=at.visible,hn=at.children,on=at.popupElement,Rn=at.containerWidth,zn=at.animation,lr=at.transitionName,ur=at.dropdownStyle,zt=at.dropdownClassName,Kt=at.direction,Vt=Kt===void 0?"ltr":Kt,dn=at.placement,pn=at.builtinPlacements,en=at.dropdownMatchSelectWidth,mt=at.dropdownRender,pt=at.dropdownAlign,an=at.getPopupContainer,qt=at.empty,Yt=at.getTriggerDOMNode,mn=at.onPopupVisibleChange,gn=at.onPopupMouseEnter,kn=(0,c.Z)(at,bt),tr="".concat(Zt,"-dropdown"),ft=on;mt&&(ft=mt(on));var vt=p.useMemo(function(){return pn||Ct(en)},[pn,en]),St=zn?"".concat(tr,"-").concat(zn):lr,Mt=p.useRef(null);p.useImperativeHandle(Bt,function(){return{getPopupElement:function(){return Mt.current}}});var Nt=(0,s.Z)({minWidth:Rn},ur);return typeof en=="number"?Nt.width=en:en&&(Nt.width=Rn),p.createElement(Pt.Z,(0,a.Z)({},kn,{showAction:mn?["click"]:[],hideAction:mn?["click"]:[],popupPlacement:dn||(Vt==="rtl"?"bottomRight":"bottomLeft"),builtinPlacements:vt,prefixCls:tr,popupTransitionName:St,popup:p.createElement("div",{ref:Mt,onMouseEnter:gn},ft),popupAlign:pt,popupVisible:rn,getPopupContainer:an,popupClassName:g()(zt,(0,o.Z)({},"".concat(tr,"-empty"),qt)),popupStyle:Nt,getTriggerDOMNode:Yt,onPopupVisibleChange:mn}),hn)},Ke=p.forwardRef(Le);Ke.displayName="SelectTrigger";var st=Ke,We=e(6747);function ge(Xe,at){var Bt=Xe.key,Zt;return"value"in Xe&&(Zt=Xe.value),Bt!=null?Bt:Zt!==void 0?Zt:"rc-index-key-".concat(at)}function X(Xe,at){var Bt=Xe||{},Zt=Bt.label,Qt=Bt.value,rn=Bt.options,hn=Bt.groupLabel,on=Zt||(at?"children":"label");return{label:on,value:Qt||"value",options:rn||"options",groupLabel:hn||on}}function W(Xe){var at=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Bt=at.fieldNames,Zt=at.childrenAsData,Qt=[],rn=X(Bt,!1),hn=rn.label,on=rn.value,Rn=rn.options,zn=rn.groupLabel;function lr(ur,zt){ur.forEach(function(Kt){if(zt||!(Rn in Kt)){var Vt=Kt[on];Qt.push({key:ge(Kt,Qt.length),groupOption:zt,data:Kt,label:Kt[hn],value:Vt})}else{var dn=Kt[zn];dn===void 0&&Zt&&(dn=Kt.label),Qt.push({key:ge(Kt,Qt.length),group:!0,data:Kt,label:dn}),lr(Kt[Rn],!0)}})}return lr(Xe,!1),Qt}function R(Xe){var at=(0,s.Z)({},Xe);return"props"in at||Object.defineProperty(at,"props",{get:function(){return(0,h.ZP)(!1,"Return type is option instead of Option instance. Please read value directly instead of reading from `props`."),at}}),at}function N(Xe,at){if(!at||!at.length)return null;var Bt=!1;function Zt(rn,hn){var on=(0,We.Z)(hn),Rn=on[0],zn=on.slice(1);if(!Rn)return[rn];var lr=rn.split(Rn);return Bt=Bt||lr.length>1,lr.reduce(function(ur,zt){return[].concat((0,t.Z)(ur),(0,t.Z)(Zt(zt,zn)))},[]).filter(function(ur){return ur})}var Qt=Zt(Xe,at);return Bt?Qt:null}function oe(Xe,at,Bt,Zt,Qt){var rn=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!1,hn=arguments.length>6?arguments[6]:void 0,on=arguments.length>7?arguments[7]:void 0,Rn=p.useMemo(function(){if((0,l.Z)(Zt)==="object")return Zt.clearIcon;if(Qt)return Qt},[Zt,Qt]),zn=p.useMemo(function(){return!!(!rn&&Zt&&(Bt.length||hn)&&!(on==="combobox"&&hn===""))},[Zt,rn,Bt.length,hn,on]);return{allowClear:zn,clearIcon:p.createElement(P,{className:"".concat(Xe,"-clear"),onMouseDown:at,customizeIcon:Rn},"\xD7")}}var ve=["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"],te=["value","onChange","removeIcon","placeholder","autoFocus","maxTagCount","maxTagTextLength","maxTagPlaceholder","choiceTransitionName","onInputKeyDown","onPopupScroll","tabIndex"];function me(Xe){return Xe==="tags"||Xe==="multiple"}var we=p.forwardRef(function(Xe,at){var Bt,Zt,Qt=Xe.id,rn=Xe.prefixCls,hn=Xe.className,on=Xe.showSearch,Rn=Xe.tagRender,zn=Xe.direction,lr=Xe.omitDomProps,ur=Xe.displayValues,zt=Xe.onDisplayValuesChange,Kt=Xe.emptyOptions,Vt=Xe.notFoundContent,dn=Vt===void 0?"Not Found":Vt,pn=Xe.onClear,en=Xe.mode,mt=Xe.disabled,pt=Xe.loading,an=Xe.getInputElement,qt=Xe.getRawInputElement,Yt=Xe.open,mn=Xe.defaultOpen,gn=Xe.onDropdownVisibleChange,kn=Xe.activeValue,tr=Xe.onActiveValueChange,ft=Xe.activeDescendantId,vt=Xe.searchValue,St=Xe.autoClearSearchValue,Mt=Xe.onSearch,Nt=Xe.onSearchSplit,sn=Xe.tokenSeparators,Xt=Xe.allowClear,Cn=Xe.suffixIcon,Ln=Xe.clearIcon,hr=Xe.OptionList,qn=Xe.animation,Nn=Xe.transitionName,$r=Xe.dropdownStyle,gr=Xe.dropdownClassName,aa=Xe.dropdownMatchSelectWidth,Pr=Xe.dropdownRender,Fn=Xe.dropdownAlign,En=Xe.placement,wn=Xe.builtinPlacements,ar=Xe.getPopupContainer,fr=Xe.showAction,Kr=fr===void 0?[]:fr,ea=Xe.onFocus,ya=Xe.onBlur,vr=Xe.onKeyUp,zr=Xe.onKeyDown,Oa=Xe.onMouseDown,va=(0,c.Z)(Xe,ve),Vn=me(en),Bn=(on!==void 0?on:Vn)||en==="combobox",pr=(0,s.Z)({},va);te.forEach(function(vo){delete pr[vo]}),lr==null||lr.forEach(function(vo){delete pr[vo]});var qr=p.useState(!1),Er=(0,n.Z)(qr,2),At=Er[0],tn=Er[1];p.useEffect(function(){tn((0,j.Z)())},[]);var yn=p.useRef(null),lo=p.useRef(null),Ao=p.useRef(null),Ka=p.useRef(null),Qa=p.useRef(null),qa=T(),$o=(0,n.Z)(qa,3),_o=$o[0],yo=$o[1],ct=$o[2];p.useImperativeHandle(at,function(){var vo,ro;return{focus:(vo=Ka.current)===null||vo===void 0?void 0:vo.focus,blur:(ro=Ka.current)===null||ro===void 0?void 0:ro.blur,scrollTo:function(ai){var Uo;return(Uo=Qa.current)===null||Uo===void 0?void 0:Uo.scrollTo(ai)}}});var xt=p.useMemo(function(){var vo;if(en!=="combobox")return vt;var ro=(vo=ur[0])===null||vo===void 0?void 0:vo.value;return typeof ro=="string"||typeof ro=="number"?String(ro):""},[vt,en,ur]),Ce=en==="combobox"&&typeof an=="function"&&an()||null,un=typeof qt=="function"&&qt(),xn=(0,Z.x1)(lo,un==null||(Bt=un.props)===null||Bt===void 0?void 0:Bt.ref),Hn=p.useState(!1),Kn=(0,n.Z)(Hn,2),Sr=Kn[0],kr=Kn[1];(0,S.Z)(function(){kr(!0)},[]);var La=(0,d.Z)(!1,{defaultValue:mn,value:Yt}),oa=(0,n.Z)(La,2),Xr=oa[0],ta=oa[1],xr=Sr?Xr:!1,Zr=!dn&&Kt;(mt||Zr&&xr&&en==="combobox")&&(xr=!1);var ga=Zr?!1:xr,ka=p.useCallback(function(vo){var ro=vo!==void 0?vo:!xr;mt||(ta(ro),xr!==ro&&(gn==null||gn(ro)))},[mt,xr,ta,gn]),mo=p.useMemo(function(){return(sn||[]).some(function(vo){return[` +`,`\r +`].includes(vo)})},[sn]),no=function(ro,ci,ai){var Uo=!0,Yo=ro;tr==null||tr(null);var xi=ai?null:N(ro,sn);return en!=="combobox"&&xi&&(Yo="",Nt==null||Nt(xi),ka(!1),Uo=!1),Mt&&xt!==Yo&&Mt(Yo,{source:ci?"typing":"effect"}),Uo},kt=function(ro){!ro||!ro.trim()||Mt(ro,{source:"submit"})};p.useEffect(function(){!xr&&!Vn&&en!=="combobox"&&no("",!1,!1)},[xr]),p.useEffect(function(){Xr&&mt&&ta(!1),mt&&yo(!1)},[mt]);var Sn=F(),Dn=(0,n.Z)(Sn,2),Qn=Dn[0],br=Dn[1],Hr=function(ro){var ci=Qn(),ai=ro.which;if(ai===x.Z.ENTER&&(en!=="combobox"&&ro.preventDefault(),xr||ka(!0)),br(!!xt),ai===x.Z.BACKSPACE&&!ci&&Vn&&!xt&&ur.length){for(var Uo=(0,t.Z)(ur),Yo=null,xi=Uo.length-1;xi>=0;xi-=1){var Hi=Uo[xi];if(!Hi.disabled){Uo.splice(xi,1),Yo=Hi;break}}Yo&&zt(Uo,{type:"remove",values:[Yo]})}for(var _i=arguments.length,Es=new Array(_i>1?_i-1:0),hs=1;hs<_i;hs++)Es[hs-1]=arguments[hs];if(xr&&Qa.current){var Ks;(Ks=Qa.current).onKeyDown.apply(Ks,[ro].concat(Es))}zr==null||zr.apply(void 0,[ro].concat(Es))},Jr=function(ro){for(var ci=arguments.length,ai=new Array(ci>1?ci-1:0),Uo=1;Uo1?xi-1:0),_i=1;_i1&&arguments[1]!==void 0?arguments[1]:!1;return(0,se.Z)(Xe).map(function(Bt,Zt){if(!p.isValidElement(Bt)||!Bt.type)return null;var Qt=Bt,rn=Qt.type.isSelectOptGroup,hn=Qt.key,on=Qt.props,Rn=on.children,zn=(0,c.Z)(on,Re);return at||!rn?fe(Bt):(0,s.Z)((0,s.Z)({key:"__RC_SELECT_GRP__".concat(hn===null?Zt:hn,"__"),label:hn},zn),{},{options:_e(Rn)})}).filter(function(Bt){return Bt})}function Pe(Xe,at,Bt,Zt,Qt){return p.useMemo(function(){var rn=Xe,hn=!Xe;hn&&(rn=_e(at));var on=new Map,Rn=new Map,zn=function(zt,Kt,Vt){Vt&&typeof Vt=="string"&&zt.set(Kt[Vt],Kt)};function lr(ur){for(var zt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,Kt=0;Kt1&&arguments[1]!==void 0?arguments[1]:1,ar=tr.length,fr=0;fr1&&arguments[1]!==void 0?arguments[1]:!1;Cn(En);var ar={source:wn?"keyboard":"mouse"},fr=tr[En];if(!fr){dn(null,-1,ar);return}dn(fr.value,En,ar)};(0,p.useEffect)(function(){Ln(pn!==!1?Mt(0):-1)},[tr.length,zn]);var hr=p.useCallback(function(Fn){return pt.has(Fn)&&Rn!=="combobox"},[Rn,(0,t.Z)(pt).toString(),pt.size]);(0,p.useEffect)(function(){var Fn=setTimeout(function(){if(!on&&hn&&pt.size===1){var wn=Array.from(pt)[0],ar=tr.findIndex(function(fr){var Kr=fr.data;return Kr.value===wn});ar!==-1&&(Ln(ar),St(ar))}});if(hn){var En;(En=ft.current)===null||En===void 0||En.scrollTo(void 0)}return function(){return clearTimeout(Fn)}},[hn,zn,Vt.length]);var qn=function(En){En!==void 0&&en(En,{selected:!pt.has(En)}),on||lr(!1)};if(p.useImperativeHandle(Bt,function(){return{onKeyDown:function(En){var wn=En.which,ar=En.ctrlKey;switch(wn){case x.Z.N:case x.Z.P:case x.Z.UP:case x.Z.DOWN:{var fr=0;if(wn===x.Z.UP?fr=-1:wn===x.Z.DOWN?fr=1:Ne()&&ar&&(wn===x.Z.N?fr=1:wn===x.Z.P&&(fr=-1)),fr!==0){var Kr=Mt(Xt+fr,fr);St(Kr),Ln(Kr,!0)}break}case x.Z.ENTER:{var ea=tr[Xt];ea&&!ea.data.disabled?qn(ea.value):qn(void 0),hn&&En.preventDefault();break}case x.Z.ESC:lr(!1),hn&&En.stopPropagation()}},onKeyUp:function(){},scrollTo:function(En){St(En)}}}),tr.length===0)return p.createElement("div",{role:"listbox",id:"".concat(rn,"_list"),className:"".concat(kn,"-empty"),onMouseDown:vt},ur);var Nn=Object.keys(an).map(function(Fn){return an[Fn]}),$r=function(En){return En.label};function gr(Fn,En){var wn=Fn.group;return{role:wn?"presentation":"option",id:"".concat(rn,"_list_").concat(En)}}var aa=function(En){var wn=tr[En];if(!wn)return null;var ar=wn.data||{},fr=ar.value,Kr=wn.group,ea=(0,L.Z)(ar,!0),ya=$r(wn);return wn?p.createElement("div",(0,a.Z)({"aria-label":typeof ya=="string"&&!Kr?ya:null},ea,{key:En},gr(wn,En),{"aria-selected":hr(fr)}),fr):null},Pr={role:"listbox",id:"".concat(rn,"_list")};return p.createElement(p.Fragment,null,qt&&p.createElement("div",(0,a.Z)({},Pr,{style:{height:0,width:0,overflow:"hidden"}}),aa(Xt-1),aa(Xt),aa(Xt+1)),p.createElement(tt.Z,{itemKey:"key",ref:ft,data:tr,height:mn,itemHeight:gn,fullHeight:!1,onMouseDown:vt,onScroll:zt,virtual:qt,direction:Yt,innerProps:qt?null:Pr},function(Fn,En){var wn,ar=Fn.group,fr=Fn.groupOption,Kr=Fn.data,ea=Fn.label,ya=Fn.value,vr=Kr.key;if(ar){var zr,Oa=(zr=Kr.title)!==null&&zr!==void 0?zr:Be(ea)?ea.toString():void 0;return p.createElement("div",{className:g()(kn,"".concat(kn,"-group")),title:Oa},ea!==void 0?ea:vr)}var va=Kr.disabled,Vn=Kr.title,Bn=Kr.children,pr=Kr.style,qr=Kr.className,Er=(0,c.Z)(Kr,Te),At=(0,Ve.Z)(Er,Nn),tn=hr(ya),yn="".concat(kn,"-option"),lo=g()(kn,yn,qr,(wn={},(0,o.Z)(wn,"".concat(yn,"-grouped"),fr),(0,o.Z)(wn,"".concat(yn,"-active"),Xt===En&&!va),(0,o.Z)(wn,"".concat(yn,"-disabled"),va),(0,o.Z)(wn,"".concat(yn,"-selected"),tn),wn)),Ao=$r(Fn),Ka=!mt||typeof mt=="function"||tn,Qa=typeof Ao=="number"?Ao:Ao||ya,qa=Be(Qa)?Qa.toString():void 0;return Vn!==void 0&&(qa=Vn),p.createElement("div",(0,a.Z)({},(0,L.Z)(At),qt?{}:gr(Fn,En),{"aria-selected":tn,className:lo,title:qa,onMouseMove:function(){Xt===En||va||Ln(En)},onClick:function(){va||qn(ya)},style:pr}),p.createElement("div",{className:"".concat(yn,"-content")},Qa),p.isValidElement(mt)||tn,Ka&&p.createElement(P,{className:"".concat(kn,"-option-state"),customizeIcon:mt,customizeIconProps:{isSelected:tn}},tn?"\u2713":null))}))},ot=p.forwardRef(nt);ot.displayName="OptionList";var wt=ot;function Et(Xe){var at=Xe.mode,Bt=Xe.options,Zt=Xe.children,Qt=Xe.backfill,rn=Xe.allowClear,hn=Xe.placeholder,on=Xe.getInputElement,Rn=Xe.showSearch,zn=Xe.onSearch,lr=Xe.defaultOpen,ur=Xe.autoFocus,zt=Xe.labelInValue,Kt=Xe.value,Vt=Xe.inputValue,dn=Xe.optionLabelProp,pn=isMultiple(at),en=Rn!==void 0?Rn:pn||at==="combobox",mt=Bt||convertChildrenToData(Zt);if(warning(at!=="tags"||mt.every(function(Yt){return!Yt.disabled}),"Please avoid setting option to disabled in tags mode since user can always type text as tag."),at==="tags"||at==="combobox"){var pt=mt.some(function(Yt){return Yt.options?Yt.options.some(function(mn){return typeof("value"in mn?mn.value:mn.key)=="number"}):typeof("value"in Yt?Yt.value:Yt.key)=="number"});warning(!pt,"`value` of Option should not use number type when `mode` is `tags` or `combobox`.")}if(warning(at!=="combobox"||!dn,"`combobox` mode not support `optionLabelProp`. Please set `value` on Option directly."),warning(at==="combobox"||!Qt,"`backfill` only works with `combobox` mode."),warning(at==="combobox"||!on,"`getInputElement` only work with `combobox` mode."),noteOnce(at!=="combobox"||!on||!rn||!hn,"Customize `getInputElement` should customize clear and placeholder logic instead of configuring `allowClear` and `placeholder`."),zn&&!en&&at!=="combobox"&&at!=="tags"&&warning(!1,"`onSearch` should work with `showSearch` instead of use alone."),noteOnce(!lr||ur,"`defaultOpen` makes Select open without focus which means it will not close by click outside. You can set `autoFocus` if needed."),Kt!=null){var an=toArray(Kt);warning(!zt||an.every(function(Yt){return _typeof(Yt)==="object"&&("key"in Yt||"value"in Yt)}),"`value` should in shape of `{ value: string | number, label?: ReactNode }` when you set `labelInValue` to `true`"),warning(!pn||Array.isArray(Kt),"`value` should be array when `mode` is `multiple` or `tags`")}if(Zt){var qt=null;toNodeArray(Zt).some(function(Yt){if(!React.isValidElement(Yt)||!Yt.type)return!1;var mn=Yt,gn=mn.type;if(gn.isSelectOption)return!1;if(gn.isSelectOptGroup){var kn=toNodeArray(Yt.props.children).every(function(tr){return!React.isValidElement(tr)||!Yt.type||tr.type.isSelectOption?!0:(qt=tr.type,!1)});return!kn}return qt=gn,!0}),qt&&warning(!1,"`children` should be `Select.Option` or `Select.OptGroup` instead of `".concat(qt.displayName||qt.name||qt,"`.")),warning(Vt===void 0,"`inputValue` is deprecated, please use `searchValue` instead.")}}function nn(Xe,at){if(Xe){var Bt=function Zt(Qt){for(var rn=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,hn=0;hn2&&arguments[2]!==void 0?arguments[2]:{},ka=ga.source,mo=ka===void 0?"keyboard":ka;xn(Zr),hn&&Zt==="combobox"&&xr!==null&&mo==="keyboard"&&ct(String(xr))},[hn,Zt]),Sr=function(Zr,ga,ka){var mo=function(){var Wr,ua=qr(Zr);return[Xt?{label:ua==null?void 0:ua[gr.label],value:Zr,key:(Wr=ua==null?void 0:ua.key)!==null&&Wr!==void 0?Wr:Zr}:Zr,R(ua)]};if(ga&&Kt){var no=mo(),kt=(0,n.Z)(no,2),Sn=kt[0],Dn=kt[1];Kt(Sn,Dn)}else if(!ga&&Vt&&ka!=="clear"){var Qn=mo(),br=(0,n.Z)(Qn,2),Hr=br[0],Jr=br[1];Vt(Hr,Jr)}},kr=ze(function(xr,Zr){var ga,ka=qn?Zr.selected:!0;ka?ga=qn?[].concat((0,t.Z)(pr),[xr]):[xr]:ga=pr.filter(function(mo){return mo.value!==xr}),qa(ga),Sr(xr,ka),Zt==="combobox"?ct(""):(!me||zt)&&(En(""),ct(""))}),La=function(Zr,ga){qa(Zr);var ka=ga.type,mo=ga.values;(ka==="remove"||ka==="clear")&&mo.forEach(function(no){Sr(no.value,!1,ka)})},oa=function(Zr,ga){if(En(Zr),ct(null),ga.source==="submit"){var ka=(Zr||"").trim();if(ka){var mo=Array.from(new Set([].concat((0,t.Z)(At),[ka])));qa(mo),Sr(ka,!0),En("")}return}ga.source!=="blur"&&(Zt==="combobox"&&qa(Zr),lr==null||lr(Zr))},Xr=function(Zr){var ga=Zr;Zt!=="tags"&&(ga=Zr.map(function(mo){var no=fr.get(mo);return no==null?void 0:no.value}).filter(function(mo){return mo!==void 0}));var ka=Array.from(new Set([].concat((0,t.Z)(At),(0,t.Z)(ga))));qa(ka),ka.forEach(function(mo){Sr(mo,!0)})},ta=p.useMemo(function(){var xr=kn!==!1&&pn!==!1;return(0,s.Z)((0,s.Z)({},wn),{},{flattenOptions:Qa,onActiveValue:Kn,defaultActiveFirstOption:Hn,onSelect:kr,menuItemSelectedIcon:gn,rawValues:At,fieldNames:gr,virtual:xr,direction:tr,listHeight:vt,listItemHeight:Mt,childrenAsData:Nn})},[wn,Qa,Kn,Hn,kr,gn,At,gr,kn,pn,vt,Mt,Nn]);return p.createElement(Me.Provider,{value:ta},p.createElement(xe,(0,a.Z)({},Ln,{id:hr,prefixCls:rn,ref:at,omitDomProps:ln,mode:Zt,displayValues:Er,onDisplayValuesChange:La,direction:tr,searchValue:Fn,onSearch:oa,autoClearSearchValue:zt,onSearchSplit:Xr,dropdownMatchSelectWidth:pn,OptionList:wt,emptyOptions:!Qa.length,activeValue:yo,activeDescendantId:"".concat(hr,"_list_").concat(un)})))}),De=$e;De.Option=rt,De.OptGroup=gt;var jt=De,Ft=jt},2071:function(M,b,e){"use strict";e.d(b,{Z:function(){return H}});var a=e(60698),t=e(57370),o=e(37734),s=e(38790),n=e(28314),c=e(47075),l=e(29140),d=e(87608),h=e.n(d),p=e(19570),y=e(33615),g=e(60409),S=e(58757),j=e(19425),x=e(81334),Z=e(61834),B=` + 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; +`,w=["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"],T={},F;function A(Y){var D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,_=Y.getAttribute("id")||Y.getAttribute("data-reactid")||Y.getAttribute("name");if(D&&T[_])return T[_];var ue=window.getComputedStyle(Y),be=ue.getPropertyValue("box-sizing")||ue.getPropertyValue("-moz-box-sizing")||ue.getPropertyValue("-webkit-box-sizing"),ce=parseFloat(ue.getPropertyValue("padding-bottom"))+parseFloat(ue.getPropertyValue("padding-top")),he=parseFloat(ue.getPropertyValue("border-bottom-width"))+parseFloat(ue.getPropertyValue("border-top-width")),Fe=w.map(function(et){return"".concat(et,":").concat(ue.getPropertyValue(et))}).join(";"),Je={sizingStyle:Fe,paddingSize:ce,borderSize:he,boxSizing:be};return D&&_&&(T[_]=Je),Je}function L(Y){var D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,_=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,ue=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;F||(F=document.createElement("textarea"),F.setAttribute("tab-index","-1"),F.setAttribute("aria-hidden","true"),document.body.appendChild(F)),Y.getAttribute("wrap")?F.setAttribute("wrap",Y.getAttribute("wrap")):F.removeAttribute("wrap");var be=A(Y,D),ce=be.paddingSize,he=be.borderSize,Fe=be.boxSizing,Je=be.sizingStyle;F.setAttribute("style","".concat(Je,";").concat(B)),F.value=Y.value||Y.placeholder||"";var et=void 0,ae=void 0,yt,Pt=F.scrollHeight;if(Fe==="border-box"?Pt+=he:Fe==="content-box"&&(Pt-=ce),_!==null||ue!==null){F.value=" ";var bt=F.scrollHeight-ce;_!==null&&(et=bt*_,Fe==="border-box"&&(et=et+ce+he),Pt=Math.max(et,Pt)),ue!==null&&(ae=bt*ue,Fe==="border-box"&&(ae=ae+ce+he),yt=Pt>ae?"":"hidden",Pt=Math.min(ae,Pt))}var Ct={height:Pt,overflowY:yt,resize:"none"};return et&&(Ct.minHeight=et),ae&&(Ct.maxHeight=ae),Ct}var O=["prefixCls","onPressEnter","defaultValue","value","autoSize","onResize","className","style","disabled","onChange","onInternalAutoSize"],$=0,P=1,K=2,U=S.forwardRef(function(Y,D){var _=Y,ue=_.prefixCls,be=_.onPressEnter,ce=_.defaultValue,he=_.value,Fe=_.autoSize,Je=_.onResize,et=_.className,ae=_.style,yt=_.disabled,Pt=_.onChange,bt=_.onInternalAutoSize,Ct=(0,c.Z)(_,O),Le=(0,g.Z)(ce,{value:he,postState:function(gt){return gt!=null?gt:""}}),Ke=(0,n.Z)(Le,2),st=Ke[0],We=Ke[1],ge=function(gt){We(gt.target.value),Pt==null||Pt(gt)},X=S.useRef();S.useImperativeHandle(D,function(){return{textArea:X.current}});var W=S.useMemo(function(){return Fe&&(0,s.Z)(Fe)==="object"?[Fe.minRows,Fe.maxRows]:[]},[Fe]),R=(0,n.Z)(W,2),N=R[0],oe=R[1],ve=!!Fe,te=function(){try{if(document.activeElement===X.current){var gt=X.current,ut=gt.selectionStart,rt=gt.selectionEnd,qe=gt.scrollTop;X.current.setSelectionRange(ut,rt),X.current.scrollTop=qe}}catch(Ve){}},me=S.useState(K),we=(0,n.Z)(me,2),xe=we[0],Se=we[1],ke=S.useState(),ne=(0,n.Z)(ke,2),re=ne[0],se=ne[1],Ee=function(){Se($)};(0,x.Z)(function(){ve&&Ee()},[he,N,oe,ve]),(0,x.Z)(function(){if(xe===$)Se(P);else if(xe===P){var Qe=L(X.current,!1,N,oe);Se(K),se(Qe)}else te()},[xe]);var Re=S.useRef(),fe=function(){Z.Z.cancel(Re.current)},_e=function(gt){xe===K&&(Je==null||Je(gt),Fe&&(fe(),Re.current=(0,Z.Z)(function(){Ee()})))};S.useEffect(function(){return fe},[]);var Pe=ve?re:null,ze=(0,t.Z)((0,t.Z)({},ae),Pe);return(xe===$||xe===P)&&(ze.overflowY="hidden",ze.overflowX="hidden"),S.createElement(j.Z,{onResize:_e,disabled:!(Fe||Je)},S.createElement("textarea",(0,a.Z)({},Ct,{ref:X,style:ze,className:h()(ue,et,(0,o.Z)({},"".concat(ue,"-disabled"),yt)),disabled:yt,value:st,onChange:ge})))}),ee=U,le=["defaultValue","value","onFocus","onBlur","onChange","allowClear","maxLength","onCompositionStart","onCompositionEnd","suffix","prefixCls","classes","showCount","className","style","disabled","hidden","classNames","styles","onResize"];function Q(Y,D){return(0,l.Z)(Y||"").slice(0,D).join("")}function G(Y,D,_,ue){var be=_;return Y?be=Q(_,ue):(0,l.Z)(D||"").length<_.length&&(0,l.Z)(_||"").length>ue&&(be=D),be}var q=S.forwardRef(function(Y,D){var _,ue=Y.defaultValue,be=Y.value,ce=Y.onFocus,he=Y.onBlur,Fe=Y.onChange,Je=Y.allowClear,et=Y.maxLength,ae=Y.onCompositionStart,yt=Y.onCompositionEnd,Pt=Y.suffix,bt=Y.prefixCls,Ct=bt===void 0?"rc-textarea":bt,Le=Y.classes,Ke=Y.showCount,st=Y.className,We=Y.style,ge=Y.disabled,X=Y.hidden,W=Y.classNames,R=Y.styles,N=Y.onResize,oe=(0,c.Z)(Y,le),ve=(0,g.Z)(ue,{value:be,defaultValue:ue}),te=(0,n.Z)(ve,2),me=te[0],we=te[1],xe=(0,S.useRef)(null),Se=S.useState(!1),ke=(0,n.Z)(Se,2),ne=ke[0],re=ke[1],se=S.useState(!1),Ee=(0,n.Z)(se,2),Re=Ee[0],fe=Ee[1],_e=S.useRef(),Pe=S.useRef(0),ze=S.useState(null),Qe=(0,n.Z)(ze,2),gt=Qe[0],ut=Qe[1],rt=function(){var Wt;(Wt=xe.current)===null||Wt===void 0||Wt.textArea.focus()};(0,S.useImperativeHandle)(D,function(){return{resizableTextArea:xe.current,focus:rt,blur:function(){var Wt;(Wt=xe.current)===null||Wt===void 0||Wt.textArea.blur()}}}),(0,S.useEffect)(function(){re(function(ln){return!ge&&ln})},[ge]);var qe=Number(et)>0,Ve=function(Wt){fe(!0),_e.current=me,Pe.current=Wt.currentTarget.selectionStart,ae==null||ae(Wt)},tt=function(Wt){fe(!1);var $e=Wt.currentTarget.value;if(qe){var De,jt=Pe.current>=et+1||Pe.current===((De=_e.current)===null||De===void 0?void 0:De.length);$e=G(jt,_e.current,$e,et)}$e!==me&&(we($e),(0,y.rJ)(Wt.currentTarget,Wt,Fe,$e)),yt==null||yt(Wt)},Oe=function(Wt){var $e=Wt.target.value;if(!Re&&qe){var De=Wt.target.selectionStart>=et+1||Wt.target.selectionStart===$e.length||!Wt.target.selectionStart;$e=G(De,me,$e,et)}we($e),(0,y.rJ)(Wt.currentTarget,Wt,Fe,$e)},Me=function(Wt){var $e=oe.onPressEnter,De=oe.onKeyDown;Wt.key==="Enter"&&$e&&$e(Wt),De==null||De(Wt)},Ne=function(Wt){re(!0),ce==null||ce(Wt)},Te=function(Wt){re(!1),he==null||he(Wt)},Be=function(Wt){var $e;we(""),rt(),(0,y.rJ)(($e=xe.current)===null||$e===void 0?void 0:$e.textArea,Wt,Fe)},nt=(0,y.D7)(me);!Re&&qe&&be==null&&(nt=Q(nt,et));var ot=Pt,wt;if(Ke){var Et=(0,l.Z)(nt).length;(0,s.Z)(Ke)==="object"?wt=Ke.formatter({value:nt,count:Et,maxLength:et}):wt="".concat(Et).concat(qe?" / ".concat(et):""),ot=S.createElement(S.Fragment,null,ot,S.createElement("span",{className:h()("".concat(Ct,"-data-count"),W==null?void 0:W.count),style:R==null?void 0:R.count},wt))}var nn=function(Wt){var $e;N==null||N(Wt),($e=xe.current)!==null&&$e!==void 0&&$e.textArea.style.height&&ut(!0)},$t=!oe.autoSize&&!Ke&&!Je,fn=S.createElement(p.Q,{value:nt,allowClear:Je,handleReset:Be,suffix:ot,prefixCls:Ct,classes:{affixWrapper:h()(Le==null?void 0:Le.affixWrapper,(_={},(0,o.Z)(_,"".concat(Ct,"-show-count"),Ke),(0,o.Z)(_,"".concat(Ct,"-textarea-allow-clear"),Je),_))},disabled:ge,focused:ne,className:st,style:(0,t.Z)((0,t.Z)({},We),gt&&!$t?{height:"auto"}:{}),dataAttrs:{affixWrapper:{"data-count":typeof wt=="string"?wt:void 0}},hidden:X,inputElement:S.createElement(ee,(0,a.Z)({},oe,{onKeyDown:Me,onChange:Oe,onFocus:Ne,onBlur:Te,onCompositionStart:Ve,onCompositionEnd:tt,className:W==null?void 0:W.textarea,style:(0,t.Z)((0,t.Z)({},R==null?void 0:R.textarea),{},{resize:We==null?void 0:We.resize}),disabled:ge,prefixCls:Ct,onResize:nn,ref:xe}))});return fn}),I=q,H=I},33664:function(M,b,e){"use strict";e.d(b,{G:function(){return S},Z:function(){return B}});var a=e(60698),t=e(57370),o=e(47075),s=e(99863),n=e(58757),c={shiftX:64,adjustY:1},l={adjustX:1,shiftY:!0},d=[0,0],h={left:{points:["cr","cl"],overflow:l,offset:[-4,0],targetOffset:d},right:{points:["cl","cr"],overflow:l,offset:[4,0],targetOffset:d},top:{points:["bc","tc"],overflow:c,offset:[0,-4],targetOffset:d},bottom:{points:["tc","bc"],overflow:c,offset:[0,4],targetOffset:d},topLeft:{points:["bl","tl"],overflow:c,offset:[0,-4],targetOffset:d},leftTop:{points:["tr","tl"],overflow:l,offset:[-4,0],targetOffset:d},topRight:{points:["br","tr"],overflow:c,offset:[0,-4],targetOffset:d},rightTop:{points:["tl","tr"],overflow:l,offset:[4,0],targetOffset:d},bottomRight:{points:["tr","br"],overflow:c,offset:[0,4],targetOffset:d},rightBottom:{points:["bl","br"],overflow:l,offset:[4,0],targetOffset:d},bottomLeft:{points:["tl","bl"],overflow:c,offset:[0,4],targetOffset:d},leftBottom:{points:["br","bl"],overflow:l,offset:[-4,0],targetOffset:d}},p=null,y=e(87608),g=e.n(y);function S(w){var T=w.children,F=w.prefixCls,A=w.id,L=w.overlayInnerStyle,O=w.className,$=w.style;return n.createElement("div",{className:g()("".concat(F,"-content"),O),style:$},n.createElement("div",{className:"".concat(F,"-inner"),id:A,role:"tooltip",style:L},typeof T=="function"?T():T))}var j=["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","motion","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlayInnerStyle","arrowContent","overlay","id","showArrow"],x=function(T,F){var A=T.overlayClassName,L=T.trigger,O=L===void 0?["hover"]:L,$=T.mouseEnterDelay,P=$===void 0?0:$,K=T.mouseLeaveDelay,U=K===void 0?.1:K,ee=T.overlayStyle,le=T.prefixCls,Q=le===void 0?"rc-tooltip":le,G=T.children,q=T.onVisibleChange,I=T.afterVisibleChange,H=T.transitionName,Y=T.animation,D=T.motion,_=T.placement,ue=_===void 0?"right":_,be=T.align,ce=be===void 0?{}:be,he=T.destroyTooltipOnHide,Fe=he===void 0?!1:he,Je=T.defaultVisible,et=T.getTooltipContainer,ae=T.overlayInnerStyle,yt=T.arrowContent,Pt=T.overlay,bt=T.id,Ct=T.showArrow,Le=Ct===void 0?!0:Ct,Ke=(0,o.Z)(T,j),st=(0,n.useRef)(null);(0,n.useImperativeHandle)(F,function(){return st.current});var We=(0,t.Z)({},Ke);"visible"in T&&(We.popupVisible=T.visible);var ge=function(){return n.createElement(S,{key:"content",prefixCls:Q,id:bt,overlayInnerStyle:ae},Pt)};return n.createElement(s.Z,(0,a.Z)({popupClassName:A,prefixCls:Q,popup:ge,action:O,builtinPlacements:h,popupPlacement:ue,ref:st,popupAlign:ce,getPopupContainer:et,onPopupVisibleChange:q,afterPopupVisibleChange:I,popupTransitionName:H,popupAnimation:Y,popupMotion:D,defaultPopupVisible:Je,autoDestroy:Fe,mouseLeaveDelay:U,popupStyle:ee,mouseEnterDelay:P,arrow:Le},We),G)},Z=(0,n.forwardRef)(x),B=Z},42156:function(M,b,e){"use strict";e.d(b,{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]:{},c=[];return a.Children.forEach(s,function(l){l==null&&!n.keepEmpty||(Array.isArray(l)?c=c.concat(o(l)):(0,t.isFragment)(l)&&l.props?c=c.concat(o(l.props.children,n)):c.push(l))}),c}},19075:function(M,b,e){"use strict";e.d(b,{Z:function(){return a}});function a(){return!!(typeof window!="undefined"&&window.document&&window.document.createElement)}},70700:function(M,b,e){"use strict";e.d(b,{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(M,b,e){"use strict";e.d(b,{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",c=new Map;function l(){var B=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=B.mark;return w?w.startsWith("data-")?w:"data-".concat(w):n}function d(B){if(B.attachTo)return B.attachTo;var w=document.querySelector("head");return w||document.body}function h(B){return B==="queue"?"prependQueue":B?"prepend":"append"}function p(B){return Array.from((c.get(B)||B).children).filter(function(w){return w.tagName==="STYLE"})}function y(B){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!(0,a.Z)())return null;var T=w.csp,F=w.prepend,A=w.priority,L=A===void 0?0:A,O=h(F),$=O==="prependQueue",P=document.createElement("style");P.setAttribute(o,O),$&&L&&P.setAttribute(s,"".concat(L)),T!=null&&T.nonce&&(P.nonce=T==null?void 0:T.nonce),P.innerHTML=B;var K=d(w),U=K.firstChild;if(F){if($){var ee=p(K).filter(function(le){if(!["prepend","prependQueue"].includes(le.getAttribute(o)))return!1;var Q=Number(le.getAttribute(s)||0);return L>=Q});if(ee.length)return K.insertBefore(P,ee[ee.length-1].nextSibling),P}K.insertBefore(P,U)}else K.appendChild(P);return P}function g(B){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},T=d(w);return p(T).find(function(F){return F.getAttribute(l(w))===B})}function S(B){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},T=g(B,w);if(T){var F=d(w);F.removeChild(T)}}function j(B,w){var T=c.get(B);if(!T||!(0,t.Z)(document,T)){var F=y("",w),A=F.parentNode;c.set(B,A),B.removeChild(F)}}function x(){c.clear()}function Z(B,w){var T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},F=d(T);j(F,T);var A=g(w,T);if(A){var L,O;if((L=T.csp)!==null&&L!==void 0&&L.nonce&&A.nonce!==((O=T.csp)===null||O===void 0?void 0:O.nonce)){var $;A.nonce=($=T.csp)===null||$===void 0?void 0:$.nonce}return A.innerHTML!==B&&(A.innerHTML=B),A}var P=y(B,T);return P.setAttribute(l(T),w),P}},69188:function(M,b,e){"use strict";e.d(b,{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(M,b){"use strict";b.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,c=s.height;if(n||c)return!0}}return!1}},4171:function(M,b,e){"use strict";e.d(b,{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(M,b){"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}}};b.Z=e},52323:function(M,b,e){"use strict";var a;e.d(b,{s:function(){return w},v:function(){return O}});var t=e(74632),o=e(79290),s=e(38790),n=e(57370),c=e(26736),l=(0,n.Z)({},a||(a=e.t(c,2))),d=l.version,h=l.render,p=l.unmountComponentAtNode,y;try{var g=Number((d||"").split(".")[0]);g>=18&&(y=l.createRoot)}catch(P){}function S(P){var K=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;K&&(0,s.Z)(K)==="object"&&(K.usingClientEntryPoint=P)}var j="__rc_react_root__";function x(P,K){S(!0);var U=K[j]||y(K);S(!1),U.render(P),K[j]=U}function Z(P,K){h(P,K)}function B(P,K){}function w(P,K){if(y){x(P,K);return}Z(P,K)}function T(P){return F.apply(this,arguments)}function F(){return F=(0,o.Z)((0,t.Z)().mark(function P(K){return(0,t.Z)().wrap(function(ee){for(;;)switch(ee.prev=ee.next){case 0:return ee.abrupt("return",Promise.resolve().then(function(){var le;(le=K[j])===null||le===void 0||le.unmount(),delete K[j]}));case 1:case"end":return ee.stop()}},P)})),F.apply(this,arguments)}function A(P){p(P)}function L(P){}function O(P){return $.apply(this,arguments)}function $(){return $=(0,o.Z)((0,t.Z)().mark(function P(K){return(0,t.Z)().wrap(function(ee){for(;;)switch(ee.prev=ee.next){case 0:if(y===void 0){ee.next=2;break}return ee.abrupt("return",T(K));case 2:A(K);case 3:case"end":return ee.stop()}},P)})),$.apply(this,arguments)}},17502:function(M,b,e){"use strict";e.d(b,{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 c=document.createElement("div");c.style.width="100%",c.style.height="200px";var l=document.createElement("div"),d=l.style;d.position="absolute",d.top="0",d.left="0",d.pointerEvents="none",d.visibility="hidden",d.width="200px",d.height="150px",d.overflow="hidden",l.appendChild(c),document.body.appendChild(l);var h=c.offsetWidth;l.style.overflow="scroll";var p=c.offsetWidth;h===p&&(p=l.clientWidth),document.body.removeChild(l),a=h-p}return a}function o(n){var c=n.match(/^(.*)px$/),l=Number(c==null?void 0:c[1]);return Number.isNaN(l)?t():l}function s(n){if(typeof document=="undefined"||!n||!(n instanceof Element))return{width:0,height:0};var c=getComputedStyle(n,"::-webkit-scrollbar"),l=c.width,d=c.height;return{width:o(l),height:o(d)}}},51729:function(M,b,e){"use strict";e.d(b,{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 c,l=arguments.length,d=new Array(l),h=0;h2&&arguments[2]!==void 0?arguments[2]:!1,l=new Set;function d(h,p){var y=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,g=l.has(h);if((0,t.ZP)(!g,"Warning: There may be circular references"),g)return!1;if(h===p)return!0;if(c&&y>1)return!1;l.add(h);var S=y+1;if(Array.isArray(h)){if(!Array.isArray(p)||h.length!==p.length)return!1;for(var j=0;j
  • \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","import React, { ReactNode } from 'react';\n\ninterface FloatWrapperProps {\n children: ReactNode;\n eventHandler?: (event: React.MouseEvent) => void;\n}\n\nexport const FloatWrapper: React.FC = ({\n children,\n eventHandler,\n}) => {\n const mouseEventHandler = (event: React.MouseEvent) => {\n if (eventHandler) {\n eventHandler(event);\n } else {\n event.stopPropagation();\n }\n };\n\n return (\n \n {children}\n
    \n );\n};\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 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 {\n OBJECT_ICON,\n EBasicToolItem,\n EObjectType,\n EDITOR_TOOL_ICON,\n EActionToolItem,\n ESubToolItem,\n EToolType,\n EnumModelType,\n} from '../../constants';\nimport { CloseOutlined } from '@ant-design/icons';\nimport Icon from '@ant-design/icons/lib/components/Icon';\nimport { Button, Card, Select, Slider, Space } from 'antd';\nimport classNames from 'classnames';\nimport { useMemo, memo, useState } from 'react';\nimport { FloatWrapper } from '../FloatWrapper';\nimport { useLocale } from 'dds-utils/locale';\nimport { OnAiAnnotationFunc } from '../../hooks/useActions';\nimport { useImmer } from 'use-immer';\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 { Category } from '../../type';\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 aiLabels?: string;\n limitConf: number;\n categories: Category[];\n setAiLabels: (labels?: string) => void;\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 aiLabels,\n categories,\n naturalSize,\n limitConf,\n setAiLabels,\n onExitAIAnnotation,\n onAiAnnotation,\n onChangeConfidenceRange,\n onChangeLimitConf,\n onAcceptValidObjects,\n onCancelBatchEdit,\n forceChangeTool,\n }) => {\n const { localeText } = useLocale();\n const [inputText, setInputText] = useState('');\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: localeText('DDSAnnotator.smart.mask.name'),\n icon: OBJECT_ICON[EObjectType.Mask],\n },\n };\n\n const labelOptions = useMemo(() => {\n if (selectedTool === EBasicToolItem.Rectangle) {\n let options = categories?.map((c) => c.name);\n options =\n inputText && !options.includes(inputText)\n ? [inputText, ...options]\n : options;\n return options.map((text) => (\n \n {text}\n \n ));\n } else if (selectedTool === EBasicToolItem.Polygon) {\n return [];\n } else if (selectedTool === EBasicToolItem.Skeleton) {\n return ['person'].map((label) => (\n \n {label}\n \n ));\n }\n }, [selectedTool, categories, inputText]);\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 (\n (selectedTool === EBasicToolItem.Mask &&\n selectedSubTool !== ESubToolItem.AutoSegmentEverything) ||\n selectedTool === EBasicToolItem.Polygon\n )\n 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 onApplyCurrMaskObjs = () => {\n onAcceptValidObjects();\n forceChangeTool(EBasicToolItem.Drag, ESubToolItem.PenAdd);\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 setAiLabels(value)}\n onSearch={(value) => setInputText(value)}\n onInputKeyDown={(e) => {\n if (e.code !== 'Enter') {\n e.stopPropagation();\n }\n }}\n // @ts-ignore\n getPopupContainer={() =>\n document.getElementById('smart-annotation-editor')\n }\n >\n {labelOptions}\n \n onAiAnnotation({ aiLabels })}\n >\n {localeText('DDSAnnotator.smart.annotate')}\n \n
    \n ))}\n {selectedTool === EBasicToolItem.Rectangle &&\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
    \n
    \n
    \n {localeText('DDSAnnotator.smart.modelTyle')}\n
    \n setAiLabels(value)}\n onSearch={(value) => setInputText(value)}\n onInputKeyDown={(e) => {\n if (e.code !== 'Enter') {\n e.stopPropagation();\n }\n }}\n // @ts-ignore\n getPopupContainer={() =>\n document.getElementById('smart-annotation-editor')\n }\n >\n {labelOptions}\n \n
    \n
    \n onAiAnnotation({ aiLabels })}\n >\n {localeText('DDSAnnotator.smart.annotate')}\n \n \n ))}\n {selectedTool === EBasicToolItem.Mask &&\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 \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 { Button, Tooltip } from 'antd';\nimport { LeftOutlined, RightOutlined } from '@ant-design/icons';\nimport classNames from 'classnames';\nimport { AnnoItem } from '../../type';\nimport { memo, useState } from 'react';\nimport { useKeyPress } from 'ahooks';\nimport { EDITOR_SHORTCUTS, EShortcuts } from '../../constants/shortcuts';\nimport { useLocale } from 'dds-utils/locale';\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 { useCallback, useState } from 'react';\nimport { DraftFunction, Updater, useImmer } from 'use-immer';\nimport { cloneDeep, isEqual } from 'lodash';\nimport { scaleDrawData, scaleFramesObjects } from '../utils/compute';\nimport { BaseObject, DrawData, VideoFramesData } from '../type';\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 [historyQueue, setHistoryQueue] = useImmer([]);\n const [currentIndex, setCurrIndex] = useState(0);\n const maxCacheSize = 20;\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 if (record.framesData) {\n setFramesData?.({\n ...record.framesData,\n objects: scaleFramesObjects(\n record.framesData.objects,\n record.clientSize,\n clientSize,\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) => prevIndex - 1);\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) => prevIndex + 1);\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 = {\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 // console.log('>>> updata history', item.drawData, framesData);\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 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 hadChangeRecord: historyQueue.length > 1 && currentIndex !== 0,\n };\n};\n\nexport default useHistory;\n","import { EElementType, EObjectType } from '../constants';\nimport { Updater } from 'use-immer';\nimport {\n BaseObject,\n DrawData,\n EditState,\n EditorMode,\n IAnnotationObject,\n DrawObject,\n IEditingAttribute,\n EObjectStatus,\n VideoFramesData,\n} from '../type';\nimport { useCallback, useMemo } from 'react';\nimport { cloneDeep } from 'lodash';\n\ninterface IProps {\n mode: EditorMode;\n annotations: BaseObject[];\n setAnnotations: Updater;\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 limitActiveObjectAfterCreate?: boolean;\n updateHistory: (drawData: DrawData, theframesData?: VideoFramesData) => void;\n}\n\nconst useObjects = ({\n mode,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n framesData,\n setFramesData,\n setEditState,\n translateToObject,\n judgeEditingAttribute,\n limitActiveObjectAfterCreate,\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, notActive?: boolean) => {\n if (mode !== EditorMode.Edit) return;\n setDrawDataWithHistory((s) => {\n s.objectList.push(object);\n\n if (limitActiveObjectAfterCreate) {\n s.creatingObject = undefined;\n s.activeObjectIndex = -1;\n } else {\n s.creatingObject = { ...object };\n s.activeObjectIndex = notActive ? -1 : s.objectList.length - 1;\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\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]);\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 });\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 { __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 React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useEventListener, useMouse, useSize } from 'ahooks';\nimport { useImmer } from 'use-immer';\nimport { isInCanvas, zoomImgSize } from '../utils/compute';\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 { fixedFloatNum } from 'dds-utils/digit';\nimport { DrawData } from '../type';\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 { useCallback, useEffect } from 'react';\nimport { DrawData, EditState } from '../type';\nimport { Direction } from '../utils/compute';\nimport { EBasicToolItem } from '../constants';\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 { Updater } from 'use-immer';\nimport { useKeyPress } from 'ahooks';\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","import { useCallback } from 'react';\nimport { Updater } from 'use-immer';\nimport { Modal, message } from 'antd';\nimport {\n EBasicToolItem,\n EnumModelType,\n EObjectType,\n ESubToolItem,\n} from '../constants';\nimport {\n DrawData,\n EditState,\n EditorMode,\n IAnnotationObject,\n EObjectStatus,\n IImageDisplayOptions,\n IAnnotsDisplayOptions,\n} from '../type';\nimport { objectToRle, rleToCanvas } from '../tools/useMask';\nimport { useLocale } from 'dds-utils/locale';\nimport { cloneDeep } from 'lodash';\nimport { OnAiAnnotationFunc } from './useActions';\n\ninterface IProps {\n mode: EditorMode;\n drawData: DrawData;\n manualMode?: boolean;\n setDrawData: Updater;\n setDrawDataWithHistory: Updater;\n setAiLabels: (labels?: string) => void;\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 setAiLabels,\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, true);\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, true);\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 (\n [ESubToolItem.PenErase, ESubToolItem.BrushErase].includes(\n s.selectedSubTool,\n )\n ) {\n s.selectedSubTool = ESubToolItem.PenAdd;\n }\n });\n setEditState((s) => {\n s.latestLabelId = labelId;\n });\n },\n [drawData.creatingObject, drawData.activeObjectIndex, drawData.objectList],\n );\n\n const onCloseAnnotationEditor = useCallback(() => {\n setDrawData((s) => {\n s.creatingObject = undefined;\n s.activeObjectIndex = -1;\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 setAiLabels(undefined);\n }, [drawData.objectList]);\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]);\n\n const selectTool = useCallback(\n (tool: EBasicToolItem) => {\n if (\n mode !== EditorMode.Edit ||\n (tool === drawData.selectedTool && drawData.AIAnnotation) ||\n drawData.isBatchEditing\n )\n return;\n setDrawData((s) => {\n s.selectedTool = tool;\n if (tool === EBasicToolItem.Mask) {\n s.selectedSubTool = s.AIAnnotation\n ? ESubToolItem.AutoSegmentByBox\n : ESubToolItem.PenAdd;\n } else if (tool === EBasicToolItem.Polygon) {\n s.selectedSubTool = ESubToolItem.AutoSegmentByBox;\n } else if (\n tool === EBasicToolItem.Rectangle &&\n s.selectedModel === EnumModelType.IVP\n ) {\n s.selectedSubTool = ESubToolItem.PositiveVisualPrompt;\n }\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.selectedModel,\n ],\n );\n\n const selectSubTool = useCallback(\n (tool: ESubToolItem) => {\n if (\n mode !== EditorMode.Edit ||\n tool === drawData.selectedSubTool ||\n (drawData.selectedTool === EBasicToolItem.Mask &&\n drawData.isBatchEditing)\n )\n return;\n\n setDrawData((s) => {\n s.selectedSubTool = tool;\n });\n\n // save unfinished mask object\n if (tool === ESubToolItem.AutoEdgeStitching && drawData.creatingObject) {\n onFinishCurrCreate(\n drawData.creatingObject.labelId || editState.latestLabelId || '',\n );\n }\n },\n [mode, drawData.selectedSubTool, drawData.isBatchEditing],\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 }, []);\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 (!process.env.MODEL_API_PATH && active) {\n displayAIModeUnavailableModal();\n return;\n }\n if (mode !== EditorMode.Edit || drawData.isBatchEditing || manualMode)\n return;\n setDrawData((s) => {\n s.AIAnnotation = active;\n });\n },\n [mode, drawData.isBatchEditing],\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],\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],\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 onSelectModel = useCallback((type: EnumModelType) => {\n setDrawData((s) => {\n s.selectedModel = type;\n if (type === EnumModelType.IVP) {\n s.selectedSubTool = ESubToolItem.PositiveVisualPrompt;\n } else {\n // TODO\n s.selectedSubTool = ESubToolItem.PenAdd;\n }\n });\n }, []);\n\n return {\n onChangeObjectLabel,\n onFinishCurrCreate,\n onCloseAnnotationEditor,\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 };\n};\n\nexport default useToolActions;\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 { useCallback, useRef, useState } from 'react';\nimport { CursorState } from 'ahooks/lib/useMouse';\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';\nimport {\n EBasicToolItem,\n EBasicToolTypeMap,\n EElementType,\n EnumModelType,\n EObjectType,\n} from '../constants';\nimport { Updater } from 'use-immer';\nimport { ToolInstanceHookReturn } from '../tools/base';\nimport { useEventListener, useRafInterval } from 'ahooks';\nimport { fixedFloatNum } from 'dds-utils/digit';\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 updateRender();\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.activeObjectIndex = index;\n if (!drawData.objectList[index].frameEmpty) {\n s.creatingObject = {\n ...drawData.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 || drawData.selectedModel === 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 object\n setEditState((s) => {\n s.allowMove = true;\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 checkContainerVisibleArea();\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 checkContainerVisibleArea();\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 { FloatWrapper } from '../FloatWrapper';\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 React from 'react';\nimport { CursorState } from 'ahooks/lib/useMouse';\nimport {\n DrawData,\n EditState,\n IAnnotationObject,\n ICreatingObject,\n} from '../type';\nimport { translateAnnotCoord } from '../utils/compute';\nimport {\n EBasicToolItem,\n EElementType,\n EnumModelType,\n EObjectType,\n} from '../constants';\nimport {\n addFilter,\n clearCanvas,\n drawImage,\n removeFilter,\n resizeSmoothCanvas,\n setCanvasGlobalAlpha,\n} from '../utils/draw';\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 { hexToRgba } from '../utils/color';\nimport PopoverMenu from '../components/PopoverMenu';\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}\n\nconst useCanvasRender = ({\n visible,\n drawData,\n editState,\n clientSize,\n imagePos,\n containerMouse,\n canvasRef,\n activeCanvasRef,\n imgRef,\n objectHooksMap,\n}: IProps) => {\n // =================================================================================================================\n // Render\n // =================================================================================================================\n\n const getObjectStyles = (\n object: IAnnotationObject,\n color: string,\n status?: 'focus' | '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 === '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 === 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 = (object: IAnnotationObject, isFocus: boolean) => {\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 styles = getObjectStyles(\n object,\n object.color,\n isFocus ? 'focus' : undefined,\n );\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 });\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 renderObject(obj, drawData.editingAttribute?.index === index);\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 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(theDrawData.objectList[editState.focusObjectIndex], true);\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 { 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 { useCallback, useEffect } from 'react';\nimport { cloneDeep } from 'lodash';\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';\nimport { Updater } from 'use-immer';\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,\n clearHistoryQueue: boolean = true,\n ) => {\n setAnnotations([]);\n resetDrawData();\n resetEditData();\n if (clearHistoryQueue) clearHistory();\n if (visible) {\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","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 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 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 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 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 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","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 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 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","import { TShortcutItem } from '../constants/shortcuts';\nimport { useLocale } from 'dds-utils/locale';\nimport {\n EBasicToolItem,\n EnumModelType,\n EObjectType,\n ESubToolItem,\n} from '../constants';\nimport Icon from '@ant-design/icons';\nimport { ReactComponent as PenAddIcon } from '../assets/pen-add.svg';\nimport { ReactComponent as PenEraseIcon } from '../assets/pen-erase.svg';\nimport { ReactComponent as BrushAddIcon } from '../assets/brush-add.svg';\nimport { ReactComponent as BrushEraseIcon } from '../assets/brush-erase.svg';\nimport { ReactComponent as MagicBoxIcon } from '../assets/magic-box.svg';\nimport { ReactComponent as ClickIcon } from '../assets/magic-click.svg';\nimport { ReactComponent as EdgeStitchIcon } from '../assets/edge-stitch.svg';\nimport { ReactComponent as SegmentEverythingIcon } from '../assets/segment-everything.svg';\nimport { ReactComponent as StrokeIcon } from '../assets/magic-brush.svg';\nimport { ReactComponent as AddPromptIcon } from '../assets/add-prompt.svg';\nimport { ReactComponent as RemovePromptIcon } from '../assets/remove-prompt.svg';\nimport { useMemo } from 'react';\nimport { DrawData } from '../type';\nimport { Slider } from 'antd';\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 isManualAvailable = useMemo(() => {\n return (\n !drawData.prompt.sessionId &&\n !(\n drawData.prompt.promptsQueue && drawData.prompt.promptsQueue.length > 0\n ) &&\n !drawData.isBatchEditing\n );\n }, [drawData.prompt, 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: isManualAvailable,\n },\n {\n key: ESubToolItem.PenErase,\n name: localeText('DDSAnnotator.subtoolbar.mask.penErase'),\n icon: ,\n available: isManualAvailable && !!drawData.creatingObject,\n },\n {\n key: ESubToolItem.BrushAdd,\n name: localeText('DDSAnnotator.subtoolbar.mask.brushAdd'),\n icon: ,\n available: isManualAvailable,\n withSize: true,\n },\n {\n key: ESubToolItem.BrushErase,\n name: localeText('DDSAnnotator.subtoolbar.mask.brushErase'),\n icon: ,\n available: isManualAvailable && !!drawData.creatingObject,\n withSize: true,\n },\n ],\n [isManualAvailable, drawData.creatingObject],\n );\n\n const smartMaskTools: 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 key: ESubToolItem.AutoEdgeStitching,\n name: localeText('DDSAnnotator.subtoolbar.mask.edgeStitch'),\n icon: ,\n available: true,\n withSize: true,\n },\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 }, [isSegEverythingAvailable]);\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: true,\n },\n ];\n }, []);\n\n const showSubTools = useMemo(() => {\n if (drawData.selectedTool === EBasicToolItem.Mask) return true;\n\n if (\n drawData.selectedTool === EBasicToolItem.Polygon &&\n drawData.AIAnnotation\n )\n return true;\n\n if (\n drawData.selectedTool === EBasicToolItem.Rectangle &&\n drawData.AIAnnotation &&\n drawData.selectedModel === EnumModelType.IVP\n )\n return true;\n\n if (drawData.creatingObject?.type === EObjectType.Mask) return true;\n\n if (\n drawData.creatingObject?.type === EObjectType.Polygon &&\n drawData.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 return {\n basicTools: basicMaskTools,\n smartTools: smartMaskTools,\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 === 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 basicMaskTools,\n smartMaskTools,\n smartPolygonTools,\n ivpTools,\n drawData.pointResolution,\n ]);\n\n return {\n showSubTools,\n currSubTools,\n };\n};\n\nexport default useSubTools;\n","import { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { getCategoryColors, hsvToRgb, rgbArrayToHex } from '../utils/color';\nimport { Category, EditState } from '../type';\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","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 { Button, Spin } from 'antd';\nimport { ReloadOutlined } from '@ant-design/icons';\nimport ImgBroken from '../../assets/img-broken.svg';\nimport React, { useState } from 'react';\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 {\n BODY_TEMPLATE,\n ELabelType,\n EObjectType,\n KEYPOINTS_VISIBLE_TYPE,\n} from '../constants';\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} from '../utils/compute';\nimport {\n IAnnotationObject,\n EObjectStatus,\n DrawObject,\n Category,\n BaseObject,\n} from '../type';\nimport { rleToCanvas } from '../tools/useMask';\nimport { cloneDeep } from 'lodash';\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 } = 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 && mask.length) {\n Object.assign(newObj, {\n maskRle: mask,\n maskCanvasElement: rleToCanvas(mask, 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 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: maskRle,\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 Object.assign(newObj, {\n maskRle: labelValue,\n maskCanvasElement: rleToCanvas(labelValue, 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 = maskRle;\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 React, { memo } from 'react';\nimport classNames from 'classnames';\nimport { Button, Checkbox, Form, Input, Radio, Tooltip } from 'antd';\nimport { EActionType, IAttribute, IAttributeValue } from '../../type';\nimport { isEqual } from 'lodash';\nimport './index.less';\nimport { ReactComponent as Attribute } from '../../assets/attribute.svg';\nimport { useLocale } from 'dds-utils/locale';\n\nexport interface IProps {\n isDarkTheme?: boolean;\n disabled?: boolean;\n data: (IAttribute & {\n hasAttributes?: boolean;\n requireAttribute?: boolean;\n })[];\n values: IAttributeValue[];\n onChangeValue: (index: number, value: IAttributeValue) => void;\n onFocusInput?: (\n index: number,\n event: React.FocusEvent,\n ) => void;\n onClickAttributes?: (index: number) => void;\n}\n\nconst propsAreEqual = (prev: IProps, next: IProps): boolean => {\n return (\n prev.isDarkTheme === next.isDarkTheme &&\n prev.disabled === next.disabled &&\n isEqual(prev.data, next.data) &&\n isEqual(prev.values, next.values) &&\n prev.onChangeValue === next.onChangeValue &&\n prev.onFocusInput === next.onFocusInput &&\n prev.onClickAttributes === next.onClickAttributes\n );\n};\n\nconst AttributesForm: React.FC = memo((props) => {\n const { localeText } = useLocale();\n const {\n isDarkTheme,\n disabled,\n data,\n values,\n onChangeValue,\n onFocusInput,\n onClickAttributes,\n } = props;\n\n return (\n \n {data.map((item, index) => (\n \n {item.field}\n \n \n }\n shape={'circle'}\n onClick={(event) => {\n event.stopPropagation();\n onClickAttributes?.(index);\n }}\n />\n \n \n ) : (\n item.field\n )\n }\n >\n {item.type === EActionType.Radio && (\n ({\n label,\n value: index,\n }))}\n onChange={(event) =>\n onChangeValue(index, event.target.value as number)\n }\n disabled={disabled}\n />\n )}\n {item.type === EActionType.Checkbox && (\n ({\n label,\n value: index,\n }))}\n onChange={(values) => onChangeValue(index, values as number[])}\n disabled={disabled}\n />\n )}\n {item.type === EActionType.Text && (\n onChangeValue(index, event.target.value)}\n onFocus={(event) => onFocusInput?.(index, event)}\n onKeyUp={(event) => event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n disabled={disabled}\n />\n )}\n
    \n ))}\n \n );\n}, propsAreEqual);\n\nexport default AttributesForm;\n","import React, { memo, useMemo, useState } from 'react';\nimport { Button, Tabs, Tooltip } from 'antd';\nimport classNames from 'classnames';\nimport { useLocale } from 'dds-utils/locale';\nimport {\n Category,\n DrawData,\n IAttributeValue,\n IEditingAttribute,\n} from '../../type';\nimport { isEqual } from 'lodash';\nimport './index.less';\nimport { Updater } from 'use-immer';\nimport { EyeInvisibleOutlined, EyeOutlined } from '@ant-design/icons';\nimport AttributesForm from '../AttributesForm';\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 // 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","import { Button, Card, message } from 'antd';\nimport { useImmer } from 'use-immer';\nimport { FloatWrapper } from '../FloatWrapper';\nimport { memo, useEffect } from 'react';\nimport { useLocale } from 'dds-utils/locale';\nimport { IAttributeValue, IEditingAttribute } from '../../type';\nimport './index.less';\nimport AttributesForm from '../AttributesForm';\nimport { CloseOutlined } from '@ant-design/icons';\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 &&\n (values[index] === undefined || values[index] === null),\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
    {localeText('DDSAnnotator.attribute.add')}
    \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 { Button, Card } from 'antd';\nimport classNames from 'classnames';\nimport { FloatWrapper } from '../FloatWrapper';\nimport { memo, useMemo } from 'react';\nimport { useKeyPress } from 'ahooks';\nimport { EDITOR_SHORTCUTS, EShortcuts } from '../../constants/shortcuts';\nimport { useLocale } from 'dds-utils/locale';\nimport { EditorMode, IAnnotationObject } from '../../type';\nimport { EObjectType } from '../../constants';\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","import { useCallback } from 'react';\nimport {\n Category,\n DrawData,\n IAnnotationObject,\n IAttributeValue,\n} from '../type';\nimport { Updater } from 'use-immer';\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((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\n const onCancelAttibuteEdit = () => {\n setDrawDataWithHistory((s) => {\n s.editingAttribute = undefined;\n });\n };\n\n return {\n judgeEditingAttribute,\n onConfirmAttibuteEdit,\n onCancelAttibuteEdit,\n };\n}\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 { Dropdown, Menu, MenuProps, Tooltip } from 'antd';\nimport { ReactComponent as KeyboardIcon } from '../../assets/keyboard-down.svg';\nimport Icon from '@ant-design/icons';\nimport { memo, useMemo } from 'react';\nimport {\n convertAliasToSymbol,\n EDITOR_SHORTCUTS,\n EShortcuts,\n EShortcutType,\n TShortcutItem,\n} from '../../constants/shortcuts';\nimport { useLocale } from 'dds-utils/locale';\nimport './index.less';\nimport classNames from 'classnames';\nimport { EditorMode } from '../../type';\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","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","import { Button, Popover } from 'antd';\nimport Icon, { ZoomInOutlined, ZoomOutOutlined } from '@ant-design/icons';\nimport classNames from 'classnames';\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 { ReactComponent as DragToolIcon } from '../../assets/drag.svg';\nimport { useKeyPress } from 'ahooks';\nimport {\n EDITOR_SHORTCUTS,\n EShortcuts,\n TShortcutItem,\n} from '../../constants/shortcuts';\nimport { memo, useMemo } from 'react';\nimport { getIconFromShortcut } from '../ShortcutsInfo';\nimport { useLocale } from 'dds-utils/locale';\nimport { ReactComponent as ZoomResize } from '../../assets/zoomResize.svg';\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 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 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 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","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","import { Button, Popover, Slider, Tooltip } from 'antd';\nimport Icon from '@ant-design/icons';\nimport { useLocale } from 'dds-utils/locale';\nimport { ReactComponent as SettingIcon } from '../../assets/settings-sliders.svg';\nimport { ReactComponent as DisplayReset } from '../../assets/displayReset.svg';\nimport { memo, useMemo } from 'react';\nimport {\n DEFAULT_IMG_DISPLAY_OPTIONS,\n IAnnotsDisplayOptions,\n IImageDisplayOptions,\n} from '../../type';\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 { memo } from 'react';\nimport classNames from 'classnames';\nimport { useLocale } from 'dds-utils/locale';\nimport { EditorMode } from '../../type';\nimport { ReactComponent as LabelIcon } from '../../assets/label.svg';\nimport { ReactComponent as ReviewIcon } from '../../assets/review.svg';\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 React from 'react';\nimport classNames from 'classnames';\nimport { Tooltip } from 'antd';\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 { useLocale } from 'dds-utils/locale';\nimport { PlusOutlined } from '@ant-design/icons';\nimport { Button, Divider, Input, InputRef, Space } from 'antd';\nimport { memo, useRef, useState } from 'react';\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';\nimport { Category, DrawData } from '../../type';\nimport CategoryCreator from '../CategoryCreator';\nimport {\n EBasicToolItem,\n EBasicToolTypeMap,\n LABEL_TOOL_MAP,\n OBJECT_ICON,\n} from '../../constants';\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 { Select } from 'antd';\nimport { useLocale } from 'dds-utils/locale';\nimport { memo } from 'react';\nimport { DrawData } from '../../type';\nimport {\n EnumModelType,\n EObjectType,\n MODEL_INTRO_MAP,\n OBJECT_AI_ICON,\n} from '../../constants';\nimport './index.less';\nimport Icon from '@ant-design/icons';\n\ninterface IProps {\n drawData: DrawData;\n modelOptions: EnumModelType[];\n onSelectModel: (type: EnumModelType) => void;\n}\n\nconst ModelSelector: React.FC = memo(\n ({ drawData, modelOptions, onSelectModel }) => {\n const { localeText } = useLocale();\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]?.name}\n \n ))}\n \n
    \n );\n },\n);\n\nexport default ModelSelector;\n","import { Button, Popover, Slider } from 'antd';\nimport classNames from 'classnames';\nimport { ESubToolItem } from '../../constants';\nimport { FloatWrapper } from '../FloatWrapper';\nimport { memo, useMemo } from 'react';\nimport { useKeyPress } from 'ahooks';\nimport { TSubtoolOptions, TToolItem } from '@/Annotator/hooks/useSubtools';\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
    \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 { useMemo } from 'react';\nimport { Button, Tooltip } from 'antd';\nimport Icon, { ArrowLeftOutlined } from '@ant-design/icons';\nimport { ReactComponent as LogoIcon } from '../assets/logo.svg';\nimport { ReactComponent as DocsIcon } from '../assets/docs.svg';\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';\nimport { useLocale } from 'dds-utils/locale';\nimport DisplaySettings from '../components/DisplaySettings';\nimport { ShortcutsInfo } from '../components/ShortcutsInfo';\nimport EditorStatus from '../components/EditorStatus';\nimport TopTools from '../components/TopTools';\nimport LabelSelector from '../components/LabelSelector';\nimport ModelSelector from '../components/ModelSelector';\nimport SubToolBar from '../components/SubToolBar';\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 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 {\n EBasicToolItem,\n EnumModelType,\n MODEL_INTRO_MAP,\n TOOL_MODELS_MAP,\n} from '../../constants';\nimport Icon from '@ant-design/icons';\nimport { Modal, Tag } from 'antd';\nimport { memo, useMemo } from 'react';\nimport './index.less';\nimport { useLocale } from 'dds-utils';\nimport classNames from 'classnames';\n\ninterface IProps {\n selectedTool: EBasicToolItem;\n AIAnnotation: boolean;\n selectedModel?: EnumModelType;\n onSelectModel: (type: EnumModelType) => void;\n onCloseModal: () => void;\n}\n\nconst ModelSelectModal: React.FC = memo(\n ({\n selectedTool,\n AIAnnotation,\n selectedModel,\n onSelectModel,\n onCloseModal,\n }) => {\n const { localeText } = useLocale();\n\n const autoOpen = useMemo(() => {\n if (\n AIAnnotation &&\n TOOL_MODELS_MAP[selectedTool] &&\n TOOL_MODELS_MAP[selectedTool]!.length > 1 &&\n !selectedModel\n ) {\n return true;\n }\n return false;\n }, [AIAnnotation, selectedTool, selectedModel]);\n\n return (\n \n
    \n {TOOL_MODELS_MAP[selectedTool]?.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 {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\nexport default ModelSelectModal;\n","// extracted by mini-css-extract-plugin\nexport default {\"item\":\"item___v9XQ_\",\"selected\":\"selected___H8gjQ\",\"info\":\"info___YLqTh\",\"action\":\"action___zGuUy\",\"btn\":\"btn___ean1l\"};","import { KEYPOINTS_VISIBLE_TYPE } from '../../constants';\nimport { useLocale } from 'dds-utils/locale';\nimport { Select } from 'antd';\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","// 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);","import { Card } from 'antd';\nimport classNames from 'classnames';\nimport { FloatWrapper } from '../FloatWrapper';\nimport { memo, useMemo, useState } from 'react';\nimport { useLocale } from 'dds-utils/locale';\nimport { EditState, EditorMode, IAnnotationObject } from '../../type';\nimport {\n EElementType,\n EObjectType,\n KEYPOINTS_VISIBLE_TYPE,\n} from '../../constants';\nimport './index.less';\nimport PointItem from '../PointItem';\nimport { DownCircleOutlined, UpCircleOutlined } from '@ant-design/icons';\nimport { Updater } from 'use-immer';\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 React, { useEffect, useMemo, useRef } from 'react';\nimport { Dropdown, Modal } from 'antd';\nimport { EBasicToolItem } from './constants';\nimport { Updater, useImmer } from 'use-immer';\nimport useLabels from './hooks/useLabels';\nimport useActions from './hooks/useActions';\nimport { ObjectList } from './components/ObjectList';\nimport SmartAnnotationControl from './components/SmartAnnotationControl';\nimport { TopPagination } from './components/TopPagination';\nimport useHistory from './hooks/useHistory';\nimport useObjects from './hooks/useObjects';\nimport useCanvasContainer from './hooks/useCanvasContainer';\nimport { cloneDeep } from 'lodash';\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';\nimport useMouseCursor from './hooks/useMouseCursor';\nimport useShortcuts from './hooks/useShortcuts';\nimport useToolActions from './hooks/useToolActions';\nimport useMouseEvents from './hooks/useMouseEvents';\nimport useCanvasRender from './hooks/useCanvasRender';\nimport useDataEffect from './hooks/useDataEffect';\nimport useSubTools from './hooks/useSubtools';\nimport { useToolInstances } from './tools/base';\nimport useColor from './hooks/useColor';\nimport { ImageView } from './components/ImageView';\nimport useTranslate from './hooks/useTranslate';\nimport ClassificationPanel from './components/Classification';\nimport AttributeEditor from './components/AttributeEditor';\nimport SegConfirmModal from './components/SegConfirmModal';\nimport useAttributes from './hooks/useAttributes';\nimport SliderToolBar from './components/SliderToolBar';\nimport useTopTools from './hooks/useTopTools';\nimport './index.less';\nimport classNames from 'classnames';\nimport ModelSelectModal from './components/ModelSelectModal';\nimport PointsEditModal from './components/PointsEditModal';\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 hideTopBar?: boolean;\n hideTopBarActions?: boolean;\n hideUndoRedoActions?: boolean;\n hideReferenceLine?: boolean;\n minPadding?: {\n top: number;\n left: number;\n };\n };\n manualMode?: boolean;\n forceColorByObject?: boolean;\n limitActiveObject?: boolean;\n limitActiveObjectAfterCreate?: 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 manualMode,\n forceColorByObject,\n limitActiveObject,\n limitActiveObjectAfterCreate,\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 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 annotations,\n setAnnotations,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n setEditState,\n mode,\n translateToObject,\n judgeEditingAttribute,\n limitActiveObjectAfterCreate,\n updateHistory,\n });\n\n const {\n labelOptions,\n classificationOptions,\n aiLabels,\n setAiLabels,\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 {\n onAiAnnotation,\n onSaveAnnotations,\n onCommitAnnotations,\n onCancelAnnotations,\n onRejectAnnotations,\n onAcceptAnnotations,\n onModifyAnnotations,\n } = useActions({\n mode,\n currImageItem,\n modal,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n editState,\n setEditState,\n naturalSize,\n clientSize,\n imagePos,\n containerMouse,\n updateAllObject,\n hadChangeRecord,\n getAnnotColor,\n categories,\n translateObject,\n onCancel,\n onSave,\n onCommit,\n onReviewModify,\n onReviewAccept,\n onReviewReject,\n classificationOptions,\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 } = useToolActions({\n mode,\n manualMode: !!manualMode,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n setAiLabels,\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 aiLabels,\n onAiAnnotation,\n getAnnotColor,\n categories,\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 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 \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 React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { DisplayOption, EElementType, MAX_SCALE, MIN_SCALE } from './constants';\nimport { useImmer } from 'use-immer';\nimport TopTools from './components/TopTools';\nimport PopoverMenu from './components/PopoverMenu';\nimport {\n CloseOutlined,\n LeftOutlined,\n RightOutlined,\n ZoomInOutlined,\n ZoomOutOutlined,\n} from '@ant-design/icons';\nimport useHistory from './hooks/useHistory';\nimport useObjects from './hooks/useObjects';\nimport useCanvasContainer from './hooks/useCanvasContainer';\nimport { cloneDeep, isEmpty } from 'lodash';\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';\nimport useColor from './hooks/useColor';\nimport useMouseCursor from './hooks/useMouseCursor';\nimport useMouseEvents from './hooks/useMouseEvents';\nimport useCanvasRender from './hooks/useCanvasRender';\nimport useDataEffect from './hooks/useDataEffect';\nimport { useToolInstances } from './tools/base';\nimport classNames from 'classnames';\nimport { ReactComponent as DoubleRightIcon } from './assets/doubleRight.svg';\nimport { ReactComponent as DownloadIcon } from './assets/download.svg';\nimport { useKeyPress } from 'ahooks';\nimport { EDITOR_SHORTCUTS, EShortcuts } from './constants/shortcuts';\nimport { message } from 'antd';\nimport { ImageView } from './components/ImageView';\nimport './index.less';\nimport useTranslate from './hooks/useTranslate';\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 annotations,\n setAnnotations,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n setEditState,\n mode: EditorMode.View,\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 React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { DisplayOption } from './constants';\nimport { useImmer } from 'use-immer';\nimport { cloneDeep } from 'lodash';\nimport useHistory from './hooks/useHistory';\nimport useObjects from './hooks/useObjects';\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 useColor from './hooks/useColor';\nimport useMouseCursor from './hooks/useMouseCursor';\nimport useCanvasRender from './hooks/useCanvasRender';\nimport useDataEffect from './hooks/useDataEffect';\nimport { useToolInstances } from './tools/base';\nimport { zoomImgSize } from './utils/compute';\nimport { CursorState } from 'ahooks/lib/useMouse';\nimport { ImageView } from './components/ImageView';\nimport './index.less';\nimport useTranslate from './hooks/useTranslate';\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 annotations,\n setAnnotations,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n setEditState,\n mode: EditorMode.View,\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 {\n drawCircleWithFill,\n drawRect,\n drawText,\n shadeEverythingButRect,\n} from '../utils/draw';\nimport { EnumModelType, EObjectType, ESubToolItem } from '../constants';\nimport {\n getRectFromPoints,\n translatePointCoord,\n translateRectCoord,\n} from '../utils/compute';\nimport {\n ToolInstanceHook,\n ToolHooksFunc,\n renderActiveRect,\n editBaseElementWhenMouseDown,\n updateEditingRectWhenMouseMove,\n} from './base';\nimport { EObjectStatus, EPromptType, PromptItem } from '../type';\nimport { hexToRgba } from '../utils/color';\nimport {\n ANNO_FILL_ALPHA,\n PROMPT_FILL_COLOR,\n PROMPT_STROKE_COLOR,\n} from '../constants/render';\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 if (drawData.isBatchEditing) {\n if (\n object.status === EObjectStatus.Unchecked &&\n (!editState.isCtrlPressed ||\n drawData.selectedModel === EnumModelType.IVP)\n )\n return;\n if (\n editState.isCtrlPressed &&\n drawData.selectedModel === EnumModelType.Detection\n ) {\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 + 2, y: rect.y + 2 },\n color,\n false,\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 if (s.AIAnnotation && s.selectedModel === EnumModelType.IVP) {\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 === 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(\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: 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 drawCircleWithFill,\n drawLine,\n drawPolygonWithFill,\n drawQuadraticPath,\n drawRect,\n shadeEverythingButRect,\n} from '../utils/draw';\nimport { EElementType, EObjectType, ESubToolItem } from '../constants';\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 ToolInstanceHook,\n ToolHooksFunc,\n editBaseElementWhenMouseDown,\n getPromptBoolean,\n} from './base';\nimport { hexToRgba } from '../utils/color';\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 { cloneDeep } from 'lodash';\nimport { EPromptType, PromptItem } from '../type';\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 }) => {\n const { polygon } = object;\n if (polygon && polygon.visible) {\n let fiilColor = !isFocus\n ? hexToRgba(color, ANNO_FILL_ALPHA.SHAPE)\n : styles.fillColor;\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 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 { drawCircleWithFill, drawLine, drawRect } from '../utils/draw';\nimport {\n BODY_TEMPLATE,\n EElementType,\n EObjectType,\n KEYPOINTS_VISIBLE_TYPE,\n} from '../constants';\nimport {\n getKeypointsFromRect,\n getRectFromPoints,\n movePoint,\n translatePointsToPointObjs,\n translateRectCoord,\n} from '../utils/compute';\nimport {\n ToolInstanceHook,\n ToolHooksFunc,\n renderActiveRect,\n editBaseElementWhenMouseDown,\n updateEditingRectWhenMouseMove,\n RenderStyles,\n} from './base';\nimport { EObjectStatus } from '../type';\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 aiLabels,\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, aiLabels });\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","import { clearCanvas, drawImage, drawRectWithFill } from '../utils/draw';\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';\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","/* eslint-disable @typescript-eslint/no-namespace */\nimport { drawRect } from '../utils/draw';\nimport { DisplayOption, EElementType, EObjectType } from '../constants';\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 {\n Category,\n DrawData,\n EditState,\n EObjectStatus,\n IAnnotationObject,\n ICreatingObject,\n IPrompt,\n} from '../type';\nimport { CursorState } from 'ahooks/lib/useMouse';\nimport { Updater } from 'use-immer';\nimport { OnAiAnnotationFunc } from '../hooks/useActions';\nimport useRectangle from './useRectangle';\nimport usePolygon from './usePolygon';\nimport useSkeleton from './useSkeleton';\nimport useMask from './useMask';\nimport useMatting from './useMatting';\nimport usePoint from './usePoint';\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 }) => 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 aiLabels?: 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\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.Custom]: 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 {\n clearCanvas,\n drawBooleanBrush,\n drawBooleanPolygon,\n drawCircleWithFill,\n drawImage,\n drawLine,\n drawPath,\n drawQuadraticPath,\n drawRect,\n shadeEverythingButRect,\n} from '../utils/draw';\nimport { EObjectType, ESubToolItem } from '../constants';\nimport {\n getRectFromPoints,\n isInCanvas,\n isPointOnPoint,\n translatePointCoord,\n translatePointZoom,\n translatePolygonCoord,\n translateRectCoord,\n} from '../utils/compute';\nimport { ToolInstanceHook, ToolHooksFunc, getPromptBoolean } from './base';\nimport {\n ANNO_FILL_COLOR,\n ANNO_MASK_ALPHA,\n ANNO_STROKE_ALPHA,\n ANNO_STROKE_COLOR,\n PROMPT_FILL_COLOR,\n} from '../constants/render';\nimport {\n EPromptType,\n ICreatingMaskStep,\n ICreatingObject,\n PromptItem,\n} from '../type';\nimport { hexToRgbArray, hexToRgba } from '../utils/color';\nimport { cloneDeep } from 'lodash';\n\n/**\n * only [0,1] array with rle decode\n * example:\n * [2,3,8,1,....] to [0,0,1,1,1,0,0,0,1,0,....]\n */\nconst decodeRle = (arr: number[], length: number) => {\n const result = new Array(length).fill(0);\n for (let i = 0; i < arr.length; i += 2) {\n const spliceLen = Math.min(arr[i + 1], length - arr[i]);\n for (let j = 0; j < spliceLen; j++) {\n result[arr[i] + j] = 1;\n }\n }\n return result;\n};\n\n/**\n * only [0,1] array with rle encode\n * example:\n * [0,0,1,1,1,0,0,0,1,0,....] to [2,3,8,1,....]\n */\nconst encodeRle = (arr: number[]) => {\n const result = [];\n let curLen = 0;\n let len = arr.length;\n for (let i = 0; i < len; i++) {\n const value = arr[i];\n if (curLen !== 0) {\n if (value === 1) {\n curLen++;\n } else {\n result.push(curLen);\n curLen = 0;\n }\n } else if (value === 1) {\n result.push(i);\n curLen = 1;\n }\n }\n if (curLen !== 0) {\n result.push(curLen);\n }\n return result;\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 // @thi.ng/rle-pack encode\n // const arr = encode(maskData.data, maskData.data.length);\n // return maskPixelCount > 0 ? Array.from(arr) : [];\n\n // console.log('>>>> output', encodeRle(arr));\n return maskPixelCount > 0 ? encodeRle(arr) : [];\n};\n\nexport const rleToCanvas = (rle: number[], 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 // @thi.ng/rle-pack decode\n // const decoded = decode(rle as unknown as Uint8Array);\n // newdata.data.set(decoded, 0);\n // for (let i = newdata.data.length / 4; i--; ) {\n // if (newdata.data[i * 4 + 3] > 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 // 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 // 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.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 // 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 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 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 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 }\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 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?: number[];\n /** point */\n point?: number[];\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 maskRle?: number[];\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}\n\nexport type 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};\n\nexport interface IPrompt {\n creatingPrompt?: PromptItem;\n promptsQueue?: PromptItem[];\n sessionId?: string;\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?: EnumModelType;\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 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 imageCacheId?: string;\n // TODO\n imageCacheIdForPolygon?: string;\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: undefined,\n AIAnnotation: false,\n\n /** drawed */\n objectList: [],\n classifications: [],\n activeObjectIndex: -1,\n activeClassName: '',\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","/** 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/**\n * Generate a color list based on the number of categories.\n * max random 1000\n * @param count \n * @returns \n */\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 (count > 1000 || !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] || '#fff';\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 {\n EElementType,\n EObjectType,\n KEYPOINTS_VISIBLE_TYPE,\n} from '../constants';\nimport { DrawData, IAnnotationObject, PromptItem } from '../type';\nimport { CursorState } from 'ahooks/lib/useMouse';\nimport { rgbArrayToRgba, rgbaToRgbArray } from './color';\nimport { cloneDeep, isEqual, isNumber } from 'lodash';\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 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 } = 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 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 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) => {\n const tempObjects = [...framesObjects];\n currFrameObjects.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 let resultObject = obj;\n if (frameIdx > activeIndex) {\n // frame change to after active frame\n resultObject = isEqual(obj, objectframes[activeIndex]) ? item : obj;\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: obj?.frameEmpty || Boolean(!obj),\n };\n });\n });\n return tempObjects;\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","import { 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\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","import VirtualList from 'rc-virtual-list';\nimport { useCallback, useEffect, useState } from 'react';\nimport { QsAnnotatorFile } from '../../type';\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","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","// 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);","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 { Alert, Button, Modal, UploadFile as AntdUploadFile } from 'antd';\nimport Upload, { UploadFile } from 'dds-components/Upload';\nimport { UploadOutlined } from '@ant-design/icons';\nimport { UploadChangeParam } from 'antd/es/upload';\nimport UploadPreAnno from 'dds-components/UploadPreAnno';\nimport { globalLocaleText } from 'dds-utils/locale';\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","// 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 { Category } from '@/Annotator/type';\nimport { globalLocaleText } from 'dds-utils/locale';\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 React, { useEffect } from 'react';\nimport { history } from '@umijs/max';\nimport {\n AnnotateEditor,\n BaseObject,\n EditorMode,\n} from 'dds-components/Annotator';\nimport { Button } from 'antd';\nimport { SettingOutlined } from '@ant-design/icons';\nimport { useKeyPress } from 'ahooks';\nimport { ImageList } from './components/ImageList';\nimport QuickstartModal from './components/QuickstartModal';\nimport ImageFilter from './components/ImageFilter';\nimport { QuickLabelModel } from './hooks/useQuickLabelModel';\nimport { globalLocaleText } from 'dds-utils/locale';\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","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 2597244b77bffae60b908be455470e6256dcae30 Mon Sep 17 00:00:00 2001 From: huweiqiang Date: Tue, 9 Jan 2024 16:36:24 +0800 Subject: [PATCH 10/10] update(version): upgrade version number to 0.9.3 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 5497ddb..504c732 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup -version = "0.9.2" +version = "0.9.3" description = "A tool for CV dataset labeling, visualizing and analysing" with open("README.md", "r", encoding="utf8") as fp: