You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4719 lines
178 KiB
4719 lines
178 KiB
(self["webpackChunk"] = self["webpackChunk"] || []).push([[96449,36381,56047,49127],{
|
|
|
|
/***/ 2066:
|
|
/*!************************************************************************************************************!*\
|
|
!*** ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/CaretRightOutlined.js + 1 modules ***!
|
|
\************************************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ icons_CaretRightOutlined; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.0@@babel/runtime/helpers/esm/extends.js
|
|
var esm_extends = __webpack_require__(72308);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/CaretRightOutlined.js
|
|
// This icon file is generated automatically.
|
|
var CaretRightOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "0 0 1024 1024", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z" } }] }, "name": "caret-right", "theme": "outlined" };
|
|
/* harmony default export */ var asn_CaretRightOutlined = (CaretRightOutlined);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
var AntdIcon = __webpack_require__(7657);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/CaretRightOutlined.js
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
var CaretRightOutlined_CaretRightOutlined = function CaretRightOutlined(props, ref) {
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
ref: ref,
|
|
icon: asn_CaretRightOutlined
|
|
}));
|
|
};
|
|
|
|
/** */
|
|
var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(CaretRightOutlined_CaretRightOutlined);
|
|
if (false) {}
|
|
/* harmony default export */ var icons_CaretRightOutlined = (RefIcon);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 65363:
|
|
/*!*************************************************************************************************************!*\
|
|
!*** ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/CloseCircleOutlined.js + 1 modules ***!
|
|
\*************************************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ icons_CloseCircleOutlined; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.0@@babel/runtime/helpers/esm/extends.js
|
|
var esm_extends = __webpack_require__(72308);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/CloseCircleOutlined.js
|
|
// This icon file is generated automatically.
|
|
var CloseCircleOutlined = { "icon": { "tag": "svg", "attrs": { "fill-rule": "evenodd", "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm0 76c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm128.01 198.83c.03 0 .05.01.09.06l45.02 45.01a.2.2 0 01.05.09.12.12 0 010 .07c0 .02-.01.04-.05.08L557.25 512l127.87 127.86a.27.27 0 01.05.06v.02a.12.12 0 010 .07c0 .03-.01.05-.05.09l-45.02 45.02a.2.2 0 01-.09.05.12.12 0 01-.07 0c-.02 0-.04-.01-.08-.05L512 557.25 384.14 685.12c-.04.04-.06.05-.08.05a.12.12 0 01-.07 0c-.03 0-.05-.01-.09-.05l-45.02-45.02a.2.2 0 01-.05-.09.12.12 0 010-.07c0-.02.01-.04.06-.08L466.75 512 338.88 384.14a.27.27 0 01-.05-.06l-.01-.02a.12.12 0 010-.07c0-.03.01-.05.05-.09l45.02-45.02a.2.2 0 01.09-.05.12.12 0 01.07 0c.02 0 .04.01.08.06L512 466.75l127.86-127.86c.04-.05.06-.06.08-.06a.12.12 0 01.07 0z" } }] }, "name": "close-circle", "theme": "outlined" };
|
|
/* harmony default export */ var asn_CloseCircleOutlined = (CloseCircleOutlined);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
var AntdIcon = __webpack_require__(7657);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/CloseCircleOutlined.js
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
var CloseCircleOutlined_CloseCircleOutlined = function CloseCircleOutlined(props, ref) {
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
ref: ref,
|
|
icon: asn_CloseCircleOutlined
|
|
}));
|
|
};
|
|
|
|
/** */
|
|
var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(CloseCircleOutlined_CloseCircleOutlined);
|
|
if (false) {}
|
|
/* harmony default export */ var icons_CloseCircleOutlined = (RefIcon);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 87169:
|
|
/*!*******************************************************************************************************************!*\
|
|
!*** ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/ExclamationCircleOutlined.js + 1 modules ***!
|
|
\*******************************************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ icons_ExclamationCircleOutlined; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.0@@babel/runtime/helpers/esm/extends.js
|
|
var esm_extends = __webpack_require__(72308);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/ExclamationCircleOutlined.js
|
|
// This icon file is generated automatically.
|
|
var ExclamationCircleOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" } }, { "tag": "path", "attrs": { "d": "M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z" } }] }, "name": "exclamation-circle", "theme": "outlined" };
|
|
/* harmony default export */ var asn_ExclamationCircleOutlined = (ExclamationCircleOutlined);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
var AntdIcon = __webpack_require__(7657);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/ExclamationCircleOutlined.js
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
var ExclamationCircleOutlined_ExclamationCircleOutlined = function ExclamationCircleOutlined(props, ref) {
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
ref: ref,
|
|
icon: asn_ExclamationCircleOutlined
|
|
}));
|
|
};
|
|
|
|
/** */
|
|
var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(ExclamationCircleOutlined_ExclamationCircleOutlined);
|
|
if (false) {}
|
|
/* harmony default export */ var icons_ExclamationCircleOutlined = (RefIcon);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 10906:
|
|
/*!******************************************************************************************************!*\
|
|
!*** ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/FormOutlined.js + 1 modules ***!
|
|
\******************************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ icons_FormOutlined; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.0@@babel/runtime/helpers/esm/extends.js
|
|
var esm_extends = __webpack_require__(72308);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/FormOutlined.js
|
|
// This icon file is generated automatically.
|
|
var FormOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M904 512h-56c-4.4 0-8 3.6-8 8v320H184V184h320c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V520c0-4.4-3.6-8-8-8z" } }, { "tag": "path", "attrs": { "d": "M355.9 534.9L354 653.8c-.1 8.9 7.1 16.2 16 16.2h.4l118-2.9c2-.1 4-.9 5.4-2.3l415.9-415c3.1-3.1 3.1-8.2 0-11.3L785.4 114.3c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-415.8 415a8.3 8.3 0 00-2.3 5.6zm63.5 23.6L779.7 199l45.2 45.1-360.5 359.7-45.7 1.1.7-46.4z" } }] }, "name": "form", "theme": "outlined" };
|
|
/* harmony default export */ var asn_FormOutlined = (FormOutlined);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
var AntdIcon = __webpack_require__(7657);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/FormOutlined.js
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
var FormOutlined_FormOutlined = function FormOutlined(props, ref) {
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
ref: ref,
|
|
icon: asn_FormOutlined
|
|
}));
|
|
};
|
|
|
|
/** */
|
|
var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(FormOutlined_FormOutlined);
|
|
if (false) {}
|
|
/* harmony default export */ var icons_FormOutlined = (RefIcon);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 61481:
|
|
/*!*******************************************************************************************************!*\
|
|
!*** ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/InboxOutlined.js + 1 modules ***!
|
|
\*******************************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ icons_InboxOutlined; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.0@@babel/runtime/helpers/esm/extends.js
|
|
var esm_extends = __webpack_require__(72308);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/InboxOutlined.js
|
|
// This icon file is generated automatically.
|
|
var InboxOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "0 0 1024 1024", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M885.2 446.3l-.2-.8-112.2-285.1c-5-16.1-19.9-27.2-36.8-27.2H281.2c-17 0-32.1 11.3-36.9 27.6L139.4 443l-.3.7-.2.8c-1.3 4.9-1.7 9.9-1 14.8-.1 1.6-.2 3.2-.2 4.8V830a60.9 60.9 0 0060.8 60.8h627.2c33.5 0 60.8-27.3 60.9-60.8V464.1c0-1.3 0-2.6-.1-3.7.4-4.9 0-9.6-1.3-14.1zm-295.8-43l-.3 15.7c-.8 44.9-31.8 75.1-77.1 75.1-22.1 0-41.1-7.1-54.8-20.6S436 441.2 435.6 419l-.3-15.7H229.5L309 210h399.2l81.7 193.3H589.4zm-375 76.8h157.3c24.3 57.1 76 90.8 140.4 90.8 33.7 0 65-9.4 90.3-27.2 22.2-15.6 39.5-37.4 50.7-63.6h156.5V814H214.4V480.1z" } }] }, "name": "inbox", "theme": "outlined" };
|
|
/* harmony default export */ var asn_InboxOutlined = (InboxOutlined);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
var AntdIcon = __webpack_require__(7657);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/InboxOutlined.js
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
var InboxOutlined_InboxOutlined = function InboxOutlined(props, ref) {
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
ref: ref,
|
|
icon: asn_InboxOutlined
|
|
}));
|
|
};
|
|
|
|
/** */
|
|
var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(InboxOutlined_InboxOutlined);
|
|
if (false) {}
|
|
/* harmony default export */ var icons_InboxOutlined = (RefIcon);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 15278:
|
|
/*!******************************************************************************************************!*\
|
|
!*** ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/LinkOutlined.js + 1 modules ***!
|
|
\******************************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ icons_LinkOutlined; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.0@@babel/runtime/helpers/esm/extends.js
|
|
var esm_extends = __webpack_require__(72308);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/LinkOutlined.js
|
|
// This icon file is generated automatically.
|
|
var LinkOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z" } }] }, "name": "link", "theme": "outlined" };
|
|
/* harmony default export */ var asn_LinkOutlined = (LinkOutlined);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
var AntdIcon = __webpack_require__(7657);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/LinkOutlined.js
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
var LinkOutlined_LinkOutlined = function LinkOutlined(props, ref) {
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
ref: ref,
|
|
icon: asn_LinkOutlined
|
|
}));
|
|
};
|
|
|
|
/** */
|
|
var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(LinkOutlined_LinkOutlined);
|
|
if (false) {}
|
|
/* harmony default export */ var icons_LinkOutlined = (RefIcon);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 12893:
|
|
/*!*************************************************************************************************************!*\
|
|
!*** ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/MinusCircleOutlined.js + 1 modules ***!
|
|
\*************************************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ icons_MinusCircleOutlined; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.0@@babel/runtime/helpers/esm/extends.js
|
|
var esm_extends = __webpack_require__(72308);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/MinusCircleOutlined.js
|
|
// This icon file is generated automatically.
|
|
var MinusCircleOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" } }, { "tag": "path", "attrs": { "d": "M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" } }] }, "name": "minus-circle", "theme": "outlined" };
|
|
/* harmony default export */ var asn_MinusCircleOutlined = (MinusCircleOutlined);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
var AntdIcon = __webpack_require__(7657);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/MinusCircleOutlined.js
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
var MinusCircleOutlined_MinusCircleOutlined = function MinusCircleOutlined(props, ref) {
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
ref: ref,
|
|
icon: asn_MinusCircleOutlined
|
|
}));
|
|
};
|
|
|
|
/** */
|
|
var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(MinusCircleOutlined_MinusCircleOutlined);
|
|
if (false) {}
|
|
/* harmony default export */ var icons_MinusCircleOutlined = (RefIcon);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 32398:
|
|
/*!********************************************************************************************************!*\
|
|
!*** ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/ReloadOutlined.js + 1 modules ***!
|
|
\********************************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ icons_ReloadOutlined; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.0@@babel/runtime/helpers/esm/extends.js
|
|
var esm_extends = __webpack_require__(72308);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/ReloadOutlined.js
|
|
// This icon file is generated automatically.
|
|
var ReloadOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z" } }] }, "name": "reload", "theme": "outlined" };
|
|
/* harmony default export */ var asn_ReloadOutlined = (ReloadOutlined);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
var AntdIcon = __webpack_require__(7657);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/ReloadOutlined.js
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
var ReloadOutlined_ReloadOutlined = function ReloadOutlined(props, ref) {
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
ref: ref,
|
|
icon: asn_ReloadOutlined
|
|
}));
|
|
};
|
|
|
|
/** */
|
|
var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(ReloadOutlined_ReloadOutlined);
|
|
if (false) {}
|
|
/* harmony default export */ var icons_ReloadOutlined = (RefIcon);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 32050:
|
|
/*!********************************************************************************************************!*\
|
|
!*** ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/UploadOutlined.js + 1 modules ***!
|
|
\********************************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ icons_UploadOutlined; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.0@@babel/runtime/helpers/esm/extends.js
|
|
var esm_extends = __webpack_require__(72308);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/UploadOutlined.js
|
|
// This icon file is generated automatically.
|
|
var UploadOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z" } }] }, "name": "upload", "theme": "outlined" };
|
|
/* harmony default export */ var asn_UploadOutlined = (UploadOutlined);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
var AntdIcon = __webpack_require__(7657);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/UploadOutlined.js
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
var UploadOutlined_UploadOutlined = function UploadOutlined(props, ref) {
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
ref: ref,
|
|
icon: asn_UploadOutlined
|
|
}));
|
|
};
|
|
|
|
/** */
|
|
var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(UploadOutlined_UploadOutlined);
|
|
if (false) {}
|
|
/* harmony default export */ var icons_UploadOutlined = (RefIcon);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 88522:
|
|
/*!*****************************************************************!*\
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/auto-complete/index.js ***!
|
|
\*****************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ 92310);
|
|
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
|
|
/* harmony import */ var rc_util_es_Children_toArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rc-util/es/Children/toArray */ 11592);
|
|
/* harmony import */ var rc_util_es_omit__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rc-util/es/omit */ 2738);
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ 59301);
|
|
/* harmony import */ var _util_PurePanel__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../_util/PurePanel */ 53487);
|
|
/* harmony import */ var _util_reactNode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_util/reactNode */ 92343);
|
|
/* harmony import */ var _config_provider__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../config-provider */ 36355);
|
|
/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../select */ 57809);
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const {
|
|
Option
|
|
} = _select__WEBPACK_IMPORTED_MODULE_3__["default"];
|
|
function isSelectOptionOrSelectOptGroup(child) {
|
|
return child && child.type && (child.type.isSelectOption || child.type.isSelectOptGroup);
|
|
}
|
|
const AutoComplete = (props, ref) => {
|
|
const {
|
|
prefixCls: customizePrefixCls,
|
|
className,
|
|
popupClassName,
|
|
dropdownClassName,
|
|
children,
|
|
dataSource
|
|
} = props;
|
|
const childNodes = (0,rc_util_es_Children_toArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(children);
|
|
// ============================= Input =============================
|
|
let customizeInput;
|
|
if (childNodes.length === 1 && (0,_util_reactNode__WEBPACK_IMPORTED_MODULE_4__/* .isValidElement */ .l$)(childNodes[0]) && !isSelectOptionOrSelectOptGroup(childNodes[0])) {
|
|
[customizeInput] = childNodes;
|
|
}
|
|
const getInputElement = customizeInput ? () => customizeInput : undefined;
|
|
// ============================ Options ============================
|
|
let optionChildren;
|
|
// [Legacy] convert `children` or `dataSource` into option children
|
|
if (childNodes.length && isSelectOptionOrSelectOptGroup(childNodes[0])) {
|
|
optionChildren = children;
|
|
} else {
|
|
optionChildren = dataSource ? dataSource.map(item => {
|
|
if ((0,_util_reactNode__WEBPACK_IMPORTED_MODULE_4__/* .isValidElement */ .l$)(item)) {
|
|
return item;
|
|
}
|
|
switch (typeof item) {
|
|
case 'string':
|
|
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(Option, {
|
|
key: item,
|
|
value: item
|
|
}, item);
|
|
case 'object':
|
|
{
|
|
const {
|
|
value: optionValue
|
|
} = item;
|
|
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(Option, {
|
|
key: optionValue,
|
|
value: optionValue
|
|
}, item.text);
|
|
}
|
|
default:
|
|
false ? 0 : void 0;
|
|
return undefined;
|
|
}
|
|
}) : [];
|
|
}
|
|
if (false) {}
|
|
const {
|
|
getPrefixCls
|
|
} = react__WEBPACK_IMPORTED_MODULE_2__.useContext(_config_provider__WEBPACK_IMPORTED_MODULE_5__/* .ConfigContext */ .E_);
|
|
const prefixCls = getPrefixCls('select', customizePrefixCls);
|
|
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_select__WEBPACK_IMPORTED_MODULE_3__["default"], Object.assign({
|
|
ref: ref,
|
|
suffixIcon: null
|
|
}, (0,rc_util_es_omit__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)(props, ['dataSource', 'dropdownClassName']), {
|
|
prefixCls: prefixCls,
|
|
popupClassName: popupClassName || dropdownClassName,
|
|
className: classnames__WEBPACK_IMPORTED_MODULE_0___default()(`${prefixCls}-auto-complete`, className),
|
|
mode: _select__WEBPACK_IMPORTED_MODULE_3__["default"].SECRET_COMBOBOX_MODE_DO_NOT_USE
|
|
}, {
|
|
// Internal api
|
|
getInputElement
|
|
}), optionChildren);
|
|
};
|
|
const RefAutoComplete = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.forwardRef(AutoComplete);
|
|
// We don't care debug panel
|
|
/* istanbul ignore next */
|
|
const PurePanel = (0,_util_PurePanel__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z)(RefAutoComplete);
|
|
RefAutoComplete.Option = Option;
|
|
RefAutoComplete._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;
|
|
if (false) {}
|
|
/* harmony default export */ __webpack_exports__.Z = (RefAutoComplete);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 49127:
|
|
/*!*********************************************************************!*\
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/badge/index.js + 5 modules ***!
|
|
\*********************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ badge; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_classnames@2.5.1@classnames/index.js
|
|
var _classnames_2_5_1_classnames = __webpack_require__(92310);
|
|
var _classnames_2_5_1_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_5_1_classnames);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-motion@2.9.5@rc-motion/es/index.js + 13 modules
|
|
var es = __webpack_require__(77900);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/colors.js
|
|
var colors = __webpack_require__(36785);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/reactNode.js
|
|
var reactNode = __webpack_require__(92343);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js
|
|
var context = __webpack_require__(36355);
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_cssinjs@1.23.0@@ant-design/cssinjs/es/index.js + 39 modules
|
|
var cssinjs_es = __webpack_require__(93083);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/style/index.js
|
|
var style = __webpack_require__(17313);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/genPresetColor.js
|
|
var genPresetColor = __webpack_require__(45157);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/statistic.js
|
|
var statistic = __webpack_require__(37613);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/genComponentStyleHook.js
|
|
var genComponentStyleHook = __webpack_require__(83116);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/badge/style/index.js
|
|
|
|
|
|
|
|
const antStatusProcessing = new cssinjs_es.Keyframes('antStatusProcessing', {
|
|
'0%': {
|
|
transform: 'scale(0.8)',
|
|
opacity: 0.5
|
|
},
|
|
'100%': {
|
|
transform: 'scale(2.4)',
|
|
opacity: 0
|
|
}
|
|
});
|
|
const antZoomBadgeIn = new cssinjs_es.Keyframes('antZoomBadgeIn', {
|
|
'0%': {
|
|
transform: 'scale(0) translate(50%, -50%)',
|
|
opacity: 0
|
|
},
|
|
'100%': {
|
|
transform: 'scale(1) translate(50%, -50%)'
|
|
}
|
|
});
|
|
const antZoomBadgeOut = new cssinjs_es.Keyframes('antZoomBadgeOut', {
|
|
'0%': {
|
|
transform: 'scale(1) translate(50%, -50%)'
|
|
},
|
|
'100%': {
|
|
transform: 'scale(0) translate(50%, -50%)',
|
|
opacity: 0
|
|
}
|
|
});
|
|
const antNoWrapperZoomBadgeIn = new cssinjs_es.Keyframes('antNoWrapperZoomBadgeIn', {
|
|
'0%': {
|
|
transform: 'scale(0)',
|
|
opacity: 0
|
|
},
|
|
'100%': {
|
|
transform: 'scale(1)'
|
|
}
|
|
});
|
|
const antNoWrapperZoomBadgeOut = new cssinjs_es.Keyframes('antNoWrapperZoomBadgeOut', {
|
|
'0%': {
|
|
transform: 'scale(1)'
|
|
},
|
|
'100%': {
|
|
transform: 'scale(0)',
|
|
opacity: 0
|
|
}
|
|
});
|
|
const antBadgeLoadingCircle = new cssinjs_es.Keyframes('antBadgeLoadingCircle', {
|
|
'0%': {
|
|
transformOrigin: '50%'
|
|
},
|
|
'100%': {
|
|
transform: 'translate(50%, -50%) rotate(360deg)',
|
|
transformOrigin: '50%'
|
|
}
|
|
});
|
|
const genSharedBadgeStyle = token => {
|
|
const {
|
|
componentCls,
|
|
iconCls,
|
|
antCls,
|
|
badgeShadowSize,
|
|
motionDurationSlow,
|
|
textFontSize,
|
|
textFontSizeSM,
|
|
statusSize,
|
|
dotSize,
|
|
textFontWeight,
|
|
indicatorHeight,
|
|
indicatorHeightSM,
|
|
marginXS
|
|
} = token;
|
|
const numberPrefixCls = `${antCls}-scroll-number`;
|
|
const colorPreset = (0,genPresetColor/* default */.Z)(token, (colorKey, _ref) => {
|
|
let {
|
|
darkColor
|
|
} = _ref;
|
|
return {
|
|
[`&${componentCls} ${componentCls}-color-${colorKey}`]: {
|
|
background: darkColor,
|
|
[`&:not(${componentCls}-count)`]: {
|
|
color: darkColor
|
|
}
|
|
}
|
|
};
|
|
});
|
|
return {
|
|
[componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, (0,style/* resetComponent */.Wf)(token)), {
|
|
position: 'relative',
|
|
display: 'inline-block',
|
|
width: 'fit-content',
|
|
lineHeight: 1,
|
|
[`${componentCls}-count`]: {
|
|
zIndex: token.indicatorZIndex,
|
|
minWidth: indicatorHeight,
|
|
height: indicatorHeight,
|
|
color: token.badgeTextColor,
|
|
fontWeight: textFontWeight,
|
|
fontSize: textFontSize,
|
|
lineHeight: `${indicatorHeight}px`,
|
|
whiteSpace: 'nowrap',
|
|
textAlign: 'center',
|
|
background: token.badgeColor,
|
|
borderRadius: indicatorHeight / 2,
|
|
boxShadow: `0 0 0 ${badgeShadowSize}px ${token.badgeShadowColor}`,
|
|
transition: `background ${token.motionDurationMid}`,
|
|
a: {
|
|
color: token.badgeTextColor
|
|
},
|
|
'a:hover': {
|
|
color: token.badgeTextColor
|
|
},
|
|
'a:hover &': {
|
|
background: token.badgeColorHover
|
|
}
|
|
},
|
|
[`${componentCls}-count-sm`]: {
|
|
minWidth: indicatorHeightSM,
|
|
height: indicatorHeightSM,
|
|
fontSize: textFontSizeSM,
|
|
lineHeight: `${indicatorHeightSM}px`,
|
|
borderRadius: indicatorHeightSM / 2
|
|
},
|
|
[`${componentCls}-multiple-words`]: {
|
|
padding: `0 ${token.paddingXS}px`,
|
|
bdi: {
|
|
unicodeBidi: 'plaintext'
|
|
}
|
|
},
|
|
[`${componentCls}-dot`]: {
|
|
zIndex: token.indicatorZIndex,
|
|
width: dotSize,
|
|
minWidth: dotSize,
|
|
height: dotSize,
|
|
background: token.badgeColor,
|
|
borderRadius: '100%',
|
|
boxShadow: `0 0 0 ${badgeShadowSize}px ${token.badgeShadowColor}`
|
|
},
|
|
[`${componentCls}-dot${numberPrefixCls}`]: {
|
|
transition: `background ${motionDurationSlow}`
|
|
},
|
|
[`${componentCls}-count, ${componentCls}-dot, ${numberPrefixCls}-custom-component`]: {
|
|
position: 'absolute',
|
|
top: 0,
|
|
insetInlineEnd: 0,
|
|
transform: 'translate(50%, -50%)',
|
|
transformOrigin: '100% 0%',
|
|
[`&${iconCls}-spin`]: {
|
|
animationName: antBadgeLoadingCircle,
|
|
animationDuration: '1s',
|
|
animationIterationCount: 'infinite',
|
|
animationTimingFunction: 'linear'
|
|
}
|
|
},
|
|
[`&${componentCls}-status`]: {
|
|
lineHeight: 'inherit',
|
|
verticalAlign: 'baseline',
|
|
[`${componentCls}-status-dot`]: {
|
|
position: 'relative',
|
|
top: -1,
|
|
display: 'inline-block',
|
|
width: statusSize,
|
|
height: statusSize,
|
|
verticalAlign: 'middle',
|
|
borderRadius: '50%'
|
|
},
|
|
[`${componentCls}-status-success`]: {
|
|
backgroundColor: token.colorSuccess
|
|
},
|
|
[`${componentCls}-status-processing`]: {
|
|
overflow: 'visible',
|
|
color: token.colorPrimary,
|
|
backgroundColor: token.colorPrimary,
|
|
'&::after': {
|
|
position: 'absolute',
|
|
top: 0,
|
|
insetInlineStart: 0,
|
|
width: '100%',
|
|
height: '100%',
|
|
borderWidth: badgeShadowSize,
|
|
borderStyle: 'solid',
|
|
borderColor: 'inherit',
|
|
borderRadius: '50%',
|
|
animationName: antStatusProcessing,
|
|
animationDuration: token.badgeProcessingDuration,
|
|
animationIterationCount: 'infinite',
|
|
animationTimingFunction: 'ease-in-out',
|
|
content: '""'
|
|
}
|
|
},
|
|
[`${componentCls}-status-default`]: {
|
|
backgroundColor: token.colorTextPlaceholder
|
|
},
|
|
[`${componentCls}-status-error`]: {
|
|
backgroundColor: token.colorError
|
|
},
|
|
[`${componentCls}-status-warning`]: {
|
|
backgroundColor: token.colorWarning
|
|
},
|
|
[`${componentCls}-status-text`]: {
|
|
marginInlineStart: marginXS,
|
|
color: token.colorText,
|
|
fontSize: token.fontSize
|
|
}
|
|
}
|
|
}), colorPreset), {
|
|
[`${componentCls}-zoom-appear, ${componentCls}-zoom-enter`]: {
|
|
animationName: antZoomBadgeIn,
|
|
animationDuration: token.motionDurationSlow,
|
|
animationTimingFunction: token.motionEaseOutBack,
|
|
animationFillMode: 'both'
|
|
},
|
|
[`${componentCls}-zoom-leave`]: {
|
|
animationName: antZoomBadgeOut,
|
|
animationDuration: token.motionDurationSlow,
|
|
animationTimingFunction: token.motionEaseOutBack,
|
|
animationFillMode: 'both'
|
|
},
|
|
[`&${componentCls}-not-a-wrapper`]: {
|
|
[`${componentCls}-zoom-appear, ${componentCls}-zoom-enter`]: {
|
|
animationName: antNoWrapperZoomBadgeIn,
|
|
animationDuration: token.motionDurationSlow,
|
|
animationTimingFunction: token.motionEaseOutBack
|
|
},
|
|
[`${componentCls}-zoom-leave`]: {
|
|
animationName: antNoWrapperZoomBadgeOut,
|
|
animationDuration: token.motionDurationSlow,
|
|
animationTimingFunction: token.motionEaseOutBack
|
|
},
|
|
[`&:not(${componentCls}-status)`]: {
|
|
verticalAlign: 'middle'
|
|
},
|
|
[`${numberPrefixCls}-custom-component, ${componentCls}-count`]: {
|
|
transform: 'none'
|
|
},
|
|
[`${numberPrefixCls}-custom-component, ${numberPrefixCls}`]: {
|
|
position: 'relative',
|
|
top: 'auto',
|
|
display: 'block',
|
|
transformOrigin: '50% 50%'
|
|
}
|
|
},
|
|
[`${numberPrefixCls}`]: {
|
|
overflow: 'hidden',
|
|
[`${numberPrefixCls}-only`]: {
|
|
position: 'relative',
|
|
display: 'inline-block',
|
|
height: indicatorHeight,
|
|
transition: `all ${token.motionDurationSlow} ${token.motionEaseOutBack}`,
|
|
WebkitTransformStyle: 'preserve-3d',
|
|
WebkitBackfaceVisibility: 'hidden',
|
|
[`> p${numberPrefixCls}-only-unit`]: {
|
|
height: indicatorHeight,
|
|
margin: 0,
|
|
WebkitTransformStyle: 'preserve-3d',
|
|
WebkitBackfaceVisibility: 'hidden'
|
|
}
|
|
},
|
|
[`${numberPrefixCls}-symbol`]: {
|
|
verticalAlign: 'top'
|
|
}
|
|
},
|
|
// ====================== RTL =======================
|
|
'&-rtl': {
|
|
direction: 'rtl',
|
|
[`${componentCls}-count, ${componentCls}-dot, ${numberPrefixCls}-custom-component`]: {
|
|
transform: 'translate(-50%, -50%)'
|
|
}
|
|
}
|
|
})
|
|
};
|
|
};
|
|
// ============================== Export ==============================
|
|
const prepareToken = token => {
|
|
const {
|
|
fontSize,
|
|
lineHeight,
|
|
lineWidth,
|
|
marginXS,
|
|
colorBorderBg
|
|
} = token;
|
|
const badgeFontHeight = Math.round(fontSize * lineHeight);
|
|
const badgeShadowSize = lineWidth;
|
|
const badgeTextColor = token.colorBgContainer;
|
|
const badgeColor = token.colorError;
|
|
const badgeColorHover = token.colorErrorHover;
|
|
const badgeToken = (0,statistic/* merge */.TS)(token, {
|
|
badgeFontHeight,
|
|
badgeShadowSize,
|
|
badgeTextColor,
|
|
badgeColor,
|
|
badgeColorHover,
|
|
badgeShadowColor: colorBorderBg,
|
|
badgeProcessingDuration: '1.2s',
|
|
badgeRibbonOffset: marginXS,
|
|
// Follow token just by Design. Not related with token
|
|
badgeRibbonCornerTransform: 'scaleY(0.75)',
|
|
badgeRibbonCornerFilter: `brightness(75%)`
|
|
});
|
|
return badgeToken;
|
|
};
|
|
const prepareComponentToken = token => {
|
|
const {
|
|
fontSize,
|
|
lineHeight,
|
|
fontSizeSM,
|
|
lineWidth
|
|
} = token;
|
|
return {
|
|
indicatorZIndex: 'auto',
|
|
indicatorHeight: Math.round(fontSize * lineHeight) - 2 * lineWidth,
|
|
indicatorHeightSM: fontSize,
|
|
dotSize: fontSizeSM / 2,
|
|
textFontSize: fontSizeSM,
|
|
textFontSizeSM: fontSizeSM,
|
|
textFontWeight: 'normal',
|
|
statusSize: fontSizeSM / 2
|
|
};
|
|
};
|
|
/* harmony default export */ var badge_style = ((0,genComponentStyleHook/* default */.Z)('Badge', token => {
|
|
const badgeToken = prepareToken(token);
|
|
return [genSharedBadgeStyle(badgeToken)];
|
|
}, prepareComponentToken));
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/badge/style/ribbon.js
|
|
|
|
|
|
|
|
// ============================== Ribbon ==============================
|
|
const genRibbonStyle = token => {
|
|
const {
|
|
antCls,
|
|
badgeFontHeight,
|
|
marginXS,
|
|
badgeRibbonOffset
|
|
} = token;
|
|
const ribbonPrefixCls = `${antCls}-ribbon`;
|
|
const ribbonWrapperPrefixCls = `${antCls}-ribbon-wrapper`;
|
|
const statusRibbonPreset = (0,genPresetColor/* default */.Z)(token, (colorKey, _ref) => {
|
|
let {
|
|
darkColor
|
|
} = _ref;
|
|
return {
|
|
[`&${ribbonPrefixCls}-color-${colorKey}`]: {
|
|
background: darkColor,
|
|
color: darkColor
|
|
}
|
|
};
|
|
});
|
|
return {
|
|
[`${ribbonWrapperPrefixCls}`]: {
|
|
position: 'relative'
|
|
},
|
|
[`${ribbonPrefixCls}`]: Object.assign(Object.assign(Object.assign(Object.assign({}, (0,style/* resetComponent */.Wf)(token)), {
|
|
position: 'absolute',
|
|
top: marginXS,
|
|
padding: `0 ${token.paddingXS}px`,
|
|
color: token.colorPrimary,
|
|
lineHeight: `${badgeFontHeight}px`,
|
|
whiteSpace: 'nowrap',
|
|
backgroundColor: token.colorPrimary,
|
|
borderRadius: token.borderRadiusSM,
|
|
[`${ribbonPrefixCls}-text`]: {
|
|
color: token.colorTextLightSolid
|
|
},
|
|
[`${ribbonPrefixCls}-corner`]: {
|
|
position: 'absolute',
|
|
top: '100%',
|
|
width: badgeRibbonOffset,
|
|
height: badgeRibbonOffset,
|
|
color: 'currentcolor',
|
|
border: `${badgeRibbonOffset / 2}px solid`,
|
|
transform: token.badgeRibbonCornerTransform,
|
|
transformOrigin: 'top',
|
|
filter: token.badgeRibbonCornerFilter
|
|
}
|
|
}), statusRibbonPreset), {
|
|
[`&${ribbonPrefixCls}-placement-end`]: {
|
|
insetInlineEnd: -badgeRibbonOffset,
|
|
borderEndEndRadius: 0,
|
|
[`${ribbonPrefixCls}-corner`]: {
|
|
insetInlineEnd: 0,
|
|
borderInlineEndColor: 'transparent',
|
|
borderBlockEndColor: 'transparent'
|
|
}
|
|
},
|
|
[`&${ribbonPrefixCls}-placement-start`]: {
|
|
insetInlineStart: -badgeRibbonOffset,
|
|
borderEndStartRadius: 0,
|
|
[`${ribbonPrefixCls}-corner`]: {
|
|
insetInlineStart: 0,
|
|
borderBlockEndColor: 'transparent',
|
|
borderInlineStartColor: 'transparent'
|
|
}
|
|
},
|
|
// ====================== RTL =======================
|
|
'&-rtl': {
|
|
direction: 'rtl'
|
|
}
|
|
})
|
|
};
|
|
};
|
|
// ============================== Export ==============================
|
|
/* harmony default export */ var ribbon = ((0,genComponentStyleHook/* default */.Z)(['Badge', 'Ribbon'], token => {
|
|
const badgeToken = prepareToken(token);
|
|
return [genRibbonStyle(badgeToken)];
|
|
}, prepareComponentToken));
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/badge/Ribbon.js
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const Ribbon = props => {
|
|
const {
|
|
className,
|
|
prefixCls: customizePrefixCls,
|
|
style,
|
|
color,
|
|
children,
|
|
text,
|
|
placement = 'end',
|
|
rootClassName
|
|
} = props;
|
|
const {
|
|
getPrefixCls,
|
|
direction
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
const prefixCls = getPrefixCls('ribbon', customizePrefixCls);
|
|
const colorInPreset = (0,colors/* isPresetColor */.o2)(color, false);
|
|
const ribbonCls = _classnames_2_5_1_classnames_default()(prefixCls, `${prefixCls}-placement-${placement}`, {
|
|
[`${prefixCls}-rtl`]: direction === 'rtl',
|
|
[`${prefixCls}-color-${color}`]: colorInPreset
|
|
}, className);
|
|
const [wrapSSR, hashId] = ribbon(prefixCls);
|
|
const colorStyle = {};
|
|
const cornerColorStyle = {};
|
|
if (color && !colorInPreset) {
|
|
colorStyle.background = color;
|
|
cornerColorStyle.color = color;
|
|
}
|
|
return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement("div", {
|
|
className: _classnames_2_5_1_classnames_default()(`${prefixCls}-wrapper`, rootClassName, hashId)
|
|
}, children, /*#__PURE__*/_react_17_0_2_react.createElement("div", {
|
|
className: _classnames_2_5_1_classnames_default()(ribbonCls, hashId),
|
|
style: Object.assign(Object.assign({}, colorStyle), style)
|
|
}, /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
className: `${prefixCls}-text`
|
|
}, text), /*#__PURE__*/_react_17_0_2_react.createElement("div", {
|
|
className: `${prefixCls}-corner`,
|
|
style: cornerColorStyle
|
|
}))));
|
|
};
|
|
if (false) {}
|
|
/* harmony default export */ var badge_Ribbon = (Ribbon);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/badge/SingleNumber.js
|
|
"use client";
|
|
|
|
|
|
|
|
function UnitNumber(_ref) {
|
|
let {
|
|
prefixCls,
|
|
value,
|
|
current,
|
|
offset = 0
|
|
} = _ref;
|
|
let style;
|
|
if (offset) {
|
|
style = {
|
|
position: 'absolute',
|
|
top: `${offset}00%`,
|
|
left: 0
|
|
};
|
|
}
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
style: style,
|
|
className: _classnames_2_5_1_classnames_default()(`${prefixCls}-only-unit`, {
|
|
current
|
|
})
|
|
}, value);
|
|
}
|
|
function getOffset(start, end, unit) {
|
|
let index = start;
|
|
let offset = 0;
|
|
while ((index + 10) % 10 !== end) {
|
|
index += unit;
|
|
offset += unit;
|
|
}
|
|
return offset;
|
|
}
|
|
function SingleNumber(props) {
|
|
const {
|
|
prefixCls,
|
|
count: originCount,
|
|
value: originValue
|
|
} = props;
|
|
const value = Number(originValue);
|
|
const count = Math.abs(originCount);
|
|
const [prevValue, setPrevValue] = _react_17_0_2_react.useState(value);
|
|
const [prevCount, setPrevCount] = _react_17_0_2_react.useState(count);
|
|
// ============================= Events =============================
|
|
const onTransitionEnd = () => {
|
|
setPrevValue(value);
|
|
setPrevCount(count);
|
|
};
|
|
// Fallback if transition event not support
|
|
_react_17_0_2_react.useEffect(() => {
|
|
const timeout = setTimeout(() => {
|
|
onTransitionEnd();
|
|
}, 1000);
|
|
return () => {
|
|
clearTimeout(timeout);
|
|
};
|
|
}, [value]);
|
|
// ============================= Render =============================
|
|
// Render unit list
|
|
let unitNodes;
|
|
let offsetStyle;
|
|
if (prevValue === value || Number.isNaN(value) || Number.isNaN(prevValue)) {
|
|
// Nothing to change
|
|
unitNodes = [/*#__PURE__*/_react_17_0_2_react.createElement(UnitNumber, Object.assign({}, props, {
|
|
key: value,
|
|
current: true
|
|
}))];
|
|
offsetStyle = {
|
|
transition: 'none'
|
|
};
|
|
} else {
|
|
unitNodes = [];
|
|
// Fill basic number units
|
|
const end = value + 10;
|
|
const unitNumberList = [];
|
|
for (let index = value; index <= end; index += 1) {
|
|
unitNumberList.push(index);
|
|
}
|
|
// Fill with number unit nodes
|
|
const prevIndex = unitNumberList.findIndex(n => n % 10 === prevValue);
|
|
unitNodes = unitNumberList.map((n, index) => {
|
|
const singleUnit = n % 10;
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(UnitNumber, Object.assign({}, props, {
|
|
key: n,
|
|
value: singleUnit,
|
|
offset: index - prevIndex,
|
|
current: index === prevIndex
|
|
}));
|
|
});
|
|
// Calculate container offset value
|
|
const unit = prevCount < count ? 1 : -1;
|
|
offsetStyle = {
|
|
transform: `translateY(${-getOffset(prevValue, value, unit)}00%)`
|
|
};
|
|
}
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
className: `${prefixCls}-only`,
|
|
style: offsetStyle,
|
|
onTransitionEnd: onTransitionEnd
|
|
}, unitNodes);
|
|
}
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/badge/ScrollNumber.js
|
|
"use client";
|
|
|
|
var __rest = undefined && undefined.__rest || function (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;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
const ScrollNumber = /*#__PURE__*/_react_17_0_2_react.forwardRef((props, ref) => {
|
|
const {
|
|
prefixCls: customizePrefixCls,
|
|
count,
|
|
className,
|
|
motionClassName,
|
|
style,
|
|
title,
|
|
show,
|
|
component: Component = 'sup',
|
|
children
|
|
} = props,
|
|
restProps = __rest(props, ["prefixCls", "count", "className", "motionClassName", "style", "title", "show", "component", "children"]);
|
|
const {
|
|
getPrefixCls
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
const prefixCls = getPrefixCls('scroll-number', customizePrefixCls);
|
|
// ============================ Render ============================
|
|
const newProps = Object.assign(Object.assign({}, restProps), {
|
|
'data-show': show,
|
|
style,
|
|
className: _classnames_2_5_1_classnames_default()(prefixCls, className, motionClassName),
|
|
title: title
|
|
});
|
|
// Only integer need motion
|
|
let numberNodes = count;
|
|
if (count && Number(count) % 1 === 0) {
|
|
const numberList = String(count).split('');
|
|
numberNodes = /*#__PURE__*/_react_17_0_2_react.createElement("bdi", null, numberList.map((num, i) => /*#__PURE__*/_react_17_0_2_react.createElement(SingleNumber, {
|
|
prefixCls: prefixCls,
|
|
count: Number(count),
|
|
value: num,
|
|
// eslint-disable-next-line react/no-array-index-key
|
|
key: numberList.length - i
|
|
})));
|
|
}
|
|
// allow specify the border
|
|
// mock border-color by box-shadow for compatible with old usage:
|
|
// <Badge count={4} style={{ backgroundColor: '#fff', color: '#999', borderColor: '#d9d9d9' }} />
|
|
if (style && style.borderColor) {
|
|
newProps.style = Object.assign(Object.assign({}, style), {
|
|
boxShadow: `0 0 0 1px ${style.borderColor} inset`
|
|
});
|
|
}
|
|
if (children) {
|
|
return (0,reactNode/* cloneElement */.Tm)(children, oriProps => ({
|
|
className: _classnames_2_5_1_classnames_default()(`${prefixCls}-custom-component`, oriProps === null || oriProps === void 0 ? void 0 : oriProps.className, motionClassName)
|
|
}));
|
|
}
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(Component, Object.assign({}, newProps, {
|
|
ref: ref
|
|
}), numberNodes);
|
|
});
|
|
/* harmony default export */ var badge_ScrollNumber = (ScrollNumber);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/badge/index.js
|
|
"use client";
|
|
|
|
var badge_rest = undefined && undefined.__rest || function (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;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const InternalBadge = (props, ref) => {
|
|
var _a, _b, _c, _d, _e;
|
|
const {
|
|
prefixCls: customizePrefixCls,
|
|
scrollNumberPrefixCls: customizeScrollNumberPrefixCls,
|
|
children,
|
|
status,
|
|
text,
|
|
color,
|
|
count = null,
|
|
overflowCount = 99,
|
|
dot = false,
|
|
size = 'default',
|
|
title,
|
|
offset,
|
|
style,
|
|
className,
|
|
rootClassName,
|
|
classNames,
|
|
styles,
|
|
showZero = false
|
|
} = props,
|
|
restProps = badge_rest(props, ["prefixCls", "scrollNumberPrefixCls", "children", "status", "text", "color", "count", "overflowCount", "dot", "size", "title", "offset", "style", "className", "rootClassName", "classNames", "styles", "showZero"]);
|
|
const {
|
|
getPrefixCls,
|
|
direction,
|
|
badge
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
const prefixCls = getPrefixCls('badge', customizePrefixCls);
|
|
// Style
|
|
const [wrapSSR, hashId] = badge_style(prefixCls);
|
|
// ================================ Misc ================================
|
|
const numberedDisplayCount = count > overflowCount ? `${overflowCount}+` : count;
|
|
const isZero = numberedDisplayCount === '0' || numberedDisplayCount === 0;
|
|
const ignoreCount = count === null || isZero && !showZero;
|
|
const hasStatus = (status !== null && status !== undefined || color !== null && color !== undefined) && ignoreCount;
|
|
const showAsDot = dot && !isZero;
|
|
const mergedCount = showAsDot ? '' : numberedDisplayCount;
|
|
const isHidden = (0,_react_17_0_2_react.useMemo)(() => {
|
|
const isEmpty = mergedCount === null || mergedCount === undefined || mergedCount === '';
|
|
return (isEmpty || isZero && !showZero) && !showAsDot;
|
|
}, [mergedCount, isZero, showZero, showAsDot]);
|
|
// Count should be cache in case hidden change it
|
|
const countRef = (0,_react_17_0_2_react.useRef)(count);
|
|
if (!isHidden) {
|
|
countRef.current = count;
|
|
}
|
|
const livingCount = countRef.current;
|
|
// We need cache count since remove motion should not change count display
|
|
const displayCountRef = (0,_react_17_0_2_react.useRef)(mergedCount);
|
|
if (!isHidden) {
|
|
displayCountRef.current = mergedCount;
|
|
}
|
|
const displayCount = displayCountRef.current;
|
|
// We will cache the dot status to avoid shaking on leaved motion
|
|
const isDotRef = (0,_react_17_0_2_react.useRef)(showAsDot);
|
|
if (!isHidden) {
|
|
isDotRef.current = showAsDot;
|
|
}
|
|
// =============================== Styles ===============================
|
|
const mergedStyle = (0,_react_17_0_2_react.useMemo)(() => {
|
|
if (!offset) {
|
|
return Object.assign(Object.assign({}, badge === null || badge === void 0 ? void 0 : badge.style), style);
|
|
}
|
|
const offsetStyle = {
|
|
marginTop: offset[1]
|
|
};
|
|
if (direction === 'rtl') {
|
|
offsetStyle.left = parseInt(offset[0], 10);
|
|
} else {
|
|
offsetStyle.right = -parseInt(offset[0], 10);
|
|
}
|
|
return Object.assign(Object.assign(Object.assign({}, offsetStyle), badge === null || badge === void 0 ? void 0 : badge.style), style);
|
|
}, [direction, offset, style, badge === null || badge === void 0 ? void 0 : badge.style]);
|
|
// =============================== Render ===============================
|
|
// >>> Title
|
|
const titleNode = title !== null && title !== void 0 ? title : typeof livingCount === 'string' || typeof livingCount === 'number' ? livingCount : undefined;
|
|
// >>> Status Text
|
|
const statusTextNode = isHidden || !text ? null : /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
className: `${prefixCls}-status-text`
|
|
}, text);
|
|
// >>> Display Component
|
|
const displayNode = !livingCount || typeof livingCount !== 'object' ? undefined : (0,reactNode/* cloneElement */.Tm)(livingCount, oriProps => ({
|
|
style: Object.assign(Object.assign({}, mergedStyle), oriProps.style)
|
|
}));
|
|
// InternalColor
|
|
const isInternalColor = (0,colors/* isPresetColor */.o2)(color, false);
|
|
// Shared styles
|
|
const statusCls = _classnames_2_5_1_classnames_default()(classNames === null || classNames === void 0 ? void 0 : classNames.indicator, (_a = badge === null || badge === void 0 ? void 0 : badge.classNames) === null || _a === void 0 ? void 0 : _a.indicator, {
|
|
[`${prefixCls}-status-dot`]: hasStatus,
|
|
[`${prefixCls}-status-${status}`]: !!status,
|
|
[`${prefixCls}-color-${color}`]: isInternalColor
|
|
});
|
|
const statusStyle = {};
|
|
if (color && !isInternalColor) {
|
|
statusStyle.color = color;
|
|
statusStyle.background = color;
|
|
}
|
|
const badgeClassName = _classnames_2_5_1_classnames_default()(prefixCls, {
|
|
[`${prefixCls}-status`]: hasStatus,
|
|
[`${prefixCls}-not-a-wrapper`]: !children,
|
|
[`${prefixCls}-rtl`]: direction === 'rtl'
|
|
}, className, rootClassName, badge === null || badge === void 0 ? void 0 : badge.className, (_b = badge === null || badge === void 0 ? void 0 : badge.classNames) === null || _b === void 0 ? void 0 : _b.root, classNames === null || classNames === void 0 ? void 0 : classNames.root, hashId);
|
|
// <Badge status="success" />
|
|
if (!children && hasStatus) {
|
|
const statusTextColor = mergedStyle.color;
|
|
return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement("span", Object.assign({}, restProps, {
|
|
className: badgeClassName,
|
|
style: Object.assign(Object.assign(Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.root), (_c = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _c === void 0 ? void 0 : _c.root), mergedStyle)
|
|
}), /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
className: statusCls,
|
|
style: Object.assign(Object.assign(Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.indicator), (_d = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _d === void 0 ? void 0 : _d.indicator), statusStyle)
|
|
}), text && /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
style: {
|
|
color: statusTextColor
|
|
},
|
|
className: `${prefixCls}-status-text`
|
|
}, text)));
|
|
}
|
|
return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement("span", Object.assign({
|
|
ref: ref
|
|
}, restProps, {
|
|
className: badgeClassName,
|
|
style: Object.assign(Object.assign({}, (_e = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _e === void 0 ? void 0 : _e.root), styles === null || styles === void 0 ? void 0 : styles.root)
|
|
}), children, /*#__PURE__*/_react_17_0_2_react.createElement(es["default"], {
|
|
visible: !isHidden,
|
|
motionName: `${prefixCls}-zoom`,
|
|
motionAppear: false,
|
|
motionDeadline: 1000
|
|
}, _ref => {
|
|
let {
|
|
className: motionClassName,
|
|
ref: scrollNumberRef
|
|
} = _ref;
|
|
var _a, _b;
|
|
const scrollNumberPrefixCls = getPrefixCls('scroll-number', customizeScrollNumberPrefixCls);
|
|
const isDot = isDotRef.current;
|
|
const scrollNumberCls = _classnames_2_5_1_classnames_default()(classNames === null || classNames === void 0 ? void 0 : classNames.indicator, (_a = badge === null || badge === void 0 ? void 0 : badge.classNames) === null || _a === void 0 ? void 0 : _a.indicator, {
|
|
[`${prefixCls}-dot`]: isDot,
|
|
[`${prefixCls}-count`]: !isDot,
|
|
[`${prefixCls}-count-sm`]: size === 'small',
|
|
[`${prefixCls}-multiple-words`]: !isDot && displayCount && displayCount.toString().length > 1,
|
|
[`${prefixCls}-status-${status}`]: !!status,
|
|
[`${prefixCls}-color-${color}`]: isInternalColor
|
|
});
|
|
let scrollNumberStyle = Object.assign(Object.assign(Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.indicator), (_b = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _b === void 0 ? void 0 : _b.indicator), mergedStyle);
|
|
if (color && !isInternalColor) {
|
|
scrollNumberStyle = scrollNumberStyle || {};
|
|
scrollNumberStyle.background = color;
|
|
}
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(badge_ScrollNumber, {
|
|
prefixCls: scrollNumberPrefixCls,
|
|
show: !isHidden,
|
|
motionClassName: motionClassName,
|
|
className: scrollNumberCls,
|
|
count: displayCount,
|
|
title: titleNode,
|
|
style: scrollNumberStyle,
|
|
key: "scrollNumber",
|
|
ref: scrollNumberRef
|
|
}, displayNode);
|
|
}), statusTextNode));
|
|
};
|
|
const Badge = /*#__PURE__*/_react_17_0_2_react.forwardRef(InternalBadge);
|
|
Badge.Ribbon = badge_Ribbon;
|
|
if (false) {}
|
|
/* harmony default export */ var badge = (Badge);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 36381:
|
|
/*!************************************************************************!*\
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/collapse/index.js + 8 modules ***!
|
|
\************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ es_collapse; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/RightOutlined.js + 1 modules
|
|
var RightOutlined = __webpack_require__(38819);
|
|
// EXTERNAL MODULE: ./node_modules/_classnames@2.5.1@classnames/index.js
|
|
var _classnames_2_5_1_classnames = __webpack_require__(92310);
|
|
var _classnames_2_5_1_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_5_1_classnames);
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.0@@babel/runtime/helpers/esm/extends.js
|
|
var esm_extends = __webpack_require__(72308);
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.0@@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
|
|
var toConsumableArray = __webpack_require__(80702);
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.0@@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
|
|
var slicedToArray = __webpack_require__(52487);
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.0@@babel/runtime/helpers/esm/typeof.js
|
|
var esm_typeof = __webpack_require__(62853);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/hooks/useMergedState.js
|
|
var useMergedState = __webpack_require__(18929);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/warning.js
|
|
var warning = __webpack_require__(48736);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.0@@babel/runtime/helpers/esm/objectWithoutProperties.js
|
|
var objectWithoutProperties = __webpack_require__(74416);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/Children/toArray.js
|
|
var toArray = __webpack_require__(11592);
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.0@@babel/runtime/helpers/esm/defineProperty.js
|
|
var defineProperty = __webpack_require__(49618);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-motion@2.9.5@rc-motion/es/index.js + 13 modules
|
|
var es = __webpack_require__(77900);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/KeyCode.js
|
|
var KeyCode = __webpack_require__(10228);
|
|
;// CONCATENATED MODULE: ./node_modules/_rc-collapse@3.7.3@rc-collapse/es/PanelContent.js
|
|
|
|
|
|
|
|
|
|
var PanelContent = /*#__PURE__*/_react_17_0_2_react.forwardRef(function (props, ref) {
|
|
var prefixCls = props.prefixCls,
|
|
forceRender = props.forceRender,
|
|
className = props.className,
|
|
style = props.style,
|
|
children = props.children,
|
|
isActive = props.isActive,
|
|
role = props.role;
|
|
var _React$useState = _react_17_0_2_react.useState(isActive || forceRender),
|
|
_React$useState2 = (0,slicedToArray/* default */.Z)(_React$useState, 2),
|
|
rendered = _React$useState2[0],
|
|
setRendered = _React$useState2[1];
|
|
_react_17_0_2_react.useEffect(function () {
|
|
if (forceRender || isActive) {
|
|
setRendered(true);
|
|
}
|
|
}, [forceRender, isActive]);
|
|
if (!rendered) {
|
|
return null;
|
|
}
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement("div", {
|
|
ref: ref,
|
|
className: _classnames_2_5_1_classnames_default()("".concat(prefixCls, "-content"), (0,defineProperty/* default */.Z)((0,defineProperty/* default */.Z)({}, "".concat(prefixCls, "-content-active"), isActive), "".concat(prefixCls, "-content-inactive"), !isActive), className),
|
|
style: style,
|
|
role: role
|
|
}, /*#__PURE__*/_react_17_0_2_react.createElement("div", {
|
|
className: "".concat(prefixCls, "-content-box")
|
|
}, children));
|
|
});
|
|
PanelContent.displayName = 'PanelContent';
|
|
/* harmony default export */ var es_PanelContent = (PanelContent);
|
|
;// CONCATENATED MODULE: ./node_modules/_rc-collapse@3.7.3@rc-collapse/es/Panel.js
|
|
|
|
|
|
|
|
var _excluded = ["showArrow", "headerClass", "isActive", "onItemClick", "forceRender", "className", "prefixCls", "collapsible", "accordion", "panelKey", "extra", "header", "expandIcon", "openMotion", "destroyInactivePanel", "children"];
|
|
|
|
|
|
|
|
|
|
|
|
var CollapsePanel = /*#__PURE__*/_react_17_0_2_react.forwardRef(function (props, ref) {
|
|
var _props$showArrow = props.showArrow,
|
|
showArrow = _props$showArrow === void 0 ? true : _props$showArrow,
|
|
headerClass = props.headerClass,
|
|
isActive = props.isActive,
|
|
onItemClick = props.onItemClick,
|
|
forceRender = props.forceRender,
|
|
className = props.className,
|
|
prefixCls = props.prefixCls,
|
|
collapsible = props.collapsible,
|
|
accordion = props.accordion,
|
|
panelKey = props.panelKey,
|
|
extra = props.extra,
|
|
header = props.header,
|
|
expandIcon = props.expandIcon,
|
|
openMotion = props.openMotion,
|
|
destroyInactivePanel = props.destroyInactivePanel,
|
|
children = props.children,
|
|
resetProps = (0,objectWithoutProperties/* default */.Z)(props, _excluded);
|
|
var disabled = collapsible === 'disabled';
|
|
var collapsibleHeader = collapsible === 'header';
|
|
var collapsibleIcon = collapsible === 'icon';
|
|
var ifExtraExist = extra !== null && extra !== undefined && typeof extra !== 'boolean';
|
|
var handleItemClick = function handleItemClick() {
|
|
onItemClick === null || onItemClick === void 0 || onItemClick(panelKey);
|
|
};
|
|
var handleKeyDown = function handleKeyDown(e) {
|
|
if (e.key === 'Enter' || e.keyCode === KeyCode/* default */.Z.ENTER || e.which === KeyCode/* default */.Z.ENTER) {
|
|
handleItemClick();
|
|
}
|
|
};
|
|
|
|
// ======================== Icon ========================
|
|
var iconNode = typeof expandIcon === 'function' ? expandIcon(props) : /*#__PURE__*/_react_17_0_2_react.createElement("i", {
|
|
className: "arrow"
|
|
});
|
|
if (iconNode) {
|
|
iconNode = /*#__PURE__*/_react_17_0_2_react.createElement("div", {
|
|
className: "".concat(prefixCls, "-expand-icon"),
|
|
onClick: ['header', 'icon'].includes(collapsible) ? handleItemClick : undefined
|
|
}, iconNode);
|
|
}
|
|
var collapsePanelClassNames = _classnames_2_5_1_classnames_default()((0,defineProperty/* default */.Z)((0,defineProperty/* default */.Z)((0,defineProperty/* default */.Z)({}, "".concat(prefixCls, "-item"), true), "".concat(prefixCls, "-item-active"), isActive), "".concat(prefixCls, "-item-disabled"), disabled), className);
|
|
var headerClassName = _classnames_2_5_1_classnames_default()(headerClass, (0,defineProperty/* default */.Z)((0,defineProperty/* default */.Z)((0,defineProperty/* default */.Z)({}, "".concat(prefixCls, "-header"), true), "".concat(prefixCls, "-header-collapsible-only"), collapsibleHeader), "".concat(prefixCls, "-icon-collapsible-only"), collapsibleIcon));
|
|
|
|
// ======================== HeaderProps ========================
|
|
var headerProps = {
|
|
className: headerClassName,
|
|
'aria-expanded': isActive,
|
|
'aria-disabled': disabled,
|
|
onKeyDown: handleKeyDown
|
|
};
|
|
if (!collapsibleHeader && !collapsibleIcon) {
|
|
headerProps.onClick = handleItemClick;
|
|
headerProps.role = accordion ? 'tab' : 'button';
|
|
headerProps.tabIndex = disabled ? -1 : 0;
|
|
}
|
|
|
|
// ======================== Render ========================
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement("div", (0,esm_extends/* default */.Z)({}, resetProps, {
|
|
ref: ref,
|
|
className: collapsePanelClassNames
|
|
}), /*#__PURE__*/_react_17_0_2_react.createElement("div", headerProps, showArrow && iconNode, /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
className: "".concat(prefixCls, "-header-text"),
|
|
onClick: collapsible === 'header' ? handleItemClick : undefined
|
|
}, header), ifExtraExist && /*#__PURE__*/_react_17_0_2_react.createElement("div", {
|
|
className: "".concat(prefixCls, "-extra")
|
|
}, extra)), /*#__PURE__*/_react_17_0_2_react.createElement(es["default"], (0,esm_extends/* default */.Z)({
|
|
visible: isActive,
|
|
leavedClassName: "".concat(prefixCls, "-content-hidden")
|
|
}, openMotion, {
|
|
forceRender: forceRender,
|
|
removeOnLeave: destroyInactivePanel
|
|
}), function (_ref, motionRef) {
|
|
var motionClassName = _ref.className,
|
|
motionStyle = _ref.style;
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(es_PanelContent, {
|
|
ref: motionRef,
|
|
prefixCls: prefixCls,
|
|
className: motionClassName,
|
|
style: motionStyle,
|
|
isActive: isActive,
|
|
forceRender: forceRender,
|
|
role: accordion ? 'tabpanel' : void 0
|
|
}, children);
|
|
}));
|
|
});
|
|
/* harmony default export */ var Panel = (CollapsePanel);
|
|
;// CONCATENATED MODULE: ./node_modules/_rc-collapse@3.7.3@rc-collapse/es/hooks/useItems.js
|
|
|
|
|
|
var useItems_excluded = ["children", "label", "key", "collapsible", "onItemClick", "destroyInactivePanel"];
|
|
|
|
|
|
|
|
var convertItemsToNodes = function convertItemsToNodes(items, props) {
|
|
var prefixCls = props.prefixCls,
|
|
accordion = props.accordion,
|
|
collapsible = props.collapsible,
|
|
destroyInactivePanel = props.destroyInactivePanel,
|
|
onItemClick = props.onItemClick,
|
|
activeKey = props.activeKey,
|
|
openMotion = props.openMotion,
|
|
expandIcon = props.expandIcon;
|
|
return items.map(function (item, index) {
|
|
var children = item.children,
|
|
label = item.label,
|
|
rawKey = item.key,
|
|
rawCollapsible = item.collapsible,
|
|
rawOnItemClick = item.onItemClick,
|
|
rawDestroyInactivePanel = item.destroyInactivePanel,
|
|
restProps = (0,objectWithoutProperties/* default */.Z)(item, useItems_excluded);
|
|
|
|
// You may be puzzled why you want to convert them all into strings, me too.
|
|
// Maybe: https://github.com/react-component/collapse/blob/aac303a8b6ff30e35060b4f8fecde6f4556fcbe2/src/Collapse.tsx#L15
|
|
var key = String(rawKey !== null && rawKey !== void 0 ? rawKey : index);
|
|
var mergeCollapsible = rawCollapsible !== null && rawCollapsible !== void 0 ? rawCollapsible : collapsible;
|
|
var mergeDestroyInactivePanel = rawDestroyInactivePanel !== null && rawDestroyInactivePanel !== void 0 ? rawDestroyInactivePanel : destroyInactivePanel;
|
|
var handleItemClick = function handleItemClick(value) {
|
|
if (mergeCollapsible === 'disabled') return;
|
|
onItemClick(value);
|
|
rawOnItemClick === null || rawOnItemClick === void 0 || rawOnItemClick(value);
|
|
};
|
|
var isActive = false;
|
|
if (accordion) {
|
|
isActive = activeKey[0] === key;
|
|
} else {
|
|
isActive = activeKey.indexOf(key) > -1;
|
|
}
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(Panel, (0,esm_extends/* default */.Z)({}, restProps, {
|
|
prefixCls: prefixCls,
|
|
key: key,
|
|
panelKey: key,
|
|
isActive: isActive,
|
|
accordion: accordion,
|
|
openMotion: openMotion,
|
|
expandIcon: expandIcon,
|
|
header: label,
|
|
collapsible: mergeCollapsible,
|
|
onItemClick: handleItemClick,
|
|
destroyInactivePanel: mergeDestroyInactivePanel
|
|
}), children);
|
|
});
|
|
};
|
|
|
|
/**
|
|
* @deprecated The next major version will be removed
|
|
*/
|
|
var getNewChild = function getNewChild(child, index, props) {
|
|
if (!child) return null;
|
|
var prefixCls = props.prefixCls,
|
|
accordion = props.accordion,
|
|
collapsible = props.collapsible,
|
|
destroyInactivePanel = props.destroyInactivePanel,
|
|
onItemClick = props.onItemClick,
|
|
activeKey = props.activeKey,
|
|
openMotion = props.openMotion,
|
|
expandIcon = props.expandIcon;
|
|
var key = child.key || String(index);
|
|
var _child$props = child.props,
|
|
header = _child$props.header,
|
|
headerClass = _child$props.headerClass,
|
|
childDestroyInactivePanel = _child$props.destroyInactivePanel,
|
|
childCollapsible = _child$props.collapsible,
|
|
childOnItemClick = _child$props.onItemClick;
|
|
var isActive = false;
|
|
if (accordion) {
|
|
isActive = activeKey[0] === key;
|
|
} else {
|
|
isActive = activeKey.indexOf(key) > -1;
|
|
}
|
|
var mergeCollapsible = childCollapsible !== null && childCollapsible !== void 0 ? childCollapsible : collapsible;
|
|
var handleItemClick = function handleItemClick(value) {
|
|
if (mergeCollapsible === 'disabled') return;
|
|
onItemClick(value);
|
|
childOnItemClick === null || childOnItemClick === void 0 || childOnItemClick(value);
|
|
};
|
|
var childProps = {
|
|
key: key,
|
|
panelKey: key,
|
|
header: header,
|
|
headerClass: headerClass,
|
|
isActive: isActive,
|
|
prefixCls: prefixCls,
|
|
destroyInactivePanel: childDestroyInactivePanel !== null && childDestroyInactivePanel !== void 0 ? childDestroyInactivePanel : destroyInactivePanel,
|
|
openMotion: openMotion,
|
|
accordion: accordion,
|
|
children: child.props.children,
|
|
onItemClick: handleItemClick,
|
|
expandIcon: expandIcon,
|
|
collapsible: mergeCollapsible
|
|
};
|
|
|
|
// https://github.com/ant-design/ant-design/issues/20479
|
|
if (typeof child.type === 'string') {
|
|
return child;
|
|
}
|
|
Object.keys(childProps).forEach(function (propName) {
|
|
if (typeof childProps[propName] === 'undefined') {
|
|
delete childProps[propName];
|
|
}
|
|
});
|
|
return /*#__PURE__*/_react_17_0_2_react.cloneElement(child, childProps);
|
|
};
|
|
function useItems(items, rawChildren, props) {
|
|
if (Array.isArray(items)) {
|
|
return convertItemsToNodes(items, props);
|
|
}
|
|
return (0,toArray/* default */.Z)(rawChildren).map(function (child, index) {
|
|
return getNewChild(child, index, props);
|
|
});
|
|
}
|
|
/* harmony default export */ var hooks_useItems = (useItems);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/pickAttrs.js
|
|
var pickAttrs = __webpack_require__(26112);
|
|
;// CONCATENATED MODULE: ./node_modules/_rc-collapse@3.7.3@rc-collapse/es/Collapse.js
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function getActiveKeysArray(activeKey) {
|
|
var currentActiveKey = activeKey;
|
|
if (!Array.isArray(currentActiveKey)) {
|
|
var activeKeyType = (0,esm_typeof/* default */.Z)(currentActiveKey);
|
|
currentActiveKey = activeKeyType === 'number' || activeKeyType === 'string' ? [currentActiveKey] : [];
|
|
}
|
|
return currentActiveKey.map(function (key) {
|
|
return String(key);
|
|
});
|
|
}
|
|
var Collapse = /*#__PURE__*/_react_17_0_2_react.forwardRef(function (props, ref) {
|
|
var _props$prefixCls = props.prefixCls,
|
|
prefixCls = _props$prefixCls === void 0 ? 'rc-collapse' : _props$prefixCls,
|
|
_props$destroyInactiv = props.destroyInactivePanel,
|
|
destroyInactivePanel = _props$destroyInactiv === void 0 ? false : _props$destroyInactiv,
|
|
style = props.style,
|
|
accordion = props.accordion,
|
|
className = props.className,
|
|
children = props.children,
|
|
collapsible = props.collapsible,
|
|
openMotion = props.openMotion,
|
|
expandIcon = props.expandIcon,
|
|
rawActiveKey = props.activeKey,
|
|
defaultActiveKey = props.defaultActiveKey,
|
|
_onChange = props.onChange,
|
|
items = props.items;
|
|
var collapseClassName = _classnames_2_5_1_classnames_default()(prefixCls, className);
|
|
var _useMergedState = (0,useMergedState/* default */.Z)([], {
|
|
value: rawActiveKey,
|
|
onChange: function onChange(v) {
|
|
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(v);
|
|
},
|
|
defaultValue: defaultActiveKey,
|
|
postState: getActiveKeysArray
|
|
}),
|
|
_useMergedState2 = (0,slicedToArray/* default */.Z)(_useMergedState, 2),
|
|
activeKey = _useMergedState2[0],
|
|
setActiveKey = _useMergedState2[1];
|
|
var onItemClick = function onItemClick(key) {
|
|
return setActiveKey(function () {
|
|
if (accordion) {
|
|
return activeKey[0] === key ? [] : [key];
|
|
}
|
|
var index = activeKey.indexOf(key);
|
|
var isActive = index > -1;
|
|
if (isActive) {
|
|
return activeKey.filter(function (item) {
|
|
return item !== key;
|
|
});
|
|
}
|
|
return [].concat((0,toConsumableArray/* default */.Z)(activeKey), [key]);
|
|
});
|
|
};
|
|
|
|
// ======================== Children ========================
|
|
(0,warning/* default */.ZP)(!children, '[rc-collapse] `children` will be removed in next major version. Please use `items` instead.');
|
|
var mergedChildren = hooks_useItems(items, children, {
|
|
prefixCls: prefixCls,
|
|
accordion: accordion,
|
|
openMotion: openMotion,
|
|
expandIcon: expandIcon,
|
|
collapsible: collapsible,
|
|
destroyInactivePanel: destroyInactivePanel,
|
|
onItemClick: onItemClick,
|
|
activeKey: activeKey
|
|
});
|
|
|
|
// ======================== Render ========================
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement("div", (0,esm_extends/* default */.Z)({
|
|
ref: ref,
|
|
className: collapseClassName,
|
|
style: style,
|
|
role: accordion ? 'tablist' : undefined
|
|
}, (0,pickAttrs/* default */.Z)(props, {
|
|
aria: true,
|
|
data: true
|
|
})), mergedChildren);
|
|
});
|
|
/* harmony default export */ var es_Collapse = (Object.assign(Collapse, {
|
|
/**
|
|
* @deprecated use `items` instead, will be removed in `v4.0.0`
|
|
*/
|
|
Panel: Panel
|
|
}));
|
|
;// CONCATENATED MODULE: ./node_modules/_rc-collapse@3.7.3@rc-collapse/es/index.js
|
|
|
|
/* harmony default export */ var _rc_collapse_3_7_3_rc_collapse_es = (es_Collapse);
|
|
|
|
/**
|
|
* @deprecated use `items` instead, will be removed in `v4.0.0`
|
|
*/
|
|
var es_Panel = es_Collapse.Panel;
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/omit.js
|
|
var omit = __webpack_require__(2738);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/motion.js
|
|
var motion = __webpack_require__(62892);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/reactNode.js
|
|
var reactNode = __webpack_require__(92343);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js
|
|
var context = __webpack_require__(36355);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/hooks/useSize.js
|
|
var useSize = __webpack_require__(19716);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/collapse/CollapsePanel.js
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const CollapsePanel_CollapsePanel = /*#__PURE__*/_react_17_0_2_react.forwardRef((props, ref) => {
|
|
false ? 0 : void 0;
|
|
const {
|
|
getPrefixCls
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
const {
|
|
prefixCls: customizePrefixCls,
|
|
className,
|
|
showArrow = true
|
|
} = props;
|
|
const prefixCls = getPrefixCls('collapse', customizePrefixCls);
|
|
const collapsePanelClassName = _classnames_2_5_1_classnames_default()({
|
|
[`${prefixCls}-no-arrow`]: !showArrow
|
|
}, className);
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(_rc_collapse_3_7_3_rc_collapse_es.Panel, Object.assign({
|
|
ref: ref
|
|
}, props, {
|
|
prefixCls: prefixCls,
|
|
className: collapsePanelClassName
|
|
}));
|
|
});
|
|
/* harmony default export */ var collapse_CollapsePanel = (CollapsePanel_CollapsePanel);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/style/index.js
|
|
var style = __webpack_require__(17313);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/style/motion/collapse.js
|
|
var collapse = __webpack_require__(8378);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/genComponentStyleHook.js
|
|
var genComponentStyleHook = __webpack_require__(83116);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/statistic.js
|
|
var statistic = __webpack_require__(37613);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/collapse/style/index.js
|
|
|
|
|
|
|
|
const genBaseStyle = token => {
|
|
const {
|
|
componentCls,
|
|
contentBg,
|
|
padding,
|
|
headerBg,
|
|
headerPadding,
|
|
collapseHeaderPaddingSM,
|
|
collapseHeaderPaddingLG,
|
|
collapsePanelBorderRadius,
|
|
lineWidth,
|
|
lineType,
|
|
colorBorder,
|
|
colorText,
|
|
colorTextHeading,
|
|
colorTextDisabled,
|
|
fontSize,
|
|
fontSizeLG,
|
|
lineHeight,
|
|
marginSM,
|
|
paddingSM,
|
|
paddingLG,
|
|
paddingXS,
|
|
motionDurationSlow,
|
|
fontSizeIcon,
|
|
contentPadding
|
|
} = token;
|
|
const borderBase = `${lineWidth}px ${lineType} ${colorBorder}`;
|
|
return {
|
|
[componentCls]: Object.assign(Object.assign({}, (0,style/* resetComponent */.Wf)(token)), {
|
|
backgroundColor: headerBg,
|
|
border: borderBase,
|
|
borderBottom: 0,
|
|
borderRadius: `${collapsePanelBorderRadius}px`,
|
|
[`&-rtl`]: {
|
|
direction: 'rtl'
|
|
},
|
|
[`& > ${componentCls}-item`]: {
|
|
borderBottom: borderBase,
|
|
[`&:last-child`]: {
|
|
[`
|
|
&,
|
|
& > ${componentCls}-header`]: {
|
|
borderRadius: `0 0 ${collapsePanelBorderRadius}px ${collapsePanelBorderRadius}px`
|
|
}
|
|
},
|
|
[`> ${componentCls}-header`]: {
|
|
position: 'relative',
|
|
display: 'flex',
|
|
flexWrap: 'nowrap',
|
|
alignItems: 'flex-start',
|
|
padding: headerPadding,
|
|
color: colorTextHeading,
|
|
lineHeight,
|
|
cursor: 'pointer',
|
|
transition: `all ${motionDurationSlow}, visibility 0s`,
|
|
[`> ${componentCls}-header-text`]: {
|
|
flex: 'auto'
|
|
},
|
|
'&:focus': {
|
|
outline: 'none'
|
|
},
|
|
// >>>>> Arrow
|
|
[`${componentCls}-expand-icon`]: {
|
|
height: fontSize * lineHeight,
|
|
display: 'flex',
|
|
alignItems: 'center',
|
|
paddingInlineEnd: marginSM
|
|
},
|
|
[`${componentCls}-arrow`]: Object.assign(Object.assign({}, (0,style/* resetIcon */.Ro)()), {
|
|
fontSize: fontSizeIcon,
|
|
svg: {
|
|
transition: `transform ${motionDurationSlow}`
|
|
}
|
|
}),
|
|
// >>>>> Text
|
|
[`${componentCls}-header-text`]: {
|
|
marginInlineEnd: 'auto'
|
|
}
|
|
},
|
|
[`${componentCls}-header-collapsible-only`]: {
|
|
cursor: 'default',
|
|
[`${componentCls}-header-text`]: {
|
|
flex: 'none',
|
|
cursor: 'pointer'
|
|
}
|
|
},
|
|
[`${componentCls}-icon-collapsible-only`]: {
|
|
cursor: 'default',
|
|
[`${componentCls}-expand-icon`]: {
|
|
cursor: 'pointer'
|
|
}
|
|
}
|
|
},
|
|
[`${componentCls}-content`]: {
|
|
color: colorText,
|
|
backgroundColor: contentBg,
|
|
borderTop: borderBase,
|
|
[`& > ${componentCls}-content-box`]: {
|
|
padding: contentPadding
|
|
},
|
|
[`&-hidden`]: {
|
|
display: 'none'
|
|
}
|
|
},
|
|
[`&-small`]: {
|
|
[`> ${componentCls}-item`]: {
|
|
[`> ${componentCls}-header`]: {
|
|
padding: collapseHeaderPaddingSM,
|
|
paddingInlineStart: paddingXS,
|
|
[`> ${componentCls}-expand-icon`]: {
|
|
// Arrow offset
|
|
marginInlineStart: paddingSM - paddingXS
|
|
}
|
|
},
|
|
[`> ${componentCls}-content > ${componentCls}-content-box`]: {
|
|
padding: paddingSM
|
|
}
|
|
}
|
|
},
|
|
[`&-large`]: {
|
|
[`> ${componentCls}-item`]: {
|
|
fontSize: fontSizeLG,
|
|
[`> ${componentCls}-header`]: {
|
|
padding: collapseHeaderPaddingLG,
|
|
paddingInlineStart: padding,
|
|
[`> ${componentCls}-expand-icon`]: {
|
|
height: fontSizeLG * lineHeight,
|
|
// Arrow offset
|
|
marginInlineStart: paddingLG - padding
|
|
}
|
|
},
|
|
[`> ${componentCls}-content > ${componentCls}-content-box`]: {
|
|
padding: paddingLG
|
|
}
|
|
}
|
|
},
|
|
[`${componentCls}-item:last-child`]: {
|
|
[`> ${componentCls}-content`]: {
|
|
borderRadius: `0 0 ${collapsePanelBorderRadius}px ${collapsePanelBorderRadius}px`
|
|
}
|
|
},
|
|
[`& ${componentCls}-item-disabled > ${componentCls}-header`]: {
|
|
[`
|
|
&,
|
|
& > .arrow
|
|
`]: {
|
|
color: colorTextDisabled,
|
|
cursor: 'not-allowed'
|
|
}
|
|
},
|
|
// ========================== Icon Position ==========================
|
|
[`&${componentCls}-icon-position-end`]: {
|
|
[`& > ${componentCls}-item`]: {
|
|
[`> ${componentCls}-header`]: {
|
|
[`${componentCls}-expand-icon`]: {
|
|
order: 1,
|
|
paddingInlineEnd: 0,
|
|
paddingInlineStart: marginSM
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})
|
|
};
|
|
};
|
|
const genArrowStyle = token => {
|
|
const {
|
|
componentCls
|
|
} = token;
|
|
const fixedSelector = `> ${componentCls}-item > ${componentCls}-header ${componentCls}-arrow svg`;
|
|
return {
|
|
[`${componentCls}-rtl`]: {
|
|
[fixedSelector]: {
|
|
transform: `rotate(180deg)`
|
|
}
|
|
}
|
|
};
|
|
};
|
|
const genBorderlessStyle = token => {
|
|
const {
|
|
componentCls,
|
|
headerBg,
|
|
paddingXXS,
|
|
colorBorder
|
|
} = token;
|
|
return {
|
|
[`${componentCls}-borderless`]: {
|
|
backgroundColor: headerBg,
|
|
border: 0,
|
|
[`> ${componentCls}-item`]: {
|
|
borderBottom: `1px solid ${colorBorder}`
|
|
},
|
|
[`
|
|
> ${componentCls}-item:last-child,
|
|
> ${componentCls}-item:last-child ${componentCls}-header
|
|
`]: {
|
|
borderRadius: 0
|
|
},
|
|
[`> ${componentCls}-item:last-child`]: {
|
|
borderBottom: 0
|
|
},
|
|
[`> ${componentCls}-item > ${componentCls}-content`]: {
|
|
backgroundColor: 'transparent',
|
|
borderTop: 0
|
|
},
|
|
[`> ${componentCls}-item > ${componentCls}-content > ${componentCls}-content-box`]: {
|
|
paddingTop: paddingXXS
|
|
}
|
|
}
|
|
};
|
|
};
|
|
const genGhostStyle = token => {
|
|
const {
|
|
componentCls,
|
|
paddingSM
|
|
} = token;
|
|
return {
|
|
[`${componentCls}-ghost`]: {
|
|
backgroundColor: 'transparent',
|
|
border: 0,
|
|
[`> ${componentCls}-item`]: {
|
|
borderBottom: 0,
|
|
[`> ${componentCls}-content`]: {
|
|
backgroundColor: 'transparent',
|
|
border: 0,
|
|
[`> ${componentCls}-content-box`]: {
|
|
paddingBlock: paddingSM
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
};
|
|
/* harmony default export */ var collapse_style = ((0,genComponentStyleHook/* default */.Z)('Collapse', token => {
|
|
const collapseToken = (0,statistic/* merge */.TS)(token, {
|
|
collapseHeaderPaddingSM: `${token.paddingXS}px ${token.paddingSM}px`,
|
|
collapseHeaderPaddingLG: `${token.padding}px ${token.paddingLG}px`,
|
|
collapsePanelBorderRadius: token.borderRadiusLG
|
|
});
|
|
return [genBaseStyle(collapseToken), genBorderlessStyle(collapseToken), genGhostStyle(collapseToken), genArrowStyle(collapseToken), (0,collapse/* default */.Z)(collapseToken)];
|
|
}, token => ({
|
|
headerPadding: `${token.paddingSM}px ${token.padding}px`,
|
|
headerBg: token.colorFillAlter,
|
|
contentPadding: `${token.padding}px 16px`,
|
|
contentBg: token.colorBgContainer
|
|
})));
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/collapse/Collapse.js
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const Collapse_Collapse = /*#__PURE__*/_react_17_0_2_react.forwardRef((props, ref) => {
|
|
const {
|
|
getPrefixCls,
|
|
direction,
|
|
collapse
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
const {
|
|
prefixCls: customizePrefixCls,
|
|
className,
|
|
rootClassName,
|
|
style,
|
|
bordered = true,
|
|
ghost,
|
|
size: customizeSize,
|
|
expandIconPosition = 'start',
|
|
children,
|
|
expandIcon
|
|
} = props;
|
|
const mergedSize = (0,useSize/* default */.Z)(ctx => {
|
|
var _a;
|
|
return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : ctx) !== null && _a !== void 0 ? _a : 'middle';
|
|
});
|
|
const prefixCls = getPrefixCls('collapse', customizePrefixCls);
|
|
const rootPrefixCls = getPrefixCls();
|
|
const [wrapSSR, hashId] = collapse_style(prefixCls);
|
|
// Warning if use legacy type `expandIconPosition`
|
|
false ? 0 : void 0;
|
|
// Align with logic position
|
|
const mergedExpandIconPosition = _react_17_0_2_react.useMemo(() => {
|
|
if (expandIconPosition === 'left') {
|
|
return 'start';
|
|
}
|
|
return expandIconPosition === 'right' ? 'end' : expandIconPosition;
|
|
}, [expandIconPosition]);
|
|
const renderExpandIcon = function () {
|
|
let panelProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
const icon = expandIcon ? expandIcon(panelProps) : /*#__PURE__*/_react_17_0_2_react.createElement(RightOutlined/* default */.Z, {
|
|
rotate: panelProps.isActive ? 90 : undefined
|
|
});
|
|
return (0,reactNode/* cloneElement */.Tm)(icon, () => ({
|
|
className: _classnames_2_5_1_classnames_default()(icon.props.className, `${prefixCls}-arrow`)
|
|
}));
|
|
};
|
|
const collapseClassName = _classnames_2_5_1_classnames_default()(`${prefixCls}-icon-position-${mergedExpandIconPosition}`, {
|
|
[`${prefixCls}-borderless`]: !bordered,
|
|
[`${prefixCls}-rtl`]: direction === 'rtl',
|
|
[`${prefixCls}-ghost`]: !!ghost,
|
|
[`${prefixCls}-${mergedSize}`]: mergedSize !== 'middle'
|
|
}, collapse === null || collapse === void 0 ? void 0 : collapse.className, className, rootClassName, hashId);
|
|
const openMotion = Object.assign(Object.assign({}, (0,motion/* default */.Z)(rootPrefixCls)), {
|
|
motionAppear: false,
|
|
leavedClassName: `${prefixCls}-content-hidden`
|
|
});
|
|
const items = _react_17_0_2_react.useMemo(() => children ? (0,toArray/* default */.Z)(children).map((child, index) => {
|
|
var _a, _b;
|
|
if ((_a = child.props) === null || _a === void 0 ? void 0 : _a.disabled) {
|
|
const key = (_b = child.key) !== null && _b !== void 0 ? _b : String(index);
|
|
const {
|
|
disabled,
|
|
collapsible
|
|
} = child.props;
|
|
const childProps = Object.assign(Object.assign({}, (0,omit/* default */.Z)(child.props, ['disabled'])), {
|
|
key,
|
|
collapsible: collapsible !== null && collapsible !== void 0 ? collapsible : disabled ? 'disabled' : undefined
|
|
});
|
|
return (0,reactNode/* cloneElement */.Tm)(child, childProps);
|
|
}
|
|
return child;
|
|
}) : null, [children]);
|
|
return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement(_rc_collapse_3_7_3_rc_collapse_es, Object.assign({
|
|
ref: ref,
|
|
openMotion: openMotion
|
|
}, (0,omit/* default */.Z)(props, ['rootClassName']), {
|
|
expandIcon: renderExpandIcon,
|
|
prefixCls: prefixCls,
|
|
className: collapseClassName,
|
|
style: Object.assign(Object.assign({}, collapse === null || collapse === void 0 ? void 0 : collapse.style), style)
|
|
}), items));
|
|
});
|
|
if (false) {}
|
|
/* harmony default export */ var collapse_Collapse = (Object.assign(Collapse_Collapse, {
|
|
Panel: collapse_CollapsePanel
|
|
}));
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/collapse/index.js
|
|
"use client";
|
|
|
|
|
|
/* harmony default export */ var es_collapse = (collapse_Collapse);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 12563:
|
|
/*!*******************************************************************!*\
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/tag/index.js + 5 modules ***!
|
|
\*******************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ tag; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/CloseOutlined.js + 1 modules
|
|
var CloseOutlined = __webpack_require__(99267);
|
|
// EXTERNAL MODULE: ./node_modules/_classnames@2.5.1@classnames/index.js
|
|
var _classnames_2_5_1_classnames = __webpack_require__(92310);
|
|
var _classnames_2_5_1_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_5_1_classnames);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/colors.js
|
|
var colors = __webpack_require__(36785);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/hooks/useClosable.js
|
|
var useClosable = __webpack_require__(47729);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/wave/index.js + 4 modules
|
|
var wave = __webpack_require__(14088);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js
|
|
var context = __webpack_require__(36355);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/style/index.js
|
|
var style = __webpack_require__(17313);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/statistic.js
|
|
var statistic = __webpack_require__(37613);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/genComponentStyleHook.js
|
|
var genComponentStyleHook = __webpack_require__(83116);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tag/style/index.js
|
|
|
|
|
|
// ============================== Styles ==============================
|
|
const genBaseStyle = token => {
|
|
const {
|
|
paddingXXS,
|
|
lineWidth,
|
|
tagPaddingHorizontal,
|
|
componentCls
|
|
} = token;
|
|
const paddingInline = tagPaddingHorizontal - lineWidth;
|
|
const iconMarginInline = paddingXXS - lineWidth;
|
|
return {
|
|
// Result
|
|
[componentCls]: Object.assign(Object.assign({}, (0,style/* resetComponent */.Wf)(token)), {
|
|
display: 'inline-block',
|
|
height: 'auto',
|
|
marginInlineEnd: token.marginXS,
|
|
paddingInline,
|
|
fontSize: token.tagFontSize,
|
|
lineHeight: token.tagLineHeight,
|
|
whiteSpace: 'nowrap',
|
|
background: token.defaultBg,
|
|
border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,
|
|
borderRadius: token.borderRadiusSM,
|
|
opacity: 1,
|
|
transition: `all ${token.motionDurationMid}`,
|
|
textAlign: 'start',
|
|
position: 'relative',
|
|
// RTL
|
|
[`&${componentCls}-rtl`]: {
|
|
direction: 'rtl'
|
|
},
|
|
'&, a, a:hover': {
|
|
color: token.defaultColor
|
|
},
|
|
[`${componentCls}-close-icon`]: {
|
|
marginInlineStart: iconMarginInline,
|
|
color: token.colorTextDescription,
|
|
fontSize: token.tagIconSize,
|
|
cursor: 'pointer',
|
|
transition: `all ${token.motionDurationMid}`,
|
|
'&:hover': {
|
|
color: token.colorTextHeading
|
|
}
|
|
},
|
|
[`&${componentCls}-has-color`]: {
|
|
borderColor: 'transparent',
|
|
[`&, a, a:hover, ${token.iconCls}-close, ${token.iconCls}-close:hover`]: {
|
|
color: token.colorTextLightSolid
|
|
}
|
|
},
|
|
[`&-checkable`]: {
|
|
backgroundColor: 'transparent',
|
|
borderColor: 'transparent',
|
|
cursor: 'pointer',
|
|
[`&:not(${componentCls}-checkable-checked):hover`]: {
|
|
color: token.colorPrimary,
|
|
backgroundColor: token.colorFillSecondary
|
|
},
|
|
'&:active, &-checked': {
|
|
color: token.colorTextLightSolid
|
|
},
|
|
'&-checked': {
|
|
backgroundColor: token.colorPrimary,
|
|
'&:hover': {
|
|
backgroundColor: token.colorPrimaryHover
|
|
}
|
|
},
|
|
'&:active': {
|
|
backgroundColor: token.colorPrimaryActive
|
|
}
|
|
},
|
|
[`&-hidden`]: {
|
|
display: 'none'
|
|
},
|
|
// To ensure that a space will be placed between character and `Icon`.
|
|
[`> ${token.iconCls} + span, > span + ${token.iconCls}`]: {
|
|
marginInlineStart: paddingInline
|
|
}
|
|
}),
|
|
[`${componentCls}-borderless`]: {
|
|
borderColor: 'transparent',
|
|
background: token.tagBorderlessBg
|
|
}
|
|
};
|
|
};
|
|
// ============================== Export ==============================
|
|
const prepareToken = token => {
|
|
const {
|
|
lineWidth,
|
|
fontSizeIcon
|
|
} = token;
|
|
const tagFontSize = token.fontSizeSM;
|
|
const tagLineHeight = `${token.lineHeightSM * tagFontSize}px`;
|
|
const tagToken = (0,statistic/* merge */.TS)(token, {
|
|
tagFontSize,
|
|
tagLineHeight,
|
|
tagIconSize: fontSizeIcon - 2 * lineWidth,
|
|
tagPaddingHorizontal: 8,
|
|
tagBorderlessBg: token.colorFillTertiary
|
|
});
|
|
return tagToken;
|
|
};
|
|
const prepareCommonToken = token => ({
|
|
defaultBg: token.colorFillQuaternary,
|
|
defaultColor: token.colorText
|
|
});
|
|
/* harmony default export */ var tag_style = ((0,genComponentStyleHook/* default */.Z)('Tag', token => {
|
|
const tagToken = prepareToken(token);
|
|
return genBaseStyle(tagToken);
|
|
}, prepareCommonToken));
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tag/CheckableTag.js
|
|
"use client";
|
|
|
|
var __rest = undefined && undefined.__rest || function (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;
|
|
};
|
|
|
|
|
|
|
|
|
|
const CheckableTag = props => {
|
|
const {
|
|
prefixCls: customizePrefixCls,
|
|
style,
|
|
className,
|
|
checked,
|
|
onChange,
|
|
onClick
|
|
} = props,
|
|
restProps = __rest(props, ["prefixCls", "style", "className", "checked", "onChange", "onClick"]);
|
|
const {
|
|
getPrefixCls,
|
|
tag
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
const handleClick = e => {
|
|
onChange === null || onChange === void 0 ? void 0 : onChange(!checked);
|
|
onClick === null || onClick === void 0 ? void 0 : onClick(e);
|
|
};
|
|
const prefixCls = getPrefixCls('tag', customizePrefixCls);
|
|
// Style
|
|
const [wrapSSR, hashId] = tag_style(prefixCls);
|
|
const cls = _classnames_2_5_1_classnames_default()(prefixCls, `${prefixCls}-checkable`, {
|
|
[`${prefixCls}-checkable-checked`]: checked
|
|
}, tag === null || tag === void 0 ? void 0 : tag.className, className, hashId);
|
|
return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement("span", Object.assign({}, restProps, {
|
|
style: Object.assign(Object.assign({}, style), tag === null || tag === void 0 ? void 0 : tag.style),
|
|
className: cls,
|
|
onClick: handleClick
|
|
})));
|
|
};
|
|
/* harmony default export */ var tag_CheckableTag = (CheckableTag);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/genPresetColor.js
|
|
var genPresetColor = __webpack_require__(45157);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tag/style/presetCmp.js
|
|
// Style as status component
|
|
|
|
|
|
// ============================== Preset ==============================
|
|
const genPresetStyle = token => (0,genPresetColor/* default */.Z)(token, (colorKey, _ref) => {
|
|
let {
|
|
textColor,
|
|
lightBorderColor,
|
|
lightColor,
|
|
darkColor
|
|
} = _ref;
|
|
return {
|
|
[`${token.componentCls}-${colorKey}`]: {
|
|
color: textColor,
|
|
background: lightColor,
|
|
borderColor: lightBorderColor,
|
|
// Inverse color
|
|
'&-inverse': {
|
|
color: token.colorTextLightSolid,
|
|
background: darkColor,
|
|
borderColor: darkColor
|
|
},
|
|
[`&${token.componentCls}-borderless`]: {
|
|
borderColor: 'transparent'
|
|
}
|
|
}
|
|
};
|
|
});
|
|
// ============================== Export ==============================
|
|
/* harmony default export */ var presetCmp = ((0,genComponentStyleHook/* genSubStyleComponent */.b)(['Tag', 'preset'], token => {
|
|
const tagToken = prepareToken(token);
|
|
return genPresetStyle(tagToken);
|
|
}, prepareCommonToken));
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/capitalize.js
|
|
function capitalize(str) {
|
|
if (typeof str !== 'string') {
|
|
return str;
|
|
}
|
|
const ret = str.charAt(0).toUpperCase() + str.slice(1);
|
|
return ret;
|
|
}
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tag/style/statusCmp.js
|
|
|
|
|
|
|
|
const genTagStatusStyle = (token, status, cssVariableType) => {
|
|
const capitalizedCssVariableType = capitalize(cssVariableType);
|
|
return {
|
|
[`${token.componentCls}-${status}`]: {
|
|
color: token[`color${cssVariableType}`],
|
|
background: token[`color${capitalizedCssVariableType}Bg`],
|
|
borderColor: token[`color${capitalizedCssVariableType}Border`],
|
|
[`&${token.componentCls}-borderless`]: {
|
|
borderColor: 'transparent'
|
|
}
|
|
}
|
|
};
|
|
};
|
|
// ============================== Export ==============================
|
|
/* harmony default export */ var statusCmp = ((0,genComponentStyleHook/* genSubStyleComponent */.b)(['Tag', 'status'], token => {
|
|
const tagToken = prepareToken(token);
|
|
return [genTagStatusStyle(tagToken, 'success', 'Success'), genTagStatusStyle(tagToken, 'processing', 'Info'), genTagStatusStyle(tagToken, 'error', 'Error'), genTagStatusStyle(tagToken, 'warning', 'Warning')];
|
|
}, prepareCommonToken));
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tag/index.js
|
|
"use client";
|
|
|
|
var tag_rest = undefined && undefined.__rest || function (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;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const InternalTag = (tagProps, ref) => {
|
|
const {
|
|
prefixCls: customizePrefixCls,
|
|
className,
|
|
rootClassName,
|
|
style,
|
|
children,
|
|
icon,
|
|
color,
|
|
onClose,
|
|
closeIcon,
|
|
closable,
|
|
bordered = true
|
|
} = tagProps,
|
|
props = tag_rest(tagProps, ["prefixCls", "className", "rootClassName", "style", "children", "icon", "color", "onClose", "closeIcon", "closable", "bordered"]);
|
|
const {
|
|
getPrefixCls,
|
|
direction,
|
|
tag
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
const [visible, setVisible] = _react_17_0_2_react.useState(true);
|
|
// Warning for deprecated usage
|
|
if (false) {}
|
|
_react_17_0_2_react.useEffect(() => {
|
|
if ('visible' in props) {
|
|
setVisible(props.visible);
|
|
}
|
|
}, [props.visible]);
|
|
const isPreset = (0,colors/* isPresetColor */.o2)(color);
|
|
const isStatus = (0,colors/* isPresetStatusColor */.yT)(color);
|
|
const isInternalColor = isPreset || isStatus;
|
|
const tagStyle = Object.assign(Object.assign({
|
|
backgroundColor: color && !isInternalColor ? color : undefined
|
|
}, tag === null || tag === void 0 ? void 0 : tag.style), style);
|
|
const prefixCls = getPrefixCls('tag', customizePrefixCls);
|
|
// Style
|
|
const [wrapSSR, hashId] = tag_style(prefixCls);
|
|
const tagClassName = _classnames_2_5_1_classnames_default()(prefixCls, tag === null || tag === void 0 ? void 0 : tag.className, {
|
|
[`${prefixCls}-${color}`]: isInternalColor,
|
|
[`${prefixCls}-has-color`]: color && !isInternalColor,
|
|
[`${prefixCls}-hidden`]: !visible,
|
|
[`${prefixCls}-rtl`]: direction === 'rtl',
|
|
[`${prefixCls}-borderless`]: !bordered
|
|
}, className, rootClassName, hashId);
|
|
const handleCloseClick = e => {
|
|
e.stopPropagation();
|
|
onClose === null || onClose === void 0 ? void 0 : onClose(e);
|
|
if (e.defaultPrevented) {
|
|
return;
|
|
}
|
|
setVisible(false);
|
|
};
|
|
const [, mergedCloseIcon] = (0,useClosable/* default */.Z)(closable, closeIcon, iconNode => iconNode === null ? /*#__PURE__*/_react_17_0_2_react.createElement(CloseOutlined/* default */.Z, {
|
|
className: `${prefixCls}-close-icon`,
|
|
onClick: handleCloseClick
|
|
}) : /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
className: `${prefixCls}-close-icon`,
|
|
onClick: handleCloseClick
|
|
}, iconNode), null, false);
|
|
const isNeedWave = typeof props.onClick === 'function' || children && children.type === 'a';
|
|
const iconNode = icon || null;
|
|
const kids = iconNode ? /*#__PURE__*/_react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, iconNode, children && /*#__PURE__*/_react_17_0_2_react.createElement("span", null, children)) : children;
|
|
const tagNode = /*#__PURE__*/_react_17_0_2_react.createElement("span", Object.assign({}, props, {
|
|
ref: ref,
|
|
className: tagClassName,
|
|
style: tagStyle
|
|
}), kids, mergedCloseIcon, isPreset && /*#__PURE__*/_react_17_0_2_react.createElement(presetCmp, {
|
|
key: "preset",
|
|
prefixCls: prefixCls
|
|
}), isStatus && /*#__PURE__*/_react_17_0_2_react.createElement(statusCmp, {
|
|
key: "status",
|
|
prefixCls: prefixCls
|
|
}));
|
|
return wrapSSR(isNeedWave ? /*#__PURE__*/_react_17_0_2_react.createElement(wave/* default */.Z, {
|
|
component: "Tag"
|
|
}, tagNode) : tagNode);
|
|
};
|
|
const Tag = /*#__PURE__*/_react_17_0_2_react.forwardRef(InternalTag);
|
|
if (false) {}
|
|
Tag.CheckableTag = tag_CheckableTag;
|
|
/* harmony default export */ var tag = (Tag);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 25769:
|
|
/*!**************************************************************************!*\
|
|
!*** ./node_modules/_copy-to-clipboard@3.3.3@copy-to-clipboard/index.js ***!
|
|
\**************************************************************************/
|
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
|
|
var deselectCurrent = __webpack_require__(/*! toggle-selection */ 98040);
|
|
|
|
var clipboardToIE11Formatting = {
|
|
"text/plain": "Text",
|
|
"text/html": "Url",
|
|
"default": "Text"
|
|
}
|
|
|
|
var defaultMessage = "Copy to clipboard: #{key}, Enter";
|
|
|
|
function format(message) {
|
|
var copyKey = (/mac os x/i.test(navigator.userAgent) ? "⌘" : "Ctrl") + "+C";
|
|
return message.replace(/#{\s*key\s*}/g, copyKey);
|
|
}
|
|
|
|
function copy(text, options) {
|
|
var debug,
|
|
message,
|
|
reselectPrevious,
|
|
range,
|
|
selection,
|
|
mark,
|
|
success = false;
|
|
if (!options) {
|
|
options = {};
|
|
}
|
|
debug = options.debug || false;
|
|
try {
|
|
reselectPrevious = deselectCurrent();
|
|
|
|
range = document.createRange();
|
|
selection = document.getSelection();
|
|
|
|
mark = document.createElement("span");
|
|
mark.textContent = text;
|
|
// avoid screen readers from reading out loud the text
|
|
mark.ariaHidden = "true"
|
|
// reset user styles for span element
|
|
mark.style.all = "unset";
|
|
// prevents scrolling to the end of the page
|
|
mark.style.position = "fixed";
|
|
mark.style.top = 0;
|
|
mark.style.clip = "rect(0, 0, 0, 0)";
|
|
// used to preserve spaces and line breaks
|
|
mark.style.whiteSpace = "pre";
|
|
// do not inherit user-select (it may be `none`)
|
|
mark.style.webkitUserSelect = "text";
|
|
mark.style.MozUserSelect = "text";
|
|
mark.style.msUserSelect = "text";
|
|
mark.style.userSelect = "text";
|
|
mark.addEventListener("copy", function(e) {
|
|
e.stopPropagation();
|
|
if (options.format) {
|
|
e.preventDefault();
|
|
if (typeof e.clipboardData === "undefined") { // IE 11
|
|
debug && console.warn("unable to use e.clipboardData");
|
|
debug && console.warn("trying IE specific stuff");
|
|
window.clipboardData.clearData();
|
|
var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting["default"]
|
|
window.clipboardData.setData(format, text);
|
|
} else { // all other browsers
|
|
e.clipboardData.clearData();
|
|
e.clipboardData.setData(options.format, text);
|
|
}
|
|
}
|
|
if (options.onCopy) {
|
|
e.preventDefault();
|
|
options.onCopy(e.clipboardData);
|
|
}
|
|
});
|
|
|
|
document.body.appendChild(mark);
|
|
|
|
range.selectNodeContents(mark);
|
|
selection.addRange(range);
|
|
|
|
var successful = document.execCommand("copy");
|
|
if (!successful) {
|
|
throw new Error("copy command was unsuccessful");
|
|
}
|
|
success = true;
|
|
} catch (err) {
|
|
debug && console.error("unable to copy using execCommand: ", err);
|
|
debug && console.warn("trying IE specific stuff");
|
|
try {
|
|
window.clipboardData.setData(options.format || "text", text);
|
|
options.onCopy && options.onCopy(window.clipboardData);
|
|
success = true;
|
|
} catch (err) {
|
|
debug && console.error("unable to copy using clipboardData: ", err);
|
|
debug && console.error("falling back to prompt");
|
|
message = format("message" in options ? options.message : defaultMessage);
|
|
window.prompt(message, text);
|
|
}
|
|
} finally {
|
|
if (selection) {
|
|
if (typeof selection.removeRange == "function") {
|
|
selection.removeRange(range);
|
|
} else {
|
|
selection.removeAllRanges();
|
|
}
|
|
}
|
|
|
|
if (mark) {
|
|
document.body.removeChild(mark);
|
|
}
|
|
reselectPrevious();
|
|
}
|
|
|
|
return success;
|
|
}
|
|
|
|
module.exports = copy;
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ 56047:
|
|
/*!**************************************************************************!*\
|
|
!*** ./node_modules/_echarts-wordcloud@1.1.3@echarts-wordcloud/index.js ***!
|
|
\**************************************************************************/
|
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
|
|
/* unused reexport */ __webpack_require__(/*! ./src/wordCloud */ 16896);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 66607:
|
|
/*!****************************************************************************************!*\
|
|
!*** ./node_modules/_echarts-wordcloud@1.1.3@echarts-wordcloud/src/WordCloudSeries.js ***!
|
|
\****************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
|
|
var completeDimensions = __webpack_require__(/*! echarts/lib/data/helper/completeDimensions */ 58347);
|
|
var echarts = __webpack_require__(/*! echarts/lib/echarts */ 3096);
|
|
|
|
echarts.extendSeriesModel({
|
|
|
|
type: 'series.wordCloud',
|
|
|
|
visualColorAccessPath: 'textStyle.normal.color',
|
|
|
|
optionUpdated: function () {
|
|
var option = this.option;
|
|
option.gridSize = Math.max(Math.floor(option.gridSize), 4);
|
|
},
|
|
|
|
getInitialData: function (option, ecModel) {
|
|
var dimensions = completeDimensions(['value'], option.data);
|
|
var list = new echarts.List(dimensions, this);
|
|
list.initData(option.data);
|
|
return list;
|
|
},
|
|
|
|
// Most of options are from https://github.com/timdream/wordcloud2.js/blob/gh-pages/API.md
|
|
defaultOption: {
|
|
|
|
maskImage: null,
|
|
|
|
// Shape can be 'circle', 'cardioid', 'diamond', 'triangle-forward', 'triangle', 'pentagon', 'star'
|
|
shape: 'circle',
|
|
|
|
left: 'center',
|
|
|
|
top: 'center',
|
|
|
|
width: '70%',
|
|
|
|
height: '80%',
|
|
|
|
sizeRange: [12, 60],
|
|
|
|
rotationRange: [-90, 90],
|
|
|
|
rotationStep: 45,
|
|
|
|
gridSize: 8,
|
|
|
|
drawOutOfBound: false,
|
|
|
|
textStyle: {
|
|
normal: {
|
|
fontWeight: 'normal'
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ 31041:
|
|
/*!**************************************************************************************!*\
|
|
!*** ./node_modules/_echarts-wordcloud@1.1.3@echarts-wordcloud/src/WordCloudView.js ***!
|
|
\**************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
|
|
var echarts = __webpack_require__(/*! echarts/lib/echarts */ 3096);
|
|
|
|
function getShallow(model, path) {
|
|
return model && model.getShallow(path);
|
|
}
|
|
|
|
echarts.extendChartView({
|
|
|
|
type: 'wordCloud',
|
|
|
|
render: function (seriesModel, ecModel, api) {
|
|
var group = this.group;
|
|
group.removeAll();
|
|
|
|
var data = seriesModel.getData();
|
|
|
|
var gridSize = seriesModel.get('gridSize');
|
|
|
|
seriesModel.layoutInstance.ondraw = function (text, size, dataIdx, drawn) {
|
|
var itemModel = data.getItemModel(dataIdx);
|
|
var textStyleModel = itemModel.getModel('textStyle.normal');
|
|
var emphasisTextStyleModel = itemModel.getModel('textStyle.emphasis');
|
|
|
|
var textEl = new echarts.graphic.Text({
|
|
style: echarts.graphic.setTextStyle({}, textStyleModel, {
|
|
x: drawn.info.fillTextOffsetX,
|
|
y: drawn.info.fillTextOffsetY + size * 0.5,
|
|
text: text,
|
|
textBaseline: 'middle',
|
|
textFill: data.getItemVisual(dataIdx, 'color'),
|
|
fontSize: size
|
|
}),
|
|
scale: [1 / drawn.info.mu, 1 / drawn.info.mu],
|
|
position: [
|
|
(drawn.gx + drawn.info.gw / 2) * gridSize,
|
|
(drawn.gy + drawn.info.gh / 2) * gridSize
|
|
],
|
|
rotation: drawn.rot
|
|
});
|
|
|
|
group.add(textEl);
|
|
|
|
data.setItemGraphicEl(dataIdx, textEl);
|
|
|
|
echarts.graphic.setHoverStyle(
|
|
textEl,
|
|
echarts.graphic.setTextStyle({}, emphasisTextStyleModel, null, {forMerge: true}, true)
|
|
);
|
|
};
|
|
|
|
this._model = seriesModel;
|
|
},
|
|
|
|
remove: function () {
|
|
this.group.removeAll();
|
|
|
|
this._model.layoutInstance.dispose();
|
|
},
|
|
|
|
dispose: function () {
|
|
this._model.layoutInstance.dispose();
|
|
}
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ 19131:
|
|
/*!*******************************************************************************!*\
|
|
!*** ./node_modules/_echarts-wordcloud@1.1.3@echarts-wordcloud/src/layout.js ***!
|
|
\*******************************************************************************/
|
|
/***/ (function(module, exports) {
|
|
|
|
"use strict";
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
|
|
* wordcloud2.js
|
|
* http://timdream.org/wordcloud2.js/
|
|
*
|
|
* Copyright 2011 - 2013 Tim Chien
|
|
* Released under the MIT license
|
|
*/
|
|
|
|
|
|
|
|
// setImmediate
|
|
if (!window.setImmediate) {
|
|
window.setImmediate = (function setupSetImmediate() {
|
|
return window.msSetImmediate ||
|
|
window.webkitSetImmediate ||
|
|
window.mozSetImmediate ||
|
|
window.oSetImmediate ||
|
|
(function setupSetZeroTimeout() {
|
|
if (!window.postMessage || !window.addEventListener) {
|
|
return null;
|
|
}
|
|
|
|
var callbacks = [undefined];
|
|
var message = 'zero-timeout-message';
|
|
|
|
// Like setTimeout, but only takes a function argument. There's
|
|
// no time argument (always zero) and no arguments (you have to
|
|
// use a closure).
|
|
var setZeroTimeout = function setZeroTimeout(callback) {
|
|
var id = callbacks.length;
|
|
callbacks.push(callback);
|
|
window.postMessage(message + id.toString(36), '*');
|
|
|
|
return id;
|
|
};
|
|
|
|
window.addEventListener('message', function setZeroTimeoutMessage(evt) {
|
|
// Skipping checking event source, retarded IE confused this window
|
|
// object with another in the presence of iframe
|
|
if (typeof evt.data !== 'string' ||
|
|
evt.data.substr(0, message.length) !== message/* ||
|
|
evt.source !== window */) {
|
|
return;
|
|
}
|
|
|
|
evt.stopImmediatePropagation();
|
|
|
|
var id = parseInt(evt.data.substr(message.length), 36);
|
|
if (!callbacks[id]) {
|
|
return;
|
|
}
|
|
|
|
callbacks[id]();
|
|
callbacks[id] = undefined;
|
|
}, true);
|
|
|
|
/* specify clearImmediate() here since we need the scope */
|
|
window.clearImmediate = function clearZeroTimeout(id) {
|
|
if (!callbacks[id]) {
|
|
return;
|
|
}
|
|
|
|
callbacks[id] = undefined;
|
|
};
|
|
|
|
return setZeroTimeout;
|
|
})() ||
|
|
// fallback
|
|
function setImmediateFallback(fn) {
|
|
window.setTimeout(fn, 0);
|
|
};
|
|
})();
|
|
}
|
|
|
|
if (!window.clearImmediate) {
|
|
window.clearImmediate = (function setupClearImmediate() {
|
|
return window.msClearImmediate ||
|
|
window.webkitClearImmediate ||
|
|
window.mozClearImmediate ||
|
|
window.oClearImmediate ||
|
|
// "clearZeroTimeout" is implement on the previous block ||
|
|
// fallback
|
|
function clearImmediateFallback(timer) {
|
|
window.clearTimeout(timer);
|
|
};
|
|
})();
|
|
}
|
|
|
|
(function(global) {
|
|
|
|
// Check if WordCloud can run on this browser
|
|
var isSupported = (function isSupported() {
|
|
var canvas = document.createElement('canvas');
|
|
if (!canvas || !canvas.getContext) {
|
|
return false;
|
|
}
|
|
|
|
var ctx = canvas.getContext('2d');
|
|
if (!ctx.getImageData) {
|
|
return false;
|
|
}
|
|
if (!ctx.fillText) {
|
|
return false;
|
|
}
|
|
|
|
if (!Array.prototype.some) {
|
|
return false;
|
|
}
|
|
if (!Array.prototype.push) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}());
|
|
|
|
// Find out if the browser impose minium font size by
|
|
// drawing small texts on a canvas and measure it's width.
|
|
var minFontSize = (function getMinFontSize() {
|
|
if (!isSupported) {
|
|
return;
|
|
}
|
|
|
|
var ctx = document.createElement('canvas').getContext('2d');
|
|
|
|
// start from 20
|
|
var size = 20;
|
|
|
|
// two sizes to measure
|
|
var hanWidth, mWidth;
|
|
|
|
while (size) {
|
|
ctx.font = size.toString(10) + 'px sans-serif';
|
|
if ((ctx.measureText('\uFF37').width === hanWidth) &&
|
|
(ctx.measureText('m').width) === mWidth) {
|
|
return (size + 1);
|
|
}
|
|
|
|
hanWidth = ctx.measureText('\uFF37').width;
|
|
mWidth = ctx.measureText('m').width;
|
|
|
|
size--;
|
|
}
|
|
|
|
return 0;
|
|
})();
|
|
|
|
// Based on http://jsfromhell.com/array/shuffle
|
|
var shuffleArray = function shuffleArray(arr) {
|
|
for (var j, x, i = arr.length; i;
|
|
j = Math.floor(Math.random() * i),
|
|
x = arr[--i], arr[i] = arr[j],
|
|
arr[j] = x) {}
|
|
return arr;
|
|
};
|
|
|
|
var WordCloud = function WordCloud(elements, options) {
|
|
if (!isSupported) {
|
|
return;
|
|
}
|
|
|
|
if (!Array.isArray(elements)) {
|
|
elements = [elements];
|
|
}
|
|
|
|
elements.forEach(function(el, i) {
|
|
if (typeof el === 'string') {
|
|
elements[i] = document.getElementById(el);
|
|
if (!elements[i]) {
|
|
throw 'The element id specified is not found.';
|
|
}
|
|
} else if (!el.tagName && !el.appendChild) {
|
|
throw 'You must pass valid HTML elements, or ID of the element.';
|
|
}
|
|
});
|
|
|
|
/* Default values to be overwritten by options object */
|
|
var settings = {
|
|
list: [],
|
|
fontFamily: '"Trebuchet MS", "Heiti TC", "微軟正黑體", ' +
|
|
'"Arial Unicode MS", "Droid Fallback Sans", sans-serif',
|
|
fontWeight: 'normal',
|
|
color: 'random-dark',
|
|
minSize: 0, // 0 to disable
|
|
weightFactor: 1,
|
|
clearCanvas: true,
|
|
backgroundColor: '#fff', // opaque white = rgba(255, 255, 255, 1)
|
|
|
|
gridSize: 8,
|
|
drawOutOfBound: false,
|
|
origin: null,
|
|
|
|
drawMask: false,
|
|
maskColor: 'rgba(255,0,0,0.3)',
|
|
maskGapWidth: 0.3,
|
|
|
|
wait: 0,
|
|
abortThreshold: 0, // disabled
|
|
abort: function noop() {},
|
|
|
|
minRotation: - Math.PI / 2,
|
|
maxRotation: Math.PI / 2,
|
|
rotationStep: 0.1,
|
|
|
|
shuffle: true,
|
|
rotateRatio: 0.1,
|
|
|
|
shape: 'circle',
|
|
ellipticity: 0.65,
|
|
|
|
classes: null,
|
|
|
|
hover: null,
|
|
click: null
|
|
};
|
|
|
|
if (options) {
|
|
for (var key in options) {
|
|
if (key in settings) {
|
|
settings[key] = options[key];
|
|
}
|
|
}
|
|
}
|
|
|
|
/* Convert weightFactor into a function */
|
|
if (typeof settings.weightFactor !== 'function') {
|
|
var factor = settings.weightFactor;
|
|
settings.weightFactor = function weightFactor(pt) {
|
|
return pt * factor; //in px
|
|
};
|
|
}
|
|
|
|
/* Convert shape into a function */
|
|
if (typeof settings.shape !== 'function') {
|
|
switch (settings.shape) {
|
|
case 'circle':
|
|
/* falls through */
|
|
default:
|
|
// 'circle' is the default and a shortcut in the code loop.
|
|
settings.shape = 'circle';
|
|
break;
|
|
|
|
case 'cardioid':
|
|
settings.shape = function shapeCardioid(theta) {
|
|
return 1 - Math.sin(theta);
|
|
};
|
|
break;
|
|
|
|
/*
|
|
To work out an X-gon, one has to calculate "m",
|
|
where 1/(cos(2*PI/X)+m*sin(2*PI/X)) = 1/(cos(0)+m*sin(0))
|
|
http://www.wolframalpha.com/input/?i=1%2F%28cos%282*PI%2FX%29%2Bm*sin%28
|
|
2*PI%2FX%29%29+%3D+1%2F%28cos%280%29%2Bm*sin%280%29%29
|
|
Copy the solution into polar equation r = 1/(cos(t') + m*sin(t'))
|
|
where t' equals to mod(t, 2PI/X);
|
|
*/
|
|
|
|
case 'diamond':
|
|
case 'square':
|
|
// http://www.wolframalpha.com/input/?i=plot+r+%3D+1%2F%28cos%28mod+
|
|
// %28t%2C+PI%2F2%29%29%2Bsin%28mod+%28t%2C+PI%2F2%29%29%29%2C+t+%3D
|
|
// +0+..+2*PI
|
|
settings.shape = function shapeSquare(theta) {
|
|
var thetaPrime = theta % (2 * Math.PI / 4);
|
|
return 1 / (Math.cos(thetaPrime) + Math.sin(thetaPrime));
|
|
};
|
|
break;
|
|
|
|
case 'triangle-forward':
|
|
// http://www.wolframalpha.com/input/?i=plot+r+%3D+1%2F%28cos%28mod+
|
|
// %28t%2C+2*PI%2F3%29%29%2Bsqrt%283%29sin%28mod+%28t%2C+2*PI%2F3%29
|
|
// %29%29%2C+t+%3D+0+..+2*PI
|
|
settings.shape = function shapeTriangle(theta) {
|
|
var thetaPrime = theta % (2 * Math.PI / 3);
|
|
return 1 / (Math.cos(thetaPrime) +
|
|
Math.sqrt(3) * Math.sin(thetaPrime));
|
|
};
|
|
break;
|
|
|
|
case 'triangle':
|
|
case 'triangle-upright':
|
|
settings.shape = function shapeTriangle(theta) {
|
|
var thetaPrime = (theta + Math.PI * 3 / 2) % (2 * Math.PI / 3);
|
|
return 1 / (Math.cos(thetaPrime) +
|
|
Math.sqrt(3) * Math.sin(thetaPrime));
|
|
};
|
|
break;
|
|
|
|
case 'pentagon':
|
|
settings.shape = function shapePentagon(theta) {
|
|
var thetaPrime = (theta + 0.955) % (2 * Math.PI / 5);
|
|
return 1 / (Math.cos(thetaPrime) +
|
|
0.726543 * Math.sin(thetaPrime));
|
|
};
|
|
break;
|
|
|
|
case 'star':
|
|
settings.shape = function shapeStar(theta) {
|
|
var thetaPrime = (theta + 0.955) % (2 * Math.PI / 10);
|
|
if ((theta + 0.955) % (2 * Math.PI / 5) - (2 * Math.PI / 10) >= 0) {
|
|
return 1 / (Math.cos((2 * Math.PI / 10) - thetaPrime) +
|
|
3.07768 * Math.sin((2 * Math.PI / 10) - thetaPrime));
|
|
} else {
|
|
return 1 / (Math.cos(thetaPrime) +
|
|
3.07768 * Math.sin(thetaPrime));
|
|
}
|
|
};
|
|
break;
|
|
}
|
|
}
|
|
|
|
/* Make sure gridSize is a whole number and is not smaller than 4px */
|
|
settings.gridSize = Math.max(Math.floor(settings.gridSize), 4);
|
|
|
|
/* shorthand */
|
|
var g = settings.gridSize;
|
|
var maskRectWidth = g - settings.maskGapWidth;
|
|
|
|
/* normalize rotation settings */
|
|
var rotationRange = Math.abs(settings.maxRotation - settings.minRotation);
|
|
var minRotation = Math.min(settings.maxRotation, settings.minRotation);
|
|
var rotationStep = settings.rotationStep;
|
|
|
|
/* information/object available to all functions, set when start() */
|
|
var grid, // 2d array containing filling information
|
|
ngx, ngy, // width and height of the grid
|
|
center, // position of the center of the cloud
|
|
maxRadius;
|
|
|
|
/* timestamp for measuring each putWord() action */
|
|
var escapeTime;
|
|
|
|
/* function for getting the color of the text */
|
|
var getTextColor;
|
|
function random_hsl_color(min, max) {
|
|
return 'hsl(' +
|
|
(Math.random() * 360).toFixed() + ',' +
|
|
(Math.random() * 30 + 70).toFixed() + '%,' +
|
|
(Math.random() * (max - min) + min).toFixed() + '%)';
|
|
}
|
|
switch (settings.color) {
|
|
case 'random-dark':
|
|
getTextColor = function getRandomDarkColor() {
|
|
return random_hsl_color(10, 50);
|
|
};
|
|
break;
|
|
|
|
case 'random-light':
|
|
getTextColor = function getRandomLightColor() {
|
|
return random_hsl_color(50, 90);
|
|
};
|
|
break;
|
|
|
|
default:
|
|
if (typeof settings.color === 'function') {
|
|
getTextColor = settings.color;
|
|
}
|
|
break;
|
|
}
|
|
|
|
/* function for getting the classes of the text */
|
|
var getTextClasses = null;
|
|
if (typeof settings.classes === 'function') {
|
|
getTextClasses = settings.classes;
|
|
}
|
|
|
|
/* Interactive */
|
|
var interactive = false;
|
|
var infoGrid = [];
|
|
var hovered;
|
|
|
|
var getInfoGridFromMouseTouchEvent =
|
|
function getInfoGridFromMouseTouchEvent(evt) {
|
|
var canvas = evt.currentTarget;
|
|
var rect = canvas.getBoundingClientRect();
|
|
var clientX;
|
|
var clientY;
|
|
/** Detect if touches are available */
|
|
if (evt.touches) {
|
|
clientX = evt.touches[0].clientX;
|
|
clientY = evt.touches[0].clientY;
|
|
} else {
|
|
clientX = evt.clientX;
|
|
clientY = evt.clientY;
|
|
}
|
|
var eventX = clientX - rect.left;
|
|
var eventY = clientY - rect.top;
|
|
|
|
var x = Math.floor(eventX * ((canvas.width / rect.width) || 1) / g);
|
|
var y = Math.floor(eventY * ((canvas.height / rect.height) || 1) / g);
|
|
|
|
return infoGrid[x][y];
|
|
};
|
|
|
|
var wordcloudhover = function wordcloudhover(evt) {
|
|
var info = getInfoGridFromMouseTouchEvent(evt);
|
|
|
|
if (hovered === info) {
|
|
return;
|
|
}
|
|
|
|
hovered = info;
|
|
if (!info) {
|
|
settings.hover(undefined, undefined, evt);
|
|
|
|
return;
|
|
}
|
|
|
|
settings.hover(info.item, info.dimension, evt);
|
|
|
|
};
|
|
|
|
var wordcloudclick = function wordcloudclick(evt) {
|
|
var info = getInfoGridFromMouseTouchEvent(evt);
|
|
if (!info) {
|
|
return;
|
|
}
|
|
|
|
settings.click(info.item, info.dimension, evt);
|
|
evt.preventDefault();
|
|
};
|
|
|
|
/* Get points on the grid for a given radius away from the center */
|
|
var pointsAtRadius = [];
|
|
var getPointsAtRadius = function getPointsAtRadius(radius) {
|
|
if (pointsAtRadius[radius]) {
|
|
return pointsAtRadius[radius];
|
|
}
|
|
|
|
// Look for these number of points on each radius
|
|
var T = radius * 8;
|
|
|
|
// Getting all the points at this radius
|
|
var t = T;
|
|
var points = [];
|
|
|
|
if (radius === 0) {
|
|
points.push([center[0], center[1], 0]);
|
|
}
|
|
|
|
while (t--) {
|
|
// distort the radius to put the cloud in shape
|
|
var rx = 1;
|
|
if (settings.shape !== 'circle') {
|
|
rx = settings.shape(t / T * 2 * Math.PI); // 0 to 1
|
|
}
|
|
|
|
// Push [x, y, t]; t is used solely for getTextColor()
|
|
points.push([
|
|
center[0] + radius * rx * Math.cos(-t / T * 2 * Math.PI),
|
|
center[1] + radius * rx * Math.sin(-t / T * 2 * Math.PI) *
|
|
settings.ellipticity,
|
|
t / T * 2 * Math.PI]);
|
|
}
|
|
|
|
pointsAtRadius[radius] = points;
|
|
return points;
|
|
};
|
|
|
|
/* Return true if we had spent too much time */
|
|
var exceedTime = function exceedTime() {
|
|
return ((settings.abortThreshold > 0) &&
|
|
((new Date()).getTime() - escapeTime > settings.abortThreshold));
|
|
};
|
|
|
|
/* Get the deg of rotation according to settings, and luck. */
|
|
var getRotateDeg = function getRotateDeg() {
|
|
if (settings.rotateRatio === 0) {
|
|
return 0;
|
|
}
|
|
|
|
if (Math.random() > settings.rotateRatio) {
|
|
return 0;
|
|
}
|
|
|
|
if (rotationRange === 0) {
|
|
return minRotation;
|
|
}
|
|
|
|
return minRotation + Math.round(Math.random() * rotationRange / rotationStep) * rotationStep;
|
|
};
|
|
|
|
var getTextInfo = function getTextInfo(word, weight, rotateDeg) {
|
|
// calculate the acutal font size
|
|
// fontSize === 0 means weightFactor function wants the text skipped,
|
|
// and size < minSize means we cannot draw the text.
|
|
var debug = false;
|
|
var fontSize = settings.weightFactor(weight);
|
|
if (fontSize <= settings.minSize) {
|
|
return false;
|
|
}
|
|
|
|
// Scale factor here is to make sure fillText is not limited by
|
|
// the minium font size set by browser.
|
|
// It will always be 1 or 2n.
|
|
var mu = 1;
|
|
if (fontSize < minFontSize) {
|
|
mu = (function calculateScaleFactor() {
|
|
var mu = 2;
|
|
while (mu * fontSize < minFontSize) {
|
|
mu += 2;
|
|
}
|
|
return mu;
|
|
})();
|
|
}
|
|
|
|
var fcanvas = document.createElement('canvas');
|
|
var fctx = fcanvas.getContext('2d', { willReadFrequently: true });
|
|
|
|
fctx.font = settings.fontWeight + ' ' +
|
|
(fontSize * mu).toString(10) + 'px ' + settings.fontFamily;
|
|
|
|
// Estimate the dimension of the text with measureText().
|
|
var fw = fctx.measureText(word).width / mu;
|
|
var fh = Math.max(fontSize * mu,
|
|
fctx.measureText('m').width,
|
|
fctx.measureText('\uFF37').width) / mu;
|
|
|
|
// Create a boundary box that is larger than our estimates,
|
|
// so text don't get cut of (it sill might)
|
|
var boxWidth = fw + fh * 2;
|
|
var boxHeight = fh * 3;
|
|
var fgw = Math.ceil(boxWidth / g);
|
|
var fgh = Math.ceil(boxHeight / g);
|
|
boxWidth = fgw * g;
|
|
boxHeight = fgh * g;
|
|
|
|
// Calculate the proper offsets to make the text centered at
|
|
// the preferred position.
|
|
|
|
// This is simply half of the width.
|
|
var fillTextOffsetX = - fw / 2;
|
|
// Instead of moving the box to the exact middle of the preferred
|
|
// position, for Y-offset we move 0.4 instead, so Latin alphabets look
|
|
// vertical centered.
|
|
var fillTextOffsetY = - fh * 0.4;
|
|
|
|
// Calculate the actual dimension of the canvas, considering the rotation.
|
|
var cgh = Math.ceil((boxWidth * Math.abs(Math.sin(rotateDeg)) +
|
|
boxHeight * Math.abs(Math.cos(rotateDeg))) / g);
|
|
var cgw = Math.ceil((boxWidth * Math.abs(Math.cos(rotateDeg)) +
|
|
boxHeight * Math.abs(Math.sin(rotateDeg))) / g);
|
|
var width = cgw * g;
|
|
var height = cgh * g;
|
|
|
|
fcanvas.setAttribute('width', width);
|
|
fcanvas.setAttribute('height', height);
|
|
|
|
if (debug) {
|
|
// Attach fcanvas to the DOM
|
|
document.body.appendChild(fcanvas);
|
|
// Save it's state so that we could restore and draw the grid correctly.
|
|
fctx.save();
|
|
}
|
|
|
|
// Scale the canvas with |mu|.
|
|
fctx.scale(1 / mu, 1 / mu);
|
|
fctx.translate(width * mu / 2, height * mu / 2);
|
|
fctx.rotate(- rotateDeg);
|
|
|
|
// Once the width/height is set, ctx info will be reset.
|
|
// Set it again here.
|
|
fctx.font = settings.fontWeight + ' ' +
|
|
(fontSize * mu).toString(10) + 'px ' + settings.fontFamily;
|
|
|
|
// Fill the text into the fcanvas.
|
|
// XXX: We cannot because textBaseline = 'top' here because
|
|
// Firefox and Chrome uses different default line-height for canvas.
|
|
// Please read https://bugzil.la/737852#c6.
|
|
// Here, we use textBaseline = 'middle' and draw the text at exactly
|
|
// 0.5 * fontSize lower.
|
|
fctx.fillStyle = '#000';
|
|
fctx.textBaseline = 'middle';
|
|
fctx.fillText(word, fillTextOffsetX * mu,
|
|
(fillTextOffsetY + fontSize * 0.5) * mu);
|
|
|
|
// Get the pixels of the text
|
|
var imageData = fctx.getImageData(0, 0, width, height).data;
|
|
|
|
if (exceedTime()) {
|
|
return false;
|
|
}
|
|
|
|
if (debug) {
|
|
// Draw the box of the original estimation
|
|
fctx.strokeRect(fillTextOffsetX * mu,
|
|
fillTextOffsetY, fw * mu, fh * mu);
|
|
fctx.restore();
|
|
}
|
|
|
|
// Read the pixels and save the information to the occupied array
|
|
var occupied = [];
|
|
var gx = cgw, gy, x, y;
|
|
var bounds = [cgh / 2, cgw / 2, cgh / 2, cgw / 2];
|
|
while (gx--) {
|
|
gy = cgh;
|
|
while (gy--) {
|
|
y = g;
|
|
singleGridLoop: {
|
|
while (y--) {
|
|
x = g;
|
|
while (x--) {
|
|
if (imageData[((gy * g + y) * width +
|
|
(gx * g + x)) * 4 + 3]) {
|
|
occupied.push([gx, gy]);
|
|
|
|
if (gx < bounds[3]) {
|
|
bounds[3] = gx;
|
|
}
|
|
if (gx > bounds[1]) {
|
|
bounds[1] = gx;
|
|
}
|
|
if (gy < bounds[0]) {
|
|
bounds[0] = gy;
|
|
}
|
|
if (gy > bounds[2]) {
|
|
bounds[2] = gy;
|
|
}
|
|
|
|
if (debug) {
|
|
fctx.fillStyle = 'rgba(255, 0, 0, 0.5)';
|
|
fctx.fillRect(gx * g, gy * g, g - 0.5, g - 0.5);
|
|
}
|
|
break singleGridLoop;
|
|
}
|
|
}
|
|
}
|
|
if (debug) {
|
|
fctx.fillStyle = 'rgba(0, 0, 255, 0.5)';
|
|
fctx.fillRect(gx * g, gy * g, g - 0.5, g - 0.5);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (debug) {
|
|
fctx.fillStyle = 'rgba(0, 255, 0, 0.5)';
|
|
fctx.fillRect(bounds[3] * g,
|
|
bounds[0] * g,
|
|
(bounds[1] - bounds[3] + 1) * g,
|
|
(bounds[2] - bounds[0] + 1) * g);
|
|
}
|
|
|
|
// Return information needed to create the text on the real canvas
|
|
return {
|
|
mu: mu,
|
|
occupied: occupied,
|
|
bounds: bounds,
|
|
gw: cgw,
|
|
gh: cgh,
|
|
fillTextOffsetX: fillTextOffsetX,
|
|
fillTextOffsetY: fillTextOffsetY,
|
|
fillTextWidth: fw,
|
|
fillTextHeight: fh,
|
|
fontSize: fontSize
|
|
};
|
|
};
|
|
|
|
/* Determine if there is room available in the given dimension */
|
|
var canFitText = function canFitText(gx, gy, gw, gh, occupied) {
|
|
// Go through the occupied points,
|
|
// return false if the space is not available.
|
|
var i = occupied.length;
|
|
while (i--) {
|
|
var px = gx + occupied[i][0];
|
|
var py = gy + occupied[i][1];
|
|
|
|
if (px >= ngx || py >= ngy || px < 0 || py < 0) {
|
|
if (!settings.drawOutOfBound) {
|
|
return false;
|
|
}
|
|
continue;
|
|
}
|
|
|
|
if (!grid[px][py]) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
};
|
|
|
|
/* Actually draw the text on the grid */
|
|
var drawText = function drawText(gx, gy, info, word, weight,
|
|
distance, theta, rotateDeg, attributes) {
|
|
|
|
var fontSize = info.fontSize;
|
|
var color;
|
|
if (getTextColor) {
|
|
color = getTextColor(word, weight, fontSize, distance, theta);
|
|
} else {
|
|
color = settings.color;
|
|
}
|
|
|
|
var classes;
|
|
if (getTextClasses) {
|
|
classes = getTextClasses(word, weight, fontSize, distance, theta);
|
|
} else {
|
|
classes = settings.classes;
|
|
}
|
|
|
|
var dimension;
|
|
var bounds = info.bounds;
|
|
dimension = {
|
|
x: (gx + bounds[3]) * g,
|
|
y: (gy + bounds[0]) * g,
|
|
w: (bounds[1] - bounds[3] + 1) * g,
|
|
h: (bounds[2] - bounds[0] + 1) * g
|
|
};
|
|
|
|
elements.forEach(function(el) {
|
|
if (el.getContext) {
|
|
var ctx = el.getContext('2d');
|
|
var mu = info.mu;
|
|
|
|
// Save the current state before messing it
|
|
ctx.save();
|
|
ctx.scale(1 / mu, 1 / mu);
|
|
|
|
ctx.font = settings.fontWeight + ' ' +
|
|
(fontSize * mu).toString(10) + 'px ' + settings.fontFamily;
|
|
ctx.fillStyle = color;
|
|
|
|
// Translate the canvas position to the origin coordinate of where
|
|
// the text should be put.
|
|
ctx.translate((gx + info.gw / 2) * g * mu,
|
|
(gy + info.gh / 2) * g * mu);
|
|
|
|
if (rotateDeg !== 0) {
|
|
ctx.rotate(- rotateDeg);
|
|
}
|
|
|
|
// Finally, fill the text.
|
|
|
|
// XXX: We cannot because textBaseline = 'top' here because
|
|
// Firefox and Chrome uses different default line-height for canvas.
|
|
// Please read https://bugzil.la/737852#c6.
|
|
// Here, we use textBaseline = 'middle' and draw the text at exactly
|
|
// 0.5 * fontSize lower.
|
|
ctx.textBaseline = 'middle';
|
|
ctx.fillText(word, info.fillTextOffsetX * mu,
|
|
(info.fillTextOffsetY + fontSize * 0.5) * mu);
|
|
|
|
// The below box is always matches how <span>s are positioned
|
|
/* ctx.strokeRect(info.fillTextOffsetX, info.fillTextOffsetY,
|
|
info.fillTextWidth, info.fillTextHeight); */
|
|
|
|
// Restore the state.
|
|
ctx.restore();
|
|
} else {
|
|
// drawText on DIV element
|
|
var span = document.createElement('span');
|
|
var transformRule = '';
|
|
transformRule = 'rotate(' + (- rotateDeg / Math.PI * 180) + 'deg) ';
|
|
if (info.mu !== 1) {
|
|
transformRule +=
|
|
'translateX(-' + (info.fillTextWidth / 4) + 'px) ' +
|
|
'scale(' + (1 / info.mu) + ')';
|
|
}
|
|
var styleRules = {
|
|
'position': 'absolute',
|
|
'display': 'block',
|
|
'font': settings.fontWeight + ' ' +
|
|
(fontSize * info.mu) + 'px ' + settings.fontFamily,
|
|
'left': ((gx + info.gw / 2) * g + info.fillTextOffsetX) + 'px',
|
|
'top': ((gy + info.gh / 2) * g + info.fillTextOffsetY) + 'px',
|
|
'width': info.fillTextWidth + 'px',
|
|
'height': info.fillTextHeight + 'px',
|
|
'lineHeight': fontSize + 'px',
|
|
'whiteSpace': 'nowrap',
|
|
'transform': transformRule,
|
|
'webkitTransform': transformRule,
|
|
'msTransform': transformRule,
|
|
'transformOrigin': '50% 40%',
|
|
'webkitTransformOrigin': '50% 40%',
|
|
'msTransformOrigin': '50% 40%'
|
|
};
|
|
if (color) {
|
|
styleRules.color = color;
|
|
}
|
|
span.textContent = word;
|
|
for (var cssProp in styleRules) {
|
|
span.style[cssProp] = styleRules[cssProp];
|
|
}
|
|
if (attributes) {
|
|
for (var attribute in attributes) {
|
|
span.setAttribute(attribute, attributes[attribute]);
|
|
}
|
|
}
|
|
if (classes) {
|
|
span.className += classes;
|
|
}
|
|
el.appendChild(span);
|
|
}
|
|
});
|
|
};
|
|
|
|
/* Help function to updateGrid */
|
|
var fillGridAt = function fillGridAt(x, y, drawMask, dimension, item) {
|
|
if (x >= ngx || y >= ngy || x < 0 || y < 0) {
|
|
return;
|
|
}
|
|
|
|
grid[x][y] = false;
|
|
|
|
if (drawMask) {
|
|
var ctx = elements[0].getContext('2d');
|
|
ctx.fillRect(x * g, y * g, maskRectWidth, maskRectWidth);
|
|
}
|
|
|
|
if (interactive) {
|
|
infoGrid[x][y] = { item: item, dimension: dimension };
|
|
}
|
|
};
|
|
|
|
/* Update the filling information of the given space with occupied points.
|
|
Draw the mask on the canvas if necessary. */
|
|
var updateGrid = function updateGrid(gx, gy, gw, gh, info, item) {
|
|
var occupied = info.occupied;
|
|
var drawMask = settings.drawMask;
|
|
var ctx;
|
|
if (drawMask) {
|
|
ctx = elements[0].getContext('2d');
|
|
ctx.save();
|
|
ctx.fillStyle = settings.maskColor;
|
|
}
|
|
|
|
var dimension;
|
|
if (interactive) {
|
|
var bounds = info.bounds;
|
|
dimension = {
|
|
x: (gx + bounds[3]) * g,
|
|
y: (gy + bounds[0]) * g,
|
|
w: (bounds[1] - bounds[3] + 1) * g,
|
|
h: (bounds[2] - bounds[0] + 1) * g
|
|
};
|
|
}
|
|
|
|
var i = occupied.length;
|
|
while (i--) {
|
|
var px = gx + occupied[i][0];
|
|
var py = gy + occupied[i][1];
|
|
|
|
if (px >= ngx || py >= ngy || px < 0 || py < 0) {
|
|
continue;
|
|
}
|
|
|
|
fillGridAt(px, py, drawMask, dimension, item);
|
|
}
|
|
|
|
if (drawMask) {
|
|
ctx.restore();
|
|
}
|
|
};
|
|
|
|
/* putWord() processes each item on the list,
|
|
calculate it's size and determine it's position, and actually
|
|
put it on the canvas. */
|
|
var putWord = function putWord(item) {
|
|
var word, weight, attributes;
|
|
if (Array.isArray(item)) {
|
|
word = item[0];
|
|
weight = item[1];
|
|
} else {
|
|
word = item.word;
|
|
weight = item.weight;
|
|
attributes = item.attributes;
|
|
}
|
|
var rotateDeg = getRotateDeg();
|
|
|
|
// get info needed to put the text onto the canvas
|
|
var info = getTextInfo(word, weight, rotateDeg);
|
|
|
|
// not getting the info means we shouldn't be drawing this one.
|
|
if (!info) {
|
|
return false;
|
|
}
|
|
|
|
if (exceedTime()) {
|
|
return false;
|
|
}
|
|
|
|
// If drawOutOfBound is set to false,
|
|
// skip the loop if we have already know the bounding box of
|
|
// word is larger than the canvas.
|
|
if (!settings.drawOutOfBound) {
|
|
var bounds = info.bounds;
|
|
if ((bounds[1] - bounds[3] + 1) > ngx ||
|
|
(bounds[2] - bounds[0] + 1) > ngy) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
// Determine the position to put the text by
|
|
// start looking for the nearest points
|
|
var r = maxRadius + 1;
|
|
|
|
var tryToPutWordAtPoint = function(gxy) {
|
|
var gx = Math.floor(gxy[0] - info.gw / 2);
|
|
var gy = Math.floor(gxy[1] - info.gh / 2);
|
|
var gw = info.gw;
|
|
var gh = info.gh;
|
|
|
|
// If we cannot fit the text at this position, return false
|
|
// and go to the next position.
|
|
if (!canFitText(gx, gy, gw, gh, info.occupied)) {
|
|
return false;
|
|
}
|
|
|
|
// Actually put the text on the canvas
|
|
drawText(gx, gy, info, word, weight,
|
|
(maxRadius - r), gxy[2], rotateDeg, attributes);
|
|
|
|
// Mark the spaces on the grid as filled
|
|
updateGrid(gx, gy, gw, gh, info, item);
|
|
|
|
return {
|
|
gx: gx,
|
|
gy: gy,
|
|
rot: rotateDeg,
|
|
info: info
|
|
};
|
|
};
|
|
|
|
while (r--) {
|
|
var points = getPointsAtRadius(maxRadius - r);
|
|
|
|
if (settings.shuffle) {
|
|
points = [].concat(points);
|
|
shuffleArray(points);
|
|
}
|
|
|
|
// Try to fit the words by looking at each point.
|
|
// array.some() will stop and return true
|
|
// when putWordAtPoint() returns true.
|
|
for (var i = 0; i < points.length; i++) {
|
|
var res = tryToPutWordAtPoint(points[i]);
|
|
if (res) {
|
|
return res;
|
|
}
|
|
}
|
|
|
|
// var drawn = points.some(tryToPutWordAtPoint);
|
|
// if (drawn) {
|
|
// // leave putWord() and return true
|
|
// return true;
|
|
// }
|
|
}
|
|
// we tried all distances but text won't fit, return null
|
|
return null;
|
|
};
|
|
|
|
/* Send DOM event to all elements. Will stop sending event and return
|
|
if the previous one is canceled (for cancelable events). */
|
|
var sendEvent = function sendEvent(type, cancelable, detail) {
|
|
if (cancelable) {
|
|
return !elements.some(function(el) {
|
|
var evt = document.createEvent('CustomEvent');
|
|
evt.initCustomEvent(type, true, cancelable, detail || {});
|
|
return !el.dispatchEvent(evt);
|
|
}, this);
|
|
} else {
|
|
elements.forEach(function(el) {
|
|
var evt = document.createEvent('CustomEvent');
|
|
evt.initCustomEvent(type, true, cancelable, detail || {});
|
|
el.dispatchEvent(evt);
|
|
}, this);
|
|
}
|
|
};
|
|
|
|
/* Start drawing on a canvas */
|
|
var start = function start() {
|
|
// For dimensions, clearCanvas etc.,
|
|
// we only care about the first element.
|
|
var canvas = elements[0];
|
|
|
|
if (canvas.getContext) {
|
|
ngx = Math.ceil(canvas.width / g);
|
|
ngy = Math.ceil(canvas.height / g);
|
|
} else {
|
|
var rect = canvas.getBoundingClientRect();
|
|
ngx = Math.ceil(rect.width / g);
|
|
ngy = Math.ceil(rect.height / g);
|
|
}
|
|
|
|
// Sending a wordcloudstart event which cause the previous loop to stop.
|
|
// Do nothing if the event is canceled.
|
|
if (!sendEvent('wordcloudstart', true)) {
|
|
return;
|
|
}
|
|
|
|
// Determine the center of the word cloud
|
|
center = (settings.origin) ?
|
|
[settings.origin[0]/g, settings.origin[1]/g] :
|
|
[ngx / 2, ngy / 2];
|
|
|
|
// Maxium radius to look for space
|
|
maxRadius = Math.floor(Math.sqrt(ngx * ngx + ngy * ngy));
|
|
|
|
/* Clear the canvas only if the clearCanvas is set,
|
|
if not, update the grid to the current canvas state */
|
|
grid = [];
|
|
|
|
var gx, gy, i;
|
|
if (!canvas.getContext || settings.clearCanvas) {
|
|
elements.forEach(function(el) {
|
|
if (el.getContext) {
|
|
var ctx = el.getContext('2d');
|
|
ctx.fillStyle = settings.backgroundColor;
|
|
ctx.clearRect(0, 0, ngx * (g + 1), ngy * (g + 1));
|
|
ctx.fillRect(0, 0, ngx * (g + 1), ngy * (g + 1));
|
|
} else {
|
|
el.textContent = '';
|
|
el.style.backgroundColor = settings.backgroundColor;
|
|
el.style.position = 'relative';
|
|
}
|
|
});
|
|
|
|
/* fill the grid with empty state */
|
|
gx = ngx;
|
|
while (gx--) {
|
|
grid[gx] = [];
|
|
gy = ngy;
|
|
while (gy--) {
|
|
grid[gx][gy] = true;
|
|
}
|
|
}
|
|
} else {
|
|
/* Determine bgPixel by creating
|
|
another canvas and fill the specified background color. */
|
|
var bctx = document.createElement('canvas').getContext('2d');
|
|
|
|
bctx.fillStyle = settings.backgroundColor;
|
|
bctx.fillRect(0, 0, 1, 1);
|
|
var bgPixel = bctx.getImageData(0, 0, 1, 1).data;
|
|
|
|
/* Read back the pixels of the canvas we got to tell which part of the
|
|
canvas is empty.
|
|
(no clearCanvas only works with a canvas, not divs) */
|
|
var imageData =
|
|
canvas.getContext('2d').getImageData(0, 0, ngx * g, ngy * g).data;
|
|
|
|
gx = ngx;
|
|
var x, y;
|
|
while (gx--) {
|
|
grid[gx] = [];
|
|
gy = ngy;
|
|
while (gy--) {
|
|
y = g;
|
|
singleGridLoop: while (y--) {
|
|
x = g;
|
|
while (x--) {
|
|
i = 4;
|
|
while (i--) {
|
|
if (imageData[((gy * g + y) * ngx * g +
|
|
(gx * g + x)) * 4 + i] !== bgPixel[i]) {
|
|
grid[gx][gy] = false;
|
|
break singleGridLoop;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (grid[gx][gy] !== false) {
|
|
grid[gx][gy] = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
imageData = bctx = bgPixel = undefined;
|
|
}
|
|
|
|
// fill the infoGrid with empty state if we need it
|
|
if (settings.hover || settings.click) {
|
|
|
|
interactive = true;
|
|
|
|
/* fill the grid with empty state */
|
|
gx = ngx + 1;
|
|
while (gx--) {
|
|
infoGrid[gx] = [];
|
|
}
|
|
|
|
if (settings.hover) {
|
|
canvas.addEventListener('mousemove', wordcloudhover);
|
|
}
|
|
|
|
if (settings.click) {
|
|
canvas.addEventListener('click', wordcloudclick);
|
|
canvas.addEventListener('touchstart', wordcloudclick);
|
|
canvas.addEventListener('touchend', function (e) {
|
|
e.preventDefault();
|
|
});
|
|
canvas.style.webkitTapHighlightColor = 'rgba(0, 0, 0, 0)';
|
|
}
|
|
|
|
canvas.addEventListener('wordcloudstart', function stopInteraction() {
|
|
canvas.removeEventListener('wordcloudstart', stopInteraction);
|
|
|
|
canvas.removeEventListener('mousemove', wordcloudhover);
|
|
canvas.removeEventListener('click', wordcloudclick);
|
|
hovered = undefined;
|
|
});
|
|
}
|
|
|
|
i = 0;
|
|
var loopingFunction, stoppingFunction;
|
|
if (settings.wait !== 0) {
|
|
loopingFunction = window.setTimeout;
|
|
stoppingFunction = window.clearTimeout;
|
|
} else {
|
|
loopingFunction = window.setImmediate;
|
|
stoppingFunction = window.clearImmediate;
|
|
}
|
|
|
|
var addEventListener = function addEventListener(type, listener) {
|
|
elements.forEach(function(el) {
|
|
el.addEventListener(type, listener);
|
|
}, this);
|
|
};
|
|
|
|
var removeEventListener = function removeEventListener(type, listener) {
|
|
elements.forEach(function(el) {
|
|
el.removeEventListener(type, listener);
|
|
}, this);
|
|
};
|
|
|
|
var anotherWordCloudStart = function anotherWordCloudStart() {
|
|
removeEventListener('wordcloudstart', anotherWordCloudStart);
|
|
stoppingFunction(timer);
|
|
};
|
|
|
|
addEventListener('wordcloudstart', anotherWordCloudStart);
|
|
|
|
var timer = loopingFunction(function loop() {
|
|
if (i >= settings.list.length) {
|
|
stoppingFunction(timer);
|
|
sendEvent('wordcloudstop', false);
|
|
removeEventListener('wordcloudstart', anotherWordCloudStart);
|
|
|
|
return;
|
|
}
|
|
escapeTime = (new Date()).getTime();
|
|
var drawn = putWord(settings.list[i]);
|
|
var canceled = !sendEvent('wordclouddrawn', true, {
|
|
item: settings.list[i], drawn: drawn });
|
|
if (exceedTime() || canceled) {
|
|
stoppingFunction(timer);
|
|
settings.abort();
|
|
sendEvent('wordcloudabort', false);
|
|
sendEvent('wordcloudstop', false);
|
|
removeEventListener('wordcloudstart', anotherWordCloudStart);
|
|
return;
|
|
}
|
|
i++;
|
|
timer = loopingFunction(loop, settings.wait);
|
|
}, settings.wait);
|
|
};
|
|
|
|
// All set, start the drawing
|
|
start();
|
|
};
|
|
|
|
WordCloud.isSupported = isSupported;
|
|
WordCloud.minFontSize = minFontSize;
|
|
|
|
// Expose the library as an AMD module
|
|
if (true) {
|
|
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() { return WordCloud; }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
} else {}
|
|
|
|
})(this); //jshint ignore:line
|
|
|
|
/***/ }),
|
|
|
|
/***/ 16896:
|
|
/*!**********************************************************************************!*\
|
|
!*** ./node_modules/_echarts-wordcloud@1.1.3@echarts-wordcloud/src/wordCloud.js ***!
|
|
\**********************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
|
|
var echarts = __webpack_require__(/*! echarts/lib/echarts */ 3096);
|
|
var layoutUtil = __webpack_require__(/*! echarts/lib/util/layout */ 7357);
|
|
|
|
__webpack_require__(/*! ./WordCloudSeries */ 66607);
|
|
__webpack_require__(/*! ./WordCloudView */ 31041);
|
|
|
|
var wordCloudLayoutHelper = __webpack_require__(/*! ./layout */ 19131);
|
|
|
|
if (!wordCloudLayoutHelper.isSupported) {
|
|
throw new Error('Sorry your browser not support wordCloud');
|
|
}
|
|
|
|
// https://github.com/timdream/wordcloud2.js/blob/c236bee60436e048949f9becc4f0f67bd832dc5c/index.js#L233
|
|
function updateCanvasMask(maskCanvas) {
|
|
var ctx = maskCanvas.getContext('2d');
|
|
var imageData = ctx.getImageData(
|
|
0, 0, maskCanvas.width, maskCanvas.height);
|
|
var newImageData = ctx.createImageData(imageData);
|
|
|
|
var toneSum = 0;
|
|
var toneCnt = 0;
|
|
for (var i = 0; i < imageData.data.length; i += 4) {
|
|
var alpha = imageData.data[i + 3];
|
|
if (alpha > 128) {
|
|
var tone = imageData.data[i]
|
|
+ imageData.data[i + 1]
|
|
+ imageData.data[i + 2];
|
|
toneSum += tone;
|
|
++toneCnt;
|
|
}
|
|
}
|
|
var threshold = toneSum / toneCnt;
|
|
|
|
for (var i = 0; i < imageData.data.length; i += 4) {
|
|
var tone = imageData.data[i]
|
|
+ imageData.data[i + 1]
|
|
+ imageData.data[i + 2];
|
|
var alpha = imageData.data[i + 3];
|
|
|
|
if (alpha < 128 || tone > threshold) {
|
|
// Area not to draw
|
|
newImageData.data[i] = 0;
|
|
newImageData.data[i + 1] = 0;
|
|
newImageData.data[i + 2] = 0;
|
|
newImageData.data[i + 3] = 0;
|
|
}
|
|
else {
|
|
// Area to draw
|
|
// The color must be same with backgroundColor
|
|
newImageData.data[i] = 255;
|
|
newImageData.data[i + 1] = 255;
|
|
newImageData.data[i + 2] = 255;
|
|
newImageData.data[i + 3] = 255;
|
|
}
|
|
}
|
|
|
|
ctx.putImageData(newImageData, 0, 0);
|
|
}
|
|
|
|
echarts.registerLayout(function (ecModel, api) {
|
|
ecModel.eachSeriesByType('wordCloud', function (seriesModel) {
|
|
var gridRect = layoutUtil.getLayoutRect(
|
|
seriesModel.getBoxLayoutParams(), {
|
|
width: api.getWidth(),
|
|
height: api.getHeight()
|
|
}
|
|
);
|
|
var data = seriesModel.getData();
|
|
|
|
var canvas = document.createElement('canvas');
|
|
canvas.width = gridRect.width;
|
|
canvas.height = gridRect.height;
|
|
|
|
var ctx = canvas.getContext('2d');
|
|
var maskImage = seriesModel.get('maskImage');
|
|
if (maskImage) {
|
|
try {
|
|
ctx.drawImage(maskImage, 0, 0, canvas.width, canvas.height);
|
|
updateCanvasMask(canvas);
|
|
}
|
|
catch (e) {
|
|
console.error('Invalid mask image');
|
|
console.error(e.toString());
|
|
}
|
|
}
|
|
|
|
var sizeRange = seriesModel.get('sizeRange');
|
|
var rotationRange = seriesModel.get('rotationRange');
|
|
var valueExtent = data.getDataExtent('value');
|
|
|
|
var DEGREE_TO_RAD = Math.PI / 180;
|
|
var gridSize = seriesModel.get('gridSize');
|
|
wordCloudLayoutHelper(canvas, {
|
|
list: data.mapArray('value', function (value, idx) {
|
|
var itemModel = data.getItemModel(idx);
|
|
return [
|
|
data.getName(idx),
|
|
itemModel.get('textStyle.normal.textSize', true)
|
|
|| echarts.number.linearMap(value, valueExtent, sizeRange),
|
|
idx
|
|
];
|
|
}).sort(function (a, b) {
|
|
// Sort from large to small in case there is no more room for more words
|
|
return b[1] - a[1];
|
|
}),
|
|
fontFamily: seriesModel.get('textStyle.normal.fontFamily')
|
|
|| seriesModel.get('textStyle.emphasis.fontFamily')
|
|
|| ecModel.get('textStyle.fontFamily'),
|
|
fontWeight: seriesModel.get('textStyle.normal.fontWeight')
|
|
|| seriesModel.get('textStyle.emphasis.fontWeight')
|
|
|| ecModel.get('textStyle.fontWeight'),
|
|
gridSize: gridSize,
|
|
|
|
ellipticity: gridRect.height / gridRect.width,
|
|
|
|
minRotation: rotationRange[0] * DEGREE_TO_RAD,
|
|
maxRotation: rotationRange[1] * DEGREE_TO_RAD,
|
|
|
|
clearCanvas: !maskImage,
|
|
|
|
rotateRatio: 1,
|
|
|
|
rotationStep: seriesModel.get('rotationStep') * DEGREE_TO_RAD,
|
|
|
|
drawOutOfBound: seriesModel.get('drawOutOfBound'),
|
|
|
|
shuffle: false,
|
|
|
|
shape: seriesModel.get('shape')
|
|
});
|
|
|
|
function onWordCloudDrawn(e) {
|
|
var item = e.detail.item;
|
|
if (e.detail.drawn && seriesModel.layoutInstance.ondraw) {
|
|
e.detail.drawn.gx += gridRect.x / gridSize;
|
|
e.detail.drawn.gy += gridRect.y / gridSize;
|
|
seriesModel.layoutInstance.ondraw(
|
|
item[0], item[1], item[2], e.detail.drawn
|
|
);
|
|
}
|
|
}
|
|
|
|
canvas.addEventListener('wordclouddrawn', onWordCloudDrawn);
|
|
|
|
if (seriesModel.layoutInstance) {
|
|
// Dispose previous
|
|
seriesModel.layoutInstance.dispose();
|
|
}
|
|
|
|
seriesModel.layoutInstance = {
|
|
ondraw: null,
|
|
|
|
dispose: function () {
|
|
canvas.removeEventListener('wordclouddrawn', onWordCloudDrawn);
|
|
// Abort
|
|
canvas.addEventListener('wordclouddrawn', function (e) {
|
|
// Prevent default to cancle the event and stop the loop
|
|
e.preventDefault();
|
|
});
|
|
}
|
|
};
|
|
});
|
|
});
|
|
|
|
echarts.registerPreprocessor(function (option) {
|
|
var series = (option || {}).series;
|
|
!echarts.util.isArray(series) && (series = series ? [series] : []);
|
|
|
|
var compats = ['shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];
|
|
|
|
echarts.util.each(series, function (seriesItem) {
|
|
if (seriesItem && seriesItem.type === 'wordCloud') {
|
|
var textStyle = seriesItem.textStyle || {};
|
|
|
|
compatTextStyle(textStyle.normal);
|
|
compatTextStyle(textStyle.emphasis);
|
|
}
|
|
});
|
|
|
|
function compatTextStyle(textStyle) {
|
|
textStyle && echarts.util.each(compats, function (key) {
|
|
if (textStyle.hasOwnProperty(key)) {
|
|
textStyle['text' + echarts.format.capitalFirst(key)] = textStyle[key];
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ 83145:
|
|
/*!**********************************************************************************************!*\
|
|
!*** ./node_modules/_react-copy-to-clipboard@5.0.2@react-copy-to-clipboard/lib/Component.js ***!
|
|
\**********************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
|
|
Object.defineProperty(exports, "__esModule", ({
|
|
value: true
|
|
}));
|
|
exports.CopyToClipboard = void 0;
|
|
|
|
var _react = _interopRequireDefault(__webpack_require__(/*! react */ 59301));
|
|
|
|
var _copyToClipboard = _interopRequireDefault(__webpack_require__(/*! copy-to-clipboard */ 25769));
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
|
|
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
|
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
|
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(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 _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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
|
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
|
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
|
|
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
|
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
|
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
|
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
|
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
|
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
|
|
var CopyToClipboard =
|
|
/*#__PURE__*/
|
|
function (_React$PureComponent) {
|
|
_inherits(CopyToClipboard, _React$PureComponent);
|
|
|
|
function CopyToClipboard() {
|
|
var _getPrototypeOf2;
|
|
|
|
var _this;
|
|
|
|
_classCallCheck(this, CopyToClipboard);
|
|
|
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
args[_key] = arguments[_key];
|
|
}
|
|
|
|
_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CopyToClipboard)).call.apply(_getPrototypeOf2, [this].concat(args)));
|
|
|
|
_defineProperty(_assertThisInitialized(_this), "onClick", function (event) {
|
|
var _this$props = _this.props,
|
|
text = _this$props.text,
|
|
onCopy = _this$props.onCopy,
|
|
children = _this$props.children,
|
|
options = _this$props.options;
|
|
|
|
var elem = _react["default"].Children.only(children);
|
|
|
|
var result = (0, _copyToClipboard["default"])(text, options);
|
|
|
|
if (onCopy) {
|
|
onCopy(text, result);
|
|
} // Bypass onClick if it was present
|
|
|
|
|
|
if (elem && elem.props && typeof elem.props.onClick === 'function') {
|
|
elem.props.onClick(event);
|
|
}
|
|
});
|
|
|
|
return _this;
|
|
}
|
|
|
|
_createClass(CopyToClipboard, [{
|
|
key: "render",
|
|
value: function render() {
|
|
var _this$props2 = this.props,
|
|
_text = _this$props2.text,
|
|
_onCopy = _this$props2.onCopy,
|
|
_options = _this$props2.options,
|
|
children = _this$props2.children,
|
|
props = _objectWithoutProperties(_this$props2, ["text", "onCopy", "options", "children"]);
|
|
|
|
var elem = _react["default"].Children.only(children);
|
|
|
|
return _react["default"].cloneElement(elem, _objectSpread({}, props, {
|
|
onClick: this.onClick
|
|
}));
|
|
}
|
|
}]);
|
|
|
|
return CopyToClipboard;
|
|
}(_react["default"].PureComponent);
|
|
|
|
exports.CopyToClipboard = CopyToClipboard;
|
|
|
|
_defineProperty(CopyToClipboard, "defaultProps", {
|
|
onCopy: undefined,
|
|
options: undefined
|
|
});
|
|
|
|
/***/ }),
|
|
|
|
/***/ 56102:
|
|
/*!******************************************************************************************!*\
|
|
!*** ./node_modules/_react-copy-to-clipboard@5.0.2@react-copy-to-clipboard/lib/index.js ***!
|
|
\******************************************************************************************/
|
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
|
|
var _require = __webpack_require__(/*! ./Component */ 83145),
|
|
CopyToClipboard = _require.CopyToClipboard;
|
|
|
|
CopyToClipboard.CopyToClipboard = CopyToClipboard;
|
|
module.exports = CopyToClipboard;
|
|
|
|
/***/ }),
|
|
|
|
/***/ 51581:
|
|
/*!****************************************************************************************************!*\
|
|
!*** ./node_modules/_react-infinite-scroller@1.2.4@react-infinite-scroller/dist/InfiniteScroll.js ***!
|
|
\****************************************************************************************************/
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
|
|
Object.defineProperty(exports, "__esModule", ({
|
|
value: true
|
|
}));
|
|
|
|
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
|
|
var _react = __webpack_require__(/*! react */ 59301);
|
|
|
|
var _react2 = _interopRequireDefault(_react);
|
|
|
|
var _propTypes = __webpack_require__(/*! prop-types */ 12708);
|
|
|
|
var _propTypes2 = _interopRequireDefault(_propTypes);
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
|
|
|
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
|
|
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
|
|
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
|
|
|
var InfiniteScroll = function (_Component) {
|
|
_inherits(InfiniteScroll, _Component);
|
|
|
|
function InfiniteScroll(props) {
|
|
_classCallCheck(this, InfiniteScroll);
|
|
|
|
var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));
|
|
|
|
_this.scrollListener = _this.scrollListener.bind(_this);
|
|
_this.eventListenerOptions = _this.eventListenerOptions.bind(_this);
|
|
_this.mousewheelListener = _this.mousewheelListener.bind(_this);
|
|
return _this;
|
|
}
|
|
|
|
_createClass(InfiniteScroll, [{
|
|
key: 'componentDidMount',
|
|
value: function componentDidMount() {
|
|
this.pageLoaded = this.props.pageStart;
|
|
this.options = this.eventListenerOptions();
|
|
this.attachScrollListener();
|
|
}
|
|
}, {
|
|
key: 'componentDidUpdate',
|
|
value: function componentDidUpdate() {
|
|
if (this.props.isReverse && this.loadMore) {
|
|
var parentElement = this.getParentElement(this.scrollComponent);
|
|
parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;
|
|
this.loadMore = false;
|
|
}
|
|
this.attachScrollListener();
|
|
}
|
|
}, {
|
|
key: 'componentWillUnmount',
|
|
value: function componentWillUnmount() {
|
|
this.detachScrollListener();
|
|
this.detachMousewheelListener();
|
|
}
|
|
}, {
|
|
key: 'isPassiveSupported',
|
|
value: function isPassiveSupported() {
|
|
var passive = false;
|
|
|
|
var testOptions = {
|
|
get passive() {
|
|
passive = true;
|
|
}
|
|
};
|
|
|
|
try {
|
|
document.addEventListener('test', null, testOptions);
|
|
document.removeEventListener('test', null, testOptions);
|
|
} catch (e) {
|
|
// ignore
|
|
}
|
|
return passive;
|
|
}
|
|
}, {
|
|
key: 'eventListenerOptions',
|
|
value: function eventListenerOptions() {
|
|
var options = this.props.useCapture;
|
|
|
|
if (this.isPassiveSupported()) {
|
|
options = {
|
|
useCapture: this.props.useCapture,
|
|
passive: true
|
|
};
|
|
}
|
|
return options;
|
|
}
|
|
|
|
// Set a defaut loader for all your `InfiniteScroll` components
|
|
|
|
}, {
|
|
key: 'setDefaultLoader',
|
|
value: function setDefaultLoader(loader) {
|
|
this.defaultLoader = loader;
|
|
}
|
|
}, {
|
|
key: 'detachMousewheelListener',
|
|
value: function detachMousewheelListener() {
|
|
var scrollEl = window;
|
|
if (this.props.useWindow === false) {
|
|
scrollEl = this.scrollComponent.parentNode;
|
|
}
|
|
|
|
scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);
|
|
}
|
|
}, {
|
|
key: 'detachScrollListener',
|
|
value: function detachScrollListener() {
|
|
var scrollEl = window;
|
|
if (this.props.useWindow === false) {
|
|
scrollEl = this.getParentElement(this.scrollComponent);
|
|
}
|
|
|
|
scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);
|
|
scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);
|
|
}
|
|
}, {
|
|
key: 'getParentElement',
|
|
value: function getParentElement(el) {
|
|
var scrollParent = this.props.getScrollParent && this.props.getScrollParent();
|
|
if (scrollParent != null) {
|
|
return scrollParent;
|
|
}
|
|
return el && el.parentNode;
|
|
}
|
|
}, {
|
|
key: 'filterProps',
|
|
value: function filterProps(props) {
|
|
return props;
|
|
}
|
|
}, {
|
|
key: 'attachScrollListener',
|
|
value: function attachScrollListener() {
|
|
var parentElement = this.getParentElement(this.scrollComponent);
|
|
|
|
if (!this.props.hasMore || !parentElement) {
|
|
return;
|
|
}
|
|
|
|
var scrollEl = window;
|
|
if (this.props.useWindow === false) {
|
|
scrollEl = parentElement;
|
|
}
|
|
|
|
scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);
|
|
scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);
|
|
scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);
|
|
|
|
if (this.props.initialLoad) {
|
|
this.scrollListener();
|
|
}
|
|
}
|
|
}, {
|
|
key: 'mousewheelListener',
|
|
value: function mousewheelListener(e) {
|
|
// Prevents Chrome hangups
|
|
// See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257
|
|
if (e.deltaY === 1 && !this.isPassiveSupported()) {
|
|
e.preventDefault();
|
|
}
|
|
}
|
|
}, {
|
|
key: 'scrollListener',
|
|
value: function scrollListener() {
|
|
var el = this.scrollComponent;
|
|
var scrollEl = window;
|
|
var parentNode = this.getParentElement(el);
|
|
|
|
var offset = void 0;
|
|
if (this.props.useWindow) {
|
|
var doc = document.documentElement || document.body.parentNode || document.body;
|
|
var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;
|
|
if (this.props.isReverse) {
|
|
offset = scrollTop;
|
|
} else {
|
|
offset = this.calculateOffset(el, scrollTop);
|
|
}
|
|
} else if (this.props.isReverse) {
|
|
offset = parentNode.scrollTop;
|
|
} else {
|
|
offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;
|
|
}
|
|
|
|
// Here we make sure the element is visible as well as checking the offset
|
|
if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {
|
|
this.detachScrollListener();
|
|
this.beforeScrollHeight = parentNode.scrollHeight;
|
|
this.beforeScrollTop = parentNode.scrollTop;
|
|
// Call loadMore after detachScrollListener to allow for non-async loadMore functions
|
|
if (typeof this.props.loadMore === 'function') {
|
|
this.props.loadMore(this.pageLoaded += 1);
|
|
this.loadMore = true;
|
|
}
|
|
}
|
|
}
|
|
}, {
|
|
key: 'calculateOffset',
|
|
value: function calculateOffset(el, scrollTop) {
|
|
if (!el) {
|
|
return 0;
|
|
}
|
|
|
|
return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);
|
|
}
|
|
}, {
|
|
key: 'calculateTopPosition',
|
|
value: function calculateTopPosition(el) {
|
|
if (!el) {
|
|
return 0;
|
|
}
|
|
return el.offsetTop + this.calculateTopPosition(el.offsetParent);
|
|
}
|
|
}, {
|
|
key: 'render',
|
|
value: function render() {
|
|
var _this2 = this;
|
|
|
|
var renderProps = this.filterProps(this.props);
|
|
|
|
var children = renderProps.children,
|
|
element = renderProps.element,
|
|
hasMore = renderProps.hasMore,
|
|
initialLoad = renderProps.initialLoad,
|
|
isReverse = renderProps.isReverse,
|
|
loader = renderProps.loader,
|
|
loadMore = renderProps.loadMore,
|
|
pageStart = renderProps.pageStart,
|
|
ref = renderProps.ref,
|
|
threshold = renderProps.threshold,
|
|
useCapture = renderProps.useCapture,
|
|
useWindow = renderProps.useWindow,
|
|
getScrollParent = renderProps.getScrollParent,
|
|
props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);
|
|
|
|
props.ref = function (node) {
|
|
_this2.scrollComponent = node;
|
|
if (ref) {
|
|
ref(node);
|
|
}
|
|
};
|
|
|
|
var childrenArray = [children];
|
|
if (hasMore) {
|
|
if (loader) {
|
|
isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);
|
|
} else if (this.defaultLoader) {
|
|
isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);
|
|
}
|
|
}
|
|
return _react2.default.createElement(element, props, childrenArray);
|
|
}
|
|
}]);
|
|
|
|
return InfiniteScroll;
|
|
}(_react.Component);
|
|
|
|
InfiniteScroll.propTypes = {
|
|
children: _propTypes2.default.node.isRequired,
|
|
element: _propTypes2.default.node,
|
|
hasMore: _propTypes2.default.bool,
|
|
initialLoad: _propTypes2.default.bool,
|
|
isReverse: _propTypes2.default.bool,
|
|
loader: _propTypes2.default.node,
|
|
loadMore: _propTypes2.default.func.isRequired,
|
|
pageStart: _propTypes2.default.number,
|
|
ref: _propTypes2.default.func,
|
|
getScrollParent: _propTypes2.default.func,
|
|
threshold: _propTypes2.default.number,
|
|
useCapture: _propTypes2.default.bool,
|
|
useWindow: _propTypes2.default.bool
|
|
};
|
|
InfiniteScroll.defaultProps = {
|
|
element: 'div',
|
|
hasMore: false,
|
|
initialLoad: true,
|
|
pageStart: 0,
|
|
ref: null,
|
|
threshold: 250,
|
|
useWindow: true,
|
|
isReverse: false,
|
|
useCapture: false,
|
|
loader: null,
|
|
getScrollParent: null
|
|
};
|
|
exports["default"] = InfiniteScroll;
|
|
module.exports = exports['default'];
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ 26724:
|
|
/*!**************************************************************************************!*\
|
|
!*** ./node_modules/_react-infinite-scroller@1.2.4@react-infinite-scroller/index.js ***!
|
|
\**************************************************************************************/
|
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
|
|
module.exports = __webpack_require__(/*! ./dist/InfiniteScroll */ 51581)
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ 98040:
|
|
/*!************************************************************************!*\
|
|
!*** ./node_modules/_toggle-selection@1.0.6@toggle-selection/index.js ***!
|
|
\************************************************************************/
|
|
/***/ (function(module) {
|
|
|
|
|
|
module.exports = function () {
|
|
var selection = document.getSelection();
|
|
if (!selection.rangeCount) {
|
|
return function () {};
|
|
}
|
|
var active = document.activeElement;
|
|
|
|
var ranges = [];
|
|
for (var i = 0; i < selection.rangeCount; i++) {
|
|
ranges.push(selection.getRangeAt(i));
|
|
}
|
|
|
|
switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML
|
|
case 'INPUT':
|
|
case 'TEXTAREA':
|
|
active.blur();
|
|
break;
|
|
|
|
default:
|
|
active = null;
|
|
break;
|
|
}
|
|
|
|
selection.removeAllRanges();
|
|
return function () {
|
|
selection.type === 'Caret' &&
|
|
selection.removeAllRanges();
|
|
|
|
if (!selection.rangeCount) {
|
|
ranges.forEach(function(range) {
|
|
selection.addRange(range);
|
|
});
|
|
}
|
|
|
|
active &&
|
|
active.focus();
|
|
};
|
|
};
|
|
|
|
|
|
/***/ })
|
|
|
|
}]); |