forked from ant-design/beta.pro.ant.design
-
Notifications
You must be signed in to change notification settings - Fork 0
/
component---src-templates-docs-tsx-de5bdd2c637070b47767.js.map
1 lines (1 loc) · 576 KB
/
component---src-templates-docs-tsx-de5bdd2c637070b47767.js.map
1
{"version":3,"sources":["webpack:///./node_modules/copy-to-clipboard/index.js","webpack:///./node_modules/toggle-selection/index.js","webpack:///./node_modules/babel-runtime/helpers/defineProperty.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/delegate/src/delegate.js","webpack:///./node_modules/delegate/src/closest.js","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/antd/es/badge/SingleNumber.js","webpack:///./node_modules/antd/es/badge/ScrollNumber.js","webpack:///./node_modules/antd/es/badge/utils.js","webpack:///./node_modules/antd/es/badge/Ribbon.js","webpack:///./node_modules/antd/es/badge/index.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/ExportOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/ExportOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/MenuUnfoldOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/MenuUnfoldOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/MenuFoldOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/MenuFoldOutlined.js","webpack:///./node_modules/rc-drawer-menu/es/utils.js","webpack:///./node_modules/rc-drawer-menu/es/Drawer.js","webpack:///./node_modules/rc-drawer-menu/es/index.js","webpack:///./node_modules/antd/es/_util/throttleByAnimationFrame.js","webpack:///./node_modules/antd/es/affix/utils.js","webpack:///./node_modules/antd/es/affix/index.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/EditOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/EditOutlined.js","webpack:///./src/components/Content/EditButton.tsx","webpack:///./node_modules/antd/es/grid/hooks/useBreakpoint.js","webpack:///./node_modules/antd/es/avatar/SizeContext.js","webpack:///./node_modules/antd/es/avatar/avatar.js","webpack:///./node_modules/antd/es/avatar/group.js","webpack:///./node_modules/antd/es/avatar/index.js","webpack:///./src/components/Content/AvatarList.tsx","webpack:///./node_modules/antd/es/card/Grid.js","webpack:///./node_modules/antd/es/card/Meta.js","webpack:///./node_modules/rc-tabs/es/hooks/useRaf.js","webpack:///./node_modules/rc-tabs/es/TabNavList/TabNode.js","webpack:///./node_modules/rc-tabs/es/hooks/useOffsets.js","webpack:///./node_modules/rc-tabs/es/hooks/useVisibleRange.js","webpack:///./node_modules/rc-dropdown/es/placements.js","webpack:///./node_modules/rc-dropdown/es/Dropdown.js","webpack:///./node_modules/rc-dropdown/es/index.js","webpack:///./node_modules/rc-tabs/es/TabNavList/AddButton.js","webpack:///./node_modules/rc-tabs/es/TabNavList/OperationNode.js","webpack:///./node_modules/rc-tabs/es/TabContext.js","webpack:///./node_modules/rc-tabs/es/hooks/useTouchMove.js","webpack:///./node_modules/rc-tabs/es/hooks/useSyncState.js","webpack:///./node_modules/rc-tabs/es/TabNavList/index.js","webpack:///./node_modules/rc-tabs/es/hooks/useRefs.js","webpack:///./node_modules/rc-tabs/es/TabPanelList/index.js","webpack:///./node_modules/rc-tabs/es/TabPanelList/TabPane.js","webpack:///./node_modules/rc-tabs/es/Tabs.js","webpack:///./node_modules/rc-tabs/es/index.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/PlusOutlined.js","webpack:///./node_modules/antd/es/tabs/index.js","webpack:///./node_modules/antd/es/card/index.js","webpack:///./node_modules/antd/es/space/Item.js","webpack:///./node_modules/antd/es/space/index.js","webpack:///./node_modules/antd/es/tag/CheckableTag.js","webpack:///./node_modules/antd/es/tag/index.js","webpack:///./node_modules/antd/es/divider/index.js","webpack:///./node_modules/antd/es/typography/Typography.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CopyOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/CopyOutlined.js","webpack:///./node_modules/antd/es/_util/transButton.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/EnterOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/EnterOutlined.js","webpack:///./node_modules/antd/es/typography/util.js","webpack:///./node_modules/antd/es/typography/Editable.js","webpack:///./node_modules/antd/es/typography/Base.js","webpack:///./node_modules/antd/es/typography/Text.js","webpack:///./node_modules/antd/es/typography/Link.js","webpack:///./node_modules/antd/es/typography/Title.js","webpack:///./node_modules/antd/es/typography/Paragraph.js","webpack:///./node_modules/antd/es/typography/index.js","webpack:///./src/components/Content/dashboard.tsx","webpack:///./src/components/Content/Article.tsx","webpack:///./src/components/layout/Footer.tsx","webpack:///./src/components/Content/MainContent.tsx","webpack:///./src/templates/docs.tsx"],"names":["deselectCurrent","clipboardToIE11Formatting","module","exports","text","options","debug","message","reselectPrevious","range","selection","mark","success","document","createRange","getSelection","createElement","textContent","style","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","e","stopPropagation","format","preventDefault","clipboardData","console","warn","window","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","Error","err","error","copyKey","test","navigator","userAgent","replace","prompt","removeRange","removeAllRanges","removeChild","rangeCount","active","activeElement","ranges","i","push","getRangeAt","tagName","toUpperCase","blur","type","forEach","focus","__esModule","obj","_defineProperty","_defineProperty2","default","key","value","enumerable","configurable","writable","webpackPolyfill","deprecate","paths","children","Object","defineProperty","get","l","closest","_delegate","element","selector","callback","useCapture","listenerFn","listener","apply","this","arguments","destroy","removeEventListener","delegateTarget","target","call","elements","bind","querySelectorAll","Array","prototype","map","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","nodeType","parentNode","hookCallback","some","hooks","isArray","input","toString","isObject","hasOwnProp","a","b","hasOwnProperty","isObjectEmpty","getOwnPropertyNames","length","k","isUndefined","isNumber","isDate","Date","arr","fn","res","extend","valueOf","createUTC","locale","strict","createLocalOrUTC","utc","getParsingFlags","m","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","t","len","momentProperties","updateInProgress","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","msg","suppressDeprecationWarnings","firstTime","deprecationHandler","arg","args","slice","join","stack","keys","deprecations","deprecateSimple","name","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","localeData","formatMoment","expandFormat","array","match","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","s","indexOf","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","x","modMonth","o","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","min","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","y","parseTwoDigitYear","parseInt","getSetYear","createDate","d","h","M","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","n","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","w","ww","MM","yy","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","values","data","getLocale","defineLocale","abbr","_config","parentLocale","names","j","next","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","string","exec","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","result","weekdayStr","parsedInput","getDay","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","getUTCMinutes","defaults","c","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","currentDateArray","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","minute","second","millisecond","configFromObject","configFromInput","isUTC","add","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","base","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","isString","String","isMomentInput","arrayTest","dataTypeTest","filter","item","isNumberOrStringArray","property","objectTest","propertyTest","properties","isMomentInputObject","isCalendarSpec","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","preParsePostFormat","time","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toArray","toObject","toDate","toISOString","keepOffset","inspect","prefix","suffix","zone","isLocal","Symbol","for","toJSON","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","dir","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","source","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","assign","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","factory","UnitNumber","_ref","prefixCls","current","_ref$offset","left","className","getOffset","start","end","SingleNumber","props","unitNodes","offsetStyle","originCount","count","originValue","Number","_React$useState","_React$useState2","prevValue","setPrevValue","_React$useState3","_React$useState4","prevCount","setPrevCount","onTransitionEnd","timeout","setTimeout","clearTimeout","transition","unitNumberList","prevIndex","findIndex","singleUnit","transform","__rest","p","getOwnPropertySymbols","propertyIsEnumerable","customizePrefixCls","motionClassName","title","show","_a$component","component","restProps","getPrefixCls","newProps","numberNodes","numberList","num","borderColor","boxShadow","oriProps","color","_classNames","_classNames2","customizeScrollNumberPrefixCls","scrollNumberPrefixCls","status","_a$count","_a$overflowCount","overflowCount","_a$dot","dot","_a$size","size","_a$showZero","showZero","_React$useContext","numberedDisplayCount","hasStatus","isZero","showAsDot","mergedCount","isHidden","countRef","livingCount","displayCountRef","displayCount","isDotRef","mergedStyle","marginTop","right","titleNode","statusTextNode","displayNode","statusCls","statusStyle","background","badgeClassName","statusTextColor","visible","motionName","motionAppear","_classNames3","isDot","scrollNumberCls","scrollNumberStyle","Ribbon","_ref$placement","placement","colorInPreset","ribbonCls","colorStyle","cornerColorStyle","ref","AntdIcon","icon","displayName","trnasitionEndObject","WebkitTransition","MozTransition","OTransition","transitionEnd","windowIsUndefined","_React$PureComponent","Drawer","_this","__proto__","getPrototypeOf","levelDom","contextDom","maskDom","mousePos","getParentAndLevelDom","vars","_this$props","level","getContainer","parent","container","child","nodeName","trnasitionEnd","dom","onTouchEnd","close","open","state","isOpenChange","setState","onMaskTouchEnd","onMaskClick","onIconTouchEnd","onHandleClick","onScrollTouchStart","touches","touchs","pageX","pageY","onScrollTouchEnd","getScollDom","doms","setScrollDom","scrollHeight","clientHeight","scrollWidth","clientWidth","getIsHandleDom","removeScroll","showMask","scrollDom","returnValue","deltaY","deltaX","scrollTop","height","isScrollY","maxOrMinScrollY","width","scrollLeft","setLevelDomTransform","openTransition","placementName","_this$props2","levelTransition","onChange","placementPos","getChildToRender","_classnames","_this$props3","handleChild","handleStyle","maskStyle","wrapperClassname","getBoundingClientRect","defaultValue","onClick","onTouchStart","defaultGetContainer","wrapperClassName","onIconClick","iconChild","defaultOpen","forceUpdate","nextProps","_this2","PureComponent","defaultProps","throttleByAnimationFrameDecorator","descriptor","definingProperty","boundFn","requestId","later","throttled","_len","_key","raf","cancel","throttleByAnimationFrame","getTargetRect","bottom","innerHeight","getFixedTop","placeholderReact","targetRect","offsetTop","getFixedBottom","offsetBottom","TRIGGER_EVENTS","observerEntities","addObserveTarget","affix","entity","find","affixList","eventHandlers","eventName","targetAffix","lazyUpdatePosition","removeObserveTarget","observerEntity","oriObserverEntity","hasAffix","handler","remove","AffixStatus","__decorate","decorators","desc","r","getOwnPropertyDescriptor","Reflect","decorate","getDefaultTarget","_React$Component","Affix","_super","None","lastAffix","prevTarget","getOffsetTop","getOffsetBottom","savePlaceholderNode","node","placeholderNode","saveFixedNode","fixedNode","measure","_this$state","targetFunc","getTargetFunc","Prepare","targetNode","newState","fixedTop","fixedBottom","affixStyle","placeholderStyle","prepareMeasure","render","context","_this$state2","omit","onResize","updatePosition","getTargetContainer","prevProps","newTarget","contextType","EditButton","filename","sourcePath","rel","href","_useState","_useState2","screens","setScreens","subscribe","supportScreens","unsubscribe","SizeContext","Consumer","originSize","Provider","groupSize","scale","setScale","mounted","setMounted","_React$useState5","_React$useState6","isImgExist","setIsImgExist","avatarNodeRef","avatarChildrenRef","avatarNodeMergeRef","setScaleParam","childrenWidth","offsetWidth","nodeWidth","_props$gap","gap","src","shape","customSize","srcSet","alt","draggable","others","responsiveSizeStyle","currentBreakpoint","screen","currentSize","lineHeight","fontSize","devWarning","childrenToRender","sizeCls","hasImageElement","classString","sizeStyle","onError","transformString","childrenStyle","msTransform","WebkitTransform","sizeChildrenStyle","opacity","Avatar","_props$className","maxCount","maxStyle","cls","_props$maxPopoverPlac","maxPopoverPlacement","childrenWithProps","numOfChildren","childrenShow","childrenHidden","content","trigger","overlayClassName","Group","AvatarList","avatarList","JSON","parse","username","url","React","Component","_a$hoverable","hoverable","avatar","description","avatarDom","titleDom","descriptionDom","MetaDetail","useRaf","rafRef","removedRef","TabNode","id","rtl","_ref$tab","tab","disabled","closeIcon","tabBarGutter","tabPosition","closable","renderWrapper","removeAriaLabel","editable","onRemove","onFocus","tabPrefix","nodeStyle","marginBottom","removable","onInternalClick","role","tabIndex","onKeyDown","KeyCode","SPACE","ENTER","includes","which","event","onEdit","removeIcon","DEFAULT_SIZE","autoAdjustOverflow","adjustX","adjustY","targetOffset","topLeft","points","topCenter","topRight","bottomLeft","bottomCenter","bottomRight","_props$arrow","arrow","_props$prefixCls","transitionName","animation","align","_props$placement","_props$placements","placements","getPopupContainer","showAction","hideAction","overlayStyle","_props$trigger","otherProps","triggerVisible","setTriggerVisible","mergedVisible","triggerRef","openClassName","childrenProps","childClassName","minOverlayWidthMatchTrigger","alignPoint","getOverlayElement","overlay","onOverlayClick","overlayProps","getMenuElement","overlayElement","extraOverlayProps","triggerHideAction","popupClassName","popupStyle","builtinPlacements","action","popupPlacement","popupAlign","popupTransitionName","popupAnimation","popupVisible","stretch","popup","onPopupVisibleChange","onVisibleChange","AddButton","showAdd","addAriaLabel","addIcon","OperationNode","tabs","mobile","_ref$moreIcon","moreIcon","moreTransitionName","onTabClick","setOpen","_useState3","_useState4","selectedKey","setSelectedKey","popupId","dropdownPrefix","selectedItemId","dropdownAriaLabel","menu","_ref2","domEvent","selectedKeys","selectOffset","enabledTabs","selectedIndex","ele","getElementById","scrollIntoView","moreStyle","visibility","order","moreNode","mouseEnterDelay","mouseLeaveDelay","UP","DOWN","ESC","SPEED_OFF_MULTIPLE","useSyncState","defaultState","stateRef","updater","newValue","extra","assertExtra","TabNavList","cacheRefs","TabContext","animated","activeKey","onTabScroll","tabsWrapperRef","tabListRef","operationsRef","innerAddButtonRef","_useRefs","Map","has","delete","_useRefs2","getBtnRef","removeBtnRef","tabPositionTopOrBottom","_useSyncState","prev","_useSyncState2","transformLeft","setTransformLeft","_useSyncState3","_useSyncState4","transformTop","setTransformTop","wrapperScrollWidth","setWrapperScrollWidth","wrapperScrollHeight","setWrapperScrollHeight","_useState5","_useState6","wrapperContentWidth","setWrapperContentWidth","_useState7","_useState8","wrapperContentHeight","setWrapperContentHeight","_useState9","_useState10","wrapperWidth","setWrapperWidth","_useState11","_useState12","wrapperHeight","setWrapperHeight","_useState13","_useState14","addWidth","setAddWidth","_useState15","_useState16","addHeight","setAddHeight","_useRafState","batchRef","flushUpdate","useRafState","_useRafState2","tabSizes","setTabSizes","tabOffsets","holderScrollWidth","_tabs$","lastOffset","rightOffset","_tabs","useOffsets","operationsHiddenClassName","transformMin","transformMax","alignInRange","touchMovingRef","_useState17","_useState18","lockAnimation","setLockAnimation","doLockAnimation","clearTouchMoving","scrollToTab","tabOffset","newTransform","_newTransform","onOffset","touchPosition","setTouchPosition","lastTimestamp","setLastTimestamp","lastTimeDiff","setLastTimeDiff","setLastOffset","motionRef","lastWheelDirectionRef","touchEventsRef","_e$touches$","screenX","screenY","clearInterval","onTouchMove","_e$touches$2","offsetX","offsetY","distanceX","distanceY","absX","absY","currentX","currentY","setInterval","onWheel","mixed","onProxyTouchMove","onProxyTouchEnd","passive","useTouchMove","doMove","_useVisibleRange","containerSize","tabContentNodeSize","addNodeSize","transformSize","basicSize","tabContentSize","addSize","mergedBasicSize","endIndex","startIndex","useVisibleRange","_useVisibleRange2","visibleStart","visibleEnd","tabNodes","onListHolderResize","_tabsWrapperRef$curre","_tabsWrapperRef$curre2","_innerAddButtonRef$cu","_innerAddButtonRef$cu2","_operationsRef$curren","_operationsRef$curren2","_tabListRef$current","_tabListRef$current2","_operationsRef$curren3","offsetHeight","newAddWidth","newAddHeight","newOperationWidth","newOperationHeight","newWrapperScrollWidth","newWrapperScrollHeight","isOperationHidden","newSizes","btnNode","offsetLeft","startHiddenTabs","endHiddenTabs","hiddenTabs","_useState19","_useState20","inkStyle","setInkStyle","activeTabOffset","inkBarRafRef","cleanInkBarRaf","newInkStyle","pingLeft","pingRight","pingTop","pingBottom","hasDropdown","wrapPrefix","inkBar","TabPanelList","destroyInactiveTabPane","tabPaneAnimated","tabPane","activeIndex","tabKey","TabPane","forceRender","visited","setVisited","overflowY","display","uuid","Tabs","mergedAnimated","_ref$prefixCls","defaultActiveKey","_ref$animated","_ref$tabPosition","tabBarStyle","tabBarExtraContent","renderTabBar","parseTabList","setMobile","_useMergedState","useMergedState","_useMergedState2","mergedActiveKey","setMergedActiveKey","setActiveIndex","_tabs$newActiveIndex","newActiveIndex","_useMergedState3","_useMergedState4","mergedId","setMergedId","mergedTabPosition","tabNavBar","sharedProps","tabNavBarProps","panes","ForwardTabs","_onEdit","hideAdd","centered","editType","CloseOutlined","_extends2","head","_props$headStyle","headStyle","_props$bodyStyle","bodyStyle","loading","_props$bordered","bordered","customizeSize","cover","actions","tabList","activeTabKey","defaultActiveTabKey","_props$tabProps","tabProps","loadingBlockStyle","padding","block","loadingBlock","gutter","span","hasActiveTabKey","extraProps","onTabChange","containGrid","coverDom","actionDom","getAction","divProps","mergedSize","Grid","Meta","Item","marginDirection","wrap","SpaceContext","horizontalSize","verticalSize","latestIndex","paddingBottom","spaceSize","small","middle","large","space","directionConfig","_props$size","_props$direction","_props$wrap","_React$useMemo","getNumberSize","_React$useMemo2","childNodes","keepEmpty","mergedAlign","cn","itemClassName","nodes","flexWrap","checked","PresetColorRegex","PresetStatusColorRegex","onClose","_a$closable","setVisible","isPresetColor","tagStyle","backgroundColor","presetColor","tagClassName","handleCloseClick","defaultPrevented","isNeedWave","tagProps","iconNode","kids","tagNode","Tag","CheckableTag","_props$type","_props$orientation","orientation","dashed","plain","orientationPrefix","hasChildren","ariaLabel","setContentRef","mergedRef","componentClassName","RefTypography","inlineStyle","border","noStyle","pointerEvents","keyCode","onKeyUp","ellipsisContainer","maxLength","_ref$autoSize","autoSize","onSave","onCancel","inComposition","lastKeyCode","setCurrent","resizableTextArea","textArea","setSelectionRange","confirmChange","trim","textAreaClassName","TextArea","_ref3","_ref4","ctrlKey","altKey","metaKey","shiftKey","onCompositionStart","onCompositionEnd","onBlur","wrapperStyle","margin","pxToNumber","setAttribute","rows","option","_option$suffix","originStyle","getComputedStyle","originEle","originCSS","getPropertyValue","maxHeight","paddingTop","minHeight","zIndex","textOverflow","webkitLineClamp","childList","contentList","prevChild","inRange","fixedContent","innerHTML","ellipsis","cloneNode","fixedNodes","ellipsisChildren","ellipsisContentHolder","ellipsisTextNode","createTextNode","ellipsisStr","appendChildNode","insertBefore","measureNode","childNode","finished","reactNode","fullText","textNode","measureText","startLoc","endLoc","lastSuccessLoc","midLoc","currentText","step","currentStepText","_measureNode","isLineClampSupport","isTextOverflowSupport","Base","contentRef","edit","copied","ellipsisText","ellipsisContent","isEllipsis","expanded","clientRendered","onExpandClick","onExpand","getEllipsis","onEditClick","triggerEdit","onEditChange","getEditable","onEditCancel","onCopyClick","copyable","copyId","setEditRef","editIcon","onStart","resizeOnNextFrame","rafId","syncEllipsis","prevEllipsis","editing","expandable","_this$getEllipsis2","onEllipsis","tooltip","_this$getEllipsis3","canUseCSSEllipsis","every","_measure","renderOperations","expandContent","_this$getEllipsis4","symbol","expandStr","editStr","tooltips","tooltipNodes","copyStr","copiedStr","icons","CheckOutlined","_this$getEditable3","forceRenderExpanded","renderExpand","renderEdit","renderCopy","_this$state3","_this$getEllipsis5","textProps","cssEllipsis","cssTextOverflow","cssLineClamp","restContent","code","underline","del","strong","keyboard","currentContent","needed","tag","wrapperDecorations","LocaleReceiver","componentName","copy","expand","WebkitLineClamp","renderEditInput","renderContent","mergedEllipsis","baseRef","mergedProps","navigate","TITLE_ELE_LIST","_props$level","Text","Link","Title","Paragraph","Dashboard","menuData","intl","useState","search","setSearch","sectionRef","createRef","placeholder","formatMessage","autoFocus","SearchOutlined","components","subtitle","charCodeAt","slug","xs","sm","lg","xl","Doc","dangerouslySetInnerHTML","__html","Article","componentDidMount","delegation","delegate","ga","componentWillUnmount","pingTimer","location","meta","path","modifiedTime","isDashboard","pathname","startsWith","Helmet","moment","toc","contextTypes","PropTypes","object","isRequired","Footer","md","getModuleDataWithProps","moduleData","menuList","excludedSuffix","isZhCN","isNotTopLevel","MainContent","getSideBarOpenKeys","handleMenuOpenChange","openKeys","convertFilename","generateMenuItem","before","after","link","important","generateSubMenuItems","footerNavIcons","topLevel","itemGroups","groupItems","ItemGroup","getMenuItems","menuItems","getPreAndNext","localizedPageData","list","reduce","pre","previous","componentDidUpdate","UNSAVE_componentWillReceiveProps","hash","decodeURIComponent","timer","isMobile","activeMenuItem","endsWith","substring","currentItem","mainContainerClass","classNames","menuChild","inlineIndent","mode","onOpenChange","overviewData","模板组件","xxl","marginLeft","LeftOutlined","RightOutlined","layout","Template","rest","markdownRemark","allMarkdownRemark","frontmatter","fields","html","tableOfContents","edges","nodeFields"],"mappings":"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","file":"component---src-templates-docs-tsx-de5bdd2c637070b47767.js","sourcesContent":["\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\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\n if (!options) {\n options = {};\n }\n\n debug = options.debug || false;\n\n try {\n reselectPrevious = deselectCurrent();\n range = document.createRange();\n selection = document.getSelection();\n mark = document.createElement(\"span\");\n mark.textContent = text; // reset user styles for span element\n\n mark.style.all = \"unset\"; // prevents scrolling to the end of the page\n\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\"; // used to preserve spaces and line breaks\n\n mark.style.whiteSpace = \"pre\"; // do not inherit user-select (it may be `none`)\n\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\n if (options.format) {\n e.preventDefault();\n\n if (typeof e.clipboardData === \"undefined\") {\n // 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 {\n // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n document.body.appendChild(mark);\n range.selectNodeContents(mark);\n selection.addRange(range);\n var successful = document.execCommand(\"copy\");\n\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\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\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\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;","module.exports = function () {\n var selection = document.getSelection();\n\n if (!selection.rangeCount) {\n return function () {};\n }\n\n var active = document.activeElement;\n var ranges = [];\n\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) {\n // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' && selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function (range) {\n selection.addRange(range);\n });\n }\n\n active && active.focus();\n };\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var closest = require('./closest');\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\n\n\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n element.addEventListener(type, listenerFn, useCapture);\n return {\n destroy: function destroy() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n };\n}\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\n\n\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n } // Handle Element-less usage, it defaults to global delegation\n\n\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n } // Handle Selector-based usage\n\n\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n } // Handle Array-like based usage\n\n\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\n\n\nfunction listener(element, selector, type, callback) {\n return function (e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n };\n}\n\nmodule.exports = delegate;","var DOCUMENT_NODE_TYPE = 9;\n/**\n * A polyfill for Element.matches()\n */\n\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n proto.matches = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector || proto.webkitMatchesSelector;\n}\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\n\n\nfunction closest(element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' && element.matches(selector)) {\n return element;\n }\n\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;","//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.moment = factory();\n})(this, function () {\n 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n } // This is done to register the method called with moment()\n // without creating circular dependencies.\n\n\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n\n return m._pf;\n }\n\n var some;\n\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function some(fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n\n if (m._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n } // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n\n\n var momentProperties = hooks.momentProperties = [],\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n } // Moment prototype object\n\n\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n\n if (!this.isValid()) {\n this._d = new Date(NaN);\n } // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n\n\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n\n args.push(arg);\n }\n\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n firstTime = false;\n }\n\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set(config) {\n var prop, i;\n\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n\n this._config = config; // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n\n this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function keys(obj) {\n var i,\n res = [];\n\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {}; // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n\n if (typeof callback === 'string') {\n func = function func() {\n return this[callback]();\n };\n }\n\n if (token) {\n formatTokenFunctions[token] = func;\n }\n\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n\n return output;\n };\n } // format date using native date object\n\n\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {\n if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {\n return tok.slice(1);\n }\n\n return tok;\n }).join('');\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({\n unit: u,\n priority: priorities[u]\n });\n }\n }\n\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n value = toInt(value);\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n } // MOMENTS\n\n\n function stringGet(units) {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units]();\n }\n\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n\n return this;\n }\n\n var match1 = /\\d/,\n // 0 - 9\n match2 = /\\d\\d/,\n // 00 - 99\n match3 = /\\d{3}/,\n // 000 - 999\n match4 = /\\d{4}/,\n // 0000 - 9999\n match6 = /[+-]?\\d{6}/,\n // -999999 - 999999\n match1to2 = /\\d\\d?/,\n // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/,\n // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/,\n // 99999 - 999999\n match1to3 = /\\d{1,3}/,\n // 0 - 999\n match1to4 = /\\d{1,4}/,\n // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/,\n // -999999 - 999999\n matchUnsigned = /\\d+/,\n // 0 - inf\n matchSigned = /[+-]?\\d+/,\n // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi,\n // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi,\n // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/,\n // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n\n\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n\n if (typeof token === 'string') {\n token = [token];\n }\n\n if (isNumber(callback)) {\n func = function func(input, array) {\n array[callback] = toInt(input);\n };\n }\n\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return (n % x + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function indexOf(o) {\n // I know\n var i;\n\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n } // FORMATTING\n\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n }); // ALIASES\n\n addUnitAlias('month', 'M'); // PRIORITY\n\n addUnitPriority('month', 8); // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid.\n\n\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n }); // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months) ? this._months : this._months['standalone'];\n }\n\n return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n }\n\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n } // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value); // TODO: Another silent failure?\n\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n\n return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n\n return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n } // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // ALIASES\n\n addUnitAlias('year', 'y'); // PRIORITIES\n\n addUnitPriority('year', 1); // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n }); // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n } // HOOKS\n\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n }; // MOMENTS\n\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date; // the date constructor remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args; // the Date.UTC function remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments); // preserve leap years using a full 400 year cycle, then reset\n\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n } // start-of-first-week - start-of-year\n\n\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n\n\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n } // FORMATTING\n\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W'); // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5); // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }); // HELPERS\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n } // MOMENTS\n\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n } // FORMATTING\n\n\n addFormatToken('d', 0, 'do', 'day');\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday'); // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E'); // PRIORITY\n\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11); // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid\n\n\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n }); // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n\n return isNaN(input) ? null : input;\n } // LOCALES\n\n\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n } // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n\n return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n\n return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n\n return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n } // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false); // ALIASES\n\n addUnitAlias('hour', 'h'); // PRIORITY\n\n addUnitPriority('hour', 13); // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n }); // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n }; // internal storage for locale config files\n\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n } // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n\n\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n\n if (locale) {\n return locale;\n }\n\n if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n\n j--;\n }\n\n i++;\n }\n\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire; // TODO: Find a better way to register and load all the locales in Node\n\n if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n\n return locales[name];\n } // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n\n\n function getSetGlobalLocale(key, values) {\n var data;\n\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n\n if (locales[name] != null) {\n deprecateSimple('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.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n } // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n\n\n getSetGlobalLocale(name);\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n\n config = mergeConfigs(parentConfig, config);\n\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n } // backwards compat for now: also set the locale\n\n\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n\n return locales[name];\n } // returns locale data\n\n\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n\n if (locale) {\n return locale;\n }\n\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n } // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n\n\n var extendedIsoRegex = /^\\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)?)?$/,\n basicIsoRegex = /^\\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)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [['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/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/], ['YYYYMM', /\\d{6}/, false], ['YYYY', /\\d{4}/, false]],\n // iso time formats and regexes\n isoTimes = [['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/]],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(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}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n }; // date from iso format\n\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n } // date and time from ref 2822 format\n\n\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n\n if (match) {\n parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n } // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n\n\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }); // Pick the first defined of two or three arguments.\n\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n\n if (b != null) {\n return b;\n }\n\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n } // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n\n\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config); //compute day of the year from weeks and weekdays\n\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n } //if the day of the year is set, figure out what it is\n\n\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n } // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n\n\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n } // Zero out whatever was not defaulted, including time\n\n\n for (; i < 7; i++) {\n config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n } // Check for 24:00:00.000\n\n\n if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n } // check for mismatching day of week\n\n\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n w = config._w;\n\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4; // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n curWeek = weekOfYear(createLocal(), dow, doy);\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week.\n\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n } // constant that refers to the ISO standard\n\n\n hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form\n\n\n hooks.RFC_2822 = function () {}; // date from string and format string\n\n\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n\n config._a = [];\n getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC`\n\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n } // don't parse if it's not a known token\n\n\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n } // add remaining unparsed input length to the string\n\n\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n } // clear _12h flag if hour is <= 12\n\n\n if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem; // handle meridiem\n\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); // handle era\n\n era = getParsingFlags(config).era;\n\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n\n if (isPm && hour < 12) {\n hour += 12;\n }\n\n if (!isPm && hour === 12) {\n hour = 0;\n }\n\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n } // date from string and array of format strings\n\n\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n } // if there is any input that was not parsed add a penalty for that format\n\n\n currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens\n\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || format === undefined && input === '') {\n return createInvalid({\n nullInput: true\n });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n input = undefined;\n } // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n\n\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }),\n prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }); // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n\n function pickBy(fn, moments) {\n var res, i;\n\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n\n if (!moments.length) {\n return createLocal();\n }\n\n res = moments[0];\n\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n\n return res;\n } // TODO: Use [].sort instead?\n\n\n function min() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isAfter', args);\n }\n\n var now = function now() {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n\n for (key in m) {\n if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove\n\n this._milliseconds = +milliseconds + seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n\n this._days = +days + weeks * 7; // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n\n this._months = +months + quarters * 3 + years * 12;\n this._data = {};\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n } // compare two arrays, return the number of differences\n\n\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n\n return diffs + lengthDiff;\n } // FORMATTING\n\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', ''); // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n }); // HELPERS\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n } // Return a moment from input, that is local/utc/zone equivalent to model.\n\n\n function cloneWithOffset(input, model) {\n var res, diff;\n\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api.\n\n res._d.setTime(res._d.valueOf() + diff);\n\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n } // HOOKS\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n\n\n hooks.updateOffset = function () {}; // MOMENTS\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n\n\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n\n this._offset = input;\n this._isUTC = true;\n\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n\n input = input ? createLocal(input).utcOffset() : 0;\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n } // ASP.NET json date format regex\n\n\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if (match = aspNetRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n\n };\n } else if (match = isoRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign)\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.')); // apply sign while we're at it\n\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n\n if (!(base.isValid() && other.isValid())) {\n return {\n milliseconds: 0,\n months: 0\n };\n }\n\n other = cloneWithOffset(other, base);\n\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n } // TODO: remove 'name' arg after deprecation is removed\n\n\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp; //invert the arguments, but complain about it\n\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n } // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n\n\n function isMomentInput(input) {\n return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n\n if (arrayTest) {\n dataTypeTest = input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n } // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n\n\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n\n case 'month':\n output = monthDiff(this, that);\n break;\n\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n\n case 'second':\n output = (this - that) / 1e3;\n break;\n // 1000\n\n case 'minute':\n output = (this - that) / 6e4;\n break;\n // 1000 * 60\n\n case 'hour':\n output = (this - that) / 36e5;\n break;\n // 1000 * 60 * 60\n\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break;\n // 1000 * 60 * 60 * 24, negate dst\n\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break;\n // 1000 * 60 * 60 * 24 * 7, negate dst\n\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n } // difference in months\n\n\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor2 - anchor);\n } //check for negative zero, return zero if negative zero\n\n\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n\n\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n to: this,\n from: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n from: this,\n to: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n } // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n\n\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n\n return this;\n }\n }\n\n var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n });\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; // actual modulo - handles negative numbers (for dates before 1970):\n\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1; // truncate time\n\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {\n return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG'); // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1); // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n }); // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n } // FORMATTING\n\n\n addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES\n\n addUnitAlias('quarter', 'Q'); // PRIORITY\n\n addUnitPriority('quarter', 7); // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n }); // MOMENTS\n\n function getSetQuarter(input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n } // FORMATTING\n\n\n addFormatToken('D', ['DD', 2], 'Do', 'date'); // ALIASES\n\n addUnitAlias('date', 'D'); // PRIORITY\n\n addUnitPriority('date', 9); // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n }); // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD'); // PRIORITY\n\n addUnitPriority('dayOfYear', 4); // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n }); // HELPERS\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n } // FORMATTING\n\n\n addFormatToken('m', ['mm', 2], 0, 'minute'); // ALIASES\n\n addUnitAlias('minute', 'm'); // PRIORITY\n\n addUnitPriority('minute', 14); // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE); // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false); // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second'); // ALIASES\n\n addUnitAlias('second', 's'); // PRIORITY\n\n addUnitPriority('second', 15); // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND); // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false); // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n }); // ALIASES\n\n addUnitAlias('millisecond', 'ms'); // PRIORITY\n\n addUnitPriority('millisecond', 16); // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n var token, getSetMillisecond;\n\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName'); // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n\n return out;\n } // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n\n\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [{\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC'\n }],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n }); // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n return duration._bubble();\n } // supports only 2.0-style add(1, 's') or add(duration)\n\n\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n } // supports only 2.0-style subtract(1, 's') or subtract(duration)\n\n\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays; // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n\n if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n } // The following code bubbles up values, see the tests for\n // examples of what that means.\n\n\n data.milliseconds = milliseconds % 1000;\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24); // convert days to months\n\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12;\n data.days = days;\n data.months = months;\n data.years = years;\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n\n var days,\n months,\n milliseconds = this._milliseconds;\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n\n switch (units) {\n case 'month':\n return months;\n\n case 'quarter':\n return months / 3;\n\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n\n case 'day':\n return days + milliseconds / 864e5;\n\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n } // TODO: Use this.as('ms')?\n\n\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n\n return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month/week\n w: null,\n // weeks to month\n M: 11 // months to year\n\n }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];\n\n if (thresholds.w != null) {\n a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];\n }\n\n a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n } // This function allows you to set the rounding function for relative time strings\n\n\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n\n return false;\n } // This function allows you to set a threshold for relative time strings\n\n\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n\n if (limit === undefined) {\n return thresholds[threshold];\n }\n\n thresholds[threshold] = limit;\n\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n } // 3600 seconds -> 60 minutes -> 1 hour\n\n\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60; // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang; // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf'); // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n }); //! moment.js\n\n hooks.version = '2.29.1';\n setHookCallback(createLocal);\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto; // currently HTML5 input type only supports 24-hour formats\n\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD',\n // <input type=\"date\" />\n TIME: 'HH:mm',\n // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss',\n // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS',\n // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW',\n // <input type=\"week\" />\n MONTH: 'YYYY-MM' // <input type=\"month\" />\n\n };\n return hooks;\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nfunction UnitNumber(_ref) {\n var prefixCls = _ref.prefixCls,\n value = _ref.value,\n current = _ref.current,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? 0 : _ref$offset;\n var style;\n\n if (offset) {\n style = {\n position: 'absolute',\n top: \"\".concat(offset, \"00%\"),\n left: 0\n };\n }\n\n return /*#__PURE__*/React.createElement(\"p\", {\n style: style,\n className: classNames(\"\".concat(prefixCls, \"-only-unit\"), {\n current: current\n })\n }, value);\n}\n\nfunction getOffset(start, end, unit) {\n var index = start;\n var offset = 0;\n\n while ((index + 10) % 10 !== end) {\n index += unit;\n offset += unit;\n }\n\n return offset;\n}\n\nexport default function SingleNumber(props) {\n var prefixCls = props.prefixCls,\n originCount = props.count,\n originValue = props.value;\n var value = Number(originValue);\n var count = Math.abs(originCount);\n\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 var _React$useState3 = React.useState(count),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n prevCount = _React$useState4[0],\n setPrevCount = _React$useState4[1]; // ============================= Events =============================\n\n\n var onTransitionEnd = function onTransitionEnd() {\n setPrevValue(value);\n setPrevCount(count);\n }; // Fallback if transition event not support\n\n\n React.useEffect(function () {\n var timeout = setTimeout(function () {\n onTransitionEnd();\n }, 1000);\n return function () {\n clearTimeout(timeout);\n };\n }, [value]); // ============================= Render =============================\n // Render unit list\n\n var unitNodes;\n var offsetStyle;\n\n if (prevValue === value || Number.isNaN(value) || Number.isNaN(prevValue)) {\n // Nothing to change\n unitNodes = [/*#__PURE__*/React.createElement(UnitNumber, _extends({}, props, {\n key: value,\n current: true\n }))];\n offsetStyle = {\n transition: 'none'\n };\n } else {\n unitNodes = []; // Fill basic number units\n\n var end = value + 10;\n var unitNumberList = [];\n\n for (var index = value; index <= end; index += 1) {\n unitNumberList.push(index);\n } // Fill with number unit nodes\n\n\n var prevIndex = unitNumberList.findIndex(function (n) {\n return n % 10 === prevValue;\n });\n unitNodes = unitNumberList.map(function (n, index) {\n var singleUnit = n % 10;\n return /*#__PURE__*/React.createElement(UnitNumber, _extends({}, props, {\n key: n,\n value: singleUnit,\n offset: index - prevIndex,\n current: index === prevIndex\n }));\n }); // Calculate container offset value\n\n var unit = prevCount < count ? 1 : -1;\n offsetStyle = {\n transform: \"translateY(\".concat(-getOffset(prevValue, value, unit), \"00%)\")\n };\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-only\"),\n style: offsetStyle,\n onTransitionEnd: onTransitionEnd\n }, unitNodes);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport { cloneElement } from '../_util/reactNode';\nimport SingleNumber from './SingleNumber';\n\nvar ScrollNumber = function ScrollNumber(_a) {\n var customizePrefixCls = _a.prefixCls,\n count = _a.count,\n className = _a.className,\n motionClassName = _a.motionClassName,\n style = _a.style,\n title = _a.title,\n show = _a.show,\n _a$component = _a.component,\n component = _a$component === void 0 ? 'sup' : _a$component,\n children = _a.children,\n restProps = __rest(_a, [\"prefixCls\", \"count\", \"className\", \"motionClassName\", \"style\", \"title\", \"show\", \"component\", \"children\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var prefixCls = getPrefixCls('scroll-number', customizePrefixCls); // ============================ Render ============================\n\n var newProps = _extends(_extends({}, restProps), {\n 'data-show': show,\n style: style,\n className: classNames(prefixCls, className, motionClassName),\n title: title\n }); // Only integer need motion\n\n\n var numberNodes = count;\n\n if (count && Number(count) % 1 === 0) {\n var numberList = String(count).split('');\n numberNodes = numberList.map(function (num, i) {\n return /*#__PURE__*/React.createElement(SingleNumber, {\n prefixCls: prefixCls,\n count: Number(count),\n value: num // eslint-disable-next-line react/no-array-index-key\n ,\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 // <Badge count={4} style={{ backgroundColor: '#fff', color: '#999', borderColor: '#d9d9d9' }} />\n\n\n if (style && style.borderColor) {\n newProps.style = _extends(_extends({}, style), {\n boxShadow: \"0 0 0 1px \".concat(style.borderColor, \" inset\")\n });\n }\n\n if (children) {\n return cloneElement(children, function (oriProps) {\n return {\n className: classNames(\"\".concat(prefixCls, \"-custom-component\"), oriProps === null || oriProps === void 0 ? void 0 : oriProps.className, motionClassName)\n };\n });\n }\n\n return /*#__PURE__*/React.createElement(component, newProps, numberNodes);\n};\n\nexport default ScrollNumber;","import { PresetColorTypes } from '../_util/colors'; // eslint-disable-next-line import/prefer-default-export\n\nexport function isPresetColor(color) {\n return PresetColorTypes.indexOf(color) !== -1;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport { isPresetColor } from './utils';\n\nvar Ribbon = function Ribbon(_ref) {\n var _classNames;\n\n var className = _ref.className,\n customizePrefixCls = _ref.prefixCls,\n style = _ref.style,\n color = _ref.color,\n children = _ref.children,\n text = _ref.text,\n _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? 'end' : _ref$placement;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var prefixCls = getPrefixCls('ribbon', customizePrefixCls);\n var colorInPreset = isPresetColor(color);\n var ribbonCls = classNames(prefixCls, \"\".concat(prefixCls, \"-placement-\").concat(placement), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-color-\").concat(color), colorInPreset), _classNames), className);\n var colorStyle = {};\n var cornerColorStyle = {};\n\n if (color && !colorInPreset) {\n colorStyle.background = color;\n cornerColorStyle.color = color;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-wrapper\")\n }, children, /*#__PURE__*/React.createElement(\"div\", {\n className: ribbonCls,\n style: _extends(_extends({}, colorStyle), style)\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-text\")\n }, text), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-corner\"),\n style: cornerColorStyle\n })));\n};\n\nexport default Ribbon;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport { useMemo, useRef } from 'react';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport ScrollNumber from './ScrollNumber';\nimport Ribbon from './Ribbon';\nimport { ConfigContext } from '../config-provider';\nimport { cloneElement } from '../_util/reactNode';\nimport { isPresetColor } from './utils';\n\nvar Badge = function Badge(_a) {\n var _classNames, _classNames2;\n\n var customizePrefixCls = _a.prefixCls,\n customizeScrollNumberPrefixCls = _a.scrollNumberPrefixCls,\n children = _a.children,\n status = _a.status,\n text = _a.text,\n color = _a.color,\n _a$count = _a.count,\n count = _a$count === void 0 ? null : _a$count,\n _a$overflowCount = _a.overflowCount,\n overflowCount = _a$overflowCount === void 0 ? 99 : _a$overflowCount,\n _a$dot = _a.dot,\n dot = _a$dot === void 0 ? false : _a$dot,\n _a$size = _a.size,\n size = _a$size === void 0 ? 'default' : _a$size,\n title = _a.title,\n offset = _a.offset,\n style = _a.style,\n className = _a.className,\n _a$showZero = _a.showZero,\n showZero = _a$showZero === void 0 ? false : _a$showZero,\n restProps = __rest(_a, [\"prefixCls\", \"scrollNumberPrefixCls\", \"children\", \"status\", \"text\", \"color\", \"count\", \"overflowCount\", \"dot\", \"size\", \"title\", \"offset\", \"style\", \"className\", \"showZero\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var prefixCls = getPrefixCls('badge', customizePrefixCls); // ================================ Misc ================================\n\n var numberedDisplayCount = count > overflowCount ? \"\".concat(overflowCount, \"+\") : count;\n var hasStatus = status !== null && status !== undefined || color !== null && color !== undefined;\n var isZero = numberedDisplayCount === '0' || numberedDisplayCount === 0;\n var showAsDot = dot && !isZero || hasStatus;\n var mergedCount = showAsDot ? '' : numberedDisplayCount;\n var isHidden = useMemo(function () {\n var isEmpty = mergedCount === null || mergedCount === undefined || mergedCount === '';\n return (isEmpty || isZero && !showZero) && !showAsDot;\n }, [mergedCount, isZero, showZero, showAsDot]); // Count should be cache in case hidden change it\n\n var countRef = useRef(count);\n\n if (!isHidden) {\n countRef.current = count;\n }\n\n var livingCount = countRef.current; // We need cache count since remove motion should not change count display\n\n var displayCountRef = useRef(mergedCount);\n\n if (!isHidden) {\n displayCountRef.current = mergedCount;\n }\n\n var displayCount = displayCountRef.current; // We will cache the dot status to avoid shaking on leaved motion\n\n var isDotRef = useRef(showAsDot);\n\n if (!isHidden) {\n isDotRef.current = showAsDot;\n } // =============================== Styles ===============================\n\n\n var mergedStyle = useMemo(function () {\n if (!offset) {\n return _extends({}, style);\n }\n\n var offsetStyle = {\n marginTop: offset[1]\n };\n\n if (direction === 'rtl') {\n offsetStyle.left = parseInt(offset[0], 10);\n } else {\n offsetStyle.right = -parseInt(offset[0], 10);\n }\n\n return _extends(_extends({}, offsetStyle), style);\n }, [direction, offset, style]); // =============================== Render ===============================\n // >>> Title\n\n var titleNode = title !== null && title !== void 0 ? title : typeof livingCount === 'string' || typeof livingCount === 'number' ? livingCount : undefined; // >>> Status Text\n\n var statusTextNode = isHidden || !text ? null : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-status-text\")\n }, text); // >>> Display Component\n\n var displayNode = !livingCount || _typeof(livingCount) !== 'object' ? undefined : cloneElement(livingCount, function (oriProps) {\n return {\n style: _extends(_extends({}, mergedStyle), oriProps.style)\n };\n }); // Shared styles\n\n var statusCls = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-dot\"), hasStatus), _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-\").concat(status), !!status), _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-\").concat(color), isPresetColor(color)), _classNames));\n var statusStyle = {};\n\n if (color && !isPresetColor(color)) {\n statusStyle.background = color;\n }\n\n var badgeClassName = classNames(prefixCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-status\"), hasStatus), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-not-a-wrapper\"), !children), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames2), className); // <Badge status=\"success\" />\n\n if (!children && hasStatus) {\n var statusTextColor = mergedStyle.color;\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, restProps, {\n className: badgeClassName,\n style: mergedStyle\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: statusCls,\n style: statusStyle\n }), /*#__PURE__*/React.createElement(\"span\", {\n style: {\n color: statusTextColor\n },\n className: \"\".concat(prefixCls, \"-status-text\")\n }, text));\n } // <Badge status=\"success\" count={<Icon type=\"xxx\" />}></Badge>\n\n\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, restProps, {\n className: badgeClassName\n }), children, /*#__PURE__*/React.createElement(CSSMotion, {\n visible: !isHidden,\n motionName: \"\".concat(prefixCls, \"-zoom\"),\n motionAppear: false\n }, function (_ref) {\n var _classNames3;\n\n var motionClassName = _ref.className;\n var scrollNumberPrefixCls = getPrefixCls('scroll-number', customizeScrollNumberPrefixCls);\n var isDot = isDotRef.current;\n var scrollNumberCls = classNames((_classNames3 = {}, _defineProperty(_classNames3, \"\".concat(prefixCls, \"-dot\"), isDot), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-count\"), !isDot), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-count-sm\"), size === 'small'), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-multiple-words\"), !isDot && displayCount && (displayCount === null || displayCount === void 0 ? void 0 : displayCount.toString().length) > 1), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-status-\").concat(status), !!status), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-status-\").concat(color), isPresetColor(color)), _classNames3));\n\n var scrollNumberStyle = _extends({}, mergedStyle);\n\n if (color && !isPresetColor(color)) {\n scrollNumberStyle = scrollNumberStyle || {};\n scrollNumberStyle.background = color;\n }\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 }, displayNode);\n }), statusTextNode);\n};\n\nBadge.Ribbon = Ribbon;\nexport default Badge;","// This icon file is generated automatically.\nvar ExportOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M888.3 757.4h-53.8c-4.2 0-7.7 3.5-7.7 7.7v61.8H197.1V197.1h629.8v61.8c0 4.2 3.5 7.7 7.7 7.7h53.8c4.2 0 7.7-3.4 7.7-7.7V158.7c0-17-13.7-30.7-30.7-30.7H158.7c-17 0-30.7 13.7-30.7 30.7v706.6c0 17 13.7 30.7 30.7 30.7h706.6c17 0 30.7-13.7 30.7-30.7V765.1c0-4.3-3.5-7.7-7.7-7.7zm18.6-251.7L765 393.7c-5.3-4.2-13-.4-13 6.3v76H438c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 000-12.6z\"\n }\n }]\n },\n \"name\": \"export\",\n \"theme\": \"outlined\"\n};\nexport default ExportOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExportOutlinedSvg from \"@ant-design/icons-svg/es/asn/ExportOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ExportOutlined = function ExportOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: ExportOutlinedSvg\n }));\n};\n\nExportOutlined.displayName = 'ExportOutlined';\nexport default /*#__PURE__*/React.forwardRef(ExportOutlined);","// This icon file is generated automatically.\nvar MenuUnfoldOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 000-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0014.4 7z\"\n }\n }]\n },\n \"name\": \"menu-unfold\",\n \"theme\": \"outlined\"\n};\nexport default MenuUnfoldOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport MenuUnfoldOutlinedSvg from \"@ant-design/icons-svg/es/asn/MenuUnfoldOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar MenuUnfoldOutlined = function MenuUnfoldOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: MenuUnfoldOutlinedSvg\n }));\n};\n\nMenuUnfoldOutlined.displayName = 'MenuUnfoldOutlined';\nexport default /*#__PURE__*/React.forwardRef(MenuUnfoldOutlined);","// This icon file is generated automatically.\nvar MenuFoldOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 000 13.8z\"\n }\n }]\n },\n \"name\": \"menu-fold\",\n \"theme\": \"outlined\"\n};\nexport default MenuFoldOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport MenuFoldOutlinedSvg from \"@ant-design/icons-svg/es/asn/MenuFoldOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar MenuFoldOutlined = function MenuFoldOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: MenuFoldOutlinedSvg\n }));\n};\n\nMenuFoldOutlined.displayName = 'MenuFoldOutlined';\nexport default /*#__PURE__*/React.forwardRef(MenuFoldOutlined);","export function dataToArray(vars) {\n if (!vars && vars !== 0) {\n return [];\n }\n\n if (Array.isArray(vars)) {\n return vars;\n }\n\n return [vars];\n}\nvar trnasitionEndObject = {\n transition: 'transitionend',\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend'\n};\nvar trnasitionStr = Object.keys(trnasitionEndObject).filter(function (key) {\n if (typeof document === 'undefined') {\n return false;\n }\n\n return key in (document.body && document.body.style);\n})[0];\nexport var transitionEnd = trnasitionEndObject[trnasitionStr];","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport { createPortal } from 'react-dom';\nimport classnames from 'classnames';\nimport { dataToArray, transitionEnd } from './utils';\nvar windowIsUndefined = typeof window === 'undefined';\n\nvar Drawer = function (_React$PureComponent) {\n _inherits(Drawer, _React$PureComponent);\n\n function Drawer(props) {\n _classCallCheck(this, Drawer);\n\n var _this = _possibleConstructorReturn(this, (Drawer.__proto__ || Object.getPrototypeOf(Drawer)).call(this, props));\n\n _this.levelDom = [];\n _this.contextDom = null;\n _this.maskDom = null;\n _this.mousePos = null;\n\n _this.getParentAndLevelDom = function () {\n if (windowIsUndefined) {\n return;\n }\n\n var _this$props = _this.props,\n level = _this$props.level,\n getContainer = _this$props.getContainer;\n _this.levelDom = [];\n _this.parent = getContainer && document.querySelectorAll(getContainer)[0] || _this.container.parentNode;\n\n if (level === 'all') {\n var children = Array.prototype.slice.call(_this.parent.children);\n children.forEach(function (child) {\n if (child.nodeName !== 'SCRIPT' && child.nodeName !== 'STYLE' && child !== _this.container) {\n _this.levelDom.push(child);\n }\n });\n } else if (level) {\n dataToArray(_this.props.level).forEach(function (key) {\n document.querySelectorAll(key).forEach(function (item) {\n _this.levelDom.push(item);\n });\n });\n }\n };\n\n _this.trnasitionEnd = function (e) {\n var dom = e.target;\n dom.removeEventListener(transitionEnd, _this.trnasitionEnd);\n dom.style.transition = '';\n };\n\n _this.onTouchEnd = function (e, close) {\n if (_this.props.open !== undefined) {\n return;\n }\n\n if (e) {\n e.preventDefault();\n }\n\n var open = close || _this.state.open;\n _this.isOpenChange = true;\n\n _this.setState({\n open: !open\n });\n };\n\n _this.onMaskTouchEnd = function (e) {\n _this.props.onMaskClick(e);\n\n _this.onTouchEnd(e, true);\n };\n\n _this.onIconTouchEnd = function (e) {\n _this.props.onHandleClick(e);\n\n _this.onTouchEnd(e);\n };\n\n _this.onScrollTouchStart = function (e) {\n if (e.touches.length > 1) {\n return;\n }\n\n var touchs = e.touches[0];\n _this.mousePos = {\n x: touchs.pageX,\n y: touchs.pageY\n };\n };\n\n _this.onScrollTouchEnd = function () {\n _this.mousePos = null;\n };\n\n _this.getScollDom = function (dom) {\n var doms = [];\n\n var setScrollDom = function setScrollDom(d) {\n if (!d) {\n return;\n }\n\n if (d.scrollHeight > d.clientHeight || d.scrollWidth > d.clientWidth) {\n doms.push(d);\n }\n\n if (d !== _this.contextDom && d !== _this.maskDom) {\n setScrollDom(d.parentNode);\n }\n };\n\n setScrollDom(dom);\n return doms[doms.length - 1];\n };\n\n _this.getIsHandleDom = function (dom) {\n if (dom.className === _this.props.className + '-handle') {\n return true;\n }\n\n if (dom.parentNode) {\n return _this.getIsHandleDom(dom.parentNode);\n }\n\n return false;\n };\n\n _this.removeScroll = function (e) {\n if (!_this.props.showMask) {\n return;\n }\n\n var dom = e.target;\n\n var scrollDom = _this.getScollDom(dom);\n\n if (dom === _this.maskDom || _this.getIsHandleDom(dom) || !scrollDom) {\n e.preventDefault();\n e.returnValue = false;\n return;\n }\n\n var y = e.deltaY;\n var x = e.deltaX;\n\n if (e.type === 'touchmove') {\n if (e.touches.length > 1 || !_this.mousePos) {\n return;\n }\n\n var touches = e.touches[0]; // 上滑为正,下滑为负\n\n y = _this.mousePos.y - touches.pageY;\n x = _this.mousePos.x - touches.pageX;\n } // 竖向\n\n\n var scrollTop = scrollDom.scrollTop;\n var height = scrollDom.clientHeight;\n var scrollHeight = scrollDom.scrollHeight;\n var isScrollY = scrollHeight - height > 2;\n var maxOrMinScrollY = isScrollY && (scrollTop <= 0 && y < 0 || scrollTop + height >= scrollHeight && y > 0); // 横向\n\n var width = scrollDom.clientWidth;\n var scrollLeft = scrollDom.scrollLeft;\n var scrollWidth = scrollDom.scrollWidth;\n var isScrollX = scrollWidth - width > 2;\n var maxOrMinScrollX = scrollWidth - width > 2 && (scrollLeft <= 0 && x < 0 || scrollLeft + width >= scrollWidth && x > 0);\n\n if (!isScrollY && !isScrollX || maxOrMinScrollY || maxOrMinScrollX) {\n e.preventDefault();\n e.returnValue = false;\n return;\n }\n };\n\n _this.setLevelDomTransform = function (open, openTransition, placementName, value) {\n var _this$props2 = _this.props,\n placement = _this$props2.placement,\n levelTransition = _this$props2.levelTransition,\n onChange = _this$props2.onChange;\n\n _this.levelDom.forEach(function (dom) {\n if (_this.isOpenChange || openTransition) {\n dom.style.transition = levelTransition;\n dom.addEventListener(transitionEnd, _this.trnasitionEnd);\n }\n\n var placementPos = placement === 'left' || placement === 'top' ? value : -value;\n dom.style.transform = open ? placementName + '(' + placementPos + 'px)' : '';\n }); // 处理 body 滚动\n\n\n if (!windowIsUndefined) {\n if (open) {\n document.body.addEventListener('mousewheel', _this.removeScroll);\n document.body.addEventListener('touchmove', _this.removeScroll);\n } else {\n document.body.removeEventListener('mousewheel', _this.removeScroll);\n document.body.removeEventListener('touchmove', _this.removeScroll);\n }\n }\n\n if (onChange && _this.isOpenChange) {\n onChange(open);\n _this.isOpenChange = false;\n }\n };\n\n _this.getChildToRender = function () {\n var _classnames;\n\n var open = _this.props.open !== undefined ? _this.props.open : _this.state.open;\n var _this$props3 = _this.props,\n className = _this$props3.className,\n prefixCls = _this$props3.prefixCls,\n style = _this$props3.style,\n placement = _this$props3.placement,\n children = _this$props3.children,\n handleChild = _this$props3.handleChild,\n handleStyle = _this$props3.handleStyle,\n showMask = _this$props3.showMask,\n maskStyle = _this$props3.maskStyle;\n var wrapperClassname = classnames(prefixCls, (_classnames = {}, _defineProperty(_classnames, prefixCls + '-' + placement, true), _defineProperty(_classnames, prefixCls + '-open', open), _defineProperty(_classnames, className, !!className), _classnames));\n var value = _this.contextDom ? _this.contextDom.getBoundingClientRect()[placement === 'left' || placement === 'right' ? 'width' : 'height'] : 0;\n var placementName = 'translate' + (placement === 'left' || placement === 'right' ? 'X' : 'Y'); // 百分比与像素动画不同步,第一次打用后全用像素动画。\n\n var defaultValue = !_this.contextDom ? '100%' : value + 'px';\n var placementPos = placement === 'left' || placement === 'top' ? '-' + defaultValue : defaultValue;\n var transform = open ? '' : placementName + '(' + placementPos + ')';\n\n if (_this.isOpenChange === undefined || _this.isOpenChange) {\n _this.setLevelDomTransform(open, false, placementName, value);\n }\n\n return React.createElement('div', {\n className: wrapperClassname,\n style: style\n }, showMask && React.createElement('div', {\n className: prefixCls + '-mask',\n onClick: _this.onMaskTouchEnd,\n style: maskStyle,\n ref: function ref(c) {\n _this.maskDom = c;\n }\n }), React.createElement('div', {\n className: prefixCls + '-content-wrapper',\n style: {\n transform: transform\n }\n }, React.createElement('div', {\n className: prefixCls + '-content',\n onTouchStart: _this.onScrollTouchStart,\n onTouchEnd: _this.onScrollTouchEnd,\n ref: function ref(c) {\n _this.contextDom = c;\n }\n }, children), handleChild && React.createElement('div', {\n className: prefixCls + '-handle',\n onClick: _this.onIconTouchEnd,\n style: handleStyle\n }, handleChild)));\n };\n\n _this.defaultGetContainer = function () {\n if (windowIsUndefined) {\n return null;\n }\n\n var container = document.createElement('div');\n\n _this.parent.appendChild(container);\n\n if (_this.props.wrapperClassName) {\n container.className = _this.props.wrapperClassName;\n }\n\n return container;\n };\n\n if (props.onIconClick || props.parent || props.iconChild || props.width) {\n console.warn('rc-drawer-menu API has been changed, please look at the releases, ' + 'https://github.com/react-component/drawer-menu/releases');\n }\n\n _this.state = {\n open: props.open !== undefined ? props.open : !!props.defaultOpen\n };\n return _this;\n }\n\n _createClass(Drawer, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.getParentAndLevelDom();\n\n if (this.props.getContainer || this.props.parent) {\n this.container = this.defaultGetContainer();\n }\n\n this.forceUpdate();\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var open = nextProps.open,\n placement = nextProps.placement,\n children = nextProps.children;\n\n if (open !== undefined && open !== this.props.open) {\n this.isOpenChange = true;\n this.setState({\n open: open\n });\n }\n\n if (placement !== this.props.placement || children !== this.props.children) {\n // test 的 bug, 有动画过场,删除 dom\n this.contextDom = null;\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.container) {\n this.setLevelDomTransform(false, true); // 拦不住。。直接删除;\n\n if (this.props.getContainer) {\n this.container.parentNode.removeChild(this.container);\n }\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var children = this.getChildToRender();\n\n if (!this.props.getContainer) {\n return React.createElement('div', {\n className: this.props.wrapperClassName,\n ref: function ref(c) {\n _this2.container = c;\n }\n }, children);\n }\n\n if (!this.container) {\n return null;\n }\n\n return createPortal(children, this.container);\n }\n }]);\n\n return Drawer;\n}(React.PureComponent);\n\nDrawer.defaultProps = {\n className: '',\n prefixCls: 'drawer',\n placement: 'left',\n getContainer: 'body',\n level: 'all',\n levelTransition: 'transform .3s cubic-bezier(0.78, 0.14, 0.15, 0.86)',\n onChange: function onChange() {},\n onMaskClick: function onMaskClick() {},\n onHandleClick: function onHandleClick() {},\n handleChild: React.createElement('i', {\n className: 'drawer-handle-icon'\n }),\n handleStyle: {},\n showMask: true,\n maskStyle: {}\n};\nexport default Drawer;","// export this package's api\nimport Drawer from './Drawer';\nexport default Drawer;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport raf from \"rc-util/es/raf\";\nexport function throttleByAnimationFrame(fn) {\n var requestId;\n\n var later = function later(args) {\n return function () {\n requestId = null;\n fn.apply(void 0, _toConsumableArray(args));\n };\n };\n\n var throttled = function throttled() {\n if (requestId == null) {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n requestId = raf(later(args));\n }\n };\n\n throttled.cancel = function () {\n return raf.cancel(requestId);\n };\n\n return throttled;\n}\nexport function throttleByAnimationFrameDecorator() {\n return function throttle(target, key, descriptor) {\n var fn = descriptor.value;\n var definingProperty = false;\n return {\n configurable: true,\n get: function get() {\n // In IE11 calling Object.defineProperty has a side-effect of evaluating the\n // getter for the property which is being replaced. This causes infinite\n // recursion and an \"Out of stack space\" error.\n // eslint-disable-next-line no-prototype-builtins\n if (definingProperty || this === target.prototype || this.hasOwnProperty(key)) {\n /* istanbul ignore next */\n return fn;\n }\n\n var boundFn = throttleByAnimationFrame(fn.bind(this));\n definingProperty = true;\n Object.defineProperty(this, key, {\n value: boundFn,\n configurable: true,\n writable: true\n });\n definingProperty = false;\n return boundFn;\n }\n };\n };\n}","import addEventListener from \"rc-util/es/Dom/addEventListener\";\nexport function getTargetRect(target) {\n return target !== window ? target.getBoundingClientRect() : {\n top: 0,\n bottom: window.innerHeight\n };\n}\nexport function getFixedTop(placeholderReact, targetRect, offsetTop) {\n if (offsetTop !== undefined && targetRect.top > placeholderReact.top - offsetTop) {\n return offsetTop + targetRect.top;\n }\n\n return undefined;\n}\nexport function getFixedBottom(placeholderReact, targetRect, offsetBottom) {\n if (offsetBottom !== undefined && targetRect.bottom < placeholderReact.bottom + offsetBottom) {\n var targetBottomOffset = window.innerHeight - targetRect.bottom;\n return offsetBottom + targetBottomOffset;\n }\n\n return undefined;\n} // ======================== Observer ========================\n\nvar TRIGGER_EVENTS = ['resize', 'scroll', 'touchstart', 'touchmove', 'touchend', 'pageshow', 'load'];\nvar observerEntities = [];\nexport function getObserverEntities() {\n // Only used in test env. Can be removed if refactor.\n return observerEntities;\n}\nexport function addObserveTarget(target, affix) {\n if (!target) return;\n var entity = observerEntities.find(function (item) {\n return item.target === target;\n });\n\n if (entity) {\n entity.affixList.push(affix);\n } else {\n entity = {\n target: target,\n affixList: [affix],\n eventHandlers: {}\n };\n observerEntities.push(entity); // Add listener\n\n TRIGGER_EVENTS.forEach(function (eventName) {\n entity.eventHandlers[eventName] = addEventListener(target, eventName, function () {\n entity.affixList.forEach(function (targetAffix) {\n targetAffix.lazyUpdatePosition();\n });\n });\n });\n }\n}\nexport function removeObserveTarget(affix) {\n var observerEntity = observerEntities.find(function (oriObserverEntity) {\n var hasAffix = oriObserverEntity.affixList.some(function (item) {\n return item === affix;\n });\n\n if (hasAffix) {\n oriObserverEntity.affixList = oriObserverEntity.affixList.filter(function (item) {\n return item !== affix;\n });\n }\n\n return hasAffix;\n });\n\n if (observerEntity && observerEntity.affixList.length === 0) {\n observerEntities = observerEntities.filter(function (item) {\n return item !== observerEntity;\n }); // Remove listener\n\n TRIGGER_EVENTS.forEach(function (eventName) {\n var handler = observerEntity.eventHandlers[eventName];\n\n if (handler && handler.remove) {\n handler.remove();\n }\n });\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\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 _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\nvar __decorate = this && this.__decorate || function (decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport ResizeObserver from 'rc-resize-observer';\nimport { ConfigContext } from '../config-provider';\nimport { throttleByAnimationFrameDecorator } from '../_util/throttleByAnimationFrame';\nimport { addObserveTarget, removeObserveTarget, getTargetRect, getFixedTop, getFixedBottom } from './utils';\n\nfunction getDefaultTarget() {\n return typeof window !== 'undefined' ? window : null;\n}\n\nvar AffixStatus;\n\n(function (AffixStatus) {\n AffixStatus[AffixStatus[\"None\"] = 0] = \"None\";\n AffixStatus[AffixStatus[\"Prepare\"] = 1] = \"Prepare\";\n})(AffixStatus || (AffixStatus = {}));\n\nvar Affix = /*#__PURE__*/function (_React$Component) {\n _inherits(Affix, _React$Component);\n\n var _super = _createSuper(Affix);\n\n function Affix() {\n var _this;\n\n _classCallCheck(this, Affix);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n status: AffixStatus.None,\n lastAffix: false,\n prevTarget: null\n };\n\n _this.getOffsetTop = function () {\n var offsetBottom = _this.props.offsetBottom;\n var offsetTop = _this.props.offsetTop;\n\n if (offsetBottom === undefined && offsetTop === undefined) {\n offsetTop = 0;\n }\n\n return offsetTop;\n };\n\n _this.getOffsetBottom = function () {\n return _this.props.offsetBottom;\n };\n\n _this.savePlaceholderNode = function (node) {\n _this.placeholderNode = node;\n };\n\n _this.saveFixedNode = function (node) {\n _this.fixedNode = node;\n }; // =================== Measure ===================\n\n\n _this.measure = function () {\n var _this$state = _this.state,\n status = _this$state.status,\n lastAffix = _this$state.lastAffix;\n var onChange = _this.props.onChange;\n\n var targetFunc = _this.getTargetFunc();\n\n if (status !== AffixStatus.Prepare || !_this.fixedNode || !_this.placeholderNode || !targetFunc) {\n return;\n }\n\n var offsetTop = _this.getOffsetTop();\n\n var offsetBottom = _this.getOffsetBottom();\n\n var targetNode = targetFunc();\n\n if (!targetNode) {\n return;\n }\n\n var newState = {\n status: AffixStatus.None\n };\n var targetRect = getTargetRect(targetNode);\n var placeholderReact = getTargetRect(_this.placeholderNode);\n var fixedTop = getFixedTop(placeholderReact, targetRect, offsetTop);\n var fixedBottom = getFixedBottom(placeholderReact, targetRect, offsetBottom);\n\n if (fixedTop !== undefined) {\n newState.affixStyle = {\n position: 'fixed',\n top: fixedTop,\n width: placeholderReact.width,\n height: placeholderReact.height\n };\n newState.placeholderStyle = {\n width: placeholderReact.width,\n height: placeholderReact.height\n };\n } else if (fixedBottom !== undefined) {\n newState.affixStyle = {\n position: 'fixed',\n bottom: fixedBottom,\n width: placeholderReact.width,\n height: placeholderReact.height\n };\n newState.placeholderStyle = {\n width: placeholderReact.width,\n height: placeholderReact.height\n };\n }\n\n newState.lastAffix = !!newState.affixStyle;\n\n if (onChange && lastAffix !== newState.lastAffix) {\n onChange(newState.lastAffix);\n }\n\n _this.setState(newState);\n }; // @ts-ignore TS6133\n\n\n _this.prepareMeasure = function () {\n // event param is used before. Keep compatible ts define here.\n _this.setState({\n status: AffixStatus.Prepare,\n affixStyle: undefined,\n placeholderStyle: undefined\n }); // Test if `updatePosition` called\n\n\n if (process.env.NODE_ENV === 'test') {\n var onTestUpdatePosition = _this.props.onTestUpdatePosition;\n\n if (onTestUpdatePosition) {\n onTestUpdatePosition();\n }\n }\n }; // =================== Render ===================\n\n\n _this.render = function () {\n var getPrefixCls = _this.context.getPrefixCls;\n var _this$state2 = _this.state,\n affixStyle = _this$state2.affixStyle,\n placeholderStyle = _this$state2.placeholderStyle;\n var _this$props = _this.props,\n prefixCls = _this$props.prefixCls,\n children = _this$props.children;\n var className = classNames(_defineProperty({}, getPrefixCls('affix', prefixCls), affixStyle));\n var props = omit(_this.props, ['prefixCls', 'offsetTop', 'offsetBottom', 'target', 'onChange']); // Omit this since `onTestUpdatePosition` only works on test.\n\n if (process.env.NODE_ENV === 'test') {\n props = omit(props, ['onTestUpdatePosition']);\n }\n\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize() {\n _this.updatePosition();\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n ref: _this.savePlaceholderNode\n }), affixStyle && /*#__PURE__*/React.createElement(\"div\", {\n style: placeholderStyle,\n \"aria-hidden\": \"true\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n ref: _this.saveFixedNode,\n style: affixStyle\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize() {\n _this.updatePosition();\n }\n }, children))));\n };\n\n return _this;\n }\n\n _createClass(Affix, [{\n key: \"getTargetFunc\",\n value: function getTargetFunc() {\n var getTargetContainer = this.context.getTargetContainer;\n var target = this.props.target;\n\n if (target !== undefined) {\n return target;\n }\n\n return getTargetContainer || getDefaultTarget;\n } // Event handler\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var targetFunc = this.getTargetFunc();\n\n if (targetFunc) {\n // [Legacy] Wait for parent component ref has its value.\n // We should use target as directly element instead of function which makes element check hard.\n this.timeout = setTimeout(function () {\n addObserveTarget(targetFunc(), _this2); // Mock Event object.\n\n _this2.updatePosition();\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var prevTarget = this.state.prevTarget;\n var targetFunc = this.getTargetFunc();\n var newTarget = null;\n\n if (targetFunc) {\n newTarget = targetFunc() || null;\n }\n\n if (prevTarget !== newTarget) {\n removeObserveTarget(this);\n\n if (newTarget) {\n addObserveTarget(newTarget, this); // Mock Event object.\n\n this.updatePosition();\n } // eslint-disable-next-line react/no-did-update-set-state\n\n\n this.setState({\n prevTarget: newTarget\n });\n }\n\n if (prevProps.offsetTop !== this.props.offsetTop || prevProps.offsetBottom !== this.props.offsetBottom) {\n this.updatePosition();\n }\n\n this.measure();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearTimeout(this.timeout);\n removeObserveTarget(this);\n this.updatePosition.cancel(); // https://github.com/ant-design/ant-design/issues/22683\n\n this.lazyUpdatePosition.cancel();\n } // Handle realign logic\n\n }, {\n key: \"updatePosition\",\n value: function updatePosition() {\n this.prepareMeasure();\n }\n }, {\n key: \"lazyUpdatePosition\",\n value: function lazyUpdatePosition() {\n var targetFunc = this.getTargetFunc();\n var affixStyle = this.state.affixStyle; // Check position change before measure to make Safari smooth\n\n if (targetFunc && affixStyle) {\n var offsetTop = this.getOffsetTop();\n var offsetBottom = this.getOffsetBottom();\n var targetNode = targetFunc();\n\n if (targetNode && this.placeholderNode) {\n var targetRect = getTargetRect(targetNode);\n var placeholderReact = getTargetRect(this.placeholderNode);\n var fixedTop = getFixedTop(placeholderReact, targetRect, offsetTop);\n var fixedBottom = getFixedBottom(placeholderReact, targetRect, offsetBottom);\n\n if (fixedTop !== undefined && affixStyle.top === fixedTop || fixedBottom !== undefined && affixStyle.bottom === fixedBottom) {\n return;\n }\n }\n } // Directly call prepare measure since it's already throttled.\n\n\n this.prepareMeasure();\n }\n }]);\n\n return Affix;\n}(React.Component);\n\nAffix.contextType = ConfigContext;\n\n__decorate([throttleByAnimationFrameDecorator()], Affix.prototype, \"updatePosition\", null);\n\n__decorate([throttleByAnimationFrameDecorator()], Affix.prototype, \"lazyUpdatePosition\", null);\n\nexport default Affix;","// This icon file is generated automatically.\nvar EditOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"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\"\n }\n }]\n },\n \"name\": \"edit\",\n \"theme\": \"outlined\"\n};\nexport default EditOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EditOutlinedSvg from \"@ant-design/icons-svg/es/asn/EditOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar EditOutlined = function EditOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: EditOutlinedSvg\n }));\n};\n\nEditOutlined.displayName = 'EditOutlined';\nexport default /*#__PURE__*/React.forwardRef(EditOutlined);","import React from 'react';\nimport { EditOutlined } from '@ant-design/icons';\nimport { Tooltip } from 'antd';\n\nconst EditButton: React.FC<{\n title: React.ReactNode;\n filename?: string;\n sourcePath?: string;\n}> = ({\n title,\n filename,\n sourcePath = 'https://github.com/ant-design/ant-design-pro-site/edit/master',\n}) => (\n <Tooltip title={title}>\n <a\n className=\"edit-button\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`${sourcePath}${filename}`}\n >\n <EditOutlined />\n </a>\n </Tooltip>\n);\n\nexport default EditButton;\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState } from 'react';\nimport ResponsiveObserve from '../../_util/responsiveObserve';\n\nfunction useBreakpoint() {\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n screens = _useState2[0],\n setScreens = _useState2[1];\n\n useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (supportScreens) {\n setScreens(supportScreens);\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []);\n return screens;\n}\n\nexport default useBreakpoint;","import * as React from 'react';\nvar SizeContext = /*#__PURE__*/React.createContext('default');\nexport var SizeContextProvider = function SizeContextProvider(_ref) {\n var children = _ref.children,\n size = _ref.size;\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (originSize) {\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n });\n};\nexport default SizeContext;","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\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { ConfigContext } from '../config-provider';\nimport devWarning from '../_util/devWarning';\nimport { responsiveArray } from '../_util/responsiveObserve';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport SizeContext from './SizeContext';\n\nvar InternalAvatar = function InternalAvatar(props, ref) {\n var _classNames, _classNames2;\n\n var groupSize = React.useContext(SizeContext);\n\n var _React$useState = React.useState(1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n scale = _React$useState2[0],\n setScale = _React$useState2[1];\n\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n mounted = _React$useState4[0],\n setMounted = _React$useState4[1];\n\n var _React$useState5 = React.useState(true),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n isImgExist = _React$useState6[0],\n setIsImgExist = _React$useState6[1];\n\n var avatarNodeRef = React.useRef();\n var avatarChildrenRef = React.useRef();\n var avatarNodeMergeRef = composeRef(ref, avatarNodeRef);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var setScaleParam = function setScaleParam() {\n if (!avatarChildrenRef.current || !avatarNodeRef.current) {\n return;\n }\n\n var childrenWidth = avatarChildrenRef.current.offsetWidth; // offsetWidth avoid affecting be transform scale\n\n var nodeWidth = avatarNodeRef.current.offsetWidth; // denominator is 0 is no meaning\n\n if (childrenWidth !== 0 && nodeWidth !== 0) {\n var _props$gap = props.gap,\n gap = _props$gap === void 0 ? 4 : _props$gap;\n\n if (gap * 2 < nodeWidth) {\n setScale(nodeWidth - gap * 2 < childrenWidth ? (nodeWidth - gap * 2) / childrenWidth : 1);\n }\n }\n };\n\n React.useEffect(function () {\n setMounted(true);\n }, []);\n React.useEffect(function () {\n setIsImgExist(true);\n setScale(1);\n }, [props.src]);\n React.useEffect(function () {\n setScaleParam();\n }, [props.gap]);\n\n var handleImgLoadError = function handleImgLoadError() {\n var onError = props.onError;\n var errorFlag = onError ? onError() : undefined;\n\n if (errorFlag !== false) {\n setIsImgExist(false);\n }\n };\n\n var customizePrefixCls = props.prefixCls,\n shape = props.shape,\n customSize = props.size,\n src = props.src,\n srcSet = props.srcSet,\n icon = props.icon,\n className = props.className,\n alt = props.alt,\n draggable = props.draggable,\n children = props.children,\n others = __rest(props, [\"prefixCls\", \"shape\", \"size\", \"src\", \"srcSet\", \"icon\", \"className\", \"alt\", \"draggable\", \"children\"]);\n\n var size = customSize === 'default' ? groupSize : customSize;\n var screens = useBreakpoint();\n var responsiveSizeStyle = React.useMemo(function () {\n if (_typeof(size) !== 'object') {\n return {};\n }\n\n var currentBreakpoint = responsiveArray.find(function (screen) {\n return screens[screen];\n });\n var currentSize = size[currentBreakpoint];\n return currentSize ? {\n width: currentSize,\n height: currentSize,\n lineHeight: \"\".concat(currentSize, \"px\"),\n fontSize: icon ? currentSize / 2 : 18\n } : {};\n }, [screens, size]);\n devWarning(!(typeof icon === 'string' && icon.length > 2), 'Avatar', \"`icon` is using ReactNode instead of string naming in v4. Please check `\".concat(icon, \"` at https://ant.design/components/icon\"));\n var prefixCls = getPrefixCls('avatar', customizePrefixCls);\n var sizeCls = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-lg\"), size === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-sm\"), size === 'small'), _classNames));\n var hasImageElement = /*#__PURE__*/React.isValidElement(src);\n var classString = classNames(prefixCls, sizeCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-\").concat(shape), shape), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-image\"), hasImageElement || src && isImgExist), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-icon\"), icon), _classNames2), className);\n var sizeStyle = typeof size === 'number' ? {\n width: size,\n height: size,\n lineHeight: \"\".concat(size, \"px\"),\n fontSize: icon ? size / 2 : 18\n } : {};\n var childrenToRender;\n\n if (typeof src === 'string' && isImgExist) {\n childrenToRender = /*#__PURE__*/React.createElement(\"img\", {\n src: src,\n draggable: draggable,\n srcSet: srcSet,\n onError: handleImgLoadError,\n alt: alt\n });\n } else if (hasImageElement) {\n childrenToRender = src;\n } else if (icon) {\n childrenToRender = icon;\n } else if (mounted || scale !== 1) {\n var transformString = \"scale(\".concat(scale, \") translateX(-50%)\");\n var childrenStyle = {\n msTransform: transformString,\n WebkitTransform: transformString,\n transform: transformString\n };\n var sizeChildrenStyle = typeof size === 'number' ? {\n lineHeight: \"\".concat(size, \"px\")\n } : {};\n childrenToRender = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: setScaleParam\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-string\"),\n ref: function ref(node) {\n avatarChildrenRef.current = node;\n },\n style: _extends(_extends({}, sizeChildrenStyle), childrenStyle)\n }, children));\n } else {\n childrenToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-string\"),\n style: {\n opacity: 0\n },\n ref: function ref(node) {\n avatarChildrenRef.current = node;\n }\n }, children);\n } // The event is triggered twice from bubbling up the DOM tree.\n // see https://codesandbox.io/s/kind-snow-9lidz\n\n\n delete others.onError;\n delete others.gap;\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, others, {\n style: _extends(_extends(_extends({}, sizeStyle), responsiveSizeStyle), others.style),\n className: classString,\n ref: avatarNodeMergeRef\n }), childrenToRender);\n};\n\nvar Avatar = /*#__PURE__*/React.forwardRef(InternalAvatar);\nAvatar.displayName = 'Avatar';\nAvatar.defaultProps = {\n shape: 'circle',\n size: 'default'\n};\nexport default Avatar;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { cloneElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport Avatar from './avatar';\nimport Popover from '../popover';\nimport { SizeContextProvider } from './SizeContext';\n\nvar Group = function Group(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n maxCount = props.maxCount,\n maxStyle = props.maxStyle,\n size = props.size;\n var prefixCls = getPrefixCls('avatar-group', customizePrefixCls);\n var cls = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n var children = props.children,\n _props$maxPopoverPlac = props.maxPopoverPlacement,\n maxPopoverPlacement = _props$maxPopoverPlac === void 0 ? 'top' : _props$maxPopoverPlac;\n var childrenWithProps = toArray(children).map(function (child, index) {\n return cloneElement(child, {\n key: \"avatar-key-\".concat(index)\n });\n });\n var numOfChildren = childrenWithProps.length;\n\n if (maxCount && maxCount < numOfChildren) {\n var childrenShow = childrenWithProps.slice(0, maxCount);\n var childrenHidden = childrenWithProps.slice(maxCount, numOfChildren);\n childrenShow.push( /*#__PURE__*/React.createElement(Popover, {\n key: \"avatar-popover-key\",\n content: childrenHidden,\n trigger: \"hover\",\n placement: maxPopoverPlacement,\n overlayClassName: \"\".concat(prefixCls, \"-popover\")\n }, /*#__PURE__*/React.createElement(Avatar, {\n style: maxStyle\n }, \"+\".concat(numOfChildren - maxCount))));\n return /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: size\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: props.style\n }, childrenShow));\n }\n\n return /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: size\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: props.style\n }, childrenWithProps));\n};\n\nexport default Group;","import InternalAvatar from './avatar';\nimport Group from './group';\nvar Avatar = InternalAvatar;\nAvatar.Group = Group;\nexport { Group };\nexport default Avatar;","import React from 'react';\nimport { Avatar, Tooltip } from 'antd';\n\nclass AvatarList extends React.Component<{\n avatarList: {\n username: string;\n url: string;\n }[];\n}> {\n main: HTMLDivElement | null;\n\n render() {\n let { avatarList = [] } = this.props;\n try {\n avatarList = JSON.parse((avatarList as unknown) as string);\n } catch (error) {\n // do not need\n }\n if (!avatarList || !Array.isArray(avatarList)) {\n return null;\n }\n return (\n <div className=\"doc-avatar-list\">\n {avatarList.map((item) => (\n <a\n className=\"href-box\"\n target=\"_blank\"\n key={item.username}\n rel=\"noopener noreferrer\"\n href={`http://github.com/${item.username}`}\n >\n <Tooltip title={item.username}>\n <Avatar src={item.url} alt={item.username} size=\"small\" />\n </Tooltip>\n </a>\n ))}\n </div>\n );\n }\n}\nexport default AvatarList;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\n\nvar Grid = function Grid(_a) {\n var prefixCls = _a.prefixCls,\n className = _a.className,\n _a$hoverable = _a.hoverable,\n hoverable = _a$hoverable === void 0 ? true : _a$hoverable,\n props = __rest(_a, [\"prefixCls\", \"className\", \"hoverable\"]);\n\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefix = getPrefixCls('card', prefixCls);\n var classString = classNames(\"\".concat(prefix, \"-grid\"), className, _defineProperty({}, \"\".concat(prefix, \"-grid-hoverable\"), hoverable));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n className: classString\n }));\n });\n};\n\nexport default Grid;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\n\nvar Meta = function Meta(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n avatar = props.avatar,\n title = props.title,\n description = props.description,\n others = __rest(props, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n\n var prefixCls = getPrefixCls('card', customizePrefixCls);\n var classString = classNames(\"\".concat(prefixCls, \"-meta\"), className);\n var avatarDom = avatar ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-avatar\")\n }, avatar) : null;\n var titleDom = title ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-title\")\n }, title) : null;\n var descriptionDom = description ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-description\")\n }, description) : null;\n var MetaDetail = titleDom || descriptionDom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-detail\")\n }, titleDom, descriptionDom) : null;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classString\n }), avatarDom, MetaDetail);\n });\n};\n\nexport default Meta;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef, useState, useEffect } from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default function useRaf(callback) {\n var rafRef = useRef();\n var removedRef = useRef(false);\n\n function trigger() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (!removedRef.current) {\n raf.cancel(rafRef.current);\n rafRef.current = raf(function () {\n callback.apply(void 0, args);\n });\n }\n }\n\n useEffect(function () {\n return function () {\n removedRef.current = true;\n raf.cancel(rafRef.current);\n };\n }, []);\n return trigger;\n}\nexport function useRafState(defaultState) {\n var batchRef = useRef([]);\n\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n\n var state = useRef(typeof defaultState === 'function' ? defaultState() : defaultState);\n var flushUpdate = useRaf(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\n function updater(callback) {\n batchRef.current.push(callback);\n flushUpdate();\n }\n\n return [state.current, updater];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\n\nfunction TabNode(_ref, ref) {\n var _classNames;\n\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n active = _ref.active,\n rtl = _ref.rtl,\n _ref$tab = _ref.tab,\n key = _ref$tab.key,\n tab = _ref$tab.tab,\n disabled = _ref$tab.disabled,\n closeIcon = _ref$tab.closeIcon,\n tabBarGutter = _ref.tabBarGutter,\n tabPosition = _ref.tabPosition,\n closable = _ref.closable,\n renderWrapper = _ref.renderWrapper,\n removeAriaLabel = _ref.removeAriaLabel,\n editable = _ref.editable,\n onClick = _ref.onClick,\n onRemove = _ref.onRemove,\n onFocus = _ref.onFocus;\n var tabPrefix = \"\".concat(prefixCls, \"-tab\");\n React.useEffect(function () {\n return onRemove;\n }, []);\n var nodeStyle = {};\n\n if (tabPosition === 'top' || tabPosition === 'bottom') {\n nodeStyle[rtl ? 'marginLeft' : 'marginRight'] = tabBarGutter;\n } else {\n nodeStyle.marginBottom = tabBarGutter;\n }\n\n var removable = editable && closable !== false && !disabled;\n\n function onInternalClick(e) {\n if (disabled) return;\n onClick(e);\n }\n\n function onRemoveTab(event) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n\n var node = /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n ref: ref,\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: nodeStyle,\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 }, tab), 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\n if (renderWrapper) {\n node = renderWrapper(node);\n }\n\n return node;\n}\n\nexport default /*#__PURE__*/React.forwardRef(TabNode);","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\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\n for (var i = 0; i < tabs.length; i += 1) {\n var key = tabs[i].key;\n var data = tabSizes.get(key); // Reuse last one when not exist yet\n\n if (!data) {\n var _tabs;\n\n data = tabSizes.get((_tabs = tabs[i - 1]) === null || _tabs === void 0 ? void 0 : _tabs.key) || DEFAULT_SIZE;\n }\n\n var entity = map.get(key) || _objectSpread({}, data); // Right\n\n\n entity.right = rightOffset - entity.left - entity.width; // Update entity\n\n map.set(key, entity);\n }\n\n return map;\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), tabSizes, holderScrollWidth]);\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, containerSize, tabContentNodeSize, addNodeSize, _ref) {\n var tabs = _ref.tabs,\n tabPosition = _ref.tabPosition,\n rtl = _ref.rtl;\n var unit;\n var position;\n var transformSize;\n\n if (['top', 'bottom'].includes(tabPosition)) {\n unit = 'width';\n position = rtl ? 'right' : 'left';\n transformSize = Math.abs(containerSize.left);\n } else {\n unit = 'height';\n position = 'top';\n transformSize = -containerSize.top;\n }\n\n var basicSize = containerSize[unit];\n var tabContentSize = tabContentNodeSize[unit];\n var addSize = addNodeSize[unit];\n var mergedBasicSize = basicSize;\n\n if (tabContentSize + addSize > basicSize) {\n mergedBasicSize = basicSize - addSize;\n }\n\n return useMemo(function () {\n if (!tabs.length) {\n return [0, 0];\n }\n\n var len = tabs.length;\n var endIndex = len;\n\n for (var i = 0; i < len; i += 1) {\n var offset = tabOffsets.get(tabs[i].key) || DEFAULT_SIZE;\n\n if (offset[position] + offset[unit] > transformSize + mergedBasicSize) {\n endIndex = i - 1;\n break;\n }\n }\n\n var startIndex = 0;\n\n for (var _i = len - 1; _i >= 0; _i -= 1) {\n var _offset = tabOffsets.get(tabs[_i].key) || DEFAULT_SIZE;\n\n if (_offset[position] < transformSize) {\n startIndex = _i + 1;\n break;\n }\n }\n\n return [startIndex, endIndex];\n }, [tabOffsets, transformSize, mergedBasicSize, tabPosition, tabs.map(function (tab) {\n return tab.key;\n }).join('_'), rtl]);\n}","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topCenter: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomCenter: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport Placements from './placements';\n\nfunction Dropdown(props, ref) {\n var _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? false : _props$arrow,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dropdown' : _props$prefixCls,\n transitionName = props.transitionName,\n animation = props.animation,\n align = props.align,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,\n _props$placements = props.placements,\n placements = _props$placements === void 0 ? Placements : _props$placements,\n getPopupContainer = props.getPopupContainer,\n showAction = props.showAction,\n hideAction = props.hideAction,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n visible = props.visible,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n otherProps = _objectWithoutProperties(props, [\"arrow\", \"prefixCls\", \"transitionName\", \"animation\", \"align\", \"placement\", \"placements\", \"getPopupContainer\", \"showAction\", \"hideAction\", \"overlayClassName\", \"overlayStyle\", \"visible\", \"trigger\"]);\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n triggerVisible = _React$useState2[0],\n setTriggerVisible = _React$useState2[1];\n\n var mergedVisible = 'visible' in props ? visible : triggerVisible;\n var triggerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n\n var getOverlayElement = function getOverlayElement() {\n var overlay = props.overlay;\n var overlayElement;\n\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n\n return overlayElement;\n };\n\n var onClick = function onClick(e) {\n var onOverlayClick = props.onOverlayClick;\n var overlayProps = getOverlayElement().props;\n setTriggerVisible(false);\n\n if (onOverlayClick) {\n onOverlayClick(e);\n }\n\n if (overlayProps.onClick) {\n overlayProps.onClick(e);\n }\n };\n\n var onVisibleChange = function onVisibleChange(visible) {\n var onVisibleChange = props.onVisibleChange;\n setTriggerVisible(visible);\n\n if (typeof onVisibleChange === 'function') {\n onVisibleChange(visible);\n }\n };\n\n var getMenuElement = function getMenuElement() {\n var overlayElement = getOverlayElement();\n var extraOverlayProps = {\n prefixCls: \"\".concat(prefixCls, \"-menu\"),\n onClick: onClick\n };\n\n if (typeof overlayElement.type === 'string') {\n delete extraOverlayProps.prefixCls;\n }\n\n return React.createElement(React.Fragment, null, arrow && React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }), React.cloneElement(overlayElement, extraOverlayProps));\n };\n\n var getMenuElementOrLambda = function getMenuElementOrLambda() {\n var overlay = props.overlay;\n\n if (typeof overlay === 'function') {\n return getMenuElement;\n }\n\n return getMenuElement();\n };\n\n var getMinOverlayWidthMatchTrigger = function getMinOverlayWidthMatchTrigger() {\n var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n alignPoint = props.alignPoint;\n\n if ('minOverlayWidthMatchTrigger' in props) {\n return minOverlayWidthMatchTrigger;\n }\n\n return !alignPoint;\n };\n\n var getOpenClassName = function getOpenClassName() {\n var openClassName = props.openClassName;\n\n if (openClassName !== undefined) {\n return openClassName;\n }\n\n return \"\".concat(prefixCls, \"-open\");\n };\n\n var renderChildren = function renderChildren() {\n var children = props.children;\n var childrenProps = children.props ? children.props : {};\n var childClassName = classNames(childrenProps.className, getOpenClassName());\n return triggerVisible && children ? React.cloneElement(children, {\n className: childClassName\n }) : children;\n };\n\n var triggerHideAction = hideAction;\n\n if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n triggerHideAction = ['click'];\n }\n\n return React.createElement(Trigger, Object.assign({}, otherProps, {\n prefixCls: prefixCls,\n ref: triggerRef,\n popupClassName: classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-show-arrow\"), arrow)),\n popupStyle: overlayStyle,\n builtinPlacements: placements,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction || [],\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: mergedVisible,\n stretch: getMinOverlayWidthMatchTrigger() ? 'minWidth' : '',\n popup: getMenuElementOrLambda(),\n onPopupVisibleChange: onVisibleChange,\n getPopupContainer: getPopupContainer\n }), renderChildren());\n}\n\nexport default React.forwardRef(Dropdown);","import Dropdown from './Dropdown';\nexport default Dropdown;","import * as React from 'react';\n\nfunction AddButton(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n editable = _ref.editable,\n locale = _ref.locale,\n style = _ref.style;\n\n if (!editable || editable.showAdd === false) {\n return null;\n }\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}\n\nexport default /*#__PURE__*/React.forwardRef(AddButton);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useState, useEffect } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport Menu, { MenuItem } from 'rc-menu';\nimport Dropdown from 'rc-dropdown';\nimport AddButton from './AddButton';\n\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 onTabClick = _ref.onTabClick; // ======================== Dropdown ========================\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n selectedKey = _useState4[0],\n setSelectedKey = _useState4[1];\n\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 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 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 return /*#__PURE__*/React.createElement(MenuItem, {\n key: tab.key,\n id: \"\".concat(popupId, \"-\").concat(tab.key),\n role: \"option\",\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(tab.key),\n disabled: tab.disabled\n }, tab.tab);\n }));\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\n for (var i = 0; i < len; i += 1) {\n selectedIndex = (selectedIndex + offset + len) % len;\n var tab = enabledTabs[selectedIndex];\n\n if (!tab.disabled) {\n setSelectedKey(tab.key);\n return;\n }\n }\n }\n\n function onKeyDown(e) {\n var which = e.which;\n\n if (!open) {\n if ([KeyCode.DOWN, KeyCode.SPACE, KeyCode.ENTER].includes(which)) {\n setOpen(true);\n e.preventDefault();\n }\n\n return;\n }\n\n switch (which) {\n case KeyCode.UP:\n selectOffset(-1);\n e.preventDefault();\n break;\n\n case KeyCode.DOWN:\n selectOffset(1);\n e.preventDefault();\n break;\n\n case KeyCode.ESC:\n setOpen(false);\n break;\n\n case KeyCode.SPACE:\n case KeyCode.ENTER:\n if (selectedKey !== null) onTabClick(selectedKey, e);\n break;\n }\n } // ========================= Effect =========================\n\n\n useEffect(function () {\n // We use query element here to avoid React strict warning\n var ele = document.getElementById(selectedItemId);\n\n if (ele && ele.scrollIntoView) {\n ele.scrollIntoView(false);\n }\n }, [selectedKey]);\n useEffect(function () {\n if (!open) {\n setSelectedKey(null);\n }\n }, [open]); // ========================= Render =========================\n\n var moreStyle = _defineProperty({}, rtl ? 'marginLeft' : 'marginRight', tabBarGutter);\n\n if (!tabs.length) {\n moreStyle.visibility = 'hidden';\n moreStyle.order = 1;\n }\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: open,\n transitionName: moreTransitionName,\n onVisibleChange: setOpen,\n overlayClassName: overlayClassName,\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1\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}\n\nexport default /*#__PURE__*/React.forwardRef(OperationNode);","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","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); // ================================= Hook =================================\n\nexport default function useTouchMove(ref, onOffset) {\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n touchPosition = _useState2[0],\n setTouchPosition = _useState2[1];\n\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n lastTimestamp = _useState4[0],\n setLastTimestamp = _useState4[1];\n\n var _useState5 = useState(0),\n _useState6 = _slicedToArray(_useState5, 2),\n lastTimeDiff = _useState6[0],\n setLastTimeDiff = _useState6[1];\n\n var _useState7 = useState(),\n _useState8 = _slicedToArray(_useState7, 2),\n lastOffset = _useState8[0],\n setLastOffset = _useState8[1];\n\n var motionRef = useRef(); // ========================= Events =========================\n // >>> Touch events\n\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\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\n function onTouchEnd() {\n if (!touchPosition) return;\n setTouchPosition(null);\n setLastOffset(null); // Swipe if needed\n\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); // Skip swipe if low distance\n\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\n currentX *= SPEED_OFF_MULTIPLE;\n currentY *= SPEED_OFF_MULTIPLE;\n onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL);\n }, REFRESH_INTERVAL);\n }\n } // >>> Wheel event\n\n\n var lastWheelDirectionRef = useRef();\n\n function onWheel(e) {\n var deltaX = e.deltaX,\n deltaY = e.deltaY; // Convert both to x & y since wheel only happened on PC\n\n var mixed = 0;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n\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\n if (onOffset(-mixed, -mixed)) {\n e.preventDefault();\n }\n } // ========================= Effect =========================\n\n\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\n function onProxyTouchMove(e) {\n touchEventsRef.current.onTouchMove(e);\n }\n\n function onProxyTouchEnd(e) {\n touchEventsRef.current.onTouchEnd(e);\n }\n\n function onProxyWheel(e) {\n touchEventsRef.current.onWheel(e);\n }\n\n document.addEventListener('touchmove', onProxyTouchMove, {\n passive: false\n });\n document.addEventListener('touchend', onProxyTouchEnd, {\n passive: false\n }); // No need to clean up since element removed\n\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 * as React from 'react';\nexport default function useSyncState(defaultState, onChange) {\n var stateRef = React.useRef(defaultState);\n\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n\n function setState(updater) {\n var newValue = typeof updater === 'function' ? updater(stateRef.current) : updater;\n\n if (newValue !== stateRef.current) {\n onChange(newValue, stateRef.current);\n }\n\n stateRef.current = newValue;\n forceUpdate({});\n }\n\n return [stateRef.current, setState];\n}","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 * as React from 'react';\nimport { useState, useRef, useEffect } from 'react';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport ResizeObserver from 'rc-resize-observer';\nimport useRaf, { useRafState } from '../hooks/useRaf';\nimport TabNode from './TabNode';\nimport useOffsets from '../hooks/useOffsets';\nimport useVisibleRange from '../hooks/useVisibleRange';\nimport OperationNode from './OperationNode';\nimport TabContext from '../TabContext';\nimport useTouchMove from '../hooks/useTouchMove';\nimport useRefs from '../hooks/useRefs';\nimport AddButton from './AddButton';\nimport useSyncState from '../hooks/useSyncState';\n\nvar ExtraContent = function ExtraContent(_ref) {\n var position = _ref.position,\n prefixCls = _ref.prefixCls,\n extra = _ref.extra;\n if (!extra) return null;\n var content;\n var assertExtra = extra;\n\n if (position === 'right') {\n content = assertExtra.right || !assertExtra.left && assertExtra || null;\n }\n\n if (position === 'left') {\n content = assertExtra.left || null;\n }\n\n return content ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra-content\")\n }, content) : null;\n};\n\nfunction TabNavList(props, ref) {\n var _classNames;\n\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n\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 tabsWrapperRef = useRef();\n var tabListRef = useRef();\n var operationsRef = useRef();\n var innerAddButtonRef = useRef();\n\n var _useRefs = useRefs(),\n _useRefs2 = _slicedToArray(_useRefs, 2),\n getBtnRef = _useRefs2[0],\n removeBtnRef = _useRefs2[1];\n\n var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';\n\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\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\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n wrapperScrollWidth = _useState2[0],\n setWrapperScrollWidth = _useState2[1];\n\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n wrapperScrollHeight = _useState4[0],\n setWrapperScrollHeight = _useState4[1];\n\n var _useState5 = useState(0),\n _useState6 = _slicedToArray(_useState5, 2),\n wrapperContentWidth = _useState6[0],\n setWrapperContentWidth = _useState6[1];\n\n var _useState7 = useState(0),\n _useState8 = _slicedToArray(_useState7, 2),\n wrapperContentHeight = _useState8[0],\n setWrapperContentHeight = _useState8[1];\n\n var _useState9 = useState(null),\n _useState10 = _slicedToArray(_useState9, 2),\n wrapperWidth = _useState10[0],\n setWrapperWidth = _useState10[1];\n\n var _useState11 = useState(null),\n _useState12 = _slicedToArray(_useState11, 2),\n wrapperHeight = _useState12[0],\n setWrapperHeight = _useState12[1];\n\n var _useState13 = useState(0),\n _useState14 = _slicedToArray(_useState13, 2),\n addWidth = _useState14[0],\n setAddWidth = _useState14[1];\n\n var _useState15 = useState(0),\n _useState16 = _slicedToArray(_useState15, 2),\n addHeight = _useState16[0],\n setAddHeight = _useState16[1];\n\n var _useRafState = useRafState(new Map()),\n _useRafState2 = _slicedToArray(_useRafState, 2),\n tabSizes = _useRafState2[0],\n setTabSizes = _useRafState2[1];\n\n var tabOffsets = useOffsets(tabs, tabSizes, wrapperScrollWidth); // ========================== Util =========================\n\n var operationsHiddenClassName = \"\".concat(prefixCls, \"-nav-operations-hidden\");\n var transformMin = 0;\n var transformMax = 0;\n\n if (!tabPositionTopOrBottom) {\n transformMin = Math.min(0, wrapperHeight - wrapperScrollHeight);\n transformMax = 0;\n } else if (rtl) {\n transformMin = 0;\n transformMax = Math.max(0, wrapperScrollWidth - wrapperWidth);\n } else {\n transformMin = Math.min(0, wrapperWidth - wrapperScrollWidth);\n transformMax = 0;\n }\n\n function alignInRange(value) {\n if (value < transformMin) {\n return transformMin;\n }\n\n if (value > transformMax) {\n return transformMax;\n }\n\n return value;\n } // ========================= Mobile ========================\n\n\n var touchMovingRef = useRef();\n\n var _useState17 = useState(),\n _useState18 = _slicedToArray(_useState17, 2),\n lockAnimation = _useState18[0],\n setLockAnimation = _useState18[1];\n\n function doLockAnimation() {\n setLockAnimation(Date.now());\n }\n\n function clearTouchMoving() {\n window.clearTimeout(touchMovingRef.current);\n }\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 if (tabPositionTopOrBottom) {\n // Skip scroll if place is enough\n if (wrapperWidth >= wrapperScrollWidth) {\n return false;\n }\n\n doMove(setTransformLeft, offsetX);\n } else {\n if (wrapperHeight >= wrapperScrollHeight) {\n return false;\n }\n\n doMove(setTransformTop, offsetY);\n }\n\n clearTouchMoving();\n doLockAnimation();\n return true;\n });\n useEffect(function () {\n clearTouchMoving();\n\n if (lockAnimation) {\n touchMovingRef.current = window.setTimeout(function () {\n setLockAnimation(0);\n }, 100);\n }\n\n return clearTouchMoving;\n }, [lockAnimation]); // ========================= Scroll ========================\n\n function scrollToTab() {\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\n if (tabPositionTopOrBottom) {\n // ============ Align with top & bottom ============\n var newTransform = transformLeft; // RTL\n\n if (rtl) {\n if (tabOffset.right < transformLeft) {\n newTransform = tabOffset.right;\n } else if (tabOffset.right + tabOffset.width > transformLeft + wrapperWidth) {\n newTransform = tabOffset.right + tabOffset.width - wrapperWidth;\n }\n } // LTR\n else if (tabOffset.left < -transformLeft) {\n newTransform = -tabOffset.left;\n } else if (tabOffset.left + tabOffset.width > -transformLeft + wrapperWidth) {\n newTransform = -(tabOffset.left + tabOffset.width - wrapperWidth);\n }\n\n setTransformTop(0);\n setTransformLeft(alignInRange(newTransform));\n } else {\n // ============ Align with left & right ============\n var _newTransform = transformTop;\n\n if (tabOffset.top < -transformTop) {\n _newTransform = -tabOffset.top;\n } else if (tabOffset.top + tabOffset.height > -transformTop + wrapperHeight) {\n _newTransform = -(tabOffset.top + tabOffset.height - wrapperHeight);\n }\n\n setTransformLeft(0);\n setTransformTop(alignInRange(_newTransform));\n }\n } // ========================== Tab ==========================\n // Render tab node & collect tab offset\n\n\n var _useVisibleRange = useVisibleRange(tabOffsets, {\n width: wrapperWidth,\n height: wrapperHeight,\n left: transformLeft,\n top: transformTop\n }, {\n width: wrapperContentWidth,\n height: wrapperContentHeight\n }, {\n width: addWidth,\n height: addHeight\n }, _objectSpread(_objectSpread({}, props), {}, {\n tabs: tabs\n })),\n _useVisibleRange2 = _slicedToArray(_useVisibleRange, 2),\n visibleStart = _useVisibleRange2[0],\n visibleEnd = _useVisibleRange2[1];\n\n var tabNodes = tabs.map(function (tab) {\n var key = tab.key;\n return /*#__PURE__*/React.createElement(TabNode, {\n id: id,\n prefixCls: prefixCls,\n key: key,\n rtl: rtl,\n tab: tab,\n closable: tab.closable,\n editable: editable,\n active: key === activeKey,\n tabPosition: tabPosition,\n tabBarGutter: tabBarGutter,\n renderWrapper: children,\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n ref: getBtnRef(key),\n onClick: function onClick(e) {\n onTabClick(key, e);\n },\n onRemove: function onRemove() {\n removeBtnRef(key);\n },\n onFocus: function onFocus() {\n scrollToTab(key);\n doLockAnimation(); // Focus element will make scrollLeft change which we should reset back\n\n if (!rtl) {\n tabsWrapperRef.current.scrollLeft = 0;\n }\n\n tabsWrapperRef.current.scrollTop = 0;\n }\n });\n });\n var onListHolderResize = useRaf(function () {\n var _tabsWrapperRef$curre, _tabsWrapperRef$curre2, _innerAddButtonRef$cu, _innerAddButtonRef$cu2, _operationsRef$curren, _operationsRef$curren2, _tabListRef$current, _tabListRef$current2, _operationsRef$curren3; // Update wrapper records\n\n\n var offsetWidth = ((_tabsWrapperRef$curre = tabsWrapperRef.current) === null || _tabsWrapperRef$curre === void 0 ? void 0 : _tabsWrapperRef$curre.offsetWidth) || 0;\n var offsetHeight = ((_tabsWrapperRef$curre2 = tabsWrapperRef.current) === null || _tabsWrapperRef$curre2 === void 0 ? void 0 : _tabsWrapperRef$curre2.offsetHeight) || 0;\n var newAddWidth = ((_innerAddButtonRef$cu = innerAddButtonRef.current) === null || _innerAddButtonRef$cu === void 0 ? void 0 : _innerAddButtonRef$cu.offsetWidth) || 0;\n var newAddHeight = ((_innerAddButtonRef$cu2 = innerAddButtonRef.current) === null || _innerAddButtonRef$cu2 === void 0 ? void 0 : _innerAddButtonRef$cu2.offsetHeight) || 0;\n var newOperationWidth = ((_operationsRef$curren = operationsRef.current) === null || _operationsRef$curren === void 0 ? void 0 : _operationsRef$curren.offsetWidth) || 0;\n var newOperationHeight = ((_operationsRef$curren2 = operationsRef.current) === null || _operationsRef$curren2 === void 0 ? void 0 : _operationsRef$curren2.offsetHeight) || 0;\n setWrapperWidth(offsetWidth);\n setWrapperHeight(offsetHeight);\n setAddWidth(newAddWidth);\n setAddHeight(newAddHeight);\n var newWrapperScrollWidth = (((_tabListRef$current = tabListRef.current) === null || _tabListRef$current === void 0 ? void 0 : _tabListRef$current.offsetWidth) || 0) - newAddWidth;\n var newWrapperScrollHeight = (((_tabListRef$current2 = tabListRef.current) === null || _tabListRef$current2 === void 0 ? void 0 : _tabListRef$current2.offsetHeight) || 0) - newAddHeight;\n setWrapperScrollWidth(newWrapperScrollWidth);\n setWrapperScrollHeight(newWrapperScrollHeight);\n var isOperationHidden = (_operationsRef$curren3 = operationsRef.current) === null || _operationsRef$curren3 === void 0 ? void 0 : _operationsRef$curren3.className.includes(operationsHiddenClassName);\n setWrapperContentWidth(newWrapperScrollWidth - (isOperationHidden ? 0 : newOperationWidth));\n setWrapperContentHeight(newWrapperScrollHeight - (isOperationHidden ? 0 : newOperationHeight)); // Update buttons records\n\n setTabSizes(function () {\n var newSizes = new Map();\n tabs.forEach(function (_ref2) {\n var key = _ref2.key;\n var btnNode = getBtnRef(key).current;\n\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 }); // ======================== Dropdown =======================\n\n var startHiddenTabs = tabs.slice(0, visibleStart);\n var endHiddenTabs = tabs.slice(visibleEnd + 1);\n var hiddenTabs = [].concat(_toConsumableArray(startHiddenTabs), _toConsumableArray(endHiddenTabs)); // =================== Link & Operations ===================\n\n var _useState19 = useState(),\n _useState20 = _slicedToArray(_useState19, 2),\n inkStyle = _useState20[0],\n setInkStyle = _useState20[1];\n\n var activeTabOffset = tabOffsets.get(activeKey); // Delay set ink style to avoid remove tab blink\n\n var inkBarRafRef = useRef();\n\n function cleanInkBarRaf() {\n raf.cancel(inkBarRafRef.current);\n }\n\n useEffect(function () {\n var newInkStyle = {};\n\n if (activeTabOffset) {\n if (tabPositionTopOrBottom) {\n if (rtl) {\n newInkStyle.right = activeTabOffset.right;\n } else {\n newInkStyle.left = activeTabOffset.left;\n }\n\n newInkStyle.width = activeTabOffset.width;\n } else {\n newInkStyle.top = activeTabOffset.top;\n newInkStyle.height = activeTabOffset.height;\n }\n }\n\n cleanInkBarRaf();\n inkBarRafRef.current = raf(function () {\n setInkStyle(newInkStyle);\n });\n return cleanInkBarRaf;\n }, [activeTabOffset, tabPositionTopOrBottom, rtl]); // ========================= Effect ========================\n\n useEffect(function () {\n scrollToTab();\n }, [activeKey, activeTabOffset, tabOffsets, tabPositionTopOrBottom]); // Should recalculate when rtl changed\n\n useEffect(function () {\n onListHolderResize();\n }, [rtl, tabBarGutter, activeKey, tabs.map(function (tab) {\n return tab.key;\n }).join('_')]); // ========================= Render ========================\n\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\n if (tabPositionTopOrBottom) {\n if (rtl) {\n pingRight = transformLeft > 0;\n pingLeft = transformLeft + wrapperWidth < wrapperScrollWidth;\n } else {\n pingLeft = transformLeft < 0;\n pingRight = -transformLeft + wrapperWidth < wrapperScrollWidth;\n }\n } else {\n pingTop = transformTop < 0;\n pingBottom = -transformTop + wrapperHeight < wrapperScrollHeight;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\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 position: \"left\",\n extra: extra,\n prefixCls: prefixCls\n }), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\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: {\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 ref: operationsRef,\n prefixCls: prefixCls,\n tabs: hiddenTabs,\n className: !hasDropdown && operationsHiddenClassName\n })), /*#__PURE__*/React.createElement(ExtraContent, {\n position: \"right\",\n extra: extra,\n prefixCls: prefixCls\n }));\n /* eslint-enable */\n}\n\nexport default /*#__PURE__*/React.forwardRef(TabNavList);","import * as React from 'react';\nimport { useRef } from 'react';\nexport default function useRefs() {\n var cacheRefs = useRef(new Map());\n\n function getRef(key) {\n if (!cacheRefs.current.has(key)) {\n cacheRefs.current.set(key, /*#__PURE__*/React.createRef());\n }\n\n return cacheRefs.current.get(key);\n }\n\n function removeRef(key) {\n cacheRefs.current.delete(key);\n }\n\n return [getRef, removeRef];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport TabContext from '../TabContext';\nexport default function TabPanelList(_ref) {\n var id = _ref.id,\n activeKey = _ref.activeKey,\n animated = _ref.animated,\n tabPosition = _ref.tabPosition,\n rtl = _ref.rtl,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane;\n\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n\n var tabPaneAnimated = animated.tabPane;\n var activeIndex = tabs.findIndex(function (tab) {\n return tab.key === activeKey;\n });\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 style: activeIndex && tabPaneAnimated ? _defineProperty({}, rtl ? 'marginRight' : 'marginLeft', \"-\".concat(activeIndex, \"00%\")) : null\n }, tabs.map(function (tab) {\n return /*#__PURE__*/React.cloneElement(tab.node, {\n key: tab.key,\n prefixCls: prefixCls,\n tabKey: tab.key,\n id: id,\n animated: tabPaneAnimated,\n active: tab.key === activeKey,\n destroyInactiveTabPane: destroyInactiveTabPane\n });\n })));\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nexport default function TabPane(_ref) {\n var prefixCls = _ref.prefixCls,\n forceRender = _ref.forceRender,\n className = _ref.className,\n style = _ref.style,\n id = _ref.id,\n active = _ref.active,\n animated = _ref.animated,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane,\n tabKey = _ref.tabKey,\n children = _ref.children;\n\n var _React$useState = React.useState(forceRender),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visited = _React$useState2[0],\n setVisited = _React$useState2[1];\n\n React.useEffect(function () {\n if (active) {\n setVisited(true);\n } else if (destroyInactiveTabPane) {\n setVisited(false);\n }\n }, [active, destroyInactiveTabPane]);\n var mergedStyle = {};\n\n if (!active) {\n if (animated) {\n mergedStyle.visibility = 'hidden';\n mergedStyle.height = 0;\n mergedStyle.overflowY = 'hidden';\n } else {\n mergedStyle.display = 'none';\n }\n }\n\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: _objectSpread(_objectSpread({}, mergedStyle), style),\n className: classNames(\"\".concat(prefixCls, \"-tabpane\"), active && \"\".concat(prefixCls, \"-tabpane-active\"), className)\n }, (active || visited || forceRender) && children);\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 _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role\n\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport TabNavList from './TabNavList';\nimport TabPanelList from './TabPanelList';\nimport TabPane from './TabPanelList/TabPane';\nimport TabContext from './TabContext';\n/**\n * Should added antd:\n * - type\n *\n * Removed:\n * - onNextClick\n * - onPrevClick\n * - keyboard\n */\n// Used for accessibility\n\nvar uuid = 0;\n\nfunction parseTabList(children) {\n return toArray(children).map(function (node) {\n if ( /*#__PURE__*/React.isValidElement(node)) {\n var key = node.key !== undefined ? String(node.key) : undefined;\n return _objectSpread(_objectSpread({\n key: key\n }, node.props), {}, {\n node: node\n });\n }\n\n return null;\n }).filter(function (tab) {\n return tab;\n });\n}\n\nfunction Tabs(_ref, ref) {\n var _classNames;\n\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 children = _ref.children,\n direction = _ref.direction,\n activeKey = _ref.activeKey,\n defaultActiveKey = _ref.defaultActiveKey,\n editable = _ref.editable,\n _ref$animated = _ref.animated,\n animated = _ref$animated === void 0 ? {\n inkBar: true,\n tabPane: false\n } : _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 restProps = _objectWithoutProperties(_ref, [\"id\", \"prefixCls\", \"className\", \"children\", \"direction\", \"activeKey\", \"defaultActiveKey\", \"editable\", \"animated\", \"tabPosition\", \"tabBarGutter\", \"tabBarStyle\", \"tabBarExtraContent\", \"locale\", \"moreIcon\", \"moreTransitionName\", \"destroyInactiveTabPane\", \"renderTabBar\", \"onChange\", \"onTabClick\", \"onTabScroll\"]);\n\n var tabs = parseTabList(children);\n var rtl = direction === 'rtl';\n var mergedAnimated;\n\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 = _objectSpread({\n inkBar: true,\n tabPane: false\n }, _typeof(animated) === 'object' ? animated : {});\n } // ======================== Mobile ========================\n\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n mobile = _useState2[0],\n setMobile = _useState2[1];\n\n useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []); // ====================== Active Key ======================\n\n var _useMergedState = useMergedState(function () {\n var _tabs$;\n\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\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]; // Reset active key if not exist anymore\n\n\n useEffect(function () {\n var newActiveIndex = tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n\n if (newActiveIndex === -1) {\n var _tabs$newActiveIndex;\n\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\n setActiveIndex(newActiveIndex);\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), mergedActiveKey, activeIndex]); // ===================== Accessibility ====================\n\n var _useMergedState3 = useMergedState(null, {\n value: id\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedId = _useMergedState4[0],\n setMergedId = _useMergedState4[1];\n\n var mergedTabPosition = tabPosition;\n\n if (mobile && !['left', 'right'].includes(tabPosition)) {\n mergedTabPosition = 'top';\n } // Async generate id to avoid ssr mapping failed\n\n\n useEffect(function () {\n if (!id) {\n setMergedId(\"rc-tabs-\".concat(process.env.NODE_ENV === 'test' ? 'test' : uuid));\n uuid += 1;\n }\n }, []); // ======================== Events ========================\n\n function onInternalTabClick(key, e) {\n onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(key, e);\n setMergedActiveKey(key);\n onChange === null || onChange === void 0 ? void 0 : onChange(key);\n } // ======================== Render ========================\n\n\n var sharedProps = {\n id: mergedId,\n activeKey: mergedActiveKey,\n animated: mergedAnimated,\n tabPosition: mergedTabPosition,\n rtl: rtl,\n mobile: mobile\n };\n var tabNavBar;\n\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: children\n });\n\n if (renderTabBar) {\n tabNavBar = renderTabBar(tabNavBarProps, TabNavList);\n } else {\n tabNavBar = /*#__PURE__*/React.createElement(TabNavList, tabNavBarProps);\n }\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(mergedTabPosition), (_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(TabPanelList, _extends({\n destroyInactiveTabPane: destroyInactiveTabPane\n }, sharedProps, {\n animated: mergedAnimated\n }))));\n}\n\nvar ForwardTabs = /*#__PURE__*/React.forwardRef(Tabs);\nForwardTabs.TabPane = TabPane;\nexport default ForwardTabs;","import Tabs from './Tabs';\nimport TabPane from './TabPanelList/TabPane';\nexport { TabPane };\nexport default Tabs;","// This icon file is generated automatically.\nvar EllipsisOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"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\"\n }\n }]\n },\n \"name\": \"ellipsis\",\n \"theme\": \"outlined\"\n};\nexport default EllipsisOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EllipsisOutlinedSvg from \"@ant-design/icons-svg/es/asn/EllipsisOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar EllipsisOutlined = function EllipsisOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: EllipsisOutlinedSvg\n }));\n};\n\nEllipsisOutlined.displayName = 'EllipsisOutlined';\nexport default /*#__PURE__*/React.forwardRef(EllipsisOutlined);","// This icon file is generated automatically.\nvar PlusOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"defs\",\n \"attrs\": {},\n \"children\": [{\n \"tag\": \"style\",\n \"attrs\": {}\n }]\n }, {\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\"\n }\n }, {\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z\"\n }\n }]\n },\n \"name\": \"plus\",\n \"theme\": \"outlined\"\n};\nexport default PlusOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar PlusOutlined = function PlusOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: PlusOutlinedSvg\n }));\n};\n\nPlusOutlined.displayName = 'PlusOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport RcTabs, { TabPane } from 'rc-tabs';\nimport classNames from 'classnames';\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport PlusOutlined from \"@ant-design/icons/es/icons/PlusOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport devWarning from '../_util/devWarning';\nimport { ConfigContext } from '../config-provider';\n\nfunction Tabs(_a) {\n var _classNames;\n\n var type = _a.type,\n className = _a.className,\n size = _a.size,\n _onEdit = _a.onEdit,\n hideAdd = _a.hideAdd,\n centered = _a.centered,\n addIcon = _a.addIcon,\n props = __rest(_a, [\"type\", \"className\", \"size\", \"onEdit\", \"hideAdd\", \"centered\", \"addIcon\"]);\n\n var customizePrefixCls = props.prefixCls;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var prefixCls = getPrefixCls('tabs', customizePrefixCls);\n var editable;\n\n if (type === 'editable-card') {\n editable = {\n onEdit: function onEdit(editType, _ref) {\n var key = _ref.key,\n event = _ref.event;\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\n devWarning(!('onPrevClick' in props) && !('onNextClick' in props), 'Tabs', '`onPrevClick` and `onNextClick` has been removed. Please use `onTabScroll` instead.');\n return /*#__PURE__*/React.createElement(RcTabs, _extends({\n direction: direction\n }, props, {\n moreTransitionName: \"slide-up\",\n className: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(size), size), _defineProperty(_classNames, \"\".concat(prefixCls, \"-card\"), ['card', 'editable-card'].includes(type)), _defineProperty(_classNames, \"\".concat(prefixCls, \"-editable-card\"), type === 'editable-card'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-centered\"), centered), _classNames), className),\n editable: editable,\n moreIcon: /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n prefixCls: prefixCls\n }));\n}\n\nTabs.TabPane = TabPane;\nexport default Tabs;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport Grid from './Grid';\nimport Meta from './Meta';\nimport Tabs from '../tabs';\nimport Row from '../row';\nimport Col from '../col';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\n\nfunction getAction(actions) {\n var actionList = actions.map(function (action, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n style: {\n width: \"\".concat(100 / actions.length, \"%\")\n },\n key: \"action-\".concat(index)\n }, /*#__PURE__*/React.createElement(\"span\", null, action))\n );\n });\n return actionList;\n}\n\nvar Card = function Card(props) {\n var _extends2, _classNames;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var size = React.useContext(SizeContext);\n\n var onTabChange = function onTabChange(key) {\n if (props.onTabChange) {\n props.onTabChange(key);\n }\n };\n\n var isContainGrid = function isContainGrid() {\n var containGrid;\n React.Children.forEach(props.children, function (element) {\n if (element && element.type && element.type === Grid) {\n containGrid = true;\n }\n });\n return containGrid;\n };\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n extra = props.extra,\n _props$headStyle = props.headStyle,\n headStyle = _props$headStyle === void 0 ? {} : _props$headStyle,\n _props$bodyStyle = props.bodyStyle,\n bodyStyle = _props$bodyStyle === void 0 ? {} : _props$bodyStyle,\n title = props.title,\n loading = props.loading,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n customizeSize = props.size,\n type = props.type,\n cover = props.cover,\n actions = props.actions,\n tabList = props.tabList,\n children = props.children,\n activeTabKey = props.activeTabKey,\n defaultActiveTabKey = props.defaultActiveTabKey,\n tabBarExtraContent = props.tabBarExtraContent,\n hoverable = props.hoverable,\n _props$tabProps = props.tabProps,\n tabProps = _props$tabProps === void 0 ? {} : _props$tabProps,\n others = __rest(props, [\"prefixCls\", \"className\", \"extra\", \"headStyle\", \"bodyStyle\", \"title\", \"loading\", \"bordered\", \"size\", \"type\", \"cover\", \"actions\", \"tabList\", \"children\", \"activeTabKey\", \"defaultActiveTabKey\", \"tabBarExtraContent\", \"hoverable\", \"tabProps\"]);\n\n var prefixCls = getPrefixCls('card', customizePrefixCls);\n var loadingBlockStyle = bodyStyle.padding === 0 || bodyStyle.padding === '0px' ? {\n padding: 24\n } : undefined;\n var block = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-loading-block\")\n });\n var loadingBlock = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-loading-content\"),\n style: loadingBlockStyle\n }, /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 22\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 8\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 15\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 6\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 18\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 13\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 9\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 4\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 3\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 16\n }, block)));\n var hasActiveTabKey = activeTabKey !== undefined;\n\n var extraProps = _extends(_extends({}, tabProps), (_extends2 = {}, _defineProperty(_extends2, hasActiveTabKey ? 'activeKey' : 'defaultActiveKey', hasActiveTabKey ? activeTabKey : defaultActiveTabKey), _defineProperty(_extends2, \"tabBarExtraContent\", tabBarExtraContent), _extends2));\n\n var head;\n var tabs = tabList && tabList.length ? /*#__PURE__*/React.createElement(Tabs, _extends({\n size: \"large\"\n }, extraProps, {\n className: \"\".concat(prefixCls, \"-head-tabs\"),\n onChange: onTabChange\n }), tabList.map(function (item) {\n return /*#__PURE__*/React.createElement(Tabs.TabPane, {\n tab: item.tab,\n disabled: item.disabled,\n key: item.key\n });\n })) : null;\n\n if (title || extra || tabs) {\n head = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head\"),\n style: headStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head-wrapper\")\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head-title\")\n }, title), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra)), tabs);\n }\n\n var coverDom = cover ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-cover\")\n }, cover) : null;\n var body = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\"),\n style: bodyStyle\n }, loading ? loadingBlock : children);\n var actionDom = actions && actions.length ? /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-actions\")\n }, getAction(actions)) : null;\n var divProps = omit(others, ['onTabChange']);\n var mergedSize = customizeSize || size;\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-bordered\"), bordered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-hoverable\"), hoverable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-contain-grid\"), isContainGrid()), _defineProperty(_classNames, \"\".concat(prefixCls, \"-contain-tabs\"), tabList && tabList.length), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(mergedSize), mergedSize), _defineProperty(_classNames, \"\".concat(prefixCls, \"-type-\").concat(type), !!type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n className: classString\n }), head, coverDom, body, actionDom);\n};\n\nCard.Grid = Grid;\nCard.Meta = Meta;\nexport default Card;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { SpaceContext } from '.';\nexport default function Item(_ref) {\n var className = _ref.className,\n direction = _ref.direction,\n index = _ref.index,\n marginDirection = _ref.marginDirection,\n children = _ref.children,\n split = _ref.split,\n wrap = _ref.wrap;\n\n var _React$useContext = React.useContext(SpaceContext),\n horizontalSize = _React$useContext.horizontalSize,\n verticalSize = _React$useContext.verticalSize,\n latestIndex = _React$useContext.latestIndex;\n\n var style = {};\n\n if (direction === 'vertical') {\n if (index < latestIndex) {\n style = {\n marginBottom: horizontalSize / (split ? 2 : 1)\n };\n }\n } else {\n style = _extends(_extends({}, index < latestIndex && _defineProperty({}, marginDirection, horizontalSize / (split ? 2 : 1))), wrap && {\n paddingBottom: verticalSize\n });\n }\n\n if (children === null || children === undefined) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: style\n }, children), index < latestIndex && split && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(className, \"-split\"),\n style: style\n }, split));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { ConfigContext } from '../config-provider';\nimport Item from './Item';\nexport var SpaceContext = /*#__PURE__*/React.createContext({\n latestIndex: 0,\n horizontalSize: 0,\n verticalSize: 0\n});\nvar spaceSize = {\n small: 8,\n middle: 16,\n large: 24\n};\n\nfunction getNumberSize(size) {\n return typeof size === 'string' ? spaceSize[size] : size || 0;\n}\n\nvar Space = function Space(props) {\n var _classNames;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n space = _React$useContext.space,\n directionConfig = _React$useContext.direction;\n\n var _props$size = props.size,\n size = _props$size === void 0 ? (space === null || space === void 0 ? void 0 : space.size) || 'small' : _props$size,\n align = props.align,\n className = props.className,\n children = props.children,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'horizontal' : _props$direction,\n customizePrefixCls = props.prefixCls,\n split = props.split,\n style = props.style,\n _props$wrap = props.wrap,\n wrap = _props$wrap === void 0 ? false : _props$wrap,\n otherProps = __rest(props, [\"size\", \"align\", \"className\", \"children\", \"direction\", \"prefixCls\", \"split\", \"style\", \"wrap\"]);\n\n var _React$useMemo = React.useMemo(function () {\n return (Array.isArray(size) ? size : [size, size]).map(function (item) {\n return getNumberSize(item);\n });\n }, [size]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n horizontalSize = _React$useMemo2[0],\n verticalSize = _React$useMemo2[1];\n\n var childNodes = toArray(children, {\n keepEmpty: true\n });\n\n if (childNodes.length === 0) {\n return null;\n }\n\n var mergedAlign = align === undefined && direction === 'horizontal' ? 'center' : align;\n var prefixCls = getPrefixCls('space', customizePrefixCls);\n var cn = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(direction), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), directionConfig === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-align-\").concat(mergedAlign), mergedAlign), _classNames), className);\n var itemClassName = \"\".concat(prefixCls, \"-item\");\n var marginDirection = directionConfig === 'rtl' ? 'marginLeft' : 'marginRight'; // Calculate latest one\n\n var latestIndex = 0;\n var nodes = childNodes.map(function (child, i) {\n if (child !== null && child !== undefined) {\n latestIndex = i;\n }\n /* eslint-disable react/no-array-index-key */\n\n\n return /*#__PURE__*/React.createElement(Item, {\n className: itemClassName,\n key: \"\".concat(itemClassName, \"-\").concat(i),\n direction: direction,\n index: i,\n marginDirection: marginDirection,\n split: split,\n wrap: wrap\n }, child);\n /* eslint-enable */\n });\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: cn,\n style: _extends(_extends({}, wrap && {\n flexWrap: 'wrap',\n marginBottom: -verticalSize\n }), style)\n }, otherProps), /*#__PURE__*/React.createElement(SpaceContext.Provider, {\n value: {\n horizontalSize: horizontalSize,\n verticalSize: verticalSize,\n latestIndex: latestIndex\n }\n }, nodes));\n};\n\nexport default Space;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\n\nvar CheckableTag = function CheckableTag(_a) {\n var _classNames;\n\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n checked = _a.checked,\n onChange = _a.onChange,\n onClick = _a.onClick,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"checked\", \"onChange\", \"onClick\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var handleClick = function handleClick(e) {\n if (onChange) {\n onChange(!checked);\n }\n\n if (onClick) {\n onClick(e);\n }\n };\n\n var prefixCls = getPrefixCls('tag', customizePrefixCls);\n var cls = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checkable\"), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-checkable-checked\"), checked), _classNames), className);\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, restProps, {\n className: cls,\n onClick: handleClick\n }));\n};\n\nexport default CheckableTag;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport CheckableTag from './CheckableTag';\nimport { ConfigContext } from '../config-provider';\nimport { PresetColorTypes, PresetStatusColorTypes } from '../_util/colors';\nimport Wave from '../_util/wave';\nvar PresetColorRegex = new RegExp(\"^(\".concat(PresetColorTypes.join('|'), \")(-inverse)?$\"));\nvar PresetStatusColorRegex = new RegExp(\"^(\".concat(PresetStatusColorTypes.join('|'), \")$\"));\n\nvar InternalTag = function InternalTag(_a, ref) {\n var _classNames;\n\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n style = _a.style,\n children = _a.children,\n icon = _a.icon,\n color = _a.color,\n onClose = _a.onClose,\n closeIcon = _a.closeIcon,\n _a$closable = _a.closable,\n closable = _a$closable === void 0 ? false : _a$closable,\n props = __rest(_a, [\"prefixCls\", \"className\", \"style\", \"children\", \"icon\", \"color\", \"onClose\", \"closeIcon\", \"closable\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\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\n React.useEffect(function () {\n if ('visible' in props) {\n setVisible(props.visible);\n }\n }, [props.visible]);\n\n var isPresetColor = function isPresetColor() {\n if (!color) {\n return false;\n }\n\n return PresetColorRegex.test(color) || PresetStatusColorRegex.test(color);\n };\n\n var tagStyle = _extends({\n backgroundColor: color && !isPresetColor() ? color : undefined\n }, style);\n\n var presetColor = isPresetColor();\n var prefixCls = getPrefixCls('tag', customizePrefixCls);\n var tagClassName = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(color), presetColor), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-color\"), color && !presetColor), _defineProperty(_classNames, \"\".concat(prefixCls, \"-hidden\"), !visible), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n\n var handleCloseClick = function handleCloseClick(e) {\n e.stopPropagation();\n\n if (onClose) {\n onClose(e);\n }\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (!('visible' in props)) {\n setVisible(false);\n }\n };\n\n var renderCloseIcon = function renderCloseIcon() {\n if (closable) {\n return closeIcon ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-icon\"),\n onClick: handleCloseClick\n }, closeIcon) : /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-close-icon\"),\n onClick: handleCloseClick\n });\n }\n\n return null;\n };\n\n var isNeedWave = 'onClick' in props || children && children.type === 'a';\n var tagProps = omit(props, ['visible']);\n var iconNode = icon || null;\n var kids = iconNode ? /*#__PURE__*/React.createElement(React.Fragment, null, iconNode, /*#__PURE__*/React.createElement(\"span\", null, children)) : children;\n var tagNode = /*#__PURE__*/React.createElement(\"span\", _extends({}, tagProps, {\n ref: ref,\n className: tagClassName,\n style: tagStyle\n }), kids, renderCloseIcon());\n return isNeedWave ? /*#__PURE__*/React.createElement(Wave, null, tagNode) : tagNode;\n};\n\nvar Tag = /*#__PURE__*/React.forwardRef(InternalTag);\nTag.displayName = 'Tag';\nTag.CheckableTag = CheckableTag;\nexport default Tag;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\n\nvar Divider = function Divider(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var _classNames;\n\n var getPrefixCls = _ref.getPrefixCls,\n direction = _ref.direction;\n\n var customizePrefixCls = props.prefixCls,\n _props$type = props.type,\n type = _props$type === void 0 ? 'horizontal' : _props$type,\n _props$orientation = props.orientation,\n orientation = _props$orientation === void 0 ? 'center' : _props$orientation,\n className = props.className,\n children = props.children,\n dashed = props.dashed,\n plain = props.plain,\n restProps = __rest(props, [\"prefixCls\", \"type\", \"orientation\", \"className\", \"children\", \"dashed\", \"plain\"]);\n\n var prefixCls = getPrefixCls('divider', customizePrefixCls);\n var orientationPrefix = orientation.length > 0 ? \"-\".concat(orientation) : orientation;\n var hasChildren = !!children;\n var classString = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(type), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-with-text\"), hasChildren), _defineProperty(_classNames, \"\".concat(prefixCls, \"-with-text\").concat(orientationPrefix), hasChildren), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dashed\"), !!dashed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-plain\"), !!plain), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classString\n }, restProps, {\n role: \"separator\"\n }), children && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner-text\")\n }, children));\n });\n};\n\nexport default Divider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { ConfigConsumer } from '../config-provider';\nimport devWarning from '../_util/devWarning';\n\nvar Typography = function Typography(_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n _a$component = _a.component,\n component = _a$component === void 0 ? 'article' : _a$component,\n className = _a.className,\n ariaLabel = _a['aria-label'],\n setContentRef = _a.setContentRef,\n children = _a.children,\n restProps = __rest(_a, [\"prefixCls\", \"component\", \"className\", 'aria-label', \"setContentRef\", \"children\"]);\n\n var mergedRef = ref;\n\n if (setContentRef) {\n devWarning(false, 'Typography', '`setContentRef` is deprecated. Please use `ref` instead.');\n mergedRef = composeRef(ref, setContentRef);\n }\n\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls,\n direction = _ref.direction;\n var Component = component;\n var prefixCls = getPrefixCls('typography', customizePrefixCls);\n var componentClassName = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: componentClassName,\n \"aria-label\": ariaLabel,\n ref: mergedRef\n }, restProps), children);\n });\n};\n\nvar RefTypography = /*#__PURE__*/React.forwardRef(Typography);\nRefTypography.displayName = 'Typography'; // es default export should use const instead of let\n\nvar ExportTypography = RefTypography;\nexport default ExportTypography;","// This icon file is generated automatically.\nvar CopyOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"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\"\n }\n }]\n },\n \"name\": \"copy\",\n \"theme\": \"outlined\"\n};\nexport default CopyOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CopyOutlinedSvg from \"@ant-design/icons-svg/es/asn/CopyOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CopyOutlined = function CopyOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: CopyOutlinedSvg\n }));\n};\n\nCopyOutlined.displayName = 'CopyOutlined';\nexport default /*#__PURE__*/React.forwardRef(CopyOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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 */\n\n\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nvar inlineStyle = {\n border: 0,\n background: 'transparent',\n padding: 0,\n lineHeight: 'inherit',\n display: 'inline-block'\n};\nvar TransButton = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var onKeyDown = function onKeyDown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === KeyCode.ENTER) {\n event.preventDefault();\n }\n };\n\n var onKeyUp = function onKeyUp(event) {\n var keyCode = event.keyCode;\n var onClick = props.onClick;\n\n if (keyCode === KeyCode.ENTER && onClick) {\n onClick();\n }\n };\n\n var style = props.style,\n noStyle = props.noStyle,\n disabled = props.disabled,\n restProps = __rest(props, [\"style\", \"noStyle\", \"disabled\"]);\n\n var mergedStyle = {};\n\n if (!noStyle) {\n mergedStyle = _extends({}, inlineStyle);\n }\n\n if (disabled) {\n mergedStyle.pointerEvents = 'none';\n }\n\n mergedStyle = _extends(_extends({}, mergedStyle), style);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\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;","// This icon file is generated automatically.\nvar EnterOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"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\"\n }\n }]\n },\n \"name\": \"enter\",\n \"theme\": \"outlined\"\n};\nexport default EnterOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EnterOutlinedSvg from \"@ant-design/icons-svg/es/asn/EnterOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar EnterOutlined = function EnterOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: EnterOutlinedSvg\n }));\n};\n\nEnterOutlined.displayName = 'EnterOutlined';\nexport default /*#__PURE__*/React.forwardRef(EnterOutlined);","import { render, unmountComponentAtNode } from 'react-dom';\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\"; // We only handle element & text node.\n\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar COMMENT_NODE = 8;\nvar ellipsisContainer;\nvar wrapperStyle = {\n padding: 0,\n margin: 0,\n display: 'inline',\n lineHeight: 'inherit'\n};\n\nfunction pxToNumber(value) {\n if (!value) return 0;\n var match = value.match(/^\\d*(\\.\\d*)?/);\n return match ? Number(match[0]) : 0;\n}\n\nfunction styleToString(style) {\n // There are some different behavior between Firefox & Chrome.\n // We have to handle this ourself.\n var styleNames = Array.prototype.slice.apply(style);\n return styleNames.map(function (name) {\n return \"\".concat(name, \": \").concat(style.getPropertyValue(name), \";\");\n }).join('');\n}\n\nfunction mergeChildren(children) {\n var childList = [];\n children.forEach(function (child) {\n var prevChild = childList[childList.length - 1];\n\n if (typeof child === 'string' && typeof prevChild === 'string') {\n childList[childList.length - 1] += child;\n } else {\n childList.push(child);\n }\n });\n return childList;\n}\n\nexport default (function (originEle, option, content, fixedContent, ellipsisStr) {\n if (!ellipsisContainer) {\n ellipsisContainer = document.createElement('div');\n ellipsisContainer.setAttribute('aria-hidden', 'true');\n document.body.appendChild(ellipsisContainer);\n }\n\n var rows = option.rows,\n _option$suffix = option.suffix,\n suffix = _option$suffix === void 0 ? '' : _option$suffix; // Get origin style\n\n var originStyle = window.getComputedStyle(originEle);\n var originCSS = styleToString(originStyle);\n var lineHeight = pxToNumber(originStyle.lineHeight);\n var maxHeight = Math.round(lineHeight * (rows + 1) + pxToNumber(originStyle.paddingTop) + pxToNumber(originStyle.paddingBottom)); // Set shadow\n\n ellipsisContainer.setAttribute('style', originCSS);\n ellipsisContainer.style.position = 'fixed';\n ellipsisContainer.style.left = '0';\n ellipsisContainer.style.height = 'auto';\n ellipsisContainer.style.minHeight = 'auto';\n ellipsisContainer.style.maxHeight = 'auto';\n ellipsisContainer.style.top = '-999999px';\n ellipsisContainer.style.zIndex = '-1000'; // clean up css overflow\n\n ellipsisContainer.style.textOverflow = 'clip';\n ellipsisContainer.style.whiteSpace = 'normal';\n ellipsisContainer.style.webkitLineClamp = 'none'; // Render in the fake container\n\n var contentList = mergeChildren(toArray(content));\n render( /*#__PURE__*/React.createElement(\"div\", {\n style: wrapperStyle\n }, /*#__PURE__*/React.createElement(\"span\", {\n style: wrapperStyle\n }, contentList, suffix), /*#__PURE__*/React.createElement(\"span\", {\n style: wrapperStyle\n }, fixedContent)), ellipsisContainer); // wrap in an div for old version react\n // Check if ellipsis in measure div is height enough for content\n\n function inRange() {\n return ellipsisContainer.offsetHeight < maxHeight;\n } // Skip ellipsis if already match\n\n\n if (inRange()) {\n unmountComponentAtNode(ellipsisContainer);\n return {\n content: content,\n text: ellipsisContainer.innerHTML,\n ellipsis: false\n };\n } // We should clone the childNode since they're controlled by React and we can't reuse it without warning\n\n\n var childNodes = Array.prototype.slice.apply(ellipsisContainer.childNodes[0].childNodes[0].cloneNode(true).childNodes).filter(function (_ref) {\n var nodeType = _ref.nodeType;\n return nodeType !== COMMENT_NODE;\n });\n var fixedNodes = Array.prototype.slice.apply(ellipsisContainer.childNodes[0].childNodes[1].cloneNode(true).childNodes);\n unmountComponentAtNode(ellipsisContainer); // ========================= Find match ellipsis content =========================\n\n var ellipsisChildren = [];\n ellipsisContainer.innerHTML = ''; // Create origin content holder\n\n var ellipsisContentHolder = document.createElement('span');\n ellipsisContainer.appendChild(ellipsisContentHolder);\n var ellipsisTextNode = document.createTextNode(ellipsisStr + suffix);\n ellipsisContentHolder.appendChild(ellipsisTextNode);\n fixedNodes.forEach(function (childNode) {\n ellipsisContainer.appendChild(childNode);\n }); // Append before fixed nodes\n\n function appendChildNode(node) {\n ellipsisContentHolder.insertBefore(node, ellipsisTextNode);\n } // Get maximum text\n\n\n function measureText(textNode, fullText) {\n var startLoc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var endLoc = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : fullText.length;\n var lastSuccessLoc = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var midLoc = Math.floor((startLoc + endLoc) / 2);\n var currentText = fullText.slice(0, midLoc);\n textNode.textContent = currentText;\n\n if (startLoc >= endLoc - 1) {\n // Loop when step is small\n for (var step = endLoc; step >= startLoc; step -= 1) {\n var currentStepText = fullText.slice(0, step);\n textNode.textContent = currentStepText;\n\n if (inRange() || !currentStepText) {\n return step === fullText.length ? {\n finished: false,\n reactNode: fullText\n } : {\n finished: true,\n reactNode: currentStepText\n };\n }\n }\n }\n\n if (inRange()) {\n return measureText(textNode, fullText, midLoc, endLoc, midLoc);\n }\n\n return measureText(textNode, fullText, startLoc, midLoc, lastSuccessLoc);\n }\n\n function measureNode(childNode, index) {\n var type = childNode.nodeType;\n\n if (type === ELEMENT_NODE) {\n // We don't split element, it will keep if whole element can be displayed.\n appendChildNode(childNode);\n\n if (inRange()) {\n return {\n finished: false,\n reactNode: contentList[index]\n };\n } // Clean up if can not pull in\n\n\n ellipsisContentHolder.removeChild(childNode);\n return {\n finished: true,\n reactNode: null\n };\n }\n\n if (type === TEXT_NODE) {\n var fullText = childNode.textContent || '';\n var textNode = document.createTextNode(fullText);\n appendChildNode(textNode);\n return measureText(textNode, fullText);\n } // Not handle other type of content\n // PS: This code should not be attached after react 16\n\n /* istanbul ignore next */\n\n\n return {\n finished: false,\n reactNode: null\n };\n }\n\n childNodes.some(function (childNode, index) {\n var _measureNode = measureNode(childNode, index),\n finished = _measureNode.finished,\n reactNode = _measureNode.reactNode;\n\n if (reactNode) {\n ellipsisChildren.push(reactNode);\n }\n\n return finished;\n });\n return {\n content: ellipsisChildren,\n text: ellipsisContainer.innerHTML,\n ellipsis: true\n };\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport EnterOutlined from \"@ant-design/icons/es/icons/EnterOutlined\";\nimport TextArea from '../input/TextArea';\n\nvar Editable = function Editable(_ref) {\n var prefixCls = _ref.prefixCls,\n ariaLabel = _ref['aria-label'],\n className = _ref.className,\n style = _ref.style,\n direction = _ref.direction,\n maxLength = _ref.maxLength,\n _ref$autoSize = _ref.autoSize,\n autoSize = _ref$autoSize === void 0 ? true : _ref$autoSize,\n value = _ref.value,\n onSave = _ref.onSave,\n onCancel = _ref.onCancel;\n var ref = React.useRef();\n var inComposition = React.useRef(false);\n var lastKeyCode = React.useRef();\n\n var _React$useState = React.useState(value),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n current = _React$useState2[0],\n setCurrent = _React$useState2[1];\n\n React.useEffect(function () {\n setCurrent(value);\n }, [value]);\n React.useEffect(function () {\n if (ref.current && ref.current.resizableTextArea) {\n var textArea = ref.current.resizableTextArea.textArea;\n textArea.focus();\n var length = textArea.value.length;\n textArea.setSelectionRange(length, length);\n }\n }, []);\n\n var onChange = function onChange(_ref2) {\n var target = _ref2.target;\n setCurrent(target.value.replace(/[\\n\\r]/g, ''));\n };\n\n var onCompositionStart = function onCompositionStart() {\n inComposition.current = true;\n };\n\n var onCompositionEnd = function onCompositionEnd() {\n inComposition.current = false;\n };\n\n var onKeyDown = function onKeyDown(_ref3) {\n var keyCode = _ref3.keyCode; // We don't record keyCode when IME is using\n\n if (inComposition.current) return;\n lastKeyCode.current = keyCode;\n };\n\n var confirmChange = function confirmChange() {\n onSave(current.trim());\n };\n\n var onKeyUp = function onKeyUp(_ref4) {\n var keyCode = _ref4.keyCode,\n ctrlKey = _ref4.ctrlKey,\n altKey = _ref4.altKey,\n metaKey = _ref4.metaKey,\n shiftKey = _ref4.shiftKey; // Check if it's a real key\n\n if (lastKeyCode.current === keyCode && !inComposition.current && !ctrlKey && !altKey && !metaKey && !shiftKey) {\n if (keyCode === KeyCode.ENTER) {\n confirmChange();\n } else if (keyCode === KeyCode.ESC) {\n onCancel();\n }\n }\n };\n\n var onBlur = function onBlur() {\n confirmChange();\n };\n\n var textAreaClassName = classNames(prefixCls, \"\".concat(prefixCls, \"-edit-content\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__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 autoSize: autoSize\n }), /*#__PURE__*/React.createElement(EnterOutlined, {\n className: \"\".concat(prefixCls, \"-edit-content-confirm\")\n }));\n};\n\nexport default Editable;","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 _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\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport copy from 'copy-to-clipboard';\nimport omit from \"rc-util/es/omit\";\nimport EditOutlined from \"@ant-design/icons/es/icons/EditOutlined\";\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CopyOutlined from \"@ant-design/icons/es/icons/CopyOutlined\";\nimport ResizeObserver from 'rc-resize-observer';\nimport { configConsumerProps, ConfigContext } from '../config-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport devWarning from '../_util/devWarning';\nimport TransButton from '../_util/transButton';\nimport raf from '../_util/raf';\nimport { isStyleSupport } from '../_util/styleChecker';\nimport Tooltip from '../tooltip';\nimport Typography from './Typography';\nimport Editable from './Editable';\nimport measure from './util';\nvar isLineClampSupport = isStyleSupport('webkitLineClamp');\nvar isTextOverflowSupport = isStyleSupport('textOverflow');\n\nfunction wrapperDecorations(_ref, content) {\n var mark = _ref.mark,\n code = _ref.code,\n underline = _ref.underline,\n del = _ref[\"delete\"],\n strong = _ref.strong,\n keyboard = _ref.keyboard;\n var currentContent = content;\n\n function wrap(needed, tag) {\n if (!needed) return;\n currentContent = /*#__PURE__*/React.createElement(tag, {}, currentContent);\n }\n\n wrap(strong, 'strong');\n wrap(underline, 'u');\n wrap(del, 'del');\n wrap(code, 'code');\n wrap(mark, 'mark');\n wrap(keyboard, 'kbd');\n return currentContent;\n}\n\nvar ELLIPSIS_STR = '...';\n\nvar Base = /*#__PURE__*/function (_React$Component) {\n _inherits(Base, _React$Component);\n\n var _super = _createSuper(Base);\n\n function Base() {\n var _this;\n\n _classCallCheck(this, Base);\n\n _this = _super.apply(this, arguments);\n _this.contentRef = /*#__PURE__*/React.createRef();\n _this.state = {\n edit: false,\n copied: false,\n ellipsisText: '',\n ellipsisContent: null,\n isEllipsis: false,\n expanded: false,\n clientRendered: false\n };\n\n _this.getPrefixCls = function () {\n var customizePrefixCls = _this.props.prefixCls;\n var getPrefixCls = _this.context.getPrefixCls;\n return getPrefixCls('typography', customizePrefixCls);\n }; // =============== Expand ===============\n\n\n _this.onExpandClick = function (e) {\n var _this$getEllipsis = _this.getEllipsis(),\n onExpand = _this$getEllipsis.onExpand;\n\n _this.setState({\n expanded: true\n });\n\n if (onExpand) {\n onExpand(e);\n }\n }; // ================ Edit ================\n\n\n _this.onEditClick = function () {\n _this.triggerEdit(true);\n };\n\n _this.onEditChange = function (value) {\n var _this$getEditable = _this.getEditable(),\n onChange = _this$getEditable.onChange;\n\n if (onChange) {\n onChange(value);\n }\n\n _this.triggerEdit(false);\n };\n\n _this.onEditCancel = function () {\n _this.triggerEdit(false);\n }; // ================ Copy ================\n\n\n _this.onCopyClick = function (e) {\n e.preventDefault();\n var _this$props = _this.props,\n children = _this$props.children,\n copyable = _this$props.copyable;\n\n var copyConfig = _extends({}, _typeof(copyable) === 'object' ? copyable : null);\n\n if (copyConfig.text === undefined) {\n copyConfig.text = String(children);\n }\n\n copy(copyConfig.text || '');\n\n _this.setState({\n copied: true\n }, function () {\n if (copyConfig.onCopy) {\n copyConfig.onCopy();\n }\n\n _this.copyId = window.setTimeout(function () {\n _this.setState({\n copied: false\n });\n }, 3000);\n });\n };\n\n _this.setEditRef = function (node) {\n _this.editIcon = node;\n };\n\n _this.triggerEdit = function (edit) {\n var _this$getEditable2 = _this.getEditable(),\n onStart = _this$getEditable2.onStart;\n\n if (edit && onStart) {\n onStart();\n }\n\n _this.setState({\n edit: edit\n }, function () {\n if (!edit && _this.editIcon) {\n _this.editIcon.focus();\n }\n });\n }; // ============== Ellipsis ==============\n\n\n _this.resizeOnNextFrame = function () {\n raf.cancel(_this.rafId);\n _this.rafId = raf(function () {\n // Do not bind `syncEllipsis`. It need for test usage on prototype\n _this.syncEllipsis();\n });\n };\n\n return _this;\n }\n\n _createClass(Base, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setState({\n clientRendered: true\n });\n this.resizeOnNextFrame();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var children = this.props.children;\n var ellipsis = this.getEllipsis();\n var prevEllipsis = this.getEllipsis(prevProps);\n\n if (children !== prevProps.children || ellipsis.rows !== prevEllipsis.rows) {\n this.resizeOnNextFrame();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.clearTimeout(this.copyId);\n raf.cancel(this.rafId);\n }\n }, {\n key: \"getEditable\",\n value: function getEditable(props) {\n var edit = this.state.edit;\n\n var _ref2 = props || this.props,\n editable = _ref2.editable;\n\n if (!editable) return {\n editing: edit\n };\n return _extends({\n editing: edit\n }, _typeof(editable) === 'object' ? editable : null);\n }\n }, {\n key: \"getEllipsis\",\n value: function getEllipsis(props) {\n var _ref3 = props || this.props,\n ellipsis = _ref3.ellipsis;\n\n if (!ellipsis) return {};\n return _extends({\n rows: 1,\n expandable: false\n }, _typeof(ellipsis) === 'object' ? ellipsis : null);\n }\n }, {\n key: \"canUseCSSEllipsis\",\n value: function canUseCSSEllipsis() {\n var clientRendered = this.state.clientRendered;\n var _this$props2 = this.props,\n editable = _this$props2.editable,\n copyable = _this$props2.copyable;\n\n var _this$getEllipsis2 = this.getEllipsis(),\n rows = _this$getEllipsis2.rows,\n expandable = _this$getEllipsis2.expandable,\n suffix = _this$getEllipsis2.suffix,\n onEllipsis = _this$getEllipsis2.onEllipsis,\n tooltip = _this$getEllipsis2.tooltip;\n\n if (suffix || tooltip) return false; // Can't use css ellipsis since we need to provide the place for button\n\n if (editable || copyable || expandable || !clientRendered || onEllipsis) {\n return false;\n }\n\n if (rows === 1) {\n return isTextOverflowSupport;\n }\n\n return isLineClampSupport;\n }\n }, {\n key: \"syncEllipsis\",\n value: function syncEllipsis() {\n var _this$state = this.state,\n ellipsisText = _this$state.ellipsisText,\n isEllipsis = _this$state.isEllipsis,\n expanded = _this$state.expanded;\n\n var _this$getEllipsis3 = this.getEllipsis(),\n rows = _this$getEllipsis3.rows,\n suffix = _this$getEllipsis3.suffix,\n onEllipsis = _this$getEllipsis3.onEllipsis;\n\n var children = this.props.children;\n if (!rows || rows < 0 || !this.contentRef.current || expanded) return; // Do not measure if css already support ellipsis\n\n if (this.canUseCSSEllipsis()) return;\n devWarning(toArray(children).every(function (child) {\n return typeof child === 'string';\n }), 'Typography', '`ellipsis` should use string as children only.');\n\n var _measure = measure(this.contentRef.current, {\n rows: rows,\n suffix: suffix\n }, children, this.renderOperations(true), ELLIPSIS_STR),\n content = _measure.content,\n text = _measure.text,\n ellipsis = _measure.ellipsis;\n\n if (ellipsisText !== text || isEllipsis !== ellipsis) {\n this.setState({\n ellipsisText: text,\n ellipsisContent: content,\n isEllipsis: ellipsis\n });\n\n if (isEllipsis !== ellipsis && onEllipsis) {\n onEllipsis(ellipsis);\n }\n }\n }\n }, {\n key: \"renderExpand\",\n value: function renderExpand(forceRender) {\n var _this$getEllipsis4 = this.getEllipsis(),\n expandable = _this$getEllipsis4.expandable,\n symbol = _this$getEllipsis4.symbol;\n\n var _this$state2 = this.state,\n expanded = _this$state2.expanded,\n isEllipsis = _this$state2.isEllipsis;\n if (!expandable) return null; // force render expand icon for measure usage or it will cause dead loop\n\n if (!forceRender && (expanded || !isEllipsis)) return null;\n var expandContent;\n\n if (symbol) {\n expandContent = symbol;\n } else {\n expandContent = this.expandStr;\n }\n\n return /*#__PURE__*/React.createElement(\"a\", {\n key: \"expand\",\n className: \"\".concat(this.getPrefixCls(), \"-expand\"),\n onClick: this.onExpandClick,\n \"aria-label\": this.expandStr\n }, expandContent);\n }\n }, {\n key: \"renderEdit\",\n value: function renderEdit() {\n var editable = this.props.editable;\n if (!editable) return;\n var icon = editable.icon,\n tooltip = editable.tooltip;\n var title = toArray(tooltip)[0] || this.editStr;\n var ariaLabel = typeof title === 'string' ? title : '';\n return /*#__PURE__*/React.createElement(Tooltip, {\n key: \"edit\",\n title: tooltip === false ? '' : title\n }, /*#__PURE__*/React.createElement(TransButton, {\n ref: this.setEditRef,\n className: \"\".concat(this.getPrefixCls(), \"-edit\"),\n onClick: this.onEditClick,\n \"aria-label\": ariaLabel\n }, icon || /*#__PURE__*/React.createElement(EditOutlined, {\n role: \"button\"\n })));\n }\n }, {\n key: \"renderCopy\",\n value: function renderCopy() {\n var copied = this.state.copied;\n var copyable = this.props.copyable;\n if (!copyable) return;\n var prefixCls = this.getPrefixCls();\n var tooltips = copyable.tooltips;\n var tooltipNodes = toArray(tooltips);\n\n if (tooltipNodes.length === 0) {\n tooltipNodes = [this.copyStr, this.copiedStr];\n }\n\n var title = copied ? tooltipNodes[1] : tooltipNodes[0];\n var ariaLabel = typeof title === 'string' ? title : '';\n var icons = toArray(copyable.icon);\n return /*#__PURE__*/React.createElement(Tooltip, {\n key: \"copy\",\n title: tooltips === false ? '' : title\n }, /*#__PURE__*/React.createElement(TransButton, {\n className: classNames(\"\".concat(prefixCls, \"-copy\"), copied && \"\".concat(prefixCls, \"-copy-success\")),\n onClick: this.onCopyClick,\n \"aria-label\": ariaLabel\n }, copied ? icons[1] || /*#__PURE__*/React.createElement(CheckOutlined, null) : icons[0] || /*#__PURE__*/React.createElement(CopyOutlined, null)));\n }\n }, {\n key: \"renderEditInput\",\n value: function renderEditInput() {\n var _this$props3 = this.props,\n children = _this$props3.children,\n className = _this$props3.className,\n style = _this$props3.style;\n var direction = this.context.direction;\n\n var _this$getEditable3 = this.getEditable(),\n maxLength = _this$getEditable3.maxLength,\n autoSize = _this$getEditable3.autoSize;\n\n return /*#__PURE__*/React.createElement(Editable, {\n value: typeof children === 'string' ? children : '',\n onSave: this.onEditChange,\n onCancel: this.onEditCancel,\n prefixCls: this.getPrefixCls(),\n className: className,\n style: style,\n direction: direction,\n maxLength: maxLength,\n autoSize: autoSize\n });\n }\n }, {\n key: \"renderOperations\",\n value: function renderOperations(forceRenderExpanded) {\n return [this.renderExpand(forceRenderExpanded), this.renderEdit(), this.renderCopy()].filter(function (node) {\n return node;\n });\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this2 = this;\n\n var _this$state3 = this.state,\n ellipsisContent = _this$state3.ellipsisContent,\n isEllipsis = _this$state3.isEllipsis,\n expanded = _this$state3.expanded;\n\n var _a = this.props,\n component = _a.component,\n children = _a.children,\n className = _a.className,\n type = _a.type,\n disabled = _a.disabled,\n style = _a.style,\n restProps = __rest(_a, [\"component\", \"children\", \"className\", \"type\", \"disabled\", \"style\"]);\n\n var direction = this.context.direction;\n\n var _this$getEllipsis5 = this.getEllipsis(),\n rows = _this$getEllipsis5.rows,\n suffix = _this$getEllipsis5.suffix,\n tooltip = _this$getEllipsis5.tooltip;\n\n var prefixCls = this.getPrefixCls();\n var textProps = omit(restProps, ['prefixCls', 'editable', 'copyable', 'ellipsis', 'mark', 'code', 'delete', 'underline', 'strong', 'keyboard'].concat(_toConsumableArray(configConsumerProps)));\n var cssEllipsis = this.canUseCSSEllipsis();\n var cssTextOverflow = rows === 1 && cssEllipsis;\n var cssLineClamp = rows && rows > 1 && cssEllipsis;\n var textNode = children; // Only use js ellipsis when css ellipsis not support\n\n if (rows && isEllipsis && !expanded && !cssEllipsis) {\n var title = restProps.title;\n var restContent = title || '';\n\n if (!title && (typeof children === 'string' || typeof children === 'number')) {\n restContent = String(children);\n } // show rest content as title on symbol\n\n\n restContent = restContent === null || restContent === void 0 ? void 0 : restContent.slice(String(ellipsisContent || '').length); // We move full content to outer element to avoid repeat read the content by accessibility\n\n textNode = /*#__PURE__*/React.createElement(React.Fragment, null, ellipsisContent, /*#__PURE__*/React.createElement(\"span\", {\n title: restContent,\n \"aria-hidden\": \"true\"\n }, ELLIPSIS_STR), suffix); // If provided tooltip, we need wrap with span to let Tooltip inject events\n\n if (tooltip) {\n textNode = /*#__PURE__*/React.createElement(Tooltip, {\n title: tooltip === true ? children : tooltip\n }, /*#__PURE__*/React.createElement(\"span\", null, textNode));\n }\n } else {\n textNode = /*#__PURE__*/React.createElement(React.Fragment, null, children, suffix);\n }\n\n textNode = wrapperDecorations(this.props, textNode);\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Text\"\n }, function (_ref4) {\n var _classNames;\n\n var edit = _ref4.edit,\n copyStr = _ref4.copy,\n copied = _ref4.copied,\n expand = _ref4.expand;\n _this2.editStr = edit;\n _this2.copyStr = copyStr;\n _this2.copiedStr = copied;\n _this2.expandStr = expand;\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: _this2.resizeOnNextFrame,\n disabled: !rows\n }, /*#__PURE__*/React.createElement(Typography, _extends({\n className: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(type), type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ellipsis\"), rows), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ellipsis-single-line\"), cssTextOverflow), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ellipsis-multiple-line\"), cssLineClamp), _classNames), className),\n style: _extends(_extends({}, style), {\n WebkitLineClamp: cssLineClamp ? rows : undefined\n }),\n component: component,\n ref: _this2.contentRef,\n direction: direction\n }, textProps), textNode, _this2.renderOperations()));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$getEditable4 = this.getEditable(),\n editing = _this$getEditable4.editing;\n\n if (editing) {\n return this.renderEditInput();\n }\n\n return this.renderContent();\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps) {\n var children = nextProps.children,\n editable = nextProps.editable;\n devWarning(!editable || typeof children === 'string', 'Typography', 'When `editable` is enabled, the `children` should use string.');\n return {};\n }\n }]);\n\n return Base;\n}(React.Component);\n\nBase.contextType = ConfigContext;\nBase.defaultProps = {\n children: ''\n};\nexport default Base;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport omit from \"rc-util/es/omit\";\nimport devWarning from '../_util/devWarning';\nimport Base from './Base';\n\nvar Text = function Text(_a) {\n var ellipsis = _a.ellipsis,\n restProps = __rest(_a, [\"ellipsis\"]);\n\n var mergedEllipsis = React.useMemo(function () {\n if (ellipsis && _typeof(ellipsis) === 'object') {\n return omit(ellipsis, ['expandable', 'rows']);\n }\n\n return ellipsis;\n }, [ellipsis]);\n devWarning(_typeof(ellipsis) !== 'object' || !ellipsis || !('expandable' in ellipsis) && !('rows' in ellipsis), 'Typography.Text', '`ellipsis` do not support `expandable` or `rows` props.');\n return /*#__PURE__*/React.createElement(Base, _extends({}, restProps, {\n ellipsis: mergedEllipsis,\n component: \"span\"\n }));\n};\n\nexport default Text;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport devWarning from '../_util/devWarning';\nimport Base from './Base';\n\nvar Link = function Link(_a, ref) {\n var ellipsis = _a.ellipsis,\n rel = _a.rel,\n restProps = __rest(_a, [\"ellipsis\", \"rel\"]);\n\n devWarning(_typeof(ellipsis) !== 'object', 'Typography.Link', '`ellipsis` only supports boolean value.');\n var baseRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n var _a;\n\n return (_a = baseRef.current) === null || _a === void 0 ? void 0 : _a.contentRef.current;\n });\n\n var mergedProps = _extends(_extends({}, restProps), {\n rel: rel === undefined && restProps.target === '_blank' ? 'noopener noreferrer' : rel\n }); // https://github.com/ant-design/ant-design/issues/26622\n // @ts-ignore\n\n\n delete mergedProps.navigate;\n return /*#__PURE__*/React.createElement(Base, _extends({}, mergedProps, {\n ref: baseRef,\n ellipsis: !!ellipsis,\n component: \"a\"\n }));\n};\n\nexport default /*#__PURE__*/React.forwardRef(Link);","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\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\nimport * as React from 'react';\nimport devWarning from '../_util/devWarning';\nimport Base from './Base';\nimport { tupleNum } from '../_util/type';\nvar TITLE_ELE_LIST = tupleNum(1, 2, 3, 4, 5);\n\nvar Title = function Title(props) {\n var _props$level = props.level,\n level = _props$level === void 0 ? 1 : _props$level,\n restProps = __rest(props, [\"level\"]);\n\n var component;\n\n if (TITLE_ELE_LIST.indexOf(level) !== -1) {\n component = \"h\".concat(level);\n } else {\n devWarning(false, 'Typography.Title', 'Title only accept `1 | 2 | 3 | 4 | 5` as `level` value. And `5` need 4.6.0+ version.');\n component = 'h1';\n }\n\n return /*#__PURE__*/React.createElement(Base, _extends({}, restProps, {\n component: component\n }));\n};\n\nexport default Title;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Base from './Base';\n\nvar Paragraph = function Paragraph(props) {\n return /*#__PURE__*/React.createElement(Base, _extends({}, props, {\n component: \"div\"\n }));\n};\n\nexport default Paragraph;","import OriginTypography from './Typography';\nimport Text from './Text';\nimport Link from './Link';\nimport Title from './Title';\nimport Paragraph from './Paragraph';\nvar Typography = OriginTypography;\nTypography.Text = Text;\nTypography.Link = Link;\nTypography.Title = Title;\nTypography.Paragraph = Paragraph;\nexport default Typography;","import React, { useState } from 'react';\r\nimport { Input, Divider, Row, Col, Card, Typography, Tag, Space } from 'antd';\r\nimport { Link } from 'gatsby';\r\nimport { SearchOutlined } from '@ant-design/icons';\r\nimport './dashboard.less';\r\n\r\nconst { Title } = Typography;\r\n\r\nconst Dashboard: React.FC<{ intl: any; menuData: Record<string, any[]> }> = ({\r\n menuData,\r\n intl,\r\n}) => {\r\n const [search, setSearch] = useState<string>('');\r\n const sectionRef = React.createRef<HTMLDivElement>();\r\n return (\r\n <div ref={sectionRef}>\r\n <Divider />\r\n <Input\r\n value={search}\r\n placeholder={intl.formatMessage({ id: 'app.header.search' })}\r\n className=\"components-overview-search\"\r\n onChange={(e) => {\r\n setSearch(e.target.value);\r\n }}\r\n autoFocus\r\n suffix={<SearchOutlined />}\r\n />\r\n <Divider />\r\n {Object.keys(menuData).map((key) => {\r\n const group = menuData[key];\r\n const components = group.filter(\r\n (component) =>\r\n !search.trim() ||\r\n component.title.toLowerCase().includes(search.trim().toLowerCase()) ||\r\n (component.subtitle || '').toLowerCase().includes(search.trim().toLowerCase()),\r\n );\r\n return components.length ? (\r\n <div key={key} className=\"components-overview\">\r\n <Title level={2} className=\"components-overview-group-title\">\r\n <Space align=\"center\">\r\n {key}\r\n <Tag style={{ display: 'block' }}>{components.length}</Tag>\r\n </Space>\r\n </Title>\r\n <Row gutter={[24, 24]}>\r\n {components\r\n .sort((a, b) => a.title.charCodeAt(0) - b.title.charCodeAt(0))\r\n .map((component) => {\r\n const url = `${component.slug\r\n .replace(/(\\/index)?((\\.zh-cn)|(\\.en-us))?\\.md$/i, '')\r\n .toLowerCase()}/`;\r\n return (\r\n <Col xs={24} sm={12} lg={8} xl={6} key={component.title}>\r\n <Link to={url}>\r\n <Card\r\n size=\"small\"\r\n className=\"components-overview-card\"\r\n title={\r\n <div className=\"components-overview-title\">\r\n {component.title} {component.subtitle}\r\n </div>\r\n }\r\n >\r\n <div className=\"components-overview-img\">\r\n <img\r\n src={\r\n component.cover ||\r\n 'https://gw.alipayobjects.com/zos/alicdn/5swjECahe/Divider.svg'\r\n }\r\n alt={component.title}\r\n />\r\n </div>\r\n </Card>\r\n </Link>\r\n </Col>\r\n );\r\n })}\r\n </Row>\r\n </div>\r\n ) : null;\r\n })}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Dashboard;\r\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { Helmet } from 'react-helmet';\nimport { Affix } from 'antd';\nimport delegate from 'delegate';\nimport moment from 'moment';\nimport EditButton from './EditButton';\nimport type { IFrontmatterData } from '../../templates/docs';\nimport AvatarList from './AvatarList';\nimport Dashboard from './dashboard';\n\nconst Doc: React.FC<{ content: string }> = ({ content }) => {\n return (\n <section\n className=\"markdown api-container\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{ __html: content }}\n />\n );\n};\n\ninterface ArticleProps {\n content: {\n meta: IFrontmatterData;\n toc: string | false;\n content: string;\n };\n location: {\n pathname: string;\n };\n menuData: Record<string, any>;\n}\n\nexport default class Article extends React.PureComponent<ArticleProps> {\n delegation: any;\n\n pingTimer: number;\n\n node: HTMLElement | null | undefined;\n\n static contextTypes = {\n intl: PropTypes.object.isRequired,\n };\n\n componentDidMount() {\n // Add ga event click\n this.delegation = delegate(\n this.node,\n '.resource-card',\n 'click',\n (e: { delegateTarget: { href: any } }) => {\n if ((window as any).ga) {\n (window as any).ga('send', 'event', 'Download', 'resource', e.delegateTarget.href);\n }\n },\n false,\n );\n }\n\n componentWillUnmount() {\n clearTimeout(this.pingTimer);\n if (this.delegation) {\n this.delegation.destroy();\n }\n }\n\n render() {\n const { props } = this;\n const { content, menuData, location } = props;\n const { meta } = content;\n const { title, subtitle, path, modifiedTime, avatarList } = meta;\n const { intl } = this.context as {\n intl: {\n locale: 'zh-CN' | 'en-US';\n };\n };\n\n const isDashboard = location.pathname.startsWith('/docs/overview');\n\n return (\n <>\n <Helmet>\n <title>{`${title} - Ant Design Pro`}</title>\n <meta name=\"description\" content={title} />\n </Helmet>\n <article\n className=\"markdown\"\n ref={(node) => {\n this.node = node;\n }}\n >\n <h1>\n {title}\n {!subtitle || intl.locale === 'en-US' ? null : (\n <span className=\"subtitle\">{subtitle}</span>\n )}\n <EditButton title={<FormattedMessage id=\"app.content.edit-page\" />} filename={path} />\n </h1>\n\n <div className=\"modifiedTime\">\n <AvatarList avatarList={avatarList} />\n <FormattedMessage id=\"app.content.modifiedTime\" />\n {moment(modifiedTime).format('YYYY-MM-DD HH:mm:SS')}\n </div>\n\n {!content.toc || content.toc.length <= 1 || meta.toc === false ? null : (\n <Affix className=\"toc-affix\" offsetTop={108}>\n <div\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: content.toc.replace(/<ul>/g, '<ul class=\"toc\">').replace(/\\/#/g, '#'),\n }}\n />\n </Affix>\n )}\n {isDashboard ? (\n <Dashboard intl={intl} menuData={menuData} />\n ) : (\n <Doc content={content.content} />\n )}\n </article>\n </>\n );\n }\n}\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Row, Col } from 'antd';\n\nconst Footer = () => {\n return (\n <footer id=\"footer\">\n <div className=\"footer-wrap\">\n <Row>\n <Col md={6} sm={24} xs={24}>\n <div className=\"footer-center\">\n <h2>\n <FormattedMessage id=\"app.footer.resources\" />\n </h2>\n <div>\n <a href=\"http://ant.design\">Ant Design</a>\n </div>\n <div>\n <a href=\"http://mobile.ant.design\">Ant Design Mobile</a>\n </div>\n <div>\n <a href=\"http://ng.ant.design\">NG-ZORRO</a>\n <span> - </span>\n Ant Design of Angular\n </div>\n <div>\n <a href=\"https://ng.mobile.ant.design/\">NG-ZORRO-MOBILE</a>\n </div>\n <div>\n <a target=\"_blank \" href=\"https://github.com/websemantics/awesome-ant-design\">\n <FormattedMessage id=\"app.footer.awesome\" />\n </a>\n </div>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://kitchen.alipay.com\">\n Kitchen\n </a>\n <span> - </span>\n <FormattedMessage id=\"app.footer.kitchen\" />\n </div>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://landing.ant.design\">\n Ant Design Landing\n </a>\n <span> - </span>\n <FormattedMessage id=\"app.footer.landing\" />\n </div>\n <div>\n <a href=\"http://scaffold.ant.design\">Scaffolds</a>\n <span> - </span>\n <FormattedMessage id=\"app.footer.scaffolds\" />\n </div>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/dvajs/dva\">\n dva\n </a>{' '}\n - <FormattedMessage id=\"app.footer.dva\" />\n </div>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://motion.ant.design\">\n Ant Motion\n </a>\n <span> - </span>\n <FormattedMessage id=\"app.footer.motion\" />\n </div>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://library.ant.design/\">\n Axure Library\n </a>\n <span> - </span>\n <FormattedMessage id=\"app.footer.antd-library\" />\n </div>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://ux.ant.design\">\n Ant UX\n </a>\n <span> - </span>\n <FormattedMessage id=\"app.footer.antux\" />\n </div>\n <div>\n <a target=\"_blank \" href=\"https://ant-design-pro.gitee.io/\">\n <FormattedMessage id=\"app.footer.chinamirror\" />\n </a>\n </div>\n </div>\n </Col>\n <Col md={6} sm={24} xs={24}>\n <div className=\"footer-center\">\n <h2>\n <FormattedMessage id=\"app.footer.community\" />\n </h2>\n <div>\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"http://zhuanlan.zhihu.com/antdesign\"\n >\n <FormattedMessage id=\"app.footer.zhihu\" />\n </a>\n </div>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://medium.com/ant-design/\">\n Medium\n </a>\n </div>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://twitter.com/antdesignui\">\n Twitter\n </a>\n </div>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://zhuanlan.zhihu.com/xtech\">\n <FormattedMessage id=\"app.footer.zhihu.xtech\" />\n </a>\n </div>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://seeconf.alipay.com/\">\n SEE Conf\n </a>\n <span> - </span>\n <FormattedMessage id=\"app.footer.seeconf\" />\n </div>\n </div>\n </Col>\n <Col md={6} sm={24} xs={24}>\n <div className=\"footer-center\">\n <h2>\n <FormattedMessage id=\"app.footer.help\" />\n </h2>\n <div>\n <a target=\"_blank \" href=\"https://github.com/ant-design/ant-design-pro\">\n GitHub\n </a>\n </div>\n <div>\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://github.com/ant-design/ant-design/wiki/FAQ\"\n >\n <FormattedMessage id=\"app.footer.faq\" />\n </a>\n </div>\n <div>\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://gitter.im/ant-design/ant-design-pro\"\n >\n <FormattedMessage id=\"app.footer.discuss-cn\" />\n </a>\n </div>\n <div>\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://github.com/ant-design/ant-design/issues\"\n >\n <FormattedMessage id=\"app.footer.issues\" />\n </a>\n </div>\n <div>\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"http://stackoverflow.com/questions/tagged/antd\"\n >\n <FormattedMessage id=\"app.footer.stackoverflow\" />\n </a>\n </div>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://segmentfault.com/t/antd\">\n <FormattedMessage id=\"app.footer.segmentfault\" />\n </a>\n </div>\n </div>\n </Col>\n <Col md={6} sm={24} xs={24}>\n <div className=\"footer-center\">\n <h2>\n <img\n className=\"title-icon\"\n src=\"https://gw.alipayobjects.com/zos/rmsportal/nBVXkrFdWHxbZlmMbsaH.svg\"\n alt=\"AFX Cloud\"\n />\n <FormattedMessage id=\"app.footer.more-product\" />\n </h2>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://yuque.com/\">\n <FormattedMessage id=\"app.footer.yuque\" />\n </a>\n <span> - </span>\n <FormattedMessage id=\"app.footer.yuque.slogan\" />\n </div>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://yunfengdie.com/\">\n <FormattedMessage id=\"app.footer.fengdie\" />\n </a>\n <span> - </span>\n <FormattedMessage id=\"app.footer.fengdie.slogan\" />\n </div>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://antv.alipay.com/\">\n AntV\n </a>\n <span> - </span>\n <FormattedMessage id=\"app.footer.data-vis\" />\n </div>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://eggjs.org/\">\n Egg\n </a>\n <span> - </span>\n <FormattedMessage id=\"app.footer.eggjs\" />\n </div>\n <div>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://xcloud.alipay.com/\">\n <FormattedMessage id=\"app.footer.xcloud\" />\n </a>\n </div>\n </div>\n </Col>\n </Row>\n </div>\n <div className=\"bottom-bar\">\n Made with <span className=\"heart\">❤</span> by\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://yuque.com/afx/blog\">\n <FormattedMessage id=\"app.footer.company\" />\n </a>\n </div>\n </footer>\n );\n};\n\nexport default Footer;\n","/* eslint-disable eslint-comments/disable-enable-pair */\n/* eslint-disable react/jsx-one-expression-per-line */\n/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport { Link } from 'gatsby';\nimport {\n ExportOutlined,\n LeftOutlined,\n MenuFoldOutlined,\n MenuUnfoldOutlined,\n RightOutlined,\n} from '@ant-design/icons';\nimport { Badge, Row, Col, Menu } from 'antd';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport MobileMenu from 'rc-drawer-menu';\nimport moment from 'moment';\nimport Article from './Article';\nimport type { MenuDataItem, IMenuData } from '../utils';\nimport { isZhCN, getMenuItems } from '../utils';\nimport type { IFrontmatterData } from '../../templates/docs';\nimport Footer from '../layout/Footer';\n\nexport interface MainContentProps {\n isMobile: boolean;\n location: {\n pathname: string;\n };\n layout?: any;\n menuList?: MenuDataItem[];\n localizedPageData: {\n meta: IFrontmatterData;\n toc: string | false;\n content: string;\n };\n}\n\ninterface MainContentState {\n openKeys: string[];\n}\n\nfunction getActiveMenuItem(props: MainContentProps) {\n const { pathname } = props.location;\n if (pathname.endsWith('/')) {\n return pathname.substring(0, pathname.length - 1);\n }\n return pathname;\n}\n\nfunction getModuleDataWithProps(props: MainContentProps) {\n const moduleData = props.menuList;\n const excludedSuffix = isZhCN(props.location.pathname) ? 'zh-CN' : 'en-US';\n return moduleData.filter(({ filename }) => {\n if (!filename) {\n return false;\n }\n return filename.includes(excludedSuffix);\n });\n}\n\nfunction isNotTopLevel(level: string) {\n return level !== 'topLevel';\n}\n\nexport default class MainContent extends React.PureComponent<MainContentProps, MainContentState> {\n timer: number;\n\n currentModule: string;\n\n static contextTypes = {\n intl: PropTypes.object.isRequired,\n };\n\n constructor(props: MainContentProps) {\n super(props);\n this.state = {\n openKeys: this.getSideBarOpenKeys(props) || [],\n };\n }\n\n componentDidMount() {\n this.componentDidUpdate();\n }\n\n UNSAVE_componentWillReceiveProps(nextProps: MainContentProps) {\n const openKeys = this.getSideBarOpenKeys(nextProps);\n if (openKeys) {\n this.setState({\n openKeys,\n });\n }\n }\n\n componentDidUpdate() {\n if (!window.location.hash) {\n return;\n }\n const element = document.getElementById(\n decodeURIComponent(window.location.hash.replace('#', '')),\n );\n setTimeout(() => {\n if (element) {\n element.scrollIntoView(true);\n }\n }, 100);\n }\n\n componentWillUnmount() {\n clearTimeout(this.timer);\n }\n\n getSideBarOpenKeys = (nextProps: MainContentProps) => {\n const { pathname } = nextProps.location;\n const moduleData = getModuleDataWithProps(nextProps);\n const item = moduleData.find(({ slug }) => pathname.includes(slug));\n if (item) {\n return [item.type];\n }\n return [];\n };\n\n handleMenuOpenChange = (openKeys: string[]) => {\n this.setState({\n openKeys,\n });\n };\n\n convertFilename = (filename: string) => {\n const {\n location: { pathname },\n } = this.props;\n if (isZhCN(pathname) && !filename.includes('-cn')) {\n return `${filename}-cn`;\n }\n return filename;\n };\n\n generateMenuItem = ({ before = null, after = null }, item: MenuDataItem) => {\n if (!item.title) {\n return null;\n }\n const {\n intl: { locale },\n } = this.context as {\n intl: {\n locale: 'zh-CN' | 'en-US';\n };\n };\n const text = [\n <span key=\"english\">{item.title}</span>,\n <span className=\"chinese\" key=\"chinese\">\n {locale === 'zh-CN' && item.subtitle}\n </span>,\n ];\n\n const { disabled } = item;\n\n const child = !item.link ? (\n <Link to={this.convertFilename(item.filename)}>\n {before}\n {text}\n {after}\n </Link>\n ) : (\n <a\n href={item.link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"menu-item-link-outside\"\n >\n {before}\n {text} <ExportOutlined />\n {after}\n </a>\n );\n\n return (\n <Menu.Item key={this.convertFilename(item.filename)} disabled={disabled}>\n {item.important ? <Badge dot={item.important}>{child}</Badge> : child}\n </Menu.Item>\n );\n };\n\n generateSubMenuItems = (obj?: IMenuData, footerNavIcons = {}) => {\n if (!obj) {\n return [];\n }\n const topLevel = ((obj.topLevel as MenuDataItem[]) || []).map(\n this.generateMenuItem.bind(this, footerNavIcons),\n );\n\n const itemGroups = Object.keys(obj)\n .filter(isNotTopLevel)\n .map((type) => {\n const groupItems = (obj[type] as MenuDataItem[])\n .sort((a, b) => {\n if ('time' in a && 'time' in b) {\n return moment(b.time).valueOf() - moment(a.time).valueOf();\n }\n if ('order' in a && 'order' in b) {\n return a.order - b.order;\n }\n return a.title.charCodeAt(0) - b.title.charCodeAt(0);\n })\n .map(this.generateMenuItem.bind(this, footerNavIcons));\n return (\n <Menu.ItemGroup title={type} key={type}>\n {groupItems}\n </Menu.ItemGroup>\n );\n });\n return [...topLevel, ...itemGroups];\n };\n\n getMenuItems = (footerNavIcons = {}) => {\n const {\n intl: { locale },\n } = this.context;\n const moduleData = getModuleDataWithProps(this.props);\n const menuItems: IMenuData = getMenuItems(moduleData, locale) || {};\n const topLevel =\n this.generateSubMenuItems(menuItems.topLevel as IMenuData, footerNavIcons) || [];\n const result = [...topLevel].filter(({ key }) => key);\n return { dom: result, menuData: menuItems };\n };\n\n getPreAndNext = (menuItems: any) => {\n const {\n localizedPageData: {\n meta: { filename },\n },\n } = this.props;\n\n const list =\n menuItems.length && !menuItems[0].props.children.length\n ? menuItems\n : Object.keys(menuItems).reduce(\n (pre, key) => pre.concat(menuItems[key].props.children),\n [],\n );\n const index = list.findIndex(\n (item: { key: string }) => item.key === filename || item.key === `${filename}-cn`,\n );\n\n if (index === -1) {\n return {};\n }\n return {\n previous: list[index - 1],\n next: list[index + 1],\n };\n };\n\n render() {\n const { localizedPageData, isMobile } = this.props;\n\n const activeMenuItem = getActiveMenuItem(this.props);\n\n const { dom, menuData } = this.getMenuItems();\n const currentItem = this.getPreAndNext(dom);\n const { next, previous } = currentItem;\n const mainContainerClass = classNames('main-container', {});\n const { openKeys } = this.state;\n const menuChild = (\n <Menu\n inlineIndent={16}\n className=\"aside-container\"\n mode=\"inline\"\n openKeys={openKeys}\n selectedKeys={[activeMenuItem]}\n onOpenChange={this.handleMenuOpenChange}\n >\n {dom}\n </Menu>\n );\n\n const overviewData = {\n 模板组件: [\n {\n title: 'ProLayout - 高级布局',\n cover: 'https://gw.alipayobjects.com/zos/alicdn/hzEndUVEx/Layout.svg',\n slug: 'https://procomponents.ant.design/components/layout',\n },\n {\n title: 'PageContainer - 页容器',\n cover: 'https://gw.alipayobjects.com/zos/alicdn/hzEndUVEx/Layout.svg',\n slug: 'https://procomponents.ant.design/components/page-container',\n },\n {\n title: 'ProForm -高级表单',\n cover: 'https://gw.alipayobjects.com/zos/alicdn/ORmcdeaoO/Form.svg',\n slug: 'https://procomponents.ant.design/components/form',\n },\n {\n title: 'Modal/Drawer - 浮层表单',\n cover: 'https://gw.alipayobjects.com/zos/alicdn/7z8NJQhFb/Drawer.svg',\n slug: 'https://procomponents.ant.design/components/modal-form',\n },\n {\n title: 'ProTable - 高级表格',\n cover: 'https://gw.alipayobjects.com/zos/alicdn/f-SbcX2Lx/Table.svg',\n slug: 'https://procomponents.ant.design/components/table',\n },\n {\n title: 'EditableProTable - 可编辑表格',\n cover: 'https://gw.alipayobjects.com/zos/alicdn/f-SbcX2Lx/Table.svg',\n slug: 'https://procomponents.ant.design/components/editable-table',\n },\n {\n title: 'ProList - 高级列表',\n cover: 'https://gw.alipayobjects.com/zos/alicdn/5FrZKStG_/List.svg',\n slug: 'https://procomponents.ant.design/components/list',\n },\n {\n title: 'ProDescriptions - 高级定义列表',\n cover: 'https://gw.alipayobjects.com/zos/alicdn/MjtG9_FOI/Descriptions.svg',\n slug: 'https://procomponents.ant.design/components/descriptions',\n },\n ],\n ...menuData.topLevel,\n };\n\n return (\n <div className=\"main-wrapper\">\n <Row>\n {isMobile ? (\n <MobileMenu\n iconChild={[<MenuUnfoldOutlined />, <MenuFoldOutlined />]}\n key=\"mobile-menu\"\n wrapperClassName=\"drawer-wrapper\"\n >\n {menuChild}\n </MobileMenu>\n ) : (\n <Col\n style={{\n position: 'fixed',\n top: '64px',\n left: 0,\n zIndex: 9,\n height: 'calc(100vh - 64px)',\n width: 274,\n }}\n >\n <div className=\"main-menu\">{menuChild}</div>\n </Col>\n )}\n <Col\n xxl={20}\n xl={19}\n lg={18}\n md={24}\n sm={24}\n xs={24}\n style={{\n marginLeft: 274,\n }}\n >\n <div className={mainContainerClass}>\n <Article {...this.props} content={localizedPageData} menuData={overviewData} />\n </div>\n <Row>\n <Col lg={{ span: 24 }} md={24} sm={24} xs={24}>\n <section className=\"prev-next-nav\">\n {previous ? (\n <div className=\"prev-page\">\n <LeftOutlined className=\"footer-nav-icon-before\" />\n {previous.props.children}\n </div>\n ) : null}\n {next ? (\n <div className=\"next-page\">\n {next.props.children}\n <RightOutlined className=\"footer-nav-icon-after\" />\n </div>\n ) : null}\n </section>\n </Col>\n </Row>\n <Footer {...this.props.layout} />\n </Col>\n </Row>\n </div>\n );\n }\n}\n","import React from 'react';\nimport { graphql } from 'gatsby';\nimport WrapperLayout from '../components/layout';\nimport MainContent from '../components/Content/MainContent';\n\ninterface IMarkDownFields {\n path: string;\n slug: string;\n modifiedTime: number;\n avatarList: {\n url: string;\n username: string;\n }[];\n}\nexport interface IFrontmatterData extends IMarkDownFields {\n title: string;\n time: string;\n toc: string | boolean;\n order: number;\n type: string;\n filename: string;\n subtitle: string;\n path: string;\n disabled: boolean;\n important: boolean;\n next: {\n frontmatter: IGraphqlFrontmatterData;\n fields: IMarkDownFields;\n };\n previous: { frontmatter: IGraphqlFrontmatterData; fields: IMarkDownFields };\n}\n\ntype Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;\n\nexport interface IGraphqlFrontmatterData extends Omit<IFrontmatterData, 'title'> {\n title: string;\n}\n\nexport interface IMarkdownRemarkData {\n html: string;\n tableOfContents: string;\n frontmatter: IGraphqlFrontmatterData;\n fields: IMarkDownFields;\n}\n\nexport interface IAllMarkdownRemarkData {\n edges: {\n node: {\n frontmatter: IGraphqlFrontmatterData;\n fields: IMarkDownFields;\n };\n next: {\n frontmatter: IGraphqlFrontmatterData;\n fields: IMarkDownFields;\n };\n previous: { frontmatter: IGraphqlFrontmatterData; fields: IMarkDownFields };\n }[];\n}\n\nexport default function Template({\n data,\n ...rest\n}: {\n data: { markdownRemark: IMarkdownRemarkData; allMarkdownRemark: IAllMarkdownRemarkData };\n isMobile: boolean;\n location: {\n pathname: string;\n };\n}) {\n const { markdownRemark, allMarkdownRemark } = data;\n const { frontmatter, fields, html, tableOfContents } = markdownRemark;\n const { edges } = allMarkdownRemark;\n const menuList = edges.map(({ node, next, previous }) => {\n const { fields: nodeFields } = node;\n\n return {\n meta: {\n ...node.frontmatter,\n slug: nodeFields.slug,\n filename: nodeFields.slug,\n },\n ...node.frontmatter,\n slug: nodeFields.slug,\n filename: nodeFields.path,\n next,\n previous,\n };\n });\n\n return (\n <WrapperLayout {...rest}>\n <MainContent\n {...rest}\n localizedPageData={{\n meta: {\n ...frontmatter,\n ...fields,\n filename: fields.slug,\n path: fields.path,\n },\n toc: tableOfContents,\n content: html,\n }}\n menuList={menuList}\n />\n </WrapperLayout>\n );\n}\n\nexport const pageQuery = graphql`\n query TemplateDocsMarkdown($slug: String!, $type: String!, $locale: String!) {\n markdownRemark(fields: { slug: { eq: $slug } }) {\n html\n tableOfContents\n frontmatter {\n title\n order\n type\n }\n fields {\n path\n slug\n modifiedTime\n avatarList\n }\n }\n allMarkdownRemark(\n filter: { fileAbsolutePath: { regex: $type }, fields: { slug: { regex: $locale } } }\n sort: { fields: [frontmatter___order, frontmatter___type, frontmatter___time], order: DESC }\n ) {\n edges {\n node {\n frontmatter {\n title\n order\n type\n time\n }\n fields {\n slug\n path\n }\n }\n }\n }\n }\n`;\n"],"sourceRoot":""}