UNPKG

ultraman-shop

Version:

A React component library for building e-commerce interfaces

850 lines (782 loc) 69.1 kB
import { jsx, jsxs } from 'react/jsx-runtime'; import { ConfigProvider as ConfigProvider$1, Space, Table, DatePicker, Select, Tooltip, Modal } from 'antd'; import zhCN from 'antd/locale/zh_CN'; import require$$0, { useState, useEffect, useMemo } from 'react'; /****************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ var __assign = function() { __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; function __rest(s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; } function __spreadArray(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); } typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { var e = new Error(message); return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; }; function getDefaultExportFromCjs (x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; } var dayjs_min$1 = {exports: {}}; var dayjs_min = dayjs_min$1.exports; var hasRequiredDayjs_min; function requireDayjs_min () { if (hasRequiredDayjs_min) return dayjs_min$1.exports; hasRequiredDayjs_min = 1; (function (module, exports) { !function(t,e){module.exports=e();}(dayjs_min,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return "["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return !r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return (e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return -t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return +(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return {M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",D={};D[g]=M;var p="$isDayjsObject",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else {var a=e.name;D[a]=e,i=a;}return !r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0;}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init();},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},m.$utils=function(){return b},m.isValid=function(){return !(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+"Hours",0);case u:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case i:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f="set"+(this.$u?"UTC":""),l=(n={},n[a]=f+"Date",n[d]=f+"Date",n[c]=f+"Month",n[h]=f+"FullYear",n[u]=f+"Hours",n[s]=f+"Minutes",n[i]=f+"Seconds",n[r]=f+"Milliseconds",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d;}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,"0")},$=f||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return b.s(e.$y,4,"0");case"M":return a+1;case"MM":return b.s(a+1,2,"0");case"MMM":return h(n.monthsShort,a,c,3);case"MMMM":return h(c,a);case"D":return e.$D;case"DD":return b.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return h(n.weekdaysMin,e.$W,o,2);case"ddd":return h(n.weekdaysShort,e.$W,o,3);case"dddd":return o[e.$W];case"H":return String(s);case"HH":return b.s(s,2,"0");case"h":return d(1);case"hh":return d(2);case"a":return $(s,u,!0);case"A":return $(s,u,!1);case"m":return String(u);case"mm":return b.s(u,2,"0");case"s":return String(e.$s);case"ss":return b.s(e.$s,2,"0");case"SSS":return b.s(e.$ms,3,"0");case"Z":return i}return null}(t)||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g;}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",c],["$y",h],["$D",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])};})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O})); } (dayjs_min$1, dayjs_min$1.exports)); return dayjs_min$1.exports; } var dayjs_minExports = requireDayjs_min(); var dayjs = /*@__PURE__*/getDefaultExportFromCjs(dayjs_minExports); var zhCn$1 = {exports: {}}; var zhCn = zhCn$1.exports; var hasRequiredZhCn; function requireZhCn () { if (hasRequiredZhCn) return zhCn$1.exports; hasRequiredZhCn = 1; (function (module, exports) { !function(e,_){module.exports=_(requireDayjs_min());}(zhCn,(function(e){function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),d={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(e,_){return "W"===_?e+"周":e+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(e,_){var t=100*e+_;return t<600?"凌晨":t<900?"早上":t<1100?"上午":t<1300?"中午":t<1800?"下午":"晚上"}};return t.default.locale(d,null,!0),d})); } (zhCn$1, zhCn$1.exports)); return zhCn$1.exports; } requireZhCn(); dayjs.locale('zh-cn'); var ConfigProvider = function (_a) { var children = _a.children; return (jsx(ConfigProvider$1, __assign({ locale: zhCN }, { children: children }))); }; var classnames = {exports: {}}; /*! Copyright (c) 2018 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ classnames.exports; var hasRequiredClassnames; function requireClassnames () { if (hasRequiredClassnames) return classnames.exports; hasRequiredClassnames = 1; (function (module) { /* global define */ (function () { var hasOwn = {}.hasOwnProperty; function classNames () { var classes = ''; for (var i = 0; i < arguments.length; i++) { var arg = arguments[i]; if (arg) { classes = appendClass(classes, parseValue(arg)); } } return classes; } function parseValue (arg) { if (typeof arg === 'string' || typeof arg === 'number') { return arg; } if (typeof arg !== 'object') { return ''; } if (Array.isArray(arg)) { return classNames.apply(null, arg); } if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) { return arg.toString(); } var classes = ''; for (var key in arg) { if (hasOwn.call(arg, key) && arg[key]) { classes = appendClass(classes, key); } } return classes; } function appendClass (value, newClass) { if (!newClass) { return value; } if (value) { return value + ' ' + newClass; } return value + newClass; } if (module.exports) { classNames.default = classNames; module.exports = classNames; } else { window.classNames = classNames; } }()); } (classnames)); return classnames.exports; } var classnamesExports = requireClassnames(); var classNames = /*@__PURE__*/getDefaultExportFromCjs(classnamesExports); var Button = function (props) { var _a; var _b = props.type, type = _b === void 0 ? 'default' : _b, _c = props.size, size = _c === void 0 ? 'medium' : _c, className = props.className, children = props.children, href = props.href, backgroundColor = props.backgroundColor, restProps = __rest(props, ["type", "size", "className", "children", "href", "backgroundColor"]); var classes = classNames('btn', className, (_a = {}, _a["btn-".concat(type)] = type, _a["btn-".concat(size)] = size, _a)); return type === 'link' ? (jsx("a", __assign({ href: href, className: classes }, restProps, { children: children }))) : (jsx("button", __assign({ className: classes, style: { backgroundColor: backgroundColor } }, restProps, { children: children }))); }; var Input = function (_a) { var addonAfter = _a.addonAfter, addonBefore = _a.addonBefore, allowClear = _a.allowClear, classNames = _a.classNames; _a.count; var defaultValue = _a.defaultValue, _b = _a.disabled, disabled = _b === void 0 ? false : _b, id = _a.id, maxLength = _a.maxLength, prefix = _a.prefix, showCount = _a.showCount, status = _a.status, styles = _a.styles, _c = _a.size, size = _c === void 0 ? 'middle' : _c, suffix = _a.suffix, _d = _a.type, type = _d === void 0 ? 'text' : _d, propValue = _a.value, _e = _a.variant, variant = _e === void 0 ? 'outlined' : _e, onChange = _a.onChange, onPressEnter = _a.onPressEnter, onClear = _a.onClear, placeholder = _a.placeholder; var _f = useState(defaultValue || ''), value = _f[0], setValue = _f[1]; useEffect(function () { if (propValue !== undefined) { setValue(propValue); } }, [propValue]); var handleChange = function (e) { setValue(e.target.value); onChange === null || onChange === void 0 ? void 0 : onChange(e); }; var handleClear = function () { setValue(''); onClear === null || onClear === void 0 ? void 0 : onClear(); }; var handleKeyDown = function (e) { if (e.key === 'Enter') { onPressEnter === null || onPressEnter === void 0 ? void 0 : onPressEnter(e); } }; var renderCount = function () { var _a; if (!showCount) return null; var countInfo = { value: value, count: value.length, maxLength: maxLength }; return typeof showCount === 'boolean' ? "".concat(value.length).concat(maxLength ? " / ".concat(maxLength) : '') : (_a = showCount.formatter) === null || _a === void 0 ? void 0 : _a.call(showCount, countInfo); }; return (jsxs("div", __assign({ className: "input-container ".concat(size, " ").concat(variant, " ").concat(status || '', " ").concat(disabled ? 'disabled' : '', " ").concat((classNames === null || classNames === void 0 ? void 0 : classNames.container) || ''), style: styles === null || styles === void 0 ? void 0 : styles.container }, { children: [addonBefore && jsx("span", __assign({ className: "input-addon before" }, { children: addonBefore })), jsxs("div", __assign({ className: "input-wrapper", style: styles === null || styles === void 0 ? void 0 : styles.inputWrapper }, { children: [prefix && jsx("span", __assign({ className: "input-prefix" }, { children: prefix })), jsx("input", { id: id, type: type, value: value, disabled: disabled, maxLength: maxLength, onChange: handleChange, onKeyDown: handleKeyDown, placeholder: placeholder, className: "input-field ".concat((classNames === null || classNames === void 0 ? void 0 : classNames.inputField) || ''), style: styles === null || styles === void 0 ? void 0 : styles.inputField }), allowClear && value && (jsx("span", __assign({ className: "input-clear", onClick: handleClear }, { children: typeof allowClear === 'object' ? allowClear.clearIcon : '✖' }))), suffix && jsx("span", __assign({ className: "input-suffix" }, { children: suffix }))] })), addonAfter && jsx("span", __assign({ className: "input-addon after" }, { children: addonAfter })), renderCount() && jsx("span", __assign({ className: "input-count" }, { children: renderCount() }))] }))); }; /** 大屏菜单组件 */ var LSMenu = function (_a) { var _b = _a.items, items = _b === void 0 ? [] : _b, selectedKey = _a.selectedKey, onClick = _a.onClick; // 本地调试 items 有 mock 值 if (process.env.NODE_ENV === 'development' && (!items || items.length === 0)) { items = []; selectedKey = ''; } return (jsx("div", __assign({ className: "ultraman-menu" }, { children: items.map(function (_a, index) { var label = _a.label, value = _a.value; return (jsx("span", __assign({ className: classNames('ultraman-menu-item', { 'ultraman-unSelected': value !== selectedKey }), onClick: function () { return onClick(value); } }, { children: jsx("span", __assign({ className: "ultraman-label" }, { children: label })) }), index)); }) }))); }; /** 大屏标题组件 */ var SysHeadTitle = function (_a) { var onClick = _a.onClick, title = _a.title, dom = _a.dom, logoSrc = _a.logoSrc; // const logoSrc = `${imgPrefix}.png`; // const bgImage = `${imgPrefix}.png`; var defaultDom = (jsx("span", { children: "\u5BA2\u6D41\u7EBF\u7F51\u5206\u6790\u5E73\u53F0" })); return (jsxs("div", __assign({ className: "ultraman-sysHeadTitle", style: { // backgroundImage: `url(${bgImage})`, backgroundSize: 'cover', backgroundPosition: 'center', backgroundRepeat: 'no-repeat', // 背景图不重复 }, onClick: onClick }, { children: [logoSrc && jsx("img", { src: logoSrc, alt: "logo", className: "ultraman-logo" }), title || dom || defaultDom, " "] }))); }; /** 大屏标题组件 */ var XTitle = function (_a) { var title = _a.title, rightSlot = _a.rightSlot, titleEn = _a.titleEn, moreOnClick = _a.moreOnClick, moreAnimateOnClick = _a.moreAnimateOnClick, packUpOnClick = _a.packUpOnClick; _a.logoSrc; var _b = _a.bgImage, bgImage = _b === void 0 ? '/publicImg/cockpit/titleBg.png' : _b, _c = _a.className, className = _c === void 0 ? '' : _c, style = _a.style; _a.noPrefix; // 提前获取环境变量,避免每次渲染都访问 var imgPrefix = "publicImg/"; var cockpitPopupPackUp = "".concat(imgPrefix, "cockpit/cockpitPopupPackUp.png"); var additionalContent = null; // 判断是否有 packUpOnClick 或 moreOnClick,决定要渲染的内容 if (packUpOnClick) { additionalContent = (jsx("img", { src: cockpitPopupPackUp, className: "ultraman-cockpitPopupPackUp", onClick: packUpOnClick, alt: "\u6536\u8D77\u56FE\u6807" })); } else if (moreOnClick) { additionalContent = (jsx("img", { className: "ultraman-more", onClick: moreOnClick, src: "".concat(imgPrefix, "cockpit/checkMore.png"), alt: "" })); } else if (moreAnimateOnClick) { additionalContent = (jsx("span", __assign({ className: "ultraman-more-animate", onClick: moreAnimateOnClick }, { children: jsx("span", __assign({ className: "ultraman-btn" }, { children: jsx("a", __assign({ href: "#" }, { children: "查看更多 >" })) })) }))); } else { additionalContent = rightSlot; } return (jsxs("div", __assign({ className: "ultraman-XTitle ".concat(className), style: __assign(__assign({}, style), { backgroundImage: "url(".concat(bgImage, ")") }) }, { children: [" ", jsx("div", __assign({ className: "ultraman-header" }, { children: jsxs("span", __assign({ className: "ultraman-title" }, { children: [jsx("img", { src: "".concat(imgPrefix, "cockpit/titleL.png"), alt: "" }), jsx("span", __assign({ className: "ultraman-title-label" }, { children: title || '我是标题' })), jsxs("span", __assign({ className: "ultraman-titleEn-label" }, { children: [" ", titleEn] }))] })) })), additionalContent] }))); }; /** 大屏标题组件 */ var FoldingPanel = function (_a) { var children = _a.children, _b = _a.canClose, canClose = _b === void 0 ? false : _b, isExpanded = _a.isExpanded, onToggle = _a.onToggle, className = _a.className, style = _a.style; var imgPrefix = "publicImg/"; var newUnfold = "".concat(imgPrefix, "/newUnfold.png"); var cockpitPopupPackUp = "".concat(imgPrefix, "/cockpitPopupPackUp.png"); return (jsxs("div", __assign({ className: classNames('ultraman-foldingPanel', className), style: style }, { children: [" ", jsx("div", __assign({ className: "ultraman-newUnfold", onClick: onToggle, style: { display: isExpanded ? 'none' : 'block' } }, { children: jsx("img", { src: newUnfold, alt: "\u5C55\u5F00\u56FE\u6807" }) })), jsxs("div", __assign({ className: classNames('ultraman-foldingPanel-warp', { expanded: isExpanded, }), style: { display: isExpanded ? 'block' : 'none' } }, { children: [canClose && (jsx("img", { src: cockpitPopupPackUp, className: "ultraman-cockpitPopupPackUp", onClick: onToggle, alt: "\u6536\u8D77\u56FE\u6807" })), children] }))] }))); }; /** 大屏标题组件 */ var TitleFoldingPanel = function (_a) { var _b = _a.title, title = _b === void 0 ? '' : _b, children = _a.children, className = _a.className, style = _a.style, containerClassName = _a.containerClassName, containerStyle = _a.containerStyle, rightSlot = _a.rightSlot; // 内部管理展开状态 var _c = useState(true), isExpanded = _c[0], setIsExpanded = _c[1]; // 切换展开/收起状态 var onToggle = function () { setIsExpanded(function (prev) { return !prev; }); // 取反展开状态 }; // 使用环境变量设置图片前缀 var imgPrefix = "publicImg/" ; var ibusUnderIC = "".concat(imgPrefix, "/ibusUnderIC.png"); var ibusUpIC = "".concat(imgPrefix, "/ibusUpIC.png"); return (jsxs("div", __assign({ className: classNames('ultraman-titleFoldingPanel', className), style: style }, { children: [jsx(XTitle, { title: title, rightSlot: jsxs(Space, { children: [rightSlot, jsx("div", __assign({ className: "ultraman-UDWarp", onClick: onToggle }, { children: jsx("img", { className: "ultraman-UDStyle", src: isExpanded ? ibusUpIC : ibusUnderIC, alt: "Toggle" }) }))] }) }), jsxs("div", __assign({ className: classNames('ultraman-titleFoldingPanel-warp', containerClassName, { expanded: isExpanded }), style: containerStyle }, { children: [isExpanded && children, " "] }))] }))); }; var SideFoldingPanel = function (_a) { var children = _a.children, className = _a.className, style = _a.style, panelClassName = _a.panelClassName, panelStyle = _a.panelStyle; var _b = useState(false), isPanelOpen = _b[0], setIsPanelOpen = _b[1]; var imgPrefix = "publicImg/"; var ibusPanelClose = "".concat(imgPrefix, "/ibusPanelClose.png"); var ibusPanelOpen = "".concat(imgPrefix, "/ibusPanelOpen.png"); // 切换面板状态 var togglePanel = function () { setIsPanelOpen(function (prevState) { return !prevState; }); }; return (jsxs("div", __assign({ className: classNames("ultraman-container", className), style: style }, { children: [jsx("img", { className: "ultraman-logoImg", onClick: togglePanel, src: isPanelOpen ? ibusPanelOpen : ibusPanelClose, alt: "Toggle Panel" }), jsx("div", __assign({ className: classNames('ultraman-sideFoldingPanel', panelClassName, { 'ultraman-right': !isPanelOpen, 'ultraman-close': isPanelOpen, }), style: panelStyle }, { children: children }))] }))); }; // 设置 dayjs 语言为中文 dayjs.locale('zh-cn'); // 导出中文配置 var zhCNLocale = zhCN; var imgPrefix$1 = "publicImg/"; /** * 根据索引获取对应的排序前缀内容 * @param index - 排序前缀的索引 * @returns 排序前缀的图片或索引本身 */ var getSortPrefixContent = function (index, sortPattern, usePrefix) { if (sortPattern === void 0) { sortPattern = true; } if (usePrefix === void 0) { usePrefix = true; } var images = { '1': "".concat(imgPrefix$1, "cockpit/sortFirst.png"), '2': "".concat(imgPrefix$1, "cockpit/sortSecond.png"), '3': "".concat(imgPrefix$1, "cockpit/sortThree.png"), }; if (!sortPattern) { return index; } // 如果对应索引的图片存在,返回包含图片的 JSX 元素,否则返回索引本身 return images[index] ? (jsx("div", __assign({ className: classNames({ 'ultraman-sortPrefixWarp': usePrefix, 'ultraman-sortWarp': !usePrefix }) }, { children: jsx("img", { src: images[index], alt: "" }) }))) : index; }; var renderColumn = function (column) { return column.map(function (item) { return __assign({ dataIndex: item.dataIndex || item.key, ellipsis: true }, item); }); }; var CockpitTable = function (_a) { var _b = _a.rowClassName, rowClassName = _b === void 0 ? function () { return ''; } : _b, // 默认行类名为空 _c = _a.activeKeys, // 默认行类名为空 activeKeys = _c === void 0 ? null : _c, // 默认没有选中的行 _d = _a.rowKey, // 默认没有选中的行 rowKey = _d === void 0 ? 'key' : _d, // 默认使用 'key' 作为行标识字段 _e = _a.columns, // 默认使用 'key' 作为行标识字段 columns = _e === void 0 ? [ { title: '名称', dataIndex: 'name', key: 'name', }, { title: '地址', dataIndex: 'address', key: 'address', sorter: function (a, b) { return a.address.localeCompare(b.address); }, // 默认地址排序 } ] : _e, // 默认没有列 _f = _a.sortPrefixConfig, // 默认没有列 sortPrefixConfig = _f === void 0 ? { sequence: true, title: '排序', } : _f, // 默认没有排序前缀配置 _g = _a.dataSource, // 默认没有排序前缀配置 dataSource = _g === void 0 ? [{ key: '1', name: '暂无数据', address: '暂无数据', }] : _g, // 默认没有数据源 onChange = _a.onChange, // 外部传入的 onChange 回调 borderColor = _a.borderColor, expandable = _a.expandable, props = __rest(_a, ["rowClassName", "activeKeys", "rowKey", "columns", "sortPrefixConfig", "dataSource", "onChange", "borderColor", "expandable"]); var extendedDataSource = useMemo(function () { if (!sortPrefixConfig) { return __spreadArray([], dataSource, true); } return dataSource.map(function (record, index) { return (__assign(__assign({}, record), { sortPrefix: getSortPrefixContent(String(index + 1), sortPrefixConfig === null || sortPrefixConfig === void 0 ? void 0 : sortPrefixConfig.sortPattern, sortPrefixConfig === null || sortPrefixConfig === void 0 ? void 0 : sortPrefixConfig.usePrefix) })); }); }, [dataSource, sortPrefixConfig]); /** * 扩展 columns,确保 sortPrefix 列不受排序影响 */ var extendedColumns = sortPrefixConfig ? __spreadArray([ __assign({ dataIndex: 'sortPrefix', key: 'sortPrefix', width: 80, render: function (_, record) { return record.sortPrefix || ''; } }, (sortPrefixConfig || {})) ], columns, true) : columns; // 如果没有排序前缀配置,直接使用传入的 columns /** * 处理表格的 onChange 事件,合并内部逻辑与外部传入的 onChange * @param pagination - 分页信息 * @param filters - 筛选信息 * @param sorter - 排序信息 * @param extra - 额外信息 */ var handleTableChange = function (pagination, filters, sorter, extra) { if (onChange) { onChange(pagination, filters, sorter, extra); } }; return (jsx(ConfigProvider$1, __assign({ prefixCls: "ultraman", locale: zhCNLocale }, { children: jsx("div", __assign({ className: "ultraman-cockpitTable", style: { '--border-color': borderColor || '#000', width: '100%', position: 'relative', } }, { children: jsx(Table, __assign({ locale: { emptyText: jsx("div", __assign({ className: "ultraman-emptyWarp" }, { children: jsx("img", { src: "".concat(imgPrefix$1, "cockpit/empty.svg"), alt: "" }) })) }, rowKey: rowKey, columns: renderColumn(extendedColumns), pagination: false, onChange: handleTableChange, dataSource: extendedDataSource, scroll: { y: 200 }, showSorterTooltip: false, bordered: false, size: "middle" // 设置表格大小为中等 , style: { width: '100%' }, expandable: expandable ? __assign({ expandIcon: function (_a) { var expanded = _a.expanded, onExpand = _a.onExpand, record = _a.record; return expanded ? (jsx("img", { src: "https://tj-front.oss-cn-beijing.aliyuncs.com/publicImg/cockpit/expanded.svg", onClick: function (e) { return onExpand(record, e); } })) : (jsx("img", { src: "https://tj-front.oss-cn-beijing.aliyuncs.com/publicImg/cockpit/collapsed.svg", onClick: function (e) { return onExpand(record, e); } })); } }, expandable) : {}, className: "ultraman-table-fixed" // 添加固定表格类名 , rowClassName: function (record, index) { if (Array.isArray(activeKeys)) { return "ultraman-rowPrefix ".concat(activeKeys.includes(record[rowKey]) ? 'ultraman-rowPrefix-active' // 如果行是选中的,添加激活类名 : '', " ").concat(index % 2 === 0 ? 'table-tr-even-color' : 'table-tr-odd-color', " ").concat(rowClassName(record, index)); // 使用传入的行类名函数 } else { return "ultraman-rowPrefix ".concat(activeKeys && record[rowKey] === activeKeys ? 'ultraman-rowPrefix-active' // 如果行是选中的,添加激活类名 : '', " ").concat(index % 2 === 0 ? 'table-tr-even-color' : 'table-tr-odd-color', " ").concat(rowClassName(record, index)); // 使用传入的行类名函数 } } }, props)) })) }))); }; var CockpitTabs = function (_a) { var _b; var _c = _a.item, item = _c === void 0 ? [ { label: '高', value: '1', }, { label: '标签2', value: '2', }, { label: '标签3', value: '3', }, ] : _c, onChange = _a.onChange, _d = _a.defaultActiveKey, defaultActiveKey = _d === void 0 ? "1" : _d, _e = _a.type, type = _e === void 0 ? 'button' : _e, _f = _a.className, className = _f === void 0 ? '' : _f, _g = _a.style, style = _g === void 0 ? {} : _g; var _h = useState(defaultActiveKey), activeKey = _h[0], setActiveKey = _h[1]; var handleTabClick = function (value) { setActiveKey(value); onChange(value); }; return (jsxs("div", __assign({ className: "ultraman-CockpitTabs-".concat(type, " ").concat(className), style: style }, { children: [jsx("div", __assign({ className: "ultraman-tabs" }, { children: item.map(function (e) { return (jsx("span", __assign({ className: "ultraman-tab-item ".concat(activeKey === e.value ? 'active' : ''), onClick: function () { return handleTabClick(e.value); } }, { children: e.label || "" }), e.value)); }) })), jsx("div", __assign({ className: "ultraman-tab-content" }, { children: (_b = item.find(function (e) { return e.value === activeKey; })) === null || _b === void 0 ? void 0 : _b.children }))] }))); }; var build = {}; var countUp_umd$1 = {exports: {}}; var countUp_umd = countUp_umd$1.exports; var hasRequiredCountUp_umd; function requireCountUp_umd () { if (hasRequiredCountUp_umd) return countUp_umd$1.exports; hasRequiredCountUp_umd = 1; (function (module, exports) { !function(t,i){i(exports);}(countUp_umd,(function(t){var i=function(){return i=Object.assign||function(t){for(var i,n=1,s=arguments.length;n<s;n++)for(var a in i=arguments[n])Object.prototype.hasOwnProperty.call(i,a)&&(t[a]=i[a]);return t},i.apply(this,arguments)},n=function(){function t(t,n,s){var a=this;this.endVal=n,this.options=s,this.version="2.8.1",this.defaults={startVal:0,decimalPlaces:0,duration:2,useEasing:!0,useGrouping:!0,useIndianSeparators:!1,smartEasingThreshold:999,smartEasingAmount:333,separator:",",decimal:".",prefix:"",suffix:"",enableScrollSpy:!1,scrollSpyDelay:200,scrollSpyOnce:!1},this.finalEndVal=null,this.useEasing=!0,this.countDown=!1,this.error="",this.startVal=0,this.paused=!0,this.once=!1,this.count=function(t){a.startTime||(a.startTime=t);var i=t-a.startTime;a.remaining=a.duration-i,a.useEasing?a.countDown?a.frameVal=a.startVal-a.easingFn(i,0,a.startVal-a.endVal,a.duration):a.frameVal=a.easingFn(i,a.startVal,a.endVal-a.startVal,a.duration):a.frameVal=a.startVal+(a.endVal-a.startVal)*(i/a.duration);var n=a.countDown?a.frameVal<a.endVal:a.frameVal>a.endVal;a.frameVal=n?a.endVal:a.frameVal,a.frameVal=Number(a.frameVal.toFixed(a.options.decimalPlaces)),a.printValue(a.frameVal),i<a.duration?a.rAF=requestAnimationFrame(a.count):null!==a.finalEndVal?a.update(a.finalEndVal):a.options.onCompleteCallback&&a.options.onCompleteCallback();},this.formatNumber=function(t){var i,n,s,e,o=t<0?"-":"";i=Math.abs(t).toFixed(a.options.decimalPlaces);var r=(i+="").split(".");if(n=r[0],s=r.length>1?a.options.decimal+r[1]:"",a.options.useGrouping){e="";for(var l=3,h=0,u=0,p=n.length;u<p;++u)a.options.useIndianSeparators&&4===u&&(l=2,h=1),0!==u&&h%l==0&&(e=a.options.separator+e),h++,e=n[p-u-1]+e;n=e;}return a.options.numerals&&a.options.numerals.length&&(n=n.replace(/[0-9]/g,(function(t){return a.options.numerals[+t]})),s=s.replace(/[0-9]/g,(function(t){return a.options.numerals[+t]}))),o+a.options.prefix+n+s+a.options.suffix},this.easeOutExpo=function(t,i,n,s){return n*(1-Math.pow(2,-10*t/s))*1024/1023+i},this.options=i(i({},this.defaults),s),this.formattingFn=this.options.formattingFn?this.options.formattingFn:this.formatNumber,this.easingFn=this.options.easingFn?this.options.easingFn:this.easeOutExpo,this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.endVal=this.validateValue(n),this.options.decimalPlaces=Math.max(this.options.decimalPlaces),this.resetDuration(),this.options.separator=String(this.options.separator),this.useEasing=this.options.useEasing,""===this.options.separator&&(this.options.useGrouping=!1),this.el="string"==typeof t?document.getElementById(t):t,this.el?this.printValue(this.startVal):this.error="[CountUp] target is null or undefined","undefined"!=typeof window&&this.options.enableScrollSpy&&(this.error?console.error(this.error,t):(window.onScrollFns=window.onScrollFns||[],window.onScrollFns.push((function(){return a.handleScroll(a)})),window.onscroll=function(){window.onScrollFns.forEach((function(t){return t()}));},this.handleScroll(this)));}return t.prototype.handleScroll=function(t){if(t&&window&&!t.once){var i=window.innerHeight+window.scrollY,n=t.el.getBoundingClientRect(),s=n.top+window.pageYOffset,a=n.top+n.height+window.pageYOffset;a<i&&a>window.scrollY&&t.paused?(t.paused=!1,setTimeout((function(){return t.start()}),t.options.scrollSpyDelay),t.options.scrollSpyOnce&&(t.once=!0)):(window.scrollY>a||s>i)&&!t.paused&&t.reset();}},t.prototype.determineDirectionAndSmartEasing=function(){var t=this.finalEndVal?this.finalEndVal:this.endVal;this.countDown=this.startVal>t;var i=t-this.startVal;if(Math.abs(i)>this.options.smartEasingThreshold&&this.options.useEasing){this.finalEndVal=t;var n=this.countDown?1:-1;this.endVal=t+n*this.options.smartEasingAmount,this.duration=this.duration/2;}else this.endVal=t,this.finalEndVal=null;null!==this.finalEndVal?this.useEasing=!1:this.useEasing=this.options.useEasing;},t.prototype.start=function(t){this.error||(this.options.onStartCallback&&this.options.onStartCallback(),t&&(this.options.onCompleteCallback=t),this.duration>0?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal));},t.prototype.pauseResume=function(){this.paused?(this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count)):cancelAnimationFrame(this.rAF),this.paused=!this.paused;},t.prototype.reset=function(){cancelAnimationFrame(this.rAF),this.paused=!0,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal);},t.prototype.update=function(t){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(t),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,null==this.finalEndVal&&this.resetDuration(),this.finalEndVal=null,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count));},t.prototype.printValue=function(t){var i;if(this.el){var n=this.formattingFn(t);if(null===(i=this.options.plugin)||void 0===i?void 0:i.render)this.options.plugin.render(this.el,n);else if("INPUT"===this.el.tagName)this.el.value=n;else "text"===this.el.tagName||"tspan"===this.el.tagName?this.el.textContent=n:this.el.innerHTML=n;}},t.prototype.ensureNumber=function(t){return "number"==typeof t&&!isNaN(t)},t.prototype.validateValue=function(t){var i=Number(t);return this.ensureNumber(i)?i:(this.error="[CountUp] invalid start or end value: ".concat(t),null)},t.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration;},t}();t.CountUp=n;})); } (countUp_umd$1, countUp_umd$1.exports)); return countUp_umd$1.exports; } var hasRequiredBuild; function requireBuild () { if (hasRequiredBuild) return build; hasRequiredBuild = 1; Object.defineProperty(build, '__esModule', { value: true }); var React = require$$0; var countup_js = requireCountUp_umd(); function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } /** * Silence SSR Warnings. * Borrowed from Formik v2.1.1, Licensed MIT. * * https://github.com/formium/formik/blob/9316a864478f8fcd4fa99a0735b1d37afdf507dc/LICENSE */ var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? React.useLayoutEffect : React.useEffect; /* eslint-disable @typescript-eslint/no-explicit-any */ /** * Create a stable reference to a callback which is updated after each render is committed. * Typed version borrowed from Formik v2.2.1. Licensed MIT. * * https://github.com/formium/formik/blob/9316a864478f8fcd4fa99a0735b1d37afdf507dc/LICENSE */ function useEventCallback(fn) { var ref = React.useRef(fn); // we copy a ref to the callback scoped to the current state/props on each render useIsomorphicLayoutEffect(function () { ref.current = fn; }); return React.useCallback(function () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return ref.current.apply(void 0, args); }, []); } var createCountUpInstance = function createCountUpInstance(el, props) { var decimal = props.decimal, decimals = props.decimals, duration = props.duration, easingFn = props.easingFn, end = props.end, formattingFn = props.formattingFn, numerals = props.numerals, prefix = props.prefix, separator = props.separator, start = props.start, suffix = props.suffix, useEasing = props.useEasing, useGrouping = props.useGrouping, useIndianSeparators = props.useIndianSeparators, enableScrollSpy = props.enableScrollSpy, scrollSpyDelay = props.scrollSpyDelay, scrollSpyOnce = props.scrollSpyOnce, plugin = props.plugin; return new countup_js.CountUp(el, end, { startVal: start, duration: duration, decimal: decimal, decimalPlaces: decimals, easingFn: easingFn, formattingFn: formattingFn, numerals: numerals, separator: separator, prefix: prefix, suffix: suffix, plugin: plugin, useEasing: useEasing, useIndianSeparators: useIndianSeparators, useGrouping: useGrouping, enableScrollSpy: enableScrollSpy, scrollSpyDelay: scrollSpyDelay, scrollSpyOnce: scrollSpyOnce }); }; var _excluded$1 = ["ref", "startOnMount", "enableReinitialize", "delay", "onEnd", "onStart", "onPauseResume", "onReset", "onUpdate"]; var DEFAULTS = { decimal: '.', separator: ',', delay: null, prefix: '', suffix: '', duration: 2, start: 0, decimals: 0, startOnMount: true, enableReinitialize: true, useEasing: true, useGrouping: true, useIndianSeparators: false }; var useCountUp = function useCountUp(props) { var filteredProps = Object.fromEntries(Object.entries(props).filter(function (_ref) { var _ref2 = _slicedToArray(_ref, 2), value = _ref2[1]; return value !== undefined; })); var _useMemo = React.useMemo(function () { return _objectSpread2(_objectSpread2({}, DEFAULTS), filteredProps); }, [props]), ref = _useMemo.ref, startOnMount = _useMemo.startOnMount, enableReinitialize = _useMemo.enableReinitialize, delay = _useMemo.delay, onEnd = _useMemo.onEnd, onStart = _useMemo.onStart, onPauseResume = _useMemo.onPauseResume, onReset = _useMemo.onReset, onUpdate = _useMemo.onUpdate, instanceProps = _objectWithoutProperties(_useMemo, _excluded$1); var countUpRef = React.useRef(); var timerRef = React.useRef(); var isInitializedRef = React.useRef(false); var createInstance = useEventCallback(function () { return createCountUpInstance(typeof ref === 'string' ? ref : ref.current, instanceProps); }); var getCountUp = useEventCallback(function (recreate) { var countUp = countUpRef.current; if (countUp && !recreate) { return countUp; } var newCountUp = createInstance(); countUpRef.current = newCountUp; return newCountUp; }); var start = useEventCallback(function () { var run = function run() { return getCountUp(true).start(function () { onEnd === null || onEnd === void 0 || onEnd({ pauseResume: pauseResume, reset: reset, start: restart, update: update }); }); }; if (delay && delay > 0) { timerRef.current = setTimeout(run, delay * 1000); } else { run(); } onStart === null || onStart === void 0 || onStart({ pauseResume: pauseResume, reset: reset, update: update }); }); var pauseResume = useEventCallback(function () { getCountUp().pauseResume(); onPauseResume === null || onPauseResume === void 0 || onPauseResume({ reset: reset, start: restart, update: update }); }); var reset = useEventCallback(function () { // Quick fix for https://github.com/glennreyes/react-countup/issues/736 - should be investigated // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore if (getCountUp().el) { timerRef.current && clearTimeout(timerRef.current); getCountUp().reset(); onReset === null || onReset === void 0 || onReset({ pauseResume: pauseResume, start: restart, update: update }); } }); var update = useEventCallback(function (newEnd) { getCountUp().update(newEnd); onUpdate === null || onUpdate === void 0 || onUpdate({ pauseResume: pauseResume, reset: reset, start: restart }); }); var restart = useEventCallback(function () { reset(); start(); }); var maybeInitialize = useEventCallback(function (shouldReset) { if (startOnMount) { if (shouldReset) { reset(); } start(); } }); React.useEffect(function () { if (!isInitializedRef.current) { isInitializedRef.current = true; maybeInitialize(); } else if (enableReinitialize) { maybeInitialize(true); } }, [enableReinitialize, isInitializedRef, maybeInitialize, delay, props.start, props.suffix, props.prefix, props.duration, props.separator, props.decimals, props.decimal, props.formattingFn]); React.useEffect(function () { return function () { reset(); }; }, [reset]); return { start: restart, pauseResume: pauseResume, reset: reset, update: update, getCountUp: getCountUp }; }; var _excluded = ["className", "redraw", "containerProps", "children", "style"]; var CountUp = function CountUp(props) { var className = props.className, redraw = props.redraw, containerProps = props.containerProps, children = props.children, style = pr