Mirror of https://github.com/roostorg/osprey github.com/roostorg/osprey
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

[osprey-ui] Migrate Antd 4 to Antd 5 (Phase 1 of UI 2.0) (#238)

Co-authored-by: Leon Shi <101139283+cmttt@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Juan Mrad <juansmrad@gmail.com>

authored by

hailey
Leon Shi
Claude Opus 4.7 (1M context)
Juan Mrad
and committed by
GitHub
4d50e64a 2337dea8

+622 -382
+2
CHANGELOG.md
··· 10 10 ### 📚 3rd party library updates 11 11 - Upgrade `simplejson` from 3.19.3 to 3.20.2 ([#174](https://github.com/roostorg/osprey/pull/174) by [@dependabot](https://github.com/dependabot)) 12 12 - Upgrade `requests-mock` from 1.9.3 to 1.12.1 ([#176](https://github.com/roostorg/osprey/pull/176) by [@dependabot](https://github.com/dependabot)) 13 + - Upgrade `antd` and `@ant-design/icons` to v5 (Ant Design 5 migration) ([#238](https://github.com/roostorg/osprey/pull/238) by [@haileyok](https://github.com/haileyok)) 14 + - Replace `moment` with `dayjs` ([#238](https://github.com/roostorg/osprey/pull/238) by [@haileyok](https://github.com/haileyok)) 13 15 14 16 ### 🛠 Breaking changes 15 17
+486 -266
osprey_ui/package-lock.json
··· 9 9 "version": "0.1.0", 10 10 "license": "UNLICENSED", 11 11 "dependencies": { 12 - "@ant-design/icons": "4.8.3", 12 + "@ant-design/icons": "^5.0.0", 13 13 "@juggle/resize-observer": "3.2.0", 14 14 "@sentry/browser": "5.12.1", 15 15 "ajv": "^8.17.1", 16 - "antd": "4.24.16", 16 + "antd": "^5.0.0", 17 17 "axios": "^1.6.0", 18 18 "classnames": "2.2.6", 19 19 "cytoscape": "^3.21.2", 20 20 "cytoscape-dagre": "^2.4.0", 21 21 "cytoscape-popper": "^2.0.0", 22 + "dayjs": "^1.11.0", 22 23 "file-saver": "2.0.1", 23 24 "glob-to-regexp": "0.4.1", 24 25 "highcharts": "8.1.0", ··· 27 28 "history": "4.7.2", 28 29 "invariant": "2.2.4", 29 30 "lodash": "4.17.19", 30 - "moment": "2.24.0", 31 - "moment-timezone": "0.5.31", 32 31 "rc-select": "11.3.3", 33 32 "react": "^18.2.0", 34 33 "react-dom": "^18.2.0", ··· 53 52 "@types/invariant": "2.2.34", 54 53 "@types/jest": "24.0.23", 55 54 "@types/lodash": "4.14.159", 56 - "@types/moment-timezone": "0.5.13", 57 55 "@types/react": "^18.2.0", 58 56 "@types/react-dom": "^18.2.0", 59 57 "@types/react-infinite-scroller": "1.2.1", ··· 97 95 } 98 96 }, 99 97 "node_modules/@ant-design/colors": { 100 - "version": "6.0.0", 101 - "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-6.0.0.tgz", 102 - "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", 98 + "version": "7.2.1", 99 + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.2.1.tgz", 100 + "integrity": "sha512-lCHDcEzieu4GA3n8ELeZ5VQ8pKQAWcGGLRTQ50aQM2iqPpq2evTxER84jfdPvsPAtEcZ7m44NI45edFMo8oOYQ==", 101 + "license": "MIT", 102 + "dependencies": { 103 + "@ant-design/fast-color": "^2.0.6" 104 + } 105 + }, 106 + "node_modules/@ant-design/cssinjs": { 107 + "version": "1.24.0", 108 + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.24.0.tgz", 109 + "integrity": "sha512-K4cYrJBsgvL+IoozUXYjbT6LHHNt+19a9zkvpBPxLjFHas1UpPM2A5MlhROb0BT8N8WoavM5VsP9MeSeNK/3mg==", 110 + "license": "MIT", 111 + "dependencies": { 112 + "@babel/runtime": "^7.11.1", 113 + "@emotion/hash": "^0.8.0", 114 + "@emotion/unitless": "^0.7.5", 115 + "classnames": "^2.3.1", 116 + "csstype": "^3.1.3", 117 + "rc-util": "^5.35.0", 118 + "stylis": "^4.3.4" 119 + }, 120 + "peerDependencies": { 121 + "react": ">=16.0.0", 122 + "react-dom": ">=16.0.0" 123 + } 124 + }, 125 + "node_modules/@ant-design/cssinjs-utils": { 126 + "version": "1.1.3", 127 + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz", 128 + "integrity": "sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==", 129 + "license": "MIT", 130 + "dependencies": { 131 + "@ant-design/cssinjs": "^1.21.0", 132 + "@babel/runtime": "^7.23.2", 133 + "rc-util": "^5.38.0" 134 + }, 135 + "peerDependencies": { 136 + "react": ">=16.9.0", 137 + "react-dom": ">=16.9.0" 138 + } 139 + }, 140 + "node_modules/@ant-design/cssinjs/node_modules/classnames": { 141 + "version": "2.5.1", 142 + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", 143 + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", 144 + "license": "MIT" 145 + }, 146 + "node_modules/@ant-design/fast-color": { 147 + "version": "2.0.6", 148 + "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz", 149 + "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==", 103 150 "license": "MIT", 104 151 "dependencies": { 105 - "@ctrl/tinycolor": "^3.4.0" 152 + "@babel/runtime": "^7.24.7" 153 + }, 154 + "engines": { 155 + "node": ">=8.x" 106 156 } 107 157 }, 108 158 "node_modules/@ant-design/icons": { 109 - "version": "4.8.3", 110 - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-4.8.3.tgz", 111 - "integrity": "sha512-HGlIQZzrEbAhpJR6+IGdzfbPym94Owr6JZkJ2QCCnOkPVIWMO2xgIVcOKnl8YcpijIo39V7l2qQL5fmtw56cMw==", 159 + "version": "5.6.1", 160 + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.6.1.tgz", 161 + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", 112 162 "license": "MIT", 113 163 "dependencies": { 114 - "@ant-design/colors": "^6.0.0", 115 - "@ant-design/icons-svg": "^4.3.0", 116 - "@babel/runtime": "^7.11.2", 164 + "@ant-design/colors": "^7.0.0", 165 + "@ant-design/icons-svg": "^4.4.0", 166 + "@babel/runtime": "^7.24.8", 117 167 "classnames": "^2.2.6", 118 - "lodash": "^4.17.15", 119 - "rc-util": "^5.9.4" 168 + "rc-util": "^5.31.1" 120 169 }, 121 170 "engines": { 122 171 "node": ">=8" ··· 133 182 "license": "MIT" 134 183 }, 135 184 "node_modules/@ant-design/react-slick": { 136 - "version": "1.0.2", 137 - "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.0.2.tgz", 138 - "integrity": "sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==", 185 + "version": "1.1.2", 186 + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", 187 + "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", 139 188 "license": "MIT", 140 189 "dependencies": { 141 190 "@babel/runtime": "^7.10.4", ··· 2495 2544 "postcss-selector-parser": "^6.0.10" 2496 2545 } 2497 2546 }, 2498 - "node_modules/@ctrl/tinycolor": { 2499 - "version": "3.6.1", 2500 - "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", 2501 - "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", 2502 - "license": "MIT", 2503 - "engines": { 2504 - "node": ">=10" 2505 - } 2547 + "node_modules/@emotion/hash": { 2548 + "version": "0.8.0", 2549 + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", 2550 + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", 2551 + "license": "MIT" 2552 + }, 2553 + "node_modules/@emotion/unitless": { 2554 + "version": "0.7.5", 2555 + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", 2556 + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", 2557 + "license": "MIT" 2506 2558 }, 2507 2559 "node_modules/@eslint-community/eslint-utils": { 2508 2560 "version": "4.8.0", ··· 3928 3980 "url": "https://opencollective.com/popperjs" 3929 3981 } 3930 3982 }, 3983 + "node_modules/@rc-component/async-validator": { 3984 + "version": "5.1.0", 3985 + "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.1.0.tgz", 3986 + "integrity": "sha512-n4HcR5siNUXRX23nDizbZBQPO0ZM/5oTtmKZ6/eqL0L2bo747cklFdZGRN2f+c9qWGICwDzrhW0H7tE9PptdcA==", 3987 + "license": "MIT", 3988 + "dependencies": { 3989 + "@babel/runtime": "^7.24.4" 3990 + }, 3991 + "engines": { 3992 + "node": ">=14.x" 3993 + } 3994 + }, 3995 + "node_modules/@rc-component/color-picker": { 3996 + "version": "2.0.1", 3997 + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz", 3998 + "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==", 3999 + "license": "MIT", 4000 + "dependencies": { 4001 + "@ant-design/fast-color": "^2.0.6", 4002 + "@babel/runtime": "^7.23.6", 4003 + "classnames": "^2.2.6", 4004 + "rc-util": "^5.38.1" 4005 + }, 4006 + "peerDependencies": { 4007 + "react": ">=16.9.0", 4008 + "react-dom": ">=16.9.0" 4009 + } 4010 + }, 4011 + "node_modules/@rc-component/context": { 4012 + "version": "1.4.0", 4013 + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", 4014 + "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", 4015 + "license": "MIT", 4016 + "dependencies": { 4017 + "@babel/runtime": "^7.10.1", 4018 + "rc-util": "^5.27.0" 4019 + }, 4020 + "peerDependencies": { 4021 + "react": ">=16.9.0", 4022 + "react-dom": ">=16.9.0" 4023 + } 4024 + }, 4025 + "node_modules/@rc-component/mini-decimal": { 4026 + "version": "1.1.3", 4027 + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.3.tgz", 4028 + "integrity": "sha512-bk/FJ09fLf+NLODMAFll6CfYrHPBioTedhW6lxDBuuWucJEqFUd4l/D/5JgIi3dina6sYahB8iuPAZTNz2pMxw==", 4029 + "license": "MIT", 4030 + "dependencies": { 4031 + "@babel/runtime": "^7.18.0" 4032 + }, 4033 + "engines": { 4034 + "node": ">=8.x" 4035 + } 4036 + }, 4037 + "node_modules/@rc-component/mutate-observer": { 4038 + "version": "1.1.0", 4039 + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", 4040 + "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", 4041 + "license": "MIT", 4042 + "dependencies": { 4043 + "@babel/runtime": "^7.18.0", 4044 + "classnames": "^2.3.2", 4045 + "rc-util": "^5.24.4" 4046 + }, 4047 + "engines": { 4048 + "node": ">=8.x" 4049 + }, 4050 + "peerDependencies": { 4051 + "react": ">=16.9.0", 4052 + "react-dom": ">=16.9.0" 4053 + } 4054 + }, 4055 + "node_modules/@rc-component/mutate-observer/node_modules/classnames": { 4056 + "version": "2.5.1", 4057 + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", 4058 + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", 4059 + "license": "MIT" 4060 + }, 3931 4061 "node_modules/@rc-component/portal": { 3932 4062 "version": "1.1.2", 3933 4063 "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", ··· 3952 4082 "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", 3953 4083 "license": "MIT" 3954 4084 }, 4085 + "node_modules/@rc-component/qrcode": { 4086 + "version": "1.1.1", 4087 + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.1.1.tgz", 4088 + "integrity": "sha512-LfLGNymzKdUPjXUbRP+xOhIWY4jQ+YMj5MmWAcgcAq1Ij8XP7tRmAXqyuv96XvLUBE/5cA8hLFl9eO1JQMujrA==", 4089 + "license": "MIT", 4090 + "dependencies": { 4091 + "@babel/runtime": "^7.24.7" 4092 + }, 4093 + "engines": { 4094 + "node": ">=8.x" 4095 + }, 4096 + "peerDependencies": { 4097 + "react": ">=16.9.0", 4098 + "react-dom": ">=16.9.0" 4099 + } 4100 + }, 4101 + "node_modules/@rc-component/tour": { 4102 + "version": "1.15.1", 4103 + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.1.tgz", 4104 + "integrity": "sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==", 4105 + "license": "MIT", 4106 + "dependencies": { 4107 + "@babel/runtime": "^7.18.0", 4108 + "@rc-component/portal": "^1.0.0-9", 4109 + "@rc-component/trigger": "^2.0.0", 4110 + "classnames": "^2.3.2", 4111 + "rc-util": "^5.24.4" 4112 + }, 4113 + "engines": { 4114 + "node": ">=8.x" 4115 + }, 4116 + "peerDependencies": { 4117 + "react": ">=16.9.0", 4118 + "react-dom": ">=16.9.0" 4119 + } 4120 + }, 4121 + "node_modules/@rc-component/tour/node_modules/classnames": { 4122 + "version": "2.5.1", 4123 + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", 4124 + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", 4125 + "license": "MIT" 4126 + }, 4127 + "node_modules/@rc-component/trigger": { 4128 + "version": "2.3.1", 4129 + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.1.tgz", 4130 + "integrity": "sha512-ORENF39PeXTzM+gQEshuk460Z8N4+6DkjpxlpE7Q3gYy1iBpLrx0FOJz3h62ryrJZ/3zCAUIkT1Pb/8hHWpb3A==", 4131 + "license": "MIT", 4132 + "dependencies": { 4133 + "@babel/runtime": "^7.23.2", 4134 + "@rc-component/portal": "^1.1.0", 4135 + "classnames": "^2.3.2", 4136 + "rc-motion": "^2.0.0", 4137 + "rc-resize-observer": "^1.3.1", 4138 + "rc-util": "^5.44.0" 4139 + }, 4140 + "engines": { 4141 + "node": ">=8.x" 4142 + }, 4143 + "peerDependencies": { 4144 + "react": ">=16.9.0", 4145 + "react-dom": ">=16.9.0" 4146 + } 4147 + }, 4148 + "node_modules/@rc-component/trigger/node_modules/classnames": { 4149 + "version": "2.5.1", 4150 + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", 4151 + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", 4152 + "license": "MIT" 4153 + }, 3955 4154 "node_modules/@rollup/plugin-babel": { 3956 4155 "version": "5.3.1", 3957 4156 "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", ··· 4700 4899 "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", 4701 4900 "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", 4702 4901 "license": "MIT" 4703 - }, 4704 - "node_modules/@types/moment-timezone": { 4705 - "version": "0.5.13", 4706 - "resolved": "https://registry.npmjs.org/@types/moment-timezone/-/moment-timezone-0.5.13.tgz", 4707 - "integrity": "sha512-SWk1qM8DRssS5YR9L4eEX7WUhK/wc96aIr4nMa6p0kTk9YhGGOJjECVhIdPEj13fvJw72Xun69gScXSZ/UmcPg==", 4708 - "dev": true, 4709 - "license": "MIT", 4710 - "dependencies": { 4711 - "moment": ">=2.14.0" 4712 - } 4713 4902 }, 4714 4903 "node_modules/@types/node": { 4715 4904 "version": "24.3.1", ··· 5687 5876 } 5688 5877 }, 5689 5878 "node_modules/antd": { 5690 - "version": "4.24.16", 5691 - "resolved": "https://registry.npmjs.org/antd/-/antd-4.24.16.tgz", 5692 - "integrity": "sha512-zZrK4UYxHtU6tGOOf0uG/kBRx1kTvypfuSB3GqE/SBQxFhZ/TZ+yj7Z1qwI8vGfMtUUJdLeuoCAqGDa1zPsXnQ==", 5879 + "version": "5.29.3", 5880 + "resolved": "https://registry.npmjs.org/antd/-/antd-5.29.3.tgz", 5881 + "integrity": "sha512-3DdbGCa9tWAJGcCJ6rzR8EJFsv2CtyEbkVabZE14pfgUHfCicWCj0/QzQVLDYg8CPfQk9BH7fHCoTXHTy7MP/A==", 5693 5882 "license": "MIT", 5694 5883 "dependencies": { 5695 - "@ant-design/colors": "^6.0.0", 5696 - "@ant-design/icons": "^4.8.2", 5697 - "@ant-design/react-slick": "~1.0.2", 5698 - "@babel/runtime": "^7.18.3", 5699 - "@ctrl/tinycolor": "^3.6.1", 5700 - "classnames": "^2.2.6", 5701 - "copy-to-clipboard": "^3.2.0", 5702 - "lodash": "^4.17.21", 5703 - "moment": "^2.29.2", 5704 - "rc-cascader": "~3.7.3", 5705 - "rc-checkbox": "~3.0.1", 5706 - "rc-collapse": "~3.4.2", 5707 - "rc-dialog": "~9.0.2", 5708 - "rc-drawer": "~6.3.0", 5709 - "rc-dropdown": "~4.0.1", 5710 - "rc-field-form": "~1.38.2", 5711 - "rc-image": "~5.13.0", 5712 - "rc-input": "~0.1.4", 5713 - "rc-input-number": "~7.3.11", 5714 - "rc-mentions": "~1.13.1", 5715 - "rc-menu": "~9.8.4", 5716 - "rc-motion": "^2.9.0", 5717 - "rc-notification": "~4.6.1", 5718 - "rc-pagination": "~3.2.0", 5719 - "rc-picker": "~2.7.6", 5720 - "rc-progress": "~3.4.2", 5721 - "rc-rate": "~2.9.3", 5722 - "rc-resize-observer": "^1.3.1", 5723 - "rc-segmented": "~2.3.0", 5724 - "rc-select": "~14.1.18", 5725 - "rc-slider": "~10.0.1", 5726 - "rc-steps": "~5.0.0", 5727 - "rc-switch": "~3.2.2", 5728 - "rc-table": "~7.26.0", 5729 - "rc-tabs": "~12.5.10", 5730 - "rc-textarea": "~0.4.7", 5731 - "rc-tooltip": "~5.2.2", 5732 - "rc-tree": "~5.7.12", 5733 - "rc-tree-select": "~5.5.5", 5734 - "rc-trigger": "^5.3.4", 5735 - "rc-upload": "~4.3.6", 5736 - "rc-util": "^5.37.0", 5737 - "scroll-into-view-if-needed": "^2.2.25" 5884 + "@ant-design/colors": "^7.2.1", 5885 + "@ant-design/cssinjs": "^1.23.0", 5886 + "@ant-design/cssinjs-utils": "^1.1.3", 5887 + "@ant-design/fast-color": "^2.0.6", 5888 + "@ant-design/icons": "^5.6.1", 5889 + "@ant-design/react-slick": "~1.1.2", 5890 + "@babel/runtime": "^7.26.0", 5891 + "@rc-component/color-picker": "~2.0.1", 5892 + "@rc-component/mutate-observer": "^1.1.0", 5893 + "@rc-component/qrcode": "~1.1.0", 5894 + "@rc-component/tour": "~1.15.1", 5895 + "@rc-component/trigger": "^2.3.0", 5896 + "classnames": "^2.5.1", 5897 + "copy-to-clipboard": "^3.3.3", 5898 + "dayjs": "^1.11.11", 5899 + "rc-cascader": "~3.34.0", 5900 + "rc-checkbox": "~3.5.0", 5901 + "rc-collapse": "~3.9.0", 5902 + "rc-dialog": "~9.6.0", 5903 + "rc-drawer": "~7.3.0", 5904 + "rc-dropdown": "~4.2.1", 5905 + "rc-field-form": "~2.7.1", 5906 + "rc-image": "~7.12.0", 5907 + "rc-input": "~1.8.0", 5908 + "rc-input-number": "~9.5.0", 5909 + "rc-mentions": "~2.20.0", 5910 + "rc-menu": "~9.16.1", 5911 + "rc-motion": "^2.9.5", 5912 + "rc-notification": "~5.6.4", 5913 + "rc-pagination": "~5.1.0", 5914 + "rc-picker": "~4.11.3", 5915 + "rc-progress": "~4.0.0", 5916 + "rc-rate": "~2.13.1", 5917 + "rc-resize-observer": "^1.4.3", 5918 + "rc-segmented": "~2.7.0", 5919 + "rc-select": "~14.16.8", 5920 + "rc-slider": "~11.1.9", 5921 + "rc-steps": "~6.0.1", 5922 + "rc-switch": "~4.1.0", 5923 + "rc-table": "~7.54.0", 5924 + "rc-tabs": "~15.7.0", 5925 + "rc-textarea": "~1.10.2", 5926 + "rc-tooltip": "~6.4.0", 5927 + "rc-tree": "~5.13.1", 5928 + "rc-tree-select": "~5.27.0", 5929 + "rc-upload": "~4.11.0", 5930 + "rc-util": "^5.44.4", 5931 + "scroll-into-view-if-needed": "^3.1.0", 5932 + "throttle-debounce": "^5.0.2" 5738 5933 }, 5739 5934 "funding": { 5740 5935 "type": "opencollective", ··· 5745 5940 "react-dom": ">=16.9.0" 5746 5941 } 5747 5942 }, 5748 - "node_modules/antd/node_modules/lodash": { 5749 - "version": "4.17.21", 5750 - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 5751 - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 5943 + "node_modules/antd/node_modules/classnames": { 5944 + "version": "2.5.1", 5945 + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", 5946 + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", 5752 5947 "license": "MIT" 5753 5948 }, 5754 - "node_modules/antd/node_modules/moment": { 5755 - "version": "2.30.1", 5756 - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", 5757 - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", 5949 + "node_modules/antd/node_modules/rc-picker": { 5950 + "version": "4.11.3", 5951 + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.11.3.tgz", 5952 + "integrity": "sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==", 5758 5953 "license": "MIT", 5954 + "dependencies": { 5955 + "@babel/runtime": "^7.24.7", 5956 + "@rc-component/trigger": "^2.0.0", 5957 + "classnames": "^2.2.1", 5958 + "rc-overflow": "^1.3.2", 5959 + "rc-resize-observer": "^1.4.0", 5960 + "rc-util": "^5.43.0" 5961 + }, 5759 5962 "engines": { 5760 - "node": "*" 5963 + "node": ">=8.x" 5964 + }, 5965 + "peerDependencies": { 5966 + "date-fns": ">= 2.x", 5967 + "dayjs": ">= 1.x", 5968 + "luxon": ">= 3.x", 5969 + "moment": ">= 2.x", 5970 + "react": ">=16.9.0", 5971 + "react-dom": ">=16.9.0" 5972 + }, 5973 + "peerDependenciesMeta": { 5974 + "date-fns": { 5975 + "optional": true 5976 + }, 5977 + "dayjs": { 5978 + "optional": true 5979 + }, 5980 + "luxon": { 5981 + "optional": true 5982 + }, 5983 + "moment": { 5984 + "optional": true 5985 + } 5761 5986 } 5762 5987 }, 5763 5988 "node_modules/antd/node_modules/rc-select": { 5764 - "version": "14.1.18", 5765 - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.1.18.tgz", 5766 - "integrity": "sha512-4JgY3oG2Yz68ECMUSCON7mtxuJvCSj+LJpHEg/AONaaVBxIIrmI/ZTuMJkyojall/X50YdBe5oMKqHHPNiPzEg==", 5989 + "version": "14.16.8", 5990 + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.8.tgz", 5991 + "integrity": "sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==", 5767 5992 "license": "MIT", 5768 5993 "dependencies": { 5769 5994 "@babel/runtime": "^7.10.1", 5995 + "@rc-component/trigger": "^2.1.1", 5770 5996 "classnames": "2.x", 5771 5997 "rc-motion": "^2.0.1", 5772 - "rc-overflow": "^1.0.0", 5773 - "rc-trigger": "^5.0.4", 5998 + "rc-overflow": "^1.3.1", 5774 5999 "rc-util": "^5.16.1", 5775 - "rc-virtual-list": "^3.2.0" 6000 + "rc-virtual-list": "^3.5.2" 5776 6001 }, 5777 6002 "engines": { 5778 6003 "node": ">=8.x" ··· 5865 6090 "funding": { 5866 6091 "url": "https://github.com/sponsors/ljharb" 5867 6092 } 5868 - }, 5869 - "node_modules/array-tree-filter": { 5870 - "version": "2.1.0", 5871 - "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", 5872 - "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==", 5873 - "license": "MIT" 5874 6093 }, 5875 6094 "node_modules/array-union": { 5876 6095 "version": "2.1.0", ··· 6043 6262 "engines": { 6044 6263 "node": ">= 0.4" 6045 6264 } 6046 - }, 6047 - "node_modules/async-validator": { 6048 - "version": "4.2.5", 6049 - "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", 6050 - "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", 6051 - "license": "MIT" 6052 6265 }, 6053 6266 "node_modules/asynckit": { 6054 6267 "version": "0.4.0", ··· 7173 7386 "license": "MIT" 7174 7387 }, 7175 7388 "node_modules/compute-scroll-into-view": { 7176 - "version": "1.0.20", 7177 - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", 7178 - "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==", 7389 + "version": "3.1.1", 7390 + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", 7391 + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", 7179 7392 "license": "MIT" 7180 7393 }, 7181 7394 "node_modules/concat-map": { ··· 7823 8036 "version": "2.30.0", 7824 8037 "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", 7825 8038 "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", 8039 + "dev": true, 7826 8040 "license": "MIT", 7827 8041 "dependencies": { 7828 8042 "@babel/runtime": "^7.21.0" ··· 14743 14957 "version": "2.24.0", 14744 14958 "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", 14745 14959 "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", 14960 + "dev": true, 14746 14961 "license": "MIT", 14747 - "engines": { 14748 - "node": "*" 14749 - } 14750 - }, 14751 - "node_modules/moment-timezone": { 14752 - "version": "0.5.31", 14753 - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.31.tgz", 14754 - "integrity": "sha512-+GgHNg8xRhMXfEbv81iDtrVeTcWt0kWmTEY1XQK14dICTXnWJnT0dxdlPspwqF3keKMVPXwayEsk1DI0AA/jdA==", 14755 - "license": "MIT", 14756 - "dependencies": { 14757 - "moment": ">= 2.9.0" 14758 - }, 14759 14962 "engines": { 14760 14963 "node": "*" 14761 14964 } ··· 17203 17406 } 17204 17407 }, 17205 17408 "node_modules/rc-cascader": { 17206 - "version": "3.7.3", 17207 - "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.7.3.tgz", 17208 - "integrity": "sha512-KBpT+kzhxDW+hxPiNk4zaKa99+Lie2/8nnI11XF+FIOPl4Bj9VlFZi61GrnWzhLGA7VEN+dTxAkNOjkySDa0dA==", 17409 + "version": "3.34.0", 17410 + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.34.0.tgz", 17411 + "integrity": "sha512-KpXypcvju9ptjW9FaN2NFcA2QH9E9LHKq169Y0eWtH4e/wHQ5Wh5qZakAgvb8EKZ736WZ3B0zLLOBsrsja5Dag==", 17209 17412 "license": "MIT", 17210 17413 "dependencies": { 17211 - "@babel/runtime": "^7.12.5", 17212 - "array-tree-filter": "^2.1.0", 17414 + "@babel/runtime": "^7.25.7", 17213 17415 "classnames": "^2.3.1", 17214 - "rc-select": "~14.1.0", 17215 - "rc-tree": "~5.7.0", 17216 - "rc-util": "^5.6.1" 17416 + "rc-select": "~14.16.2", 17417 + "rc-tree": "~5.13.0", 17418 + "rc-util": "^5.43.0" 17217 17419 }, 17218 17420 "peerDependencies": { 17219 17421 "react": ">=16.9.0", ··· 17227 17429 "license": "MIT" 17228 17430 }, 17229 17431 "node_modules/rc-cascader/node_modules/rc-select": { 17230 - "version": "14.1.18", 17231 - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.1.18.tgz", 17232 - "integrity": "sha512-4JgY3oG2Yz68ECMUSCON7mtxuJvCSj+LJpHEg/AONaaVBxIIrmI/ZTuMJkyojall/X50YdBe5oMKqHHPNiPzEg==", 17432 + "version": "14.16.8", 17433 + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.8.tgz", 17434 + "integrity": "sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==", 17233 17435 "license": "MIT", 17234 17436 "dependencies": { 17235 17437 "@babel/runtime": "^7.10.1", 17438 + "@rc-component/trigger": "^2.1.1", 17236 17439 "classnames": "2.x", 17237 17440 "rc-motion": "^2.0.1", 17238 - "rc-overflow": "^1.0.0", 17239 - "rc-trigger": "^5.0.4", 17441 + "rc-overflow": "^1.3.1", 17240 17442 "rc-util": "^5.16.1", 17241 - "rc-virtual-list": "^3.2.0" 17443 + "rc-virtual-list": "^3.5.2" 17242 17444 }, 17243 17445 "engines": { 17244 17446 "node": ">=8.x" ··· 17249 17451 } 17250 17452 }, 17251 17453 "node_modules/rc-checkbox": { 17252 - "version": "3.0.1", 17253 - "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.0.1.tgz", 17254 - "integrity": "sha512-k7nxDWxYF+jDI0ZcCvuvj71xONmWRVe5+1MKcERRR9MRyP3tZ69b+yUCSXXh+sik4/Hc9P5wHr2nnUoGS2zBjA==", 17454 + "version": "3.5.0", 17455 + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.5.0.tgz", 17456 + "integrity": "sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==", 17255 17457 "license": "MIT", 17256 17458 "dependencies": { 17257 17459 "@babel/runtime": "^7.10.1", ··· 17270 17472 "license": "MIT" 17271 17473 }, 17272 17474 "node_modules/rc-collapse": { 17273 - "version": "3.4.2", 17274 - "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.4.2.tgz", 17275 - "integrity": "sha512-jpTwLgJzkhAgp2Wpi3xmbTbbYExg6fkptL67Uu5LCRVEj6wqmy0DHTjjeynsjOLsppHGHu41t1ELntZ0lEvS/Q==", 17475 + "version": "3.9.0", 17476 + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.9.0.tgz", 17477 + "integrity": "sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==", 17276 17478 "license": "MIT", 17277 17479 "dependencies": { 17278 17480 "@babel/runtime": "^7.10.1", 17279 17481 "classnames": "2.x", 17280 17482 "rc-motion": "^2.3.4", 17281 - "rc-util": "^5.2.1", 17282 - "shallowequal": "^1.1.0" 17483 + "rc-util": "^5.27.0" 17283 17484 }, 17284 17485 "peerDependencies": { 17285 17486 "react": ">=16.9.0", ··· 17287 17488 } 17288 17489 }, 17289 17490 "node_modules/rc-dialog": { 17290 - "version": "9.0.4", 17291 - "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.0.4.tgz", 17292 - "integrity": "sha512-pmnPRZKd9CGzGgf4a1ysBvMhxm8Afx5fF6M7AzLtJ0qh8X1bshurDlqnK4MBNAB4hAeAMMbz6Ytb1rkGMvKFbQ==", 17491 + "version": "9.6.0", 17492 + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.6.0.tgz", 17493 + "integrity": "sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==", 17293 17494 "license": "MIT", 17294 17495 "dependencies": { 17295 17496 "@babel/runtime": "^7.10.1", ··· 17304 17505 } 17305 17506 }, 17306 17507 "node_modules/rc-drawer": { 17307 - "version": "6.3.0", 17308 - "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-6.3.0.tgz", 17309 - "integrity": "sha512-uBZVb3xTAR+dBV53d/bUhTctCw3pwcwJoM7g5aX+7vgwt2zzVzoJ6aqFjYJpBlZ9zp0dVYN8fV+hykFE7c4lig==", 17508 + "version": "7.3.0", 17509 + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.3.0.tgz", 17510 + "integrity": "sha512-DX6CIgiBWNpJIMGFO8BAISFkxiuKitoizooj4BDyee8/SnBn0zwO2FHrNDpqqepj0E/TFTDpmEBCyFuTgC7MOg==", 17310 17511 "license": "MIT", 17311 17512 "dependencies": { 17312 - "@babel/runtime": "^7.10.1", 17513 + "@babel/runtime": "^7.23.9", 17313 17514 "@rc-component/portal": "^1.1.1", 17314 17515 "classnames": "^2.2.6", 17315 17516 "rc-motion": "^2.6.1", 17316 - "rc-util": "^5.21.2" 17517 + "rc-util": "^5.38.1" 17317 17518 }, 17318 17519 "peerDependencies": { 17319 17520 "react": ">=16.9.0", ··· 17321 17522 } 17322 17523 }, 17323 17524 "node_modules/rc-dropdown": { 17324 - "version": "4.0.1", 17325 - "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.0.1.tgz", 17326 - "integrity": "sha512-OdpXuOcme1rm45cR0Jzgfl1otzmU4vuBVb+etXM8vcaULGokAKVpKlw8p6xzspG7jGd/XxShvq+N3VNEfk/l5g==", 17525 + "version": "4.2.1", 17526 + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.1.tgz", 17527 + "integrity": "sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==", 17327 17528 "license": "MIT", 17328 17529 "dependencies": { 17329 17530 "@babel/runtime": "^7.18.3", 17531 + "@rc-component/trigger": "^2.0.0", 17330 17532 "classnames": "^2.2.6", 17331 - "rc-trigger": "^5.3.1", 17332 - "rc-util": "^5.17.0" 17533 + "rc-util": "^5.44.1" 17333 17534 }, 17334 17535 "peerDependencies": { 17335 17536 "react": ">=16.11.0", ··· 17337 17538 } 17338 17539 }, 17339 17540 "node_modules/rc-field-form": { 17340 - "version": "1.38.2", 17341 - "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.38.2.tgz", 17342 - "integrity": "sha512-O83Oi1qPyEv31Sg+Jwvsj6pXc8uQI2BtIAkURr5lvEYHVggXJhdU/nynK8wY1gbw0qR48k731sN5ON4egRCROA==", 17541 + "version": "2.7.1", 17542 + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.7.1.tgz", 17543 + "integrity": "sha512-vKeSifSJ6HoLaAB+B8aq/Qgm8a3dyxROzCtKNCsBQgiverpc4kWDQihoUwzUj+zNWJOykwSY4dNX3QrGwtVb9A==", 17343 17544 "license": "MIT", 17344 17545 "dependencies": { 17345 17546 "@babel/runtime": "^7.18.0", 17346 - "async-validator": "^4.1.0", 17547 + "@rc-component/async-validator": "^5.0.3", 17347 17548 "rc-util": "^5.32.2" 17348 17549 }, 17349 17550 "engines": { ··· 17355 17556 } 17356 17557 }, 17357 17558 "node_modules/rc-image": { 17358 - "version": "5.13.0", 17359 - "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-5.13.0.tgz", 17360 - "integrity": "sha512-iZTOmw5eWo2+gcrJMMcnd7SsxVHl3w5xlyCgsULUdJhJbnuI8i/AL0tVOsE7aLn9VfOh1qgDT3mC2G75/c7mqg==", 17559 + "version": "7.12.0", 17560 + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.12.0.tgz", 17561 + "integrity": "sha512-cZ3HTyyckPnNnUb9/DRqduqzLfrQRyi+CdHjdqgsyDpI3Ln5UX1kXnAhPBSJj9pVRzwRFgqkN7p9b6HBDjmu/Q==", 17361 17562 "license": "MIT", 17362 17563 "dependencies": { 17363 17564 "@babel/runtime": "^7.11.2", 17364 17565 "@rc-component/portal": "^1.0.2", 17365 17566 "classnames": "^2.2.6", 17366 - "rc-dialog": "~9.0.0", 17567 + "rc-dialog": "~9.6.0", 17367 17568 "rc-motion": "^2.6.2", 17368 - "rc-util": "^5.0.6" 17569 + "rc-util": "^5.34.1" 17369 17570 }, 17370 17571 "peerDependencies": { 17371 17572 "react": ">=16.9.0", ··· 17373 17574 } 17374 17575 }, 17375 17576 "node_modules/rc-input": { 17376 - "version": "0.1.4", 17377 - "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-0.1.4.tgz", 17378 - "integrity": "sha512-FqDdNz+fV2dKNgfXzcSLKvC+jEs1709t7nD+WdfjrdSaOcefpgc7BUJYadc3usaING+b7ediMTfKxuJBsEFbXA==", 17577 + "version": "1.8.0", 17578 + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.8.0.tgz", 17579 + "integrity": "sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA==", 17379 17580 "license": "MIT", 17380 17581 "dependencies": { 17381 17582 "@babel/runtime": "^7.11.1", ··· 17388 17589 } 17389 17590 }, 17390 17591 "node_modules/rc-input-number": { 17391 - "version": "7.3.11", 17392 - "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-7.3.11.tgz", 17393 - "integrity": "sha512-aMWPEjFeles6PQnMqP5eWpxzsvHm9rh1jQOWXExUEIxhX62Fyl/ptifLHOn17+waDG1T/YUb6flfJbvwRhHrbA==", 17592 + "version": "9.5.0", 17593 + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.5.0.tgz", 17594 + "integrity": "sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag==", 17394 17595 "license": "MIT", 17395 17596 "dependencies": { 17396 17597 "@babel/runtime": "^7.10.1", 17598 + "@rc-component/mini-decimal": "^1.0.1", 17397 17599 "classnames": "^2.2.5", 17398 - "rc-util": "^5.23.0" 17600 + "rc-input": "~1.8.0", 17601 + "rc-util": "^5.40.1" 17399 17602 }, 17400 17603 "peerDependencies": { 17401 17604 "react": ">=16.9.0", ··· 17403 17606 } 17404 17607 }, 17405 17608 "node_modules/rc-mentions": { 17406 - "version": "1.13.1", 17407 - "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-1.13.1.tgz", 17408 - "integrity": "sha512-FCkaWw6JQygtOz0+Vxz/M/NWqrWHB9LwqlY2RtcuFqWJNFK9njijOOzTSsBGANliGufVUzx/xuPHmZPBV0+Hgw==", 17609 + "version": "2.20.0", 17610 + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.20.0.tgz", 17611 + "integrity": "sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ==", 17409 17612 "license": "MIT", 17410 17613 "dependencies": { 17411 - "@babel/runtime": "^7.10.1", 17614 + "@babel/runtime": "^7.22.5", 17615 + "@rc-component/trigger": "^2.0.0", 17412 17616 "classnames": "^2.2.6", 17413 - "rc-menu": "~9.8.0", 17414 - "rc-textarea": "^0.4.0", 17415 - "rc-trigger": "^5.0.4", 17416 - "rc-util": "^5.22.5" 17617 + "rc-input": "~1.8.0", 17618 + "rc-menu": "~9.16.0", 17619 + "rc-textarea": "~1.10.0", 17620 + "rc-util": "^5.34.1" 17417 17621 }, 17418 17622 "peerDependencies": { 17419 17623 "react": ">=16.9.0", ··· 17421 17625 } 17422 17626 }, 17423 17627 "node_modules/rc-menu": { 17424 - "version": "9.8.4", 17425 - "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.8.4.tgz", 17426 - "integrity": "sha512-lmw2j8I2fhdIzHmC9ajfImfckt0WDb2KVJJBBRIsxPEw2kGkEfjLMUoB1NgiNT/Q5cC8PdjGOGQjHJIJMwyNMw==", 17628 + "version": "9.16.1", 17629 + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.16.1.tgz", 17630 + "integrity": "sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==", 17427 17631 "license": "MIT", 17428 17632 "dependencies": { 17429 17633 "@babel/runtime": "^7.10.1", 17634 + "@rc-component/trigger": "^2.0.0", 17430 17635 "classnames": "2.x", 17431 17636 "rc-motion": "^2.4.3", 17432 - "rc-overflow": "^1.2.8", 17433 - "rc-trigger": "^5.1.2", 17637 + "rc-overflow": "^1.3.1", 17434 17638 "rc-util": "^5.27.0" 17435 17639 }, 17436 17640 "peerDependencies": { ··· 17454 17658 } 17455 17659 }, 17456 17660 "node_modules/rc-notification": { 17457 - "version": "4.6.1", 17458 - "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-4.6.1.tgz", 17459 - "integrity": "sha512-NSmFYwrrdY3+un1GvDAJQw62Xi9LNMSsoQyo95tuaYrcad5Bn9gJUL8AREufRxSQAQnr64u3LtP3EUyLYT6bhw==", 17661 + "version": "5.6.4", 17662 + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.4.tgz", 17663 + "integrity": "sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw==", 17460 17664 "license": "MIT", 17461 17665 "dependencies": { 17462 17666 "@babel/runtime": "^7.10.1", 17463 17667 "classnames": "2.x", 17464 - "rc-motion": "^2.2.0", 17668 + "rc-motion": "^2.9.0", 17465 17669 "rc-util": "^5.20.1" 17466 17670 }, 17467 17671 "engines": { ··· 17473 17677 } 17474 17678 }, 17475 17679 "node_modules/rc-overflow": { 17476 - "version": "1.4.1", 17477 - "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.4.1.tgz", 17478 - "integrity": "sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==", 17680 + "version": "1.5.0", 17681 + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.5.0.tgz", 17682 + "integrity": "sha512-Lm/v9h0LymeUYJf0x39OveU52InkdRXqnn2aYXfWmo8WdOonIKB2kfau+GF0fWq6jPgtdO9yMqveGcK6aIhJmg==", 17479 17683 "license": "MIT", 17480 17684 "dependencies": { 17481 17685 "@babel/runtime": "^7.11.1", ··· 17489 17693 } 17490 17694 }, 17491 17695 "node_modules/rc-pagination": { 17492 - "version": "3.2.0", 17493 - "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-3.2.0.tgz", 17494 - "integrity": "sha512-5tIXjB670WwwcAJzAqp2J+cOBS9W3cH/WU1EiYwXljuZ4vtZXKlY2Idq8FZrnYBz8KhN3vwPo9CoV/SJS6SL1w==", 17696 + "version": "5.1.0", 17697 + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-5.1.0.tgz", 17698 + "integrity": "sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==", 17495 17699 "license": "MIT", 17496 17700 "dependencies": { 17497 17701 "@babel/runtime": "^7.10.1", 17498 - "classnames": "^2.2.1" 17702 + "classnames": "^2.3.2", 17703 + "rc-util": "^5.38.0" 17499 17704 }, 17500 17705 "peerDependencies": { 17501 17706 "react": ">=16.9.0", 17502 17707 "react-dom": ">=16.9.0" 17503 17708 } 17504 17709 }, 17710 + "node_modules/rc-pagination/node_modules/classnames": { 17711 + "version": "2.5.1", 17712 + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", 17713 + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", 17714 + "license": "MIT" 17715 + }, 17505 17716 "node_modules/rc-picker": { 17506 17717 "version": "2.7.6", 17507 17718 "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-2.7.6.tgz", 17508 17719 "integrity": "sha512-H9if/BUJUZBOhPfWcPeT15JUI3/ntrG9muzERrXDkSoWmDj4yzmBvumozpxYrHwjcKnjyDGAke68d+whWwvhHA==", 17720 + "dev": true, 17509 17721 "license": "MIT", 17510 17722 "dependencies": { 17511 17723 "@babel/runtime": "^7.10.1", ··· 17526 17738 } 17527 17739 }, 17528 17740 "node_modules/rc-progress": { 17529 - "version": "3.4.2", 17530 - "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-3.4.2.tgz", 17531 - "integrity": "sha512-iAGhwWU+tsayP+Jkl9T4+6rHeQTG9kDz8JAHZk4XtQOcYN5fj9H34NXNEdRdZx94VUDHMqCb1yOIvi8eJRh67w==", 17741 + "version": "4.0.0", 17742 + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", 17743 + "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", 17532 17744 "license": "MIT", 17533 17745 "dependencies": { 17534 17746 "@babel/runtime": "^7.10.1", ··· 17541 17753 } 17542 17754 }, 17543 17755 "node_modules/rc-rate": { 17544 - "version": "2.9.3", 17545 - "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.9.3.tgz", 17546 - "integrity": "sha512-2THssUSnRhtqIouQIIXqsZGzRczvp4WsH4WvGuhiwm+LG2fVpDUJliP9O1zeDOZvYfBE/Bup4SgHun/eCkbjgQ==", 17756 + "version": "2.13.1", 17757 + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.1.tgz", 17758 + "integrity": "sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==", 17547 17759 "license": "MIT", 17548 17760 "dependencies": { 17549 17761 "@babel/runtime": "^7.10.1", ··· 17575 17787 } 17576 17788 }, 17577 17789 "node_modules/rc-segmented": { 17578 - "version": "2.3.0", 17579 - "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.3.0.tgz", 17580 - "integrity": "sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg==", 17790 + "version": "2.7.1", 17791 + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.7.1.tgz", 17792 + "integrity": "sha512-izj1Nw/Dw2Vb7EVr+D/E9lUTkBe+kKC+SAFSU9zqr7WV2W5Ktaa9Gc7cB2jTqgk8GROJayltaec+DBlYKc6d+g==", 17581 17793 "license": "MIT", 17582 17794 "dependencies": { 17583 17795 "@babel/runtime": "^7.11.1", ··· 17622 17834 } 17623 17835 }, 17624 17836 "node_modules/rc-slider": { 17625 - "version": "10.0.1", 17626 - "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.0.1.tgz", 17627 - "integrity": "sha512-igTKF3zBet7oS/3yNiIlmU8KnZ45npmrmHlUUio8PNbIhzMcsh+oE/r2UD42Y6YD2D/s+kzCQkzQrPD6RY435Q==", 17837 + "version": "11.1.9", 17838 + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.9.tgz", 17839 + "integrity": "sha512-h8IknhzSh3FEM9u8ivkskh+Ef4Yo4JRIY2nj7MrH6GQmrwV6mcpJf5/4KgH5JaVI1H3E52yCdpOlVyGZIeph5A==", 17628 17840 "license": "MIT", 17629 17841 "dependencies": { 17630 17842 "@babel/runtime": "^7.10.1", 17631 17843 "classnames": "^2.2.5", 17632 - "rc-util": "^5.18.1", 17633 - "shallowequal": "^1.1.0" 17844 + "rc-util": "^5.36.0" 17634 17845 }, 17635 17846 "engines": { 17636 17847 "node": ">=8.x" ··· 17641 17852 } 17642 17853 }, 17643 17854 "node_modules/rc-steps": { 17644 - "version": "5.0.0", 17645 - "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-5.0.0.tgz", 17646 - "integrity": "sha512-9TgRvnVYirdhbV0C3syJFj9EhCRqoJAsxt4i1rED5o8/ZcSv5TLIYyo4H8MCjLPvbe2R+oBAm/IYBEtC+OS1Rw==", 17855 + "version": "6.0.1", 17856 + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", 17857 + "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", 17647 17858 "license": "MIT", 17648 17859 "dependencies": { 17649 17860 "@babel/runtime": "^7.16.7", ··· 17659 17870 } 17660 17871 }, 17661 17872 "node_modules/rc-switch": { 17662 - "version": "3.2.2", 17663 - "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-3.2.2.tgz", 17664 - "integrity": "sha512-+gUJClsZZzvAHGy1vZfnwySxj+MjLlGRyXKXScrtCTcmiYNPzxDFOxdQ/3pK1Kt/0POvwJ/6ALOR8gwdXGhs+A==", 17873 + "version": "4.1.0", 17874 + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", 17875 + "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", 17665 17876 "license": "MIT", 17666 17877 "dependencies": { 17667 - "@babel/runtime": "^7.10.1", 17878 + "@babel/runtime": "^7.21.0", 17668 17879 "classnames": "^2.2.1", 17669 - "rc-util": "^5.0.1" 17880 + "rc-util": "^5.30.0" 17670 17881 }, 17671 17882 "peerDependencies": { 17672 17883 "react": ">=16.9.0", ··· 17674 17885 } 17675 17886 }, 17676 17887 "node_modules/rc-table": { 17677 - "version": "7.26.0", 17678 - "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.26.0.tgz", 17679 - "integrity": "sha512-0cD8e6S+DTGAt5nBZQIPFYEaIukn17sfa5uFL98faHlH/whZzD8ii3dbFL4wmUDEL4BLybhYop+QUfZJ4CPvNQ==", 17888 + "version": "7.54.0", 17889 + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.54.0.tgz", 17890 + "integrity": "sha512-/wDTkki6wBTjwylwAGjpLKYklKo9YgjZwAU77+7ME5mBoS32Q4nAwoqhA2lSge6fobLW3Tap6uc5xfwaL2p0Sw==", 17680 17891 "license": "MIT", 17681 17892 "dependencies": { 17682 17893 "@babel/runtime": "^7.10.1", 17894 + "@rc-component/context": "^1.4.0", 17683 17895 "classnames": "^2.2.5", 17684 17896 "rc-resize-observer": "^1.1.0", 17685 - "rc-util": "^5.22.5", 17686 - "shallowequal": "^1.1.0" 17897 + "rc-util": "^5.44.3", 17898 + "rc-virtual-list": "^3.14.2" 17687 17899 }, 17688 17900 "engines": { 17689 17901 "node": ">=8.x" ··· 17694 17906 } 17695 17907 }, 17696 17908 "node_modules/rc-tabs": { 17697 - "version": "12.5.10", 17698 - "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-12.5.10.tgz", 17699 - "integrity": "sha512-Ay0l0jtd4eXepFH9vWBvinBjqOpqzcsJTerBGwJy435P2S90Uu38q8U/mvc1sxUEVOXX5ZCFbxcWPnfG3dH+tQ==", 17909 + "version": "15.7.0", 17910 + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.7.0.tgz", 17911 + "integrity": "sha512-ZepiE+6fmozYdWf/9gVp7k56PKHB1YYoDsKeQA1CBlJ/POIhjkcYiv0AGP0w2Jhzftd3AVvZP/K+V+Lpi2ankA==", 17700 17912 "license": "MIT", 17701 17913 "dependencies": { 17702 17914 "@babel/runtime": "^7.11.2", 17703 17915 "classnames": "2.x", 17704 - "rc-dropdown": "~4.0.0", 17705 - "rc-menu": "~9.8.0", 17916 + "rc-dropdown": "~4.2.0", 17917 + "rc-menu": "~9.16.0", 17706 17918 "rc-motion": "^2.6.2", 17707 17919 "rc-resize-observer": "^1.0.0", 17708 - "rc-util": "^5.16.0" 17920 + "rc-util": "^5.34.1" 17709 17921 }, 17710 17922 "engines": { 17711 17923 "node": ">=8.x" ··· 17716 17928 } 17717 17929 }, 17718 17930 "node_modules/rc-textarea": { 17719 - "version": "0.4.7", 17720 - "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-0.4.7.tgz", 17721 - "integrity": "sha512-IQPd1CDI3mnMlkFyzt2O4gQ2lxUsnBAeJEoZGJnkkXgORNqyM9qovdrCj9NzcRfpHgLdzaEbU3AmobNFGUznwQ==", 17931 + "version": "1.10.2", 17932 + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.10.2.tgz", 17933 + "integrity": "sha512-HfaeXiaSlpiSp0I/pvWpecFEHpVysZ9tpDLNkxQbMvMz6gsr7aVZ7FpWP9kt4t7DB+jJXesYS0us1uPZnlRnwQ==", 17722 17934 "license": "MIT", 17723 17935 "dependencies": { 17724 17936 "@babel/runtime": "^7.10.1", 17725 17937 "classnames": "^2.2.1", 17938 + "rc-input": "~1.8.0", 17726 17939 "rc-resize-observer": "^1.0.0", 17727 - "rc-util": "^5.24.4", 17728 - "shallowequal": "^1.1.0" 17940 + "rc-util": "^5.27.0" 17729 17941 }, 17730 17942 "peerDependencies": { 17731 17943 "react": ">=16.9.0", ··· 17733 17945 } 17734 17946 }, 17735 17947 "node_modules/rc-tooltip": { 17736 - "version": "5.2.2", 17737 - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-5.2.2.tgz", 17738 - "integrity": "sha512-jtQzU/18S6EI3lhSGoDYhPqNpWajMtS5VV/ld1LwyfrDByQpYmw/LW6U7oFXXLukjfDHQ7Ju705A82PRNFWYhg==", 17948 + "version": "6.4.0", 17949 + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.4.0.tgz", 17950 + "integrity": "sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==", 17739 17951 "license": "MIT", 17740 17952 "dependencies": { 17741 17953 "@babel/runtime": "^7.11.2", 17954 + "@rc-component/trigger": "^2.0.0", 17742 17955 "classnames": "^2.3.1", 17743 - "rc-trigger": "^5.0.0" 17956 + "rc-util": "^5.44.3" 17744 17957 }, 17745 17958 "peerDependencies": { 17746 17959 "react": ">=16.9.0", ··· 17754 17967 "license": "MIT" 17755 17968 }, 17756 17969 "node_modules/rc-tree": { 17757 - "version": "5.7.12", 17758 - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.7.12.tgz", 17759 - "integrity": "sha512-LXA5nY2hG5koIAlHW5sgXgLpOMz+bFRbnZZ+cCg0tQs4Wv1AmY7EDi1SK7iFXhslYockbqUerQan82jljoaItg==", 17970 + "version": "5.13.1", 17971 + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.13.1.tgz", 17972 + "integrity": "sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==", 17760 17973 "license": "MIT", 17761 17974 "dependencies": { 17762 17975 "@babel/runtime": "^7.10.1", ··· 17774 17987 } 17775 17988 }, 17776 17989 "node_modules/rc-tree-select": { 17777 - "version": "5.5.5", 17778 - "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.5.5.tgz", 17779 - "integrity": "sha512-k2av7jF6tW9bIO4mQhaVdV4kJ1c54oxV3/hHVU+oD251Gb5JN+m1RbJFTMf1o0rAFqkvto33rxMdpafaGKQRJw==", 17990 + "version": "5.27.0", 17991 + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.27.0.tgz", 17992 + "integrity": "sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==", 17780 17993 "license": "MIT", 17781 17994 "dependencies": { 17782 - "@babel/runtime": "^7.10.1", 17995 + "@babel/runtime": "^7.25.7", 17783 17996 "classnames": "2.x", 17784 - "rc-select": "~14.1.0", 17785 - "rc-tree": "~5.7.0", 17786 - "rc-util": "^5.16.1" 17997 + "rc-select": "~14.16.2", 17998 + "rc-tree": "~5.13.0", 17999 + "rc-util": "^5.43.0" 17787 18000 }, 17788 18001 "peerDependencies": { 17789 18002 "react": "*", ··· 17791 18004 } 17792 18005 }, 17793 18006 "node_modules/rc-tree-select/node_modules/rc-select": { 17794 - "version": "14.1.18", 17795 - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.1.18.tgz", 17796 - "integrity": "sha512-4JgY3oG2Yz68ECMUSCON7mtxuJvCSj+LJpHEg/AONaaVBxIIrmI/ZTuMJkyojall/X50YdBe5oMKqHHPNiPzEg==", 18007 + "version": "14.16.8", 18008 + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.8.tgz", 18009 + "integrity": "sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==", 17797 18010 "license": "MIT", 17798 18011 "dependencies": { 17799 18012 "@babel/runtime": "^7.10.1", 18013 + "@rc-component/trigger": "^2.1.1", 17800 18014 "classnames": "2.x", 17801 18015 "rc-motion": "^2.0.1", 17802 - "rc-overflow": "^1.0.0", 17803 - "rc-trigger": "^5.0.4", 18016 + "rc-overflow": "^1.3.1", 17804 18017 "rc-util": "^5.16.1", 17805 - "rc-virtual-list": "^3.2.0" 18018 + "rc-virtual-list": "^3.5.2" 17806 18019 }, 17807 18020 "engines": { 17808 18021 "node": ">=8.x" ··· 17833 18046 } 17834 18047 }, 17835 18048 "node_modules/rc-upload": { 17836 - "version": "4.3.6", 17837 - "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.3.6.tgz", 17838 - "integrity": "sha512-Bt7ESeG5tT3IY82fZcP+s0tQU2xmo1W6P3S8NboUUliquJLQYLkUcsaExi3IlBVr43GQMCjo30RA2o0i70+NjA==", 18049 + "version": "4.11.0", 18050 + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.11.0.tgz", 18051 + "integrity": "sha512-ZUyT//2JAehfHzjWowqROcwYJKnZkIUGWaTE/VogVrepSl7AFNbQf4+zGfX4zl9Vrj/Jm8scLO0R6UlPDKK4wA==", 17839 18052 "license": "MIT", 17840 18053 "dependencies": { 17841 18054 "@babel/runtime": "^7.18.3", ··· 18927 19140 } 18928 19141 }, 18929 19142 "node_modules/scroll-into-view-if-needed": { 18930 - "version": "2.2.31", 18931 - "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", 18932 - "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", 19143 + "version": "3.1.0", 19144 + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", 19145 + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", 18933 19146 "license": "MIT", 18934 19147 "dependencies": { 18935 - "compute-scroll-into-view": "^1.0.20" 19148 + "compute-scroll-into-view": "^3.0.2" 18936 19149 } 18937 19150 }, 18938 19151 "node_modules/select-hose": { ··· 19172 19385 "version": "1.1.0", 19173 19386 "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", 19174 19387 "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", 19388 + "dev": true, 19175 19389 "license": "MIT" 19176 19390 }, 19177 19391 "node_modules/shebang-command": { ··· 19892 20106 "peerDependencies": { 19893 20107 "postcss": "^8.2.15" 19894 20108 } 20109 + }, 20110 + "node_modules/stylis": { 20111 + "version": "4.4.0", 20112 + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.4.0.tgz", 20113 + "integrity": "sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==", 20114 + "license": "MIT" 19895 20115 }, 19896 20116 "node_modules/sucrase": { 19897 20117 "version": "3.35.0",
+3 -5
osprey_ui/package.json
··· 4 4 "version": "0.1.0", 5 5 "private": true, 6 6 "dependencies": { 7 - "@ant-design/icons": "4.8.3", 7 + "@ant-design/icons": "^5.0.0", 8 8 "@juggle/resize-observer": "3.2.0", 9 9 "@sentry/browser": "5.12.1", 10 10 "ajv": "^8.17.1", 11 - "antd": "4.24.16", 11 + "antd": "^5.0.0", 12 12 "axios": "^1.6.0", 13 13 "classnames": "2.2.6", 14 14 "cytoscape": "^3.21.2", 15 15 "cytoscape-dagre": "^2.4.0", 16 16 "cytoscape-popper": "^2.0.0", 17 + "dayjs": "^1.11.0", 17 18 "file-saver": "2.0.1", 18 19 "glob-to-regexp": "0.4.1", 19 20 "highcharts": "8.1.0", ··· 22 23 "history": "4.7.2", 23 24 "invariant": "2.2.4", 24 25 "lodash": "4.17.19", 25 - "moment": "2.24.0", 26 - "moment-timezone": "0.5.31", 27 26 "rc-select": "11.3.3", 28 27 "react": "^18.2.0", 29 28 "react-dom": "^18.2.0", ··· 48 47 "@types/invariant": "2.2.34", 49 48 "@types/jest": "24.0.23", 50 49 "@types/lodash": "4.14.159", 51 - "@types/moment-timezone": "0.5.13", 52 50 "@types/react": "^18.2.0", 53 51 "@types/react-dom": "^18.2.0", 54 52 "@types/react-infinite-scroller": "1.2.1",
+55 -42
osprey_ui/src/App.tsx
··· 1 1 import * as React from 'react'; 2 - import { Spin } from 'antd'; 2 + import { App as AntdApp, ConfigProvider, Spin } from 'antd'; 3 3 import { Router, Switch, Route } from 'react-router-dom'; 4 4 5 5 import { getApplicationConfig } from './actions/ConfigActions'; ··· 32 32 updateApplicationConfig(appConfig); 33 33 }); 34 34 35 + const theme = React.useMemo(() => { 36 + return { 37 + token: { 38 + colorPrimary: 39 + getComputedStyle(document.documentElement).getPropertyValue('--brand-primary').trim() || '#1227ce', 40 + }, 41 + }; 42 + }, []); 43 + 35 44 return renderFromPromiseResult(applicationConfigResult, () => ( 36 - <Router history={history}> 37 - <Switch> 38 - <Route path="/events/:eventId"> 39 - <EventPage /> 40 - </Route> 41 - <Route> 42 - <NavBar> 43 - <Route exact path={[Routes.SAVED_QUERY, Routes.SAVED_QUERY_LATEST]}> 44 - <SavedQueryBar /> 45 + <ConfigProvider theme={theme}> 46 + <AntdApp> 47 + <Router history={history}> 48 + <Switch> 49 + <Route path="/events/:eventId"> 50 + <EventPage /> 45 51 </Route> 46 - <Route exact path={Routes.ENTITY}> 47 - <EntityViewBar /> 52 + <Route> 53 + <NavBar> 54 + <Route exact path={[Routes.SAVED_QUERY, Routes.SAVED_QUERY_LATEST]}> 55 + <SavedQueryBar /> 56 + </Route> 57 + <Route exact path={Routes.ENTITY}> 58 + <EntityViewBar /> 59 + </Route> 60 + <Switch> 61 + <Route path={Routes.QUERY_HISTORY}> 62 + <QueryHistory /> 63 + </Route> 64 + <Route path={Routes.SAVED_QUERIES}> 65 + <SavedQueries /> 66 + </Route> 67 + <Route path={Routes.DOCS_UDFS}> 68 + <UdfDocsView /> 69 + </Route> 70 + <Route path={Routes.BULK_JOB_HISTORY}> 71 + <BulkJobHistoryView /> 72 + </Route> 73 + <Route path={Routes.RULES_VISUALIZER}> 74 + <RulesVisualizerView /> 75 + </Route> 76 + <Route exact path={[Routes.ENTITY, Routes.HOME, Routes.SAVED_QUERY]}> 77 + <QueryView /> 78 + </Route> 79 + <Route exact path={Routes.SAVED_QUERY_LATEST}> 80 + <div className={styles.spinner}> 81 + <Spin size="large" /> 82 + </div> 83 + </Route> 84 + <Route exact path={Routes.BULK_ACTION} component={BulkActionPage} /> 85 + </Switch> 86 + </NavBar> 48 87 </Route> 49 - <Switch> 50 - <Route path={Routes.QUERY_HISTORY}> 51 - <QueryHistory /> 52 - </Route> 53 - <Route path={Routes.SAVED_QUERIES}> 54 - <SavedQueries /> 55 - </Route> 56 - <Route path={Routes.DOCS_UDFS}> 57 - <UdfDocsView /> 58 - </Route> 59 - <Route path={Routes.BULK_JOB_HISTORY}> 60 - <BulkJobHistoryView /> 61 - </Route> 62 - <Route path={Routes.RULES_VISUALIZER}> 63 - <RulesVisualizerView /> 64 - </Route> 65 - <Route exact path={[Routes.ENTITY, Routes.HOME, Routes.SAVED_QUERY]}> 66 - <QueryView /> 67 - </Route> 68 - <Route exact path={Routes.SAVED_QUERY_LATEST}> 69 - <div className={styles.spinner}> 70 - <Spin size="large" /> 71 - </div> 72 - </Route> 73 - <Route exact path={Routes.BULK_ACTION} component={BulkActionPage} /> 74 - </Switch> 75 - </NavBar> 76 - </Route> 77 - </Switch> 78 - </Router> 88 + </Switch> 89 + </Router> 90 + </AntdApp> 91 + </ConfigProvider> 79 92 )); 80 93 }; 81 94
+9 -7
osprey_ui/src/components/bulk_actions/BulkActionStartModal.tsx
··· 1 1 import React, { useState } from 'react'; 2 - import { Modal, Form, Input, Select, Upload, Button } from 'antd'; 2 + import { App, Modal, Form, Input, Select, Upload, Button } from 'antd'; 3 3 import { UploadOutlined } from '@ant-design/icons'; 4 4 import type { UploadFile, UploadProps } from 'antd/es/upload/interface'; 5 5 import type { FormInstance } from 'antd/es/form'; ··· 25 25 } 26 26 27 27 interface JobUploadModalProps { 28 - visible: boolean; 28 + open: boolean; 29 29 onCancel: () => void; 30 30 onSubmit: (values: JobFormValues) => void; 31 31 initialValues?: Partial<JobFormValues>; ··· 36 36 { value: 'custom', label: 'Custom Workflow' }, 37 37 ]; 38 38 39 - const BulkActionStartModal: React.FC<JobUploadModalProps> = ({ visible, onCancel, onSubmit, initialValues }) => { 39 + const BulkActionStartModal: React.FC<JobUploadModalProps> = ({ open, onCancel, onSubmit, initialValues }) => { 40 + const { modal } = App.useApp(); 40 41 const [form] = Form.useForm<JobFormValues>(); 41 42 const [customWorkflow, setCustomWorkflow] = useState<boolean>(false); 42 43 const [fileSelected, setFileSelected] = useState<File | null>(null); ··· 93 94 // ~10 million rows of bigint entity-ids in a CSV file would be around 250MB 94 95 const isValidSize = file.size ? file.size / 1024 / 1024 / 1024 < 250 : false; // 250MB limit 95 96 if (!isValidSize) { 96 - Modal.error({ 97 + modal.error({ 97 98 title: 'File too large', 98 99 content: 'File size must be less than 250MB', 99 100 }); ··· 110 111 return ( 111 112 <Modal 112 113 title="Create New Job" 113 - visible={visible} 114 + open={open} 114 115 onCancel={() => { 115 116 form.resetFields(); 116 117 setFileSelected(null); ··· 165 166 }; 166 167 167 168 const BulkActionStartModalContainer = () => { 169 + const { modal } = App.useApp(); 168 170 const [visible, setVisible] = useState(false); 169 171 const bulkActions = useBulkActionStore(); 170 172 ··· 179 181 const handleSubmit = async (values: JobFormValues) => { 180 182 const workflow = values.workflow === 'custom' ? values.customWorkflowInput : values.workflow; 181 183 if (!workflow) { 182 - Modal.error({ 184 + modal.error({ 183 185 title: 'Workflow is required', 184 186 content: 'Please select or enter a workflow', 185 187 }); ··· 204 206 <Button type="primary" onClick={handleOpenModal}> 205 207 Create New Job 206 208 </Button> 207 - <BulkActionStartModal visible={visible} onCancel={handleCloseModal} onSubmit={handleSubmit} /> 209 + <BulkActionStartModal open={visible} onCancel={handleCloseModal} onSubmit={handleSubmit} /> 208 210 </> 209 211 ); 210 212 };
+2 -2
osprey_ui/src/components/bulk_label_drawer/BulkLabelDrawer.tsx
··· 125 125 <Drawer 126 126 width={450} 127 127 title="Bulk Edit Labels" 128 - visible={showBulkLabelDrawer} 128 + open={showBulkLabelDrawer} 129 129 onClose={() => { 130 130 handleDrawerClose(true); 131 131 }} ··· 134 134 <BulkLabelDrawerContent onCancel={handleDrawerClose} onEntityUnchecked={setEntitiesHaveBeenUnchecked} /> 135 135 <Modal 136 136 title="Are you sure you want to close?" 137 - visible={showConfirmModal} 137 + open={showConfirmModal} 138 138 onOk={handleConfirmationOk} 139 139 onCancel={handleConfirmationCancel} 140 140 >
+2 -2
osprey_ui/src/components/common/LabelForm.tsx
··· 1 1 import * as React from 'react'; 2 2 import { Alert, Checkbox, Form, Input, Select } from 'antd'; 3 3 import { Store } from 'antd/lib/form/interface'; 4 - import moment from 'moment-timezone'; 4 + import dayjs from 'dayjs'; 5 5 6 6 import useApplicationConfigStore from '../../stores/ApplicationConfigStore'; 7 7 import { LabelStatus, LabelMutation, Label } from '../../types/LabelTypes'; ··· 69 69 durationConstructor: [number, unit], 70 70 } = IntervalOptions[expiresAt]; 71 71 /* eslint-disable-next-line */ 72 - labelMutation.expires_at = moment.utc().add(number, unit).format(); 72 + labelMutation.expires_at = dayjs.utc().add(number, unit).format(); 73 73 } 74 74 75 75 onSubmit(labelMutation, noLimit);
+2 -2
osprey_ui/src/components/common/QueryCards.tsx
··· 1 1 import * as React from 'react'; 2 - import moment from 'moment-timezone'; 2 + import dayjs from 'dayjs'; 3 3 4 4 import { QueryRecord } from '../../types/QueryTypes'; 5 5 import Expand, { ExpandButton } from '../../uikit/Expand'; ··· 20 20 export const QueryCardActionData = ({ user, action, timestamp }: QueryCardActionDataProps) => { 21 21 return ( 22 22 <Text size={TextSizes.SMALL} color={TextColors.LIGHT_SECONDARY}> 23 - <b>{user}</b> {action} {moment.unix(timestamp).format(DATE_FORMAT)} 23 + <b>{user}</b> {action} {dayjs.unix(timestamp).format(DATE_FORMAT)} 24 24 </Text> 25 25 ); 26 26 };
+1 -1
osprey_ui/src/components/entities/LabelDrawer.tsx
··· 46 46 <Drawer 47 47 placement="right" 48 48 width={400} 49 - visible={childDrawerProps == null ? showLabelDrawer : childDrawerProps.isVisible} 49 + open={childDrawerProps == null ? showLabelDrawer : childDrawerProps.isVisible} 50 50 onClose={handleDrawerClose} 51 51 closable={false} 52 52 destroyOnClose
+1 -1
osprey_ui/src/components/event_stream/FeatureSelectModal.tsx
··· 154 154 title={renderModalTitle()} 155 155 className={styles.featureModal} 156 156 width={526} 157 - visible={isOpen} 157 + open={isOpen} 158 158 onCancel={handleCancel} 159 159 footer={<ModalFooter onOK={handleSaveSelectedFeatures} onCancel={handleCancel} />} 160 160 >
+7 -5
osprey_ui/src/components/query_view/QueryDatePicker.tsx
··· 1 1 import * as React from 'react'; 2 2 import { EditOutlined } from '@ant-design/icons'; 3 3 import { DatePicker } from 'antd'; 4 - import type { RangePickerProps } from 'antd/lib/date-picker'; 5 - import moment, { Moment } from 'moment'; 4 + import type { RangePickerProps } from 'antd/es/date-picker'; 5 + import dayjs, { type Dayjs } from 'dayjs'; 6 6 7 7 import { DefaultIntervals } from '../../types/QueryTypes'; 8 8 import Text, { TextColors, TextSizes, TextWeights } from '../../uikit/Text'; ··· 18 18 interval: DefaultIntervals; 19 19 dateRange: { start: string; end: string }; 20 20 } 21 + 22 + type RangePickerValue = [Dayjs, Dayjs]; 21 23 22 24 const QueryDatePicker = ({ onIntervalChange, onDateRangeChange, interval, dateRange }: QueryDatePickerProps) => { 23 - const handleRangePickerChange: RangePickerProps['onChange'] = (dates, _) => { 25 + const handleRangePickerChange: RangePickerProps['onChange'] = (dates, _dateStrings) => { 24 26 if (dates == null) return; 25 27 26 28 const start = dates[0]; ··· 37 39 38 40 const renderQueryIntervalOrDatePicker = () => { 39 41 if (interval === CUSTOM_RANGE_OPTION) { 40 - const value = isEmptyDateRange(dateRange.start, dateRange.end) 42 + const value: RangePickerValue | undefined = isEmptyDateRange(dateRange.start, dateRange.end) 41 43 ? undefined 42 - : ([moment(dateRange.start), moment(dateRange.end)] as unknown as RangePickerProps['value']); 44 + : [dayjs(dateRange.start), dayjs(dateRange.end)]; 43 45 44 46 return ( 45 47 <DatePicker.RangePicker
+1 -1
osprey_ui/src/components/rules_visualizer/RulesVisualizerHeader.tsx
··· 73 73 placement="right" 74 74 closable={false} 75 75 onClose={() => setIsDrawerVisible(false)} 76 - visible={isDrawerVisible} 76 + open={isDrawerVisible} 77 77 width="600" 78 78 > 79 79 <div className={styles.drawerBody}>
+1 -1
osprey_ui/src/components/saved_queries/DeleteSavedQueryModal.tsx
··· 31 31 <Modal 32 32 title={<Text size={TextSizes.H5}>Deleting: {savedQuery.name}</Text>} 33 33 footer={<ModalFooter onOK={handleDeleteSavedQuery} onCancel={onCancel} isSubmitting={isSubmitting} />} 34 - visible 34 + open 35 35 > 36 36 <Text tag="span" weight={TextWeights.BOLD}> 37 37 Hey! Listen!
+1 -1
osprey_ui/src/components/saved_queries/EditSavedQueryNameModal.tsx
··· 40 40 isSubmitting={isSubmitting} 41 41 /> 42 42 } 43 - visible 43 + open 44 44 > 45 45 <Form onValuesChange={handleValuesChange} onFinish={handleUpdateQueryName} layout="vertical"> 46 46 <Form.Item
+1 -1
osprey_ui/src/components/saved_queries/SaveQueryModal.tsx
··· 28 28 title={<Text size={TextSizes.H5}>Save Query</Text>} 29 29 onCancel={onCancel} 30 30 footer={<ModalFooter onOK={handleSaveQuery} onCancel={onCancel} />} 31 - visible 31 + open 32 32 > 33 33 <Form form={form} onFinish={handleSaveQuery} layout="vertical"> 34 34 <Form.Item label="Name" name="name" rules={[{ required: true, message: 'Please name this query' }]}>
+2 -2
osprey_ui/src/components/saved_queries/SavedQueryCard.tsx
··· 1 1 import * as React from 'react'; 2 - import moment from 'moment-timezone'; 2 + import dayjs from 'dayjs'; 3 3 4 4 import { SavedQuery, IntervalOptions, MomentRangeValues, QueryRecord } from '../../types/QueryTypes'; 5 5 import { MenuOption } from '../../uikit/DropdownMenu'; ··· 104 104 <QueryCardHeader> 105 105 <div className={styles.titleRow}> 106 106 <Text weight={TextWeights.SEMIBOLD}>{`Version saved at: ${localizeAndFormatTimestamp( 107 - moment.unix(queryRecord.executed_at) 107 + dayjs.unix(queryRecord.executed_at) 108 108 )}`}</Text> 109 109 </div> 110 110 </QueryCardHeader>
+1 -8
osprey_ui/src/components/saved_queries/SavedQueryDrawer.tsx
··· 52 52 }; 53 53 54 54 return ( 55 - <Drawer 56 - placement="right" 57 - width={750} 58 - visible={savedQuery != null} 59 - closable={false} 60 - onClose={onClose} 61 - destroyOnClose 62 - > 55 + <Drawer placement="right" width={750} open={savedQuery != null} closable={false} onClose={onClose} destroyOnClose> 63 56 {renderDrawerContent()} 64 57 </Drawer> 65 58 );
+6 -6
osprey_ui/src/components/timeseries/Timeseries.tsx
··· 2 2 import { Select, Spin } from 'antd'; 3 3 import Highcharts, { SeriesOptionsType } from 'highcharts'; 4 4 import HighchartsReact from 'highcharts-react-official'; 5 - import moment from 'moment-timezone'; 5 + import dayjs from 'dayjs'; 6 6 import shallow from 'zustand/shallow'; 7 7 8 8 import { getTimeseriesQueryResults } from '../../actions/EventActions'; ··· 74 74 } 75 75 76 76 // ms difference between start and end dates 77 - const startDate = moment(start); 78 - const endDate = moment(end); 79 - const duration = Math.abs(moment.duration(endDate.diff(startDate)).asMilliseconds()); 77 + const startDate = dayjs(start); 78 + const endDate = dayjs(end); 79 + const duration = Math.abs(dayjs.duration(endDate.diff(startDate)).asMilliseconds()); 80 80 81 81 // sort granularities by desc duration 82 82 const sortedGranularities = (Object.entries(Granularities) as Array<[Granularity, number]>).sort( ··· 273 273 xDateFormat: getDateFormatForGranularity('other'), 274 274 }, 275 275 time: { 276 - // our time data is UTC, but we'll convert it to whatever timezone moment 276 + // our time data is UTC, but we'll convert it to whatever timezone dayjs 277 277 // thinks the user is in 278 - timezone: moment.tz.guess(), 278 + timezone: dayjs.tz.guess(), 279 279 // don't render time as UTC 280 280 useUTC: false, 281 281 },
+1 -1
osprey_ui/src/components/top_n/CSVDownloadModal.tsx
··· 86 86 <Modal 87 87 title={<Text size={TextSizes.H5}>Download CSV</Text>} 88 88 width={400} 89 - visible={isModalOpen} 89 + open={isModalOpen} 90 90 onCancel={() => setIsModalOpen(false)} 91 91 footer={ 92 92 <div className={styles.footer}>
+2 -2
osprey_ui/src/index.css
··· 5 5 html, 6 6 body { 7 7 background-color: var(--background-secondary) !important; 8 - height: auto !important; 9 8 min-height: 100%; 10 9 } 11 10 ··· 22 21 font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; 23 22 } 24 23 25 - #root { 24 + #root, 25 + .ant-app { 26 26 height: 100%; 27 27 }
+2 -1
osprey_ui/src/index.tsx
··· 1 1 import './utils/ErrorReporting'; 2 + import './utils/DayjsSetup'; 2 3 import ReactDOM from 'react-dom/client'; 3 4 5 + import 'antd/dist/reset.css'; 4 6 import './index.css'; 5 - import 'antd/dist/antd.css'; 6 7 import App from './App'; 7 8 8 9 const root = ReactDOM.createRoot(document.getElementById('root')!);
+3 -3
osprey_ui/src/types/QueryTypes.tsx
··· 1 - import type { unitOfTime } from 'moment'; 1 + import type { ManipulateType } from 'dayjs'; 2 2 import { FeatureLocation } from './ConfigTypes'; 3 3 4 4 interface IntervalOption { 5 5 label: string; 6 - durationConstructor: [number, unitOfTime.DurationConstructor]; 6 + durationConstructor: [number, ManipulateType]; 7 7 } 8 8 9 - function intervalOption(duration: number, timeUnit: unitOfTime.DurationConstructor): IntervalOption { 9 + function intervalOption(duration: number, timeUnit: ManipulateType): IntervalOption { 10 10 const timeUnitTitleCased = `${timeUnit[0].toUpperCase()}${timeUnit.substring(1)}`; 11 11 const label = duration > 1 ? `Last ${duration} ${timeUnitTitleCased}s` : `Last ${timeUnitTitleCased}`; 12 12
+2 -2
osprey_ui/src/uikit/OspreyButton.tsx
··· 1 1 import * as React from 'react'; 2 2 import { Button } from 'antd'; 3 - import { ButtonProps } from 'antd/lib/button'; 3 + import type { ButtonProps } from 'antd'; 4 4 import classNames from 'classnames'; 5 5 6 6 import styles from './OspreyButton.module.css'; ··· 41 41 weight = ButtonWeights.SEMIBOLD, 42 42 textSelectable = false, 43 43 ...props 44 - }: ButtonProps & OspreyButtonProps) => { 44 + }: Omit<ButtonProps, 'color'> & OspreyButtonProps) => { 45 45 return ( 46 46 <Button 47 47 className={classNames(
+11 -12
osprey_ui/src/utils/DateUtils.tsx
··· 1 - import moment, { Moment } from 'moment-timezone'; 1 + import dayjs, { type Dayjs, type ManipulateType } from 'dayjs'; 2 2 3 3 import { IntervalOptions, MomentRangeValues } from '../types/QueryTypes'; 4 4 5 5 import { DATE_FORMAT } from '../Constants'; 6 6 7 - const DURATIONS = ['month', 'week', 'day', 'hour']; 7 + const DURATIONS: readonly ManipulateType[] = ['month', 'week', 'day', 'hour']; 8 8 9 - export function formatUtcTimestamp(timestamp: string | Moment): string { 10 - return moment.utc(timestamp).format(DATE_FORMAT); 9 + export function formatUtcTimestamp(timestamp: string | Dayjs): string { 10 + return dayjs.utc(timestamp).format(DATE_FORMAT); 11 11 } 12 12 13 - export function localizeAndFormatTimestamp(timestamp: string | Moment): string { 14 - return moment.utc(timestamp).tz(moment.tz.guess()).format(DATE_FORMAT); 13 + export function localizeAndFormatTimestamp(timestamp: string | Dayjs): string { 14 + return dayjs.utc(timestamp).tz(dayjs.tz.guess()).format(DATE_FORMAT); 15 15 } 16 16 17 17 export function isTimestampPast(timestamp: string): boolean { 18 - return moment.utc(timestamp).isBefore(moment.utc()); 18 + return dayjs.utc(timestamp).isBefore(dayjs.utc()); 19 19 } 20 20 21 21 export function getIntervalFromDateRange({ start, end }: { start: string; end: string }): MomentRangeValues | null { 22 - const momentDuration = moment.duration(moment(start).diff(moment(end))); 23 - let unit: moment.unitOfTime.Base | null = null; 22 + const dayjsDuration = dayjs.duration(dayjs(start).diff(dayjs(end))); 23 + let unit: ManipulateType | null = null; 24 24 let numUnits = 0; 25 25 26 26 for (const timeUnit of DURATIONS) { 27 - const unitOfTime = timeUnit as moment.unitOfTime.Base; 28 - const num = Math.abs(momentDuration.as(unitOfTime)); 27 + const num = Math.abs(dayjsDuration.as(timeUnit)); 29 28 if (num % 1 === 0) { 30 - unit = unitOfTime; 29 + unit = timeUnit; 31 30 numUnits = num; 32 31 break; 33 32 }
+10
osprey_ui/src/utils/DayjsSetup.tsx
··· 1 + import dayjs from 'dayjs'; 2 + import customParseFormat from 'dayjs/plugin/customParseFormat'; 3 + import duration from 'dayjs/plugin/duration'; 4 + import timezone from 'dayjs/plugin/timezone'; 5 + import utc from 'dayjs/plugin/utc'; 6 + 7 + dayjs.extend(utc); 8 + dayjs.extend(timezone); 9 + dayjs.extend(duration); 10 + dayjs.extend(customParseFormat);
+5 -5
osprey_ui/src/utils/QueryUtils.tsx
··· 1 1 import { isEqual } from 'lodash'; 2 - import moment from 'moment'; 2 + import dayjs from 'dayjs'; 3 3 4 4 import useApplicationConfigStore from '../stores/ApplicationConfigStore'; 5 5 import { Feature } from '../types/EntityTypes'; ··· 24 24 } = IntervalOptions[interval]; 25 25 26 26 return { 27 - start: moment.utc().subtract(amount, unit).format(), 28 - end: moment.utc().format(), 27 + start: dayjs.utc().subtract(amount, unit).format(), 28 + end: dayjs.utc().format(), 29 29 }; 30 30 } 31 31 ··· 116 116 117 117 export function baseQueryEquals(a: BaseQuery, b: BaseQuery): boolean { 118 118 return ( 119 - moment(a.start).isSame(b.start) && 120 - moment(a.end).isSame(b.end) && 119 + dayjs(a.start).isSame(b.start) && 120 + dayjs(a.end).isSame(b.end) && 121 121 a.interval === b.interval && 122 122 a.queryFilter === b.queryFilter 123 123 );
+3 -3
osprey_ui/src/utils/SearchParamUtils.tsx
··· 1 - import moment from 'moment'; 1 + import dayjs from 'dayjs'; 2 2 3 3 import { history } from '../stores/QueryStore'; 4 4 import { QueryRecord, ScanQueryOrder } from '../types/QueryTypes'; ··· 15 15 export function getSearchParamsForQueryRecord(query: QueryRecord, useInterval: boolean = false): string { 16 16 const interval = getIntervalFromDateRange(query.date_range); 17 17 18 - let start = moment.utc(query.date_range.start).format(); 19 - let end = moment.utc(query.date_range.end).format(); 18 + let start = dayjs.utc(query.date_range.start).format(); 19 + let end = dayjs.utc(query.date_range.end).format(); 20 20 21 21 if (useInterval && interval != null) { 22 22 const dateRange = getQueryDateRange(interval);